1<!DOCTYPE html> 2<html 3 class="min-h-[100vh]" 4 lang="en" 5 x-data="app()" 6 x-init=" 7 handleSharedDiscount(); 8 handleSharedCart(); 9 updateCart(false); 10 initAnimationObserver(); 11 "> 12 13 <head> 14 <!-- Begin: Northbeam metadata info --> 15
15<script> 16 localStorage.setItem('nb__region_code', "US"); 17 localStorage.setItem('nb__currency_code', "USD"); 18 </script>
18 19 <!-- End: Northbeam metadata info --> 20 21 <!-- snippets/theme__meta.liquid --> 22
23<script> 24 (function(){ 25 console.log('Full url: /pages/contact-us, No Index: false'); 26 })(); 27</script>
27 28<meta charset='utf-8'> 29<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5"> 30<title> 31 32 33 Contact Us 34 | Dorai Home 35 36</title> 37 38 39 40 41 42 43 <link rel="canonical" href="https://doraihome.com/pages/contact-us"> 44 45 46 <link href="//doraihome.com/cdn/shop/files/Favicons-Gray-1.png?crop=center&height=180&v=1738166124&width=180" rel="apple-touch-icon" sizes="180x180"> 47 <link href="//doraihome.com/cdn/shop/files/Favicons-Gray-1.png?crop=center&height=32&v=1738166124&width=32" rel="icon" type="image/png" sizes="32x32"> 48 49<meta name="msapplication-TileColor" content="#ffffff"> 50<meta name="theme-color" content="#3d3d3d"> 51<meta name="description" content="Hello, let&#39;s talk. How can we be of service to you? Please check out the FAQs page to see if your question is answered there. You can fill out the form below and expect to get a reply within 48 hours (Mon - Friday). You may also TEXT US for a quicker response at 866-393-6724, or give us a call at 866-393-6724." /> 52 53<meta property="og:url" content="https://doraihome.com/pages/contact-us"> 54<meta property="og:site_name" content="Dorai Home"> 55<meta property="og:type" content="website"> 56<meta property="og:title" content="Contact Us"> 57<meta property="og:description" content="Hello, let&#39;s talk. How can we be of service to you? Please check out the FAQs page to see if your question is answered there. You can fill out the form below and expect to get a reply within 48 hours (Mon - Friday). You may also TEXT US for a quicker response at 866-393-6724, or give us a call at 866-393-6724."> 58 59 <meta property="og:image" content="http://doraihome.com/cdn/shop/files/Frame_1.png?v=1733257843&width=900"> 60 <meta property="og:image:secure_url" content="https://doraihome.com/cdn/shop/files/Frame_1.png?v=1733257843&width=900"> 61 <meta property="og:image:width" content="1600"> 62 <meta property="og:image:height" content="900"> 63 64 65 66<meta name="twitter:title" content="Contact Us"> 67<meta name="twitter:site" content="" /> 68<meta name="twitter:description" content="Hello, let&#39;s talk. How can we be of service to you? Please check out the FAQs page to see if your question is answered there. You can fill out the form below and expect to get a reply within 48 hours (Mon - Friday). You may also TEXT US for a quicker response at 866-393-6724, or give us a call at 866-393-6724."> 69<meta name="twitter:card" content="summary_large_image"> 70 71 <link rel="preconnect" href="https://cdn.shopify.com" crossorigin> 72 73 <link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin> 74 75 76 <link rel="preload" as="font" href="//doraihome.com/cdn/fonts/figtree/figtree_n4.3c0838aba1701047e60be6a99a1b0a40ce9b8419.woff2" type="font/woff2" crossorigin> 77 78 79 <link rel="preload" as="font" href="//doraihome.com/cdn/fonts/proza_libre/prozalibre_n4.f0507b32b728d57643b7359f19cd41165a2ba3ad.woff2" type="font/woff2" crossorigin> 80 81 <!-- snippets/theme__structured-data.liquid --> 82 83 84 85 86 87<!-- snippets/theme__structured-data.liquid --> 88 89 90 91 92 93 94 95 96 97 98 <!-- snippets/theme__styles.liquid --> 99 100 101<noscript><style> 102 .js\:animation.opacity-0 { 103 opacity: 100 !important; 104 } 105 .js\:animation.translate-y-4, 106 .js\:animation.translate-y-8 { 107 transform: translateY(0px) !important; 108 } 109 .no-js--hide { 110 display: none !important; 111 } 112 .no-js--block { 113 display: block !important; 114 } 115</style></noscript> 116 117<style data-shopify> 118@font-face { 119 font-family: "OptimaNovaPro-Regular"; 120 src: url("https://cdn.shopify.com/s/files/1/0055/2445/5542/files/OptimaNovaLTProRegular.woff2?v=1755189829"); 121 } 122 123 @font-face { 124 font-family: "OptimaNovaPro-Light"; 125 src: url("https://cdn.shopify.com/s/files/1/0055/2445/5542/files/OptimaNovaLTProLight.woff2?v=1755189829"); 126 } 127 128 @font-face { 129 font-family: "Acuminpro-Light"; 130 src: url("https://cdn.shopify.com/s/files/1/0055/2445/5542/files/acuminpro-light-webfont.woff2?v=1741877992"); 131 } 132 133 @font-face { 134 font-family: "Acuminpro-Bold"; 135 src: url("https://cdn.shopify.com/s/files/1/0055/2445/5542/files/acuminpro-bold-webfont.woff2?v=1741877991"); 136 } 137 138 @font-face { 139 font-family: "Acuminpro-Medium"; 140 src: url("https://cdn.shopify.com/s/files/1/0055/2445/5542/files/acuminpro-medium-webfont.woff2?v=1741877991"); 141 } 142 143 @font-face { 144 font-family: "Acuminpro-Regular"; 145 src: url("https://cdn.shopify.com/s/files/1/0055/2445/5542/files/acuminpro-regular-webfont.woff2?v=1741877992"); 146 } 147 148 @font-face { 149 font-family: "Acuminpro-SemiBold"; 150 src: url("https://cdn.shopify.com/s/files/1/0055/2445/5542/files/acuminpro-semibold-webfont.woff2?v=1741877991"); 151 }@font-face { 152 font-family: Figtree; 153 font-weight: 400; 154 font-style: normal; 155 font-display: swap; 156 src: url("//doraihome.com/cdn/fonts/figtree/figtree_n4.3c0838aba1701047e60be6a99a1b0a40ce9b8419.woff2") format("woff2"), 157 url("//doraihome.com/cdn/fonts/figtree/figtree_n4.c0575d1db21fc3821f17fd6617d3dee552312137.woff") format("woff"); 158} 159 160 @font-face { 161 font-family: Figtree; 162 font-weight: 700; 163 font-style: normal; 164 font-display: swap; 165 src: url("//doraihome.com/cdn/fonts/figtree/figtree_n7.2fd9bfe01586148e644724096c9d75e8c7a90e55.woff2") format("woff2"),
166 url("//doraihome.com/cdn/fonts/figtree/figtree_n7.ea05de92d862f9594794ab281c4c3a67501ef5fc.woff") format("woff"); 167} 168 169 @font-face { 170 font-family: Figtree; 171 font-weight: 400; 172 font-style: italic; 173 font-display: swap; 174 src: url("//doraihome.com/cdn/fonts/figtree/figtree_i4.89f7a4275c064845c304a4cf8a4a586060656db2.woff2") format("woff2"), 175 url("//doraihome.com/cdn/fonts/figtree/figtree_i4.6f955aaaafc55a22ffc1f32ecf3756859a5ad3e2.woff") format("woff"); 176} 177 178 @font-face { 179 font-family: Figtree; 180 font-weight: 700; 181 font-style: italic; 182 font-display: swap; 183 src: url("//doraihome.com/cdn/fonts/figtree/figtree_i7.06add7096a6f2ab742e09ec7e498115904eda1fe.woff2") format("woff2"), 184 url("//doraihome.com/cdn/fonts/figtree/figtree_i7.ee584b5fcaccdbb5518c0228158941f8df81b101.woff") format("woff"); 185} 186 187 @font-face { 188 font-family: "Proza Libre"; 189 font-weight: 400; 190 font-style: normal; 191 font-display: swap; 192 src: url("//doraihome.com/cdn/fonts/proza_libre/prozalibre_n4.f0507b32b728d57643b7359f19cd41165a2ba3ad.woff2") format("woff2"), 193 url("//doraihome.com/cdn/fonts/proza_libre/prozalibre_n4.11ea93e06205ad0e376283cb5b58368f304c1fe5.woff") format("woff"); 194} 195 196 @font-face { 197 font-family: Figtree; 198 font-weight: 400; 199 font-style: normal; 200 font-display: swap; 201 src: url("//doraihome.com/cdn/fonts/figtree/figtree_n4.3c0838aba1701047e60be6a99a1b0a40ce9b8419.woff2") format("woff2"), 202 url("//doraihome.com/cdn/fonts/figtree/figtree_n4.c0575d1db21fc3821f17fd6617d3dee552312137.woff") format("woff"); 203} 204 205 206 207 208 :root { 209 210 --color__border-primary: #3c515e; 211 212 213 --color__border-secondary: #3c515e; 214 215 216 --color__border-tertiary: #3c515e; 217 218 219 --color__border-plain: #f0f0f0; 220 221 222 --color__bg-body-light: #ffffff; 223 --color__bg-overlay-light-1: #f0f0f0; 224 --color__bg-overlay-light-2: #e0e0e0; 225 --color__bg-overlay-light-3: #c2c2c2; 226 227 --color__text-light: #3d3d3d; 228 --color__link-light: #3c515e; 229 230 --color__text-dark: #ffffff; 231 --color__border-neutral: ; 232 --color__border-divider-light-1: #ebebeb; 233 --color__border-divider-light-2: #c5c5c5; 234 --color__border-divider-light-3: #9f9f9f; 235 --color__border-selected-light-1: #787878; 236 --color__border-selected-light-2: #525252; 237 238 --color-primary-button-background-light: #3c515e; 239 --color-primary-button-border-light: #3c515e; 240 --color-primary-button-text-light: #ffffff; 241 242 --color-secondary-button-background-light: #3c515e; 243 --color-secondary-button-border-light: #3c515e; 244 --color-secondary-button-text-light: #ffffff; 245 246 --color-tertiary-button-background-light: #3c515e; 247 --color-tertiary-button-border-light: #3c515e; 248 --color-tertiary-button-text-light: #ffffff; 249 250 --color-neutral-button-background-light: #dadcdd; 251 --color-neutral-button-border-light: #dadcdd; 252 --color-neutral-button-text-light: #3d3d3d; 253 254 --color-plain-button-background-light: #f0f0f0; 255 --color-plain-button-border-light: #f0f0f0; 256 --color-plain-button-text-light: #3d3d3d; 257 258 --sizes-border-button-radius: 50px; 259 --sizes-border-input-radius: 2px; 260 --sizes-border-element-radius: 2px; 261 --sizes__border-button-width: 0px; 262 --sizes__border-input-width: 0px; 263 --sizes__border-element-width: 1px; 264 --sizes-gap-width: 5px; 265 266 /*--type-font-body-family: Figtree, sans-serif;*/ 267 --type-font-body-family: "Acuminpro-Regular", Helvetica Neue, sans-serif; 268 --type-font-body-style: normal; 269 --type-font-body-weight: 400; 270 /*--type-font-header-family: "Proza Libre", sans-serif;*/ 271 --type-font-header-family: "OptimaNovaPro-Regular", sans-serif; 272 --type-font-header-style: normal; 273 --type-font-header-weight: 400; 274 /*--type-font-nav-family: Figtree, sans-serif;*/ 275 --type-font-nav-family: "Acuminpro-Medium", Helvetica Neue, sans-serif; 276 --type-font-nav-family-regular: "Acuminpro-Regular", Helvetica Neue, sans-serif; 277 --type-font-nav-style: normal; 278 --type-font-nav-weight: 400; 279 --type-font-base-size: 16px; 280 --type-button-capiliziation: ; 281 282 --inputs__border: full; 283 --inputs__background: color__bg-shade-1; 284 } 285 286 /* Set input styling */ 287 input[type="text"], 288 input[type="password"], 289 input[type="email"], 290 input[type="number"], 291 input[type="url"], 292 input[type="date"], 293 input[type="datetime-local"], 294 input[type="month"], 295 input[type="week"], 296 input[type="time"], 297 input[type="search"], 298 input[type="tel"], 299 select, 300 select[multiple], 301 textarea { 302 303 304 305 306 307 background: rgba(61, 61, 61, 0.05) !important; 308 padding-left: 1rem; 309 padding-right: 1rem; 310 311 312 313 314 border-color: rgba(61, 61, 61, 0.2) !important; 315 316 317 318 319 320 } 321 input[type="checkbox"], 322 input[type="radio"] { 323 324 border-color: rgba(61, 61, 61, 0.2) !important; 325 326 327 328 329 330 } 331</style> 332 333 334 335 336 <link href="//doraihome.com/cdn/shop/t/324/assets/styles-a793753c.css" rel="stylesheet" type="text/css" media="all" /> 337 338 339
339<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
339<meta name="google-site-verification" content="Aoc79L4ukrDfHjPwQRoB42AqZbhgMPiOlyyQi0nWMJs"> 340<meta name="google-site-verification" content="ZjDkle69reCs6o3-bPKUwolg7K25ziqQYdQHxfIPrmE"> 341<meta name="google-site-verification" content="zEYrOtY3d-vAtlM1t20mdfdgxarOXhCSV8YTny1Nulw"> 342<meta name="google-site-verification" content="sDecr8t4WttaHULNbWZlPShDNgjN1My5XozHHIUOWGc"> 343<meta name="google-site-verification" content="Aoc79L4ukrDfHjPwQRoB42AqZbhgMPiOlyyQi0nWMJs"> 344<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/5524455542/digital_wallets/dialog"> 345<meta id="in-context-paypal-metadata" data-shop-id="5524455542" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 346<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
346<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=3713007814"></script>
346 347<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
348<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=3713007814&shop_id=5524455542" crossorigin="anonymous"></script>
vendor: 1 bytes, line 348
348
349<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":5524455542,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/5524455542","merchantName":"Dorai Home","requiredBillingContactFields":["postalAddress","email"],"requiredShippingContactFields":["postalAddress","email"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Dorai Home","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 349
349
350<script id="shopify-features" type="application/json">{"accessToken":"08641df498b48bf614ee43c549ab4fc2","betas":["rich-media-storefront-analytics"],"domain":"doraihome.com","predictiveSearch":true,"shopId":5524455542,"locale":"en"}</script>
vendor: 1 bytes, line 350
350
351<script>var Shopify = Shopify || {}; 352Shopify.shop = "doraihome.myshopify.com"; 353Shopify.locale = "en"; 354Shopify.currency = {"active":"USD","rate":"1.0"}; 355Shopify.country = "US"; 356Shopify.theme = {"name":"[PRODUCTION] - ALWAYS LIVE (2026 Master)","id":150839689414,"schema_name":"Paper | Weblion Modified","schema_version":"7.4.1","theme_store_id":null,"role":"main"}; 357Shopify.theme.handle = "null"; 358Shopify.theme.style = {"id":null,"handle":null}; 359Shopify.cdnHost = "doraihome.com/cdn"; 360Shopify.routes = Shopify.routes || {}; 361Shopify.routes.root = "/"; 362Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 363Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 364Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 365Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 365
365
366<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 366
366
367<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 367
367
368<script> 369 window.ShopifyPay = window.ShopifyPay || {}; 370 window.ShopifyPay.apiHost = "shop.app\/pay"; 371 window.ShopifyPay.redirectState = null; 372</script>
vendor: 1 bytes, line 372
372
373<script> 374 window.Shopify = window.Shopify || {}; 375 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 376 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 377 window.Shopify.SignInWithShop.eligible = true; 378</script>
vendor: 1 bytes, line 378
378
379<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 379
379
380<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 380
380
381<script type="module"> 382 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 383 384 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 385 386</script>
vendor: 1 bytes, line 386
386
387<script> 388 window.Shopify = window.Shopify || {}; 389 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 390 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]}; 391</script>
vendor: 1 bytes, line 391
391
392<script>(function() { 393 var isLoaded = false; 394 function asyncLoad() { 395 if (isLoaded) return; 396 isLoaded = true; 397 var urls = ["https:\/\/dr4qe3ddw9y32.cloudfront.net\/awin-shopify-integration-code.js?aid=91745\u0026v=shopifyApp_5.4.1\u0026ts=1777412863999\u0026shop=doraihome.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=doraihome.myshopify.com"]; 398 for (var i = 0; i < urls.length; i++) { 399 var s = document.createElement('script'); 400 s.type = 'text/javascript'; 401 s.async = true; 402 s.src = urls[i]; 403 var x = document.getElementsByTagName('script')[0]; 404 x.parentNode.insertBefore(s, x); 405 } 406 }; 407 if(window.attachEvent) { 408 window.attachEvent('onload', asyncLoad); 409 } else { 410 window.addEventListener('load', asyncLoad, false); 411 } 412})();</script>
vendor: 1 bytes, line 412
412
413<script id="__st">var __st={"a":5524455542,"offset":-21600,"reqid":"f2ad67f7-9fac-47d5-a9b8-90c9f615095b-1790348133","pageurl":"doraihome.com\/pages\/contact-us","s":"pages-80301719750","u":"c66e13325c14","p":"page","rtyp":"page","rid":80301719750};</script>
vendor: 1 bytes, line 413
413
414<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 414
414
415<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 415
415
416<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//doraihome.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 416
416
417<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//doraihome.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
417<script crossorigin="anonymous" defer="defer" src="//doraihome.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 417
417
418<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 418
418
419<script> 420 window.Shopify = window.Shopify || {}; 421 window.Shopify.MCP = window.Shopify.MCP || {}; 422 window.Shopify.MCP.enabled = true; 423 window.Shopify.MCP.shop = "doraihome.myshopify.com"; 424 window.Shopify.MCP.mcpEndpoint = "https:\/\/doraihome.com\/api\/mcp"; 425 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 426</script>
vendor: 1 bytes, line 426
426
427<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/doraihome.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 428</script>
vendor: 1 bytes, line 428
428
429<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://doraihome.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 430</script>
vendor: 1 bytes, line 430
430
431<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 432 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 433</script>
vendor: 1 bytes, line 433
433
434<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 435</script>
vendor: 1 bytes, line 435
435
436<script id='scb4127' type='text/javascript' async='' src='https://doraihome.com/cdn/shopifycloud/privacy-banner/storefront-banner.js'></script>
436<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://doraihome.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 437<style id="shopify-accelerated-checkout-cart"> 438 #shopify-buyer-consent { 439 margin-top: 1em; 440 display: inline-block; 441 width: 100%; 442} 443 444#shopify-buyer-consent.hidden { 445 display: none; 446} 447 448#shopify-subscription-policy-button { 449 background: none; 450 border: none; 451 padding: 0; 452 text-decoration: underline; 453 font-size: inherit; 454 cursor: pointer; 455} 456 457#shopify-subscription-policy-button::before { 458 box-shadow: none; 459} 460 461 </style> 462
463<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
463 464 <link type="text/css" href="//doraihome.com/cdn/shop/t/324/assets/styles-accessibility.css?v=147234379146767049221778008270" rel="stylesheet"> 465
465<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
465<link href="//doraihome.com/cdn/shop/t/324/assets/wl-custom.css?v=165672560437257501921787078187" rel="stylesheet" type="text/css" media="all" /> 466 467 468 <!-- BEGIN app block: shopify://apps/schema-plus-for-seo/blocks/schemaplus_app_embed/0199c405-aef8-7230-87a6-aacc5fab62ed -->
468<script src="https://cdn.shopify.com/extensions/01a0c393-b3be-796a-bab7-73c2a263f3d1/trymry-159/assets/loader.min.js" async></script>
468<!-- BEGIN app snippet: pages -->
468<script type="application/ld+json" class="schemaplus-schema">[ { "@context":"https://schema.org", "@type":"WebPage", "dateCreated":"2021-04-05T18:34:00Z", "datePublished":"2021-04-05T18:34:00Z", "headline":"Contact Us", "mainEntityOfPage": { "@type": "WebPage", "url": "https://doraihome.com/pages/contact-us" }, "publisher": { "@type": ["Organization", "OnlineStore"], "@id": "https://doraihome.com#organization_sp_schemaplus", "url": "https://doraihome.com", "name": "Dorai Home", "logo": { "@type": "ImageObject", "name": "Dorai Home Logo Schema by SchemaPlus", "url": "https:<!-- Liquid error (organization line 1): invalid url input -->" }, "sameAs": [ ] }, "text": "", "url":"https://doraihome.com/pages/contact-us" } ]</script>
468<!-- BEGIN app snippet: faq --><!-- END app snippet --><!-- END app snippet --><!-- BEGIN app snippet: breadcrumbs -->
468<script type="application/ld+json" class="schemaplus-schema"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "name": "Dorai Home Breadcrumbs Schema by SchemaPlus", "itemListElement": [ { "@type": "ListItem", "position": 1, "item": { "@id": "https://doraihome.com", "name": "Dorai Home" } }, { "@type": "ListItem", "position": 2, "item": { "@id": "https://doraihome.com/pages/contact-us", "name": "Contact Us" } } ] } </script>
468<!-- END app snippet --><!-- END app block --><!-- BEGIN app block: shopify://apps/mntn/blocks/tracking-pixel/d40b5b2f-bf84-4a06-b576-832ad24a8652 --> 469<!-- MNTN Tracking Pixel Start -->
470<script id="mntn_tracking_pixel" type="text/javascript"> 471const isUSShopper = window.Shopify && window.Shopify.country === "US"; 472 473if (!window.Shopify || isUSShopper) { 474 (function(){"use strict";var e=null,b="4.0.0", 475 n="33712", 476 additional="term=value", 477 t,r,i;try{t=top.document.referer!==""?encodeURIComponent(top.document.referrer.substring(0,2048)):""}catch(o){t=document.referrer!==null?document.referrer.toString().substring(0,2048):""}try{r=window&&window.top&&document.location&&window.top.location===document.location?document.location:window&&window.top&&window.top.location&&""!==window.top.location?window.top.location:document.location}catch(u){r=document.location}try{i=parent.location.href!==""?encodeURIComponent(parent.location.href.toString().substring(0,2048)):""}catch(a){try{i=r!==null?encodeURIComponent(r.toString().substring(0,2048)):""}catch(f){i=""}}var l,c=document.createElement("script"),h=null,p=document.getElementsByTagName("script"),d=Number(p.length)-1,v=document.getElementsByTagName("script")[d];if(typeof l==="undefined"){l=Math.floor(Math.random()*1e17)}h="dx.mountain.com/spx?"+"dxver="+b+"&shaid="+n+"&tdr="+t+"&plh="+i+"&cb="+l+additional;c.type="text/javascript";
477c.src=("https:"===document.location.protocol?"https://":"http://")+h;v.parentNode.insertBefore(c,v)})() 478} 479</script>
479 480<!-- MNTN Tracking Pixel End --> 481 482<!-- MNTN DataLayer Start --> 483 484<!-- MNTN DataLayer End --> 485 486<!-- END app block --><!-- BEGIN app block: shopify://apps/microsoft-clarity/blocks/clarity_js/31c3d126-8116-4b4a-8ba1-baeda7c4aeea -->
487<script type="text/javascript"> 488 (function (c, l, a, r, i, t, y) { 489 c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments); }; 490 t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i + "?ref=shopify"; 491 y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y); 492 493 c.Shopify.loadFeatures([{ name: "consent-tracking-api", version: "0.1" }], error => { 494 if (error) { 495 console.error("Error loading Shopify features:", error); 496 return; 497 } 498 499 c[a]('consentv2', { 500 ad_Storage: c.Shopify.customerPrivacy.marketingAllowed() ? "granted" : "denied", 501 analytics_Storage: c.Shopify.customerPrivacy.analyticsProcessingAllowed() ? "granted" : "denied", 502 source: 101, 503 }); 504 }); 505 506 l.addEventListener("visitorConsentCollected", function (e) { 507 c[a]('consentv2', { 508 ad_Storage: e.detail.marketingAllowed ? "granted" : "denied", 509 analytics_Storage: e.detail.analyticsAllowed ? "granted" : "denied", 510 source: 101, 511 }); 512 }); 513 })(window, document, "clarity", "script", "xn0j543ok3"); 514</script>
514 515 516 517 518<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 519 520 521 522 523 524 525 526 527 528 529 530 531
531<script async src="https://static.klaviyo.com/onsite/js/JA2pdv/klaviyo.js?company_id=JA2pdv"></script>
531 532
532<script>!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();</script>
532 533 534 535 536 537 538 539
539<script> 540 window.klaviyoReviewsProductDesignMode = false 541 </script>
541 542 543 544 545 546 547 548 549 550 551<!-- END app block --><!-- BEGIN app block: shopify://apps/convert-experiences/blocks/convert-tracking/2eacdd19-b384-4180-b32c-b323a6d9e27e --> 552 553
553<script 554 type='text/javascript' 555 > 556 // Liquid-resolved globals. Everything below this inline block lives in the 557 // theme app extension's assets/ folder (Shopify CDN). See main-extension.js 558 // and dom-pricing-extension.js for the behavioural code. 559 var _conv_page_type = "page"; 560 var _conv_category_id = ""; 561 var _conv_category_name = null; 562 var _conv_product_id = null; 563 var _conv_product_sku = null; 564 var _conv_product_variant_id = null; 565 var _conv_product_name = null; 566 var _conv_product_price = ""; 567 var _conv_customer_id = ""; 568 var _conv_custom_v1 = null; 569 var _conv_custom_v2 = null; 570 var _conv_custom_v3 = "0"; 571 var _conv_custom_v4 = "0.00"; 572 573 // Advanced matching: Collections and Tags (for pricing rules) 574 var _conv_product_handle = null; 575 var _conv_product_collections = []; 576 var _conv_product_tags = null; 577 578 // Build product data map for products on this page (for related products, collection pages, etc.) 579 var _conv_products_data = {}; 580 581 582 583 // Values read by main-extension.js's goals_evaluated handler. 584 var _conv_webhook_id = "gid:\/\/shopify\/WebhookSubscription\/1586213650630"; 585 var _conv_shopify_data_tpl = { 586 accountId: "10041221", 587 projectId: "10041306", 588 currency: "USD", 589 revenueGoalId: "1004115151", 590 subscriptionGoalId: "null", 591 oneTimePaymentGoalId: "null" 592 }; 593 594 // Global namespace for Shopify-specific Convert helpers. Populated by the 595 // extension assets loaded below, and by Variation JS (via addPricingRules). 596 window.convertShopify = window.convertShopify || {}; 597 598 // Safe default: if dom-pricing-extension.js isn't loaded for this shop 599 // (pricingSettings metafield is blank), Variation JS calls become no-ops 600 // instead of throwing. 601 window.convertShopify.addPricingRules = window.convertShopify.addPricingRules || function () {}; 602 603 // Safe default: if dom-shipping-extension.js isn't loaded for this shop 604 // (shippingSettings metafield is blank or absent), Variation JS calls become 605 // no-ops instead of throwing. 606 window.convertShopify.addShippingRules = window.convertShopify.addShippingRules || function () {}; 607 608 // Pricing settings (metafield value). dom-pricing-extension.js reads this. 609 window.convertShopify.pricingSettings = { multipleRulesStrategy: 'sequential' }; 610 611 </script>
611 612 613 614 615 616 617 618 619
619<script src='https://cdn.shopify.com/extensions/019f5b60-90ac-78e0-81e2-369f7d2134e5/convert-web-pixel-107/assets/main-extension.js'></script>
619 620 621
621<script src='https://cdn.shopify.com/extensions/019f5b60-90ac-78e0-81e2-369f7d2134e5/convert-web-pixel-107/assets/dom-pricing-extension.js'></script>
621 622 623 624
624<script src='https://cdn.shopify.com/extensions/019f5b60-90ac-78e0-81e2-369f7d2134e5/convert-web-pixel-107/assets/dom-shipping-extension.js'></script>
624 625 626
626<script src="https://cdn-4.convertexperiments.com/v1/js/10041221-10041306.js" type="text/javascript"></script>
626 627 628 629 630 631<!-- END app block --><!-- BEGIN app block: shopify://apps/judge-me-reviews/blocks/judgeme_core/61ccd3b1-a9f2-4160-9fe9-4fec8413e5d8 --><!-- Start of Judge.me Core --> 632 633 634 635 636 637 638 639<link rel="dns-prefetch" href="https://cdn.judge.me"> 640<link rel="dns-prefetch" href="https://cdn1.judge.me"> 641<link rel="dns-prefetch" href="https://api.judge.me"> 642
643<script data-cfasync='false' class='jdgm-settings-script'>window.jdgmSettings={"pagination":5,"disable_web_reviews":true,"coupon_receiving_condition":"","coupon_value_type":"percentage","coupon_value_percentage":10,"coupon_value_fixed_amount":0,"coupon_discount_type":"tiered","coupon_tier_text_enabled":false,"coupon_tier_text_percentage":10,"coupon_tier_text_fixed_amount":0,"coupon_tier_photo_enabled":true,"coupon_tier_photo_percentage":10,"coupon_tier_photo_fixed_amount":0,"coupon_tier_video_enabled":false,"coupon_tier_video_percentage":10,"coupon_tier_video_fixed_amount":0,"enable_coupons":true,"badge_no_review_text":"No reviews","badge_n_reviews_text":"{{ n }} review/reviews","badge_star_color":"#8c8a8c","hide_badge_preview_if_no_reviews":true,"badge_hide_text":false,"enforce_center_preview_badge":false,"widget_title":"Customer Reviews","widget_open_form_text":"Write a review","widget_close_form_text":"Cancel review","widget_refresh_page_text":"Refresh page","widget_summary_text":"Based on {{ number_of_reviews }} review/reviews","widget_no_review_text":"Be the first to write a review","widget_name_field_text":"Display name","widget_verified_name_field_text":"Verified Name (public)","widget_name_placeholder_text":"Display name","widget_required_field_error_text":"This field is required.","widget_email_field_text":"Email address","widget_verified_email_field_text":"Verified Email (private, can not be edited)","widget_email_placeholder_text":"Your email address","widget_email_field_error_text":"Please enter a valid email address.","widget_rating_field_text":"Rating","widget_review_title_field_text":"Review Title","widget_review_title_placeholder_text":"Give your review a title","widget_review_body_field_text":"Review content","widget_review_body_placeholder_text":"Start writing here...","widget_pictures_field_text":"Picture/Video (optional)","widget_submit_review_text":"Submit Review","widget_submit_verified_review_text":"Submit Verified Review","widget_submit_success_msg_with_auto_publish":"Thank y
643ou for submitting your review, it's a huge help! Please refresh the page in a few moments to see your review.","widget_submit_success_msg_no_auto_publish":"Thank you for submitting your review, it's a huge help! Your review will be published as soon as it is approved by the shop admin.","widget_show_default_reviews_out_of_total_text":"Showing {{ n_reviews_shown }} out of {{ n_reviews }} reviews.","widget_show_all_link_text":"Show all","widget_show_less_link_text":"Show less","widget_author_said_text":"{{ reviewer_name }} said:","widget_days_text":"{{ n }} days ago","widget_weeks_text":"{{ n }} week/weeks ago","widget_months_text":"{{ n }} month/months ago","widget_years_text":"{{ n }} year/years ago","widget_yesterday_text":"Yesterday","widget_today_text":"Today","widget_replied_text":"\u003e\u003e {{ shop_name }} replied:","widget_read_more_text":"Read more","widget_reviewer_name_as_initial":"all_initials","widget_rating_filter_color":"","widget_rating_filter_see_all_text":"See all reviews","widget_sorting_most_recent_text":"Most Recent","widget_sorting_highest_rating_text":"Highest Rating","widget_sorting_lowest_rating_text":"Lowest Rating","widget_sorting_with_pictures_text":"Only Pictures","widget_sorting_most_helpful_text":"Most Helpful","widget_open_question_form_text":"Ask a question","widget_reviews_subtab_text":"Reviews","widget_questions_subtab_text":"Questions","widget_question_label_text":"Question","widget_answer_label_text":"Answer","widget_question_placeholder_text":"Write your question here","widget_submit_question_text":"Submit Question","widget_question_submit_success_text":"Thank you for your question! We will notify you once it gets answered.","widget_star_color":"#9A9A9A","verified_badge_text":"Verified","verified_badge_bg_color":"","verified_badge_text_color":"","verified_badge_placement":"left-of-reviewer-name","widget_review_max_height":"","widget_hide_border":true,"widget_social_share":false,"widget_thumb":false,"widget_review_location_show":false,"widget_location_format":"country_iso_code","all_reviews_include_out_of_store_products":true,"all_reviews_out_of_store_text":"(out of store)","all_reviews_pagination":100,"all_reviews_product_name_prefix_text":"about","enable_review_pictures":true,"enable_question_anwser":false,"widget_theme":"","review_date_format":"mm/dd/yyyy","default_sort_method":"highest-rating","enable_ai_review_visibility":true,"widget_product_reviews_subtab_text":"Product Reviews","widget_shop_reviews_subtab_text":"Shop Reviews","widget_other_products_reviews_text":"Reviews for other products","widget_store_reviews_subtab_text":"Store reviews","widget_product_variant_reference_text":"Review for","widget_no_store_reviews_text":"This store hasn't received any reviews yet","widget_web_restriction_product_reviews_text":"This product hasn't received any reviews yet","widget_no_items_text":"No items found","widget_show_more_text":"Show more","widget_write_a_store_review_text":"Write a Store Review","widget_product_and_store_reviews_text":"Product and store reviews","widget_reviews_in_collection_text":"Reviews in this collection","widget_other_languages_heading":"Reviews in Other Languages","widget_translate_review_text":"Translate review to {{ language }}","widget_translating_review_text":"Translating...","widget_show_original_translation_text":"Show original ({{ language }})","widget_translate_review_failed_text":"Review couldn't be translated.","widget_translate_review_retry_text":"Retry","widget_translate_review_try_again_later_text":"Try again later","show_product_url_for_grouped_product":false,"widget_sorting_pictures_first_text":"Pictures First","show_pictures_on_all_rev_page_mobile":false,"show_pictures_on_all_rev_page_desktop":false,"floating_tab_hide_mobile_install_preference":false,"floating_tab_button_name":"â
Reviews","floating_tab_title":"Let customers speak for us","floating_tab_button_color":"","floating_tab_button_background_color":"","floating_tab_url":"","floating_tab_url_enabled":false,"floating_tab_tab_style":"text","all_reviews_text_badge_text":"Customers rate us {{ shop.metafields.judgeme.all_reviews_rating | round: 1 }}/5 based on {{ shop.metafields.judgeme.all_reviews_count }} reviews.","all_reviews_text_badge_text_branded_style":"{{ shop.metafields.judgeme.all_reviews_rating | round: 1 }} out of 5 stars based on {{ shop.metafields.judgeme.all_reviews_count }} reviews","is_all_reviews_text_badge_a_link":false,"show_stars_for_all_reviews_text_badge":false,"all_reviews_text_badge_url":"","all_reviews_text_style":"text","all_reviews_text_color_style":"judgeme_brand_color","all_reviews_text_color":"#108474","all_reviews_text_show_jm_brand":true,"featured_carousel_show_header":true,"featured_carousel_title":"Let customers speak for us","testimonials_carousel_title":"Customers are saying","videos_carousel_title":"Real customer stories","cards_carousel_title":"Customers are saying","featured_carousel_count_text":"from {{ n }} reviews","featured_carousel_add_link_to_all_reviews_page":false,"featured_carousel_url":"","featured_carousel_show_images":true,"featured_carousel_autoslide_interval":5,"featured_carousel_arrows_on_the_sides":false,"featured_carousel_height":250,"featured_carousel_width":80,"featured_carousel_image_size":0,"featured_carousel_image_height":250,"featured_carousel_arrow_color":"#eeeeee","verified_count_badge_style":"vintage","verified_count_badge_orientation":"horizontal","verified_count_badge_color_style":"judgeme_brand_color","verified_count_badge_color":"#108474","is_verified_count_badge_a_link":false,"verified_count_badge_url":"","verified_count_badge_show_jm_brand":true,"widget_rating_preset_default":5,"widget_first_sub_tab":"product-reviews","widget_show_histogram":true,"widget_histogram_use_custom_color":false,"widget_pagination_use_custom_color":false,"widget_star_use_custom_color":true,"widget_verified_badge_use_custom_color":false,"widget_write_review_use_custom_color":false,"picture_reminder_submit_button":"Upload Pictures","enable_review_videos":true,"mute_video_by_default":false,"widget_sorting_videos_first_text":"Videos First","widget_review_pending_text":"Pending","featured_carousel_items_for_large_screen":3,"social_share_options_order":"Facebook,Twitter","remove_microdata_snippet":true,"disable_json_ld":false,"enable_json_ld_products":false,"preview_badge_show_question_text":false,"preview_badge_no_question_text":"No questions","preview_badge_n_question_text":"{{ number_of_questions }} question/questions","qa_badge_show_icon":false,"qa_badge_position":"same-row","remove_judgeme_branding":true,"widget_add_search_bar":false,"widget_search_bar_placeholder":"Search","widget_sorting_verified_only_text":"Verified only","widget_sorting_most_relevant_text":"Most Relevant","featured_carousel_theme":"default","featured_carousel_show_rating":true,"featured_carousel_show_title":true,"featured_carousel_show_body":true,"featured_carousel_show_date":false,"featured_carousel_show_reviewer":true,"featured_carousel_show_product":false,"featured_carousel_header_background_color":"#108474","featured_carousel_header_text_color":"#ffffff","featured_carousel_name_product_separator":"reviewed","featured_carousel_full_star_background":"#108474","featured_carousel_empty_star_background":"#dadada","featured_carousel_vertical_theme_background":"#f9fafb","featured_carousel_verified_badge_enable":false,"featured_carousel_verified_badge_color":"#108474","featured_carousel_border_style":"round","featured_carousel_review_line_length_limit":3,"featured_carousel_more_reviews_button_text":"Read more reviews","featured_carousel_view_product_button_text":"View product","all_reviews_page_load_reviews_on":"scroll","all_reviews_page_load_more_text":"Load More Reviews","disable_fb_tab_reviews":false,"enable_ajax_cdn_cache":false,"widget_public_name_text":"displayed publicly like","default_reviewer_name":"John Smith","default_reviewer_name_has_non_latin":true,"widget_reviewer_anonymous":"Anonymous","medals_widget_title":"Judge.me Review Medals","medals_widget_background_color":"#f9fafb","medals_widget_position":"footer_all_pages","medals_widget_border_color":"#f9fafb","medals_widget_verified_text_position":"left","medals_widget_use_monochromatic_version":false,"medals_widget_elements_color":"#108474","show_reviewer_avatar":true,"widget_invalid_yt_video_url_error_text":"Not a YouTube video URL","widget_max_length_field_error_text":"Please enter no more than {0} characters.","widget_show_country_flag":false,"widget_show_collected_via_shop_app":true,"widget_verified_by_shop_badge_style":"light","widget_verified_by_shop_text":"Verified by Shop","widget_show_photo_gallery":true,"widget_load_with_code_splitting":true,"widget_ugc_install_preference":false,"widget_ugc_title":"Made by us, Shared by you","widget_ugc_subt
643itle":"Tag us to see your picture featured in our page","widget_ugc_arrows_color":"#ffffff","widget_ugc_primary_button_text":"Buy Now","widget_ugc_primary_button_background_color":"#108474","widget_ugc_primary_button_text_color":"#ffffff","widget_ugc_primary_button_border_width":"0","widget_ugc_primary_button_border_style":"none","widget_ugc_primary_button_border_color":"#108474","widget_ugc_primary_button_border_radius":"25","widget_ugc_secondary_button_text":"Load More","widget_ugc_secondary_button_background_color":"#ffffff","widget_ugc_secondary_button_text_color":"#108474","widget_ugc_secondary_button_border_width":"2","widget_ugc_secondary_button_border_style":"solid","widget_ugc_secondary_button_border_color":"#108474","widget_ugc_secondary_button_border_radius":"25","widget_ugc_reviews_button_text":"View Reviews","widget_ugc_reviews_button_background_color":"#ffffff","widget_ugc_reviews_button_text_color":"#108474","widget_ugc_reviews_button_border_width":"2","widget_ugc_reviews_button_border_style":"solid","widget_ugc_reviews_button_border_color":"#108474","widget_ugc_reviews_button_border_radius":"25","widget_ugc_reviews_button_link_to":"judgeme-reviews-page","widget_ugc_show_post_date":true,"widget_ugc_max_width":"800","widget_rating_metafield_value_type":true,"widget_primary_color":"#3C515E","widget_enable_secondary_color":false,"widget_secondary_color":"#edf5f5","widget_summary_average_rating_text":"{{ average_rating }} out of 5","widget_media_grid_title":"Customer Photos \u0026 Videos","widget_media_grid_see_more_text":"See More","widget_round_style":false,"widget_show_product_medals":true,"widget_verified_by_judgeme_text":"Verified by Judge.me","widget_show_store_medals":true,"widget_verified_by_judgeme_text_in_store_medals":"Verified by Judge.me","widget_media_field_exceed_quantity_message":"Sorry, we can only accept {{ max_media }} for one review.","widget_media_field_exceed_limit_message":"{{ file_name }} is too large, please select a {{ media_type }} less than {{ size_limit }}MB.","widget_review_submitted_text":"Review Submitted!","widget_question_submitted_text":"Question Submitted!","widget_close_form_text_question":"Cancel","widget_write_your_answer_here_text":"Write your answer here","widget_enabled_branded_link":true,"widget_show_collected_by_judgeme":true,"widget_reviewer_name_color":"","widget_write_review_text_color":"","widget_write_review_bg_color":"","widget_collected_by_judgeme_text":"collected by Judge.me","widget_pagination_type":"standard","widget_load_more_text":"Load More","widget_load_more_color":"#108474","widget_full_review_text":"Full Review","widget_read_more_reviews_text":"Read More Reviews","widget_read_questions_text":"Read Questions","widget_questions_and_answers_text":"Questions \u0026 Answers","widget_verified_by_text":"Verified by","widget_verified_text":"Verified","widget_number_of_reviews_text":"{{ number_of_reviews }} reviews","widget_back_button_text":"Back","widget_next_button_text":"Next","widget_custom_forms_filter_button":"Filters","custom_forms_style":"vertical","widget_show_review_information":false,"how_reviews_are_collected":"How reviews are collected?","widget_show_review_keywords":false,"widget_gdpr_statement":"How we use your data: We'll only contact you about the review you left, and only if necessary. By submitting your review, you agree to Judge.me's \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms\u003c/a\u003e, \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy\u003c/a\u003e and \u003ca href='https://judge.me/content-policy' target='_blank' rel='nofollow noopener'\u003econtent\u003c/a\u003e policies.","widget_multilingual_sorting_enabled":false,"widget_translate_review_content_enabled":false,"widget_translate_review_content_method":"manual","popup_widget_review_selection":"automatically_with_pictures","popup_widget_round_border_style":true,"popup_widget_show_title":true,"popup_widget_show_body":true,"popup_widget_show_reviewer":false,"popup_widget_show_product":true,"popup_widget_show_pictures":true,"popup_widget_use_review_picture":true,"popup_widget_show_on_home_page":true,"popup_widget_show_on_product_page":true,"popup_widget_show_on_collection_page":true,"popup_widget_show_on_cart_page":true,"popup_widget_position":"bottom_left","popup_widget_first_review_delay":5,"popup_widget_duration":5,"popup_widget_interval":5,"popup_widget_review_count":5,"popup_widget_hide_on_mobile":true,"review_snippet_widget_round_border_style":true,"review_snippet_widget_card_color":"#FFFFFF","review_snippet_widget_text_color":"#000000","review_snippet_widget_lighter_text_color":"#7B7B7B","review_snippet_widget_slider_arrows_background_color":"#FFFFFF","review_snippet_widget_slider_arrows_color":"#000000","review_snippet_widget_star_color":"#3C515E","
643show_product_variant":false,"all_reviews_product_variant_label_text":"Variant: ","widget_show_verified_branding":false,"widget_ai_summary_title":"Customers say","widget_ai_summary_disclaimer":"AI-powered review summary based on recent customer reviews","widget_show_ai_summary":false,"widget_show_ai_summary_bg":false,"write_review_button_visibility":"everyone","store_summary_widget_heading":"Customers rate this store","store_summary_widget_button_text":"View customer reviews","store_summary_widget_button_theme_text":"See AI reviews summary","widget_show_review_title_input":true,"widget_autofill_review_title":true,"redirect_reviewers_invited_via_email":"review_widget","request_store_review_after_product_review":false,"request_review_other_products_in_order":false,"review_form_color_scheme":"default","review_form_corner_style":"square","review_form_star_color":"#3C515E","review_form_text_color":"#333333","review_form_background_color":"#ffffff","review_form_field_background_color":"#fafafa","review_form_button_color":"#3C515E","review_form_button_text_color":"#ffffff","review_form_modal_overlay_color":"#000000","review_form_theme":"multi_step","review_form_location":"in_store_popup","review_form_external_page_background_color":"#C5F7F0","review_content_screen_title_text":"How would you rate this product?","review_content_introduction_text":"We would love it if you would share a bit about your experience.","store_review_form_title_text":"How would you rate this store?","store_review_form_introduction_text":"We would love it if you would share a bit about your experience.","show_review_guidance_text":true,"one_star_review_guidance_text":"Poor","five_star_review_guidance_text":"Great","customer_information_screen_title_text":"About you","customer_information_introduction_text":"Please tell us more about you.","custom_questions_screen_title_text":"Your experience in more detail","custom_questions_introduction_text":"Here are a few questions to help us understand more about your experience.","review_submitted_screen_title_text":"Thanks for your review!","review_submitted_screen_thank_you_text":"We are processing it and it will appear on the store soon.","review_submitted_screen_email_verification_text":"Please confirm your email by clicking the link we just sent you. This helps us keep reviews authentic.","confirm_email_screen_title_text":"Confirm your email","confirm_email_screen_message_text":"To help keep reviews authentic, we'll send you a secure link to continue writing your review. It only takes a moment.","check_email_screen_title_text":"Check your email","check_email_screen_message_text":"We sent you an email to {{ email }}. Click the button on the email to continue.","check_email_screen_resend_message_text":"Email resent!","check_email_resend_hint_text":"Didn't get the email? Check your spam folder or [resend the email].","verification_email_rate_limit_error_text":"You've reached the limit for review attempts on this product. Please check your inbox or try again later.","review_submitted_request_store_review_text":"Would you like to share your experience of shopping with us?","review_submitted_review_other_products_text":"Would you like to review these products?","store_review_screen_title_text":"Would you like to share your experience of shopping with us?","store_review_introduction_text":"We value your feedback and use it to improve. Please share any thoughts or suggestions you have.","reviewer_media_screen_title_picture_text":"Share a picture","reviewer_media_introduction_picture_text":"Upload a photo to support your review.","reviewer_media_screen_title_video_text":"Share a video","reviewer_media_introduction_video_text":"Upload a video to support your review.","reviewer_media_screen_title_picture_or_video_text":"Share a picture or video","reviewer_media_introduction_picture_or_video_text":"Upload a photo or video to support your review.","reviewer_media_youtube_url_text":"Paste your Youtube URL here","advanced_settings_next_step_button_text":"Next","advanced_settings_close_review_button_text":"Close","modal_write_review_flow":false,"write_review_flow_required_text":"Required","write_review_flow_privacy_message_text":"We respect your privacy.","write_review_flow_anonymous_text":"Post review as anonymous","write_review_flow_visibility_text":"This won't be visible to other customers.","write_review_flow_multiple_selection_help_text":"Select as many as you like","write_review_flow_single_selection_help_text":"Select one option","write_review_flow_required_field_error_text":"This field is required","write_review_flow_invali
643d_email_error_text":"Please enter a valid email address","write_review_flow_max_length_error_text":"Max. {{ max_length }} characters.","write_review_flow_media_upload_text":"\u003cb\u003eClick to upload\u003c/b\u003e or drag and drop","write_review_flow_gdpr_statement":"We'll only contact you about your review if necessary. By submitting your review, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","rating_only_reviews_enabled":false,"show_negative_reviews_help_screen":false,"new_review_flow_help_screen_rating_threshold":3,"negative_review_resolution_screen_title_text":"Tell us more","negative_review_resolution_text":"Your experience matters to us. If there were issues with your purchase, we're here to help. Feel free to reach out to us, we'd love the opportunity to make things right.","negative_review_resolution_button_text":"Contact us","negative_review_resolution_proceed_with_review_text":"Leave a review","negative_review_resolution_subject":"Issue with purchase from {{ shop_name }}.{{ order_name }}","coupon_promo_intro_any_review_text":"Write a review and get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_photo_text":"Write a review and add a photo or video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_video_text":"Write a review and add a video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_up_to_any_review_text":"Write a review and get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_up_to_with_photo_text":"Write a review and add a photo or video to get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_external_text":"Write a review and get a reward for your next purchase","coupon_promo_intro_external_with_photo_text":"Write a review and add a photo or video to get a reward for your next purchase","coupon_promo_intro_external_with_video_text":"Write a review and add a video to get a reward for your next purchase","coupon_promo_media_photo_text":"Add a photo or video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_photo_only_text":"Add a photo and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_video_text":"Add a video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_external_photo_text":"Add a photo or video and get a reward for your next purchase","coupon_promo_media_external_photo_only_text":"Add a photo and get a reward for your next purchase","coupon_promo_media_external_video_text":"Add a video and get a reward for your next purchase","coupon_promo_success_text":"You've got a coupon for your next purchase at {{ shop_name }}!","coupon_promo_success_subtext":"You'll receive your coupon email within the hour.","preview_badge_collection_page_install_status":false,"widget_review_custom_css":"","preview_badge_custom_css":"","preview_badge_stars_count":"5-stars","featured_carousel_custom_css":"","floating_tab_custom_css":"","all_reviews_widget_custom_css":"","medals_widget_custom_css":"","verified_badge_custom_css":"","all_reviews_text_custom_css":"","transparency_badges_collected_via_store_invite":false,"transparency_badges_from_another_provider":false,"transparency_badges_collected_from_store_visitor":false,"transparency_badges_collected_by_verified_review_provider":true,"transparency_badges_earned_reward":false,"transparency_badges_collected_via_store_invite_text":"Review collected via store invitation","transparency_badges_from_another_provider_text":"Review collected from another provider","transparency_badges_collected_from_store_visitor_text":"Review collected from a store visitor","transparency_badges_written_in_google_text":"Review written in Google","transparency_badges_written_in_etsy_text":"Review written in Etsy","transparency_badges_written_in_shop_app_text":"Review written in Shop App","transparency_badges_earned_reward_text":"Review earned a reward for future purchase","product_review_widget_per_page":10,"widget_other_languages_reviews_per_page":3,"widget_store_review_label_text":"Review about the store","widget_cart_mode_aggregate_heading_text":"Customers rate this store","checkout_comment_extension_title_on_product_page":"Customer Comments","checkout_comment_extension_num_latest_comment_show":5,"checkout_comment_extension_format":"name_and_timestamp","checkout_comment_customer_name":"last_initial","checkout_comment_comment_notification":true,"preview_badge_collection_page_install_preference":true,"preview_badge_home_page_install_preference":true,"preview_badge_product_page_install_preference":true,"review_widget_install_preference":"Hello, I use to see my reviews on my home page in the product collection and they've gone away in the last day or so (doraihome.com), can you help me bring them back? thanks!","review_carousel_install_preference":false,"floating_reviews_tab_install_preference":"none","verified_reviews_count_badge_install_preference":false,"all_reviews_text_install_preference":false,"review_widget_best_location":true,"judgeme_medals_install_preference":false,"review_widget_revamp_enabled":false,"review_widget_qna_enabled":false,"review_widget_header_theme":"minimal","review_widget_widget_title_enabled":true,"review_widget_header_text_size":"medium","review_widget_header_text_weight":"regular","review_widget_average_rating_style":"compact","review_widget_bar_chart_enabled":true,"review_widget_bar_chart_type":"numbers","review_widget_bar_chart_style":"standard","review_widget_expanded_media_gallery_enabled":false,"review_widget_show_review_highlights":false,"review_widget_show_review_keywords_in_gray":false,"review_widget_reviews_section_theme":"standard","review_widget_image_style":"thumbnails","review_widget_review_image_ratio":"square","review_widget_stars_size":"medium","review_widget_verified_badge":"standard_text","review_widget_review_title_text_size":"medium","review_widget_review_text_size":"medium","review_widget_review_text_length":"medium","review_widget_number_of_columns_desktop":3,"review_widget_carousel_transition_speed":5,"review_widget_custom_questions_answers_display":"always","review_widget_card_section_size":"small","review_widget_button_text_color":"#FFFFFF","review_widget_text_color":"#000000","review_widget_lighter_text_color":"#7B7B7B","review_widget_corner_styling":"soft","review_widget_review_word_singular":"review","review_widget_review_word_plural"
643:"reviews","review_widget_voting_label":"Helpful?","review_widget_shop_reply_label":"Reply from {{ shop_name }}:","review_widget_filters_title":"Filters","review_widget_filter_rating_title":"Rating","review_widget_filter_keyword_title":"Keyword","review_widget_clear_filters_text":"Clear filters","review_widget_expand_more_text":"More","review_widget_review_highlights_title":"Review highlights","qna_widget_question_word_singular":"Question","qna_widget_question_word_plural":"Questions","qna_widget_answer_reply_label":"Answer from {{ answerer_name }}:","qna_content_screen_title_text":"Ask a question about this product","qna_widget_question_required_field_error_text":"Please enter your question.","qna_widget_flow_gdpr_statement":"We'll only contact you about your question if necessary. By submitting your question, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","qna_widget_question_submitted_text":"Thanks for your question!","qna_widget_close_form_text_question":"Close","qna_widget_question_submit_success_text":"Weâll notify you by email when your question is answered.","all_reviews_widget_v2025_enabled":false,"all_reviews_widget_v2025_header_theme":"default","all_reviews_widget_v2025_widget_title_enabled":true,"all_reviews_widget_v2025_header_text_size":"medium","all_reviews_widget_v2025_header_text_weight":"regular","all_reviews_widget_v2025_average_rating_style":"compact","all_reviews_widget_v2025_bar_chart_enabled":true,"all_reviews_widget_v2025_bar_chart_type":"numbers","all_reviews_widget_v2025_bar_chart_style":"standard","all_reviews_widget_v2025_expanded_media_gallery_enabled":false,"all_reviews_widget_v2025_show_store_medals":true,"all_reviews_widget_v2025_show_photo_gallery":true,"all_reviews_widget_v2025_show_review_keywords":false,"all_reviews_widget_v2025_show_ai_summary":false,"all_reviews_widget_v2025_show_ai_summary_bg":false,"all_reviews_widget_v2025_show_review_highlights":false,"all_reviews_widget_v2025_show_review_keywords_in_gray":false,"all_reviews_widget_v2025_add_search_bar":false,"all_reviews_widget_v2025_default_sort_method":"most-recent","all_reviews_widget_v2025_reviews_per_page":10,"all_reviews_widget_v2025_reviews_section_theme":"default","all_reviews_widget_v2025_image_style":"thumbnails","all_reviews_widget_v2025_review_image_ratio":"square","all_reviews_widget_v2025_stars_size":"medium","all_reviews_widget_v2025_verified_badge":"standard_text","all_reviews_widget_v2025_review_title_text_size":"medium","all_reviews_widget_v2025_review_text_size":"medium","all_reviews_widget_v2025_review_text_length":"medium","all_reviews_widget_v2025_number_of_columns_desktop":3,"all_reviews_widget_v2025_carousel_transition_speed":5,"all_reviews_widget_v2025_custom_questions_answers_display":"always","all_reviews_widget_v2025_review_dates":false,"all_reviews_widget_v2025_card_section_size":"small","all_reviews_widget_v2025_show_product_variant":false,"all_reviews_widget_v2025_show_reviewer_avatar":true,"all_reviews_widget_v2025_reviewer_name_as_initial":"","all_reviews_widget_v2025_review_location_show":false,"all_reviews_widget_v2025_location_format":"","all_reviews_widget_v2025_show_country_flag":false,"all_reviews_widget_v2025_widget_thumb":false,"all_reviews_widget_v2025_verified_by_shop_badge_style":"light","all_reviews_widget_v2025_social_share":false,"all_reviews_widget_v2025_social_share_options_order":"Facebook,Twitter,LinkedIn,Pinterest","all_reviews_widget_v2025_pagination_type":"standard","all_reviews_widget_v2025_button_text_color":"#FFFFFF","all_reviews_widget_v2025_text_color":"#000000","all_reviews_widget_v2025_lighter_text_color":"#7B7B7B","all_reviews_widget_v2025_corner_styling":"soft","all_reviews_widget_v2025_title":"Customer reviews","all_reviews_widget_v2025_ai_summary_title":"Customers say about this store","all_reviews_widget_v2025_no_review_text":"Be the first to write a review","all_reviews_widget_v2025_review_highlights_title":"Review highlights","reviews_grid_widget_show_sample_reviews":false,"reviews_grid_widget_review_selection":"all","reviews_grid_widget_select_products":[],"reviews_grid_widget_show_media_only":false,"reviews_grid_widget_display_order":"media_first","reviews_grid_widget_card_grouping":"per_media","reviews_grid_widget_columns_desktop":3,"reviews_grid_widget_rows_desktop":3,"reviews_grid_widget_columns_mobile":2,"reviews_grid_widget_rows_mobile":6,"reviews_grid_widget_show_stars":true,"reviews_grid_widget_show_reviewer_name":true,"reviews_grid_widget_show_review_title_on_hover_desktop":true,"reviews_grid_widget_corner_styling":"soft","reviews_grid_widget_card_spacing":"medium","reviews_grid_widget_header_text_color":"#000000","reviews_grid_widget_star_and_reviewer_name_color":"#F9F9F9","reviews_grid_widget_overlay_and_background_color":"#000000","reviews_grid_widget_content_color":"#F9F9F9","reviews_grid_widget_header_text":"From our customers","reviews_grid_widget_show_average_rating":true,"trust_badge_enabled":false,"trust_badge_structure":"outline","trust_badge_color":"black","trust_badge_star":"black","trust_badge_rating_display_default":"show_avg_text","platform":"shopify","branding_url":"https://app.judge.me/reviews/stores/doraihome.com","branding_text":"Powered by Judge.me","locale":"en","reply_name":"Dorai Home","shop_currency":"USD","widget_version":"3.0","footer":true,"autopublish":true,"review_dates":true,"enable_custom_form":false,"shop_use_review_site":true,"shop_locale":"en","enable_multi_locales_translations":true,"show_review_title_input":true,"autofill_review_title":true,"review_verification_email_status":"always","require_verification_before_submit":false,"sign_in_with_
643shop_enabled":false,"customer_account_validation_enabled":true,"most_relevant_sort_enabled":false,"coupon_promo_invited_eligible":true,"coupon_promo_web_eligible":false,"uses_coupon_integration":false,"uses_external_coupon":false,"can_be_branded":true,"rtl_stars_enabled_ar":true,"rtl_stars_enabled_he":true,"reply_name_text":"Dorai Home"};</script>
643 <style class='jdgm-settings-style'>.jdgm-xx{left:0}:root{--jdgm-primary-color: #3C515E;--jdgm-secondary-color: rgba(60,81,94,0.1);--jdgm-star-color: #9A9A9A;--jdgm-write-review-text-color: white;--jdgm-write-review-bg-color: #3C515E;--jdgm-paginate-color: #3C515E;--jdgm-border-radius: 0;--jdgm-reviewer-name-color: #3C515E}.jdgm-histogram__bar-content{background-color:#3C515E}.jdgm-rev[data-verified-buyer=true] .jdgm-rev__icon.jdgm-rev__icon:after,.jdgm-rev__buyer-badge.jdgm-rev__buyer-badge{color:white;background-color:#3C515E}.jdgm-review-widget--small .jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See More"}@media only screen and (min-width: 768px){.jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See More"}}.jdgm-preview-badge .jdgm-star.jdgm-star{color:#8c8a8c}.jdgm-widget .jdgm-write-rev-link{display:none}.jdgm-widget .jdgm-rev-widg[data-number-of-reviews='0']{display:none}.jdgm-prev-badge[data-average-rating='0.00']{display:none !important}.jdgm-widget.jdgm-all-reviews-widget,.jdgm-widget .jdgm-rev-widg{border:none;padding:0}.jdgm-author-fullname{display:none !important}.jdgm-author-last-initial{display:none !important}.jdgm-rev-widg__title{visibility:hidden}.jdgm-rev-widg__summary-text{visibility:hidden}.jdgm-prev-badge__text{visibility:hidden}.jdgm-rev__prod-link-prefix:before{content:'about'}.jdgm-rev__variant-label:before{content:'Variant: '}.jdgm-rev__out-of-store-text:before{content:'(out of store)'}@media only screen and (min-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}@media only screen and (max-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}.jdgm-verified-count-badget[data-from-snippet="true"]{display:none !important}.jdgm-carousel-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-all-reviews-text[data-from-snippet="true"]{display:none !important}.jdgm-medals-section[data-from-snippet="true"]{display:none !important}.jdgm-ugc-media-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_via_store_invitation"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_another_provider"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_store_visitor"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_earned_for_future_purchase"]{display:none !important}.jdgm-review-snippet-widget{--jdgm-snippet-card-color: #fff;--jdgm-snippet-text-color: #000;--jdgm-snippet-lighter-text-color: #7B7B7B;--jdgm-snippet-star-color: #3C515E;--jdgm-snippet-border-radius: 8px;--jdgm-snippet-arrows-bg-color: #fff;--jdgm-snippet-arrows-color: #000}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card{border-radius:8px;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card__rev-rating .jdgm-star{color:#3C515E}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn{border-radius:50%;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn>svg,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn>svg{fill:#000}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jm-mfp-content,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__icon,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__pic-img,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__reply{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev[data-verified-buyer="true"] .jdgm-full-rev__icon::after{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-rev__buyer-badge{border-radius:calc( 8px / 2 )}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__replier::before{content:'Dorai Home'}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__product-button{border-radius:calc( 8px * 6 )} 644</style> <style class='jdgm-settings-style'></style> 645 646 647 648 649 <style class='jdgm-miracle-styles'> 650 @-webkit-keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@font-face{font-family:'JudgemeStar';src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAScAA0AAAAABrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEgAAAABoAAAAcbyQ+3kdERUYAAARgAAAAHgAAACAAMwAGT1MvMgAAAZgAAABGAAAAVi+vS9xjbWFwAAAB8AAAAEAAAAFKwBMjvmdhc3AAAARYAAAACAAAAAj//wADZ2x5ZgAAAkAAAAEJAAABdH33LXtoZWFkAAABMAAAAC0AAAA2BroQKWhoZWEAAAFgAAAAHAAAACQD5QHQaG10eAAAAeAAAAAPAAAAFAYAAABsb2NhAAACMAAAAA4AAAAOAO4AeG1heHAAAAF8AAAAHAAAACAASgAvbmFtZQAAA0wAAADeAAABkorWfVZwb3N0AAAELAAAACkAAABEp3ubLXgBY2BkYADhPPP4OfH8Nl8ZuJkYQODS2fRrCPr/aSYGxq1ALgcDWBoAO60LkwAAAHgBY2BkYGDc+v80gx4TAwgASaAICmABAFB+Arl4AWNgZGBgYGPQYWBiAAIwyQgWc2AAAwAHVQB6eAFjYGRiYJzAwMrAwejDmMbAwOAOpb8ySDK0MDAwMbByMsCBAAMCBKS5pjA4PGB4wMR44P8BBj3GrQymQGFGkBwAjtgK
650/gAAeAFjYoAAEA1jAwAAZAAHAHgB3crBCcAwDEPRZydkih567CDdf4ZskmLwFBV8xBfCaC4BXkOUmx4sU0h2ngNb9V0vQCxaRKIAevT7fGWuBrEAAAAAAAAAAAA0AHgAugAAeAF9z79Kw1AUx/FzTm7un6QmJtwmQ5Bg1abgEGr/BAqlU6Gju+Cgg1MkQ/sA7Vj7BOnmO/gUvo2Lo14NqIO6/IazfD8HEODtmQCfoANwNsyp2/GJt3WKQrd1NLiYYWx2PBqOsmJMEOznPOTzfSCrhAtbbLdmeFLJV9eKd63WLrZcIcuaEVdssWCKM6pLCfTVOYbz/0pNSMSZKLIZpvh78sAUH6PlMrreTCabP9r+Z/puPZ2ur/RqpQHgh+MIegCnXeM4MRAPjYN//5tj4ZtTjkFqEdmeMShlEJ7tVAly2TAkx6R68Fl4E/aVvn8JqHFQ4JS1434gXKcuL31dDhzs3YbsEOAd/IU88gAAAHgBfY4xTgMxEEVfkk0AgRCioKFxQYd2ZRtpixxgRU2RfhU5q5VWseQ4JdfgAJyBlmNwAM7ABRhZQ0ORwp7nr+eZAa54YwYg9zm3ynPOeFRe8MCrciXOh/KSS76UV5L/iDmrLiS5AeU519wrL3jmSbkS5115yR2fyivJv9kx0ZMZ2RLZw27q87iNQi8EBo5FSPIMw3HqBboi5lKTGAGDp8FKXWP+t9TU01Lj5His1Ba6uM9dTEMwvrFmbf5GC/q2drW3ruXUhhsCiQOjznFlCzYhHUZp4xp76vsvQh89CQAAeAFjYGJABowM6IANLMrEyMTIzMjCXpyRWJBqZshWXJJYBKOMAFHFBucAAAAAAAAB//8AAngBY2BkYGDgA2IJBhBgAvKZGViBJAuYxwAABJsAOgAAeAFjYGBgZACCk535hiD60tn0azAaAEqpB6wAAA==") format("woff");font-weight:normal;font-style:normal}.jdgm-star{font-family:'JudgemeStar';display:inline !important;text-decoration:none !important;padding:0 4px 0 0 !important;margin:0 !important;font-weight:bold;opacity:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jdgm-star:hover{opacity:1}.jdgm-star:last-of-type{padding:0 !important}.jdgm-star.jdgm--on:before{content:"\e000"}.jdgm-star.jdgm--off:before{content:"\e001"}.jdgm-star.jdgm--half:before{content:"\e002"}.jdgm-widget *{margin:0;line-height:1.4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch}.jdgm-hidden{display:none !important;visibility:hidden !important}.jdgm-temp-hidden{display:none}.jdgm-spinner{width:40px;height:40px;margin:auto;border-radius:50%;border-top:2px solid #eee;border-right:2px solid #eee;border-bottom:2px solid #eee;border-left:2px solid #ccc;-webkit-animation:jdgm-spin 0.8s infinite linear;animation:jdgm-spin 0.8s infinite linear}.jdgm-prev-badge{display:block !important} 651 652</style> 653 654 655 656 657 658 659 660 661
662<script data-cfasync='false' class='jdgm-script'> 663!function(e){window.jdgm=window.jdgm||{}; 664/* INF-1976 */ 665var _jdgmBlocked=function(){var raw=(window.jdgmSettings||{}).hostname_allowlist;var list=(raw==null?"":""+raw).split(/[\s,]+/).map(function(h){return h.trim().toLowerCase().replace(/\.$/,"");}).filter(function(h){return h;});if(!list.length)return false;var host=(e.location.hostname||"").toLowerCase().replace(/\.$/,"");if(/(^|\.)shopifypreview\.com$/.test(host))return false;var bare=host.replace(/^www\./,"");for(var i=0;i<list.length;i++){var en=list[i];if(en.indexOf("*.")===0){var b=en.slice(2);if(host===b||host.slice(-(b.length+1))==="."+b)return false;}else if(bare===en.replace(/^www\./,""))return false;}return true;}(); 666if(_jdgmBlocked){jdgm._loaderExecuted=true;jdgm._blocked=true;var _jdgmS=e.createElement("style");_jdgmS.textContent='[class^="jdgm-"],[class*=" jdgm-"]{display:none !important}';(e.head||e.documentElement).appendChild(_jdgmS);return;} 667jdgm.CDN_HOST="https://cdnwidget.judge.me/",jdgm.CDN_HOST_ALT="https://cdn2.judge.me/cdn/widget_frontend/",jdgm.API_HOST="https://api.judge.me/",jdgm.CDN_BASE_URL="https://cdn.shopify.com/extensions/01a0cdf8-b2d2-7ccd-a251-5cf8c66ad2ca/judgeme-762/assets/",jdgm.CDN_API_HOST="https://cdn.judge.me/", 668jdgm.docReady=function(d){(e.attachEvent?"complete"===e.readyState:"loading"!==e.readyState)? 669setTimeout(d,0):e.addEventListener("DOMContentLoaded",d)},jdgm.loadCSS=function(d,t,o,a){ 670!o&&jdgm.loadCSS.requestedUrls.indexOf(d)>=0||(jdgm.loadCSS.requestedUrls.push(d), 671(a=e.createElement("link")).rel="stylesheet",a.class="jdgm-stylesheet",a.media="nope!", 672a.href=d,a.onload=function(){this.media="all",t&&setTimeout(t)},e.body.appendChild(a))}, 673jdgm.loadCSS.requestedUrls=[],jdgm.loadJS=function(e,d){var t=new XMLHttpRequest; 674t.onreadystatechange=function(){4===t.readyState&&t.status>=200&&t.status<300&&(Function(t.response)(),d&&d(t.response))}, 675t.open("GET",e),t.onerror=function(){if(e.indexOf(jdgm.CDN_HOST)===0&&jdgm.CDN_HOST_ALT!==jdgm.CDN_HOST){var f=e.replace(jdgm.CDN_HOST,jdgm.CDN_HOST_ALT);jdgm.loadJS(f,d)}},t.send()},jdgm.docReady((function(){(window.jdgmLoadCSS||e.querySelectorAll( 676".jdgm-widget, .jdgm-all-reviews-page").length>0)&&(jdgmSettings.widget_load_with_code_splitting? 677parseFloat(jdgmSettings.widget_version)>=3?jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_v3_base.css"): 678jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_base.css"):jdgm.loadCSS(jdgm.CDN_BASE_URL+"shopify_v2.css") 679)}))}(document); 680</script>
680 681<noscript><link rel="stylesheet" type="text/css" media="all" href="https://cdn.shopify.com/extensions/01a0cdf8-b2d2-7ccd-a251-5cf8c66ad2ca/judgeme-762/assets/shopify_v2.css"></noscript> 682 683<!-- BEGIN app snippet: theme_fix_tags -->
683<script> 684 (function() { 685 var jdgmThemeFixes = null; 686 if (!jdgmThemeFixes) return; 687 688 // "All themes" fix: CSS and JS applied on every theme. CSS is injected 689 // before the per-theme fix so the theme-specific CSS wins the cascade. 690 // HTML is never applied globally (too risky). 691 var allThemesFix = jdgmThemeFixes['all']; 692 if (allThemesFix && allThemesFix.css) { 693 var allStyleTag = document.createElement('style'); 694 allStyleTag.classList.add('jdgm-theme-fix-style-all'); 695 allStyleTag.innerHTML = allThemesFix.css; 696 document.head.append(allStyleTag); 697 }; 698 699 if (allThemesFix && allThemesFix.js) { 700 var allScriptTag = document.createElement('script'); 701 allScriptTag.classList.add('jdgm-theme-fix-script-all'); 702 allScriptTag.innerHTML = allThemesFix.js; 703 document.head.append(allScriptTag); 704 }; 705 706 var thisThemeFix = jdgmThemeFixes[Shopify.theme.id]; 707 if (!thisThemeFix) return; 708 709 if (thisThemeFix.html) { 710 document.addEventListener("DOMContentLoaded", function() { 711 var htmlDiv = document.createElement('div'); 712 htmlDiv.classList.add('jdgm-theme-fix-html'); 713 htmlDiv.innerHTML = thisThemeFix.html; 714 document.body.append(htmlDiv); 715 }); 716 }; 717 718 if (thisThemeFix.css) { 719 var styleTag = document.createElement('style'); 720 styleTag.classList.add('jdgm-theme-fix-style'); 721 styleTag.innerHTML = thisThemeFix.css; 722 document.head.append(styleTag); 723 }; 724 725 if (thisThemeFix.js) { 726 var scriptTag = document.createElement('script'); 727 scriptTag.classList.add('jdgm-theme-fix-script'); 728 scriptTag.innerHTML = thisThemeFix.js; 729 document.head.append(scriptTag); 730 }; 731 })(); 732</script>
732 733<!-- END app snippet --> 734<!-- End of Judge.me Core --> 735 736 737 738<!-- END app block -->
738<script src="https://cdn.shopify.com/extensions/01a0b7a6-6b2a-7126-be17-93581506982e/applovin-shop-integration-97/assets/app-embed.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 738
738
739<script src="https://cdn.shopify.com/extensions/01a0cdf8-b2d2-7ccd-a251-5cf8c66ad2ca/judgeme-762/assets/loader.js" type="text/javascript" defer="defer"></script>
739 740<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
741<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 5524455542,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 741
741
742<script> 743 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 744</script>
vendor: 1 bytes, line 744
744
745<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
745).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 5524455542,storefrontBaseUrl: "https://doraihome.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://doraihome.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["16072cab","8450a54b"],webPixelsConfigList: [{"id":"2404417734","configuration":"{\"accountID\":\"JA2pdv\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
745,"dataSharingState":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"2364375238","configuration":"{\"mntnAID\":\"33712\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"b8ecc2eedc793aefdb0d20e94c7addf0","type":"APP","apiClientId":27490025473,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2245951686","configuration":"{\"projectId\":\"xn0j543ok3\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d8a2bb2ccbb513dc8e8b6937f4b8033e","type":"APP","apiClientId":240074326017,"privacyPurposes":[],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2242052294","configuration":"{\"eventKey\":\"6248b861-f9cb-4667-b1df-25adfd97fdfb\",\"name\":\"doraihome - Axon Pixel\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"59063c86dca90ebaa562063a0c13be50","type":"APP","apiClientId":256560922625,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2164392134","configuration":"{\"pixel_id\":\"972318286295509\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"2161475782","configuration":"{\"pixelCode\":\"CCRL84BC77U83DJ8JNJ0\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"22e92c2ad45662f435e4801458fb78cc","type":"APP","apiClientId":4383523,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2014380230","configuration":"{\"advertiserId\":\"91745\",\"shopDomain\":\"doraihome.myshopify.com\",\"appVersion\":\"shopifyApp_5.4.1\",\"originalNetwork\":\"sas\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c287d09bac7e7a912a76f3941fab1c2f","type":"APP","apiClientId":2887701,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1942945990","configuration":"{\"accountId\":\"10041221\",\"projectId\":\"10041306\",\"currency\":\"USD\",\"environment\":\"null\",\"customDomain\":\"null\",\"cartViewedGoalId\":\"null\",\"checkoutAddressInfoSubmittedGoalId\":\"1004115155\",\"checkoutCompletedGoalId\":\"1004115151\",\"checkoutContactInfoSubmittedGoalId\":\"1004115156\",\"checkoutShippingInfoSubmittedGoalId\":\"1004115157\",\"checkoutStartedGoalId\":\"1004115152\",\"collectionViewedGoalId\":\"1004115158\",\"paymentInfoSubmittedGoalId\":\"null\",\"productAddedToCartGoalId\":\"1004115153\",\"productRemovedFromCartGoalId\":\"null\",\"pageViewedGoalId\":\"null\",\"productViewedGoalId\":\"1004115154\",\"searchSubmittedGoalId\":\"null\",\"subscriptionGoalId\":\"null\",\"nonSubscriptionGoalId\":\"null\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"5d7a5c9a39d5284d6dfc099806167db1","type":"APP","apiClientId":125487710209,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]}
745,"dataSharingState":"unrestricted"},{"id":"1938391238","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-RWBP0SBQCW\\\",\\\"AW-708512969\\\",\\\"GT-NFJXSDS5\\\",\\\"GT-NSKC49J\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-RWBP0SBQCW\\\",\\\"AW-708512969\\\/e_D7CITdkpQcEMmZ7NEC\\\",\\\"MC-TF30BHLFRW\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-RWBP0SBQCW\\\",\\\"AW-708512969\\\/iGXMCIjekpQcEMmZ7NEC\\\",\\\"MC-TF30BHLFRW\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-RWBP0SBQCW\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-RWBP0SBQCW\\\",\\\"AW-708512969\\\/rxKACI3dkpQcEMmZ7NEC\\\",\\\"MC-9MXJD0294B\\\",\\\"MC-4QKT4643VE\\\",\\\"MC-TF30BHLFRW\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-RWBP0SBQCW\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-RWBP0SBQCW\\\",\\\"AW-708512969\\\/zhVjCIHdkpQcEMmZ7NEC\\\",\\\"MC-9MXJD0294B\\\",\\\"MC-4QKT4643VE\\\",\\\"AW-708512969\\\/gZqvCP-N87ABEMmZ7NEC\\\",\\\"AW-708512969\\\/6R6VCL_B57EbEMmZ7NEC\\\",\\\"MC-TF30BHLFRW\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-RWBP0SBQCW\\\",\\\"AW-708512969\\\/3jw-CIrdkpQcEMmZ7NEC\\\",\\\"MC-9MXJD0294B\\\",\\\"MC-4QKT4643VE\\\",\\\"MC-TF30BHLFRW\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-RWBP0SBQCW\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-RWBP0SBQCW\\\",\\\"AW-708512969\\\/cnTgCIvekpQcEMmZ7NEC\\\",\\\"MC-TF30BHLFRW\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-RWBP0SBQCW\\\",\\\"AW-708512969\\\/vCXHCIfdkpQcEMmZ7NEC\\\",\\\"MC-TF30BHLFRW\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-RWBP0SBQCW\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"1883144390","configuration":"{\"accountID\":\"[email protected]\",\"endpointId\":\"doraihome.Website\",\"externalProductSystemId\":\"ShopifyID\",\"customerId\":\"ShopifyCustomerId\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7b097de7be0f46c8046b89b76a42b640","type":"APP","apiClientId":264145960961,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"878084294","configuration":"{\"webPixelName\":\"Judge.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8acc938b1a30dc7624e304493ca567d7","type":"APP","apiClientId":683015,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"631013574","configuration":"{\"tagID\":\"2613507393780\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7ae565e198624b39e0856d352b9a6b4c","type":"APP","apiClientId":3009811,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"25100486","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Google Ads"},{"id":"45842630","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Webeyez"},{"id":"48922822","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Share-A-Sale Script"},{"id":"50135238","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"],"name":"Google Dynamic Remarketing "},{"id":"50364614","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"],"name":"Google Tag Manager"}
745,{"id":"141721798","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"],"name":"Northbeam Checkout 2026"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Dorai Home","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"doraihome.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/doraihome.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"7819727962310","handle":"stone-sink-caddy","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42796266193094","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8741652529350","handle":"paper-towel-holder","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47159971283142","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7761280467142","handle":"dish-pad-rack","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44966173343942","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8489675194566","handle":"soap-dispenser-brush-holder-set","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45829451186374","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8741666586822","handle":"electric-toothbrush-holder","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45403161788614","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8681586852038","handle":"cutting-board-holder","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45146414022854","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8687984869574","handle":"soap-dispenser-soap-caddy-set-of-2","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45163485036742","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8830070390982","handle":"toilet-brush-holder-replacement-puck-4-pack","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45658300547270","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8741665931462","handle":"scent-stone","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45403158741190","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8506773995718","handle":"modern-stone-sink-set","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44611954770118","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8544060801222","handle":"square-coasters","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44724586283206","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8647682851014","handle":"soap-caddy-2-pack","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45003144396998","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8422586941638","handle":"small-toothbrush-holder","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44356240965830","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8766718214342","handle":"scent-stone-2-pack","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45482165567686","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8741667733702","handle":"electric-toothbrush-holder-2-pack","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45403166376134","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8422591103174","handle":"small-toothbrush-holder-2-pack","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44356245684422","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7680019267782","handle":"stone-saucer-large","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44456280293574","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7768945230022","handle":"stone-coaster-set","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42620611887302","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7931020050630","handle":"stone-sink-caddy-2-pack","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44596387283142","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"4353109327990","handle":"sink-caddy","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"40406359146694","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"6942814044358","handle":"sink-caddy-2-pack","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"40892152938694","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8688281387206","handle":"gift-ribbon","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45164841664710","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8587554390214","handle":"homebody-canvas-tote","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44867600285894","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"2162863374454","handle":"gift-cards","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44262340001990","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://doraihome.com/cdn","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"150839689414","themePublished":"true","eventMetadataId":"e0af266a-f6ce-4b3e-8247-63ad361e15ad","pageType":"page","resourceId":"80301719750","shopId":"5524455542","storefrontBaseUrl":"https:\/\/doraihome.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"16072cab\", \"8450a54b\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
745<script> 746 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 747 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 748 window.ShopifyAnalytics.meta.currency = 'USD'; 749 var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":80301719750,"requestId":"f2ad67f7-9fac-47d5-a9b8-90c9f615095b-1790348133"}}; 750 for (var attr in meta) { 751 window.ShopifyAnalytics.meta[attr] = meta[attr]; 752 } 753</script>
vendor: 1 bytes, line 753
753
754<script class="analytics"> 755 (function () { 756 var customDocumentWrite = function(content) { 757 var jquery = null; 758 759 if (window.jQuery) { 760 jquery = window.jQuery; 761 } else if (window.Checkout && window.Checkout.$) { 762 jquery = window.Checkout.$; 763 } 764 765 if (jquery) { 766 jquery('body').append(content); 767 } 768 }; 769 770 var hasLoggedConversion = function(token) { 771 if (token) { 772 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 773 } 774 return false; 775 } 776 777 var setCookieIfConversion = function(token) { 778 if (token) { 779 var twoMonthsFromNow = new Date(Date.now()); 780 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 781 782 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 783 } 784 } 785 786 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 787 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 788 if (trekkie.integrations) { 789 return; 790 } 791 trekkie.methods = [ 792 'identify', 793 'page', 794 'ready', 795 'track', 796 'trackForm', 797 'trackLink' 798 ]; 799 trekkie.factory = function(method) { 800 return function() { 801 var args = Array.prototype.slice.call(arguments); 802 args.unshift(method); 803 trekkie.push(args); 804 if (method == 'track' || method == 'page') { 805 var pageUrl; 806 try { 807 pageUrl = window.location.href; 808 } catch (e) {} 809 var pageReferrer; 810 try { 811 pageReferrer = document.referrer; 812 } catch (e) {} 813 try { 814 if (window.__TREKKIE_SHIM_QUEUE == null) { 815 window.__TREKKIE_SHIM_QUEUE = []; 816 } 817 window.__TREKKIE_SHIM_QUEUE.push({ 818 from: 'trekkie-stub', 819 method: method, 820 args: args.slice(1), 821 pageContext: { 822 url: pageUrl, 823 referrer: pageReferrer 824 } 825 }); 826 } catch (e) { 827 // no-op 828 } 829 } 830 return trekkie; 831 }; 832 }; 833 for (var i = 0; i < trekkie.methods.length; i++) { 834 var key = trekkie.methods[i]; 835 trekkie[key] = trekkie.factory(key); 836 } 837 trekkie.load = function(config) { 838 trekkie.config = config || {}; 839 trekkie.config.initialDocumentCookie = document.cookie; 840 var first = document.getElementsByTagName('script')[0]; 841var script = document.createElement('script'); 842script.type = 'text/javascript'; 843script.onerror = function(e) { 844 var scriptFallback = document.createElement('script'); 845 scriptFallback.type = 'text/javascript'; 846 scriptFallback.onerror = function(error) { 847 var Monorail = { 848 produce: function produce(monorailDomain, schemaId, payload) { 849 var currentMs = new Date().getTime(); 850 var event = { 851 schema_id: schemaId, 852 payload: payload, 853 metadata: { 854 event_created_at_ms: currentMs, 855 event_sent_at_ms: currentMs 856 } 857 }; 858 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 859 }, 860 sendRequest: function sendRequest(endpointUrl, payload) { 861 // Try the sendBeacon API 862 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 863 var blobData = new window.Blob([payload], { 864 type: 'text/plain' 865 }); 866 867 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 868 return true; 869 } // sendBeacon was not successful 870 871 } // XHR beacon 872 873 var xhr = new XMLHttpRequest(); 874 875 try { 876 xhr.open('POST', endpointUrl); 877 xhr.setRequestHeader('Content-Type', 'text/plain'); 878 xhr.send(payload); 879 } catch (e) { 880 console.log(e); 881 } 882 883 return false; 884 }, 885 isIos12: function isIos12() { 886 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 887 } 888 }; 889 Monorail.produce('monorail-edge.shopifysvc.com', 890 'trekkie_storefront_load_errors/1.1', 891 {shop_id: 5524455542, 892 theme_id: 150839689414, 893 app_name: "storefront", 894 context_url: window.location.href, 895 source_url: "//doraihome.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"}); 896 897 }; 898 scriptFallback.async = true; 899 scriptFallback.src = '//doraihome.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 900 first.parentNode.insertBefore(scriptFallback, first); 901}; 902script.async = true; 903script.src = '//doraihome.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 904first.parentNode.insertBefore(script, first); 905 906 }; 907 trekkie.load( 908 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":5524455542,"isMerchantRequest":null,"themeId":150839689414,"themeCityHash":"17460154547852679459","contentLanguage":"en","currency":"USD","eventMetadataId":"e0af266a-f6ce-4b3e-8247-63ad361e15ad"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 909 ); 910 911 var loaded = false;
912 trekkie.ready(function() { 913 if (loaded) return; 914 loaded = true; 915 916 window.ShopifyAnalytics.lib = window.trekkie; 917 918 var originalDocumentWrite = document.write; 919 document.write = customDocumentWrite; 920 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 921 document.write = originalDocumentWrite; 922 923 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 924 var token = match? match[1]: undefined; 925 if (!hasLoggedConversion(token)) { 926 setCookieIfConversion(token); 927 928 } 929 }); 930 931 window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":80301719750,"requestId":"f2ad67f7-9fac-47d5-a9b8-90c9f615095b-1790348133","shopifyEmitted":true}); 932 933 var eventsListenerScript = document.createElement('script'); 934 eventsListenerScript.async = true; 935 eventsListenerScript.src = "//doraihome.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 936 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 937})();</script>
vendor: 1 bytes, line 937
937
938<script 939 defer 940 src="https://doraihome.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 941 data-application="storefront-renderer" 942 data-shop-id="5524455542" 943 data-render-region="gcp-us-central1" 944 data-page-type="page" 945 data-theme-instance-id="150839689414" 946 data-theme-name="Paper | Weblion Modified" 947 data-theme-version="7.4.1" 948 data-monorail-region="shop_domain" 949 data-resource-timing-sampling-rate="10" 950 data-shs="true" 951 data-shs-beacon="true" 952 data-shs-export-with-fetch="true" 953 data-shs-logs-sample-rate="1" 954 data-shs-beacon-endpoint="https://doraihome.com/api/collect" 955></script>
955 956<meta name="shopify-y" content="00000000-0000-0000-5000-000000000000" data-expiration="1821905733000"><meta name="shopify-s" content="00000000-0000-0000-5000-000000000000" data-expiration="1790349933000"><meta name="new-cookie-storage-activated" content="t"> 957</head> 958 959 <body 960 data-instant-intensity="mousedown" 961 x-init="initScroll()" 962 class="min-h-[100vh] break-words 963 page-contact page"> 964 <a href="#root" 965 class="fixed z-50 px-4 py-2 no-underline transform -translate-y-20 shadow-md top-4 left-4 color__bg-body focus:translate-y-0 border__button--radius"> 966 Skip to Content 967 </a> 968 969 <header class="z-30 970 dynamic 971 sticky top-0 left-0 right-0 animation-300 972 " 973 :class="{ 974 '!z-10' : hide_header 975 }" 976 x-ref="header" 977 978 x-bind:style="is_scrolled ? 979 'transform: translateY(-2rem); opacity: 0; pointer-events: none;' : 980 'transform: none; opacity: 1;' 981 " 982 > 983 <!-- BEGIN sections: header-group --> 984<div id="shopify-section-sections--20423940374726__theme_announcement" class="shopify-section shopify-section-group-header-group theme__announcement"><!-- sections/theme__announcement.liquid --> 985 986<section class="relative 987 988 color__bg-primary color__primary announcement"> 989 990 <div class="py-2 flex flex-wrap justify-center relative 991 window--wide"> 992 993 994 <div class="items-center justify-start flex-shrink hidden lg:flex lg:w-1/4 995 "> 996 997 998 </div> 999 1000 1001 <div class="flex items-center flex-grow w-full lg:text-left lg:w-1/2 1002 1003 justify-center"> 1004 <div class="relative w-full flex justify-center" 1005 x-data="{ 1006 // real slide count (no clones) 1007 count: 2, 1008 1009 // position includes clones: 1010 // 0 = clone(last), 1..count = real slides, count+1 = clone(first) 1011 pos: 1, 1012 1013 delayMs: 3000, 1014 timer: null, 1015 1016 // transition control for seamless snapping 1017 noTransition: false, 1018 shouldAnimate: true, 1019 1020 // prevent overshooting into blank space when clicking fast 1021 animating: false, 1022 1023 // swipe state 1024 startX: 0, 1025 startY: 0, 1026 deltaX: 0, 1027 dragging: false, 1028 lock: null, // 'x' or 'y' 1029 1030 get maxPos() { return this.count + 1; }, 1031 1032 startAuto() { 1033 if (!this.delayMs || this.delayMs <= 0 || this.count <= 1) return; 1034 this.stopAuto(); 1035 this.timer = setInterval(() => this.next(), this.delayMs); 1036 }, 1037 stopAuto() { 1038 if (this.timer) { 1039 clearInterval(this.timer); 1040 this.timer = null; 1041 } 1042 }, 1043 1044 next() { 1045 if (this.count <= 1) return; 1046 if (this.animating) return; 1047 this.animating = true; 1048 1049 this.noTransition = false; 1050 this.pos += 1; 1051 1052 // hard safety: never go beyond the end clone 1053 if (this.pos > this.maxPos) this.pos = this.maxPos; 1054 }, 1055 1056 prev() { 1057 if (this.count <= 1) return; 1058 if (this.animating) return; 1059 this.animating = true; 1060 1061 this.noTransition = false; 1062 this.pos -= 1; 1063 1064 // hard safety: never go before the start clone 1065 if (this.pos < 0) this.pos = 0; 1066 }, 1067 1068 onTransitionEnd(e) { 1069 if (this.count <= 1) return; 1070 // only respond to transform transition 1071 if (e && e.propertyName && e.propertyName !== 'transform') return; 1072 1073 // we finished the animated step 1074 this.animating = false; 1075 1076 // Hit clone(first) at the end -> snap to first real slide 1077 if (this.pos === this.maxPos) { 1078 this.noTransition = true; 1079 this.pos = 1; 1080 this.$nextTick(() => { this.noTransition = false; }); 1081 return; 1082 } 1083 1084 // Hit clone(last) at the start -> snap to last real slide 1085 if (this.pos === 0) { 1086 this.noTransition = true; 1087 this.pos = this.count; 1088 this.$nextTick(() => { this.noTransition = false; }); 1089 return; 1090 } 1091 }, 1092 1093 onTouchStart(e) { 1094 if (this.count <= 1) return; 1095 const t = e.touches && e.touches[0]; 1096 if (!t) return; 1097 1098 this.dragging = true; 1099 this.lock = null; 1100 this.deltaX = 0; 1101 this.startX = t.clientX; 1102 this.startY = t.clientY; 1103 1104 // pause auto while interacting 1105 this.stopAuto(); 1106 1107 // while dragging, remove transition so it tracks the finger 1108 this.noTransition = true; 1109 1110 // allow a new move after user interaction 1111 this.animating = false;
1112 }, 1113 1114 onTouchMove(e) { 1115 if (!this.dragging || this.count <= 1) return; 1116 const t = e.touches && e.touches[0]; 1117 if (!t) return; 1118 1119 const dx = t.clientX - this.startX; 1120 const dy = t.clientY - this.startY; 1121 1122 if (!this.lock) { 1123 this.lock = Math.abs(dx) > Math.abs(dy) ? 'x' : 'y'; 1124 } 1125 1126 if (this.lock === 'x') { 1127 this.deltaX = dx; 1128 e.preventDefault(); 1129 } 1130 }, 1131 1132 onTouchEnd() { 1133 if (!this.dragging || this.count <= 1) { 1134 this.dragging = false; 1135 this.deltaX = 0; 1136 this.lock = null; 1137 this.noTransition = false; 1138 this.startAuto(); 1139 return; 1140 } 1141 1142 const threshold = 50; // px 1143 if (this.lock === 'x' && Math.abs(this.deltaX) > threshold) { 1144 // re-enable transition for the âreleaseâ animation 1145 this.noTransition = false; 1146 // lock to one move per release 1147 this.animating = false; 1148 1149 if (this.deltaX < 0) this.next(); 1150 else this.prev(); 1151 } else { 1152 // no swipe: just restore transition state 1153 this.noTransition = false; 1154 this.animating = false; 1155 } 1156 1157 this.dragging = false; 1158 this.deltaX = 0; 1159 this.lock = null; 1160 1161 this.startAuto(); 1162 }, 1163 1164 // transform always moves right->left on next() 1165 trackStyle($el) { 1166 const base = -(this.pos * 100); 1167 let dragPct = 0; 1168 1169 if (this.dragging && this.lock === 'x' && $el && $el.clientWidth) { 1170 dragPct = (this.deltaX / $el.clientWidth) * 100; 1171 } 1172 1173 const x = base + dragPct; 1174 1175 const transition = 1176 (this.shouldAnimate && !this.noTransition && !(this.dragging && this.lock === 'x')) 1177 ? 'transition: transform 300ms ease;' 1178 : 'transition: none;'; 1179 1180 return `transform: translateX(${x}%); ${transition} will-change: transform;`; 1181 } 1182 }" 1183 x-init=" 1184 // start at first real slide 1185 pos = (count > 1) ? 1 : 0; 1186 noTransition = true; 1187 1188 // allow layout to apply, then enable transition 1189 $nextTick(() => { noTransition = false; }); 1190 1191 // snap logic + animation lock release 1192 if ($refs.track && count > 1) { 1193 $refs.track.addEventListener('transitionend', (e) => onTransitionEnd(e)); 1194 } 1195 1196 startAuto(); 1197 " 1198 > 1199 <button 1200 type="button" 1201 class="hidden md:flex items-center justify-center px-2 cursor-pointer" 1202 aria-label="Previous announcement" 1203 @click="stopAuto(); prev(); startAuto();" 1204 > 1205 <!-- snippets/component__icon.liquid --> 1206 1207 1208<span class="inline-flex align-middle items-center" aria-hidden="true"> 1209 1210 <svg xmlns="http://www.w3.org/2000/svg" width="6" height="12" viewBox="0 0 12 23" fill="none"><path d="M11.6899 20.6416C12.1034 21.0668 12.1034 21.756 11.6899 22.1811C11.2764 22.6063 10.6061 22.6063 10.1926 22.1811L0.310126 12.0198C-0.103375 11.5946 -0.103375 10.9054 0.310126 10.4802L10.1926 0.318878C10.6061 -0.106293 11.2764 -0.106293 11.6899 0.318878C12.1034 0.744049 12.1034 1.43322 11.6899 1.85839L2.55602 11.25L11.6899 20.6416Z" fill="#3D3D3D"/></svg> 1211 1212</span> 1213 </button> 1214 1215 1216 <div class="relative w-full min-h-[16px] overflow-hidden announcement_bar__wrapper" 1217 role="region" 1218 aria-label="Announcement bar" 1219 ><div class="flex w-full" 1220 x-ref="track" 1221 :style="trackStyle($el)" 1222 @touchstart.passive="onTouchStart($event)" 1223 @touchmove="onTouchMove($event)" 1224 @touchend="onTouchEnd()" 1225 @touchcancel="onTouchEnd()" 1226 ><div class="flex items-center flex-none w-full 1227 1228 justify-center 1229 1230 ">
1231 <span class="type--small type__nav m-0--clear 1232 text-center md:text-left no-link-styling"> 1233 <p><a href="/pages/build-your-own-set" title="Build Your Own Set">Free Shipping on U.S. Orders + Save 15% on Sets</a></p> 1234 </span> 1235 </div> 1236 <div class="flex items-center flex-none w-full 1237 1238 justify-center 1239 1240 "> 1241 <span class="type--small type__nav m-0--clear 1242 text-center md:text-left no-link-styling"> 1243 <p><a href="/collections/clay-collection" title="Clay Collection">Limited Edition: Clay Collection is Here</a></p> 1244 </span> 1245 </div> 1246 1247 <div class="flex items-center flex-none w-full 1248 1249 justify-center 1250 1251 "> 1252 <span class="type--small type__nav m-0--clear 1253 text-center md:text-left no-link-styling"> 1254 <p><a href="/pages/build-your-own-set" title="Build Your Own Set">Free Shipping on U.S. Orders + Save 15% on Sets</a></p> 1255 </span> 1256 </div> 1257 1258<div class="flex items-center flex-none w-full 1259 1260 justify-center 1261 1262 "> 1263 <span class="type--small type__nav m-0--clear 1264 text-center md:text-left no-link-styling"> 1265 <p><a href="/collections/clay-collection" title="Clay Collection">Limited Edition: Clay Collection is Here</a></p> 1266 </span> 1267 </div></div> 1268 </div> 1269 <button 1270 type="button" 1271 class="hidden md:flex items-center justify-center px-2 cursor-pointer" 1272 aria-label="Next announcement" 1273 @click="stopAuto(); next(); startAuto();" 1274 > 1275 <!-- snippets/component__icon.liquid --> 1276 1277 1278<span class="inline-flex align-middle items-center" aria-hidden="true"> 1279 1280 <svg xmlns="http://www.w3.org/2000/svg" width="6" height="12" viewBox="0 0 12 23" fill="none"><path d="M0.310126 1.85839C-0.103375 1.43322 -0.103375 0.744049 0.310126 0.318878C0.723628 -0.106293 1.39389 -0.106293 1.80739 0.318878L11.6899 10.4802C12.1034 10.9054 12.1034 11.5946 11.6899 12.0198L1.80739 22.1811C1.39389 22.6063 0.723628 22.6063 0.310126 22.1811C-0.103375 21.756 -0.103375 21.0668 0.310126 20.6416L9.44398 11.25L0.310126 1.85839Z" fill="#3D3D3D"/></svg> 1281 1282</span> 1283 </button> 1284 1285 1286 </div> 1287 </div> 1288 1289 1290 <div class="lg:flex lg:w-1/4 items-center justify-end hidden"> 1291 1292 1293 1294 </div><div class="absolute desktop-announcement-menu__wrapper pr-4"> 1295 <div> 1296 <nav 1297 class="flex items-center justify-center gap-4" 1298 aria-label="Top menu" 1299 ><a 1300 href="/pages/warranty" 1301 class="type--smaller no-link-styling whitespace-nowrap no-underline" 1302 1303 > 1304 Warranty 1305 </a><a 1306 href="/pages/wellness-hospitality" 1307 class="type--smaller no-link-styling whitespace-nowrap no-underline" 1308 1309 > 1310 Trade & Hospitality 1311 </a></nav> 1312 </div> 1313 </div></div> 1314 1315</section> 1316 1317<style> #shopify-section-sections--20423940374726__theme_announcement a {letter-spacing: 0.75px;} </style></div><div id="shopify-section-sections--20423940374726__theme_header" class="shopify-section shopify-section-group-header-group"><!-- sections/theme__header.liquid --> 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332<nav 1333 class=" 1334 1335 1336 color__bg-body color__text 1337 color__border-divider-1 1338 mobile--b-width 1339 " 1340 x-data=" 1341 { 1342 search_visible: false, 1343 search_active: false, 1344 hide_mobile_input: true, 1345 } 1346 " 1347 aria-label="Header navigation" 1348> 1349 <div class="relative"> 1350 1351 <div 1352 class="lrg-down flex flex-wrap items-center py-2 py-mo-nav mobile-nav__wrapper 1353 window--wide 1354 " 1355 > 1356 1357 <div class=""> 1358 1359 1360 1361 1362 <a 1363 style=" 1364 height: 22px; 1365 width: 135.88235294117646px; 1366 " 1367 href="/" 1368 title="Dorai Home" 1369 > 1370 <!-- snippets/component__image.liquid --> 1371 1372 1373 1374 1375 1376 1377 1378 1379<div 1380 class=" 1381 js-picture w-full h-full overflow-hidden flex items-center 1382 1383 !bg-transparent 1384 "> 1385 <picture 1386 id="img-FILES-DORAI-LOGOSVG_mo" 1387 class=" 1388 w-full flex items-center justify-center overflow-hidden 1389 1390 1391 "> 1392 <img src="//doraihome.com/cdn/shop/files/dorai-logo.svg?v=1726241081&width=400" alt="Quick Dry Home Goods by Dorai Home" srcset="//doraihome.com/cdn/shop/files/dorai-logo.svg?v=1726241081&width=100 100w, //doraihome.com/cdn/shop/files/dorai-logo.svg?v=1726241081&width=200 200w, //doraihome.com/cdn/shop/files/dorai-logo.svg?v=1726241081&width=300 300w, //doraihome.com/cdn/shop/files/dorai-logo.svg?v=1726241081&width=400 400w" width="400" height="65" loading=" 1393 1394 lazy 1395 1396" class=" 1397 js-image 1398 w-full h-full object-contain 1399 1400 min-h-full 1401 1402 1403 animation-300 1404 1405
1406"> 1407 </picture> 1408</div> 1409 </a> 1410 1411 1412 </div> 1413 <div class="flex items-center justify-end flex-grow flex-shrink text-right basis-0"> 1414 <div class="flex items-center gap-6"> 1415 1416 <a 1417 class="inline-flex items-center no-underline" 1418 href="/search" 1419 rel="nofollow" 1420 title="Search" 1421 aria-label="Search" 1422 @click.prevent="mobile_search_visible = true; search_active = true; hide_mobile_input = false; $nextTick(() => { document.querySelector('#search-mobile').focus(); });"> 1423 <!-- snippets/component__icon.liquid --> 1424 1425 1426<span class="inline-flex align-middle " aria-hidden="true"> 1427 1428 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><g clip-path="url(#clip0_1261_1018)"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.27894 0C9.7466 1.40086e-06 12.5577 2.86507 12.5579 6.39936C12.5579 7.91034 12.042 9.29766 11.1828 10.3925C11.1995 10.4053 11.2171 10.4178 11.2323 10.4333L15.8645 15.1546C16.0493 15.3431 16.0446 15.6547 15.8532 15.85C15.6616 16.0452 15.3557 16.0506 15.1708 15.8621L10.5378 11.1407C10.5309 11.1336 10.526 11.1247 10.5196 11.1173C9.40229 12.1612 7.91411 12.7996 6.27894 12.7996C2.81118 12.7996 0 9.93379 0 6.39936C0.000154841 2.86507 2.81127 0 6.27894 0ZM6.27894 1.00001C3.35311 1.00001 0.981104 3.41732 0.980949 6.39936C0.980949 9.38154 3.35302 11.7996 6.27894 11.7996C9.20486 11.7996 11.5769 9.38154 11.5769 6.39936C11.5768 3.41732 9.20477 1.00001 6.27894 1.00001Z" fill="#3D3D3D"/></g><defs><clipPath id="clip0_1261_1018"><rect width="16" height="16" fill="white"/></clipPath></defs></svg> 1429 1430 1431 1432</span> 1433 </a> 1434 1435 1436 <a 1437 class="inline-flex items-center no-underline" 1438 href="/account" 1439 rel="nofollow" 1440 title="Login" 1441 > 1442 <!-- snippets/component__icon.liquid --> 1443 1444 1445<span class="inline-flex align-middle " aria-hidden="true"> 1446 1447 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 15 16" fill="none"> 1448 <path d="M7.31752 8.22758C11.2725 8.22768 14.5201 11.4105 14.6342 15.3447L14.635 15.3508V15.3577C14.6349 15.6835 14.3814 15.9998 14.0015 16H0.633541C0.266377 16 4.57048e-07 15.6971 0 15.3665V15.3543L0.0113288 15.0981C0.0883265 13.8719 0.471486 12.7212 1.08843 11.7229V11.7107L1.15989 11.6001C2.46063 9.57797 4.74043 8.22758 7.31752 8.22758ZM7.31752 9.11994C5.10263 9.11994 3.13556 10.2591 1.98079 11.98V11.9818L1.91021 12.0916C1.3392 12.979 0.982458 14.0085 0.905431 15.1076H13.7287C13.4956 11.7753 10.6984 9.12004 7.31752 9.11994Z" fill="#3D3D3D"/> 1449 <path d="M10.048 3.6226C10.0478 2.11469 8.82489 0.892359 7.31693 0.892359C5.80916 0.892566 4.5869 2.11482 4.5867 3.6226C4.5867 5.13055 5.80903 6.3535 7.31693 6.3537C8.82501 6.3537 10.048 5.13067 10.048 3.6226ZM10.9404 3.6226C10.9404 5.62351 9.31785 7.24606 7.31693 7.24606C5.31619 7.24585 3.69434 5.62338 3.69434 3.6226C3.69454 1.62198 5.31632 0.000206937 7.31693 0C9.31772 0 10.9402 1.62186 10.9404 3.6226Z" fill="#3D3D3D"/> 1450 </svg> 1451 1452 1453</span> 1454 </a> 1455 1456 1457 <a 1458 class="inline-flex items-center no-underline relative" 1459 href="/cart" 1460 rel="nofollow" 1461 title="Cart" 1462 aria-label="Cart" 1463 @click.prevent="cart_drawer = true; if(enable_audio) { playAudioIfEnabled(click_audio) }" 1464 > 1465 <!-- snippets/component__icon.liquid --> 1466 1467 1468<span class="inline-flex align-middle " aria-hidden="true"> 1469 1470 <svg xmlns="http://www.w3.org/2000/svg" width="" height="16" viewBox="0 0 21 16" fill="none"> 1471 <path d="M19.9545 4.12813C20.4207 4.12834 20.716 4.60051 20.5884 5.03932L20.5847 5.05011L17.2819 15.5165C17.1903 15.8064 16.9462 16.0001 16.6518 16.0001H3.99304C3.673 16.0001 3.45246 15.7703 3.36844 15.5332L3.36566 15.5253L3.36288 15.5165L0.0323221 4.99027H0.0313954C-0.100244 4.57229 0.198874 4.13794 0.615217 4.13794H16.5786L16.5878 4.12813H19.9545ZM16.9715 5.1423H1.08135L4.19877 14.9957H16.446L19.5588 5.13249H16.9807L16.9715 5.1423Z" fill="#3D3D3D"/> 1472 <path d="M12.8941 3.68595C12.894 2.21573 11.7496 1.00437 10.3605 1.00437C8.97141 1.00441 7.82691 2.21576 7.82687 3.68595V4.64029H6.87793V3.68595C6.87797 1.66106 8.44733 4.29516e-05 10.3605 0C12.2736 0 13.843 1.66104 13.843 3.68595V4.64029H12.8941V3.68595Z" fill="#3D3D3D"/> 1473 </svg> 1474 1475 1476 1477</span>
1478 <span 1479 class="type__nav type--smaller color__bg-primary color__primary ml-1 px-2 py-0.5 border__button--radius cart_icon" 1480 x-show="cart.item_count > 0" 1481 x-cloak 1482 > 1483 <span class="type__nav" x-text="cart.item_count">0</span> 1484 </span> 1485 </a> 1486 1487 1488 <button 1489 x-ref="menuTrigger" 1490 @click="menu_drawer = true; if(enable_audio) { playAudioIfEnabled(click_audio) }" 1491 class="inline-flex items-center no-underline" 1492 title="Translation missing: en.general.navigation.menu" 1493 aria-label="Translation missing: en.general.navigation.menu" 1494 :aria-expanded="menu_drawer.toString()" 1495 aria-controls="menu_drawer" 1496 > 1497 <!-- snippets/component__icon.liquid --> 1498 1499 1500<span class="inline-flex align-middle " aria-hidden="true"> 1501 1502 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"> 1503 <path d="M15.5 1.5C15.7761 1.5 16 1.72386 16 2C16 2.27614 15.7761 2.5 15.5 2.5H0.5C0.223858 2.5 0 2.27614 0 2C0 1.72386 0.223858 1.5 0.5 1.5H15.5Z" fill="#3D3D3D"/> 1504 <path d="M15.5 7.5C15.7761 7.5 16 7.72386 16 8C16 8.27614 15.7761 8.5 15.5 8.5H0.5C0.223858 8.5 0 8.27614 0 8C0 7.72386 0.223858 7.5 0.5 7.5H15.5Z" fill="#3D3D3D"/> 1505 <path d="M15.5 13.5C15.7761 13.5 16 13.7239 16 14C16 14.2761 15.7761 14.5 15.5 14.5H0.5C0.223858 14.5 0 14.2761 0 14C0 13.7239 0.223858 13.5 0.5 13.5H15.5Z" fill="#3D3D3D"/> 1506 </svg> 1507 1508 1509 1510</span> 1511 </button> 1512 1513 1514 <noscript> 1515 1516 <button 1517 @click="menu_drawer = true; if(enable_audio) { playAudioIfEnabled(click_audio) }" 1518 class="inline-flex py-2 pr-4 mr-2 no-underline type__nav peer" 1519 title="Translation missing: en.general.navigation.menu" 1520 > 1521 <!-- snippets/component__icon.liquid --> 1522 1523 1524<span class="inline-flex align-middle " aria-hidden="true"> 1525 1526 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 16 16" fill="none"> 1527 <path d="M15.5 1.5C15.7761 1.5 16 1.72386 16 2C16 2.27614 15.7761 2.5 15.5 2.5H0.5C0.223858 2.5 0 2.27614 0 2C0 1.72386 0.223858 1.5 0.5 1.5H15.5Z" fill="#3D3D3D"/> 1528 <path d="M15.5 7.5C15.7761 7.5 16 7.72386 16 8C16 8.27614 15.7761 8.5 15.5 8.5H0.5C0.223858 8.5 0 8.27614 0 8C0 7.72386 0.223858 7.5 0.5 7.5H15.5Z" fill="#3D3D3D"/> 1529 <path d="M15.5 13.5C15.7761 13.5 16 13.7239 16 14C16 14.2761 15.7761 14.5 15.5 14.5H0.5C0.223858 14.5 0 14.2761 0 14C0 13.7239 0.223858 13.5 0.5 13.5H15.5Z" fill="#3D3D3D"/> 1530 </svg> 1531 1532 1533 1534</span> 1535 </button> 1536 1537 1538 <div class="peer-focus:block hover:block focus-within:block hidden bottom-0 fixed color__bg-body w-full left-0 right-0 -z-10 max-h-[70vh] mt-28 border--t-width color__border-divider-1 overflow-scroll"> 1539 1540 <a 1541 class="block w-full p-4 no-underline border--b-width color__border-divider-1" 1542 href="/collections/shop-all-products" 1543 >Shop All</a> 1544 1545 <a 1546 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1547 href="/" 1548 >Collections</a> 1549 1550 <a 1551 class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" 1552 href="/collections/new-arrivals" 1553 >New Arrivals</a> 1554 1555 <a 1556 class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" 1557 href="/collections/kitchen" 1558 >Kitchen</a> 1559 1560 <a 1561 class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" 1562 href="/collections/bathroom" 1563 >Bathroom</a> 1564 1565 <a 1566 class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" 1567 href="/collections/accessories" 1568 >Accessories</a> 1569 1570 <a 1571 class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" 1572 href="/collections/pet" 1573 >Pet</a> 1574 1575 1576 <a 1577 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1578 href="/collections/clay-collection" 1579 >
1579~Shop Clay::https://cdn.shopify.com/s/files/1/0055/2445/5542/files/092026-ClayCollection-Nav.jpg?v=1788886077</a> 1580 1581 1582 <a 1583 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1584 href="/collections/bundles" 1585 >~Save on Sets::https://cdn.shopify.com/s/files/1/0055/2445/5542/files/082026-BuildYourOwnSet-Nav-Carousel.jpg?v=1786116686</a> 1586 1587 1588 <a 1589 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1590 href="/collections/new-arrivals" 1591 >~New Arrivals::https://cdn.shopify.com/s/files/1/0055/2445/5542/files/092026-LaborDaySale-Nav.jpg?v=1788886077</a> 1592 1593 1594 1595 <a 1596 class="block w-full p-4 no-underline border--b-width color__border-divider-1" 1597 href="/collections/new-arrivals" 1598 >New Arrivals</a> 1599 1600 1601 <a 1602 class="block w-full p-4 no-underline border--b-width color__border-divider-1" 1603 href="/collections/kitchen" 1604 >^Kitchen</a> 1605 1606 <a 1607 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1608 href="/collections/dish-pads" 1609 >~Dish Pads::https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Kitchen-DishPads.jpg?v=1768363931</a> 1610 1611 1612 <a 1613 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1614 href="/collections/dish-racks" 1615 >~Dish Racks::Organized Drying, Streamlined Style::https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Kitchen-DishRacks.jpg?v=1768363931</a> 1616 1617 1618 <a 1619 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1620 href="/collections/kitchen-accessories" 1621 >~Counter Organization::https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-CounterOrganization-PTH.jpg?v=1768592154</a> 1622 1623 1624 <a 1625 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1626 href="/collections/kitchen-bundles" 1627 >~Kitchen Bundles::Smart Pairings for Every Kitchen::https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Kitchen-Bundles.jpg?v=1768363931</a> 1628 1629 1630 1631 <a 1632 class="block w-full p-4 no-underline border--b-width color__border-divider-1" 1633 href="/collections/bathroom" 1634 >^Bathroom</a> 1635 1636 <a 1637 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1638 href="/collections/original-bath-stones" 1639 >~Original Bath Stones::https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bath-OriginalBathStones.jpg?v=1768363931</a> 1640 1641 1642 <a 1643 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1644 href="/collections/medium-large-bath-stones" 1645 >~Medium & Large Bath Stones::https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bath-MediumLargeBathStones.jpg?v=1768363931</a> 1646 1647 1648 <a 1649 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1650 href="/collections/bathroom-accessories" 1651 >~Caddies & Organization::https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bath-CaddiesOrganization.jpg?v=1768363931</a> 1652 1653 1654 <a 1655 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1656 href="/collections/bathroom-bundles" 1657 >~Bathroom Bundles::Works Together Beautifully::https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bath-Bundles.jpg?v=1768363931</a> 1658 1659 1660 1661 <a 1662 class="block w-full p-4 no-underline border--b-width color__border-divider-1" 1663 href="/collections/accessories" 1664 >Accessories</a> 1665 1666 <a 1667 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1668 href="/collections/sink-organization" 1669 >~Sink Organization::https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Accessories-Sink.jpg?v=1768363931</a> 1670 1671 1672 <a 1673 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1674 href="/collections/coasters-saucers" 1675 >~Coasters & Saucers::https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Accessories-CoastersSaucers.jpg?v=1768363931</a> 1676 1677 1678 <a 1679 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1680 href="/collections/dish-drying-accessories" 1681 >~Dish Drying Accessories::https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Accessories-DishDrying.jpg?v=1768363931</a> 1682 1683 1684 <a 1685 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1686 href="/collections/replacement-parts-1" 1687 >~Replacement Parts::https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Accessories-ReplacementParts.jpg?v=1768363931</a> 1688 1689 1690 1691 <a 1692 class="block w-full p-4 no-underline border--b-width color__border-divider-1" 1693 href="/collections/pet" 1694 >Pet</a> 1695 1696 <a 1697 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1698 href="/collections/dog" 1699 >~Dog::https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Pet-Dog.jpg?v=1768363931</a> 1700 1701 1702 <a 1703 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1704 href="/collections/cat" 1705 >~Cat::https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Pet-Cat.jpg?v=1768363931</a> 1706 1707 1708 1709 <a 1710 class="block w-full p-4 no-underline border--b-width color__border-divider-1" 1711 href="/collections/bundles" 1712 >Save on Sets</a> 1713 1714 <a 1715 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1716 href="/collections/bathroom-bundles" 1717 >~Bathroom Sets::https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bundles-Bathroom.jpg?v=1768363931</a> 1718 1719 1720 <a 1721 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1722 href="/collections/kitchen-bundles" 1723 >~Kitchen Sets::https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bundles-Kitchen.jpg?v=1768363931</a> 1724 1725 1726 <a 1727 class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" 1728 href="/collections/gift-sets" 1729 >~Gift Sets::https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bundles-GiftSets.jpg?v=1768363931</a> 1730 1731 1732 1733 <a 1734 class="block w-full p-4 no-underline border--b-width color__border-divider-1" 1735 href="/pages/care-and-cleaning" 1736 >How to Clean</a> 1737 1738 1739 </div> 1740 </noscript> 1741 </div> 1742 </div> 1743 1744 1745 1746 <!-- snippets/header__search-mobile.liquid --> 1747<style data-shopify> 1748 .search-mobile-dropdown a:focus, 1749 .search-mobile-dropdown a:focus-visible { 1750 text-decoration: underline; 1751 background-color: var(--color__bg-overlay-light-1); 1752 } 1753</style> 1754 1755 1756 1757<div class="header__search flex-grow w-full no-js--hide" 1758 x-data="{ 1759 search: false, 1760 search_announcement: '', 1761 params: { 1762 author: false, 1763 body: true, 1764 product_type: true, 1765 tag: true, 1766 title: true, 1767 variants_barcode: false, 1768 variants_sku: true, 1769 variants_title: true, 1770 vendor: false, 1771 }, 1772 resources: { 1773 article: true, 1774 collection: true, 1775 page: true, 1776 product: true, 1777 query: true 1778 } 1779 }" 1780 x-init="$watch('search_loading', (loading) => { 1781 if (loading || !search_term) return; 1782 const count = search_items_queries.length + search_items_pages.length + search_items_articles.length + search_items_collections.length + search_items.filter(i => i.vendor !== 'Order Protection').length; 1783 const message = count > 0 ? count + ' results found for ' + search_term : 'No results found for ' + search_term; 1784 search_announcement = ''; 1785 $nextTick(() => { search_announcement = message; }); 1786 })"> 1787 <div role="status"
1788 aria-live="polite" 1789 aria-atomic="true" 1790 class="sr-only" 1791 x-text="search_announcement"> 1792 </div> 1793 1794 <form action="/search" 1795 method='get'> 1796 <div class="relative min-h-[]" 1797 :class="{ 'z-10': search_active }" 1798 @keydown.arrow-down.window="if (!search_active) return; const links=[...($refs.searchDropdownMobile?.querySelectorAll('a[href]')||[])].filter(el=>el.offsetParent!==null); if (!links.length) return; $event.preventDefault(); const current=links.indexOf(document.activeElement); const next=current===-1?0:Math.min(current+1,links.length-1); links[next]?.focus()" 1799 @keydown.arrow-up.window="if (!search_active) return; const links=[...($refs.searchDropdownMobile?.querySelectorAll('a[href]')||[])].filter(el=>el.offsetParent!==null); if (!links.length) return; $event.preventDefault(); const current=links.indexOf(document.activeElement); if (current<=0) { $refs.searchInputMobile.focus(); } else { links[current-1].focus(); }" 1800 @focusout="$nextTick(() => { if (search_active && !$el.contains(document.activeElement)) { search_active = false; hide_mobile_input = true; } })"> 1801 1802 <input type="hidden" name="type" value="page,article,product"> 1803 1804 1805 <div x-show="!hide_mobile_input" class="absolute top-0 w-full animation-500" 1806 :class="{ 'z-10 !fixed left-4 !top-4 right-4 !w-auto': search_active }"> 1807 <label class="sr-only" 1808 for="search-mobile">Search</label> 1809 <input id="search-mobile" 1810 class="form-input !pl-8 color__text !min-h-0 1811 color__border-divider-1" 1812 type="text" 1813 name="q" 1814 autocomplete="off" 1815 placeholder="Search by products, colors, or more..." 1816 x-ref="searchInputMobile" 1817 @focus="search_active = true;" 1818 @keydown.escape.prevent="search_active = false; hide_mobile_input = true; $refs.searchInputMobile.value = ''" 1819 @input.debounce="fetchAndUpdateSearch($event,params,resources)"/> 1820 <div class="absolute top-0 flex items-center h-full right-2"> 1821 <button class="btn btn--smaller btn--plain !bg-transparent !border-0 opacity-0" 1822 :class="{ '!opacity-100' : search_active }" 1823 type="button" 1824 aria-label="Cancel Search" 1825 title="Cancel Search" 1826 @click="search_active = false; hide_mobile_input = true; $refs.searchInputMobile.value = '';" 1827 x-show="search_active"> 1828 <!-- snippets/component__icon.liquid --> 1829 1830 1831<span class="inline-flex align-middle " aria-hidden="true"> 1832 1833 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M14.3746 13.6478C14.5695 13.8428 14.5695 14.1588 14.3746 14.3538C14.1796 14.5487 13.8635 14.5487 13.6686 14.3538L1.66699 2.35219C1.47204 2.15724 1.47204 1.84116 1.66699 1.64621C1.86194 1.45126 2.17802 1.45126 2.37297 1.64621L14.3746 13.6478Z" fill="#3D3D3D"/><path d="M1.64621 13.6478C1.45126 13.8428 1.45126 14.1588 1.64621 14.3538C1.84116 14.5487 2.15724 14.5487 2.35219 14.3538L14.3538 2.35219C14.5487 2.15724 14.5487 1.84116 14.3538 1.64621C14.1588 1.45126 13.8428 1.45126 13.6478 1.64621L1.64621 13.6478Z" fill="#3D3D3D"/></svg> 1834 1835 1836</span> 1837 </button> 1838 </div> 1839 <!-- snippets/component__icon.liquid --> 1840 1841 1842<span class="inline-flex align-middle absolute !flex items-center 1843 top-0 left-2 h-full opacity-50 color__text" aria-hidden="true"> 1844 1845 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none"><g clip-path="url(#clip0_1261_1018)"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.27894 0C9.7466 1.40086e-06 12.5577 2.86507 12.5579 6.39936C12.5579 7.91034 12.042 9.29766 11.1828 10.3925C11.1995 10.4053 11.2171 10.4178 11.2323 10.4333L15.8645 15.1546C16.0493 15.3431 16.0446 15.6547 15.8532 15.85C15.6616 16.0452 15.3557 16.0506 15.1708 15.8621L10.5378 11.1407C10.5309 11.1336 10.526 11.1247 10.5196 11.1173C9.40229 12.1612 7.91411 12.7996 6.27894 12.7996C2.81118 12.7996 0 9.93379 0 6.39936C0.000154841 2.86507 2.81127 0 6.27894 0ZM6.27894 1.00001C3.35311 1.00001 0.981104 3.41732 0.980949 6.39936C0.980949 9.38154 3.35302 11.7996 6.27894 11.7996C9.20486 11.7996 11.5769 9.38154 11.5769 6.39936C11.5768 3.41732 9.20477 1.00001 6.27894 1.00001Z" fill="#3D3D3D"/></g><defs><clipPath id="clip0_1261_1018"><rect width="16" height="16" fill="white"/></clipPath></defs></svg> 1846 1847 1848 1849</span> 1850 </div> 1851 1852 1853 <div class="search-mobile-dropdown fixed overflow-hidden mobile-border--radius-t-0 shadow-md border--width border--radius animation-100 left-0 right-0 top-0 pt-14 1854 color__border-divider-1 1855 color__bg-body color__text" 1856 x-ref="searchDropdownMobile" 1857 x-show="search_active" 1858 @keydown.escape.prevent="search_active = false; hide_mobile_input = true; $refs.searchInputMobile.value = ''" 1859 1860 x-transition:enter="animation-300" 1861 x-transition:enter-start="opacity-0" 1862 x-transition:enter-end="opacity-100" 1863 x-transition:leave="animation-300" 1864 x-transition:leave-start="opacity-100" 1865 x-transition:leave-end="opacity-0" 1866 1867 x-cloak> 1868 <div class="flex flex-wrap h-full px-4 -mx-4 overflow-y-auto"> 1869 <div class="h-[50vh] w-full overflow-y-auto"> 1870 1871 1872 1873 <div class="p-4" 1874 x-show="!search_loading && $refs.searchInputMobile.value.length == 0">
1875 <span class="pb-2 no-underline type--small" 1876 href="#"> 1877 <strong>Top searches</strong> 1878 </span> 1879 1880 <a class="block no-underline" 1881 href="/collections/shop-all-products"> 1882 Shop All 1883 </a> 1884 1885 <a class="block no-underline" 1886 href="/collections/new-arrivals"> 1887 New Arrivals 1888 </a> 1889 1890 <a class="block no-underline" 1891 href="/collections/kitchen"> 1892 ^Kitchen 1893 </a> 1894 1895 <a class="block no-underline" 1896 href="/collections/bathroom"> 1897 ^Bathroom 1898 </a> 1899 1900 <a class="block no-underline" 1901 href="/collections/accessories"> 1902 Accessories 1903 </a> 1904 1905 <a class="block no-underline" 1906 href="/collections/pet"> 1907 Pet 1908 </a> 1909 1910 <a class="block no-underline" 1911 href="/collections/bundles"> 1912 Save on Sets 1913 </a> 1914 1915 <a class="block no-underline" 1916 href="/pages/care-and-cleaning"> 1917 How to Clean 1918 </a> 1919 1920 </div> 1921 1922 1923 1924 <div class="p-4" 1925 x-show="search_loading" 1926 x-cloak> 1927 1928 <div class="btn--load btn--loading"> 1929 <div class="btn__content">Loading...</div> 1930 <div class="btn__spinner"> 1931 <!-- snippets/component__icon.liquid --> 1932 1933 1934<span class="inline-flex align-middle " aria-hidden="true"> 1935 1936 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-loader"><line x1="12" y1="2" x2="12" y2="6"></line><line x1="12" y1="18" x2="12" y2="22"></line><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"></line><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"></line><line x1="2" y1="12" x2="6" y2="12"></line><line x1="18" y1="12" x2="22" y2="12"></line><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"></line><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"></line></svg> 1937 1938</span> 1939 </div> 1940 </div> 1941 </div> 1942 1943 1944 <div class="sticky top-0 z-10 border--b-width p-4 1945 color__border-divider-1 1946 color__bg-body color__text" 1947 x-show="(search_items && search_items.length != 0) || (search_items_pages && search_items_pages.length !== 0) || (search_items_articles && search_items_articles.length !== 0) && !search_loading" 1948 x-cloak> 1949 1950 <a class="underline" 1951 :href="search_term ? '/search?type=page,article,product&q=' + encodeURIComponent(search_term) : '/search'"> 1952 View All Results 1953 </a> 1954 </div> 1955 1956 1957 <div x-show="!search_loading && $refs.searchInputMobile.value.length > 0" 1958 x-cloak> 1959 1960 <div class="p-4" 1961 x-show="(search_items && search_items.length === 0) && (search_items_pages && search_items_pages.length === 0) && (search_items_articles && search_items_articles.length === 0) && !search_loading" 1962 x-cloak> 1963 <p>Sorry, there are no results for this search.</p> 1964 </div> 1965 1966 1967 <div class="p-4 border--b-width color__border-divider-1" 1968 x-show="search_items_queries && search_items_queries.length !== 0"> 1969 <template x-for="item in search_items_queries"> 1970 <div class="flex items-center"> 1971 <!-- snippets/component__icon.liquid --> 1972 1973 1974<span class="inline-flex align-middle mr-1" aria-hidden="true"> 1975 1976 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none"><g clip-path="url(#clip0_1261_1018)"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.27894 0C9.7466 1.40086e-06 12.5577 2.86507 12.5579 6.39936C12.5579 7.91034 12.042 9.29766 11.1828 10.3925C11.1995 10.4053 11.2171 10.4178 11.2323 10.4333L15.8645 15.1546C16.0493 15.3431 16.0446 15.6547 15.8532 15.85C15.6616 16.0452 15.3557 16.0506 15.1708 15.8621L10.5378 11.1407C10.5309 11.1336 10.526 11.1247 10.5196 11.1173C9.40229 12.1612 7.91411 12.7996 6.27894 12.7996C2.81118 12.7996 0 9.93379 0 6.39936C0.000154841 2.86507 2.81127 0 6.27894 0ZM6.27894 1.00001C3.35311 1.00001 0.981104 3.41732 0.980949 6.39936C0.980949 9.38154 3.35302 11.7996 6.27894 11.7996C9.20486 11.7996 11.5769 9.38154 11.5769 6.39936C11.5768 3.41732 9.20477 1.00001 6.27894 1.00001Z" fill="#3D3D3D"/></g><defs><clipPath id="clip0_1261_1018"><rect width="16" height="16" fill="white"/></clipPath></defs></svg> 1977 1978 1979 1980</span> 1981 <a class="overflow-hidden no-underline whitespace-nowrap text-ellipsis" 1982 :href="item.url" 1983 x-html="item.styled_text"> 1984 </a> 1985 </div> 1986 </template> 1987 </div> 1988 1989 1990 <div class="p-4 border--b-width 1991 color__border-divider-1" 1992 x-show="search_items_pages && search_items_pages.length !== 0">
1993 <span class="pb-2 no-underline type--small" aria-hidden="true"> 1994 <strong>Pages</strong> 1995 </span> 1996 <template x-for="item in search_items_pages"> 1997 <div class="flex items-center"> 1998 <!-- snippets/component__icon.liquid --> 1999 2000 2001<span class="inline-flex align-middle mr-1" aria-hidden="true"> 2002 2003 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none"><g clip-path="url(#clip0_1261_1018)"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.27894 0C9.7466 1.40086e-06 12.5577 2.86507 12.5579 6.39936C12.5579 7.91034 12.042 9.29766 11.1828 10.3925C11.1995 10.4053 11.2171 10.4178 11.2323 10.4333L15.8645 15.1546C16.0493 15.3431 16.0446 15.6547 15.8532 15.85C15.6616 16.0452 15.3557 16.0506 15.1708 15.8621L10.5378 11.1407C10.5309 11.1336 10.526 11.1247 10.5196 11.1173C9.40229 12.1612 7.91411 12.7996 6.27894 12.7996C2.81118 12.7996 0 9.93379 0 6.39936C0.000154841 2.86507 2.81127 0 6.27894 0ZM6.27894 1.00001C3.35311 1.00001 0.981104 3.41732 0.980949 6.39936C0.980949 9.38154 3.35302 11.7996 6.27894 11.7996C9.20486 11.7996 11.5769 9.38154 11.5769 6.39936C11.5768 3.41732 9.20477 1.00001 6.27894 1.00001Z" fill="#3D3D3D"/></g><defs><clipPath id="clip0_1261_1018"><rect width="16" height="16" fill="white"/></clipPath></defs></svg> 2004 2005 2006 2007</span> 2008 <a class="overflow-hidden no-underline whitespace-nowrap text-ellipsis" 2009 :href="item.url" 2010 :aria-label="item.title + ', Pages'" 2011 x-text="item.title"> 2012 </a> 2013 </div> 2014 </template> 2015 </div> 2016 2017 2018 <div class="p-4 border--b-width 2019 color__border-divider-1" 2020 x-show="search_items_collections && search_items_collections.length !== 0"> 2021 <span class="pb-2 no-underline type--small" aria-hidden="true"> 2022 <strong>Collections</strong> 2023 </span> 2024 <template x-for="item in search_items_collections"> 2025 <div class="flex items-center"> 2026 <!-- snippets/component__icon.liquid --> 2027 2028 2029<span class="inline-flex align-middle mr-1" aria-hidden="true"> 2030 2031 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none"><g clip-path="url(#clip0_1261_1018)"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.27894 0C9.7466 1.40086e-06 12.5577 2.86507 12.5579 6.39936C12.5579 7.91034 12.042 9.29766 11.1828 10.3925C11.1995 10.4053 11.2171 10.4178 11.2323 10.4333L15.8645 15.1546C16.0493 15.3431 16.0446 15.6547 15.8532 15.85C15.6616 16.0452 15.3557 16.0506 15.1708 15.8621L10.5378 11.1407C10.5309 11.1336 10.526 11.1247 10.5196 11.1173C9.40229 12.1612 7.91411 12.7996 6.27894 12.7996C2.81118 12.7996 0 9.93379 0 6.39936C0.000154841 2.86507 2.81127 0 6.27894 0ZM6.27894 1.00001C3.35311 1.00001 0.981104 3.41732 0.980949 6.39936C0.980949 9.38154 3.35302 11.7996 6.27894 11.7996C9.20486 11.7996 11.5769 9.38154 11.5769 6.39936C11.5768 3.41732 9.20477 1.00001 6.27894 1.00001Z" fill="#3D3D3D"/></g><defs><clipPath id="clip0_1261_1018"><rect width="16" height="16" fill="white"/></clipPath></defs></svg> 2032 2033 2034 2035</span> 2036 <a class="overflow-hidden no-underline whitespace-nowrap text-ellipsis" 2037 :href="item.url" 2038 :aria-label="item.title + ', Collections'" 2039 x-text="item.title"> 2040 </a> 2041 </div> 2042 </template> 2043 </div> 2044 2045 2046 <div class="p-4 border--b-width color__border-divider-1" 2047 x-show="search_items_articles && search_items_articles.length !== 0"> 2048 <span class="pb-2 no-underline type--small" aria-hidden="true"> 2049 <strong>Articles</strong> 2050 </span> 2051 <template x-for="item in search_items_articles"> 2052 <div class="flex items-center"> 2053 <!-- snippets/component__icon.liquid --> 2054 2055 2056<span class="inline-flex align-middle mr-1" aria-hidden="true"> 2057 2058 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none"><g clip-path="url(#clip0_1261_1018)"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.27894 0C9.7466 1.40086e-06 12.5577 2.86507 12.5579 6.39936C12.5579 7.91034 12.042 9.29766 11.1828 10.3925C11.1995 10.4053 11.2171 10.4178 11.2323 10.4333L15.8645 15.1546C16.0493 15.3431 16.0446 15.6547 15.8532 15.85C15.6616 16.0452 15.3557 16.0506 15.1708 15.8621L10.5378 11.1407C10.5309 11.1336 10.526 11.1247 10.5196 11.1173C9.40229 12.1612 7.91411 12.7996 6.27894 12.7996C2.81118 12.7996 0 9.93379 0 6.39936C0.000154841 2.86507 2.81127 0 6.27894 0ZM6.27894 1.00001C3.35311 1.00001 0.981104 3.41732 0.980949 6.39936C0.980949 9.38154 3.35302 11.7996 6.27894 11.7996C9.20486 11.7996 11.5769 9.38154 11.5769 6.39936C11.5768 3.41732 9.20477 1.00001 6.27894 1.00001Z" fill="#3D3D3D"/></g><defs><clipPath id="clip0_1261_1018"><rect width="16" height="16" fill="white"/></clipPath></defs></svg> 2059 2060 2061 2062</span> 2063 <a class="overflow-hidden no-underline whitespace-nowrap text-ellipsis" 2064 :href="item.url" 2065 :aria-label="item.title + ', Articles'" 2066 x-text="item.title"> 2067 </a> 2068 </div> 2069 </template> 2070 </div> 2071 2072 2073 <div class="p-4" 2074 x-show="search_items && search_items.length != 0">
2075 <span class="pb-2 no-underline type--small" aria-hidden="true"> 2076 <strong>Products</strong> 2077 </span> 2078 2079 <div class="grid grid-cols-1 gap-2 md:gap-4"> 2080 <template x-for="item in search_items"> 2081 <a class="flex items-center w-full overflow-hidden no-underline hover:no-underline border--width border--radius color__bg-body color__text color__border-divider-1" 2082 :href="item.url" 2083 :aria-label="item.title + ', Products'"> 2084 <div class="w-[25%] h-full flex-none"> 2085 <div class="object-cover flex items-center aspect-[1/1] aspect-w-1 aspect-h-1 h-full max-w-full color__bg-overlay-1"> 2086 <img class="object-cover w-full h-full color__bg-overlay-1" 2087 width="180" 2088 loading="lazy" 2089 :src="item.image + '&width=180'" 2090 alt="" /> 2091 </div> 2092 </div> 2093 2094 <div class="p-2 px-4 grow md:py-4"> 2095 <p class="mb-0 type--base !leading-tight" 2096 x-text="item.title"></p> 2097 <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75 mb-0.5"> 2098 2099 2100 </ul> 2101 2102 <p class="mb-0 type--small"> 2103 <span class="type--small !leading-tight" 2104 x-html="Shopify.formatMoney(item.price)"> 2105 <!-- snippets/component__format-price.liquid --> 2106 2107 2108 2109 </span> 2110 <span x-show="item.compare_at_price_max > item.price"> 2111 <s class="type--small !leading-tight" 2112 x-html="Shopify.formatMoney(item.compare_at_price_max)"> 2113 <!-- snippets/component__format-price.liquid --> 2114 2115 2116 2117 </s> 2118 </span> 2119 </p> 2120 </div> 2121 </a> 2122 2123 </template> 2124 </div> 2125 </div> 2126 2127 </div> 2128 2129 </div> 2130 </div> 2131 2132 </div> 2133 2134 </div> 2135 </form> 2136 2137 2138 <div 2139 class="fixed inset-0 bg-black bg-opacity-25" 2140 aria-hidden="true" 2141 @click="search_active = false; hide_mobile_input = true;" 2142 x-show="search_active" 2143 2144 x-transition:enter="animation-300" 2145 x-transition:enter-start="opacity-0" 2146 x-transition:enter-end="opacity-100" 2147 x-transition:leave="animation-300" 2148 x-transition:leave-start="opacity-100" 2149 x-transition:leave-end="opacity-0" 2150 2151 x-cloak> 2152 </div> 2153 2154</div> 2155 2156 </div> 2157 2158 2159 <div 2160 class=" 2161 md:flex lrg-up items-stretch justify-between hidden 2162 window--wide 2163 2164 flex-nowrap 2165 2166 2167 2168 " 2169 > 2170 2171 2172 2173 <!-- snippets/header__search-desktop.liquid --> 2174<style data-shopify> 2175 .search-desktop-dropdown a:focus, 2176 .search-desktop-dropdown a:focus-visible { 2177 text-decoration: underline; 2178 background-color: var(--color__bg-overlay-light-1); 2179 } 2180</style> 2181 2182 2183 2184<div 2185 class="no-js--hide left-0 right-0 top-1/2 flex items-center justify-center flex-grow py-0 2186 2187 window--wide absolute !px-6 2188 " 2189 x-data="{ search_announcement: '' }" 2190 x-init="$watch('search_loading', (loading) => { 2191 if (loading || !search_term) return; 2192 const count = search_items_queries.length + search_items_pages.length + search_items_articles.length + search_items_collections.length + search_items.filter(i => i.vendor !== 'Order Protection').length; 2193 const message = count > 0 ? count + ' results found for ' + search_term : 'No results found for ' + search_term; 2194 search_announcement = ''; 2195 $nextTick(() => { search_announcement = message; }); 2196 })"> 2197 <div role="status"
2198 aria-live="polite" 2199 aria-atomic="true" 2200 class="sr-only" 2201 x-text="search_announcement"> 2202 </div> 2203 2204 <div 2205 class="flex-grow w-full 2206 2207 window--wide !px-6 absolute 2208 " 2209 x-data="{ 2210 params: { 2211 author: false, 2212 body: true, 2213 product_type: true, 2214 tag: true, 2215 title: true, 2216 variants_barcode: false, 2217 variants_sku: true, 2218 variants_title: true, 2219 vendor: false, 2220 }, 2221 resources: { 2222 article: true, 2223 collection: true, 2224 page: true, 2225 product: true, 2226 query: true 2227 } 2228 }" 2229 x-show="search_visible" 2230 x-cloak 2231 @keydown.arrow-down.window="if (!search_active) return; const links=[...($refs.searchDropdown?.querySelectorAll('a[href]')||[])].filter(el=>el.offsetParent!==null); if (!links.length) return; $event.preventDefault(); const current=links.indexOf(document.activeElement); const next=current===-1?0:Math.min(current+1,links.length-1); links[next]?.focus()" 2232 @keydown.arrow-up.window="if (!search_active) return; const links=[...($refs.searchDropdown?.querySelectorAll('a[href]')||[])].filter(el=>el.offsetParent!==null); if (!links.length) return; $event.preventDefault(); const current=links.indexOf(document.activeElement); if (current<=0) { $refs.searchInput.focus(); } else { links[current-1].focus(); }" 2233 @focusout="$nextTick(() => { if (search_active && !$el.contains(document.activeElement)) { search_active = false; search_visible = false; } })"> 2234 2235 <form 2236 action="/search" 2237 method='get'> 2238 <div 2239 class="relative" 2240 :class="{ 'z-50': search_active }"> 2241 2242 2243 <input 2244 type="hidden" 2245 name="type" 2246 value="page,article,product"> 2247 2248 2249 <div 2250 class="relative" 2251 :class="{ 'z-10': search_active }"> 2252 <label 2253 class="sr-only" 2254 for="search-desktop"> 2255 Search 2256 </label> 2257 <input 2258 id="search-desktop" 2259 class="form-input !pl-8 py-2 color__text !min-h-0 max-h-[35px] 2260 color__border-divider-1 2261 " 2262 type="text" 2263 name="q" 2264 autocomplete="off" 2265 placeholder="Search by products, colors, or more..." 2266 x-ref="searchInput" 2267 @focus="search_active = true" 2268 @keydown.escape.prevent="search_active = false; $refs.searchInput.value = ''; search_visible = false;" 2269 @input.debounce="fetchAndUpdateSearch($event, params, resources)" 2270 /> 2271 2272 2273 <div class="absolute top-0 flex items-center h-full right-2"> 2274 <button class="btn btn--smaller btn--plain !bg-transparent !border-0" 2275 aria-label="Cancel Search" 2276 title="Cancel Search" 2277 type="button" 2278 @click=" 2279 search_active = false; $refs.searchInput.value = ''; 2280 search_visible = false; 2281 " 2282 x-show="search_active" 2283 x-cloak> 2284 <!-- snippets/component__icon.liquid --> 2285 2286 2287<span class="inline-flex align-middle " aria-hidden="true"> 2288 2289 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none"><path d="M14.3746 13.6478C14.5695 13.8428 14.5695 14.1588 14.3746 14.3538C14.1796 14.5487 13.8635 14.5487 13.6686 14.3538L1.66699 2.35219C1.47204 2.15724 1.47204 1.84116 1.66699 1.64621C1.86194 1.45126 2.17802 1.45126 2.37297 1.64621L14.3746 13.6478Z" fill="#3D3D3D"/><path d="M1.64621 13.6478C1.45126 13.8428 1.45126 14.1588 1.64621 14.3538C1.84116 14.5487 2.15724 14.5487 2.35219 14.3538L14.3538 2.35219C14.5487 2.15724 14.5487 1.84116 14.3538 1.64621C14.1588 1.45126 13.8428 1.45126 13.6478 1.64621L1.64621 13.6478Z" fill="#3D3D3D"/></svg> 2290 2291 2292</span> 2293 </button> 2294 </div> 2295 2296 2297 <!-- snippets/component__icon.liquid --> 2298 2299 2300<span class="inline-flex align-middle pointer-events-none absolute !flex items-center 2301 top-0 left-2 h-full opacity-50 color__text" aria-hidden="true"> 2302 2303 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none"><g clip-path="url(#clip0_1261_1018)"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.27894 0C9.7466 1.40086e-06 12.5577 2.86507 12.5579 6.39936C12.5579 7.91034 12.042 9.29766 11.1828 10.3925C11.1995 10.4053 11.2171 10.4178 11.2323 10.4333L15.8645 15.1546C16.0493 15.3431 16.0446 15.6547 15.8532 15.85C15.6616 16.0452 15.3557 16.0506 15.1708 15.8621L10.5378 11.1407C10.5309 11.1336 10.526 11.1247 10.5196 11.1173C9.40229 12.1612 7.91411 12.7996 6.27894 12.7996C2.81118 12.7996 0 9.93379 0 6.39936C0.000154841 2.86507 2.81127 0 6.27894 0ZM6.27894 1.00001C3.35311 1.00001 0.981104 3.41732 0.980949 6.39936C0.980949 9.38154 3.35302 11.7996 6.27894 11.7996C9.20486 11.7996 11.5769 9.38154 11.5769 6.39936C11.5768 3.41732 9.20477 1.00001 6.27894 1.00001Z" fill="#3D3D3D"/></g><defs><clipPath id="clip0_1261_1018"><rect width="16" height="16" fill="white"/></clipPath></defs></svg> 2304 2305 2306 2307</span> 2308 </div> 2309 2310 2311 <div 2312 class="search-desktop-dropdown absolute overflow-hidden shadow-md border--width border--radius animation-500 pt-16 -left-3 -right-3 -top-3 2313 color__border-divider-1 2314 color__bg-body color__text 2315 " 2316 x-ref="searchDropdown" 2317 x-show="search_active" 2318 x-cloak 2319 @keydown.escape.prevent="search_active = false; $refs.searchInput.value = ''; search_visible = false;"> 2320 <div class="flex flex-wrap h-full px-4 -mx-4"> 2321 <div class="h-[70vh] max-h-[600px] w-full overflow-y-auto"> 2322 2323 2324 2325 <div class="p-4" 2326 x-show="!search_loading && $refs.searchInput.value.length == 0">
2327 <span class="block pb-2 no-underline type--small"> 2328 <strong>Top searches</strong> 2329 </span> 2330 2331 <a class="block no-underline" 2332 href="/collections/shop-all-products"> 2333 Shop All 2334 </a> 2335 2336 <a class="block no-underline" 2337 href="/collections/new-arrivals"> 2338 New Arrivals 2339 </a> 2340 2341 <a class="block no-underline" 2342 href="/collections/kitchen"> 2343 ^Kitchen 2344 </a> 2345 2346 <a class="block no-underline" 2347 href="/collections/bathroom"> 2348 ^Bathroom 2349 </a> 2350 2351 <a class="block no-underline" 2352 href="/collections/accessories"> 2353 Accessories 2354 </a> 2355 2356 <a class="block no-underline" 2357 href="/collections/pet"> 2358 Pet 2359 </a> 2360 2361 <a class="block no-underline" 2362 href="/collections/bundles"> 2363 Save on Sets 2364 </a> 2365 2366 <a class="block no-underline" 2367 href="/pages/care-and-cleaning"> 2368 How to Clean 2369 </a> 2370 2371 </div> 2372 2373 2374 2375 <div class="p-4" 2376 x-show="search_loading" 2377 x-cloak> 2378 <div class="btn--load btn--loading"> 2379 <div class="btn__content">Loading...</div> 2380 <div class="btn__spinner"> 2381 <!-- snippets/component__icon.liquid --> 2382 2383 2384<span class="inline-flex align-middle " aria-hidden="true"> 2385 2386 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-loader"><line x1="12" y1="2" x2="12" y2="6"></line><line x1="12" y1="18" x2="12" y2="22"></line><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"></line><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"></line><line x1="2" y1="12" x2="6" y2="12"></line><line x1="18" y1="12" x2="22" y2="12"></line><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"></line><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"></line></svg> 2387 2388</span> 2389 </div> 2390 </div> 2391 </div> 2392 2393 2394 <div 2395 x-show="!search_loading && $refs.searchInput.value.length > 0" 2396 x-cloak> 2397 2398 2399 <div 2400 class="sticky top-0 z-10 border--b-width p-4 2401 color__border-divider-1 2402 color__bg-body color__text 2403 " 2404 x-show="(search_items && search_items.length != 0) || (search_items_pages && search_items_pages.length !== 0) || (search_items_articles && search_items_articles.length !== 0) && !search_loading" 2405 x-cloak> 2406 <a class="underline" 2407 :href="search_term ? '/search?type=page,article,product&q=' + encodeURIComponent(search_term) : '/search'"> 2408 View All Results 2409 </a> 2410 </div> 2411 2412 2413 <div class="p-4" 2414 x-show="(search_items && search_items.length === 0) && (search_items_pages && search_items_pages.length === 0) && (search_items_articles && search_items_articles.length === 0) && !search_loading" 2415 x-cloak> 2416 <p>Sorry, there are no results for this search.</p> 2417 </div> 2418 2419 2420 <div 2421 class="p-4 border--b-width 2422 color__border-divider-1 2423 " 2424 x-show="search_items_queries && search_items_queries.length !== 0"> 2425 <template x-for="(item,index) in search_items_queries"> 2426 <div class="flex items-center"> 2427 <!-- snippets/component__icon.liquid --> 2428 2429 2430<span class="inline-flex align-middle mr-1" aria-hidden="true"> 2431 2432 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none"><g clip-path="url(#clip0_1261_1018)"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.27894 0C9.7466 1.40086e-06 12.5577 2.86507 12.5579 6.39936C12.5579 7.91034 12.042 9.29766 11.1828 10.3925C11.1995 10.4053 11.2171 10.4178 11.2323 10.4333L15.8645 15.1546C16.0493 15.3431 16.0446 15.6547 15.8532 15.85C15.6616 16.0452 15.3557 16.0506 15.1708 15.8621L10.5378 11.1407C10.5309 11.1336 10.526 11.1247 10.5196 11.1173C9.40229 12.1612 7.91411 12.7996 6.27894 12.7996C2.81118 12.7996 0 9.93379 0 6.39936C0.000154841 2.86507 2.81127 0 6.27894 0ZM6.27894 1.00001C3.35311 1.00001 0.981104 3.41732 0.980949 6.39936C0.980949 9.38154 3.35302 11.7996 6.27894 11.7996C9.20486 11.7996 11.5769 9.38154 11.5769 6.39936C11.5768 3.41732 9.20477 1.00001 6.27894 1.00001Z" fill="#3D3D3D"/></g><defs><clipPath id="clip0_1261_1018"><rect width="16" height="16" fill="white"/></clipPath></defs></svg> 2433 2434 2435 2436</span> 2437 <a class="overflow-hidden no-underline whitespace-nowrap text-ellipsis" 2438 :href="item.url" 2439 x-html="item.styled_text"> 2440 </a> 2441 </div> 2442 </template> 2443 </div> 2444 2445 2446 <div 2447 class="p-4 border--b-width 2448 color__border-divider-1 2449 " 2450 x-show="search_items_pages && search_items_pages.length !== 0">
2451 <span class="pb-2 no-underline type--small" aria-hidden="true"> 2452 <strong>Pages</strong> 2453 </span> 2454 <template x-for="(item,index) in search_items_pages"> 2455 <div class="flex items-center"> 2456 <!-- snippets/component__icon.liquid --> 2457 2458 2459<span class="inline-flex align-middle mr-1" aria-hidden="true"> 2460 2461 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none"><g clip-path="url(#clip0_1261_1018)"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.27894 0C9.7466 1.40086e-06 12.5577 2.86507 12.5579 6.39936C12.5579 7.91034 12.042 9.29766 11.1828 10.3925C11.1995 10.4053 11.2171 10.4178 11.2323 10.4333L15.8645 15.1546C16.0493 15.3431 16.0446 15.6547 15.8532 15.85C15.6616 16.0452 15.3557 16.0506 15.1708 15.8621L10.5378 11.1407C10.5309 11.1336 10.526 11.1247 10.5196 11.1173C9.40229 12.1612 7.91411 12.7996 6.27894 12.7996C2.81118 12.7996 0 9.93379 0 6.39936C0.000154841 2.86507 2.81127 0 6.27894 0ZM6.27894 1.00001C3.35311 1.00001 0.981104 3.41732 0.980949 6.39936C0.980949 9.38154 3.35302 11.7996 6.27894 11.7996C9.20486 11.7996 11.5769 9.38154 11.5769 6.39936C11.5768 3.41732 9.20477 1.00001 6.27894 1.00001Z" fill="#3D3D3D"/></g><defs><clipPath id="clip0_1261_1018"><rect width="16" height="16" fill="white"/></clipPath></defs></svg> 2462 2463 2464 2465</span> 2466 <a 2467 class="overflow-hidden no-underline whitespace-nowrap text-ellipsis" 2468 :href="item.url" 2469 :aria-label="item.title + ', Pages'" 2470 x-text="item.title"> 2471 </a> 2472 </div> 2473 </template> 2474 </div> 2475 2476 2477 <div 2478 class="p-4 border--b-width 2479 color__border-divider-1 2480 " 2481 x-show="search_items_articles && search_items_articles.length !== 0" > 2482 <span class="pb-2 no-underline type--small" aria-hidden="true"> 2483 <strong>Articles</strong> 2484 </span> 2485 <template x-for="(item,index) in search_items_articles"> 2486 <div class="flex items-center"> 2487 <!-- snippets/component__icon.liquid --> 2488 2489 2490<span class="inline-flex align-middle mr-1" aria-hidden="true"> 2491 2492 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none"><g clip-path="url(#clip0_1261_1018)"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.27894 0C9.7466 1.40086e-06 12.5577 2.86507 12.5579 6.39936C12.5579 7.91034 12.042 9.29766 11.1828 10.3925C11.1995 10.4053 11.2171 10.4178 11.2323 10.4333L15.8645 15.1546C16.0493 15.3431 16.0446 15.6547 15.8532 15.85C15.6616 16.0452 15.3557 16.0506 15.1708 15.8621L10.5378 11.1407C10.5309 11.1336 10.526 11.1247 10.5196 11.1173C9.40229 12.1612 7.91411 12.7996 6.27894 12.7996C2.81118 12.7996 0 9.93379 0 6.39936C0.000154841 2.86507 2.81127 0 6.27894 0ZM6.27894 1.00001C3.35311 1.00001 0.981104 3.41732 0.980949 6.39936C0.980949 9.38154 3.35302 11.7996 6.27894 11.7996C9.20486 11.7996 11.5769 9.38154 11.5769 6.39936C11.5768 3.41732 9.20477 1.00001 6.27894 1.00001Z" fill="#3D3D3D"/></g><defs><clipPath id="clip0_1261_1018"><rect width="16" height="16" fill="white"/></clipPath></defs></svg> 2493 2494 2495 2496</span> 2497 <a 2498 class="overflow-hidden no-underline whitespace-nowrap text-ellipsis" 2499 :href="item.url" 2500 :aria-label="item.title + ', Articles'" 2501 x-text="item.title"> 2502 </a> 2503 </div> 2504 </template> 2505 </div> 2506 2507 2508 <div 2509 class="p-4 border--b-width 2510 color__border-divider-1 2511 " 2512 x-show="search_items_collections && search_items_collections.length !== 0">
2513 <span class="pb-2 no-underline type--small" aria-hidden="true"> 2514 <strong>Collections</strong> 2515 </span> 2516 <template x-for="(item,index) in search_items_collections"> 2517 <div class="flex items-center"> 2518 <!-- snippets/component__icon.liquid --> 2519 2520 2521<span class="inline-flex align-middle mr-1" aria-hidden="true"> 2522 2523 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none"><g clip-path="url(#clip0_1261_1018)"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.27894 0C9.7466 1.40086e-06 12.5577 2.86507 12.5579 6.39936C12.5579 7.91034 12.042 9.29766 11.1828 10.3925C11.1995 10.4053 11.2171 10.4178 11.2323 10.4333L15.8645 15.1546C16.0493 15.3431 16.0446 15.6547 15.8532 15.85C15.6616 16.0452 15.3557 16.0506 15.1708 15.8621L10.5378 11.1407C10.5309 11.1336 10.526 11.1247 10.5196 11.1173C9.40229 12.1612 7.91411 12.7996 6.27894 12.7996C2.81118 12.7996 0 9.93379 0 6.39936C0.000154841 2.86507 2.81127 0 6.27894 0ZM6.27894 1.00001C3.35311 1.00001 0.981104 3.41732 0.980949 6.39936C0.980949 9.38154 3.35302 11.7996 6.27894 11.7996C9.20486 11.7996 11.5769 9.38154 11.5769 6.39936C11.5768 3.41732 9.20477 1.00001 6.27894 1.00001Z" fill="#3D3D3D"/></g><defs><clipPath id="clip0_1261_1018"><rect width="16" height="16" fill="white"/></clipPath></defs></svg> 2524 2525 2526 2527</span> 2528 <a 2529 class="overflow-hidden no-underline whitespace-nowrap text-ellipsis" 2530 :href="item.url" 2531 :aria-label="item.title + ', Collections'" 2532 x-text="item.title"> 2533 </a> 2534 </div> 2535 </template> 2536 </div> 2537 2538 2539 <div 2540 class="p-4" 2541 x-show="search_items && search_items.length != 0"> 2542 <span class="pb-2 no-underline type--small" aria-hidden="true"> 2543 <strong>Products</strong> 2544 </span> 2545 <div class="grid grid-cols-2 gap-2 md:gap-4"> 2546 <template x-for="(item,index) in search_items.filter(i => i.vendor !== 'Order Protection')"> 2547 <a class="flex items-center w-full overflow-hidden no-underline hover:no-underline border--width border--radius color__bg-body color__text color__border-divider-1" 2548 :href="item.url" 2549 :aria-label="item.title + ', Products'"> 2550 <div class="w-[20%] h-full flex flex-col shrink-0 overflow-hidden"> 2551 <div class="flex items-center object-cover aspect-[1/1] aspect-w-1 aspect-h-1 h-full max-w-full color__bg-overlay-1"> 2552 <img class="object-cover w-full h-full color__bg-overlay-1" 2553 width="95" 2554 loading="lazy" 2555 :src="item.image + '&width=95'" 2556 alt=""/> 2557 </div> 2558 </div> 2559 <div class="p-2 px-4 grow md:py-4"> 2560 <p class="mb-0 type--base !leading-tight" 2561 x-text="item.title"></p> 2562 <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75 mb-0.5"> 2563 2564 2565 </ul> 2566 2567 <p class="mb-0 type--small"> 2568 <span class="type--small !leading-tight" 2569 x-html="Shopify.formatMoney(item.price)"> 2570 <!-- snippets/component__format-price.liquid --> 2571 2572 2573 2574 </span> 2575 <span x-show="item.compare_at_price_max > item.price"> 2576 <s class="type--small !leading-tight" 2577 x-html="Shopify.formatMoney(item.compare_at_price_max)"> 2578 <!-- snippets/component__format-price.liquid --> 2579 2580 2581 2582 </s> 2583 </span> 2584 </p> 2585 </div> 2586 </a> 2587 </template> 2588 </div> 2589 </div> 2590 2591 </div> 2592 2593 </div> 2594 </div> 2595 </div> 2596 2597 </div> 2598 </form> 2599 2600 2601 <div 2602 class="fixed inset-0 bg-black bg-opacity-25" 2603 aria-hidden="true" 2604 @click="search_active = false; 2605 search_visible = false;" 2606 x-show="search_active" 2607 x-cloak> 2608 </div> 2609 2610 </div> 2611</div> 2612 2613 2614 2615 2616 <div class="md:py-5 flex items-center max-w-xs py-2 2617 "> 2618 2619 2620 2621 2622 2623 <a class="!inline-block relative flex items-center hidden" 2624 style="width: 125px; height: 20px;" 2625 href="/" 2626 title="Dorai Home"> 2627 <!-- snippets/component__image.liquid --> 2628 2629 2630 2631 2632 2633 2634 2635 2636<div 2637 class=" 2638 js-picture w-full h-full overflow-hidden flex items-center 2639 2640 !bg-transparent 2641 "> 2642 <picture 2643 id="img-FILES-DORAI-LOGOSVG_dt" 2644 class=" 2645 w-full flex items-center justify-center overflow-hidden 2646 2647 2648 "> 2649 <img src="//doraihome.com/cdn/shop/files/dorai-logo.svg?v=1726241081&width=400" alt="Quick Dry Home Goods by Dorai Home" srcset="//doraihome.com/cdn/shop/files/dorai-logo.svg?v=1726241081&width=100 100w, //doraihome.com/cdn/shop/files/dorai-logo.svg?v=1726241081&width=200 200w, //doraihome.com/cdn/shop/files/dorai-logo.svg?v=1726241081&width=300 300w, //doraihome.com/cdn/shop/files/dorai-logo.svg?v=1726241081&width=400 400w" width="400" height="65" loading=" 2650 2651 lazy 2652 2653" class=" 2654 js-image 2655 w-full h-full object-contain 2656 2657 min-h-full 2658 2659 2660 animation-300 2661 2662
2663"> 2664 </picture> 2665</div> 2666 </a> 2667 2668 2669 </div> 2670 2671 2672 <div class="flex items-center justify-end flex-shrink pl-2 text-right"> 2673
2673<script>console.log("section.settings.enable_search: true, section.settings.bar_layout_desktop: left-inline, section.settings.bar_button_search_type: icon")</script>
2673 2674 2675 2676 2677 <button 2678 type="button" 2679 class="inline-flex pl-4 ml-2 no-underline type__nav hover:underline" 2680 aria-label="Search" 2681 aria-controls="search-desktop" 2682 :aria-expanded="search_visible" 2683 @click="search_visible = true; search_active = true; $nextTick(() => { document.querySelector('#search-desktop').focus(); });"> 2684 <!-- snippets/component__icon.liquid --> 2685 2686 2687<span class="inline-flex align-middle " aria-hidden="true"> 2688 2689 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none"><g clip-path="url(#clip0_1261_1018)"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.27894 0C9.7466 1.40086e-06 12.5577 2.86507 12.5579 6.39936C12.5579 7.91034 12.042 9.29766 11.1828 10.3925C11.1995 10.4053 11.2171 10.4178 11.2323 10.4333L15.8645 15.1546C16.0493 15.3431 16.0446 15.6547 15.8532 15.85C15.6616 16.0452 15.3557 16.0506 15.1708 15.8621L10.5378 11.1407C10.5309 11.1336 10.526 11.1247 10.5196 11.1173C9.40229 12.1612 7.91411 12.7996 6.27894 12.7996C2.81118 12.7996 0 9.93379 0 6.39936C0.000154841 2.86507 2.81127 0 6.27894 0ZM6.27894 1.00001C3.35311 1.00001 0.981104 3.41732 0.980949 6.39936C0.980949 9.38154 3.35302 11.7996 6.27894 11.7996C9.20486 11.7996 11.5769 9.38154 11.5769 6.39936C11.5768 3.41732 9.20477 1.00001 6.27894 1.00001Z" fill="#3D3D3D"/></g><defs><clipPath id="clip0_1261_1018"><rect width="16" height="16" fill="white"/></clipPath></defs></svg> 2690 2691 2692 2693</span> 2694 </button> 2695 <a 2696 class="inline-flex pl-4 ml-2 no-underline type__nav hover:underline" 2697 href="/account" 2698 rel="nofollow" 2699 title="Login" 2700 > 2701 <!-- snippets/component__icon.liquid --> 2702 2703 2704<span class="inline-flex align-middle " aria-hidden="true"> 2705 2706 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 15 16" fill="none"> 2707 <path d="M7.31752 8.22758C11.2725 8.22768 14.5201 11.4105 14.6342 15.3447L14.635 15.3508V15.3577C14.6349 15.6835 14.3814 15.9998 14.0015 16H0.633541C0.266377 16 4.57048e-07 15.6971 0 15.3665V15.3543L0.0113288 15.0981C0.0883265 13.8719 0.471486 12.7212 1.08843 11.7229V11.7107L1.15989 11.6001C2.46063 9.57797 4.74043 8.22758 7.31752 8.22758ZM7.31752 9.11994C5.10263 9.11994 3.13556 10.2591 1.98079 11.98V11.9818L1.91021 12.0916C1.3392 12.979 0.982458 14.0085 0.905431 15.1076H13.7287C13.4956 11.7753 10.6984 9.12004 7.31752 9.11994Z" fill="#3D3D3D"/> 2708 <path d="M10.048 3.6226C10.0478 2.11469 8.82489 0.892359 7.31693 0.892359C5.80916 0.892566 4.5869 2.11482 4.5867 3.6226C4.5867 5.13055 5.80903 6.3535 7.31693 6.3537C8.82501 6.3537 10.048 5.13067 10.048 3.6226ZM10.9404 3.6226C10.9404 5.62351 9.31785 7.24606 7.31693 7.24606C5.31619 7.24585 3.69434 5.62338 3.69434 3.6226C3.69454 1.62198 5.31632 0.000206937 7.31693 0C9.31772 0 10.9402 1.62186 10.9404 3.6226Z" fill="#3D3D3D"/> 2709 </svg> 2710 2711 2712</span> 2713 </a> 2714 2715 2716 2717 2718 2719 2720 2721 2722 <a 2723 id="cartIcon" 2724 class="type__nav relative inline-flex items-center pl-4 ml-2 !no-underline" 2725 href="/cart" 2726 rel="nofollow" 2727 title="Cart" 2728 aria-label="Cart" 2729 @click.prevent="cart_drawer = true; if(enable_audio) { playAudioIfEnabled(click_audio)}"> 2730 <!-- snippets/component__icon.liquid --> 2731 2732 2733<span class="inline-flex align-middle " aria-hidden="true"> 2734 2735 <svg xmlns="http://www.w3.org/2000/svg" width="" height="20" viewBox="0 0 21 16" fill="none"> 2736 <path d="M19.9545 4.12813C20.4207 4.12834 20.716 4.60051 20.5884 5.03932L20.5847 5.05011L17.2819 15.5165C17.1903 15.8064 16.9462 16.0001 16.6518 16.0001H3.99304C3.673 16.0001 3.45246 15.7703 3.36844 15.5332L3.36566 15.5253L3.36288 15.5165L0.0323221 4.99027H0.0313954C-0.100244 4.57229 0.198874 4.13794 0.615217 4.13794H16.5786L16.5878 4.12813H19.9545ZM16.9715 5.1423H1.08135L4.19877 14.9957H16.446L19.5588 5.13249H16.9807L16.9715 5.1423Z" fill="#3D3D3D"/> 2737 <path d="M12.8941 3.68595C12.894 2.21573 11.7496 1.00437 10.3605 1.00437C8.97141 1.00441 7.82691 2.21576 7.82687 3.68595V4.64029H6.87793V3.68595C6.87797 1.66106 8.44733 4.29516e-05 10.3605 0C12.2736 0 13.843 1.66104 13.843 3.68595V4.64029H12.8941V3.68595Z" fill="#3D3D3D"/> 2738 </svg> 2739 2740 2741 2742</span>
2743 <span 2744 class="absolute cart_count" 2745 x-show="cart.item_count > 0" 2746 x-cloak> 2747 <span class="color__bg-primary color__primary border__button--radius" x-text="cart.item_count">0</span> 2748 </span> 2749 </a> 2750 2751 2752 2753 2754 </div> 2755 2756 </div> 2757 </div> 2758 <div class="menu-options__wrapper color__border-divider-1 border--b-width border--t-width"> 2759 <div 2760 class=" 2761 md:flex lrg-up items-stretch justify-between hidden 2762 window--wide flex-nowrap"> 2763 2764 <div class="flex flex-wrap items-center 2765 2766 2767 type__nav 2768 2769 2770 2771 flex-grow 2772 rel-2"> 2773 2774 2775 <div 2776 class="flex-shrink desktop-menu-option__wrapper" 2777 x-data="{ dropdown_open_1: false }" 2778 @keydown.escape="dropdown_open_1 = false; $refs.trigger && $refs.trigger.focus()" 2779 @mouseleave="!$el.contains(document.activeElement) && (dropdown_open_1 = false)" 2780 @focusout="$event.relatedTarget && !$el.contains($event.relatedTarget) && (dropdown_open_1 = false)" 2781 @click.outside="dropdown_open_1 = false"><button 2782 x-ref="trigger" 2783 @mousedown.prevent 2784 @mouseenter="dropdown_open_1 = true" 2785 @keydown.enter.prevent="dropdown_open_1 = !dropdown_open_1; $nextTick(() => { if(dropdown_open_1) $el.closest('[x-data]').querySelector('#menu-panel-1 a')?.focus() })" 2786 @keydown.space.prevent="dropdown_open_1 = !dropdown_open_1; $nextTick(() => { if(dropdown_open_1) $el.closest('[x-data]').querySelector('#menu-panel-1 a')?.focus() })" 2787 :aria-expanded="dropdown_open_1.toString()" 2788 aria-controls="menu-panel-1"id="hl-SHOP_ALL-desktop" 2789 data-no-preload="true" 2790 data-pagesense-track="true" 2791 data-link-name="Shop All-desktop" 2792 class=" 2793 h-full flex items-center mr-3 block no-underline 2794 2795 2796 type__nav 2797 2798 2799 2800 pr-4 md:py-4 py-2 2801 2802 2803 mr-2 pr-4 2804 2805 top-level--link 2806 "> 2807 Shop All 2808</button> 2809 <div 2810 id="menu-panel-1" 2811 x-show="dropdown_open_1" 2812 :inert="!dropdown_open_1" 2813 x-transition:enter="transition ease-out duration-300" 2814 x-transition:enter-start="opacity-0" 2815 x-transition:enter-end="opacity-100" 2816 x-transition:leave="transition ease-in duration-200" 2817 x-transition:leave-start="opacity-100" 2818 x-transition:leave-end="opacity-0" 2819 @keydown.arrow-down.prevent="const links=[...$el.querySelectorAll('a')];const i=links.indexOf(document.activeElement);links[Math.min(i+1,links.length-1)]?.focus()" 2820 @keydown.arrow-up.prevent="const links=[...$el.querySelectorAll('a')];const i=links.indexOf(document.activeElement);if(i<=0){$refs.trigger.focus();dropdown_open_1=false;}else links[i-1]?.focus()" 2821 class="absolute block w-stretch left-center normal-case header__dropdown" 2822 style="display:none"> 2823 <div class="border--t-width border--b-width 2824 color__bg-body color__text 2825 color__border-divider-1"> 2826 2827 <div class="window--wide"> 2828 <a href="/collections/shop-all-products" 2829 class="block no-underline type__nav top-level--link pt-6 pb-1" 2830 data-pagesense-track="true">Shop All</a> 2831 <div class="flex justify-between 2832 color__border-divider-1 min-20"> 2833 2834 2835 <div class="flex flex-wrap flex-grow justify-center"> 2836 2837 <div class="py-8 pr-12 flex--expand" style="max-width:calc(100% / 4);"> 2838 2839 <span class="block mb-4 no-underline title-semibold-small child--link"> 2840 Collections 2841 </span> 2842 2843 <a href="/collections/new-arrivals" class="block mb-2 no-underline type__body child-link--child"> 2844 New Arrivals 2845 </a> 2846 2847 <a href="/collections/kitchen" class="block mb-2 no-underline type__body child-link--child"> 2848 Kitchen 2849 </a> 2850 2851 <a href="/collections/bathroom" class="block mb-2 no-underline type__body child-link--child"> 2852 Bathroom 2853 </a> 2854 2855 <a href="/collections/accessories" class="block mb-2 no-underline type__body child-link--child"> 2856 Accessories 2857 </a> 2858 2859 <a href="/collections/pet" class="block mb-2 no-underline type__body child-link--child"> 2860 Pet 2861 </a> 2862 2863 2864 </div> 2865 2866 <div class="py-8 pr-12 flex--expand" style="max-width:calc(100% / 4);"> 2867 2868 2869 <a href="/collections/clay-collection" class="desktop-nav-img__wrapper" data-pagesense-track="true" id="shop-clay-desktop"> 2870 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/092026-ClayCollection-Nav.jpg?v=1788886077" alt=""> 2871 <p class="mt-4">Shop Clay</p> 2872 </a> 2873 2874 2875 </div> 2876 2877 <div class="py-8 pr-12 flex--expand" style="max-width:calc(100% / 4);"> 2878 2879 2880 <a href="/collections/bundles" class="desktop-nav-img__wrapper" data-pagesense-track="true" id="save-on-sets-desktop"> 2881 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/082026-BuildYourOwnSet-Nav-Carousel.jpg?v=1786116686" alt=""> 2882 <p class="mt-4">Save on Sets</p> 2883 </a> 2884 2885 2886 </div> 2887 2888 <div class="py-8 pr-12 flex--expand" style="max-width:calc(100% / 4);"> 2889 2890 2891 <a href="/collections/new-arrivals" class="desktop-nav-img__wrapper" data-pagesense-track="true" id="new-arrivals-desktop"> 2892 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/092026-LaborDaySale-Nav.jpg?v=1788886077" alt=""> 2893 <p class="mt-4">New Arrivals</p> 2894 </a> 2895 2896 2897 </div> 2898 2899 </div> 2900 2901 2902 2903 2904 2905 2906 2907 2908 </div> 2909 </div> 2910 2911 </div> 2912 </div> 2913 2914 2915 </div> 2916 2917 <div 2918 class="flex-shrink desktop-menu-option__wrapper" 2919 x-data="{ dropdown_open_2: false }" 2920 @keydown.escape="dropdown_open_2 = false; $refs.trigger && $refs.trigger.focus()" 2921 @mouseleave="!$el.contains(document.activeElement) && (dropdown_open_2 = false)" 2922 @focusout="$event.relatedTarget && !$el.contains($event.relatedTarget) && (dropdown_open_2 = false)" 2923 @click.outside="dropdown_open_2 = false"><a 2924 href="/collections/new-arrivals"id="hl-NEW_ARRIVALS-desktop" 2925 data-no-preload="true" 2926 data-pagesense-track="true" 2927 data-link-name="New Arrivals-desktop" 2928 class=" 2929 h-full flex items-center mr-3 block no-underline 2930 2931 2932 type__nav 2933 2934 2935 2936 pl-4 pr-4 md:py-4 py-2 2937 2938 2939 mr-2 pr-4 2940 2941 top-level--link 2942 "> 2943 New Arrivals 2944</a> 2945 2946 </div> 2947 2948 <div 2949 class="flex-shrink desktop-menu-option__wrapper" 2950 x-data="{ dropdown_open_3: false }" 2951 @keydown.escape="dropdown_open_3 = false; $refs.trigger && $refs.trigger.focus()" 2952 @mouseleave="!$el.contains(document.activeElement) && (dropdown_open_3 = false)" 2953 @focusout="$event.relatedTarget && !$el.contains($event.relatedTarget) && (dropdown_open_3 = false)" 2954 @click.outside="dropdown_open_3 = false"><button 2955 x-ref="trigger" 2956 @mousedown.prevent 2957 @mouseenter="dropdown_open_3 = true" 2958 @keydown.enter.prevent="dropdown_open_3 = !dropdown_open_3; $nextTick(() => { if(dropdown_open_3) $el.closest('[x-data]').querySelector('#menu-panel-3 a')?.focus() })"
2959 @keydown.space.prevent="dropdown_open_3 = !dropdown_open_3; $nextTick(() => { if(dropdown_open_3) $el.closest('[x-data]').querySelector('#menu-panel-3 a')?.focus() })" 2960 :aria-expanded="dropdown_open_3.toString()" 2961 aria-controls="menu-panel-3"id="hl-^KITCHEN-desktop" 2962 data-no-preload="true" 2963 data-pagesense-track="true" 2964 data-link-name="^Kitchen-desktop" 2965 class=" 2966 h-full flex items-center mr-3 block no-underline 2967 2968 2969 type__nav 2970 2971 2972 2973 pl-4 pr-4 md:py-4 py-2 2974 2975 2976 mr-2 pr-4 2977 2978 top-level--link 2979 "> 2980 Kitchen 2981</button> 2982 <div 2983 id="menu-panel-3" 2984 x-show="dropdown_open_3" 2985 :inert="!dropdown_open_3" 2986 x-transition:enter="transition ease-out duration-300" 2987 x-transition:enter-start="opacity-0" 2988 x-transition:enter-end="opacity-100" 2989 x-transition:leave="transition ease-in duration-200" 2990 x-transition:leave-start="opacity-100" 2991 x-transition:leave-end="opacity-0" 2992 @keydown.arrow-down.prevent="const links=[...$el.querySelectorAll('a')];const i=links.indexOf(document.activeElement);links[Math.min(i+1,links.length-1)]?.focus()" 2993 @keydown.arrow-up.prevent="const links=[...$el.querySelectorAll('a')];const i=links.indexOf(document.activeElement);if(i<=0){$refs.trigger.focus();dropdown_open_3=false;}else links[i-1]?.focus()" 2994 class="absolute block w-stretch left-center normal-case header__dropdown" 2995 style="display:none"> 2996 <div class="border--t-width border--b-width 2997 color__bg-body color__text 2998 color__border-divider-1"> 2999 3000 <div class="window--wide"> 3001 <a href="/collections/kitchen" 3002 class="block no-underline type__nav top-level--link pt-6 pb-1" 3003 data-pagesense-track="true">Shop All Kitchen</a> 3004 <div class="flex justify-between 3005 color__border-divider-1 min-20"> 3006 3007 3008 <div class="flex gap-30 flex-grow"> 3009 3010 3011 <div class="py-8 flex--fixed" style="flex: 0 0 calc((100%/4)-(3*18.4px));"> 3012 3013 3014 3015 3016 <a href="/collections/dish-pads" class="desktop-nav-img__wrapper" id="dish-pads-desktop" data-pagesense-track="true"> 3017 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Kitchen-DishPads.jpg?v=1768363931" alt="~Dish Pads" /> 3018 <p class="mt-4">Dish Pads</p> 3019 </a> 3020 3021 3022 3023 </div> 3024 3025 3026 <div class="py-8 flex--fixed" style="flex: 0 0 calc((100%/4)-(3*18.4px));"> 3027 3028 3029 3030 3031 <a href="/collections/dish-racks" class="desktop-nav-img__wrapper" id="dish-racks-desktop" data-pagesense-track="true"> 3032 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Kitchen-DishRacks.jpg?v=1768363931" alt="~Dish Racks" /> 3033 <p class="mt-4">Dish Racks</p> 3034 </a> 3035 3036 3037 3038 </div> 3039 3040 3041 <div class="py-8 flex--fixed" style="flex: 0 0 calc((100%/4)-(3*18.4px));"> 3042 3043 3044 3045 3046 <a href="/collections/kitchen-accessories" class="desktop-nav-img__wrapper" id="counter-organization-desktop" data-pagesense-track="true"> 3047 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-CounterOrganization-PTH.jpg?v=1768592154" alt="~Counter Organization" /> 3048 <p class="mt-4">Counter Organization</p> 3049 </a> 3050 3051 3052 3053 </div> 3054 3055 3056 <div class="py-8 flex--fixed" style="flex: 0 0 calc((100%/4)-(3*18.4px));"> 3057 3058 3059 3060 3061 <a href="/collections/kitchen-bundles" class="desktop-nav-img__wrapper" id="kitchen-bundles-desktop" data-pagesense-track="true"> 3062 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Kitchen-Bundles.jpg?v=1768363931" alt="~Kitchen Bundles" /> 3063 <p class="mt-4">Kitchen Bundles</p> 3064 </a> 3065 3066 3067 3068 </div> 3069 3070 </div> 3071 3072 3073 3074 3075 3076 3077 3078 3079 </div> 3080 </div> 3081 3082 </div> 3083 </div> 3084 3085 3086 </div> 3087 3088 <div 3089 class="flex-shrink desktop-menu-option__wrapper" 3090 x-data="{ dropdown_open_4: false }" 3091 @keydown.escape="dropdown_open_4 = false; $refs.trigger && $refs.trigger.focus()" 3092 @mouseleave="!$el.contains(document.activeElement) && (dropdown_open_4 = false)" 3093 @focusout="$event.relatedTarget && !$el.contains($event.relatedTarget) && (dropdown_open_4 = false)" 3094 @click.outside="dropdown_open_4 = false"><button 3095 x-ref="trigger" 3096 @mousedown.prevent 3097 @mouseenter="dropdown_open_4 = true" 3098 @keydown.enter.prevent="dropdown_open_4 = !dropdown_open_4; $nextTick(() => { if(dropdown_open_4) $el.closest('[x-data]').querySelector('#menu-panel-4 a')?.focus() })"
3099 @keydown.space.prevent="dropdown_open_4 = !dropdown_open_4; $nextTick(() => { if(dropdown_open_4) $el.closest('[x-data]').querySelector('#menu-panel-4 a')?.focus() })" 3100 :aria-expanded="dropdown_open_4.toString()" 3101 aria-controls="menu-panel-4"id="hl-^BATHROOM-desktop" 3102 data-no-preload="true" 3103 data-pagesense-track="true" 3104 data-link-name="^Bathroom-desktop" 3105 class=" 3106 h-full flex items-center mr-3 block no-underline 3107 3108 3109 type__nav 3110 3111 3112 3113 pl-4 pr-4 md:py-4 py-2 3114 3115 3116 mr-2 pr-4 3117 3118 top-level--link 3119 "> 3120 Bathroom 3121</button> 3122 <div 3123 id="menu-panel-4" 3124 x-show="dropdown_open_4" 3125 :inert="!dropdown_open_4" 3126 x-transition:enter="transition ease-out duration-300" 3127 x-transition:enter-start="opacity-0" 3128 x-transition:enter-end="opacity-100" 3129 x-transition:leave="transition ease-in duration-200" 3130 x-transition:leave-start="opacity-100" 3131 x-transition:leave-end="opacity-0" 3132 @keydown.arrow-down.prevent="const links=[...$el.querySelectorAll('a')];const i=links.indexOf(document.activeElement);links[Math.min(i+1,links.length-1)]?.focus()" 3133 @keydown.arrow-up.prevent="const links=[...$el.querySelectorAll('a')];const i=links.indexOf(document.activeElement);if(i<=0){$refs.trigger.focus();dropdown_open_4=false;}else links[i-1]?.focus()" 3134 class="absolute block w-stretch left-center normal-case header__dropdown" 3135 style="display:none"> 3136 <div class="border--t-width border--b-width 3137 color__bg-body color__text 3138 color__border-divider-1"> 3139 3140 <div class="window--wide"> 3141 <a href="/collections/bathroom" 3142 class="block no-underline type__nav top-level--link pt-6 pb-1" 3143 data-pagesense-track="true">Shop All Bathroom</a> 3144 <div class="flex justify-between 3145 color__border-divider-1 min-20"> 3146 3147 3148 <div class="flex gap-30 flex-grow"> 3149 3150 3151 <div class="py-8 flex--fixed" style="flex: 0 0 calc((100%/4)-(3*18.4px));"> 3152 3153 3154 3155 3156 <a href="/collections/original-bath-stones" class="desktop-nav-img__wrapper" id="original-bath-stones-desktop" data-pagesense-track="true"> 3157 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bath-OriginalBathStones.jpg?v=1768363931" alt="~Original Bath Stones" /> 3158 <p class="mt-4">Original Bath Stones</p> 3159 </a> 3160 3161 3162 3163 </div> 3164 3165 3166 <div class="py-8 flex--fixed" style="flex: 0 0 calc((100%/4)-(3*18.4px));"> 3167 3168 3169 3170 3171 <a href="/collections/medium-large-bath-stones" class="desktop-nav-img__wrapper" id="medium-large-bath-stones-desktop" data-pagesense-track="true"> 3172 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bath-MediumLargeBathStones.jpg?v=1768363931" alt="~Medium & Large Bath Stones" /> 3173 <p class="mt-4">Medium & Large Bath Stones</p> 3174 </a> 3175 3176 3177 3178 </div> 3179 3180 3181 <div class="py-8 flex--fixed" style="flex: 0 0 calc((100%/4)-(3*18.4px));"> 3182 3183 3184 3185 3186 <a href="/collections/bathroom-accessories" class="desktop-nav-img__wrapper" id="caddies-organization-desktop" data-pagesense-track="true"> 3187 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bath-CaddiesOrganization.jpg?v=1768363931" alt="~Cad
3187dies & Organization" /> 3188 <p class="mt-4">Caddies & Organization</p> 3189 </a> 3190 3191 3192 3193 </div> 3194 3195 3196 <div class="py-8 flex--fixed" style="flex: 0 0 calc((100%/4)-(3*18.4px));"> 3197 3198 3199 3200 3201 <a href="/collections/bathroom-bundles" class="desktop-nav-img__wrapper" id="bathroom-bundles-desktop" data-pagesense-track="true"> 3202 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bath-Bundles.jpg?v=1768363931" alt="~Bathroom Bundles" /> 3203 <p class="mt-4">Bathroom Bundles</p> 3204 </a> 3205 3206 3207 3208 </div> 3209 3210 </div> 3211 3212 3213 3214 3215 3216 3217 3218 3219 </div> 3220 </div> 3221 3222 </div> 3223 </div> 3224 3225 3226 </div> 3227 3228 <div 3229 class="flex-shrink desktop-menu-option__wrapper" 3230 x-data="{ dropdown_open_5: false }" 3231 @keydown.escape="dropdown_open_5 = false; $refs.trigger && $refs.trigger.focus()" 3232 @mouseleave="!$el.contains(document.activeElement) && (dropdown_open_5 = false)" 3233 @focusout="$event.relatedTarget && !$el.contains($event.relatedTarget) && (dropdown_open_5 = false)" 3234 @click.outside="dropdown_open_5 = false"><button 3235 x-ref="trigger" 3236 @mousedown.prevent 3237 @mouseenter="dropdown_open_5 = true" 3238 @keydown.enter.prevent="dropdown_open_5 = !dropdown_open_5; $nextTick(() => { if(dropdown_open_5) $el.closest('[x-data]').querySelector('#menu-panel-5 a')?.focus() })" 3239 @keydown.space.prevent="dropdown_open_5 = !dropdown_open_5; $nextTick(() => { if(dropdown_open_5) $el.closest('[x-data]').querySelector('#menu-panel-5 a')?.focus() })" 3240 :aria-expanded="dropdown_open_5.toString()" 3241 aria-controls="menu-panel-5"id="hl-ACCESSORIES-desktop" 3242 data-no-preload="true" 3243 data-pagesense-track="true" 3244 data-link-name="Accessories-desktop" 3245 class=" 3246 h-full flex items-center mr-3 block no-underline 3247 3248 3249 type__nav 3250 3251 3252 3253 pl-4 pr-4 md:py-4 py-2 3254 3255 3256 mr-2 pr-4 3257 3258 top-level--link 3259 "> 3260 Accessories 3261</button> 3262 <div 3263 id="menu-panel-5" 3264 x-show="dropdown_open_5" 3265 :inert="!dropdown_open_5" 3266 x-transition:enter="transition ease-out duration-300" 3267 x-transition:enter-start="opacity-0" 3268 x-transition:enter-end="opacity-100" 3269 x-transition:leave="transition ease-in duration-200" 3270 x-transition:leave-start="opacity-100" 3271 x-transition:leave-end="opacity-0" 3272 @keydown.arrow-down.prevent="const links=[...$el.querySelectorAll('a')];const i=links.indexOf(document.activeElement);links[Math.min(i+1,links.length-1)]?.focus()" 3273 @keydown.arrow-up.prevent="const links=[...$el.querySelectorAll('a')];const i=links.indexOf(document.activeElement);if(i<=0){$refs.trigger.focus();dropdown_open_5=false;}else links[i-1]?.focus()" 3274 class="absolute block w-stretch left-center normal-case header__dropdown" 3275 style="display:none"> 3276 <div class="border--t-width border--b-width 3277 color__bg-body color__text 3278 color__border-divider-1"> 3279 3280 <div class="window--wide"> 3281 <a href="/collections/accessories" 3282 class="block no-underline type__nav top-level--link pt-6 pb-1" 3283 data-pagesense-track="true">Shop All Accessories</a> 3284 <div class="flex justify-between 3285 color__border-divider-1 min-20"> 3286 3287 3288 <div class="flex flex-wrap flex-grow justify-center"> 3289 3290 <div class="py-8 pr-12 flex--expand" style="max-width:calc(100% / 4);"> 3291 3292 3293 <a href="/collections/sink-organization" class="desktop-nav-img__wrapper" data-pagesense-track="true" id="sink-organization-desktop"> 3294 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Accessories-Sink.jpg?v=1768363931" alt=""> 3295 <p class="mt-4">Sink Organization</p> 3296 </a> 3297 3298 3299 </div> 3300 3301 <div class="py-8 pr-12 flex--expand" style="max-width:calc(100% / 4);"> 3302 3303 3304 <a href="/collections/coasters-saucers" class="desktop-nav-img__wrapper" data-pagesense-track="true" id="coasters-saucers-desktop"> 3305 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Accessories-CoastersSaucers.jpg?v=1768363931" alt=""> 3306 <p class="mt-4">Coasters & Saucers</p> 3307 </a> 3308 3309 3310 </div> 3311 3312 <div class="py-8 pr-12 flex--expand" style="max-width:calc(100% / 4);"> 3313 3314 3315 <a href="/collections/dish-drying-accessories" class="desktop-nav-img__wrapper" data-pagesense-track="true" id="dish-drying-accessories-desktop"> 3316 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Accessories-DishDrying.jpg?v=1768363931" alt=""> 3317 <p class="mt-4">Dish Drying Accessories</p> 3318 </a> 3319 3320 3321 </div> 3322 3323 <div class="py-8 pr-12 flex--expand" style="max-width:calc(100% / 4);"> 3324 3325 3326 <a href="/collections/replacement-parts-1" class="desktop-nav-img__wrapper" data-pagesense-track="true" id="replacement-parts-desktop"> 3327 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Accessories-ReplacementParts.jpg?v=1768363931" alt=""> 3328 <p class="mt-4">Replacement Parts</p> 3329 </a> 3330 3331 3332 </div> 3333 3334 </div> 3335 3336 3337 3338 3339 3340 3341 3342 3343 </div> 3344 </div> 3345 3346 </div> 3347 </div> 3348 3349 3350 </div> 3351 3352 <div 3353 class="flex-shrink desktop-menu-option__wrapper" 3354 x-data="{ dropdown_open_6: false }" 3355 @keydown.escape="dropdown_open_6 = false; $refs.trigger && $refs.trigger.focus()" 3356 @mouseleave="!$el.contains(document.activeElement) && (dropdown_open_6 = false)" 3357 @focusout="$event.relatedTarget && !$el.contains($event.relatedTarget) && (dropdown_open_6 = false)" 3358 @click.outside="dropdown_open_6 = false"><button 3359 x-ref="trigger" 3360 @mousedown.prevent 3361 @mouseenter="dropdown_open_6 = true" 3362 @keydown.enter.prevent="dropdown_open_6 = !dropdown_open_6; $nextTick(() => { if(dropdown_open_6) $el.closest('[x-data]').querySelector('#menu-panel-6 a')?.focus() })"
3363 @keydown.space.prevent="dropdown_open_6 = !dropdown_open_6; $nextTick(() => { if(dropdown_open_6) $el.closest('[x-data]').querySelector('#menu-panel-6 a')?.focus() })" 3364 :aria-expanded="dropdown_open_6.toString()" 3365 aria-controls="menu-panel-6"id="hl-PET-desktop" 3366 data-no-preload="true" 3367 data-pagesense-track="true" 3368 data-link-name="Pet-desktop" 3369 class=" 3370 h-full flex items-center mr-3 block no-underline 3371 3372 3373 type__nav 3374 3375 3376 3377 pl-4 pr-4 md:py-4 py-2 3378 3379 3380 mr-2 pr-4 3381 3382 top-level--link 3383 "> 3384 Pet 3385</button> 3386 <div 3387 id="menu-panel-6" 3388 x-show="dropdown_open_6" 3389 :inert="!dropdown_open_6" 3390 x-transition:enter="transition ease-out duration-300" 3391 x-transition:enter-start="opacity-0" 3392 x-transition:enter-end="opacity-100" 3393 x-transition:leave="transition ease-in duration-200" 3394 x-transition:leave-start="opacity-100" 3395 x-transition:leave-end="opacity-0" 3396 @keydown.arrow-down.prevent="const links=[...$el.querySelectorAll('a')];const i=links.indexOf(document.activeElement);links[Math.min(i+1,links.length-1)]?.focus()" 3397 @keydown.arrow-up.prevent="const links=[...$el.querySelectorAll('a')];const i=links.indexOf(document.activeElement);if(i<=0){$refs.trigger.focus();dropdown_open_6=false;}else links[i-1]?.focus()" 3398 class="absolute block w-stretch left-center normal-case header__dropdown" 3399 style="display:none"> 3400 <div class="border--t-width border--b-width 3401 color__bg-body color__text 3402 color__border-divider-1"> 3403 3404 <div class="window--wide"> 3405 <a href="/collections/pet" 3406 class="block no-underline type__nav top-level--link pt-6 pb-1" 3407 data-pagesense-track="true">Shop All Pet</a> 3408 <div class="flex justify-between 3409 color__border-divider-1 min-20"> 3410 3411 3412 <div class="flex flex-wrap flex-grow justify-center"> 3413 3414 <div class="py-8 pr-12 flex--50" style="max-width:calc(100% / 4);"> 3415 3416 3417 <a href="/collections/dog" class="desktop-nav-img__wrapper" data-pagesense-track="true" id="dog-desktop"> 3418 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Pet-Dog.jpg?v=1768363931" alt=""> 3419 <p class="mt-4">Dog</p> 3420 </a> 3421 3422 3423 </div> 3424 3425 <div class="py-8 pr-12 flex--50" style="max-width:calc(100% / 4);"> 3426 3427 3428 <a href="/collections/cat" class="desktop-nav-img__wrapper" data-pagesense-track="true" id="cat-desktop"> 3429 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Pet-Cat.jpg?v=1768363931" alt=""> 3430 <p class="mt-4">Cat</p> 3431 </a> 3432 3433 3434 </div> 3435 3436 </div> 3437 3438 3439 3440 3441 3442 3443 3444 3445 </div> 3446 </div> 3447 3448 </div> 3449 </div> 3450 3451 3452 </div> 3453 3454 <div 3455 class="flex-shrink desktop-menu-option__wrapper" 3456 x-data="{ dropdown_open_7: false }" 3457 @keydown.escape="dropdown_open_7 = false; $refs.trigger && $refs.trigger.focus()" 3458 @mouseleave="!$el.contains(document.activeElement) && (dropdown_open_7 = false)" 3459 @focusout="$event.relatedTarget && !$el.contains($event.relatedTarget) && (dropdown_open_7 = false)" 3460 @click.outside="dropdown_open_7 = false"><button 3461 x-ref="trigger" 3462 @mousedown.prevent 3463 @mouseenter="dropdown_open_7 = true" 3464 @keydown.enter.prevent="dropdown_open_7 = !dropdown_open_7; $nextTick(() => { if(dropdown_open_7) $el.closest('[x-data]').querySelector('#menu-panel-7 a')?.focus() })"
3465 @keydown.space.prevent="dropdown_open_7 = !dropdown_open_7; $nextTick(() => { if(dropdown_open_7) $el.closest('[x-data]').querySelector('#menu-panel-7 a')?.focus() })" 3466 :aria-expanded="dropdown_open_7.toString()" 3467 aria-controls="menu-panel-7"id="hl-SAVE_ON_SETS-desktop" 3468 data-no-preload="true" 3469 data-pagesense-track="true" 3470 data-link-name="Save on Sets-desktop" 3471 class=" 3472 h-full flex items-center mr-3 block no-underline 3473 3474 3475 type__nav 3476 3477 3478 3479 pl-4 pr-4 md:py-4 py-2 3480 3481 3482 mr-2 pr-4 3483 3484 top-level--link 3485 "> 3486 Save on Sets 3487</button> 3488 <div 3489 id="menu-panel-7" 3490 x-show="dropdown_open_7" 3491 :inert="!dropdown_open_7" 3492 x-transition:enter="transition ease-out duration-300" 3493 x-transition:enter-start="opacity-0" 3494 x-transition:enter-end="opacity-100" 3495 x-transition:leave="transition ease-in duration-200" 3496 x-transition:leave-start="opacity-100" 3497 x-transition:leave-end="opacity-0" 3498 @keydown.arrow-down.prevent="const links=[...$el.querySelectorAll('a')];const i=links.indexOf(document.activeElement);links[Math.min(i+1,links.length-1)]?.focus()" 3499 @keydown.arrow-up.prevent="const links=[...$el.querySelectorAll('a')];const i=links.indexOf(document.activeElement);if(i<=0){$refs.trigger.focus();dropdown_open_7=false;}else links[i-1]?.focus()" 3500 class="absolute block w-stretch left-center normal-case header__dropdown" 3501 style="display:none"> 3502 <div class="border--t-width border--b-width 3503 color__bg-body color__text 3504 color__border-divider-1"> 3505 3506 <div class="window--wide"> 3507 <a href="/collections/bundles" 3508 class="block no-underline type__nav top-level--link pt-6 pb-1" 3509 data-pagesense-track="true">Shop All Save on Sets</a> 3510 <div class="flex justify-between 3511 color__border-divider-1 min-20"> 3512 3513 3514 <div class="flex flex-wrap flex-grow justify-center"> 3515 3516 <div class="py-8 pr-12 flex--expand" style="max-width:calc(100% / 4);"> 3517 3518 3519 <a href="/collections/bathroom-bundles" class="desktop-nav-img__wrapper" data-pagesense-track="true" id="bathroom-sets-desktop"> 3520 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bundles-Bathroom.jpg?v=1768363931" alt=""> 3521 <p class="mt-4">Bathroom Sets</p> 3522 </a> 3523 3524 3525 </div> 3526 3527 <div class="py-8 pr-12 flex--expand" style="max-width:calc(100% / 4);"> 3528 3529 3530 <a href="/collections/kitchen-bundles" class="desktop-nav-img__wrapper" data-pagesense-track="true" id="kitchen-sets-desktop"> 3531 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bundles-Kitchen.jpg?v=1768363931" alt=""> 3532 <p class="mt-4">Kitchen Sets</p> 3533 </a> 3534 3535 3536 </div> 3537 3538 <div class="py-8 pr-12 flex--expand" style="max-width:calc(100% / 4);"> 3539 3540 3541 <a href="/collections/gift-sets" class="desktop-nav-img__wrapper" data-pagesense-track="true" id="gift-sets-desktop"> 3542 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bundles-GiftSets.jpg?v=1768363931" alt=""> 3543 <p class="mt-4">Gift Sets</p> 3544 </a> 3545 3546 3547 </div> 3548 3549 </div> 3550 3551 3552 3553 3554 3555 3556 3557 3558 </div> 3559 </div> 3560 3561 </div> 3562 </div> 3563 3564 3565 </div> 3566 3567 <div 3568 class="flex-shrink desktop-menu-option__wrapper" 3569 x-data="{ dropdown_open_8: false }" 3570 @keydown.escape="dropdown_open_8 = false; $refs.trigger && $refs.trigger.focus()" 3571 @mouseleave="!$el.contains(document.activeElement) && (dropdown_open_8 = false)" 3572 @focusout="$event.relatedTarget && !$el.contains($event.relatedTarget) && (dropdown_open_8 = false)" 3573 @click.outside="dropdown_open_8 = false"><a 3574 href="/pages/care-and-cleaning"id="hl-HOW_TO_CLEAN-desktop" 3575 data-no-preload="true" 3576 data-pagesense-track="true" 3577 data-link-name="How to Clean-desktop" 3578 class=" 3579 h-full flex items-center mr-3 block no-underline 3580 3581 3582 type__nav 3583 3584 3585 3586 pl-4 pr-4 md:py-4 py-2 3587 3588 3589 mr-2 pr-4 3590 3591 top-level--link 3592 "> 3593 How to Clean 3594</a> 3595 3596 </div> 3597 3598 3599 </div> 3600 3601 3602 3603 3604 3605 3606 3607 </div> 3608 </div> 3609</nav> 3610 3611</div><div id="shopify-section-sections--20423940374726__wl_mobile_marquee_LQxTJ6" class="shopify-section shopify-section-group-header-group"></div> 3612<!-- END sections: header-group --> 3613 3614 <!-- ===== Customizations and 3rd-party header scripts below this comment line ===== -->
3614<script src="//doraihome.com/cdn/shop/t/324/assets/accessibility.js?v=50308974061846656991784327966" defer="defer"></script>
3614 3615 3616 </header> 3617 <div id="shopify-section-wl-theme__cart" class="shopify-section"><!-- sections/wl-theme__cart.liquid --> 3618 3619 3620<style data-shopify> 3621 .btn { 3622 padding-top: 1rem; 3623 padding-bottom: 1rem; 3624 } 3625 3626 /* Prevent body scroll when cart drawer is open */ 3627 body.cart-drawer-open { 3628 overflow: hidden; 3629 /* For iOS Safari */ 3630 position: fixed; 3631 width: 100%; 3632 } 3633 3634@media only screen and (max-width: 768px) { 3635 .btn { 3636 padding-top: 0.75rem; 3637 padding-bottom: 0.75rem; 3638 } 3639 } 3640</style> 3641 3642 3643 3644 3645 3646<section 3647 class="fixed inset-0 z-50 overflow-hidden z10001" 3648 x-show="cart_drawer" 3649 x-cloak> 3650 <div class="absolute inset-0 overflow-hidden"> 3651 <div 3652 class="absolute inset-0 bg-black bg-opacity-50 backdrop-blur-md" 3653 aria-hidden="true" 3654 x-show="cart_drawer" 3655 3656 x-transition:enter="animation-300" 3657 x-transition:enter-start="opacity-0" 3658 x-transition:enter-end="opacity-100" 3659 x-transition:leave="animation-300" 3660 x-transition:leave-start="opacity-100" 3661 x-transition:leave-end="opacity-0" 3662 3663 @click="cart_drawer = false;" 3664 x-cloak> 3665 </div> 3666 <div 3667 class="fixed inset-y-0 right-0 z-10 flex max-w-full" 3668 x-trap="cart_drawer" 3669 x-show="cart_drawer" 3670 3671 x-transition:enter="animation-300 opacity-0" 3672 x-transition:enter-start="translate-x-8 opacity-0" 3673 x-transition:enter-end="translate-x-0 opacity-100" 3674 x-transition:leave="animation-300 opacity-100" 3675 x-transition:leave-start="translate-x-0 opacity-100" 3676 x-transition:leave-end="translate-x-8 opacity-0" 3677 3678 x-cloak> 3679 <div class="lg:flex right-full absolute hidden min-w-[256px] self-start gap-4 m-4 flex-wrap"> 3680 3681 3682 3683 3684 3685 3686 3687 </div> 3688 <div class="w-screen max-w-full md:max-w-md cart-drawer"> 3689 <div class="flex flex-col h-full shadow-xl color__bg-body" action="/cart" method="post"> 3690 3691 3692 3693 3694 3695 <div class="cart-value-props color__bg-body color__text"> 3696 <div class="cart-value-props__close-row"> 3697 <button 3698 class="btn btn--smaller btn btn--plain btn-cart--close cart-value-props__close flex-shrink-0" 3699 title="Close" 3700 @click="cart_drawer = false;" 3701 style="border: none; background: none;"> 3702 <!-- snippets/component__icon.liquid --> 3703 3704 3705<span class="inline-flex align-middle " aria-hidden="true"> 3706 3707 <svg xmlns="http://www.w3.org/2000/svg" width="19.7" height="19.7" viewBox="0 0 16 16" fill="none"><path d="M14.3746 13.6478C14.5695 13.8428 14.5695 14.1588 14.3746 14.3538C14.1796 14.5487 13.8635 14.5487 13.6686 14.3538L1.66699 2.35219C1.47204 2.15724 1.47204 1.84116 1.66699 1.64621C1.86194 1.45126 2.17802 1.45126 2.37297 1.64621L14.3746 13.6478Z" fill="#3D3D3D"/><path d="M1.64621 13.6478C1.45126 13.8428 1.45126 14.1588 1.64621 14.3538C1.84116 14.5487 2.15724 14.5487 2.35219 14.3538L14.3538 2.35219C14.5487 2.15724 14.5487 1.84116 14.3538 1.64621C14.1588 1.45126 13.8428 1.45126 13.6478 1.64621L1.64621 13.6478Z" fill="#3D3D3D"/></svg> 3708 3709 3710</span> 3711 </button> 3712 </div> 3713 <div class="cart-value-props__items"> 3714 <div class="cart-value-prop"> 3715 <svg xmlns="http://www.w3.org/2000/svg" width="22" height="15" viewBox="0 0 22 15" fill="none" aria-hidden="true"> 3716 <path d="M21.9111 7.34839V7.31742L19.3215 3.40416C19.1107 3.07201 18.7191 2.83193 18.3267 2.83193H14.4413V1.1746C14.4413 0.541266 13.9292 8.12306e-06 13.2666 8.12306e-06L1.32767 9.20613e-06C0.694299 -0.000851298 0.153004 0.511149 0.153004 1.17374L0 11.626C0 12.2593 0.512036 12.8006 1.17467 12.8006H2.03308H2.8915C3.07307 14.0362 4.15652 15 5.45253 15C6.74854 15 7.80274 14.0362 8.01357 12.8006L15.2202 12.8006C15.4018 14.0362 16.4853 15 17.7813 15C19.0773 15 20.1315 14.0362 20.3423 12.8006H20.8251C21.4585 12.8006 21.9998 12.2885 21.9998 11.626V7.5291C22.0006 7.46886 22.0006 7.43875 21.9705 7.40863C21.9103 7.37765 21.9103 7.34753 21.9103 7.34753L21.9111 7.34839ZM5.42414 14.1868C4.42932
371614.1868 3.61609 13.3736 3.61609 12.3789C3.61609 11.3842 4.42932 10.571 5.42414 10.571C6.41895 10.571 7.23218 11.3842 7.23218 12.3789C7.23218 13.3736 6.41895 14.1868 5.42414 14.1868ZM13.6581 3.2226L13.5051 11.9874L7.98518 11.9874C7.8036 10.7517 6.72015 9.78792 5.42414 9.78792C4.12813 9.78792 3.07394 10.7517 2.8631 11.9874H1.14541C0.934573 11.9874 0.753854 11.8058 0.753854 11.5958L0.906859 1.1746C0.906859 0.963775 1.08844 0.783068 1.29842 0.783068L13.2657 0.783067C13.4766 0.783067 13.6573 0.964634 13.6573 1.1746L13.6581 3.2226ZM19.5317 12.3798C19.5317 13.3745 18.7184 14.1877 17.7236 14.1877C16.7288 14.1877 15.9156 13.3745 15.9156 12.3798C15.9156 11.385 16.7288 10.5718 17.7236 10.5718C18.7184 10.5718 19.5317 11.385 19.5317 12.3798ZM21.1581 11.5967C21.1581 11.8075 20.9766 11.9882 20.7666 11.9882H20.2838C20.1022 10.7525 19.0188 9.78878 17.7228 9.78878C16.4268 9.78878 15.3726 10.7525 15.1617 11.9882H14.2883L14.4413 3.61413H18.2992C18.4196 3.61413 18.5702 3.67436 18.6313 3.79569L20.8578 7.13757H17.3312V5.26554C17.3312 5.05472 17.1496 4.87401 16.9397 4.87401C16.7297 4.87401 16.5481 5.05558 16.5481 5.26554V7.52996C16.5481 7.74078 16.7297 7.92149 16.9397 7.92149H21.1581V11.5967Z" fill="#3D3D3D"/> 3717 </svg> 3718 <span>Free Shipping</span> 3719 </div> 3720 <div class="cart-value-prop"> 3721 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="17" viewBox="0 0 14 17" fill="none" aria-hidden="true"> 3722 <path d="M1.52054 3.61163H7.03875C8.95018 3.61163 10.6998 4.35764 11.962 5.57145C13.2242 6.78526 14 8.45032 14 10.3058C14 12.1613 13.2242 13.8264 11.962 15.0402C10.6998 16.254 8.96827 17 7.03875 17H5.70418C5.46999 17 5.28918 16.827 5.28918 16.6009C5.28918 16.3749 5.46913 16.2018 5.70418 16.2018H7.03875C8.71599 16.2018 10.2486 15.5428 11.367 14.4681C12.4855 13.3925 13.17 11.9187 13.17 10.3058C13.17 8.69292 12.4846 7.21912 11.367 6.14358C10.2486 5.06804 8.71599 4.4098 7.03875 4.4098H1.52054L5.07306 7.32345C5.25301 7.46255 5.27109 7.72253 5.12731 7.87819C4.98266 8.05124 4.7123 8.06862 4.55043 7.91297L0.150677 4.3063L0.0964329 4.25414C-0.0482165 4.08109 -0.0301352 3.83767 0.150677 3.6994L4.55043 0.0927333C4.73038 -0.0463667 4.98352 -0.0289791 5.12731 0.144896C5.27109 0.318771 5.25387 0.561368 5.07306 0.69964L1.52054 3.61329V3.61163Z" fill="#3D3D3D"/> 3723 </svg> 3724 <span>Free Returns*</span> 3725 </div> 3726 <div class="cart-value-prop"> 3727 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" viewBox="0 0 20 19" fill="none" aria-hidden="true"> 3728 <path d="M9.19442 0.553892C9.47444 -0.184673 10.5248 -0.184589 10.8049 0.553892L12.7887 5.79225C12.9099 6.1123 13.2117 6.33044 13.5553 6.34618L19.1769 6.60364C19.9701 6.63998 20.2958 7.6341 19.6756 8.12722L15.279 11.6213L15.1859 11.7083C14.9851 11.9232 14.9067 12.2288 14.9864 12.5174L16.477 17.914C16.6874 18.6755 15.8369 19.2901 15.1736 18.8558L10.4732 15.7775C10.186 15.5895 9.81331 15.5894 9.52617 15.7775L4.82575 18.8558L4.69911 18.9249C4.05996 19.2124 3.32511 18.6279 3.52232 17.914L5.01292 12.5174C5.10402 12.1876 4.98902 11.8349 4.7204 11.6213L0.324833 8.12722C-0.256658 7.66497 -0.00799134 6.7614 0.678989 6.62036L0.822445 6.60364L6.44523 6.34618C6.74568 6.33225 7.01346 6.16326 7.15691 5.90705L7.2107 5.79225L9.19442 0.553892ZM9.96438 0.808009C9.96241 0.809283 9.96058 0.810303 9.95877 0.812467C9.95701 0.814641 9.9519 0.82149 9.94645 0.835872L7.96272 6.07423C7.72838 6.69271 7.14609 7.11358 6.48222 7.14419L0.85943 7.40165C0.844023 7.40236 0.83631 7.40511 0.833652 7.40611C0.830839 7.40718 0.828819 7.40795 0.826928 7.40945C0.822329 7.41314 0.813638 7.42312 0.807875 7.44066C0.802114 7.45829 0.802967 7.47176 0.804513 7.47744C0.805153 7.47974 0.806243 7.48164 0.807875 7.48413C0.809409 7.48646 0.813767 7.49349 0.825807 7.50308L5.2225 10.9972C5.74183 11.41 5.96461 12.0916 5.78847 12.7292L4.29676 18.1258C4.29282 18.14 4.29328 18.1483 4.2934 18.1514C4.29355 18.1544 4.29367 18.157 4.29452 18.1592C4.29661 18.1647 4.30328 18.1763 4.31805 18.1871C4.33314 18.198 4.34688 18.2013 4.3528 18.2016C4.35523 18.2017 4.35772 18.2013 4.36064 18.2005C4.36354 18.1997 4.37161 18.1976 4.38418 18.1893L9.08459 15.111C9.63988 14.7474 10.3595 14.7474 10.9148 15.111L15.6163 18.1893C15.6289 18.1975 15.6372 18.1998 15.6398 18.2005C1
37285.6424 18.2011 15.6444 18.2017 15.6466 18.2016C15.6525 18.2013 15.6662 18.198 15.6813 18.1871C15.6963 18.1762 15.7027 18.1647 15.7048 18.1592C15.7057 18.1569 15.7069 18.1545 15.7071 18.1514C15.7072 18.1483 15.7065 18.14 15.7026 18.1258L14.212 12.7292C14.0359 12.0916 14.2575 11.41 14.7769 10.9972L19.1736 7.50308C19.1854 7.49368 19.1898 7.48661 19.1915 7.48413C19.1931 7.48168 19.1942 7.4797 19.1948 7.47744C19.1964 7.47177 19.1983 7.45826 19.1926 7.44066C19.187 7.42346 19.1783 7.41336 19.1736 7.40945C19.1718 7.40803 19.1694 7.40713 19.1668 7.40611C19.1642 7.40512 19.1554 7.40236 19.1399 7.40165L13.5183 7.14419C12.8543 7.11377 12.2722 6.69273 12.0378 6.07423L10.054 0.835872C10.0486 0.821459 10.0435 0.814643 10.0417 0.812467C10.0399 0.810281 10.038 0.809268 10.0361 0.808009C10.0312 0.804811 10.0187 0.799163 10.0002 0.799092C9.98164 0.799092 9.96936 0.804787 9.96438 0.808009Z" fill="#3D3D3D"/> 3729 </svg> 3730 <span>10,000+ 5-Star Reviews</span> 3731 </div> 3732 </div> 3733 </div> 3734 3735 3736 <section id="cartWrapper" class="color__bg-body color__text flex flex-col flex-grow overflow-x-hidden overflow-y-auto" 3737 x-data="{ 3738 scroll: false, 3739 animate_index: 0, 3740 animate_delay: 0 3741 }" 3742 @scroll.throttle="scroll = true"> 3743 3744 3745 <template x-if="cart.items.length == 0"> 3746 <div class="flex flex-col items-center justify-center flex-grow 3747 color__bg-body color__text 3748 color__border-divider-1"> 3749 3750 <p>Your cart is empty </p> 3751 <a class="btn" href="/collections/all"> 3752 Shop All 3753 </a> 3754 </div> 3755 </template> 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 <div class="sticky text-center bottom-4" 3773 @click="scroll = true;" 3774 x-show="!scroll && cart.items.length > 5" 3775 3776 x-transition:enter="animation-300" 3777 x-transition:enter-start="opacity-0 translate-y-8" 3778 x-transition:enter-end="opacity-100" 3779 x-transition:leave="animation-300" 3780 x-transition:leave-start="opacity-100" 3781 x-transition:leave-end="opacity-0 translate-y-8" 3782 3783 x-cloak> 3784 <button class="shadow-sm btn btn--plain btn--small" title="Scroll Down"> 3785 <!-- snippets/component__icon.liquid --> 3786 3787 3788<span class="inline-flex align-middle " aria-hidden="true"> 3789 3790 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-down"><line x1="12" y1="5" x2="12" y2="19"></line><polyline points="19 12 12 19 5 12"></polyline></svg> 3791 3792</span> 3793 </button> 3794 </div> 3795 3796 </section> 3797 3798 3799 <aside class="border--t-width mt-auto 3800 color__bg-body color__text 3801 color__border-divider-1" 3802 style="box-shadow: 0px -4px 14px 0px #3D3D3D1A;" 3803 x-show="cart.items.length > 0" 3804 x-cloak> 3805 <div class="flex flex-wrap"> 3806 3807 3808 <!-- snippets/component__upsell-tabs.liquid --> 3809 3810 <style> 3811 .color__border-selected-1 { 3812 border-color: #3C515E; 3813 margin-bottom: -3px; 3814 } 3815.flex.w-full.flex-row.gap-2{ 3816gap: 0.5rem; 3817overflow: unset; 3818} 3819 @media (min-width: 768px) { 3820 .flex.w-full.flex-row.gap-2 { 3821 gap: 1rem; 3822 } 3823 } 3824 3825 .upsell-tab-item:nth-of-type(n+3) { 3826 display: none; 3827 } 3828</style> 3829 3830 3831 <div class="relative flex flex-wrap w-full" 3832 x-data="{ 3833 activeTab: 'upsell_tab_YHTVyP', 3834 isExpanded: true 3835 }"> 3836 3837 3838 <div class="flex items-center justify-between w-full gap-2 mx-4 border-b border--b-width color__border-divider-1"> 3839 3840 3841 <div 3842 class="flex items-center gap-4 flex-grow cursor-pointer" 3843 @click="if(!isExpanded) { isExpanded = true; activeTab = 'upsell_tab_YHTVyP' }"> 3844 3845 3846 <button 3847 type="button" 3848 @click.stop="isExpanded = true; activeTab = 'upsell_tab_YHTVyP'" 3849 :class="activeTab === 'upsell_tab_YHTVyP' ? 'border-b-4 color__border-selected-1 color__text' : 'opacity-50'" 3850 class="py-2 type--body-text transition-all" 3851 > 3852 Recommended 3853 </button> 3854 3855 3856 3857 <button 3858 type="button" 3859 @click.stop="isExpanded = true; activeTab = 'upsell_tab_NrC9a7'" 3860 :class="activeTab === 'upsell_tab_NrC9a7' ? 'border-b-4 color__border-selected-1 color__text' : 'opacity-50'" 3861 class="py-2 type--body-text transition-all" 3862 > 3863 Under $50 3864 </button> 3865 3866 3867 </div> 3868 3869 3870 <button 3871 type="button" 3872 @click="if(!isExpanded) activeTab = 'upsell_tab_YHTVyP'; isExpanded = !isExpanded" 3873 class="p-2 transition-transform" 3874 :class="{ 'rotate-180': !isExpanded }" 3875 aria-label="Toggle upsells"> 3876 <!-- snippets/component__icon.liquid --> 3877 3878 3879<span class="inline-flex align-middle " aria-hidden="true"> 3880 3881 <svg xmlns="http://www.w3.org/2000/svg" width="15" height="8" viewBox="0 0 15 8" fill="none"><path d="M13.7611 7.79325C14.0445 8.06892 14.504 8.06892 14.7874 7.79325C15.0709 7.51758
388115.0709 7.07074 14.7874 6.79507L8.01317 0.20675C7.72972 -0.0689173 7.27028 -0.0689173 6.98683 0.20675L0.212585 6.79507C-0.0708618 7.07074 -0.0708618 7.51758 0.212585 7.79325C0.496032 8.06892 0.955481 8.06892 1.23893 7.79325L7.5 1.70401L13.7611 7.79325Z" fill="#3D3D3D"/></svg> 3882 3883</span> 3884 </button> 3885 </div> 3886 3887 <div class="upsell__wrapper relative w-full mt-5" x-show="isExpanded"> 3888 3889 3890 3891 3892 <div 3893 x-show="activeTab === 'upsell_tab_YHTVyP'" 3894 3895 x-transition:enter="animation-300" 3896 x-transition:enter-start="opacity-0" 3897 x-transition:enter-end="opacity-100" 3898 x-transition:leave="animation-300" 3899 x-transition:leave-start="opacity-100" 3900 x-transition:leave-end="opacity-0" 3901 3902 class="w-full absolute top-0 left-0" 3903 :class="{ 'relative': activeTab === 'upsell_tab_YHTVyP' }" 3904 > 3905 3906 3907 3908 <div class="flex w-full flex-row gap-2 pb-4 px-4 overflow-x-auto whitespace-nowrap snap-x md:pb-6 hidescrollbar upsell-height border-b border--b-width" style="scroll-padding-left: 16px;"> 3909 3910 <!-- snippets/component__upsell-tab-item.liquid --> 3911 3912<div 3913 class="upsell-tab-item" 3914 data-product-id="7819727962310" 3915 x-data="{ 3916 button_loading: false 3917 }"> 3918 <div class="upsell-tab-item__image-wrapper"><a href="/products/stone-sink-caddy" class="upsell-tab-item__image-link"> 3919 <img 3920 src="//doraihome.com/cdn/shop/files/102-10013_StoneSinkCaddy_Slate_Q2_2026_01.jpg?v=1781294032&width=300" 3921 alt="Slate Stone Sink Caddy on white with brush and soap." 3922 class="upsell-tab-item__image" 3923 loading="lazy" 3924 width="300" 3925 height="300" 3926 > 3927 </a> 3928<button 3929 type="button" 3930 class="upsell-tab-item__add-btn" 3931 :class="{ 'upsell-tab-item__add-btn--loading': button_loading }" 3932 aria-label="Select options for Stone Sink Caddy" 3933 :disabled="button_loading" 3934 @click=" 3935 button_loading = true; 3936 fetchAndRenderQuickAdd('stone-sink-caddy', 'upsell'); 3937 setTimeout(function(){ button_loading = false}, 500); 3938 "> 3939 <svg class="upsell-tab-item__add-icon" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 3940 <path d="M10 4V16M4 10H16" stroke="currentColor" stroke-width="2" stroke-linecap="round"/> 3941 </svg> 3942 <div class="upsell-tab-item__spinner" x-show="button_loading"> 3943 <!-- snippets/component__icon.liquid --> 3944 3945 3946<span class="inline-flex align-middle " aria-hidden="true"> 3947 3948 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-loader"><line x1="12" y1="2" x2="12" y2="6"></line><line x1="12" y1="18" x2="12" y2="22"></line><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"></line><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"></line><line x1="2" y1="12" x2="6" y2="12"></line><line x1="18" y1="12" x2="22" y2="12"></line><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"></line><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"></line></svg> 3949 3950</span> 3951 </div> 3952 </button> 3953 3954 </div> 3955 3956 <div class="upsell-tab-item__content"> 3957 <a href="/products/stone-sink-caddy" class="upsell-tab-item__title"> 3958 Stone Sink Caddy 3959 </a> 3960 3961 <div class="upsell-tab-item__price"><!-- snippets/component__format-price.liquid --> 3962 3963 3964$46</div> 3965 </div><div 3966 id='js-quickAdd-upsell-stone-sink-caddy' 3967 x-show="quick_add_handle === 'stone-sink-caddy'"></div> 3968</div> 3969 3970<style> 3971 .upsell-tab-item { 3972 display: flex; 3973 flex-direction: row; 3974 gap: 8px; 3975 width: calc(50% - 4px); 3976 flex-shrink: 0; 3977 scroll-snap-align: start; 3978 } 3979 3980 .upsell-tab-item__image-wrapper { 3981 position: relative; 3982 width: 84px; 3983 height: 84px; 3984 flex-shrink: 0; 3985 background-color: #f5f5f5; 3986 border-radius: 2px; 3987 overflow: hidden; 3988 } 3989 3990 .upsell-tab-item__image-link { 3991 display: block; 3992 width: 100%; 3993 height: 100%; 3994 } 3995 3996 .upsell-tab-item__image { 3997 width: 100%; 3998 height: 100%; 3999 object-fit: cover; 4000 display: block; 4001 } 4002 4003 .upsell-tab-item__image--placeholder { 4004 width: 60%; 4005 height: 60%; 4006 opacity: 0.3; 4007 } 4008 4009 .upsell-tab-item__add-btn { 4010 position: absolute; 4011 bottom: 8px; 4012 right: 8px;
4013 width: 20px; 4014 height: 20px; 4015 border-radius: 50%; 4016 background-color: #3C515E; 4017 border: none; 4018 padding: 0; 4019 display: flex; 4020 align-items: center; 4021 justify-content: center; 4022 cursor: pointer; 4023 transition: all 0.2s ease; 4024 z-index: 2; 4025 } 4026 4027 .upsell-tab-item__add-btn:disabled { 4028 opacity: 0.5; 4029 cursor: not-allowed; 4030 } 4031 4032 .upsell-tab-item__add-btn--loading .upsell-tab-item__add-icon { 4033 display: none; 4034 } 4035 4036 .upsell-tab-item__add-icon { 4037 width: 12px; 4038 height: 12px; 4039 color: #fff; 4040 } 4041 4042 .upsell-tab-item__spinner { 4043 position: absolute; 4044 display: flex; 4045 align-items: center; 4046 justify-content: center; 4047 } 4048 4049 .upsell-tab-item__content { 4050 display: flex; 4051 flex-direction: column; 4052 justify-content: space-between; 4053 flex: 1; 4054 min-width: 0; 4055 padding: 8px 0 !important; 4056 } 4057 4058 .upsell-tab-item__title { 4059 font-size: 12px; 4060 line-height: 1.2; 4061 letter-spacing: 0; 4062 color: #3D3D3D; 4063 text-align: left; 4064 text-decoration: none; 4065 display: -webkit-box; 4066 -webkit-line-clamp: 3; 4067 -webkit-box-orient: vertical; 4068 overflow: hidden; 4069 text-overflow: ellipsis; 4070 white-space: normal; 4071 } 4072 4073 .upsell-tab-item__title:hover { 4074 text-decoration: underline; 4075 } 4076 4077 .upsell-tab-item__price { 4078 font-size: 12px; 4079 line-height: 1.2; 4080 letter-spacing: 0; 4081 color: #3D3D3D; 4082 text-align: left; 4083 } 4084 4085 @media screen and (min-width: 750px) { 4086 .upsell-tab-item__image-wrapper { 4087 width: 100px; 4088 height: 100px; 4089 } 4090 4091 .upsell-tab-item__add-btn { 4092 width: 24px; 4093 height: 24px; 4094 bottom: 8px; 4095 right: 8px; 4096 } 4097 .upsell-tab-item{ 4098 gap: 12px; 4099 } 4100 4101 .upsell-tab-item__add-icon { 4102 width: 14px; 4103 height: 14px; 4104 } 4105 4106 .upsell-tab-item__title { 4107 font-size: 14px; 4108 } 4109 4110 .upsell-tab-item__price { 4111 font-size: 14px; 4112 } 4113 } 4114</style> 4115 4116 4117 <!-- snippets/component__upsell-tab-item.liquid --> 4118 4119<div 4120 class="upsell-tab-item" 4121 data-product-id="8741652529350" 4122 x-data="{ 4123 button_loading: false 4124 }"> 4125 <div class="upsell-tab-item__image-wrapper"><a href="/products/paper-towel-holder" class="upsell-tab-item__image-link"> 4126 <img 4127 src="//doraihome.com/cdn/shop/files/102-10016_PaperTowelHolder_Glacier_Q1_2026_1.jpg?v=1768272717&width=300" 4128 alt="sturdy weighted Glacier paper towel holder for one hand tearing" 4129 class="upsell-tab-item__image" 4130 loading="lazy" 4131 width="300" 4132 height="300" 4133 > 4134 </a> 4135<button 4136 type="button" 4137 class="upsell-tab-item__add-btn" 4138 :class="{ 'upsell-tab-item__add-btn--loading': button_loading }" 4139 aria-label="Select options for Paper Towel Holder" 4140 :disabled="button_loading" 4141 @click=" 4142 button_loading = true; 4143 fetchAndRenderQuickAdd('paper-towel-holder', 'upsell'); 4144 setTimeout(function(){ button_loading = false}, 500); 4145 "> 4146 <svg class="upsell-tab-item__add-icon" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 4147 <path d="M10 4V16M4 10H16" stroke="currentColor" stroke-width="2" stroke-linecap="round"/> 4148 </svg> 4149 <div class="upsell-tab-item__spinner" x-show="button_loading"> 4150 <!-- snippets/component__icon.liquid --> 4151 4152 4153<span class="inline-flex align-middle " aria-hidden="true"> 4154 4155 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-loader"><line x1="12" y1="2" x2="12" y2="6"></line><line x1="12" y1="18" x2="12" y2="22"></line><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"></line><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"></line><line x1="2" y1="12" x2="6" y2="12"></line><line x1="18" y1="12" x2="22" y2="12"></line><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"></line><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"></line></svg> 4156 4157</span> 4158 </div> 4159 </button> 4160 4161 </div> 4162 4163 <div class="upsell-tab-item__content"> 4164 <a href="/products/paper-towel-holder" class="upsell-tab-item__title"> 4165 Paper Towel Holder 4166 </a> 4167 4168 <div class="upsell-tab-item__price"><!-- snippets/component__format-price.liquid --> 4169 4170 4171$90</div> 4172 </div><div 4173 id='js-quickAdd-upsell-paper-towel-holder' 4174 x-show="quick_add_handle === 'paper-towel-holder'"></div> 4175</div> 4176 4177<style> 4178 .upsell-tab-item { 4179 display: flex; 4180 flex-direction: row; 4181 gap: 8px; 4182 width: calc(50% - 4px); 4183 flex-shrink: 0; 4184 scroll-snap-align: start; 4185 } 4186 4187 .upsell-tab-item__image-wrapper { 4188 position: relative; 4189 width: 84px; 4190 height: 84px; 4191 flex-shrink: 0; 4192 background-color: #f5f5f5; 4193 border-radius: 2px; 4194 overflow: hidden; 4195 } 4196 4197 .upsell-tab-item__image-link { 4198 display: block; 4199 width: 100%; 4200 height: 100%; 4201 } 4202 4203 .upsell-tab-item__image { 4204 width: 100%; 4205 height: 100%; 4206 object-fit: cover; 4207 display: block; 4208 } 4209 4210 .upsell-tab-item__image--placeholder { 4211 width: 60%; 4212 height: 60%; 4213 opacity: 0.3; 4214 } 4215 4216 .upsell-tab-item__add-btn { 4217 position: absolute; 4218 bottom: 8px; 4219 right: 8px;
4220 width: 20px; 4221 height: 20px; 4222 border-radius: 50%; 4223 background-color: #3C515E; 4224 border: none; 4225 padding: 0; 4226 display: flex; 4227 align-items: center; 4228 justify-content: center; 4229 cursor: pointer; 4230 transition: all 0.2s ease; 4231 z-index: 2; 4232 } 4233 4234 .upsell-tab-item__add-btn:disabled { 4235 opacity: 0.5; 4236 cursor: not-allowed; 4237 } 4238 4239 .upsell-tab-item__add-btn--loading .upsell-tab-item__add-icon { 4240 display: none; 4241 } 4242 4243 .upsell-tab-item__add-icon { 4244 width: 12px; 4245 height: 12px; 4246 color: #fff; 4247 } 4248 4249 .upsell-tab-item__spinner { 4250 position: absolute; 4251 display: flex; 4252 align-items: center; 4253 justify-content: center; 4254 } 4255 4256 .upsell-tab-item__content { 4257 display: flex; 4258 flex-direction: column; 4259 justify-content: space-between; 4260 flex: 1; 4261 min-width: 0; 4262 padding: 8px 0 !important; 4263 } 4264 4265 .upsell-tab-item__title { 4266 font-size: 12px; 4267 line-height: 1.2; 4268 letter-spacing: 0; 4269 color: #3D3D3D; 4270 text-align: left; 4271 text-decoration: none; 4272 display: -webkit-box; 4273 -webkit-line-clamp: 3; 4274 -webkit-box-orient: vertical; 4275 overflow: hidden; 4276 text-overflow: ellipsis; 4277 white-space: normal; 4278 } 4279 4280 .upsell-tab-item__title:hover { 4281 text-decoration: underline; 4282 } 4283 4284 .upsell-tab-item__price { 4285 font-size: 12px; 4286 line-height: 1.2; 4287 letter-spacing: 0; 4288 color: #3D3D3D; 4289 text-align: left; 4290 } 4291 4292 @media screen and (min-width: 750px) { 4293 .upsell-tab-item__image-wrapper { 4294 width: 100px; 4295 height: 100px; 4296 } 4297 4298 .upsell-tab-item__add-btn { 4299 width: 24px; 4300 height: 24px; 4301 bottom: 8px; 4302 right: 8px; 4303 } 4304 .upsell-tab-item{ 4305 gap: 12px; 4306 } 4307 4308 .upsell-tab-item__add-icon { 4309 width: 14px; 4310 height: 14px; 4311 } 4312 4313 .upsell-tab-item__title { 4314 font-size: 14px; 4315 } 4316 4317 .upsell-tab-item__price { 4318 font-size: 14px; 4319 } 4320 } 4321</style> 4322 4323 4324 <!-- snippets/component__upsell-tab-item.liquid --> 4325 4326<div 4327 class="upsell-tab-item" 4328 data-product-id="7761280467142" 4329 x-data="{ 4330 button_loading: false 4331 }"> 4332 <div class="upsell-tab-item__image-wrapper"><a href="/products/dish-pad-rack" class="upsell-tab-item__image-link"> 4333 <img 4334 src="//doraihome.com/cdn/shop/files/105-10009_DishPadRack_Glacier_Carousel_Q2_2025_01-B.jpg?v=1783976237&width=300" 4335 alt="Glacier Dish Pad Rack on white background." 4336 class="upsell-tab-item__image" 4337 loading="lazy" 4338 width="300" 4339 height="300" 4340 > 4341 </a> 4342<button 4343 type="button" 4344 class="upsell-tab-item__add-btn" 4345 :class="{ 'upsell-tab-item__add-btn--loading': button_loading }" 4346 aria-label="Select options for Dish Pad Rack" 4347 :disabled="button_loading" 4348 @click=" 4349 button_loading = true; 4350 fetchAndRenderQuickAdd('dish-pad-rack', 'upsell'); 4351 setTimeout(function(){ button_loading = false}, 500); 4352 "> 4353 <svg class="upsell-tab-item__add-icon" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 4354 <path d="M10 4V16M4 10H16" stroke="currentColor" stroke-width="2" stroke-linecap="round"/> 4355 </svg> 4356 <div class="upsell-tab-item__spinner" x-show="button_loading"> 4357 <!-- snippets/component__icon.liquid --> 4358 4359 4360<span class="inline-flex align-middle " aria-hidden="true"> 4361 4362 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-loader"><line x1="12" y1="2" x2="12" y2="6"></line><line x1="12" y1="18" x2="12" y2="22"></line><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"></line><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"></line><line x1="2" y1="12" x2="6" y2="12"></line><line x1="18" y1="12" x2="22" y2="12"></line><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"></line><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"></line></svg> 4363 4364</span> 4365 </div> 4366 </button> 4367 4368 </div> 4369 4370 <div class="upsell-tab-item__content"> 4371 <a href="/products/dish-pad-rack" class="upsell-tab-item__title"> 4372 Dish Pad Rack 4373 </a> 4374 4375 <div class="upsell-tab-item__price"><!-- snippets/component__format-price.liquid --> 4376 4377 4378$48</div> 4379 </div><div 4380 id='js-quickAdd-upsell-dish-pad-rack' 4381 x-show="quick_add_handle === 'dish-pad-rack'"></div> 4382</div> 4383 4384<style> 4385 .upsell-tab-item { 4386 display: flex; 4387 flex-direction: row; 4388 gap: 8px; 4389 width: calc(50% - 4px); 4390 flex-shrink: 0; 4391 scroll-snap-align: start; 4392 } 4393 4394 .upsell-tab-item__image-wrapper { 4395 position: relative; 4396 width: 84px; 4397 height: 84px; 4398 flex-shrink: 0; 4399 background-color: #f5f5f5; 4400 border-radius: 2px; 4401 overflow: hidden; 4402 } 4403 4404 .upsell-tab-item__image-link { 4405 display: block; 4406 width: 100%; 4407 height: 100%; 4408 } 4409 4410 .upsell-tab-item__image { 4411 width: 100%; 4412 height: 100%; 4413 object-fit: cover; 4414 display: block; 4415 } 4416 4417 .upsell-tab-item__image--placeholder { 4418 width: 60%; 4419 height: 60%; 4420 opacity: 0.3; 4421 } 4422 4423 .upsell-tab-item__add-btn { 4424 position: absolute; 4425 bottom: 8px; 4426 right: 8px;
4427 width: 20px; 4428 height: 20px; 4429 border-radius: 50%; 4430 background-color: #3C515E; 4431 border: none; 4432 padding: 0; 4433 display: flex; 4434 align-items: center; 4435 justify-content: center; 4436 cursor: pointer; 4437 transition: all 0.2s ease; 4438 z-index: 2; 4439 } 4440 4441 .upsell-tab-item__add-btn:disabled { 4442 opacity: 0.5; 4443 cursor: not-allowed; 4444 } 4445 4446 .upsell-tab-item__add-btn--loading .upsell-tab-item__add-icon { 4447 display: none; 4448 } 4449 4450 .upsell-tab-item__add-icon { 4451 width: 12px; 4452 height: 12px; 4453 color: #fff; 4454 } 4455 4456 .upsell-tab-item__spinner { 4457 position: absolute; 4458 display: flex; 4459 align-items: center; 4460 justify-content: center; 4461 } 4462 4463 .upsell-tab-item__content { 4464 display: flex; 4465 flex-direction: column; 4466 justify-content: space-between; 4467 flex: 1; 4468 min-width: 0; 4469 padding: 8px 0 !important; 4470 } 4471 4472 .upsell-tab-item__title { 4473 font-size: 12px; 4474 line-height: 1.2; 4475 letter-spacing: 0; 4476 color: #3D3D3D; 4477 text-align: left; 4478 text-decoration: none; 4479 display: -webkit-box; 4480 -webkit-line-clamp: 3; 4481 -webkit-box-orient: vertical; 4482 overflow: hidden; 4483 text-overflow: ellipsis; 4484 white-space: normal; 4485 } 4486 4487 .upsell-tab-item__title:hover { 4488 text-decoration: underline; 4489 } 4490 4491 .upsell-tab-item__price { 4492 font-size: 12px; 4493 line-height: 1.2; 4494 letter-spacing: 0; 4495 color: #3D3D3D; 4496 text-align: left; 4497 } 4498 4499 @media screen and (min-width: 750px) { 4500 .upsell-tab-item__image-wrapper { 4501 width: 100px; 4502 height: 100px; 4503 } 4504 4505 .upsell-tab-item__add-btn { 4506 width: 24px; 4507 height: 24px; 4508 bottom: 8px; 4509 right: 8px; 4510 } 4511 .upsell-tab-item{ 4512 gap: 12px; 4513 } 4514 4515 .upsell-tab-item__add-icon { 4516 width: 14px; 4517 height: 14px; 4518 } 4519 4520 .upsell-tab-item__title { 4521 font-size: 14px; 4522 } 4523 4524 .upsell-tab-item__price { 4525 font-size: 14px; 4526 } 4527 } 4528</style> 4529 4530 4531 <!-- snippets/component__upsell-tab-item.liquid --> 4532 4533<div 4534 class="upsell-tab-item" 4535 data-product-id="8489675194566" 4536 x-data="{ 4537 button_loading: false 4538 }"> 4539 <div class="upsell-tab-item__image-wrapper"><a href="/products/soap-dispenser-brush-holder-set" class="upsell-tab-item__image-link"> 4540 <img 4541 src="//doraihome.com/cdn/shop/files/102-20002_SoapDispenserandBrushHolder_Taupe_Q2_2026_01.jpg?v=1778266685&width=300" 4542 alt="Taupe soap dispenser and brush holder on white background." 4543 class="upsell-tab-item__image" 4544 loading="lazy" 4545 width="300" 4546 height="300" 4547 > 4548 </a> 4549<button 4550 type="button" 4551 class="upsell-tab-item__add-btn" 4552 :class="{ 'upsell-tab-item__add-btn--loading': button_loading }" 4553 aria-label="Select options for Concrete Soap Dispenser & Brush Holder Set" 4554 :disabled="button_loading" 4555 @click=" 4556 button_loading = true; 4557 fetchAndRenderQuickAdd('soap-dispenser-brush-holder-set', 'upsell'); 4558 setTimeout(function(){ button_loading = false}, 500); 4559 "> 4560 <svg class="upsell-tab-item__add-icon" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 4561 <path d="M10 4V16M4 10H16" stroke="currentColor" stroke-width="2" stroke-linecap="round"/> 4562 </svg> 4563 <div class="upsell-tab-item__spinner" x-show="button_loading"> 4564 <!-- snippets/component__icon.liquid --> 4565 4566 4567<span class="inline-flex align-middle " aria-hidden="true"> 4568 4569 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-loader"><line x1="12" y1="2" x2="12" y2="6"></line><line x1="12" y1="18" x2="12" y2="22"></line><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"></line><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"></line><line x1="2" y1="12" x2="6" y2="12"></line><line x1="18" y1="12" x2="22" y2="12"></line><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"></line><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"></line></svg> 4570 4571</span> 4572 </div> 4573 </button> 4574 4575 </div> 4576 4577 <div class="upsell-tab-item__content"> 4578 <a href="/products/soap-dispenser-brush-holder-set" class="upsell-tab-item__title"> 4579 Concrete Soap Dispenser & Brush Holder Set 4580 </a> 4581 4582 <div class="upsell-tab-item__price"><!-- snippets/component__format-price.liquid --> 4583 4584
4585$68</div> 4586 </div><div 4587 id='js-quickAdd-upsell-soap-dispenser-brush-holder-set' 4588 x-show="quick_add_handle === 'soap-dispenser-brush-holder-set'"></div> 4589</div> 4590 4591<style> 4592 .upsell-tab-item { 4593 display: flex; 4594 flex-direction: row; 4595 gap: 8px; 4596 width: calc(50% - 4px); 4597 flex-shrink: 0; 4598 scroll-snap-align: start; 4599 } 4600 4601 .upsell-tab-item__image-wrapper { 4602 position: relative; 4603 width: 84px; 4604 height: 84px; 4605 flex-shrink: 0; 4606 background-color: #f5f5f5; 4607 border-radius: 2px; 4608 overflow: hidden; 4609 } 4610 4611 .upsell-tab-item__image-link { 4612 display: block; 4613 width: 100%; 4614 height: 100%; 4615 } 4616 4617 .upsell-tab-item__image { 4618 width: 100%; 4619 height: 100%; 4620 object-fit: cover; 4621 display: block; 4622 } 4623 4624 .upsell-tab-item__image--placeholder { 4625 width: 60%; 4626 height: 60%; 4627 opacity: 0.3; 4628 } 4629 4630 .upsell-tab-item__add-btn { 4631 position: absolute; 4632 bottom: 8px; 4633 right: 8px; 4634 width: 20px; 4635 height: 20px; 4636 border-radius: 50%; 4637 background-color: #3C515E; 4638 border: none; 4639 padding: 0; 4640 display: flex; 4641 align-items: center; 4642 justify-content: center; 4643 cursor: pointer; 4644 transition: all 0.2s ease; 4645 z-index: 2; 4646 } 4647 4648 .upsell-tab-item__add-btn:disabled { 4649 opacity: 0.5; 4650 cursor: not-allowed; 4651 } 4652 4653 .upsell-tab-item__add-btn--loading .upsell-tab-item__add-icon { 4654 display: none; 4655 } 4656 4657 .upsell-tab-item__add-icon { 4658 width: 12px; 4659 height: 12px; 4660 color: #fff; 4661 } 4662 4663 .upsell-tab-item__spinner { 4664 position: absolute; 4665 display: flex; 4666 align-items: center; 4667 justify-content: center; 4668 } 4669 4670 .upsell-tab-item__content { 4671 display: flex; 4672 flex-direction: column; 4673 justify-content: space-between; 4674 flex: 1; 4675 min-width: 0; 4676 padding: 8px 0 !important; 4677 } 4678 4679 .upsell-tab-item__title { 4680 font-size: 12px; 4681 line-height: 1.2; 4682 letter-spacing: 0; 4683 color: #3D3D3D; 4684 text-align: left; 4685 text-decoration: none; 4686 display: -webkit-box; 4687 -webkit-line-clamp: 3; 4688 -webkit-box-orient: vertical; 4689 overflow: hidden; 4690 text-overflow: ellipsis; 4691 white-space: normal; 4692 } 4693 4694 .upsell-tab-item__title:hover { 4695 text-decoration: underline; 4696 } 4697 4698 .upsell-tab-item__price { 4699 font-size: 12px; 4700 line-height: 1.2; 4701 letter-spacing: 0; 4702 color: #3D3D3D; 4703 text-align: left; 4704 } 4705 4706 @media screen and (min-width: 750px) { 4707 .upsell-tab-item__image-wrapper { 4708 width: 100px; 4709 height: 100px; 4710 } 4711 4712 .upsell-tab-item__add-btn { 4713 width: 24px; 4714 height: 24px; 4715 bottom: 8px; 4716 right: 8px; 4717 } 4718 .upsell-tab-item{ 4719 gap: 12px; 4720 } 4721 4722 .upsell-tab-item__add-icon { 4723 width: 14px; 4724 height: 14px; 4725 } 4726 4727 .upsell-tab-item__title { 4728 font-size: 14px; 4729 } 4730 4731 .upsell-tab-item__price { 4732 font-size: 14px; 4733 } 4734 } 4735</style> 4736 4737 4738 </div> 4739 4740 </div> 4741 4742 4743 4744 4745 4746 <div 4747 x-show="activeTab === 'upsell_tab_NrC9a7'" 4748 4749 x-transition:enter="animation-300" 4750 x-transition:enter-start="opacity-0" 4751 x-transition:enter-end="opacity-100" 4752 x-transition:leave="animation-300" 4753 x-transition:leave-start="opacity-100" 4754 x-transition:leave-end="opacity-0" 4755 4756 class="w-full absolute top-0 left-0" 4757 :class="{ 'relative': activeTab === 'upsell_tab_NrC9a7' }" 4758 > 4759 4760 4761 4762 <div class="flex w-full flex-row gap-2 pb-4 px-4 overflow-x-auto whitespace-nowrap snap-x md:pb-6 hidescrollbar upsell-height border-b border--b-width" style="scroll-padding-left: 16px;"> 4763 4764 <!-- snippets/component__upsell-tab-item.liquid --> 4765 4766<div 4767 class="upsell-tab-item" 4768 data-product-id="7819727962310" 4769 x-data="{ 4770 button_loading: false 4771 }"> 4772 <div class="upsell-tab-item__image-wrapper"><a href="/products/stone-sink-caddy" class="upsell-tab-item__image-link"> 4773 <img 4774 src="//doraihome.com/cdn/shop/files/102-10013_StoneSinkCaddy_Slate_Q2_2026_01.jpg?v=1781294032&width=300"
4775 alt="Slate Stone Sink Caddy on white with brush and soap." 4776 class="upsell-tab-item__image" 4777 loading="lazy" 4778 width="300" 4779 height="300" 4780 > 4781 </a> 4782<button 4783 type="button" 4784 class="upsell-tab-item__add-btn" 4785 :class="{ 'upsell-tab-item__add-btn--loading': button_loading }" 4786 aria-label="Select options for Stone Sink Caddy" 4787 :disabled="button_loading" 4788 @click=" 4789 button_loading = true; 4790 fetchAndRenderQuickAdd('stone-sink-caddy', 'upsell'); 4791 setTimeout(function(){ button_loading = false}, 500); 4792 "> 4793 <svg class="upsell-tab-item__add-icon" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 4794 <path d="M10 4V16M4 10H16" stroke="currentColor" stroke-width="2" stroke-linecap="round"/> 4795 </svg> 4796 <div class="upsell-tab-item__spinner" x-show="button_loading"> 4797 <!-- snippets/component__icon.liquid --> 4798 4799 4800<span class="inline-flex align-middle " aria-hidden="true"> 4801 4802 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-loader"><line x1="12" y1="2" x2="12" y2="6"></line><line x1="12" y1="18" x2="12" y2="22"></line><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"></line><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"></line><line x1="2" y1="12" x2="6" y2="12"></line><line x1="18" y1="12" x2="22" y2="12"></line><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"></line><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"></line></svg> 4803 4804</span> 4805 </div> 4806 </button> 4807 4808 </div> 4809 4810 <div class="upsell-tab-item__content"> 4811 <a href="/products/stone-sink-caddy" class="upsell-tab-item__title"> 4812 Stone Sink Caddy 4813 </a> 4814 4815 <div class="upsell-tab-item__price"><!-- snippets/component__format-price.liquid --> 4816 4817 4818$46</div> 4819 </div><div 4820 id='js-quickAdd-upsell-stone-sink-caddy' 4821 x-show="quick_add_handle === 'stone-sink-caddy'"></div> 4822</div> 4823 4824<style> 4825 .upsell-tab-item { 4826 display: flex; 4827 flex-direction: row; 4828 gap: 8px; 4829 width: calc(50% - 4px); 4830 flex-shrink: 0; 4831 scroll-snap-align: start; 4832 } 4833 4834 .upsell-tab-item__image-wrapper { 4835 position: relative; 4836 width: 84px; 4837 height: 84px; 4838 flex-shrink: 0; 4839 background-color: #f5f5f5; 4840 border-radius: 2px; 4841 overflow: hidden; 4842 } 4843 4844 .upsell-tab-item__image-link { 4845 display: block; 4846 width: 100%; 4847 height: 100%; 4848 } 4849 4850 .upsell-tab-item__image { 4851 width: 100%; 4852 height: 100%; 4853 object-fit: cover; 4854 display: block; 4855 } 4856 4857 .upsell-tab-item__image--placeholder { 4858 width: 60%; 4859 height: 60%; 4860 opacity: 0.3; 4861 } 4862 4863 .upsell-tab-item__add-btn { 4864 position: absolute; 4865 bottom: 8px; 4866 right: 8px; 4867 width: 20px; 4868 height: 20px; 4869 border-radius: 50%; 4870 background-color: #3C515E; 4871 border: none; 4872 padding: 0; 4873 display: flex; 4874 align-items: center; 4875 justify-content: center; 4876 cursor: pointer; 4877 transition: all 0.2s ease; 4878 z-index: 2; 4879 } 4880 4881 .upsell-tab-item__add-btn:disabled { 4882 opacity: 0.5; 4883 cursor: not-allowed; 4884 } 4885 4886 .upsell-tab-item__add-btn--loading .upsell-tab-item__add-icon { 4887 display: none; 4888 } 4889 4890 .upsell-tab-item__add-icon { 4891 width: 12px; 4892 height: 12px; 4893 color: #fff; 4894 } 4895 4896 .upsell-tab-item__spinner { 4897 position: absolute; 4898 display: flex; 4899 align-items: center; 4900 justify-content: center; 4901 } 4902 4903 .upsell-tab-item__content { 4904 display: flex; 4905 flex-direction: column; 4906 justify-content: space-between; 4907 flex: 1; 4908 min-width: 0; 4909 padding: 8px 0 !important; 4910 } 4911 4912 .upsell-tab-item__title { 4913 font-size: 12px; 4914 line-height: 1.2; 4915 letter-spacing: 0; 4916 color: #3D3D3D; 4917 text-align: left; 4918 text-decoration: none; 4919 display: -webkit-box; 4920 -webkit-line-clamp: 3; 4921 -webkit-box-orient: vertical; 4922 overflow: hidden; 4923 text-overflow: ellipsis; 4924 white-space: normal; 4925 } 4926 4927 .upsell-tab-item__title:hover { 4928 text-decoration: underline; 4929 } 4930 4931 .upsell-tab-item__price { 4932 font-size: 12px; 4933 line-height: 1.2; 4934 letter-spacing: 0; 4935 color: #3D3D3D; 4936 text-align: left; 4937 } 4938 4939 @media screen and (min-width: 750px) { 4940 .upsell-tab-item__image-wrapper { 4941 width: 100px; 4942 height: 100px; 4943 } 4944 4945 .upsell-tab-item__add-btn { 4946 width: 24px; 4947 height: 24px; 4948 bottom: 8px; 4949 right: 8px; 4950 } 4951 .upsell-tab-item{ 4952 gap: 12px; 4953 } 4954 4955 .upsell-tab-item__add-icon { 4956 width: 14px; 4957 height: 14px; 4958 } 4959 4960 .upsell-tab-item__title { 4961 font-size: 14px; 4962 } 4963 4964 .upsell-tab-item__price { 4965 font-size: 14px; 4966 } 4967 } 4968</style> 4969 4970 4971 <!-- snippets/component__upsell-tab-item.liquid --> 4972 4973<div 4974 class="upsell-tab-item" 4975 data-product-id="7768945230022" 4976 x-data="{ 4977 button_loading: false 4978 }"> 4979 <div class="upsell-tab-item__image-wrapper"><a href="/products/stone-coaster-set" class="upsell-tab-item__image-link"> 4980 <img 4981 src="//doraihome.com/cdn/shop/files/102-10011_StoneCoasters_Sandstone_Q2_2026_01.jpg?v=1787070477&width=300" 4982 alt="Sandstone Stone Coaster set stacked with drink." 4983 class="upsell-tab-item__image" 4984 loading="lazy" 4985 width="300" 4986 height="300" 4987 > 4988 </a> 4989<button 4990 type="button" 4991 class="upsell-tab-item__add-btn" 4992 :class="{ 'upsell-tab-item__add-btn--loading': button_loading }" 4993 aria-label="Select options for Stone Coaster Set" 4994 :disabled="button_loading" 4995 @click=" 4996 button_loading = true; 4997 fetchAndRenderQuickAdd('stone-coaster-set', 'upsell'); 4998 setTimeout(function(){ button_loading = false}, 500); 4999 ">
5000 <svg class="upsell-tab-item__add-icon" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 5001 <path d="M10 4V16M4 10H16" stroke="currentColor" stroke-width="2" stroke-linecap="round"/> 5002 </svg> 5003 <div class="upsell-tab-item__spinner" x-show="button_loading"> 5004 <!-- snippets/component__icon.liquid --> 5005 5006 5007<span class="inline-flex align-middle " aria-hidden="true"> 5008 5009 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-loader"><line x1="12" y1="2" x2="12" y2="6"></line><line x1="12" y1="18" x2="12" y2="22"></line><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"></line><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"></line><line x1="2" y1="12" x2="6" y2="12"></line><line x1="18" y1="12" x2="22" y2="12"></line><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"></line><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"></line></svg> 5010 5011</span> 5012 </div> 5013 </button> 5014 5015 </div> 5016 5017 <div class="upsell-tab-item__content"> 5018 <a href="/products/stone-coaster-set" class="upsell-tab-item__title"> 5019 Stone Coaster Set 5020 </a> 5021 5022 <div class="upsell-tab-item__price"><!-- snippets/component__format-price.liquid --> 5023 5024 5025$42</div> 5026 </div><div 5027 id='js-quickAdd-upsell-stone-coaster-set' 5028 x-show="quick_add_handle === 'stone-coaster-set'"></div> 5029</div> 5030 5031<style> 5032 .upsell-tab-item { 5033 display: flex; 5034 flex-direction: row; 5035 gap: 8px; 5036 width: calc(50% - 4px); 5037 flex-shrink: 0; 5038 scroll-snap-align: start; 5039 } 5040 5041 .upsell-tab-item__image-wrapper { 5042 position: relative; 5043 width: 84px; 5044 height: 84px; 5045 flex-shrink: 0; 5046 background-color: #f5f5f5; 5047 border-radius: 2px; 5048 overflow: hidden; 5049 } 5050 5051 .upsell-tab-item__image-link { 5052 display: block; 5053 width: 100%; 5054 height: 100%; 5055 } 5056 5057 .upsell-tab-item__image { 5058 width: 100%; 5059 height: 100%; 5060 object-fit: cover; 5061 display: block; 5062 } 5063 5064 .upsell-tab-item__image--placeholder { 5065 width: 60%; 5066 height: 60%; 5067 opacity: 0.3; 5068 } 5069 5070 .upsell-tab-item__add-btn { 5071 position: absolute; 5072 bottom: 8px; 5073 right: 8px; 5074 width: 20px; 5075 height: 20px; 5076 border-radius: 50%; 5077 background-color: #3C515E; 5078 border: none; 5079 padding: 0; 5080 display: flex; 5081 align-items: center; 5082 justify-content: center; 5083 cursor: pointer; 5084 transition: all 0.2s ease; 5085 z-index: 2; 5086 } 5087 5088 .upsell-tab-item__add-btn:disabled { 5089 opacity: 0.5; 5090 cursor: not-allowed; 5091 } 5092 5093 .upsell-tab-item__add-btn--loading .upsell-tab-item__add-icon { 5094 display: none; 5095 } 5096 5097 .upsell-tab-item__add-icon { 5098 width: 12px; 5099 height: 12px; 5100 color: #fff; 5101 } 5102 5103 .upsell-tab-item__spinner { 5104 position: absolute; 5105 display: flex; 5106 align-items: center; 5107 justify-content: center; 5108 } 5109 5110 .upsell-tab-item__content { 5111 display: flex; 5112 flex-direction: column; 5113 justify-content: space-between; 5114 flex: 1; 5115 min-width: 0; 5116 padding: 8px 0 !important; 5117 } 5118 5119 .upsell-tab-item__title { 5120 font-size: 12px; 5121 line-height: 1.2; 5122 letter-spacing: 0; 5123 color: #3D3D3D; 5124 text-align: left; 5125 text-decoration: none; 5126 display: -webkit-box; 5127 -webkit-line-clamp: 3; 5128 -webkit-box-orient: vertical; 5129 overflow: hidden; 5130 text-overflow: ellipsis; 5131 white-space: normal; 5132 } 5133 5134 .upsell-tab-item__title:hover { 5135 text-decoration: underline; 5136 } 5137 5138 .upsell-tab-item__price { 5139 font-size: 12px; 5140 line-height: 1.2; 5141 letter-spacing: 0; 5142 color: #3D3D3D; 5143 text-align: left; 5144 } 5145 5146 @media screen and (min-width: 750px) { 5147 .upsell-tab-item__image-wrapper { 5148 width: 100px; 5149 height: 100px; 5150 } 5151 5152 .upsell-tab-item__add-btn { 5153 width: 24px; 5154 height: 24px; 5155 bottom: 8px; 5156 right: 8px; 5157 } 5158 .upsell-tab-item{ 5159 gap: 12px; 5160 } 5161 5162 .upsell-tab-item__add-icon { 5163 width: 14px; 5164 height: 14px; 5165 } 5166 5167 .upsell-tab-item__title { 5168 font-size: 14px; 5169 } 5170 5171 .upsell-tab-item__price { 5172 font-size: 14px; 5173 } 5174 } 5175</style> 5176 5177 5178 <!-- snippets/component__upsell-tab-item.liquid --> 5179 5180<div 5181 class="upsell-tab-item" 5182 data-product-id="8544060801222" 5183 x-data="{ 5184 button_loading: false 5185 }"> 5186 <div class="upsell-tab-item__image-wrapper"><a href="/products/square-coasters" class="upsell-tab-item__image-link"> 5187 <img 5188 src="//doraihome.com/cdn/shop/files/102-10026_LargeStoneCoaster_Sandstone_Q2_2026_01.jpg?v=1786481464&width=300" 5189 alt="Large Sandstone Coaster fits pitcher and cups - includes 4 coasters. " 5190 class="upsell-tab-item__image" 5191 loading="lazy" 5192 width="300" 5193 height="300" 5194 > 5195 </a> 5196<button 5197 type="button" 5198 class="upsell-tab-item__add-btn" 5199 :class="{ 'upsell-tab-item__add-btn--loading': button_loading }" 5200 aria-label="Select options for Square Coasters" 5201 :disabled="button_loading" 5202 @click=" 5203 button_loading = true; 5204 fetchAndRenderQuickAdd('square-coasters', 'upsell'); 5205 setTimeout(function(){ button_loading = false}, 500); 5206 ">
5207 <svg class="upsell-tab-item__add-icon" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 5208 <path d="M10 4V16M4 10H16" stroke="currentColor" stroke-width="2" stroke-linecap="round"/> 5209 </svg> 5210 <div class="upsell-tab-item__spinner" x-show="button_loading"> 5211 <!-- snippets/component__icon.liquid --> 5212 5213 5214<span class="inline-flex align-middle " aria-hidden="true"> 5215 5216 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-loader"><line x1="12" y1="2" x2="12" y2="6"></line><line x1="12" y1="18" x2="12" y2="22"></line><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"></line><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"></line><line x1="2" y1="12" x2="6" y2="12"></line><line x1="18" y1="12" x2="22" y2="12"></line><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"></line><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"></line></svg> 5217 5218</span> 5219 </div> 5220 </button> 5221 5222 </div> 5223 5224 <div class="upsell-tab-item__content"> 5225 <a href="/products/square-coasters" class="upsell-tab-item__title"> 5226 Square Coasters 5227 </a> 5228 5229 <div class="upsell-tab-item__price"><!-- snippets/component__format-price.liquid --> 5230 5231 5232$46</div> 5233 </div><div 5234 id='js-quickAdd-upsell-square-coasters' 5235 x-show="quick_add_handle === 'square-coasters'"></div> 5236</div> 5237 5238<style> 5239 .upsell-tab-item { 5240 display: flex; 5241 flex-direction: row; 5242 gap: 8px; 5243 width: calc(50% - 4px); 5244 flex-shrink: 0; 5245 scroll-snap-align: start; 5246 } 5247 5248 .upsell-tab-item__image-wrapper { 5249 position: relative; 5250 width: 84px; 5251 height: 84px; 5252 flex-shrink: 0; 5253 background-color: #f5f5f5; 5254 border-radius: 2px; 5255 overflow: hidden; 5256 } 5257 5258 .upsell-tab-item__image-link { 5259 display: block; 5260 width: 100%; 5261 height: 100%; 5262 } 5263 5264 .upsell-tab-item__image { 5265 width: 100%; 5266 height: 100%; 5267 object-fit: cover; 5268 display: block; 5269 } 5270 5271 .upsell-tab-item__image--placeholder { 5272 width: 60%; 5273 height: 60%; 5274 opacity: 0.3; 5275 } 5276 5277 .upsell-tab-item__add-btn { 5278 position: absolute; 5279 bottom: 8px; 5280 right: 8px; 5281 width: 20px; 5282 height: 20px; 5283 border-radius: 50%; 5284 background-color: #3C515E; 5285 border: none; 5286 padding: 0; 5287 display: flex; 5288 align-items: center; 5289 justify-content: center; 5290 cursor: pointer; 5291 transition: all 0.2s ease; 5292 z-index: 2; 5293 } 5294 5295 .upsell-tab-item__add-btn:disabled { 5296 opacity: 0.5; 5297 cursor: not-allowed; 5298 } 5299 5300 .upsell-tab-item__add-btn--loading .upsell-tab-item__add-icon { 5301 display: none; 5302 } 5303 5304 .upsell-tab-item__add-icon { 5305 width: 12px; 5306 height: 12px; 5307 color: #fff; 5308 } 5309 5310 .upsell-tab-item__spinner { 5311 position: absolute; 5312 display: flex; 5313 align-items: center; 5314 justify-content: center; 5315 } 5316 5317 .upsell-tab-item__content { 5318 display: flex; 5319 flex-direction: column; 5320 justify-content: space-between; 5321 flex: 1; 5322 min-width: 0; 5323 padding: 8px 0 !important; 5324 } 5325 5326 .upsell-tab-item__title { 5327 font-size: 12px; 5328 line-height: 1.2; 5329 letter-spacing: 0; 5330 color: #3D3D3D; 5331 text-align: left; 5332 text-decoration: none; 5333 display: -webkit-box; 5334 -webkit-line-clamp: 3; 5335 -webkit-box-orient: vertical; 5336 overflow: hidden; 5337 text-overflow: ellipsis; 5338 white-space: normal; 5339 } 5340 5341 .upsell-tab-item__title:hover { 5342 text-decoration: underline; 5343 } 5344 5345 .upsell-tab-item__price { 5346 font-size: 12px; 5347 line-height: 1.2; 5348 letter-spacing: 0; 5349 color: #3D3D3D; 5350 text-align: left; 5351 } 5352 5353 @media screen and (min-width: 750px) { 5354 .upsell-tab-item__image-wrapper { 5355 width: 100px; 5356 height: 100px; 5357 } 5358 5359 .upsell-tab-item__add-btn { 5360 width: 24px; 5361 height: 24px; 5362 bottom: 8px; 5363 right: 8px; 5364 } 5365 .upsell-tab-item{ 5366 gap: 12px; 5367 } 5368 5369 .upsell-tab-item__add-icon { 5370 width: 14px; 5371 height: 14px; 5372 } 5373 5374 .upsell-tab-item__title { 5375 font-size: 14px; 5376 } 5377 5378 .upsell-tab-item__price { 5379 font-size: 14px; 5380 } 5381 } 5382</style> 5383 5384 5385 <!-- snippets/component__upsell-tab-item.liquid --> 5386 5387<div 5388 class="upsell-tab-item" 5389 data-product-id="8422591103174" 5390 x-data="{ 5391 button_loading: false 5392 }"> 5393 <div class="upsell-tab-item__image-wrapper"><a href="/products/small-toothbrush-holder-2-pack" class="upsell-tab-item__image-link"> 5394 <img 5395 src="//doraihome.com/cdn/shop/files/101-10145_ToothbrushHolder-2pk_LightGray_PDP_Q12025_3.jpg?v=1762336481&width=300" 5396 alt="small toothbrush holder 2-pack, made from diatomaceous earth - Dorai Home" 5397 class="upsell-tab-item__image" 5398 loading="lazy" 5399 width="300" 5400 height="300" 5401 > 5402 </a> 5403<button 5404 type="button" 5405 class="upsell-tab-item__add-btn" 5406 :class="{ 'upsell-tab-item__add-btn--loading': button_loading }" 5407 aria-label="Select options for Small Toothbrush Holder 2-Pack" 5408 :disabled="button_loading" 5409 @click=" 5410 button_loading = true; 5411 fetchAndRenderQuickAdd('small-toothbrush-holder-2-pack', 'upsell'); 5412 setTimeout(function(){ button_loading = false}, 500); 5413 ">
5414 <svg class="upsell-tab-item__add-icon" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 5415 <path d="M10 4V16M4 10H16" stroke="currentColor" stroke-width="2" stroke-linecap="round"/> 5416 </svg> 5417 <div class="upsell-tab-item__spinner" x-show="button_loading"> 5418 <!-- snippets/component__icon.liquid --> 5419 5420 5421<span class="inline-flex align-middle " aria-hidden="true"> 5422 5423 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-loader"><line x1="12" y1="2" x2="12" y2="6"></line><line x1="12" y1="18" x2="12" y2="22"></line><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"></line><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"></line><line x1="2" y1="12" x2="6" y2="12"></line><line x1="18" y1="12" x2="22" y2="12"></line><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"></line><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"></line></svg> 5424 5425</span> 5426 </div> 5427 </button> 5428 5429 </div> 5430 5431 <div class="upsell-tab-item__content"> 5432 <a href="/products/small-toothbrush-holder-2-pack" class="upsell-tab-item__title"> 5433 Small Toothbrush Holder 2-Pack 5434 </a> 5435 5436 <div class="upsell-tab-item__price"><span class="upsell-compare-price"><!-- snippets/component__format-price.liquid --> 5437 5438 5439$40</span><!-- snippets/component__format-price.liquid --> 5440 5441 5442$36</div> 5443 </div><div 5444 id='js-quickAdd-upsell-small-toothbrush-holder-2-pack' 5445 x-show="quick_add_handle === 'small-toothbrush-holder-2-pack'"></div> 5446</div> 5447 5448<style> 5449 .upsell-tab-item { 5450 display: flex; 5451 flex-direction: row; 5452 gap: 8px; 5453 width: calc(50% - 4px); 5454 flex-shrink: 0; 5455 scroll-snap-align: start; 5456 } 5457 5458 .upsell-tab-item__image-wrapper { 5459 position: relative; 5460 width: 84px; 5461 height: 84px; 5462 flex-shrink: 0; 5463 background-color: #f5f5f5; 5464 border-radius: 2px; 5465 overflow: hidden; 5466 } 5467 5468 .upsell-tab-item__image-link { 5469 display: block; 5470 width: 100%; 5471 height: 100%; 5472 } 5473 5474 .upsell-tab-item__image { 5475 width: 100%; 5476 height: 100%; 5477 object-fit: cover; 5478 display: block; 5479 } 5480 5481 .upsell-tab-item__image--placeholder { 5482 width: 60%; 5483 height: 60%; 5484 opacity: 0.3; 5485 } 5486 5487 .upsell-tab-item__add-btn { 5488 position: absolute; 5489 bottom: 8px; 5490 right: 8px; 5491 width: 20px; 5492 height: 20px; 5493 border-radius: 50%; 5494 background-color: #3C515E; 5495 border: none; 5496 padding: 0; 5497 display: flex; 5498 align-items: center; 5499 justify-content: center; 5500 cursor: pointer; 5501 transition: all 0.2s ease; 5502 z-index: 2; 5503 } 5504 5505 .upsell-tab-item__add-btn:disabled { 5506 opacity: 0.5; 5507 cursor: not-allowed; 5508 } 5509 5510 .upsell-tab-item__add-btn--loading .upsell-tab-item__add-icon { 5511 display: none; 5512 } 5513 5514 .upsell-tab-item__add-icon { 5515 width: 12px; 5516 height: 12px; 5517 color: #fff; 5518 } 5519 5520 .upsell-tab-item__spinner { 5521 position: absolute; 5522 display: flex; 5523 align-items: center; 5524 justify-content: center; 5525 } 5526 5527 .upsell-tab-item__content { 5528 display: flex; 5529 flex-direction: column; 5530 justify-content: space-between; 5531 flex: 1; 5532 min-width: 0; 5533 padding: 8px 0 !important; 5534 } 5535 5536 .upsell-tab-item__title { 5537 font-size: 12px; 5538 line-height: 1.2; 5539 letter-spacing: 0; 5540 color: #3D3D3D; 5541 text-align: left; 5542 text-decoration: none; 5543 display: -webkit-box; 5544 -webkit-line-clamp: 3; 5545 -webkit-box-orient: vertical; 5546 overflow: hidden; 5547 text-overflow: ellipsis; 5548 white-space: normal; 5549 } 5550 5551 .upsell-tab-item__title:hover { 5552 text-decoration: underline; 5553 } 5554 5555 .upsell-tab-item__price { 5556 font-size: 12px; 5557 line-height: 1.2; 5558 letter-spacing: 0; 5559 color: #3D3D3D; 5560 text-align: left; 5561 } 5562 5563 @media screen and (min-width: 750px) { 5564 .upsell-tab-item__image-wrapper { 5565 width: 100px; 5566 height: 100px; 5567 } 5568 5569 .upsell-tab-item__add-btn { 5570 width: 24px; 5571 height: 24px; 5572 bottom: 8px; 5573 right: 8px; 5574 } 5575 .upsell-tab-item{ 5576 gap: 12px; 5577 } 5578 5579 .upsell-tab-item__add-icon { 5580 width: 14px; 5581 height: 14px; 5582 } 5583 5584 .upsell-tab-item__title { 5585 font-size: 14px; 5586 } 5587 5588 .upsell-tab-item__price { 5589 font-size: 14px; 5590 } 5591 } 5592</style> 5593 5594 5595 </div> 5596 5597 </div> 5598 5599 5600 </div> 5601 5602 </div> 5603 5604 5605 5606 <form class="w-full px-4 py-4" action="/cart" method="post" x-data="{checkout_button_loading:false}" @submit.prevent="checkout_button_loading = true; if(enable_audio) { playAudioIfEnabled(click_audio) } ;setTimeout(function(){ checkout_button_loading = false}, 5000); window.location.href = '/checkout';"> 5607 5608 5609 <div class="flex items-center justify-between w-full pt-0 pb-2 border-b color__border-divider-1">
5610 <span class="type--body-text">Subtotal</span> 5611 <span class="type--body-text" x-html="Shopify.formatMoney(cart.total_price)"> 5612 <!-- snippets/component__format-price.liquid --> 5613 5614 5615$0 5616 </span> 5617 </div> 5618 5619 <order-protection></order-protection> 5620 <p class="mb-0"> 5621 5622 <button type="submit" name="checkout" 5623 class="!w-full btn btn--load btn" 5624 :class="{ 'btn--loading' : checkout_button_loading }" 5625 :disabled="checkout_button_loading"> 5626 <div class="btn__spinner"> 5627 <!-- snippets/component__icon.liquid --> 5628 5629 5630<span class="inline-flex align-middle " aria-hidden="true"> 5631 5632 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-loader"><line x1="12" y1="2" x2="12" y2="6"></line><line x1="12" y1="18" x2="12" y2="22"></line><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"></line><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"></line><line x1="2" y1="12" x2="6" y2="12"></line><line x1="18" y1="12" x2="22" y2="12"></line><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"></line><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"></line></svg> 5633 5634</span> 5635 </div> 5636 <div class="btn__content btn--checkout type--body-text"> 5637 Checkout 5638 </div> 5639 </button> 5640 5641 5642 5643 </p> 5644 5645 5646 5647 </form> 5648 <p class="cart-returns-notice">*Returns are easy and free with Order Protection</p> 5649 </div> 5650 </aside> 5651 5652 </div> 5653 </div> 5654 </div> 5655 </div> 5656</section> 5657 5658<!-- snippets/component__alert.liquid --> 5659 5660 5661<div class="fixed top-0 left-0 right-0 z-50 w-auto overflow-hidden shadow-md md:left-auto md:right-5 md:top-5 color__bg-body color__text border--radius md:w-96 border--width color__border-divider-1" 5662 @click.outside="cart_alert = false" 5663 @keyup.escape.window="cart_alert = false" 5664 x-show="cart_alert" 5665 5666 x-transition:enter="animation-300" 5667 x-transition:enter-start="opacity-0" 5668 x-transition:enter-end="opacity-100" 5669 x-transition:leave="animation-300" 5670 x-transition:leave-start="opacity-100" 5671 x-transition:leave-end="opacity-0" 5672 5673 x-cloak> 5674 5675 <div class="relative p-4 overflow-hidden"> 5676 5677 <div class="absolute top-0 left-0 w-full h-1 overflow-hidden color__bg-overlay-1"> 5678 <div class="w-0 h-1 color__bg-secondary animation-5000--all" 5679 :style="{ width: cart.alert_delay }"></div> 5680 </div> 5681 5682 5683 <div class="flex flex-wrap items-center justify-between mb-4"> 5684 5685 <p class="flex items-center mb-0"> 5686 <!-- snippets/component__icon.liquid --> 5687 5688 5689<span class="inline-flex align-middle mr-1" aria-hidden="true"> 5690 5691 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-check"><polyline points="20 6 9 17 4 12"></polyline></svg> 5692 5693</span> Cart updated (<span x-text="cart.item_count"></span>) 5694 </p> 5695 <div class="flex"> 5696 <button class="btn btn--smaller btn--plain" 5697 title="Close" 5698 @click="cart_alert = false"> 5699 <!-- snippets/component__icon.liquid --> 5700 5701 5702<span class="inline-flex align-middle " aria-hidden="true"> 5703 5704 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 16 16" fill="none"><path d="M14.3746 13.6478C14.5695 13.8428 14.5695 14.1588 14.3746 14.3538C14.1796 14.5487 13.8635 14.5487 13.6686 14.3538L1.66699 2.35219C1.47204 2.15724 1.47204 1.84116 1.66699 1.64621C1.86194 1.45126 2.17802 1.45126 2.37297 1.64621L14.3746 13.6478Z" fill="#3D3D3D"/><path d="M1.64621 13.6478C1.45126 13.8428 1.45126 14.1588 1.64621 14.3538C1.84116 14.5487 2.15724 14.5487 2.35219 14.3538L14.3538 2.35219C14.5487 2.15724 14.5487 1.84116 14.3538 1.64621C14.1588 1.45126 13.8428 1.45126 13.6478 1.64621L1.64621 13.6478Z" fill="#3D3D3D"/></svg> 5705 5706 5707</span> 5708 </button> 5709 </div> 5710 </div> 5711 5712 <button class="btn btn--small btn--plain !w-full mb-2" 5713 @click="cart_drawer = true; cart_alert = false;"> 5714 View Cart 5715 </button> 5716 5717 <button class="btn btn--small btn--primary !w-full mb-2" @click="checkout_button_loading = true; setTimeout(function(){ checkout_button_loading = false}, 5000); window.location.href = '/checkout';"> 5718 Checkout | 5719 5720 <span class="ml-1 type__nav" x-html="Shopify.formatMoney(cart.total_price)"></span> 5721 5722 </button> 5723 5724 </div> 5725</div> 5726
5727<script> 5728 window.__initialData = window.__initialData || {}; 5729 Object.assign(window.__initialData, { 5730 progress_bar_threshold: 0, 5731 shipping_threshold: 5000, 5732 gift_threshold: 100, 5733 }); 5734 5735 // Remove border and shadow from order-protection element 5736 function styleOrderProtection() { 5737 const orderProtection = document.querySelector('order-protection'); 5738 5739 if (orderProtection && orderProtection.shadowRoot) { 5740 const borderedContainer = orderProtection.shadowRoot.querySelector('bordered-container'); 5741 const verticalStack = orderProtection.shadowRoot.querySelector('vertical-stack'); 5742 5743 if (borderedContainer) { 5744 borderedContainer.style.border = 'none'; 5745 borderedContainer.style.boxShadow = 'none'; 5746 borderedContainer.style.borderWidth = '0'; 5747 borderedContainer.style.borderStyle = 'none'; 5748 } 5749 5750 if (verticalStack) { 5751 verticalStack.style.marginTop = '12px'; 5752 verticalStack.style.marginBottom = '12px'; 5753 } 5754 } 5755 } 5756 5757 // Try immediately 5758 styleOrderProtection(); 5759 5760 // Also try after DOM loads (in case element loads later) 5761 document.addEventListener('DOMContentLoaded', styleOrderProtection); 5762 5763 // Watch for dynamic changes (if cart updates) 5764 setTimeout(styleOrderProtection, 500); 5765 5766</script>
5766 5767 5768</div> 5769 <div id="shopify-section-theme__menu" class="shopify-section"><!-- sections/theme__menu.liquid --> 5770 5771 5772 5773 5774<!-- snippets/component__drawer.liquid --> 5775 5776 5777<section 5778 id="menu_drawer" 5779 role="dialog" 5780 aria-modal="true" 5781 aria-label="menu drawer" 5782 class="fixed z-50 overflow-hidden z10001 5783 left-0 right-0 bottom-0 top-8" 5784 x-show="menu_drawer" 5785 x-cloak> 5786 5787 <div 5788 class="backdrop-blur-md absolute bg-black bg-opacity-50 5789 left-0 right-0 bottom-0 top-[32px]" 5790 aria-hidden="true" 5791 @click="menu_drawer = false; hide_header = false;" 5792 x-show="menu_drawer" 5793 5794 x-transition:enter="animation-300" 5795 x-transition:enter-start="opacity-0" 5796 x-transition:enter-end="opacity-100" 5797 x-transition:leave="animation-300" 5798 x-transition:leave-start="opacity-100" 5799 x-transition:leave-end="opacity-0" 5800 5801 x-cloak> 5802 </div> 5803 <div 5804 class="left-0 top-8 fixed inset-y-0 flex max-w-full" 5805 x-trap="menu_drawer" 5806 @keydown.escape="menu_drawer = false; hide_header = false;" 5807 x-show="menu_drawer" 5808 5809 x-transition:enter="animation-300 opacity-0 -translate-x-8" 5810 x-transition:enter-start="opacity-0 -translate-x-8" 5811 x-transition:enter-end="translate-x-0 opacity-100" 5812 x-transition:leave="animation-300 opacity-100 -translate-x-8" 5813 x-transition:leave-start="translate-x-0 opacity-100" 5814 x-transition:leave-end="opacity-0 -translate-x-8" 5815 5816 x-cloak> 5817 <div class="md:max-w-md w-screen max-w-full"> 5818 <div class="color__bg-body color__text flex flex-col h-full overflow-y-auto shadow-xl menu-drawer"> 5819 5820 5821 5822<section 5823 class="border--b-width sticky top-0 z-20 py-4 w-full 5824 color__border-divider-1" 5825 @click="menu_nested = false;" 5826 x-init="$watch('menu_drawer', val => { if (!val) $nextTick(() => $refs.menuTrigger && $refs.menuTrigger.focus()) })" 5827> 5828 <div class="flex items-center justify-between px-4 py-3"><a href="/" class="no-underline flex items-center" title="Dorai Home"> 5829 5830 <img 5831 src="//doraihome.com/cdn/shop/files/dorai-logo.svg?v=1726241081&width=320" 5832 srcset=" 5833 //doraihome.com/cdn/shop/files/dorai-logo.svg?v=1726241081&width=160 160w, 5834 //doraihome.com/cdn/shop/files/dorai-logo.svg?v=1726241081&width=240 240w, 5835 //doraihome.com/cdn/shop/files/dorai-logo.svg?v=1726241081&width=320 320w 5836 " 5837 width="320" 5838 height="52" 5839 alt="Dorai Home" 5840 class="block h-7 w-auto h-4" 5841 loading="eager" 5842 style="height:18px;" 5843 > 5844 5845 </a><div class="flex items-center gap-6"> 5846 5847 <a 5848 class="inline-flex items-center no-underline" 5849 href="/search" 5850 rel="nofollow" 5851 title="Search" 5852 > 5853 <!-- snippets/component__icon.liquid --> 5854 5855 5856<span class="inline-flex align-middle " aria-hidden="true"> 5857 5858 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><g clip-path="url(#clip0_1261_1018)"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.27894 0C9.7466 1.40086e-06 12.5577 2.86507 12.5579 6.39936C12.5579 7.91034 12.042 9.29766 11.1828 10.3925C11.1995 10.4053 11.2171 10.4178 11.2323 10.4333L15.8645 15.1546C16.0493 15.3431 16.0446 15.6547 15.8532 15.85C15.6616 16.0452 15.3557 16.0506 15.1708 15.8621L10.5378 11.1407C10.5309 11.1336 10.526 11.1247 10.5196 11.1173C9.40229 12.1612 7.91411 12.7996 6.27894 12.7996C2.81118 12.7996 0 9.93379 0 6.39936C0.000154841 2.86507 2.81127 0 6.27894 0ZM6.27894 1.00001C3.35311 1.00001 0.981104 3.41732 0.980949 6.39936C0.980949 9.38154 3.35302 11.7996 6.27894 11.7996C9.20486 11.7996 11.5769 9.38154 11.5769 6.39936C11.5768 3.41732 9.20477 1.00001 6.27894 1.00001Z" fill="#3D3D3D"/></g><defs><clipPath id="clip0_1261_1018"><rect width="16" height="16" fill="white"/></clipPath></defs></svg> 5859 5860 5861 5862</span> 5863 </a> 5864 5865 5866 <a 5867 class="inline-flex items-center no-underline" 5868 href="/account" 5869 rel="nofollow" 5870 title="Login" 5871 > 5872 <!-- snippets/component__icon.liquid --> 5873 5874 5875<span class="inline-flex align-middle " aria-hidden="true"> 5876 5877 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewB
5877ox="0 0 15 16" fill="none"> 5878 <path d="M7.31752 8.22758C11.2725 8.22768 14.5201 11.4105 14.6342 15.3447L14.635 15.3508V15.3577C14.6349 15.6835 14.3814 15.9998 14.0015 16H0.633541C0.266377 16 4.57048e-07 15.6971 0 15.3665V15.3543L0.0113288 15.0981C0.0883265 13.8719 0.471486 12.7212 1.08843 11.7229V11.7107L1.15989 11.6001C2.46063 9.57797 4.74043 8.22758 7.31752 8.22758ZM7.31752 9.11994C5.10263 9.11994 3.13556 10.2591 1.98079 11.98V11.9818L1.91021 12.0916C1.3392 12.979 0.982458 14.0085 0.905431 15.1076H13.7287C13.4956 11.7753 10.6984 9.12004 7.31752 9.11994Z" fill="#3D3D3D"/> 5879 <path d="M10.048 3.6226C10.0478 2.11469 8.82489 0.892359 7.31693 0.892359C5.80916 0.892566 4.5869 2.11482 4.5867 3.6226C4.5867 5.13055 5.80903 6.3535 7.31693 6.3537C8.82501 6.3537 10.048 5.13067 10.048 3.6226ZM10.9404 3.6226C10.9404 5.62351 9.31785 7.24606 7.31693 7.24606C5.31619 7.24585 3.69434 5.62338 3.69434 3.6226C3.69454 1.62198 5.31632 0.000206937 7.31693 0C9.31772 0 10.9402 1.62186 10.9404 3.6226Z" fill="#3D3D3D"/> 5880 </svg> 5881 5882 5883</span> 5884 </a> 5885 5886 5887 <a 5888 class="relative inline-flex items-center no-underline" 5889 href="/cart" 5890 rel="nofollow" 5891 title="Open Cart" 5892 5893 @click.prevent="menu_drawer = false; cart_drawer = true; if(enable_audio) { playAudioIfEnabled(click_audio) }" 5894 5895 > 5896 <!-- snippets/component__icon.liquid --> 5897 5898 5899<span class="inline-flex align-middle " aria-hidden="true"> 5900 5901 <svg xmlns="http://www.w3.org/2000/svg" width="" height="16" viewBox="0 0 21 16" fill="none"> 5902 <path d="M19.9545 4.12813C20.4207 4.12834 20.716 4.60051 20.5884 5.03932L20.5847 5.05011L17.2819 15.5165C17.1903 15.8064 16.9462 16.0001 16.6518 16.0001H3.99304C3.673 16.0001 3.45246 15.7703 3.36844 15.5332L3.36566 15.5253L3.36288 15.5165L0.0323221 4.99027H0.0313954C-0.100244 4.57229 0.198874 4.13794 0.615217 4.13794H16.5786L16.5878 4.12813H19.9545ZM16.9715 5.1423H1.08135L4.19877 14.9957H16.446L19.5588 5.13249H16.9807L16.9715 5.1423Z" fill="#3D3D3D"/> 5903 <path d="M12.8941 3.68595C12.894 2.21573 11.7496 1.00437 10.3605 1.00437C8.97141 1.00441 7.82691 2.21576 7.82687 3.68595V4.64029H6.87793V3.68595C6.87797 1.66106 8.44733 4.29516e-05 10.3605 0C12.2736 0 13.843 1.66104 13.843 3.68595V4.64029H12.8941V3.68595Z" fill="#3D3D3D"/> 5904 </svg> 5905 5906 5907 5908</span> 5909 <span 5910 class="type--smaller color__bg-primary color__primary ml-1 px-2 py-0.5 border__button--radius cart_icon" 5911 x-show="cart.item_count > 0" 5912 x-cloak 5913 > 5914 <span class="type__nav" x-text="cart.item_count">0</span> 5915 </span> 5916 </a> 5917 5918 <button 5919 class="inline-flex items-center no-underline" 5920 title="Close" 5921 aria-label="Close" 5922 @click="menu_drawer = false;" 5923 > 5924 <!-- snippets/component__icon.liquid --> 5925 5926 5927<span class="inline-flex align-middle " aria-hidden="true"> 5928 5929 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M14.3746 13.6478C14.5695 13.8428 14.5695 14.1588 14.3746 14.3538C14.1796 14.5487 13.8635 14.5487 13.6686 14.3538L1.66699 2.35219C1.47204 2.15724 1.47204 1.84116 1.66699 1.64621C1.86194 1.45126 2.17802 1.45126 2.37297 1.64621L14.3746 13.6478Z" fill="#3D3D3D"/><path d="M1.64621 13.6478C1.45126 13.8428 1.45126 14.1588 1.64621 14.3538C1.84116 14.5487 2.15724 14.5487 2.35219 14.3538L14.3538 2.35219C14.5487 2.15724 14.5487 1.84116 14.3538 1.64621C14.1588 1.45126 13.8428 1.45126 13.6478 1.64621L1.64621 13.6478Z" fill="#3D3D3D"/></svg> 5930 5931 5932</span> 5933 </button> 5934 5935 </div> 5936 </div> 5937</section> 5938 5939 5940 5941 <section class="relative h-[inherit] overflow-y-auto overflow-x-hidden color__bg-body color__text"> 5942 5943 5944 5945 5946 <div class="py-6 pb-2 pr-0 border--b-width color__border-divider-1"> 5947 <div class="flex gap-3 pb-4 px-4 overflow-scroll hidescrollbar scrolling-menu__wrapper"> 5948 5949 <a href="/collections/clay-collection" class="no-underline" id="shop-clay-scrolling-menu-link"> 5950 <img src="//doraihome.com/cdn/shop/files/092026-ClayCollection-Nav.jpg?v=1788886077&width=640" alt="Dorai Home Clay Bath Stone in front of bathroom. " srcset="//doraihome.com/cdn/shop/files/092026-ClayCollection-Nav.jpg?v=1788886077&width=144 144w, //doraihome.com/cdn/shop/files/092026-ClayCollection-Nav.jpg?v=1788886077&width=352 352w" width="144" height="164"> 5951 <p class="title-small no-underline mt-3">Shop Clay</p> 5952 </a> 5953 5954 5955 <a href="/pages/build-your-own-set" class="no-underline" id="save-15-on-sets-scrolling-menu-link"> 5956 <img src="//doraihome.com/cdn/shop/files/082026-BuildYourOwnSet-Nav-Carousel.jpg?v=1786116686&width=640" alt="" srcset="//doraihome.com/cdn/shop/files/082026-BuildYourOwnSet-Nav-Carousel.jpg?v=1786116686&width=144 144w, //doraihome.com/cdn/shop/files/082026-BuildYourOwnSet-Nav-Carousel.jpg?v=1786116686&width=352 352w" width="144" height="164" style="object-position:44.531% 68.799%;"> 5957 <p class="title-small no-underline mt-3">Save 15% on Sets</p> 5958 </a> 5959 5960 5961 <a href="/collections/new-arrivals" class="no-underline" id="new-arrivals-scrolling-menu-link"> 5962 <img src="//doraihome.com/cdn/shop/files/092026-LaborDaySale-Nav.jpg?v=1788886077&width=640" alt="Dorai Home New Basalt Paper Towel Holder " srcset="//doraihome.com/cdn/shop/files/092026-LaborDaySale-Nav.jpg?v=1788886077&width=144 144w, //doraihome.com/cdn/shop/files/092026-LaborDaySale-Nav.jpg?v=1788886077&width=352 352w" width="144" height="164"> 5963 <p class="title-small no-underline mt-3">New Arrivals</p> 5964 </a> 5965 5966 5967 5968 </div>
5969 </div> 5970 5971 5972 <div data-accordion-group="mobile-menu-top" x-data="{ openAccordionId: null }"> 5973 5974 5975 5976 <a href="/collections/shop-all-products" 5977 id="hl-SHOP_ALL" 5978 class="type__body flex items-center justify-start w-full px-4 py-6 no-underline border--b-width color__border-divider-1 5979 5980 "> 5981 <span class="type__body text-left leading-none no-underline"> 5982 Shop All 5983 </span> 5984 </a> 5985 5986 5987 5988 <a href="/collections/new-arrivals" 5989 id="hl-NEW_ARRIVALS" 5990 class="type__body flex items-center justify-start w-full px-4 py-6 no-underline border--b-width color__border-divider-1 5991 5992 "> 5993 <span class="type__body text-left leading-none no-underline"> 5994 New Arrivals 5995 </span> 5996 </a> 5997 5998 5999 6000 6001 6002 6003 6004 <!-- snippets/component__accordion_new.liquid --> 6005 6006 6007 6008 6009 6010 6011 6012<div class=" 6013 border--b-width color__border-divider-1 6014 accordion__wrapper" 6015 6016 6017 6018 x-data="{ accordionId: 'kitchen' }" 6019 :class="{ 'is-accordion-open': openAccordionId === accordionId }" 6020 x-init=" 6021 6022 " 6023 6024> 6025 6026 <button 6027 type="button" 6028 class="flex items-center justify-between w-full py-7 px-4" 6029 :aria-expanded="(openAccordionId === accordionId).toString()" 6030 aria-controls="kitchen-content" 6031 @click=" 6032 6033 openAccordionId = (openAccordionId === accordionId) ? null : accordionId 6034 6035 " 6036 > 6037 <div class="flex items-center py-0"> 6038 6039<span class="accordion__title title-medium text-left "> 6040 6041 Kitchen 6042 6043 </span> 6044 </div><div 6045 x-show=" 6046 6047 openAccordionId !== accordionId 6048 6049 " 6050 > 6051 <!-- snippets/component__icon.liquid --> 6052 6053 6054<span class="inline-flex align-middle " aria-hidden="true"> 6055 6056 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="6.4" viewBox="0 0 15 8" fill="none"><path d="M13.7611 0.206751C14.0445 -0.068917 14.504 -0.068917 14.7874 0.206751C15.0709 0.482419 15.0709 0.929258 14.7874 1.20493L8.01317 7.79325C7.72972 8.06892 7.27028 8.06892 6.98683 7.79325L0.212585 1.20493C-0.0708618 0.929258 -0.0708618 0.482419 0.212585 0.206751C0.496032 -0.068917 0.955481 -0.068917 1.23893 0.206751L7.5 6.29599L13.7611 0.206751Z" fill="#3D3D3D"/></svg> 6057 6058</span> 6059 </div><div 6060 x-show=" 6061 6062 openAccordionId === accordionId 6063 6064 " 6065 x-cloak 6066 > 6067 <!-- snippets/component__icon.liquid --> 6068 6069 6070<span class="inline-flex align-middle " aria-hidden="true"> 6071 6072 <svg xmlns="http://www.w3.org/2000/svg" width="15" height="8" viewBox="0 0 15 8" fill="none"><path d="M13.7611 7.79325C14.0445 8.06892 14.504 8.06892 14.7874 7.79325C15.0709 7.51758
607215.0709 7.07074 14.7874 6.79507L8.01317 0.20675C7.72972 -0.0689173 7.27028 -0.0689173 6.98683 0.20675L0.212585 6.79507C-0.0708618 7.07074 -0.0708618 7.51758 0.212585 7.79325C0.496032 8.06892 0.955481 8.06892 1.23893 7.79325L7.5 1.70401L13.7611 7.79325Z" fill="#3D3D3D"/></svg> 6073 6074</span> 6075 </div> 6076 </button> 6077 6078 <div 6079 id="kitchen-content" 6080 class="accordion-content color__bg-body" 6081 x-show=" 6082 6083 openAccordionId === accordionId 6084 6085 " 6086 6087 x-transition:enter="animation-100" 6088 x-transition:enter-start="opacity-0" 6089 x-transition:enter-end="opacity-100" 6090 x-transition:leave="animation-100" 6091 x-transition:leave-start="opacity-100" 6092 x-transition:leave-end="opacity-0" 6093 6094 x-cloak 6095 > 6096 6097 <div class="faq-content--wrapper"> 6098 6099 6100 <a 6101 href="/collections/kitchen" id="kitchen-mobile-shop_all" 6102 data-pagesense-track="true" 6103 class="type__body border--t-width color__border-divider-1 flex items-center justify-start w-full px-4 py-4 no-underline"> 6104 <span class="type__body text-left opacity-75 leading-none">Shop All Kitchen</span> 6105 <!-- snippets/component__icon.liquid --> 6106 6107 6108<span class="inline-flex align-middle opacity-75" aria-hidden="true"> 6109 6110 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"><polyline points="9 18 15 12 9 6"></polyline></svg> 6111 6112</span> 6113 </a> 6114 6115 6116 6117 6118 6119 6120 6121 6122 <div class="px-4 pt-4 pb-6"> 6123 <div class="grid grid-cols-2 gap-4"> 6124 6125 6126 6127 6128 6129 <a href="/collections/dish-pads" class="no-underline block" id="kitchen-dish-pads-mobile" data-pagesense-track="true"> 6130 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Kitchen-DishPads.jpg?v=1768363931" alt="Dish Pads" loading="lazy" class="w-full h-auto block" /> 6131 <p class="type__body text-left semibold opacity-75 mt-3 leading-none">Dish Pads</p> 6132 6133 </a> 6134 6135 6136 6137 6138 6139 6140 6141 <a href="/collections/dish-racks" class="no-underline block" id="kitchen-dish-racks-mobile" data-pagesense-track="true"> 6142 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Kitchen-DishRacks.jpg?v=1768363931" alt="Dish Racks" loading="lazy" class="w-full h-auto block" /> 6143 <p class="type__body text-left semibold opacity-75 mt-3 leading-none">Dish Racks</p> 6144 6145 </a> 6146 6147 6148 6149 6150 6151 6152 6153 <a href="/collections/kitchen-accessories" class="no-underline block" id="kitchen-counter-organization-mobile" data-pagesense-track="true"> 6154 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-CounterOrganization-PTH.jpg?v=1768592154" alt="Counter Organization" loading="lazy" class="w-full h-auto block" /> 6155 <p class="type__body text-left semibold opacity-75 mt-3 leading-none">Counter Organization</p> 6156 6157 </a> 6158 6159 6160 6161 6162 6163 6164 6165 <a href="/collections/kitchen-bundles" class="no-underline block" id="kitchen-kitchen-bundles-mobile" data-pagesense-track="true"> 6166 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Kitchen-Bundles.jpg?v=1768363931" alt="Kitchen Bundles" loading="lazy" class="w-full h-auto block" /> 6167 <p class="type__body text-left semibold opacity-75 mt-3 leading-none">Kitchen Bundles</p> 6168 6169 </a> 6170 6171 6172 6173 </div> 6174 </div> 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 </div> 6188 6189 6190 6191 </div> 6192 6193</div> 6194 6195 6196 6197 6198 6199 6200 6201 6202 <!-- snippets/component__accordion_new.liquid --> 6203 6204 6205 6206 6207 6208 6209 6210<div class=" 6211 border--b-width color__border-divider-1 6212 accordion__wrapper" 6213 6214 6215 6216 x-data="{ accordionId: 'bathroom' }" 6217 :class="{ 'is-accordion-open': openAccordionId === accordionId }" 6218 x-init=" 6219 6220 " 6221 6222> 6223 6224 <button 6225 type="button" 6226 class="flex items-center justify-between w-full py-7 px-4"
6227 :aria-expanded="(openAccordionId === accordionId).toString()" 6228 aria-controls="bathroom-content" 6229 @click=" 6230 6231 openAccordionId = (openAccordionId === accordionId) ? null : accordionId 6232 6233 " 6234 > 6235 <div class="flex items-center py-0"> 6236 6237<span class="accordion__title title-medium text-left "> 6238 6239 Bathroom 6240 6241 </span> 6242 </div><div 6243 x-show=" 6244 6245 openAccordionId !== accordionId 6246 6247 " 6248 > 6249 <!-- snippets/component__icon.liquid --> 6250 6251 6252<span class="inline-flex align-middle " aria-hidden="true"> 6253 6254 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="6.4" viewBox="0 0 15 8" fill="none"><path d="M13.7611 0.206751C14.0445 -0.068917 14.504 -0.068917 14.7874 0.206751C15.0709 0.482419 15.0709 0.929258 14.7874 1.20493L8.01317 7.79325C7.72972 8.06892 7.27028 8.06892 6.98683 7.79325L0.212585 1.20493C-0.0708618 0.929258 -0.0708618 0.482419 0.212585 0.206751C0.496032 -0.068917 0.955481 -0.068917 1.23893 0.206751L7.5 6.29599L13.7611 0.206751Z" fill="#3D3D3D"/></svg> 6255 6256</span> 6257 </div><div 6258 x-show=" 6259 6260 openAccordionId === accordionId 6261 6262 " 6263 x-cloak 6264 > 6265 <!-- snippets/component__icon.liquid --> 6266 6267 6268<span class="inline-flex align-middle " aria-hidden="true"> 6269 6270 <svg xmlns="http://www.w3.org/2000/svg" width="15" height="8" viewBox="0 0 15 8" fill="none"><path d="M13.7611 7.79325C14.0445 8.06892 14.504 8.06892 14.7874 7.79325C15.0709 7.51758
627015.0709 7.07074 14.7874 6.79507L8.01317 0.20675C7.72972 -0.0689173 7.27028 -0.0689173 6.98683 0.20675L0.212585 6.79507C-0.0708618 7.07074 -0.0708618 7.51758 0.212585 7.79325C0.496032 8.06892 0.955481 8.06892 1.23893 7.79325L7.5 1.70401L13.7611 7.79325Z" fill="#3D3D3D"/></svg> 6271 6272</span> 6273 </div> 6274 </button> 6275 6276 <div 6277 id="bathroom-content" 6278 class="accordion-content color__bg-body" 6279 x-show=" 6280 6281 openAccordionId === accordionId 6282 6283 " 6284 6285 x-transition:enter="animation-100" 6286 x-transition:enter-start="opacity-0" 6287 x-transition:enter-end="opacity-100" 6288 x-transition:leave="animation-100" 6289 x-transition:leave-start="opacity-100" 6290 x-transition:leave-end="opacity-0" 6291 6292 x-cloak 6293 > 6294 6295 <div class="faq-content--wrapper"> 6296 6297 6298 <a 6299 href="/collections/bathroom" id="bathroom-mobile-shop_all" 6300 data-pagesense-track="true" 6301 class="type__body border--t-width color__border-divider-1 flex items-center justify-start w-full px-4 py-4 no-underline"> 6302 <span class="type__body text-left opacity-75 leading-none">Shop All Bathroom</span> 6303 <!-- snippets/component__icon.liquid --> 6304 6305 6306<span class="inline-flex align-middle opacity-75" aria-hidden="true"> 6307 6308 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"><polyline points="9 18 15 12 9 6"></polyline></svg> 6309 6310</span> 6311 </a> 6312 6313 6314 6315 6316 6317 6318 6319 6320 <div class="px-4 pt-4 pb-6"> 6321 <div class="grid grid-cols-2 gap-4"> 6322 6323 6324 6325 6326 6327 <a href="/collections/original-bath-stones" class="no-underline block" id="bathroom-original-bath-stones-mobile" data-pagesense-track="true"> 6328 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bath-OriginalBathStones.jpg?v=1768363931" alt="Original Bath Stones" loading="lazy" class="w-full h-auto block" /> 6329 <p class="type__body text-left semibold opacity-75 mt-3 leading-none">Original Bath Stones</p> 6330 6331 </a> 6332 6333 6334 6335 6336 6337 6338 6339 <a href="/collections/medium-large-bath-stones" class="no-underline block" id="bathroom-medium-large-bath-stones-mobile" data-pagesense-track="true"> 6340 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bath-MediumLargeBathStones.jpg?v=1768363931" alt="Medium & Large Bath Stones" loading="lazy" class="w-full h-auto block" /> 6341 <p class="type__body text-left semibold opacity-75 mt-3 leading-none">Medium & Large Bath Stones</p> 6342 6343 </a> 6344 6345 6346 6347 6348 6349 6350 6351 <a href="/collections/bathroom-accessories" class="no-underline block" id="bathroom-caddies-organization-mobile" data-pagesense-track="true"> 6352 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bath-CaddiesOrganization.jpg?v=1768363931" alt="Caddies & Organization" loading="lazy" class="w-full h-auto block" /> 6353 <p class="type__body text-left semibold opacity-75 mt-3 leading-none">Caddies & Organization</p> 6354 6355 </a> 6356 6357 6358 6359 6360 6361 6362 6363 <a href="/collections/bathroom-bundles" class="no-underline block" id="bathroom-bathroom-bundles-mobile" data-pagesense-track="true"> 6364 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bath-Bundles.jpg?v=1768363931" alt="Bathroom Bundles" loading="lazy" class="w-full h-auto block" /> 6365 <p class="type__body text-left semibold opacity-75 mt-3 leading-none">Bathroom Bundles</p> 6366 6367 </a> 6368 6369 6370 6371 </div> 6372 </div> 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 </div> 6386 6387 6388 6389 </div> 6390 6391</div> 6392 6393 6394 6395 6396 6397 6398 6399 6400 <!-- snippets/component__accordion_new.liquid --> 6401 6402 6403 6404 6405 6406 6407 6408<div class=" 6409 border--b-width color__border-divider-1 6410 accordion__wrapper" 6411 6412 6413 6414 x-data="{ accordionId: 'accessories' }" 6415 :class="{ 'is-accordion-open': openAccordionId === accordionId }" 6416 x-init=" 6417 6418 " 6419 6420> 6421 6422 <button 6423 type="button" 6424 class="flex items-center justify-between w-full py-7 px-4"
6425 :aria-expanded="(openAccordionId === accordionId).toString()" 6426 aria-controls="accessories-content" 6427 @click=" 6428 6429 openAccordionId = (openAccordionId === accordionId) ? null : accordionId 6430 6431 " 6432 > 6433 <div class="flex items-center py-0"> 6434 6435<span class="accordion__title title-medium text-left "> 6436 6437 Accessories 6438 6439 </span> 6440 </div><div 6441 x-show=" 6442 6443 openAccordionId !== accordionId 6444 6445 " 6446 > 6447 <!-- snippets/component__icon.liquid --> 6448 6449 6450<span class="inline-flex align-middle " aria-hidden="true"> 6451 6452 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="6.4" viewBox="0 0 15 8" fill="none"><path d="M13.7611 0.206751C14.0445 -0.068917 14.504 -0.068917 14.7874 0.206751C15.0709 0.482419 15.0709 0.929258 14.7874 1.20493L8.01317 7.79325C7.72972 8.06892 7.27028 8.06892 6.98683 7.79325L0.212585 1.20493C-0.0708618 0.929258 -0.0708618 0.482419 0.212585 0.206751C0.496032 -0.068917 0.955481 -0.068917 1.23893 0.206751L7.5 6.29599L13.7611 0.206751Z" fill="#3D3D3D"/></svg> 6453 6454</span> 6455 </div><div 6456 x-show=" 6457 6458 openAccordionId === accordionId 6459 6460 " 6461 x-cloak 6462 > 6463 <!-- snippets/component__icon.liquid --> 6464 6465 6466<span class="inline-flex align-middle " aria-hidden="true"> 6467 6468 <svg xmlns="http://www.w3.org/2000/svg" width="15" height="8" viewBox="0 0 15 8" fill="none"><path d="M13.7611 7.79325C14.0445 8.06892 14.504 8.06892 14.7874 7.79325C15.0709 7.51758
646815.0709 7.07074 14.7874 6.79507L8.01317 0.20675C7.72972 -0.0689173 7.27028 -0.0689173 6.98683 0.20675L0.212585 6.79507C-0.0708618 7.07074 -0.0708618 7.51758 0.212585 7.79325C0.496032 8.06892 0.955481 8.06892 1.23893 7.79325L7.5 1.70401L13.7611 7.79325Z" fill="#3D3D3D"/></svg> 6469 6470</span> 6471 </div> 6472 </button> 6473 6474 <div 6475 id="accessories-content" 6476 class="accordion-content color__bg-body" 6477 x-show=" 6478 6479 openAccordionId === accordionId 6480 6481 " 6482 6483 x-transition:enter="animation-100" 6484 x-transition:enter-start="opacity-0" 6485 x-transition:enter-end="opacity-100" 6486 x-transition:leave="animation-100" 6487 x-transition:leave-start="opacity-100" 6488 x-transition:leave-end="opacity-0" 6489 6490 x-cloak 6491 > 6492 6493 <div class="faq-content--wrapper"> 6494 6495 6496 <a 6497 href="/collections/accessories" id="accessories-mobile-shop_all" 6498 data-pagesense-track="true" 6499 class="type__body border--t-width color__border-divider-1 flex items-center justify-start w-full px-4 py-4 no-underline"> 6500 <span class="type__body text-left opacity-75 leading-none">Shop All Accessories</span> 6501 <!-- snippets/component__icon.liquid --> 6502 6503 6504<span class="inline-flex align-middle opacity-75" aria-hidden="true"> 6505 6506 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"><polyline points="9 18 15 12 9 6"></polyline></svg> 6507 6508</span> 6509 </a> 6510 6511 6512 6513 6514 6515 6516 6517 6518 <div class="px-4 pt-4 pb-6"> 6519 <div class="grid grid-cols-2 gap-4"> 6520 6521 6522 6523 6524 6525 <a href="/collections/sink-organization" class="no-underline block" id="accessories-counter-organization-mobile" data-pagesense-track="true"> 6526 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Accessories-Sink.jpg?v=1768363931" alt="Counter Organization" loading="lazy" class="w-full h-auto block" /> 6527 <p class="type__body text-left semibold opacity-75 mt-3 leading-none">Counter Organization</p> 6528 6529 </a> 6530 6531 6532 6533 6534 6535 6536 6537 <a href="/collections/coasters-saucers" class="no-underline block" id="accessories-living-decor-mobile" data-pagesense-track="true"> 6538 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Accessories-CoastersSaucers.jpg?v=1768363931" alt="Living & Decor" loading="lazy" class="w-full h-auto block" /> 6539 <p class="type__body text-left semibold opacity-75 mt-3 leading-none">Living & Decor</p> 6540 6541 </a> 6542 6543 6544 6545 6546 6547 6548 6549 <a href="/collections/dish-drying-accessories" class="no-underline block" id="accessories-dish-drying-accessories-mobile" data-pagesense-track="true"> 6550 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Accessories-DishDrying.jpg?v=1768363931" alt="Dish Drying Accessories" loading="lazy" class="w-full h-auto block" /> 6551 <p class="type__body text-left semibold opacity-75 mt-3 leading-none">Dish Drying Accessories</p> 6552 6553 </a> 6554 6555 6556 6557 6558 6559 6560 6561 <a href="/collections/replacement-parts-1" class="no-underline block" id="accessories-replacement-parts-mobile" data-pagesense-track="true"> 6562 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Accessories-ReplacementParts.jpg?v=1768363931" alt="Replacement Parts" loading="lazy" class="w-full h-auto block" /> 6563 <p class="type__body text-left semibold opacity-75 mt-3 leading-none">Replacement Parts</p> 6564 6565 </a> 6566 6567 6568 6569 </div> 6570 </div> 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 </div> 6584 6585 6586 6587 </div> 6588 6589</div> 6590 6591 6592 6593 6594 6595 6596 6597 6598 <!-- snippets/component__accordion_new.liquid --> 6599 6600 6601 6602 6603 6604 6605 6606<div class=" 6607 border--b-width color__border-divider-1 6608 accordion__wrapper" 6609 6610 6611 6612 x-data="{ accordionId: 'pet' }" 6613 :class="{ 'is-accordion-open': openAccordionId === accordionId }" 6614 x-init=" 6615 6616 " 6617 6618> 6619 6620 <button 6621 type="button" 6622 class="flex items-center justify-between w-full py-7 px-4"
6623 :aria-expanded="(openAccordionId === accordionId).toString()" 6624 aria-controls="pet-content" 6625 @click=" 6626 6627 openAccordionId = (openAccordionId === accordionId) ? null : accordionId 6628 6629 " 6630 > 6631 <div class="flex items-center py-0"> 6632 6633<span class="accordion__title title-medium text-left "> 6634 6635 Pet 6636 6637 </span> 6638 </div><div 6639 x-show=" 6640 6641 openAccordionId !== accordionId 6642 6643 " 6644 > 6645 <!-- snippets/component__icon.liquid --> 6646 6647 6648<span class="inline-flex align-middle " aria-hidden="true"> 6649 6650 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="6.4" viewBox="0 0 15 8" fill="none"><path d="M13.7611 0.206751C14.0445 -0.068917 14.504 -0.068917 14.7874 0.206751C15.0709 0.482419 15.0709 0.929258 14.7874 1.20493L8.01317 7.79325C7.72972 8.06892 7.27028 8.06892 6.98683 7.79325L0.212585 1.20493C-0.0708618 0.929258 -0.0708618 0.482419 0.212585 0.206751C0.496032 -0.068917 0.955481 -0.068917 1.23893 0.206751L7.5 6.29599L13.7611 0.206751Z" fill="#3D3D3D"/></svg> 6651 6652</span> 6653 </div><div 6654 x-show=" 6655 6656 openAccordionId === accordionId 6657 6658 " 6659 x-cloak 6660 > 6661 <!-- snippets/component__icon.liquid --> 6662 6663 6664<span class="inline-flex align-middle " aria-hidden="true"> 6665 6666 <svg xmlns="http://www.w3.org/2000/svg" width="15" height="8" viewBox="0 0 15 8" fill="none"><path d="M13.7611 7.79325C14.0445 8.06892 14.504 8.06892 14.7874 7.79325C15.0709 7.51758
666615.0709 7.07074 14.7874 6.79507L8.01317 0.20675C7.72972 -0.0689173 7.27028 -0.0689173 6.98683 0.20675L0.212585 6.79507C-0.0708618 7.07074 -0.0708618 7.51758 0.212585 7.79325C0.496032 8.06892 0.955481 8.06892 1.23893 7.79325L7.5 1.70401L13.7611 7.79325Z" fill="#3D3D3D"/></svg> 6667 6668</span> 6669 </div> 6670 </button> 6671 6672 <div 6673 id="pet-content" 6674 class="accordion-content color__bg-body" 6675 x-show=" 6676 6677 openAccordionId === accordionId 6678 6679 " 6680 6681 x-transition:enter="animation-100" 6682 x-transition:enter-start="opacity-0" 6683 x-transition:enter-end="opacity-100" 6684 x-transition:leave="animation-100" 6685 x-transition:leave-start="opacity-100" 6686 x-transition:leave-end="opacity-0" 6687 6688 x-cloak 6689 > 6690 6691 <div class="faq-content--wrapper"> 6692 6693 6694 <a 6695 href="/collections/pet" id="pet-mobile-shop_all" 6696 data-pagesense-track="true" 6697 class="type__body border--t-width color__border-divider-1 flex items-center justify-start w-full px-4 py-4 no-underline"> 6698 <span class="type__body text-left opacity-75 leading-none">Shop All Pet</span> 6699 <!-- snippets/component__icon.liquid --> 6700 6701 6702<span class="inline-flex align-middle opacity-75" aria-hidden="true"> 6703 6704 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"><polyline points="9 18 15 12 9 6"></polyline></svg> 6705 6706</span> 6707 </a> 6708 6709 6710 6711 6712 6713 6714 6715 6716 <div class="px-4 pt-4 pb-6"> 6717 <div class="grid grid-cols-2 gap-4"> 6718 6719 6720 6721 6722 6723 <a href="/collections/dog" class="no-underline block" id="pet-dog-mobile" data-pagesense-track="true"> 6724 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Pet-Dog.jpg?v=1768363931" alt="Dog" loading="lazy" class="w-full h-auto block" /> 6725 <p class="type__body text-left semibold opacity-75 mt-3 leading-none">Dog</p> 6726 6727 </a> 6728 6729 6730 6731 6732 6733 6734 6735 <a href="/collections/cat" class="no-underline block" id="pet-cat-mobile" data-pagesense-track="true"> 6736 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Pet-Cat.jpg?v=1768363931" alt="Cat" loading="lazy" class="w-full h-auto block" /> 6737 <p class="type__body text-left semibold opacity-75 mt-3 leading-none">Cat</p> 6738 6739 </a> 6740 6741 6742 6743 </div> 6744 </div> 6745 6746 6747 6748 6749 6750 6751 6752 6753 </div> 6754 6755 6756 6757 </div> 6758 6759</div> 6760 6761 6762 6763 6764 6765 6766 6767 6768 <!-- snippets/component__accordion_new.liquid --> 6769 6770 6771 6772 6773 6774 6775 6776<div class=" 6777 border--b-width color__border-divider-1 6778 accordion__wrapper" 6779 6780 6781 6782 x-data="{ accordionId: 'deals' }" 6783 :class="{ 'is-accordion-open': openAccordionId === accordionId }" 6784 x-init=" 6785 6786 " 6787 6788> 6789 6790 <button 6791 type="button" 6792 class="flex items-center justify-between w-full py-7 px-4" 6793 :aria-expanded="(openAccordionId === accordionId).toString()" 6794 aria-controls="deals-content" 6795 @click=" 6796 6797 openAccordionId = (openAccordionId === accordionId) ? null : accordionId 6798 6799 " 6800 > 6801 <div class="flex items-center py-0"> 6802 6803<span class="accordion__title title-medium text-left "> 6804 6805 Deals 6806 6807 </span> 6808 </div><div 6809 x-show=" 6810 6811 openAccordionId !== accordionId 6812 6813 " 6814 > 6815 <!-- snippets/component__icon.liquid --> 6816 6817 6818<span class="inline-flex align-middle " aria-hidden="true"> 6819 6820 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="6.4" viewBox="0 0 15 8" fill="none"><path d="M13.7611 0.206751C14.0445 -0.068917 14.504 -0.068917 14.7874 0.206751C15.0709 0.482419 15.0709 0.929258 14.7874 1.20493L8.01317 7.79325C7.72972 8.06892 7.27028 8.06892 6.98683 7.79325L0.212585 1.20493C-0.0708618 0.929258 -0.0708618 0.482419 0.212585 0.206751C0.496032 -0.068917 0.955481 -0.068917 1.23893 0.206751L7.5 6.29599L13.7611 0.206751Z" fill="#3D3D3D"/></svg> 6821 6822</span> 6823 </div><div 6824 x-show=" 6825 6826 openAccordionId === accordionId 6827 6828 " 6829 x-cloak 6830 > 6831 <!-- snippets/component__icon.liquid --> 6832 6833 6834<span class="inline-flex align-middle " aria-hidden="true"> 6835 6836 <svg xmlns="http://www.w3.org/2000/svg" width="15" height="8" viewBox="0 0 15 8" fill="none"><path d="M13.7611 7.79325C14.0445 8.06892 14.504 8.06892 14.7874 7.79325C15.0709 7.51758
683615.0709 7.07074 14.7874 6.79507L8.01317 0.20675C7.72972 -0.0689173 7.27028 -0.0689173 6.98683 0.20675L0.212585 6.79507C-0.0708618 7.07074 -0.0708618 7.51758 0.212585 7.79325C0.496032 8.06892 0.955481 8.06892 1.23893 7.79325L7.5 1.70401L13.7611 7.79325Z" fill="#3D3D3D"/></svg> 6837 6838</span> 6839 </div> 6840 </button> 6841 6842 <div 6843 id="deals-content" 6844 class="accordion-content color__bg-body" 6845 x-show=" 6846 6847 openAccordionId === accordionId 6848 6849 " 6850 6851 x-transition:enter="animation-100" 6852 x-transition:enter-start="opacity-0" 6853 x-transition:enter-end="opacity-100" 6854 x-transition:leave="animation-100" 6855 x-transition:leave-start="opacity-100" 6856 x-transition:leave-end="opacity-0" 6857 6858 x-cloak 6859 > 6860 6861 <div class="faq-content--wrapper"> 6862 6863 6864 <a 6865 href="/collections/bundles" id="deals-mobile-shop_all" 6866 data-pagesense-track="true" 6867 class="type__body border--t-width color__border-divider-1 flex items-center justify-start w-full px-4 py-4 no-underline"> 6868 <span class="type__body text-left opacity-75 leading-none">Shop All Deals</span> 6869 <!-- snippets/component__icon.liquid --> 6870 6871 6872<span class="inline-flex align-middle opacity-75" aria-hidden="true"> 6873 6874 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"><polyline points="9 18 15 12 9 6"></polyline></svg> 6875 6876</span> 6877 </a> 6878 6879 6880 6881 6882 6883 6884 6885 6886 <div class="px-4 pt-4 pb-6"> 6887 <div class="grid grid-cols-2 gap-4"> 6888 6889 6890 6891 6892 6893 <a href="/collections/bathroom-bundles" class="no-underline block" id="deals-bathroom-sets-mobile" data-pagesense-track="true"> 6894 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bundles-Bathroom.jpg?v=1768363931" alt="Bathroom Sets" loading="lazy" class="w-full h-auto block" /> 6895 <p class="type__body text-left semibold opacity-75 mt-3 leading-none">Bathroom Sets</p> 6896 6897 </a> 6898 6899 6900 6901 6902 6903 6904 6905 <a href="/collections/kitchen-bundles" class="no-underline block" id="deals-kitchen-sets-mobile" data-pagesense-track="true"> 6906 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bundles-Kitchen.jpg?v=1768363931" alt="Kitchen Sets" loading="lazy" class="w-full h-auto block" /> 6907 <p class="type__body text-left semibold opacity-75 mt-3 leading-none">Kitchen Sets</p> 6908 6909 </a> 6910 6911 6912 6913 6914 6915 6916 6917 <a href="/collections/gift-sets" class="no-underline block" id="deals-gift-sets-mobile" data-pagesense-track="true"> 6918 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bundles-GiftSets.jpg?v=1768363931" alt="Gift Sets" loading="lazy" class="w-full h-auto block" /> 6919 <p class="type__body text-left semibold opacity-75 mt-3 leading-none">Gift Sets</p> 6920 6921 </a> 6922 6923 6924 6925 6926 6927 6928 6929 <a href="/collections/build-your-own-set" class="no-underline block" id="deals-build-your-own-set-mobile" data-pagesense-track="true"> 6930 <img src="https://cdn.shopify.com/s/files/1/0055/2445/5542/files/Nav-Desktop-Bundles-BYOS.jpg?v=1768363931" alt="Build Your Own Set" loading="lazy" class="w-full h-auto block" /> 6931 <p class="type__body text-left semibold opacity-75 mt-3 leading-none">Build Your Own Set</p> 6932 6933 </a> 6934 6935 6936 6937 </div> 6938 </div> 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 </div> 6952 6953 6954 6955 </div> 6956 6957</div> 6958 6959 6960 6961 6962 <a href="/collections/build-your-own-set" 6963 id="hl-BUILD_YOUR_OWN_SET" 6964 class="type__body flex items-center justify-start w-full px-4 py-6 no-underline border--b-width color__border-divider-1 6965 6966 ">
6967 <span class="type__body text-left leading-none no-underline"> 6968 Build Your Own Set 6969 </span> 6970 </a> 6971 6972 6973 6974 <a href="/pages/care-and-cleaning" 6975 id="hl-HOW_TO_CLEAN" 6976 class="type__body flex items-center justify-start w-full px-4 py-6 no-underline border--b-width color__border-divider-1 6977 6978 "> 6979 <span class="type__body text-left leading-none no-underline"> 6980 How to Clean 6981 </span> 6982 </a> 6983 6984 </div> 6985 <div class="bottom-menu-links flex flex-col px-4 py-6 gap-7 mb-12"> 6986 6987 <a href="/pages/wellness-hospitality" class="semibold no-underline leading-none">Trade & Hospitality</a> 6988 6989 <a href="/pages/warranty" class="semibold no-underline leading-none">Warranty</a> 6990 6991 </div> 6992 <div class="flex flex-col gap-4 p-4"> 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 </div> 7003 </section> 7004 7005 7006 </div> 7007 </div> 7008 </div> 7009</section> 7010 7011 7012</div> 7013 7014 <main id="root" role="main"> 7015 <div id="shopify-section-template--20423941095622__wl_split_text_image_banner_tKNtwK" class="shopify-section"><style data-shopify> 7016 #template--20423941095622__wl_split_text_image_banner_tKNtwK { 7017 display: flex; 7018 gap: 0; 7019 } 7020 7021 #template--20423941095622__wl_split_text_image_banner_tKNtwK .block50:first-of-type { 7022 background: rgba(240, 243, 245, 0.50); 7023 } 7024 7025 #template--20423941095622__wl_split_text_image_banner_tKNtwK .block50 > * { 7026 text-align: center; 7027 color: #3d3d3d; 7028 } 7029 7030 #template--20423941095622__wl_split_text_image_banner_tKNtwK .block50:last-of-type { 7031 background-image: url('//doraihome.com/cdn/shop/files/Hero-Desktop-Split.jpg?v=1733856452&width=1000'); 7032 background-size: cover; 7033 background-position: center center; 7034 } 7035 7036 #template--20423941095622__wl_split_text_image_banner_tKNtwK .block50 .text-wrapper h1 { 7037 max-width: 490px; 7038 font-style: normal; 7039 font-weight: 400; 7040 line-height: normal; 7041 margin: 0 auto 32px auto; 7042 } 7043 7044 #template--20423941095622__wl_split_text_image_banner_tKNtwK .block50 .text-wrapper p { 7045 font-style: normal; 7046 font-weight: 400; 7047 line-height: 155%; /* 37.2px */ 7048 letter-spacing: 0.24px; 7049 margin: 0 auto 82px auto; 7050 } 7051 7052 #template--20423941095622__wl_split_text_image_banner_tKNtwK .block50 .text-wrapper p.additional-info { 7053 font-style: normal; 7054 font-weight: 500; 7055 line-height: 18.75px; /* 62.5% */ 7056 letter-spacing: 0.3px; 7057 margin: 0; 7058 } 7059 7060 7061 @media only screen and (min-width: 750px) { 7062 #template--20423941095622__wl_split_text_image_banner_tKNtwK .block50 { 7063 flex: 0 0 50%; 7064 min-height: 800px; 7065 } 7066 7067 #template--20423941095622__wl_split_text_image_banner_tKNtwK .block50 .text-wrapper { 7068 max-width: 642px; 7069 width: 70%; 7070 margin: auto; 7071 position: relative; 7072 top: 50%; 7073 transform: translateY(-50%); 7074 } 7075 7076 #template--20423941095622__wl_split_text_image_banner_tKNtwK .block50 .text-wrapper h1 { 7077 max-width: 450px; 7078 font-size: 42px; 7079 } 7080 7081 #template--20423941095622__wl_split_text_image_banner_tKNtwK .block50 .text-wrapper p { 7082 font-size: 22px; 7083 } 7084 7085 #template--20423941095622__wl_split_text_image_banner_tKNtwK .block50 .text-wrapper p.additional-info { 7086 font-size: 26px; 7087 } 7088 } 7089 7090 @media only screen and (min-width: 1600px) { 7091 #template--20423941095622__wl_split_text_image_banner_tKNtwK .block50 .text-wrapper { 7092 max-width: 642px; 7093 width: 90% 7094 } 7095 #template--20423941095622__wl_split_text_image_banner_tKNtwK .block50 .text-wrapper h1 { 7096 max-width: 490px; 7097 font-size: 48px; 7098 } 7099 7100 #template--20423941095622__wl_split_text_image_banner_tKNtwK .block50 .text-wrapper p { 7101 font-size: 24px; 7102 } 7103 7104 #template--20423941095622__wl_split_text_image_banner_tKNtwK .block50 .text-wrapper p.additional-info { 7105 font-size: 30px; 7106 } 7107 } 7108 7109 @media only screen and (max-width: 749px) { 7110 #template--20423941095622__wl_split_text_image_banner_tKNtwK { 7111 flex-direction: column; 7112 } 7113 7114 #template--20423941095622__wl_split_text_image_banner_tKNtwK .block50:last-of-type { 7115 display: none; 7116 } 7117 7118 #template--20423941095622__wl_split_text_image_banner_tKNtwK .block50 .text-wrapper { 7119 max-width: 85vw; 7120 margin: auto; 7121 } 7122 7123 #template--20423941095622__wl_split_text_image_banner_tKNtwK .block50 .text-wrapper h1 { 7124 font-size: 30px; 7125 margin: 56px auto 23px auto; 7126 } 7127 7128 #template--20423941095622__wl_split_text_image_banner_tKNtwK .block50 .text-wrapper p { 7129 font-size: 20px; 7130 margin: 0 auto 30px auto; 7131 } 7132 7133 #template--20423941095622__wl_split_text_image_banner_tKNtwK .block50 .text-wrapper p.additional-info { 7134 font-size: 22px; 7135 font-style: normal; 7136 font-weight: 500; 7137 line-height: 30px; /* 136.364% */ 7138 letter-spacing: 0.22px; 7139 margin: 0 auto 56px auto; 7140 } 7141 } 7142</style> 7143<section id="template--20423941095622__wl_split_text_image_banner_tKNtwK"> 7144 <div class="block50"> 7145 <div class="text-wrapper"> 7146 <h1>
7146Our Utah-based customer service team is here to help.</h1> 7147 <p>As a small business, we understand the importanceâ¨of creating an unforgettable experience. Here are a few ways to get in touch.</p> 7148 <p class="additional-info">Average Response Time:<br class="dorai-mobile"> 12 Hours</p> 7149 </div> 7150 </div> 7151 <div class="block50"></div> 7152</section> 7153</div><div id="shopify-section-template--20423941095622__wl_icon_columns_zaQHxg" class="shopify-section"><!-- /sections/wl-section-columns.liquid --> 7154<style data-shopify> 7155#template--20423941095622__wl_icon_columns_zaQHxg { padding-top: 110px; padding-bottom: 70px; } 7156#template--20423941095622__wl_icon_columns_zaQHxg .icon-cols h3 { font-family: var(--type-font-body-family); text-transform: uppercase; font-size: 1rem; text-align: center; letter-spacing: 0.08rem; } 7157#template--20423941095622__wl_icon_columns_zaQHxg .icon-cols .underline { height: 3px; width: 1.9rem; margin: 1.2rem auto 2.4rem; background: #191515; opacity: 0.2; } 7158#template--20423941095622__wl_icon_columns_zaQHxg .icon-cols--wrapper { display: flex; gap: 2rem; } 7159#template--20423941095622__wl_icon_columns_zaQHxg .icon-cols--card { flex: 1 1 calc(100% / 3); text-align: center; } 7160#template--20423941095622__wl_icon_columns_zaQHxg .icon-cols--card img { margin: 0 auto 1rem; } 7161#template--20423941095622__wl_icon_columns_zaQHxg .icon-cols--card p { font-size: 0.95rem; margin: 0; } 7162#template--20423941095622__wl_icon_columns_zaQHxg .icon-cols--card p.title-text { font-size: 1rem; } 7163#template--20423941095622__wl_icon_columns_zaQHxg .icon-cols--card a { text-decoration: none; } 7164 7165@media only screen and (max-width: 899px) { 7166 #template--20423941095622__wl_icon_columns_zaQHxg .icon-cols--wrapper { flex-wrap: wrap; gap: 1.5rem; } 7167} 7168 7169@media only screen and (max-width: 767px) { 7170 #template--20423941095622__wl_icon_columns_zaQHxg { padding-top: 52px; padding-bottom: 0px; } 7171 #template--20423941095622__wl_icon_columns_zaQHxg .icon-cols .underline { margin: 1rem auto 2rem; } 7172 #template--20423941095622__wl_icon_columns_zaQHxg .icon-cols--card { flex: 0 0 100%; } 7173} 7174</style> 7175 7176<section id="template--20423941095622__wl_icon_columns_zaQHxg"> 7177 <div class="icon-cols window"> 7178 7179 7180 <div class="icon-cols--wrapper"> 7181 7182 <div class="icon-cols--card"> 7183 7184 <a href="https://doraihome-jwbiaydr3ph.gorgias.help/en-US" target="_blank"> 7185 7186 7187 <img src="//doraihome.com/cdn/shop/files/HelpCenter.svg?v=1733859161&width=80" alt="" srcset="//doraihome.com/cdn/shop/files/HelpCenter.svg?v=1733859161&width=80 80w" width="80" height="70"> 7188 7189 7190 <p class="title-text semibold">Help Center</p> 7191 7192 7193 <p>For immediate answers,<br> visit our Help Center</p> 7194 7195 7196 </a> 7197 7198 </div> 7199 7200 <div class="icon-cols--card"> 7201 7202 <a href="https://claims.doraihome.com/start"> 7203 7204 7205 <img src="//doraihome.com/cdn/shop/files/WarrantyIcon.svg?v=1784048130&width=80" alt="Warranty Icon" srcset="//doraihome.com/cdn/shop/files/WarrantyIcon.svg?v=1784048130&width=80 80w" width="80" height="80" style="object-position:49.121% 51.66%;"> 7206 7207 7208 <p class="title-text semibold">Returns & Warranty Claims</p> 7209 7210 7211 <p>Click here to start a return or file a warranty or shipping claim.</p> 7212 7213 7214 </a> 7215 7216 </div> 7217 7218 <div class="icon-cols--card"> 7219 7220 <a href="tel:18663936724"> 7221 7222 7223 <img src="//doraihome.com/cdn/shop/files/CallText.svg?v=1733859300&width=80" alt="" srcset="//doraihome.com/cdn/shop/files/CallText.svg?v=1733859300&width=80 80w" width="80" height="80"> 7224 7225 7226 <p class="title-text semibold">Text or Call</p> 7227 7228 7229 <p>Reach out to us at 866-393-6724</p> 7230 7231 7232 </a> 7233 7234 </div> 7235 7236 </div> 7237 </div> 7238</section> 7239 7240</div><div id="shopify-section-template--20423941095622__text_4R83WP" class="shopify-section"><!-- sections/text.liquid --> 7241 7242<style data-shopify> 7243#template--20423941095622__text_4R83WP .truncate-wrapper p { overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; display: -webkit-box; } 7244#template--20423941095622__text_4R83WP .truncate-wrapper a { cursor: pointer; }</style><section id="template--20423941095622__text_4R83WP" class=" 7245 7246 color__bg-body color__text 7247 color__border-divider-1 7248 " 7249 7250 > 7251 <div class="window--wide" 7252 style=" 7253 padding-top:20px; 7254 padding-bottom:0px;"> 7255 7256 <div class="flex flex-row flex-wrap items-end 7257 text-center justify-center"> 7258 <div class="max-w-prose md:w-auto w-full"> 7259 7260 <h2>Send a Message</h2> 7261 7262 7263 <div class="m-0--clear"> 7264 <p>To get in touch with our team, fill out the form below. For returns or to file a warranty or shipping claim, use the link above for the fastest resolution.</p> 7265 7266 </div> 7267 7268 7269 </div> 7270 </div> 7271 7272 </div> 7273</section></div><div id="shopify-section-template--20423941095622__contact_8khCQV" class="shopify-section"><!-- sections/contact.liquid --> 7274 7275 7276<section 7277 id="template--20423941095622__contact_8khCQV" 7278 class=" 7279 7280 color__bg-body color__text 7281 color__border-divider-1 7282 border--b-width 7283 "> 7284 <div id="contact-form" 7285 class=" 7286 flex 7287 justify-center 7288 window--wide 7289 " 7290 style=" 7291 padding-top:20px; 7292 padding-bottom:60px; 7293 "> 7294 7295 <div class="w-full max-w-prose"> 7296 7297 7298 7299 <form method="post" action="/contact#contact_form" id="contact_form" accept-charset="UTF-8" class="contact-form"><input type="hidden" name="form_type" value="contact" /><input type="hidden" name="utf8" value="â" /> 7300 <div class="flex flex-col items-start gap-4"> 7301 7302 7303 7304 7305 <div class="w-full"> 7306 <label 7307 for="contact_name_contact"> 7308 First name 7309 </label> 7310 <input 7311 id="contact_name_contact" 7312 type="text" 7313 name="contact[name]" 7314 placeholder="First name" 7315 value=""> 7316 </div> 7317 7318 <div class="w-full"> 7319 <label 7320 for="contact_email"> 7321 Email 7322 </label> 7323 <input 7324 id="contact_email_contact" 7325 type="email" 7326 name="contact[email]" 7327 placeholder="Email" 7328 value="" 7329 spellcheck="false" 7330 autocomplete="off" 7331 autocapitalize="off"> 7332 </div> 7333 7334 7335 <div class="w-full"> 7336 7337 <label 7338 for="contact_message"> 7339 Message 7340 </label> 7341 <textarea 7342 id="contact_message" 7343 rows="10" 7344 name="contact[message]" 7345 placeholder="Enter your message"></textarea> 7346 7347 7348 </div> 7349 7350 7351 <button 7352 class="btn btn btn--plain" 7353 type="submit"> 7354 Send 7355 </button> 7356 </div> 7357 </form> 7358 </div> 7359 7360 </div> 7361</section> 7362 7363</div><div id="shopify-section-template--20423941095622__accordions_An6RRw" class="shopify-section"><!-- sections/accordions.liquid --> 7364 7365 7366<section class=" 7367 7368 color__bg-body color__text 7369 color__border-divider-1 7370 "> 7371 <div style=" 7372 padding-top:100px; 7373 padding-bottom:60px;" 7374 class="window--wide"> 7375 7376 <!-- snippets/component__section-header.liquid --> 7377 7378 7379 7380<div class="gap-2 flex flex-row flex-wrap items-end pb-4 7381 text-center justify-center flex-col items-center 7382 7383 7384 7385 opacity-0 js-animation animation-300 7386 7387 " 7388 7389 data-delay="100" 7390 data-replace="{ 7391 'opacity-0' : 'opacity-100' 7392 }" 7393 > 7394 <div class="max-w-prose md:w-auto w-full"> 7395 7396 <h2 id="ht-FAQS_&_SUPPORT">FAQs & Support</h2> 7397 7398 7399 </div> 7400 <div class="md:w-auto w-full"> 7401 7402 </div> 7403</div> 7404 7405 7406 7407 <!-- snippets/component__accordion.liquid --> 7408 7409<div class="border--b-width color__border-divider-1 w-full" 7410 7411 x-data="{ 7412 7413 accordion: false 7414 7415 }"> 7416 7417 <button type="button" 7418 class="flex items-center justify-between w-full py-7 " 7419 @click=" 7420 7421 accordion = ! accordion 7422 "> 7423 7424 <div class="flex items-center"> 7425 7426
7427 <span class="type__body text-left semibold f-col--heading" style="margin-bottom: 0; padding-bottom: 0;"> 7428 Delivery Times 7429 </span> 7430 </div><div x-show=" !accordion "> 7431 <!-- snippets/component__icon.liquid --> 7432 7433 7434<span class="inline-flex align-middle " aria-hidden="true"> 7435 7436 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="6.4" viewBox="0 0 15 8" fill="none"><path d="M13.7611 0.206751C14.0445 -0.068917 14.504 -0.068917 14.7874 0.206751C15.0709 0.482419 15.0709 0.929258 14.7874 1.20493L8.01317 7.79325C7.72972 8.06892 7.27028 8.06892 6.98683 7.79325L0.212585 1.20493C-0.0708618 0.929258 -0.0708618 0.482419 0.212585 0.206751C0.496032 -0.068917 0.955481 -0.068917 1.23893 0.206751L7.5 6.29599L13.7611 0.206751Z" fill="#3D3D3D"/></svg> 7437 7438</span> 7439 </div> 7440 <div x-show=" accordion " x-cloak> 7441 <!-- snippets/component__icon.liquid --> 7442 7443 7444<span class="inline-flex align-middle " aria-hidden="true"> 7445 7446 <svg xmlns="http://www.w3.org/2000/svg" width="15" height="8" viewBox="0 0 15 8" fill="none"><path d="M13.7611 7.79325C14.0445 8.06892 14.504 8.06892 14.7874 7.79325C15.0709 7.51758
744615.0709 7.07074 14.7874 6.79507L8.01317 0.20675C7.72972 -0.0689173 7.27028 -0.0689173 6.98683 0.20675L0.212585 6.79507C-0.0708618 7.07074 -0.0708618 7.51758 0.212585 7.79325C0.496032 8.06892 0.955481 8.06892 1.23893 7.79325L7.5 1.70401L13.7611 7.79325Z" fill="#3D3D3D"/></svg> 7447 7448</span> 7449 </div> 7450 </button> 7451 7452 <div 7453 class="accordion-content mb-4" 7454 x-show=" accordion " 7455 7456 x-transition:enter="animation-100" 7457 x-transition:enter-start="opacity-0" 7458 x-transition:enter-end="opacity-100" 7459 x-transition:leave="animation-100" 7460 x-transition:leave-start="opacity-100" 7461 x-transition:leave-end="opacity-0" 7462 7463 x-cloak> 7464 7465 7466 7467 <div class="max-w-prose"> 7468 <p>Monday-Friday, orders will ship within 48 hours of your order being received. Most orders placed during the weekend will ship the following Monday. Shipping times may vary during sales and holidays.</p> 7469 </div> 7470 7471 7472 </div> 7473 7474</div> 7475 7476 7477 <!-- snippets/component__accordion.liquid --> 7478 7479<div class="border--b-width color__border-divider-1 w-full" 7480 7481 x-data="{ 7482 7483 accordion: false 7484 7485 }"> 7486 7487 <button type="button" 7488 class="flex items-center justify-between w-full py-7 " 7489 @click=" 7490 7491 accordion = ! accordion 7492 "> 7493 7494 <div class="flex items-center"> 7495 7496 7497 <span class="type__body text-left semibold f-col--heading" style="margin-bottom: 0; padding-bottom: 0;"> 7498 Do you ship internationally? 7499 </span> 7500 </div><div x-show=" !accordion "> 7501 <!-- snippets/component__icon.liquid --> 7502 7503 7504<span class="inline-flex align-middle " aria-hidden="true"> 7505 7506 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="6.4" viewBox="0 0 15 8" fill="none"><path d="M13.7611 0.206751C14.0445 -0.068917 14.504 -0.068917 14.7874 0.206751C15.0709 0.482419 15.0709 0.929258 14.7874 1.20493L8.01317 7.79325C7.72972 8.06892 7.27028 8.06892 6.98683 7.79325L0.212585 1.20493C-0.0708618 0.929258 -0.0708618 0.482419 0.212585 0.206751C0.496032 -0.068917 0.955481 -0.068917 1.23893 0.206751L7.5 6.29599L13.7611 0.206751Z" fill="#3D3D3D"/></svg> 7507 7508</span> 7509 </div> 7510 <div x-show=" accordion " x-cloak> 7511 <!-- snippets/component__icon.liquid --> 7512 7513 7514<span class="inline-flex align-middle " aria-hidden="true"> 7515 7516 <svg xmlns="http://www.w3.org/2000/svg" width="15" height="8" viewBox="0 0 15 8" fill="none"><path d="M13.7611 7.79325C14.0445 8.06892 14.504 8.06892 14.7874 7.79325C15.0709 7.51758
751615.0709 7.07074 14.7874 6.79507L8.01317 0.20675C7.72972 -0.0689173 7.27028 -0.0689173 6.98683 0.20675L0.212585 6.79507C-0.0708618 7.07074 -0.0708618 7.51758 0.212585 7.79325C0.496032 8.06892 0.955481 8.06892 1.23893 7.79325L7.5 1.70401L13.7611 7.79325Z" fill="#3D3D3D"/></svg> 7517 7518</span> 7519 </div> 7520 </button> 7521 7522 <div 7523 class="accordion-content mb-4" 7524 x-show=" accordion " 7525 7526 x-transition:enter="animation-100" 7527 x-transition:enter-start="opacity-0" 7528 x-transition:enter-end="opacity-100" 7529 x-transition:leave="animation-100" 7530 x-transition:leave-start="opacity-100" 7531 x-transition:leave-end="opacity-0" 7532 7533 x-cloak> 7534 7535 7536 7537 <div class="max-w-prose"> 7538 <p>We are currently only ship from our site within the United States. We offer free shipping within the Contiguous United States. We recently started shipping to Alaska, but the cost of shipping is the responsibility of the customer and calculated at the time of checkout.</p><p>We are on Amazon in Canada and ship from the Amazon warehouses in Canada for fast Prime shipping. We hope to launch our site in Canada in early 2024.</p> 7539 </div> 7540 7541 7542 </div> 7543 7544</div> 7545 7546 7547 <!-- snippets/component__accordion.liquid --> 7548 7549<div class="border--b-width color__border-divider-1 w-full" 7550 7551 x-data="{ 7552 7553 accordion: false 7554 7555 }"> 7556 7557 <button type="button" 7558 class="flex items-center justify-between w-full py-7 " 7559 @click=" 7560 7561 accordion = ! accordion 7562 "> 7563 7564 <div class="flex items-center"> 7565 7566 7567 <span class="type__body text-left semibold f-col--heading" style="margin-bottom: 0; padding-bottom: 0;"> 7568 Why isn't my discount code working? 7569 </span> 7570 </div><div x-show=" !accordion "> 7571 <!-- snippets/component__icon.liquid --> 7572 7573 7574<span class="inline-flex align-middle " aria-hidden="true"> 7575 7576 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="6.4" viewBox="0 0 15 8" fill="none"><path d="M13.7611 0.206751C14.0445 -0.068917 14.504 -0.068917 14.7874 0.206751C15.0709 0.482419 15.0709 0.929258 14.7874 1.20493L8.01317 7.79325C7.72972 8.06892 7.27028 8.06892 6.98683 7.79325L0.212585 1.20493C-0.0708618 0.929258 -0.0708618 0.482419 0.212585 0.206751C0.496032 -0.068917 0.955481 -0.068917 1.23893 0.206751L7.5 6.29599L13.7611 0.206751Z" fill="#3D3D3D"/></svg> 7577 7578</span> 7579 </div> 7580 <div x-show=" accordion " x-cloak> 7581 <!-- snippets/component__icon.liquid --> 7582 7583 7584<span class="inline-flex align-middle " aria-hidden="true"> 7585 7586 <svg xmlns="http://www.w3.org/2000/svg" width="15" height="8" viewBox="0 0 15 8" fill="none"><path d="M13.7611 7.79325C14.0445 8.06892 14.504 8.06892 14.7874 7.79325C15.0709 7.51758
758615.0709 7.07074 14.7874 6.79507L8.01317 0.20675C7.72972 -0.0689173 7.27028 -0.0689173 6.98683 0.20675L0.212585 6.79507C-0.0708618 7.07074 -0.0708618 7.51758 0.212585 7.79325C0.496032 8.06892 0.955481 8.06892 1.23893 7.79325L7.5 1.70401L13.7611 7.79325Z" fill="#3D3D3D"/></svg> 7587 7588</span> 7589 </div> 7590 </button> 7591 7592 <div 7593 class="accordion-content mb-4" 7594 x-show=" accordion " 7595 7596 x-transition:enter="animation-100" 7597 x-transition:enter-start="opacity-0" 7598 x-transition:enter-end="opacity-100" 7599 x-transition:leave="animation-100" 7600 x-transition:leave-start="opacity-100" 7601 x-transition:leave-end="opacity-0" 7602 7603 x-cloak> 7604 7605 7606 7607 <div class="max-w-prose"> 7608 <p>Many discounts are limited to first time purchases or short-term promotions. Discounts can be limited to one per customer or expire. Discount codes exclude gift certificates and some product bundles. Discounts cannot be combine with other offers. During a sales event, the discount price will be automatically applied to the product and cannot be combined with other discount codes. </p> 7609 </div> 7610 7611 7612 </div> 7613 7614</div> 7615 7616 7617 <!-- snippets/component__accordion.liquid --> 7618 7619<div class="border--b-width color__border-divider-1 w-full" 7620 7621 x-data="{ 7622 7623 accordion: false 7624 7625 }"> 7626 7627 <button type="button" 7628 class="flex items-center justify-between w-full py-7 " 7629 @click=" 7630 7631 accordion = ! accordion 7632 "> 7633 7634 <div class="flex items-center"> 7635 7636 7637 <span class="type__body text-left semibold f-col--heading" style="margin-bottom: 0; padding-bottom: 0;"> 7638 I haven't received my order or package. 7639 </span> 7640 </div><div x-show=" !accordion "> 7641 <!-- snippets/component__icon.liquid --> 7642 7643 7644<span class="inline-flex align-middle " aria-hidden="true"> 7645 7646 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="6.4" viewBox="0 0 15 8" fill="none"><path d="M13.7611 0.206751C14.0445 -0.068917 14.504 -0.068917 14.7874 0.206751C15.0709 0.482419 15.0709 0.929258 14.7874 1.20493L8.01317 7.79325C7.72972 8.06892 7.27028 8.06892 6.98683 7.79325L0.212585 1.20493C-0.0708618 0.929258 -0.0708618 0.482419 0.212585 0.206751C0.496032 -0.068917 0.955481 -0.068917 1.23893 0.206751L7.5 6.29599L13.7611 0.206751Z" fill="#3D3D3D"/></svg> 7647 7648</span> 7649 </div> 7650 <div x-show=" accordion " x-cloak> 7651 <!-- snippets/component__icon.liquid --> 7652 7653 7654<span class="inline-flex align-middle " aria-hidden="true"> 7655 7656 <svg xmlns="http://www.w3.org/2000/svg" width="15" height="8" viewBox="0 0 15 8" fill="none"><path d="M13.7611 7.79325C14.0445 8.06892 14.504 8.06892 14.7874 7.79325C15.0709 7.51758
765615.0709 7.07074 14.7874 6.79507L8.01317 0.20675C7.72972 -0.0689173 7.27028 -0.0689173 6.98683 0.20675L0.212585 6.79507C-0.0708618 7.07074 -0.0708618 7.51758 0.212585 7.79325C0.496032 8.06892 0.955481 8.06892 1.23893 7.79325L7.5 1.70401L13.7611 7.79325Z" fill="#3D3D3D"/></svg> 7657 7658</span> 7659 </div> 7660 </button> 7661 7662 <div 7663 class="accordion-content mb-4" 7664 x-show=" accordion " 7665 7666 x-transition:enter="animation-100" 7667 x-transition:enter-start="opacity-0" 7668 x-transition:enter-end="opacity-100" 7669 x-transition:leave="animation-100" 7670 x-transition:leave-start="opacity-100" 7671 x-transition:leave-end="opacity-0" 7672 7673 x-cloak> 7674 7675 7676 7677 <div class="max-w-prose"> 7678 <p>1. Please check your inbox for the shipping confirmation, which will include a tracking number. </p><p>2. If it's in transit keep an eye out, if it still hasn't arrived and says delivered, please email your name, order number and concerns to [email protected]. </p> 7679 </div> 7680 7681 7682 </div> 7683 7684</div> 7685 7686 7687 <!-- snippets/component__accordion.liquid --> 7688 7689<div class="border--b-width color__border-divider-1 w-full" 7690 7691 x-data="{ 7692 7693 accordion: false 7694 7695 }"> 7696 7697 <button type="button" 7698 class="flex items-center justify-between w-full py-7 " 7699 @click=" 7700 7701 accordion = ! accordion 7702 "> 7703 7704 <div class="flex items-center"> 7705 7706 7707 <span class="type__body text-left semibold f-col--heading" style="margin-bottom: 0; padding-bottom: 0;"> 7708 What if my products arrived damaged? 7709 </span> 7710 </div><div x-show=" !accordion "> 7711 <!-- snippets/component__icon.liquid --> 7712 7713 7714<span class="inline-flex align-middle " aria-hidden="true"> 7715 7716 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="6.4" viewBox="0 0 15 8" fill="none"><path d="M13.7611 0.206751C14.0445 -0.068917 14.504 -0.068917 14.7874 0.206751C15.0709 0.482419 15.0709 0.929258 14.7874 1.20493L8.01317 7.79325C7.72972 8.06892 7.27028 8.06892 6.98683 7.79325L0.212585 1.20493C-0.0708618 0.929258 -0.0708618 0.482419 0.212585 0.206751C0.496032 -0.068917 0.955481 -0.068917 1.23893 0.206751L7.5 6.29599L13.7611 0.206751Z" fill="#3D3D3D"/></svg> 7717 7718</span> 7719 </div> 7720 <div x-show=" accordion " x-cloak> 7721 <!-- snippets/component__icon.liquid --> 7722 7723 7724<span class="inline-flex align-middle " aria-hidden="true"> 7725 7726 <svg xmlns="http://www.w3.org/2000/svg" width="15" height="8" viewBox="0 0 15 8" fill="none"><path d="M13.7611 7.79325C14.0445 8.06892 14.504 8.06892 14.7874 7.79325C15.0709 7.51758
772615.0709 7.07074 14.7874 6.79507L8.01317 0.20675C7.72972 -0.0689173 7.27028 -0.0689173 6.98683 0.20675L0.212585 6.79507C-0.0708618 7.07074 -0.0708618 7.51758 0.212585 7.79325C0.496032 8.06892 0.955481 8.06892 1.23893 7.79325L7.5 1.70401L13.7611 7.79325Z" fill="#3D3D3D"/></svg> 7727 7728</span> 7729 </div> 7730 </button> 7731 7732 <div 7733 class="accordion-content mb-4" 7734 x-show=" accordion " 7735 7736 x-transition:enter="animation-100" 7737 x-transition:enter-start="opacity-0" 7738 x-transition:enter-end="opacity-100" 7739 x-transition:leave="animation-100" 7740 x-transition:leave-start="opacity-100" 7741 x-transition:leave-end="opacity-0" 7742 7743 x-cloak> 7744 7745 7746 7747 <div class="max-w-prose"> 7748 <p>1. You can refuse the order (if possible) due to damages. </p><p>2. If the order arrives and is damaged, please take photos of the external shipping packaging and your product. Please go to our<a href="https://returns.doraihome.com/#/"> <span style="text-decoration:underline">return portal</span></a> and follow the prompts to "Item was damaged or lost" to submit a claim.</p><p>3. Once we get this info we will promptly process a replacement order. </p> 7749 </div> 7750 7751 7752 </div> 7753 7754</div> 7755 7756 7757 <!-- snippets/component__accordion.liquid --> 7758 7759<div class="border--b-width color__border-divider-1 w-full" 7760 7761 x-data="{ 7762 7763 accordion: false 7764 7765 }"> 7766 7767 <button type="button" 7768 class="flex items-center justify-between w-full py-7 " 7769 @click=" 7770 7771 accordion = ! accordion 7772 "> 7773 7774 <div class="flex items-center"> 7775 7776 7777 <span class="type__body text-left semibold f-col--heading" style="margin-bottom: 0; padding-bottom: 0;"> 7778 What if I want to return or am not satisfied with my product? 7779 </span> 7780 </div><div x-show=" !accordion "> 7781 <!-- snippets/component__icon.liquid --> 7782 7783 7784<span class="inline-flex align-middle " aria-hidden="true"> 7785 7786 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="6.4" viewBox="0 0 15 8" fill="none"><path d="M13.7611 0.206751C14.0445 -0.068917 14.504 -0.068917 14.7874 0.206751C15.0709 0.482419 15.0709 0.929258 14.7874 1.20493L8.01317 7.79325C7.72972 8.06892 7.27028 8.06892 6.98683 7.79325L0.212585 1.20493C-0.0708618 0.929258 -0.0708618 0.482419 0.212585 0.206751C0.496032 -0.068917 0.955481 -0.068917 1.23893 0.206751L7.5 6.29599L13.7611 0.206751Z" fill="#3D3D3D"/></svg> 7787 7788</span> 7789 </div> 7790 <div x-show=" accordion " x-cloak> 7791 <!-- snippets/component__icon.liquid --> 7792 7793 7794<span class="inline-flex align-middle " aria-hidden="true"> 7795 7796 <svg xmlns="http://www.w3.org/2000/svg" width="15" height="8" viewBox="0 0 15 8" fill="none"><path d="M13.7611 7.79325C14.0445 8.06892 14.504 8.06892 14.7874 7.79325C15.0709 7.51758
779615.0709 7.07074 14.7874 6.79507L8.01317 0.20675C7.72972 -0.0689173 7.27028 -0.0689173 6.98683 0.20675L0.212585 6.79507C-0.0708618 7.07074 -0.0708618 7.51758 0.212585 7.79325C0.496032 8.06892 0.955481 8.06892 1.23893 7.79325L7.5 1.70401L13.7611 7.79325Z" fill="#3D3D3D"/></svg> 7797 7798</span> 7799 </div> 7800 </button> 7801 7802 <div 7803 class="accordion-content mb-4" 7804 x-show=" accordion " 7805 7806 x-transition:enter="animation-100" 7807 x-transition:enter-start="opacity-0" 7808 x-transition:enter-end="opacity-100" 7809 x-transition:leave="animation-100" 7810 x-transition:leave-start="opacity-100" 7811 x-transition:leave-end="opacity-0" 7812 7813 x-cloak> 7814 7815 7816 7817 <div class="max-w-prose"> 7818 <p>We're sorry to hear it didn't work out, we hope to bring delight into the home with our eco-friendly materials, but if you're not happy with your Dorai purchase, please go to our <a href="https://doraihome.com/pages/returns">Returns Page</a> to process your return or exchange. </p> 7819 </div> 7820 7821 7822 </div> 7823 7824</div> 7825 7826 7827 <!-- snippets/component__accordion.liquid --> 7828 7829<div class="border--b-width color__border-divider-1 w-full" 7830 7831 x-data="{ 7832 7833 accordion: false 7834 7835 }"> 7836 7837 <button type="button" 7838 class="flex items-center justify-between w-full py-7 " 7839 @click=" 7840 7841 accordion = ! accordion 7842 "> 7843 7844 <div class="flex items-center"> 7845 7846 7847 <span class="type__body text-left semibold f-col--heading" style="margin-bottom: 0; padding-bottom: 0;"> 7848 Product Warranty 7849 </span> 7850 </div><div x-show=" !accordion "> 7851 <!-- snippets/component__icon.liquid --> 7852 7853 7854<span class="inline-flex align-middle " aria-hidden="true"> 7855 7856 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="6.4" viewBox="0 0 15 8" fill="none"><path d="M13.7611 0.206751C14.0445 -0.068917 14.504 -0.068917 14.7874 0.206751C15.0709 0.482419 15.0709 0.929258 14.7874 1.20493L8.01317 7.79325C7.72972 8.06892 7.27028 8.06892 6.98683 7.79325L0.212585 1.20493C-0.0708618 0.929258 -0.0708618 0.482419 0.212585 0.206751C0.496032 -0.068917 0.955481 -0.068917 1.23893 0.206751L7.5 6.29599L13.7611 0.206751Z" fill="#3D3D3D"/></svg> 7857 7858</span> 7859 </div> 7860 <div x-show=" accordion " x-cloak> 7861 <!-- snippets/component__icon.liquid --> 7862 7863 7864<span class="inline-flex align-middle " aria-hidden="true"> 7865 7866 <svg xmlns="http://www.w3.org/2000/svg" width="15" height="8" viewBox="0 0 15 8" fill="none"><path d="M13.7611 7.79325C14.0445 8.06892 14.504 8.06892 14.7874 7.79325C15.0709 7.51758
786615.0709 7.07074 14.7874 6.79507L8.01317 0.20675C7.72972 -0.0689173 7.27028 -0.0689173 6.98683 0.20675L0.212585 6.79507C-0.0708618 7.07074 -0.0708618 7.51758 0.212585 7.79325C0.496032 8.06892 0.955481 8.06892 1.23893 7.79325L7.5 1.70401L13.7611 7.79325Z" fill="#3D3D3D"/></svg> 7867 7868</span> 7869 </div> 7870 </button> 7871 7872 <div 7873 class="accordion-content mb-4" 7874 x-show=" accordion " 7875 7876 x-transition:enter="animation-100" 7877 x-transition:enter-start="opacity-0" 7878 x-transition:enter-end="opacity-100" 7879 x-transition:leave="animation-100" 7880 x-transition:leave-start="opacity-100" 7881 x-transition:leave-end="opacity-0" 7882 7883 x-cloak> 7884 7885 7886 7887 <div class="max-w-prose"> 7888 <p><strong>We offer FREE product replacements for:</strong></p><ul><li>Bowed or warped products within 1 year of purchasing</li><li>Product Cracks or Molds within 90 days of purchasing</li><li>Product Cracks or Molds over 91 days - 1 year of purchasing <em>*Shipping paid by the customer</em></li><li>50% Off Full-Price Replacement Purchase</li><li>Product Cracks or Molds after 1 year - 18 months of purchasing.</li><li>20% Off Full-Price Replacement Purchase</li><li>Product Cracks or Molds after 18 months of purchasing.</li><li>Rust-free replacement up to 1 Year after purchase.</li></ul> 7889 </div> 7890 7891 7892 </div> 7893 7894</div> 7895 7896 7897 </div> 7898</section> 7899 7900</div><div id="shopify-section-template--20423941095622__text_BaxBHn" class="shopify-section"><!-- sections/text.liquid --> 7901 7902<style data-shopify> 7903#template--20423941095622__text_BaxBHn .truncate-wrapper p { overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; display: -webkit-box; } 7904#template--20423941095622__text_BaxBHn .truncate-wrapper a { cursor: pointer; }</style><section id="template--20423941095622__text_BaxBHn" class=" 7905 7906 color__bg-body color__text 7907 color__border-divider-1 7908 border--b-width" 7909 7910 > 7911 <div class="window--wide" 7912 style=" 7913 padding-top:0px; 7914 padding-bottom:100px;"> 7915 7916 <div class="flex flex-row flex-wrap items-end 7917 text-center justify-center"> 7918 <div class="max-w-prose md:w-auto w-full"> 7919 7920 7921 <div class="m-0--clear"> 7922 <p>Get More Answers to Popular Questions in our <a href="https://doraihome-jwbiaydr3ph.gorgias.help/en-US" target="_blank" title="https://doraihome-jwbiaydr3ph.gorgias.help/en-US">Help Center</a></p> 7923 7924 </div> 7925 7926 7927 </div> 7928 </div> 7929 7930 </div> 7931</section></div> 7932 </main> 7933 7934 <!-- BEGIN sections: footer-group --> 7935<div id="shopify-section-sections--20423940341958__wl_feature_cols" class="shopify-section shopify-section-group-footer-group wl-feature-columns"><!-- sections/wl-feature-columns.liquid --><style data-shopify>#wl-fc-sections--20423940341958__wl_feature_cols { 7936 background-color: #EDF1F0; 7937 padding-top: 36px; 7938 padding-bottom: 28px; 7939 } 7940 #wl-fc-sections--20423940341958__wl_feature_cols .wl-fc__inner { 7941 display: flex; 7942 flex-direction: column; 7943 gap: 16px; 7944 justify-content: space-between; 7945 } 7946 .wl-divider{ 7947 display:block; 7948 width: 100%; 7949 height: 1px; 7950 background: #CED3D7; 7951 } 7952 #wl-fc-sections--20423940341958__wl_feature_cols .wl-fc__block { 7953 display: flex; 7954 flex-direction: row; 7955 align-items: center; 7956 gap: 20px; 7957 max-width: 404px; 7958 } 7959 #wl-fc-sections--20423940341958__wl_feature_cols .wl-fc__block--reverse { 7960 flex-direction: row-reverse; 7961 } 7962 #wl-fc-sections--20423940341958__wl_feature_cols .wl-fc__image { 7963 flex-shrink: 0; 7964 } 7965 #wl-fc-sections--20423940341958__wl_feature_cols .wl-fc__image img { 7966 display: block; 7967 width: auto; 7968 height: auto; 7969 max-width: clamp(90.0px,10.98vw,180px); 7970 } 7971 #wl-fc-sections--20423940341958__wl_feature_cols .wl-fc__heading { 7972 font-size: 20px; 7973 line-height: 1.2; 7974 letter-spacing: -0.01em; 7975 font-weight: 400; 7976 color: #3C515E; 7977 margin: 0 0 8px; 7978 } 7979 #wl-fc-sections--20423940341958__wl_feature_cols .wl-fc__desc { 7980 font-size: 16px; 7981 line-height: 1.4; 7982 letter-spacing: 0; 7983 color: #3C515E; 7984 margin: 0; 7985 } 7986 @media (max-width: 988px) { 7987 #wl-fc-sections--20423940341958__wl_feature_cols .wl-fc__block { 7988 /* padding-top: 8px; 7989 padding-bottom: 8px; */ 7990 gap: 24px; 7991 } 7992 #wl-fc-sections--20423940341958__wl_feature_cols .wl-fc__block:first-child { 7993 padding-top: 0; 7994 } 7995 #wl-fc-sections--20423940341958__wl_feature_cols .wl-fc__block:last-child { 7996 padding-bottom: 0; 7997 } 7998 #wl-fc-sections--20423940341958__wl_feature_cols .wl-fc__image img{ 7999 max-width: 76.14px; 8000 } 8001 #wl-fc-sections--20423940341958__wl_feature_cols .wl-fc__inner{ 8002 padding-left: 20px; 8003 padding-right: 20px; 8004 } 8005 #wl-fc-sections--20423940341958__wl_feature_cols .wl-fc__heading { 8006 font-size: 16px; 8007 line-height: 1.2; 8008 letter-spacing: 0; 8009 } 8010 #wl-fc-sections--20423940341958__wl_feature_cols .wl-fc__desc { 8011 font-size: 12px; 8012 line-height: 1.4; 8013 } 8014 #wl-fc-sections--20423940341958__wl_feature_cols .wl-fc__block{ 8015 max-width: 79%; 8016 margin: 0 auto; 8017 } 8018 } 8019 @media (min-width: 989px) { 8020 #wl-fc-sections--20423940341958__wl_feature_cols{ 8021 padding-bottom: 64.008px; 8022 padding-top: 82.008px; 8023 } 8024 #wl-fc-sections--20423940341958__wl_feature_cols .wl-fc__inner { 8025 flex-direction: row; 8026 align-items: center; 8027 gap: 48px; 8028 } 8029 .wl-divider{display: none;} 8030 #wl-fc-sections--20423940341958__wl_feature_cols .wl-fc__block { 8031 flex: 1; 8032 flex-direction: row; 8033 } 8034 #wl-fc-sections--20423940341958__wl_feature_cols .wl-fc__block--reverse { 8035 flex-direction: row; 8036 } 8037 } 8038 @media (max-width: 390px) { 8039 #wl-fc-sections--20423940341958__wl_feature_cols .wl-fc__block{max-width: 90%;} 8040 }</style><div id="wl-fc-sections--20423940341958__wl_feature_cols">
8041 <div class="window--wide"> 8042 <div class="wl-fc__inner"> 8043 8044<div class="wl-fc__block" > 8045 8046 8047 <div class="wl-fc__image"> 8048 8049 <img src="//doraihome.com/cdn/shop/files/Frame_373.svg?v=1784139886&width=400" alt="" srcset="//doraihome.com/cdn/shop/files/Frame_373.svg?v=1784139886&width=352 352w, //doraihome.com/cdn/shop/files/Frame_373.svg?v=1784139886&width=400 400w" width="400" height="260" loading="lazy" style="object-position:50.0% 49.121%;"> 8050 </div> 8051 8052 8053 <div class="wl-fc__content"> 8054 8055 <h3 class="wl-fc__heading">Everyday Function</h3> 8056 8057 8058 <p class="wl-fc__desc">Purposeful products made to look beautiful in your home.</p> 8059 8060 </div> 8061 8062 </div> 8063 8064 <div class="wl-divider"></div> 8065 8066 8067<div class="wl-fc__block wl-fc__block--reverse" > 8068 8069 8070 <div class="wl-fc__image"> 8071 8072 <img src="//doraihome.com/cdn/shop/files/Frame_373_1.svg?v=1784139878&width=400" alt="" srcset="//doraihome.com/cdn/shop/files/Frame_373_1.svg?v=1784139878&width=352 352w, //doraihome.com/cdn/shop/files/Frame_373_1.svg?v=1784139878&width=400 400w" width="400" height="222" loading="lazy" style="object-position:35.938% 17.48%;"> 8073 </div> 8074 8075 8076 <div class="wl-fc__content"> 8077 8078 <h3 class="wl-fc__heading">Responsible Materials</h3> 8079 8080 8081 <p class="wl-fc__desc">Eco-friendly components & products designed to last.</p> 8082 8083 </div> 8084 8085 </div> 8086 8087 <div class="wl-divider"></div> 8088 8089 8090<div class="wl-fc__block" > 8091 8092 8093 <div class="wl-fc__image"> 8094 8095 <img src="//doraihome.com/cdn/shop/files/Frame_373_2.svg?v=1784139877&width=400" alt="" srcset="//doraihome.com/cdn/shop/files/Frame_373_2.svg?v=1784139877&width=352 352w, //doraihome.com/cdn/shop/files/Frame_373_2.svg?v=1784139877&width=400 400w" width="400" height="222" loading="lazy" style="object-position:48.828% 31.494%;"> 8096 </div> 8097 8098 8099 <div class="wl-fc__content"> 8100 8101 <h3 class="wl-fc__heading">Customers First</h3> 8102 8103 8104 <p class="wl-fc__desc">Free shipping, Utah-based support, & team-tested products.</p> 8105 8106 </div> 8107 8108 </div> 8109 8110 8111 </div> 8112 </div> 8113</div> 8114 8115 8116</div><div id="shopify-section-sections--20423940341958__wl_social_feed" class="shopify-section shopify-section-group-footer-group wl-social-feed"><!-- sections/wl-social-feed.liquid --><style data-shopify>#wl-sf-sections--20423940341958__wl_social_feed { 8117 background-color: #EDF1F0; 8118 padding-top: 0px; 8119 padding-bottom: 36px; 8120 overflow: hidden; 8121 position: relative; 8122 } 8123 #wl-sf-sections--20423940341958__wl_social_feed .wl-sf__header { 8124 text-align: center; 8125 margin-bottom: 32px; 8126 } 8127 #wl-sf-sections--20423940341958__wl_social_feed .wl-sf__title { 8128 font-family: 'Optima Nova LT Pro', optima, sans-serif; 8129 font-size: 28px; 8130 font-weight: 400; 8131 font-style: normal; 8132 line-height: 1.2; 8133 letter-spacing: -0.02em; 8134 color: #3C515E; 8135 margin: 0 0 8px; 8136 border-top: 1px solid #CED3D7; 8137 padding-top: 36px; 8138 } 8139 @media (max-width: 767px) { 8140 #wl-sf-sections--20423940341958__wl_social_feed .wl-sf__title { 8141 font-size: 20px; 8142 letter-spacing: -0.01em; 8143 border-top: none; 8144 padding-top: 0; 8145 } 8146 #wl-sf-sections--20423940341958__wl_social_feed .wl-sf__header{ 8147 border-top: 1px solid #CED3D7; 8148 padding-top: 36px; 8149 margin-bottom: 36px; 8150 } 8151 } 8152 #wl-sf-sections--20423940341958__wl_social_feed .wl-sf__subtitle { 8153 font-size: 16px; 8154 line-height: 1.4; 8155 letter-spacing: 0; 8156 color: #3C515E; 8157 margin: 0; 8158 text-decoration: none; 8159 } 8160 /* mobile: strip layout wrapper padding so slider goes edge-to-edge */ 8161 @media (max-width: 767px) { 8162 #wl-sf-sections--20423940341958__wl_social_feed .wl-sf__layout-wrap { 8163 padding-left: 0 !important; 8164 padding-right: 0 !important; 8165 max-width: 100% !important; 8166 width: 100% !important; 8167 } 8168 #wl-sf-sections--20423940341958__wl_social_feed .wl-sf__outer{ 8169 padding-left: 1rem; 8170 } 8171 } 8172 /* outer clips the track. 8173 translateZ(0) promotes outer to its own GPU layer so iOS Safari's 8174 compositor respects overflow:hidden when clipping the will-change:transform track */ 8175 #wl-sf-sections--20423940341958__wl_social_feed .wl-sf__outer { 8176 position: relative; 8177 overflow: hidden; 8178 -webkit-transform: translateZ(0); 8179 transform: translateZ(0); 8180 } 8181 #wl-sf-sections--20423940341958__wl_social_feed .wl-sf__track { 8182 display: flex; 8183 gap: 16px; 8184 will-change: transform; 8185 } 8186 #wl-sf-sections--20423940341958__wl_social_feed .wl-sf__track.sf-anim { 8187 transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94); 8188 } 8189 #wl-sf-sections--20423940341958__wl_social_feed .wl-sf__slide { 8190 flex: 0 0 var(--sf-w, calc(25vw - 42px)); 8191 min-width: 0; 8192 position: relative; 8193 overflow: hidden; 8194 background-color: #E8ECEC; 8195 aspect-ratio: 1 / 1 !important; 8196 height: 100%; 8197 } 8198 /* aspect-ratio fallback for Safari < 15 */ 8199 @supports not (aspect-ratio: 1) { 8200 #wl-sf-sections--20423940341958__wl_social_feed .wl-sf__slide::after { 8201 content: ''; 8202 display: block; 8203 padding-bottom: 100%; 8204 } 8205 #wl-sf-sections--20423940341958__wl_social_feed .wl-sf__slide > * { 8206 position: absolute; 8207 top: 0; right: 0; bottom: 0; left: 0; 8208 width: 100%; 8209 height: 100%; 8210 } 8211 } 8212 #wl-sf-sections--20423940341958__wl_social_feed .wl-sf__slide img { 8213 width: 100%; 8214 height: 100%; 8215 object-fit: cover; 8216 display: block; 8217 } 8218 #wl-sf-sections--20423940341958__wl_social_feed .wl-sf__vid-inner { 8219 width: 100%; 8220 height: 100%; 8221 position: relative; 8222 } 8223 #wl-sf-sections--20423940341958__wl_social_feed .wl-sf__vid-inner video { 8224 width: 100%; 8225 height: 100%; 8226 object-fit: cover; 8227 display: block; 8228 opacity: 0; 8229 transition: opacity 0.4s ease; 8230 cursor: pointer; 8231 } 8232 #wl-sf-sections--20423940341958__wl_social_feed .wl-sf__vid-inner video.sf-vid-on { 8233 opacity: 1; 8234 } 8235 #wl-sf-sections--20423940341958__wl_social_feed .wl-sf__vol { 8236 position: absolute; 8237 bottom: 10px; 8238 right: 10px; 8239 z-index: 2; 8240 width: 32px; 8241 height: 32px; 8242 border-radius: 50%; 8243 background: rgba(0, 0, 0, 0.45); 8244 border: none; 8245 cursor: pointer; 8246 display: flex; 8247 align-items: center; 8248 justify-content: center; 8249 padding: 0; 8250 -webkit-backdrop-filter: blur(4px); 8251 backdrop-filter: blur(4px); 8252 } 8253 #wl-sf-sections--20423940341958__wl_social_feed .wl-sf__vol svg { 8254 width: 16px; 8255 height: 16px; 8256 fill: #fff; 8257 display: block; 8258 pointer-events: none; 8259 flex-shrink: 0; 8260 } 8261 @media (min-width: 768px) { 8262 #wl-sf-sections--20423940341958__wl_social_feed .wl-sf__track { 8263 gap: 56px; 8264 } 8265 }</style><div id="wl-sf-sections--20423940341958__wl_social_feed" 8266 data-wl-sf 8267 data-sf-id="sections--20423940341958__wl_social_feed" 8268 data-sf-interval="3000" 8269 data-sf-gap-desktop="56" 8270 data-sf-gap-mobile="16" 8271 data-sf-vol="true"><div class="wl-sf__header window--wide"><h4 class="wl-sf__title">Show Us Your #DoraiHome</h4><a href="https://www.instagram.com/doraihome/" class="wl-sf__subtitle">Follow us @doraihome</a></div><div class="wl-sf__layout-wrap window--wide"> 8272 <div class="wl-sf__outer"> 8273 <div class="wl-sf__track" data-sf-track><div class="wl-sf__slide" ><img src="//doraihome.com/cdn/shop/files/Frame_374.jpg?v=1784145548&width=800" alt="" srcset="//doraihome.com/cdn/shop/files/Frame_374.jpg?v=1784145548&width=352 352w, //doraihome.com/cdn/shop/files/Frame_374.jpg?v=1784145548&width=800 800w" width="800" height="800" loading="lazy" style="object-position:50.586% 52.539%;"></div><div class="wl-sf__slide" ><img src="//doraihome.com/cdn/shop/files/Frame_375.jpg?v=1784145546&width=800" alt="" srcset="//doraihome.com/cdn/shop/files/Frame_375.jpg?v=1784145546&width=352 352w, //doraihome.com/cdn/shop/files/Frame_375.jpg?v=1784145546&width=800 800w" width="800" height="800" loading="lazy" style="object-position:50.0% 49.414%;"></div><div class="wl-sf__slide" ><img src="//doraihome.com/cdn/shop/files/Frame_376.jpg?v=1784145545&width=800" alt="" srcset="//doraihome.com/cdn/shop/files/Frame_376.jpg?v=1784145545&width=352 352w, //doraihome.com/cdn/shop/files/Frame_376.jpg?v=1784145545&width=800 800w" width="800" height="800" loading="lazy" style="object-position:35.938% 6.152%;"></div><div class="wl-sf__slide" ><img src="//doraihome.com/cdn/shop/files/Frame_377.jpg?v=1784145544&width=800" alt="" srcset="//doraihome.com/cdn/shop/files/Frame_377.jpg?v=1784145544&width=352 352w, //doraihome.com/cdn/shop/files/Frame_377.jpg?v=1784145544&width=800 800w" width="800" height="800" loading="lazy" style="object-position:50.0% 26.27%;"></div></div> 8274 </div> 8275 </div> 8276 8277</div> 8278
8279<script> 8280(function () { 8281 'use strict'; 8282 8283 function WlSocialFeed(root) { 8284 var interval = parseInt(root.dataset.sfInterval, 10) || 3000; 8285 var gapDesktop = parseInt(root.dataset.sfGapDesktop, 10) || 56; 8286 var gapMobile = parseInt(root.dataset.sfGapMobile, 10) || 16; 8287 var showVol = root.dataset.sfVol === 'true'; 8288 8289 var outer = root.querySelector('.wl-sf__outer'); 8290 var track = root.querySelector('[data-sf-track]'); 8291 var realSlides = Array.from(track.children); 8292 var total = realSlides.length; 8293 if (!total) return; 8294 8295 var cur = 0, timerRef = null, sw = 0, gapPx = 0, inTransit = false; 8296 8297 /* --- Clone for infinite loop --- */ 8298 function safeClone(src) { 8299 var cl = src.cloneNode(true); 8300 cl.setAttribute('aria-hidden', 'true'); 8301 cl.querySelectorAll('[data-sf-video]').forEach(function (v) { 8302 v.removeAttribute('data-sf-video'); 8303 v.removeAttribute('data-src'); 8304 }); 8305 cl.querySelectorAll('[data-sf-vid-wrap]').forEach(function (w) { 8306 w.removeAttribute('data-sf-vid-wrap'); 8307 }); 8308 return cl; 8309 } 8310 realSlides.forEach(function (s) { track.appendChild(safeClone(s)); }); 8311 realSlides.slice().reverse().forEach(function (s) { track.prepend(safeClone(s)); }); 8312 /* layout: [total prepend-clones | total reals | total append-clones] */ 8313 8314 /* assign src + load() exactly once per video element. 8315 Sets preload="auto" so the browser buffers the full clip in the background. */ 8316 var initiated = new WeakSet(); 8317 function loadOnce(vid) { 8318 if (initiated.has(vid) || !vid.dataset.src) return; 8319 initiated.add(vid); 8320 vid.preload = 'auto'; 8321 vid.src = vid.dataset.src; 8322 vid.load(); 8323 } 8324 8325 function calcW() { 8326 var mobile = window.innerWidth < 768; 8327 gapPx = mobile ? gapMobile : gapDesktop; 8328 /* subtract padding-left so the slide-width formula uses the actual 8329 visible track area, not the full offsetWidth that includes the inset */ 8330 var padLeft = mobile ? (parseFloat(getComputedStyle(outer).paddingLeft) || 0) : 0; 8331 var visW = outer.offsetWidth - padLeft; 8332 if (visW <= 0) { sw = 0; return; } /* layout not ready â caller will retry */ 8333 sw = mobile 8334 ? (visW - 3 * gapPx) / 3.3 8335 : (visW - 3 * gapPx) / 4; 8336 if (sw > 0) root.style.setProperty('--sf-w', sw + 'px'); 8337 } 8338 8339 function px(idx) { return -((total + idx) * (sw + gapPx)); } 8340 8341 function jump(idx) { 8342 track.classList.remove('sf-anim'); 8343 track.style.transform = 'translateX(' + px(idx) + 'px)'; 8344 track.offsetHeight; /* flush reflow */ 8345 } 8346 8347 function slide(idx) { 8348 track.classList.add('sf-anim'); 8349 track.style.transform = 'translateX(' + px(idx) + 'px)'; 8350 } 8351 8352 track.addEventListener('transitionend', function () { 8353 inTransit = false; 8354 if (cur >= total) { cur = 0; jump(cur); } 8355 else if (cur < 0) { cur = total - 1; jump(cur); } 8356 }); 8357 8358 /* preload the video src of an upcoming real slide before it enters view */ 8359 function preloadNeighbor(idx) { 8360 var i = ((idx % total) + total) % total; 8361 var vid = realSlides[i] && realSlides[i].querySelector('[data-sf-video]'); 8362 if (vid) loadOnce(vid); 8363 } 8364 8365 function next() { 8366 if (inTransit) return; 8367 inTransit = true; 8368 slide(++cur); 8369 preloadNeighbor(cur + 1); /* give the one after the current destination a head-start */ 8370 } 8371 function prev() { 8372 if (inTransit) return; 8373 inTransit = true; 8374 slide(--cur); 8375 preloadNeighbor(cur - 1); 8376 } 8377 8378 function startTimer() { stopTimer(); timerRef = setInterval(next, interval); } 8379 function stopTimer() { if (timerRef) { clearInterval(timerRef); timerRef = null; } } 8380 8381 /* --- Touch swipe --- */ 8382 var tx0 = 0; 8383 outer.addEventListener('touchstart', function (e) { tx0 = e.touches[0].clientX; stopTimer(); }, { passive: true }); 8384 outer.addEventListener('touchend', function (e) { 8385 var d = tx0 - e.changedTouches[0].clientX; 8386 if (Math.abs(d) > 40) { d > 0 ? next() : prev(); } 8387 startTimer(); 8388 }, { passive: true }); 8389 8390 /* --- Boot --- */ 8391 /* Use rAF so Safari has finished computing layout before we read offsetWidth. 8392 Retry until outer.offsetWidth is positive (can be 0 if paint is deferred). */
8393 function init() { 8394 calcW(); 8395 if (sw <= 0) { requestAnimationFrame(init); return; } 8396 jump(0); 8397 preloadNeighbor(1); 8398 startTimer(); 8399 } 8400 requestAnimationFrame(init); 8401 window.addEventListener('resize', function () { calcW(); jump(cur); }); 8402 8403 /* Once the page has fully loaded (critical resources done), preload every 8404 video slide so they are buffered well before the slider reaches them. */ 8405 function preloadAllVids() { 8406 realSlides.forEach(function (s) { 8407 var vid = s.querySelector('[data-sf-video]'); 8408 if (vid) loadOnce(vid); 8409 }); 8410 } 8411 if (document.readyState === 'complete') { 8412 preloadAllVids(); 8413 } else { 8414 window.addEventListener('load', function () { preloadAllVids(); }); 8415 } 8416 8417 /* --- Video: lazy load + viewport autoplay --- */ 8418 var vidWraps = root.querySelectorAll('[data-sf-vid-wrap]'); 8419 8420 /* play only when the browser has enough data to render a frame */ 8421 function playWhenReady(vid) { 8422 if (vid.readyState >= 3) { 8423 vid.play().catch(function () {}); 8424 vid.classList.add('sf-vid-on'); 8425 } else { 8426 vid.addEventListener('canplay', function onCp() { 8427 vid.removeEventListener('canplay', onCp); 8428 vid.play().catch(function () {}); 8429 vid.classList.add('sf-vid-on'); 8430 }); 8431 } 8432 } 8433 8434 if ('IntersectionObserver' in window) { 8435 var vObs = new IntersectionObserver(function (entries) { 8436 entries.forEach(function (entry) { 8437 var vid = entry.target.querySelector('[data-sf-video]'); 8438 if (!vid) return; 8439 if (entry.isIntersecting) { 8440 loadOnce(vid); 8441 playWhenReady(vid); 8442 } else { 8443 vid.pause(); 8444 } 8445 }); 8446 }, { threshold: 0.25 }); 8447 vidWraps.forEach(function (w) { vObs.observe(w); }); 8448 } else { 8449 /* Older Safari fallback: load and play all video slides immediately */ 8450 vidWraps.forEach(function (w) { 8451 var vid = w.querySelector('[data-sf-video]'); 8452 if (vid) { loadOnce(vid); playWhenReady(vid); } 8453 }); 8454 } 8455 8456 /* Click to play / pause */ 8457 root.querySelectorAll('[data-sf-video]').forEach(function (v) { 8458 v.addEventListener('click', function () { 8459 v.paused ? v.play().catch(function () {}) : v.pause(); 8460 }); 8461 }); 8462 8463 /* Volume toggle */ 8464 if (showVol) { 8465 root.querySelectorAll('[data-sf-vol-btn]').forEach(function (btn) { 8466 btn.addEventListener('click', function (e) { 8467 e.stopPropagation(); 8468 var vid = btn.closest('[data-sf-vid-wrap]'); 8469 vid = vid && vid.querySelector('[data-sf-video]'); 8470 if (!vid) return; 8471 vid.muted = !vid.muted; 8472 btn.querySelector('[data-sf-muted]').style.display = vid.muted ? '' : 'none'; 8473 btn.querySelector('[data-sf-unmuted]').style.display = vid.muted ? 'none' : ''; 8474 }); 8475 }); 8476 } 8477 8478 /* Release video network connections on navigation so downloads don't 8479 compete with the next page load on the same thread */ 8480 function releaseVids() { 8481 vidWraps.forEach(function (w) { 8482 var v = w.querySelector('[data-sf-video]'); 8483 if (v && v.src) { v.pause(); v.src = ''; v.load(); } 8484 }); 8485 } 8486 /* full unload â free resources */ 8487 window.addEventListener('pagehide', function () { releaseVids(); }); 8488 /* Shopify Turbo / theme AJAX navigation */ 8489 ['turbo:before-visit', 'page:before-change'].forEach(function (ev) { 8490 document.addEventListener(ev, releaseVids); 8491 }); 8492 } 8493 8494 function boot() { 8495 document.querySelectorAll('[data-wl-sf]:not([data-sf-booted])').forEach(function (el) { 8496 el.dataset.sfBooted = '1'; 8497 WlSocialFeed(el); 8498 }); 8499 } 8500 8501 if (document.readyState === 'loading') { 8502 document.addEventListener('DOMContentLoaded', boot); 8503 } else { 8504 boot(); 8505 } 8506 8507 document.addEventListener('shopify:section:load', function (e) { 8508 var el = e.target.querySelector('[data-wl-sf]'); 8509 if (el) { delete el.dataset.sfBooted; WlSocialFeed(el); } 8510 }); 8511}()); 8512</script>
8512 8513 8514 8515</div><div id="shopify-section-sections--20423940341958__theme_footer" class="shopify-section shopify-section-group-footer-group"><!-- sections/theme__footer.liquid --> 8516 8517<style data-shopify>footer{ 8518 border: 1px solid #CED3D7; 8519} 8520 .f-col--heading { 8521 font-family: 'Optima Nova LT Pro', optima, sans-serif; 8522 font-weight: 400; 8523 font-style: normal; 8524 font-size: 20px; 8525 line-height: 1.2; 8526 letter-spacing: -0.01em; 8527 color: #3C515E; 8528 display: block; 8529 margin-bottom: 28px; 8530 } 8531 .f-nl-heading { 8532 border-bottom: 1px solid #CED3D7; 8533 padding-bottom: 8px; 8534 margin-bottom: 20px; 8535 font-size: 20px !important; 8536 } 8537 .f-menu-link { 8538 color: #3C515E !important; 8539 font-size: 14px !important; 8540 line-height: 1.2 !important; 8541 margin-top: 16px; 8542 } 8543 footer nav.md\:hidden { 8544 border-top: 1px solid #CED3D7; 8545 } 8546 footer nav.md\:hidden button { 8547 font-family: 'Optima Nova LT Pro', optima, sans-serif !important; 8548 font-weight: 400 !important; 8549 font-style: normal !important; 8550 font-size: 20px !important; 8551 line-height: 1.2 !important; 8552 letter-spacing: -0.01em !important; 8553 color: #3C515E !important; 8554 } 8555 .f-nl-content p{ 8556 font-size: 14px; 8557 line-height: 1.2; 8558 letter-spacing: 0; 8559 color: #3C515E; 8560 } 8561 .f-subfooter-row { 8562 -ms-overflow-style: none; 8563 scrollbar-width: none; 8564 /* flex-wrap: wrap !important; */ 8565 } 8566 .f-subfooter-row::-webkit-scrollbar {
8567 display: none; 8568 } 8569 .f-subfooter { 8570 border-top: 1px solid #CED3D7 !important; 8571 } 8572 .f-subfooter .f-subfooter-row span, 8573 .f-subfooter .f-subfooter-row a { 8574 font-size: 12px !important; 8575 line-height: 1.4 !important; 8576 letter-spacing: 0 !important; 8577 font-weight: 400 !important; 8578 color: #3C515E !important; 8579 } 8580 .klaviyo__form{ 8581 max-width: 424px; 8582 } 8583 @media (max-width: 767px) { 8584 .f-nl-heading { 8585 border-bottom: none; 8586 padding-bottom: 0; 8587 } 8588 .f-subfooter-link-wrap { 8589 padding-right: 0 !important; 8590 padding-left: 0 !important; 8591 } 8592 .f-subfooter-row { 8593 padding-left: 1rem; 8594 padding-right: 1rem; 8595 } 8596 .f-subfooter{ 8597 padding-top: 1rem; 8598 padding-bottom: 1rem; 8599 border-bottom: 1px solid #CED3D7 !important; 8600 margin-bottom: 13px; 8601 } 8602 /* prevent Klaviyo async injection from overflowing the section */ 8603 footer section.md\:hidden { 8604 overflow: visible; 8605 height: auto; 8606 } 8607 }</style><footer 8608 class="relative z-30 custom_new_color color__text 8609 "> 8610 8611 8612 8613 8614 <section class="py-8 md:hidden border--t-width 8615 custom_new_color color__text 8616 !color__border-transparent"> 8617 <div class="window--wide"> 8618 8619 8620 <div class="klaviyo__form"> 8621 8622 <h2 class="f-col--heading f-nl-heading"> 8623 Get 10% off your first order 8624 </h2> 8625 8626 8627 <div class="mb-4 m-0--clear f-nl-content"> 8628 <p>Get early access to sales, product launches, and ideas for your home.</p> 8629 </div> 8630 8631 <div class="klaviyo-form-TxXgA6"></div> 8632 </div> 8633 8634 8635 </div> 8636 </section> 8637 8638 8639 8640 8641 8642 <nav class="md:hidden custom_new_color color__text"> 8643 8644 8645 8646 8647 8648 8649 8650 <!-- snippets/component__accordion.liquid --> 8651 8652<div class=" 8653 border--t-width !color__border-transparent no-js--hide 8654 " 8655 8656 x-data="{ 8657 8658 accordion: false 8659 8660 }"> 8661 8662 <button type="button" 8663 class="flex items-center justify-between w-full py-7 px-4" 8664 @click=" 8665 8666 accordion = ! accordion 8667 "> 8668 8669 <div class="flex items-center"> 8670 8671 8672 <span class="type__body text-left semibold f-col--heading" style="margin-bottom: 0; padding-bottom: 0;"> 8673 Company 8674 </span> 8675 </div><div x-show=" !accordion "> 8676 <!-- snippets/component__icon.liquid --> 8677 8678 8679<span class="inline-flex align-middle " aria-hidden="true"> 8680 8681 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M8.4707 7.5293H16V8.4707H8.4707V16H7.5293V8.4707H0V7.5293H7.5293V0H8.4707V7.5293Z" fill="#3C515E"/></svg> 8682 8683</span> 8684 </div> 8685 <div x-show=" accordion " x-cloak> 8686 <!-- snippets/component__icon.liquid --> 8687 8688 8689<span class="inline-flex align-middle " aria-hidden="true"> 8690 8691 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="feather feather-minus"><line x1="5" y1="12" x2="19" y2="12"></line></svg> 8692 8693</span> 8694 </div> 8695 </button> 8696 8697 <div 8698 class="accordion-content 8699 " 8700 x-show=" accordion " 8701 8702 x-transition:enter="animation-100" 8703 x-transition:enter-start="opacity-0" 8704 x-transition:enter-end="opacity-100" 8705 x-transition:leave="animation-100" 8706 x-transition:leave-start="opacity-100" 8707 x-transition:leave-end="opacity-0" 8708 8709 x-cloak> 8710 8711 8712 8713 8714 <a href="/pages/about" class="mobile__link_child type__body border--t-width flex items-center justify-between w-full px-4 py-4 no-underline 8715 !color__border-transparent"> 8716 About Dorai 8717 </a> 8718 8719 <a href="/pages/how-it-works" class="mobile__link_child type__body border--t-width flex items-center justify-between w-full px-4 py-4 no-underline 8720 !color__border-transparent"> 8721 How It Works 8722 </a> 8723 8724 <a href="/pages/sustainability" class="mobile__link_child type__body border--t-width flex items-center justify-between w-full px-4 py-4 no-underline 8725 !color__border-transparent"> 8726 Sustainability 8727 </a> 8728 8729 <a href="/pages/wellness-hospitality" class="mobile__link_child type__body border--t-width flex items-center justify-between w-full px-4 py-4 no-underline 8730 !color__border-transparent">
8731 Trade & Hospitality 8732 </a> 8733 8734 <a href="/pages/accessibility-statement" class="mobile__link_child type__body border--t-width flex items-center justify-between w-full px-4 py-4 no-underline 8735 !color__border-transparent"> 8736 Accessibility Statement 8737 </a> 8738 8739 <a href="/blogs/news" class="mobile__link_child type__body border--t-width flex items-center justify-between w-full px-4 py-4 no-underline 8740 !color__border-transparent"> 8741 Blog 8742 </a> 8743 8744 8745 8746 </div> 8747 8748</div> 8749 8750 <noscript> 8751 <a class="border--t-width !color__border-transparent block w-full p-4 no-underline" 8752 href=""></a> 8753 8754 </noscript> 8755 8756 8757 </nav> 8758 8759 8760 8761 8762 <nav class="md:hidden custom_new_color color__text"> 8763 8764 8765 8766 8767 8768 8769 8770 <!-- snippets/component__accordion.liquid --> 8771 8772<div class=" 8773 border--t-width !color__border-transparent no-js--hide 8774 " 8775 8776 x-data="{ 8777 8778 accordion: false 8779 8780 }"> 8781 8782 <button type="button" 8783 class="flex items-center justify-between w-full py-7 px-4" 8784 @click=" 8785 8786 accordion = ! accordion 8787 "> 8788 8789 <div class="flex items-center"> 8790 8791 8792 <span class="type__body text-left semibold f-col--heading" style="margin-bottom: 0; padding-bottom: 0;"> 8793 Help & Support 8794 </span> 8795 </div><div x-show=" !accordion "> 8796 <!-- snippets/component__icon.liquid --> 8797 8798 8799<span class="inline-flex align-middle " aria-hidden="true"> 8800 8801 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M8.4707 7.5293H16V8.4707H8.4707V16H7.5293V8.4707H0V7.5293H7.5293V0H8.4707V7.5293Z" fill="#3C515E"/></svg> 8802 8803</span> 8804 </div> 8805 <div x-show=" accordion " x-cloak> 8806 <!-- snippets/component__icon.liquid --> 8807 8808 8809<span class="inline-flex align-middle " aria-hidden="true"> 8810 8811 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="feather feather-minus"><line x1="5" y1="12" x2="19" y2="12"></line></svg> 8812 8813</span> 8814 </div> 8815 </button> 8816 8817 <div 8818 class="accordion-content 8819 " 8820 x-show=" accordion " 8821 8822 x-transition:enter="animation-100" 8823 x-transition:enter-start="opacity-0" 8824 x-transition:enter-end="opacity-100" 8825 x-transition:leave="animation-100" 8826 x-transition:leave-start="opacity-100" 8827 x-transition:leave-end="opacity-0" 8828 8829 x-cloak> 8830 8831 8832 8833 8834 <a href="/pages/care-and-cleaning" class="mobile__link_child type__body border--t-width flex items-center justify-between w-full px-4 py-4 no-underline 8835 !color__border-transparent"> 8836 Care & Cleaning 8837 </a> 8838 8839 <a href="https://doraihome-jwbiaydr3ph.gorgias.help/en-US" class="mobile__link_child type__body border--t-width flex items-center justify-between w-full px-4 py-4 no-underline 8840 !color__border-transparent" target="_blank" style="display: flex; gap: 4px;"> 8841 FAQs & Support <svg xmlns="http://www.w3.org/2000/svg" height="12px" viewBox="0 -960 960 960" width="12px" fill="#3d3d3d"> 8842 <path d="m216-160-56-56 464-464H360v-80h400v400h-80v-264L216-160Z"/> 8843</svg> 8844 </a> 8845 8846 <a href="/pages/contact-us" class="mobile__link_child type__body border--t-width flex items-center justify-between w-full px-4 py-4 no-underline 8847 !color__border-transparent"> 8848 Contact Us 8849 </a> 8850 8851 <a href="/pages/returns" class="mobile__link_child type__body border--t-width flex items-center justify-between w-full px-4 py-4 no-underline 8852 !color__border-transparent"> 8853 Returns & Exchanges 8854 </a> 8855 8856 <a href="/pages/shipping-returns-policy" class="mobile__link_child type__body border--t-width flex items-center justify-between w-full px-4 py-4 no-underline 8857 !color__border-transparent"> 8858 Shipping & Returns Policy 8859 </a> 8860 8861 <a href="https://claims.doraihome.com/" class="mobile__link_child type__body border--t-width flex items-center justify-between w-full px-4 py-4 no-underline 8862 !color__border-transparent" target="_blank" style="display: flex; gap: 4px;"> 8863 Shipping Insurance & Claims <svg xmlns="http://www.w3.org/2000/svg" height="12px" viewBox="0 -960 960 960" width="12px" fill="#3d3d3d"> 8864 <path d="m216-160-56-56 464-464H360v-80h400v400h-80v-264L216-160Z"/> 8865</svg> 8866 </a> 8867 8868 <a href="/pages/warranty" class="mobile__link_child type__body border--t-width flex items-center justify-between w-full px-4 py-4 no-underline 8869 !color__border-transparent"> 8870 Warranty 8871 </a> 8872 8873 8874 8875 </div> 8876 8877</div> 8878 8879 <noscript> 8880 <a class="border--t-width !color__border-transparent block w-full p-4 no-underline" 8881 href=""></a> 8882 8883 </noscript> 8884 8885 8886 </nav> 8887 8888 8889 8890 8891 <nav class="md:hidden custom_new_color color__text"> 8892 8893 8894 8895 <div class="border--t-width !color__border-transparent">
8896 <span class="px-4 py-7 flex items-center f-col--heading" style="margin-bottom: 0; padding-bottom: 0;">Connect</span> 8897 8898 <div class="px-4 pb-5 flex flex-wrap gap-6" style="padding-top: 24px;"> 8899 <a href="https://www.tiktok.com/@doraihome" target="_blank" title="TikTok" class="inline-flex no-underline opacity-50"><!-- snippets/component__icon.liquid --> 8900 8901 8902<span class="inline-flex align-middle " aria-hidden="true"> 8903 8904 <svg aria-hidden="true" width="20" height="20" focusable="false" data-prefix="fab" data-icon="tiktok" class="svg-inline--fa fa-tiktok fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M448,209.91a210.06,210.06,0,0,1-122.77-39.25V349.38A162.55,162.55,0,1,1,185,188.31V278.2a74.62,74.62,0,1,0,52.23,71.18V0l88,0a121.18,121.18,0,0,0,1.86,22.17h0A122.18,122.18,0,0,0,381,102.39a121.43,121.43,0,0,0,67,20.14Z"></path></svg> 8905 8906</span></a> 8907 <a href="https://www.instagram.com/doraihome/" target="_blank" title="Instagram" class="inline-flex no-underline opacity-50"><!-- snippets/component__icon.liquid --> 8908 8909 8910<span class="inline-flex align-middle " aria-hidden="true"> 8911 8912 <svg aria-hidden="true" width="20" height="20" focusable="false" data-prefix="fab" data-icon="instagram" class="svg-inline--fa fa-instagram fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"></path></svg> 8913 8914</span></a> 8915 8916 <a href="https://www.facebook.com/doraihome/" target="_blank" title="Facebook" class="inline-flex no-underline opacity-50"><!-- snippets/component__icon.liquid --> 8917 8918 8919<span class="inline-flex align-middle " aria-hidden="true"> 8920 8921 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 18 18" fill="none" class="svg-inline--fa fa-facebook fa-w-16"> 8922<path d="M15.3021 3.58314H13.0258C12.1546 3.58314 11.4098 3.89227 10.7916 4.51054C10.2014 5.12881 9.90632 5.87354 9.90632 6.74473V8.97892H8.09368V11.6768H9.90632V17.9578H12.6042V11.
89226768H15.3021V8.97892H12.6042V7.16628C12.6042 6.94145 12.6885 6.74473 12.8571 6.57611C13.0258 6.37939 13.2365 6.28103 13.4895 6.28103H15.3021V3.58314ZM0 1C0 0.447717 0.447715 0 1 0H17C17.5523 0 18 0.447715 18 1V16.9578C18 17.5101 17.5523 17.9578 17 17.9578H1C0.447716 17.9578 0 17.5101 0 16.9578V1Z" fill="currentColor"/> 8923</svg> 8924 8925 8926 8927</span></a> 8928 <a href="https://www.pinterest.com/doraihome/" target="_blank" title="Pinterest" class="inline-flex no-underline opacity-50"><!-- snippets/component__icon.liquid --> 8929 8930 8931<span class="inline-flex align-middle " aria-hidden="true"> 8932 8933 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none" class="svg-inline--fa fa-pinterest fa-w-16"> 8934<path d="M15.1843 2.84456C13.9582 1.65511 12.2614 1 10.4065 1C7.57303 1 5.83034 2.1737 4.86735 3.15826C3.68053 4.37162 3 5.98273 3 7.57856C3 9.58223 3.82936 11.1201 5.21821 11.6923C5.31144 11.7309 5.40527 11.7503 5.49726 11.7503C5.79026 11.7503 6.02241 11.5566 6.10285 11.2458C6.14974 11.0675 6.25836 10.6277 6.3056 10.4367C6.4067 10.0597 6.32502 9.87832 6.10452 9.61574C5.70283 9.13543 5.51577 8.56747 5.51577 7.82831C5.51577 5.63275 7.13357 3.29934 10.132 3.29934C12.5112 3.29934 13.989 4.66581 13.989 6.86541C13.989 8.25346 13.6932 9.53892 13.1558 10.4852C12.7823 11.1427 12.1257 11.9264 11.1176 11.9264C10.6817 11.9264 10.2901 11.7454 10.043 11.43C9.80961 11.1317 9.73266 10.7465 9.82655 10.345C9.93259 9.89129 10.0772 9.41809 10.2172 8.96063C10.4724 8.1251 10.7137 7.33594 10.7137 6.70632C10.7137 5.62941 10.0586 4.90578 9.08358 4.90578C7.8445 4.90578 6.87376 6.17754 6.87376 7.80106C6.87376 8.59729 7.08316 9.19284 7.17796 9.4215C7.02186 10.0898 6.09415 14.0632 5.91818 14.8125C5.81642 15.2498 5.20349 18.7045 6.218 18.9799C7.35786 19.2894 8.37675 15.9249 8.48046 15.5447C8.56451 15.2355 8.85859 14.0663 9.03881 13.3476C9.58908 13.8832 10.4751 14.2453 11.3372 14.2453C12.9624 14.2453 14.424 13.5062 15.4528 12.1644C16.4505 10.8629 17 9.04891 17 7.0568C16.9999 5.49944 16.3381 3.96408 15.1843 2.84456Z" fill="currentColor"/> 8935</svg> 8936 8937 8938</span></a> 8939 8940 8941 8942 8943 8944 <a href="https://www.youtube.com/watch?v=M2plPZYlbQM" target="_blank" title="YouTube" class="inline-flex no-underline opacity-50"><!-- snippets/component__icon.liquid --> 8945 8946 8947<span class="inline-flex align-middle " aria-hidden="true"> 8948 8949 <svg aria-hidden="true" width="20" height="20" focusable="false" data-prefix="fab" data-icon="youtube" class="svg-inline--fa fa-youtube fa-w-18" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"></path></svg> 8950 8951</span></a> 8952 8953 </div> 8954 8955 <a href="https://ui.awin.com/express-signup/us/awin/91745/8e6edfa4-869b-4ba5-8af5-b828a155bbb5?t=b02NiR8fvNQc4-H8PVcP_i7vXy5uzxQ02xdUtjncv6E" target="_blank" class="px-4 py-7 block no-underline type__body" style="display: flex; gap: 4px; align-items: center;padding-top:0;"> 8956 Become an Affiliate 8957 <svg xmlns="http://www.w3.org/2000/svg" height="12px" viewBox="0 -960 960 960" width="12px" fill="#3d3d3d"> 8958 <path d="m216-160-56-56 464-464H360v-80h400v400h-80v-264L216-160Z"/> 8959</svg> 8960 </a> 8961 8962 8963 </div> 8964 8965 </nav> 8966 8967 8968 8969 8970 8971 <nav 8972 class="hidden md:block border--t-width 8973 !color__border-transparent 8974 custom_new_color color__text"> 8975 <div 8976 class="window--wide"> 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 <div 8987 class="flex pt-14 pb-9 overflow-hidden"> 8988 <div 8989 class="flex flex-wrap justify-between gap-8 grow footer_wrapper"> 8990 8991 8992 <div class="newletter_full_tablet" style="width: 40%; display:flex;flex-direction: column;justify-content: space-between;"> 8993 8994 8995 8996 8997 <div class="klaviyo__form"> 8998 8999 <h2 class="f-col--heading f-nl-heading"> 9000 Get 10% off your first order 9001 </h2> 9002 9003 9004 <div class="mb-4 m-0--clear f-nl-content"> 9005 <p>Get early access to sales, product launches, and ideas for your home.</p> 9006 </div> 9007 9008 <div class="klaviyo-form-TxXgA6"></div> 9009 </div> 9010 9011 9012 9013 <a class="relative items-center block mt-6" 9014 style=" 9015 height: 30px; 9016 width: 33.582089552238806px; 9017 " 9018 href="/" title="Dorai Home"> 9019 <!-- snippets/component__image.liquid --> 9020 9021 9022 9023 9024 9025 9026 9027 9028<div 9029 class=" 9030 js-picture w-full h-full overflow-hidden flex items-center 9031 9032 !bg-transparent 9033 "> 9034 <picture 9035 id="img-FILES-DORAI_BRANDMARKLOGO-DOUBLE_GRAY-RSVG" 9036 class=" 9037 w-full flex items-center justify-center overflow-hidden 9038 9039 9040 "> 9041 <img src="//doraihome.com/cdn/shop/files/Dorai_BrandmarkLogo-Double_Gray-R.svg?v=1697825904&width=400" alt="Dorai leaf icon" srcset="//doraihome.com/cdn/shop/files/Dorai_BrandmarkLogo-Double_Gray-R.svg?v=1697825904&width=100 100w, //doraihome.com/cdn/shop/files/Dorai_BrandmarkLogo-Double_Gray-R.svg?v=1697825904&width=200 200w, //doraihome.com/cdn/shop/files/Dorai_BrandmarkLogo-Double_Gray-R.svg?v=1697825904&width=300 300w, //doraihome.com/cdn/shop/files/Dorai_BrandmarkLogo-Double_Gray-R.svg?v=1697825904&width=400 400w" width="400" height="357" loading=" 9042 9043 lazy 9044 9045" class=" 9046 js-image 9047 w-full h-full object-contain 9048 9049 min-h-full 9050 9051 9052 animation-300 9053 9054
9055"> 9056 </picture> 9057</div> 9058 </a> 9059 9060 </div> 9061 9062 9063 9064 9065 9066 <div class="footer__column"> 9067 9068 <span class="f-col--heading mb-4">Company</span> 9069 9070 9071 <a href="/pages/about" class="block mb-4 no-underline f-menu-link 9072 "> 9073 About Dorai 9074 </a> 9075 9076 9077 <a href="/pages/how-it-works" class="block mb-4 no-underline f-menu-link 9078 mt-6"> 9079 How It Works 9080 </a> 9081 9082 9083 <a href="/pages/sustainability" class="block mb-4 no-underline f-menu-link 9084 mt-6"> 9085 Sustainability 9086 </a> 9087 9088 9089 <a href="/pages/wellness-hospitality" class="block mb-4 no-underline f-menu-link 9090 mt-6"> 9091 Trade & Hospitality 9092 </a> 9093 9094 9095 <a href="/pages/accessibility-statement" class="block mb-4 no-underline f-menu-link 9096 mt-6"> 9097 Accessibility Statement 9098 </a> 9099 9100 9101 <a href="/blogs/news" class="block mb-4 no-underline f-menu-link 9102 mt-6"> 9103 Blog 9104 </a> 9105 9106 9107 </div> 9108 9109 9110 9111 9112 9113 <div class="footer__column"> 9114 9115 <span class="f-col--heading mb-4">Help & Support</span> 9116 9117 9118 <a href="/pages/care-and-cleaning" class="block mb-4 no-underline f-menu-link 9119 "> 9120 Care & Cleaning 9121 </a> 9122 9123 9124 <a href="https://doraihome-jwbiaydr3ph.gorgias.help/en-US" class="block mb-4 no-underline f-menu-link 9125 mt-6" target="_blank" style="display: flex; gap: 4px;align-items: center;"> 9126 FAQs & Support <svg xmlns="http://www.w3.org/2000/svg" height="12px" viewBox="0 -960 960 960" width="12px" fill="#3C515E"> 9127 <path d="m216-160-56-56 464-464H360v-80h400v400h-80v-264L216-160Z"/> 9128</svg> 9129 </a> 9130 9131 9132 <a href="/pages/contact-us" class="block mb-4 no-underline f-menu-link 9133 mt-6"> 9134 Contact Us 9135 </a> 9136 9137 9138 <a href="/pages/returns" class="block mb-4 no-underline f-menu-link 9139 mt-6"> 9140 Returns & Exchanges 9141 </a> 9142 9143 9144 <a href="/pages/shipping-returns-policy" class="block mb-4 no-underline f-menu-link 9145 mt-6"> 9146 Shipping & Returns Policy 9147 </a> 9148 9149 9150 <a href="https://claims.doraihome.com/" class="block mb-4 no-underline f-menu-link 9151 mt-6" target="_blank" style="display: flex; gap: 4px;align-items: center;"> 9152 Shipping Insurance & Claims <svg xmlns="http://www.w3.org/2000/svg" height="12px" viewBox="0 -960 960 960" width="12px" fill="#3C515E"> 9153 <path d="m216-160-56-56 464-464H360v-80h400v400h-80v-264L216-160Z"/> 9154</svg> 9155 </a> 9156 9157 9158 <a href="/pages/warranty" class="block mb-4 no-underline f-menu-link 9159 mt-6"> 9160 Warranty 9161 </a> 9162 9163 9164 </div> 9165 9166 9167 9168 9169 9170 <div class="footer__column"> 9171
9172 <span class="f-col--heading mb-4">Connect</span> 9173 9174 <div class="flex flex-wrap gap-6 mt-4"> 9175 <a href="https://www.tiktok.com/@doraihome" target="_blank" title="TikTok" class="inline-flex no-underline opacity-50 hover:no-underline"><!-- snippets/component__icon.liquid --> 9176 9177 9178<span class="inline-flex align-middle " aria-hidden="true"> 9179 9180 <svg aria-hidden="true" width="20" height="20" focusable="false" data-prefix="fab" data-icon="tiktok" class="svg-inline--fa fa-tiktok fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M448,209.91a210.06,210.06,0,0,1-122.77-39.25V349.38A162.55,162.55,0,1,1,185,188.31V278.2a74.62,74.62,0,1,0,52.23,71.18V0l88,0a121.18,121.18,0,0,0,1.86,22.17h0A122.18,122.18,0,0,0,381,102.39a121.43,121.43,0,0,0,67,20.14Z"></path></svg> 9181 9182</span></a> 9183 <a href="https://www.instagram.com/doraihome/" target="_blank" title="Instagram" class="inline-flex no-underline opacity-50 hover:no-underline"><!-- snippets/component__icon.liquid --> 9184 9185 9186<span class="inline-flex align-middle " aria-hidden="true"> 9187 9188 <svg aria-hidden="true" width="20" height="20" focusable="false" data-prefix="fab" data-icon="instagram" class="svg-inline--fa fa-instagram fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"></path></svg> 9189 9190</span></a> 9191 9192 <a href="https://www.facebook.com/doraihome/" target="_blank" title="Facebook" class="inline-flex no-underline opacity-50 hover:no-underline"><!-- snippets/component__icon.liquid --> 9193 9194 9195<span class="inline-flex align-middle " aria-hidden="true"> 9196 9197 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 18 18" fill="none" class="svg-inline--fa fa-facebook fa-w-16"> 9198<path d="M15.3021 3.58314H13.0258C12.1546 3.58314 11.4098 3.89227 10.7916 4.51054C10.2014 5.12881 9.90632 5.87354 9.90632 6.74473V8.97892H8.09368V11.6768H9.90632V17.9578H12.6042V11.
91986768H15.3021V8.97892H12.6042V7.16628C12.6042 6.94145 12.6885 6.74473 12.8571 6.57611C13.0258 6.37939 13.2365 6.28103 13.4895 6.28103H15.3021V3.58314ZM0 1C0 0.447717 0.447715 0 1 0H17C17.5523 0 18 0.447715 18 1V16.9578C18 17.5101 17.5523 17.9578 17 17.9578H1C0.447716 17.9578 0 17.5101 0 16.9578V1Z" fill="currentColor"/> 9199</svg> 9200 9201 9202 9203</span></a> 9204 <a href="https://www.pinterest.com/doraihome/" target="_blank" title="Pinterest" class="inline-flex no-underline opacity-50 hover:no-underline"><!-- snippets/component__icon.liquid --> 9205 9206 9207<span class="inline-flex align-middle " aria-hidden="true"> 9208 9209 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none" class="svg-inline--fa fa-pinterest fa-w-16"> 9210<path d="M15.1843 2.84456C13.9582 1.65511 12.2614 1 10.4065 1C7.57303 1 5.83034 2.1737 4.86735 3.15826C3.68053 4.37162 3 5.98273 3 7.57856C3 9.58223 3.82936 11.1201 5.21821 11.6923C5.31144 11.7309 5.40527 11.7503 5.49726 11.7503C5.79026 11.7503 6.02241 11.5566 6.10285 11.2458C6.14974 11.0675 6.25836 10.6277 6.3056 10.4367C6.4067 10.0597 6.32502 9.87832 6.10452 9.61574C5.70283 9.13543 5.51577 8.56747 5.51577 7.82831C5.51577 5.63275 7.13357 3.29934 10.132 3.29934C12.5112 3.29934 13.989 4.66581 13.989 6.86541C13.989 8.25346 13.6932 9.53892 13.1558 10.4852C12.7823 11.1427 12.1257 11.9264 11.1176 11.9264C10.6817 11.9264 10.2901 11.7454 10.043 11.43C9.80961 11.1317 9.73266 10.7465 9.82655 10.345C9.93259 9.89129 10.0772 9.41809 10.2172 8.96063C10.4724 8.1251 10.7137 7.33594 10.7137 6.70632C10.7137 5.62941 10.0586 4.90578 9.08358 4.90578C7.8445 4.90578 6.87376 6.17754 6.87376 7.80106C6.87376 8.59729 7.08316 9.19284 7.17796 9.4215C7.02186 10.0898 6.09415 14.0632 5.91818 14.8125C5.81642 15.2498 5.20349 18.7045 6.218 18.9799C7.35786 19.2894 8.37675 15.9249 8.48046 15.5447C8.56451 15.2355 8.85859 14.0663 9.03881 13.3476C9.58908 13.8832 10.4751 14.2453 11.3372 14.2453C12.9624 14.2453 14.424 13.5062 15.4528 12.1644C16.4505 10.8629 17 9.04891 17 7.0568C16.9999 5.49944 16.3381 3.96408 15.1843 2.84456Z" fill="currentColor"/> 9211</svg> 9212 9213 9214</span></a> 9215 9216 9217 9218 9219 9220 <a href="https://www.youtube.com/watch?v=M2plPZYlbQM" target="_blank" title="YouTube" class="inline-flex no-underline opacity-50 hover:no-underline"><!-- snippets/component__icon.liquid --> 9221 9222 9223<span class="inline-flex align-middle " aria-hidden="true"> 9224 9225 <svg aria-hidden="true" width="20" height="20" focusable="false" data-prefix="fab" data-icon="youtube" class="svg-inline--fa fa-youtube fa-w-18" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"></path></svg> 9226 9227</span></a> 9228 9229 </div> 9230 9231 <a href="https://ui.awin.com/express-signup/us/awin/91745/8e6edfa4-869b-4ba5-8af5-b828a155bbb5?t=b02NiR8fvNQc4-H8PVcP_i7vXy5uzxQ02xdUtjncv6E" target="_blank" class="block mt-4 no-underline type__body" style="display: flex; gap: 4px; align-items: center;color: #3C515E;"> 9232 Become an Affiliate 9233 <svg xmlns="http://www.w3.org/2000/svg" height="12px" viewBox="0 -960 960 960" width="12px" fill="#3d3d3d"> 9234 <path d="m216-160-56-56 464-464H360v-80h400v400h-80v-264L216-160Z"/> 9235</svg> 9236 </a> 9237 9238 </div> 9239 9240 9241 9242 </div> 9243 </div> 9244 </div> 9245 </nav> 9246 9247 9248 <section 9249 class="f-subfooter pt-6 pb-11 border--t-width flex flex-wrap gap-4 9250 custom_new_color color__text 9251 !color__border-transparent"> 9252 9253 9254 9255 9256 <div class="f-subfooter-link-wrap w-full window--wide"> 9257 <div class="f-subfooter-row flex items-center" style="gap: 28px; overflow-x: auto; flex-wrap: nowrap;">
9258 <span class="type--smaller whitespace-nowrap">Copyright 2026 ©. All rights reserved. 9259 </span> 9260 9261 9262 <a href="https://privacy.cptn.co/privacy-policy/1dd584fd-f4ea-4117-bb3f-b48d83823e25" class="type--smaller whitespace-nowrap no-underline">Privacy Policy</a> 9263 9264 <a href="/pages/terms-conditions" class="type--smaller whitespace-nowrap no-underline">Terms & Conditions</a> 9265 9266 <a href="/pages/disclaimer-of-liability" class="type--smaller whitespace-nowrap no-underline">Disclaimer</a> 9267 9268 <a href="https://dsar.cptn.co/dsar/d2569273-ca5f-46d3-a4a2-fd9185f395c6" class="type--smaller whitespace-nowrap no-underline">Privacy Requests</a> 9269 9270 9271 </div> 9272 </div> 9273 9274 9275 9276 9277 </section> 9278 9279</footer> 9280
9281<script> 9282(function () { 9283 function watchKlaviyoMobile() { 9284 if (window.innerWidth >= 768) return; 9285 document.querySelectorAll('[class*="klaviyo-form-"]').forEach(function (kl) { 9286 if (kl.children.length) return; 9287 var section = kl.closest('section'); 9288 if (!section) return; 9289 new MutationObserver(function (_, obs) { 9290 obs.disconnect(); 9291 /* nudge the section so it recalculates height around injected content */ 9292 section.style.display = 'none'; 9293 section.offsetHeight; 9294 section.style.display = ''; 9295 }).observe(kl, { childList: true, subtree: true }); 9296 }); 9297 } 9298 if (document.readyState === 'loading') { 9299 document.addEventListener('DOMContentLoaded', watchKlaviyoMobile); 9300 } else { 9301 watchKlaviyoMobile(); 9302 } 9303}()); 9304</script>
9304 9305 9306 9307<style> #shopify-section-sections--20423940341958__theme_footer </style></div> 9308<!-- END sections: footer-group --> 9309 <!-- BEGIN sections: overlay-group --> 9310<div id="shopify-section-sections--20423940407494__theme_scrollup" class="shopify-section shopify-section-group-overlay-group"><!-- sections/theme__scrollup.liquid --> 9311 9312 9313<section> 9314 9315</section> 9316 9317 9318</div><div id="shopify-section-sections--20423940407494__theme_age-verification" class="shopify-section shopify-section-group-overlay-group"><!-- sections/theme__age-verification.liquid --> 9319 9320 9321 9322 9323 9324 9325</div> 9326<!-- END sections: overlay-group --> 9327 9328 <!-- snippets/theme__localization-popup.liquid --> 9329 9330 9331 9332<!-- snippets/component__popup.liquid --> 9333 9334 9335<section 9336 role="dialog" 9337 aria-modal="true" 9338 aria-label="Fullscreen popup" 9339 class="fixed inset-0 z-50 overflow-hidden" 9340 @keyup.escape.window="localization_popup = false;" 9341 x-show="localization_popup" 9342 x-cloak> 9343 <div class="sm:block sm:p-0 flex items-end justify-center min-h-screen px-4 pt-4 text-center"> 9344 <div aria-hidden="true" 9345 class="fixed inset-0 transition-opacity bg-black bg-opacity-50" 9346 @click="localization_popup = false;" 9347 x-show="localization_popup" 9348 9349 x-transition:enter="animation-300" 9350 x-transition:enter-start="opacity-0" 9351 x-transition:enter-end="opacity-100" 9352 x-transition:leave="animation-300" 9353 x-transition:leave-start="opacity-100" 9354 x-transition:leave-end="opacity-0" 9355 9356 x-cloak> 9357 </div> 9358 <div class="md:left-5 md:bottom-auto md:right-5 md:top-1/2 md:align-middle md:max-w-md md:-translate-y-1/2 absolute bottom-0 left-0 right-0 inline-block m-auto text-left align-bottom transition-all transform" 9359 x-show="localization_popup" 9360 x-trap="localization_popup" 9361 9362 x-transition:enter="animation-300" 9363 x-transition:enter-start="opacity-0 translate-y-8" 9364 x-transition:enter-end="opacity-100" 9365 x-transition:leave="animation-300" 9366 x-transition:leave-start="opacity-100" 9367 x-transition:leave-end="opacity-0 translate-y-8" 9368 9369 x-cloak> 9370 <div class="md:px-0 px-4 py-4"> 9371 <button class="btn btn--smaller btn--plain" 9372 type="button" 9373 title="Close" 9374 @click="localization_popup = false;"> 9375 <!-- snippets/component__icon.liquid --> 9376 9377 9378<span class="inline-flex align-middle " aria-hidden="true"> 9379 9380 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 16 16" fill="none"><path d="M14.3746 13.6478C14.5695 13.8428 14.5695 14.1588 14.3746 14.3538C14.1796 14.5487 13.8635 14.5487 13.6686 14.3538L1.66699 2.35219C1.47204 2.15724 1.47204 1.84116 1.66699 1.64621C1.86194 1.45126 2.17802 1.45126 2.37297 1.64621L14.3746 13.6478Z" fill="#3D3D3D"/><path d="M1.64621 13.6478C1.45126 13.8428 1.45126 14.1588 1.64621 14.3538C1.84116 14.5487 2.15724 14.5487 2.35219 14.3538L14.3538 2.35219C14.5487 2.15724 14.5487 1.84116 14.3538 1.64621C14.1588 1.45126 13.8428 1.45126 13.6478 1.64621L1.64621 13.6478Z" fill="#3D3D3D"/></svg> 9381 9382 9383</span> 9384 </button> 9385 </div> 9386 <div class="mobile-border--radius-b-0 color__bg-body border--radius overflow-y-auto shadow-lg max-h-[70vh]" 9387 @click.outside="localization_popup = false;"> 9388 9389 9390 9391 9392 <localization-form> 9393 <form method="post" action="/localization" id="localization_form" accept-charset="UTF-8" class="shopify-localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/pages/contact-us" /> 9394 9395 9396 <!-- snippets/component__accordion.liquid --> 9397 9398<div class="border--b-width color__border-divider-1 px-4" 9399 9400 x-data="{ 9401 9402 accordion: false 9403 9404 }"> 9405 9406 <button type="button" 9407 class="flex items-center justify-between w-full py-7 " 9408 @click=" 9409 9410 accordion = ! accordion 9411 "> 9412 9413 <div class="flex items-center"> 9414 9415
9416 <span class="type__body text-left semibold f-col--heading" style="margin-bottom: 0; padding-bottom: 0;"> 9417 9418 Change Country 9419 <span class="type--small block text-left">United States ($ USD)</span> 9420 9421 </span> 9422 </div><div x-show=" !accordion "> 9423 <!-- snippets/component__icon.liquid --> 9424 9425 9426<span class="inline-flex align-middle " aria-hidden="true"> 9427 9428 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="6.4" viewBox="0 0 15 8" fill="none"><path d="M13.7611 0.206751C14.0445 -0.068917 14.504 -0.068917 14.7874 0.206751C15.0709 0.482419 15.0709 0.929258 14.7874 1.20493L8.01317 7.79325C7.72972 8.06892 7.27028 8.06892 6.98683 7.79325L0.212585 1.20493C-0.0708618 0.929258 -0.0708618 0.482419 0.212585 0.206751C0.496032 -0.068917 0.955481 -0.068917 1.23893 0.206751L7.5 6.29599L13.7611 0.206751Z" fill="#3D3D3D"/></svg> 9429 9430</span> 9431 </div> 9432 <div x-show=" accordion " x-cloak> 9433 <!-- snippets/component__icon.liquid --> 9434 9435 9436<span class="inline-flex align-middle " aria-hidden="true"> 9437 9438 <svg xmlns="http://www.w3.org/2000/svg" width="15" height="8" viewBox="0 0 15 8" fill="none"><path d="M13.7611 7.79325C14.0445 8.06892 14.504 8.06892 14.7874 7.79325C15.0709 7.51758
943815.0709 7.07074 14.7874 6.79507L8.01317 0.20675C7.72972 -0.0689173 7.27028 -0.0689173 6.98683 0.20675L0.212585 6.79507C-0.0708618 7.07074 -0.0708618 7.51758 0.212585 7.79325C0.496032 8.06892 0.955481 8.06892 1.23893 7.79325L7.5 1.70401L13.7611 7.79325Z" fill="#3D3D3D"/></svg> 9439 9440</span> 9441 </div> 9442 </button> 9443 9444 <div 9445 class="accordion-content " 9446 x-show=" accordion " 9447 9448 x-transition:enter="animation-100" 9449 x-transition:enter-start="opacity-0" 9450 x-transition:enter-end="opacity-100" 9451 x-transition:leave="animation-100" 9452 x-transition:leave-start="opacity-100" 9453 x-transition:leave-end="opacity-0" 9454 9455 x-cloak> 9456 9457 9458 9459 9460 <label class="type__nav color__text hover:color__bg-overlay-1 flex items-center w-full p-2"> 9461 <label class="sr-only" 9462 for="country_selection_CAD">Country</label> 9463 <input id="country_selection_CAD" 9464 class="form-radio" 9465 type="radio" 9466 value="CAD" 9467 data-value="CA" 9468 > 9469 <span class="type--small ml-2">Canada ($ CAD)</span> 9470 </label> 9471 9472 <label class="type__nav color__text hover:color__bg-overlay-1 flex items-center w-full p-2"> 9473 <label class="sr-only" 9474 for="country_selection_USD">Country</label> 9475 <input id="country_selection_USD" 9476 class="form-radio" 9477 type="radio" 9478 value="USD" 9479 data-value="US" 9480 checked> 9481 <span class="type--small ml-2">United States ($ USD)</span> 9482 </label> 9483 9484 9485 9486 9487 </div> 9488 9489</div> 9490 <input id="country_code" 9491 type="hidden" 9492 name="country_code" 9493 value="US"> 9494 </form> 9495 </localization-form> 9496 9497 9498 9499 9500 9501 9502 <!-- snippets/script__localization.liquid --> 9503 9504
9505<script> 9506 class LocalizationForm extends HTMLElement { 9507 9508 constructor() { 9509 super(); 9510 this.elements = { 9511 input: this.querySelector('input[name="language_code"], input[name="country_code"]'), 9512 button: this.querySelector('button'), 9513 }; 9514 this.querySelectorAll('[id^="language_selection_"]').forEach(item => item.addEventListener('click', this.onItemClick.bind(this))); 9515 this.querySelectorAll('[id^="country_selection_"]').forEach(item => item.addEventListener('click', this.onItemClick.bind(this))); 9516 } 9517 9518 onItemClick(event) { 9519 event.preventDefault(); 9520 const form = this.querySelector('form'); 9521 this.elements.input.value = event.currentTarget.dataset.value; 9522 if (form) form.submit(); 9523 } 9524 9525 openSelector() { 9526 this.elements.button.focus(); 9527 this.elements.button.setAttribute('aria-expanded', (this.elements.button.getAttribute('aria-expanded') === 'false').toString()); 9528 } 9529 9530 } 9531 9532 customElements.define('localization-form', LocalizationForm); 9533</script>
9533 9534 9535 9536 </div> 9537 </div> 9538 </div> 9539</section> 9540 <!-- snippets/theme__audio-popup.liquid --> 9541 9542 9543 9544<!-- snippets/component__popup.liquid --> 9545 9546 9547<section 9548 role="dialog" 9549 aria-modal="true" 9550 aria-label="Fullscreen popup" 9551 class="fixed inset-0 z-50 overflow-hidden" 9552 @keyup.escape.window="audio_popup = false;" 9553 x-show="audio_popup" 9554 x-cloak> 9555 <div class="sm:block sm:p-0 flex items-end justify-center min-h-screen px-4 pt-4 text-center"> 9556 <div aria-hidden="true" 9557 class="fixed inset-0 transition-opacity bg-black bg-opacity-50" 9558 @click="audio_popup = false;" 9559 x-show="audio_popup" 9560 9561 x-transition:enter="animation-300" 9562 x-transition:enter-start="opacity-0" 9563 x-transition:enter-end="opacity-100" 9564 x-transition:leave="animation-300" 9565 x-transition:leave-start="opacity-100" 9566 x-transition:leave-end="opacity-0" 9567 9568 x-cloak> 9569 </div> 9570 <div class="md:left-5 md:bottom-auto md:right-5 md:top-1/2 md:align-middle md:max-w-md md:-translate-y-1/2 absolute bottom-0 left-0 right-0 inline-block m-auto text-left align-bottom transition-all transform" 9571 x-show="audio_popup" 9572 x-trap="audio_popup" 9573 9574 x-transition:enter="animation-300" 9575 x-transition:enter-start="opacity-0 translate-y-8" 9576 x-transition:enter-end="opacity-100" 9577 x-transition:leave="animation-300" 9578 x-transition:leave-start="opacity-100" 9579 x-transition:leave-end="opacity-0 translate-y-8" 9580 9581 x-cloak> 9582 <div class="md:px-0 px-4 py-4"> 9583 <button class="btn btn--smaller btn--plain" 9584 type="button" 9585 title="Close" 9586 @click="audio_popup = false;"> 9587 <!-- snippets/component__icon.liquid --> 9588 9589 9590<span class="inline-flex align-middle " aria-hidden="true"> 9591 9592 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 16 16" fill="none"><path d="M14.3746 13.6478C14.5695 13.8428 14.5695 14.1588 14.3746 14.3538C14.1796 14.5487 13.8635 14.5487 13.6686 14.3538L1.66699 2.35219C1.47204 2.15724 1.47204 1.84116 1.66699 1.64621C1.86194 1.45126 2.17802 1.45126 2.37297 1.64621L14.3746 13.6478Z" fill="#3D3D3D"/><path d="M1.64621 13.6478C1.45126 13.8428 1.45126 14.1588 1.64621 14.3538C1.84116 14.5487 2.15724 14.5487 2.35219 14.3538L14.3538 2.35219C14.5487 2.15724 14.5487 1.84116 14.3538 1.64621C14.1588 1.45126 13.8428 1.45126 13.6478 1.64621L1.64621 13.6478Z" fill="#3D3D3D"/></svg> 9593 9594 9595</span> 9596 </button> 9597 </div> 9598 <div class="mobile-border--radius-b-0 color__bg-body border--radius overflow-y-auto shadow-lg max-h-[70vh]" 9599 @click.outside="audio_popup = false;"> 9600 9601 <button class="type__nav border--b-width color__border-divider-1 hover:color__bg-overlay-1 block w-full p-4 text-left no-underline" 9602 @click.prevent="enable_audio = true; localStorage.setItem('paper_enable_audio', 'true')"> 9603 <span x-show="enable_audio == true"> 9604 <!-- snippets/component__icon.liquid --> 9605 9606 9607<span class="inline-flex align-middle mr-1" aria-hidden="true"> 9608 9609 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-check"><polyline points="20 6 9 17 4 12"></polyline></svg> 9610 9611</span> 9612 </span> 9613 Enable Audio 9614 </button> 9615 <button class="type__nav hover:color__bg-overlay-1 block w-full p-4 text-left no-underline" 9616 @click.prevent="enable_audio = false; localStorage.setItem('paper_enable_audio', 'false')"> 9617 <span x-show="enable_audio == false"> 9618 <!-- snippets/component__icon.liquid --> 9619 9620 9621<span class="inline-flex align-middle mr-1" aria-hidden="true"> 9622 9623 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-check"><polyline points="20 6 9 17 4 12"></polyline></svg> 9624 9625</span> 9626 </span> 9627 Disable Audio 9628 </button> 9629 9630 </div> 9631 </div> 9632 </div> 9633</section> 9634 <!-- snippets/theme__discount-popup.liquid --> 9635 9636 9637 9638 <!-- snippets/component__alert.liquid --> 9639 9640 9641<div class="fixed top-0 left-0 right-0 z-50 w-auto overflow-hidden shadow-md md:left-auto md:right-5 md:top-5 color__bg-body color__text border--radius md:w-96 border--width color__border-divider-1" 9642 @click.outside="discount_popup = false" 9643 @keyup.escape.window="discount_popup = false" 9644 x-show="discount_popup" 9645 9646 x-transition:enter="animation-300" 9647 x-transition:enter-start="opacity-0" 9648 x-transition:enter-end="opacity-100" 9649 x-transition:leave="animation-300" 9650 x-transition:leave-start="opacity-100" 9651 x-transition:leave-end="opacity-0" 9652 9653 x-cloak> 9654 9655 <div class="relative p-4 overflow-hidden"> 9656 9657 9658 <div class="flex flex-wrap items-center justify-between mb-4"> 9659 <button class="btn btn--smaller btn--plain" 9660 title="Close" 9661 @click="discount_popup = false"> 9662 <!-- snippets/component__icon.liquid --> 9663 9664 9665<span class="inline-flex align-middle " aria-hidden="true"> 9666 9667 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 16 16" fill="none"><path d="M14.3746 13.6478C14.5695 13.8428 14.5695 14.1588 14.3746 14.3538C14.1796 14.5487 13.8635 14.5487 13.6686 14.3538L1.66699 2.35219C1.47204 2.15724 1.47204 1.84116 1.66699 1.64621C1.86194 1.45126 2.17802 1.45126 2.37297 1.64621L14.3746 13.6478Z" fill="#3D3D3D"/><path d="M1.64621 13.6478C1.45126 13.8428 1.45126 14.1588 1.64621 14.3538C1.84116 14.5487 2.15724 14.5487 2.35219 14.3538L14.3538 2.35219C14.5487 2.15724 14.5487 1.84116 14.3538 1.64621C14.1588 1.45126 13.8428 1.45126 13.6478 1.64621L1.64621 13.6478Z" fill="#3D3D3D"/></svg> 9668 9669 9670</span> 9671 </button> 9672 </div> 9673 <div> 9674 <p class="mb-0">
9675 <span x-text="discount_text"></span>. 9676 <strong x-text="discount_code"></strong> Discount code automatically applied at checkout. 9677 </p> 9678 </div> 9679 9680 </div> 9681</div> 9682 <!-- snippets/theme__error-popup.liquid --> 9683 9684 9685 9686<!-- snippets/component__alert.liquid --> 9687 9688 9689<div class="fixed top-0 left-0 right-0 z-50 w-auto overflow-hidden shadow-md md:left-auto md:right-5 md:top-5 color__bg-body color__text border--radius md:w-96 border--width color__border-divider-1" 9690 @click.outside="show_alert = false" 9691 @keyup.escape.window="show_alert = false" 9692 x-show="show_alert" 9693 9694 x-transition:enter="animation-300" 9695 x-transition:enter-start="opacity-0" 9696 x-transition:enter-end="opacity-100" 9697 x-transition:leave="animation-300" 9698 x-transition:leave-start="opacity-100" 9699 x-transition:leave-end="opacity-0" 9700 9701 x-cloak> 9702 9703 <div class="relative p-4 overflow-hidden"> 9704 9705 9706 <div class="flex flex-wrap items-center justify-between mb-4"> 9707 <p class="flex items-center mb-0">Error</p> 9708 <button class="btn btn--smaller btn--plain" 9709 title="Close" 9710 @click="show_alert = false"> 9711 <!-- snippets/component__icon.liquid --> 9712 9713 9714<span class="inline-flex align-middle " aria-hidden="true"> 9715 9716 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 16 16" fill="none"><path d="M14.3746 13.6478C14.5695 13.8428 14.5695 14.1588 14.3746 14.3538C14.1796 14.5487 13.8635 14.5487 13.6686 14.3538L1.66699 2.35219C1.47204 2.15724 1.47204 1.84116 1.66699 1.64621C1.86194 1.45126 2.17802 1.45126 2.37297 1.64621L14.3746 13.6478Z" fill="#3D3D3D"/><path d="M1.64621 13.6478C1.45126 13.8428 1.45126 14.1588 1.64621 14.3538C1.84116 14.5487 2.15724 14.5487 2.35219 14.3538L14.3538 2.35219C14.5487 2.15724 14.5487 1.84116 14.3538 1.64621C14.1588 1.45126 13.8428 1.45126 13.6478 1.64621L1.64621 13.6478Z" fill="#3D3D3D"/></svg> 9717 9718 9719</span> 9720 </button> 9721 </div> 9722 <div> 9723 <p class="mb-0" x-text="error_message"></p> 9724 </div> 9725 9726 </div> 9727</div> 9728 9729 9730 9731
9731<script src="//doraihome.com/cdn/shop/t/324/assets/testing.js" type="module" crossorigin="anonymous"></script>
9731 9732 9733 9734 <!-- snippets/custom-fonts.liquid --> 9735 9736 9737 <link rel="preload" as="font" type="font/ttf" href="//doraihome.com/cdn/shop/files/Caveat-font.ttf?v=5861137090947336122" crossorigin><style> 9738 @font-face { 9739 font-family: 'Caveat'; 9740 9741 src: url("//doraihome.com/cdn/shop/files/Caveat-font.ttf?v=5861137090947336122") format('truetype-variations'), 9742 url("//doraihome.com/cdn/shop/files/Caveat-font.ttf?v=5861137090947336122") format('truetype'); 9743 font-weight: 400 700; 9744 font-style: normal; 9745 font-display: swap; 9746 } 9747</style> 9748 9749 9750 9751 <!-- snippets/theme__scripts.liquid -->
9751<script> 9752 window.__initialData = window.__initialData || {}; 9753 Object.assign(window.__initialData, { 9754 9755 // Scroll 9756 is_scrolled: false, // {boolean} Used to toggle dynamic header bar 9757 prev_scroll_pos: 0, // {number} Pprevious scroll position of the page 9758 show_scroll_up: false, // {boolean} To show the 'back to top' button 9759 9760 // Audio related properties 9761 click_audio: '//doraihome.com/cdn/shop/t/324/assets/click.wav?v=158935355045082451841778008268', // {string} URL for click sound 9762 success_audio: '//doraihome.com/cdn/shop/t/324/assets/success.wav?v=135438133453557868261778008271', // {string} URL for success sound 9763 enable_audio: false, // {boolean} To enable or disable audio 9764 9765 // Popups 9766 age_popup: localStorage.getItem("agePopupConfirmed") ? true : false, // {boolean} To toggle the age popup 9767 audio_popup: false, // {boolean} To toggle the audio settings popup 9768 cookie_popup: false, // {boolean} To toggle the cookie compliance popup 9769 discount_popup: false, // {boolean} To toggle the discount popup 9770 filter_popup: false, // {boolean} To toggle the filter popup 9771 localization_popup: false, // {boolean} To toggle the localization popup 9772 // Discount 9773 discount_text: '', // {string} Text for the discount 9774 discount_code: '', // {string} Code for the discount 9775 9776 // Quick sections 9777 quick_add_popup: false, // {boolean} To toggle the quick add popup 9778 quick_edit_popup: false, // {boolean} To toggle the quick edit popup 9779 quick_edit_handle: '', // {string} Set to the product handle of the product being edited 9780 quick_add_handle: '', // {string} Set to the product handle of the product being added 9781 // Menu 9782 menu_drawer: false, // {boolean} To toggle the menu drawer 9783 menu_nested: false, // {boolean} To check if the menu is nested 9784 9785 // Header 9786 hide_header: false, // {boolean} To hide the header 9787 9788 // Error 9789 error_alert: false, // {boolean} To show the alert 9790 error_message: '', // {string} Error message 9791 9792 // Prices 9793 price_format_with_currency: '${{amount}}', // {string} Format for price with currency 9794 price_format_without_currency: '${{amount}} USD', // {string} Format for price without currency
9795 price_enable_zeros: false, // {Boolean} Set to false to hide '.00' 9796 price_enable_currency: false, // {Boolean} Set to false to hide 'CAD' 9797 9798 // Products 9799 recent_products: localStorage.getItem("recentlyViewedProducts") ? JSON.parse(localStorage.getItem("recentlyViewedProducts")) : [], // {array} Recently viewed products 9800 9801 // Cart 9802 cart_alert: false, // {boolean} To show the cart alert 9803 cart_drawer: false, // {boolean} To toggle the cart drawer 9804 cart_loading: false, // {boolean} To check if the cart is loading 9805 cart_behavior_desktop: 'drawer', // {string} Behavior of the cart on desktop 9806 cart_behavior_mobile: 'drawer', // {string} Behavior of the cart on mobile 9807 cart: { 9808 items: [ 9809 9810 ], 9811 note: ``, // {string} Note for the cart 9812 item_count: 0, // {number} Count of items in the cart 9813 total_price: 0, // {number} Total price of the cart 9814 original_total_price: 0, // {number} Original total price of the cart 9815 total_discount: 0, // {number} Total discount of the cart 9816 alert_delay: 0, // {number} Width of the delay bar in cart alerts 9817 progress_bar_remaining: 0, // {number} Remaining amount - e.g. 'Spend X more for free shipping' 9818 progress_bar_percent: '0%', // {string} Percent to reaching free shipping 9819 progress_bar_calculation: 'total', 9820 }, 9821 9822 // Search 9823 search_active: false, // {boolean} To toggle the search drawer 9824 search_loading: false, // {boolean} To check if the search is loading 9825 search_term: '', // {string} Term for the search 9826 search_items: [], // {array} Array of search items 9827 search_items_pages: [], // {array} Array of search items in pages 9828 search_items_collections: [], // {array} Array of search items in collections 9829 search_items_articles: [], // {array} Array of search items in articles 9830 search_items_queries: [], // {array} Array of search items in queries 9831 9832 // Pagination 9833 pagination_loading: false, // {boolean} To show loading state in pagination 9834 9835 // TODO: - Remove, merge and connect. Referce Space 9836 show_alert: false, 9837 enable_body_scrolling: true, 9838 9839 }); 9840</script>
9840 9841
9842<script> 9843 (function () { 9844 if (window.__doraiCartEventsInstalled) return; 9845 window.__doraiCartEventsInstalled = true; 9846 9847 var nativeFetch = window.fetch; 9848 if (typeof nativeFetch !== 'function') return; 9849 9850 function requestMeta(input, init) { 9851 var url = ''; 9852 var method = 'GET'; 9853 if (typeof Request !== 'undefined' && input instanceof Request) { 9854 url = input.url; 9855 method = (init && init.method) || input.method || 'GET'; 9856 } else { 9857 url = String(input || ''); 9858 method = (init && init.method) || 'GET'; 9859 } 9860 return { url: url, method: String(method).toUpperCase() }; 9861 } 9862 9863 function pathOnly(urlString) { 9864 try { 9865 if (/^https?:\/\//i.test(urlString)) { 9866 return new URL(urlString).pathname; 9867 } 9868 var base = window.location && window.location.origin ? window.location.origin : 'https://shopify.com'; 9869 return new URL(urlString, base).pathname; 9870 } catch (e) { 9871 var q = urlString.indexOf('?'); 9872 return q === -1 ? urlString : urlString.slice(0, q); 9873 } 9874 } 9875 9876 /** 9877 * Only mutating Cart Ajax POSTs â not GET /cart.js (avoids Klaviyo, polling, subtotal helpers, etc.). 9878 * For cart/add.js the JSON body is the added line, not the full cart; call GET /cart.js if you need lines. 9879 */ 9880 function classifyCartApi(pathname, method) { 9881 if (!pathname || method !== 'POST') return null; 9882 if (/\/cart\/add\.js$/i.test(pathname)) return 'cart/add.js'; 9883 if (/\/cart\/change\.js$/i.test(pathname)) return 'cart/change.js'; 9884 if (/\/cart\/update\.js$/i.test(pathname)) return 'cart/update.js'; 9885 if (/\/cart\/clear\.js$/i.test(pathname)) return 'cart/clear.js'; 9886 return null; 9887 } 9888 9889 function dispatchCartEvents(endpointLabel, cartPayload) { 9890 var detail = { cart: cartPayload, endpoint: endpointLabel }; 9891 try { 9892 document.dispatchEvent(new CustomEvent('dorai:cart-updated', { bubbles: true, detail: detail })); 9893 document.dispatchEvent(new CustomEvent('cart/updated', { bubbles: true, detail: detail })); 9894 } catch (e) {} 9895 } 9896 9897 window.fetch = function () { 9898 var args = arguments; 9899 return nativeFetch.apply(window, args).then(function (response) { 9900 var meta = requestMeta(args[0], args[1]); 9901 var label = classifyCartApi(pathOnly(meta.url), meta.method); 9902 if (!label || !response.ok) { 9903 return response; 9904 } 9905 var cloned = response.clone(); 9906 return cloned 9907 .json() 9908 .then(function (data) { 9909 dispatchCartEvents(label, data); 9910 }) 9911 .catch(function () {}) 9912 .then(function () { 9913 return response; 9914 }); 9915 }); 9916 }; 9917 })(); 9918</script>
9918 9919 9920 9921 9922<!-- snippets/script__design-mode.liquid --> 9923 9924 9925 9926 9927<!--
9927<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
9927--> 9928 9929<!-- Zoho Pagesense -->
9930<script type="text/javascript">(function(w,s){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://cdn.pagesense.io/js/doraihome/c655d3de30eb4711b6e8452bfc8d0864.js";var x=document.getElementsByTagName("script")[0];x.parentNode.insertBefore(e,x);})(window,"script");</script>
9930 9931<!-- end Zoho Pagesense --> 9932 9933 <!-- Paste popup code or third party scripts below this comment line ============== --> 9934 9935 <!-- Abort video streams immediately on navigation to prevent homepage exit lag --> 9936
9936<script> 9937 document.addEventListener('click', function(e) { 9938 var link = e.target.closest('a[href]'); 9939 if (!link) return; 9940 var href = link.getAttribute('href'); 9941 if (!href || href.startsWith('#') || href.startsWith('javascript')) return; 9942 document.querySelectorAll('video').forEach(function(v) { 9943 v.pause(); 9944 v.src = ''; 9945 v.load(); 9946 }); 9947 }, { capture: true }); 9948 </script>
9948 9949 9950 <!-- Loop Returns --> 9951
9951<script src="https://cdn.jsdelivr.net/npm/@loophq/onstore-sdk@latest/dist/loop-onstore-sdk.min.js"></script>
vendor: 1 bytes, line 9951
9951
9952<script> 9953 LoopOnstore.init({ 9954 key: "12d4becf91f4ba06e7e7cb8d28431eef4dc40e26", 9955 attach: ".btn, .btn--primary, .btn--large, .btn--full, .checkout__button, .cart__checkout", 9956 }); 9957</script>
9957 9958<!-- Forced code to reduce Attentive z-index --> 9959
9959<script> 9960 document.addEventListener('DOMContentLoaded',function () { 9961 let existCondition = setInterval(function() { 9962 //console.log('Entered Loop'); 9963 let element = document.getElementById('attentive_overlay'); 9964 if (typeof(element) != 'undefined' && element != null) 9965 { 9966 //console.log("Attentive Exists!"); 9967 element.style.zIndex = "1000"; 9968 clearInterval(existCondition); 9969 } 9970 }, 2000); 9971 9972 $('.pdp-icon').on('click', function(){ 9973 console.log('clicked'); 9974 $(this).find('.pdp-icon--tip').slideToggle(); 9975 }); 9976 }); 9977 9978 function backToSelector() { 9979 console.log('Got here'); 9980 window.scrollTo(0,100); 9981 } 9982 9983 </script>
9983 9984 9985 <!-- Update cart and reload cart only --> 9986
9986<script> 9987 function reloadCart() { 9988 console.log('reloadCart'); 9989 setTimeout( function(){ 9990 $( "#cartWrapper" ).load(window.location.href + " #cartWrapper" ); 9991 console.log('cart reloaded'); 9992 },1000); 9993 } 9994 9995 /* Remove Bundle Items from Cart */ 9996 function removeBundleFromCart(reload) { 9997 console.log('Set in Cart: Remove Items'); 9998 let removeData = new FormData(); 9999 //Get Cart and remove any current bundle products 10000 fetch(window.Shopify.routes.root + 'cart.js') 10001 .then(response => response.json()) 10002 .then(data=>{ 10003 console.log('Cart data: ', data.items) 10004 $.each(data.items, function(index, value){ 10005 console.log(value); 10006 console.log(JSON.stringify(value.properties), ' index: ', index); 10007 10008 let str = JSON.stringify(value.properties); 10009 if(str.indexOf('_bundle') != -1) { 10010 console.log('Item property: ', str); 10011 console.log('Bundle Item: ', value.key); 10012 10013 removeData.append("updates["+value.key+"]", 0); 10014 } 10015 }); 10016 10017 fetch(window.Shopify.routes.root + 'cart/update.js', { 10018 method: 'POST', 10019 body: removeData 10020 }) 10021 .then(response => response.json()) 10022 .then(data => { 10023 console.log(data); 10024 console.log('Items removed'); 10025 if(reload == true) { 10026 let reloadURL = window.location.href + '?cart'; 10027 let nextTitle = 'Build Your Set - Set Added to Cart'; 10028 let nextState = { additionalInformation: 'Updated the URL with JS' }; 10029 window.history.replaceState(nextState, nextTitle, reloadURL); 10030 location.reload(); 10031 } 10032 }); 10033 }); 10034 } 10035 </script>
10035<script type="text/javascript"> 10036 window.OrderProtection = { 10037 config: [{ 10038 "type": "vertical-stack", 10039 "attributes": { 10040 "gap": "4px", 10041 "padding": "0", 10042 "margin": "6px 0 10px 0", 10043 "align-items": "stretch", 10044 "justify-content": "flex-start", 10045 "width": "100%", 10046 "style": "border-top: 1px solid #ECECEC; padding-top: 4px;" 10047 }, 10048 "children": [ 10049 { 10050 "type": "horizontal-stack", 10051 "attributes": { 10052 "gap": "20px", 10053 "align-items": "center", 10054 "justify-content": "flex-start", 10055 "width": "100%", 10056 "padding": "0", 10057 "style": "margin: 0;" 10058 }, 10059 "children": [ 10060 { 10061 "type": "ui-switch", 10062 "attributes": { 10063 "aria-label": "Toggle Order Protection", 10064 "role": "switch", 10065 "offcolor": "#ECECEC", 10066 "oncolor": "#3c515e", 10067 "tabIndex": "0", 10068 "radius": "100px", 10069 "style": "transform: scale(1.3); transform-origin: left center;" 10070 }, 10071 "listens": ["widget/loaded", "cart/updated"], 10072 "emits": ["protection/toggled"] 10073 }, 10074 { 10075 "type": "vertical-stack", 10076 "attributes": { 10077 "gap": "0px", 10078 "align-items": "flex-start", 10079 "justify-content": "center", 10080 "width": "100%" 10081 }, 10082 "children": [ 10083 { 10084 "type": "horizontal-stack", 10085 "attributes": { 10086 "gap": "4px", 10087 "align-items": "center", 10088 "justify-content": "flex-start" 10089 }, 10090 "children": [ 10091 { 10092 "type": "custom-text", 10093 "attributes": { 10094 "text": "Opt In for Order Protection for", 10095 "font": "Acumin Pro, sans-serif", 10096 "size": "14px", 10097 "color": "#3D3D3D", 10098 "weight": "400", 10099 "align": "left", 10100 "id": "op-dynamic-message", 10101 "line-height": "1" 10102 } 10103 }, 10104 { 10105 "type": "ui-price", 10106 "attributes": { 10107 "currency": "$", 10108 "font": "Acumin Pro, sans-serif", 10109 "size": "14px", 10110 "color": "#3D3D3D", 10111 "weight": "400", 10112 "type": "variant", 10113 "align": "left" 10114 }, 10115 "listens": ["widget/loaded", "cart/updated"] 10116 } 10117 ] 10118 }, 10119 { 10120 "type": "custom-text", 10121 "attributes": { 10122 "text": "Ensure your package is safe and get free returns*", 10123 "font": "Acumin Pro, sans-serif", 10124 "size": "14px", 10125 "color": "rgba(61, 61, 61, 0.75)", 10126 "weight": "400", 10127 "align": "left", 10128 "line-height": "0.9", 10129 "style": "margin-top: -8px; margin-bottom: 0;" 10130 } 10131 } 10132 ] 10133 } 10134 ] 10135 } 10136 ] 10137 }] 10138 } 10139 </script>
10139 10140
10140<script> 10141 (function () { 10142 // Custom breakpoints 10143 const ranges = [ 10144 { min: 0, max: 480, font: "12px" }, // small mobile 10145 { min: 481, max: 768, font: "13px" }, // large mobile 10146 { min: 769, max: 99999, font: "14px" } // desktop 10147 ]; 10148 10149 function getFontSizeForWidth(width) { 10150 for (const r of ranges) { 10151 if (width >= r.min && width <= r.max) return r.font; 10152 } 10153 return "14px"; 10154 } 10155 10156 10157 // Apply to title, price, and info 10158 function applyResponsiveFont(root) { 10159 if (!root) return; 10160 10161 const size = getFontSizeForWidth(window.innerWidth); 10162 10163 // Title 10164 const title = root.querySelector('custom-text#op-dynamic-message'); 10165 if (title?.shadowRoot) { 10166 const span = title.shadowRoot.querySelector("span"); 10167 if (span) { 10168 span.style.fontSize = size; 10169 span.style.lineHeight = "1.05"; 10170 } 10171 } 10172 10173 const price = root.querySelector('ui-price[type="variant"]'); 10174 if (price?.shadowRoot) { 10175 const nodes = price.shadowRoot.querySelectorAll("span, strong, div"); 10176 nodes.forEach(n => { 10177 n.style.fontSize = size; 10178 n.style.lineHeight = "1.05"; 10179 }); 10180 } 10181 10182 // Info text 10183 root.querySelectorAll('custom-text').forEach(el => { 10184 if (el.id === "op-dynamic-message") return; 10185 const span = el.shadowRoot?.querySelector("span"); 10186 if (span) { 10187 span.style.fontSize = size; 10188 span.style.lineHeight = "1.05"; 10189 } 10190 }); 10191 } 10192 10193 10194 // Runs after OP widget shadow DOM is ready 10195 function waitForWidgetAndApply() { 10196 const widget = document.querySelector("order-protection"); 10197 10198 if (!widget || !widget.shadowRoot) return false; 10199 10200 const root = widget.shadowRoot; 10201 10202 // Always apply immediately 10203 applyResponsiveFont(root); 10204 10205 // Apply when resizing 10206 window.addEventListener("resize", () => applyResponsiveFont(root)); 10207 10208 // Apply whenever OP internally re-renders 10209 const observer = new MutationObserver(() => applyResponsiveFont(root)); 10210 observer.observe(root, { childList: true, subtree: true }); 10211 10212 return true; 10213 } 10214 10215 10216 const hardWait = setInterval(() => { 10217 if (waitForWidgetAndApply()) clearInterval(hardWait); 10218 }, 100); 10219 10220 window.addEventListener("load", () => { 10221 setTimeout(() => { 10222 waitForWidgetAndApply(); 10223 }, 150); 10224 }); 10225 10226 })(); 10227 </script>
10227 10228 10229
10229<script> 10230 (function () { 10231 function updateOPText() { 10232 const widget = document.querySelector("order-protection"); 10233 const controller = window.OrderProtection?.controller; 10234 if (!widget || !widget.shadowRoot || !controller) return; 10235 10236 const titleTextEl = widget.shadowRoot.querySelector("custom-text"); 10237 const priceEl = widget.shadowRoot.querySelector('ui-price[type="variant"]'); 10238 10239 if (!titleTextEl || !priceEl) return; 10240 10241 const titleSpan = titleTextEl.shadowRoot?.querySelector("span"); 10242 const priceSpan = priceEl.shadowRoot?.querySelector("span"); 10243 if (!titleSpan || !priceSpan) return; 10244 10245 const price = priceSpan.textContent.trim(); 10246 const enabled = controller.enabled === true; 10247 10248 titleSpan.textContent = enabled 10249 ? `You've Opted In for Order Protection for` 10250 : `Opt In for Order Protection for`; 10251 } 10252 10253 function bindListeners() { 10254 const widget = document.querySelector("order-protection"); 10255 if (!widget || !widget.shadowRoot) return; 10256 10257 const switchEl = widget.shadowRoot.querySelector("ui-switch"); 10258 const priceSpan = widget.shadowRoot 10259 .querySelector('ui-price[type="variant"]') 10260 ?.shadowRoot?.querySelector("span"); 10261 10262 if (switchEl) { 10263 switchEl.addEventListener("click", () => { 10264 setTimeout(updateOPText, 50); 10265 }); 10266 } 10267 10268 if (priceSpan) { 10269 new MutationObserver(updateOPText).observe(priceSpan, { 10270 childList: true, 10271 characterData: true, 10272 subtree: true, 10273 }); 10274 } 10275 } 10276 10277 // Wait until widget is fully defined and loaded 10278 const initInterval = setInterval(() => { 10279 const widgetReady = 10280 window.OrderProtection?.controller && 10281 customElements.get("order-protection") && 10282 document.querySelector("order-protection")?.shadowRoot; 10283 10284 if (widgetReady) { 10285 clearInterval(initInterval); 10286 10287 // Initial update on page load / cart load 10288 setTimeout(updateOPText, 150); 10289 10290 // Bind toggle + price listeners 10291 bindListeners(); 10292 10293 // Also listen to OP widget events 10294 document.addEventListener("widget/loaded", () => { 10295 setTimeout(updateOPText, 50); 10296 }); 10297 document.addEventListener("cart/updated", () => { 10298 setTimeout(updateOPText, 100); 10299 }); 10300 10301 // And refresh periodically in case Shopify overwrites DOM 10302 setInterval(updateOPText, 1500); 10303 } 10304 }, 200); 10305 })(); 10306 </script>
10306 10307
10307<script> 10308 document.addEventListener('click', async function (event) { 10309 // Use a class or ID that's stable and reasonable 10310 const button = event.target.closest('button[type="submit"][name="checkout"]'); 10311 if (!button) return; 10312 try { 10313 if (window.OrderProtection?.controller?.enabled === true) { 10314 console.log('[OP V2] Order Protection enabled, adding product to cart...'); 10315 await window.OrderProtection.controller.addProtection(); 10316 console.log('[OP V2] OP product added'); 10317 } else { 10318 console.log('[OP V2] Order Protection disabled, removing OP product...'); 10319 await window.OrderProtection.controller.removeProtection(); 10320 console.log('[OP V2] OP product removed'); 10321 } 10322 } catch (err) { 10323 console.error('[OP V2] Error updating OP product:', err); 10324 } finally { 10325 window.location.href = '/checkout'; 10326 } 10327 }); 10328 </script>
10328 10329
10329<script> 10330 document.addEventListener('click', async function (event) { 10331 // Use a class or ID that's stable and reasonable 10332 const button = event.target.closest('button[type="submit"][name="checkout"]'); 10333 if (!button) return; 10334 10335 event.preventDefault(); 10336 10337 try { 10338 if (window.OrderProtection?.controller?.enabled === true) { 10339 console.log('[OP V2] Order Protection enabled, adding product to cart...'); 10340 await window.OrderProtection.controller.addProtection(); 10341 console.log('[OP V2] OP product added'); 10342 } else { 10343 console.log('[OP V2] Order Protection disabled, removing OP product...'); 10344 await window.OrderProtection.controller.removeProtection(); 10345 console.log('[OP V2] OP product removed'); 10346 } 10347 } catch (err) { 10348 console.error('[OP V2] Error updating OP product:', err); 10349 } finally { 10350 window.location.href = '/checkout'; 10351 } 10352 }); 10353 </script>
10353 10354 10355
10355<script> 10356 (() => { 10357 const SUBTOTAL_SELECTORS = [ 10358 'span.ml-1', 10359 '.text-lg', 10360 '.cart-subtotal span', 10361 '.summary-subtotal span', 10362 '.flex.justify-between span:not([class])' 10363 ]; 10364 const OP_HANDLE = 'order-protection'; 10365 let OP_VARIANT_IDS = []; 10366 10367 const getWidgetPrice = () => { 10368 const el = document.querySelector('order-protection')?.shadowRoot 10369 ?.querySelector('ui-price[type="variant"]')?.shadowRoot 10370 ?.querySelector('span'); 10371 return el ? parseFloat(el.textContent.replace(/[^\d.]/g, '')) || 0 : 0; 10372 }; 10373 10374 const fetchOPVariants = async () => { 10375 if (OP_VARIANT_IDS.length) return; 10376 try { 10377 const res = await fetch(`/products/${OP_HANDLE}.js`); 10378 if (res.ok) { 10379 const data = await res.json(); 10380 OP_VARIANT_IDS = data.variants.map(v => v.id); 10381 } 10382 } catch (e) { 10383 console.warn('Failed to fetch OP variants:', e); 10384 } 10385 }; 10386 10387 const fetchCart = async () => { 10388 try { 10389 const res = await fetch('/cart.js'); 10390 return res.ok ? await res.json() : null; 10391 } catch { 10392 return null; 10393 } 10394 }; 10395 10396 const shouldSkipElement = el => { 10397 const classList = el.classList; 10398 return ( 10399 el.closest('.bundle-price-text') || 10400 el.closest('.bundle-compare-price') || 10401 el.closest('.product-card') || 10402 el.closest('.product-item') || 10403 el.closest('[data-display-price]') || 10404 el.closest('[data-compare-price]') || 10405 el.closest('[v-cloak]') || 10406 classList.contains('bundle-price-text') || 10407 classList.contains('bundle-compare-price') || 10408 classList.contains('lgComparePrice') 10409 ); 10410 }; 10411 10412 const updateSubtotalDisplay = async () => { 10413 await fetchOPVariants(); 10414 const cart = await fetchCart(); 10415 if (!cart) return; 10416 10417 const widgetEnabled = window.OrderProtection?.controller?.enabled ?? false; 10418 const widgetPrice = getWidgetPrice(); 10419 const opItem = cart.items.find(i => OP_VARIANT_IDS.includes(i.variant_id)); 10420 const opLinePrice = opItem ? opItem.line_price : 0; 10421 10422 let subtotal = cart.items.reduce((sum, i) => sum + i.line_price, 0); 10423 10424 if (opItem && !widgetEnabled) { 10425 subtotal -= opLinePrice; 10426 } else if (!opItem && widgetEnabled && widgetPrice > 0) { 10427 subtotal += Math.round(widgetPrice * 100); 10428 } 10429 10430 const formatted = (Shopify.formatMoney || (c => `$${(c / 100).toFixed(2)}`))(subtotal, Shopify.money_format); 10431 10432 SUBTOTAL_SELECTORS.forEach(selector => { 10433 document.querySelectorAll(selector).forEach(el => { 10434 const rawText = el.textContent.trim().replace(/\s+/g, ''); 10435 const isPrice = /\$\d/.test(rawText); 10436 if (isPrice && !shouldSkipElement(el)) { 10437 el.textContent = formatted; 10438 } 10439 }); 10440 }); 10441 }; 10442 10443 const watchWidgetPrice = () => { 10444 const span = document.querySelector('order-protection')?.shadowRoot 10445 ?.querySelector('ui-price[type="variant"]')?.shadowRoot?.querySelector('span'); 10446 if (span) { 10447 new MutationObserver(updateSubtotalDisplay).observe(span, { 10448 characterData: true, childList: true, subtree: true 10449 }); 10450 } 10451 }; 10452 10453 const attachToggleListeners = () => { 10454 const switchEl = document.querySelector('order-protection')?.shadowRoot?.querySelector('ui-switch'); 10455 if (!switchEl) return; 10456 switchEl.addEventListener('click', () => { 10457 setTimeout(() => updateSubtotalDisplay(), 200); 10458 }); 10459 }; 10460 10461 const init = setInterval(() => { 10462 if (window.OrderProtection?.controller && customElements.get('order-protection')) { 10463 clearInterval(init); 10464 updateSubtotalDisplay(); 10465 attachToggleListeners(); 10466 watchWidgetPrice(); 10467 setInterval(updateSubtotalDisplay, 3000); // sync regularly 10468 } 10469 }, 400); 10470 })(); 10471 </script>
10471 10472
10472<script src="https://cdn.orderprotection.com/cart-widget/dorai-home/widget.js"></script>
10472 10473 <style> </style> 10474<div id="shopify-block-AbmR4ZVhWZXJvS2NJQ__2786716548061469553" class="shopify-block shopify-app-block"> 10475
10476<script> 10477</script>
10477 10478 10479 </div><div id="shopify-block-AbHdwMnZWWDI2eGg1d__12331707899451543273" class="shopify-block shopify-app-block"><div style="display: none;" hidden> 10480 Powerx - Function creator (Fixed) 10481</div> 10482
10483<script> 10484// Global state management to prevent race conditions 10485let isUpdating = false; 10486let updateQueue = []; 10487 10488// Debounced update function to prevent multiple simultaneous requests 10489async function safeUpdateCartAttributes() { 10490 if (isUpdating) { 10491 // If already updating, queue this request 10492 return new Promise((resolve) => { 10493 updateQueue.push(resolve); 10494 }); 10495 } 10496 10497 isUpdating = true; 10498 10499 try { 10500 await updateAllCartAttributes(); 10501 10502 // Resolve any queued promises 10503 const queuedPromises = [...updateQueue]; 10504 updateQueue = []; 10505 queuedPromises.forEach(resolve => resolve()); 10506 10507 } catch (error) { 10508 console.error('Error in safeUpdateCartAttributes:', error); 10509 } finally { 10510 isUpdating = false; 10511 } 10512} 10513 10514// Check if cart is ready and accessible 10515async function isCartReady() { 10516 try { 10517 const response = await fetch('/cart.js'); 10518 return response.ok; 10519 } catch (error) { 10520 console.error('Cart not ready:', error); 10521 return false; 10522 } 10523} 10524 10525// Combined function to update all cart attributes in a single request 10526async function updateAllCartAttributes() { 10527 try { 10528 // Wait for cart to be ready 10529 if (!(await isCartReady())) { 10530 console.warn('Cart not ready, skipping update'); 10531 return; 10532 } 10533 10534 // Fetch the latest cart data 10535 const cartResponse = await fetch('/cart.js'); 10536 if (!cartResponse.ok) { 10537 console.error('Failed to fetch cart data:', cartResponse.status); 10538 return; 10539 } 10540 const cart = await cartResponse.json(); 10541 10542 // Prepare all attributes in one object 10543 const allAttributes = {}; 10544 const existingAttributes = cart.attributes || {}; 10545 10546 // 1. Update discount tracking 10547 let newPowerxDiscount = ''; 10548 if (cart.total_discount > 0) { 10549 const discountTitles = new Set(); 10550 // Collect cart-level discount titles 10551 if (cart.cart_level_discount_applications) { 10552 cart.cart_level_discount_applications.forEach(app => { 10553 if (app.title) discountTitles.add(app.title); 10554 }); 10555 } 10556 // Collect line-level discount titles 10557 if (cart.items) { 10558 cart.items.forEach(item => { 10559 if (item.line_level_discount_allocations) { 10560 item.line_level_discount_allocations.forEach(alloc => { 10561 if (alloc.discount_application && alloc.discount_application.title) { 10562 discountTitles.add(alloc.discount_application.title); 10563 } 10564 }); 10565 } 10566 }); 10567 } 10568 newPowerxDiscount = Array.from(discountTitles).map(t => t.toLowerCase()).join(','); 10569 } 10570 10571 const currentPowerxDiscount = (cart.attributes && cart.attributes._powerx_discount) || ''; 10572 if (currentPowerxDiscount !== newPowerxDiscount) { 10573 allAttributes._powerx_discount = newPowerxDiscount; 10574 } 10575 10576 // 2. Handle URL parameters and removals 10577 await addUrlParameterAttributes(allAttributes, existingAttributes); 10578 10579 // 3. Handle expired attributes 10580 await addExpiredAttributeRemovals(allAttributes, existingAttributes); 10581 10582 // Nothing changed: never POST. A no-op cart update makes themes that 10583 // listen for /cart/update re-render or reload on every page view. 10584 if (Object.keys(allAttributes).length === 0) { 10585 return true; 10586 } 10587 10588 // 4. Add timestamp alongside the real changes 10589 allAttributes._powerx_datetime = Math.floor(Date.now() / 1000); 10590 10591 // Single update request for all attributes 10592 const response = await fetch('/cart/update.js', { 10593 method: 'POST', 10594 headers: { 'Content-Type': 'application/json' }, 10595 body: JSON.stringify({ attributes: allAttributes }) 10596 }); 10597 10598 if (!response.ok) { 10599 console.error('Failed to update cart attributes:', response.status); 10600 return false;
10601 } 10602 10603 // Update localStorage only after successful cart update 10604 await updateLocalStorage(allAttributes); 10605 return true; 10606 } catch (error) { 10607 console.error('Error updating cart attributes:', error); 10608 return false; 10609 } 10610} 10611 10612// Handle URL parameter attributes 10613async function addUrlParameterAttributes(allAttributes, existingAttributes = {}) { 10614 try { 10615 // Get settings from schema 10616 const trackedParametersRaw = "powerx_attr"; 10617 const trackedParameters = trackedParametersRaw 10618 ? trackedParametersRaw.split(',').map(param => param.trim()).filter(param => param) 10619 : ['powerx_attr']; 10620 const removeParameterRaw = "powerx_rm_attr"; 10621 const removeParameter = removeParameterRaw ? removeParameterRaw.trim() : 'powerx_rm_attr'; 10622 10623 // Parse URL parameters 10624 const urlParams = new URLSearchParams(window.location.search); 10625 10626 // Collect attributes to set from URL 10627 for (const [key, value] of urlParams) { 10628 if (trackedParameters.includes(key) && existingAttributes[key] !== value) { 10629 allAttributes[key] = value; 10630 } 10631 } 10632 10633 // Collect attributes to remove manually via remove_parameter 10634 if (removeParameter) { 10635 const removeValues = urlParams.getAll(removeParameter); 10636 for (const value of removeValues) { 10637 const attrs = value.split(',').map(attr => attr.trim()).filter(attr => attr); 10638 for (const attr of attrs) { 10639 // Only remove what is actually set, otherwise every page load 10640 // would send an identical no-op cart update 10641 if (existingAttributes[attr]) { 10642 allAttributes[attr] = ''; // Empty string removes the attribute 10643 } 10644 } 10645 } 10646 } 10647 } catch (error) { 10648 console.error('Error processing URL parameters:', error); 10649 } 10650} 10651 10652// Handle expired attributes 10653async function addExpiredAttributeRemovals(allAttributes, existingAttributes = {}) { 10654 try { 10655 const expireAfterHoursRaw = 5; 10656 const expireAfterHours = expireAfterHoursRaw ? parseInt(expireAfterHoursRaw, 10) : 0; 10657 10658 if (expireAfterHours > 0) { 10659 const now = Date.now(); 10660 const attributesToRemoveExpired = []; 10661 10662 for (let i = 0; i < localStorage.length; i++) { 10663 const key = localStorage.key(i); 10664 if (key && key.startsWith('powerx_attr_')) { 10665 try { 10666 const data = JSON.parse(localStorage.getItem(key)); 10667 const attrName = key.replace('powerx_attr_', ''); 10668 const expirationTime = data.timestamp + (expireAfterHours * 60 * 60 * 1000); 10669 if (now > expirationTime) { 10670 attributesToRemoveExpired.push(attrName); 10671 } 10672 } catch (parseError) { 10673 console.warn('Invalid localStorage data for key:', key); 10674 // Remove invalid localStorage entry 10675 localStorage.removeItem(key); 10676 } 10677 } 10678 } 10679 10680 // Add expired attributes to removal list 10681 for (const attr of attributesToRemoveExpired) { 10682 if (existingAttributes[attr]) { 10683 allAttributes[attr] = ''; // Empty string removes the attribute 10684 } else { 10685 // Already gone from the cart, just drop the stale local record 10686 localStorage.removeItem(`powerx_attr_${attr}`); 10687 } 10688 } 10689 } 10690 } catch (error) { 10691 console.error('Error processing expired attributes:', error); 10692 } 10693} 10694 10695// Update localStorage after successful cart update 10696async function updateLocalStorage(updatedAttributes) { 10697 try { 10698 const trackedParametersRaw = "powerx_attr"; 10699 const trackedParameters = trackedParametersRaw 10700 ? trackedParametersRaw.split(',').map(param => param.trim()).filter(param => param) 10701 : ['powerx_attr']; 10702 10703 const now = Date.now(); 10704 10705 for (const [key, value] of Object.entries(updatedAttributes)) { 10706 if (trackedParameters.includes(key) && value && value !== '') { 10707 // Store tracked parameters with timestamp 10708 localStorage.setItem(`powerx_attr_${key}`, JSON.stringify({ 10709 value, 10710 timestamp: now 10711 })); 10712 } else if (value === '') { 10713 // Remove attributes that were set to empty string 10714 localStorage.removeItem(`powerx_attr_${key}`); 10715 } 10716 } 10717 } catch (error) { 10718 console.error('Error updating localStorage:', error); 10719 } 10720} 10721 10722// Initialize with proper timing and error handling 10723async function initializePowerxEmbed() { 10724 try { 10725 // Wait longer for cart operations to complete 10726 await new Promise(resolve => setTimeout(resolve, 2000)); 10727 10728 // Check if we have any work to do 10729 const trackedParametersRaw = "powerx_attr"; 10730 const trackedParameters = trackedParametersRaw 10731 ? trackedParametersRaw.split(',').map(param => param.trim()).filter(param => param) 10732 : ['powerx_attr']; 10733 const removeParameterRaw = "powerx_rm_attr"; 10734 const removeParameter = removeParameterRaw ? removeParameterRaw.trim() : 'powerx_rm_attr'; 10735 10736 // Exit if no parameters to track and no removal parameter 10737 if (trackedParameters.length === 0 && !removeParameter) { 10738 return; 10739 } 10740 10741 // Perform the update 10742 await safeUpdateCartAttributes(); 10743 10744 } catch (error) { 10745 console.error('Error initializing PowerX embed:', error); 10746 } 10747} 10748 10749// Event listeners with debouncing 10750let cartUpdateTimeout; 10751function handleCartUpdate() { 10752 // Clear existing timeout to debounce rapid cart updates 10753 if (cartUpdateTimeout) {
10754 clearTimeout(cartUpdateTimeout); 10755 } 10756 10757 // Set a new timeout to handle the update after a brief delay 10758 cartUpdateTimeout = setTimeout(() => { 10759 safeUpdateCartAttributes(); 10760 }, 500); // 500ms delay to allow cart operations to settle 10761} 10762 10763// // Listen for cart updates with proper debouncing 10764// document.addEventListener('cart:updated', handleCartUpdate); 10765 10766// // Also listen for other common cart events 10767// document.addEventListener('cart:added', handleCartUpdate); 10768// document.addEventListener('cart:changed', handleCartUpdate); 10769 10770// Initialize the embed 10771initializePowerxEmbed(); 10772 10773</script>
10773 10774 10775</div>
10775<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
10775 10776</body> 10777</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.