{"product_id":"blue-sky-studios-kpop-demon-hunters-huntr-x-backpack-official-merchandise-lightweight-kids-school-bag-with-padded-straps-front-pocket-silver-holographic-details-36cm-k-pop-purple-rucksack","title":"Blue Sky Studios KPop Demon Hunters HUNTR\/X Backpack - Official Merchandise - Lightweight Kids School Bag with Padded Straps, Front Pocket \u0026 Silver Holographic Details - 36cm K-Pop Purple Rucksack","description":"\u003cdiv\u003e\n\u003cdiv lang=\"en_GB\"\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-5-comparison-table-scroller').execute('init-premium-module-5-comparison-table', function(init){\n    if (init) {\n        return;\n    }\n    P.register('premium-module-5-comparison-table-scroller', function(){\n        return function() {\n            P.when('jQuery', 'a-popover', 'A', 'ready').execute('premium-5-comparison-table-scroller', function($, popover, A) {\n                function initCompTable(module) {\n                    \/**\n                    * Premium comparison table: popover trigger module\n                    *\/\n                    var comparisonName = $(module).data('comparison-name');\n                    (function() {\n                        var $additionalInfo = $('.aplus-v2 .aplus-popover-trigger');\n                        $additionalInfo.each(function(i, trigger) {\n                            return popover.create(trigger, $(trigger).data());\n                        });\n                        $additionalInfo.hover(\n                            function() {\n                                $(this).focus();\n                            }\n                        );\n                    })();\n                    \/**\n                    * Premium comparison table: adjust column width module\n                    *\/\n                    (function() {\n                        var VISIBLE_COLUMNS = 4.2;  \/* How many visible columns on load *\/\n                        var MIN_WIDTH = 230;\n                        var getWidth = function() {\n                            return $(this).outerWidth();\n                        }\n                        \/* cache selectors *\/\n                        var\n                            $container = $('.aplus-v2 .comparison-table #'+comparisonName),\n                            $header = $('.aplus-v2 .comparison-table #'+comparisonName+' td.attribute'),\n                            $slider = $('.aplus-v2 .comparison-table #'+comparisonName+' .table-slider'),\n                            $columns = $('.aplus-v2 .comparison-table #'+comparisonName+' .aplus-data-column'),\n                            $activeColumn = $('.aplus-v2 .comparison-table #'+comparisonName+' .aplus-data-column.active.active-item');\n\n                        \/* Formula for determining desired column width *\/\n\n                        var calculatedColumnWidth = Math.floor(\n                            ($container.innerWidth() - $header.innerWidth()) \/ VISIBLE_COLUMNS\n                        );\n\n                        var childWidths = $activeColumn.map(getWidth).get();\n                        var maxChildWidth = Math.max(MIN_WIDTH, Math.max.apply(Math, childWidths));\n                        var minColumnWidth = $columns.innerWidth();\n\n                        \/* set the min-width of each column to the calulated width or minWidth *\/\n                        $columns.css(\n                            'min-width',\n                            Math.max(MIN_WIDTH, (calculatedColumnWidth \u003c minColumnWidth\n                                ? calculatedColumnWidth\n                                : minColumnWidth))\n                        );\n                        $activeColumn.css('width', maxChildWidth);\n\n                        \/* show the component *\/\n                        $container.removeClass('loading');\n                    })();\n\n                    \/**\n                     * Premium comparison table: sticky attribute \u0026 column\n                     *\/\n\n                    (function() {\n                        \/* cache selectors *\/\n                        const comparisonTable = document.querySelector('.aplus-v2 .comparison-table #'+comparisonName);\n                        const header = comparisonTable.querySelector('td.attribute');\n                        const fixedColumn = comparisonTable.querySelector('td.active');\n\n                        const attributeColumnObserver = new ResizeObserver((entries) =\u003e {\n                            for (let entry of entries) {\n                                const bounds = entry.target.getBoundingClientRect().width;\n                                const activeCellWidth = window.getComputedStyle(fixedColumn).left;\n                                if (bounds + \"px\" !== activeCellWidth) {\n                                    const activeCells = document.querySelectorAll('.aplus-data-column.active');\n                                    activeCells.forEach(cell =\u003e cell.style.left = bounds + \"px\");\n\n                                }\n                            }\n\n                        })\n\n                        attributeColumnObserver.observe(header)\n                    })();\n\n                    \/**\n                    * Premium comparison table: top scroll bar\n                    *\/\n                    (function() {\n                        \/* cache selectors *\/\n                        var\n                            $header = $('.aplus-v2 .comparison-table #'+comparisonName+' td.attribute'),\n                            $fixedColumn = $('.aplus-v2 .comparison-table #'+comparisonName+' td.active'),\n                            $scrollWrapperTop = $('.aplus-v2 .comparison-table #'+comparisonName+' .scroll-wrapper-top'),\n                            $scrollWrapperBottom = $('.aplus-v2 .comparison-table #'+comparisonName+' .scroll-wrapper-bottom'),\n                            $scrollWidth = $('.aplus-v2 .comparison-table #'+comparisonName+' .scroll-width'),\n                            $scrollBar = $('.aplus-v2 .comparison-table #'+comparisonName+' .scroll-bar');\n                        \/* confirm fixed column exists and can add width to the total width of the scroll bar *\/\n                        var fixedColumnWidth = $fixedColumn.innerWidth();\n                        if ( fixedColumnWidth === null ) {\n                            fixedColumnWidth = 0;\n                        }\n                        \/* set width of scrollBar *\/\n                        $scrollBar.css('width', $scrollWidth.innerWidth() + fixedColumnWidth + $header.innerWidth());\n                        \/* connect scrolls together *\/\n                        $scrollWrapperTop.scroll(function() {\n                            $scrollWrapperBottom.scrollLeft($scrollWrapperTop.scrollLeft());\n                        });\n                        $scrollWrapperBottom.scroll(function() {\n                            $scrollWrapperTop.scrollLeft($scrollWrapperBottom.scrollLeft());\n                        });\n                    })();\n                }\n\n                $('.aplus-v2 .premium-aplus-module-5 .table-container').each(function(index, module) {\n                    initCompTable(module);\n                });\n            });\n        }\n    });\n});\n}));\n\/\/ ]]\u003e\u003c\/script\u003e\u003cscript type=\"application\/javascript\"\u003e\/\/ \u003c![CDATA[\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\/\/ ]]\u003e\u003c\/script\u003e\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-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}));\n\/\/ ]]\u003e\u003c\/script\u003e\n\u003cdiv class=\"aplus-content-wrapper\"\u003e\n\u003cdiv class=\"celwidget aplus-module premium-module-2-fullbackground-image aplus-premium\" cel_widget_id=\"aplus-premium-module-2-fullbackground-image\"\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=\"Text reads \u0026amp;#39;NETFLIX\u0026amp;#39;, \u0026amp;#39;KPOP\u0026amp;#39;, \u0026amp;#39;DEMON HUNTERS\u0026amp;#39;, and \u0026amp;#39;Blue Sky\u0026amp;#39;. Blue banner displaying streaming service and entertainment content logos.\" class=\"a-lazy-loaded\" data-src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/c5c2e3c7-7dd1-4e95-80c8-ba3165bcd3dd.__CR0,0,5000,2049_PT0_SX1464_V1___.jpg\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/c5c2e3c7-7dd1-4e95-80c8-ba3165bcd3dd.__CR0,0,5000,2049_PT0_SX1464_V1___.jpg\"\u003e\n\u003cnoscript\u003e\n        \u003cimg alt=\"Text reads \u0026amp;#39;NETFLIX\u0026amp;#39;, \u0026amp;#39;KPOP\u0026amp;#39;, \u0026amp;#39;DEMON HUNTERS\u0026amp;#39;, and \u0026amp;#39;Blue Sky\u0026amp;#39;. Blue banner displaying streaming service and entertainment content logos.\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/c5c2e3c7-7dd1-4e95-80c8-ba3165bcd3dd.__CR0,0,5000,2049_PT0_SX1464_V1___.jpg\"\u003e\n       \u003c\/noscript\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"a-section a-text-center\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"celwidget aplus-module premium-module-5-comparison-table-scroller aplus-premium\" cel_widget_id=\"aplus-premium-module-5-comparison-table-scroller\"\u003e\n\u003cdiv class=\"premium-aplus premium-aplus-module-5 aplus-container-3 comparison-table\"\u003e\n\u003cdiv id=\"comparison-table-container-1\" data-comparison-name=\"comparison-table-container-1\" class=\"a-section a-spacing-none table-container loading\"\u003e\n\u003cdiv class=\"table-slider scroll-wrapper-bottom\"\u003e\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-5-comparison-table-scroller', 'ready').execute('invoke-premium-5-comparison-table', function(init){ init() });\n}));\n\/\/ ]]\u003e\u003c\/script\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"celwidget aplus-module premium-module-11-faq aplus-premium\" cel_widget_id=\"aplus-premium-module-11-faq\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-11\"\u003e\n\u003cdiv data-faq-block=\"2\" class=\"a-section a-spacing-none aplus-container-2 faqs-container 2\"\u003e\n\u003cul class=\"faq-list\"\u003e\n\u003cli id=\"faq-qa-pair-0\" class=\"faq-block\"\u003e\n\u003cp class=\"aplus-question aplus-p1\"\u003eQ: Is this backpack officially licensed merchandise?\u003c\/p\u003e\n\u003cp class=\"aplus-answer aplus-p2\"\u003eA: Yes, this Huntr\/x backpack is an official K-Pop Demon Hunters product by Blue Sky Studios.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli id=\"faq-qa-pair-1\" class=\"faq-block\"\u003e\n\u003cp class=\"aplus-question aplus-p1\"\u003eQ: Will this fit standard school supplies?\u003c\/p\u003e\n\u003cp class=\"aplus-answer aplus-p2\"\u003eA: Yes, the 36cm height and 32cm width are designed to accommodate A4 school folders and notebooks.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli id=\"faq-qa-pair-2\" class=\"faq-block\"\u003e\n\u003cp class=\"aplus-question aplus-p1\"\u003eQ: Does the bag have side pockets?\u003c\/p\u003e\n\u003cp class=\"aplus-answer aplus-p2\"\u003eA: Yes, it features two side mesh pockets, perfect for holding water bottles.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli id=\"faq-qa-pair-3\" class=\"faq-block\"\u003e\n\u003cp class=\"aplus-question aplus-p1\"\u003eQ: Is there a separate section inside for a tablet or laptop?\u003c\/p\u003e\n\u003cp class=\"aplus-answer aplus-p2\"\u003eA: It includes an internal sleeve within the main compartment to help organise tablets, notebooks and other belongings.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli id=\"faq-qa-pair-4\" class=\"faq-block\"\u003e\n\u003cp class=\"aplus-question aplus-p1\"\u003eQ: How do I clean it without ruining the holographic graphics?\u003c\/p\u003e\n\u003cp class=\"aplus-answer aplus-p2\"\u003eA: Simply wipe clean with a damp cloth. Do not machine wash or tumble dry.\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\/\/ \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-11-faq').execute('invoke-premium-11-faq', function(init){\n        init();\n    });\n}));\n\/\/ ]]\u003e\u003c\/script\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\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 JOIN THE HUNTR\/X CREW: This official K-Pop Demon Hunters backpack is a must-have piece of Kpop Demon Hunters merch. Featuring the group in their cool streetwear outfits, it's the ultimate way for fans to showcase their fandom! \u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e LIGHTWEIGHT \u0026amp; ERGONOMIC COMFORT: Built with adjustable, thickly padded shoulder straps that distribute weight evenly across the back. This lightweight schoolbag reduces shoulder strain, ensuring kids, teens, boys, and girls can carry their gear in complete comfort all day. \u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e ROOMY STORAGE WITH QUICK-ACCESS POCKETS: Features a spacious 36cm main compartment alongside a convenient front zipper pocket for smaller accessories. Completed with a side water bottle holder, it functions effortlessly as a primary or secondary school backpack and a casual travel daypack. \u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e EYE-CATCHING SILVER HOLOGRAPHIC DETAILS: Stand out from the crowd with premium, reflective silver holographic accents set against a bold purple rucksack base. This striking design perfectly blends the vibrant streetwear energy of the K-Pop music scene with daily utility. \u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e THE PERFECT GIFT FOR K-POP FANS: Bring a touch of magic to school students, kids, and teens. Whether it is a birthday present or a back to school surprise, this authentic merchandise is a must-have piece of Huntr\/x gear for K-Pop Demon Hunters fans! \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\n\u003c\/div\u003e","brand":"R \u0026 E Tinkerbells Little Boutique ","offers":[{"title":"Black, Purple \/ Kuromi","offer_id":56930554118522,"sku":null,"price":44.99,"currency_code":"GBP","in_stock":true},{"title":"Multicoloured \/ Cinnamoroll","offer_id":56930554151290,"sku":null,"price":44.99,"currency_code":"GBP","in_stock":true},{"title":"Black \/ K-POP Demon Hunters","offer_id":56930554184058,"sku":null,"price":44.99,"currency_code":"GBP","in_stock":true},{"title":"Purple, Pink \/ Melody","offer_id":56930554216826,"sku":null,"price":44.99,"currency_code":"GBP","in_stock":true},{"title":"Purple \/ Huntrix","offer_id":56930554249594,"sku":null,"price":44.99,"currency_code":"GBP","in_stock":true},{"title":"Pink \/ Hello Kitty","offer_id":56930554282362,"sku":null,"price":44.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0642\/4988\/9014\/files\/810QKkQHX1L.jpg?v=1780006939","url":"https:\/\/retinkerbellslittleboutique.myshopify.com\/products\/blue-sky-studios-kpop-demon-hunters-huntr-x-backpack-official-merchandise-lightweight-kids-school-bag-with-padded-straps-front-pocket-silver-holographic-details-36cm-k-pop-purple-rucksack","provider":"R \u0026 E Tinkerbells Little Boutique ","version":"1.0","type":"link"}