{"title":"AI Robotic Pool Cleaners","description":"\u003cp\u003eAutonomous robotic pool cleaners and AI-enabled pool cleaning systems for private buyers, hospitality, wellness facilities, rental properties, and commercial pool environments.\u003c\/p\u003e","products":[{"product_id":"dreame-z1-pro-cordless-robotic-pool-cleaner-lifi-app-control-8000-gph-suction-wall-waterline-cleaning-up-to-180-min-auto-retrieval-automatic-pool-vacuum-for-above-in-ground-pools","title":"DREAME Z1 Pro Cordless Robotic Pool Cleaner | 8000 GPH | LiFi \u0026 App Control","description":"\u003ch2\u003eDREAME Z1 Pro Cordless Robotic Pool Cleaner\u003c\/h2\u003e\u003cp\u003eDesigned for above-ground and in-ground pools, the DREAME Z1 Pro combines cordless operation, intelligent navigation and powerful debris collection to simplify routine pool maintenance.\u003c\/p\u003e\u003ch3\u003eKey Features\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003e8000 GPH suction power\u003c\/strong\u003e with four roller brushes for leaves, sand and common pool debris.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFloor, wall and waterline cleaning\u003c\/strong\u003e for broader pool coverage.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePoolSense navigation\u003c\/strong\u003e to plan cleaning routes and help avoid obstacles.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAuto parking\u003c\/strong\u003e when cleaning is complete or service is needed.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e180–300 minutes of stated cleaning runtime\u003c\/strong\u003e, depending on mode and conditions.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLiFi remote and app functionality\u003c\/strong\u003e for supported controls and scheduling features.\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003eSpecifications\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003eModel: Z1 Pro-U\u003c\/li\u003e\n\u003cli\u003eCoverage: up to 2,160 sq. ft.\u003c\/li\u003e\n\u003cli\u003eBattery: 9,600 mAh\u003c\/li\u003e\n\u003cli\u003eColour: Graphite Black\u003c\/li\u003e\n\u003cli\u003eDimensions: 18.51 in L × 16.69 in W × 11.07 in H\u003c\/li\u003e\n\u003cli\u003eManufacturer-stated protection: 2 years\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp\u003e\u003cstrong\u003eImportant:\u003c\/strong\u003e The product information states that app control is available for surface cleaning and not for underwater cleaning. Runtime and coverage depend on pool layout, debris, surface and selected cleaning mode. Review compatibility and applicable support terms before purchase.\u003c\/p\u003e","brand":"Shofield.shop - AI-powered Consumer Electronics","offers":[{"title":"Default Title","offer_id":53985995096405,"sku":"B0F2T49DNT","price":548.9,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1043\/9711\/1637\/files\/71Kv2qU_T0L._AC_SL1500.jpg?v=1779454976"},{"product_id":"2026-new-dreame-robotic-pool-vacuum-wall-waterline-cleaning-up-to-180-runtime-8000-gph-suction-automatic-pool-cleaner-for-above-in-ground-pools-smart-app-for-pools-up-to-1950-sq-ft","title":"(2026 New) DREAME Robotic Pool Vacuum, Wall \u0026 Waterline Cleaning, Up to 180 Runtime, 8000 GPH Suction, Automatic Pool Cleaner for Above \u0026 In-Ground Pools, Smart App, for Pools up to 1950 sq.ft","description":"\u003cdiv\u003e\u003cdiv lang=\"en_US\"\u003e\n \u003cdiv class=\"aplus-v2 desktop celwidget\" cel_widget_id=\"aplus\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"dp_desktop_aplus_feature_div\" data-csa-c-content-id=\"aplus\"\u003e\n  \u003cstyle type=\"text\/css\"\u003e\n    .aplus-v2 .premium-aplus-module-13 .aplus-carousel-container {\n        position: relative;\n    }\n\n    .aplus-v2 .premium-aplus-module-13 .aplus-carousel-element {\n        position: relative;\n        width: 100%;\n    }\n\n    .aplus-v2 .premium-aplus-module-13 .aplus-card-link-button {\n        text-align: center;\n        padding-top: 20px;\n    }\n\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background,\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background h1,\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background h5,\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background ol,\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background ul,\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background ol .a-list-item,\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background ul .a-list-item {\n        color: #fff;\n    }\n\n\u003c\/style\u003e\n  \u003cstyle type=\"text\/css\"\u003e\n\n.aplus-v2 .premium-aplus-module-2 .premium-background-wrapper {\n    position: relative;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper {\n    position: absolute;\n    width: 50%;\n    height: 100%;\n    top: 0;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.right {\n    left: 50%;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.right {\n    left: auto;\n    right: 50%;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.secondary-color {\n    color: #fff;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background {\n    padding: 20px;\n}\n\n.aplus-v2 .premium-aplus-module-2 .aplus-module-2-topic {\n    padding-bottom: 10px;\n}\n\n.aplus-v2 .premium-aplus-module-2 .aplus-module-2-heading {\n    padding-bottom: 20px;\n}\n\n.aplus-v2 .premium-aplus-module-2 .aplus-module-2-description {\n    line-height: 1.5em;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.white-background {\n    background: rgba(255,255,255,0.5);\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background {\n    background: rgba(0,0,0,0.5);\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background h1,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background h5,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background ol,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background ul,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background ol .a-list-item,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background ul .a-list-item {\n  color: #fff;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-content-container {\n    display: table;\n    height: 100%;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.left .premium-intro-content-container {\n    padding-left: 40px;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.left .premium-intro-content-container {\n\tpadding-left: 0px;\n\tpadding-right: 40px;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.right .premium-intro-content-container {\n    padding-right: 40px;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.right .premium-intro-content-container {\n    padding-right: 0px;\n    padding-left: 40px;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-content-column {\n    display: table-cell;\n    vertical-align: middle;\n}\n\n\n\u003c\/style\u003e\n  \u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium modules global styles\n *\/\n.aplus-v2.desktop {\n  max-width: 1464px;\n  min-width: 800px;\n  margin-left: auto;\n  margin-right: auto;\n  word-wrap: break-word;\n  overflow-wrap: break-word;\n  word-break: break-word;\n}\n\/* Undo this for tech-specs because it breaks table layout *\/\n.aplus-v2.desktop .premium-aplus .aplus-tech-spec-table { word-break: initial; }\n\n.aplus-v2 .premium-aplus,\n.aplus-v2 .premium-aplus .aplus-h1,\n.aplus-v2 .premium-aplus .aplus-h2,\n.aplus-v2 .premium-aplus .aplus-p1,\n.aplus-v2 .premium-aplus .aplus-p2,\n.aplus-v2 .premium-aplus .aplus-p3,\n.aplus-v2 .premium-aplus .aplus-accent1,\n.aplus-v2 .premium-aplus .aplus-accent2\n{ font-family: Arial, sans-serif; }\n\n.aplus-v2 .premium-aplus,\n.aplus-v2 .premium-aplus .aplus-h1,\n.aplus-v2 .premium-aplus .aplus-h2,\n.aplus-v2 .premium-aplus .aplus-p1,\n.aplus-v2 .premium-aplus .aplus-p2,\n.aplus-v2 .premium-aplus .aplus-p3,\n.aplus-v2 .premium-aplus .aplus-accent1,\n.aplus-v2 .premium-aplus .aplus-accent2\n{ font-family: inherit; }\n\n\/* type *\/\n.aplus-v2 .premium-aplus .aplus-h1 { font-size: 32px; line-height: 1.2em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-h2 { font-size: 26px; line-height: 1.25em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-h3 { font-size: 18px; line-height: 1.25em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-p1 { font-size: 20px; line-height: 1.3em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-p2 { font-size: 16px; line-height: 1.4em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-p3 { font-size: 14px; line-height: 1.4em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-accent1 { font-size: 16px; line-height: 1.4em; font-weight: 600; }\n.aplus-v2 .premium-aplus .aplus-accent2 { font-size: 14px; line-height: 1.4em; font-weight: 600; }\n\n\/* spacing *\/\n.aplus-v2 .aplus-container-1 { padding: 40px; }\n.aplus-v2 .aplus-container-1-2 { padding: 40px 80px; }\n.aplus-v2 .aplus-container-2 { padding: 80px; }\n.aplus-v2 .aplus-container-3 { padding: 40px 0; }\n\n\/* Display *\/\n.aplus-v2 .premium-aplus .aplus-display-table { display: table; }\n.aplus-v2 .premium-aplus .aplus-display-table-cell { display: table-cell; }\n.aplus-v2 .premium-aplus .aplus-display-inline-block { display: inline-block; }\n\n\/* Aplus display table with min-width 1000px and fill remaining space inside parent *\/\n.aplus-v2.desktop .premium-aplus .aplus-display-table-width { min-width: 1000px; width: 100% }\n\n\/**\n* Padding and margin for element should be 10, 20, 40, or 80 px. Considering mini 10, small 20, medium 40, large 80.\n*\/\n\n\u003c\/style\u003e\n  \u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium-module 12: Nav Carousel\n *\/\n\n.aplus-v2 .premium-aplus-module-12 .aplus-carousel-card {\n    position: relative;\n    width: 100%;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-carousel-container {\n    position: relative;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-image-carousel-container {\n    \/* Match the aspect ratio of the desktop image uploaded via the editor (1464px x 600px) *\/\n    padding-top: calc(600 \/ 1464 * 100%); \/* ~40.983% *\/\n    height: 0;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-image-carousel-container \u003e div {\n    position: absolute;\n    width: 100%;\n    height: 100%;\n    top: 0;\n    left: 0;\n}\n\n\/* Override AUI styles. It poorly attempts to measure the slide heights before waiting until images load. *\/\n.aplus-v2 .premium-aplus-module-12 .a-carousel-viewport {\n    height: 100% !important;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-card-image img {\n    width: 100%;\n    height: auto;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-card-details-wrapper {\n    position: absolute;\n    top: 0;\n    width: 50%;\n    height: 100%;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-card-detail {\n    display: table;\n    width: 100%;\n    height: 100%\n}\n\n.aplus-v2 .premium-aplus-module-12 .card-description {\n    text-align: left;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-12 .card-description {\n    text-align: right;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-table-cell {\n    display: table-cell;\n    vertical-align: middle;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-text-background {\n    padding: 20px;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-text-background-color {\n    background: rgba(0, 0, 0, 0.5);\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-text-background-color,\n.aplus-v2 .premium-aplus-module-12 .aplus-text-background-color h1,\n.aplus-v2 .premium-aplus-module-12 .aplus-text-background-color h5,\n.aplus-v2 .premium-aplus-module-12 .aplus-text-background-color ol,\n.aplus-v2 .premium-aplus-module-12 .aplus-text-background-color ul,\n.aplus-v2 .premium-aplus-module-12 .aplus-text-background-color ol .a-list-item,\n.aplus-v2 .premium-aplus-module-12 .aplus-text-background-color ul .a-list-item {\n    color: #fff;\n}\n\n.aplus-v2 .premium-aplus-module-12 .description {\n    margin-top: 20px;\n}\n\n\/* nav *\/\n.aplus-v2 .premium-aplus-module-12 .aplus-carousel-actions {\n    position: absolute;\n    top: 20px;\n    width: 100%;\n    text-align: center;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-goto-btn {\n    display: inline-block;\n    margin: 7px 10px;\n    cursor: pointer;\n    border-radius: 30px;\n    border: 2px solid #000;\n    line-height: 2.5em;\n    min-width: 200px;\n    background-color: #fff;\n    white-space: nowrap;\n    color: #000;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-carousel-index {\n    display: none;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-goto-btn.aplus-active {\n    border-color: #fff;\n    background-color: #000;\n    color: #fff;\n}\n\n\/**\n * Regimen template specific css\n *\/\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-12 .aplus-goto-btn.regimen {\n    text-align: right;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-carousel-actions.regimen {\n    text-align: right;\n    top: 50%;\n    width: 250px;\n    right: 75px;\n    -webkit-transform: translateY(-50%);\n    -moz-transform: translateY(-50%);\n    -o-transform: translateY(-50%);\n    transform: translateY(-50%);\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-12 .aplus-carousel-actions.regimen {\n    text-align: left;\n    top: 50%;\n    left: 75px;\n    right: auto;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-goto-btn.regimen {\n    display: inline-block;\n    margin: 10px 10px;\n    cursor: pointer;\n    border-radius: 30px;\n    border: 2px solid #000;\n    width: 220px;\n    background-color: #fff;\n    padding: 2px 0 2px;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-goto-btn.regimen.aplus-active {\n    border-color: #fff;\n    background-color: #000;\n    color: #fff;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-goto-btn.regimen.aplus-active .aplus-carousel-index {\n    color: inherit;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-goto-btn.regimen.aplus-active .aplus-carousel-label {\n    color: inherit;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-carousel-actions .regimen .aplus-carousel-index {\n    display: inline-block;\n    width: 12px;\n    color: #000;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-carousel-actions .regimen .aplus-carousel-label {\n    color: #000;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-12 .aplus-carousel-actions .regimen .aplus-carousel-index {\n    margin-left: 0px;\n    margin-right: 6px;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-headline-top.regimen {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    background-color: #000;\n    opacity: 0.5;\n    text-align: center;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-headline-top.regimen .aplus-headline {\n    color: #fff;\n    line-height: 2em;\n}\n\n\/**\n * Navigation template specific css\n *\/\n\n.aplus-v2 .premium-aplus-module-12--top-nav .aplus-carousel-actions {\n    background-color: rgba(0, 0, 0, 0.8);\n    top: 0px;\n}\n\n.aplus-v2 .premium-aplus-module-12--top-nav .aplus-goto-btn {\n    padding: 8px;\n    color: #fff;\n    background-color: transparent;\n    border: none;\n}\n\n.aplus-v2 .premium-aplus-module-12--top-nav .aplus-goto-btn.aplus-active {\n    text-decoration: underline;\n    text-underline-offset: 0.8em;\n    text-decoration-thickness: 3px;\n    background-color: transparent;\n    border: none;\n}\n\u003c\/style\u003e\n  \u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium-module 13: Carousel\n *\/\n\n.aplus-v2 .premium-aplus-module-13 .aplus-card-description-wrapper {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n}\n\n.aplus-v2 .premium-aplus-module-13 .aplus-card-description {\n    display: table;\n    width: 50%;\n    height: 100%;\n    color: #fff;\n}\n\n.aplus-v2 .premium-aplus-module-13 .aplus-card-table-cell {\n    display: table-cell;\n    vertical-align: middle;\n    text-align: left;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-13 .aplus-card-table-cell {\n    text-align: right;\n}\n\n.aplus-v2 .premium-aplus-module-13 .aplus-text-background {\n    background: rgba(0, 0, 0, 0.6);\n}\n\n.aplus-v2 .premium-aplus-module-13 .aplus-card-body {\n    padding: 20px 40px 0 0;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-13 .aplus-card-body {\n    padding: 20px 0 0 40px;\n}\n\n.aplus-v2 .premium-aplus-module-13 .aplus-pagination-wrapper {\n    position: absolute;\n    top: 92%;\n    width: 100%;\n}\n\n\u003c\/style\u003e\n  \u003cscript type=\"text\/javascript\"\u003e(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\nP.now('premium-module-12-nav-carousel').execute('init-premium-module-12-nav-carousel', function(init) {\n    if (init) {\n        return;\n    }\n    P.register('premium-module-12-nav-carousel', function(){\n        return function() {\n            P.when('A', 'jQuery', 'a-carousel-framework', 'ready').execute('premium-12-nav-carousel', function (A, $, framework) {\n                function initiateCarousel(module) {\n                    var MODULE_ID = $(module).data('module-id');\n                    \/**\n                    * Carousel button element classname\n                    * @const\n                    *\/\n                    var GOTO_BTN_CLASS_NAME = \"aplus-goto-btn-\" + MODULE_ID;\n                    \/**\n                    * Carousel button element active classname\n                    * @const\n                    *\/\n                    var GOTO_BTN_ACTIVE_CLASS_NAME = \"aplus-active\";\n                    \/**\n                    * AUI name for aui carousel\n                    * @const\n                    *\/\n                    var CAROUSEL_NAME = \"premium-aplus-12-carousel-\" + MODULE_ID;\n                    \/**\n                    * Module class name\n                    * @const\n                    *\/\n                    var MODULE_CLASS_NAME = \".aplus-v2 .premium-aplus-module-12\";\n                    \/**\n                    * Carousel text container class name\n                    * @const\n                    *\/\n                    var TEXT_CONTAINER_CLASS_NAME = MODULE_CLASS_NAME + \" .aplus-carousel-text-container-\" + MODULE_ID;\n                    \/**\n                    * Carousel text hidden class name\n                    * @const\n                    *\/\n                    var TEXT_CONTAINER_HIDDEN = \"aplus-hidden\";\n                    \/**\n                    * Carousel horizontal scroll container class name\n                    * @const\n                    *\/\n                    var HORIZONTAL_SCROLL_CONTAINER_CLASS_NAME = MODULE_CLASS_NAME + \" .aplus-horizontal-scroll-container-\" + MODULE_ID;\n\n                    function showCarouselText(oldIndex, newIndex) {\n                        var oldClass = TEXT_CONTAINER_CLASS_NAME + \"-\" + oldIndex;\n                        var newClass= TEXT_CONTAINER_CLASS_NAME + \"-\" + newIndex;\n                        $(oldClass).addClass(TEXT_CONTAINER_HIDDEN);\n                        $(newClass).removeClass(TEXT_CONTAINER_HIDDEN);\n                    }\n\n                    function scrollToCarouselButton(scrollLeft) {\n                        if ($(HORIZONTAL_SCROLL_CONTAINER_CLASS_NAME).length) {\n                            $(HORIZONTAL_SCROLL_CONTAINER_CLASS_NAME).animate({scrollLeft}, 200);\n                        }\n                    }\n\n                    \/**\n                    * Creates a CarouselButton class for provided carousel instance\n                    * @param {object} carousel - AUI Carousel instance\n                    * @returns {Class} - CarouselButton Class\n                    *\/\n                    function CarouselButtonTemplate(carousel) {\n                        \/**\n                        * Button for controlling the active slide\n                        * @constructor\n                        * @param {number} index - slide index\n                        * @param {DOMElement} [elem] - optional DOM element to use as this objects DOM representation\n                        *\/\n                        function CarouselButton(index, elem) {\n                            var self = this;\n                            this.index = index;\n                            this.carousel = carousel;\n\n                            \/* create the button element *\/\n                            this.elem = this.getElem(elem);\n                            this.$elem = $(this.elem);  \/* store jquery version *\/\n                            this.elem.addEventListener('click', self.handleClick.bind(self));\n                            this.elem.setAttribute('role', 'tab');\n\n                            \/* add this object to the object manager *\/\n                            CarouselButton.objects.byId[index] = this;\n                            CarouselButton.objects.all.push(this);\n                        }\n\n                        \/**\n                        * Describe behavior for click events on this.elem\n                        * @memberOf CarouselButton\n                        *\/\n                        CarouselButton.prototype.handleClick = function(e) {\n                            e.preventDefault();\n                            this.carousel.gotoPage(this.index);\n                        };\n\n                        \/**\n                        * Enter active state\n                        * @memberOf CarouselButton\n                        *\/\n                        CarouselButton.prototype.activate = function() {\n                            this.$elem.addClass(GOTO_BTN_ACTIVE_CLASS_NAME).attr('aria-selected', 'true');\n                        };\n\n                        \/**\n                        * Enter inactive state\n                        * @memberOf CarouselButton\n                        *\/\n                        CarouselButton.prototype.deactivate = function() {\n                            this.$elem.removeClass(GOTO_BTN_ACTIVE_CLASS_NAME).attr('aria-selected', 'false');\n                        };\n\n                        \/**\n                        * Returns an existing or creates a new bound element for this object\n                        * @memberOf CarouselButton\n                        * @param {DOMElement} [elem] - optionally provide an existing element in the DOM to use\n                        * @returns {DOMElement} - this objects DOM representation\n                        *\/\n                        CarouselButton.prototype.getElem = function(elem) {\n                            if (this.elem) return this.elem;\n                            if (elem) return elem;\n\n                            var createdElem = document.createElement('span');\n                            createdElem.className = GOTO_BTN_CLASS_NAME;\n\n                            return createdElem;\n                        };\n\n                        \/** @const Object manager *\/\n                        CarouselButton.objects = {\n                            byId: {},\n                            all: [],\n                        };\n\n                        return CarouselButton;\n                    }\n\n                    framework.onInit(CAROUSEL_NAME, function(carousel) {\n                        \/** @const {Class} *\/\n                        var CarouselButton = CarouselButtonTemplate(carousel);\n\n                        \/* create carousel controls *\/\n                        var $carouselBtns = $(safeClassSelector(GOTO_BTN_CLASS_NAME));\n                        var btns = $carouselBtns.map(function(i, btnElem) {\n                            return new CarouselButton(i + 1, btnElem);\n                        });\n\n                        \/* activate first one *\/\n                        CarouselButton.objects.byId[1].activate();\n\n                        \/* Listen to slide changes *\/\n                        A.on(\"a:carousel:\" + CAROUSEL_NAME + \":change:pageNumber\", function (data) {\n                            var newCarouselButton = CarouselButton.objects.byId[data.newValue];\n                            var marginLeft = parseInt(getComputedStyle(newCarouselButton.elem).getPropertyValue('margin-left'));\n                            var positionLeft = newCarouselButton.elem.offsetLeft - marginLeft;\n\n                            newCarouselButton.activate();\n                            CarouselButton.objects.byId[data.oldValue].deactivate();\n                            scrollToCarouselButton(positionLeft);\n                            showCarouselText(data.oldValue, data.newValue);\n                        });\n                    });\n\n                    \/**\n                    * @returns {string} - css classname prefixed with module selector\n                    *\/\n                    function safeClassSelector(className) {\n                        return '.' + MODULE_CLASS_NAME + ' .' + className;\n                    }\n                }\n\n                $('.aplus-v2 .premium-aplus-module-12 .aplus-carousel-container').each(function (index, module) {\n                    initiateCarousel(module);\n                });\n                framework.createAll();\n                framework.initializeAll();\n            });\n        }\n    })\n});\n}));\u003c\/script\u003e\n  \u003cdiv class=\"aplus-content-wrapper\"\u003e\n   \u003cdiv class=\"celwidget aplus-module premium-module-2-fullbackground-image aplus-premium\" cel_widget_id=\"aplus-premium-module-2-fullbackground-image\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"dp_desktop_aplus_premium-module-2-fullbackground-image_div\" data-csa-c-content-id=\"aplus_premium-module-2-fullbackground-image\"\u003e\n    \u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-2\"\u003e\n     \u003cdiv class=\"a-section a-spacing-none premium-background-wrapper\"\u003e\n      \u003cdiv class=\"a-section a-spacing-none background-image\"\u003e\n       \u003cimg alt=\"Dreame Z1\" class=\"a-lazy-loaded\" data-src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/14ddc25e-7275-44b4-96bd-681e9034364a.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/14ddc25e-7275-44b4-96bd-681e9034364a.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n       \u003cnoscript\u003e\n        \u003cimg alt=\"Dreame Z1\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/14ddc25e-7275-44b4-96bd-681e9034364a.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n       \u003c\/noscript\u003e\n      \u003c\/div\u003e\n     \u003c\/div\u003e\n     \u003cdiv class=\"a-section a-text-center\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"celwidget aplus-module premium-module-13-carousel aplus-premium\" cel_widget_id=\"aplus-premium-module-13-carousel\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"dp_desktop_aplus_premium-module-13-carousel_div\" data-csa-c-content-id=\"aplus_premium-module-13-carousel\"\u003e\n    \u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-13\"\u003e\n     \u003cdiv class=\"a-section a-spacing-none aplus-carousel-container\"\u003e\n      \u003cdiv id=\"premium-aplus-13-carousel-1-id\" data-a-carousel-options='{\"peek_percentage\":0,\"minimum_gutter_width\":0,\"show_partial_next\":false,\"name\":\"premium-aplus-13-carousel-1\"}' aria-label=\"Featured content carousel\" aria-roledescription=\"carousel\" data-a-display-strategy=\"single\" data-a-transition-strategy=\"slideCircular\" role=\"region\" class=\"a-begin a-carousel-container a-carousel-static a-carousel-display-single a-carousel-transition-slideCircular\"\u003e\n       \u003cinput autocomplete=\"on\" type=\"hidden\" class=\"a-carousel-firstvisibleitem\"\u003e\n       \u003cdiv class=\"a-row a-carousel-controls a-carousel-row a-carousel-has-buttons a-carousel-overlay-buttons a-carousel-rounded-buttons\"\u003e\n        \u003cdiv class=\"a-carousel-row-inner\"\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-left\"\u003e\n          \u003ca class=\"a-carousel-goto-prevpage\" role=\"button\" href=\"#\"\u003e\u003ci class=\"a-icon a-icon-previous-rounded\"\u003e\u003cspan class=\"a-icon-alt\"\u003ePrevious page\u003c\/span\u003e\u003c\/i\u003e\u003c\/a\u003e\n         \u003c\/div\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-center\"\u003e\n          \u003cdiv class=\"a-carousel-viewport\" aria-roledescription=\"slide\"\u003e\n           \u003col class=\"a-carousel\" role=\"list\"\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"2\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-1-slide-0\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"dreame z1\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/7645baa9-b75d-4430-a601-b02ea5678680.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"2\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-1-slide-1\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"Robotic Pool Cleaner with a Triple Surround Fusion Perception System\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/8c4035bc-8402-4957-b38a-17afbb68a6f1.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n           \u003c\/ol\u003e\n          \u003c\/div\u003e\n         \u003c\/div\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-right\"\u003e\n          \u003ca class=\"a-carousel-goto-nextpage\" role=\"button\" href=\"#\"\u003e\u003ci class=\"a-icon a-icon-next-rounded\"\u003e\u003cspan class=\"a-icon-alt\"\u003eNext page\u003c\/span\u003e\u003c\/i\u003e\u003c\/a\u003e\n         \u003c\/div\u003e\n        \u003c\/div\u003e\n       \u003c\/div\u003e\n       \u003cspan class=\"a-end aok-hidden\"\u003e\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"a-section a-spacing-none aplus-pagination-wrapper\"\u003e\n       \u003cstyle type=\"text\/css\"\u003e\n\n.aplus-mantle.aplus-module .aplus-pagination-dots {\n    margin: 0;\n}\n\n.aplus-mantle.aplus-module .aplus-pagination-dot {\n    display: inline-block;\n    list-style: none;\n}\n\n.aplus-mantle.aplus-module .aplus-carousel-nav {\n    text-align:center;\n}\n\n.aplus-mantle.aplus-module .carousel-slider-circle {\n    display: inline-block;\n    cursor: pointer;\n    height: 15px;\n    width: 15px;\n    border: 1px solid #000;\n    border-radius: 20px;\n    background-color: #fff;\n    margin-left: 5px;\n}\n\n.aplus-mantle.aplus-module .carousel-slider-circle.aplus-carousel-active {\n    background-color: #DE7921;\n}\n\n.aplus-mantle.aplus-module .aplus-pagination-dot--display-none {\n    display: none;\n}\n\n\u003c\/style\u003e\n       \u003cscript\u003e\n\nP.now(\"premium-aplus-13-carousel-1\").execute(\"init-pagination-carousel\", function(init) {\n    if (init) {\n        return;\n    }\n    P.register(\"premium-aplus-13-carousel-1\", function() {\n        return function() {\n            P.when(\"A\", \"jQuery\", \"a-carousel-framework\", \"ready\").execute(\"paginate-carousel\", function (A, $, framework) {\n                const ENTER_KEY_CODE = 13;\n                const ESCAPE_KEY_CODE = 27;\n                const LEFT_ARROW_KEY = 37;\n                const RIGHT_ARROW_KEY = 39;\n                const HOME_KEY = 36;\n                const END_KEY = 35;\n\n                var moduleId = \"1\";\n                var carouselName = \"premium-aplus-13-carousel-1\";\n                var paginationAction = \"aplus-pagination-dot-action-\" + moduleId + \"-\" + carouselName;\n                var paginationGroup = \"#aplus-pagination-group-\" + moduleId + \"-\" + carouselName;\n\n                \/* If the carousel goes to a new page *\/\n                A.on(\"a:carousel:\"+carouselName+\":change:pageNumber\", function (data) {\n                    A.$(paginationGroup+\" .carousel-slider-circle\").removeClass(\"aplus-carousel-active\").attr('aria-selected', 'false').attr('tabindex', -1)\n                                    .eq(data.newValue - 1).addClass(\"aplus-carousel-active\").attr('aria-selected', 'true').attr('tabindex', 0);\n                });\n\n                function syncPaginationDotsWithCarouselPages(numPages) {\n                    const parentElement = document.querySelector(paginationGroup);\n                    if (parentElement \u0026\u0026 parentElement.children) {\n                        const children = parentElement.children;\n                        for (let i = 0; i \u003c children.length; i++) {\n                            if (i \u003e= numPages) {\n                                \/\/ If number of dots \u003e num of pages, we should hide other dots\n                                children[i].classList.add('aplus-pagination-dot--display-none');\n                            } else if (children[i].classList.contains('aplus-pagination-dot--display-none')) {\n                                \/\/ Reset display of dots if it was hidden before\n                                children[i].classList.remove('aplus-pagination-dot--display-none');\n                            }\n                        }\n                    }\n                }\n\n                framework.onInit(carouselName, function (carousel) {\n                    try {\n                        var totalPages = carousel.getAttr('totalPages');\n                        syncPaginationDotsWithCarouselPages(totalPages);\n                        \/* Resize event handler to re-calculate the pagination dots count based on orientation *\/\n                        window.addEventListener('resize', function() {\n                            carousel.resize();\n                            totalPages = carousel.getAttr('totalPages');\n                            syncPaginationDotsWithCarouselPages(totalPages);\n                        });\n\n                        A.declarative(paginationAction, 'click keydown', function(event){\n                            var isClick = event.type === 'click';\n                            var isKeydown = event.type === 'keydown';\n                            var isEnter = isKeydown \u0026\u0026 event.$event.keyCode === ENTER_KEY_CODE;\n                            var isEsc = isKeydown \u0026\u0026 event.$event.keyCode === ESCAPE_KEY_CODE;\n                            var isLeftArrow = isKeydown \u0026\u0026 event.$event.keyCode === LEFT_ARROW_KEY;\n                            var isRightArrow = isKeydown \u0026\u0026 event.$event.keyCode === RIGHT_ARROW_KEY;\n                            var isHome = isKeydown \u0026\u0026 event.$event.keyCode === HOME_KEY;\n                            var isEnd = isKeydown \u0026\u0026 event.$event.keyCode === END_KEY;\n\n                            if (isClick || isEnter) {\n                                var data = event.data;\n                                carousel.gotoPage(data.page);\n                            } else if (isEsc) {\n                                event.$target.blur();\n                            } else if (isLeftArrow || isRightArrow || isHome || isEnd) {\n                                event.$event.preventDefault();\n                                const dots = A.$(paginationGroup + \" .carousel-slider-circle\");\n                                const currentIndex = dots.index(event.$target);\n                                let nextIndex;\n\n                                if (isLeftArrow) {\n                                    nextIndex = currentIndex \u003e 0 ? currentIndex - 1 : dots.length - 1;\n                                } else if (isRightArrow) {\n                                    nextIndex = currentIndex \u003c dots.length - 1 ? currentIndex + 1 : 0;\n                                } else if (isHome) {\n                                    nextIndex = 0;\n                                } else if (isEnd) {\n                                    nextIndex = dots.length - 1;\n                                }\n\n                                dots.eq(nextIndex).focus();\n                                carousel.gotoPage(nextIndex + 1);\n                            }\n                        });\n                    } catch (e) {\n                        P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources');\n                    }\n                });\n            });\n        }\n    });\n});\n\u003c\/script\u003e\n       \u003cdiv class=\"aplus-mantle aplus-module\"\u003e\n        \u003cdiv class=\"aplus-carousel-nav\"\u003e\n         \u003cul id=\"aplus-pagination-group-1-premium-aplus-13-carousel-1\" class=\"aplus-pagination-dots\" aria-label=\"tablist-section\" role=\"tablist\"\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block aplus-carousel-active\" aria-selected=\"true\" data-action=\"aplus-pagination-dot-action-1-premium-aplus-13-carousel-1\" data-aplus-pagination-dot-action-1-premium-aplus-13-carousel-1='{\"page\": 1}' aria-label=\"slide-1\" aria-controls=\"premium-aplus-13-carousel-1-slide-0\" tabindex=\"0\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-1-premium-aplus-13-carousel-1\" data-aplus-pagination-dot-action-1-premium-aplus-13-carousel-1='{\"page\": 2}' aria-label=\"slide-2\" aria-controls=\"premium-aplus-13-carousel-1-slide-1\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n         \u003c\/ul\u003e\n        \u003c\/div\u003e\n       \u003c\/div\u003e\n      \u003c\/div\u003e\n     \u003c\/div\u003e\n     \u003cdiv class=\"a-section a-text-center\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cscript type=\"text\/javascript\"\u003e(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n    P.when(\"premium-aplus-13-carousel-1\").execute('invoke-premium-13-carousel-desktop', function(init){init();});\n}));\u003c\/script\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"celwidget aplus-module premium-module-12-nav-carousel aplus-premium\" cel_widget_id=\"aplus-premium-module-12-nav-carousel\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"dp_desktop_aplus_premium-module-12-nav-carousel_div\" data-csa-c-content-id=\"aplus_premium-module-12-nav-carousel\"\u003e\n    \u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-12 premium-aplus-module-12--top-nav\"\u003e\n     \u003cdiv data-module-id=\"2\" class=\"a-section a-spacing-none aplus-carousel-container\"\u003e\n      \u003cdiv id=\"premium-aplus-12-carousel-2-id\" data-a-carousel-options='{\"peek_percentage\":0,\"minimum_gutter_width\":0,\"show_partial_next\":false,\"name\":\"premium-aplus-12-carousel-2\"}' aria-label=\"Featured content carousel\" aria-roledescription=\"carousel\" data-a-display-strategy=\"single\" data-a-transition-strategy=\"slideCircular\" role=\"region\" class=\"a-begin a-carousel-container a-carousel-static a-carousel-display-single a-carousel-transition-slideCircular aplus-image-carousel-container\"\u003e\n       \u003cinput autocomplete=\"on\" type=\"hidden\" class=\"a-carousel-firstvisibleitem\"\u003e\n       \u003cdiv class=\"a-row a-carousel-controls a-carousel-row a-carousel-has-buttons a-carousel-overlay-buttons a-carousel-rounded-buttons\"\u003e\n        \u003cdiv class=\"a-carousel-row-inner\"\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-left\"\u003e\n          \u003ca class=\"a-carousel-goto-prevpage\" role=\"button\" href=\"#\"\u003e\u003ci class=\"a-icon a-icon-previous-rounded\"\u003e\u003cspan class=\"a-icon-alt\"\u003ePrevious page\u003c\/span\u003e\u003c\/i\u003e\u003c\/a\u003e\n         \u003c\/div\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-center\"\u003e\n          \u003cdiv class=\"a-carousel-viewport\" aria-roledescription=\"slide\"\u003e\n           \u003col class=\"a-carousel\" role=\"list\"\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-card\" aria-setsize=\"2\"\u003e\n             \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n              \u003cimg alt=\"8,000GPH Powerful Suction\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/a05a113a-042e-4d60-aba8-73bfe150ae23.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-card\" aria-setsize=\"2\"\u003e\n             \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n              \u003cimg alt=\"Active Dual Brushing Dual Brushes, Double the Scrubbing\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/5f809683-8fd6-438c-ad00-375666be53b3.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n           \u003c\/ol\u003e\n          \u003c\/div\u003e\n         \u003c\/div\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-right\"\u003e\n          \u003ca class=\"a-carousel-goto-nextpage\" role=\"button\" href=\"#\"\u003e\u003ci class=\"a-icon a-icon-next-rounded\"\u003e\u003cspan class=\"a-icon-alt\"\u003eNext page\u003c\/span\u003e\u003c\/i\u003e\u003c\/a\u003e\n         \u003c\/div\u003e\n        \u003c\/div\u003e\n       \u003c\/div\u003e\n       \u003cspan class=\"a-end aok-hidden\"\u003e\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv id=\"aplus-carousel-actions-2\" aria-label=\"tablist section\" class=\"a-section aplus-carousel-actions\" role=\"tablist\"\u003e\n       \u003cbutton class=\"aplus-goto-btn aplus-goto-btn-2 aplus-active\" role=\"tab\" tabindex=\"0\" aria-selected=\"true\"\u003e\u003cspan class=\"aplus-carousel-index\"\u003e1\u003c\/span\u003e \u003cspan class=\"aplus-accent2 aplus-carousel-label\"\u003e8,000GPH Suction\u003c\/span\u003e\u003c\/button\u003e\n       \u003cbutton class=\"aplus-goto-btn aplus-goto-btn-2 \" role=\"tab\" tabindex=\"0\" aria-selected=\"false\"\u003e\u003cspan class=\"aplus-carousel-index\"\u003e2\u003c\/span\u003e \u003cspan class=\"aplus-accent2 aplus-carousel-label\"\u003eDual Brushes\u003c\/span\u003e\u003c\/button\u003e\n      \u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cscript type=\"text\/javascript\"\u003e(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n    P.when('premium-module-12-nav-carousel').execute('invoke-premium-12-nav-carousel-desktop-top', function(init){\n        init();\n    });\n}));\u003c\/script\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"celwidget aplus-module premium-module-12-nav-carousel aplus-premium\" cel_widget_id=\"aplus-premium-module-12-nav-carousel\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"dp_desktop_aplus_premium-module-12-nav-carousel_div\" data-csa-c-content-id=\"aplus_premium-module-12-nav-carousel\"\u003e\n    \u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-12 premium-aplus-module-12--top-nav\"\u003e\n     \u003cdiv data-module-id=\"3\" class=\"a-section a-spacing-none aplus-carousel-container\"\u003e\n      \u003cdiv id=\"premium-aplus-12-carousel-3-id\" data-a-carousel-options='{\"peek_percentage\":0,\"minimum_gutter_width\":0,\"show_partial_next\":false,\"name\":\"premium-aplus-12-carousel-3\"}' aria-label=\"Featured content carousel\" aria-roledescription=\"carousel\" data-a-display-strategy=\"single\" data-a-transition-strategy=\"slideCircular\" role=\"region\" class=\"a-begin a-carousel-container a-carousel-static a-carousel-display-single a-carousel-transition-slideCircular aplus-image-carousel-container\"\u003e\n       \u003cinput autocomplete=\"on\" type=\"hidden\" class=\"a-carousel-firstvisibleitem\"\u003e\n       \u003cdiv class=\"a-row a-carousel-controls a-carousel-row a-carousel-has-buttons a-carousel-overlay-buttons a-carousel-rounded-buttons\"\u003e\n        \u003cdiv class=\"a-carousel-row-inner\"\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-left\"\u003e\n          \u003ca class=\"a-carousel-goto-prevpage\" role=\"button\" href=\"#\"\u003e\u003ci class=\"a-icon a-icon-previous-rounded\"\u003e\u003cspan class=\"a-icon-alt\"\u003ePrevious page\u003c\/span\u003e\u003c\/i\u003e\u003c\/a\u003e\n         \u003c\/div\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-center\"\u003e\n          \u003cdiv class=\"a-carousel-viewport\" aria-roledescription=\"slide\"\u003e\n           \u003col class=\"a-carousel\" role=\"list\"\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-card\" aria-setsize=\"4\"\u003e\n             \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n              \u003cimg alt=\"waterline cleaning\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/f5b28eb5-0614-487d-a8d2-704585239bc8.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-card\" aria-setsize=\"4\"\u003e\n             \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n              \u003cimg alt=\"Obstacle Avoidance\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/0431a8af-32bd-4418-8920-7e9cec7f29cb.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-card\" aria-setsize=\"4\"\u003e\n             \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n              \u003cimg alt=\"Z1 Cordless Robotic Pool Cleaner\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/5d58452c-e1fb-4a7b-8c91-2c8a6c43e9b5.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-card\" aria-setsize=\"4\"\u003e\n             \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n              \u003cimg alt=\"Smart App Control Explore more advanced features through the Dreamehome App*.\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/8fc04942-ff0b-4ee1-8d0b-b10cea33193e.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n           \u003c\/ol\u003e\n          \u003c\/div\u003e\n         \u003c\/div\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-right\"\u003e\n          \u003ca class=\"a-carousel-goto-nextpage\" role=\"button\" href=\"#\"\u003e\u003ci class=\"a-icon a-icon-next-rounded\"\u003e\u003cspan class=\"a-icon-alt\"\u003eNext page\u003c\/span\u003e\u003c\/i\u003e\u003c\/a\u003e\n         \u003c\/div\u003e\n        \u003c\/div\u003e\n       \u003c\/div\u003e\n       \u003cspan class=\"a-end aok-hidden\"\u003e\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv id=\"aplus-carousel-actions-3\" aria-label=\"tablist section\" class=\"a-section aplus-carousel-actions\" role=\"tablist\"\u003e\n       \u003cbutton class=\"aplus-goto-btn aplus-goto-btn-3 aplus-active\" role=\"tab\" tabindex=\"0\" aria-selected=\"true\"\u003e\u003cspan class=\"aplus-carousel-index\"\u003e1\u003c\/span\u003e \u003cspan class=\"aplus-accent2 aplus-carousel-label\"\u003eWaterline Cleaning\u003c\/span\u003e\u003c\/button\u003e\n       \u003cbutton class=\"aplus-goto-btn aplus-goto-btn-3 \" role=\"tab\" tabindex=\"0\" aria-selected=\"false\"\u003e\u003cspan class=\"aplus-carousel-index\"\u003e2\u003c\/span\u003e \u003cspan class=\"aplus-accent2 aplus-carousel-label\"\u003eObstacle Avoidance\u003c\/span\u003e\u003c\/button\u003e\n       \u003cbutton class=\"aplus-goto-btn aplus-goto-btn-3 \" role=\"tab\" tabindex=\"0\" aria-selected=\"false\"\u003e\u003cspan class=\"aplus-carousel-index\"\u003e4\u003c\/span\u003e \u003cspan class=\"aplus-accent2 aplus-carousel-label\"\u003eAuto Poolside Parking\u003c\/span\u003e\u003c\/button\u003e\n       \u003cbutton class=\"aplus-goto-btn aplus-goto-btn-3 \" role=\"tab\" tabindex=\"0\" aria-selected=\"false\"\u003e\u003cspan class=\"aplus-carousel-index\"\u003e5\u003c\/span\u003e \u003cspan class=\"aplus-accent2 aplus-carousel-label\"\u003eSmart App Control\u003c\/span\u003e\u003c\/button\u003e\n      \u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cscript type=\"text\/javascript\"\u003e(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n    P.when('premium-module-12-nav-carousel').execute('invoke-premium-12-nav-carousel-desktop-top', function(init){\n        init();\n    });\n}));\u003c\/script\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"celwidget aplus-module premium-module-12-nav-carousel aplus-premium\" cel_widget_id=\"aplus-premium-module-12-nav-carousel\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"dp_desktop_aplus_premium-module-12-nav-carousel_div\" data-csa-c-content-id=\"aplus_premium-module-12-nav-carousel\"\u003e\n    \u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-12 premium-aplus-module-12--top-nav\"\u003e\n     \u003cdiv data-module-id=\"4\" class=\"a-section a-spacing-none aplus-carousel-container\"\u003e\n      \u003cdiv id=\"premium-aplus-12-carousel-4-id\" data-a-carousel-options='{\"peek_percentage\":0,\"minimum_gutter_width\":0,\"show_partial_next\":false,\"name\":\"premium-aplus-12-carousel-4\"}' aria-label=\"Featured content carousel\" aria-roledescription=\"carousel\" data-a-display-strategy=\"single\" data-a-transition-strategy=\"slideCircular\" role=\"region\" class=\"a-begin a-carousel-container a-carousel-static a-carousel-display-single a-carousel-transition-slideCircular aplus-image-carousel-container\"\u003e\n       \u003cinput autocomplete=\"on\" type=\"hidden\" class=\"a-carousel-firstvisibleitem\"\u003e\n       \u003cdiv class=\"a-row a-carousel-controls a-carousel-row a-carousel-has-buttons a-carousel-overlay-buttons a-carousel-rounded-buttons\"\u003e\n        \u003cdiv class=\"a-carousel-row-inner\"\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-left\"\u003e\n          \u003ca class=\"a-carousel-goto-prevpage\" role=\"button\" href=\"#\"\u003e\u003ci class=\"a-icon a-icon-previous-rounded\"\u003e\u003cspan class=\"a-icon-alt\"\u003ePrevious page\u003c\/span\u003e\u003c\/i\u003e\u003c\/a\u003e\n         \u003c\/div\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-center\"\u003e\n          \u003cdiv class=\"a-carousel-viewport\" aria-roledescription=\"slide\"\u003e\n           \u003col class=\"a-carousel\" role=\"list\"\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-card\" aria-setsize=\"3\"\u003e\n             \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n              \u003cimg alt=\"Z1 Cordless Robotic Pool Cleaner\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/81c3a31a-65ea-45c8-af22-ad138dd94968.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-card\" aria-setsize=\"3\"\u003e\n             \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n              \u003cimg alt=\"Cordless Robotic Pool Cleaner\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/26f8f651-95a6-4afd-8ea9-cdad7ac54fed.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-card\" aria-setsize=\"3\"\u003e\n             \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n              \u003cimg alt=\"Intelligent Navigation and Path Planning Promises Quick and Thorough Cleaning\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/376bcfac-8627-4257-a8c8-6f13c480396f.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n           \u003c\/ol\u003e\n          \u003c\/div\u003e\n         \u003c\/div\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-right\"\u003e\n          \u003ca class=\"a-carousel-goto-nextpage\" role=\"button\" href=\"#\"\u003e\u003ci class=\"a-icon a-icon-next-rounded\"\u003e\u003cspan class=\"a-icon-alt\"\u003eNext page\u003c\/span\u003e\u003c\/i\u003e\u003c\/a\u003e\n         \u003c\/div\u003e\n        \u003c\/div\u003e\n       \u003c\/div\u003e\n       \u003cspan class=\"a-end aok-hidden\"\u003e\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv id=\"aplus-carousel-actions-4\" aria-label=\"tablist section\" class=\"a-section aplus-carousel-actions\" role=\"tablist\"\u003e\n       \u003cbutton class=\"aplus-goto-btn aplus-goto-btn-4 aplus-active\" role=\"tab\" tabindex=\"0\" aria-selected=\"true\"\u003e\u003cspan class=\"aplus-carousel-index\"\u003e1\u003c\/span\u003e \u003cspan class=\"aplus-accent2 aplus-carousel-label\"\u003ePoolSense Technology\u003c\/span\u003e\u003c\/button\u003e\n       \u003cbutton class=\"aplus-goto-btn aplus-goto-btn-4 \" role=\"tab\" tabindex=\"0\" aria-selected=\"false\"\u003e\u003cspan class=\"aplus-carousel-index\"\u003e2\u003c\/span\u003e \u003cspan class=\"aplus-accent2 aplus-carousel-label\"\u003e4 Cleaning Modes\u003c\/span\u003e\u003c\/button\u003e\n       \u003cbutton class=\"aplus-goto-btn aplus-goto-btn-4 \" role=\"tab\" tabindex=\"0\" aria-selected=\"false\"\u003e\u003cspan class=\"aplus-carousel-index\"\u003e3\u003c\/span\u003e \u003cspan class=\"aplus-accent2 aplus-carousel-label\"\u003eIntelligent Navigation\u003c\/span\u003e\u003c\/button\u003e\n      \u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cscript type=\"text\/javascript\"\u003e(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n    P.when('premium-module-12-nav-carousel').execute('invoke-premium-12-nav-carousel-desktop-top', function(init){\n        init();\n    });\n}));\u003c\/script\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"celwidget aplus-module premium-module-13-carousel aplus-premium\" cel_widget_id=\"aplus-premium-module-13-carousel\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"dp_desktop_aplus_premium-module-13-carousel_div\" data-csa-c-content-id=\"aplus_premium-module-13-carousel\"\u003e\n    \u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-13\"\u003e\n     \u003cdiv class=\"a-section a-spacing-none aplus-carousel-container\"\u003e\n      \u003cdiv id=\"premium-aplus-13-carousel-5-id\" data-a-carousel-options='{\"peek_percentage\":0,\"minimum_gutter_width\":0,\"show_partial_next\":false,\"name\":\"premium-aplus-13-carousel-5\"}' aria-label=\"Featured content carousel\" aria-roledescription=\"carousel\" data-a-display-strategy=\"single\" data-a-transition-strategy=\"slideCircular\" role=\"region\" class=\"a-begin a-carousel-container a-carousel-static a-carousel-display-single a-carousel-transition-slideCircular\"\u003e\n       \u003cinput autocomplete=\"on\" type=\"hidden\" class=\"a-carousel-firstvisibleitem\"\u003e\n       \u003cdiv class=\"a-row a-carousel-controls a-carousel-row a-carousel-has-buttons a-carousel-overlay-buttons a-carousel-rounded-buttons\"\u003e\n        \u003cdiv class=\"a-carousel-row-inner\"\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-left\"\u003e\n          \u003ca class=\"a-carousel-goto-prevpage\" role=\"button\" href=\"#\"\u003e\u003ci class=\"a-icon a-icon-previous-rounded\"\u003e\u003cspan class=\"a-icon-alt\"\u003ePrevious page\u003c\/span\u003e\u003c\/i\u003e\u003c\/a\u003e\n         \u003c\/div\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-center\"\u003e\n          \u003cdiv class=\"a-carousel-viewport\" aria-roledescription=\"slide\"\u003e\n           \u003col class=\"a-carousel\" role=\"list\"\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"5\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-5-slide-0\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"180 mins runtime\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/9c800d17-d6d9-4b7f-a2cf-99411c516bb4.__CR0,0,1464,600_PT0_SX1464_V1___.jpeg\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"5\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-5-slide-1\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"Above-Ground Pool In-Ground Pool\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/ef8796ea-a5d3-4019-a599-a4b78a8b9044.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"5\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-5-slide-2\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"Suitable for all shapes of pools\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/20487011-1d16-41fa-8589-f5dbb366cf31.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"5\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-5-slide-3\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"Suitable for pools made of various materials\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/c336892b-82fe-46eb-b846-d5eca4119357.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"5\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-5-slide-4\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"filter\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/7cd32207-df16-4512-aacf-eff36f3302e8.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n           \u003c\/ol\u003e\n          \u003c\/div\u003e\n         \u003c\/div\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-right\"\u003e\n          \u003ca class=\"a-carousel-goto-nextpage\" role=\"button\" href=\"#\"\u003e\u003ci class=\"a-icon a-icon-next-rounded\"\u003e\u003cspan class=\"a-icon-alt\"\u003eNext page\u003c\/span\u003e\u003c\/i\u003e\u003c\/a\u003e\n         \u003c\/div\u003e\n        \u003c\/div\u003e\n       \u003c\/div\u003e\n       \u003cspan class=\"a-end aok-hidden\"\u003e\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"a-section a-spacing-none aplus-pagination-wrapper\"\u003e\n       \u003cstyle type=\"text\/css\"\u003e\n\n.aplus-mantle.aplus-module .aplus-pagination-dots {\n    margin: 0;\n}\n\n.aplus-mantle.aplus-module .aplus-pagination-dot {\n    display: inline-block;\n    list-style: none;\n}\n\n.aplus-mantle.aplus-module .aplus-carousel-nav {\n    text-align:center;\n}\n\n.aplus-mantle.aplus-module .carousel-slider-circle {\n    display: inline-block;\n    cursor: pointer;\n    height: 15px;\n    width: 15px;\n    border: 1px solid #000;\n    border-radius: 20px;\n    background-color: #fff;\n    margin-left: 5px;\n}\n\n.aplus-mantle.aplus-module .carousel-slider-circle.aplus-carousel-active {\n    background-color: #DE7921;\n}\n\n.aplus-mantle.aplus-module .aplus-pagination-dot--display-none {\n    display: none;\n}\n\n\u003c\/style\u003e\n       \u003cscript\u003e\n\nP.now(\"premium-aplus-13-carousel-5\").execute(\"init-pagination-carousel\", function(init) {\n    if (init) {\n        return;\n    }\n    P.register(\"premium-aplus-13-carousel-5\", function() {\n        return function() {\n            P.when(\"A\", \"jQuery\", \"a-carousel-framework\", \"ready\").execute(\"paginate-carousel\", function (A, $, framework) {\n                const ENTER_KEY_CODE = 13;\n                const ESCAPE_KEY_CODE = 27;\n                const LEFT_ARROW_KEY = 37;\n                const RIGHT_ARROW_KEY = 39;\n                const HOME_KEY = 36;\n                const END_KEY = 35;\n\n                var moduleId = \"5\";\n                var carouselName = \"premium-aplus-13-carousel-5\";\n                var paginationAction = \"aplus-pagination-dot-action-\" + moduleId + \"-\" + carouselName;\n                var paginationGroup = \"#aplus-pagination-group-\" + moduleId + \"-\" + carouselName;\n\n                \/* If the carousel goes to a new page *\/\n                A.on(\"a:carousel:\"+carouselName+\":change:pageNumber\", function (data) {\n                    A.$(paginationGroup+\" .carousel-slider-circle\").removeClass(\"aplus-carousel-active\").attr('aria-selected', 'false').attr('tabindex', -1)\n                                    .eq(data.newValue - 1).addClass(\"aplus-carousel-active\").attr('aria-selected', 'true').attr('tabindex', 0);\n                });\n\n                function syncPaginationDotsWithCarouselPages(numPages) {\n                    const parentElement = document.querySelector(paginationGroup);\n                    if (parentElement \u0026\u0026 parentElement.children) {\n                        const children = parentElement.children;\n                        for (let i = 0; i \u003c children.length; i++) {\n                            if (i \u003e= numPages) {\n                                \/\/ If number of dots \u003e num of pages, we should hide other dots\n                                children[i].classList.add('aplus-pagination-dot--display-none');\n                            } else if (children[i].classList.contains('aplus-pagination-dot--display-none')) {\n                                \/\/ Reset display of dots if it was hidden before\n                                children[i].classList.remove('aplus-pagination-dot--display-none');\n                            }\n                        }\n                    }\n                }\n\n                framework.onInit(carouselName, function (carousel) {\n                    try {\n                        var totalPages = carousel.getAttr('totalPages');\n                        syncPaginationDotsWithCarouselPages(totalPages);\n                        \/* Resize event handler to re-calculate the pagination dots count based on orientation *\/\n                        window.addEventListener('resize', function() {\n                            carousel.resize();\n                            totalPages = carousel.getAttr('totalPages');\n                            syncPaginationDotsWithCarouselPages(totalPages);\n                        });\n\n                        A.declarative(paginationAction, 'click keydown', function(event){\n                            var isClick = event.type === 'click';\n                            var isKeydown = event.type === 'keydown';\n                            var isEnter = isKeydown \u0026\u0026 event.$event.keyCode === ENTER_KEY_CODE;\n                            var isEsc = isKeydown \u0026\u0026 event.$event.keyCode === ESCAPE_KEY_CODE;\n                            var isLeftArrow = isKeydown \u0026\u0026 event.$event.keyCode === LEFT_ARROW_KEY;\n                            var isRightArrow = isKeydown \u0026\u0026 event.$event.keyCode === RIGHT_ARROW_KEY;\n                            var isHome = isKeydown \u0026\u0026 event.$event.keyCode === HOME_KEY;\n                            var isEnd = isKeydown \u0026\u0026 event.$event.keyCode === END_KEY;\n\n                            if (isClick || isEnter) {\n                                var data = event.data;\n                                carousel.gotoPage(data.page);\n                            } else if (isEsc) {\n                                event.$target.blur();\n                            } else if (isLeftArrow || isRightArrow || isHome || isEnd) {\n                                event.$event.preventDefault();\n                                const dots = A.$(paginationGroup + \" .carousel-slider-circle\");\n                                const currentIndex = dots.index(event.$target);\n                                let nextIndex;\n\n                                if (isLeftArrow) {\n                                    nextIndex = currentIndex \u003e 0 ? currentIndex - 1 : dots.length - 1;\n                                } else if (isRightArrow) {\n                                    nextIndex = currentIndex \u003c dots.length - 1 ? currentIndex + 1 : 0;\n                                } else if (isHome) {\n                                    nextIndex = 0;\n                                } else if (isEnd) {\n                                    nextIndex = dots.length - 1;\n                                }\n\n                                dots.eq(nextIndex).focus();\n                                carousel.gotoPage(nextIndex + 1);\n                            }\n                        });\n                    } catch (e) {\n                        P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources');\n                    }\n                });\n            });\n        }\n    });\n});\n\u003c\/script\u003e\n       \u003cdiv class=\"aplus-mantle aplus-module\"\u003e\n        \u003cdiv class=\"aplus-carousel-nav\"\u003e\n         \u003cul id=\"aplus-pagination-group-5-premium-aplus-13-carousel-5\" class=\"aplus-pagination-dots\" aria-label=\"tablist-section\" role=\"tablist\"\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block aplus-carousel-active\" aria-selected=\"true\" data-action=\"aplus-pagination-dot-action-5-premium-aplus-13-carousel-5\" data-aplus-pagination-dot-action-5-premium-aplus-13-carousel-5='{\"page\": 1}' aria-label=\"slide-1\" aria-controls=\"premium-aplus-13-carousel-5-slide-0\" tabindex=\"0\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-5-premium-aplus-13-carousel-5\" data-aplus-pagination-dot-action-5-premium-aplus-13-carousel-5='{\"page\": 2}' aria-label=\"slide-2\" aria-controls=\"premium-aplus-13-carousel-5-slide-1\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-5-premium-aplus-13-carousel-5\" data-aplus-pagination-dot-action-5-premium-aplus-13-carousel-5='{\"page\": 3}' aria-label=\"slide-3\" aria-controls=\"premium-aplus-13-carousel-5-slide-2\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-5-premium-aplus-13-carousel-5\" data-aplus-pagination-dot-action-5-premium-aplus-13-carousel-5='{\"page\": 4}' aria-label=\"slide-4\" aria-controls=\"premium-aplus-13-carousel-5-slide-3\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-5-premium-aplus-13-carousel-5\" data-aplus-pagination-dot-action-5-premium-aplus-13-carousel-5='{\"page\": 5}' aria-label=\"slide-5\" aria-controls=\"premium-aplus-13-carousel-5-slide-4\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n         \u003c\/ul\u003e\n        \u003c\/div\u003e\n       \u003c\/div\u003e\n      \u003c\/div\u003e\n     \u003c\/div\u003e\n     \u003cdiv class=\"a-section a-text-center\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cscript type=\"text\/javascript\"\u003e(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n    P.when(\"premium-aplus-13-carousel-5\").execute('invoke-premium-13-carousel-desktop', function(init){init();});\n}));\u003c\/script\u003e\n   \u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\u003c\/div\u003e\u003cdiv\u003e\u003cdiv id=\"feature-bullets\" class=\"a-section a-spacing-medium a-spacing-top-small\"\u003e\n \u003cul class=\"a-unordered-list a-vertical a-spacing-mini\"\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Maximum Coverage: Thorough and efficient pool cleaning with advanced PoolSense Technology - enabling maximum coverage of pool floors, walls, and waterline. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 8000 GPH Enhanced Powerful Cleaning: Featuring an ultra-strong suction and an adjustable runtime of 180–300 minutes, the Dreame robotic pool cleaner efficiently cleans pools up to 1,950 sq ft in a single cycle. Built with advanced PoolSense technology, it fully scrubs the floor, walls, and waterline \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Upgraded 9600mAh High-Density Battery: Support 180-300 minutes of powerful, uninterrupted cleaning. Designed to handle pools up to 1,950 sq ft, it reduces downtime and keeps your pool spotless with fewer recharges \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e PoolSense Technology: The upgraded Dreame pool vacuum uses ultrasound, 3D light, and TOF sensors to detect walls, floors, and obstacles, allowing it to plan efficient cleaning paths and clean your pool faster and more thoroughly. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Smart App Control: Manage your Dreame Z1 2026 from anywhere via the app. Choose dedicated modes including full pool, floor‑only, wall‑only, and waterline, target specific zones, adjust preferences, and view detailed cleaning history, making pool maintenance effortless and personalized. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Horizontal Waterline Cleaning: Powered by dual pump motors and an aerodynamic design, it clings to pool walls securely and navigates effortlessly up and down the waterline to cover more space - boosting cleaning efficiency by 50% compared to other cordless pool cleaners. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Maximum Protection, Minimum Hassle: Enjoy peace of mind with our 2 year protection. Within the first 4 months, you are eligible for a brand-new replacement. Within 1 year, you’ll receive an upgraded refurbished unit if needed. Our service team is available from 9:00 AM to 9:00 PM to ensure quick support and minimal interruptions, keeping your pool clean and ready to enjoy \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Note: All settings must be configured above water before use; no in‑water adjustments available. \u003c\/span\u003e\u003c\/li\u003e\n \u003c\/ul\u003e\n \u003cdiv data-csa-c-content-id=\"voyager-product-details-jumplink\" data-csa-c-slot-id=\"voyager-product-details-jumplink\" data-csa-c-type=\"link\" class=\"a-section aok-hidden\"\u003e\n  \u003cspan class=\"caretnext\"\u003e›\u003c\/span\u003e \u003ca id=\"seeMoreDetailsLink\" class=\"a-link-normal\" href=\"#productDetails\"\u003e See more product details \u003c\/a\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\u003c\/div\u003e\u003cdiv\u003e\u003cdiv class=\"a-section a-spacing-small a-spacing-top-small\"\u003e\n \u003ctable class=\"a-normal a-spacing-micro\" role=\"list\"\u003e\n  \u003ctbody\u003e\n   \u003ctr class=\"a-spacing-small po-brand\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eBrand\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eDREAME\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-model_name\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eModel Name\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eZ1\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-material\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eMaterial\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003ePlastic\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-color\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eColor\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eGraphite Black\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-item_length_width_height\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eProduct Dimensions\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003e18.51\"L x 16.69\"W x 11.07\"H\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n  \u003c\/tbody\u003e\n \u003c\/table\u003e\n\u003c\/div\u003e\u003c\/div\u003e","brand":"Shofield.shop - AI-powered Consumer Electronics","offers":[{"title":"Default Title","offer_id":53985997881685,"sku":"B0GR56V139","price":471.9,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1043\/9711\/1637\/files\/71ut4_oHGWL._AC_SL1500.jpg?v=1779455031"},{"product_id":"shop-vac-cordless-robotic-pool-cleaner-superior-suction-smart-senor-dirtlock-2-0-90-min-runtime-for-above-ground-flat-pools-up-to-850-sq-ft","title":"Shop-Vac Cordless Robotic Pool Cleaner, Superior Suction, Smart Senor, DirtLock 2.0, 90-Min Runtime for Above-Ground Flat Pools up to 850 Sq.Ft.","description":"\u003cdiv\u003e\u003cdiv lang=\"en_US\"\u003e\n \u003cdiv class=\"aplus-v2 desktop celwidget\" cel_widget_id=\"aplus\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"dp_desktop_aplus_feature_div\" data-csa-c-content-id=\"aplus\"\u003e\n  \u003cstyle type=\"text\/css\"\u003e\n\n.aplus-v2 .premium-aplus-module-2 .premium-background-wrapper {\n    position: relative;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper {\n    position: absolute;\n    width: 50%;\n    height: 100%;\n    top: 0;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.right {\n    left: 50%;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.right {\n    left: auto;\n    right: 50%;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.secondary-color {\n    color: #fff;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background {\n    padding: 20px;\n}\n\n.aplus-v2 .premium-aplus-module-2 .aplus-module-2-topic {\n    padding-bottom: 10px;\n}\n\n.aplus-v2 .premium-aplus-module-2 .aplus-module-2-heading {\n    padding-bottom: 20px;\n}\n\n.aplus-v2 .premium-aplus-module-2 .aplus-module-2-description {\n    line-height: 1.5em;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.white-background {\n    background: rgba(255,255,255,0.5);\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background {\n    background: rgba(0,0,0,0.5);\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background h1,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background h5,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background ol,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background ul,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background ol .a-list-item,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background ul .a-list-item {\n  color: #fff;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-content-container {\n    display: table;\n    height: 100%;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.left .premium-intro-content-container {\n    padding-left: 40px;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.left .premium-intro-content-container {\n\tpadding-left: 0px;\n\tpadding-right: 40px;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.right .premium-intro-content-container {\n    padding-right: 40px;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.right .premium-intro-content-container {\n    padding-right: 0px;\n    padding-left: 40px;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-content-column {\n    display: table-cell;\n    vertical-align: middle;\n}\n\n\n\u003c\/style\u003e\n  \u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium modules global styles\n *\/\n.aplus-v2.desktop {\n  max-width: 1464px;\n  min-width: 800px;\n  margin-left: auto;\n  margin-right: auto;\n  word-wrap: break-word;\n  overflow-wrap: break-word;\n  word-break: break-word;\n}\n\/* Undo this for tech-specs because it breaks table layout *\/\n.aplus-v2.desktop .premium-aplus .aplus-tech-spec-table { word-break: initial; }\n\n.aplus-v2 .premium-aplus,\n.aplus-v2 .premium-aplus .aplus-h1,\n.aplus-v2 .premium-aplus .aplus-h2,\n.aplus-v2 .premium-aplus .aplus-p1,\n.aplus-v2 .premium-aplus .aplus-p2,\n.aplus-v2 .premium-aplus .aplus-p3,\n.aplus-v2 .premium-aplus .aplus-accent1,\n.aplus-v2 .premium-aplus .aplus-accent2\n{ font-family: Arial, sans-serif; }\n\n.aplus-v2 .premium-aplus,\n.aplus-v2 .premium-aplus .aplus-h1,\n.aplus-v2 .premium-aplus .aplus-h2,\n.aplus-v2 .premium-aplus .aplus-p1,\n.aplus-v2 .premium-aplus .aplus-p2,\n.aplus-v2 .premium-aplus .aplus-p3,\n.aplus-v2 .premium-aplus .aplus-accent1,\n.aplus-v2 .premium-aplus .aplus-accent2\n{ font-family: inherit; }\n\n\/* type *\/\n.aplus-v2 .premium-aplus .aplus-h1 { font-size: 32px; line-height: 1.2em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-h2 { font-size: 26px; line-height: 1.25em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-h3 { font-size: 18px; line-height: 1.25em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-p1 { font-size: 20px; line-height: 1.3em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-p2 { font-size: 16px; line-height: 1.4em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-p3 { font-size: 14px; line-height: 1.4em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-accent1 { font-size: 16px; line-height: 1.4em; font-weight: 600; }\n.aplus-v2 .premium-aplus .aplus-accent2 { font-size: 14px; line-height: 1.4em; font-weight: 600; }\n\n\/* spacing *\/\n.aplus-v2 .aplus-container-1 { padding: 40px; }\n.aplus-v2 .aplus-container-1-2 { padding: 40px 80px; }\n.aplus-v2 .aplus-container-2 { padding: 80px; }\n.aplus-v2 .aplus-container-3 { padding: 40px 0; }\n\n\/* Display *\/\n.aplus-v2 .premium-aplus .aplus-display-table { display: table; }\n.aplus-v2 .premium-aplus .aplus-display-table-cell { display: table-cell; }\n.aplus-v2 .premium-aplus .aplus-display-inline-block { display: inline-block; }\n\n\/* Aplus display table with min-width 1000px and fill remaining space inside parent *\/\n.aplus-v2.desktop .premium-aplus .aplus-display-table-width { min-width: 1000px; width: 100% }\n\n\/**\n* Padding and margin for element should be 10, 20, 40, or 80 px. Considering mini 10, small 20, medium 40, large 80.\n*\/\n\n\u003c\/style\u003e\n  \u003cdiv class=\"aplus-content-wrapper\"\u003e\n   \u003cdiv class=\"celwidget aplus-module premium-module-2-fullbackground-image aplus-premium\" cel_widget_id=\"aplus-premium-module-2-fullbackground-image\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"dp_desktop_aplus_premium-module-2-fullbackground-image_div\" data-csa-c-content-id=\"aplus_premium-module-2-fullbackground-image\"\u003e\n    \u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-2\"\u003e\n     \u003cdiv class=\"a-section a-spacing-none premium-background-wrapper\"\u003e\n      \u003cdiv class=\"a-section a-spacing-none background-image\"\u003e\n       \u003cimg alt=\"SV5430535\" class=\"a-lazy-loaded\" data-src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/0c4d3b57-0049-4413-998d-5e1ef036c104.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/0c4d3b57-0049-4413-998d-5e1ef036c104.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n       \u003cnoscript\u003e\n        \u003cimg alt=\"SV5430535\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/0c4d3b57-0049-4413-998d-5e1ef036c104.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n       \u003c\/noscript\u003e\n      \u003c\/div\u003e\n     \u003c\/div\u003e\n     \u003cdiv class=\"a-section a-text-center\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"celwidget aplus-module premium-module-2-fullbackground-image aplus-premium\" cel_widget_id=\"aplus-premium-module-2-fullbackground-image\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"dp_desktop_aplus_premium-module-2-fullbackground-image_div\" data-csa-c-content-id=\"aplus_premium-module-2-fullbackground-image\"\u003e\n    \u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-2\"\u003e\n     \u003cdiv class=\"a-section a-spacing-none premium-background-wrapper\"\u003e\n      \u003cdiv class=\"a-section a-spacing-none background-image\"\u003e\n       \u003cimg alt=\"SV5430535\" class=\"a-lazy-loaded\" data-src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/c95e53b3-c6f4-4ad2-b608-b1e6ac7e258c.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/c95e53b3-c6f4-4ad2-b608-b1e6ac7e258c.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n       \u003cnoscript\u003e\n        \u003cimg alt=\"SV5430535\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/c95e53b3-c6f4-4ad2-b608-b1e6ac7e258c.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n       \u003c\/noscript\u003e\n      \u003c\/div\u003e\n     \u003c\/div\u003e\n     \u003cdiv class=\"a-section a-text-center\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n   \u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\u003c\/div\u003e\u003cdiv\u003e\u003cdiv id=\"feature-bullets\" class=\"a-section a-spacing-medium a-spacing-top-small\"\u003e\n \u003cul class=\"a-unordered-list a-vertical a-spacing-mini\"\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Next-Gen Bluehole Suction: Delivers 2x suction power, 4x leaf removal efficiency, and 7.5x performance on 3–8 mm debris. Combined with a Hydrodynamic Design that boosts underwater speed by 10%, it ensures a deep, fast clean for every inch of your pool floor. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Smart Corner Boost \u0026amp; Sensors: Equipped with upgraded precision sensors for swift turns upon wall contact. The Corner Boost Technology automatically detects edges and performs a second pass, ensuring edge-to-edge coverage and eliminating stubborn debris in tight corners. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e DirtLock 2.0 \u0026amp; Fast Drainage: DirtLock Tech 2.0 securely traps fine sand and leaves with zero leakage during retrieval. Features a patented drainage system that empties stored water in under 5 seconds, making the unit lightweight and easy to lift out of the water. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Auto-Parking \u0026amp; LED Indicator: Featuring Self-Parking Technology, the vacuum automatically returns to the pool edge when the battery is low for effortless retrieval. The 4-color LED indicator provides instant, real-time status updates and mode feedback at a glance. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Cordless 90-Min Runtime: Enjoy total freedom with a cable-free design and an extended 90-minute battery life. Perfectly optimized for above-ground pools up to 850 sq. ft., offering hassle-free operation and consistent, powerful cleaning without tangled hoses. \u003c\/span\u003e\u003c\/li\u003e\n \u003c\/ul\u003e\n \u003cdiv data-csa-c-content-id=\"voyager-product-details-jumplink\" data-csa-c-slot-id=\"voyager-product-details-jumplink\" data-csa-c-type=\"link\" class=\"a-section aok-hidden\"\u003e\n  \u003cspan class=\"caretnext\"\u003e›\u003c\/span\u003e \u003ca id=\"seeMoreDetailsLink\" class=\"a-link-normal\" href=\"#productDetails\"\u003e See more product details \u003c\/a\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\u003c\/div\u003e\u003cdiv\u003e\u003cdiv class=\"a-section a-spacing-small a-spacing-top-small\"\u003e\n \u003ctable class=\"a-normal a-spacing-micro\" role=\"list\"\u003e\n  \u003ctbody\u003e\n   \u003ctr class=\"a-spacing-small po-brand\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eBrand\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eShop-Vac\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-model_name\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eModel Name\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003e5430535\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-color\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eColor\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eGray\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-item_length_width_height\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eProduct Dimensions\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003e14.72\"L x 13.77\"W x 6.87\"H\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-power_source_type\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003ePower Source\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eBattery Powered\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n  \u003c\/tbody\u003e\n \u003c\/table\u003e\n\u003c\/div\u003e\u003c\/div\u003e","brand":"Shofield.shop - AI-powered Consumer Electronics","offers":[{"title":"Default Title","offer_id":53986034647381,"sku":"B0GWL1GFBX","price":230.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1043\/9711\/1637\/files\/61r5vyaTcRL._AC_SL1500.jpg?v=1779455557"},{"product_id":"aiper-scuba-v3-ai-vision-cordless-robotic-pool-cleaner-include-wireless-charging-dock-smart-waterline-parking-featherlight-design-micromesh-multi-layer-filtration-grey","title":"AIPER Scuba V3 AI Vision Cordless Robotic Pool Cleaner | Wireless Charging Dock","description":"\u003ch2\u003eAIPER Scuba V3 AI Vision Cordless Robotic Pool Cleaner\u003c\/h2\u003e\u003cp\u003eThe AIPER Scuba V3 is a cordless robotic pool cleaner designed to reduce routine cleaning effort through assisted navigation, filtration and straightforward retrieval and charging features.\u003c\/p\u003e\u003ch3\u003eKey Features\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eAI vision-assisted cleaning\u003c\/strong\u003e intended to detect debris and direct cleaning movement.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFloor-to-waterline cleaning\u003c\/strong\u003e with dual brushes and stated 4,800 GPH suction capability.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMicromesh multi-layer filtration\u003c\/strong\u003e with stated 180 micron and ultra-fine 3 micron filtration layers.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSmart waterline parking\u003c\/strong\u003e for easier retrieval after a cleaning cycle.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWireless charging dock included\u003c\/strong\u003e for plug-free product charging and storage.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFeatherlight design\u003c\/strong\u003e with a stated weight of 8.2 kg for easier handling.\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003eSpecifications\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003eModel: Aiper Scuba V3\u003c\/li\u003e\n\u003cli\u003eAvailable colours: Gray and Blue\u003c\/li\u003e\n\u003cli\u003eMaterial: Plastic\u003c\/li\u003e\n\u003cli\u003eDimensions: 17.48 in L × 14.96 in W × 8.58 in H\u003c\/li\u003e\n\u003cli\u003eManufacturer-stated product care period: 2 years\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp\u003e\u003cstrong\u003ePlease note:\u003c\/strong\u003e AI-navigation, privacy-protection and support statements are manufacturer-stated features. Cleaning results depend on pool layout, surface, debris and operating conditions. Confirm compatibility and applicable delivery, return and support terms before purchase.\u003c\/p\u003e","brand":"Shofield.shop - AI-powered Consumer Electronics","offers":[{"title":"Gray","offer_id":53986036941141,"sku":"B0GG97427D","price":989.99,"currency_code":"USD","in_stock":true},{"title":"Blue","offer_id":53986036973909,"sku":"B0GY8DDHTN","price":989.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1043\/9711\/1637\/files\/71O187XeZ4L.jpg?v=1779455610"},{"product_id":"beatbot-aquasense-x-robotic-pool-cleaner-with-astrorinse-cleaning-station-hands-free-cleaning-ai-vision-all-in-one-cleaning-smart-navigation-debris-detection-23l-debris-bin-voice-control","title":"Beatbot Aquasense X Robotic Pool Cleaner with AstroRinse Cleaning Station — Hands-Free Cleaning, AI Vision, All-in-One Cleaning, Smart Navigation, Debris Detection, 23L Debris Bin, Voice Control","description":"\u003cdiv\u003e\u003cdiv id=\"feature-bullets\" class=\"a-section a-spacing-medium a-spacing-top-small\"\u003e\n \u003cul class=\"a-unordered-list a-vertical a-spacing-mini\"\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Automatic Filter Cleaning — Industry-first cleaning station automatically rinses the filter and empties the debris bin by itself in just 3 minutes — for hands-free maintenance.Note: The cleaning station and robot are shipped separately. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Huge 22L Station Debris Basket — With a 22L high-capacity basket, the AstroRinse station stores up to 3,000 leaves and supports up to two months of operation before emptying. Designed to minimize maintenance, it enables longer, more seamless cleaning cycles. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e AI-Powered Precision Cleaning — Powered by HybridSense AI Vision, the system combines AI camera, infrared, and ultrasonic sensors to map your pool in real time, detect debris on both floor and surface, and optimize cleaning paths for full coverage—even in complex pool shapes. It recognizes 40+ debris types for more targeted cleaning, offers a faster AI Quick Mode for efficient spot-focused cleaning, and supports night operation with automatic LED activation. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e One Device, All-In-One Cleaning — Our pool vacuum robot cleans the entire pool, including surfaces, walls, floors, waterlines, and shallow platforms. It cleans where other pool robots can't. Note: This cleaner is capable of operating in water as shallow as 35 cm (≈13.8 in) and cleaning platforms with a minimum area of 1 m × 1 m (3.3 ft × 3.3 ft). \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Smart Water-Surface Parking \u0026amp; One-Touch Retrieval — No more struggling to pull it out. The robot automatically returns to the pool edge and parks on the water surface when cleaning is done or battery is low. Floating steadily for easy access, it stays ready for pickup while the built-in drainage system quickly releases water to reduce weight for effortless one-touch removal. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Effortless App \u0026amp; Voice Control — App and voice control for seamless operation — monitor, command, and manage your pool robot effortlessly. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 3-Year Full-Replacement Warranty —We provide a 3-year full-replacement warranty for worry-free ownership, along with a 30-day hassle-free return and exchange policy. With 365-day availability, multilingual assistance, and professional technical support, we ensure fast and reliable help throughout your ownership experience. \u003c\/span\u003e\u003c\/li\u003e\n \u003c\/ul\u003e\n \u003cdiv data-csa-c-content-id=\"voyager-product-details-jumplink\" data-csa-c-slot-id=\"voyager-product-details-jumplink\" data-csa-c-type=\"link\" class=\"a-section aok-hidden\"\u003e\n  \u003cspan class=\"caretnext\"\u003e›\u003c\/span\u003e \u003ca id=\"seeMoreDetailsLink\" class=\"a-link-normal\" href=\"#productDetails\"\u003e See more product details \u003c\/a\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\u003c\/div\u003e\u003cdiv\u003e\u003cdiv class=\"a-section a-spacing-small a-spacing-top-small\"\u003e\n \u003ctable class=\"a-normal a-spacing-micro\" role=\"list\"\u003e\n  \u003ctbody\u003e\n   \u003ctr class=\"a-spacing-small po-brand\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eBrand\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eBeatbot\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-model_name\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eModel Name\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eBeatbot Aquasense X\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-material\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eMaterial\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eCorrosion-Resistant Materials UV-Resistant Housing\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-color\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eColor\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eOnyx Black\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-item_length_width_height\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eProduct Dimensions\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003e17\"L x 11\"W x 17\"H\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n  \u003c\/tbody\u003e\n \u003c\/table\u003e\n\u003c\/div\u003e\u003c\/div\u003e","brand":"Shofield.shop - AI-powered Consumer Electronics","offers":[{"title":"Default Title","offer_id":53986045165909,"sku":"B0GKPPZLYZ","price":4398.9,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1043\/9711\/1637\/files\/71Acq5rOaCL._AC_SL1500.jpg?v=1779455704"},{"product_id":"beatbot-sora-30-pool-vacuum-robot-4-in-1-cleaner-with-shallow-area-cleaning-6800gph-power-smart-surface-parking-5l-capacity-for-above-in-ground-pools-up-to-3229-sq-ft-vibrant-orange","title":"Beatbot Sora 30 Robotic Pool Cleaner | 6800 GPH | Surface Parking","description":"\u003ch2\u003eBeatbot Sora 30 Robotic Pool Cleaner\u003c\/h2\u003e\u003cp\u003eKeep large above-ground and in-ground pools cleaner with the Beatbot Sora 30, a cordless robotic cleaner built for floor, wall, waterline and shallow-area maintenance.\u003c\/p\u003e\u003ch3\u003eKey Features\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003e6800 GPH suction power\u003c\/strong\u003e to collect leaves and common pool debris efficiently.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSmart water-surface parking\u003c\/strong\u003e for simpler retrieval after a cleaning cycle or when battery power is low.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eShallow-water and platform cleaning\u003c\/strong\u003e down to 8 inches for ledges and shallow sections.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eUp to 5 hours of floor-cleaning runtime\u003c\/strong\u003e from its 10,000 mAh battery.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e5L debris capacity\u003c\/strong\u003e with 150 μm filtration for routine pool debris.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFour cleaning modes\u003c\/strong\u003e with optimized cleaning paths for varying maintenance needs.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eApp control\u003c\/strong\u003e for cleaning-mode selection and status monitoring where supported.\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003eSpecifications\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003eCoverage: up to 3,229 sq. ft.\u003c\/li\u003e\n\u003cli\u003eColour: Vibrant Orange\u003c\/li\u003e\n\u003cli\u003eControl method: app and touch\u003c\/li\u003e\n\u003cli\u003eManufacturer-stated warranty: 2 years\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp\u003e\u003cstrong\u003ePlease note:\u003c\/strong\u003e Runtime and cleaning results depend on pool size, surface, layout, debris conditions and selected cleaning mode. Review usage and compatibility guidance before purchase.\u003c\/p\u003e","brand":"Shofield.shop - AI-powered Consumer Electronics","offers":[{"title":"Vibrant Orange","offer_id":53986047459669,"sku":"B0GS5ZQQXH","price":768.9,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1043\/9711\/1637\/files\/71gRFjVwtLL_bf12179b-157c-41f5-86a8-fa8717d28708.jpg?v=1779455846"},{"product_id":"igarden-k70-robotic-pool-cleaner-k-series-7h-battery-life-cordless-robotic-pool-vacuum-turbo-200-suction-smart-3d-navigation-touchscreen-for-inground-ground-above-ground-pools-black","title":"iGarden K-Series Cordless Robotic Pool Cleaner | Smart Navigation \u0026 Touchscreen","description":"\u003ch2\u003eiGarden K-Series Cordless Robotic Pool Cleaner\u003c\/h2\u003e\u003cp\u003eDesigned for in-ground and above-ground pools, the iGarden K-Series combines cordless cleaning, smart navigation and large-capacity debris collection for easier routine pool maintenance.\u003c\/p\u003e\u003ch3\u003eKey Features\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eExtended runtime by model:\u003c\/strong\u003e the K90 is manufacturer-stated for up to 9 hours of floor cleaning and up to 4.75 hours of full-pool coverage.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e4L debris basket\u003c\/strong\u003e with 180 μm filtration for collecting leaves, grit and common pool debris.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTurbo cleaning mode\u003c\/strong\u003e for higher-intensity cleaning when dealing with more stubborn buildup or heavier debris.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSmart path navigation\u003c\/strong\u003e designed to adapt cleaning movement to pool shape and surfaces.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTouchscreen controls\u003c\/strong\u003e for direct cleaning-mode selection.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eApp functionality and OTA updates\u003c\/strong\u003e for supported settings and product updates; configure wireless functions above water.\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003eSpecifications\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003eAvailable variants: K70 and K90\u003c\/li\u003e\n\u003cli\u003eColour: Black\u003c\/li\u003e\n\u003cli\u003eMaterial: ABS and PC\u003c\/li\u003e\n\u003cli\u003eDimensions: 19.25 in L × 15.31 in W × 9.45 in H\u003c\/li\u003e\n\u003cli\u003eManufacturer-stated protection: 3 years\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp\u003e\u003cstrong\u003ePlease note:\u003c\/strong\u003e Product features and runtime differ by selected model. Performance depends on pool size, layout, surface, debris and operating mode. Confirm the exact variant specification, compatibility and applicable support terms before purchase.\u003c\/p\u003e","brand":"Shofield.shop - AI-powered Consumer Electronics","offers":[{"title":"K90","offer_id":53986050539861,"sku":"B0GJCSZQB3","price":1044.95,"currency_code":"USD","in_stock":true},{"title":"K70","offer_id":53986050507093,"sku":"B0DXV9633M","price":769.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1043\/9711\/1637\/files\/71s1EQcTH-L_35a64771-589c-4a51-8150-52ef906989b9.jpg?v=1779455835"},{"product_id":"2026-upgrade-beatbot-sora-70-pool-vacuum-robot-360-top-to-bottom-cleaning-smart-surface-parking-6l-capacity-6800gph-super-power-for-above-in-ground-pools-up-to-3-200-sq-ft-prussian-blue","title":"Beatbot Sora 70 Robotic Pool Cleaner | 6800 GPH | Full-Surface Cleaning","description":"\u003ch2\u003eBeatbot Sora 70 Robotic Pool Cleaner\u003c\/h2\u003e\u003cp\u003eBuilt for larger above-ground and in-ground pools, the Beatbot Sora 70 combines cordless operation with broad cleaning coverage across the floor, walls, waterline, surface and shallow-water areas.\u003c\/p\u003e\u003ch3\u003eKey Features\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eFull-surface pool cleaning\u003c\/strong\u003e for water surface, waterline, floor, walls and shallow-water zones down to 8 inches.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e6800 GPH suction power\u003c\/strong\u003e to capture leaves and common debris efficiently.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWater-surface debris cleaning\u003c\/strong\u003e using directed water-flow technology to guide floating debris toward the inlet.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSmart surface parking\u003c\/strong\u003e and app-assisted retrieval after cleaning.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eUp to 5 hours of floor-cleaning runtime\u003c\/strong\u003e powered by a 10,000 mAh battery.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e6L debris basket\u003c\/strong\u003e with 150 μm filtration for routine pool debris.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFive cleaning modes\u003c\/strong\u003e for varying pool-maintenance requirements.\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003eSpecifications\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003eCoverage: up to 3,200 sq. ft.\u003c\/li\u003e\n\u003cli\u003eColour: Prussian Blue\u003c\/li\u003e\n\u003cli\u003ePower source: battery powered\u003c\/li\u003e\n\u003cli\u003eProduct dimensions: 16.9 in L × 11.2 in W × 17.1 in H\u003c\/li\u003e\n\u003cli\u003eManufacturer-stated protection: 3 years\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp\u003e\u003cstrong\u003ePlease note:\u003c\/strong\u003e Cleaning results and runtime depend on pool surface, shape, debris conditions and selected mode. Confirm product suitability and operating instructions before use.\u003c\/p\u003e","brand":"Shofield.shop - AI-powered Consumer Electronics","offers":[{"title":"Prussian Blue","offer_id":53986065744213,"sku":"B0H1MHCLG6","price":1263.89,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1043\/9711\/1637\/files\/71OIhEpBJcL.jpg?v=1779455926"},{"product_id":"beatbot-sora-10-cordless-pool-vacuum-robot-for-inground-above-ground-pools-6800-gph-suction-floor-wall-waterline-shallow-area-cleaning-waterline-parking-300-mins-runtime-midnight-blue","title":"Beatbot Sora 10 Cordless Robotic Pool Cleaner | 6800 GPH | Up to 300-Min Runtime","description":"\u003ch2\u003eBeatbot Sora 10 Cordless Robotic Pool Cleaner\u003c\/h2\u003e\u003cp\u003eReduce manual pool maintenance with a cordless robotic cleaner designed for above-ground and in-ground pools. The Sora 10 combines powerful suction, extended runtime and smart retrieval features for routine pool care.\u003c\/p\u003e\u003ch3\u003eKey Features\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003e6800 GPH suction power\u003c\/strong\u003e to capture leaves, sand and everyday debris.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eUp to 300 minutes of floor-cleaning runtime\u003c\/strong\u003e on a full charge.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFloor, wall and waterline cleaning\u003c\/strong\u003e, including shallow-area cleaning down to 12 inches.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSmart waterline parking\u003c\/strong\u003e after a cleaning cycle for easier retrieval.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e5L debris basket\u003c\/strong\u003e with 150 μm filtration for common pool debris.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eApp control and OTA updates\u003c\/strong\u003e via Wi-Fi or Bluetooth where supported.\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003eSpecifications\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003ePool coverage: up to 3,229 sq. ft.\u003c\/li\u003e\n\u003cli\u003eBattery capacity: 7,800 mAh\u003c\/li\u003e\n\u003cli\u003ePool types: above-ground and in-ground pools\u003c\/li\u003e\n\u003cli\u003eAvailable colours: Midnight Blue and Mint\u003c\/li\u003e\n\u003cli\u003eManufacturer-stated protection: 2 years\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp\u003e\u003cstrong\u003ePlease note:\u003c\/strong\u003e Cleaning performance depends on pool shape, surface, debris type and usage conditions. Review compatibility, charging and care guidance before use.\u003c\/p\u003e","brand":"Shofield.shop - AI-powered Consumer Electronics","offers":[{"title":"Midnight Blue","offer_id":53986074853717,"sku":"B0GS1XBMFR","price":548.9,"currency_code":"USD","in_stock":true},{"title":"Mint","offer_id":53986074886485,"sku":"B0GS2BQBJ9","price":548.87,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1043\/9711\/1637\/files\/61kkf3zbbrL._AC_SL1500.jpg?v=1779455962"},{"product_id":"igarden-robotic-pool-cleaner-m1-ai-series-9h-runtime-ai-dual-camera-vision-5-019-gph-suction-smart-navigation-wall-waterline-cleaning-for-above-in-ground-pools","title":"iGarden M1 AI Series Robotic Pool Cleaner | Dual-Camera Vision \u0026 Smart Navigation","description":"\u003ch2\u003eiGarden M1 AI Series Robotic Pool Cleaner\u003c\/h2\u003e\u003cp\u003eThe iGarden M1 AI Series is a cordless robotic pool-cleaning range designed for above-ground and in-ground pools, combining dual-camera vision, smart navigation and wall-and-waterline cleaning features.\u003c\/p\u003e\u003ch3\u003eKey Features\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eDual-camera vision system\u003c\/strong\u003e designed to identify debris, boundaries, drains, steps and obstacles while planning its route.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAI-assisted cleaning modes\u003c\/strong\u003e for targeted debris pickup, repeat cleaning of missed areas and adaptive suction where supported by the selected model.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e5019 GPH stated suction capability\u003c\/strong\u003e with dual-layer filtration for everyday pool debris.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWall and waterline cleaning\u003c\/strong\u003e for broader maintenance beyond the pool floor.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLarge-capacity debris chamber\u003c\/strong\u003e designed to reduce emptying frequency during routine use.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eExtended runtime by selected model\u003c\/strong\u003e, with the M1-55 manufacturer-stated for up to 5.5 hours per charge.\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003eSpecifications\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003eSeries: M1 AI Series\u003c\/li\u003e\n\u003cli\u003eAvailable variants: M1-45, M1-55, M1-70 and M1-90\u003c\/li\u003e\n\u003cli\u003eColour: Red\u003c\/li\u003e\n\u003cli\u003eMaterial: ABS and PC\u003c\/li\u003e\n\u003cli\u003eDimensions: 19 in L × 15.4 in W × 9.8 in H\u003c\/li\u003e\n\u003cli\u003eManufacturer-stated warranty: 3 years\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp\u003e\u003cstrong\u003ePlease note:\u003c\/strong\u003e Runtime, feature availability and cleaning coverage differ by selected M1 variant. Any manufacturer-stated test results depend on test conditions and may vary in real pools. Confirm the exact model specification, pool compatibility and applicable delivery, return and support terms before purchase.\u003c\/p\u003e","brand":"Shofield.shop - AI-powered Consumer Electronics","offers":[{"title":"M1-70","offer_id":53986085568853,"sku":"B0GZD1ZZ7G","price":1979.99,"currency_code":"USD","in_stock":true},{"title":"M1-90","offer_id":53986085601621,"sku":"B0GZD8ZNMK","price":2309.99,"currency_code":"USD","in_stock":true},{"title":"M1-45","offer_id":53986085634389,"sku":"B0H1HV54FD","price":1429.99,"currency_code":"USD","in_stock":true},{"title":"M1-55","offer_id":53986085667157,"sku":"B0GK1C56SJ","price":1099.98,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1043\/9711\/1637\/files\/61n7n4B6ayL.jpg?v=1779456168"},{"product_id":"spino-e1-cordless-robotic-pool-cleaner-pool-robot-for-wall-waterline-cleaning-smart-arc-path-up-to-1-600-sq-ft-up-to-210-mins-runtime-pool-cleaner-with-5-modes-app-control","title":"Spino E1 Cordless Robotic Pool Cleaner, Pool Robot for Wall \u0026 Waterline Cleaning, Smart Arc Path up to 1,600 Sq.ft, Up to 210 Mins Runtime, Pool Cleaner with 5 Modes, APP Control","description":"\u003cdiv\u003e\u003cdiv lang=\"en_US\"\u003e\n \u003cdiv class=\"aplus-v2 desktop celwidget\" cel_widget_id=\"aplus\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"dp_desktop_aplus_feature_div\" data-csa-c-content-id=\"aplus\"\u003e\n  \u003cstyle type=\"text\/css\"\u003e\n    .aplus-v2 .premium-aplus-module-13 .aplus-carousel-container {\n        position: relative;\n    }\n\n    .aplus-v2 .premium-aplus-module-13 .aplus-carousel-element {\n        position: relative;\n        width: 100%;\n    }\n\n    .aplus-v2 .premium-aplus-module-13 .aplus-card-link-button {\n        text-align: center;\n        padding-top: 20px;\n    }\n\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background,\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background h1,\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background h5,\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background ol,\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background ul,\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background ol .a-list-item,\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background ul .a-list-item {\n        color: #fff;\n    }\n\n\u003c\/style\u003e\n  \u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium-module 11: FAQs - Common Styles (All Devices)\n *\/\n\n.aplus-v2 .premium-aplus-module-11 {\n    background: #fff;\n    position: relative;\n}\n\n.aplus-v2 .premium-aplus-module-11.aplus-secondary-color {\n    background: #000;\n}\n\n.aplus-v2 .premium-aplus-module-11 .aplus-question,\n.aplus-v2 .premium-aplus-module-11 .aplus-answer {\n    display: block;\n    width: 100%;\n    margin: 0;\n}\n\n.aplus-v2 .premium-aplus-module-11 .aplus-answer {\n    visibility: hidden;\n    opacity: 0;\n    height: 0;\n    transition: display 0.1s linear, opacity 0.1s linear, height 0.1s linear;\n    transition-behavior: allow-discrete;\n}\n\n.aplus-v2 .premium-aplus-module-11 .aplus-active .aplus-answer {\n    visibility: visible;\n    opacity: 1;\n    height: auto;\n    height: calc-size(auto);\n    min-height: 40px;\n}\n\n.aplus-v2 .premium-aplus-module-11 .faq-list {\n    margin: 0;\n}\n\n.aplus-v2 .premium-aplus-module-11 .faq-block {\n    position: relative;\n    list-style-type: none;\n    cursor: pointer;\n    border: 2px solid #E6E6E6;\n    background: #fff;\n    border-radius: 3px;\n    margin-bottom: 10px;\n}\n\n.aplus-v2 .premium-aplus-module-11.aplus-secondary-color .faq-block {\n    border: none;\n}\n\n.aplus-v2 .premium-aplus-module-11 .aplus-question::before,\n.aplus-v2 .premium-aplus-module-11 .aplus-answer::before {\n    text-align: center;\n    border-radius: 3px;\n    display: inline-block;\n    font-weight: 500;\n    position: absolute;\n    color: #fff;\n    top: 10px;\n    left: 10px;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-11 .aplus-question::before,\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-11 .aplus-answer::before {\n    right: 10px;\n}\n\n.aplus-v2 .premium-aplus-module-11 .aplus-question::before {\n    content: \"Q\";\n    background: #505050;\n    transition: background 0.1s linear;\n    z-index: 2;\n}\n\n.aplus-v2 .premium-aplus-module-11 .aplus-answer::before {\n    content: \"A\";\n    background: #DF7600;\n    color: #000000;\n    z-index: 1;\n    transform: translateY(0px);\n    transition: transform 0.1s linear;\n}\n\n.aplus-v2 .premium-aplus-module-11 .faq-block.aplus-active .aplus-question::before {\n    background: #404040;\n}\n\n.aplus-v2 .premium-aplus-module-11 .faq-block.aplus-active .aplus-answer::before {\n    transform: translateY(40px);\n}\n\n.aplus-v2 .premium-aplus-module-11 .faq-arrow {\n    position: absolute;\n    top: 25px;\n    border: 10px solid transparent;\n    border-top-color: #505050;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-11 .faq-arrow {\n    right: auto;\n}\n\n.aplus-v2 .premium-aplus-module-11 .aplus-active .faq-arrow {\n    top: 15px;\n    border-top-color: transparent;\n    border-bottom-color: #404040;\n}\n\n\u003c\/style\u003e\n  \u003cscript type=\"application\/javascript\"\u003e\n\n    \/**\n     * Common event handler for click and keydown events.\n     * @param {Event} event - The event object.\n     * @param {Function} handleClickOrEnter - Function to handle click or Enter key events.\n     * @param {Function} handleEsc - Function to handle Esc key events.\n     *\/\n    \/\/ [TODO][AplusMantle-8064] Create common event handler util(key events, click events) in AplusModuleResources\n    function handleClickAndKeyEvents(event, handleClickOrEnterOrSpace) {\n        const ENTER_KEY_CODE = 13;\n        const ESCAPE_KEY_CODE = 27;\n        const SPACE_KEY_CODE = 32;\n        const isClick = event.type === 'click';\n        const isKeydown = event.type === 'keydown';\n        const isEnter = isKeydown \u0026\u0026 event.keyCode === ENTER_KEY_CODE;\n        const isSpace = isKeydown \u0026\u0026 event.keyCode === SPACE_KEY_CODE;\n        const isEsc = isKeydown \u0026\u0026 event.keyCode === ESCAPE_KEY_CODE;\n\n        if (isClick || isEnter || isSpace) {\n            handleClickOrEnterOrSpace();\n        } else if (isEsc) {\n            handleEsc(event);\n        }\n    }\n\n    \/**\n    * Function to handle esc key event.\n    * @param {Event} event - The event object.\n    *\/\n    function handleEsc(event) {\n        event.target.blur()  \/\/ force remove focus\n    }\n\n\u003c\/script\u003e\n  \u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium modules global styles\n *\/\n.aplus-v2.desktop {\n  max-width: 1464px;\n  min-width: 800px;\n  margin-left: auto;\n  margin-right: auto;\n  word-wrap: break-word;\n  overflow-wrap: break-word;\n  word-break: break-word;\n}\n\/* Undo this for tech-specs because it breaks table layout *\/\n.aplus-v2.desktop .premium-aplus .aplus-tech-spec-table { word-break: initial; }\n\n.aplus-v2 .premium-aplus,\n.aplus-v2 .premium-aplus .aplus-h1,\n.aplus-v2 .premium-aplus .aplus-h2,\n.aplus-v2 .premium-aplus .aplus-p1,\n.aplus-v2 .premium-aplus .aplus-p2,\n.aplus-v2 .premium-aplus .aplus-p3,\n.aplus-v2 .premium-aplus .aplus-accent1,\n.aplus-v2 .premium-aplus .aplus-accent2\n{ font-family: Arial, sans-serif; }\n\n.aplus-v2 .premium-aplus,\n.aplus-v2 .premium-aplus .aplus-h1,\n.aplus-v2 .premium-aplus .aplus-h2,\n.aplus-v2 .premium-aplus .aplus-p1,\n.aplus-v2 .premium-aplus .aplus-p2,\n.aplus-v2 .premium-aplus .aplus-p3,\n.aplus-v2 .premium-aplus .aplus-accent1,\n.aplus-v2 .premium-aplus .aplus-accent2\n{ font-family: inherit; }\n\n\/* type *\/\n.aplus-v2 .premium-aplus .aplus-h1 { font-size: 32px; line-height: 1.2em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-h2 { font-size: 26px; line-height: 1.25em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-h3 { font-size: 18px; line-height: 1.25em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-p1 { font-size: 20px; line-height: 1.3em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-p2 { font-size: 16px; line-height: 1.4em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-p3 { font-size: 14px; line-height: 1.4em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-accent1 { font-size: 16px; line-height: 1.4em; font-weight: 600; }\n.aplus-v2 .premium-aplus .aplus-accent2 { font-size: 14px; line-height: 1.4em; font-weight: 600; }\n\n\/* spacing *\/\n.aplus-v2 .aplus-container-1 { padding: 40px; }\n.aplus-v2 .aplus-container-1-2 { padding: 40px 80px; }\n.aplus-v2 .aplus-container-2 { padding: 80px; }\n.aplus-v2 .aplus-container-3 { padding: 40px 0; }\n\n\/* Display *\/\n.aplus-v2 .premium-aplus .aplus-display-table { display: table; }\n.aplus-v2 .premium-aplus .aplus-display-table-cell { display: table-cell; }\n.aplus-v2 .premium-aplus .aplus-display-inline-block { display: inline-block; }\n\n\/* Aplus display table with min-width 1000px and fill remaining space inside parent *\/\n.aplus-v2.desktop .premium-aplus .aplus-display-table-width { min-width: 1000px; width: 100% }\n\n\/**\n* Padding and margin for element should be 10, 20, 40, or 80 px. Considering mini 10, small 20, medium 40, large 80.\n*\/\n\n\u003c\/style\u003e\n  \u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium-module 11: FAQs\n *\/\n\n.aplus-v2 .premium-aplus-module-11 .aplus-question {\n    line-height: 25px;\n    padding-bottom: 10px;\n}\n\n.aplus-v2 .premium-aplus-module-11 .faq-block {\n    padding: 10px 80px 15px 100px;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-11 .faq-block {\n    padding-left: 80px;\n    padding-right: 100px;\n}\n\n.aplus-v2 .premium-aplus-module-11 .faq-block.aplus-active {\n    padding-bottom: 35px;\n}\n\n.aplus-v2 .premium-aplus-module-11 .aplus-question::before,\n.aplus-v2 .premium-aplus-module-11 .aplus-answer::before {\n    width: 80px;\n    line-height: 40px;\n    font-size: 25px;\n}\n\n.aplus-v2 .premium-aplus-module-11 .faq-arrow {\n    right: 40px;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-11 .faq-arrow {\n    left: 40px;\n}\n\n\u003c\/style\u003e\n  \u003cscript type=\"text\/javascript\"\u003e(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\nP.now('premium-module-11-faq').execute('init-premium-module-11-faq', function(init) {\n    if (init) {\n        return;\n    }\n    P.register('premium-module-11-faq', function() {\n        return function() {\n            P.when('A', 'jQuery', 'ready').execute('premium-11-faq', function(A, $){\n                function initFaq(module) {                   \n                    const MODULE_CLASS_NAME = 'premium-aplus-module-11';\n                    const FAQ_CONTAINER_CLASS_NAME = 'faqs-container';\n                    const FAQ_BLOCK_CLASS_NAME = 'faq-block';\n                    const moduleId = $(module).data('faq-block');\n                    const $faqBlocks = $('.aplus-v2 .' + MODULE_CLASS_NAME + ' .' + FAQ_CONTAINER_CLASS_NAME + '.' + moduleId + ' .' + FAQ_BLOCK_CLASS_NAME);\n\n                    \/**\n                    * Function to handle click or Enter or Space key events.\n                    * @param {Element} element - The this object from which the event is dispatched\n                    * @param {faqBlocks} faqBlocks - List of all the Question and Answer blocks.\n                    *\/\n                    function handleClickOrEnterOrSpace(element, faqBlocks) {\n                        const $element = $(element);\n                        const isActive = $element.hasClass('aplus-active');\n\n                        faqBlocks.removeClass('aplus-active');\n                        faqBlocks.find('[data-faq-question]').attr('aria-expanded', 'false');\n\n                        if (!isActive) {\n                            $element.addClass('aplus-active');\n                            $element.find('[data-faq-question]').attr('aria-expanded', 'true');\n                        }\n                    }\n\n                    \/* Using jQuery event namespace for preventing duplicate binding on twister refresh *\/\n                    $faqBlocks.unbind('click keydown.premiumAplusModule11ClickHandler').bind('click keydown.premiumAplusModule11ClickHandler', function(event) {\n                        handleClickAndKeyEvents(event, () =\u003e handleClickOrEnterOrSpace(this, $faqBlocks)); \n                    });\n                }\n                $(\".aplus-v2 .premium-aplus-module-11 .faqs-container\").each(function(index, module) {\n                    initFaq(module);\n                });\n            });\n        };\n    });\n});\n}));\u003c\/script\u003e\n  \u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium-module 13: Carousel\n *\/\n\n.aplus-v2 .premium-aplus-module-13 .aplus-card-description-wrapper {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n}\n\n.aplus-v2 .premium-aplus-module-13 .aplus-card-description {\n    display: table;\n    width: 50%;\n    height: 100%;\n    color: #fff;\n}\n\n.aplus-v2 .premium-aplus-module-13 .aplus-card-table-cell {\n    display: table-cell;\n    vertical-align: middle;\n    text-align: left;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-13 .aplus-card-table-cell {\n    text-align: right;\n}\n\n.aplus-v2 .premium-aplus-module-13 .aplus-text-background {\n    background: rgba(0, 0, 0, 0.6);\n}\n\n.aplus-v2 .premium-aplus-module-13 .aplus-card-body {\n    padding: 20px 40px 0 0;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-13 .aplus-card-body {\n    padding: 20px 0 0 40px;\n}\n\n.aplus-v2 .premium-aplus-module-13 .aplus-pagination-wrapper {\n    position: absolute;\n    top: 92%;\n    width: 100%;\n}\n\n\u003c\/style\u003e\n  \u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium-module 8: Hero Video module\n *\/\n\n.aplus-v2 .premium-aplus-module-8 .premium-aplus-module-8-video {\n    position: relative;\n    width: 100%;\n}\n\n.aplus-v2 .premium-aplus-module-8 .video-placeholder {\n    padding-bottom: 40.984%; \/* Video or image required size 1464 : 600 = 40.9836 *\/\n}\n\n.aplus-v2 .premium-aplus-module-8 .video-container {\n    position: absolute;\n    top: 0;\n    width: 100%;\n    height: 100%;\n}\n\n\/*Override the default VSE video player size*\/\n.aplus-v2 .premium-aplus-module-8 .video-js.vjs-fluid {\n    padding: 0;\n}\n\n\u003c\/style\u003e\n  \u003cdiv class=\"aplus-content-wrapper\"\u003e\n   \u003cdiv class=\"celwidget aplus-module premium-module-13-carousel aplus-premium\" cel_widget_id=\"aplus-premium-module-13-carousel\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"dp_desktop_aplus_premium-module-13-carousel_div\" data-csa-c-content-id=\"aplus_premium-module-13-carousel\"\u003e\n    \u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-13\"\u003e\n     \u003cdiv class=\"a-section a-spacing-none aplus-carousel-container\"\u003e\n      \u003cdiv id=\"premium-aplus-13-carousel-0-id\" data-a-carousel-options='{\"peek_percentage\":0,\"minimum_gutter_width\":0,\"show_partial_next\":false,\"name\":\"premium-aplus-13-carousel-0\"}' aria-label=\"Featured content carousel\" aria-roledescription=\"carousel\" data-a-display-strategy=\"single\" data-a-transition-strategy=\"slideCircular\" role=\"region\" class=\"a-begin a-carousel-container a-carousel-static a-carousel-display-single a-carousel-transition-slideCircular\"\u003e\n       \u003cinput autocomplete=\"on\" type=\"hidden\" class=\"a-carousel-firstvisibleitem\"\u003e\n       \u003cdiv class=\"a-row a-carousel-controls a-carousel-row a-carousel-has-buttons a-carousel-overlay-buttons a-carousel-rounded-buttons\"\u003e\n        \u003cdiv class=\"a-carousel-row-inner\"\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-left\"\u003e\n          \u003ca class=\"a-carousel-goto-prevpage\" role=\"button\" href=\"#\"\u003e\u003ci class=\"a-icon a-icon-previous-rounded\"\u003e\u003cspan class=\"a-icon-alt\"\u003ePrevious page\u003c\/span\u003e\u003c\/i\u003e\u003c\/a\u003e\n         \u003c\/div\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-center\"\u003e\n          \u003cdiv class=\"a-carousel-viewport\" aria-roledescription=\"slide\"\u003e\n           \u003col class=\"a-carousel\" role=\"list\"\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"6\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-0-slide-0\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"spino\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/a0ac58d1-ccfe-4a1a-ac55-91b49b29e4bd.__CR0,0,2928,1200_PT0_SX1464_V1___.jpg\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"6\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-0-slide-1\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"spino e1 robotic pool cleaner\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/e3a63fad-aa94-46c0-ab55-91c8711512e9.__CR0,32,2928,1200_PT0_SX1464_V1___.png\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"6\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-0-slide-2\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"Wall Mode\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/ddb03e52-74fa-41d9-8599-4ccba4443092.__CR0,0,2928,1200_PT0_SX1464_V1___.jpg\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"6\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-0-slide-3\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"ALL Mode\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/f73f058a-4f6d-4308-89cb-659bc1a8893b.__CR0,0,2928,1200_PT0_SX1464_V1___.jpg\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"6\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-0-slide-4\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"Eco Mode\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/2b05816e-9320-45bd-b5bd-166c946bc9ca.__CR0,0,2928,1200_PT0_SX1464_V1___.jpg\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"6\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-0-slide-5\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"Max Mode\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/2029d9c2-9a1e-4fa5-b68d-f70e6104ca30.__CR0,0,2928,1200_PT0_SX1464_V1___.jpg\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n           \u003c\/ol\u003e\n          \u003c\/div\u003e\n         \u003c\/div\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-right\"\u003e\n          \u003ca class=\"a-carousel-goto-nextpage\" role=\"button\" href=\"#\"\u003e\u003ci class=\"a-icon a-icon-next-rounded\"\u003e\u003cspan class=\"a-icon-alt\"\u003eNext page\u003c\/span\u003e\u003c\/i\u003e\u003c\/a\u003e\n         \u003c\/div\u003e\n        \u003c\/div\u003e\n       \u003c\/div\u003e\n       \u003cspan class=\"a-end aok-hidden\"\u003e\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"a-section a-spacing-none aplus-pagination-wrapper\"\u003e\n       \u003cstyle type=\"text\/css\"\u003e\n\n.aplus-mantle.aplus-module .aplus-pagination-dots {\n    margin: 0;\n}\n\n.aplus-mantle.aplus-module .aplus-pagination-dot {\n    display: inline-block;\n    list-style: none;\n}\n\n.aplus-mantle.aplus-module .aplus-carousel-nav {\n    text-align:center;\n}\n\n.aplus-mantle.aplus-module .carousel-slider-circle {\n    display: inline-block;\n    cursor: pointer;\n    height: 15px;\n    width: 15px;\n    border: 1px solid #000;\n    border-radius: 20px;\n    background-color: #fff;\n    margin-left: 5px;\n}\n\n.aplus-mantle.aplus-module .carousel-slider-circle.aplus-carousel-active {\n    background-color: #DE7921;\n}\n\n.aplus-mantle.aplus-module .aplus-pagination-dot--display-none {\n    display: none;\n}\n\n\u003c\/style\u003e\n       \u003cscript\u003e\n\nP.now(\"premium-aplus-13-carousel-0\").execute(\"init-pagination-carousel\", function(init) {\n    if (init) {\n        return;\n    }\n    P.register(\"premium-aplus-13-carousel-0\", function() {\n        return function() {\n            P.when(\"A\", \"jQuery\", \"a-carousel-framework\", \"ready\").execute(\"paginate-carousel\", function (A, $, framework) {\n                const ENTER_KEY_CODE = 13;\n                const ESCAPE_KEY_CODE = 27;\n                const LEFT_ARROW_KEY = 37;\n                const RIGHT_ARROW_KEY = 39;\n                const HOME_KEY = 36;\n                const END_KEY = 35;\n\n                var moduleId = \"0\";\n                var carouselName = \"premium-aplus-13-carousel-0\";\n                var paginationAction = \"aplus-pagination-dot-action-\" + moduleId + \"-\" + carouselName;\n                var paginationGroup = \"#aplus-pagination-group-\" + moduleId + \"-\" + carouselName;\n\n                \/* If the carousel goes to a new page *\/\n                A.on(\"a:carousel:\"+carouselName+\":change:pageNumber\", function (data) {\n                    A.$(paginationGroup+\" .carousel-slider-circle\").removeClass(\"aplus-carousel-active\").attr('aria-selected', 'false').attr('tabindex', -1)\n                                    .eq(data.newValue - 1).addClass(\"aplus-carousel-active\").attr('aria-selected', 'true').attr('tabindex', 0);\n                });\n\n                function syncPaginationDotsWithCarouselPages(numPages) {\n                    const parentElement = document.querySelector(paginationGroup);\n                    if (parentElement \u0026\u0026 parentElement.children) {\n                        const children = parentElement.children;\n                        for (let i = 0; i \u003c children.length; i++) {\n                            if (i \u003e= numPages) {\n                                \/\/ If number of dots \u003e num of pages, we should hide other dots\n                                children[i].classList.add('aplus-pagination-dot--display-none');\n                            } else if (children[i].classList.contains('aplus-pagination-dot--display-none')) {\n                                \/\/ Reset display of dots if it was hidden before\n                                children[i].classList.remove('aplus-pagination-dot--display-none');\n                            }\n                        }\n                    }\n                }\n\n                framework.onInit(carouselName, function (carousel) {\n                    try {\n                        var totalPages = carousel.getAttr('totalPages');\n                        syncPaginationDotsWithCarouselPages(totalPages);\n                        \/* Resize event handler to re-calculate the pagination dots count based on orientation *\/\n                        window.addEventListener('resize', function() {\n                            carousel.resize();\n                            totalPages = carousel.getAttr('totalPages');\n                            syncPaginationDotsWithCarouselPages(totalPages);\n                        });\n\n                        A.declarative(paginationAction, 'click keydown', function(event){\n                            var isClick = event.type === 'click';\n                            var isKeydown = event.type === 'keydown';\n                            var isEnter = isKeydown \u0026\u0026 event.$event.keyCode === ENTER_KEY_CODE;\n                            var isEsc = isKeydown \u0026\u0026 event.$event.keyCode === ESCAPE_KEY_CODE;\n                            var isLeftArrow = isKeydown \u0026\u0026 event.$event.keyCode === LEFT_ARROW_KEY;\n                            var isRightArrow = isKeydown \u0026\u0026 event.$event.keyCode === RIGHT_ARROW_KEY;\n                            var isHome = isKeydown \u0026\u0026 event.$event.keyCode === HOME_KEY;\n                            var isEnd = isKeydown \u0026\u0026 event.$event.keyCode === END_KEY;\n\n                            if (isClick || isEnter) {\n                                var data = event.data;\n                                carousel.gotoPage(data.page);\n                            } else if (isEsc) {\n                                event.$target.blur();\n                            } else if (isLeftArrow || isRightArrow || isHome || isEnd) {\n                                event.$event.preventDefault();\n                                const dots = A.$(paginationGroup + \" .carousel-slider-circle\");\n                                const currentIndex = dots.index(event.$target);\n                                let nextIndex;\n\n                                if (isLeftArrow) {\n                                    nextIndex = currentIndex \u003e 0 ? currentIndex - 1 : dots.length - 1;\n                                } else if (isRightArrow) {\n                                    nextIndex = currentIndex \u003c dots.length - 1 ? currentIndex + 1 : 0;\n                                } else if (isHome) {\n                                    nextIndex = 0;\n                                } else if (isEnd) {\n                                    nextIndex = dots.length - 1;\n                                }\n\n                                dots.eq(nextIndex).focus();\n                                carousel.gotoPage(nextIndex + 1);\n                            }\n                        });\n                    } catch (e) {\n                        P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources');\n                    }\n                });\n            });\n        }\n    });\n});\n\u003c\/script\u003e\n       \u003cdiv class=\"aplus-mantle aplus-module\"\u003e\n        \u003cdiv class=\"aplus-carousel-nav\"\u003e\n         \u003cul id=\"aplus-pagination-group-0-premium-aplus-13-carousel-0\" class=\"aplus-pagination-dots\" aria-label=\"tablist-section\" role=\"tablist\"\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block aplus-carousel-active\" aria-selected=\"true\" data-action=\"aplus-pagination-dot-action-0-premium-aplus-13-carousel-0\" data-aplus-pagination-dot-action-0-premium-aplus-13-carousel-0='{\"page\": 1}' aria-label=\"slide-1\" aria-controls=\"premium-aplus-13-carousel-0-slide-0\" tabindex=\"0\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-0-premium-aplus-13-carousel-0\" data-aplus-pagination-dot-action-0-premium-aplus-13-carousel-0='{\"page\": 2}' aria-label=\"slide-2\" aria-controls=\"premium-aplus-13-carousel-0-slide-1\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-0-premium-aplus-13-carousel-0\" data-aplus-pagination-dot-action-0-premium-aplus-13-carousel-0='{\"page\": 3}' aria-label=\"slide-3\" aria-controls=\"premium-aplus-13-carousel-0-slide-2\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-0-premium-aplus-13-carousel-0\" data-aplus-pagination-dot-action-0-premium-aplus-13-carousel-0='{\"page\": 4}' aria-label=\"slide-4\" aria-controls=\"premium-aplus-13-carousel-0-slide-3\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-0-premium-aplus-13-carousel-0\" data-aplus-pagination-dot-action-0-premium-aplus-13-carousel-0='{\"page\": 5}' aria-label=\"slide-5\" aria-controls=\"premium-aplus-13-carousel-0-slide-4\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-0-premium-aplus-13-carousel-0\" data-aplus-pagination-dot-action-0-premium-aplus-13-carousel-0='{\"page\": 6}' aria-label=\"slide-6\" aria-controls=\"premium-aplus-13-carousel-0-slide-5\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n         \u003c\/ul\u003e\n        \u003c\/div\u003e\n       \u003c\/div\u003e\n      \u003c\/div\u003e\n     \u003c\/div\u003e\n     \u003cdiv class=\"a-section a-text-center\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cscript type=\"text\/javascript\"\u003e(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n    P.when(\"premium-aplus-13-carousel-0\").execute('invoke-premium-13-carousel-desktop', function(init){init();});\n}));\u003c\/script\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"celwidget aplus-module premium-module-8-hero-video aplus-premium\" cel_widget_id=\"aplus-premium-module-8-hero-video\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"dp_desktop_aplus_premium-module-8-hero-video_div\" data-csa-c-content-id=\"aplus_premium-module-8-hero-video\"\u003e\n    \u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-8\"\u003e\n     \u003cdiv class=\"a-section a-spacing-none premium-aplus-module-8-video\"\u003e\n      \u003cdiv class=\"a-section a-spacing-none video-placeholder\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"a-section a-spacing-none video-container\"\u003e\n       \u003cstyle type=\"text\/css\"\u003e\n\n.aplus-v2 .vse-video-player-title,  .aplus-v2 .vse-lightPlayer-vendor{\n    display:none;\n}\n\n#aplus .vse-video-player-title,  #aplus .vse-lightPlayer-vendor{\n    display:none;\n}\n\n\u003c\/style\u003e\n       \u003cdiv id=\"c5b696f1-f826-479c-b04c-328a29611bd1\" style=\"width:100%; height:100%;\"\u003e\n        \u003clink rel=\"stylesheet\" href=\"https:\/\/m.media-amazon.com\/images\/I\/01n25BjbgEL.css?AUIClients\/VSEPlayer\"\u003e\n        \u003clink rel=\"stylesheet\" href=\"https:\/\/m.media-amazon.com\/images\/I\/51NP-5Gx4JL._RC|11s4jq82GaL.css_.css?AUIClients\/Brila\"\u003e\n        \u003cdiv data-csa-c-component=\"aplus-vse-video-widget\" data-csa-c-content-id=\"amzn1.ive.seller.video.053bffb454a842bb9602214d28770939\" data-csa-c-cs-type=\"vse\" data-csa-c-painter=\"vse-player\" data-csa-c-slot-id=\"aplus-ive-player\" data-csa-c-type=\"widget\" data-csa-op-log-render=\"\" class=\"a-section vse-player-container\"\u003e\n         \u003cscript type=\"a-state\" data-a-state='{\"key\":\"aplus-9509-player-bc77e2e4-0a47-4684-958f-c6d3ae355443-player-ps\"}'\u003e{\"enableFullScreenByDefault\":false,\"clickstreamNexusMetricsConfig\":{\"producerId\":\"vsemetrics_playercards\",\"schemaId\":\"clickstream.CustomerEvent.4\",\"actionType\":\"DISCOVERY\",\"eventOwner\":\"vsemetrics_playercards\",\"eventType\":\"IVEVideoView\",\"productId\":\"B0GLWVY691\"},\"videoReferenceId\":\"sc|547c8418-67cb-48c4-a8a8-46d770337829|3d25656b|ATVPDKIKX0DER|AEWG1683JTS8J\",\"contentId\":\"B0GLWVY691\",\"ccvDisclosure\":\"\",\"closedCaptionsConfig\":{\"captionsOnTexts\":{\"de\":\"German (Automated)\",\"en\":\"English (Automated)\",\"fr\":\"French (Automated)\",\"es\":\"Spanish (Automated)\"},\"captionsOffText\":\"Captions off\",\"languageToLabelTexts\":{\"English\":\"English\",\"French\":\"French\",\"German\":\"German\",\"Spanish\":\"Spanish\"}},\"mimeType\":\"application\/x-mpegURL\",\"vendorCode\":\"APLUSSC\",\"videoHeight\":480,\"disableReportIllegalLink\":false,\"videoWidth\":854,\"useHotspotsNX\":false,\"eligibleToTriggerCCWeblab\":false,\"videoUrl\":\"https:\/\/m.media-amazon.com\/images\/S\/vse-vms-transcoding-artifact-us-east-1-prod\/48815eb2-e71b-463e-b00c-14fdebe63ad5\/default.jobtemplate.hls.m3u8\",\"metricsEmissionMethod\":\"nexus\",\"imageUrl\":\"https:\/\/m.media-amazon.com\/images\/I\/B1PdnjY-BtL.jpg\",\"needPlayerFactory\":false,\"isMobile\":false,\"showHotspots\":false,\"aciContentId\":\"amzn1.ive.seller.video.053bffb454a842bb9602214d28770939\",\"altText\":\"SPINO E1 Pool Robtic Cleaner\",\"creatorType\":\"Seller\",\"clientPrefix\":\"aplus-9509\",\"hotSpotsV3Weblab\":\"\",\"productAsin\":\"B0GLWVY691\",\"labelDetails\":{\"labelName\":\"\",\"labelType\":\"\",\"labelWeblabName\":\"\",\"labelWeblabTreatment\":\"\",\"showLabel\":false,\"tooltipSelector\":\"\"},\"sushiMetricsConfig\":{\"eventSource\":\"Player\",\"endpoint\":\"https:\/\/unagi-na.amazon.com\/1\/events\/com.amazon.eel.vse.metrics.prod.events.test\",\"requestId\":\"3SWMQCN5TDBW4TZFBWQT\",\"sessionId\":\"142-6204102-2824294\",\"customerId\":\"0\",\"refMarkers\":\"aplus-9509_ref\",\"sessionType\":1,\"placementContext\":\"desktop_web.AplusWidget.aplusdp\",\"marketplaceId\":\"ATVPDKIKX0DER\",\"weblabIds\":\"\",\"isInternal\":false,\"isRobot\":false,\"clientId\":\"VSE-US\",\"videoAsinList\":\"\",\"pageAsin\":\"B0GLWVY691\"},\"reportUrl\":\"\",\"videoTitle\":\"SPINO E1 Pool Robtic Cleaner\",\"vendorName\":\"Merchant Video\",\"nexusMetricsConfig\":{\"eventSource\":\"Player\",\"isInternal\":false,\"playerTSMMetricsSchemaId\":\"vse.VSECardsPlayerEvents.9\",\"widgetMetricsSchemaId\":\"vse.VSECardsEvents.9\",\"producerId\":\"vsemetrics_playercards\",\"refMarkers\":\"aplus-9509_ref\",\"placementContext\":\"desktop_web.AplusWidget.aplusdp\",\"weblabIds\":\"\",\"clientId\":\"VSE-US\",\"videoAsin\":\"053bffb454a842bb9602214d28770939\",\"videoAsinList\":\"\",\"pageAsin\":\"B0GLWVY691\"},\"awaConfig\":{\"useUpNextComponent\":false,\"clickstreamNexusMetricsConfig\":{\"producerId\":\"vsemetrics_playercards\",\"schemaId\":\"clickstream.CustomerEvent.4\",\"actionType\":\"DISCOVERY\",\"eventOwner\":\"vsemetrics_playercards\",\"eventType\":\"IVEVideoView\",\"productId\":\"B0GLWVY691\"},\"initialVideo\":\"053bffb454a842bb9602214d28770939\",\"shouldPreload\":true,\"enableClickBasedAttribution\":false,\"isChromelessPlayer\":false,\"closedCaptionsConfig\":{\"captionsOnTexts\":{\"de\":\"German (Automated)\",\"en\":\"English (Automated)\",\"fr\":\"French (Automated)\",\"es\":\"Spanish (Automated)\"},\"captionsOffText\":\"Captions off\",\"languageToLabelTexts\":{\"English\":\"English\",\"French\":\"French\",\"German\":\"German\",\"Spanish\":\"Spanish\"}},\"enableDynamicBlur\":false,\"showPlayerPlayButton\":false,\"isVideoImmersivePlayer\":false,\"metricsEmissionMethod\":\"nexus\",\"skipInitialFocus\":false,\"playerSkin\":\"none\",\"disabledViewIds\":[\"replayHint\"],\"includeEarnsComissionDisclosure\":false,\"customerId\":\"0\",\"containerId\":\"aplus-9509-player-bc77e2e4-0a47-4684-958f-c6d3ae355443\",\"allowCrossOrigin\":false,\"requestMetadata\":{\"clientId\":\"VSE-US\",\"marketplaceId\":\"ATVPDKIKX0DER\",\"requestId\":\"3SWMQCN5TDBW4TZFBWQT\",\"sessionId\":\"142-6204102-2824294\",\"method\":\"desktop_web.AplusWidget.aplusdp\",\"pageAsin\":\"\"},\"shouldLoop\":false,\"shouldDisableControls\":false,\"alwaysSetInitialVideo\":true,\"showPlayerCloseButton\":false,\"clientPrefix\":\"aplus-9509\",\"useAutoplayFallback\":false,\"sushiMetricsConfig\":{\"eventSource\":\"Player\",\"endpoint\":\"https:\/\/unagi-na.amazon.com\/1\/events\/com.amazon.eel.vse.metrics.prod.events.test\",\"requestId\":\"3SWMQCN5TDBW4TZFBWQT\",\"sessionId\":\"142-6204102-2824294\",\"customerId\":\"0\",\"refMarkers\":\"aplus-9509_ref\",\"sessionType\":1,\"placementContext\":\"desktop_web.AplusWidget.aplusdp\",\"marketplaceId\":\"ATVPDKIKX0DER\",\"weblabIds\":\"\",\"isInternal\":false,\"isRobot\":false,\"clientId\":\"VSE-US\",\"videoAsinList\":\"\",\"pageAsin\":\"B0GLWVY691\"},\"ospLinkCode\":\"vse\",\"showPosterImage\":true,\"languageCode\":\"en\",\"languageLocalization\":{\"play\":\"Play\",\"volumeLevel\":\"Volume Level\",\"subtitles\":\"Subtitles\",\"volumeSlider\":\"Volume Slider\",\"playVideo\":\"Click to play video\",\"fullscreen\":\"Fullscreen\",\"scrubberBar\":\"Scrubber bar\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"pause\":\"Pause\",\"captions\":\"Captions\",\"nonfullscreen\":\"Non-Fullscreen\"},\"version\":\"\",\"isMoreVideosButtonEnabled\":false,\"nexusMetricsConfig\":{\"eventSource\":\"Player\",\"isInternal\":false,\"playerTSMMetricsSchemaId\":\"vse.VSECardsPlayerEvents.9\",\"widgetMetricsSchemaId\":\"vse.VSECardsEvents.9\",\"producerId\":\"vsemetrics_playercards\",\"refMarkers\":\"aplus-9509_ref\",\"placementContext\":\"desktop_web.AplusWidget.aplusdp\",\"weblabIds\":\"\",\"clientId\":\"VSE-US\",\"videoAsin\":\"053bffb454a842bb9602214d28770939\",\"videoAsinList\":\"\",\"pageAsin\":\"B0GLWVY691\"},\"shouldStartMuted\":false,\"airyVersion\":\"VideoJS\",\"languagePreferenceStrings\":{},\"enableInactiveFocus\":true,\"showVideoInfo\":false,\"isReactFactory\":false,\"osaInstrumentationConfig\":{\"schemaId\":\"csa.VideoInteractions.2\",\"producerId\":\"vsemetrics_csa_instrumentation\"},\"enableDelphiAttribution\":true,\"includeReportWidget\":false,\"shouldAutoplay\":false}}\u003c\/script\u003e\n         \u003cdiv class=\"vse-airy-container vse-player-container none \"\u003e\n          \u003cdiv id=\"ive-aplus-9509-player-label-container\" data-element-id=\"ive-player-label-container\" class=\"a-section a-spacing-none ive-player-label-container\"\u003e\n           \u003cspan class=\"a-declarative\" data-action=\"a-popover\" data-a-popover='{\"name\":\"ive-aplus-9509-label-type-tooltip\",\"width\":\"300\",\"position\":\"triggerRight\",\"dataStrategy\":\"preload\"}'\u003e\u003ca href=\"javascript:void(0)\" role=\"button\" class=\"a-popover-trigger a-declarative ive-player-label-name aok-hidden\"\u003e\u003ci class=\"a-icon a-icon-popover\"\u003e\u003c\/i\u003e\u003c\/a\u003e\u003c\/span\u003e\n           \u003cdiv class=\"a-popover-preload\" id=\"a-popover-ive-aplus-9509-label-type-tooltip\"\u003e\n            \u003cspan class=\"ive-demo-label-tooltip ive-player-label-tooltip aok-hidden\"\u003eThe video showcases the product in use.\u003c\/span\u003e\u003cspan class=\"ive-assembly-label-tooltip ive-player-label-tooltip aok-hidden\"\u003eThe video guides you through product setup.\u003c\/span\u003e\u003cspan class=\"ive-comparison-label-tooltip ive-player-label-tooltip aok-hidden\"\u003eThe video compares multiple products.\u003c\/span\u003e\u003cspan class=\"ive-unboxing-label-tooltip ive-player-label-tooltip aok-hidden\"\u003eThe video shows the product being unpacked.\u003c\/span\u003e\n           \u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv id=\"aplus-9509-player-bc77e2e4-0a47-4684-958f-c6d3ae355443\" class=\"vse-player\" data-element-id=\"vse-player-container\"\u003e\u003c\/div\u003e\n         \u003c\/div\u003e\n         \u003ch1 class=\"vse-video-player-title\"\u003eSPINO E1 Pool Robtic Cleaner\u003c\/h1\u003e\n         \u003cspan data-element-id=\"vse-lightPlayer-content-provider\" class=\"vse-lightPlayer-vendor a-size-mini\"\u003e Merchant Video\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cscript\u003e\n  (window.AmazonUIPageJS ? AmazonUIPageJS : P).load.js('https:\/\/m.media-amazon.com\/images\/I\/61rq0L4t2wL.js?AUIClients\/VSEPlayer');\n  (window.AmazonUIPageJS ? AmazonUIPageJS : P).load.js('https:\/\/m.media-amazon.com\/images\/I\/3175HHgX+OL._RC|01x4giTy+uL.js,01r9LpT6pbL.js,41NWBkfooBL.js,11QfrzttlqL.js,91VXiFQ1TCL.js,01ELLYeIOkL.js_.js?AUIClients\/Brila');\n\u003c\/script\u003e\n        \u003cscript type=\"text\/javascript\"\u003e(function(f) {var _np=(window.P._namespace(\"vse-ns-initVSEPlayerOnLoad\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n    P.when('VSEPlayer').execute(function(vsePlayer){vsePlayer.initPlayer('aplus-9509-player-bc77e2e4-0a47-4684-958f-c6d3ae355443-player-ps');});\n    \/\/Please use below event to register FeedbackForm\n    P.when('A', 'VSEComponentAssets').execute('vse-ns-player-initialization', function(A, asset) {\n        A.trigger('vse:ns:player:aplus-9509:init', 'aplus-9509-player-bc77e2e4-0a47-4684-958f-c6d3ae355443-player-ps');\n    });\n}));\u003c\/script\u003e\n       \u003c\/div\u003e\n      \u003c\/div\u003e\n     \u003c\/div\u003e\n     \u003cdiv class=\"a-section a-text-center\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"celwidget aplus-module premium-module-13-carousel aplus-premium\" cel_widget_id=\"aplus-premium-module-13-carousel\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"dp_desktop_aplus_premium-module-13-carousel_div\" data-csa-c-content-id=\"aplus_premium-module-13-carousel\"\u003e\n    \u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-13\"\u003e\n     \u003cdiv class=\"a-section a-spacing-none aplus-carousel-container\"\u003e\n      \u003cdiv id=\"premium-aplus-13-carousel-2-id\" data-a-carousel-options='{\"peek_percentage\":0,\"minimum_gutter_width\":0,\"show_partial_next\":false,\"name\":\"premium-aplus-13-carousel-2\"}' aria-label=\"Featured content carousel\" aria-roledescription=\"carousel\" data-a-display-strategy=\"single\" data-a-transition-strategy=\"slideCircular\" role=\"region\" class=\"a-begin a-carousel-container a-carousel-static a-carousel-display-single a-carousel-transition-slideCircular\"\u003e\n       \u003cinput autocomplete=\"on\" type=\"hidden\" class=\"a-carousel-firstvisibleitem\"\u003e\n       \u003cdiv class=\"a-row a-carousel-controls a-carousel-row a-carousel-has-buttons a-carousel-overlay-buttons a-carousel-rounded-buttons\"\u003e\n        \u003cdiv class=\"a-carousel-row-inner\"\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-left\"\u003e\n          \u003ca class=\"a-carousel-goto-prevpage\" role=\"button\" href=\"#\"\u003e\u003ci class=\"a-icon a-icon-previous-rounded\"\u003e\u003cspan class=\"a-icon-alt\"\u003ePrevious page\u003c\/span\u003e\u003c\/i\u003e\u003c\/a\u003e\n         \u003c\/div\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-center\"\u003e\n          \u003cdiv class=\"a-carousel-viewport\" aria-roledescription=\"slide\"\u003e\n           \u003col class=\"a-carousel\" role=\"list\"\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"4\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-2-slide-0\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"spino e1 robotic pool cleaner\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/65770e1f-fef6-4108-b961-9ccee1cb29de.__CR0,67,2928,1200_PT0_SX1464_V1___.png\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"4\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-2-slide-1\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"spino e1 robotic pool cleaner\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/b7f04b14-173f-4be4-aa60-730a4939480b.__CR0,0,2928,1200_PT0_SX1464_V1___.png\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"4\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-2-slide-2\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"spino e1 robotic pool cleaner\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/2158768b-6908-4cc7-94b7-6f54e4b2457d.__CR0,0,2928,1200_PT0_SX1464_V1___.png\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"4\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-2-slide-3\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"Display\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/4b84453d-4ef9-45ff-a292-2546c2b207a9.__CR0,0,2928,1200_PT0_SX1464_V1___.jpg\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n           \u003c\/ol\u003e\n          \u003c\/div\u003e\n         \u003c\/div\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-right\"\u003e\n          \u003ca class=\"a-carousel-goto-nextpage\" role=\"button\" href=\"#\"\u003e\u003ci class=\"a-icon a-icon-next-rounded\"\u003e\u003cspan class=\"a-icon-alt\"\u003eNext page\u003c\/span\u003e\u003c\/i\u003e\u003c\/a\u003e\n         \u003c\/div\u003e\n        \u003c\/div\u003e\n       \u003c\/div\u003e\n       \u003cspan class=\"a-end aok-hidden\"\u003e\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"a-section a-spacing-none aplus-pagination-wrapper\"\u003e\n       \u003cstyle type=\"text\/css\"\u003e\n\n.aplus-mantle.aplus-module .aplus-pagination-dots {\n    margin: 0;\n}\n\n.aplus-mantle.aplus-module .aplus-pagination-dot {\n    display: inline-block;\n    list-style: none;\n}\n\n.aplus-mantle.aplus-module .aplus-carousel-nav {\n    text-align:center;\n}\n\n.aplus-mantle.aplus-module .carousel-slider-circle {\n    display: inline-block;\n    cursor: pointer;\n    height: 15px;\n    width: 15px;\n    border: 1px solid #000;\n    border-radius: 20px;\n    background-color: #fff;\n    margin-left: 5px;\n}\n\n.aplus-mantle.aplus-module .carousel-slider-circle.aplus-carousel-active {\n    background-color: #DE7921;\n}\n\n.aplus-mantle.aplus-module .aplus-pagination-dot--display-none {\n    display: none;\n}\n\n\u003c\/style\u003e\n       \u003cscript\u003e\n\nP.now(\"premium-aplus-13-carousel-2\").execute(\"init-pagination-carousel\", function(init) {\n    if (init) {\n        return;\n    }\n    P.register(\"premium-aplus-13-carousel-2\", function() {\n        return function() {\n            P.when(\"A\", \"jQuery\", \"a-carousel-framework\", \"ready\").execute(\"paginate-carousel\", function (A, $, framework) {\n                const ENTER_KEY_CODE = 13;\n                const ESCAPE_KEY_CODE = 27;\n                const LEFT_ARROW_KEY = 37;\n                const RIGHT_ARROW_KEY = 39;\n                const HOME_KEY = 36;\n                const END_KEY = 35;\n\n                var moduleId = \"2\";\n                var carouselName = \"premium-aplus-13-carousel-2\";\n                var paginationAction = \"aplus-pagination-dot-action-\" + moduleId + \"-\" + carouselName;\n                var paginationGroup = \"#aplus-pagination-group-\" + moduleId + \"-\" + carouselName;\n\n                \/* If the carousel goes to a new page *\/\n                A.on(\"a:carousel:\"+carouselName+\":change:pageNumber\", function (data) {\n                    A.$(paginationGroup+\" .carousel-slider-circle\").removeClass(\"aplus-carousel-active\").attr('aria-selected', 'false').attr('tabindex', -1)\n                                    .eq(data.newValue - 1).addClass(\"aplus-carousel-active\").attr('aria-selected', 'true').attr('tabindex', 0);\n                });\n\n                function syncPaginationDotsWithCarouselPages(numPages) {\n                    const parentElement = document.querySelector(paginationGroup);\n                    if (parentElement \u0026\u0026 parentElement.children) {\n                        const children = parentElement.children;\n                        for (let i = 0; i \u003c children.length; i++) {\n                            if (i \u003e= numPages) {\n                                \/\/ If number of dots \u003e num of pages, we should hide other dots\n                                children[i].classList.add('aplus-pagination-dot--display-none');\n                            } else if (children[i].classList.contains('aplus-pagination-dot--display-none')) {\n                                \/\/ Reset display of dots if it was hidden before\n                                children[i].classList.remove('aplus-pagination-dot--display-none');\n                            }\n                        }\n                    }\n                }\n\n                framework.onInit(carouselName, function (carousel) {\n                    try {\n                        var totalPages = carousel.getAttr('totalPages');\n                        syncPaginationDotsWithCarouselPages(totalPages);\n                        \/* Resize event handler to re-calculate the pagination dots count based on orientation *\/\n                        window.addEventListener('resize', function() {\n                            carousel.resize();\n                            totalPages = carousel.getAttr('totalPages');\n                            syncPaginationDotsWithCarouselPages(totalPages);\n                        });\n\n                        A.declarative(paginationAction, 'click keydown', function(event){\n                            var isClick = event.type === 'click';\n                            var isKeydown = event.type === 'keydown';\n                            var isEnter = isKeydown \u0026\u0026 event.$event.keyCode === ENTER_KEY_CODE;\n                            var isEsc = isKeydown \u0026\u0026 event.$event.keyCode === ESCAPE_KEY_CODE;\n                            var isLeftArrow = isKeydown \u0026\u0026 event.$event.keyCode === LEFT_ARROW_KEY;\n                            var isRightArrow = isKeydown \u0026\u0026 event.$event.keyCode === RIGHT_ARROW_KEY;\n                            var isHome = isKeydown \u0026\u0026 event.$event.keyCode === HOME_KEY;\n                            var isEnd = isKeydown \u0026\u0026 event.$event.keyCode === END_KEY;\n\n                            if (isClick || isEnter) {\n                                var data = event.data;\n                                carousel.gotoPage(data.page);\n                            } else if (isEsc) {\n                                event.$target.blur();\n                            } else if (isLeftArrow || isRightArrow || isHome || isEnd) {\n                                event.$event.preventDefault();\n                                const dots = A.$(paginationGroup + \" .carousel-slider-circle\");\n                                const currentIndex = dots.index(event.$target);\n                                let nextIndex;\n\n                                if (isLeftArrow) {\n                                    nextIndex = currentIndex \u003e 0 ? currentIndex - 1 : dots.length - 1;\n                                } else if (isRightArrow) {\n                                    nextIndex = currentIndex \u003c dots.length - 1 ? currentIndex + 1 : 0;\n                                } else if (isHome) {\n                                    nextIndex = 0;\n                                } else if (isEnd) {\n                                    nextIndex = dots.length - 1;\n                                }\n\n                                dots.eq(nextIndex).focus();\n                                carousel.gotoPage(nextIndex + 1);\n                            }\n                        });\n                    } catch (e) {\n                        P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources');\n                    }\n                });\n            });\n        }\n    });\n});\n\u003c\/script\u003e\n       \u003cdiv class=\"aplus-mantle aplus-module\"\u003e\n        \u003cdiv class=\"aplus-carousel-nav\"\u003e\n         \u003cul id=\"aplus-pagination-group-2-premium-aplus-13-carousel-2\" class=\"aplus-pagination-dots\" aria-label=\"tablist-section\" role=\"tablist\"\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block aplus-carousel-active\" aria-selected=\"true\" data-action=\"aplus-pagination-dot-action-2-premium-aplus-13-carousel-2\" data-aplus-pagination-dot-action-2-premium-aplus-13-carousel-2='{\"page\": 1}' aria-label=\"slide-1\" aria-controls=\"premium-aplus-13-carousel-2-slide-0\" tabindex=\"0\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-2-premium-aplus-13-carousel-2\" data-aplus-pagination-dot-action-2-premium-aplus-13-carousel-2='{\"page\": 2}' aria-label=\"slide-2\" aria-controls=\"premium-aplus-13-carousel-2-slide-1\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-2-premium-aplus-13-carousel-2\" data-aplus-pagination-dot-action-2-premium-aplus-13-carousel-2='{\"page\": 3}' aria-label=\"slide-3\" aria-controls=\"premium-aplus-13-carousel-2-slide-2\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-2-premium-aplus-13-carousel-2\" data-aplus-pagination-dot-action-2-premium-aplus-13-carousel-2='{\"page\": 4}' aria-label=\"slide-4\" aria-controls=\"premium-aplus-13-carousel-2-slide-3\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n         \u003c\/ul\u003e\n        \u003c\/div\u003e\n       \u003c\/div\u003e\n      \u003c\/div\u003e\n     \u003c\/div\u003e\n     \u003cdiv class=\"a-section a-text-center\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cscript type=\"text\/javascript\"\u003e(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n    P.when(\"premium-aplus-13-carousel-2\").execute('invoke-premium-13-carousel-desktop', function(init){init();});\n}));\u003c\/script\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"celwidget aplus-module premium-module-13-carousel aplus-premium\" cel_widget_id=\"aplus-premium-module-13-carousel\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"dp_desktop_aplus_premium-module-13-carousel_div\" data-csa-c-content-id=\"aplus_premium-module-13-carousel\"\u003e\n    \u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-13\"\u003e\n     \u003cdiv class=\"a-section a-spacing-none aplus-carousel-container\"\u003e\n      \u003cdiv id=\"premium-aplus-13-carousel-3-id\" data-a-carousel-options='{\"peek_percentage\":0,\"minimum_gutter_width\":0,\"show_partial_next\":false,\"name\":\"premium-aplus-13-carousel-3\"}' aria-label=\"Featured content carousel\" aria-roledescription=\"carousel\" data-a-display-strategy=\"single\" data-a-transition-strategy=\"slideCircular\" role=\"region\" class=\"a-begin a-carousel-container a-carousel-static a-carousel-display-single a-carousel-transition-slideCircular\"\u003e\n       \u003cinput autocomplete=\"on\" type=\"hidden\" class=\"a-carousel-firstvisibleitem\"\u003e\n       \u003cdiv class=\"a-row a-carousel-controls a-carousel-row a-carousel-has-buttons a-carousel-overlay-buttons a-carousel-rounded-buttons\"\u003e\n        \u003cdiv class=\"a-carousel-row-inner\"\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-left\"\u003e\n          \u003ca class=\"a-carousel-goto-prevpage\" role=\"button\" href=\"#\"\u003e\u003ci class=\"a-icon a-icon-previous-rounded\"\u003e\u003cspan class=\"a-icon-alt\"\u003ePrevious page\u003c\/span\u003e\u003c\/i\u003e\u003c\/a\u003e\n         \u003c\/div\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-center\"\u003e\n          \u003cdiv class=\"a-carousel-viewport\" aria-roledescription=\"slide\"\u003e\n           \u003col class=\"a-carousel\" role=\"list\"\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"5\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-3-slide-0\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"Spino E1 Pool cleaner\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/963c4b0d-6539-4f58-a340-1197f98923af.__CR0,0,2928,1200_PT0_SX1464_V1___.jpg\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"5\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-3-slide-1\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"Long-lasting\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/47291e00-42fb-4b23-9c95-a42feb9a6cee.__CR0,0,2928,1200_PT0_SX1464_V1___.jpg\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"5\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-3-slide-2\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"Path Planning\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/7fdb464e-f892-41b5-bbdd-036a64980701.__CR0,0,2928,1200_PT0_SX1464_V1___.jpg\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"5\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-3-slide-3\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"Parking\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/9b1d578b-48a1-4af7-96eb-13c9d93b80de.__CR0,0,2928,1200_PT0_SX1464_V1___.jpg\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"5\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-3-slide-4\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"spino e1 robotic pool cleaner\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/3fbe7744-acc6-4050-bd0b-66740888cca2.__CR15,0,2899,1188_PT0_SX1464_V1___.png\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n           \u003c\/ol\u003e\n          \u003c\/div\u003e\n         \u003c\/div\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-right\"\u003e\n          \u003ca class=\"a-carousel-goto-nextpage\" role=\"button\" href=\"#\"\u003e\u003ci class=\"a-icon a-icon-next-rounded\"\u003e\u003cspan class=\"a-icon-alt\"\u003eNext page\u003c\/span\u003e\u003c\/i\u003e\u003c\/a\u003e\n         \u003c\/div\u003e\n        \u003c\/div\u003e\n       \u003c\/div\u003e\n       \u003cspan class=\"a-end aok-hidden\"\u003e\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"a-section a-spacing-none aplus-pagination-wrapper\"\u003e\n       \u003cstyle type=\"text\/css\"\u003e\n\n.aplus-mantle.aplus-module .aplus-pagination-dots {\n    margin: 0;\n}\n\n.aplus-mantle.aplus-module .aplus-pagination-dot {\n    display: inline-block;\n    list-style: none;\n}\n\n.aplus-mantle.aplus-module .aplus-carousel-nav {\n    text-align:center;\n}\n\n.aplus-mantle.aplus-module .carousel-slider-circle {\n    display: inline-block;\n    cursor: pointer;\n    height: 15px;\n    width: 15px;\n    border: 1px solid #000;\n    border-radius: 20px;\n    background-color: #fff;\n    margin-left: 5px;\n}\n\n.aplus-mantle.aplus-module .carousel-slider-circle.aplus-carousel-active {\n    background-color: #DE7921;\n}\n\n.aplus-mantle.aplus-module .aplus-pagination-dot--display-none {\n    display: none;\n}\n\n\u003c\/style\u003e\n       \u003cscript\u003e\n\nP.now(\"premium-aplus-13-carousel-3\").execute(\"init-pagination-carousel\", function(init) {\n    if (init) {\n        return;\n    }\n    P.register(\"premium-aplus-13-carousel-3\", function() {\n        return function() {\n            P.when(\"A\", \"jQuery\", \"a-carousel-framework\", \"ready\").execute(\"paginate-carousel\", function (A, $, framework) {\n                const ENTER_KEY_CODE = 13;\n                const ESCAPE_KEY_CODE = 27;\n                const LEFT_ARROW_KEY = 37;\n                const RIGHT_ARROW_KEY = 39;\n                const HOME_KEY = 36;\n                const END_KEY = 35;\n\n                var moduleId = \"3\";\n                var carouselName = \"premium-aplus-13-carousel-3\";\n                var paginationAction = \"aplus-pagination-dot-action-\" + moduleId + \"-\" + carouselName;\n                var paginationGroup = \"#aplus-pagination-group-\" + moduleId + \"-\" + carouselName;\n\n                \/* If the carousel goes to a new page *\/\n                A.on(\"a:carousel:\"+carouselName+\":change:pageNumber\", function (data) {\n                    A.$(paginationGroup+\" .carousel-slider-circle\").removeClass(\"aplus-carousel-active\").attr('aria-selected', 'false').attr('tabindex', -1)\n                                    .eq(data.newValue - 1).addClass(\"aplus-carousel-active\").attr('aria-selected', 'true').attr('tabindex', 0);\n                });\n\n                function syncPaginationDotsWithCarouselPages(numPages) {\n                    const parentElement = document.querySelector(paginationGroup);\n                    if (parentElement \u0026\u0026 parentElement.children) {\n                        const children = parentElement.children;\n                        for (let i = 0; i \u003c children.length; i++) {\n                            if (i \u003e= numPages) {\n                                \/\/ If number of dots \u003e num of pages, we should hide other dots\n                                children[i].classList.add('aplus-pagination-dot--display-none');\n                            } else if (children[i].classList.contains('aplus-pagination-dot--display-none')) {\n                                \/\/ Reset display of dots if it was hidden before\n                                children[i].classList.remove('aplus-pagination-dot--display-none');\n                            }\n                        }\n                    }\n                }\n\n                framework.onInit(carouselName, function (carousel) {\n                    try {\n                        var totalPages = carousel.getAttr('totalPages');\n                        syncPaginationDotsWithCarouselPages(totalPages);\n                        \/* Resize event handler to re-calculate the pagination dots count based on orientation *\/\n                        window.addEventListener('resize', function() {\n                            carousel.resize();\n                            totalPages = carousel.getAttr('totalPages');\n                            syncPaginationDotsWithCarouselPages(totalPages);\n                        });\n\n                        A.declarative(paginationAction, 'click keydown', function(event){\n                            var isClick = event.type === 'click';\n                            var isKeydown = event.type === 'keydown';\n                            var isEnter = isKeydown \u0026\u0026 event.$event.keyCode === ENTER_KEY_CODE;\n                            var isEsc = isKeydown \u0026\u0026 event.$event.keyCode === ESCAPE_KEY_CODE;\n                            var isLeftArrow = isKeydown \u0026\u0026 event.$event.keyCode === LEFT_ARROW_KEY;\n                            var isRightArrow = isKeydown \u0026\u0026 event.$event.keyCode === RIGHT_ARROW_KEY;\n                            var isHome = isKeydown \u0026\u0026 event.$event.keyCode === HOME_KEY;\n                            var isEnd = isKeydown \u0026\u0026 event.$event.keyCode === END_KEY;\n\n                            if (isClick || isEnter) {\n                                var data = event.data;\n                                carousel.gotoPage(data.page);\n                            } else if (isEsc) {\n                                event.$target.blur();\n                            } else if (isLeftArrow || isRightArrow || isHome || isEnd) {\n                                event.$event.preventDefault();\n                                const dots = A.$(paginationGroup + \" .carousel-slider-circle\");\n                                const currentIndex = dots.index(event.$target);\n                                let nextIndex;\n\n                                if (isLeftArrow) {\n                                    nextIndex = currentIndex \u003e 0 ? currentIndex - 1 : dots.length - 1;\n                                } else if (isRightArrow) {\n                                    nextIndex = currentIndex \u003c dots.length - 1 ? currentIndex + 1 : 0;\n                                } else if (isHome) {\n                                    nextIndex = 0;\n                                } else if (isEnd) {\n                                    nextIndex = dots.length - 1;\n                                }\n\n                                dots.eq(nextIndex).focus();\n                                carousel.gotoPage(nextIndex + 1);\n                            }\n                        });\n                    } catch (e) {\n                        P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources');\n                    }\n                });\n            });\n        }\n    });\n});\n\u003c\/script\u003e\n       \u003cdiv class=\"aplus-mantle aplus-module\"\u003e\n        \u003cdiv class=\"aplus-carousel-nav\"\u003e\n         \u003cul id=\"aplus-pagination-group-3-premium-aplus-13-carousel-3\" class=\"aplus-pagination-dots\" aria-label=\"tablist-section\" role=\"tablist\"\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block aplus-carousel-active\" aria-selected=\"true\" data-action=\"aplus-pagination-dot-action-3-premium-aplus-13-carousel-3\" data-aplus-pagination-dot-action-3-premium-aplus-13-carousel-3='{\"page\": 1}' aria-label=\"slide-1\" aria-controls=\"premium-aplus-13-carousel-3-slide-0\" tabindex=\"0\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-3-premium-aplus-13-carousel-3\" data-aplus-pagination-dot-action-3-premium-aplus-13-carousel-3='{\"page\": 2}' aria-label=\"slide-2\" aria-controls=\"premium-aplus-13-carousel-3-slide-1\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-3-premium-aplus-13-carousel-3\" data-aplus-pagination-dot-action-3-premium-aplus-13-carousel-3='{\"page\": 3}' aria-label=\"slide-3\" aria-controls=\"premium-aplus-13-carousel-3-slide-2\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-3-premium-aplus-13-carousel-3\" data-aplus-pagination-dot-action-3-premium-aplus-13-carousel-3='{\"page\": 4}' aria-label=\"slide-4\" aria-controls=\"premium-aplus-13-carousel-3-slide-3\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-3-premium-aplus-13-carousel-3\" data-aplus-pagination-dot-action-3-premium-aplus-13-carousel-3='{\"page\": 5}' aria-label=\"slide-5\" aria-controls=\"premium-aplus-13-carousel-3-slide-4\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n         \u003c\/ul\u003e\n        \u003c\/div\u003e\n       \u003c\/div\u003e\n      \u003c\/div\u003e\n     \u003c\/div\u003e\n     \u003cdiv class=\"a-section a-text-center\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cscript type=\"text\/javascript\"\u003e(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n    P.when(\"premium-aplus-13-carousel-3\").execute('invoke-premium-13-carousel-desktop', function(init){init();});\n}));\u003c\/script\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"celwidget aplus-module premium-module-13-carousel aplus-premium\" cel_widget_id=\"aplus-premium-module-13-carousel\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"dp_desktop_aplus_premium-module-13-carousel_div\" data-csa-c-content-id=\"aplus_premium-module-13-carousel\"\u003e\n    \u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-13\"\u003e\n     \u003cdiv class=\"a-section a-spacing-none aplus-carousel-container\"\u003e\n      \u003cdiv id=\"premium-aplus-13-carousel-4-id\" data-a-carousel-options='{\"peek_percentage\":0,\"minimum_gutter_width\":0,\"show_partial_next\":false,\"name\":\"premium-aplus-13-carousel-4\"}' aria-label=\"Featured content carousel\" aria-roledescription=\"carousel\" data-a-display-strategy=\"single\" data-a-transition-strategy=\"slideCircular\" role=\"region\" class=\"a-begin a-carousel-container a-carousel-static a-carousel-display-single a-carousel-transition-slideCircular\"\u003e\n       \u003cinput autocomplete=\"on\" type=\"hidden\" class=\"a-carousel-firstvisibleitem\"\u003e\n       \u003cdiv class=\"a-row a-carousel-controls a-carousel-row a-carousel-has-buttons a-carousel-overlay-buttons a-carousel-rounded-buttons\"\u003e\n        \u003cdiv class=\"a-carousel-row-inner\"\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-left\"\u003e\n          \u003ca class=\"a-carousel-goto-prevpage\" role=\"button\" href=\"#\"\u003e\u003ci class=\"a-icon a-icon-previous-rounded\"\u003e\u003cspan class=\"a-icon-alt\"\u003ePrevious page\u003c\/span\u003e\u003c\/i\u003e\u003c\/a\u003e\n         \u003c\/div\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-center\"\u003e\n          \u003cdiv class=\"a-carousel-viewport\" aria-roledescription=\"slide\"\u003e\n           \u003col class=\"a-carousel\" role=\"list\"\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"4\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-4-slide-0\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"spino e1 pool cleaner beach entry pool\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/a1a2e1f9-5296-442c-b13d-14c9cc245d10.__CR0,0,2928,1200_PT0_SX1464_V1___.jpg\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"4\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-4-slide-1\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"multi-shape pools\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/88b50d72-3990-4cf2-b775-04fa0492c2e4.__CR0,0,2928,1200_PT0_SX1464_V1___.jpg\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"4\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-4-slide-2\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"spino e1 robotic pool cleaner\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/fcb2e160-7b40-4847-9f37-e28152e2040e.__CR0,0,2928,1200_PT0_SX1464_V1___.png\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"4\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-4-slide-3\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"spino e1 robotic pool cleaner\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/ec86e59e-80d9-4ed0-9955-b915bf4f5af2.__CR0,0,2928,1200_PT0_SX1464_V1___.png\"\u003e\n              \u003c\/div\u003e\n             \u003c\/div\u003e\n            \u003c\/li\u003e\n           \u003c\/ol\u003e\n          \u003c\/div\u003e\n         \u003c\/div\u003e\n         \u003cdiv class=\"a-carousel-col a-carousel-right\"\u003e\n          \u003ca class=\"a-carousel-goto-nextpage\" role=\"button\" href=\"#\"\u003e\u003ci class=\"a-icon a-icon-next-rounded\"\u003e\u003cspan class=\"a-icon-alt\"\u003eNext page\u003c\/span\u003e\u003c\/i\u003e\u003c\/a\u003e\n         \u003c\/div\u003e\n        \u003c\/div\u003e\n       \u003c\/div\u003e\n       \u003cspan class=\"a-end aok-hidden\"\u003e\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"a-section a-spacing-none aplus-pagination-wrapper\"\u003e\n       \u003cstyle type=\"text\/css\"\u003e\n\n.aplus-mantle.aplus-module .aplus-pagination-dots {\n    margin: 0;\n}\n\n.aplus-mantle.aplus-module .aplus-pagination-dot {\n    display: inline-block;\n    list-style: none;\n}\n\n.aplus-mantle.aplus-module .aplus-carousel-nav {\n    text-align:center;\n}\n\n.aplus-mantle.aplus-module .carousel-slider-circle {\n    display: inline-block;\n    cursor: pointer;\n    height: 15px;\n    width: 15px;\n    border: 1px solid #000;\n    border-radius: 20px;\n    background-color: #fff;\n    margin-left: 5px;\n}\n\n.aplus-mantle.aplus-module .carousel-slider-circle.aplus-carousel-active {\n    background-color: #DE7921;\n}\n\n.aplus-mantle.aplus-module .aplus-pagination-dot--display-none {\n    display: none;\n}\n\n\u003c\/style\u003e\n       \u003cscript\u003e\n\nP.now(\"premium-aplus-13-carousel-4\").execute(\"init-pagination-carousel\", function(init) {\n    if (init) {\n        return;\n    }\n    P.register(\"premium-aplus-13-carousel-4\", function() {\n        return function() {\n            P.when(\"A\", \"jQuery\", \"a-carousel-framework\", \"ready\").execute(\"paginate-carousel\", function (A, $, framework) {\n                const ENTER_KEY_CODE = 13;\n                const ESCAPE_KEY_CODE = 27;\n                const LEFT_ARROW_KEY = 37;\n                const RIGHT_ARROW_KEY = 39;\n                const HOME_KEY = 36;\n                const END_KEY = 35;\n\n                var moduleId = \"4\";\n                var carouselName = \"premium-aplus-13-carousel-4\";\n                var paginationAction = \"aplus-pagination-dot-action-\" + moduleId + \"-\" + carouselName;\n                var paginationGroup = \"#aplus-pagination-group-\" + moduleId + \"-\" + carouselName;\n\n                \/* If the carousel goes to a new page *\/\n                A.on(\"a:carousel:\"+carouselName+\":change:pageNumber\", function (data) {\n                    A.$(paginationGroup+\" .carousel-slider-circle\").removeClass(\"aplus-carousel-active\").attr('aria-selected', 'false').attr('tabindex', -1)\n                                    .eq(data.newValue - 1).addClass(\"aplus-carousel-active\").attr('aria-selected', 'true').attr('tabindex', 0);\n                });\n\n                function syncPaginationDotsWithCarouselPages(numPages) {\n                    const parentElement = document.querySelector(paginationGroup);\n                    if (parentElement \u0026\u0026 parentElement.children) {\n                        const children = parentElement.children;\n                        for (let i = 0; i \u003c children.length; i++) {\n                            if (i \u003e= numPages) {\n                                \/\/ If number of dots \u003e num of pages, we should hide other dots\n                                children[i].classList.add('aplus-pagination-dot--display-none');\n                            } else if (children[i].classList.contains('aplus-pagination-dot--display-none')) {\n                                \/\/ Reset display of dots if it was hidden before\n                                children[i].classList.remove('aplus-pagination-dot--display-none');\n                            }\n                        }\n                    }\n                }\n\n                framework.onInit(carouselName, function (carousel) {\n                    try {\n                        var totalPages = carousel.getAttr('totalPages');\n                        syncPaginationDotsWithCarouselPages(totalPages);\n                        \/* Resize event handler to re-calculate the pagination dots count based on orientation *\/\n                        window.addEventListener('resize', function() {\n                            carousel.resize();\n                            totalPages = carousel.getAttr('totalPages');\n                            syncPaginationDotsWithCarouselPages(totalPages);\n                        });\n\n                        A.declarative(paginationAction, 'click keydown', function(event){\n                            var isClick = event.type === 'click';\n                            var isKeydown = event.type === 'keydown';\n                            var isEnter = isKeydown \u0026\u0026 event.$event.keyCode === ENTER_KEY_CODE;\n                            var isEsc = isKeydown \u0026\u0026 event.$event.keyCode === ESCAPE_KEY_CODE;\n                            var isLeftArrow = isKeydown \u0026\u0026 event.$event.keyCode === LEFT_ARROW_KEY;\n                            var isRightArrow = isKeydown \u0026\u0026 event.$event.keyCode === RIGHT_ARROW_KEY;\n                            var isHome = isKeydown \u0026\u0026 event.$event.keyCode === HOME_KEY;\n                            var isEnd = isKeydown \u0026\u0026 event.$event.keyCode === END_KEY;\n\n                            if (isClick || isEnter) {\n                                var data = event.data;\n                                carousel.gotoPage(data.page);\n                            } else if (isEsc) {\n                                event.$target.blur();\n                            } else if (isLeftArrow || isRightArrow || isHome || isEnd) {\n                                event.$event.preventDefault();\n                                const dots = A.$(paginationGroup + \" .carousel-slider-circle\");\n                                const currentIndex = dots.index(event.$target);\n                                let nextIndex;\n\n                                if (isLeftArrow) {\n                                    nextIndex = currentIndex \u003e 0 ? currentIndex - 1 : dots.length - 1;\n                                } else if (isRightArrow) {\n                                    nextIndex = currentIndex \u003c dots.length - 1 ? currentIndex + 1 : 0;\n                                } else if (isHome) {\n                                    nextIndex = 0;\n                                } else if (isEnd) {\n                                    nextIndex = dots.length - 1;\n                                }\n\n                                dots.eq(nextIndex).focus();\n                                carousel.gotoPage(nextIndex + 1);\n                            }\n                        });\n                    } catch (e) {\n                        P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources');\n                    }\n                });\n            });\n        }\n    });\n});\n\u003c\/script\u003e\n       \u003cdiv class=\"aplus-mantle aplus-module\"\u003e\n        \u003cdiv class=\"aplus-carousel-nav\"\u003e\n         \u003cul id=\"aplus-pagination-group-4-premium-aplus-13-carousel-4\" class=\"aplus-pagination-dots\" aria-label=\"tablist-section\" role=\"tablist\"\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block aplus-carousel-active\" aria-selected=\"true\" data-action=\"aplus-pagination-dot-action-4-premium-aplus-13-carousel-4\" data-aplus-pagination-dot-action-4-premium-aplus-13-carousel-4='{\"page\": 1}' aria-label=\"slide-1\" aria-controls=\"premium-aplus-13-carousel-4-slide-0\" tabindex=\"0\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-4-premium-aplus-13-carousel-4\" data-aplus-pagination-dot-action-4-premium-aplus-13-carousel-4='{\"page\": 2}' aria-label=\"slide-2\" aria-controls=\"premium-aplus-13-carousel-4-slide-1\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-4-premium-aplus-13-carousel-4\" data-aplus-pagination-dot-action-4-premium-aplus-13-carousel-4='{\"page\": 3}' aria-label=\"slide-3\" aria-controls=\"premium-aplus-13-carousel-4-slide-2\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-4-premium-aplus-13-carousel-4\" data-aplus-pagination-dot-action-4-premium-aplus-13-carousel-4='{\"page\": 4}' aria-label=\"slide-4\" aria-controls=\"premium-aplus-13-carousel-4-slide-3\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n         \u003c\/ul\u003e\n        \u003c\/div\u003e\n       \u003c\/div\u003e\n      \u003c\/div\u003e\n     \u003c\/div\u003e\n     \u003cdiv class=\"a-section a-text-center\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cscript type=\"text\/javascript\"\u003e(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n    P.when(\"premium-aplus-13-carousel-4\").execute('invoke-premium-13-carousel-desktop', function(init){init();});\n}));\u003c\/script\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"celwidget aplus-module premium-module-11-faq aplus-premium\" cel_widget_id=\"aplus-premium-module-11-faq\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"dp_desktop_aplus_premium-module-11-faq_div\" data-csa-c-content-id=\"aplus_premium-module-11-faq\"\u003e\n    \u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-11\"\u003e\n     \u003cdiv data-faq-block=\"5\" class=\"a-section a-spacing-none aplus-container-2 faqs-container 5\"\u003e\n      \u003cul class=\"faq-list\"\u003e\n       \u003cli id=\"faq-qa-pair-0\" class=\"faq-block\"\u003e\n        \u003ch3\u003e\u003cspan data-faq-question role=\"button\" tabindex=\"0\" aria-controls=\"faq-0\" aria-expanded=\"false\"\u003e \n          \u003cp class=\"aplus-question aplus-p1\"\u003eDoes the SPINO E1 park at the waterline? How does waterline parking work on the SPINO E1?\u003c\/p\u003e \n          \u003cspan class=\"faq-arrow\" aria-label=\"\"\u003e\u003c\/span\u003e \n         \u003c\/span\u003e\u003c\/h3\u003e\n        \u003cp class=\"aplus-answer aplus-p2\"\u003eAfter the battery is low, the SPINO E1 will park at the waterline for easy retrieval. To prevent it from sinking back to the bottom due to battery depletion, please make sure to remove the device within approximately 15 minutes.\u003c\/p\u003e\n       \u003c\/li\u003e\n       \u003cli id=\"faq-qa-pair-1\" class=\"faq-block\"\u003e\n        \u003ch3\u003e\u003cspan data-faq-question role=\"button\" tabindex=\"0\" aria-controls=\"faq-1\" aria-expanded=\"false\"\u003e \n          \u003cp class=\"aplus-question aplus-p1\"\u003eWhat areas of the pool can the robot clean?\u003c\/p\u003e \n          \u003cspan class=\"faq-arrow\" aria-label=\"\"\u003e\u003c\/span\u003e \n         \u003c\/span\u003e\u003c\/h3\u003e\n        \u003cp class=\"aplus-answer aplus-p2\"\u003eThe SPINO E1 is designed to clean the pool floor, walls, and waterline efficiently, helping you maintain a consistently clean swimming environment.\u003c\/p\u003e\n       \u003c\/li\u003e\n       \u003cli id=\"faq-qa-pair-2\" class=\"faq-block\"\u003e\n        \u003ch3\u003e\u003cspan data-faq-question role=\"button\" tabindex=\"0\" aria-controls=\"faq-2\" aria-expanded=\"false\"\u003e \n          \u003cp class=\"aplus-question aplus-p1\"\u003eCan the SPINO E1 climb pool walls?\u003c\/p\u003e \n          \u003cspan class=\"faq-arrow\" aria-label=\"\"\u003e\u003c\/span\u003e \n         \u003c\/span\u003e\u003c\/h3\u003e\n        \u003cp class=\"aplus-answer aplus-p2\"\u003eSPINO E1 is equipped with adaptive climbing algorithms that allow it to detect and adjust its angle to climb pool walls up to 110°. This ensures effective cleaning of not only the pool floor, but also the walls and waterline.\u003c\/p\u003e\n       \u003c\/li\u003e\n       \u003cli id=\"faq-qa-pair-3\" class=\"faq-block\"\u003e\n        \u003ch3\u003e\u003cspan data-faq-question role=\"button\" tabindex=\"0\" aria-controls=\"faq-3\" aria-expanded=\"false\"\u003e \n          \u003cp class=\"aplus-question aplus-p1\"\u003eWhat types of debris can the robot remove?\u003c\/p\u003e \n          \u003cspan class=\"faq-arrow\" aria-label=\"\"\u003e\u003c\/span\u003e \n         \u003c\/span\u003e\u003c\/h3\u003e\n        \u003cp class=\"aplus-answer aplus-p2\"\u003eThe SPINO E1 is equipped with a powerful suction motor delivering Max. 5800 GPH of suction, along with a 180 μm Filter Basket. Effectively capturing pool debris like branches, leaves, and settled particles, sand, and algae.\u003c\/p\u003e\n       \u003c\/li\u003e\n       \u003cli id=\"faq-qa-pair-4\" class=\"faq-block\"\u003e\n        \u003ch3\u003e\u003cspan data-faq-question role=\"button\" tabindex=\"0\" aria-controls=\"faq-4\" aria-expanded=\"false\"\u003e \n          \u003cp class=\"aplus-question aplus-p1\"\u003eWhat size of pool is the SPINO E1 suitable for?\u003c\/p\u003e \n          \u003cspan class=\"faq-arrow\" aria-label=\"\"\u003e\u003c\/span\u003e \n         \u003c\/span\u003e\u003c\/h3\u003e\n        \u003cp class=\"aplus-answer aplus-p2\"\u003eThe SPINO E1 is ideal for pools up to 1600 square feet (150 square meters). Whether your pool is rectangular, round, kidney-shaped, or irregular, the SPINO E1 ensures thorough and efficient cleaning across various surfaces and designs.\u003c\/p\u003e\n       \u003c\/li\u003e\n      \u003c\/ul\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cscript type=\"text\/javascript\"\u003e(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n    P.when('premium-module-11-faq').execute('invoke-premium-11-faq', function(init){\n        init();\n    });\n}));\u003c\/script\u003e\n   \u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\u003c\/div\u003e\u003cdiv\u003e\u003cdiv id=\"feature-bullets\" class=\"a-section a-spacing-medium a-spacing-top-small\"\u003e\n \u003cul class=\"a-unordered-list a-vertical a-spacing-mini\"\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Powerful Suction \u0026amp; Triple Brushless Drive: Spino E1 robotic pool cleaner boasts a 5,800 GPH suction motor and 3 drive motors, with the Spino E1 pool cleaner efficiently removing debris, leaves, and fine particles from all pool surfaces with stable performance. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Long-lasting Performance: Spino E1 pool cleaner runs up to 210 mins (Floor mode), cleans 1600 sq.ft, fits 23.6-118 inch deep pools, ensuring the Spino E1 robotic pool cleaner delivers consistent cleaning for all pool sizes. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Deep Waterline Cleaning: Spino E1 robotic pool cleaner features 11.36-inch activated PVC roller \u0026amp; adaptive climbing tech, with the Spino E1 pool cleaner tackling grime, deposits for spotless waterlines. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Intelligent SmartArc Path \u0026amp; All-Terrain Mastery: Spino E1 robotic pool cleaner uses SmartArc path planning with high-precision sensors \u0026amp; advanced algorithms, with the Spino E1 pool cleaner adjusting 45° per cycle for 100% coverage, climbing 0-45° slopes, scaling 45-110° walls, avoiding 3cm obstacles for seamless navigation \u0026amp; efficient cleaning. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e One-Touch Start \u0026amp; 5 Modes: Spino E1 robotic pool cleaner simplifies cleaning—this Spino E1 pool robot features one-touch operation, just press a button, drop it in, and let the pool robot work. Choose from 5 modes (Floor Only, Wall Only, Auto, Eco, Max) to match your needs with this Spino E1 pool robot. Plus, track battery life in real time and enjoy OTA updates for smarter cleaning with the Spino E1 pool vacuum. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Automatic Waterline Parking for Effortless Retrieval: Spino E1 robotic pool cleaner removes retrieval hassle—this Spino E1 pool vacuum automatically parks near the waterline when battery is low or cleaning ends, staying for 15 minutes. No diving, searching, or struggling needed to get this Spino E1 pool robot easily. \u003c\/span\u003e\u003c\/li\u003e\n \u003c\/ul\u003e\n \u003cdiv data-csa-c-content-id=\"voyager-product-details-jumplink\" data-csa-c-slot-id=\"voyager-product-details-jumplink\" data-csa-c-type=\"link\" class=\"a-section aok-hidden\"\u003e\n  \u003cspan class=\"caretnext\"\u003e›\u003c\/span\u003e \u003ca id=\"seeMoreDetailsLink\" class=\"a-link-normal\" href=\"#productDetails\"\u003e See more product details \u003c\/a\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\u003c\/div\u003e\u003cdiv\u003e\u003cdiv class=\"a-section a-spacing-small a-spacing-top-small\"\u003e\n \u003ctable class=\"a-normal a-spacing-micro\" role=\"list\"\u003e\n  \u003ctbody\u003e\n   \u003ctr class=\"a-spacing-small po-brand\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eBrand\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eSpino\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-model_name\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eModel Name\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eSPINO E1\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-material\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eMaterial\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003ePlastic\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-color\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eColor\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eWhite\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-item_length_width_height\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eProduct Dimensions\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003e17.49\"L x 16.23\"W x 9.58\"H\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n  \u003c\/tbody\u003e\n \u003c\/table\u003e\n\u003c\/div\u003e\u003c\/div\u003e","brand":"Shofield.shop - AI-powered Consumer Electronics","offers":[{"title":"SPINO E1+Filter Basket","offer_id":53986173616469,"sku":"B0GQS7J39R","price":988.9,"currency_code":"USD","in_stock":true},{"title":"SPINO E1 2026","offer_id":53986173649237,"sku":"B0GRFL9WX1","price":548.89,"currency_code":"USD","in_stock":true},{"title":"SPINO E1","offer_id":53986173682005,"sku":"B0GLWVY691","price":548.89,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1043\/9711\/1637\/files\/71JoS_OmJJL.jpg?v=1779456383"}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1043\/9711\/1637\/collections\/71Acq5rOaCL._AC_SL1500.jpg?v=1780141495","url":"https:\/\/shofield.shop\/collections\/ai-robotic-pool-cleaners.oembed","provider":"Shofield.shop - AI-powered Products","version":"1.0","type":"link"}