{"product_id":"cloud-sectional-l-shape-chaise-sofa","title":"96\" Cloud Sectional Couch with L-Shape Chaise,Modern Modular Sofa with Deep Seat, No Assembly Required","description":"\u003cstyle\u003e\n  @media only screen and (max-width: 600px) {\n      .image-container {\n          display: none;\n          \n      }\n\n      .mobile-image-container {\n          margin: 0;\n          padding: 0;\n          list-style-type: none;\n          margin-left: 0 !important;\n          padding: 0 !important;\n      }\n\n      .mobile-image-container li {\n          width: 100%;\n          margin-bottom: 20px;\n      }\n\n      .mobile-image-container img {\n          width: 100%;\n          height: auto;\n          margin: 0px;\n      }\n  }\n\n  @media only screen and (min-width: 601px) {\n      .mobile-image-container {\n          display: none;\n       \n      }\n  }\n#collapse .content ul {\nlist-style-type: none;\n}\n#collapse .item:first-of-type b,\n#collapse .item:first-of-type strong {\nletter-spacing: normal;\n}\n\u003c\/style\u003e\n\u003cdiv class=\"customDetailBox card__section\" id=\"collapse\"\u003e\n\u003cdiv class=\"topTitle\"\u003ePRODUCT OVERVIEW\u003c\/div\u003e\n\u003cdiv class=\"main\"\u003e\n\u003cdiv class=\"item active\"\u003e\n\u003cdiv class=\"itemTitle\"\u003eFEATURES\u003cimg class=\"iconAngel\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0115\/5281\/7252\/files\/angel_2e647720-fd85-403a-a2fa-781e6f408038.png?v=1769597050\" alt=\"\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan style=\"color: #000000;\"\u003e\u003cstrong\u003e[ Modular Sectional Sofa\u003c\/strong\u003e\u003cstrong\u003e ]\u003c\/strong\u003e Discover the versatility of our modern modular sectional sofa, thoughtfully designed for flexible configurations that adapt effortlessly to your space and lifestyle. Its clean, minimalist aesthetic brings a refined look to any living room while maintaining everyday comfort\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan style=\"color: #000000;\"\u003e\u003cstrong\u003e[ Comfy Chaise Couch\u003c\/strong\u003e\u003cstrong\u003e ]\u003c\/strong\u003e Experience elevated comfort with our interchangeable modular sofa, designed to deliver a spacious, cloud-like seating feel. Featuring an extra-deep 52\" lounge chaise, this couch invites you to stretch out and relax in effortless luxury. Built with high-resilience foam, it offers lasting support without sacrificing softness \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan style=\"color: #000000;\"\u003e\u003cstrong\u003e[ Plush Corduroy Fabric\u003c\/strong\u003e\u003cstrong\u003e ]\u003c\/strong\u003e Wrap yourself in the indulgent softness of our premium corduroy upholstery. Silky to the touch yet warm and inviting, this subtly luxurious fabric delivers year-round comfort. Its rich texture and soft sheen add visual depth while providing a cozy, soothing tactile experience in any season. \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan style=\"color: #000000;\"\u003e\u003cstrong\u003e[ No Assembly Required\u003c\/strong\u003e\u003cstrong\u003e ]\u003c\/strong\u003e Say goodbye to complicated furniture setup. Our modular cloud lounge arrives fully ready—simply unbox, gently tap each piece to restore its plush form, and watch it regain its full, photo-ready shape. Complete expansion may take up to 72 hours. Enjoy the pure simplicity of comfort without tools, instructions, or stress. \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan style=\"color: #000000;\"\u003e\u003cstrong\u003e[ Flexible Sofa Set\u003c\/strong\u003e\u003cstrong\u003e ]\u003c\/strong\u003e Designed for versatility, this modular floor sofa fits seamlessly into living rooms, apartments, bedrooms, guest spaces, and kids’ play areas. Its inviting, cushioned surface makes it a favorite for both relaxation and play. Thanks to its modular design, each piece moves easily through narrow hallways and tight doorways—ensuring every inch of your space is used beautifully\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"item active\"\u003e\n\u003cdiv class=\"itemTitle\"\u003eHIGHLIGHTS\u003cimg class=\"iconAngel\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0115\/5281\/7252\/files\/angel_2e647720-fd85-403a-a2fa-781e6f408038.png?v=1769597050\" alt=\"\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cul class=\"image-container\"\u003e\n\u003cli\u003e\u003cimg class=\"tupian\" alt=\"OVIOS L-Shaped Boneless Sofa\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0115\/5281\/7252\/files\/LBB_61.jpg?v=1771902353\"\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cimg class=\"tupian\" alt=\"OVIOS L-Shaped Boneless Sofa\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0115\/5281\/7252\/files\/LBB_65.jpg?v=1771902353\"\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cimg class=\"tupian\" alt=\"OVIOS L-Shaped Boneless Sofa\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0115\/5281\/7252\/files\/LBB_62.jpg?v=1771902353\"\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cimg class=\"tupian\" alt=\"OVIOS L-Shaped Boneless Sofa\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0115\/5281\/7252\/files\/LBB_64.jpg?v=1771902353\"\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cimg class=\"tupian\" alt=\"OVIOS L-Shaped Boneless Sofa\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0115\/5281\/7252\/files\/LBB_66.jpg?v=1771902353\"\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cimg class=\"tupian\" alt=\"OVIOS L-Shaped Boneless Sofa\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0115\/5281\/7252\/files\/LBB_63.jpg?v=1771902353\"\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cul class=\"mobile-image-container\"\u003e\n\u003cli\u003e\u003cimg class=\"tupian\" alt=\"OVIOS L-Shaped Boneless Sofa\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0115\/5281\/7252\/files\/LBB_67.jpg?v=1771902512\"\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cimg class=\"tupian\" alt=\"OVIOS L-Shaped Boneless Sofa\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0115\/5281\/7252\/files\/LBB_71.jpg?v=1771902514\"\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cimg class=\"tupian\" alt=\"OVIOS L-Shaped Boneless Sofa\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0115\/5281\/7252\/files\/LBB_68.jpg?v=1771902512\"\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cimg class=\"tupian\" alt=\"OVIOS L-Shaped Boneless Sofa\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0115\/5281\/7252\/files\/LBB_70.jpg?v=1771902514\"\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cimg class=\"tupian\" alt=\"OVIOS L-Shaped Boneless Sofa\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0115\/5281\/7252\/files\/LBB_72.jpg?v=1771902515\"\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cimg class=\"tupian\" alt=\"OVIOS L-Shaped Boneless Sofa\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0115\/5281\/7252\/files\/LBB_69.jpg?v=1771902513\"\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"item\"\u003e\n\u003cdiv class=\"itemTitle\"\u003eSHIPPING \u0026amp; RETURN\u003cimg class=\"iconAngel\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0115\/5281\/7252\/files\/angel_2e647720-fd85-403a-a2fa-781e6f408038.png?v=1769597050\" alt=\"\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cp\u003e\u003cb\u003eShipping time \u0026amp; delivery time\u003c\/b\u003e\u003c\/p\u003e\n\u003cp\u003eWe usually ship items within 24 - 48 hours after confirmed payment. (in business days)\u003c\/p\u003e\n\u003cp\u003eIn general, we ship via Fedex, average transit time is about 7 - 10 business days.\u003c\/p\u003e\n\u003cp\u003eIn rare cases due to unforeseen events, (e.g. extreme weather, unusual spikes, etc.), these shipment processing times may be delayed.\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003eFree shipping policy\u003c\/b\u003e\u003c\/p\u003e\n\u003cp\u003eAll of our items are FREE SHIPPING in normal cases (within the contiguous United States). You can get the items with no shipping cost. There is no other hidden charges or handling fees.\u003c\/p\u003e\n\u003cp\u003eIn a few special cases, you need to pay necessary cost of shipment, for example, return, exchange or some area. We ship only within the 48 contiguous United States.\u003c\/p\u003e\n\u003cp\u003eWe do not ship to Alaska, Hawaii, US protectorates (e.g., Puerto Rico), P.O. boxes, or APO\/FPO addresses.\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003eAbout tracking logistics information\u003c\/b\u003e\u003c\/p\u003e\n\u003cp\u003eWe’ll send you the delivery time by email. For any further information, please feel free to contact us: support@ovios-furniture.com\u003c\/p\u003e\n\u003cp\u003eIf you want to change or cancel your order, please check whether the order has already been processed. Once the item leaves our warehouse, it can not be canceled or changed.\u003c\/p\u003e\n\u003cp\u003eKeep in mind:\u003c\/p\u003e\n\u003cp\u003e1. Tracking is not available for orders that are in a Processing status\u003c\/p\u003e\n\u003cp\u003e2. Tracking can take up to 72 hours to update after an order is shipped\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003eAbout damaged packages and defective items upon arrival\u003c\/b\u003e\u003c\/p\u003e\n\u003cp\u003eWhen you receive your item, please check your package and item carefully. If there is something wrong, the following steps are advised:\u003c\/p\u003e\n\u003cp\u003e1. Take pictures reflecting the damage or defect clearly.\u003c\/p\u003e\n\u003cp\u003e2. Then please email us at support@ovios-furniture.com immediately and attach the photos.\u003c\/p\u003e\n\u003cp\u003e3. We will contact you and try our best to find the best solution.\u003c\/p\u003e\n\u003cp\u003e4. Attention please, do not throw away the boxes or packaging materials, otherwise, your request of return or exchange will not be accepted.\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003eAdditional Information\u003c\/b\u003e\u003c\/p\u003e\n\u003cp\u003eWe process orders Monday-Friday (excluding holidays). If you place your order after the cutoff times, we’ll process and ship the order the next business day. We do not deliver on Sundays or holidays.\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003eAbout tracking information stagnation\u003c\/b\u003e\u003c\/p\u003e\n\u003cp\u003eWith the surge in demand from shipping companies in the US due to high demand, we are seeing an increase in tracking and scanning issues where shipping companies are picking up shipments from warehouses but the tracking tags are not being scanned correctly when the shipping companies pick them up. Our carriers are working to eliminate tracking issues and delivery delays.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"item\"\u003e\n\u003cdiv class=\"itemTitle\"\u003eSERVICE \u0026amp; WARRANTY\u003cimg class=\"iconAngel\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0115\/5281\/7252\/files\/angel_2e647720-fd85-403a-a2fa-781e6f408038.png?v=1769597050\" alt=\"\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cp\u003e\u003cb\u003eDear customers\u003c\/b\u003e\u003c\/p\u003e\n\u003cp\u003ewe guarantee that all items we sell have undergone strict quality control inspections to ensure you have an excellent product experience. At the same time, our warranty policy can make you rest assured to buy furniture products from us. All items sold by OVIOS are covered by the following comprehensive product warranties.\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003e1.Customer Service\u003c\/b\u003e\u003c\/p\u003e\n\u003cp\u003eOur customer service team will respond within 24 hours. \u003cb\u003eWe product comes with a one-year warranty.\u003c\/b\u003e You can contact our exclusive OVIOS customer service team for assistance before and after your purchase.\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003e2.Accepted Return\u003c\/b\u003e\u003c\/p\u003e\n\u003cp\u003e30 Day Unconditional Refund Guarantee for Unopened \u0026amp; Unused.\u003c\/p\u003e\n\u003cp\u003eIf you are not satisfied with your purchase, or for whatever reason, You no longer want this product within 30 days after receiving it, you may contact us for a return and refund. Kindly note that in such cases the return shipping fee is the customer's responsibility and is non-refundable. Items MUST be returned in their original packaging, unused and unopened in order to qualify for a product refund.\u003c\/p\u003e\n\u003cp\u003eThe customers should pay for actual cost of return shipping because of their remorse. But don't need to pay for defective producets return. And there is no restocking fee. These fees need to be settled in U.S. dollars.\u003c\/p\u003e\n\u003cp\u003eNote that the returns shipping fee is non-refundable and products must be returned unopened and unused for a refund.\u003c\/p\u003e\n\u003cp\u003eIf the boxes has been opened, the buyer needs to send a picture and confirm with the seller. Only when the confirmation does not affect the normal use can the return be supported, and the buyer needs to afford a certain amount of goods loss charge.\u003c\/p\u003e\n\u003cp\u003ePlease ensure to return the item with its original packaging and accessories in the same condition as when you received it.\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003e3.Not support the return\u003c\/b\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003e(1)\u003c\/b\u003e Return is not accepted\u003c\/p\u003e\n\u003cp\u003ewhen damage is caused by unauthorized maintenance, misusing, collision, negligence, abuse, etc. \u003cb\u003eReturns will not be accepted for OPEN BOX products.\u003c\/b\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003e(2)\u003c\/b\u003e Arrived damage\u003c\/p\u003e\n\u003cp\u003eIf the item you have received is defective or damaged, contact our customer service at the first time and provide us with the order number and the photos or a video of the defective or damaged item in 7 days. In this case, after our checking, we can give a full refund.\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003e(3)\u003c\/b\u003e Missing part\u003c\/p\u003e\n\u003cp\u003eIf your product parts damaged or missing, we can send the new parts to you or partially refund you. If the part affects product function or use, you can't repair it by yourself or the local technique person, and we will send a new item with you or a full refund.\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003e(4)\u003c\/b\u003e Doesn't work or defective\u003c\/p\u003e\n\u003cp\u003eWhen you received the product that doesn't work, you can ask our customer service for help, we'll give you the related technical reply; if it doesn't work still, you can ask for an refund. When you received the product is defective, and you can ask our customer service to give you technical support or solution, if you can repair it by yourself or local store, we will provide you with some compensation.\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003e(5)\u003c\/b\u003e Incorrect Package Sent\u003c\/p\u003e\n\u003cp\u003eIf the item you have received differs completely from the one you ordered, please do not hesitate to contact our customer service and to provide us with the following proofs in 7 days: Photos or a video of the incorrect item. We will send the new item to you.\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003e4.Return Confirmation\u003c\/b\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003e(1)\u003c\/b\u003e \u003cb\u003eContact us support@ovios-furniture.com\u003c\/b\u003e to get a return shipping label. submit order , a clear picture or video, and shipping packaging to confirm your return is accepted.\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003e(2)\u003c\/b\u003e When returning your package, please make sure the item is in good condition with all accessories inside. Affix the return shipping label that we provided to the package, ship it to the address our customer service sent you.\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003e5.Refund and Compensation Process\u003c\/b\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003e(1)\u003c\/b\u003e PayPal refunds may take up to 24 hours to process and appear in your account.\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003e(2)\u003c\/b\u003e Credit card refunds will take between 7-14 business days to appear in your account. This delay depends entirely on your credit card company and any intermediaries.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cb\u003eNote:\u003c\/b\u003e The price of the products on our website will fluctuate with the cost, and we will not refund any difference caused by this.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n@font-face {\n  font-family: 'arial'; \n  src: url('\/\/purpleleafshop.com\/cdn\/shop\/t\/172\/assets\/arial.ttf?v=96637986765718172581767866644') format('truetype');\n}\n.product_desciption_custom {\n  font-family: \"arial\" !important;\n}\n.customTabs {\n  li {\n    position: relative;\n    padding: 0 15px;\n  }\n  li::before {\n    content: \"\";\n    width: 1px;\n    height: 50%;\n    position: absolute;\n    left: 0;\n    top: 50%;\n    transform: translateY(-50%);\n    background: #000\n  }\n  li::after {\n    content: \"\";\n    width: 1px;\n    height: 50%;\n    position: absolute;\n    right: 0;\n    top: 50%;\n    transform: translateY(-50%);\n    background: #000\n  }\n}\n.customTop {\n  width: 127px!important;\n  flex-direction: column;\n  right: 10px;\n  bottom: 100px;\n  text-align: right;\n  display: block !important;\n  position: fixed;\n  z-index: 50;\n  cursor: pointer;\n}\n.customStickyBtn {\n  z-index: 50;\n  justify-content: space-evenly;\n  background: #fff;\n  \/* width: 127px!important;\n  flex-direction: column;\n  right: 10px;\n  bottom: 50px;\n  text-align: right;\n  display: block !important;\n  position: fixed;\n  z-index: 50; *\/\n\n}\n.customStickyBtn .customCart, .customStickyBtn .customBuy {\n    width: 35%;\n    \/* width: 127px;\n    height: 36px; *\/\n    color: #fff !important;\n    background-color: #7c189f !important;\n    padding: 0;\n    font-size: 14px;\n    border-radius: 5px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n}\n.customStickyBtn .customCart img, .customStickyBtn .customBuy img {\n  height: 25px;\n  width: fit-content;\n  margin-right: 5px;\n}\n\u003c\/style\u003e\n\u003cstyle\u003e\n.customDetailBox b,.customDetailBox strong {\n  letter-spacing: 1px;\n}\n#collapse {\n    width: 100%;\n    margin: 10px auto;\n    list-style-type: none;\n    color: #000;\n}\n\n.topTitle {\n    font-size: 20px;\n    font-weight: bold;\n    margin-bottom: 20px;\n    letter-spacing: 1px;\n}\n\n.item {\n    padding: 15px 0;\n    position: relative;\n}\n\n.item::after {\n    content: \"\";\n    height: 1px;\n    width: 100%;\n    background-color: #000;\n    position: absolute;\n    bottom: 0;\n    left: 50%;\n    transform: translateX(-50%);\n}\n\n.itemTitle {\n    font-weight: bold;\n    font-size: 16px;\n    position: relative;\n    display: flex;\n    align-items: center;\n    cursor: pointer;\n    letter-spacing: 1px;\n}\n\n.iconAngel {\n    width: auto!important;\n    margin: 0 0 0 5px !important;\n    transform: rotate(-90deg);\n    transition: all .3s;\n}\n\n.tableCustom {\n  width: max-content!important;\n  margin-right: 1px;\n  border-collapse: separate;\n}\n\n.tableCustom td, .tableCustom th {\n  padding: 20px 32px;\n  text-align: left;\n}\n\n.tableCustom tr {\n  border-top: none!important;\n}\n\n.productSizeImgBox {\n    display: flex;\n    overflow-x: scroll;\n}\n\n.productSizeImgBox img, .productSizeImgBox img {\n    box-shadow: 0 0 8px 0px #d5d5d5;\n}\n\n\n\n.content {\n    font-size: 15px;\n    margin-top: 8px;\n    height: 0;\n    overflow: hidden;\n    transition: all .3s;\n    will-change: height;\n}\n\n\n.content img {\n    width: 100%;\n  margin: 0 0 10px 0;\n}\n\n.item.active .iconAngel {\n    transform: rotate(0deg);\n}\n\n.item.active .content {\n    height: auto;\n}\n\n\n.contrast {\n    width: 100%;\n    padding-bottom: 30px;\n    overflow: hidden;\n}\n\n.contrast .title {\n    font-weight: bold;\n    font-size: 20px;\n    color: #000000;\n    margin-top: 53px;\n}\n\n.mainBox {\n    margin-top: 30px;\n    display: flex;\n    position: relative;\n    width: 100%;\n    overflow-x: scroll;\n}\n\n.leftBox {\n    display: flex;\n    position: sticky;\n    left: 0;\n    z-index: 4;\n}\n\n.itemBox .inBox {\n    width: 270px;\n    height: 345px;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    background-color: #fff;\n}\n\n.itemBox.border {\n    border: 1px solid #000;\n}\n\n.itemBox.center .bottomContent div {\n    justify-content: center;\n}\n\n.imgBox {\n    width: 215px;\n    height: 209px;\n    img {\n      margin: 0!important;\n    }\n}\n\n.pTitle {\n    margin-top: 40px;\n    font-weight: bold;\n    font-size: 14px;\n    color: #000000;\n}\n\n.pBtn {\n    width: 90px;\n    height: 31px;\n    margin-top: 3px;\n    background: #7B189F;\n    border-radius: 5px;\n    font-weight: 400;\n    font-size: 12px;\n    color: #FFFFFF!important;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    text-decoration: none!important;\n}\n\n.bottomContent div {\n    height: 52px;\n    background: #F0F0F0;\n    display: flex;\n    align-items: center;\n    padding: 0 20px;\n    \/* font-family: OpenSans; *\/\n    font-weight: 400;\n    font-size: 14px;\n    color: #000000;\n}\n\n.bottomContent div.deep {\n    background: #DADADA;\n}\n\n.rightBox {\n    display: flex;\n}\n\n@media screen and (max-width: 768px) {\n    .contrast {\n      padding: 0;\n    }\n    .leftBox {\n        width: 50%;\n        box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, .5);\n    }\n    .content .boxp{\n      text-align: justify;\n    }\n    .content p {\n      text-align: justify;\n    }\n    .productSizeImgBox .mobile-image-container {\n        display: flex;\n    }\n    .itemBox {\n        flex-shrink: 0;\n        width: 100%;\n    }\n    .itemBox .inBox {\n        width: 100%;\n        height: 210px;\n        background-color: transparent;\n    }\n    .leftBox .itemBox:nth-child(1) {\n        position: absolute;\n        background: transparent;\n        left: 0;\n        top: 0;\n    }\n    .leftBox .itemBox:nth-child(1) .bottomContent \u003e div {\n        background-color: transparent;\n        align-items: start;\n        font-weight: bold;\n        padding-top: 0px;\n        height: 43px;\n    }\n    .imgBox {\n        width: 100%;\n        height: 145px;\n    }\n    .imgBox img {\n      margin: 0 auto !important;\n      height: 100%;\n    }\n    .pBtn {\n      height: 25px;\n    }\n    .pTitle {\n        margin-top: initial;\n        padding: 0 5px;\n        text-align: center;\n        line-height: normal;\n    }\n    .bottomContent div {\n        height: 30px;\n        background: #F0F0F0;\n        padding: 13px 5px 4px 5px;\n        \/* font-family: OpenSans; *\/\n        font-weight: 400;\n        font-size: 12px;\n        color: #000000;\n        box-sizing: content-box !important;\n        line-height: normal;\n        overflow: hidden;\n        text-overflow: ellipsis;\n        display: -webkit-box;\n        -webkit-line-clamp: 2;\n        -webkit-box-orient: vertical;\n        overflow-wrap: break-word;\n    }\n    .rightBox {\n        display: flex;\n        overflow: scroll;\n        width: 50%;\n    }\n}\n@media screen and (min-width: 768px) {\n    .productSizeImgBox .image-container {\n        display: flex;\n    }\n    .tableCustom td:first-child, .tableCustom th:first-child {\n        position: sticky;\n        left: 0px;\n        z-index: 2;\n        background-color: #FFFFFF;\n    }\n}\n\u003c\/style\u003e\n\u003cstyle\u003e\n@media only screen and (max-width: 600px) {\n    .image-container {\n        display: none;\n        \n    }\n\n    .mobile-image-container {\n        margin: 0;\n        padding: 0;\n        list-style-type: none;\n        margin-left: 0 !important;\n        padding: 0 !important;\n    }\n\n    .mobile-image-container li {\n        width: 100%;\n        margin-bottom: 20px;\n    }\n\n    .mobile-image-container img {\n        width: 100%;\n        height: auto;\n    }\n}\n\n@media only screen and (min-width: 601px) {\n    .mobile-image-container {\n        display: none;\n        \n    }\n}\n\u003c\/style\u003e\n\u003cstyle\u003e\n.swiperTitle {\n  font-size: 24px;\n  font-weight: bold;\n  text-align: center\n}\n.carousel-section {\n  width: 100%;\n  max-width: 1464px;\n  margin: 30px auto;\n  position: relative;\n}\n\n.carousel-container {\n  position: relative;\n  overflow: hidden;\n}\n\n.carousel-track {\n  display: flex;\n  transition: transform 0.5s ease-in-out;\n}\n\n.carousel-img {\n  min-width: 100%;\n  object-fit: cover;\n}\n\n\n.desktop-carousel .carousel-img {\n  max-height: 600px;\n}\n\n\n.mobile-carousel .mobile-img {\n  width: 100%;\n  height: auto;\n}\n\n.carousel-btn {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  background-color: rgba(0, 0, 0, 0.4);\n  color: #fff;\n  border: none;\n  font-size: 2rem;\n  padding: 10px;\n  cursor: pointer;\n  z-index: 10;\n}\n\n.carousel-btn.left {\n  left: 10px;\n}\n\n.carousel-btn.right {\n  right: 10px;\n}\n\n.carousel-topbar {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  box-sizing: border-box;\n  background: rgba(0, 0, 0, 0.88);\n  z-index: 3;\n  padding: 8px 12px;\n}\n\n.carousel-topbar-inner {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 75px;\n  max-width: 100%;\n  overflow-y: hidden;\n  overflow-x: auto;\n  \n  -webkit-overflow-scrolling: touch;\n  overscroll-behavior-x: contain;\n  \n  scrollbar-width: none;\n  flex-wrap: nowrap;\n  \n  white-space: nowrap;\n \n  cursor: grab;\n  \n}\n\n.carousel-topbar-inner::-webkit-scrollbar {\n  display: none;\n}\n\n.carousel-topbar-inner.dragging {\n  cursor: grabbing;\n  user-select: none;\n}\n\n.carousel-tab {\n  flex: 0 0 auto;\n  \n  color: rgba(255, 255, 255, 0.78);\n  background: transparent;\n  border: none;\n  font-size: 18px;\n  line-height: 1.2;\n  padding: 12px 2px;\n  cursor: pointer;\n  position: relative;\n  white-space: nowrap;\n}\n\n.carousel-tab:focus {\n  outline: none;\n}\n\n.carousel-tab.active {\n  color: #fff;\n  font-weight: 600;\n}\n\n.carousel-tab.active::after {\n  content: \"\";\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: 3px;\n  margin: 0 auto;\n  width: 80%;\n  height: 2px;\n  background: #fff;\n}\n\n.video video {\n  width: 100%;\n}\n\n\n@media only screen and (max-width: 600px) {\n  .desktop-carousel {\n    display: none;\n  }\n\n  .carousel-topbar-inner {\n    gap: 16px;\n  }\n\n  .carousel-tab {\n    font-size: 13px;\n  }\n  \n  .carousel-topbar-inner {\n    justify-content: flex-start;\n  }\n  .topbarCenter .carousel-topbar-inner {\n    justify-content: center;\n  }\n}\n\n@media only screen and (min-width: 601px) {\n  .mobile-carousel {\n    display: none;\n  }\n}\n\u003c\/style\u003e\n\u003cstyle\u003e\n   .tableCustom {\n  width: 100%;\n  border-collapse: collapse;  \n  border: 1px solid black;    \n  \n}\n\n\n.tableCustom td,\n.tableCustom th {\n  padding: 12px 15px;\n  text-align: left;\n  border-bottom: 1px solid #e0e0e0; \n  border-right: 1px solid #e0e0e0;   \n}\n\n\n.tableCustom td:last-child,\n.tableCustom th:last-child {\n  border-right: none;\n}\n\n\n.tableCustom tr:last-child td {\n  border-bottom: none;\n}\n\n\n.tableCustom th {\n  background-color: #f8f9fa;\n  font-weight: 600;\n  color: #333;\n}\n\n.footerTable {\n  text-align: left;\n  margin-bottom: 30px;\n}\n\n.footerTable .table-wrapper {\n  white-space: initial;\n}\n\n.footerTable .tableBox {\n  margin-top: 0;\n}\n\n.footerTable .a-text-bold {\n  font-weight: bold;\n}\n\n.footerTable .tableBigTitle {\n  font-size: 24px;\n  font-weight: bold;\n  margin: 20px 0;\n  text-align: center\n}\n\n.footerTable .tableBox {\n  border-bottom: 1px solid #d5d9d9;\n  width: 100%;\n}\n\n.footerTable th {\n  width: 30%;\n}\n\n.footerTable td, .footerTable th {\n  padding: 8px 16px 8px 0!important;\n  vertical-align: top;\n  border-top: 1px solid #d5d9d9;\n}\n\u003c\/style\u003e\n\u003cp\u003e\u003cscript\u003e\ndocument.getElementById('topBtn').addEventListener('click', scrollToTop);\nfunction scrollToTop() {\n  window.scrollTo({\n    top: 0,\n    behavior: 'smooth'\n  });\n}\n\u003c\/script\u003e \u003cscript\u003e\nconsole.log(123)\nlet item = document.querySelectorAll('.item');\nlet itemTitle = document.querySelectorAll('.itemTitle');\nfor (let i = 0; i \u003c item.length; i++) {\n    itemTitle[i].addEventListener('click', function() {\n        if (item[i].className.includes('active')) {\n            item[i].className = 'item';\n        } else {\n            item[i].className = 'item active';\n        }\n    })\n}\n\u003c\/script\u003e \u003cscript\u003e\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n  const containers = findCarouselContainers();\n  const instances = containers.map((el) =\u003e new Carousel(el));\n\n  instances.forEach((ins) =\u003e ins.init());\n\n  \n  window.addEventListener(\"resize\", function () {\n    instances.forEach((ins) =\u003e ins.rebind());\n  });\n});\n\n\nfunction findCarouselContainers() {\n  const explicit = Array.from(\n    document.querySelectorAll(\".carousel-container\")\n  );\n  if (explicit.length) return explicit;\n\n  const tracks = Array.from(\n    document.querySelectorAll(\".desktop-carousel, .mobile-carousel\")\n  );\n  const set = new Set();\n  tracks.forEach((t) =\u003e {\n    if (t.parentElement) set.add(t.parentElement);\n  });\n  return Array.from(set);\n}\n\nclass Carousel {\n  constructor(container) {\n    this.container = container;\n    this.leftBtn = container.querySelector(\".carousel-btn.left\");\n    this.rightBtn = container.querySelector(\".carousel-btn.right\");\n    this.desktopTrack = container.querySelector(\".desktop-carousel\");\n    this.mobileTrack = container.querySelector(\".mobile-carousel\");\n\n    this.currentSlide = 0;\n    this.currentTrack = null;\n    this.slides = [];\n    this.autoPlayInterval = null;\n\n    \n    this.topbarEl = null;\n    this.topbarInnerEl = null;\n    this.labels = [];\n  }\n\n  enableDragScroll() {\n    const el = this.topbarInnerEl;\n    if (!el) return;\n\n    let isDown = false;\n    let startX = 0;\n    let startScroll = 0;\n    let moved = false;\n\n    const getX = (e) =\u003e (e.touches ? e.touches[0].pageX : e.pageX);\n\n    const onDown = (e) =\u003e {\n      isDown = true;\n      moved = false;\n      el.classList.add(\"dragging\");\n      startX = getX(e);\n      startScroll = el.scrollLeft;\n    };\n\n    const onMove = (e) =\u003e {\n      if (!isDown) return;\n      const x = getX(e);\n      const dx = x - startX;\n      if (Math.abs(dx) \u003e 3) moved = true;\n      el.scrollLeft = startScroll - dx;\n    };\n\n    const onUp = () =\u003e {\n      isDown = false;\n      el.classList.remove(\"dragging\");\n      \n      setTimeout(() =\u003e {\n        moved = false;\n      }, 0);\n    };\n\n    el.addEventListener(\"mousedown\", onDown);\n    el.addEventListener(\"mousemove\", onMove);\n    el.addEventListener(\"mouseup\", onUp);\n    el.addEventListener(\"mouseleave\", onUp);\n    el.addEventListener(\"touchstart\", onDown, {\n      passive: true,\n    });\n    el.addEventListener(\"touchmove\", onMove, {\n      passive: true,\n    });\n    el.addEventListener(\"touchend\", onUp);\n\n    \n    this.preventClickWhenDrag = (btn) =\u003e {\n      btn.addEventListener(\n        \"click\",\n        (evt) =\u003e {\n          if (moved) evt.preventDefault();\n        },\n        true\n      );\n    };\n  }\n\n  getActiveTrack() {\n    const desktopVisible =\n      this.desktopTrack \u0026\u0026\n      window.getComputedStyle(this.desktopTrack).display !== \"none\";\n    return desktopVisible ? this.desktopTrack : this.mobileTrack;\n  }\n  \n\n  ensureTopbar() {\n    if (!this.currentTrack) return;\n\n    const isNewCustom = this.container.classList.contains(\"newCustom\");\n    if (!isNewCustom) return;\n\n    const parent = this.container;\n    \n    const pos = window.getComputedStyle(parent).position;\n    if (pos === \"static\") parent.style.position = \"relative\";\n\n    \n    this.topbarEl = parent.querySelector(\".carousel-topbar\");\n    \n    if (!this.topbarEl) {\n      this.topbarEl = document.createElement(\"div\");\n      this.topbarEl.className = \"carousel-topbar\";\n      this.topbarInnerEl = document.createElement(\"div\");\n      this.topbarInnerEl.className = \"carousel-topbar-inner\";\n      this.topbarEl.appendChild(this.topbarInnerEl);\n      parent.insertBefore(this.topbarEl, this.currentTrack);\n    } else {\n      this.topbarInnerEl = this.topbarEl.querySelector(\n        \".carousel-topbar-inner\"\n      );\n      this.topbarInnerEl.innerHTML = \"\";\n    }\n  }\n\n  parseContainerLabelsAttr() {\n    const raw = this.container.getAttribute(\"data-labels\");\n    if (!raw) return null;\n    try {\n      const json = JSON.parse(raw);\n      if (Array.isArray(json)) return json;\n    } catch (e) {\n      \n    }\n    return raw\n      .split(\"|\")\n      .map((s) =\u003e s.trim())\n      .filter(Boolean);\n  }\n\n  buildLabels() {\n    \n    const fromContainer = this.parseContainerLabelsAttr();\n    if (fromContainer \u0026\u0026 fromContainer.length) {\n      this.labels = fromContainer.slice();\n      return;\n    }\n    this.labels = Array.from(this.slides).map((img, i) =\u003e {\n      return img.dataset.label || img.alt || `第${i + 1}张`;\n    });\n  }\n\n  buildTabs() {\n    if (!this.topbarInnerEl) return;\n    this.topbarInnerEl.innerHTML = \"\";\n    this.labels.forEach((text, idx) =\u003e {\n      const btn = document.createElement(\"button\");\n      btn.type = \"button\";\n      btn.className =\n        \"carousel-tab\" + (idx === this.currentSlide ? \" active\" : \"\");\n      btn.textContent = text;\n      btn.setAttribute(\"data-index\", String(idx));\n      btn.addEventListener(\"click\", () =\u003e {\n        if (!this.slides.length) return;\n        this.currentSlide = idx;\n        this.update(true);\n        this.restartAutoPlay();\n      });\n     \n      if (typeof this.preventClickWhenDrag === \"function\") {\n        this.preventClickWhenDrag(btn);\n      }\n      this.topbarInnerEl.appendChild(btn);\n    });\n    this.enableDragScroll \u0026\u0026 this.enableDragScroll();\n    this.adjustParentPadding();\n    this.keepActiveTabVisible(\"auto\"); \n  }\n\n  keepActiveTabVisible(behavior = \"auto\") {\n    if (!this.topbarInnerEl) return;\n    const active = this.topbarInnerEl.querySelector(\".carousel-tab.active\");\n    if (!active) return;\n\n    const margin = 6; \n    \n    requestAnimationFrame(() =\u003e {\n      const elRect = this.topbarInnerEl.getBoundingClientRect();\n      const itemRect = active.getBoundingClientRect();\n\n      \n      const leftOverflow = itemRect.left - (elRect.left + margin);\n      const rightOverflow = itemRect.right - (elRect.right - margin);\n\n      let delta = 0;\n      if (leftOverflow \u003c 0) {\n        \n        delta = leftOverflow;\n      } else if (rightOverflow \u003e 0) {\n        \n        delta = rightOverflow;\n      }\n\n      \n      if (itemRect.width \u003e= elRect.width) {\n        delta = itemRect.left - elRect.left;\n      }\n\n      if (delta !== 0) {\n        this.topbarInnerEl.scrollBy({\n          left: delta,\n          behavior,\n        });\n      }\n    });\n  }\n\n  adjustParentPadding() {\n    if (!this.topbarEl) return;\n    const safeTop =\n      parseFloat(\n        getComputedStyle(document.documentElement).getPropertyValue(\n          \"env(safe-area-inset-top)\"\n        )\n      ) || 0;\n    this.container.style.paddingTop =\n      this.topbarEl.offsetHeight + safeTop + \"px\";\n  }\n\n  updateActiveTab() {\n    if (!this.topbarInnerEl) return;\n    const tabs = this.topbarInnerEl.querySelectorAll(\".carousel-tab\");\n    tabs.forEach((t, i) =\u003e {\n      if (i === this.currentSlide) t.classList.add(\"active\");\n      else t.classList.remove(\"active\");\n    });\n  }\n\n  update(fromUI = false) {\n    if (this.currentTrack) {\n      this.currentTrack.style.transform = `translateX(-${\n        this.currentSlide * 100\n      }%)`;\n    }\n    this.updateActiveTab();\n    this.adjustParentPadding();\n    \n    this.keepActiveTabVisible(fromUI ? \"smooth\" : \"auto\");\n  }\n\n  bindControls() {\n    if (this.leftBtn) {\n      this.leftBtn.addEventListener(\n        \"click\",\n        (this.onLeftClickBound = () =\u003e {\n          if (!this.currentTrack || !this.slides.length) return;\n          this.currentSlide =\n            (this.currentSlide - 1 + this.slides.length) %\n            this.slides.length;\n          this.update(true);\n          this.restartAutoPlay();\n        })\n      );\n    }\n    if (this.rightBtn) {\n      this.rightBtn.addEventListener(\n        \"click\",\n        (this.onRightClickBound = () =\u003e {\n          if (!this.currentTrack || !this.slides.length) return;\n          this.currentSlide = (this.currentSlide + 1) % this.slides.length;\n          this.update(true);\n          this.restartAutoPlay();\n        })\n      );\n    }\n  }\n\n  startAutoPlay() {\n    this.stopAutoPlay();\n    if(this.container.dataset.autoplay \u0026\u0026 this.container.dataset.autoplay === 'false') return\n    this.autoPlayInterval = setInterval(() =\u003e {\n      if (!this.currentTrack || this.slides.length === 0) return;\n      this.currentSlide = (this.currentSlide + 1) % this.slides.length;\n      this.update();\n    }, this.container.dataset.time || 5000);\n  }\n  stopAutoPlay() {\n    if (this.autoPlayInterval) {\n      clearInterval(this.autoPlayInterval);\n      this.autoPlayInterval = null;\n    }\n  }\n  restartAutoPlay() {\n    this.stopAutoPlay();\n    this.startAutoPlay();\n  }\n\n  init() {\n    this.currentTrack = this.getActiveTrack();\n    this.slides = this.currentTrack\n      ? this.currentTrack.querySelectorAll(\"img\")\n      : [];\n    this.currentSlide = 0;\n\n    this.ensureTopbar();\n    this.buildLabels();\n    this.buildTabs();\n    this.bindControls();\n    this.update();\n    this.startAutoPlay();\n  }\n\n  \n  rebind() {\n    this.currentTrack = this.getActiveTrack();\n    this.slides = this.currentTrack\n      ? this.currentTrack.querySelectorAll(\"img\")\n      : [];\n    this.currentSlide = Math.min(\n      this.currentSlide,\n      Math.max(this.slides.length - 1, 0)\n    );\n\n    this.ensureTopbar();\n    this.buildLabels();\n    this.buildTabs();\n    this.update();\n    this.restartAutoPlay();\n  }\n}\n\u003c\/script\u003e\u003c\/p\u003e","brand":"OVIOS FURNITURE","offers":[{"title":"Left Hand Facing \/ Grey","offer_id":49541166039288,"sku":"LBB910-L","price":39.0,"currency_code":"USD","in_stock":true},{"title":"Left Hand Facing \/ Black","offer_id":49541166072056,"sku":"LBB430-L","price":39.0,"currency_code":"USD","in_stock":true},{"title":"Left Hand Facing \/ Beige","offer_id":49541166104824,"sku":"LBB240-L","price":39.0,"currency_code":"USD","in_stock":true},{"title":"Right Hand Facing \/ Grey","offer_id":49541166137592,"sku":"LBB910-R","price":39.0,"currency_code":"USD","in_stock":true},{"title":"Right Hand Facing \/ Black","offer_id":49541166170360,"sku":"LBB430-R","price":39.0,"currency_code":"USD","in_stock":true},{"title":"Right Hand Facing \/ Beige","offer_id":49541166203128,"sku":"LBB240-R","price":39.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0832\/2721\/4072\/files\/LBB_1.jpg?v=1782118667","url":"https:\/\/qrae4h-hx.myshopify.com\/products\/cloud-sectional-l-shape-chaise-sofa","provider":"Prime Home Lounges","version":"1.0","type":"link"}