{"product_id":"granny-says-6-shelf-hanging-wardrobe-organiser-black","title":"GRANNY SAYS 6-Shelf Hanging Wardrobe Organiser with 3 Removable Drawers, 4 Mesh Side Pockets, Separable 2 × 3-Tier Closet Storage, Black","description":"\u003cstyle type=\"text\/css\"\u003e\n\n.aplus-v2 .premium-aplus-module-3 .premium-module-3-heading {\n    padding-bottom: 40px;\n}\n\n.aplus-v2 .premium-aplus-module-3 .premium-aplus-four-column {\n     text-align: center;\n }\n\n.aplus-v2 .premium-aplus-module-3 .premium-aplus-four-column {\n    text-align: inherit;\n}\n\n.aplus-v2 .premium-aplus-module-3 .premium-aplus-column {\n    display: inline-block;\n    vertical-align: top;\n    width: 25%;\n}\n\n.aplus-v2 .premium-aplus-module-3 .premium-aplus-column {\n    padding: 0 20px;\n}\n\n.aplus-v2 .premium-aplus-module-3 .column-heading {\n    padding-top: 20px;\n}\n\n.aplus-v2 .premium-aplus-module-3 .column-description {\n    padding-top: 10px;\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: #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\u003cdiv\u003e\n\u003cdiv lang=\"en_GB\"\u003e\n\u003cdiv class=\"aplus-v2 desktop celwidget\"\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 \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-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}));\u003c\/script\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium-module 5: Comparision table - scroller\n *\/\n\n.aplus-v2 .premium-aplus-module-5 h1 {\n    padding-bottom: 30px;\n}\n\n\/* position column-headers relative to this table *\/\n.aplus-v2 .premium-aplus-module-5 .table-container {\n    position: relative;\n    opacity: 1;\n}\n\n.aplus-v2 .premium-aplus-module-5 .table-container.loading {\n    opacity: 0;\n}\n\n.aplus-v2 .premium-aplus-module-5 .table-slider {\n    overflow-x: scroll;\n    overflow-y: visible;\n    width: 100%;\n}\n\n.aplus-v2 .premium-aplus-module-5 td.attribute {\n    min-width: 300px;\n    top: auto;\n    left: 0;\n    z-index: 100;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-5 td.attribute {\n    right: 0px;\n    left: auto;\n}\n\n.aplus-v2 .premium-aplus-module-5 td.active-item,\n.aplus-v2 .premium-aplus-module-5 th.active-item {\n    top: auto;\n    left: 300px;\n    z-index: 100;\n}\n\nhtml[dir=\"rtl\"]  .premium-aplus-module-5 td.active-item,\nhtml[dir=\"rtl\"]  .premium-aplus-module-5 th.active-item {\n    left: auto;\n    right: 300px;\n}\n\n.aplus-v2 .premium-aplus-module-5 .attribute,\n.aplus-v2 .premium-aplus-module-5 .active-item{\n    position: sticky;\n}\n\n.aplus-v2 .premium-aplus-module-5 table.a-bordered td,\n.aplus-v2 .premium-aplus-module-5 table.a-bordered th {\n    background-color: #fff;\n}\n\n.aplus-v2 .premium-aplus-module-5 table.a-bordered td.attribute .aplus-popover-trigger::after {\n    content: \"?\";\n    display: inline-block;\n    font-size: 12px;\n    position: relative;\n    bottom: 5px;\n}\n\n.aplus-v2 .premium-aplus-module-5 .product-title {\n    font-size: 15px;\n    padding: 10px 0;\n}\n\n.aplus-v2 .premium-aplus-module-5 .scroll-width {\n    overflow-x: scroll;\n    overflow-y: visible;\n}\n\n\n.aplus-v2 .premium-aplus-module-5 td.attribute.empty {\n    height: 300px;\n}\n\n.aplus-v2 .premium-aplus-module-5 .header-img {\n    padding-top: 10px;\n}\n\n\/* Override default AUI .a-bordered table borders *\/\n.aplus-v2 .premium-aplus-module-5 table.a-bordered {\n    border-width: 0;\n    border-color: #eaeaea;\n    border-style: solid;\n}\n\n\/* Size the top scroller *\/\n.aplus-v2 .premium-aplus-module-5 .scroll-wrapper-top {\n    width: 100%;\n    height: 20px;\n    overflow-x: scroll;\n    overflow-y: visible;\n}\n\n.aplus-v2 .premium-aplus-module-5 .scroll-bar {\n    height: 1px;\n}\n\n.aplus-v2 .premium-aplus-module-5 .add-to-cart {\n    line-height: 1rem;\n    font-weight: normal;\n}\n\n.aplus-v2 .premium-aplus-module-5 .review {\n    font-size: 14px;\n}\n\u003c\/style\u003e\n\u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium modules global styles\n *\/\n.aplus-v2.desktop {\n  max-width: 1464px;\n  min-width: 800px;\n  margin-left: auto;\n  margin-right: auto;\n  word-wrap: break-word;\n  overflow-wrap: break-word;\n  word-break: break-word;\n}\n\/* Undo this for tech-specs because it breaks table layout *\/\n.aplus-v2.desktop .premium-aplus .aplus-tech-spec-table { word-break: initial; }\n\n.aplus-v2 .premium-aplus,\n.aplus-v2 .premium-aplus .aplus-h1,\n.aplus-v2 .premium-aplus .aplus-h2,\n.aplus-v2 .premium-aplus .aplus-p1,\n.aplus-v2 .premium-aplus .aplus-p2,\n.aplus-v2 .premium-aplus .aplus-p3,\n.aplus-v2 .premium-aplus .aplus-accent1,\n.aplus-v2 .premium-aplus .aplus-accent2\n{ font-family: Arial, sans-serif; }\n\n.aplus-v2 .premium-aplus,\n.aplus-v2 .premium-aplus .aplus-h1,\n.aplus-v2 .premium-aplus .aplus-h2,\n.aplus-v2 .premium-aplus .aplus-p1,\n.aplus-v2 .premium-aplus .aplus-p2,\n.aplus-v2 .premium-aplus .aplus-p3,\n.aplus-v2 .premium-aplus .aplus-accent1,\n.aplus-v2 .premium-aplus .aplus-accent2\n{ font-family: inherit; }\n\n\/* type *\/\n.aplus-v2 .premium-aplus .aplus-h1 { font-size: 32px; line-height: 1.2em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-h2 { font-size: 26px; line-height: 1.25em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-h3 { font-size: 18px; line-height: 1.25em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-p1 { font-size: 20px; line-height: 1.3em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-p2 { font-size: 16px; line-height: 1.4em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-p3 { font-size: 14px; line-height: 1.4em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-accent1 { font-size: 16px; line-height: 1.4em; font-weight: 600; }\n.aplus-v2 .premium-aplus .aplus-accent2 { font-size: 14px; line-height: 1.4em; font-weight: 600; }\n\n\/* spacing *\/\n.aplus-v2 .aplus-container-1 { padding: 40px; }\n.aplus-v2 .aplus-container-1-2 { padding: 40px 80px; }\n.aplus-v2 .aplus-container-2 { padding: 80px; }\n.aplus-v2 .aplus-container-3 { padding: 40px 0; }\n\n\/* Display *\/\n.aplus-v2 .premium-aplus .aplus-display-table { display: table; }\n.aplus-v2 .premium-aplus .aplus-display-table-cell { display: table-cell; }\n.aplus-v2 .premium-aplus .aplus-display-inline-block { display: inline-block; }\n\n\/* Aplus display table with min-width 1000px and fill remaining space inside parent *\/\n.aplus-v2.desktop .premium-aplus .aplus-display-table-width { min-width: 1000px; width: 100% }\n\n\/**\n* Padding and margin for element should be 10, 20, 40, or 80 px. Considering mini 10, small 20, medium 40, large 80.\n*\/\n\n\u003c\/style\u003e\n\u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium-module 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\u003cdiv\u003e\n\u003cdiv lang=\"en_GB\"\u003e\n\u003cdiv class=\"aplus-v2 desktop celwidget\"\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\u003cdiv class=\"aplus-content-wrapper\"\u003e\n\u003cdiv class=\"celwidget aplus-module premium-module-2-fullbackground-image aplus-premium\"\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\u003ch2 data-pm-slice=\"1 1 []\"\u003e\u003cspan\u003eGRANNY SAYS 6-Shelf Hanging Wardrobe Organiser — Make Space for a More Organised Life\u003c\/span\u003e\u003c\/h2\u003e\n\u003cp\u003e\u003cspan\u003eTransform a cluttered wardrobe into a well-organised space with the GRANNY SAYS 6-Shelf Hanging Wardrobe Organiser. Designed for practical everyday storage, this versatile black organiser gives clothing, accessories and household essentials their own dedicated places, helping you find what you need without turning your wardrobe upside down.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003eEVERYTHING IN ITS PLACE. MORE ROOM FOR WHAT MATTERS.\u003c\/span\u003e\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eWith six shelves, three removable drawers and four mesh side pockets, this clever storage solution offers multiple ways to organise your belongings. Keep T-shirts, towels and folded clothing on the shelves, use the divided drawer for socks and smaller accessories, and store everyday essentials in the side pockets for quick access.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eIts separable design adds flexibility when your storage needs change. Use the full six-shelf organiser in a larger wardrobe or divide it into two three-shelf units for separate storage areas. Made from non-woven fabric with reinforced cardboard supports and sturdy metal hanging hooks, it is designed to help maintain its structure during everyday use.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eThe minimalist black finish creates a neat, understated look, while the hanging design makes better use of vertical wardrobe space. Whether you're organising a bedroom, nursery, student room or campervan, this adaptable organiser helps bring simplicity to your daily routine.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003eLESS CLUTTER. SMARTER STORAGE. A WARDROBE THAT WORKS FOR YOU.\u003c\/span\u003e\u003c\/strong\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cspan\u003eKEY FEATURES \u0026amp; BENEFITS\u003c\/span\u003e\u003c\/h3\u003e\n\u003cul data-spread=\"false\"\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003eSix-Tier Hanging Storage\u003c\/span\u003e\u003c\/strong\u003e\u003cspan\u003e – Provides six separate shelves for organising folded clothing, towels, bedding and everyday essentials.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003eSeparable Two-Part Design\u003c\/span\u003e\u003c\/strong\u003e\u003cspan\u003e – Divides into two three-shelf organisers, giving you flexibility to arrange storage in different spaces.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003eThree Removable Drawers\u003c\/span\u003e\u003c\/strong\u003e\u003cspan\u003e – Includes one divided drawer with 12 square compartments and two larger drawers for versatile organisation.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003e12-Compartment Drawer\u003c\/span\u003e\u003c\/strong\u003e\u003cspan\u003e – Keeps socks, underwear and small accessories separated for easier access.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003eFour Mesh Side Pockets\u003c\/span\u003e\u003c\/strong\u003e\u003cspan\u003e – Provide convenient storage for smaller items you want to reach quickly.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003eReinforced Cardboard Supports\u003c\/span\u003e\u003c\/strong\u003e\u003cspan\u003e – Help shelves maintain their shape and reduce sagging during normal use.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003eNon-Woven Fabric Construction\u003c\/span\u003e\u003c\/strong\u003e\u003cspan\u003e – Offers lightweight, practical storage for everyday wardrobe essentials.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003eSturdy Metal Hanging Hooks\u003c\/span\u003e\u003c\/strong\u003e\u003cspan\u003e – Two integrated metal hooks are designed to suspend the organiser from a compatible wardrobe rail.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003eUp to 30 lb Advertised Load Capacity\u003c\/span\u003e\u003c\/strong\u003e\u003cspan\u003e – Offers substantial storage potential when used correctly; distribute items evenly and follow the manufacturer's loading guidance.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003eFlexible Drawer Placement\u003c\/span\u003e\u003c\/strong\u003e\u003cspan\u003e – Position the removable drawers on suitable shelves or store them separately when needed.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003eSpace-Saving Vertical Design\u003c\/span\u003e\u003c\/strong\u003e\u003cspan\u003e – Uses wardrobe height to help free up shelves, floors and other storage areas.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003eMinimalist Black Finish\u003c\/span\u003e\u003c\/strong\u003e\u003cspan\u003e – Creates a simple, coordinated appearance that works with many wardrobe interiors.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003eEasy Installation\u003c\/span\u003e\u003c\/strong\u003e\u003cspan\u003e – Unfold the organiser, hang it from a compatible rail and insert the drawers where required.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003eIdeal for Folded Clothing\u003c\/span\u003e\u003c\/strong\u003e\u003cspan\u003e – Keeps T-shirts, children's clothes, towels and other suitable garments neatly arranged.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003eVersatile Room-to-Room Use\u003c\/span\u003e\u003c\/strong\u003e\u003cspan\u003e – Suitable for wardrobes, walk-in closets, dormitories and compatible campervan storage areas.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"a-section a-spacing-none background-image\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"a-section a-spacing-none background-image\"\u003e\u003cimg alt=\"Closet organization system with hanging clothes, shelves, and storage compartments in neutral colors.\" class=\"a-lazy-loaded\" data-src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/3c0e46f7-7c92-41fb-89a0-480280c35dc1.__CR0,0,1464,600_PT0_SX1464_V1___.png\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/3c0e46f7-7c92-41fb-89a0-480280c35dc1.__CR0,0,1464,600_PT0_SX1464_V1___.png\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"celwidget aplus-module premium-module-2-fullbackground-image aplus-premium\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-2\"\u003e\n\u003ch3 class=\"a-text-center aplus-container-3 aplus-h1 a-text-bold\"\u003eHanging Wardrobe Organiser with Drawers\u003c\/h3\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-background-wrapper\"\u003e\n\u003cdiv class=\"a-section a-spacing-none background-image\"\u003e\u003cimg alt=\"GRANNY SAYS 6-Shelf Hanging Organiser with Drawers, Separable to 2 Pack 3-Shelf Hanging Shelves\" class=\"a-lazy-loaded\" data-src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/4e7a9725-143d-4bf1-bc46-37fa6533f8eb.__CR0,0,1464,600_PT0_SX1464_V1___.png\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/4e7a9725-143d-4bf1-bc46-37fa6533f8eb.__CR0,0,1464,600_PT0_SX1464_V1___.png\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"celwidget aplus-module premium-module-3-four-column-images aplus-premium\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-3 aplus-container-1\"\u003e\n\u003ch3 class=\"a-text-center premium-module-3-heading aplus-h1 a-text-bold\"\u003e- - - Product Features - - -\u003c\/h3\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus-four-column\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus-column\"\u003e\n\u003cdiv class=\"a-section a-spacing-none {'column-image'}\"\u003e\n\u003cimg alt=\"Two brown leather belts with gold-toned square buckles. The belts appear to have a textured or woven pattern and are displayed on a dark surface.\" class=\"a-lazy-loaded\" data-src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/ff9d08f5-9bc6-4319-b32e-5ca0ddff868c.__CR0,0,300,225_PT0_SX300_V1___.png\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/ff9d08f5-9bc6-4319-b32e-5ca0ddff868c.__CR0,0,300,225_PT0_SX300_V1___.png\"\u003e \u003cnoscript\u003e\n         \u003cimg alt=\"Two brown leather belts with gold-toned square buckles. The belts appear to have a textured or woven pattern and are displayed on a dark surface.\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/ff9d08f5-9bc6-4319-b32e-5ca0ddff868c.__CR0,0,300,225_PT0_SX300_V1___.png\"\u003e\n        \u003c\/noscript\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"a-section a-spacing-none column-heading\"\u003e\n\u003ch1 class=\"aplus-h3 a-text-bold\"\u003eSide Mesh Pockets\u003c\/h1\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"a-section a-spacing-none column-description\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus-column\"\u003e\n\u003cdiv class=\"a-section a-spacing-none {'column-image'}\"\u003e\n\u003cimg alt=\"Dark, low-contrast image of an indistinct object. Shape suggests it might be a curved or wavy item, but details are not clearly visible.\" class=\"a-lazy-loaded\" data-src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/3f03fe14-0d0e-4ee1-afc0-723a483e936b.__CR0,0,300,225_PT0_SX300_V1___.jpg\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/3f03fe14-0d0e-4ee1-afc0-723a483e936b.__CR0,0,300,225_PT0_SX300_V1___.jpg\"\u003e \u003cnoscript\u003e\n         \u003cimg alt=\"Dark, low-contrast image of an indistinct object. Shape suggests it might be a curved or wavy item, but details are not clearly visible.\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/3f03fe14-0d0e-4ee1-afc0-723a483e936b.__CR0,0,300,225_PT0_SX300_V1___.jpg\"\u003e\n        \u003c\/noscript\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"a-section a-spacing-none column-heading\"\u003e\n\u003ch1 class=\"aplus-h3 a-text-bold\"\u003eSturdy Handles\u003c\/h1\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"a-section a-spacing-none column-description\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus-column\"\u003e\n\u003cdiv class=\"a-section a-spacing-none {'column-image'}\"\u003e\n\u003cimg alt=\"Image appears to be entirely black, with no discernible features or content visible.\" class=\"a-lazy-loaded\" data-src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/742764a3-d557-45ab-8514-40af36a1e764.__CR0,0,300,225_PT0_SX300_V1___.jpg\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/742764a3-d557-45ab-8514-40af36a1e764.__CR0,0,300,225_PT0_SX300_V1___.jpg\"\u003e \u003cnoscript\u003e\n         \u003cimg alt=\"Image appears to be entirely black, with no discernible features or content visible.\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/742764a3-d557-45ab-8514-40af36a1e764.__CR0,0,300,225_PT0_SX300_V1___.jpg\"\u003e\n        \u003c\/noscript\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"a-section a-spacing-none column-heading\"\u003e\n\u003ch1 class=\"aplus-h3 a-text-bold\"\u003eHeavy-duty Cardboards\u003c\/h1\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"a-section a-spacing-none column-description\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus-column\"\u003e\n\u003cdiv class=\"a-section a-spacing-none {'column-image'}\"\u003e\n\u003cimg alt=\"Close-up of a black zipper on dark fabric, partially unzipped to reveal lighter material underneath.\" class=\"a-lazy-loaded\" data-src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/c53020b7-d081-48a0-96ed-554dacc5e6bf.__CR0,0,300,225_PT0_SX300_V1___.png\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/c53020b7-d081-48a0-96ed-554dacc5e6bf.__CR0,0,300,225_PT0_SX300_V1___.png\"\u003e \u003cnoscript\u003e\n         \u003cimg alt=\"Close-up of a black zipper on dark fabric, partially unzipped to reveal lighter material underneath.\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/c53020b7-d081-48a0-96ed-554dacc5e6bf.__CR0,0,300,225_PT0_SX300_V1___.png\"\u003e\n        \u003c\/noscript\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"a-section a-spacing-none column-heading\"\u003e\n\u003ch1 class=\"aplus-h3 a-text-bold\"\u003eSeparable Design\u003c\/h1\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"a-section a-spacing-none column-description\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"celwidget aplus-module premium-module-2-fullbackground-image aplus-premium\"\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\u003cimg alt=\"Set of three black fabric storage drawers shown empty and filled with various clothing items. Instructions indicate placement in bottom cabinet sides.\" class=\"a-lazy-loaded\" data-src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/217b63ec-1b56-40fb-851c-9c45280e2bf5.__CR0,0,1464,600_PT0_SX1464_V1___.png\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/217b63ec-1b56-40fb-851c-9c45280e2bf5.__CR0,0,1464,600_PT0_SX1464_V1___.png\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003ch3 data-pm-slice=\"1 1 []\"\u003e\u003cspan\u003eWHAT’S INCLUDED\u003c\/span\u003e\u003c\/h3\u003e\n\u003cul data-spread=\"false\"\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cspan\u003e1 × GRANNY SAYS 6-shelf hanging wardrobe organiser in black, separable into two three-shelf units\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cspan\u003e3 × Removable fabric drawers, including one 12-compartment drawer and two larger drawers\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cspan\u003e2 × Integrated metal hanging hooks and 4 mesh side pockets, as supplied\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003e\u003c\/h3\u003e\n\u003c\/div\u003e","brand":"TheLights4U","offers":[{"title":"White","offer_id":62821260558723,"sku":"B0BZZ14Y7D","price":27.99,"currency_code":"GBP","in_stock":true},{"title":"Black-separable","offer_id":62821260591491,"sku":"B0CKR3VCSD","price":27.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0628\/8690\/3960\/files\/71YsalBlquL._AC_SL1500.jpg?v=1791961827","url":"https:\/\/thelights4u.com\/products\/granny-says-6-shelf-hanging-wardrobe-organiser-black","provider":"TheLights4U","version":"1.0","type":"link"}