{"product_id":"switchbot-smart-automatic-curtain-opener-2-packs-with-hub3-bluetooth-remote-control-with-app-timer-high-performance-motor-unlimited-power-add-hub-to-compatible-with-alexa-google-home-homekit","title":"SwitchBot Smart Automatic Curtain Opener 2 Packs with Hub3 - Bluetooth Remote Control with App\/Timer, High-Performance Motor, Unlimited Power, Add Hub to Compatible with Alexa, Google Home, HomeKit","description":"\u003cdiv\u003e\u003cdiv lang=\"en_US\"\u003e\n \u003cdiv class=\"aplus-v2 desktop celwidget\" cel_widget_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 7: Video module - Text on right\n *\/\n\n.aplus-v2 .premium-aplus-module-7 .video-panel-container,\n.aplus-v2 .premium-aplus-module-7 .text-panel-container {\n    vertical-align: middle;\n    width: 50%;\n}\n\n.aplus-v2 .premium-aplus-module-7 .video-panel {\n    position: relative;\n}\n\n.aplus-v2 .premium-aplus-module-7 .video-placeholder {\n    padding-bottom: 75%;  \/* Aspect ratio 4:3 for video and image *\/\n}\n\n.aplus-v2 .premium-aplus-module-7 .video-container {\n    position: absolute;\n    top: 0;\n    width: 100%;\n    height: 100%;\n}\n\n.aplus-v2 .premium-aplus.premium-aplus-module-7 .title {\n    padding-bottom: 20px;\n}\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  \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\"\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=\"Automatic Curtain Opener 3 Rod\" class=\"a-lazy-loaded\" data-src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/fc48490d-c918-4d62-951b-df7927feebdd.__CR0,0,1464,600_PT0_SX1464_V1___.png\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/fc48490d-c918-4d62-951b-df7927feebdd.__CR0,0,1464,600_PT0_SX1464_V1___.png\"\u003e\n       \u003cnoscript\u003e\n        \u003cimg alt=\"Automatic Curtain Opener 3 Rod\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/fc48490d-c918-4d62-951b-df7927feebdd.__CR0,0,1464,600_PT0_SX1464_V1___.png\"\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\"\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=\"Automatic Curtain Opener 3 Rod\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/c9925970-92fe-49a5-8919-1e8bdff1f04e.__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=\"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=\"Automatic Curtain Opener 3 Rod\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/70fa0e1b-d1a7-4bc0-81fb-92c3f4ed3590.__CR0,0,1464,600_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-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-13-carousel aplus-premium\" cel_widget_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=\"2\"\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=\"Automatic Curtain Opener 3 Rod\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/668123b7-cbc8-46f6-8003-24fa263a3ed1.__CR0,0,1464,600_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=\"2\"\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=\"Automatic Curtain Opener 3 Rod\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/a51aa30b-9b4b-4504-9da4-4c4f8e96a67a.__CR0,0,1464,600_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-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         \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\"\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=\"3\"\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=\"Automatic Curtain Opener 3 Rod\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/ff59de99-4b15-4c16-b5c9-4ffc9622508e.__CR0,0,1464,600_PT0_SX1464_V1___.png\"\u003e\n              \u003c\/div\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-description-wrapper\"\u003e\n               \u003cdiv class=\"a-section a-spacing-none aplus-card-description aplus-container-1-2\"\u003e\n                \u003cdiv class=\"a-section a-spacing-none aplus-card-table-cell\"\u003e\n                 \u003cdiv class=\"a-section a-spacing-none aplus-text-background aplus-container-1\"\u003e\n                  \u003cdiv class=\"a-section a-spacing-none aplus-card-title\"\u003e\n                   \u003ch1 class=\"aplus-h2 a-text-bold\"\u003e3 Hours of Sunlight for Endless Power\u003c\/h1\u003e\n                  \u003c\/div\u003e\n                  \u003cdiv class=\"a-section a-spacing-none aplus-card-body\"\u003e\n                   \u003cp class=\"aplus-p3\"\u003eCustomize the solar panel's angles to maximize charging during peak sunlight hours doubling smart charging efficiency.\u003c\/p\u003e\n                  \u003c\/div\u003e\n                  \u003cdiv class=\"a-section a-spacing-none aplus-card-link-button\"\u003e\n                   \u003cspan class=\"a-button a-button-toggle aplus-comparison-table-carousel-link-button\"\u003e\u003cspan class=\"a-button-inner\"\u003e\u003ca href=\"\/dp\/B0C6XYXQ8Y?ref=emc_p_m_13_b\" aria-label=\"Learn more about the product: 3 Hours of Sunlight for Endless Power\" class=\"a-button-text\"\u003e Solar Panel \u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\n                  \u003c\/div\u003e\n                 \u003c\/div\u003e\n                \u003c\/div\u003e\n               \u003c\/div\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=\"3\"\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=\"Automatic Curtain Opener 3 Rod \" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/1bcbb823-937d-4f63-ad0d-7bc0812f8b04.__CR0,0,1464,600_PT0_SX1464_V1___.png\"\u003e\n              \u003c\/div\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-description-wrapper\"\u003e\n               \u003cdiv class=\"a-section a-spacing-none aplus-card-description aplus-container-1-2\"\u003e\n                \u003cdiv class=\"a-section a-spacing-none aplus-card-table-cell\"\u003e\n                 \u003cdiv class=\"a-section a-spacing-none aplus-text-background aplus-container-1\"\u003e\n                  \u003cdiv class=\"a-section a-spacing-none aplus-card-title\"\u003e\n                   \u003ch1 class=\"aplus-h2 a-text-bold\"\u003eCharge on Cloudy Days\u003c\/h1\u003e\n                  \u003c\/div\u003e\n                  \u003cdiv class=\"a-section a-spacing-none aplus-card-body\"\u003e\n                   \u003cp class=\"aplus-p3\"\u003eAdvanced supercapacitor technology ensures stable charging for Curtain, even in rainy or low-light conditions.\u003c\/p\u003e\n                  \u003c\/div\u003e\n                  \u003cdiv class=\"a-section a-spacing-none aplus-card-link-button\"\u003e\n                   \u003cspan class=\"a-button a-button-toggle aplus-comparison-table-carousel-link-button\"\u003e\u003cspan class=\"a-button-inner\"\u003e\u003ca href=\"\/dp\/B0C6XYXQ8Y?ref=emc_p_m_13_b\" aria-label=\"Learn more about the product: Charge on Cloudy Days\" class=\"a-button-text\"\u003e Solar Panel \u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\n                  \u003c\/div\u003e\n                 \u003c\/div\u003e\n                \u003c\/div\u003e\n               \u003c\/div\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=\"3\"\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=\"Automatic Curtain Opener 3 Rod \" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/ff967934-2c2d-4a24-8b86-bb5f5f35deee.__CR0,0,1464,600_PT0_SX1464_V1___.png\"\u003e\n              \u003c\/div\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-description-wrapper\"\u003e\n               \u003cdiv class=\"a-section a-spacing-none aplus-card-description aplus-container-1-2\"\u003e\n                \u003cdiv class=\"a-section a-spacing-none aplus-card-table-cell\"\u003e\n                 \u003cdiv class=\"a-section a-spacing-none aplus-text-background aplus-container-1\"\u003e\n                  \u003cdiv class=\"a-section a-spacing-none aplus-card-title\"\u003e\n                   \u003ch1 class=\"aplus-h2 a-text-bold\"\u003eCharge Anywhere, Anytime\u003c\/h1\u003e\n                  \u003c\/div\u003e\n                  \u003cdiv class=\"a-section a-spacing-none aplus-card-body\"\u003e\n                   \u003cp class=\"aplus-p3\"\u003eIf you don’t use the solar panel, we still keep up to 8 months of long-lasting battery life. Just use a power bank to recharge—no need to take down your Curtain during charging.\u003c\/p\u003e\n                  \u003c\/div\u003e\n                 \u003c\/div\u003e\n                \u003c\/div\u003e\n               \u003c\/div\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         \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\"\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=\"Automatic Curtain Opener 3 Rod\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/4e8f6b37-3d81-4da8-8c5a-89eb603c7811.__CR0,0,1464,600_PT0_SX1464_V1___.png\"\u003e\n              \u003c\/div\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-description-wrapper\"\u003e\n               \u003cdiv class=\"a-section a-spacing-none aplus-card-description aplus-container-1-2\"\u003e\n                \u003cdiv class=\"a-section a-spacing-none aplus-card-table-cell\"\u003e\n                 \u003cdiv class=\"a-section a-spacing-none aplus-text-background aplus-container-1\"\u003e\n                  \u003cdiv class=\"a-section a-spacing-none aplus-card-title\"\u003e\n                   \u003ch1 class=\"aplus-h2 a-text-bold\"\u003eFeeling tired at night? Let Alexa take over\u003c\/h1\u003e\n                  \u003c\/div\u003e\n                  \u003cdiv class=\"a-section a-spacing-none aplus-card-body\"\u003e\n                   \u003cp class=\"aplus-p3\"\u003eControl your curtains effortlessly with voice commands via your smart assistant (SwitchBot Hub required).\u003c\/p\u003e\n                  \u003c\/div\u003e\n                  \u003cdiv class=\"a-section a-spacing-none aplus-card-link-button\"\u003e\n                   \u003cspan class=\"a-button a-button-toggle aplus-comparison-table-carousel-link-button\"\u003e\u003cspan class=\"a-button-inner\"\u003e\u003ca href=\"\/dp\/B0F5QKQ6PV?ref=emc_p_m_13_b\" aria-label=\"Learn more about the product: Feeling tired at night? Let Alexa take over\" class=\"a-button-text\"\u003e Hub 3 \u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\n                  \u003c\/div\u003e\n                 \u003c\/div\u003e\n                \u003c\/div\u003e\n               \u003c\/div\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=\"Automatic Curtain Opener 3 Rod\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/481b6cd0-86df-4863-86a8-5220f4258f6e.__CR0,0,1464,600_PT0_SX1464_V1___.png\"\u003e\n              \u003c\/div\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-description-wrapper\"\u003e\n               \u003cdiv class=\"a-section a-spacing-none aplus-card-description aplus-container-1-2\"\u003e\n                \u003cdiv class=\"a-section a-spacing-none aplus-card-table-cell\"\u003e\n                 \u003cdiv class=\"a-section a-spacing-none aplus-text-background aplus-container-1\"\u003e\n                  \u003cdiv class=\"a-section a-spacing-none aplus-card-title\"\u003e\n                   \u003ch1 class=\"aplus-h2 a-text-bold\"\u003eEasy Curtain Control with SwitchBot Remote\u003c\/h1\u003e\n                  \u003c\/div\u003e\n                  \u003cdiv class=\"a-section a-spacing-none aplus-card-body\"\u003e\n                   \u003cp class=\"aplus-p3\"\u003eGot kids at home? Let them easily control the curtains with their own SwitchBot Remote.\u003c\/p\u003e\n                  \u003c\/div\u003e\n                  \u003cdiv class=\"a-section a-spacing-none aplus-card-link-button\"\u003e\n                   \u003cspan class=\"a-button a-button-toggle aplus-comparison-table-carousel-link-button\"\u003e\u003cspan class=\"a-button-inner\"\u003e\u003ca href=\"\/dp\/B08GM64R84?ref=emc_p_m_13_b\" aria-label=\"Learn more about the product: Easy Curtain Control with SwitchBot Remote\" class=\"a-button-text\"\u003e Remote \u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\n                  \u003c\/div\u003e\n                 \u003c\/div\u003e\n                \u003c\/div\u003e\n               \u003c\/div\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=\"Automatic Curtain Opener 3 Rod \" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/282a4e67-7b66-41d8-8531-c1ee47660f4a.__CR0,0,1464,600_PT0_SX1464_V1___.png\"\u003e\n              \u003c\/div\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-description-wrapper\"\u003e\n               \u003cdiv class=\"a-section a-spacing-none aplus-card-description aplus-container-1-2\"\u003e\n                \u003cdiv class=\"a-section a-spacing-none aplus-card-table-cell\"\u003e\n                 \u003cdiv class=\"a-section a-spacing-none aplus-text-background aplus-container-1\"\u003e\n                  \u003cdiv class=\"a-section a-spacing-none aplus-card-title\"\u003e\n                   \u003ch1 class=\"aplus-h2 a-text-bold\"\u003eMake Your Home Blinds Smart\u003c\/h1\u003e\n                  \u003c\/div\u003e\n                  \u003cdiv class=\"a-section a-spacing-none aplus-card-body\"\u003e\n                   \u003cp class=\"aplus-p3\"\u003eUse SwitchBot Blind Tilt to effortlessly control blinds in your bathroom and study.\u003c\/p\u003e\n                  \u003c\/div\u003e\n                  \u003cdiv class=\"a-section a-spacing-none aplus-card-link-button\"\u003e\n                   \u003cspan class=\"a-button a-button-toggle aplus-comparison-table-carousel-link-button\"\u003e\u003cspan class=\"a-button-inner\"\u003e\u003ca href=\"\/dp\/B0BMLFZ4CP?ref=emc_p_m_13_b\" aria-label=\"Learn more about the product: Make Your Home Blinds Smart\" class=\"a-button-text\"\u003e Blind Tilt \u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\n                  \u003c\/div\u003e\n                 \u003c\/div\u003e\n                \u003c\/div\u003e\n               \u003c\/div\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=\"Smart doorbell security camera mounted on exterior wall, with smartphone app interface showing live video feed. Modern house entrance with glass door visible at night.\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/d29b9361-9378-4672-a47e-f0b436d7a374.__CR0,0,1464,600_PT0_SX1464_V1___.png\"\u003e\n              \u003c\/div\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-description-wrapper\"\u003e\n               \u003cdiv class=\"a-section a-spacing-none aplus-card-description aplus-container-1-2\"\u003e\n                \u003cdiv class=\"a-section a-spacing-none aplus-card-table-cell\"\u003e\n                 \u003cdiv class=\"a-section a-spacing-none aplus-text-background aplus-container-1\"\u003e\n                  \u003cdiv class=\"a-section a-spacing-none aplus-card-title\"\u003e\n                   \u003ch1 class=\"aplus-h2 a-text-bold\"\u003eSecure Your Home When You’re Away\u003c\/h1\u003e\n                  \u003c\/div\u003e\n                  \u003cdiv class=\"a-section a-spacing-none aplus-card-body\"\u003e\n                   \u003cp class=\"aplus-p3\"\u003eControl your curtains to create the illusion of presence—a smart theft deterrent.\u003c\/p\u003e\n                  \u003c\/div\u003e\n                  \u003cdiv class=\"a-section a-spacing-none aplus-card-link-button\"\u003e\n                   \u003cspan class=\"a-button a-button-toggle aplus-comparison-table-carousel-link-button\"\u003e\u003cspan class=\"a-button-inner\"\u003e\u003ca href=\"\/dp\/B0F672TCXQ?ref=emc_p_m_13_b\" aria-label=\"Learn more about the product: Secure Your Home When You’re Away\" class=\"a-button-text\"\u003e Doorbell \u003c\/a\u003e\u003c\/span\u003e\u003c\/span\u003e\n                  \u003c\/div\u003e\n                 \u003c\/div\u003e\n                \u003c\/div\u003e\n               \u003c\/div\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-7-video-text aplus-premium\" cel_widget_id=\"aplus-premium-module-7-video-text\"\u003e\n    \u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-7 aplus-container-1\"\u003e\n     \u003cdiv class=\"a-section a-spacing-none aplus-display-table aplus-display-table-width\"\u003e\n      \u003cdiv class=\"a-section a-spacing-none text-panel-container aplus-container-1 aplus-display-table-cell\"\u003e\n       \u003ch3 class=\"aplus-h1 a-text-bold\"\u003eTransform Your Curtains into Smart Ones in 30 Seconds\u003c\/h3\u003e\n       \u003cbr\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"a-section a-spacing-none video-panel-container aplus-display-table-cell\"\u003e\n       \u003cdiv class=\"a-section a-spacing-none video-panel\"\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=\"507d98ac-45ac-48c5-972e-23e5816e2c45\" 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.vse.video.000cda96f954460fb9d91cb37480f860\" 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-146102-player-d873b6e5-f429-4fa1-9e35-0fe7dd44f570-player-ps\"}'\u003e{\"enableFullScreenByDefault\":false,\"clickstreamNexusMetricsConfig\":{\"producerId\":\"vsemetrics_playercards\",\"schemaId\":\"clickstream.CustomerEvent.4\",\"actionType\":\"DISCOVERY\",\"eventOwner\":\"vsemetrics_playercards\",\"eventType\":\"IVEVideoView\",\"productId\":\"B0FT3DBVJX\"},\"videoReferenceId\":\"784d09b6-ff76-44f5-995e-3ddc6b5327b8_4f98b879-ff85-4f50-926c-083a420cbe22\",\"contentId\":\"B0FT3DBVJX\",\"ccvDisclosure\":\"\",\"closedCaptionsConfig\":{\"captionsOnTexts\":{\"de\":\"German (Automated)\",\"ja\":\"Japanese (Automated)\",\"en\":\"English (Automated)\",\"fr\":\"French (Automated)\",\"es\":\"Spanish (Automated)\"},\"captionsOffText\":\"Captions off\",\"languageToLabelTexts\":{\"English\":\"English\",\"French\":\"French\",\"German\":\"German\",\"Spanish\":\"Spanish\",\"Japanese\":\"Japanese\"}},\"mimeType\":\"application\/x-mpegURL\",\"videoHeight\":480,\"disableReportIllegalLink\":false,\"videoWidth\":640,\"initialClosedCaptions\":\"en,https:\/\/m.media-amazon.com\/images\/S\/vse-vms-closed-captions-artifact-us-east-1-prod\/closedCaptions\/5f27b6e0-594c-4692-8d6c-37a147e163a0.vtt\",\"useHotspotsNX\":false,\"eligibleToTriggerCCWeblab\":false,\"videoUrl\":\"https:\/\/m.media-amazon.com\/images\/S\/vse-vms-transcoding-artifact-us-east-1-prod\/0cea0f28-254f-4162-a281-388ba5278e2a\/default.jobtemplate.hls.m3u8\",\"metricsEmissionMethod\":\"nexus\",\"imageUrl\":\"https:\/\/m.media-amazon.com\/images\/I\/81XR0GxOZZL.png\",\"needPlayerFactory\":false,\"isMobile\":false,\"showHotspots\":false,\"aciContentId\":\"amzn1.vse.video.000cda96f954460fb9d91cb37480f860\",\"altText\":\"Transform Your Curtains into Smart Ones in 30s\",\"clientPrefix\":\"aplus-146102\",\"hotSpotsV3Weblab\":\"\",\"productAsin\":\"B0FT3DBVJX\",\"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\":\"P08XKBB74A56MPHXQCJ2\",\"sessionId\":\"136-4492396-9086688\",\"customerId\":\"0\",\"refMarkers\":\"aplus-146102_ref\",\"sessionType\":1,\"placementContext\":\"desktop_web.AplusWidget.aplusdp\",\"marketplaceId\":\"ATVPDKIKX0DER\",\"weblabIds\":\"\",\"isInternal\":false,\"isRobot\":false,\"clientId\":\"VSE-US\",\"videoAsinList\":\"\",\"pageAsin\":\"B0FT3DBVJX\"},\"reportUrl\":\"\",\"videoTitle\":\"Transform Your Curtains into Smart Ones in 30s\",\"vendorName\":\"\",\"nexusMetricsConfig\":{\"eventSource\":\"Player\",\"isInternal\":false,\"playerTSMMetricsSchemaId\":\"vse.VSECardsPlayerEvents.9\",\"widgetMetricsSchemaId\":\"vse.VSECardsEvents.9\",\"producerId\":\"vsemetrics_playercards\",\"refMarkers\":\"aplus-146102_ref\",\"placementContext\":\"desktop_web.AplusWidget.aplusdp\",\"weblabIds\":\"\",\"clientId\":\"VSE-US\",\"videoAsin\":\"000cda96f954460fb9d91cb37480f860\",\"videoAsinList\":\"\",\"pageAsin\":\"B0FT3DBVJX\"},\"awaConfig\":{\"useUpNextComponent\":false,\"clickstreamNexusMetricsConfig\":{\"producerId\":\"vsemetrics_playercards\",\"schemaId\":\"clickstream.CustomerEvent.4\",\"actionType\":\"DISCOVERY\",\"eventOwner\":\"vsemetrics_playercards\",\"eventType\":\"IVEVideoView\",\"productId\":\"B0FT3DBVJX\"},\"initialVideo\":\"000cda96f954460fb9d91cb37480f860\",\"shouldPreload\":true,\"enableClickBasedAttribution\":false,\"isChromelessPlayer\":false,\"closedCaptionsConfig\":{\"captionsOnTexts\":{\"de\":\"German (Automated)\",\"ja\":\"Japanese (Automated)\",\"en\":\"English (Automated)\",\"fr\":\"French (Automated)\",\"es\":\"Spanish (Automated)\"},\"captionsOffText\":\"Captions off\",\"languageToLabelTexts\":{\"English\":\"English\",\"French\":\"French\",\"German\":\"German\",\"Spanish\":\"Spanish\",\"Japanese\":\"Japanese\"}},\"enableDynamicBlur\":false,\"showPlayerPlayButton\":false,\"isVideoImmersivePlayer\":false,\"metricsEmissionMethod\":\"nexus\",\"skipInitialFocus\":false,\"playerSkin\":\"none\",\"disabledViewIds\":[\"replayHint\"],\"includeEarnsComissionDisclosure\":false,\"customerId\":\"0\",\"containerId\":\"aplus-146102-player-d873b6e5-f429-4fa1-9e35-0fe7dd44f570\",\"allowCrossOrigin\":false,\"requestMetadata\":{\"clientId\":\"VSE-US\",\"marketplaceId\":\"ATVPDKIKX0DER\",\"requestId\":\"P08XKBB74A56MPHXQCJ2\",\"sessionId\":\"136-4492396-9086688\",\"method\":\"desktop_web.AplusWidget.aplusdp\",\"pageAsin\":\"\"},\"shouldLoop\":false,\"shouldDisableControls\":false,\"alwaysSetInitialVideo\":true,\"showPlayerCloseButton\":false,\"clientPrefix\":\"aplus-146102\",\"useAutoplayFallback\":false,\"sushiMetricsConfig\":{\"eventSource\":\"Player\",\"endpoint\":\"https:\/\/unagi-na.amazon.com\/1\/events\/com.amazon.eel.vse.metrics.prod.events.test\",\"requestId\":\"P08XKBB74A56MPHXQCJ2\",\"sessionId\":\"136-4492396-9086688\",\"customerId\":\"0\",\"refMarkers\":\"aplus-146102_ref\",\"sessionType\":1,\"placementContext\":\"desktop_web.AplusWidget.aplusdp\",\"marketplaceId\":\"ATVPDKIKX0DER\",\"weblabIds\":\"\",\"isInternal\":false,\"isRobot\":false,\"clientId\":\"VSE-US\",\"videoAsinList\":\"\",\"pageAsin\":\"B0FT3DBVJX\"},\"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-146102_ref\",\"placementContext\":\"desktop_web.AplusWidget.aplusdp\",\"weblabIds\":\"\",\"clientId\":\"VSE-US\",\"videoAsin\":\"000cda96f954460fb9d91cb37480f860\",\"videoAsinList\":\"\",\"pageAsin\":\"B0FT3DBVJX\"},\"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-146102-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-146102-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-146102-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-146102-player-d873b6e5-f429-4fa1-9e35-0fe7dd44f570\" class=\"vse-player\" data-element-id=\"vse-player-container\"\u003e\u003c\/div\u003e\n           \u003c\/div\u003e\n           \u003ch1 class=\"vse-video-player-title\"\u003eTransform Your Curtains into Smart Ones in 30s\u003c\/h1\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-146102-player-d873b6e5-f429-4fa1-9e35-0fe7dd44f570-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-146102:init', 'aplus-146102-player-d873b6e5-f429-4fa1-9e35-0fe7dd44f570-player-ps');\n    });\n}));\u003c\/script\u003e\n         \u003c\/div\u003e\n        \u003c\/div\u003e\n       \u003c\/div\u003e\n      \u003c\/div\u003e\n     \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\"\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-6-id\" data-a-carousel-options='{\"peek_percentage\":0,\"minimum_gutter_width\":0,\"show_partial_next\":false,\"name\":\"premium-aplus-13-carousel-6\"}' 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-6-slide-0\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"Automatic Curtain Opener 3 Rod\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/07b3625c-eae9-44fd-9d13-b3d0f1a25bc2.__CR0,0,1464,600_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=\"2\"\u003e\n             \u003cdiv id=\"premium-aplus-13-carousel-6-slide-1\"\u003e\n              \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n               \u003cimg alt=\"Automatic Curtain Opener 3 Rod\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/81208be4-cf20-45b9-814f-0f527caa4508.__CR0,0,1464,600_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-6\").execute(\"init-pagination-carousel\", function(init) {\n    if (init) {\n        return;\n    }\n    P.register(\"premium-aplus-13-carousel-6\", 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 = \"6\";\n                var carouselName = \"premium-aplus-13-carousel-6\";\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-6-premium-aplus-13-carousel-6\" 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-6-premium-aplus-13-carousel-6\" data-aplus-pagination-dot-action-6-premium-aplus-13-carousel-6='{\"page\": 1}' aria-label=\"slide-1\" aria-controls=\"premium-aplus-13-carousel-6-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-6-premium-aplus-13-carousel-6\" data-aplus-pagination-dot-action-6-premium-aplus-13-carousel-6='{\"page\": 2}' aria-label=\"slide-2\" aria-controls=\"premium-aplus-13-carousel-6-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-6\").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 Effortless No-Tool Setup: Simply attach to your existing rod and it's ready! No drilling, no tools needed.Hang, place the positioning magnets, connect via app. Smart curtain motor setup in 3 steps for any room (bedroom, living room, office, nursery). \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 2025 Upgrade: Main guide wheel is enlarged, allowing for easy passage over 4mm bumps, with an 8kg load capacity. Combined with positioning magnets, it is more compact and reduces the foreign body sensation. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 2x Stronger Motor \u0026amp; Precise Control: 2x stronger motor (vs. previous) smoothly moves heavy curtains up to 15kg\/33lbs. New positioning magnets ensure accurate control, no calibration, and prevents light gaps. *Note: Not compatible with extendable rods under 5\/8\" (16mm) diameter. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Quiet Silent Mode (\u0026lt;25dB): Enjoy peaceful mornings! Activate Silent Mode (\u0026lt;25dB, quieter than a whisper) for ultra-quiet, slower curtain movement. Reduces sleep disturbances and ideal for sound-sensitive users. Energy-saving operation. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Matter \u0026amp; Apple HomeKit Support Hub 3: Works with Matter (via SwitchBot Hub 3) for seamless smart home integration. Enjoy Home App control and use with HomePod\/Apple Watch.Connect other SwitchBot devices for whole-home automation. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e ※Note: It is necessary to ensure that the positioning magnet is successfully installed and calibrated in the APP. If you have any questions or if any parts are missing, please consult us. \u003c\/span\u003e\u003c\/li\u003e\n \u003c\/ul\u003e\n \u003cdiv id=\"product-details-jumplink\" class=\"a-section\"\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\"\u003eSwitchBot\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-special_feature\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eSpecial Feature\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eUniversal\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-style\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eStyle\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eCurtain Opener for Double Side+Hub3\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-included_components\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eIncluded Components\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eCurtain Opener*2 + Hub 3\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":"GearGridCA","offers":[{"title":"Curtain 3, Rod","offer_id":47668850131122,"sku":null,"price":92.0,"currency_code":"CAD","in_stock":true},{"title":"Curtain Opener for Double Side+Hub3","offer_id":47668850163890,"sku":null,"price":297.99,"currency_code":"CAD","in_stock":true},{"title":"2025 Curtain 3 Rod+Solar Panel","offer_id":47668850196658,"sku":null,"price":113.23,"currency_code":"CAD","in_stock":true},{"title":"Curtain 3, U Rail","offer_id":47668850229426,"sku":null,"price":99.07,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0774\/2776\/9522\/files\/61AobBeE3fL.jpg?v=1783134031","url":"https:\/\/amabus.store\/products\/switchbot-smart-automatic-curtain-opener-2-packs-with-hub3-bluetooth-remote-control-with-app-timer-high-performance-motor-unlimited-power-add-hub-to-compatible-with-alexa-google-home-homekit","provider":"GearGridCA","version":"1.0","type":"link"}