{"product_id":"qiyi-3-in-1-shower-curtain-set-ivory-waffle-shower-curtain-and-liner-set-with-12-double-shower-curtain-hooks-waterproof-fabric-hotel-bathroom-curtain-with-peva-liner-clear-plastic-rings-72-x-72","title":"Ivory Waffle Shower Curtain Set","description":"\u003cdiv class=\"a-section a-spacing-large bucket\" id=\"aplus\"\u003e\n\u003chr class=\"bucketDivider\" noshade size=\"1\"\u003e\n\u003cstyle type=\"text\/css\"\u003e.aplus-v2 .aplus-content-wrapper {\n        position: relative;\n        overflow: hidden;\n    }\n\n    .aplus-v2 .container-with-background-image {\n        width: 100%;\n        height: 100%;\n        background-repeat: no-repeat;\n        background-size: cover;\n    }\n\u003c\/style\u003e\n\u003cscript type=\"application\/javascript\"\u003e\n    function logShoppableMetrics(moduleName, showsAddToCart) {\n        if (window.ue \u0026amp;\u0026amp; window.ue.count) {\n            window.ue.count(\"aplus:shoppable:\" + moduleName + \":addToCart\", showsAddToCart ? 1 : 0);\n        }\n    }\n\u003c\/script\u003e\n\u003ch2\u003eFrom the brand\u003c\/h2\u003e\n\n\u003cdiv lang=\"en_US\"\u003e\n\u003cdiv cel_widget_id=\"aplus\" class=\"aplus-v2 desktop celwidget\"\u003e\n\u003cdiv class=\"aplus-content-wrapper\"\u003e\n\u003cstyle type=\"text\/css\"\u003e.aplus-v2 .apm-brand-story-carousel-container {\n        position: relative;\n    }\n\n    .aplus-v2 .apm-brand-story-carousel-hero-container,\n    .aplus-v2 .apm-brand-story-carousel-hero-container \u003e div {\n        position: absolute;\n        width: 100%;\n    }\n\u003c\/style\u003e\n\u003cstyle type=\"text\/css\"\u003e\/*\n          Ensuring the carousel takes only the space it needs.\n          The sizes need to be set again on the absolutely positioned elements so they can take up space.\n        *\/\n        .aplus-v2 .apm-brand-story-carousel-container,\n        .aplus-v2 .apm-brand-story-carousel-hero-container {\n            height: 625px;\n            width: 100%;\n            max-width: 1464px;\n            margin-left: auto;\n            margin-right: auto;\n            overflow: hidden;\n        }\n\n        .aplus-v2 .apm-brand-story-carousel-hero-container,\n        .aplus-v2 .apm-brand-story-carousel-hero-container \u003e div {\n            height: 625px;\n        }\n\u003c\/style\u003e\n\u003cstyle type=\"text\/css\"\u003e.aplus-v2 .apm-brand-story-carousel.a-carousel-container {\n            padding: 0px;\n        }\n\n        \/*\n          This centers the carousel vertically on top of the hero image container and after the logo area (125px).\n          Margin-top = (heroHeight - cardHeight - logoAreaHeight) \/ 2 + logoAreaHeight\n        *\/\n        .aplus-v2 .apm-brand-story-carousel .a-carousel-row-inner {\n            margin-top: 149px;\n        }\n\n        \/*\n          Cards need to have a width set, otherwise they default to 50px or so.\n          All cards must have the same width. The carousel will resize itself so all cards take the width of the largest card.\n          The left margin is for leaving a space between each card.\n        *\/\n        .aplus-v2 .apm-brand-story-carousel .a-carousel-card {\n            width: 362px;\n            margin-left: 30px !important;\n        }\n\n        \/* styling the navigation buttons so they are taller, flush with the sides, and have a clean white background *\/\n        .aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-left,\n        .aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-right {\n            padding: 0px;\n        }\n\n        .aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-left .a-button-image,\n        .aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-right .a-button-image {\n            border: none;\n            margin: 0px;\n        }\n\n        .aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-left .a-button-image .a-button-inner,\n        .aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-right .a-button-image .a-button-inner {\n            background: #fff;\n            padding: 20px 6px;\n        }\n\n        .aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-left .a-button-image .a-button-inner {\n            border-radius: 0px 4px 4px 0px;\n        }\n\n        .aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-right .a-button-image .a-button-inner {\n            border-radius: 4px 0px 0px 4px;\n        }\n\u003c\/style\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"apm-brand-story-carousel-container\"\u003e\n\u003cdiv class=\"apm-brand-story-carousel-hero-container\"\u003e\n\u003cdiv cel_widget_id=\"aplus-brand-story-hero-1-image-logo\" class=\"celwidget aplus-module brand-story-hero-1-image-logo aplus-brand-story-hero\"\u003e\n\u003cdiv class=\"apm-brand-story-hero\"\u003e\n\u003cdiv class=\"apm-brand-story-background-image\"\u003e\u003cdiv\u003e\u003cimg alt=\"brand story - shower curtain\" cke-id=\"img76\" referrerpolicy=\"no-referrer\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/27bbb09e-094e-4da3-bbfa-311d0bf8ae1b.__CR0,0,1464,625_PT0_SX1464_V1___.jpg\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv style=\"clear:both\"\u003e \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv aria-label=\"Featured content carousel\" aria-roledescription=\"carousel\" class=\"a-begin a-carousel-container a-carousel-static a-carousel-display-stretchyGoodness a-carousel-transition-slide apm-brand-story-carousel size-cards a-carousel-container\" data-a-carousel-options='{\"minimum_gutter_width\":10,\"show_partial_next\":true,\"name\":\"brand-story-carousel\",\"single_page_align\":\"left\",\"circular\":false}' id=\"apm-brand-story-carousel\" role=\"region\"\u003e\n\u003cinput autocomplete=\"on\" class=\"a-carousel-firstvisibleitem\" type=\"hidden\"\u003e\n\u003cdiv class=\"a-row a-carousel-controls a-carousel-row a-carousel-has-buttons\"\u003e\n\u003cdiv class=\"a-carousel-row-inner\"\u003e\n\u003cdiv class=\"a-carousel-col a-carousel-left\"\u003e \u003c\/div\u003e\n\n\u003cdiv class=\"a-carousel-col a-carousel-center\"\u003e\n\u003cdiv aria-roledescription=\"slide\" class=\"a-carousel-viewport\"\u003e\n\u003col class=\"a-carousel\" role=\"list\"\u003e\n\t\u003cli aria-roledescription=\"slide\" class=\"a-carousel-card apm-brand-story-carousel-card-0\"\u003e \u003c\/li\u003e\n\t\u003cli aria-roledescription=\"slide\" class=\"a-carousel-card apm-brand-story-carousel-card-1\"\u003e\n\t\u003cdiv cel_widget_id=\"aplus-brand-story-card-3-about\" class=\"celwidget aplus-module brand-story-card-3-about aplus-brand-story-card\"\u003e\n\t\u003cdiv class=\"apm-brand-story-card\"\u003e\n\t\u003cdiv class=\"apm-brand-story-logo-image\"\u003e\u003cdiv\u003e\u003cimg alt=\"\" cke-id=\"img78\" referrerpolicy=\"no-referrer\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/4c56a184-28ec-463b-b399-afe6720875a1.__CR0,0,315,145_PT0_SX315_V1___.jpg\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\n\t\u003cdiv class=\"apm-brand-story-slogan-text\"\u003e\n\t\u003cp\u003eQIYI has been dedicated to enhancing home living experiences by offering affordable yet premium home \u0026amp; office decor supplies. We provides a wide selection of products ranging from kitchen, office, bath, bedding to fitness gear.\u003c\/p\u003e\n\n\t\u003cp\u003eStringent quality control procedures are implemented to ensure premium quality and value. QIYI makes quality home living affordable and within everyone's reach.\u003c\/p\u003e\n\t\u003c\/div\u003e\n\t\u003c\/div\u003e\n\n\t\u003cdiv style=\"clear:both\"\u003e \u003c\/div\u003e\n\t\u003c\/div\u003e\n\t\u003c\/li\u003e\n\t\u003cli aria-roledescription=\"slide\" class=\"a-carousel-card apm-brand-story-carousel-card-2\"\u003e\n\t\u003cdiv cel_widget_id=\"aplus-brand-story-card-1-four-asin\" class=\"celwidget aplus-module brand-story-card-1-four-asin aplus-brand-story-card\"\u003e\n\t\u003cdiv class=\"apm-brand-story-card\"\u003e\n\t\u003cdiv class=\"apm-brand-story-image-grid\" role=\"list\"\u003e\n\t\u003cdiv class=\"apm-brand-story-image-grid-item\" role=\"listitem\"\u003e \u003c\/div\u003e\n\n\t\u003cdiv class=\"apm-brand-story-image-grid-item\" role=\"listitem\"\u003e \u003c\/div\u003e\n\n\t\u003cdiv class=\"apm-brand-story-image-grid-item\" role=\"listitem\"\u003e \u003c\/div\u003e\n\n\t\u003cdiv class=\"apm-brand-story-image-grid-item\" role=\"listitem\"\u003e \u003c\/div\u003e\n\t\u003c\/div\u003e\n\n\t\u003cdiv class=\"apm-brand-story-text \"\u003e\n\t\u003ch3\u003eNo Hook Shower Curtains\u003c\/h3\u003e\n\n\t\u003cp class=\"apm-brand-story-stores-link\"\u003e \u003c\/p\u003e\n\t\u003c\/div\u003e\n\t\u003c\/div\u003e\n\n\t\u003cdiv style=\"clear:both\"\u003e \u003c\/div\u003e\n\t\u003c\/div\u003e\n\t\u003c\/li\u003e\n\t\u003cli aria-roledescription=\"slide\" class=\"a-carousel-card apm-brand-story-carousel-card-3\"\u003e\n\t\u003cdiv cel_widget_id=\"aplus-brand-story-card-1-four-asin\" class=\"celwidget aplus-module brand-story-card-1-four-asin aplus-brand-story-card\"\u003e\n\t\u003cdiv class=\"apm-brand-story-card\"\u003e\n\t\u003cdiv class=\"apm-brand-story-image-grid\" role=\"list\"\u003e\n\t\u003cdiv class=\"apm-brand-story-image-grid-item\" role=\"listitem\"\u003e \u003c\/div\u003e\n\n\t\u003cdiv class=\"apm-brand-story-image-grid-item\" role=\"listitem\"\u003e \u003c\/div\u003e\n\n\t\u003cdiv class=\"apm-brand-story-image-grid-item\" role=\"listitem\"\u003e \u003c\/div\u003e\n\n\t\u003cdiv class=\"apm-brand-story-image-grid-item\" role=\"listitem\"\u003e \u003c\/div\u003e\n\t\u003c\/div\u003e\n\n\t\u003cdiv class=\"apm-brand-story-text \"\u003e\n\t\u003ch3\u003e3 in 1 Shower Curtain Sets\u003c\/h3\u003e\n\n\t\u003cp class=\"apm-brand-story-stores-link\"\u003e \u003c\/p\u003e\n\t\u003c\/div\u003e\n\t\u003c\/div\u003e\n\n\t\u003cdiv style=\"clear:both\"\u003e \u003c\/div\u003e\n\t\u003c\/div\u003e\n\t\u003c\/li\u003e\n\t\u003cli aria-roledescription=\"slide\" class=\"a-carousel-card apm-brand-story-carousel-card-4\"\u003e\n\t\u003cdiv cel_widget_id=\"aplus-brand-story-card-1-four-asin\" class=\"celwidget aplus-module brand-story-card-1-four-asin aplus-brand-story-card\"\u003e\n\t\u003cdiv class=\"apm-brand-story-card\"\u003e\n\t\u003cdiv class=\"apm-brand-story-image-grid\" role=\"list\"\u003e\n\t\u003cdiv class=\"apm-brand-story-image-grid-item\" role=\"listitem\"\u003e \u003c\/div\u003e\n\n\t\u003cdiv class=\"apm-brand-story-image-grid-item\" role=\"listitem\"\u003e \u003c\/div\u003e\n\n\t\u003cdiv class=\"apm-brand-story-image-grid-item\" role=\"listitem\"\u003e \u003c\/div\u003e\n\n\t\u003cdiv class=\"apm-brand-story-image-grid-item\" role=\"listitem\"\u003e \u003c\/div\u003e\n\t\u003c\/div\u003e\n\n\t\u003cdiv class=\"apm-brand-story-text \"\u003e\n\t\u003ch3\u003eRuffled Linen Shower Curtains\u003c\/h3\u003e\n\n\t\u003cp class=\"apm-brand-story-stores-link\"\u003e \u003c\/p\u003e\n\t\u003c\/div\u003e\n\t\u003c\/div\u003e\n\n\t\u003cdiv style=\"clear:both\"\u003e \u003c\/div\u003e\n\t\u003c\/div\u003e\n\t\u003c\/li\u003e\n\t\u003cli aria-roledescription=\"slide\" class=\"a-carousel-card apm-brand-story-carousel-card-5\"\u003e\n\t\u003cdiv cel_widget_id=\"aplus-brand-story-card-1-four-asin\" class=\"celwidget aplus-module brand-story-card-1-four-asin aplus-brand-story-card\"\u003e\n\t\u003cdiv class=\"apm-brand-story-card\"\u003e\n\t\u003cdiv class=\"apm-brand-story-image-grid\" role=\"list\"\u003e\n\t\u003cdiv class=\"apm-brand-story-image-grid-item\" role=\"listitem\"\u003e \u003c\/div\u003e\n\n\t\u003cdiv class=\"apm-brand-story-image-grid-item\" role=\"listitem\"\u003e \u003c\/div\u003e\n\n\t\u003cdiv class=\"apm-brand-story-image-grid-item\" role=\"listitem\"\u003e \u003c\/div\u003e\n\n\t\u003cdiv class=\"apm-brand-story-image-grid-item\" role=\"listitem\"\u003e \u003c\/div\u003e\n\t\u003c\/div\u003e\n\n\t\u003cdiv class=\"apm-brand-story-text \"\u003e\n\t\u003ch3\u003eBoho Linen Shower Curtains\u003c\/h3\u003e\n\n\t\u003cp class=\"apm-brand-story-stores-link\"\u003e \u003c\/p\u003e\n\t\u003c\/div\u003e\n\t\u003c\/div\u003e\n\n\t\u003cdiv style=\"clear:both\"\u003e \u003c\/div\u003e\n\t\u003c\/div\u003e\n\t\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"a-carousel-col a-carousel-right\"\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\u003c\/div\u003e\n\n\u003cdiv class=\"aplus-brandstory-pagination\"\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\n\u003cdiv class=\"a-section a-spacing-large bucket\" id=\"aplus\"\u003e\n\u003chr class=\"bucketDivider\" noshade size=\"1\"\u003e\n\u003cstyle type=\"text\/css\"\u003e.aplus-v2 .aplus-content-wrapper {\n        position: relative;\n        overflow: hidden;\n    }\n\n    .aplus-v2 .container-with-background-image {\n        width: 100%;\n        height: 100%;\n        background-repeat: no-repeat;\n        background-size: cover;\n    }\n\u003c\/style\u003e\n\u003cscript type=\"application\/javascript\"\u003e\n    function logShoppableMetrics(moduleName, showsAddToCart) {\n        if (window.ue \u0026amp;\u0026amp; window.ue.count) {\n            window.ue.count(\"aplus:shoppable:\" + moduleName + \":addToCart\", showsAddToCart ? 1 : 0);\n        }\n    }\n\u003c\/script\u003e\n\u003ch2\u003eProduct description\u003c\/h2\u003e\n\n\u003cdiv lang=\"en_US\"\u003e\n\u003cdiv cel_widget_id=\"aplus\" 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 \u0026amp;\u0026amp; event.keyCode === ENTER_KEY_CODE;\n        const isSpace = isKeydown \u0026amp;\u0026amp; event.keyCode === SPACE_KEY_CODE;\n        const isEsc = isKeydown \u0026amp;\u0026amp; event.keyCode === ESCAPE_KEY_CODE;\n\n        if (isClick || isEnter || isSpace) {\n            handleClickOrEnterOrSpace();\n        } else if (isEsc) {\n            handleEsc(event);\n        }\n    }\n\n    \/**\n    * Function to handle esc key event.\n    * @param {Event} event - The event object.\n    *\/\n    function handleEsc(event) {\n        event.target.blur()  \/\/ force remove focus\n    }\n\n\u003c\/script\u003e\n\u003cdiv class=\"aplus-content-wrapper\"\u003e\n\u003cdiv cel_widget_id=\"aplus-premium-module-2-fullbackground-image\" 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\u003cdiv\u003e\u003cimg alt=\"QIYI Modern Luxury Shower Curtain Set\" cke-id=\"img79\" referrerpolicy=\"no-referrer\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/f31fa439-34d9-4d8b-865c-a0b983ce127d.__CR0,0,2928,1200_PT0_SX1464_V1___.jpg\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"a-section a-text-center\"\u003e \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv cel_widget_id=\"aplus-premium-module-2-fullbackground-image\" 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\u003cdiv\u003e\u003cimg alt=\"3-IN-1 waffle Shower Curtain Set with PEVA liner and double sided plastic hooks\" cke-id=\"img80\" referrerpolicy=\"no-referrer\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/e7404d0b-7382-41b6-8cbd-beb81614108b.__CR0,0,2928,1200_PT0_SX1464_V1___.jpg\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"a-section a-text-center\"\u003e \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv cel_widget_id=\"aplus-premium-module-13-carousel\" class=\"celwidget aplus-module premium-module-13-carousel aplus-premium\"\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 aria-label=\"Featured content carousel\" aria-roledescription=\"carousel\" class=\"a-begin a-carousel-container a-carousel-static a-carousel-display-single a-carousel-transition-slideCircular\" data-a-carousel-options='{\"peek_percentage\":0,\"minimum_gutter_width\":0,\"show_partial_next\":false,\"name\":\"premium-aplus-13-carousel-2\"}' data-a-display-strategy=\"single\" data-a-transition-strategy=\"slideCircular\" id=\"premium-aplus-13-carousel-2-id\" role=\"region\"\u003e\n\u003cinput autocomplete=\"on\" class=\"a-carousel-firstvisibleitem\" type=\"hidden\"\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 \u003c\/div\u003e\n\n\u003cdiv class=\"a-carousel-col a-carousel-center\"\u003e\n\u003cdiv aria-roledescription=\"slide\" class=\"a-carousel-viewport\"\u003e\n\u003col class=\"a-carousel\" role=\"list\"\u003e\n\t\u003cli aria-roledescription=\"slide\" aria-setsize=\"3\" class=\"a-carousel-card aplus-carousel-element\"\u003e\n\t\u003cdiv id=\"premium-aplus-13-carousel-2-slide-0\"\u003e\n\t\u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\u003cdiv\u003e\u003cimg alt=\"waffle shower curtain\" cke-id=\"img82\" referrerpolicy=\"no-referrer\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/e58e8fc3-b840-4497-90ed-0ff6221b543c.__CR0,0,2928,1200_PT0_SX1464_V1___.jpg\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\t\u003c\/div\u003e\n\t\u003c\/li\u003e\n\t\u003cli aria-roledescription=\"slide\" aria-setsize=\"3\" class=\"a-carousel-card aplus-carousel-element\"\u003e\n\t\u003cdiv id=\"premium-aplus-13-carousel-2-slide-1\"\u003e\n\t\u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\u003cdiv\u003e\u003cimg alt=\"PEVA shower curtain liner\" cke-id=\"img83\" referrerpolicy=\"no-referrer\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/af4aab83-fbba-493d-8b39-f2a16a02a913.__CR0,0,2928,1200_PT0_SX1464_V1___.jpg\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\t\u003c\/div\u003e\n\t\u003c\/li\u003e\n\t\u003cli aria-roledescription=\"slide\" aria-setsize=\"3\" class=\"a-carousel-card aplus-carousel-element\"\u003e\n\t\u003cdiv id=\"premium-aplus-13-carousel-2-slide-2\"\u003e\n\t\u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\u003cdiv\u003e\u003cimg alt=\"double-sided plastic hooks\" cke-id=\"img84\" referrerpolicy=\"no-referrer\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/3c40e98f-ea4f-45f2-ae81-6533c1f28a15.__CR0,0,2928,1200_PT0_SX1464_V1___.jpg\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\t\u003c\/div\u003e\n\t\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"a-carousel-col a-carousel-right\"\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\n\u003cdiv class=\"a-section a-spacing-none aplus-pagination-wrapper\"\u003e\n\u003cscript\u003e\n\nP.now(\"premium-aplus-13-carousel-2\").execute(\"init-pagination-carousel\", function(init) {\n    if (init) {\n        return;\n    }\n    P.register(\"premium-aplus-13-carousel-2\", function() {\n        return function() {\n            P.when(\"A\", \"jQuery\", \"a-carousel-framework\", \"ready\").execute(\"paginate-carousel\", function (A, $, framework) {\n                const ENTER_KEY_CODE = 13;\n                const ESCAPE_KEY_CODE = 27;\n                const LEFT_ARROW_KEY = 37;\n                const RIGHT_ARROW_KEY = 39;\n                const HOME_KEY = 36;\n                const END_KEY = 35;\n\n                var moduleId = \"2\";\n                var carouselName = \"premium-aplus-13-carousel-2\";\n                var paginationAction = \"aplus-pagination-dot-action-\" + moduleId + \"-\" + carouselName;\n                var paginationGroup = \"#aplus-pagination-group-\" + moduleId + \"-\" + carouselName;\n\n                \/* If the carousel goes to a new page *\/\n                A.on(\"a:carousel:\"+carouselName+\":change:pageNumber\", function (data) {\n                    A.$(paginationGroup+\" .carousel-slider-circle\").removeClass(\"aplus-carousel-active\").attr('aria-selected', 'false').attr('tabindex', -1)\n                                    .eq(data.newValue - 1).addClass(\"aplus-carousel-active\").attr('aria-selected', 'true').attr('tabindex', 0);\n                });\n\n                function syncPaginationDotsWithCarouselPages(numPages) {\n                    const parentElement = document.querySelector(paginationGroup);\n                    if (parentElement \u0026amp;\u0026amp; 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 \u0026amp;\u0026amp; event.$event.keyCode === ENTER_KEY_CODE;\n                            var isEsc = isKeydown \u0026amp;\u0026amp; event.$event.keyCode === ESCAPE_KEY_CODE;\n                            var isLeftArrow = isKeydown \u0026amp;\u0026amp; event.$event.keyCode === LEFT_ARROW_KEY;\n                            var isRightArrow = isKeydown \u0026amp;\u0026amp; event.$event.keyCode === RIGHT_ARROW_KEY;\n                            var isHome = isKeydown \u0026amp;\u0026amp; event.$event.keyCode === HOME_KEY;\n                            var isEnd = isKeydown \u0026amp;\u0026amp; event.$event.keyCode === END_KEY;\n\n                            if (isClick || isEnter) {\n                                var data = event.data;\n                                carousel.gotoPage(data.page);\n                            } else if (isEsc) {\n                                event.$target.blur();\n                            } else if (isLeftArrow || isRightArrow || isHome || isEnd) {\n                                event.$event.preventDefault();\n                                const dots = A.$(paginationGroup + \" .carousel-slider-circle\");\n                                const currentIndex = dots.index(event.$target);\n                                let nextIndex;\n\n                                if (isLeftArrow) {\n                                    nextIndex = currentIndex \u003e 0 ? currentIndex - 1 : dots.length - 1;\n                                } else if (isRightArrow) {\n                                    nextIndex = currentIndex \u003c dots.length - 1 ? currentIndex + 1 : 0;\n                                } else if (isHome) {\n                                    nextIndex = 0;\n                                } else if (isEnd) {\n                                    nextIndex = dots.length - 1;\n                                }\n\n                                dots.eq(nextIndex).focus();\n                                carousel.gotoPage(nextIndex + 1);\n                            }\n                        });\n                    } catch (e) {\n                        P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources');\n                    }\n                });\n            });\n        }\n    });\n});\n\u003c\/script\u003e\n\u003cdiv class=\"aplus-mantle aplus-module\"\u003e\n\u003cdiv class=\"aplus-carousel-nav\"\u003e\n\u003cul aria-label=\"tablist-section\" class=\"aplus-pagination-dots\" id=\"aplus-pagination-group-2-premium-aplus-13-carousel-2\" role=\"tablist\"\u003e\n\t\u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan aria-controls=\"premium-aplus-13-carousel-2-slide-0\" aria-label=\"slide-1\" aria-selected=\"true\" class=\"a-declarative carousel-slider-circle aplus-display-inline-block aplus-carousel-active\" data-action=\"aplus-pagination-dot-action-2-premium-aplus-13-carousel-2\" data-aplus-pagination-dot-action-2-premium-aplus-13-carousel-2='{\"page\": 1}' role=\"tab\" tabindex=\"0\"\u003e \u003c\/span\u003e\u003c\/li\u003e\n\t\u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan aria-controls=\"premium-aplus-13-carousel-2-slide-1\" aria-label=\"slide-2\" aria-selected=\"false\" class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" data-action=\"aplus-pagination-dot-action-2-premium-aplus-13-carousel-2\" data-aplus-pagination-dot-action-2-premium-aplus-13-carousel-2='{\"page\": 2}' role=\"tab\" tabindex=\"-1\"\u003e \u003c\/span\u003e\u003c\/li\u003e\n\t\u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan aria-controls=\"premium-aplus-13-carousel-2-slide-2\" aria-label=\"slide-3\" aria-selected=\"false\" class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" data-action=\"aplus-pagination-dot-action-2-premium-aplus-13-carousel-2\" data-aplus-pagination-dot-action-2-premium-aplus-13-carousel-2='{\"page\": 3}' 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\n\u003cdiv class=\"a-section a-text-center\"\u003e \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv cel_widget_id=\"aplus-premium-module-2-fullbackground-image\" 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\u003cdiv\u003e\u003cimg alt=\"easy to clean\" cke-id=\"img85\" referrerpolicy=\"no-referrer\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/50cc7bfb-5b8b-498f-be8f-9e895fc2b42d.__CR0,0,2928,1200_PT0_SX1464_V1___.jpg\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"a-section a-text-center\"\u003e \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv cel_widget_id=\"aplus-premium-module-2-fullbackground-image\" 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\u003cdiv\u003e\u003cimg alt=\"size and color information\" cke-id=\"img86\" referrerpolicy=\"no-referrer\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/7ace2d37-6cc2-42c6-b6cb-c48b1a09fa90.__CR0,0,2928,1200_PT0_SX1464_V1___.jpg\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"a-section a-text-center\"\u003e \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv cel_widget_id=\"aplus-premium-module-11-faq\" class=\"celwidget aplus-module premium-module-11-faq aplus-premium\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-11\"\u003e\n\u003cdiv class=\"a-section a-spacing-none aplus-container-2 faqs-container 5\" data-faq-block=\"5\"\u003e\n\u003cul class=\"faq-list\"\u003e\n\t\u003cli class=\"faq-block\" id=\"faq-qa-pair-0\"\u003e\n\t\u003ch3\u003e\u003cspan aria-controls=\"faq-0\" aria-expanded=\"false\" data-faq-question=\"\" role=\"button\" tabindex=\"0\"\u003e \u003c\/span\u003e\u003c\/h3\u003e\n\n\t\u003cp class=\"aplus-question aplus-p1\"\u003e\u003cspan aria-controls=\"faq-0\" aria-expanded=\"false\" data-faq-question=\"\" role=\"button\" tabindex=\"0\"\u003eWill the waffle fabric shower curtain shrink after washing? \u003c\/span\u003e\u003c\/p\u003e\n\t\u003cspan aria-controls=\"faq-0\" aria-expanded=\"false\" data-faq-question=\"\" role=\"button\" tabindex=\"0\"\u003e\u003cspan aria-label=\"\" class=\"faq-arrow\"\u003e \u003c\/span\u003e \u003c\/span\u003e\n\n\t\u003cp class=\"aplus-answer aplus-p2\"\u003eNo. The waffle fabric curtain is designed to stay true to size after normal cold-water machine washing. Simply remove it from the liner and hooks, wash it in cold water, and hang it back to dry.\u003c\/p\u003e\n\t\u003c\/li\u003e\n\t\u003cli class=\"faq-block\" id=\"faq-qa-pair-1\"\u003e\n\t\u003ch3\u003e\u003cspan aria-controls=\"faq-1\" aria-expanded=\"false\" data-faq-question=\"\" role=\"button\" tabindex=\"0\"\u003e \u003c\/span\u003e\u003c\/h3\u003e\n\n\t\u003cp class=\"aplus-question aplus-p1\"\u003e\u003cspan aria-controls=\"faq-1\" aria-expanded=\"false\" data-faq-question=\"\" role=\"button\" tabindex=\"0\"\u003eWill the PEVA liner become cloudy over time? \u003c\/span\u003e\u003c\/p\u003e\n\t\u003cspan aria-controls=\"faq-1\" aria-expanded=\"false\" data-faq-question=\"\" role=\"button\" tabindex=\"0\"\u003e\u003cspan aria-label=\"\" class=\"faq-arrow\"\u003e \u003c\/span\u003e \u003c\/span\u003e\n\n\t\u003cp class=\"aplus-answer aplus-p2\"\u003eNo. The PEVA liner is designed for long-term bathroom use and helps resist clouding and tearing under normal use. Wipe it clean and keep the bathroom ventilated after showering for best results.\u003c\/p\u003e\n\t\u003c\/li\u003e\n\t\u003cli class=\"faq-block\" id=\"faq-qa-pair-2\"\u003e\n\t\u003ch3\u003e\u003cspan aria-controls=\"faq-2\" aria-expanded=\"false\" data-faq-question=\"\" role=\"button\" tabindex=\"0\"\u003e \u003c\/span\u003e\u003c\/h3\u003e\n\n\t\u003cp class=\"aplus-question aplus-p1\"\u003e\u003cspan aria-controls=\"faq-2\" aria-expanded=\"false\" data-faq-question=\"\" role=\"button\" tabindex=\"0\"\u003eAre the hooks strong and durable? \u003c\/span\u003e\u003c\/p\u003e\n\t\u003cspan aria-controls=\"faq-2\" aria-expanded=\"false\" data-faq-question=\"\" role=\"button\" tabindex=\"0\"\u003e\u003cspan aria-label=\"\" class=\"faq-arrow\"\u003e \u003c\/span\u003e \u003c\/span\u003e\n\n\t\u003cp class=\"aplus-answer aplus-p2\"\u003eYes. The clear plastic hooks are sturdy, flexible, rust-free, and designed to hold both the fabric curtain and PEVA liner securely without breaking. They are also more pet-friendly than sharp metal hooks.\u003c\/p\u003e\n\t\u003c\/li\u003e\n\t\u003cli class=\"faq-block\" id=\"faq-qa-pair-3\"\u003e\n\t\u003ch3\u003e\u003cspan aria-controls=\"faq-3\" aria-expanded=\"false\" data-faq-question=\"\" role=\"button\" tabindex=\"0\"\u003e \u003c\/span\u003e\u003c\/h3\u003e\n\n\t\u003cp class=\"aplus-question aplus-p1\"\u003e\u003cspan aria-controls=\"faq-3\" aria-expanded=\"false\" data-faq-question=\"\" role=\"button\" tabindex=\"0\"\u003eWill the weighted hem or magnets come loose after washing? \u003c\/span\u003e\u003c\/p\u003e\n\t\u003cspan aria-controls=\"faq-3\" aria-expanded=\"false\" data-faq-question=\"\" role=\"button\" tabindex=\"0\"\u003e\u003cspan aria-label=\"\" class=\"faq-arrow\"\u003e \u003c\/span\u003e \u003c\/span\u003e\n\n\t\u003cp class=\"aplus-answer aplus-p2\"\u003eThe fabric curtain's weighted hem is designed to maintain its shape with proper care. The PEVA liner should be wiped clean instead of machine washed to help protect the bottom magnets.\u003c\/p\u003e\n\t\u003c\/li\u003e\n\t\u003cli class=\"faq-block\" id=\"faq-qa-pair-4\"\u003e\n\t\u003ch3\u003e\u003cspan aria-controls=\"faq-4\" aria-expanded=\"false\" data-faq-question=\"\" role=\"button\" tabindex=\"0\"\u003e \u003c\/span\u003e\u003c\/h3\u003e\n\n\t\u003cp class=\"aplus-question aplus-p1\"\u003e\u003cspan aria-controls=\"faq-4\" aria-expanded=\"false\" data-faq-question=\"\" role=\"button\" tabindex=\"0\"\u003eDoes the double shower curtain provide better privacy? \u003c\/span\u003e\u003c\/p\u003e\n\t\u003cspan aria-controls=\"faq-4\" aria-expanded=\"false\" data-faq-question=\"\" role=\"button\" tabindex=\"0\"\u003e\u003cspan aria-label=\"\" class=\"faq-arrow\"\u003e \u003c\/span\u003e \u003c\/span\u003e\n\n\t\u003cp class=\"aplus-answer aplus-p2\"\u003eYes. The waffle fabric curtain and PEVA liner create a dual-layer setup that provides better coverage and light blocking than a single shower curtain or liner.\u003c\/p\u003e\n\t\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\n\u003c\/div\u003e\n","brand":"CAMPBELLVERTEXDYNAMICSLLC","offers":[{"title":"Default Title","offer_id":51466314285196,"sku":null,"price":28.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0779\/0542\/8620\/files\/91tNk-CkobL._AC_SL1500.jpg?v=1784181432","url":"https:\/\/campbellvertexdynamicsllc.com\/products\/qiyi-3-in-1-shower-curtain-set-ivory-waffle-shower-curtain-and-liner-set-with-12-double-shower-curtain-hooks-waterproof-fabric-hotel-bathroom-curtain-with-peva-liner-clear-plastic-rings-72-x-72","provider":"CAMPBELLVERTEXDYNAMICSLLC","version":"1.0","type":"link"}