{"product_id":"wopet-automatic-cat-feeder-5g-2-4g-smart-wifi-pet-feeder-with-app-control-4l-capacity-1-10-meals-per-day-slow-feeding-mode-10s-voice-recorder-timed-cat-food-dispenser-for-cats-small-dogs","title":"WOPET Automatic Cat Feeder, 5G\u00262.4G Smart WiFi Pet Feeder with App Control, 4L Capacity, 1–10 Meals per Day, Slow Feeding Mode, 10s Voice Recorder, Timed Cat Food Dispenser for Cats \u0026 Small Dogs","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\/**\n * Premium-module 11: FAQs - Common Styles (All Devices)\n *\/\n\n.aplus-v2 .premium-aplus-module-11 {\n    background: #fff;\n    position: relative;\n}\n\n.aplus-v2 .premium-aplus-module-11.aplus-secondary-color {\n    background: #000;\n}\n\n.aplus-v2 .premium-aplus-module-11 .aplus-question,\n.aplus-v2 .premium-aplus-module-11 .aplus-answer {\n    display: block;\n    width: 100%;\n    margin: 0;\n}\n\n.aplus-v2 .premium-aplus-module-11 .aplus-answer {\n    visibility: hidden;\n    opacity: 0;\n    height: 0;\n    transition: display 0.1s linear, opacity 0.1s linear, height 0.1s linear;\n    transition-behavior: allow-discrete;\n}\n\n.aplus-v2 .premium-aplus-module-11 .aplus-active .aplus-answer {\n    visibility: visible;\n    opacity: 1;\n    height: auto;\n    height: calc-size(auto);\n    min-height: 40px;\n}\n\n.aplus-v2 .premium-aplus-module-11 .faq-list {\n    margin: 0;\n}\n\n.aplus-v2 .premium-aplus-module-11 .faq-block {\n    position: relative;\n    list-style-type: none;\n    cursor: pointer;\n    border: 2px solid #E6E6E6;\n    background: #fff;\n    border-radius: 3px;\n    margin-bottom: 10px;\n}\n\n.aplus-v2 .premium-aplus-module-11.aplus-secondary-color .faq-block {\n    border: none;\n}\n\n.aplus-v2 .premium-aplus-module-11 .aplus-question::before,\n.aplus-v2 .premium-aplus-module-11 .aplus-answer::before {\n    text-align: center;\n    border-radius: 3px;\n    display: inline-block;\n    font-weight: 500;\n    position: absolute;\n    color: #fff;\n    top: 10px;\n    left: 10px;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-11 .aplus-question::before,\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-11 .aplus-answer::before {\n    right: 10px;\n}\n\n.aplus-v2 .premium-aplus-module-11 .aplus-question::before {\n    content: \"Q\";\n    background: #505050;\n    transition: background 0.1s linear;\n    z-index: 2;\n}\n\n.aplus-v2 .premium-aplus-module-11 .aplus-answer::before {\n    content: \"A\";\n    background: #DF7600;\n    color: #000000;\n    z-index: 1;\n    transform: translateY(0px);\n    transition: transform 0.1s linear;\n}\n\n.aplus-v2 .premium-aplus-module-11 .faq-block.aplus-active .aplus-question::before {\n    background: #404040;\n}\n\n.aplus-v2 .premium-aplus-module-11 .faq-block.aplus-active .aplus-answer::before {\n    transform: translateY(40px);\n}\n\n.aplus-v2 .premium-aplus-module-11 .faq-arrow {\n    position: absolute;\n    top: 25px;\n    border: 10px solid transparent;\n    border-top-color: #505050;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-11 .faq-arrow {\n    right: auto;\n}\n\n.aplus-v2 .premium-aplus-module-11 .aplus-active .faq-arrow {\n    top: 15px;\n    border-top-color: transparent;\n    border-bottom-color: #404040;\n}\n\n\u003c\/style\u003e\n  \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: var(--aok-sfs-color-page-inverse-normal-fixed-fg, #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  \u003cscript type=\"application\/javascript\"\u003e\n\n    \/**\n     * Common event handler for click and keydown events.\n     * @param {Event} event - The event object.\n     * @param {Function} handleClickOrEnter - Function to handle click or Enter key events.\n     * @param {Function} handleEsc - Function to handle Esc key events.\n     *\/\n    \/\/ [TODO][AplusMantle-8064] Create common event handler util(key events, click events) in AplusModuleResources\n    function handleClickAndKeyEvents(event, handleClickOrEnterOrSpace) {\n        const ENTER_KEY_CODE = 13;\n        const ESCAPE_KEY_CODE = 27;\n        const SPACE_KEY_CODE = 32;\n        const isClick = event.type === 'click';\n        const isKeydown = event.type === 'keydown';\n        const isEnter = isKeydown \u0026\u0026 event.keyCode === ENTER_KEY_CODE;\n        const isSpace = isKeydown \u0026\u0026 event.keyCode === SPACE_KEY_CODE;\n        const isEsc = isKeydown \u0026\u0026 event.keyCode === ESCAPE_KEY_CODE;\n\n        if (isClick || isEnter || isSpace) {\n            handleClickOrEnterOrSpace();\n        } else if (isEsc) {\n            handleEsc(event);\n        }\n    }\n\n    \/**\n    * Function to handle esc key event.\n    * @param {Event} event - The event object.\n    *\/\n    function handleEsc(event) {\n        event.target.blur()  \/\/ force remove focus\n    }\n\n\u003c\/script\u003e\n  \u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium modules global styles\n *\/\n.aplus-v2.desktop {\n  max-width: 1464px;\n  min-width: 800px;\n  margin-left: auto;\n  margin-right: auto;\n  word-wrap: break-word;\n  overflow-wrap: break-word;\n  word-break: break-word;\n}\n\/* Undo this for tech-specs because it breaks table layout *\/\n.aplus-v2.desktop .premium-aplus .aplus-tech-spec-table { word-break: initial; }\n\n.aplus-v2 .premium-aplus,\n.aplus-v2 .premium-aplus .aplus-h1,\n.aplus-v2 .premium-aplus .aplus-h2,\n.aplus-v2 .premium-aplus .aplus-p1,\n.aplus-v2 .premium-aplus .aplus-p2,\n.aplus-v2 .premium-aplus .aplus-p3,\n.aplus-v2 .premium-aplus .aplus-accent1,\n.aplus-v2 .premium-aplus .aplus-accent2\n{ font-family: Arial, sans-serif; }\n\n.aplus-v2 .premium-aplus,\n.aplus-v2 .premium-aplus .aplus-h1,\n.aplus-v2 .premium-aplus .aplus-h2,\n.aplus-v2 .premium-aplus .aplus-p1,\n.aplus-v2 .premium-aplus .aplus-p2,\n.aplus-v2 .premium-aplus .aplus-p3,\n.aplus-v2 .premium-aplus .aplus-accent1,\n.aplus-v2 .premium-aplus .aplus-accent2\n{ font-family: inherit; }\n\n\/* type *\/\n.aplus-v2 .premium-aplus .aplus-h1 { font-size: 32px; line-height: 1.2em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-h2 { font-size: 26px; line-height: 1.25em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-h3 { font-size: 18px; line-height: 1.25em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-p1 { font-size: 20px; line-height: 1.3em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-p2 { font-size: 16px; line-height: 1.4em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-p3 { font-size: 14px; line-height: 1.4em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-accent1 { font-size: 16px; line-height: 1.4em; font-weight: 600; }\n.aplus-v2 .premium-aplus .aplus-accent2 { font-size: 14px; line-height: 1.4em; font-weight: 600; }\n\n\/* spacing *\/\n.aplus-v2 .aplus-container-1 { padding: 40px; }\n.aplus-v2 .aplus-container-1-2 { padding: 40px 80px; }\n.aplus-v2 .aplus-container-2 { padding: 80px; }\n.aplus-v2 .aplus-container-3 { padding: 40px 0; }\n\n\/* Display *\/\n.aplus-v2 .premium-aplus .aplus-display-table { display: table; }\n.aplus-v2 .premium-aplus .aplus-display-table-cell { display: table-cell; }\n.aplus-v2 .premium-aplus .aplus-display-inline-block { display: inline-block; }\n\n\/* Aplus display table with min-width 1000px and fill remaining space inside parent *\/\n.aplus-v2.desktop .premium-aplus .aplus-display-table-width { min-width: 1000px; width: 100% }\n\n\/**\n* Padding and margin for element should be 10, 20, 40, or 80 px. Considering mini 10, small 20, medium 40, large 80.\n*\/\n\n\u003c\/style\u003e\n  \u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium-module 11: FAQs\n *\/\n\n.aplus-v2 .premium-aplus-module-11 .aplus-question {\n    line-height: 25px;\n    padding-bottom: 10px;\n}\n\n.aplus-v2 .premium-aplus-module-11 .faq-block {\n    padding: 10px 80px 15px 100px;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-11 .faq-block {\n    padding-left: 80px;\n    padding-right: 100px;\n}\n\n.aplus-v2 .premium-aplus-module-11 .faq-block.aplus-active {\n    padding-bottom: 35px;\n}\n\n.aplus-v2 .premium-aplus-module-11 .aplus-question::before,\n.aplus-v2 .premium-aplus-module-11 .aplus-answer::before {\n    width: 80px;\n    line-height: 40px;\n    font-size: 25px;\n}\n\n.aplus-v2 .premium-aplus-module-11 .faq-arrow {\n    right: 40px;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-11 .faq-arrow {\n    left: 40px;\n}\n\n\u003c\/style\u003e\n  \u003cscript type=\"text\/javascript\"\u003e(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\nP.now('premium-module-11-faq').execute('init-premium-module-11-faq', function(init) {\n    if (init) {\n        return;\n    }\n    P.register('premium-module-11-faq', function() {\n        return function() {\n            P.when('A', 'jQuery', 'ready').execute('premium-11-faq', function(A, $){\n                function initFaq(module) {                   \n                    const MODULE_CLASS_NAME = 'premium-aplus-module-11';\n                    const FAQ_CONTAINER_CLASS_NAME = 'faqs-container';\n                    const FAQ_BLOCK_CLASS_NAME = 'faq-block';\n                    const moduleId = $(module).data('faq-block');\n                    const $faqBlocks = $('.aplus-v2 .' + MODULE_CLASS_NAME + ' .' + FAQ_CONTAINER_CLASS_NAME + '.' + moduleId + ' .' + FAQ_BLOCK_CLASS_NAME);\n\n                    \/**\n                    * Function to handle click or Enter or Space key events.\n                    * @param {Element} element - The this object from which the event is dispatched\n                    * @param {faqBlocks} faqBlocks - List of all the Question and Answer blocks.\n                    *\/\n                    function handleClickOrEnterOrSpace(element, faqBlocks) {\n                        const $element = $(element);\n                        const isActive = $element.hasClass('aplus-active');\n\n                        faqBlocks.removeClass('aplus-active');\n                        faqBlocks.find('[data-faq-question]').attr('aria-expanded', 'false');\n\n                        if (!isActive) {\n                            $element.addClass('aplus-active');\n                            $element.find('[data-faq-question]').attr('aria-expanded', 'true');\n                        }\n                    }\n\n                    \/* Using jQuery event namespace for preventing duplicate binding on twister refresh *\/\n                    $faqBlocks.unbind('click keydown.premiumAplusModule11ClickHandler').bind('click keydown.premiumAplusModule11ClickHandler', function(event) {\n                        handleClickAndKeyEvents(event, () =\u003e handleClickOrEnterOrSpace(this, $faqBlocks)); \n                    });\n                }\n                $(\".aplus-v2 .premium-aplus-module-11 .faqs-container\").each(function(index, module) {\n                    initFaq(module);\n                });\n            });\n        };\n    });\n});\n}));\u003c\/script\u003e\n  \u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium-module 13: Carousel\n *\/\n\n.aplus-v2 .premium-aplus-module-13 .aplus-card-description-wrapper {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n}\n\n.aplus-v2 .premium-aplus-module-13 .aplus-card-description {\n    display: table;\n    width: 50%;\n    height: 100%;\n    color: #fff;\n}\n\n.aplus-v2 .premium-aplus-module-13 .aplus-card-table-cell {\n    display: table-cell;\n    vertical-align: middle;\n    text-align: left;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-13 .aplus-card-table-cell {\n    text-align: right;\n}\n\n.aplus-v2 .premium-aplus-module-13 .aplus-text-background {\n    background: rgba(0, 0, 0, 0.6);\n}\n\n.aplus-v2 .premium-aplus-module-13 .aplus-card-body {\n    padding: 20px 40px 0 0;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-13 .aplus-card-body {\n    padding: 20px 0 0 40px;\n}\n\n.aplus-v2 .premium-aplus-module-13 .aplus-pagination-wrapper {\n    position: absolute;\n    top: 92%;\n    width: 100%;\n}\n\n\u003c\/style\u003e\n  \u003cdiv class=\"aplus-content-wrapper\"\u003e\n   \u003cdiv class=\"aplus-module-csa-wrapper\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"aplus-module-premium-module-2-fullbackground-image-1\" data-csa-c-content-id=\"amzn1.aplus.46ebe6ea-5482-4d49-bd56-edeb52abfb31:1772438593651.1348fda1-5be0-4409-b63a-9302f1ae4692.en_US\"\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      \u003ch1 class=\"a-text-center aplus-container-3 aplus-h1 a-text-bold\"\u003eWopet 5G WiFi Pet Feeder\u003c\/h1\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 cat feeder with 4L capacity, WiFi app control, and scheduled feeding for indoor cats\" class=\"a-lazy-loaded\" data-src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/b705e3d4-b917-4885-9575-eb23d7dbc621.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/b705e3d4-b917-4885-9575-eb23d7dbc621.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n        \u003cnoscript\u003e\n         \u003cimg alt=\"Automatic cat feeder with 4L capacity, WiFi app control, and scheduled feeding for indoor cats\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/b705e3d4-b917-4885-9575-eb23d7dbc621.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n        \u003c\/noscript\u003e\n       \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"a-section a-text-center\"\u003e\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"aplus-module-csa-wrapper\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"aplus-module-premium-module-2-fullbackground-image-2\" data-csa-c-content-id=\"amzn1.aplus.46ebe6ea-5482-4d49-bd56-edeb52abfb31:1772438593651.f0fe1c1c-d794-4fd7-8ecd-407c94e01ac0.en_US\"\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=\"5G WiFi Smart Pet Feeder for Dogs and Cats with APP Control\" class=\"a-lazy-loaded\" data-src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/eb986943-0151-4b49-a0e8-b8942460d81c.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/eb986943-0151-4b49-a0e8-b8942460d81c.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n        \u003cnoscript\u003e\n         \u003cimg alt=\"5G WiFi Smart Pet Feeder for Dogs and Cats with APP Control\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/eb986943-0151-4b49-a0e8-b8942460d81c.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n        \u003c\/noscript\u003e\n       \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"a-section a-text-center\"\u003e\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"aplus-module-csa-wrapper\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"aplus-module-premium-module-13-carousel-3\" data-csa-c-content-id=\"amzn1.aplus.46ebe6ea-5482-4d49-bd56-edeb52abfb31:1772438593651.422e76e3-fc92-4cad-9064-10793aea340d.en_US\"\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=\"4\"\u003e\n              \u003cdiv id=\"premium-aplus-13-carousel-2-slide-0\"\u003e\n               \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n                \u003cdiv style=\"aspect-ratio: 1464 \/ 600; line-height: 0;\"\u003e\n                 \u003cimg alt=\"Automatic pet feeder with slow feeding mode for controlled dry food dispensing\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/eaf6681c-7475-4907-89d4-718db497c784.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\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-2-slide-1\"\u003e\n               \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n                \u003cdiv style=\"aspect-ratio: 1464 \/ 600; line-height: 0;\"\u003e\n                 \u003cimg alt=\"pet automatic feeders\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/08e1e19c-bfb1-4b55-a618-2f35159024b3.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\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-2-slide-2\"\u003e\n               \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n                \u003cdiv style=\"aspect-ratio: 1464 \/ 600; line-height: 0;\"\u003e\n                 \u003cimg alt=\"Smart feeder with low food sensor and app notification alerts\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/d04821cc-28e5-423c-b91f-4aa9fe52ba3c.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\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-2-slide-3\"\u003e\n               \u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n                \u003cdiv style=\"aspect-ratio: 1464 \/ 600; line-height: 0;\"\u003e\n                 \u003cimg alt=\"cat feeders\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/49644c8f-fefd-48a7-abe4-5a056c742cb2.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\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-2\").execute(\"init-pagination-carousel\", function(init) {\n    if (init) {\n        return;\n    }\n    P.register(\"premium-aplus-13-carousel-2\", function() {\n        return function() {\n            P.when(\"A\", \"jQuery\", \"a-carousel-framework\", \"ready\").execute(\"paginate-carousel\", function (A, $, framework) {\n                const ENTER_KEY_CODE = 13;\n                const ESCAPE_KEY_CODE = 27;\n                const LEFT_ARROW_KEY = 37;\n                const RIGHT_ARROW_KEY = 39;\n                const HOME_KEY = 36;\n                const END_KEY = 35;\n\n                var moduleId = \"2\";\n                var carouselName = \"premium-aplus-13-carousel-2\";\n                var paginationAction = \"aplus-pagination-dot-action-\" + moduleId + \"-\" + carouselName;\n                var paginationGroup = \"#aplus-pagination-group-\" + moduleId + \"-\" + carouselName;\n\n                \/* If the carousel goes to a new page *\/\n                A.on(\"a:carousel:\"+carouselName+\":change:pageNumber\", function (data) {\n                    A.$(paginationGroup+\" .carousel-slider-circle\").removeClass(\"aplus-carousel-active\").attr('aria-selected', 'false').attr('tabindex', -1)\n                                    .eq(data.newValue - 1).addClass(\"aplus-carousel-active\").attr('aria-selected', 'true').attr('tabindex', 0);\n                });\n\n                function syncPaginationDotsWithCarouselPages(numPages) {\n                    const parentElement = document.querySelector(paginationGroup);\n                    if (parentElement \u0026\u0026 parentElement.children) {\n                        const children = parentElement.children;\n                        for (let i = 0; i \u003c children.length; i++) {\n                            if (i \u003e= numPages) {\n                                \/\/ If number of dots \u003e num of pages, we should hide other dots\n                                children[i].classList.add('aplus-pagination-dot--display-none');\n                            } else if (children[i].classList.contains('aplus-pagination-dot--display-none')) {\n                                \/\/ Reset display of dots if it was hidden before\n                                children[i].classList.remove('aplus-pagination-dot--display-none');\n                            }\n                        }\n                    }\n                }\n\n                framework.onInit(carouselName, function (carousel) {\n                    try {\n                        var totalPages = carousel.getAttr('totalPages');\n                        syncPaginationDotsWithCarouselPages(totalPages);\n                        \/* Resize event handler to re-calculate the pagination dots count based on orientation *\/\n                        window.addEventListener('resize', function() {\n                            carousel.resize();\n                            totalPages = carousel.getAttr('totalPages');\n                            syncPaginationDotsWithCarouselPages(totalPages);\n                        });\n\n                        A.declarative(paginationAction, 'click keydown', function(event){\n                            var isClick = event.type === 'click';\n                            var isKeydown = event.type === 'keydown';\n                            var isEnter = isKeydown \u0026\u0026 event.$event.keyCode === ENTER_KEY_CODE;\n                            var isEsc = isKeydown \u0026\u0026 event.$event.keyCode === ESCAPE_KEY_CODE;\n                            var isLeftArrow = isKeydown \u0026\u0026 event.$event.keyCode === LEFT_ARROW_KEY;\n                            var isRightArrow = isKeydown \u0026\u0026 event.$event.keyCode === RIGHT_ARROW_KEY;\n                            var isHome = isKeydown \u0026\u0026 event.$event.keyCode === HOME_KEY;\n                            var isEnd = isKeydown \u0026\u0026 event.$event.keyCode === END_KEY;\n\n                            if (isClick || isEnter) {\n                                var data = event.data;\n                                carousel.gotoPage(data.page);\n                            } else if (isEsc) {\n                                event.$target.blur();\n                            } else if (isLeftArrow || isRightArrow || isHome || isEnd) {\n                                event.$event.preventDefault();\n                                const dots = A.$(paginationGroup + \" .carousel-slider-circle\");\n                                const currentIndex = dots.index(event.$target);\n                                let nextIndex;\n\n                                if (isLeftArrow) {\n                                    nextIndex = currentIndex \u003e 0 ? currentIndex - 1 : dots.length - 1;\n                                } else if (isRightArrow) {\n                                    nextIndex = currentIndex \u003c dots.length - 1 ? currentIndex + 1 : 0;\n                                } else if (isHome) {\n                                    nextIndex = 0;\n                                } else if (isEnd) {\n                                    nextIndex = dots.length - 1;\n                                }\n\n                                dots.eq(nextIndex).focus();\n                                carousel.gotoPage(nextIndex + 1);\n                            }\n                        });\n                    } catch (e) {\n                        P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources');\n                    }\n                });\n            });\n        }\n    });\n});\n\u003c\/script\u003e\n        \u003cdiv class=\"aplus-mantle aplus-module\"\u003e\n         \u003cdiv class=\"aplus-carousel-nav\"\u003e\n          \u003cul id=\"aplus-pagination-group-2-premium-aplus-13-carousel-2\" class=\"aplus-pagination-dots\" aria-label=\"tablist-section\" role=\"tablist\"\u003e\n           \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block aplus-carousel-active\" aria-selected=\"true\" data-action=\"aplus-pagination-dot-action-2-premium-aplus-13-carousel-2\" data-aplus-pagination-dot-action-2-premium-aplus-13-carousel-2='{\"page\": 1}' aria-label=\"slide-1\" aria-controls=\"premium-aplus-13-carousel-2-slide-0\" tabindex=\"0\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n           \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-2-premium-aplus-13-carousel-2\" data-aplus-pagination-dot-action-2-premium-aplus-13-carousel-2='{\"page\": 2}' aria-label=\"slide-2\" aria-controls=\"premium-aplus-13-carousel-2-slide-1\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n           \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-2-premium-aplus-13-carousel-2\" data-aplus-pagination-dot-action-2-premium-aplus-13-carousel-2='{\"page\": 3}' aria-label=\"slide-3\" aria-controls=\"premium-aplus-13-carousel-2-slide-2\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n           \u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-2-premium-aplus-13-carousel-2\" data-aplus-pagination-dot-action-2-premium-aplus-13-carousel-2='{\"page\": 4}' aria-label=\"slide-4\" aria-controls=\"premium-aplus-13-carousel-2-slide-3\" tabindex=\"-1\" role=\"tab\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n          \u003c\/ul\u003e\n         \u003c\/div\u003e\n        \u003c\/div\u003e\n       \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"a-section a-text-center\"\u003e\u003c\/div\u003e\n     \u003c\/div\u003e\n     \u003cscript type=\"text\/javascript\"\u003e(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n    P.when(\"premium-aplus-13-carousel-2\").execute('invoke-premium-13-carousel-desktop', function(init){init();});\n}));\u003c\/script\u003e\n    \u003c\/div\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"aplus-module-csa-wrapper\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"aplus-module-premium-module-13-carousel-4\" data-csa-c-content-id=\"amzn1.aplus.46ebe6ea-5482-4d49-bd56-edeb52abfb31:1772438593651.c48af399-2f1e-407e-ac63-0a7969875aca.en_US\"\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                \u003cdiv style=\"aspect-ratio: 1464 \/ 600; line-height: 0;\"\u003e\n                 \u003cimg alt=\"Pet feeder with anti-clog design to support smooth dry food dispensing\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/52e1f93f-e184-4ccd-9bd6-3984f56aec50.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\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                \u003cdiv style=\"aspect-ratio: 1464 \/ 600; line-height: 0;\"\u003e\n                 \u003cimg alt=\"automatic cat feeder\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/b30c9bf3-d7bf-4b0f-b1a2-30eebb881469.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\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                \u003cdiv style=\"aspect-ratio: 1464 \/ 600; line-height: 0;\"\u003e\n                 \u003cimg alt=\"WiFi Dog Cat Feeder\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/472e7a3d-cd6e-46e4-88de-da4ffe45f346.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\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   \u003c\/div\u003e\n   \u003cdiv class=\"aplus-module-csa-wrapper\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"aplus-module-premium-module-2-fullbackground-image-5\" data-csa-c-content-id=\"amzn1.aplus.46ebe6ea-5482-4d49-bd56-edeb52abfb31:1772438593651.1824292b-a0de-40d0-b31c-ed36d8f3e024.en_US\"\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=\"Pet feeder with built-in voice recorder for feeding time voice reminder\" class=\"a-lazy-loaded\" data-src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/d2e8f28f-ed8e-4e81-8f08-4946801ff37c.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/d2e8f28f-ed8e-4e81-8f08-4946801ff37c.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n        \u003cnoscript\u003e\n         \u003cimg alt=\"Pet feeder with built-in voice recorder for feeding time voice reminder\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/d2e8f28f-ed8e-4e81-8f08-4946801ff37c.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n        \u003c\/noscript\u003e\n       \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"a-section a-text-center\"\u003e\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"aplus-module-csa-wrapper\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"aplus-module-premium-module-2-fullbackground-image-6\" data-csa-c-content-id=\"amzn1.aplus.46ebe6ea-5482-4d49-bd56-edeb52abfb31:1772438593651.db9155f9-6939-4cac-ab4a-b11a4f116471.en_US\"\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=\"pet feeder\" class=\"a-lazy-loaded\" data-src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/c0a1ba5d-e2fe-4764-ab1e-83dd5b8e957c.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/c0a1ba5d-e2fe-4764-ab1e-83dd5b8e957c.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n        \u003cnoscript\u003e\n         \u003cimg alt=\"pet feeder\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/c0a1ba5d-e2fe-4764-ab1e-83dd5b8e957c.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n        \u003c\/noscript\u003e\n       \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"a-section a-text-center\"\u003e\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"aplus-module-csa-wrapper\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"aplus-module-premium-module-11-faq-7\" data-csa-c-content-id=\"amzn1.aplus.46ebe6ea-5482-4d49-bd56-edeb52abfb31:1772438593651.bb4680fc-ca33-4cfc-8fa3-5450855886d9.en_US\"\u003e\n    \u003cdiv class=\"celwidget aplus-module premium-module-11-faq aplus-premium\" cel_widget_id=\"aplus-premium-module-11-faq\"\u003e\n     \u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-11\"\u003e\n      \u003cdiv data-faq-block=\"6\" class=\"a-section a-spacing-none aplus-container-2 faqs-container 6\"\u003e\n       \u003cul class=\"faq-list\"\u003e\n        \u003cli id=\"faq-qa-pair-0\" class=\"faq-block\"\u003e\n         \u003ch3\u003e\u003cspan data-faq-question role=\"button\" tabindex=\"0\" aria-controls=\"faq-0\" aria-expanded=\"false\"\u003e \n           \u003cp class=\"aplus-question aplus-p1\"\u003eWhat type of WiFi does this automatic feeder support?\u003c\/p\u003e \n           \u003cspan class=\"faq-arrow\" aria-label=\"\"\u003e\u003c\/span\u003e \n          \u003c\/span\u003e\u003c\/h3\u003e\n         \u003cp class=\"aplus-answer aplus-p2\"\u003eIt supports both 2.4GHz and 5GHz WiFi connections for app-based control and scheduling.\u003c\/p\u003e\n        \u003c\/li\u003e\n        \u003cli id=\"faq-qa-pair-1\" class=\"faq-block\"\u003e\n         \u003ch3\u003e\u003cspan data-faq-question role=\"button\" tabindex=\"0\" aria-controls=\"faq-1\" aria-expanded=\"false\"\u003e \n           \u003cp class=\"aplus-question aplus-p1\"\u003eDoes the feeder continue working if the power is interrupted?\u003c\/p\u003e \n           \u003cspan class=\"faq-arrow\" aria-label=\"\"\u003e\u003c\/span\u003e \n          \u003c\/span\u003e\u003c\/h3\u003e\n         \u003cp class=\"aplus-answer aplus-p2\"\u003eYes. It uses a dual power system (AC adapter and batteries) to maintain scheduled feedings during power interruptions.\u003c\/p\u003e\n        \u003c\/li\u003e\n        \u003cli id=\"faq-qa-pair-2\" class=\"faq-block\"\u003e\n         \u003ch3\u003e\u003cspan data-faq-question role=\"button\" tabindex=\"0\" aria-controls=\"faq-2\" aria-expanded=\"false\"\u003e \n           \u003cp class=\"aplus-question aplus-p1\"\u003eWhat is the food storage capacity?\u003c\/p\u003e \n           \u003cspan class=\"faq-arrow\" aria-label=\"\"\u003e\u003c\/span\u003e \n          \u003c\/span\u003e\u003c\/h3\u003e\n         \u003cp class=\"aplus-answer aplus-p2\"\u003eThe cat feeder has a 4L dry food capacity, suitable for multiple days of feeding depending on portion settings.\u003c\/p\u003e\n        \u003c\/li\u003e\n        \u003cli id=\"faq-qa-pair-3\" class=\"faq-block\"\u003e\n         \u003ch3\u003e\u003cspan data-faq-question role=\"button\" tabindex=\"0\" aria-controls=\"faq-3\" aria-expanded=\"false\"\u003e \n           \u003cp class=\"aplus-question aplus-p1\"\u003eDoes this feeder include a slow feeding option?\u003c\/p\u003e \n           \u003cspan class=\"faq-arrow\" aria-label=\"\"\u003e\u003c\/span\u003e \n          \u003c\/span\u003e\u003c\/h3\u003e\n         \u003cp class=\"aplus-answer aplus-p2\"\u003eYes. The slow feeding mode dispenses food gradually, about one portion per minute.\u003c\/p\u003e\n        \u003c\/li\u003e\n        \u003cli id=\"faq-qa-pair-4\" class=\"faq-block\"\u003e\n         \u003ch3\u003e\u003cspan data-faq-question role=\"button\" tabindex=\"0\" aria-controls=\"faq-4\" aria-expanded=\"false\"\u003e \n           \u003cp class=\"aplus-question aplus-p1\"\u003eIs this feeder suitable for short trips or busy schedules?\u003c\/p\u003e \n           \u003cspan class=\"faq-arrow\" aria-label=\"\"\u003e\u003c\/span\u003e \n          \u003c\/span\u003e\u003c\/h3\u003e\n         \u003cp class=\"aplus-answer aplus-p2\"\u003eYes. With scheduled feeding, app control, and backup power, it can support routine feeding during short absences.\u003c\/p\u003e\n        \u003c\/li\u003e\n       \u003c\/ul\u003e\n      \u003c\/div\u003e\n     \u003c\/div\u003e\n     \u003cscript type=\"text\/javascript\"\u003e(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n    P.when('premium-module-11-faq').execute('invoke-premium-11-faq', function(init){\n        init();\n    });\n}));\u003c\/script\u003e\n    \u003c\/div\u003e\n   \u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\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 【Smart App Control – Remote Feeding Anytime】Manage pet feeding effortlessly with the WOPET Life app (iOS \u0026amp; Android). Set 1–10 meals per day with customizable portions, or use instant on-demand feeding. Track feeding history and share access with family members. Designed for busy pet owners, travel, and daily automatic cat feeder convenience, helping support consistent feeding routines while you’re away. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 【Stable Dual-Band WiFi – Reliable Remote Access】Supports both 2.4GHz and 5GHz WiFi for stable and flexible connectivity. Designed to improve app connection stability and enable smooth remote control for feeding cats and dogs. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 【Healthy Slow Feeding \u0026amp; Pet Comfort Design】 Built-in slow feeding mode dispenses food gradually (1 portion per minute), helping support slower eating habits in cats and dogs. A 10-second voice recorder plays during feeding, making this automatic cat feeder with voice recording more comforting for pets. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 【4L Large Capacity with Anti-Clog Design】The 4L food storage container provides several days of food supply for cats and dogs. An anti-clog dispensing system ensures smooth and consistent food output, while detachable parts make cleaning simple and convenient for everyday use. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 【Fresh Storage with Secure Twist-Lock Lid】The twist-lock lid helps keep dry food fresh, crisp, and protected from pets. Compatible with most dry kibble sizes (0.07–0.47 in \/ 2–12 mm), ensuring stable feeding performance and safe storage for daily use. \u003c\/span\u003e\u003c\/li\u003e\n \u003c\/ul\u003e\n \u003cdiv data-csa-c-content-id=\"voyager-product-details-jumplink\" data-csa-c-slot-id=\"voyager-product-details-jumplink\" data-csa-c-type=\"link\" class=\"a-section aok-hidden\"\u003e\n  \u003cspan class=\"caretnext\"\u003e›\u003c\/span\u003e \u003ca id=\"seeMoreDetailsLink\" class=\"a-link-normal\" href=\"#productDetails\"\u003e See more product details \u003c\/a\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\u003c\/div\u003e\u003cdiv\u003e\u003cdiv class=\"a-section a-spacing-small a-spacing-top-small\"\u003e\n \u003ctable class=\"a-normal a-spacing-micro\" role=\"list\"\u003e\n  \u003ctbody\u003e\n   \u003ctr class=\"a-spacing-small po-material\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eMaterial\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eBPA Free\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-target_species\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eTarget Species\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eCats,dogs,samll amianls\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\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\"\u003eWOPET\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-recommended_uses_for_product\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eRecommended Uses For Product\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\n     \u003cscript type=\"text\/javascript\"\u003e(function(f) {var _np=(window.P._namespace(\"DetailPageProductOverviewTemplatesJava\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n    P.when('A').execute(function(A){\n    A.on('a:truncate:po-attribute-truncate-3:updated', function(data) {\n    var isTruncated = !data.truncateInstance.getIfTextFits();\n    var seeMoreElement = document.getElementById('po-attribute-see-more-id-3');\n    if(seeMoreElement) {\n    seeMoreElement.style.display = isTruncated ?  ''  :  'none';\n    }\n    })\n    });\n}));\u003c\/script\u003e\n     \u003cspan class=\"a-size-base\"\u003e \u003cspan class=\"a-truncate po-truncate-attribute\" data-a-word-break=\"normal\" data-a-truncate-name=\"po-attribute-truncate-3\" data-a-max-rows=\"3\" data-a-overflow-marker=\"\u0026amp;hellip;\" style=\"line-height: 1.3em !important; max-height: 3.9em;\"\u003e\u003cspan class=\"a-truncate-full\"\u003eDo not wash the feeder base, Indoor, Multiple Pets, Replace the desiccant bag every half a month, Use dry kibble with diameter 2-15mm\u003c\/span\u003e\u003cspan class=\"a-truncate-cut a-hidden\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e \u003c\/span\u003e \u003cspan class=\"a-declarative\" data-action=\"a-modal\" data-a-modal='{\"width\":\"800\",\"max-height\":\"400\",\"header\":\"Recommended Uses For Product\",\"inlineContent\":\"Do not wash the feeder base, Indoor, Multiple Pets, Replace the desiccant bag every half a month, Use dry kibble with diameter 2-15mm\"}' id=\"po-attribute-see-more-id-3\"\u003e \u003ca href=\"javascript:void(0)\" role=\"button\" class=\"a-popover-trigger a-declarative\"\u003eSee more\u003ci class=\"a-icon a-icon-popover\"\u003e\u003c\/i\u003e\u003c\/a\u003e \u003c\/span\u003e\n    \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\"\u003eAutomatic, Durable, Easy to Use\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":"Sorvina","offers":[{"title":"Black","offer_id":56460161646934,"sku":"B0FQBMVNYL","price":44.99,"currency_code":"GBP","in_stock":true},{"title":"White","offer_id":56460161679702,"sku":"B0FQBGH8QQ","price":49.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1028\/1897\/1990\/files\/71VAB4IAxEL._AC_SL1488.jpg?v=1793714110","url":"https:\/\/sorvinna.shop\/products\/wopet-automatic-cat-feeder-5g-2-4g-smart-wifi-pet-feeder-with-app-control-4l-capacity-1-10-meals-per-day-slow-feeding-mode-10s-voice-recorder-timed-cat-food-dispenser-for-cats-small-dogs","provider":"Sorvina","version":"1.0","type":"link"}