{"product_id":"qjpw","title":"Outdoor Cleanup Deal 🌿🧽 Multi-Surface Outdoor Cleaning Spray","description":"\u003cstyle\u003e\n\/* =========================================================\n   GLOBAL\n   ========================================================= *\/\n\n.outdoorclean26-page,\n.outdoorclean26-page * {\n  box-sizing: border-box;\n}\n\n.outdoorclean26-page {\n  width: 100%;\n  max-width: 720px;\n  margin: 0 auto;\n  overflow: hidden;\n  font-family: Arial, Helvetica, sans-serif;\n  color: #102016;\n  background: #f4f8ef;\n}\n\n.outdoorclean26-page img {\n  display: block;\n  width: 100%;\n  height: auto;\n  border: 0;\n}\n\n\n\/* =========================================================\n   HERO\n   ========================================================= *\/\n\n.outdoorclean26-hero {\n  padding: 30px 16px 22px;\n  background:\n    radial-gradient(\n      circle at 84% 12%,\n      rgba(170,229,88,.40) 0,\n      rgba(170,229,88,0) 36%\n    ),\n    radial-gradient(\n      circle at 10% 85%,\n      rgba(18,95,155,.30) 0,\n      rgba(18,95,155,0) 40%\n    ),\n    linear-gradient(\n      145deg,\n      #082c1e 0%,\n      #105a35 52%,\n      #0d3d67 100%\n    );\n}\n\n.outdoorclean26-kicker {\n  display: inline-flex;\n  padding: 7px 11px;\n  border-radius: 999px;\n  background: rgba(255,255,255,.15);\n  border: 1px solid rgba(255,255,255,.24);\n  color: #ffffff !important;\n  font-size: 12px;\n  line-height: 1.2;\n  font-weight: 900;\n  margin: 0 0 14px;\n}\n\n.outdoorclean26-hero h2 {\n  margin: 0;\n  color: #ffffff !important;\n  font-size: 34px;\n  line-height: 1.05;\n  font-weight: 900;\n}\n\n.outdoorclean26-hero p {\n  margin: 13px 0 19px;\n  color: #efffe8 !important;\n  font-size: 15px;\n  line-height: 1.55;\n  font-weight: 600;\n}\n\n.outdoorclean26-cta {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  min-height: 46px;\n  padding: 13px 19px;\n  border-radius: 999px;\n  background: #9bdd3b;\n  color: #092214 !important;\n  text-decoration: none;\n  font-size: 14px;\n  line-height: 1.2;\n  font-weight: 900;\n  box-shadow: 0 13px 26px rgba(155,221,59,.24);\n  transition:\n    transform .22s ease,\n    box-shadow .22s ease,\n    background .22s ease;\n}\n\n.outdoorclean26-cta:hover {\n  transform: translateY(-1px);\n  background: #a9e84d;\n  box-shadow: 0 15px 30px rgba(155,221,59,.30);\n}\n\n.outdoorclean26-hero-media {\n  margin-top: 20px;\n  padding: 8px;\n  border-radius: 22px;\n  background: rgba(255,255,255,.13);\n  border: 1px solid rgba(255,255,255,.20);\n  box-shadow: 0 18px 38px rgba(4,26,18,.32);\n}\n\n.outdoorclean26-hero-media img {\n  border-radius: 16px;\n}\n\n\n\/* =========================================================\n   QUICK STATS\n   ========================================================= *\/\n\n.outdoorclean26-stats {\n  display: grid;\n  grid-template-columns: repeat(3,1fr);\n  gap: 8px;\n  padding: 12px;\n  background: #ffffff;\n}\n\n.outdoorclean26-stats div {\n  min-width: 0;\n  padding: 12px 7px;\n  border-radius: 12px;\n  background: #eff8e7;\n  border: 1px solid #d6e9c5;\n  text-align: center;\n}\n\n.outdoorclean26-stats strong {\n  display: block;\n  color: #164427 !important;\n  font-size: 13px;\n  line-height: 1.2;\n  font-weight: 900;\n}\n\n.outdoorclean26-stats span {\n  display: block;\n  margin-top: 4px;\n  color: #4d6c50 !important;\n  font-size: 11px;\n  line-height: 1.25;\n  font-weight: 700;\n}\n\n\n\/* =========================================================\n   SECTIONS\n   ========================================================= *\/\n\n.outdoorclean26-section {\n  padding: 30px 16px;\n  background: #ffffff;\n}\n\n.outdoorclean26-section.outdoorclean26-soft {\n  background: #f4f8ef;\n}\n\n.outdoorclean26-section.outdoorclean26-dark {\n  background:\n    linear-gradient(\n      145deg,\n      #082c1e 0%,\n      #0e446f 100%\n    );\n}\n\n.outdoorclean26-eyebrow {\n  display: block;\n  margin: 0 0 8px;\n  color: #568627 !important;\n  font-size: 12px;\n  line-height: 1.2;\n  letter-spacing: .8px;\n  text-transform: uppercase;\n  font-weight: 900;\n}\n\n.outdoorclean26-section h3 {\n  margin: 0 0 10px;\n  color: #102016 !important;\n  font-size: 25px;\n  line-height: 1.14;\n  font-weight: 900;\n}\n\n.outdoorclean26-section p {\n  margin: 0 0 17px;\n  color: #4b5f51 !important;\n  font-size: 14px;\n  line-height: 1.58;\n}\n\n.outdoorclean26-dark h3,\n.outdoorclean26-dark strong,\n.outdoorclean26-dark span,\n.outdoorclean26-dark li {\n  color: #ffffff !important;\n}\n\n.outdoorclean26-dark p {\n  color: #e6f7ff !important;\n}\n\n.outdoorclean26-dark .outdoorclean26-eyebrow {\n  color: #b9ed70 !important;\n}\n\n\n\/* =========================================================\n   IMAGES\n   ========================================================= *\/\n\n.outdoorclean26-media {\n  overflow: hidden;\n  border-radius: 18px;\n  border: 1px solid #d8e9cd;\n  background: #ffffff;\n  box-shadow: 0 11px 26px rgba(30,77,47,.08);\n  margin-top: 15px;\n}\n\n.outdoorclean26-media img {\n  width: 100%;\n}\n\n.outdoorclean26-caption {\n  padding: 13px 15px;\n  background: #ffffff;\n  border-top: 1px solid #e2ebdc;\n}\n\n.outdoorclean26-caption strong {\n  display: block;\n  color: #173d23 !important;\n  font-size: 14px;\n  line-height: 1.35;\n  font-weight: 900;\n  margin-bottom: 4px;\n}\n\n.outdoorclean26-caption span {\n  display: block;\n  color: #607062 !important;\n  font-size: 12px;\n  line-height: 1.45;\n}\n\n\n\/* =========================================================\n   SURFACE CARDS\n   ========================================================= *\/\n\n.outdoorclean26-grid {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: 12px;\n  margin-top: 16px;\n}\n\n.outdoorclean26-card {\n  padding: 15px;\n  border-radius: 15px;\n  background: #f7fbf1;\n  border: 1px solid #d8e9cd;\n}\n\n.outdoorclean26-card strong {\n  display: block;\n  color: #102016 !important;\n  font-size: 16px;\n  line-height: 1.25;\n  margin-bottom: 6px;\n  font-weight: 900;\n}\n\n.outdoorclean26-card span {\n  display: block;\n  color: #526654 !important;\n  font-size: 13px;\n  line-height: 1.45;\n}\n\n\n\/* =========================================================\n   FAST-ACTING SECTION\n   ========================================================= *\/\n\n.outdoorclean26-fast {\n  padding-top: 34px;\n  padding-bottom: 34px;\n}\n\n.outdoorclean26-fast h3 {\n  max-width: 560px;\n  margin-bottom: 12px;\n}\n\n.outdoorclean26-fast-intro {\n  max-width: 610px;\n  margin-bottom: 20px !important;\n}\n\n.outdoorclean26-fast-points {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: 10px;\n  margin: 18px 0 22px;\n}\n\n.outdoorclean26-fast-point {\n  display: grid;\n  grid-template-columns: 44px 1fr;\n  gap: 12px;\n  align-items: center;\n  padding: 13px 14px;\n  border-radius: 14px;\n  background: rgba(255,255,255,.10);\n  border: 1px solid rgba(255,255,255,.17);\n}\n\n.outdoorclean26-fast-icon {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 42px;\n  height: 42px;\n  border-radius: 50%;\n  background: #9bdd3b;\n  color: #092214 !important;\n  font-size: 14px;\n  line-height: 1;\n  font-weight: 900;\n}\n\n.outdoorclean26-fast-point strong {\n  display: block;\n  margin-bottom: 3px;\n  color: #ffffff !important;\n  font-size: 14px;\n  line-height: 1.3;\n  font-weight: 900;\n}\n\n.outdoorclean26-fast-point span {\n  display: block;\n  color: #dcefe5 !important;\n  font-size: 12px;\n  line-height: 1.45;\n  font-weight: 600;\n}\n\n.outdoorclean26-fast-image {\n  width: 100%;\n  margin-top: 20px;\n  padding: 7px;\n  overflow: hidden;\n  border-radius: 19px;\n  background: rgba(255,255,255,.10);\n  border: 1px solid rgba(255,255,255,.16);\n  box-shadow: 0 14px 30px rgba(0,0,0,.16);\n}\n\n.outdoorclean26-fast-image img {\n  display: block;\n  width: 100%;\n  height: auto;\n  border-radius: 13px;\n}\n\n\n\/* =========================================================\n   INFO NOTE\n   ========================================================= *\/\n\n.outdoorclean26-note {\n  margin-top: 14px;\n  padding: 14px;\n  border-radius: 14px;\n  background: #eff8e7;\n  border: 1px solid #d6e9c5;\n}\n\n.outdoorclean26-note strong {\n  display: block;\n  color: #164427 !important;\n  font-size: 14px;\n  line-height: 1.35;\n  font-weight: 900;\n  margin-bottom: 5px;\n}\n\n.outdoorclean26-note span {\n  display: block;\n  color: #526654 !important;\n  font-size: 12px;\n  line-height: 1.5;\n}\n\n\n\/* =========================================================\n   BENEFITS\n   ========================================================= *\/\n\n.outdoorclean26-benefits {\n  display: grid;\n  grid-template-columns: repeat(3,1fr);\n  gap: 8px;\n  margin-top: 15px;\n}\n\n.outdoorclean26-benefit {\n  padding: 12px 7px;\n  border-radius: 13px;\n  background: #f3f8ee;\n  border: 1px solid #d8e9cd;\n  text-align: center;\n}\n\n.outdoorclean26-benefit b {\n  display: grid;\n  place-items: center;\n  width: 30px;\n  height: 30px;\n  margin: 0 auto 7px;\n  border-radius: 50%;\n  background: #4e8425;\n  color: #ffffff !important;\n  font-size: 16px;\n}\n\n.outdoorclean26-benefit strong {\n  display: block;\n  color: #183d23 !important;\n  font-size: 12px;\n  line-height: 1.3;\n  font-weight: 900;\n}\n\n\n\/* =========================================================\n   GUARANTEE\n   ========================================================= *\/\n\n.outdoorclean26-guarantee {\n  display: grid;\n  grid-template-columns: repeat(2,minmax(0,1fr));\n  gap: 10px;\n  margin-top: 15px;\n}\n\n.outdoorclean26-guarantee div {\n  min-width: 0;\n  padding: 15px 10px;\n  border-radius: 14px;\n  background: #ffffff;\n  border: 1px solid #d8e9cd;\n  text-align: center;\n}\n\n.outdoorclean26-guarantee b {\n  display: block;\n  color: #168052 !important;\n  font-size: 24px;\n  line-height: 1;\n  margin-bottom: 8px;\n}\n\n.outdoorclean26-guarantee strong {\n  display: block;\n  color: #102016 !important;\n  font-size: 13px;\n  line-height: 1.25;\n  font-weight: 900;\n  margin-bottom: 4px;\n}\n\n.outdoorclean26-guarantee span {\n  display: block;\n  color: #526654 !important;\n  font-size: 11px;\n  line-height: 1.35;\n  font-weight: 600;\n}\n\n\n\/* =========================================================\n   FAQ\n   ========================================================= *\/\n\n.outdoorclean26-faq {\n  display: grid;\n  gap: 10px;\n}\n\n.outdoorclean26-faq details {\n  padding: 14px;\n  border-radius: 14px;\n  background: #ffffff;\n  border: 1px solid #d8e9cd;\n}\n\n.outdoorclean26-faq summary {\n  cursor: pointer;\n  color: #102016 !important;\n  font-size: 14px;\n  line-height: 1.35;\n  font-weight: 900;\n  list-style: none;\n}\n\n.outdoorclean26-faq summary::-webkit-details-marker {\n  display: none;\n}\n\n.outdoorclean26-faq p {\n  margin: 9px 0 0;\n  color: #526654 !important;\n  font-size: 13px;\n  line-height: 1.48;\n}\n\n\n\/* =========================================================\n   FINAL CTA\n   ========================================================= *\/\n\n.outdoorclean26-final {\n  padding: 31px 16px;\n  text-align: center;\n  background:\n    radial-gradient(\n      circle at 50% 0,\n      rgba(155,221,59,.25) 0,\n      rgba(155,221,59,0) 46%\n    ),\n    linear-gradient(\n      145deg,\n      #082c1e 0%,\n      #0e446f 100%\n    );\n}\n\n.outdoorclean26-final h3 {\n  margin: 0 0 10px;\n  color: #ffffff !important;\n  font-size: 27px;\n  line-height: 1.15;\n  font-weight: 900;\n}\n\n.outdoorclean26-final p {\n  max-width: 500px;\n  margin: 0 auto 18px;\n  color: #e6f7ff !important;\n  font-size: 14px;\n  line-height: 1.55;\n}\n\n\n\/* =========================================================\n   PRODUCT PAGE DESKTOP\n   ========================================================= *\/\n\n@media (min-width: 600px) {\n\n  .outdoorclean26-hero {\n    padding: 38px 28px 30px;\n  }\n\n  .outdoorclean26-section {\n    padding: 38px 28px;\n  }\n\n  .outdoorclean26-hero h2 {\n    font-size: 43px;\n  }\n\n  .outdoorclean26-section h3 {\n    font-size: 30px;\n  }\n\n  .outdoorclean26-section p {\n    font-size: 15px;\n  }\n\n  .outdoorclean26-grid {\n    grid-template-columns: repeat(2,1fr);\n  }\n}\n\n\n@media (min-width: 900px) {\n\n  .outdoorclean26-fast-points {\n    grid-template-columns: repeat(3,1fr);\n  }\n\n  .outdoorclean26-fast-point {\n    grid-template-columns: 1fr;\n    text-align: center;\n  }\n\n  .outdoorclean26-fast-icon {\n    margin: 0 auto 4px;\n  }\n}\n\n\n\/* =========================================================\n   AUTO SCROLL REVIEW\n   ========================================================= *\/\n\n.outdoor-review-wrap,\n.outdoor-review-wrap * {\n  box-sizing: border-box;\n}\n\n.outdoor-review-wrap {\n  width: 100%;\n  max-width: 720px;\n  margin: 0 auto;\n  padding: 34px 0 38px;\n  overflow: hidden;\n  background: #f4f8ef;\n  font-family: Arial, Helvetica, sans-serif;\n}\n\n.outdoor-review-inner {\n  width: 100%;\n  margin: 0 auto;\n}\n\n.outdoor-review-header {\n  padding: 0 16px;\n  margin-bottom: 22px;\n  text-align: center;\n}\n\n.outdoor-review-eyebrow {\n  display: inline-block;\n  margin-bottom: 8px;\n  color: #568627 !important;\n  font-size: 12px;\n  line-height: 1.2;\n  font-weight: 900;\n  letter-spacing: .8px;\n  text-transform: uppercase;\n}\n\n.outdoor-review-header h2 {\n  margin: 0 0 8px;\n  color: #102016 !important;\n  font-size: 27px;\n  line-height: 1.14;\n  font-weight: 900;\n}\n\n.outdoor-review-header p {\n  max-width: 520px;\n  margin: 0 auto;\n  color: #526654 !important;\n  font-size: 14px;\n  line-height: 1.55;\n}\n\n.outdoor-scroll-container {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n  padding: 3px 0 8px;\n}\n\n.outdoor-scroll-track {\n  display: flex;\n  width: max-content;\n  gap: 18px;\n  padding-left: 16px;\n  animation: outdoorReviewScrollLoop 80s linear infinite;\n  will-change: transform;\n}\n\n.outdoor-scroll-container:hover .outdoor-scroll-track {\n  animation-play-state: paused;\n}\n\n@keyframes outdoorReviewScrollLoop {\n  from {\n    transform: translateX(0);\n  }\n\n  to {\n    transform: translateX(calc(-50% - 9px));\n  }\n}\n\n.outdoor-review-card {\n  flex: 0 0 320px;\n  min-height: 235px;\n  padding: 19px;\n  border-radius: 17px;\n  background: #ffffff;\n  border: 1px solid #d8e9cd;\n  box-shadow: 0 8px 22px rgba(30,77,47,.08);\n}\n\n.outdoor-stars {\n  margin-bottom: 11px;\n  color: #e3ad20 !important;\n  font-size: 17px;\n  line-height: 1;\n  letter-spacing: 1px;\n}\n\n.outdoor-review-text {\n  margin: 0 0 16px;\n  color: #334638 !important;\n  font-size: 14px;\n  line-height: 1.6;\n}\n\n.outdoor-review-author {\n  padding-top: 12px;\n  border-top: 1px solid #edf2e9;\n  color: #56705a !important;\n  font-size: 13px;\n  line-height: 1.35;\n  font-weight: 800;\n}\n\n@media (max-width: 599px) {\n\n  .outdoor-review-wrap {\n    padding: 30px 0 34px;\n  }\n\n  .outdoor-review-header {\n    padding: 0 16px;\n    margin-bottom: 18px;\n  }\n\n  .outdoor-review-header h2 {\n    font-size: 25px;\n  }\n\n  .outdoor-review-header p {\n    font-size: 13px;\n  }\n\n  .outdoor-scroll-track {\n    gap: 18px;\n    padding-left: 14px;\n    animation-duration: 90s;\n  }\n\n  .outdoor-review-card {\n    flex: 0 0 280px;\n    min-height: 225px;\n    padding: 17px;\n    border-radius: 16px;\n  }\n\n  .outdoor-review-text {\n    font-size: 13px;\n    line-height: 1.58;\n  }\n\n  .outdoor-review-author {\n    font-size: 12px;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n\n  .outdoor-scroll-track {\n    animation: none;\n  }\n\n  .outdoor-scroll-container {\n    overflow-x: auto;\n  }\n}\n\n\u003c\/style\u003e\n\u003csection class=\"outdoorclean26-page\" id=\"top\"\u003e\u003c!-- HERO --\u003e\n\u003cdiv class=\"outdoorclean26-hero\"\u003e\n\u003cdiv class=\"outdoorclean26-kicker\"\u003eMulti-Surface Outdoor Cleaning Spray\u003c\/div\u003e\n\u003ch2\u003eRefresh Patios, Decks, Fences \u0026amp; Stone\u003c\/h2\u003e\n\u003cp\u003eA straightforward spray routine for outdoor surfaces affected by green buildup, weather marks, and everyday grime.\u003c\/p\u003e\n\u003ca class=\"outdoorclean26-cta\" href=\"#outdoorclean26-results\"\u003e See the Difference \u003c\/a\u003e\n\u003cdiv class=\"outdoorclean26-hero-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0707\/4237\/6618\/files\/QJPW-GIF.gif?v=1786430805\" alt=\"Outdoor cleaning spray demonstration\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- STATS --\u003e\n\u003cdiv class=\"outdoorclean26-stats\"\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e3–5 Min\u003c\/strong\u003e \u003cspan\u003eSimple wait time\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e120 mL\u003c\/strong\u003e \u003cspan\u003eSpray bottle\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eMulti-Surface\u003c\/strong\u003e \u003cspan\u003eOutdoor care\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- BEFORE \/ AFTER --\u003e\n\u003cdiv class=\"outdoorclean26-section\" id=\"outdoorclean26-results\"\u003e\n\u003cspan class=\"outdoorclean26-eyebrow\"\u003e See the Difference \u003c\/span\u003e\n\u003ch3\u003eMake Outdoor Surfaces Look Cared For Again\u003c\/h3\u003e\n\u003cp\u003eRain, shade, moisture, and everyday weather can leave patios looking green, dark, and neglected. A simple cleaning routine can help restore a noticeably fresher outdoor appearance.\u003c\/p\u003e\n\u003cdiv class=\"outdoorclean26-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0881\/9910\/2753\/files\/4ba.png?v=1787912208\" alt=\"Patio before and after outdoor cleaning\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"outdoorclean26-grid\"\u003e\n\u003cdiv class=\"outdoorclean26-card\"\u003e\n\u003cstrong\u003ePatios \u0026amp; Walkways\u003c\/strong\u003e \u003cspan\u003e Helps lift visible grime and weather buildup from common outdoor paving surfaces. \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoorclean26-card\"\u003e\n\u003cstrong\u003eDecks \u0026amp; Fences\u003c\/strong\u003e \u003cspan\u003e Useful for routine cleaning of weather-exposed outdoor wood surfaces. \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoorclean26-card\"\u003e\n\u003cstrong\u003eBrick \u0026amp; Stone\u003c\/strong\u003e \u003cspan\u003e Ideal for textured outdoor areas where grime can settle into grooves and joints. \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoorclean26-card\"\u003e\n\u003cstrong\u003eOutdoor Areas\u003c\/strong\u003e \u003cspan\u003e Keep frequently used exterior spaces looking cleaner and better maintained. \u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- FAST-ACTING --\u003e\n\u003cdiv class=\"outdoorclean26-section outdoorclean26-dark outdoorclean26-fast\"\u003e\n\u003cspan class=\"outdoorclean26-eyebrow\"\u003e Everyday Convenience \u003c\/span\u003e\n\u003ch3\u003eFast-Acting Formula for Busy Weekends\u003c\/h3\u003e\n\u003cp class=\"outdoorclean26-fast-intro\"\u003eSpray, wait a few minutes, then scrub and rinse. A straightforward way to refresh everyday outdoor areas without setting up bulky cleaning equipment.\u003c\/p\u003e\n\u003cdiv class=\"outdoorclean26-fast-points\"\u003e\n\u003cdiv class=\"outdoorclean26-fast-point\"\u003e\n\u003cdiv class=\"outdoorclean26-fast-icon\"\u003e3–5\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eWorks in Minutes\u003c\/strong\u003e \u003cspan\u003e Allow approximately 3–5 minutes as part of the recommended cleaning routine. \u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoorclean26-fast-point\"\u003e\n\u003cdiv class=\"outdoorclean26-fast-icon\"\u003e✓\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eTargets Everyday Buildup\u003c\/strong\u003e \u003cspan\u003e Helps loosen green buildup, mildew marks, dirt and everyday outdoor grime. \u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoorclean26-fast-point\"\u003e\n\u003cdiv class=\"outdoorclean26-fast-icon\"\u003e⌂\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eReady for Weekend Cleanup\u003c\/strong\u003e \u003cspan\u003e Handy before guests, cookouts, seasonal cleanup or regular patio care. \u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoorclean26-fast-image\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0881\/9910\/2753\/files\/5ba.png?v=1787912208\" alt=\"Outdoor surface before and after cleaning comparison\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- BUILDUP TYPES --\u003e\n\u003cdiv class=\"outdoorclean26-section outdoorclean26-soft\"\u003e\n\u003cspan class=\"outdoorclean26-eyebrow\"\u003e Start With the Mess \u003c\/span\u003e\n\u003ch3\u003eMade for the Outdoor Buildup You Actually See\u003c\/h3\u003e\n\u003cp\u003eFrom green buildup between patio pavers to dark weather marks, mildew stains, and everyday grime, target the areas that can make an otherwise cared-for outdoor space look tired.\u003c\/p\u003e\n\u003cdiv class=\"outdoorclean26-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0881\/9910\/2753\/files\/2q.png?v=1787912208\" alt=\"Green algae dark weather stains mildew marks and outdoor grime\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- HOW TO USE --\u003e\n\u003cdiv class=\"outdoorclean26-section\"\u003e\n\u003cspan class=\"outdoorclean26-eyebrow\"\u003e Easy Routine \u003c\/span\u003e\n\u003ch3\u003eEasy 4-Step Outdoor Cleaning\u003c\/h3\u003e\n\u003cp\u003eNo complicated setup. Spray the surface, allow the formula time to work, scrub where needed, and rinse thoroughly with clean water.\u003c\/p\u003e\n\u003cdiv class=\"outdoorclean26-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0881\/9910\/2753\/files\/3usage.png?v=1787912208\" alt=\"Four step outdoor cleaning instructions spray wait scrub and rinse\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"outdoorclean26-note\"\u003e\n\u003cstrong\u003e Before You Start \u003c\/strong\u003e \u003cspan\u003e Always test on a small, inconspicuous area before full application and follow the directions shown on the product packaging. \u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- COMPARISON --\u003e\n\u003cdiv class=\"outdoorclean26-section outdoorclean26-soft\"\u003e\n\u003cspan class=\"outdoorclean26-eyebrow\"\u003e Compare Your Options \u003c\/span\u003e\n\u003ch3\u003eOutdoor Cleaning, Made Simpler\u003c\/h3\u003e\n\u003cp\u003eDifferent cleaning methods suit different jobs. For targeted everyday outdoor care, a compact spray cleaner offers a convenient option without the setup and storage required by larger equipment.\u003c\/p\u003e\n\u003cdiv class=\"outdoorclean26-media\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0881\/9910\/2753\/files\/6_7c29224b-345d-42e5-828e-0729398af268.png?v=1787912208\" alt=\"Outdoor cleaner compared with pressure washer and household cleaner\" loading=\"lazy\"\u003e\n\u003cdiv class=\"outdoorclean26-caption\"\u003e\n\u003cstrong\u003e A convenient option for targeted outdoor cleanup \u003c\/strong\u003e \u003cspan\u003e Choose the cleaning method that best suits your surface, the type of buildup, and your maintenance needs. \u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- WEATHERED SPOTS --\u003e\n\u003cdiv class=\"outdoorclean26-section\"\u003e\n\u003cspan class=\"outdoorclean26-eyebrow\"\u003e For Weathered Areas \u003c\/span\u003e\n\u003ch3\u003eExtra Help for Dirtier Outdoor Spots\u003c\/h3\u003e\n\u003cp\u003eSome areas need more than a quick rinse. Use the spray as part of a regular cleaning routine for masonry, fences, decking, and other weather-exposed outdoor surfaces.\u003c\/p\u003e\n\u003cdiv class=\"outdoorclean26-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0707\/4237\/6618\/files\/8_1650da0b-f237-4af5-818a-a075789a2512.jpg?v=1786439422\" alt=\"Cleaning weathered outdoor surface\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"outdoorclean26-benefits\"\u003e\n\u003cdiv class=\"outdoorclean26-benefit\"\u003e\n\u003cb\u003e✓\u003c\/b\u003e \u003cstrong\u003eTargeted Spray\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoorclean26-benefit\"\u003e\n\u003cb\u003e✓\u003c\/b\u003e \u003cstrong\u003eSimple Routine\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoorclean26-benefit\"\u003e\n\u003cb\u003e✓\u003c\/b\u003e \u003cstrong\u003eEasy Storage\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- GUARANTEE --\u003e\n\u003cdiv class=\"outdoorclean26-section outdoorclean26-soft\"\u003e\n\u003cspan class=\"outdoorclean26-eyebrow\"\u003e Shop With Confidence \u003c\/span\u003e\n\u003ch3\u003eFrom Checkout to Cleanup\u003c\/h3\u003e\n\u003cp\u003eConvenient ordering, secure checkout, tracked delivery, and customer support when you need help with your order.\u003c\/p\u003e\n\u003cdiv class=\"outdoorclean26-guarantee\"\u003e\n\u003cdiv\u003e\n\u003cb\u003e↩\u003c\/b\u003e \u003cstrong\u003e30-Day Returns\u003c\/strong\u003e \u003cspan\u003e Return eligibility is subject to the store return policy. \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cb\u003e🚚\u003c\/b\u003e \u003cstrong\u003eTracked Delivery\u003c\/strong\u003e \u003cspan\u003e Follow your order from dispatch through delivery. \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cb\u003e🔒\u003c\/b\u003e \u003cstrong\u003eSecure Checkout\u003c\/strong\u003e \u003cspan\u003e Protected checkout for your purchase. \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cb\u003e💬\u003c\/b\u003e \u003cstrong\u003eCustomer Support\u003c\/strong\u003e \u003cspan\u003e Contact us if you need assistance with your order. \u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- FAQ --\u003e\n\u003cdiv class=\"outdoorclean26-section\"\u003e\n\u003cspan class=\"outdoorclean26-eyebrow\"\u003e Good to Know \u003c\/span\u003e\n\u003ch3\u003eFrequently Asked Questions\u003c\/h3\u003e\n\u003cdiv class=\"outdoorclean26-faq\"\u003e\n\u003cdetails open=\"\"\u003e\n\u003csummary\u003eWhat surfaces can I use it on?\u003c\/summary\u003e\n\u003cp\u003eIt is intended for common outdoor hard surfaces such as patios, decks, fences, brick, stone, and similar exterior areas. Materials and finishes vary, so always test a small hidden area first.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eHow long should I wait before rinsing?\u003c\/summary\u003e\n\u003cp\u003eFollow the product directions. For the routine shown above, allow approximately 3–5 minutes before scrubbing where necessary and rinsing thoroughly.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eDo I need special cleaning equipment?\u003c\/summary\u003e\n\u003cp\u003eThe routine is designed around spray application, a suitable cleaning brush when needed, and clean water for rinsing.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCan it remove every old stain?\u003c\/summary\u003e\n\u003cp\u003eResults can vary depending on the surface, age, and type of buildup. Older or deeply set stains may require additional cleaning or specialist care.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eWhat should I do before cleaning the whole area?\u003c\/summary\u003e\n\u003cp\u003eTest the product on a small, inconspicuous section first and follow all directions shown on the product packaging.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- FINAL CTA --\u003e\n\u003cdiv class=\"outdoorclean26-final\"\u003e\n\u003ch3\u003eBring Back a Cleaner Outdoor Look\u003c\/h3\u003e\n\u003cp\u003eRefresh patios, decks, fences, brick, and stone with a straightforward outdoor cleaning routine.\u003c\/p\u003e\n\u003ca class=\"outdoorclean26-cta\" href=\"#top\"\u003e Back to Top \u0026amp; Choose Yours \u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- =========================================================\n     AUTO-SCROLL CUSTOMER FEEDBACK\n     ========================================================= --\u003e\n\u003csection class=\"outdoor-review-wrap\"\u003e\n\u003cdiv class=\"outdoor-review-inner\"\u003e\n\u003cdiv class=\"outdoor-review-header\"\u003e\n\u003cspan class=\"outdoor-review-eyebrow\"\u003e Customer Feedback \u003c\/span\u003e\n\u003ch2\u003eWhat Customers Are Saying\u003c\/h2\u003e\n\u003cp\u003eExperiences shared by homeowners using the multi-surface outdoor cleaning spray for routine outdoor care.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoor-scroll-container\"\u003e\n\u003cdiv class=\"outdoor-scroll-track\"\u003e\n\u003c!-- FIRST SET --\u003e\n\u003cdiv class=\"outdoor-review-card\"\u003e\n\u003cdiv class=\"outdoor-stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp class=\"outdoor-review-text\"\u003eI used this spray on my stone patio which had built-up green growth from constant shade. Followed the 3-5-minute wait time, gave it a light scrub and rinsed. The patio looks noticeably fresher, and I didn't need heavy pressure-washing equipment. Very convenient for weekend yard work.\u003c\/p\u003e\n\u003cdiv class=\"outdoor-review-author\"\u003eKaren M. — Ohio\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoor-review-card\"\u003e\n\u003cdiv class=\"outdoor-stars\"\u003e★★★★☆\u003c\/div\u003e\n\u003cp class=\"outdoor-review-text\"\u003eGreat for routine fence maintenance. My wooden fence had dark weather marks in several spots. It handled most surface grime well. Very old, deeply embedded discoloration needed a second pass, but overall it saved me hours of scrubbing by hand.\u003c\/p\u003e\n\u003cdiv class=\"outdoor-review-author\"\u003eTodd R. — Pennsylvania\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoor-review-card\"\u003e\n\u003cdiv class=\"outdoor-stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp class=\"outdoor-review-text\"\u003ePerfect for the walkway around my back porch. Dirt and mildew love to settle in between the paving joints. This spray loosened grime out of those narrow grooves easily. Compact bottle stores nicely in my garden shed without taking up much space.\u003c\/p\u003e\n\u003cdiv class=\"outdoor-review-author\"\u003eLisa H. — Georgia\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoor-review-card\"\u003e\n\u003cdiv class=\"outdoor-stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp class=\"outdoor-review-text\"\u003eGot tired of scrubbing my deck every spring before cookout season. Spray-wait-scrub-rinse workflow is straightforward. It lifted weather-related surface dirt, and my deck looks well-kept again before guests arrive.\u003c\/p\u003e\n\u003cdiv class=\"outdoor-review-author\"\u003eMark S. — Missouri\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoor-review-card\"\u003e\n\u003cdiv class=\"outdoor-stars\"\u003e★★★★☆\u003c\/div\u003e\n\u003cp class=\"outdoor-review-text\"\u003eTested it on brick surfaces around the garden. Most everyday outdoor grime came off nicely. Important to do the small hidden spot test first as instructions suggest.\u003c\/p\u003e\n\u003cdiv class=\"outdoor-review-author\"\u003eJulia B. — North Carolina\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoor-review-card\"\u003e\n\u003cdiv class=\"outdoor-stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp class=\"outdoor-review-text\"\u003eNo complicated setup is my favourite part. I sprayed sections of my patio, waited a few minutes, brushed and rinsed. Nice solution for routine outdoor maintenance.\u003c\/p\u003e\n\u003cdiv class=\"outdoor-review-author\"\u003eEric P. — Michigan\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoor-review-card\"\u003e\n\u003cdiv class=\"outdoor-stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp class=\"outdoor-review-text\"\u003eI prepped my outdoor areas ahead of a family barbecue. Used it on both patio pavers and parts of my perimeter fence. Simple application and convenient for regular weekend cleanup.\u003c\/p\u003e\n\u003cdiv class=\"outdoor-review-author\"\u003eRachel T. — Tennessee\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoor-review-card\"\u003e\n\u003cdiv class=\"outdoor-stars\"\u003e★★★★☆\u003c\/div\u003e\n\u003cp class=\"outdoor-review-text\"\u003eWorks well on weather-exposed outdoor hard surfaces. I treated several dirty fence panels. For extra-dirty spots you may need to repeat the treatment.\u003c\/p\u003e\n\u003cdiv class=\"outdoor-review-author\"\u003eSteven G. — Indiana\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoor-review-card\"\u003e\n\u003cdiv class=\"outdoor-stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp class=\"outdoor-review-text\"\u003eLove how targeted this spray is. I only needed to treat specific messy patches on my stone path. Bottle size is handy for small-to-medium projects.\u003c\/p\u003e\n\u003cdiv class=\"outdoor-review-author\"\u003eMegan C. — Virginia\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoor-review-card\"\u003e\n\u003cdiv class=\"outdoor-stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp class=\"outdoor-review-text\"\u003eOur shaded backyard patio always looked dull. Instructions are clear and the four-step process is easy to follow for routine outdoor care.\u003c\/p\u003e\n\u003cdiv class=\"outdoor-review-author\"\u003ePaul F. — Wisconsin\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- SECOND SET FOR LOOP --\u003e\n\u003cdiv class=\"outdoor-review-card\"\u003e\n\u003cdiv class=\"outdoor-stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp class=\"outdoor-review-text\"\u003eI used this spray on my stone patio which had built-up green growth from constant shade. Followed the 3-5-minute wait time, gave it a light scrub and rinsed. The patio looks noticeably fresher, and I didn't need heavy pressure-washing equipment. Very convenient for weekend yard work.\u003c\/p\u003e\n\u003cdiv class=\"outdoor-review-author\"\u003eKaren M. — Ohio\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoor-review-card\"\u003e\n\u003cdiv class=\"outdoor-stars\"\u003e★★★★☆\u003c\/div\u003e\n\u003cp class=\"outdoor-review-text\"\u003eGreat for routine fence maintenance. My wooden fence had dark weather marks in several spots. It handled most surface grime well. Very old, deeply embedded discoloration needed a second pass, but overall it saved me hours of scrubbing by hand.\u003c\/p\u003e\n\u003cdiv class=\"outdoor-review-author\"\u003eTodd R. — Pennsylvania\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoor-review-card\"\u003e\n\u003cdiv class=\"outdoor-stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp class=\"outdoor-review-text\"\u003ePerfect for the walkway around my back porch. Dirt and mildew love to settle in between the paving joints. This spray loosened grime out of those narrow grooves easily. Compact bottle stores nicely in my garden shed.\u003c\/p\u003e\n\u003cdiv class=\"outdoor-review-author\"\u003eLisa H. — Georgia\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoor-review-card\"\u003e\n\u003cdiv class=\"outdoor-stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp class=\"outdoor-review-text\"\u003eGot tired of scrubbing my deck every spring before cookout season. Spray-wait-scrub-rinse workflow is straightforward. It lifted weather-related surface dirt, and my deck looks well-kept again before guests arrive.\u003c\/p\u003e\n\u003cdiv class=\"outdoor-review-author\"\u003eMark S. — Missouri\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoor-review-card\"\u003e\n\u003cdiv class=\"outdoor-stars\"\u003e★★★★☆\u003c\/div\u003e\n\u003cp class=\"outdoor-review-text\"\u003eTested it on brick surfaces around the garden. Most everyday outdoor grime came off nicely. Important to do the small hidden spot test first as instructions suggest.\u003c\/p\u003e\n\u003cdiv class=\"outdoor-review-author\"\u003eJulia B. — North Carolina\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoor-review-card\"\u003e\n\u003cdiv class=\"outdoor-stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp class=\"outdoor-review-text\"\u003eNo complicated setup is my favourite part. I sprayed sections of my patio, waited a few minutes, brushed and rinsed. Nice solution for routine outdoor maintenance.\u003c\/p\u003e\n\u003cdiv class=\"outdoor-review-author\"\u003eEric P. — Michigan\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoor-review-card\"\u003e\n\u003cdiv class=\"outdoor-stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp class=\"outdoor-review-text\"\u003eI prepped my outdoor areas ahead of a family barbecue. Used it on both patio pavers and parts of my perimeter fence. Simple application and convenient for regular weekend cleanup.\u003c\/p\u003e\n\u003cdiv class=\"outdoor-review-author\"\u003eRachel T. — Tennessee\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoor-review-card\"\u003e\n\u003cdiv class=\"outdoor-stars\"\u003e★★★★☆\u003c\/div\u003e\n\u003cp class=\"outdoor-review-text\"\u003eWorks well on weather-exposed outdoor hard surfaces. I treated several dirty fence panels. For extra-dirty spots you may need to repeat the treatment.\u003c\/p\u003e\n\u003cdiv class=\"outdoor-review-author\"\u003eSteven G. — Indiana\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoor-review-card\"\u003e\n\u003cdiv class=\"outdoor-stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp class=\"outdoor-review-text\"\u003eLove how targeted this spray is. I only needed to treat specific messy patches on my stone path. Bottle size is handy for small-to-medium projects.\u003c\/p\u003e\n\u003cdiv class=\"outdoor-review-author\"\u003eMegan C. — Virginia\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"outdoor-review-card\"\u003e\n\u003cdiv class=\"outdoor-stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp class=\"outdoor-review-text\"\u003eOur shaded backyard patio always looked dull. Instructions are clear and the four-step process is easy to follow for routine outdoor care.\u003c\/p\u003e\n\u003cdiv class=\"outdoor-review-author\"\u003ePaul F. — Wisconsin\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003cstyle\u003e\n\/* =========================================================\n    UK BIG IMAGE REVIEWS\n   GREEN \/ LARGE IMAGE VERSION\n   ========================================================= *\/\n\n.aafq26-review,\n.aafq26-review * {\n  box-sizing: border-box;\n}\n\n.aafq26-review {\n  --aafq-accent: #568627;\n  --aafq-light: #eef5e9;\n  --aafq-dark: #183f22;\n  --aafq-text: #172319;\n  --aafq-muted: #6f786f;\n  --aafq-border: #dce6d6;\n\n  width: 100%;\n  max-width: 720px;\n  margin: 0 auto;\n\n  padding: 38px 0 42px;\n\n  overflow: hidden;\n\n  background:\n    radial-gradient(\n      circle at 92% 4%,\n      rgba(86,134,39,.12) 0,\n      rgba(86,134,39,0) 34%\n    ),\n    linear-gradient(\n      180deg,\n      #ffffff 0%,\n      #f4f8ef 100%\n    );\n\n  font-family: Arial, Helvetica, sans-serif;\n\n  \/*\n    关键：\n    后面根据模块自己的真实宽度响应，\n    不再按照整个浏览器窗口判断。\n  *\/\n  container-type: inline-size;\n  container-name: aafqreview;\n}\n\n\n\/* =========================================================\n   HEADER\n   ========================================================= *\/\n\n.aafq26-review-head {\n  padding: 0 20px;\n  margin-bottom: 16px;\n}\n\n.aafq26-review-kicker {\n  display: block;\n\n  margin: 0 0 7px;\n\n  color: #568627 !important;\n\n  font-size: 12px;\n  line-height: 1.2;\n\n  font-weight: 900;\n\n  letter-spacing: 1.1px;\n\n  text-transform: uppercase;\n}\n\n.aafq26-review-title {\n  margin: 0;\n\n  max-width: 560px;\n\n  color: #171717 !important;\n\n  font-family:\n    Impact,\n    \"Arial Narrow\",\n    \"Roboto Condensed\",\n    Arial,\n    sans-serif;\n\n  font-size: 42px;\n  line-height: .96;\n\n  font-weight: 900;\n\n  letter-spacing: -.5px;\n\n  text-transform: uppercase;\n}\n\n.aafq26-review-title span {\n  color: #568627 !important;\n}\n\n.aafq26-review-desc {\n  max-width: 560px;\n\n  margin: 10px 0 0;\n\n  color: #5f695f !important;\n\n  font-size: 13px;\n  line-height: 1.5;\n}\n\n\n\/* =========================================================\n   TOP CONTROLS\n   ========================================================= *\/\n\n.aafq26-review-topbar {\n  display: flex;\n\n  align-items: center;\n  justify-content: space-between;\n\n  gap: 10px;\n\n  padding: 0 20px;\n\n  margin-bottom: 13px;\n}\n\n.aafq26-review-rating {\n  display: flex;\n\n  align-items: center;\n\n  gap: 8px;\n}\n\n.aafq26-review-rating-stars {\n  color: #568627 !important;\n\n  font-size: 17px;\n  line-height: 1;\n\n  letter-spacing: 1px;\n}\n\n.aafq26-review-rating-text {\n  color: #596359 !important;\n\n  font-size: 11px;\n  line-height: 1.3;\n\n  font-weight: 800;\n}\n\n.aafq26-review-arrows {\n  display: flex;\n  gap: 7px;\n  position: relative;\n  z-index: 20;\n}\n\n.aafq26-review-arrow {\n  width: 40px;\n  height: 40px;\n\n  display: flex;\n\n  align-items: center;\n  justify-content: center;\n\n  padding: 0;\n\n  border: 1px solid #d7dfd3;\n\n  border-radius: 50%;\n\n  background: #ffffff;\n\n  color: #183f22 !important;\n\n  font-size: 22px;\n\n  cursor: pointer;\n  pointer-events: auto;\n  position: relative;\n  z-index: 21;\n  -webkit-appearance: none;\n  appearance: none;\n  touch-action: manipulation;\n\n  transition:\n    background .2s ease,\n    color .2s ease,\n    border-color .2s ease;\n}\n\n.aafq26-review-arrow:hover {\n  background: #568627;\n\n  border-color: #568627;\n\n  color: #ffffff !important;\n}\n\n\n\/* =========================================================\n   SLIDER\n   ========================================================= *\/\n\n.aafq26-review-slider {\n  width: 100%;\n\n  overflow: hidden;\n}\n\n.aafq26-review-track {\n  display: flex;\n\n  gap: 14px;\n\n  width: 100%;\n\n  padding:\n    2px\n    20px\n    14px;\n\n  overflow-x: auto;\n  overflow-y: hidden;\n\n  scroll-snap-type: x mandatory;\n  scroll-behavior: smooth;\n\n  -webkit-overflow-scrolling: touch;\n\n  overscroll-behavior-x: contain;\n\n  scrollbar-width: none;\n\n  -ms-overflow-style: none;\n}\n\n.aafq26-review-track::-webkit-scrollbar {\n  display: none;\n}\n\n\n\/* =========================================================\n   LARGE CARD\n   ========================================================= *\/\n\n.aafq26-review-card {\n  \/*\n    默认就是大卡片。\n    720px 容器里，一张大概 520px，\n    不再强制一屏塞两张。\n  *\/\n  flex: 0 0 74%;\n\n  min-width: 0;\n\n  overflow: hidden;\n\n  border-radius: 18px;\n\n  border: 1px solid #dce6d6;\n\n  background: #ffffff;\n\n  box-shadow:\n    0 9px 25px rgba(30,77,47,.09);\n\n  scroll-snap-align: start;\n}\n\n\n\/* =========================================================\n   BIG IMAGE\n   ========================================================= *\/\n\n.aafq26-review-imagebox {\n  position: relative;\n\n  width: 100%;\n\n  \/*\n    图片明显加高\n  *\/\n  aspect-ratio: 1.35 \/ 1;\n\n  overflow: hidden;\n\n  background: #edf1ea;\n}\n\n.aafq26-review-imagebox img {\n  display: block;\n\n  width: 100%;\n  height: 100%;\n\n  object-fit: cover;\n\n  object-position: center;\n\n  border: 0;\n\n  transition:\n    transform .35s ease;\n}\n\n.aafq26-review-card:hover\n.aafq26-review-imagebox img {\n  transform: scale(1.02);\n}\n\n\n\/* CUSTOMER RESULT *\/\n\n.aafq26-review-photo-label {\n  position: absolute;\n\n  top: 12px;\n  left: 12px;\n\n  display: inline-flex;\n\n  align-items: center;\n\n  min-height: 28px;\n\n  padding: 6px 10px;\n\n  border-radius: 5px;\n\n  background: rgba(24,63,34,.95);\n\n  color: #ffffff !important;\n\n  font-size: 10px;\n  line-height: 1;\n\n  font-weight: 900;\n\n  letter-spacing: .7px;\n\n  text-transform: uppercase;\n}\n\n\n\/* =========================================================\n   CONTENT\n   ========================================================= *\/\n\n.aafq26-review-content {\n  padding: 14px 16px 16px;\n}\n\n.aafq26-review-stars {\n  margin-bottom: 8px;\n\n  color: #568627 !important;\n\n  font-size: 17px;\n  line-height: 1;\n\n  letter-spacing: 1px;\n}\n\n.aafq26-review-quote {\n  margin: 0 0 13px;\n\n  color: #26312a !important;\n\n  font-size: 13px;\n  line-height: 1.48;\n\n  font-weight: 600;\n\n  \/*\n    最多显示两行多一点，\n    防止文字抢图片面积。\n  *\/\n  display: -webkit-box;\n\n  -webkit-line-clamp: 2;\n  -webkit-box-orient: vertical;\n\n  overflow: hidden;\n}\n\n.aafq26-review-person {\n  display: flex;\n\n  align-items: center;\n  justify-content: space-between;\n\n  gap: 10px;\n\n  padding-top: 11px;\n\n  border-top:\n    1px solid #e8eee5;\n}\n\n.aafq26-review-name {\n  margin: 0;\n\n  color: #172319 !important;\n\n  font-size: 13px;\n  line-height: 1.2;\n\n  font-weight: 900;\n}\n\n.aafq26-review-location {\n  display: block;\n\n  margin-top: 3px;\n\n  color: #7a827a !important;\n\n  font-size: 11px;\n  line-height: 1.2;\n\n  font-weight: 600;\n}\n\n.aafq26-review-verified {\n  flex: 0 0 auto;\n\n  display: inline-flex;\n\n  align-items: center;\n\n  padding: 6px 9px;\n\n  border-radius: 999px;\n\n  background: #eef5e9;\n\n  color: #315c20 !important;\n\n  font-size: 9px;\n  line-height: 1;\n\n  font-weight: 900;\n\n  letter-spacing: .3px;\n\n  text-transform: uppercase;\n}\n\n\n\/* =========================================================\n   DOTS\n   ========================================================= *\/\n\n.aafq26-review-dots {\n  display: flex;\n\n  justify-content: center;\n  align-items: center;\n\n  gap: 6px;\n\n  margin-top: 7px;\n}\n\n.aafq26-review-dot {\n  width: 7px;\n  height: 7px;\n\n  padding: 0;\n\n  border: 0;\n\n  border-radius: 999px;\n\n  background: #c7cdc3;\n\n  cursor: pointer;\n\n  transition:\n    width .2s ease,\n    background .2s ease;\n}\n\n.aafq26-review-dot.active {\n  width: 25px;\n\n  background: #568627;\n}\n\n\n\/* =========================================================\n   IMPORTANT:\n   RESPONSIVE BASED ON MODULE WIDTH\n   NOT BROWSER WIDTH\n   ========================================================= *\/\n\n\n\/* 窄详情栏 \/ 手机 *\/\n\n@container aafqreview (max-width: 560px) {\n\n  .aafq26-review {\n    padding:\n      32px\n      0\n      36px;\n  }\n\n\n  .aafq26-review-head {\n    padding:\n      0\n      15px;\n\n    margin-bottom: 13px;\n  }\n\n\n  .aafq26-review-kicker {\n    font-size: 10px;\n  }\n\n\n  .aafq26-review-title {\n    font-size: 30px;\n\n    line-height: .96;\n  }\n\n\n  \/*\n    手机和窄栏把说明进一步缩短\n  *\/\n  .aafq26-review-desc {\n    font-size: 12px;\n\n    line-height: 1.45;\n\n    margin-top: 8px;\n  }\n\n\n  .aafq26-review-topbar {\n    padding:\n      0\n      15px;\n\n    margin-bottom: 10px;\n  }\n\n\n  .aafq26-review-rating-stars {\n    font-size: 15px;\n  }\n\n\n  .aafq26-review-rating-text {\n    font-size: 10px;\n  }\n\n\n  \/*\n    窄栏不显示箭头，\n    让出更多空间\n  *\/\n  .aafq26-review-arrows {\n    display: flex;\n  }\n\n\n  .aafq26-review-track {\n    gap: 10px;\n\n    padding-left: 14px;\n\n    \/*\n      下一张只露一小部分\n    *\/\n    padding-right: 38px;\n  }\n\n\n  \/*\n    关键：\n    一张占容器 92%\n  *\/\n  .aafq26-review-card {\n    flex:\n      0\n      0\n      92%;\n\n    border-radius: 16px;\n  }\n\n\n  \/*\n    手机图片继续加大\n  *\/\n  .aafq26-review-imagebox {\n    aspect-ratio: 1.28 \/ 1;\n  }\n\n\n  .aafq26-review-content {\n    padding:\n      12px\n      14px\n      14px;\n  }\n\n\n  .aafq26-review-stars {\n    margin-bottom: 7px;\n\n    font-size: 16px;\n  }\n\n\n  .aafq26-review-quote {\n    margin-bottom: 11px;\n\n    font-size: 12px;\n\n    line-height: 1.45;\n\n    -webkit-line-clamp: 2;\n  }\n\n\n  .aafq26-review-person {\n    padding-top: 10px;\n  }\n\n\n  .aafq26-review-name {\n    font-size: 12px;\n  }\n\n\n  .aafq26-review-location {\n    font-size: 10px;\n  }\n\n}\n\n\n\/* 很窄手机 *\/\n\n@container aafqreview (max-width: 360px) {\n\n  .aafq26-review-title {\n    font-size: 27px;\n  }\n\n\n  .aafq26-review-card {\n    flex-basis: 94%;\n  }\n\n\n  .aafq26-review-rating-text {\n    display: none;\n  }\n\n}\n\n\n\/* 宽详情区域 *\/\n\n@container aafqreview (min-width: 561px) {\n\n  .aafq26-review-head,\n  .aafq26-review-topbar {\n    padding-left: 28px;\n    padding-right: 28px;\n  }\n\n\n  .aafq26-review-track {\n    padding-left: 28px;\n    padding-right: 28px;\n  }\n\n\n  .aafq26-review-card {\n    flex-basis: 74%;\n  }\n\n}\n\n\n@media (prefers-reduced-motion: reduce) {\n\n  .aafq26-review-track {\n    scroll-behavior: auto;\n  }\n\n}\n\n\u003c\/style\u003e\n\u003csection class=\"outdoor-review-wrap\"\u003e\n\u003cdiv class=\"outdoor-review-inner\"\u003e\n\u003csection class=\"aafq26-review\"\u003e\n\u003cdiv class=\"aafq26-review-head\"\u003e\n\u003cspan class=\"aafq26-review-kicker\"\u003e UK CUSTOMER FEEDBACK \u003c\/span\u003e\n\u003ch2 class=\"aafq26-review-title\"\u003eWHAT CUSTOMERS \u003cspan\u003e ARE SAYING \u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cp class=\"aafq26-review-desc\"\u003eCustomer feedback from everyday use around paving, driveways and gravel areas.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aafq26-review-topbar\"\u003e\n\u003cdiv class=\"aafq26-review-rating\"\u003e\n\u003cspan class=\"aafq26-review-rating-stars\"\u003e ★★★★★ \u003c\/span\u003e \u003cspan class=\"aafq26-review-rating-text\"\u003e Customer feedback \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aafq26-review-arrows\"\u003e\n\u003cbutton class=\"aafq26-review-arrow\" type=\"button\"\u003e ‹ \u003c\/button\u003e \u003cbutton class=\"aafq26-review-arrow\" type=\"button\"\u003e › \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aafq26-review-slider\"\u003e\n\u003cdiv class=\"aafq26-review-track\"\u003e\n\u003c!-- REVIEW 01 --\u003e\n\u003carticle class=\"aafq26-review-card\"\u003e\n\u003cdiv class=\"aafq26-review-imagebox\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0881\/9910\/2753\/files\/e45e25da-3573-4b69-8b7c-3ec83b9e0a0a.png?v=1787999770\" alt=\"AAFQ paving customer result\" loading=\"lazy\"\u003e \u003cspan class=\"aafq26-review-photo-label\"\u003e Customer Result \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aafq26-review-content\"\u003e\n\u003cdiv class=\"aafq26-review-stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp class=\"aafq26-review-quote\"\u003e“Worked well on our driveway and paving weeds. Much easier than pulling them by hand.”\u003c\/p\u003e\n\u003cdiv class=\"aafq26-review-person\"\u003e\n\u003cdiv\u003e\n\u003cp class=\"aafq26-review-name\"\u003eJames W.\u003c\/p\u003e\n\u003cspan class=\"aafq26-review-location\"\u003e\u003cbr\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cspan class=\"aafq26-review-verified\"\u003e Verified \u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c!-- REVIEW 02 --\u003e\n\u003carticle class=\"aafq26-review-card\"\u003e\n\u003cdiv class=\"aafq26-review-imagebox\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0881\/9910\/2753\/files\/d50f9073-36a6-4e3f-b09d-f43197174dfb.png?v=1787999751\" alt=\"AAFQ gravel area customer result\" loading=\"lazy\"\u003e \u003cspan class=\"aafq26-review-photo-label\"\u003e Customer Result \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aafq26-review-content\"\u003e\n\u003cdiv class=\"aafq26-review-stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp class=\"aafq26-review-quote\"\u003e“The gravel strip by our fence is much easier to keep tidy now.”\u003c\/p\u003e\n\u003cdiv class=\"aafq26-review-person\"\u003e\n\u003cdiv\u003e\n\u003cp class=\"aafq26-review-name\"\u003eOliver H.\u003c\/p\u003e\n\u003cspan class=\"aafq26-review-location\"\u003e\u003cbr\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cspan class=\"aafq26-review-verified\"\u003e Verified \u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c!-- REVIEW 03 --\u003e\n\u003carticle class=\"aafq26-review-card\"\u003e\n\u003cdiv class=\"aafq26-review-imagebox\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0881\/9910\/2753\/files\/508c32bd-cf66-4137-af3f-3585e04802fc.png?v=1787999732\" alt=\"AAFQ paving joint customer result\" loading=\"lazy\"\u003e \u003cspan class=\"aafq26-review-photo-label\"\u003e Customer Result \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aafq26-review-content\"\u003e\n\u003cdiv class=\"aafq26-review-stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp class=\"aafq26-review-quote\"\u003e“Good for paving joints and awkward edges where weeds keep returning.”\u003c\/p\u003e\n\u003cdiv class=\"aafq26-review-person\"\u003e\n\u003cdiv\u003e\n\u003cp class=\"aafq26-review-name\"\u003eSarah W.\u003c\/p\u003e\n\u003cspan class=\"aafq26-review-location\"\u003e\u003cbr\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cspan class=\"aafq26-review-verified\"\u003e Verified \u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aafq26-review-dots\"\u003e\n\u003cbutton class=\"aafq26-review-dot active\" type=\"button\"\u003e\u003c\/button\u003e \u003cbutton class=\"aafq26-review-dot\" type=\"button\"\u003e\u003c\/button\u003e \u003cbutton class=\"aafq26-review-dot\" type=\"button\"\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003cscript\u003e\n\n(function () {\n\n  document\n    .querySelectorAll('[data-aafq26-review]')\n    .forEach(function(section) {\n\n\n      const track =\n        section.querySelector(\n          '[data-aafq26-track]'\n        );\n\n\n      const cards =\n        Array.from(\n          section.querySelectorAll(\n            '.aafq26-review-card'\n          )\n        );\n\n\n      const prev =\n        section.querySelector(\n          '[data-aafq26-prev]'\n        );\n\n\n      const next =\n        section.querySelector(\n          '[data-aafq26-next]'\n        );\n\n\n      const dots =\n        Array.from(\n          section.querySelectorAll(\n            '[data-aafq26-dot]'\n          )\n        );\n\n\n      if (!track || !cards.length) {\n        return;\n      }\n\n\n      \/*\n        5000 = 5 秒\n      *\/\n\n      const AUTOPLAY_DELAY = 5000;\n\n\n      let autoplayTimer = null;\n      let scrollTimer = null;\n      let resumeTimer = null;\n\n\n      function getCurrentIndex() {\n\n\n        const trackLeft =\n          track\n            .getBoundingClientRect()\n            .left;\n\n\n        let closestIndex = 0;\n\n        let closestDistance =\n          Infinity;\n\n\n        cards.forEach(\n          function(card, index) {\n\n\n            const cardLeft =\n              card\n                .getBoundingClientRect()\n                .left;\n\n\n            const distance =\n              Math.abs(\n                cardLeft\n                -\n                trackLeft\n              );\n\n\n            if (\n              distance\n              \u003c\n              closestDistance\n            ) {\n\n              closestDistance =\n                distance;\n\n              closestIndex =\n                index;\n\n            }\n\n          }\n        );\n\n\n        return closestIndex;\n\n      }\n\n\n      function updateDots(index) {\n\n\n        if (\n          typeof index !== 'number'\n        ) {\n\n          index =\n            getCurrentIndex();\n\n        }\n\n\n        dots.forEach(\n          function(dot, dotIndex) {\n\n\n            dot.classList.toggle(\n              'active',\n              dotIndex === index\n            );\n\n\n          }\n        );\n\n      }\n\n\n      function goTo(index) {\n\n\n        if (index \u003c 0) {\n\n          index =\n            cards.length - 1;\n\n        }\n\n\n        if (\n          index \u003e= cards.length\n        ) {\n\n          index = 0;\n\n        }\n\n\n        const card =\n          cards[index];\n\n\n        const reduceMotion =\n          window.matchMedia(\n            '(prefers-reduced-motion: reduce)'\n          ).matches;\n\n\n        const trackRect = track.getBoundingClientRect();\n        const cardRect = card.getBoundingClientRect();\n        const targetLeft = track.scrollLeft + (cardRect.left - trackRect.left);\n\n        track.scrollTo({\n          left: targetLeft,\n          behavior: reduceMotion ? 'auto' : 'smooth'\n        });\n\n\n        updateDots(index);\n\n      }\n\n\n      function nextSlide() {\n\n\n        let index =\n          getCurrentIndex() + 1;\n\n\n        if (\n          index \u003e= cards.length\n        ) {\n\n          index = 0;\n\n        }\n\n\n        goTo(index);\n\n      }\n\n\n      function prevSlide() {\n\n\n        let index =\n          getCurrentIndex() - 1;\n\n\n        if (index \u003c 0) {\n\n          index =\n            cards.length - 1;\n\n        }\n\n\n        goTo(index);\n\n      }\n\n\n      function stopAutoplay() {\n\n\n        if (autoplayTimer) {\n\n\n          clearInterval(\n            autoplayTimer\n          );\n\n\n          autoplayTimer = null;\n\n        }\n\n      }\n\n\n      function startAutoplay() {\n\n\n        stopAutoplay();\n\n\n        if (\n          window.matchMedia(\n            '(prefers-reduced-motion: reduce)'\n          ).matches\n        ) {\n\n          return;\n\n        }\n\n\n        autoplayTimer =\n          setInterval(\n            nextSlide,\n            AUTOPLAY_DELAY\n          );\n\n      }\n\n\n      function resumeAutoplay() {\n\n\n        clearTimeout(\n          resumeTimer\n        );\n\n\n        resumeTimer =\n          setTimeout(\n            startAutoplay,\n            1200\n          );\n\n      }\n\n\n      if (next) {\n\n        next.addEventListener(\n          'click',\n          function() {\n\n\n            stopAutoplay();\n\n            nextSlide();\n\n            resumeAutoplay();\n\n\n          }\n        );\n\n      }\n\n\n      if (prev) {\n\n        prev.addEventListener(\n          'click',\n          function() {\n\n\n            stopAutoplay();\n\n            prevSlide();\n\n            resumeAutoplay();\n\n\n          }\n        );\n\n      }\n\n\n      dots.forEach(\n        function(dot) {\n\n\n          dot.addEventListener(\n            'click',\n            function() {\n\n\n              stopAutoplay();\n\n\n              const index =\n                parseInt(\n                  dot.getAttribute(\n                    'data-aafq26-dot'\n                  ),\n                  10\n                );\n\n\n              goTo(index);\n\n              resumeAutoplay();\n\n\n            }\n          );\n\n        }\n      );\n\n\n      track.addEventListener(\n        'scroll',\n        function() {\n\n\n          clearTimeout(\n            scrollTimer\n          );\n\n\n          scrollTimer =\n            setTimeout(\n              function() {\n\n\n                updateDots();\n\n\n              },\n              90\n            );\n\n\n        },\n        {\n          passive: true\n        }\n      );\n\n\n      track.addEventListener(\n        'touchstart',\n        stopAutoplay,\n        {\n          passive: true\n        }\n      );\n\n\n      track.addEventListener(\n        'touchend',\n        resumeAutoplay,\n        {\n          passive: true\n        }\n      );\n\n\n      section.addEventListener(\n        'mouseenter',\n        stopAutoplay\n      );\n\n\n      section.addEventListener(\n        'mouseleave',\n        startAutoplay\n      );\n\n\n      document.addEventListener(\n        'visibilitychange',\n        function() {\n\n\n          if (document.hidden) {\n\n            stopAutoplay();\n\n          } else {\n\n            startAutoplay();\n\n          }\n\n\n        }\n      );\n\n\n      updateDots(0);\n\n      startAutoplay();\n\n\n    });\n\n})();\n\n\u003c\/script\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e","brand":"qjj","offers":[{"title":"1pc","offer_id":53403050410273,"sku":"KY-QJPW*1","price":19.99,"currency_code":"USD","in_stock":true},{"title":"2pc","offer_id":53403050443041,"sku":"KY-QJPW*2","price":29.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0881\/9910\/2753\/files\/ChatGPT_Image_2026_8_12_15_52_15.jpg?v=1787764369","url":"https:\/\/kindwellia.com\/products\/qjpw","provider":"kindwellia","version":"1.0","type":"link"}