{"product_id":"toloco-massage-gun-deep-tissue-back-massage-for-athletes-for-pain-relief-percussion-massager-with-10-massages-heads-amp-silent-brushless-motor-fathers-day-dad-gifts-black","title":"TOLOCO Massage Gun, Deep Tissue Back Massage for Athletes for Pain Relief, Percussion Massager with 10 Massages Heads \u0026amp; Silent Brushless Motor, Fathers Day Dad Gifts, Black","description":"\u003cp\u003e \u003c\/p\u003e\n\u003cdiv data-a-expander-collapsed-height=\"300\" class=\"a-expander-collapsed-height a-row a-expander-container a-expander-partial-collapse-container\" style=\"max-height: 300px;\"\u003e\n\u003cdiv data-expanded=\"false\" class=\"a-expander-content a-expander-partial-collapse-content\"\u003e\n\u003cul class=\"a-unordered-list a-vertical a-spacing-mini\"\u003e\n\u003cli class=\"a-spacing-mini\"\u003e\n\u003cp\u003eAbout this item\u003c\/p\u003e\n\u003cp\u003e✅ Deep Tissue Pain Relief\u003cbr\u003eThis TOLOCO massage gun delivers 12mm deep penetration and up to 3200 rpm, effectively easing muscle soreness, stiffness, and fatigue—helping your body recover faster after workouts, long days, or physical activity.\u003c\/p\u003e\n\u003cp\u003e🔋 Long-Lasting \u0026amp; Convenient Charging\u003cbr\u003eEquipped with a rechargeable battery that runs up to 6 hours (depending on speed setting). It charges via USB, so you can power it from wall adapters, power banks, laptops, or car ports (charging plug not included).\u003c\/p\u003e\n\u003cp\u003e💆 10 Versatile Massage Heads\u003cbr\u003eComes with 10 interchangeable heads designed to target every muscle group—back, neck, shoulders, arms, legs, and feet. They’re easy to swap out and clean, perfect for full-body relaxation.\u003c\/p\u003e\n\u003cp\u003e🔇 Ultra-Quiet Operation\u003cbr\u003eBuilt with a high-grade quiet motor that runs at just 40–50dB—powerful enough for deep massage, but quiet enough to use at home, in the office, or while traveling without disturbing others.\u003c\/p\u003e\n\u003cspan class=\"a-list-item\"\u003ehome, gym, or office without worrying about disturbing others \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Smart LED Touch Screen: The massager gun is equipped with an intelligent LED touch screen design and battery display design, allowing you to easily adjust the speed level and view the remaining battery. \u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Adjustable Speed Level Design: For different muscle soreness problems, the TOLOCO deep tissue massage gun is equipped with multiple speed levels from low, medium to high, and you can find the appropriate amplitude to alleviate all muscle soreness problems \u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Ideal Choice for Holiday gifts: Portable cordless massage gun is ergonomically designed, easy to carry and use, lightweight. It is the best Christmas Gifts, Mother's and Father's Day gift for family, lovers, and friend \u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c!-- Loading EDP related metadata --\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"a-expander-header a-expander-partial-collapse-header\"\u003e\n\u003cdiv class=\"a-expander-content-fade\"\u003e\u003c\/div\u003e\n\u003ca aria-expanded=\"false\" role=\"button\" data-action=\"a-expander-toggle\" class=\"a-declarative\" data-a-expander-toggle='{\"allowLinkDefault\":true, \"expand_prompt\":\"Show more\", \"collapse_prompt\":\"Show less\"}'\u003e\u003ci class=\"a-icon a-icon-extender-expand\"\u003e\u003c\/i\u003e\u003cspan class=\"a-expander-prompt\"\u003eShow more\u003c\/span\u003e\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cdiv id=\"aplus\" class=\"a-section a-spacing-large bucket\"\u003e\n\u003chr noshade size=\"1\" class=\"bucketDivider\"\u003e\n\u003cscript type=\"application\/javascript\"\u003e\/\/ \u003c![CDATA[\n    function logShoppableMetrics(moduleName, showsAddToCart) {\n        if (window.ue \u0026\u0026 window.ue.count) {\n            window.ue.count(\"aplus:shoppable:\" + moduleName + \":addToCart\", showsAddToCart ? 1 : 0);\n        }\n    }\n\/\/ ]]\u003e\u003c\/script\u003e\n\u003ch2\u003eProduct description\u003c\/h2\u003e\n\u003cdiv lang=\"en_US\"\u003e\n\u003cdiv class=\"aplus-v2 desktop celwidget\" cel_widget_id=\"aplus\"\u003e\n\u003cscript type=\"text\/javascript\"\u003e\/\/ \u003c![CDATA[\n(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\nP.now('premium-module-12-nav-carousel').execute('init-premium-module-12-nav-carousel', function(init) {\n    if (init) {\n        return;\n    }\n    P.register('premium-module-12-nav-carousel', function(){\n        return function() {\n            P.when('A', 'jQuery', 'a-carousel-framework', 'ready').execute('premium-12-nav-carousel', function (A, $, framework) {\n                function initiateCarousel(module) {\n                    var MODULE_ID = $(module).data('module-id');\n                    \/**\n                    * Carousel button element classname\n                    * @const\n                    *\/\n                    var GOTO_BTN_CLASS_NAME = \"aplus-goto-btn-\" + MODULE_ID;\n                    \/**\n                    * Carousel button element active classname\n                    * @const\n                    *\/\n                    var GOTO_BTN_ACTIVE_CLASS_NAME = \"aplus-active\";\n                    \/**\n                    * AUI name for aui carousel\n                    * @const\n                    *\/\n                    var CAROUSEL_NAME = \"premium-aplus-12-carousel-\" + MODULE_ID;\n                    \/**\n                    * Module class name\n                    * @const\n                    *\/\n                    var MODULE_CLASS_NAME = \".aplus-v2 .premium-aplus-module-12\";\n                    \/**\n                    * Carousel text container class name\n                    * @const\n                    *\/\n                    var TEXT_CONTAINER_CLASS_NAME = MODULE_CLASS_NAME + \" .aplus-carousel-text-container-\" + MODULE_ID;\n                    \/**\n                    * Carousel text hidden class name\n                    * @const\n                    *\/\n                    var TEXT_CONTAINER_HIDDEN = \"aplus-hidden\";\n                    \/**\n                    * Carousel horizontal scroll container class name\n                    * @const\n                    *\/\n                    var HORIZONTAL_SCROLL_CONTAINER_CLASS_NAME = MODULE_CLASS_NAME + \" .aplus-horizontal-scroll-container-\" + MODULE_ID;\n\n                    function showCarouselText(oldIndex, newIndex) {\n                        var oldClass = TEXT_CONTAINER_CLASS_NAME + \"-\" + oldIndex;\n                        var newClass= TEXT_CONTAINER_CLASS_NAME + \"-\" + newIndex;\n                        $(oldClass).addClass(TEXT_CONTAINER_HIDDEN);\n                        $(newClass).removeClass(TEXT_CONTAINER_HIDDEN);\n                    }\n\n                    function scrollToCarouselButton(scrollLeft) {\n                        if ($(HORIZONTAL_SCROLL_CONTAINER_CLASS_NAME).length) {\n                            $(HORIZONTAL_SCROLL_CONTAINER_CLASS_NAME).animate({scrollLeft}, 200);\n                        }\n                    }\n\n                    \/**\n                    * Creates a CarouselButton class for provided carousel instance\n                    * @param {object} carousel - AUI Carousel instance\n                    * @returns {Class} - CarouselButton Class\n                    *\/\n                    function CarouselButtonTemplate(carousel) {\n                        \/**\n                        * Button for controlling the active slide\n                        * @constructor\n                        * @param {number} index - slide index\n                        * @param {DOMElement} [elem] - optional DOM element to use as this objects DOM representation\n                        *\/\n                        function CarouselButton(index, elem) {\n                            var self = this;\n                            this.index = index;\n                            this.carousel = carousel;\n\n                            \/* create the button element *\/\n                            this.elem = this.getElem(elem);\n                            this.$elem = $(this.elem);  \/* store jquery version *\/\n                            this.elem.addEventListener('click', self.handleClick.bind(self));\n                            this.elem.setAttribute('role', 'tab');\n\n                            \/* add this object to the object manager *\/\n                            CarouselButton.objects.byId[index] = this;\n                            CarouselButton.objects.all.push(this);\n                        }\n\n                        \/**\n                        * Describe behavior for click events on this.elem\n                        * @memberOf CarouselButton\n                        *\/\n                        CarouselButton.prototype.handleClick = function(e) {\n                            e.preventDefault();\n                            this.carousel.gotoPage(this.index);\n                        };\n\n                        \/**\n                        * Enter active state\n                        * @memberOf CarouselButton\n                        *\/\n                        CarouselButton.prototype.activate = function() {\n                            this.$elem.addClass(GOTO_BTN_ACTIVE_CLASS_NAME).attr('aria-selected', 'true');\n                        };\n\n                        \/**\n                        * Enter inactive state\n                        * @memberOf CarouselButton\n                        *\/\n                        CarouselButton.prototype.deactivate = function() {\n                            this.$elem.removeClass(GOTO_BTN_ACTIVE_CLASS_NAME).attr('aria-selected', 'false');\n                        };\n\n                        \/**\n                        * Returns an existing or creates a new bound element for this object\n                        * @memberOf CarouselButton\n                        * @param {DOMElement} [elem] - optionally provide an existing element in the DOM to use\n                        * @returns {DOMElement} - this objects DOM representation\n                        *\/\n                        CarouselButton.prototype.getElem = function(elem) {\n                            if (this.elem) return this.elem;\n                            if (elem) return elem;\n\n                            var createdElem = document.createElement('span');\n                            createdElem.className = GOTO_BTN_CLASS_NAME;\n\n                            return createdElem;\n                        };\n\n                        \/** @const Object manager *\/\n                        CarouselButton.objects = {\n                            byId: {},\n                            all: [],\n                        };\n\n                        return CarouselButton;\n                    }\n\n                    framework.onInit(CAROUSEL_NAME, function(carousel) {\n                        \/** @const {Class} *\/\n                        var CarouselButton = CarouselButtonTemplate(carousel);\n\n                        \/* create carousel controls *\/\n                        var $carouselBtns = $(safeClassSelector(GOTO_BTN_CLASS_NAME));\n                        var btns = $carouselBtns.map(function(i, btnElem) {\n                            return new CarouselButton(i + 1, btnElem);\n                        });\n\n                        \/* activate first one *\/\n                        CarouselButton.objects.byId[1].activate();\n\n                        \/* Listen to slide changes *\/\n                        A.on(\"a:carousel:\" + CAROUSEL_NAME + \":change:pageNumber\", function (data) {\n                            var newCarouselButton = CarouselButton.objects.byId[data.newValue];\n                            var marginLeft = parseInt(getComputedStyle(newCarouselButton.elem).getPropertyValue('margin-left'));\n                            var positionLeft = newCarouselButton.elem.offsetLeft - marginLeft;\n\n                            newCarouselButton.activate();\n                            CarouselButton.objects.byId[data.oldValue].deactivate();\n                            scrollToCarouselButton(positionLeft);\n                            showCarouselText(data.oldValue, data.newValue);\n                        });\n                    });\n\n                    \/**\n                    * @returns {string} - css classname prefixed with module selector\n                    *\/\n                    function safeClassSelector(className) {\n                        return '.' + MODULE_CLASS_NAME + ' .' + className;\n                    }\n                }\n\n                $('.aplus-v2 .premium-aplus-module-12 .aplus-carousel-container').each(function (index, module) {\n                    initiateCarousel(module);\n                });\n                framework.createAll();\n                framework.initializeAll();\n            });\n        }\n    })\n});\n}));\n\/\/ ]]\u003e\u003c\/script\u003e\n\u003cdiv class=\"aplus-content-wrapper\"\u003e\n\u003cdiv class=\"celwidget aplus-module premium-module-13-carousel aplus-premium\" cel_widget_id=\"aplus-premium-module-13-carousel\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-13\"\u003e\n\u003cdiv class=\"a-section a-spacing-none aplus-carousel-container\"\u003e\n\u003cdiv id=\"premium-aplus-13-carousel-0-id\" data-a-carousel-options='{\"peek_percentage\":0,\"minimum_gutter_width\":0,\"show_partial_next\":false,\"name\":\"premium-aplus-13-carousel-0\"}' aria-label=\"Featured content carousel\" aria-roledescription=\"carousel\" data-a-display-strategy=\"single\" data-a-transition-strategy=\"slideCircular\" role=\"region\" class=\"a-begin a-carousel-container a-carousel-static a-carousel-display-single a-carousel-transition-slideCircular\"\u003e\n\u003cinput autocomplete=\"on\" type=\"hidden\" class=\"a-carousel-firstvisibleitem\"\u003e\n\u003cdiv class=\"a-row a-carousel-controls a-carousel-row a-carousel-has-buttons a-carousel-overlay-buttons a-carousel-rounded-buttons\"\u003e\n\u003cdiv class=\"a-carousel-row-inner\"\u003e\n\u003cdiv class=\"a-carousel-col a-carousel-left\"\u003e\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\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-0-slide-0\"\u003e\n\u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\u003cimg alt=\"massage gun\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/1f234a4b-4bbb-4d69-a017-05c0c093a482.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\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\"\u003eOutdoor Sports\u003c\/h1\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"a-section a-spacing-none aplus-card-body\"\u003e\n\u003cp class=\"aplus-p3\"\u003e\u003cspan class=\"a-text-bold\"\u003eLight and easy to carry, outdoor sports and travel the best relaxation choice for relaxtion\u003c\/span\u003e\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\u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"4\"\u003e\n\u003cdiv id=\"premium-aplus-13-carousel-0-slide-1\"\u003e\n\u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\u003cimg alt=\"massage gun\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/e38aee71-e8c2-4b65-902f-29ef957d0c97.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\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\"\u003eFitness Exercise\u003c\/h1\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"a-section a-spacing-none aplus-card-body\"\u003e\n\u003cp class=\"aplus-p3\"\u003e\u003cspan class=\"a-text-bold\"\u003eQuickly relieve muscle stiffness and soreness after exercise, making exercise easier and more lasting\u003c\/span\u003e\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\u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"4\"\u003e\n\u003cdiv id=\"premium-aplus-13-carousel-0-slide-2\"\u003e\n\u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\u003cimg alt=\"massage gun\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/7a2b126b-f095-4b25-aa99-e32857643798.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\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\"\u003eOffice Sedentary\u003c\/h1\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"a-section a-spacing-none aplus-card-body\"\u003e\n\u003cp class=\"aplus-p3\"\u003e\u003cspan class=\"a-text-bold\"\u003eTake a break at work to relieve fatigue and make work easier\u003c\/span\u003e\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\u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-element\" aria-setsize=\"4\"\u003e\n\u003cdiv id=\"premium-aplus-13-carousel-0-slide-3\"\u003e\n\u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\u003cimg alt=\"massage gun\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/7ddd39e0-0fbb-4045-b3ee-35140d4deaa3.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\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\"\u003eDaily Massage\u003c\/h1\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"a-section a-spacing-none aplus-card-body\"\u003e\n\u003cp class=\"aplus-p3\"\u003e\u003cspan class=\"a-text-bold\"\u003eNot only suitable for relaxing after exercise, but also essential for daily massage\u003c\/span\u003e\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\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\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\u003cscript\u003e\/\/ \u003c![CDATA[\nP.now(\"premium-aplus-13-carousel-0\").execute(\"init-pagination-carousel\", function(init) {\n    if (init) {\n        return;\n    }\n    P.register(\"premium-aplus-13-carousel-0\", function() {\n        return function() {\n            P.when(\"A\", \"jQuery\", \"a-carousel-framework\", \"ready\").execute(\"paginate-carousel\", function (A, $, framework) {\n                const ENTER_KEY_CODE = 13;\n                const ESCAPE_KEY_CODE = 27;\n                const LEFT_ARROW_KEY = 37;\n                const RIGHT_ARROW_KEY = 39;\n                const HOME_KEY = 36;\n                const END_KEY = 35;\n\n                var moduleId = \"0\";\n                var carouselName = \"premium-aplus-13-carousel-0\";\n                var paginationAction = \"aplus-pagination-dot-action-\" + moduleId + \"-\" + carouselName;\n                var paginationGroup = \"#aplus-pagination-group-\" + moduleId + \"-\" + carouselName;\n\n                \/* If the carousel goes to a new page *\/\n                A.on(\"a:carousel:\"+carouselName+\":change:pageNumber\", function (data) {\n                    A.$(paginationGroup+\" .carousel-slider-circle\").removeClass(\"aplus-carousel-active\").attr('aria-selected', 'false').attr('tabindex', -1)\n                                    .eq(data.newValue - 1).addClass(\"aplus-carousel-active\").attr('aria-selected', 'true').attr('tabindex', 0);\n                });\n\n                function syncPaginationDotsWithCarouselPages(numPages) {\n                    const parentElement = document.querySelector(paginationGroup);\n                    if (parentElement \u0026\u0026 parentElement.children) {\n                        const children = parentElement.children;\n                        for (let i = 0; i \u003c children.length; i++) {\n                            if (i \u003e= numPages) {\n                                \/\/ If number of dots \u003e num of pages, we should hide other dots\n                                children[i].classList.add('aplus-pagination-dot--display-none');\n                            } else if (children[i].classList.contains('aplus-pagination-dot--display-none')) {\n                                \/\/ Reset display of dots if it was hidden before\n                                children[i].classList.remove('aplus-pagination-dot--display-none');\n                            }\n                        }\n                    }\n                }\n\n                framework.onInit(carouselName, function (carousel) {\n                    try {\n                        var totalPages = carousel.getAttr('totalPages');\n                        syncPaginationDotsWithCarouselPages(totalPages);\n                        \/* Resize event handler to re-calculate the pagination dots count based on orientation *\/\n                        window.addEventListener('resize', function() {\n                            carousel.resize();\n                            totalPages = carousel.getAttr('totalPages');\n                            syncPaginationDotsWithCarouselPages(totalPages);\n                        });\n\n                        A.declarative(paginationAction, 'click keydown', function(event){\n                            var isClick = event.type === 'click';\n                            var isKeydown = event.type === 'keydown';\n                            var isEnter = isKeydown \u0026\u0026 event.$event.keyCode === ENTER_KEY_CODE;\n                            var isEsc = isKeydown \u0026\u0026 event.$event.keyCode === ESCAPE_KEY_CODE;\n                            var isLeftArrow = isKeydown \u0026\u0026 event.$event.keyCode === LEFT_ARROW_KEY;\n                            var isRightArrow = isKeydown \u0026\u0026 event.$event.keyCode === RIGHT_ARROW_KEY;\n                            var isHome = isKeydown \u0026\u0026 event.$event.keyCode === HOME_KEY;\n                            var isEnd = isKeydown \u0026\u0026 event.$event.keyCode === END_KEY;\n\n                            if (isClick || isEnter) {\n                                var data = event.data;\n                                carousel.gotoPage(data.page);\n                            } else if (isEsc) {\n                                event.$target.blur();\n                            } else if (isLeftArrow || isRightArrow || isHome || isEnd) {\n                                event.$event.preventDefault();\n                                const dots = A.$(paginationGroup + \" .carousel-slider-circle\");\n                                const currentIndex = dots.index(event.$target);\n                                let nextIndex;\n\n                                if (isLeftArrow) {\n                                    nextIndex = currentIndex \u003e 0 ? currentIndex - 1 : dots.length - 1;\n                                } else if (isRightArrow) {\n                                    nextIndex = currentIndex \u003c dots.length - 1 ? currentIndex + 1 : 0;\n                                } else if (isHome) {\n                                    nextIndex = 0;\n                                } else if (isEnd) {\n                                    nextIndex = dots.length - 1;\n                                }\n\n                                dots.eq(nextIndex).focus();\n                                carousel.gotoPage(nextIndex + 1);\n                            }\n                        });\n                    } catch (e) {\n                        P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources');\n                    }\n                });\n            });\n        }\n    });\n});\n\/\/ ]]\u003e\u003c\/script\u003e\n\u003cdiv class=\"aplus-mantle aplus-module\"\u003e\n\u003cdiv class=\"aplus-carousel-nav\"\u003e\n\u003cul id=\"aplus-pagination-group-0-premium-aplus-13-carousel-0\" class=\"aplus-pagination-dots\" aria-label=\"tablist-section\" role=\"tablist\"\u003e\n\u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block aplus-carousel-active\" aria-selected=\"true\" data-action=\"aplus-pagination-dot-action-0-premium-aplus-13-carousel-0\" data-aplus-pagination-dot-action-0-premium-aplus-13-carousel-0='{\"page\": 1}' aria-label=\"slide-1\" aria-controls=\"premium-aplus-13-carousel-0-slide-0\" role=\"tab\" tabindex=\"0\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-0-premium-aplus-13-carousel-0\" data-aplus-pagination-dot-action-0-premium-aplus-13-carousel-0='{\"page\": 2}' aria-label=\"slide-2\" aria-controls=\"premium-aplus-13-carousel-0-slide-1\" role=\"tab\" tabindex=\"-1\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-0-premium-aplus-13-carousel-0\" data-aplus-pagination-dot-action-0-premium-aplus-13-carousel-0='{\"page\": 3}' aria-label=\"slide-3\" aria-controls=\"premium-aplus-13-carousel-0-slide-2\" role=\"tab\" tabindex=\"-1\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-0-premium-aplus-13-carousel-0\" data-aplus-pagination-dot-action-0-premium-aplus-13-carousel-0='{\"page\": 4}' aria-label=\"slide-4\" aria-controls=\"premium-aplus-13-carousel-0-slide-3\" role=\"tab\" tabindex=\"-1\"\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\/\/ \u003c![CDATA[\n(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n    P.when(\"premium-aplus-13-carousel-0\").execute('invoke-premium-13-carousel-desktop', function(init){init();});\n}));\n\/\/ ]]\u003e\u003c\/script\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"celwidget aplus-module premium-module-2-fullbackground-image aplus-premium\" cel_widget_id=\"aplus-premium-module-2-fullbackground-image\"\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=\"massage gun\" src=\"https:\/\/images-na.ssl-images-amazon.com\/images\/G\/01\/x-locale\/common\/grey-pixel.gif\" class=\"a-lazy-loaded\" data-src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/747ee305-c204-4c67-a49b-b08979e19bc1.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\u003cimg alt=\"massage gun\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/747ee305-c204-4c67-a49b-b08979e19bc1.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\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-12-nav-carousel aplus-premium\" cel_widget_id=\"aplus-premium-module-12-nav-carousel\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-12 premium-aplus-module-12--top-nav\"\u003e\n\u003cdiv data-module-id=\"2\" class=\"a-section a-spacing-none aplus-carousel-container\"\u003e\n\u003cdiv id=\"premium-aplus-12-carousel-2-id\" data-a-carousel-options='{\"peek_percentage\":0,\"minimum_gutter_width\":0,\"show_partial_next\":false,\"name\":\"premium-aplus-12-carousel-2\"}' aria-label=\"Featured content carousel\" aria-roledescription=\"carousel\" data-a-display-strategy=\"single\" data-a-transition-strategy=\"slideCircular\" role=\"region\" class=\"a-begin a-carousel-container a-carousel-static a-carousel-display-single a-carousel-transition-slideCircular aplus-image-carousel-container\"\u003e\n\u003cinput autocomplete=\"on\" type=\"hidden\" class=\"a-carousel-firstvisibleitem\"\u003e\n\u003cdiv class=\"a-row a-carousel-controls a-carousel-row a-carousel-has-buttons a-carousel-overlay-buttons a-carousel-rounded-buttons\"\u003e\n\u003cdiv class=\"a-carousel-row-inner\"\u003e\n\u003cdiv class=\"a-carousel-col a-carousel-left\"\u003e\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\u003c\/div\u003e\n\u003cdiv class=\"a-carousel-col a-carousel-center\"\u003e\n\u003cdiv class=\"a-carousel-viewport\" aria-roledescription=\"slide\"\u003e\n\u003col class=\"a-carousel\" role=\"list\"\u003e\n\u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-card\" aria-setsize=\"4\"\u003e\n\u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\u003cimg alt=\"massage gun\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/10fca3cb-7143-4d77-be15-ae37f3eed962.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-card\" aria-setsize=\"4\"\u003e\n\u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\u003cimg alt=\"massage gun\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/cd32b7b8-ca52-4e6f-b20c-ec6d2fb6cf03.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-card\" aria-setsize=\"4\"\u003e\n\u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\u003cimg alt=\"massage gun\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/dbbd565f-94fc-41c0-bd5d-462d559301d3.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli aria-roledescription=\"slide\" class=\"a-carousel-card aplus-carousel-card\" aria-setsize=\"4\"\u003e\n\u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\u003cimg alt=\"massage gun\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/c162a87b-45af-481a-abeb-35d291366f2c.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\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\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\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cspan class=\"a-end aok-hidden\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"aplus-carousel-actions-2\" aria-label=\"tablist section\" class=\"a-section aplus-carousel-actions\" role=\"tablist\"\u003e\n\u003cbutton class=\"aplus-goto-btn aplus-goto-btn-2 aplus-active\" role=\"tab\" aria-selected=\"true\" tabindex=\"0\"\u003e \u003cspan class=\"aplus-carousel-index\"\u003e1\u003c\/span\u003e \u003cspan class=\"aplus-accent2 aplus-carousel-label\"\u003eBrushless Motor\u003c\/span\u003e \u003c\/button\u003e \u003cbutton class=\"aplus-goto-btn aplus-goto-btn-2 \" role=\"tab\" aria-selected=\"false\" tabindex=\"0\"\u003e \u003cspan class=\"aplus-carousel-index\"\u003e2\u003c\/span\u003e \u003cspan class=\"aplus-accent2 aplus-carousel-label\"\u003e12MM Percussive Massager\u003c\/span\u003e \u003c\/button\u003e \u003cbutton class=\"aplus-goto-btn aplus-goto-btn-2 \" role=\"tab\" aria-selected=\"false\" tabindex=\"0\"\u003e \u003cspan class=\"aplus-carousel-index\"\u003e3\u003c\/span\u003e \u003cspan class=\"aplus-accent2 aplus-carousel-label\"\u003eLong Battery Life\u003c\/span\u003e \u003c\/button\u003e \u003cbutton class=\"aplus-goto-btn aplus-goto-btn-2 \" role=\"tab\" aria-selected=\"false\" tabindex=\"0\"\u003e \u003cspan class=\"aplus-carousel-index\"\u003e4\u003c\/span\u003e \u003cspan class=\"aplus-accent2 aplus-carousel-label\"\u003eHeat Dissipation System\u003c\/span\u003e \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript type=\"text\/javascript\"\u003e\/\/ \u003c![CDATA[\n(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n    P.when('premium-module-12-nav-carousel').execute('invoke-premium-12-nav-carousel-desktop-top', function(init){\n        init();\n    });\n}));\n\/\/ ]]\u003e\u003c\/script\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"celwidget aplus-module premium-module-2-fullbackground-image aplus-premium\" cel_widget_id=\"aplus-premium-module-2-fullbackground-image\"\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=\"massage gun\" src=\"https:\/\/images-na.ssl-images-amazon.com\/images\/G\/01\/x-locale\/common\/grey-pixel.gif\" class=\"a-lazy-loaded\" data-src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/f120c983-a1eb-4282-b658-ed686c9faeb7.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\u003cimg alt=\"massage gun\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/f120c983-a1eb-4282-b658-ed686c9faeb7.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"a-section a-text-center\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"celwidget aplus-module premium-module-2-fullbackground-image aplus-premium\" cel_widget_id=\"aplus-premium-module-2-fullbackground-image\"\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=\"massage gun\" src=\"https:\/\/images-na.ssl-images-amazon.com\/images\/G\/01\/x-locale\/common\/grey-pixel.gif\" class=\"a-lazy-loaded\" data-src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/1edd81bb-7c3e-4045-a340-e8363994b363.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\u003cimg alt=\"massage gun\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/1edd81bb-7c3e-4045-a340-e8363994b363.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\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-5-id\" data-a-carousel-options='{\"peek_percentage\":0,\"minimum_gutter_width\":0,\"show_partial_next\":false,\"name\":\"premium-aplus-13-carousel-5\"}' aria-label=\"Featured content carousel\" aria-roledescription=\"carousel\" data-a-display-strategy=\"single\" data-a-transition-strategy=\"slideCircular\" role=\"region\" class=\"a-begin a-carousel-container a-carousel-static a-carousel-display-single a-carousel-transition-slideCircular\"\u003e\n\u003cinput autocomplete=\"on\" type=\"hidden\" class=\"a-carousel-firstvisibleitem\"\u003e\n\u003cdiv class=\"a-row a-carousel-controls a-carousel-row a-carousel-has-buttons a-carousel-overlay-buttons a-carousel-rounded-buttons\"\u003e\n\u003cdiv class=\"a-carousel-row-inner\"\u003e\n\u003cdiv class=\"a-carousel-col a-carousel-left\"\u003e\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\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-5-slide-0\"\u003e\n\u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\u003cimg alt=\"massage gun\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/c1bf2da6-3707-4fab-bf30-3a73ab4da63c.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\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-5-slide-1\"\u003e\n\u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\u003cimg alt=\"massage gun\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/40b4cfdd-b09d-4900-86be-70e2c916b40d.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\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-5-slide-2\"\u003e\n\u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\u003cimg alt=\"massae gun\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/0ae016c1-450c-4bda-8835-26d046116c91.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\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\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\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\u003cscript\u003e\/\/ \u003c![CDATA[\nP.now(\"premium-aplus-13-carousel-5\").execute(\"init-pagination-carousel\", function(init) {\n    if (init) {\n        return;\n    }\n    P.register(\"premium-aplus-13-carousel-5\", function() {\n        return function() {\n            P.when(\"A\", \"jQuery\", \"a-carousel-framework\", \"ready\").execute(\"paginate-carousel\", function (A, $, framework) {\n                const ENTER_KEY_CODE = 13;\n                const ESCAPE_KEY_CODE = 27;\n                const LEFT_ARROW_KEY = 37;\n                const RIGHT_ARROW_KEY = 39;\n                const HOME_KEY = 36;\n                const END_KEY = 35;\n\n                var moduleId = \"5\";\n                var carouselName = \"premium-aplus-13-carousel-5\";\n                var paginationAction = \"aplus-pagination-dot-action-\" + moduleId + \"-\" + carouselName;\n                var paginationGroup = \"#aplus-pagination-group-\" + moduleId + \"-\" + carouselName;\n\n                \/* If the carousel goes to a new page *\/\n                A.on(\"a:carousel:\"+carouselName+\":change:pageNumber\", function (data) {\n                    A.$(paginationGroup+\" .carousel-slider-circle\").removeClass(\"aplus-carousel-active\").attr('aria-selected', 'false').attr('tabindex', -1)\n                                    .eq(data.newValue - 1).addClass(\"aplus-carousel-active\").attr('aria-selected', 'true').attr('tabindex', 0);\n                });\n\n                function syncPaginationDotsWithCarouselPages(numPages) {\n                    const parentElement = document.querySelector(paginationGroup);\n                    if (parentElement \u0026\u0026 parentElement.children) {\n                        const children = parentElement.children;\n                        for (let i = 0; i \u003c children.length; i++) {\n                            if (i \u003e= numPages) {\n                                \/\/ If number of dots \u003e num of pages, we should hide other dots\n                                children[i].classList.add('aplus-pagination-dot--display-none');\n                            } else if (children[i].classList.contains('aplus-pagination-dot--display-none')) {\n                                \/\/ Reset display of dots if it was hidden before\n                                children[i].classList.remove('aplus-pagination-dot--display-none');\n                            }\n                        }\n                    }\n                }\n\n                framework.onInit(carouselName, function (carousel) {\n                    try {\n                        var totalPages = carousel.getAttr('totalPages');\n                        syncPaginationDotsWithCarouselPages(totalPages);\n                        \/* Resize event handler to re-calculate the pagination dots count based on orientation *\/\n                        window.addEventListener('resize', function() {\n                            carousel.resize();\n                            totalPages = carousel.getAttr('totalPages');\n                            syncPaginationDotsWithCarouselPages(totalPages);\n                        });\n\n                        A.declarative(paginationAction, 'click keydown', function(event){\n                            var isClick = event.type === 'click';\n                            var isKeydown = event.type === 'keydown';\n                            var isEnter = isKeydown \u0026\u0026 event.$event.keyCode === ENTER_KEY_CODE;\n                            var isEsc = isKeydown \u0026\u0026 event.$event.keyCode === ESCAPE_KEY_CODE;\n                            var isLeftArrow = isKeydown \u0026\u0026 event.$event.keyCode === LEFT_ARROW_KEY;\n                            var isRightArrow = isKeydown \u0026\u0026 event.$event.keyCode === RIGHT_ARROW_KEY;\n                            var isHome = isKeydown \u0026\u0026 event.$event.keyCode === HOME_KEY;\n                            var isEnd = isKeydown \u0026\u0026 event.$event.keyCode === END_KEY;\n\n                            if (isClick || isEnter) {\n                                var data = event.data;\n                                carousel.gotoPage(data.page);\n                            } else if (isEsc) {\n                                event.$target.blur();\n                            } else if (isLeftArrow || isRightArrow || isHome || isEnd) {\n                                event.$event.preventDefault();\n                                const dots = A.$(paginationGroup + \" .carousel-slider-circle\");\n                                const currentIndex = dots.index(event.$target);\n                                let nextIndex;\n\n                                if (isLeftArrow) {\n                                    nextIndex = currentIndex \u003e 0 ? currentIndex - 1 : dots.length - 1;\n                                } else if (isRightArrow) {\n                                    nextIndex = currentIndex \u003c dots.length - 1 ? currentIndex + 1 : 0;\n                                } else if (isHome) {\n                                    nextIndex = 0;\n                                } else if (isEnd) {\n                                    nextIndex = dots.length - 1;\n                                }\n\n                                dots.eq(nextIndex).focus();\n                                carousel.gotoPage(nextIndex + 1);\n                            }\n                        });\n                    } catch (e) {\n                        P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources');\n                    }\n                });\n            });\n        }\n    });\n});\n\/\/ ]]\u003e\u003c\/script\u003e\n\u003cdiv class=\"aplus-mantle aplus-module\"\u003e\n\u003cdiv class=\"aplus-carousel-nav\"\u003e\n\u003cul id=\"aplus-pagination-group-5-premium-aplus-13-carousel-5\" class=\"aplus-pagination-dots\" aria-label=\"tablist-section\" role=\"tablist\"\u003e\n\u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block aplus-carousel-active\" aria-selected=\"true\" data-action=\"aplus-pagination-dot-action-5-premium-aplus-13-carousel-5\" data-aplus-pagination-dot-action-5-premium-aplus-13-carousel-5='{\"page\": 1}' aria-label=\"slide-1\" aria-controls=\"premium-aplus-13-carousel-5-slide-0\" role=\"tab\" tabindex=\"0\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-5-premium-aplus-13-carousel-5\" data-aplus-pagination-dot-action-5-premium-aplus-13-carousel-5='{\"page\": 2}' aria-label=\"slide-2\" aria-controls=\"premium-aplus-13-carousel-5-slide-1\" role=\"tab\" tabindex=\"-1\"\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" aria-selected=\"false\" data-action=\"aplus-pagination-dot-action-5-premium-aplus-13-carousel-5\" data-aplus-pagination-dot-action-5-premium-aplus-13-carousel-5='{\"page\": 3}' aria-label=\"slide-3\" aria-controls=\"premium-aplus-13-carousel-5-slide-2\" role=\"tab\" tabindex=\"-1\"\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\/\/ \u003c![CDATA[\n(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n    P.when(\"premium-aplus-13-carousel-5\").execute('invoke-premium-13-carousel-desktop', function(init){init();});\n}));\n\/\/ ]]\u003e\u003c\/script\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"celwidget aplus-module premium-module-2-fullbackground-image aplus-premium\" cel_widget_id=\"aplus-premium-module-2-fullbackground-image\"\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=\"massage gun\" src=\"https:\/\/images-na.ssl-images-amazon.com\/images\/G\/01\/x-locale\/common\/grey-pixel.gif\" class=\"a-lazy-loaded\" data-src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/359710f7-9969-4668-9c09-72620a13d80c.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\u003cimg alt=\"massage gun\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/359710f7-9969-4668-9c09-72620a13d80c.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"a-section a-text-center\"\u003e\n\u003cp class=\"aplus-description aplus-container-3 aplus-p1\"\u003e\u003cspan class=\"a-text-bold\"\u003e\u003cu\u003eWarning\u003c\/u\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"aplus-description aplus-container-3 aplus-p1\"\u003e \u003c\/p\u003e\n\u003cul class=\"a-unordered-list a-vertical\"\u003e\n\u003cli\u003e\u003cspan class=\"a-list-item\"\u003e\u003cu\u003eDo not use a massager to massage the neck and bones to avoid injury!\u003c\/u\u003e\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan class=\"a-list-item\"\u003e\u003cu\u003eAlthough massage guns are beneficial for muscle relaxation and recovery, the pregnant women, young children,osteoporosis patients,heart disease, patients with neurological diseases should try to avoid or used with caution.\u003c\/u\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\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"Abdu","offers":[{"title":"Black","offer_id":41152605323336,"sku":"B083L8RNJR","price":39.99,"currency_code":"NZD","in_stock":true},{"title":"Carbon","offer_id":41152605356104,"sku":"B0B2Z5JHN4","price":39.99,"currency_code":"NZD","in_stock":true},{"title":"Grey","offer_id":41152605388872,"sku":"B089KJTW4V","price":39.99,"currency_code":"NZD","in_stock":true},{"title":"Silver","offer_id":41152605421640,"sku":"B08XB3ZV7X","price":39.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0590\/7598\/5480\/files\/71Jot9nj6qL._AC_SY300_SX300_QL70_ML2.jpg?v=1780802982","url":"https:\/\/abdu-9887.myshopify.com\/products\/toloco-massage-gun-deep-tissue-back-massage-for-athletes-for-pain-relief-percussion-massager-with-10-massages-heads-amp-silent-brushless-motor-fathers-day-dad-gifts-black","provider":"Abdu","version":"1.0","type":"link"}