1<!doctype html> 2<html class="no-js" lang="en"> 3 <head> 4 <meta name="google-site-verification" content="E72-Es3cMEb-8jJDMiwHirfPREMLUo9q3rfIXl_9x30"> 5 <meta charset="utf-8"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <meta name="viewport" content="width=device-width,initial-scale=1"> 8 <meta name="theme-color" content=""> 9 <link rel="canonical" href="https://cosori.com/products/juni-coffee-maker"><link rel="icon" type="image/png" href="//cosori.com/cdn/shop/files/Cosori_Favicon_32x32_1a606a51-1952-486a-8edb-9c0c2cf8eafb.png?crop=center&height=32&v=1755227086&width=32"><!-- Start cookieyes banner --> 10
10<script src="https://cdn-cookieyes.com/common/shopify.js"></script>
10 11
11<script 12 id="cookieyes" 13 type="text/javascript" 14 src="https://cdn-cookieyes.com/client_data/a568a306f7c0aaac82f238d5/script.js" 15 ></script>
15 16 17 <!-- CookieYes event listener: Reload page when user changes cookie settings --> 18
18<script> 19 // Track if page has fully loaded to prevent reload on initial load 20 var pageFullyLoaded = false; 21 22 window.addEventListener('load', function() { 23 // Set flag after page is fully loaded to avoid triggering reload during initialization 24 setTimeout(function() { 25 pageFullyLoaded = true; 26 }, 1000); 27 }); 28 29 document.addEventListener('cookieyes_consent_update', function(eventData) { 30 // Only reload when user actively changes settings after page has fully loaded 31 if (pageFullyLoaded) { 32 setTimeout(function() { 33 window.location.reload(); 34 }, 500); 35 } 36 }); 37 </script>
37 38 <!-- End cookieyes banner --> 39 40
40<script> 41 /* >> TriplePixel :: start*/ 42 43 /* << TriplePixel :: end*/ 44 </script>
44 45 46 47
47<script src="https://assets.adobedtm.com/ec3b2fbc4b8f/98a5010d4527/launch-463ef11aeedc.min.js" async></script>
47 48 49 <!-- insider --> 50 51 <!-- insider --><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin><link rel="preconnect" href="https://static.klaviyo.com" crossorigin> 52 <link rel="preconnect" href="https://a.klaviyo.com" crossorigin> 53 <link rel="dns-prefetch" href="https://static-tracking.klaviyo.com"> 54
54<script async src="https://static.klaviyo.com/onsite/js/klaviyo.js?company_id=SvTWYw" fetchpriority="high"></script>
54 55
55<script async src="https://a.klaviyo.com/media/js/onsite/onsite.js" fetchpriority="high"></script>
55 56
56<script> 57 var klaviyo = klaviyo || []; 58 klaviyo.init({ account: "SvTWYw", platform: "shopify", exclude_on_tags: 'retailer' }); 59 </script>
59 60 61 <title> 62 COSORI Juni Automatic Pour-Over Coffee Maker (SCA Certified)�</title> 63 64 65 <meta name="description" content="Brew barista-quality coffee at home with the COSORI Juni. Featuring an automated swirl motion, precise bloom cycle, and SCA-certified temperature control."> 66 67 68 <!-- Google Tag Manager --> 69 <!-- 70
70<script>
vendor: 485 bytes, lines 70-80
70 71 (function (w, d, s, l, i) { 72 w[l] = w[l] || []; 73 w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); 74 var f = d.getElementsByTagName(s)[0], 75 j = d.createElement(s), 76 dl = l != 'dataLayer' ? '&l=' + l : ''; 77 j.async = true; 78 j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; 79 f.parentNode.insertBefore(j, f); 80 })(window, document, 'script', 'dataLayer', '
80GTM-PWGHF7VP
vendor: 11 bytes, lines 80-81
80'); 81
81</script>
81 82 --> 83 <!-- End Google Tag Manager --> 84 85 86 87<meta property="og:site_name" content="COSORI"> 88<meta property="og:url" content="https://cosori.com/products/juni-coffee-maker"> 89<meta property="og:title" content="COSORI Juni Automatic Pour-Over Coffee Maker (SCA Certified)"> 90<meta property="og:type" content="product"> 91<meta property="og:description" content="Brew barista-quality coffee at home with the COSORI Juni. Featuring an automated swirl motion, precise bloom cycle, and SCA-certified temperature control."><meta property="og:image" content="http://cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666"> 92 <meta property="og:image:secure_url" content="https://cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666"> 93 <meta property="og:image:width" content="1344"> 94 <meta property="og:image:height" content="1197"> 95 <meta name="twitter:image" content="https://cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666"><meta property="og:price:amount" content="299.99"> 96 <meta property="og:price:currency" content="USD"><meta name="twitter:card" content="summary_large_image"> 97<meta name="twitter:title" content="COSORI Juni Automatic Pour-Over Coffee Maker (SCA Certified)"> 98<meta name="twitter:description" content="Brew barista-quality coffee at home with the COSORI Juni. Featuring an automated swirl motion, precise bloom cycle, and SCA-certified temperature control."> 99 100 <link 101 rel="preload" 102 as="image" 103 href="//cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=900" 104 imagesrcset="//cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=450 450w,//cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=768 768w,//cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=900 900w 105 " 106 imagesizes="(min-width: 1024px) 640px, 100vw" 107 fetchpriority="high" 108 > 109 110 <!-- itg datalayer --> 111 112
112<script type="text/javascript"> 113 window.dataLayer = window.dataLayer || []; 114 115 116 window.dataLayer.push({ 117 'event': 'criteo_product', 118 'page_name': 'product', 119 'page_url': '/products/juni-coffee-maker', 120 'page_type': 'Product Detail', 121 'page_category': 'Pour Over Coffee Makers', 122 123 'user_logged_in':false', 124 'new_customer': true, 125 126 'user_type': 'User', 127 'user_email_plain_text': '', 128 'user_email_md5': 'd41d8cd98f00b204e9800998ecf8427e', 129 'user_email_sha256': 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', 130 'store_id': 'cosori', 131 'zipcode': '', 132 'customer_id':'', 133 'criteo.ecommerce': { 134 'items': [ 135 { 136 'item_id': '10566370951477', 137 'price' : '29999', 138 'availability' : '2389' 139 } 140 ] 141 } 142 }); 143 144 145 </script>
145 146 147 <!-- itg datalayer --> 148 149 <link href="//cosori.com/cdn/shop/t/166/assets/tailwind.css?v=100936580253917151551789674181" rel="stylesheet" type="text/css" media="all" /> 150 151 <noscript><link rel="stylesheet" href="//cosori.com/cdn/shop/t/166/assets/custom.css?v=99738332422430880251789674181"></noscript> 152 153
153<script src="//cosori.com/cdn/shop/t/166/assets/constants.js?v=58251544750838685771789674181" defer="defer"></script>
153 154
154<script src="//cosori.com/cdn/shop/t/166/assets/pubsub.js?v=158357773527763999511789674181" defer="defer"></script>
154 155
155<script src="//cosori.com/cdn/shop/t/166/assets/global.js?v=115439233813835548131789674181" defer="defer"></script>
155 156
156<script src="//cosori.com/cdn/shop/t/166/assets/jquery.js?v=158417595810649192771789674181" defer="defer"></script>
156 157
157<script src="//cosori.com/cdn/shop/t/166/assets/print.js?v=159940789733989121331789674181" defer="defer"></script>
157 158
158<script src="//cosori.com/cdn/shop/t/166/assets/fancybox.js?v=102984942719613846721789674181" defer="defer"></script>
158 159
159<script src="//cosori.com/cdn/shop/t/166/assets/swiper.js?v=5799996748331221021789674181" defer="defer"></script>
159 160
160<script src="//cosori.com/cdn/shop/t/166/assets/jquery.lazy.min.js?v=180555983266381744341789674181" defer="defer"></script>
160 161
161<script src="//cosori.com/cdn/shop/t/166/assets/jquery.lazy.av.min.js?v=175980027530204625271789674181" defer="defer"></script>
161 162
162<script src="//cosori.com/cdn/shop/t/166/assets/sharer.js?v=51459755892223852051789674181" defer="defer"></script>
162 163
163<script src="//cosori.com/cdn/shop/t/166/assets/custom.js?v=120553851862571758181789674181" defer="defer"></script>
163 164
164<script src="//cosori.com/cdn/shop/t/166/assets/dtc.js?v=88789407433823823401789674181" defer="defer"></script>
164 165
165<script src="//cosori.com/cdn/shop/t/166/assets/v-gtm-events.js?v=33713644719317089131789886107" defer="defer"></script>
165�
165<script type="application/ld+json"> 166 { 167 "@context": "https://schema.org", 168 "@type": "Product", 169 "productID": 10566370951477, 170 "name": "Juni⢠The Automatic Pour-Over Coffee Machine", 171 "description": "Brew barista-level, pour-over coffee without the guesswork. Juni is designed for all experience levels, from those new to pour-over with quick brew functionality and AI recipe generation, or expert-level brewers who want complete control of every parameter. With built-in taste intelligence, Juni adapts to your taste with each pour to achieve your perfect cup consistently.", 172 "category": "", 173 "url": "https:\/\/cosori.com\/products\/juni-coffee-maker", 174 "sku": "KAAPCMCSSUS0001Y","weight": { 175 "@type": "QuantitativeValue", 176 "unitCode": "lb", 177 "value": 0.0 178 },"brand": { 179 "@type": "Brand", 180 "name": "COSORI" 181 },"image": { 182 "@type": "ImageObject", 183 "url": "https://cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=1920", 184 "width": "1920", 185 "height": 1710 186 },"offers": { 187 "@type": "Offer", 188 "name": "Juni⢠The Automatic Pour-Over Coffee Machine", 189 "availability":"https://schema.org/InStock", 190 "price": 299.99, 191 "priceCurrency": "USD", 192 "validFrom": "2026-09-08", 193 "priceValidUntil": "2026-12-31","sku": "KAAPCMCSSUS0001Y","url": "https:\/\/cosori.com\/products\/juni-coffee-maker?variant=53460911227189", 194 "seller": { 195 "@type": "Organization", 196 "name": "COSORI" 197 }, 198 "shippingDetails": { 199 "@type": "OfferShippingDetails", 200 "shippingRate": { 201 "@type": "MonetaryAmount", 202 "value": "0", 203 "currency": "USD" 204 }, 205 "shippingDestination": { 206 "@type": "DefinedRegion", 207 "addressCountry": "US" 208 }, 209 "deliveryTime": { 210 "@type": "ShippingDeliveryTime", 211 "handlingTime": { 212 "@type": "QuantitativeValue", 213 "minValue": 0, 214 "maxValue": 1, 215 "unitCode": "d" 216 }, 217 "transitTime": { 218 "@type": "QuantitativeValue", 219 "minValue": 1, 220 "maxValue": 5, 221 "unitCode": "d" 222 } 223 } 224 }, 225 "hasMerchantReturnPolicy": { 226 "@type": "MerchantReturnPolicy", 227 "applicableCountry": "US", 228 "returnPolicyCountry": "US", 229 "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", 230 "merchantReturnDays": 30, 231 "returnMethod": "https://schema.org/ReturnByMail", 232 "returnFees": "https://schema.org/FreeReturn" 233 } 234 } 235 } 236 </script>
236<script type="application/ld+json"> 237 { 238 "@context": "https://schema.org", 239 "@type": "BreadcrumbList", 240 "itemListElement": [{ 241 "@type": "ListItem", 242 "position": 1, 243 "name": "Home", 244 "item": "https:\/\/cosori.com" 245 },{ 246 "@type": "ListItem", 247 "position": 2, 248 "name": "Juni⢠The Automatic Pour-Over Coffee Machine" 249 }] 250 } 251 </script>
251<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
251<meta name="facebook-domain-verification" content="gby509ktb45uy0slcrc9u3mn7lt7k6"> 252<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/74265723189/digital_wallets/dialog"> 253<meta id="in-context-paypal-metadata" data-shop-id="74265723189" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 254<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="buy" href="/cart/53460911227189:1?ucp/version=2026-08-25&context/payment/0/handler=dev.shopify.shop_pay" payment="dev.shopify.shop_pay com.google.pay dev.shopify.card"><link rel="alternate" type="application/json+oembed" href="https://cosori.com/products/juni-coffee-maker.oembed">
255<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=7151583541"></script>
255 256<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
257<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=7151583541&shop_id=74265723189" crossorigin="anonymous"></script>
vendor: 1 bytes, line 257
257
258<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":74265723189,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/74265723189","merchantName":"COSORI","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"COSORI","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 258
258
259<script id="shopify-features" type="application/json">{"accessToken":"91c6a17a7aa75bdcc543b074d063db88","betas":["rich-media-storefront-analytics"],"domain":"cosori.com","predictiveSearch":true,"shopId":74265723189,"locale":"en"}</script>
vendor: 1 bytes, line 259
259
260<script>var Shopify = Shopify || {}; 261Shopify.shop = "cosori-2023.myshopify.com"; 262Shopify.locale = "en"; 263Shopify.currency = {"active":"USD","rate":"1.0"}; 264Shopify.country = "US"; 265Shopify.theme = {"name":"CNT-Cosori DTC-V20260908 + v6.17 Juni","id":191325929781,"schema_name":"Cosori","schema_version":"13.0.1","theme_store_id":null,"role":"main"}; 266Shopify.theme.handle = "null"; 267Shopify.theme.style = {"id":null,"handle":null}; 268Shopify.cdnHost = "cosori.com/cdn"; 269Shopify.routes = Shopify.routes || {}; 270Shopify.routes.root = "/"; 271Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 272Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 273Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 274Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 274
274
275<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 275
275
276<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 276
276
277<script> 278 window.ShopifyPay = window.ShopifyPay || {}; 279 window.ShopifyPay.apiHost = "shop.app\/pay"; 280 window.ShopifyPay.redirectState = null; 281</script>
vendor: 1 bytes, line 281
281
282<script> 283 window.Shopify = window.Shopify || {}; 284 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 285 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 286 window.Shopify.SignInWithShop.eligible = false; 287</script>
vendor: 1 bytes, line 287
287
288<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
vendor: 1 bytes, line 288
288
289<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 289
289
290<script type="module"> 291 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 292 293 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 294 295</script>
vendor: 1 bytes, line 295
295
296<script> 297 window.Shopify = window.Shopify || {}; 298 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 299 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"]}; 300</script>
vendor: 1 bytes, line 300
300
301<script>(function() { 302 var isLoaded = false; 303 function asyncLoad() { 304 if (isLoaded) return; 305 isLoaded = true; 306 var urls = ["https:\/\/cdn.verifypass.com\/seller\/launcher.js?shop=cosori-2023.myshopify.com","https:\/\/static.klaviyo.com\/onsite\/js\/klaviyo.js?company_id=SvTWYw\u0026shop=cosori-2023.myshopify.com","https:\/\/d1639lhkj5l89m.cloudfront.net\/js\/storefront\/uppromote.js?shop=cosori-2023.myshopify.com","https:\/\/d38xvr37kwwhcm.cloudfront.net\/js\/grin-sdk.js?shop=cosori-2023.myshopify.com","\/\/cdn.shopify.com\/proxy\/75228c76e8c015e2d0510557a5d88f80a9e3da243d74abc871072636ee4faf79\/apps.bazaarvoice.com\/deployments\/etekcity\/cosori\/production\/en_US\/bv.js?shop=cosori-2023.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","https:\/\/spfy-pxl.archive-digger.com\/assets\/script_tag.js?shopId=cosori-2023.myshopify.com\u0026taboolaId=1956670\u0026espd=true\u0026ecav=true\u0026eh=true\u0026ess=true\u0026ep=true\u0026eatc=true\u0026eprv=true\u0026ecv=true\u0026epv=true\u0026esc=true\u0026shop=cosori-2023.myshopify.com"]; 307 for (var i = 0; i < urls.length; i++) { 308 var s = document.createElement('script'); 309 s.type = 'text/javascript'; 310 s.async = true; 311 s.src = urls[i]; 312 var x = document.getElementsByTagName('script')[0]; 313 x.parentNode.insertBefore(s, x); 314 } 315 }; 316 if(window.attachEvent) { 317 window.attachEvent('onload', asyncLoad); 318 } else { 319 window.addEventListener('load', asyncLoad, false); 320 } 321})();</script>
vendor: 1 bytes, line 321
321
322<script id="__st">var __st={"a":74265723189,"offset":-25200,"reqid":"bfcd4b41-3f27-4398-8c93-08c38f54e6c9-1790380475","pageurl":"cosori.com\/products\/juni-coffee-maker","u":"97c4ccb44fc7","p":"product","rtyp":"product","rid":10566370951477};</script>
vendor: 1 bytes, line 322
322
323<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 323
323
324<script id="form-persister">!function(){'use strict';const t='contact',e='new_comment',n=[[t,t],['blogs',e],['comments',e],[t,'customer']],o='password',r='form_key',c=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',o],s=()=>{try{return window.sessionStorage}catch{return}},i='__shopify_v',u=t=>t.elements[r],a=function(){const t=[...n].map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(',');var e;return e=t,()=>e?[...document.querySelectorAll(e)].map((t=>t.form)):[]}();function m(t){const e=u(t);a().includes(t)&&(!e||!e.value)&&function(t){try{if(!s())return;!function(t){const e=s();if(!e)return;const n=u(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){u(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:r})),t.elements[r].value=e}(t,e),function(t,e){const n=s();if(!n)return;const r=[...t.querySelectorAll(`input[type='${o}']`)].map((({name:t})=>t)),u=[...c,...r],a={};for(const[o,c]of new FormData(t).entries())u.includes(o)||(a[o]=c);n.setItem(e,JSON.stringify({[i]:1,action:t.action,data:a}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(t)}const f=t=>{if('true'===t.dataset.persistBound)return;const e=function(t,e){const n=function(t){return'function'==typeof t.submit?t.submit:HTMLFormElement.prototype.submit}(t).bind(t);return function(){let t;return()=>{t||(t=!0,(()=>{try{e(),n()}catch(t){(t=>{console.error('form submit failed',t)})(t)}})(),setTimeout((()=>t=!1),250))}}()}(t,(()=>{m(t)}));!function(t,e){if('function'==typeof t.submit&&'function'==typeof e)try{t.submit=e}catch{}}(t,e),t.addEventListener('submit',(t=>{t.preventDefault(),e()})),t.dataset.persistBound='true'};!function(){function t(t){const e=(t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form})(t);e&&m(e)}document.addEventListener('submit',t),document.addEventListener('DOMContentLoaded',(()=>{const e=a();for(const t of e)f(t);var n;n=document.body,new window.MutationObserver((t=>{for(const e of t)if('childList'===e.type&&e.addedNodes.length)for(const t of e.addedNodes)1===t.nodeType&&'FORM'===t.tagName&&a().includes(t)&&f(t)})).observe(n,{childList:!0,subtree:!0,attributes:!1}),document.removeEventListener('submit',t)}))}()}();</script>
vendor: 1 bytes, line 324
324
325<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//cosori.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 325
325
326<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 = "//cosori.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>
326<script crossorigin="anonymous" defer="defer" src="//cosori.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 326
326
327<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 327
327
328<script> 329 window.Shopify = window.Shopify || {}; 330 window.Shopify.MCP = window.Shopify.MCP || {}; 331 window.Shopify.MCP.enabled = true; 332 window.Shopify.MCP.shop = "cosori-2023.myshopify.com"; 333 window.Shopify.MCP.mcpEndpoint = "https:\/\/cosori.com\/api\/mcp"; 334 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"]}}]; 335</script>
vendor: 1 bytes, line 335
335
336<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("\/\/cosori.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 337</script>
vendor: 1 bytes, line 337
337
338<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://cosori.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 339</script>
vendor: 1 bytes, line 339
339
340<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 341 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); 342</script>
vendor: 1 bytes, line 342
342
343<script> 344 function portableWalletsCleanup(e){e&&e.src&&console.error("Failed to load portable wallets script "+e.src);var t=document.querySelectorAll("shopify-accelerated-checkout .shopify-payment-button__skeleton, shopify-accelerated-checkout-cart .wallet-cart-button__skeleton"),e=document.getElementById("shopify-buyer-consent");for(let e=0;e<t.length;e++)t[e].remove();e&&e.remove()}function portableWalletsNotLoadedAsModule(e){e instanceof ErrorEvent&&"string"==typeof e.message&&e.message.includes("import.meta")&&"string"==typeof e.filename&&e.filename.includes("portable-wallets")&&(window.removeEventListener("error",portableWalletsNotLoadedAsModule),window.Shopify.PaymentButton.failedToLoad=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",window.Shopify.PaymentButton.init):window.Shopify.PaymentButton.init())}window.addEventListener("error",portableWalletsNotLoadedAsModule); 345</script>
345 346
347<script type="module" src="https://cosori.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js" onError="portableWalletsCleanup(this)" crossorigin="anonymous"></script>
vendor: 1 bytes, line 347
347
348<script nomodule> 349 document.addEventListener("DOMContentLoaded", portableWalletsCleanup); 350</script>
350 351 352<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://cosori.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 353<style id="shopify-accelerated-checkout-cart"> 354 #shopify-buyer-consent { 355 margin-top: 1em; 356 display: inline-block; 357 width: 100%; 358} 359 360#shopify-buyer-consent.hidden { 361 display: none; 362} 363 364#shopify-subscription-policy-button { 365 background: none; 366 border: none; 367 padding: 0; 368 text-decoration: underline; 369 font-size: inherit; 370 cursor: pointer; 371} 372 373#shopify-subscription-policy-button::before { 374 box-shadow: none; 375} 376 377 </style> 378<link rel="stylesheet" media="screen" href="//cosori.com/cdn/shop/t/166/compiled_assets/styles.css?v=153339572453262311241790157288">
379<script id="sections-script" data-sections="dtc-header-top-bar,dtc-header,dtc-footer" defer="defer" src="//cosori.com/cdn/shop/t/166/compiled_assets/scripts.js?v=64853527579109077251789674181"></script>
vendor: 1 bytes, line 379
379
380<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
380� 381 382 <style data-shopify> 383 @font-face { 384 font-family: Poppins; 385 font-weight: 400; 386 font-style: normal; 387 font-display: swap; 388 src: url("//cosori.com/cdn/fonts/poppins/poppins_n4.0ba78fa5af9b0e1a374041b3ceaadf0a43b41362.woff2") format("woff2"), 389 url("//cosori.com/cdn/fonts/poppins/poppins_n4.214741a72ff2596839fc9760ee7a770386cf16ca.woff") format("woff"); 390} 391 392 @font-face { 393 font-family: Poppins; 394 font-weight: 700; 395 font-style: normal; 396 font-display: swap; 397 src: url("//cosori.com/cdn/fonts/poppins/poppins_n7.56758dcf284489feb014a026f3727f2f20a54626.woff2") format("woff2"), 398 url("//cosori.com/cdn/fonts/poppins/poppins_n7.f34f55d9b3d3205d2cd6f64955ff4b36f0cfd8da.woff") format("woff"); 399} 400 401 @font-face { 402 font-family: Poppins; 403 font-weight: 400; 404 font-style: italic; 405 font-display: swap; 406 src: url("//cosori.com/cdn/fonts/poppins/poppins_i4.846ad1e22474f856bd6b81ba4585a60799a9f5d2.woff2") format("woff2"), 407 url("//cosori.com/cdn/fonts/poppins/poppins_i4.56b43284e8b52fc64c1fd271f289a39e8477e9ec.woff") format("woff"); 408} 409 410 @font-face { 411 font-family: Poppins; 412 font-weight: 700; 413 font-style: italic; 414 font-display: swap; 415 src: url("//cosori.com/cdn/fonts/poppins/poppins_i7.42fd71da11e9d101e1e6c7932199f925f9eea42d.woff2") format("woff2"), 416 url("//cosori.com/cdn/fonts/poppins/poppins_i7.ec8499dbd7616004e21155106d13837fff4cf556.woff") format("woff"); 417} 418 419 @font-face { 420 font-family: Poppins; 421 font-weight: 400; 422 font-style: normal; 423 font-display: swap; 424 src: url("//cosori.com/cdn/fonts/poppins/poppins_n4.0ba78fa5af9b0e1a374041b3ceaadf0a43b41362.woff2") format("woff2"), 425 url("//cosori.com/cdn/fonts/poppins/poppins_n4.214741a72ff2596839fc9760ee7a770386cf16ca.woff") format("woff"); 426} 427 428 429 430 :root, 431 .color-scheme-1 { 432 --color-background: 255,255,255; 433 434 --gradient-background: #ffffff; 435 436 437 438 439 --color-foreground: 51,51,51; 440 --color-background-contrast: 191,191,191; 441 --color-shadow: 255,255,255; 442 --color-button: 251,145,74; 443 --color-button-text: 51,51,51; 444 --color-button-label-1: 255,255,255; 445 --color-button-background-hover: 253,189,146; 446 --color-secondary-button: 251,145,74; 447 --color-secondary-button-text: 255,255,255; 448 --color-link: 251,145,74; 449 --color-badge-foreground: 51,51,51; 450 --color-badge-background: 255,255,255; 451 --color-badge-border: 51,51,51; 452 --payment-terms-background-color: rgb(255 255 255); 453 } 454 455 456 .color-scheme-2 { 457 --color-background: 243,243,243; 458 459 --gradient-background: #f3f3f3; 460 461 462 463 464 --color-foreground: 37,28,29; 465 --color-background-contrast: 179,179,179; 466 --color-shadow: 37,28,29; 467 --color-button: 37,28,29; 468 --color-button-text: 37,28,29; 469 --color-button-label-1: 255,255,255; 470 --color-button-background-hover: 253,189,146; 471 --color-secondary-button: 37,28,29; 472 --color-secondary-button-text: 243,243,243; 473 --color-link: 37,28,29; 474 --color-badge-foreground: 37,28,29; 475 --color-badge-background: 243,243,243; 476 --color-badge-border: 37,28,29; 477 --payment-terms-background-color: rgb(243 243 243); 478 } 479 480 481 .color-scheme-3 { 482 --color-background: 51,51,51; 483 484 --gradient-background: #333333; 485 486 487 488 489 --color-foreground: 255,255,255; 490 --color-background-contrast: 64,64,64; 491 --color-shadow: 18,18,18; 492 --color-button: 37,28,29; 493 --color-button-text: 255,255,255; 494 --color-button-label-1: 255,255,255; 495 --color-button-background-hover: 253,189,146; 496 --color-secondary-button: 37,28,29; 497 --color-secondary-button-text: 255,255,255; 498 --color-link: 37,28,29; 499 --color-badge-foreground: 255,255,255; 500 --color-badge-background: 51,51,51; 501 --color-badge-border: 255,255,255; 502 --payment-terms-background-color: rgb(51 51 51); 503 } 504 505 506 .color-scheme-4 { 507 --color-background: 251,145,74; 508 509 --gradient-background: #fb914a; 510 511 512 513 514 --color-foreground: 255,255,255; 515 --color-background-contrast: 193,80,4; 516 --color-shadow: 251,145,74; 517 --color-button: 255,255,255; 518 --color-button-text: 255,255,255; 519 --color-button-label-1: 251,145,74; 520 --color-button-background-hover: 253,211,183; 521 --color-secondary-button: 255,255,255; 522 --color-secondary-button-text: 251,145,74; 523 --color-link: 255,255,255; 524 --color-badge-foreground: 255,255,255; 525 --color-badge-background: 251,145,74; 526 --color-badge-border: 255,255,255; 527 --payment-terms-background-color: rgb(251 145 74); 528 } 529 530 531 .color-scheme-5 { 532 --color-background: 0,0,0; 533 534 --gradient-background: rgba(0,0,0,0); 535 536 537 538 539 --color-foreground: 255,255,255; 540 --color-background-contrast: 128,128,128; 541 --color-shadow: 18,18,18; 542 --color-button: 251,145,74; 543 --color-button-text: 255,255,255; 544 --color-button-label-1: 255,255,255; 545 --color-button-background-hover: 253,189,146; 546 --color-secondary-button: 255,255,255; 547 --color-secondary-button-text: 251,145,74; 548 --color-link: 255,255,255; 549 --color-badge-foreground: 255,255,255; 550 --color-badge-background: 0,0,0; 551 --color-badge-border: 255,255,255; 552 --payment-terms-background-color: rgb(0 0 0); 553 } 554 555 556 .color-scheme-5afcc7fa-012b-4fe4-9b94-6653d8f6baad { 557 --color-background: 237,237,237; 558 559 --gradient-background: #ededed; 560 561 562 563 564 --color-foreground: 255,255,255; 565 --color-background-contrast: 173,173,173; 566 --color-shadow: 251,145,74; 567 --color-button: 251,145,74; 568 --color-button-text: 255,255,255; 569 --color-button-label-1: 255,255,255; 570 --color-button-background-hover: 253,189,146; 571 --color-secondary-button: 255,255,255; 572 --color-secondary-button-text: 251,145,74; 573 --color-link: 255,255,255; 574 --color-badge-foreground: 255,255,255; 575 --color-badge-background: 237,237,237; 576 --color-badge-border: 255,255,255; 577 --payment-terms-background-color: rgb(237 237 237); 578 } 579 580 581 .color-scheme-44522092-a5ad-4c1c-82f6-7d21415874d4 { 582 --color-background: 255,255,255; 583 584 --gradient-background: #ffffff; 585 586 587 588 589 --color-foreground: 0,0,0; 590 --color-background-contrast: 191,191,191; 591 --color-shadow: 255,255,255; 592 --color-button: 251,145,74; 593 --color-button-text: 0,0,0; 594 --color-button-label-1: 255,255,255; 595 --color-button-background-hover: 253,189,146; 596 --color-secondary-button: 255,255,255; 597 --color-secondary-button-text: 251,145,74; 598 --color-link: 255,255,255; 599 --color-badge-foreground: 0,0,0; 600 --color-badge-background: 255,255,255; 601 --color-badge-border: 0,0,0; 602 --payment-terms-background-color: rgb(255 255 255); 603 } 604 605 606 .color-scheme-caf22b4f-f134-44c2-ad7c-98a87ecf3061 { 607 --color-background: 51,51,51; 608 609 --gradient-background: #333333; 610 611 612 613 614 --color-foreground: 255,255,255; 615 --color-background-contrast: 64,64,64; 616 --color-shadow: 255,255,255; 617 --color-button: 251,145,74; 618 --color-button-text: 255,255,255; 619 --color-button-label-1: 255,255,255; 620 --color-button-background-hover: 253,189,146; 621 --color-secondary-button: 251,145,74; 622 --color-secondary-button-text: 255,255,255; 623 --color-link: 251,145,74; 624 --color-badge-foreground: 255,255,255; 625 --color-badge-background: 51,51,51; 626 --color-badge-border: 255,255,255; 627 --payment-terms-background-color: rgb(51 51 51); 628 } 629 630 631 .color-scheme-5b83211c-75b1-4dcc-b519-38183a2b26b0 { 632 --color-background: 81,42,68; 633 634 --gradient-background: #512a44; 635 636 637 638 639 --color-foreground: 255,255,255; 640 --color-background-contrast: 98,51,82; 641 --color-shadow: 255,255,255; 642 --color-button: 251,145,74; 643 --color-button-text: 255,255,255; 644 --color-button-label-1: 255,255,255; 645 --color-button-background-hover: 253,189,146; 646 --color-secondary-button: 255,255,255; 647 --color-secondary-button-text: 251,145,74; 648 --color-link: 255,255,255; 649 --color-badge-foreground: 255,255,255; 650 --color-badge-background: 81,42,68; 651 --color-badge-border: 255,255,255; 652 --payment-terms-background-color: rgb(81 42 68); 653 } 654 655 656 .color-scheme-69270ce5-4b8d-4400-8bb5-d475d23009f1 { 657 --color-background: 255,255,255; 658 659 --gradient-background: #ffffff; 660 661 662 663 664 --color-foreground: 0,0,0; 665 --color-background-contrast: 191,191,191; 666 --color-shadow: 0,0,0; 667 --color-button: 251,145,74; 668 --color-button-text: 0,0,0; 669 --color-button-label-1: 255,255,255; 670 --color-button-background-hover: 255,255,255; 671 --color-secondary-button: 255,255,255; 672 --color-secondary-button-text: 0,0,0; 673 --color-link: 255,255,255; 674 --color-badge-foreground: 0,0,0; 675 --color-badge-background: 255,255,255; 676 --color-badge-border: 0,0,0; 677 --payment-terms-background-color: rgb(255 255 255); 678 } 679 680 681 .color-scheme-0436e63f-dc57-468e-af26-8dc05164fc7c { 682 --color-background: 51,51,51; 683 684 --gradient-background: #333333; 685 686 687 688 689 --color-foreground: 255,255,255; 690 --color-background-contrast: 64,64,64; 691 --color-shadow: 255,255,255; 692 --color-button: 251,145,74; 693 --color-button-text: 255,255,255; 694 --color-button-label-1: 255,255,255; 695 --color-button-background-hover: 253,189,146; 696 --color-secondary-button: 255,255,255; 697 --color-secondary-button-text: 251,145,74; 698 --color-link: 255,255,255; 699 --color-badge-foreground: 255,255,255; 700 --color-badge-background: 51,51,51; 701 --color-badge-border: 255,255,255; 702 --payment-terms-background-color: rgb(51 51 51); 703 } 704 705 706 .color-scheme-cb495ad1-953f-4d2e-aab1-f2174a3753be { 707 --color-background: 135,177,143; 708 709 --gradient-background: #87b18f; 710 711 712 713 714 --color-foreground: 255,255,255; 715 --color-background-contrast: 73,112,80; 716 --color-shadow: 255,255,255; 717 --color-button: 251,145,74; 718 --color-button-text: 255,255,255; 719 --color-button-label-1: 255,255,255; 720 --color-button-background-hover: 253,189,146; 721 --color-secondary-button: 255,255,255; 722 --color-secondary-button-text: 251,145,74; 723 --color-link: 255,255,255; 724 --color-badge-foreground: 255,255,255; 725 --color-badge-background: 135,177,143; 726 --color-badge-border: 255,255,255; 727 --payment-terms-background-color: rgb(135 177 143); 728 } 729 730 731 .color-scheme-de255657-0970-4ca3-b105-cdf6f7673f86 { 732 --color-background: 254,237,214; 733 734 --gradient-background: #feedd6; 735 736 737 738 739 --color-foreground: 51,51,51; 740 --color-background-contrast: 251,182,90; 741 --color-shadow: 255,255,255; 742 --color-button: 251,145,74; 743 --color-button-text: 51,51,51; 744 --color-button-label-1: 255,255,255; 745 --color-button-background-hover: 253,189,146; 746 --color-secondary-button: 255,255,255; 747 --color-secondary-button-text: 251,145,74; 748 --color-link: 255,255,255; 749 --color-badge-foreground: 51,51,51; 750 --color-badge-background: 254,237,214; 751 --color-badge-border: 51,51,51; 752 --payment-terms-background-color: rgb(254 237 214); 753 } 754 755 756 .color-scheme-e49d93dd-66f0-433a-874d-e729e1a9220c { 757 --color-background: 246,136,62; 758 759 --gradient-background: #f6883e; 760 761 762 763 764 --color-foreground: 255,255,255; 765 --color-background-contrast: 172,74,8; 766 --color-shadow: 255,255,255; 767 --color-button: 251,145,74; 768 --color-button-text: 255,255,255; 769 --color-button-label-1: 251,145,74; 770 --color-button-background-hover: 253,189,146; 771 --color-secondary-button: 255,255,255; 772 --color-secondary-button-text: 255,255,255; 773 --color-link: 255,255,255; 774 --color-badge-foreground: 255,255,255; 775 --color-badge-background: 246,136,62; 776 --color-badge-border: 255,255,255; 777 --payment-terms-background-color: rgb(246 136 62); 778 } 779 780 781 .color-scheme-6cc0fa39-1676-48c7-891d-1cc25dd0bcb2 { 782 --color-background: 246,239,227; 783 784 --gradient-background: #f6efe3; 785 786 787 788 789 --color-foreground: 86,57,77; 790 --color-background-contrast: 215,184,131; 791 --color-shadow: 255,255,255; 792 --color-button: 251,145,74; 793 --color-button-text: 86,57,77; 794 --color-button-label-1: 255,255,255; 795 --color-button-background-hover: 253,189,146; 796 --color-secondary-button: 255,255,255; 797 --color-secondary-button-text: 0,0,0; 798 --color-link: 255,255,255; 799 --color-badge-foreground: 86,57,77; 800 --color-badge-background: 246,239,227; 801 --color-badge-border: 86,57,77; 802 --payment-terms-background-color: rgb(246 239 227); 803 } 804 805 806 .color-scheme-e43fa82b-5a6e-4aa7-be41-6dfbbb5b6211 { 807 --color-background: 242,242,242; 808 809 --gradient-background: #f2f2f2; 810 811 812 813 814 --color-foreground: 37,28,29; 815 --color-background-contrast: 178,178,178; 816 --color-shadow: 255,255,255; 817 --color-button: 251,145,74; 818 --color-button-text: 37,28,29; 819 --color-button-label-1: 255,255,255; 820 --color-button-background-hover: 253,189,146; 821 --color-secondary-button: 255,255,255; 822 --color-secondary-button-text: 251,145,74; 823 --color-link: 255,255,255; 824 --color-badge-foreground: 37,28,29; 825 --color-badge-background: 242,242,242; 826 --color-badge-border: 37,28,29; 827 --payment-terms-background-color: rgb(242 242 242); 828 } 829 830 831 .color-scheme-8285e0b2-2763-48b6-83ee-64ab2666edb3 { 832 --color-background: 255,255,255; 833 834 --gradient-background: #ffffff; 835 836 837 838 839 --color-foreground: 51,51,51; 840 --color-background-contrast: 191,191,191; 841 --color-shadow: 255,255,255; 842 --color-button: 251,145,74; 843 --color-button-text: 51,51,51; 844 --color-button-label-1: 255,255,255; 845 --color-button-background-hover: 253,189,146; 846 --color-secondary-button: 255,255,255; 847 --color-secondary-button-text: 251,145,74; 848 --color-link: 255,255,255; 849 --color-badge-foreground: 51,51,51; 850 --color-badge-background: 255,255,255; 851 --color-badge-border: 51,51,51; 852 --payment-terms-background-color: rgb(255 255 255); 853 } 854 855 856 .color-scheme-1eb3c38f-a2a3-440d-aa16-f8ca16481354 { 857 --color-background: 255,141,117; 858 859 --gradient-background: #ff8d75;
860 861 862 863 864 --color-foreground: 255,255,255; 865 --color-background-contrast: 244,43,0; 866 --color-shadow: 255,255,255; 867 --color-button: 251,145,74; 868 --color-button-text: 255,255,255; 869 --color-button-label-1: 255,255,255; 870 --color-button-background-hover: 253,189,146; 871 --color-secondary-button: 255,255,255; 872 --color-secondary-button-text: 251,145,74; 873 --color-link: 255,255,255; 874 --color-badge-foreground: 255,255,255; 875 --color-badge-background: 255,141,117; 876 --color-badge-border: 255,255,255; 877 --payment-terms-background-color: rgb(255 141 117); 878 } 879 880 881 .color-scheme-af999a4f-4a51-4481-906b-6d538861e605 { 882 --color-background: 255,255,255; 883 884 --gradient-background: #ffffff; 885 886 887 888 889 --color-foreground: 61,38,58; 890 --color-background-contrast: 191,191,191; 891 --color-shadow: 255,255,255; 892 --color-button: 251,145,74; 893 --color-button-text: 61,38,58; 894 --color-button-label-1: 255,255,255; 895 --color-button-background-hover: 253,189,146; 896 --color-secondary-button: 255,255,255; 897 --color-secondary-button-text: 251,145,74; 898 --color-link: 255,255,255; 899 --color-badge-foreground: 61,38,58; 900 --color-badge-background: 255,255,255; 901 --color-badge-border: 61,38,58; 902 --payment-terms-background-color: rgb(255 255 255); 903 } 904 905 906 .color-scheme-1570f979-1963-4b9c-8bd0-10dd7eb800c7 { 907 --color-background: 0,57,66; 908 909 --gradient-background: #003942; 910 911 912 913 914 --color-foreground: 243,243,243; 915 --color-background-contrast: 0,79,92; 916 --color-shadow: 255,255,255; 917 --color-button: 251,145,74; 918 --color-button-text: 243,243,243; 919 --color-button-label-1: 255,255,255; 920 --color-button-background-hover: 253,189,146; 921 --color-secondary-button: 255,255,255; 922 --color-secondary-button-text: 251,145,74; 923 --color-link: 255,255,255; 924 --color-badge-foreground: 243,243,243; 925 --color-badge-background: 0,57,66; 926 --color-badge-border: 243,243,243; 927 --payment-terms-background-color: rgb(0 57 66); 928 } 929 930 931 body, .color-scheme-1, .color-scheme-2, .color-scheme-3, .color-scheme-4, .color-scheme-5, .color-scheme-5afcc7fa-012b-4fe4-9b94-6653d8f6baad, .color-scheme-44522092-a5ad-4c1c-82f6-7d21415874d4, .color-scheme-caf22b4f-f134-44c2-ad7c-98a87ecf3061, .color-scheme-5b83211c-75b1-4dcc-b519-38183a2b26b0, .color-scheme-69270ce5-4b8d-4400-8bb5-d475d23009f1, .color-scheme-0436e63f-dc57-468e-af26-8dc05164fc7c, .color-scheme-cb495ad1-953f-4d2e-aab1-f2174a3753be, .color-scheme-de255657-0970-4ca3-b105-cdf6f7673f86, .color-scheme-e49d93dd-66f0-433a-874d-e729e1a9220c, .color-scheme-6cc0fa39-1676-48c7-891d-1cc25dd0bcb2, .color-scheme-e43fa82b-5a6e-4aa7-be41-6dfbbb5b6211, .color-scheme-8285e0b2-2763-48b6-83ee-64ab2666edb3, .color-scheme-1eb3c38f-a2a3-440d-aa16-f8ca16481354, .color-scheme-af999a4f-4a51-4481-906b-6d538861e605, .color-scheme-1570f979-1963-4b9c-8bd0-10dd7eb800c7 { 932 color: rgba(var(--color-foreground)); 933 background-color: rgb(var(--color-background)); 934 } 935 936 :root { 937 --font-body-family: Poppins, sans-serif; 938 --font-body-style: normal; 939 --font-body-weight: 400; 940 --font-body-weight-bold: 700; 941 942 --font-heading-family: Poppins, sans-serif; 943 --font-heading-style: normal; 944 --font-heading-weight: 400; 945 946 --font-body-scale: 1.0; 947 --font-heading-scale: 1.0; 948 949 --media-padding: px; 950 --media-border-opacity: 0.05; 951 --media-border-width: 0px; 952 --media-radius: 0px; 953 --media-shadow-opacity: 0.0; 954 --media-shadow-horizontal-offset: 0px; 955 --media-shadow-vertical-offset: 4px; 956 --media-shadow-blur-radius: 5px; 957 --media-shadow-visible: 0; 958 959 --page-width: 165rem; 960 --page-width-margin: 0rem; 961 962 --product-card-image-padding: 0.0rem; 963 --product-card-corner-radius: 1.6rem; 964 --product-card-text-alignment: left; 965 --product-card-border-width: 0.0rem; 966 --product-card-border-opacity: 0.1; 967 --product-card-shadow-opacity: 0.0; 968 --product-card-shadow-visible: 0; 969 --product-card-shadow-horizontal-offset: 4.0rem; 970 --product-card-shadow-vertical-offset: 5.0rem; 971 --product-card-shadow-blur-radius: 0.5rem; 972 973 --collection-card-image-padding: 0.0rem; 974 --collection-card-corner-radius: 1.6rem; 975 --collection-card-text-alignment: left; 976 --collection-card-border-width: 0.0rem; 977 --collection-card-border-opacity: 0.1; 978 --collection-card-shadow-opacity: 0.0; 979 --collection-card-shadow-visible: 0; 980 --collection-card-shadow-horizontal-offset: 4.0rem; 981 --collection-card-shadow-vertical-offset: 4.0rem; 982 --collection-card-shadow-blur-radius: 0.5rem; 983 984 --blog-card-image-padding: 0.0rem; 985 --blog-card-corner-radius: 1.4rem; 986 --blog-card-text-alignment: center; 987 --blog-card-border-width: 0.0rem; 988 --blog-card-border-opacity: 0.1; 989 --blog-card-shadow-opacity: 0.0; 990 --blog-card-shadow-visible: 0; 991 --blog-card-shadow-horizontal-offset: 4.0rem; 992 --blog-card-shadow-vertical-offset: 0.4rem; 993 --blog-card-shadow-blur-radius: 0.5rem; 994 995 --badge-corner-radius: 4.0rem; 996 997 --popup-border-width: 1px; 998 --popup-border-opacity: 0.1; 999 --popup-corner-radius: 0px; 1000 --popup-shadow-opacity: 0.05; 1001 --popup-shadow-horizontal-offset: 0px; 1002 --popup-shadow-vertical-offset: 4px;
1003 --popup-shadow-blur-radius: 5px; 1004 1005 --drawer-border-width: 1px; 1006 --drawer-border-opacity: 0.1; 1007 --drawer-shadow-opacity: 0.0; 1008 --drawer-shadow-horizontal-offset: 0px; 1009 --drawer-shadow-vertical-offset: 4px; 1010 --drawer-shadow-blur-radius: 5px; 1011 1012 --spacing-sections-desktop: 0px; 1013 --spacing-sections-mobile: 0px; 1014 1015 --grid-desktop-vertical-spacing: 32px; 1016 --grid-desktop-horizontal-spacing: 32px; 1017 --grid-mobile-vertical-spacing: 16px; 1018 --grid-mobile-horizontal-spacing: 16px; 1019 1020 --text-boxes-border-opacity: 0.1; 1021 --text-boxes-border-width: 0px; 1022 --text-boxes-radius: 0px; 1023 --text-boxes-shadow-opacity: 0.0; 1024 --text-boxes-shadow-visible: 0; 1025 --text-boxes-shadow-horizontal-offset: 30px; 1026 --text-boxes-shadow-vertical-offset: 30px; 1027 --text-boxes-shadow-blur-radius: 5px; 1028 1029 --buttons-radius: 16px; 1030 --buttons-radius-outset: 17px; 1031 --buttons-border-width: 1px; 1032 --buttons-border-opacity: 1.0; 1033 --buttons-shadow-opacity: 0.0; 1034 --buttons-shadow-visible: 0; 1035 --buttons-shadow-horizontal-offset: 0px; 1036 --buttons-shadow-vertical-offset: 0px; 1037 --buttons-shadow-blur-radius: 0px; 1038 --buttons-border-offset: 0.3px; 1039 1040 --inputs-radius: 0px; 1041 --inputs-border-width: 1px; 1042 --inputs-border-opacity: 0.55; 1043 --inputs-shadow-opacity: 0.0; 1044 --inputs-shadow-horizontal-offset: 0px; 1045 --inputs-margin-offset: 0px; 1046 --inputs-shadow-vertical-offset: 4px; 1047 --inputs-shadow-blur-radius: 5px; 1048 --inputs-radius-outset: 0px; 1049 1050 --variant-pills-radius: 40px; 1051 --variant-pills-border-width: 1px; 1052 --variant-pills-border-opacity: 0.55; 1053 --variant-pills-shadow-opacity: 0.0; 1054 --variant-pills-shadow-horizontal-offset: 0px; 1055 --variant-pills-shadow-vertical-offset: 4px; 1056 --variant-pills-shadow-blur-radius: 5px; 1057 1058 --text-decoration-color: #FB914A; 1059 --text-decoration-thickness: 12%; 1060 --text-decoration-offset: 6px; 1061 } 1062 1063 *, 1064 *::before, 1065 *::after { 1066 box-sizing: inherit; 1067 } 1068 1069 html { 1070 box-sizing: border-box; 1071 font-size: calc(var(--font-body-scale) * 62.5%); 1072 height: 100%; 1073 } 1074 1075 body { 1076 display: grid; 1077 grid-template-rows: auto auto 1fr auto; 1078 grid-template-columns: 100%; 1079 min-height: 100%; 1080 margin: 0; 1081 font-size: 1.5rem; 1082 letter-spacing: 0.06rem; 1083 line-height: calc(1 + 0.8 / var(--font-body-scale)); 1084 } 1085 1086 @media (min-width: 768px) { 1087 body { 1088 font-size: 1.6rem; 1089 } 1090 } 1091 </style> 1092 1093 <link href="//cosori.com/cdn/shop/t/166/assets/fancybox.css?v=19278034316635137701789674181" rel="stylesheet" type="text/css" media="all" /> 1094 <link href="//cosori.com/cdn/shop/t/166/assets/base.css?v=21901230090816949721789674181" rel="stylesheet" type="text/css" media="all" /> 1095 <link href="//cosori.com/cdn/shop/t/166/assets/custom.css?v=99738332422430880251789674181" rel="stylesheet" type="text/css" media="all" /> 1096 <link href="//cosori.com/cdn/shop/t/166/assets/new-custom.css?v=25719842032135123671789674181" rel="stylesheet" type="text/css" media="all" /> 1097 <link href="//cosori.com/cdn/shop/t/166/assets/print.css?v=153298551180457880491789674181" rel="stylesheet" type="text/css" media="all" /> 1098 <link href="//cosori.com/cdn/shop/t/166/assets/style.css?v=90851600476690571901789674181" rel="stylesheet" type="text/css" media="all" /> 1099 <link href="//cosori.com/cdn/shop/t/166/assets/custom-theme.css?v=76869442431130341951789674181" rel="stylesheet" type="text/css" media="all" /> 1100 <link href="//cosori.com/cdn/shop/t/166/assets/swiper.css?v=50081196733464914861789674181" rel="stylesheet" type="text/css" media="all" /> 1101 <link href="//cosori.com/cdn/shop/t/166/assets/swiper-bundle.css?v=165197999554741900041789674181" rel="stylesheet" type="text/css" media="all" /> 1102 <link href="//cosori.com/cdn/shop/t/166/assets/reskin.css?v=134256776041969474551789674181" rel="stylesheet" type="text/css" media="all" />�<style data-shopify> 1103 :root { 1104 /* ââ 1. Brand colors ââ */ 1105 --dtc-color-text-primary: #121a25; 1106 --dtc-color-text-muted: #5a6b84; 1107 --dtc-color-text-muted-alt: #49566a; 1108 --dtc-color-text-subtle: #798496; 1109 --dtc-color-text-inverse: #ffffff; 1110 --dtc-color-border: #d8dae5; 1111 --dtc-color-border-ui: #d5d5d5; 1112 --dtc-color-accent: #fb914a; 1113 --dtc-color-accent-secondary: #512a44; 1114 --dtc-color-coffee-wheel-label: #5c463d; 1115 --dtc-color-coffee-wheel-fill: #ceb9b0; 1116 --dtc-color-coffee-wheel-fill-deep: #8f6a58; 1117 --dtc-filter-coffee-wheel-slice: drop-shadow(0 8px 20px rgba(143, 106, 88, 0.4)); 1118 --dtc-color-primary-legacy: #fb914a; 1119 --dtc-color-surface-white: #ffffff; 1120 --dtc-color-surface-warm: #f9f3ef; 1121 --dtc-color-surface-warm-soft: #f5f3ef; 1122 --dtc-color-surface-warm-mid: #f6f0eb; 1123 --dtc-color-surface-neutral: #f3f3f2; 1124 --dtc-color-surface-gray: #f7f7f7; 1125 --dtc-color-surface-panel: #f7f7f4; 1126 --dtc-color-card-from: #e0c8b8; 1127 --dtc-color-card-via: #f0e4db; 1128 --dtc-color-card-end: #f9f3ef; 1129 --dtc-color-sky-from: #b3d0f1; 1130 --dtc-color-sky-mid: #e9f5fb; 1131 --dtc-color-sky-to: #f0f4f5; 1132 --dtc-color-sky-alt-from: #bfcff3; 1133 --dtc-color-sky-alt-mid: #ecf1fb; 1134 --dtc-color-sky-alt-to: #f0f2f5; 1135 --dtc-color-soft-orange: #f8eaca; 1136 --dtc-color-cream-from: #fcd299; 1137 --dtc-color-cream-mid: #ffeed6; 1138 --dtc-color-cream-light: #fffbf5; 1139 --dtc-color-newsletter-from: #fff8ee; 1140 --dtc-color-newsletter-mid: #ffe8c4; 1141 --dtc-color-newsletter-to: #faf9f7; 1142 --dtc-color-trust-from: #fff7f2; 1143 --dtc-color-trust-mid: #ffe7d7;
1144 --dtc-color-contact-from: #d8ebff; 1145 --dtc-color-contact-to: #eff7ff; 1146 --dtc-color-cta-from: #eef4f8; 1147 --dtc-color-cta-alt-from: #edf2f7; 1148 --dtc-color-hero-dark-from: #1f2b36; 1149 --dtc-color-hero-dark-to: #5a6b84; 1150 --dtc-color-vacuum-bar-from: #e7ad86; 1151 --dtc-color-vesync-glow-from: #ffe4bc; 1152 --dtc-color-vesync-glow-to: #fff6ea; 1153 --dtc-color-vesync-badge-from: #c8d6f5; 1154 --dtc-color-badge-default-bg: #001b70; 1155 --dtc-color-badge-default-text: #ffffff; 1156 --dtc-color-highlight: #f5ca30; 1157 --dtc-color-overlay: rgba(18, 26, 37, 0.2); 1158 1159 /* ââ 2. Gradients â page / section backgroundsï¼ç®åä¸è¡ï¼å¤ææ¢è¡ï¼ââ */ 1160 --dtc-gradient-warm-cream: linear-gradient(180deg, #fcd299 0%, #ffeed6 43.27%, #f3f3f2 100%); 1161 --dtc-gradient-sky-blue: linear-gradient(180deg, #b3d0f1 0%, #e9f5fb 50%, #f0f4f5 100%); 1162 --dtc-gradient-sky-blue-reverse: linear-gradient(180deg, #f0f4f5 0%, #e9f5fb 50%, #b3d0f1 100%); 1163 --dtc-gradient-sky-blue-alt: linear-gradient(180deg, #bfcff3 0%, #ecf1fb 50%, #f0f2f5 100%); 1164 --dtc-gradient-sky-blue-to-white: linear-gradient(180deg, #b3d0f1 0%, #e9f5fb 50%, #ffffff 100%); 1165 --dtc-gradient-card-warm: linear-gradient(171.23deg, #e0c8b8 2.7552%, #f0e4db 48.388%, #ffffff 94.021%); 1166 --dtc-gradient-card-warm-vertical: linear-gradient(180deg, #e0c8b8 0%, #f0e4db 50%, #ffffff 100%); 1167 --dtc-gradient-card-warm-vertical-long: linear-gradient(180deg, #e0c8b8 0%, #f0e4db 46.643%, #ffffff 93.285%); 1168 --dtc-gradient-card-warm-tilt: linear-gradient(173.04deg, #e0c8b8 3.02%, #f0e4db 50.81%, #f9f3ef 98.6%); 1169 --dtc-gradient-card-warm-tilt-alt: linear-gradient(177.34deg, #e0c8b8 3.02%, #f0e4db 50.81%, #f9f3ef 98.6%); 1170 --dtc-gradient-card-warm-cost: linear-gradient(175.71deg, #e0c8b8 3.02%, #f0e4db 50.81%, #f9f3ef 98.6%); 1171 --dtc-gradient-cta-horizontal: linear-gradient(90deg, #eef4f8 0%, #b4c8e4 50%, #eef4f8 100%); 1172 --dtc-gradient-cta-horizontal-alt: linear-gradient(90deg, #edf2f7 0%, #b8cbe5 50%, #edf2f7 100%); 1173 --dtc-gradient-newsletter-split: linear-gradient(270deg, #fff8ee 0%, #ffe8c4 38%, #faf9f7 100%); 1174 --dtc-gradient-trust-orange: linear-gradient(180deg, #fff7f2 0%, #ffe7d7 50%, #fb914a 100%); 1175 --dtc-gradient-contact-panel: linear-gradient(180deg, #d8ebff 0%, #eff7ff 100%); 1176 --dtc-gradient-collection-hero-dark: linear-gradient(135deg, #1f2b36 0%, #5a6b84 100%); 1177 --dtc-gradient-vacuum-bar: linear-gradient(to left, #e7ad86 0%, #bddec1 100%); 1178 --dtc-gradient-vesync-phone-glow: linear-gradient(180deg, #ffe4bc, #fff6ea); 1179 --dtc-gradient-vesync-badge: linear-gradient(135deg, #c8d6f5, #88a8e3); 1180 --dtc-gradient-coffee-story-band: linear-gradient(to left, #e7ad86 0%, #bddec1 100%); 1181 --dtc-gradient-coffee-tasting-glow: linear-gradient(270deg, #e7ad86 0%, #bddec1 100%); 1182 1183 /* ââ 3. Gradients â overlays ââ */ 1184 --dtc-gradient-overlay-bottom-strong: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.8) 100%); 1185 --dtc-gradient-overlay-bottom-medium: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.75) 100%); 1186 --dtc-gradient-overlay-bottom-light: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.2) 100%); 1187 --dtc-gradient-overlay-bottom-mid: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.4) 100%); 1188 --dtc-gradient-overlay-bottom-card: linear-gradient(to bottom, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0.8) 100%); 1189 --dtc-gradient-overlay-top-dark: linear-gradient(180deg, rgba(0, 0, 0, 0.76) 0%, rgba(0, 0, 0, 0) 80%); 1190 --dtc-gradient-overlay-top-fade: linear-gradient(180deg, rgba(0, 0, 0, 0.56) 0%, rgba(0, 0, 0, 0) 100%); 1191 --dtc-gradient-overlay-hero-diagonal: linear-gradient(105deg, rgba(0, 0, 0, 0.62) 0%, rgba(0, 0, 0, 0.3) 45%, rgba(0, 0, 0, 0.45) 100%); 1192 --dtc-gradient-overlay-hero-mobile: linear-gradient(-57deg, rgba(0, 0, 0, 0) 28%, rgba(0, 0, 0, 0.76) 80%); 1193 --dtc-gradient-overlay-coffee-story-hero: linear-gradient(115.46deg, rgba(0, 0, 0, 0.76) 25%, rgba(0, 0, 0, 0.32) 56.8%, rgba(0, 0, 0, 0) 75%); 1194 --dtc-gradient-overlay-recipes: linear-gradient(180deg, rgba(0, 0, 0, 0.58) 0%, rgba(0, 0, 0, 0.1) 100%); 1195 --dtc-gradient-overlay-community-hero: linear-gradient(180deg, rgba(0, 0, 0, 0.66) 0.43%, rgba(0, 0, 0, 0) 133.93%); 1196 --dtc-gradient-overlay-explore-hero: linear-gradient(180deg, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0) 106.24%); 1197 --dtc-gradient-overlay-affiliate-hero: linear-gradient(156deg, rgba(0, 0, 0, 0.66) 24.88
1197%, rgba(0, 0, 0, 0) 149.59%); 1198 --dtc-gradient-overlay-horizontal-dark: linear-gradient(90deg, rgba(0, 0, 0, 0.48) 0%, rgba(0, 0, 0, 0) 100%); 1199 --dtc-gradient-overlay-horizontal-light: linear-gradient(100.04deg, rgba(0, 0, 0, 0.36) 1.1%, rgba(0, 0, 0, 0) 140.87%); 1200 --dtc-gradient-overlay-top-soft: linear-gradient(to top, rgba(0, 0, 0, 0.55) 0%, transparent 100%); 1201 --dtc-gradient-overlay-top-ecosystem: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 100%); 1202 --dtc-gradient-overlay-top-ecosystem-light: linear-gradient(to top, rgba(0, 0, 0, 0.32) 0%, rgba(115, 115, 115, 0) 100%); 1203 --dtc-gradient-overlay-sky-fade: linear-gradient(to bottom, rgba(163, 191, 240, 0.64) 0%, transparent 100%); 1204 --dtc-gradient-overlay-surface-fade: linear-gradient(to top, rgba(240, 242, 245, 0.75) 0%, transparent 100%); 1205 --dtc-gradient-overlay-video: linear-gradient(0deg, rgba(0, 0, 0, 0.48) 0%, rgba(0, 0, 0, 0) 100%); 1206 --dtc-gradient-overlay-promo-bottom: linear-gradient(180deg, rgba(0, 0, 0, 0.1) 0%, #000000 100%); 1207 --dtc-gradient-overlay-stories-light: linear-gradient(to bottom, rgba(0, 0, 0, 0.03) 50%, rgba(0, 0, 0, 0.5) 96.6%); 1208 --dtc-gradient-overlay-stories-dark: linear-gradient(to bottom, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.9) 93.2%); 1209 --dtc-gradient-overlay-white-fade: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%); 1210 --dtc-gradient-home-hero-bottom-fade: linear-gradient( 1211 180deg, 1212 rgba(252, 253, 254, 0) 0%, 1213 rgba(252, 253, 254, 0.18) 30%, 1214 rgba(252, 253, 254, 0.6) 55%, 1215 rgba(252, 253, 254, 0.88) 72%, 1216 rgb(252, 253, 254) 100% 1217 ); 1218 --dtc-gradient-shop-cat-nav-fade-bottom: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.6) 45%, #ffffff 100%); 1219 --dtc-gradient-shop-cat-nav-bg-glow-layers: linear-gradient(to bottom, #ffffff 0%, rgba(255, 255, 255, 0) 12%), 1220 linear-gradient(to bottom, rgba(255, 255, 255, 0) 85%, #ffffff 100%); 1221 --dtc-gradient-social-stories-bg-top: linear-gradient(to bottom, #ffffff 0%, rgba(255, 255, 255, 0) 30%); 1222 --dtc-gradient-overlay-sky-fade-mid: linear-gradient(to bottom, rgba(163, 191, 240, 0.64) 49.79%, rgba(163, 191, 240, 0) 100%); 1223 --dtc-gradient-overlay-sky-fade-soft: linear-gradient(to bottom, rgba(163, 191, 240, 0.64) 0%, rgba(163, 191, 240, 0.3) 50%, rgba(163, 191, 240, 0) 100%); 1224 --dtc-gradient-overlay-advanced-tech: linear-gradient(to top, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0) 50%); 1225 --dtc-gradient-overlay-promo-countdown: linear-gradient(to bottom, rgba(0, 0, 0, 0) 24.524%, rgba(0, 0, 0, 0.7) 88.594%); 1226 --dtc-gradient-overlay-header-mobile-promo: linear-gradient(180deg, rgba(0, 0, 0, 0) 21.34%, rgba(0, 0, 0, 0.75) 42.24%); 1227 --dtc-gradient-overlay-header-company-card: linear-gradient(180deg, transparent 12%, rgba(0, 0, 0, 0.5) 68%); 1228 --dtc-gradient-overlay-header-company-mobile: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.75) 81.03%); 1229 --dtc-gradient-vacuum-featured-glow: linear-gradient(135deg, rgba(240, 228, 219, 0.35) 0%, rgba(255, 255, 255, 0) 60%); 1230 --dtc-gradient-vacuum-comparison-mobile-bg: linear-gradient( 1231 to bottom, 1232 #ffffff 0%, 1233 #ffffff 6%, 1234 #f0e4db 28%, 1235 #f9f3ef 72%, 1236 #ffffff 94%, 1237 #ffffff 100% 1238 ); 1239 --dtc-gradient-community-recommendation-blur: linear-gradient( 1240 0deg, 1241 rgba(0, 0, 0, 0.34) 0%, 1242 rgba(0, 0, 0, 0.26) 38%, 1243 rgba(0, 0, 0, 0.12) 72%, 1244 rgba(115, 115, 115, 0) 100% 1245 ); 1246 --dtc-gradient-overlay-advanced-tech-mobile: linear-gradient(to top, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0) 40%); 1247 --dtc-gradient-overlay-affiliate-benefits-mask: linear-gradient( 1248 90deg, 1249 rgba(255, 255, 255, 0.92) 0%, 1250 rgba(255, 255, 255, 0.55) 14%, 1251 rgba(255, 255, 255, 0.2) 32%, 1252 rgba(255, 255, 255, 0) 52% 1253 ); 1254 --dtc-gradient-overlay-about-us-hero-mobile: linear-gradient(180deg, rgba(0, 0, 0, 0.88) 0%, rgba(0, 0, 0, 0.42) 55%, rgba(0, 0, 0, 0) 88%); 1255 1256 /* ââ 4. Gradients â connected band / complex ââ */ 1257 --dtc-gradient-index-band-start: linear-gradient( 1258 to bottom, 1259 #ffffff 0%, 1260 #ffffff 10rem, 1261 #f6f0eb 16rem, 1262 #f9f3ef 20rem, 1263 #f9f3ef 100% 1264 ); 1265 --dtc-gradient-index-band-end: linear-gradient(to bottom, #f9f3ef 0%, #f6f0eb 68%, #ffffff 100%); 1266 --dtc-gradient-index-band-radial: radial-gradient( 1267 ellipse 58% 54% at 50% 42%, 1268 rgba(224, 200, 184, 0.72) 0%, 1269 rgba(240, 228, 219, 0.48) 38%, 1270 rgba(249, 243, 239, 0.12) 62%, 1271 rgba(249, 243, 239, 0) 78% 1272 ); 1273 --dtc-gradient-index-band-radial-mid: radial-gradient( 1274 ellipse 64% 52% at 50% 88%, 1275 rgba(240, 228, 219, 0.42) 0%, 1276 rgba(249, 243, 239, 0.16) 45%, 1277 rgba(249, 243, 239, 0) 72% 1278 ); 1279 --dtc-gradient-skeleton: linear-gradient(90deg, #ebebeb 25%, #f5f5f5 50%, #ebebeb 75%); 1280 --dtc-gradient-description-fade: linear-gradient(to right, transparent, #ffffff 24px); 1281 --dtc-gradient-metal-border: linear-gradient( 1282 160deg, 1283 #c8c8c8 0%, 1284 #b0b0b0 30%, 1285 #787878 70%, 1286 #606060 100% 1287 ); 1288 --dtc-gradient-ecosystem: radial-gradient( 1289 ellipse 135% 44% at 50% 100%, 1290 #ffffff 0%, 1291 rgba(255, 255, 255, 0.92) 14%, 1292 rgba(255, 255, 255, 0.55) 34%, 1293 rgba(255, 255, 255, 0) 60% 1294 ), 1295 radial-gradient( 1296 ellipse 115% 22% at 50% 0%, 1297 #ffffff 0%, 1298 rgba(255, 255, 255, 0.82) 20%, 1299 rgba(255, 255, 255, 0.38) 48%, 1300 rgba(255, 255, 255, 0) 72% 1301 ), 1302 radial-gradient( 1303 ellipse 56% 68% at 12% 34%, 1304 rgba(186, 224, 208, 0.78) 0%, 1305 rgba(186, 224, 208, 0.38) 48%, 1306 rgba(186, 224, 208, 0) 76% 1307 ), 1308 radial-gradient( 1309 ellipse 52% 64% at 88% 32%, 1310 rgba(237, 208, 188, 0.74) 0%, 1311 rgba(237, 208, 188, 0.34) 46%, 1312 rgba(237, 208, 188, 0) 74% 1313 ), 1314 radial-gradient( 1315 ellipse 70% 62% at 50% 40%, 1316 rgba(247, 240, 232, 0.88) 0%, 1317 rgba(247, 240, 232, 0.42) 50%, 1318 rgba(247, 240, 232, 0) 78% 1319 ), 1320 radial-gradient( 1321 ellipse 50% 48% at 14% 62%, 1322 rgba(186, 224, 208, 0.52) 0%, 1323 rgba(186, 224, 208, 0) 72% 1324 ), 1325 radial-gradient( 1326 ellipse 46% 44% at 86% 60%, 1327 rgba(237, 208, 188, 0.48) 0%, 1328 rgba(237, 208, 188, 0) 70% 1329 ); 1330 --dtc-gradient-ecosystem-about-us: radial-gradient( 1331 ellipse 120% 38% at 50% 100%, 1332 #ffffff 0%, 1333 rgba(255, 255, 255, 0.92) 16%, 1334 rgba(255, 255, 255, 0.5) 36%, 1335 rgba(255, 255, 255, 0) 58% 1336 ), 1337 radial-gradient( 1338 ellipse 100% 18% at 50% 0%, 1339 #ffffff 0%, 1340 rgba(255, 255, 255, 0.78) 18%, 1341 rgba(255, 255, 255, 0.28) 44%, 1342 rgba(255, 255, 255, 0) 66% 1343 ), 1344 radial-gradient( 1345 ellipse 40% 48% at 14% 16%, 1346 rgba(186, 224, 208, 0.48) 0%, 1347 rgba(186, 224, 208, 0.22) 42%, 1348 rgba(186, 224, 208, 0) 68% 1349 ), 1350 radial-gradient( 1351 ellipse 38% 46% at 86% 14%, 1352 rgba(237, 208, 188, 0.46) 0%, 1353 rgba(237, 208, 188, 0.2) 40%, 1354 rgba(237, 208, 188, 0) 66% 1355 ), 1356 radial-gradient( 1357 ellipse 52% 46% at 50% 22%, 1358 rgba(247, 240, 232, 0.55) 0%, 1359 rgba(247, 240, 232, 0.24) 46%, 1360 rgba(247, 240, 232, 0) 72% 1361 ), 1362 radial-gradient( 1363 ellipse 36% 36% at 16% 38%, 1364 rgba(186, 224, 208, 0.28) 0%, 1365 rgba(186, 224, 208, 0) 64% 1366 ), 1367 radial-gradient( 1368 ellipse 34% 34% at 84% 36%, 1369 rgba(237, 208, 188, 0.26) 0%, 1370 rgba(237, 208, 188, 0) 62% 1371 ); 1372 1373 /* ââ 4b. Radial gradients ââ */ 1374 --dtc-radial-community-hero-glow: radial-gradient(circle at 20% 58%, rgba(227, 248, 242, 0.68) 0%, rgba(227, 248, 242, 0) 35%), 1375 radial-gradient(circle at 55% 34%, rgba(247, 235, 189, 0.65) 0%, rgba(247, 235, 189, 0) 38%), 1376 radial-gradient(circle at 86% 42%, rgba(255, 224, 205, 0.8) 0%, rgba(255, 224, 205, 0) 42%); 1377 --dtc-radial-community-hero-panel: radial-gradient(circle at 15% 14%, rgba(227, 248, 242, 0.72) 0%, rgba(227, 248, 242, 0) 36%), 1378 radial-gradient(circle at 52% 34%, rgba(247, 235, 189, 0.68) 0%, rgba(247, 235, 189, 0) 42%), 1379 radial-gradient(circle at 88% 28%, rgba(255, 224, 205, 0.82) 0%, rgba(255, 224, 205, 0) 42%), 1380 #f7f7f4;
1381 --dtc-radial-about-us-accomplishments: radial-gradient(ellipse 55% 55% at 30% 50%, rgba(251, 145, 74, 0.14) 0%, rgba(251, 145, 74, 0) 70%), 1382 radial-gradient(ellipse 50% 50% at 70% 50%, rgba(163, 191, 240, 0.22) 0%, rgba(210, 226, 252, 0.08) 60%, rgba(246, 248, 246, 0) 100%); 1383 --dtc-radial-about-us-history: radial-gradient(55% 55% at 50% 50%, rgba(251, 145, 74, 0.14) 0%, rgba(182, 220, 190, 0.22) 45%, rgba(246, 248, 246, 0) 100%); 1384 --dtc-radial-about-us-map: radial-gradient(ellipse 55% 50% at 18% 42%, rgba(168, 210, 168, 0.28) 0%, rgba(255, 255, 255, 0) 72%), 1385 radial-gradient(ellipse 70% 58% at 52% 58%, rgba(252, 210, 153, 0.52) 0%, rgba(255, 238, 214, 0.22) 55%, rgba(255, 255, 255, 0) 100%), 1386 radial-gradient(ellipse 48% 42% at 82% 38%, rgba(251, 145, 74, 0.18) 0%, rgba(255, 255, 255, 0) 70%); 1387 --dtc-radial-faq-glow: radial-gradient(circle, #ebe0c8 0%, rgba(246, 248, 246, 0) 72%); 1388 --dtc-radial-coffee-tasting-glow: radial-gradient( 1389 ellipse 52% 62% at 78% 58%, 1390 rgba(237, 208, 188, 0.72) 0%, 1391 rgba(237, 208, 188, 0) 74% 1392 ), 1393 radial-gradient( 1394 ellipse 36% 48% at 62% 38%, 1395 rgba(186, 224, 208, 0.32) 0%, 1396 rgba(186, 224, 208, 0) 70% 1397 ); 1398 --dtc-radial-coffee-story-hero: radial-gradient(26.75% 101.47% at 50.13% 50%, rgba(0, 0, 0, 0.86) 0%, rgba(0, 0, 0, 0) 100%); 1399 --dtc-radial-affiliate-comparison: radial-gradient(50% 70% at 50% 50%, rgba(163, 191, 240, 0.42) 0%, rgba(163, 191, 240, 0.08) 60%, rgba(163, 191, 240, 0) 100%); 1400 --dtc-radial-vesync-ecosystem-cards-glow: radial-gradient(ellipse 42% 38% at 78% 62%, rgba(255, 178, 130, 0.3) 0%, transparent 72%), 1401 radial-gradient(ellipse 38% 42% at 18% 58%, rgba(165, 210, 185, 0.28) 0%, transparent 70%), 1402 radial-gradient(ellipse 55% 48% at 50% 28%, rgba(163, 191, 240, 0.42) 0%, rgba(210, 226, 252, 0.14) 55%, transparent 80%); 1403 --dtc-radial-pollutant-sources-bg: radial-gradient( 1404 ellipse 78% 43% at 50% 50%, 1405 #e0c8b8 0%, 1406 #f0e4db 50%, 1407 #f9f3ef 75%, 1408 #ffffff 100% 1409 ); 1410 --dtc-radial-shop-cat-nav-card: radial-gradient( 1411 ellipse 78% 43% at 50% 45%, 1412 #e0c8b8 0%, 1413 #f0e4db 50%, 1414 #f9f3ef 75%, 1415 rgba(255, 255, 255, 0) 100% 1416 ); 1417 --dtc-radial-social-stories-bg: radial-gradient( 1418 ellipse 70% 60% at 50% 50%, 1419 rgba(120, 190, 240, 1) 0%, 1420 rgba(150, 210, 245, 0.85) 15%, 1421 rgba(180, 225, 248, 0.6) 35%, 1422 rgba(210, 235, 250, 0.3) 55%, 1423 rgba(255, 255, 255, 0) 75% 1424 ); 1425 --dtc-radial-vesync-app-download-globe: radial-gradient( 1426 circle at center, 1427 rgba(255, 255, 255, 0.86) 0%, 1428 rgba(255, 255, 255, 0.64) 50%, 1429 rgba(255, 255, 255, 0.32) 60%, 1430 rgba(255, 255, 255, 0.12) 70%, 1431 rgba(255, 255, 255, 0) 100% 1432 ); 1433 --dtc-radial-vesync-app-hero-brand-blue: radial-gradient(circle, rgba(163, 191, 240, 0.8) 0%, rgba(255, 255, 255, 0) 60%); 1434 --dtc-radial-vesync-app-hero-brand-orange: radial-gradient(circle, rgba(230, 130, 70, 0.8) 0%, rgba(255, 255, 255, 0) 60%); 1435 --dtc-radial-vesync-app-hero-brand-mint: radial-gradient(circle, rgba(140, 230, 200, 0.8) 0%, rgba(255, 255, 255, 0) 60%); 1436 --dtc-radial-vacuum-glow-blob: radial-gradient( 1437 ellipse at center, 1438 rgba(231, 173, 134, 0.65) 0%, 1439 rgba(240, 228, 219, 0.45) 30%, 1440 rgba(189, 222, 193, 0.2) 55%, 1441 transparent 75% 1442 ); 1443 --dtc-radial-vacuum-glow-mobile-dual: radial-gradient( 1444 ellipse 90% 50% at 35% 45%, 1445 rgba(231, 173, 134, 0.55) 0%, 1446 rgba(240, 228, 219, 0.35) 40%, 1447 transparent 75% 1448 ), 1449 radial-gradient( 1450 ellipse 80% 45% at 25% 75%, 1451 rgba(189, 222, 193, 0.45) 0%, 1452 rgba(249, 243, 239, 0.2) 45%, 1453 transparent 80% 1454 ); 1455 --dtc-radial-vacuum-glow-tablet: radial-gradient(ellipse 40% 60% at var(--glow-x, 78%) 50%, rgba(231, 173, 134, 0.5) 0%, rgba(189, 222, 193, 0.22) 50%, transparent 100%); 1456 --dtc-radial-cert-banner: radial-gradient( 1457 ellipse 70% 160% at 50% 50%, 1458 #d6e8f8 0%, 1459 #e4eff9 35%, 1460 #eef4fb 60%, 1461 #f5f8fc 80%, 1462 #ffffff 100% 1463 ); 1464 --dtc-radial-placeholder-blue: radial-gradient(ellipse at 45% 40%, #e6eef8 0%, #c8d8f0 100%); 1465 --dtc-radial-newsletter-icon-badge: radial-gradient(circle, rgba(255, 255, 255, 0.85) 0%, rgba(255, 255, 255, 0) 72%); 1466 --dtc-radial-salient-features-bg: radial-gradient( 1467 ellipse 135% 48% at 50% 100%, 1468 #ffffff 0%, 1469 rgba(255, 255, 255, 0.94) 14%, 1470 rgba(255, 255, 255, 0.58) 34%, 1471 rgba(255, 255, 255, 0) 62% 1472 ), 1473 radial-gradient( 1474 ellipse 56% 68% at 12% 38%, 1475 rgba(232, 242, 232, 0.82) 0%, 1476 rgba(186, 224, 208, 0.42) 48%, 1477 rgba(186, 224, 208, 0) 76% 1478 ), 1479 radial-gradient( 1480 ellipse 52% 64% at 88% 36%, 1481 rgba(249, 233, 218, 0.78) 0%, 1482 rgba(237, 208, 188, 0.36) 46%, 1483 rgba(237, 208, 188, 0) 74% 1484 ), 1485 radial-gradient( 1486 ellipse 70% 62% at 50% 38%, 1487 rgba(251, 249, 242, 0.9) 0%, 1488 rgba(247, 240, 232, 0.44) 50%, 1489 rgba(247, 240, 232, 0) 78% 1490 ); 1491 --dtc-mask-vesync-app-hero-pattern: radial-gradient(ellipse 120% 90% at 50% 18%, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.35) 72%, rgba(0, 0, 0, 0) 100%); 1492 --dtc-mask-vesync-app-hero-pattern-mobile: radial-gradient(ellipse 140% 85% at 50% 16%, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.35) 72%, rgba(0, 0, 0, 0) 100%); 1493 1494 /* ââ 5. Masks ââ */ 1495 --dtc-mask-fade-vertical-soft: linear-gradient( 1496 to bottom, 1497 transparent 0%, 1498 #000 18%, 1499 #000 58%, 1500 transparent 82% 1501 ); 1502 --dtc-mask-fade-bottom-card: linear-gradient( 1503 0deg, 1504 #000 0%, 1505 #000 62%, 1506 rgba(0, 0, 0, 0.65) 82%, 1507 transparent 100% 1508 ); 1509 --dtc-mask-content-bottom: linear-gradient( 1510 to bottom, 1511 rgba(0, 0, 0, 0) 0%, 1512 rgba(0, 0, 0, 0.4) 15%, 1513 rgba(0, 0, 0, 1) 40% 1514 ); 1515 --dtc-mask-content-right: linear-gradient( 1516 to right, 1517 rgba(0, 0, 0, 0) 0%, 1518 rgba(0, 0, 0, 0.4) 15%, 1519 rgba(0, 0, 0, 1) 40% 1520 ); 1521 --dtc-mask-content-bottom-half: linear-gradient( 1522 to bottom, 1523 black 0%, 1524 black 50%, 1525 transparent 100% 1526 ); 1527 --dtc-mask-ecosystem-top: linear-gradient( 1528 to top, 1529 black 30%, 1530 transparent 100% 1531 ); 1532 --dtc-mask-vacuum-vertical: linear-gradient( 1533 to bottom, 1534 transparent 0%, 1535 black 18%, 1536 black 82%, 1537 transparent 100% 1538 ); 1539 --dtc-mask-vacuum-featured-glow: linear-gradient( 1540 to bottom, 1541 transparent 0%, 1542 black 8%, 1543 black 92%, 1544 transparent 100% 1545 ); 1546 1547 /* ââ 6. Typography ââ */ 1548 --dtc-font-family: 'Gilroy', sans-serif; 1549 --dtc-font-size-body: 18px;
1550 --dtc-line-height-body: 1.52; 1551 --dtc-description-clamp-height: calc(var(--dtc-line-height-body) * var(--dtc-font-size-body) * 2); 1552 1553 /* ââ 7. Layout / component defaults ââ */ 1554 --dtc-container-max-width: 1400px; 1555 --dtc-scenario-card-bg-height: 286px; 1556 --dtc-scenario-card-icon-bg: var(--dtc-color-primary-legacy); 1557 --dtc-card-gradient-from: var(--dtc-color-card-from); 1558 --dtc-card-gradient-via: var(--dtc-color-card-via); 1559 --dtc-mc-article-shadow-pad-y: 20px; 1560 --dtc-mc-article-shadow-pad-x: 8px; 1561 --dtc-shadow-card: 0 8px 24px rgba(0, 0, 0, 0.08); 1562 --dtc-article-card-shadow-pad-y: 16px; 1563 --dtc-pts-badge-bg: var(--dtc-color-badge-default-bg); 1564 --dtc-pts-badge-color: var(--dtc-color-badge-default-text); 1565 --dtc-eco-total: 168vh; 1566 --dtc-eco-total-newsroom: 122vh; 1567 --dtc-eco-total-about-us: 148vh; 1568 --dtc-eco-total-mobile: 245vh; 1569 --dtc-eco-total-about-us-mobile: 220vh; 1570 } 1571</style> 1572<link href="//cosori.com/cdn/shop/t/166/assets/dtc.css?v=55653486016935701031789674181" rel="stylesheet" type="text/css" media="all" />�<link rel="preload" as="font" href="//cosori.com/cdn/fonts/poppins/poppins_n4.0ba78fa5af9b0e1a374041b3ceaadf0a43b41362.woff2" type="font/woff2" crossorigin><link rel="preload" as="font" href="//cosori.com/cdn/fonts/poppins/poppins_n4.0ba78fa5af9b0e1a374041b3ceaadf0a43b41362.woff2" type="font/woff2" crossorigin><link 1573 rel="stylesheet" 1574 href="//cosori.com/cdn/shop/t/166/assets/component-predictive-search.css?v=58413710502365906001789674181" 1575 media="print" 1576 onload="this.media='all'" 1577 >
1577<script> 1578 document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 1579 if (Shopify.designMode) { 1580 document.documentElement.classList.add('shopify-design-mode'); 1581 } 1582 </script>
1582 1583 1584 <!-- 1585
1585<script 1586 src="https://solve-widget.forethought.ai/embed.js" 1587 id="forethought-widget-embed-script" 1588 data-api-key="fb4cc9bc-8889-423b-af70-966703f8ac84" 1589 data-ft-brand="cosori" 1590 ></script>
1590 1591 --> 1592 1593 <!-- Hotjar Tracking Code for https://www.cosori.com/ --> 1594 �<style> 1595 /* Hide Klaviyo fullscreen popups immediately */ 1596 [role="dialog"][aria-modal="true"][aria-label="FULLSCREEN Form"], 1597 div.kl-private-reset-css-Xuajs1[style*="z-index: 90000"], 1598 .klaviyo-form-popup, 1599 .klaviyo-form[data-type="popup"], 1600 div[class*="klaviyo-form-"][data-type="popup"] { 1601 display: none !important; 1602 visibility: hidden !important; 1603 pointer-events: none !important; 1604 } 1605 1606 /* Prevent Klaviyo scroll lock */ 1607 body.klaviyo-prevent-body-scrolling, 1608 html.klaviyo-prevent-body-scrolling { 1609 overflow: auto !important; 1610 position: static !important; 1611 height: auto !important; 1612 width: auto !important; 1613 touch-action: auto !important; 1614 } 1615</style> 1616
1617<script> 1618 (function() { 1619 'use strict'; 1620 1621 /* Close via Klaviyo's own event API â popup/fullscreen/flyout only, never embeds */ 1622 var POPUP_TYPES = { popup: 1, fullscreen: 1, flyout: 1, flyover: 1 }; 1623 function isEmbeddedForm(formElement) { 1624 if (!formElement) return false; 1625 if (formElement.closest('.juni-ke__form-container')) return true; 1626 var wrapper = formElement.closest('[data-type]'); 1627 if (wrapper && wrapper.getAttribute('data-type') === 'embed') return true; 1628 return false; 1629 } 1630 window.addEventListener('klaviyoForms', function(e) { 1631 if (!e.detail || e.detail.type !== 'open') return; 1632 var meta = e.detail.metaData || {}; 1633 var formType = meta.formType || meta.form_type || ''; 1634 if (formType && !POPUP_TYPES[formType]) return; 1635 if (isEmbeddedForm(e.detail.formElement)) return; 1636 if (e.detail.formElement) e.detail.formElement.style.display = 'none'; 1637 if (typeof e.detail.close === 'function') e.detail.close(); 1638 }); 1639 1640 /* Find and remove fullscreen Klaviyo overlays */ 1641 function removeKlaviyoPopups(root) { 1642 root = root || document; 1643 1644 /* Target dialog wrappers */ 1645 root.querySelectorAll('[aria-label="FULLSCREEN Form"], [role="dialog"][aria-modal="true"]').forEach(function(el) { 1646 if (el.querySelector('form.klaviyo-form') || el.closest('.kl-private-reset-css-Xuajs1')) { 1647 el.remove(); 1648 } 1649 }); 1650 1651 /* Target forms and climb to fixed overlay parent â skip embeds */ 1652 root.querySelectorAll('form.klaviyo-form').forEach(function(form) { 1653 if (form.closest('.juni-ke__form-container')) return; 1654 var p = form.parentElement; 1655 for (var i = 0; i < 8 && p; i++) { 1656 if (p.classList && p.classList.contains('juni-ke__form-container')) return; 1657 var style = window.getComputedStyle(p); 1658 if (style.position === 'fixed' && parseInt(style.zIndex || '0', 10) >= 9000) { 1659 p.remove(); 1660 return; 1661 } 1662 p = p.parentElement; 1663 } 1664 }); 1665 1666 /* Unlock scroll */ 1667 document.body.classList.remove('klaviyo-prevent-body-scrolling'); 1668 document.documentElement.classList.remove('klaviyo-prevent-body-scrolling'); 1669 } 1670 1671 /* Run immediately and watch for dynamically injected popups */ 1672 removeKlaviyoPopups(); 1673 1674 var observer = new MutationObserver(function(mutations) { 1675 for (var i = 0; i < mutations.length; i++) { 1676 for (var j = 0; j < mutations[i].addedNodes.length; j++) { 1677 var node = mutations[i].addedNodes[j]; 1678 if (node.nodeType === 1) { 1679 if (node.classList && node.classList.contains('kl-private-reset-css-Xuajs1')) { 1680 removeKlaviyoPopups(node.parentElement); 1681 } else if (node.querySelector && node.querySelector('.kl-private-reset-css-Xuajs1, form.klaviyo-form')) { 1682 removeKlaviyoPopups(node); 1683 } 1684 } 1685 } 1686 } 1687 }); 1688 1689 observer.observe(document.documentElement, { childList: true, subtree: true }); 1690 })(); 1691</script>
1691 1692�<!-- BEGIN app block: shopify://apps/elevar-conversion-tracking/blocks/dataLayerEmbed/bc30ab68-b15c-4311-811f-8ef485877ad6 --> 1693 1694 1695
1696<script type="module" dynamic> 1697 const configUrl = "/a/elevar/static/configs/896ebe9793ebdb22ed3ac920f8919a1980be6ff6/config.js"; 1698 const config = (await import(configUrl)).default; 1699 const scriptUrl = config.script_src_app_theme_embed; 1700 1701 if (scriptUrl) { 1702 const { handler } = await import(scriptUrl); 1703 1704 await handler( 1705 config, 1706 { 1707 cartData: { 1708 marketId: "52010713397", 1709 localeCountryCode:"US", 1710 attributes:{}, 1711 cartTotal: "0.0", 1712 currencyCode:"USD", 1713 items: [] 1714} 1715, 1716 user: { 1717 cartTotal: "0.0", 1718 currencyCode:"USD", 1719 customer: {}, 1720} 1721, 1722 isOnCartPage:false, 1723 collectionView:null, 1724 searchResultsView:null, 1725 productView:{ 1726 attributes:{}, 1727 currencyCode:"USD",defaultVariant: {id:"KAAPCMCSSUS0001Y",name:"Juni⢠The Automatic Pour-Over Coffee Machine", 1728 brand:"COSORI", 1729 category:"", 1730 variant:"Glass", 1731 price: "299.99", 1732 productId: "10566370951477", 1733 variantId: "53460911227189", 1734 compareAtPrice: "299.99",image:"\/\/cosori.com\/cdn\/shop\/files\/PDP_Image01_1.png?v=1788295666",url:"\/products\/juni-coffee-maker?variant=53460911227189"},items: [{id:"KAAPCMCSSUS0001Y",name:"Juni⢠The Automatic Pour-Over Coffee Machine", 1735 brand:"COSORI", 1736 category:"", 1737 variant:"Glass", 1738 price: "299.99", 1739 productId: "10566370951477", 1740 variantId: "53460911227189", 1741 compareAtPrice: "299.99",image:"\/\/cosori.com\/cdn\/shop\/files\/PDP_Image01_1.png?v=1788295666",url:"\/products\/juni-coffee-maker?variant=53460911227189"},{id:"KAAPCMCSSUS0002Y",name:"Juni⢠The Automatic Pour-Over Coffee Machine", 1742 brand:"COSORI", 1743 category:"", 1744 variant:"Stainless steel", 1745 price: "349.99", 1746 productId: "10566370951477", 1747 variantId: "53460911259957", 1748 compareAtPrice: "299.99",image:"\/\/cosori.com\/cdn\/shop\/files\/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150",url:"\/products\/juni-coffee-maker?variant=53460911259957"},] 1749 }, 1750 } 1751 ); 1752 } 1753</script>
1753 1754 1755 1756<!-- END app block --><!-- BEGIN app block: shopify://apps/yotpo-product-reviews/blocks/settings/eb7dfd7d-db44-4334-bc49-c893b51b36cf --> 1757 1758
1759<script type="text/javascript"> 1760 (function e(){var e=document.createElement("script"); 1761 e.type="text/javascript",e.async=true, 1762 e.src="//staticw2.yotpo.com/YR9U1WMgmUXA98XO2Fjto2y73jEvJupPZ4B2VPrX/widget.js?lang=en"; 1763 var t=document.getElementsByTagName("script")[0]; 1764 t.parentNode.insertBefore(e,t)})(); 1765</script>
1765 1766 1767 1768 1769 1770<!-- END app block --><!-- BEGIN app block: shopify://apps/vesync-element-kit-cosori/blocks/app-embed/019bc4a8-048d-72cd-8be8-aa4d86b7d580 --> 1771 1772 1773 1774 1775<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788
1788<script async src="https://static.klaviyo.com/onsite/js/SvTWYw/klaviyo.js?company_id=SvTWYw"></script>
1788 1789
1789<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>
1789 1790 1791 1792
1792<script id="viewed_product"> 1793 if (item == null) { 1794 var _learnq = _learnq || []; 1795 1796 var MetafieldReviews = null 1797 var MetafieldYotpoRating = null 1798 var MetafieldYotpoCount = null 1799 var MetafieldLooxRating = null 1800 var MetafieldLooxCount = null 1801 var okendoProduct = null 1802 var okendoProductReviewCount = null 1803 var okendoProductReviewAverageValue = null 1804 try { 1805 // The following fields are used for Customer Hub recently viewed in order to add reviews. 1806 // This information is not part of __kla_viewed. Instead, it is part of __kla_viewed_reviewed_items 1807 MetafieldReviews = {}; 1808 MetafieldYotpoRating = null 1809 MetafieldYotpoCount = null 1810 MetafieldLooxRating = null 1811 MetafieldLooxCount = null 1812 1813 okendoProduct = null 1814 // If the okendo metafield is not legacy, it will error, which then requires the new json formatted data 1815 if (okendoProduct && 'error' in okendoProduct) { 1816 okendoProduct = null 1817 } 1818 okendoProductReviewCount = okendoProduct ? okendoProduct.reviewCount : null 1819 okendoProductReviewAverageValue = okendoProduct ? okendoProduct.reviewAverageValue : null 1820 } catch (error) { 1821 console.error('Error in Klaviyo onsite reviews tracking:', error); 1822 } 1823 1824 var item = { 1825 Name: "Juni⢠The Automatic Pour-Over Coffee Machine", 1826 ProductID: 10566370951477, 1827 Categories: ["Coffee","Shop All COSORI Products","What's New"], 1828 ImageURL: "https://cosori.com/cdn/shop/files/PDP_Image01_1_grande.png?v=1788295666", 1829 URL: "https://cosori.com/products/juni-coffee-maker", 1830 Brand: "COSORI", 1831 Price: "$299.99", 1832 Value: "299.99", 1833 CompareAtPrice: "$299.99" 1834 }; 1835 _learnq.push(['track', 'Viewed Product', item]); 1836 _learnq.push(['trackViewedItem', { 1837 Title: item.Name, 1838 ItemId: item.ProductID, 1839 Categories: item.Categories, 1840 ImageUrl: item.ImageURL, 1841 Url: item.URL, 1842 Metadata: { 1843 Brand: item.Brand, 1844 Price: item.Price, 1845 Value: item.Value, 1846 CompareAtPrice: item.CompareAtPrice 1847 }, 1848 metafields:{ 1849 reviews: MetafieldReviews, 1850 yotpo:{ 1851 rating: MetafieldYotpoRating, 1852 count: MetafieldYotpoCount, 1853 }, 1854 loox:{ 1855 rating: MetafieldLooxRating, 1856 count: MetafieldLooxCount, 1857 }, 1858 okendo: { 1859 rating: okendoProductReviewAverageValue, 1860 count: okendoProductReviewCount, 1861 } 1862 } 1863 }]); 1864 } 1865 </script>
1865 1866 1867 1868 1869 1870 1871
1871<script> 1872 window.klaviyoReviewsProductDesignMode = false 1873 </script>
1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883<!-- END app block --><!-- BEGIN app block: shopify://apps/triplewhale/blocks/triple_pixel_snippet/483d496b-3f1a-4609-aea7-8eee3b6b7a2a --><link rel='preconnect dns-prefetch' href='https://api.config-security.com/' crossorigin /> 1884<link rel='preconnect dns-prefetch' href='https://conf.config-security.com/' crossorigin />
1885<script> 1886/* >> TriplePixel :: start*/ 1887window.TriplePixelData={TripleName:"cosori-2023.myshopify.com",ver:"2.16",plat:"SHOPIFY",isHeadless:false,src:'SHOPIFY_EXT',product:{id:"10566370951477",name:`Juni⢠The Automatic Pour-Over Coffee Machine`,price:"299.99",variant:"53460911227189",av:{ "53460911227189":true,"53460911259957":true }},search:"",collection:"",cart:"drawer",template:"product",curr:"USD" || "USD", market:"52010713397"},function(W,H,A,L,E,_,B,N){function O(U,T,P,H,R){void 0===R&&(R=!1),H=new XMLHttpRequest,P?(H.open("POST",U,!0),H.setRequestHeader("Content-Type","text/plain")):H.open("GET",U,!0),H.send(JSON.stringify(P||{})),H.onreadystatechange=function(){4===H.readyState&&200===H.status?(R=H.responseText,U.includes("/first")?eval(R):P||(N[B]=R)):(299<H.status||H.status<200)&&T&&!R&&(R=!0,O(U,T-1,P))}}if(N=window,!N[H+"sn"]){N[H+"sn"]=1,L=function(){return Date.now().toString(36)+"_"+Math.random().toString(36)};try{A.setItem(H,1+(0|A.getItem(H)||0)),(E=JSON.parse(A.getItem(H+"U")||"[]")).push({u:location.href,r:document.referrer,t:Date.now(),id:L()}),A.setItem(H+"U",JSON.stringify(E))}catch(e){}var i,m,p;A.getItem('"!nC`')||(_=A,A=N,A[H]||(E=A[H]=function(t,e,i){return void 0===i&&(i=[]),"State"==t?E.s:(W=L(),(E._q=E._q||[]).push([W,t,e].concat(i)),W)},E.s="Installed",E._q=[],E.ch=W,B="configSecurityConfModel",N[B]=1,O("https://conf.config-security.com/model",5),i=L(),m=A[atob("c2NyZWVu")],_.setItem("di_pmt_wt",i),p={id:i,action:"profile",avatar:_.getItem("auth-security_rand_salt_"),time:m[atob("d2lkdGg=")]+":"+m[atob("aGVpZ2h0")],host:A.TriplePixelData.TripleName,plat:A.TriplePixelData.plat,url:window.location.href.slice(0,500),ref:document.referrer,ver:A.TriplePixelData.ver},O("https://api.config-security.com/event",5,p),O("https://api.config-security.com/first?host=".concat(p.host,"&plat=").concat(p.plat),5)))}}("","TriplePixel",localStorage); 1888/* << TriplePixel :: end*/ 1889</script>
1889 1890 1891 1892 1893<!-- END app block --><!-- BEGIN app block: shopify://apps/hulk-form-builder/blocks/app-embed/b6b8dd14-356b-4725-a4ed-77232212b3c3 --><!-- BEGIN app snippet: hulkapps-formbuilder-theme-ext -->
1893<script type="text/javascript"> 1894 1895 if (typeof window.formbuilder_customer != "object") { 1896 window.formbuilder_customer = {} 1897 } 1898 1899 1900 1901 window.hulkFormBuilder = { 1902 form_data: {"form_Tu6djKmd5gV9J-yTPpvs2A":{"uuid":"Tu6djKmd5gV9J-yTPpvs2A","form_name":"COSORI_Collaborator Inquiry Webform_2023-10-12","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"","captcha_enable":"no","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"2","form_width":"600px","form_border_size":"2","form_border_clr":"transparent","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"35","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"COSORI_Collaborator Inquiry Webform_2023-10-12","form_access_message":"\u
1902003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","form_description":"","captcha_honeypot":"no","captcha_version_3_enable":"no","formElements":[{"type":"text","position":0,"label":"First Name","customClass":"","halfwidth":"yes","Conditions":{},"page_number":1},{"type":"text","position":1,"label":"Last Name","halfwidth":"yes","Conditions":{},"page_number":1},{"Conditions":{},"type":"textarea","position":2,"label":"Your Social Handles","halfwidth":"no","required":"no","page_number":1},{"type":"email","position":3,"label":"Email","required":"yes","email_confirm":"yes","Conditions":{},"page_number":1,"halfwidth":"no"},{"Conditions":{},"type":"phone","position":4,"label":"Phone","page_number":1},{"Conditions":{},"type":"select","position":5,"label":"Your Location (State)","required":"yes","values":"Alabama\nAlaska \nArizona \nArkansas \nCalifornia \nColorado\nConnecticut \nDelaware \nFlorida \nGeorgia \nHawaii \nIdaho \nIllinois \nIndiana \nIowa \nKansas \nKentucky \nLouisiana \nMaine \nMaryland\nMassachusetts \nMichigan\nMinnesota \nMississippi\nMissouri \nMontana \nNebraska\nNevada\nNew Hampshire \nNew Jersey\nNew Mexico \nNew York \nNorth Carolina \nNorth Dakota \nOhio \nOklahoma \nOregon \nPennsylvania \nRhode Island \nSouth Carolina\nSouth Dakota \nTennessee \nTexas \nUtah \nVermont \nVirginia \nWashington\nWest \nVirginia \nWisconsin \nWyoming","elementCost":{},"page_number":1},{"type":"textarea","position":6,"label":"Tell us about your idea and how our brand aligns with your passion","required":"yes","Conditions":{},"page_number":1}]},"is_spam_form":false,"shop_uuid":"z6uTn0J3SdSWfyLiIqcfYA","shop_timezone":"America\/Los_Angeles","shop_id":93460,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"cosori-2023.myshopify.com","popup_settings":{},"form_is_active":true}}, 1903 shop_data: {"shop_z6uTn0J3SdSWfyLiIqcfYA":{"shop_uuid":"z6uTn0J3SdSWfyLiIqcfYA","shop_timezone":"America\/Los_Angeles","shop_id":93460,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"cosori-2023.myshopify.com","shop_created_at":"2023-10-18T23:34:05.785-05:00","is_skip_metafield":false,"shop_deleted":false,"shop_disabled":false}}, 1904 settings_data: {"shop_settings":{"shop_customise_msgs":[],"default_customise_msgs":{"is_required":"is required","thank_you":"Thank you! The form was submitted successfully.","processing":"Processing...","valid_data":"Please provide valid data","valid_email":"Provide valid email format","valid_tags":"HTML Tags are not allowed","valid_phone":"Provide valid phone number","valid_captcha":"Please provide a valid CAPTCHA response.","valid_url":"Provide valid URL","only_number_alloud":"Provide valid number in","number_less":"must be less than","number_more":"must be more than","image_must_less":"Image must be less than 20MB","image_number":"Images allowed","image_extension":"Invalid extension! Please provide image file","error_image_upload":"Error in image upload. Please try again.","error_file_upload":"Error in file upload. Please try again.","your_response":"Your response","error_form_submit":"Error occur.Please try again after sometime.","email_submitted":"Form with this email is already submitted","invalid_email_by_zerobounce":"The email address you entered appears to be invalid. Please check it and try again.","download_file":"Download file","card_details_invalid":"Your card details are invalid","card_details":"Card details","please_enter_card_details":"Please enter card details","card_number":"Card number","exp_mm":"Exp MM","exp_yy":"Exp YY","crd_cvc":"CVV","payment_value":"Payment amount","please_enter_payment_amount":"Please enter a payment amount.","address1":"Address line 1","address2":"Address line 2","city":"City","province":"Province","zipcode":"Zip code","country":"Country","blocked_domain":"This form does not accept addresses from","file_must_less":"File must be less than 20MB","file_extension":"Invalid extension! Please provide file","only_file_number_alloud":"files allowed","previous":"Previous","next":"Next","must_have_a_input":"Please enter at least one field.","please_enter_required_data":"Please enter required data","atleast_one_special_char":"Include at least one special character","atleast_one_lowercase_char":"Include at least one lowercase character","atleast_one_uppercase_char":"Include at least one uppercase character","atleast_one_number":"Include at least one number","must_have_8_chars":"Must have 8 characters long","be_between_8_and_12_chars":"Be between 8 and 12 characters long","please_select":"Please Select","phone_submitted":"Form with this phone number is already submitted","user_res_parse_error":"Error while submitting the form","valid_same_values":"values must be the same","product_choice_clear_selection":"Clear Selection","picture_choice_clear_selection":"Clear Selection","remove_all_for_file_image_upload":"Remove All","invali
1904d_file_type_for_image_upload":"You can't upload files of this type.","invalid_file_type_for_signature_upload":"You can't upload files of this type.","max_files_exceeded_for_file_upload":"You can not upload any more files.","max_files_exceeded_for_image_upload":"You can not upload any more files.","file_already_exist":"File already uploaded","max_limit_exceed":"You have added the maximum number of text fields.","cancel_upload_for_file_upload":"Cancel upload","cancel_upload_for_image_upload":"Cancel upload","cancel_upload_for_signature_upload":"Cancel upload"}}}, 1905 features_data: {"shop_plan_features":{"shop_plan_features":["unlimited-forms","full-design-customization","export-form-submissions","multiple-recipients-for-form-submissions","multiple-admin-notifications","enable-captcha","unlimited-file-uploads","save-submitted-form-data","set-auto-response-message","conditional-logic","form-banner","save-as-draft-facility","include-user-response-in-admin-email","disable-form-submission","forms-limit","submissions-visibility-limit","file-upload"]}}, 1906 shop: null, 1907 shop_id: null, 1908 plan_features: null, 1909 validateDoubleQuotes: false, 1910 assets: { 1911 searchableDropdown: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/searchable-dropdown.js", 1912 extraFunctions: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/extra-functions.js", 1913 extraStyles: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/extra-styles.css", 1914 bootstrapStyles: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/theme-app-extension-bootstrap.css", 1915 }, 1916 translations: { 1917 htmlTagNotAllowed: "HTML Tags are not allowed", 1918 sqlQueryNotAllowed: "SQL Queries are not allowed", 1919 doubleQuoteNotAllowed: "Double quotes are not allowed", 1920 1921 maxTextFieldsReached: "You have added the maximum number of text fields.", 1922 1923 1924 1925 zerobounceApiErrorMsg: "We couldn\u0026#39;t verify your email due to a technical issue. Please try again later.", 1926 } 1927 1928 } 1929 1930 1931 1932 window.FbThemeAppExtSettingsHash = {} 1933 1934</script>
1934<!-- END app snippet --><!-- END app block --><!-- BEGIN app block: shopify://apps/vesync-storefront-cosori/blocks/storefront-embed/019f8dc4-5c4a-7c6e-bf28-fa28d4d39457 --> 1935 1936 1937
1937<script> 1938 window.__vesyncStorefront = { 1939 features: { 1940 cookieSync: true 1941 }, 1942 customerId: null, 1943 proxyBase: "/apps/vesync-storefront" 1944 }; 1945 </script>
1945 1946
1946<script src="https://cdn.shopify.com/extensions/019fea43-16f5-7382-854a-1bb41619ec27/vesync-storefront-cosori-4/assets/storefront-bootstrap.js" defer></script>
1946 1947 1948 1949 1950<!-- END app block --><link href="https://cdn.shopify.com/extensions/019c4049-633e-76f1-9885-b359b64ba331/vesync-element-kit-cosori-6/assets/vapp-seo-heading.css" rel="stylesheet" type="text/css" media="all">
1951<script src="https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/form-builder-script.js" type="text/javascript" defer="defer"></script>
1951 1952<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1953<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: 74265723189,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "product"};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 1953
1953
1954<script> 1955 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 1956</script>
vendor: 1 bytes, line 1956
1956
1957<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}
1957).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: 74265723189,storefrontBaseUrl: "https://cosori.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://cosori.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"3002892597","configuration":"{\"shopDomain\":\"cosori-2023.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"a66a63c87620a15a65456a5d9d2858e2","type":"APP","apiClientId":19382,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2947154229","configuration":"{\"accountID\":\"1956670\",\"domain\":\"spfy-pxl.archive-digger.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"256e0f107bfa102eabd3cbf632fd11d1","type":"APP","apiClientId":117664743425,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2308997429","configuration":"{\"accountId\":\"cosori-2023.myshopify.com\",\"trackingOrigin\":\"https:\\\/\\\/shdid.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7e4a2932f61f97828d974aeb88ceba49","type":"APP","apiClientId":94099111937,"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":"optimized"},{"id":"2104754485","configuration":"{\"shopId\":\"143429\",\"env\":\"production\",\"metaData\":\"[]\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"36f244aeba196ca7e2f6b8a611f4e21b","type":"APP","apiClientId":2773553,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
1957,"dataSharingState":"unrestricted"},{"id":"1943896373","configuration":"{\"campaignID\":\"41709\",\"externalExecutionURL\":\"https:\/\/engine.saasler.com\/api\/v1\/webhook_executions\/7bb150efd0c138fa230c3d527e74a323\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7a47b06116c806e4367c27d301f4f458","type":"APP","apiClientId":3546795,"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"},{"id":"1703903541","configuration":"{\"accountID\":\"53709240-eb8d-4579-804d-b98cd68c5aef\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"a28b838aed79eff02fcca912bdccb6f5","type":"APP","apiClientId":2376822,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1195999541","configuration":"{\"accountID\":\"SvTWYw\",\"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"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"863994165","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"GT-TWMW5GRT\\\",\\\"G-0S433F551Q\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":\\\"MC-G48DVVGPS9\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"MC-G48DVVGPS9\\\",\\\"AW-11229908004\\\/NeZyCJnf168YEKSY6-op\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":\\\"MC-G48DVVGPS9\\\"}],\\\"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":"optimized","enabledFlags":["9a3ed68a"]},{"id":"343343413","configuration":"{\"tagID\":\"2612816568556\"}","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":"optimized"},{"id":"146080053","configuration":"{\"shopId\":\"cosori-2023.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7093dff47f098f6de2afb75b62011ebe","type":"APP","apiClientId":2753413,"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":"optimized"},{"id":"137429301","configuration":"{\"myshopifyDomain\":\"cosori-2023.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"23b97d18e2aa74363140dc29c9284e87","type":"APP","apiClientId":2775569,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_phone","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"}
1957,{"id":"128680245","configuration":"{\"config_url\": \"https:\/\/shopify-gtm-suite.getelevar.com\/configs\/896ebe9793ebdb22ed3ac920f8919a1980be6ff6\/config.js\"}","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"7ae63d00911d5ee26809bf1e3232d852","type":"APP","apiClientId":2509311,"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"},{"id":"82280757","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"4","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Elevar Custom Events API Beta "},{"id":"114622773","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"cj-network-integration-pixel"},{"id":"188088629","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"20","type":"CUSTOM","privacyPurposes":["SALE_OF_DATA"],"name":"GTM Checkout Tracking"},{"id":"189006133","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Insider Custom Pixel"},{"id":"220725557","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"CDP"},{"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":"COSORI","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"cosori-2023.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/cosori.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[{"price":{"amount":299.99,"currencyCode":"USD"},"product":{"title":"Juni⢠The Automatic Pour-Over Coffee Machine","vendor":"COSORI","id":"10566370951477","untranslatedTitle":"Juni⢠The Automatic Pour-Over Coffee Machine","url":"\/products\/juni-coffee-maker","type":""},"id":"53460911227189","image":{"src":"\/\/cosori.com\/cdn\/shop\/files\/PDP_Image01_1.png?v=1788295666"},"sku":"KAAPCMCSSUS0001Y","title":"Glass","untranslatedTitle":"Glass"},{"price":{"amount":349.99,"currencyCode":"USD"},"product":{"title":"Juni⢠The Automatic Pour-Over Coffee Machine","vendor":"COSORI","id":"10566370951477","untranslatedTitle":"Juni⢠The Automatic Pour-Over Coffee Machine","url":"\/products\/juni-coffee-maker","type":""},"id":"53460911259957","image":{"src":"\/\/cosori.com\/cdn\/shop\/files\/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150"},"sku":"KAAPCMCSSUS0002Y","title":"Stainless steel","untranslatedTitle":"Stainless steel"}],"products":[{"id":"10566370951477","handle":"juni-coffee-maker","isCollective":null,"title":"Juni⢠The Automatic Pour-Over Coffee Machine","type":null,"untranslatedTitle":"Juni⢠The Automatic Pour-Over Coffee Machine","url":"\/products\/juni-coffee-maker","vendor":"COSORI","remoteShopId":null,"variants":[{"id":"53460911227189","image":{"src":"\/\/cosori.com\/cdn\/shop\/files\/PDP_Image01_1.png?v=1788295666"},"price":{"amount":299.99,"currencyCode":"USD"},"sku":"KAAPCMCSSUS0001Y","title":"Glass","untranslatedTitle":"Glass"},{"id":"53460911259957","image":{"src":"\/\/cosori.com\/cdn\/shop\/files\/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150"},"price":{"amount":349.99,"currencyCode":"USD"},"sku":"KAAPCMCSSUS0002Y","title":"Stainless steel","untranslatedTitle":"Stainless steel"}]},{"id":"10187947344181","handle":"nutrilens-smart-nutrition-scale","
1957isCollective":null,"title":"Cosori NutriLens Smart Nutrition Scale","type":"Air Fryer Accessories","untranslatedTitle":"Cosori NutriLens Smart Nutrition Scale","url":"\/products\/nutrilens-smart-nutrition-scale","vendor":"COSORI","remoteShopId":null,"variants":[{"id":"51222975611189","image":{"src":"\/\/cosori.com\/cdn\/shop\/files\/1.0_CNS-R001S-X_US_Black_LP0A1.jpg?v=1755497282"},"price":{"amount":49.99,"currencyCode":"USD"},"sku":"KAMTNSCSSUS0021Y","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"8273570201909","handle":"smart-electric-gooseneck-kettle-cs108-nk","isCollective":null,"title":"Smart Electric Gooseneck Kettle","type":"Electric Kettles","untranslatedTitle":"Smart Electric Gooseneck Kettle","url":"\/products\/smart-electric-gooseneck-kettle-cs108-nk","vendor":"Cosori","remoteShopId":null,"variants":[{"id":"45003288019253","image":{"src":"\/\/cosori.com\/cdn\/shop\/products\/new-electric-kettle-img.png?v=1762457669"},"price":{"amount":77.99,"currencyCode":"USD"},"sku":"KAAPGKCSSUS0004","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"8273569743157","handle":"premium-stainless-steel-food-dehydrator-cp267-fd","isCollective":null,"title":"COSORI Premium 6-Tray Stainless Steel Food Dehydrator","type":"Food Dehydrator","untranslatedTitle":"COSORI Premium 6-Tray Stainless Steel Food Dehydrator","url":"\/products\/premium-stainless-steel-food-dehydrator-cp267-fd","vendor":"Cosori","remoteShopId":null,"variants":[{"id":"45003286282549","image":{"src":"\/\/cosori.com\/cdn\/shop\/products\/01.01_OA1_CP267-FD_Silver_03.png?v=1762457668"},"price":{"amount":159.99,"currencyCode":"USD"},"sku":"KAAPFDCSNUS0002","title":"Silver","untranslatedTitle":"Silver"}]}],"purchasingCompany":null},},"https://cosori.com/cdn","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"191325929781","themePublished":"true","eventMetadataId":"73ede097-ddef-4e02-8a54-b9ee0d03e1d1","pageType":"product","resourceId":"10566370951477","shopId":"74265723189","storefrontBaseUrl":"https:\/\/cosori.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","publish":"custom","events":"[[\"page_viewed\",{}],[\"product_viewed\",{\"productVariant\":{\"price\":{\"amount\":299.99,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"Juni⢠The Automatic Pour-Over Coffee Machine\",\"vendor\":\"COSORI\",\"id\":\"10566370951477\",\"untranslatedTitle\":\"Juni⢠The Automatic Pour-Over Coffee Machine\",\"url\":\"\/products\/juni-coffee-maker\",\"type\":\"\"},\"id\":\"53460911227189\",\"image\":{\"src\":\"\/\/cosori.com\/cdn\/shop\/files\/PDP_Image01_1.png?v=1788295666\"},\"sku\":\"KAAPCMCSSUS0001Y\",\"title\":\"Glass\",\"untranslatedTitle\":\"Glass\"}}]]"});})();</script>
1957<script> 1958 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 1959 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 1960 window.ShopifyAnalytics.meta.currency = 'USD'; 1961 var meta = {"product":{"id":10566370951477,"gid":"gid:\/\/shopify\/Product\/10566370951477","vendor":"COSORI","type":"","handle":"juni-coffee-maker","variants":[{"id":53460911227189,"price":29999,"name":"Juni⢠The Automatic Pour-Over Coffee Machine - Glass","public_title":"Glass","sku":"KAAPCMCSSUS0001Y"},{"id":53460911259957,"price":34999,"name":"Juni⢠The Automatic Pour-Over Coffee Machine - Stainless steel","public_title":"Stainless steel","sku":"KAAPCMCSSUS0002Y"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":10566370951477,"requestId":"bfcd4b41-3f27-4398-8c93-08c38f54e6c9-1790380475"}}; 1962 for (var attr in meta) { 1963 window.ShopifyAnalytics.meta[attr] = meta[attr]; 1964 } 1965</script>
vendor: 1 bytes, line 1965
1965
1966<script class="analytics"> 1967 (function () { 1968 var customDocumentWrite = function(content) { 1969 var jquery = null; 1970 1971 if (window.jQuery) { 1972 jquery = window.jQuery; 1973 } else if (window.Checkout && window.Checkout.$) { 1974 jquery = window.Checkout.$; 1975 } 1976 1977 if (jquery) { 1978 jquery('body').append(content); 1979 } 1980 }; 1981 1982 var hasLoggedConversion = function(token) { 1983 if (token) { 1984 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 1985 } 1986 return false; 1987 } 1988 1989 var setCookieIfConversion = function(token) { 1990 if (token) { 1991 var twoMonthsFromNow = new Date(Date.now()); 1992 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 1993 1994 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 1995 } 1996 } 1997 1998 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 1999 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 2000 if (trekkie.integrations) { 2001 return; 2002 } 2003 trekkie.methods = [ 2004 'identify', 2005 'page', 2006 'ready', 2007 'track', 2008 'trackForm', 2009 'trackLink' 2010 ]; 2011 trekkie.factory = function(method) { 2012 return function() { 2013 var args = Array.prototype.slice.call(arguments); 2014 args.unshift(method); 2015 trekkie.push(args); 2016 if (method == 'track' || method == 'page') { 2017 var pageUrl; 2018 try { 2019 pageUrl = window.location.href; 2020 } catch (e) {} 2021 var pageReferrer; 2022 try { 2023 pageReferrer = document.referrer; 2024 } catch (e) {} 2025 try { 2026 if (window.__TREKKIE_SHIM_QUEUE == null) { 2027 window.__TREKKIE_SHIM_QUEUE = []; 2028 } 2029 window.__TREKKIE_SHIM_QUEUE.push({ 2030 from: 'trekkie-stub', 2031 method: method, 2032 args: args.slice(1), 2033 pageContext: { 2034 url: pageUrl, 2035 referrer: pageReferrer 2036 } 2037 }); 2038 } catch (e) { 2039 // no-op 2040 } 2041 } 2042 return trekkie; 2043 }; 2044 }; 2045 for (var i = 0; i < trekkie.methods.length; i++) { 2046 var key = trekkie.methods[i]; 2047 trekkie[key] = trekkie.factory(key); 2048 } 2049 trekkie.load = function(config) { 2050 trekkie.config = config || {}; 2051 trekkie.config.initialDocumentCookie = document.cookie; 2052 var first = document.getElementsByTagName('script')[0]; 2053var script = document.createElement('script'); 2054script.type = 'text/javascript'; 2055script.onerror = function(e) { 2056 var scriptFallback = document.createElement('script'); 2057 scriptFallback.type = 'text/javascript'; 2058 scriptFallback.onerror = function(error) { 2059 var Monorail = { 2060 produce: function produce(monorailDomain, schemaId, payload) { 2061 var currentMs = new Date().getTime(); 2062 var event = { 2063 schema_id: schemaId, 2064 payload: payload, 2065 metadata: { 2066 event_created_at_ms: currentMs, 2067 event_sent_at_ms: currentMs 2068 } 2069 }; 2070 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 2071 }, 2072 sendRequest: function sendRequest(endpointUrl, payload) { 2073 // Try the sendBeacon API 2074 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 2075 var blobData = new window.Blob([payload], { 2076 type: 'text/plain' 2077 }); 2078 2079 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 2080 return true; 2081 } // sendBeacon was not successful 2082 2083 } // XHR beacon 2084 2085 var xhr = new XMLHttpRequest(); 2086 2087 try { 2088 xhr.open('POST', endpointUrl); 2089 xhr.setRequestHeader('Content-Type', 'text/plain'); 2090 xhr.send(payload); 2091 } catch (e) { 2092 console.log(e); 2093 } 2094 2095 return false; 2096 }, 2097 isIos12: function isIos12() { 2098 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 2099 } 2100 }; 2101 Monorail.produce('monorail-edge.shopifysvc.com', 2102 'trekkie_storefront_load_errors/1.1', 2103 {shop_id: 74265723189, 2104 theme_id: 191325929781, 2105 app_name: "storefront", 2106 context_url: window.location.href, 2107 source_url: "//cosori.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"}); 2108 2109 }; 2110 scriptFallback.async = true; 2111 scriptFallback.src = '//cosori.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 2112 first.parentNode.insertBefore(scriptFallback, first); 2113}; 2114script.async = true; 2115script.src = '//cosori.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 2116first.parentNode.insertBefore(script, first); 2117 2118 }; 2119 trekkie.load( 2120 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":74265723189,"isMerchantRequest":null,"themeId":191325929781,"themeCityHash":"1025471158232734705","contentLanguage":"en","currency":"USD","eventMetadataId":"73ede097-ddef-4e02-8a54-b9ee0d03e1d1"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} 2121 ); 2122 2123 var loaded = false;
2124 trekkie.ready(function() { 2125 if (loaded) return; 2126 loaded = true; 2127 2128 window.ShopifyAnalytics.lib = window.trekkie; 2129 2130 var originalDocumentWrite = document.write; 2131 document.write = customDocumentWrite; 2132 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 2133 document.write = originalDocumentWrite; 2134 2135 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 2136 var token = match? match[1]: undefined; 2137 if (!hasLoggedConversion(token)) { 2138 setCookieIfConversion(token); 2139 window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"USD","variantId":53460911227189,"productId":10566370951477,"productGid":"gid:\/\/shopify\/Product\/10566370951477","name":"Juni⢠The Automatic Pour-Over Coffee Machine - Glass","price":"299.99","sku":"KAAPCMCSSUS0001Y","brand":"COSORI","variant":"Glass","category":"","nonInteraction":true,"remote":false,"available":true},undefined,undefined,{"shopifyEmitted":true}); 2140 } 2141 }); 2142 2143 window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":10
2143566370951477,"requestId":"bfcd4b41-3f27-4398-8c93-08c38f54e6c9-1790380475","shopifyEmitted":true}); 2144 2145 var eventsListenerScript = document.createElement('script'); 2146 eventsListenerScript.async = true; 2147 eventsListenerScript.src = "//cosori.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 2148 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 2149})();</script>
vendor: 1 bytes, line 2149
2149
2150<script 2151 defer 2152 src="https://cosori.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 2153 data-application="storefront-renderer" 2154 data-shop-id="74265723189" 2155 data-render-region="gcp-us-central1" 2156 data-page-type="product" 2157 data-theme-instance-id="191325929781" 2158 data-theme-name="Cosori" 2159 data-theme-version="13.0.1" 2160 data-monorail-region="shop_domain" 2161 data-resource-timing-sampling-rate="10" 2162 data-shs="true" 2163 data-shs-beacon="true" 2164 data-shs-export-with-fetch="true" 2165 data-shs-logs-sample-rate="1" 2166 data-shs-beacon-endpoint="https://cosori.com/api/collect" 2167></script>
2167 2168<meta name="shopify-y" content="8c8089f9-05c0-4104-8017-716f44887dd7" data-expiration="1821938075000"><meta name="shopify-s" content="95a0118f-763e-4b84-8fbe-b5b967d7f469" data-expiration="1790382275000"><meta name="new-cookie-storage-activated" content="t"> 2169</head> 2170 2171 <body 2172 data-template="product" 2173 data-customer-logged-in="false" 2174 class="template-product handle_juni-coffee-maker temp-supx-juni-launch not_active gradient" 2175 > 2176 <a class="skip-to-content-link button visually-hidden" href="#MainContent"> 2177 Skip to content 2178 </a> 2179 <span 2180 id="page-data" 2181 2182 data-url="/products/juni-coffee-maker" 2183 2184 ></span> 2185 2186 2187 2188�<!-- Google Tag Manager (noscript) -->
vendor: 69 bytes, lines 2188-2189
2188 2189<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
2189GTM-PWGHF7VP
vendor: 85 bytes, lines 2189-2190
2189" 2190height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
2191<!-- End Google Tag Manager (noscript) --> 2192 2193 �<!-- BEGIN sections: dtc-header-group --> 2194<aside id="shopify-section-sections--28135024722229__dtc_header_top_bar_cfJcVM" class="shopify-section shopify-section-group-dtc-header-group dtc-header-top-bar-section"><style data-shopify>#shopify-section-sections--28135024722229__dtc_header_top_bar_cfJcVM .dtc-header-top-bar { 2195 background-color: #fb914a; 2196 color: #ffffff; 2197 }</style>
2197<script> 2198 (function() { 2199 var key = 'dtc-topbar-dismissed-shopify-section-sections--28135024722229__dtc_header_top_bar_cfJcVM'; 2200 if (sessionStorage.getItem(key) === 'dismissed') { 2201 document.write('<style>#shopify-section-sections--28135024722229__dtc_header_top_bar_cfJcVM{display:none!important}</style>'); 2202 } 2203 })(); 2204</script>
2204 2205 2206<dtc-header-top-bar class="dtc-header-top-bar"> 2207 <div class="dtc-header-top-bar__inner"><a 2208 href="/pages/shipping-and-delivery-cosori" 2209 class="dtc-header-top-bar__announcement dtc-header-top-bar__announcement--linked" 2210 target="_blank" 2211 rel="noopener noreferrer" 2212 data-v-gtm-promo-strip 2213 data-v-gtm-promo-name="Free Shipping to Continental US" 2214 ><span class="dtc-header-top-bar__announcement-img" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"> 2215 <path d="M0.5 7.49924C0.500827 6.70384 0.817163 5.94126 1.37959 5.37883C1.94202 4.8164 2.7046 4.50007 3.5 4.49924H5.9875C6.16938 4.48862 9.33875 4.26549 12.3569 1.73424C12.5026 1.61183 12.6803 1.53356 12.869 1.50862C13.0576 1.48368 13.2495 1.51311 13.4221 1.59344C13.5946 1.67377 13.7407 1.80168 13.843 1.96213C13.9454 2.12258 13.9999 2.30891 14 2.49924V12.4992C14 12.6896 13.9456 12.876 13.8433 13.0366C13.741 13.1971 13.5949 13.3251 13.4224 13.4055C13.2498 13.4859 13.0579 13.5154 12.8691 13.4905C12.6804 13.4656 12.5027 13.3873 12.3569 13.2649C9.99625 11.2849 7.54437 10.7174 6.5 10.5586V12.5411C6.50021 12.7059 6.4597 12.8682 6.38206 13.0135C6.30442 13.1589 6.19207 13.2828 6.055 13.3742L5.3675 13.8324C5.23462 13.9211 5.08241 13.9766 4.92364 13.9944C4.76487 14.0122 4.60415 13.9917 4.45494 13.9346C4.30573 13.8775 4.17237 13.7854 4.06603 13.6662C3.95969 13.547 3.88347 13.404 3.84375 13.2492L3.10812 10.4767C2.38642 10.3807 1.72414 10.0259 1.24441 9.47821C0.764683 8.93055 0.500153 8.22731 0.5 7.49924ZM13 12.4949V2.49924C10.3244 4.74361 7.58563 5.31174 6.5 5.45174V9.54424C7.58437 9.68674 10.3225 10.2536 13 12.4949ZM4.8125 12.9949V13.0017L5.5 12.5436V10.4992H4.15L4.8125 12.9949ZM3.5 9.49924H5.5V5.49924H3.5C2.96957 5.49924 2.46086 5.70995 2.08579 6.08503C1.71071 6.4601 1.5 6.96881 1.5 7.49924C1.5 8.02967 1.71071 8.53838 2.08579 8.91345C2.46086 9.28853 2.96957 9.49924 3.5 9.49924Z" fill="currentColor"/> 2216 </svg></span><div class="dtc-header-top-bar__announcement-text"><p>Free Shipping to Continental US</p></div></a><div class="dtc-header-top-bar__right"><div class="dtc-header-top-bar__brands"> 2217 <span class="dtc-header-top-bar__brands-label">Explore brands:</span> 2218 <nav class="dtc-header-top-bar__brands-list" aria-label="Explore brands"> 2219 <a href="https://levoit.com" target="_blank" rel="noopener" class="dtc-header-top-bar__brand-link" aria-label="Levoit"> 2220 <svg xmlns="http://www.w3.org/2000/svg" width="42" height="13" viewBox="0 0 42 13" fill="none"> 2221 <path d="M27.1151 12.7394C26.2234 12.7387 25.3519 12.4854 24.6108 12.0115C23.8697 11.5376 23.2923 10.8644 22.9516 10.077C22.6108 9.28961 22.5221 8.42333 22.6965 7.58772C22.8709 6.7521 23.3007 5.98465 23.9315 5.38239C24.5623 4.78013 25.3658 4.3701 26.2404 4.20412C27.1151 4.03815 28.0216 4.12368 28.8454 4.44992C29.6692 4.77616 30.3732 5.32844 30.8686 6.03697C31.3639 6.74549 31.6283 7.57844 31.6283 8.43051C31.6268 9.57349 31.1507 10.6692 30.3046 11.4771C29.4584 12.285 28.3113 12.739 27.1151 12.7394ZM27.1151 5.99503C26.6109 5.99468 26.118 6.13722 25.6986 6.40462C25.2792 6.67203 24.9522 7.05227 24.759 7.49727C24.5658 7.94226 24.5151 8.43201 24.6132 8.90457C24.7113 9.37712 24.954 9.81125 25.3103 10.152C25.6667 10.4928 26.1209 10.725 26.6154 10.8191C27.1098 10.9132 27.6224 10.8651 28.0882 10.6808C28.5541 10.4965 28.9523 10.1843 29.2324 9.78378C29.5126 9.38323 29.6621 8.91228 29.6621 8.43051C29.6616 7.78503 29.3932 7.1661 28.9157 6.70951C28.4382 6.25292 27.7907 5.99597 27.1151 5.99503Z" fill="currentColor"/> 2222 <path d="M13.3181 8.99242C13.3448 8.80616 13.3583 8.61839 13.3588 8.43039C13.3588 7.28759 12.8837 6.1916 12.038 5.38352C11.1923 4.57544 10.0453 4.12146 8.8493 4.12146C7.65332 4.12146 6.50632 4.57544 5.66063 5.38352C4.81495 6.1916 4.33984 7.28759 4.33984 8.43039C4.34025 8.61839 4.35385 8.80616 4.38054 8.99242C4.50285 9.88494 4.91484 10.7184 5.55859 11.3755C6.20233 12.0327 7.04545 12.4806 7.96938 12.6561C8.89332 12.8317 9.8516 12.7261 10.7095 12.3543C11.5674 11.9824 12.2817 11.363 12.7521 10.5831L11.0541 9.64636C10.8 10.0692 10.4188 10.4093 9.95981 10.6223C9.50085 10.8354 8.98544 10.9116 8.48055 10.8411C7.97566 10.7705 7.50465 10.5565 7.12872 10.2268C6.7528 9.89716 6.48935 9.46706 6.37261 8.99242H13.3181ZM6.50394 7.49367C6.54731 7.39781 6.59673 7.30456 6.65191 7.21442C6.88888 6.82106 7.23632 6.49892 7.65492 6.28444C8.07353 6.06995 8.5466 5.97168 9.02061 6.00073C9.49463 6.02979 9.95068 6.18501 10.3372 6.44885C10.7237 6.71269 11.0252 7.
222207461 11.2076 7.49367H6.50394Z" fill="currentColor"/> 2223 <path d="M20.4678 4.30908L17.9874 10.3289L15.507 4.30908H13.3984L16.7963 12.5523H19.1786L22.5746 4.30908H20.4678Z" fill="currentColor"/> 2224 <path d="M39.9383 10.4897C39.8543 10.6361 39.7215 10.7513 39.561 10.817C39.4005 10.8826 39.2215 10.895 39.0528 10.852C38.8841 10.8091 38.7353 10.7133 38.6302 10.58C38.5252 10.4467 38.4699 10.2836 38.4733 10.1168V5.80789H40.7817V4.30913H38.4733V0.751343H36.5127V10.1186C36.5116 10.6961 36.7103 11.2577 37.0778 11.7161C37.4453 12.1746 37.961 12.5041 38.5448 12.6535C39.1286 12.8029 39.7476 12.7637 40.3057 12.5421C40.8638 12.3205 41.3296 11.9289 41.6307 11.4282L39.9383 10.4897Z" fill="currentColor"/> 2225 <path d="M34.8278 4.30908H32.8672V12.5505H34.8278V4.30908Z" fill="currentColor"/> 2226 <path d="M33.8483 3.40732C34.4979 3.40732 35.0246 2.90405 35.0246 2.28325C35.0246 1.66244 34.4979 1.15918 33.8483 1.15918C33.1986 1.15918 32.6719 1.66244 32.6719 2.28325C32.6719 2.90405 33.1986 3.40732 33.8483 3.40732Z" fill="currentColor"/> 2227 <path d="M3.14441 10.7634C3.02644 10.8307 2.89154 10.8661 2.75414 10.8659C2.54614 10.8659 2.34666 10.7869 2.19958 10.6464C2.05251 10.5059 1.96988 10.3153 1.96988 10.1165V0.749268H0V10.1165C0.000978735 10.8118 0.290486 11.4784 0.80504 11.9701C1.31959 12.4618 2.0172 12.7384 2.74489 12.7393C3.22648 12.7398 3.69954 12.6178 4.11548 12.3859L3.14441 10.7634Z" fill="currentColor"/> 2228 <path d="M8.85609 3.22728C7.94625 3.22588 7.05267 2.9967 6.26438 2.56256C5.4761 2.12842 4.82063 1.50448 4.36328 0.752914L5.72093 0C6.04042 0.526264 6.49913 0.962996 7.05103 1.26638C7.60293 1.56977 8.22862 1.72915 8.86534 1.72852C9.49892 1.72606 10.1208 1.56522 10.6692 1.26198C11.2175 0.958748 11.6733 0.523677 11.9913 0L13.3489 0.751147C12.8918 1.50305 12.2364 2.12734 11.4481 2.56179C10.6598 2.99625 9.76612 3.2257 8.85609 3.22728Z" fill="currentColor"/> 2229 </svg> 2230 </a> 2231 <a href="https://www.etekcity.com" target="_blank" rel="noopener" class="dtc-header-top-bar__brand-link" aria-label="Etekcity"> 2232 <svg xmlns="http://www.w3.org/2000/svg" width="58" height="16" viewBox="0 0 58 16" fill="none"> 2233 <g clip-path="url(#clip0_cosori_topbar_etekcity)"> 2234 <path d="M19.2995 2.4455C19.3784 2.43049 19.4888 2.43921 19.5734 2.43332C20.7062 2.35448 21.8318 2.68123 22.689 3.46387C23.7981 4.47648 24.0457 5.82177 24.1124 7.27987L16.8973 7.27717C16.9685 9.35651 18.7619 10.6865 20.7515 10.2586C21.4197 10.1148 21.9651 9.73191 22.4453 9.25435C22.9849 8.67944 23.5429 8.74057 24.1698 9.12147C24.0203 9.31883 23.8865 9.57073 23.7359 9.77644C22.7671 11.0994 21.5201 11.686 19.9273 11.6932C14.3722 11.7184 13.8727 3.26971 19.2995 2.4455ZM17.0126 5.98283C17.3116 5.95356 17.7878 5.96841 18.098 5.96884L20.0057 5.97045L22.5893 5.96787C22.2973 5.10863 21.9882 4.49377 21.1497 4.0509C20.7411 3.83508 20.0584 3.7127 19.6113 3.79645C18.2658 3.88798 17.4576 4.75872 17.0126 5.98283Z" fill="currentColor"/> 2235 <path d="M37.5979 2.39254C37.9618 2.32833 39.1529 2.4563 39.5403 2.52117C39.536 2.99623 39.5369 3.47133 39.542 3.9464C38.9142 3.82055 37.9488 3.73648 37.3065 3.8633C35.3806 4.2436 34.5639 6.05089 34.927 7.88722C35.0773 8.63827 35.512 9.29986 36.1384 9.73023C37.1896 10.4374 38.3623 10.3616 39.546 10.1183C39.5324 10.3761 39.5383 10.6815 39.5369 10.943L39.544 11.5459C37.891 11.8784 36.2452 11.7879 34.9086 10.6417C33.0061 9.0102 32.8481 5.79715 34.4288 3.89046C35.252 2.89768 36.3599 2.49424 37.5979 2.39254Z" fill="currentColor"/> 2236 <path d="M41.832 3.31711C42.2579 3.32804 42.8654 3.23674 43.191 3.54444C43.5017 3.83794 43.4264 4.44907 43.4249 4.85483L43.4204 6.27482C43.4125 8.0737 43.4167 9.87261 43.4332 11.6714C42.9155 11.6483 42.3554 11.6601 41.8374 11.6658L41.832 3.31711Z" fill="currentColor"/> 2237 <path d="M42.2305 0.867188C42.7498 0.878393 43.2882 0.871646 43.8089 0.871962C43.7982 1.30778 43.9013 1.95961 43.575 2.27535C43.2052 2.54811 42.7068 2.47349 42.235 2.47036C42.2381 1.93596 42.2367 1.40155 42.2305 0.867188Z" fill="currentColor"/> 2238 <path d="M0 6.93984C0.0573211 6.57456 0.0713741 6.22936 0.152033 5.85938C0.390162 4.80235 0.995358 3.86709
22381.85738 3.22397C2.78466 2.54305 4.03182 2.28956 5.15493 2.4708C6.19778 2.63598 7.13379 3.2121 7.75869 4.07343C8.39792 4.96794 8.64944 6.19248 8.63953 7.28077L1.43736 7.27569C1.56995 9.2564 2.92053 10.4507 4.87962 10.3125C5.44009 10.2738 5.97797 10.0738 6.4299 9.73602C6.93088 9.35747 7.22596 8.78586 7.93494 8.83458C8.24545 8.85591 8.4394 8.96137 8.69526 9.1206C8.13019 10.0409 7.59886 10.7167 6.60961 11.2188C5.2321 11.918 3.38495 11.8596 2.06726 11.0304C1.10236 10.4228 0.415645 9.45172 0.158462 8.33106C0.0776897 7.9768 0.0637922 7.5058 0 7.24091V6.93984ZM1.55695 5.96702L4.57341 5.96954C5.40804 5.96909 6.28843 5.98299 7.11926 5.96427C6.69222 4.51767 5.67015 3.62107 4.12845 3.79572C2.8061 3.89769 1.98254 4.74778 1.55695 5.96702Z" fill="currentColor"/> 2239 <path d="M51.1684 2.4375C51.8497 2.46383 52.4563 2.71696 52.5818 3.48105C52.6543 3.92214 52.6135 4.43557 52.6172 4.8881C52.6257 5.91012 52.5999 6.93513 52.6169 7.95735C52.6398 8.58909 52.7789 9.35124 53.2645 9.79072C53.9113 10.3761 54.9721 10.4219 55.6948 9.96076C56.7021 9.31798 56.5772 7.87021 56.5772 6.82777L56.5755 4.58688C56.5738 3.93713 56.4602 3.20721 57.0178 2.75214C57.3327 2.49498 57.6137 2.46104 57.9942 2.44998V11.8047C57.9597 11.9292 57.9118 12.2841 57.8852 12.4308C57.794 12.9188 57.6032 13.3822 57.3245 13.791C56.8734 14.4468 56.1394 14.8799 55.3666 14.9953C53.175 15.3228 51.649 14.3732 51.2601 12.1591C51.7365 12.1841 52.236 12.1714 52.7129 12.1629C52.8086 12.5184 52.8961 12.7949 53.1436 13.0877C53.7686 13.8269 55.1466 13.8705 55.8647 13.25C56.5534 12.6549 56.5191 11.9294 56.5783 11.1028C55.2915 11.9162 53.3407 11.8677 52.2133 10.7718C51.001 9.59328 51.1721 7.73579 51.1726 6.17521L51.1684 2.4375Z" fill="currentColor"/> 2240 <path d="M25.998 0H27.5056C27.5527 1.3716 27.4812 2.84936 27.5095 4.22965C27.5171 4.60066 27.4785 5.6236 27.5402 5.91366C27.5919 5.96335 27.5706 5.95005 27.653 5.9532C27.8391 5.87332 28.0668 5.58128 28.2106 5.41832C28.9579 4.57144 29.7562 3.69672 30.5061 2.85952C31.0379 2.26597 32.0863 2.43446 32.8936 2.43837C32.6056 2.83018 31.9365 3.52195 31.5893 3.90925C30.6599 4.94827 29.7248 5.98219 28.7843 7.01095C29.1686 7.37858 29.8228 8.16978 30.1895 8.58821L32.8925 11.6739C32.3731 11.6406 31.4845 11.7555 31.0314 11.5892C30.3149 11.3264 28.0142 8.14122 27.
22406576 8.05844C27.6142 8.04837 27.5922 8.073 27.5563 8.09511C27.4727 8.28462 27.5143 11.2346 27.5189 11.6716C27.0568 11.6409 26.4618 11.6599 25.9976 11.6657C25.9774 10.2747 25.9963 8.83217 25.9963 7.43762L25.998 0Z" fill="currentColor"/> 2241 <path d="M45.5618 0H47.0672L47.0723 2.4359L49.0801 2.43517L49.0809 2.71442C49.0792 4.17428 48.239 3.84688 47.0658 3.83986C47.0873 4.99286 47.0548 6.17035 47.0678 7.32585C47.0754 7.88837 47.0468 8.44769 47.0953 9.00883C47.2233 10.4908 48.751 10.4933 49.7303 9.8388C49.7291 10.2327 49.8441 11.1115 49.5822 11.3876C49.3299 11.6537 48.6395 11.6876 48.2849 11.6953C47.5563 11.7066 46.8294 11.5041 46.3091 10.9635C45.5344 10.1579 45.5573 9.21382 45.559 8.18076V6.45468L45.5618 0Z" fill="currentColor"/> 2242 <path d="M10.4974 0H12.0057L12.0077 2.43635L14.0373 2.43528C14.036 4.16949 13.4898 3.84608 12.0037 3.84126C12.0321 5.53838 11.9622 7.28941 12.022 8.98498C12.0736 10.4471 13.6682 10.5045 14.6747 9.8394C14.6661 10.1683 14.7529 11.3055 14.5287 11.4031C12.4141 12.3233 10.3914 11.1175 10.5003 8.70371C10.5411 7.79854 10.4981 6.96608 10.4981 6.2595L10.4974 0Z" fill="currentColor"/> 2243 </g> 2244 <defs> 2245 <clipPath id="clip0_cosori_topbar_etekcity"> 2246 <rect width="57.996" height="16" fill="white"/> 2247 </clipPath> 2248 </defs> 2249 </svg> 2250 </a> 2251 <a href="https://www.vesync.com/" target="_blank" rel="noopener" class="dtc-header-top-bar__brand-link" aria-label="VeSync"> 2252 <svg width="46" height="19" viewBox="0 0 46 19" fill="none" xmlns="http://www.w3.org/2000/svg"> 2253 <g clip-path="url(#clip0_cosori_topbar_vesync)"> 2254 <path d="M11.1183 7.34063C11.1307 7.33932 11.1431 7.33814 11.1555 7.33709C11.9665 7.26842 13.019 7.59997 13.6158 8.13687C14.6708 9.08599 14.7782 10.0498 14.8792 11.3225L8.80486 11.3201C8.86481 12.0139 9.02572 12.5762 9.53534 13.0939C10.0169 13.582 10.6754 13.858 11.3635 13.8604C12.4189 13.8681 12.9268 13.5048 13.6217 12.8252C14.0543 12.5148 14.4779 12.5867 14.9097 12.8521C14.7608 13.1131 14.5814 13.3855 14.3873 13.6148C13.7304 14.4022 12.7821 14.8941 11.7561 14.9797C8.14235 15.2838 6.39828 11.2588 8.53509 8.58204C9.1692 7.78774 10.1134 7.41795 11.1183 7.34063ZM8.89431 10.2735C9.79227 10.2828 10.6903 10.2854 11.5883 10.2811L13.5942 10.2792C13.3889 9.5978 13.1065 9.06856 12.4465 8.70771C11.9514 8.43705 11.4687 8.43779 10.9201 8.47293C10.2073 8.60757 9.70823 8.89492 9.27701 9.49878C9.06052 9.8019 9.03459 9.97387 8.89431 10.2735Z" fill="currentColor"/> 2255 <path d="M20.5045 4.08594C20.5071 4.08687 20.5097 4.08772 20.5122 4.08877C20.6392 4.14111 24.134 7.6475 24.4221 8.00646C24.7111 8.36888 24.9451 8.77113 25.1174 9.20059C25.5737 10.3376 25.5605 11.6075 25.0804 12.7348C24.5758 13.9246 23.609 14.8617 22.399 15.3337C19.9352 16.316 17.1907 15.0392 16.2126 12.6188C15.9468 11.9512 15.872 11.2047 15.9001 10.4928C16.1388 10.5335 16.8375 10.5174 17.0919 10.509C17.2303 11.6567 17.2409 12.4494 18.1421 13.3671C18.7971 14.0381 19.6965 14.4189 20.6375 14.4238C21.5568 14.433 22.4928 14.0483 23.1479 13.4092C23.8147 12.7665 24.1932 11.8845 24.1982 10.9617C24.2096 9.52771 23.519 8.77594 22.5585 7.8449C22.0085 7.28961 21.448 6.74422 20.8801 6.20699C20.4737 5.82249 20.4938 5.38035 20.4974 4.86749L20.5045 4.08594Z" fill="currentColor"/> 2256 <path d="M36.3026 7.38936C36.5537 7.33425 37.0408 7.3937 37.2984 7.43945C37.8774 7.54776 38.4498 7.85563 38.82 8.31545C39.6178 9.30637 39.4776 10.6203 39.4773 11.8111L39.4794 14.9432C38.9795 14.9352 38.5572 14.8022 38.3436 14.3058C38.2297 14.0405 38.2638 13.561 38.2638 13.2633L38.2653 11.2711C38.266 10.1406 38.369 8.86127 36.9685 8.55884C36.4613 8.48324 35.836 8.56216 35.4631 8.94567C34.8683 9.55733 34.972 10.4832 34.9733 11.2683L34.9771 13.6313C34.9753 14.4418 34.6332 14.95 33.766 14.9437C33.7095 14.3207 33.746 13.1989 33.7456 12.546L33.744 11.0101C33.7438 10.5634 33.7193 10.1358 33.8068 9.69505C34.0889 8.27664 34.8712 7.55594 36.3026 7.38936Z" fill="currentColor"/> 2257 <path d="M0.412789 7.36441C1.24454 7.32985 1.72578 7.4565 2.02596 8.27667C2.20543 8.76704 2.40903 9.27814 2.59588 9.76723C2.85742 10.4595 3.12342 11.1501 3.39382 11.839C3.46696 12.0268 3.62052 12.5261 3.72581 12.6673C3.79554 12.7121 3.80629 12.7142 3.88894 12.725C4.0733 12.6572 4.39725 11.6496 4.48469 11.4202L5.41161 8.98073C5.87186 7.76419 5.87777 7.32298 7.33943 7.36993C7.22074 7.76539 6.85847 8.60737 6.69697 9.03033C5.90552 10.9952 5.17027 12.9996 4.36945 14.959C4.04862 14.9809 3.64751 14.9708 3.3205 14.9709L1.43238 10.1921L0.68556 8.29761C0.62378 8.13932 0.338254 7.48335 0.36062 7.3761L0.412789 7.36441Z" fill="currentColor"/> 2258 <path d="M44.0788 7.33992C44.4616 7.29173 45.2325 7.40347 45.619 7.45438C45.6247 7.84028 45.6249 8.22623 45.
22586199 8.61212C45.0054 8.49004 44.2565 8.4603 43.6236 8.58744C41.3968 9.03245 41.0351 12.3217 42.8917 13.4247C43.6655 13.8846 44.7584 13.8885 45.6177 13.6774L45.6247 14.4497L45.6312 14.849C45.3866 14.8718 45.0828 14.9335 44.8228 14.9657C41.1453 15.4213 39.1974 11.3671 41.3481 8.59296C42.0055 7.74518 43.014 7.43342 44.0788 7.33992Z" fill="currentColor"/> 2259 <path d="M26.6561 7.34919C27.0382 7.38103 27.3277 7.447 27.5976 7.74415C27.9087 8.08658 27.8338 8.66252 27.8298 9.11809L27.8262 10.9153C27.8237 12.0947 27.7221 13.6392 29.3108 13.7899C29.6374 13.8208 29.9697 13.7706 30.2692 13.638C31.2908 13.1857 31.1864 11.7553 31.1864 10.8276L31.1851 9.14895C31.1846 8.78344 31.1784 8.46125 31.2181 8.09578C31.262 7.69366 32.05 7.19798 32.3518 7.3841C32.3926 7.44346 32.3713 8.39761 32.3713 8.54685L32.3715 11.1156C32.3715 12.3259 32.3738 13.5365 32.3706 14.7466C32.3699 14.98 32.3338 15.2504 32.2955 15.4737C32.1041 16.5913 31.37 17.4649 30.2286 17.6955C30.1396 17.7135 29.9401 17.7511 29.8589 17.7824H29.1477C28.9341 17.729 28.7227 17.6817 28.5118 17.618C27.4333 17.2921 26.8491 16.4199 26.6976 15.3502C27.1006 15.377 27.506 15.3388 27.8951 15.3625C28.0393 15.809 28.2415 16.2272 28.6828 16.4475C29.0923 16.6519 29.6386 16.6786 30.0718 16.5391C31.0619 16.2201 31.1142 15.3469 31.1878 14.4687C30.1131 15.2638 28.0277 15.0694 27.2408 13.9281C26.7874 13.2702 26.6216 12.5581 26.6445 11.7701C26.6867 10.3159 26.5823 8.79723 26.6561 7.34919Z" fill="currentColor"/> 2260 <path d="M20.2641 0.804688H21.1009C21.1627 0.827841 21.7106 0.92 21.8368 0.951729C22.4856 1.11475 23.1706 1.48335 23.6637 1.928C24.4246 2.60382 24.935 3.5136 25.1131 4.51164C25.1575 4.77356 25.1661 5.04353 25.1793 5.30886C24.7853 5.2981 24.3727 5.30282 23.977 5.30213C23.92 5.03774 23.8935 4.761 23.8282 4.49235C23.6514 3.77378 23.2325 3.13686 22.6413 2.68717C21.9613 2.16254 21.1207 1.9564 20.2701 2.06251C19.4153 2.16233 18.637 2.60017 18.1113 3.27703C17.693 3.80854 17.4568 4.4589 17.437 5.13317C17.4024 6.53697 18.0073 7.16023 18.9233 8.06897C19.305 8.44944 19.6894 8.82707 20.0767 9.20187C20.4338 9.54541 20.818 9.82901 20.8652 10.3549C20.8793 10.512 20.9034 11.494 20.8362 11.579L20.8078 11.5805C20.6677 11.4821 20.4534 11.2622 20.3186 11.1334C20.0145 10.8467 19.7136 10.5565 19.4162 10.263C18.9212 9.78095 18.4294 9.2957 17.9407 8.80735C17.5813 8.44589 17.1849 8.07022 16.8982 7.65193C16.5944 7.20994 16.3802 6.71344 16.2675 6.19011C16.0081 5.03475 16.268 3.83138 16.9033 2.83893C17.4664 1.95962 18.3284 1.31 19.3327 1.00805C19.6776 0.905051 19.9214 0.880764 20.2641 0.804688Z" fill="currentColor"/> 2261 </g> 2262 <defs> 2263 <clipPath id="clip0_cosori_topbar_vesync"> 2264 <rect width="45.9491" height="16.9787" fill="white" transform="translate(0 0.804688)"/> 2265 </clipPath> 2266 </defs> 2267 </svg> 2268 </a> 2269 </nav> 2270 </div><span class="dtc-header-top-bar__divider" aria-hidden="true"></span><a href="https://support.cosori.com/s/?_gl=1*46knml*_gcl_au*OTE4NDgxMzI1LjE3ODA5MDI2NTA.*_ga*MzA5Njc4MzAwLjE3NzI3NjUwNjY.*_ga_0S433F551Q*czE3ODA5MDI2NTAkbzIwJGcwJHQxNzgwOTAyNjU4JGo1MiRsMCRoMTMxMTQyMzA3" class="dtc-header-top-bar__support-link">Support</a></div><button 2271 class="dtc-header-top-bar__close" 2272 aria-label="Close announcement" 2273 type="button" 2274 > 2275 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"> 2276 <path d="M12.5 3.5L3.5 12.5M3.5 3.5L12.5 12.5" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2277 </svg> 2278 </button> 2279 2280 </div> 2281</dtc-header-top-bar></aside><header id="shopify-section-sections--28135024722229__dtc_header_Cjn8AK" class="shopify-section shopify-section-group-dtc-header-group section-header dtc-header-section"><link rel="stylesheet" href="//cosori.com/cdn/shop/t/166/assets/component-search.css?v=165164710990765432851789674181" media="print" onload="this.media='all'"><link rel="stylesheet" href="//cosori.com/cdn/shop/t/166/assets/component-price.css?v=34032550459237142151789674181" media="print" onload="this.media='all'">
2281<script src="//cosori.com/cdn/shop/t/166/assets/search-form.js?v=133129549252120666541789674181" defer="defer"></script>
2281<style data-shopify>#shopify-section-sections--28135024722229__dtc_header_Cjn8AK { 2282 position: sticky; 2283 top: 0; 2284 left: 0; 2285 right: 0; 2286 z-index: 40; 2287 }</style><div class="dtc-header" id="dtc-header-sections--28135024722229__dtc_header_Cjn8AK" data-v-gtm-scope="header"> 2288 <div class="dtc-header__inner"><div class="dtc-header__mobile-right"> 2289 <span class="dtc-header__mobile-divider" aria-hidden="true"></span><dtc-mobile-nav class="dtc-mobile-nav"><button 2290 type="button" 2291 class="dtc-mobile-nav__toggle" 2292 aria-expanded="false" 2293 aria-controls="dtc-mobile-nav-drop-sections--28135024722229__dtc_header_Cjn8AK" 2294 aria-label="Menu" 2295 ><span class="dtc-mobile-nav__icon dtc-mobile-nav__icon--menu" aria-hidden="true"> 2296 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> 2297 <path d="M21 7.75H3C2.59 7.75 2.25 7.41 2.25 7C2.25 6.59 2.59 6.25 3 6.25H21C21.41 6.25 21.75 6.59 21.75 7C21.75 7.41 21.41 7.75 21 7.75Z" fill="currentColor"/> 2298 <path d="M21 12.75H3C2.59 12.75 2.25 12.41 2.25 12C2.25 11.59 2.59 11.25 3 11.25H21C21.41 11.25 21.75 11.59 21.75 12C21.75 12.41 21.41 12.75 21 12.75Z" fill="currentColor"/> 2299 <path d="M21 17.75H3C2.59 17.75 2.25 17.41 2.25 17C2.25 16.59 2.59 16.25 3 16.25H21C21.41 16.25 21.75 16.59 21.75 17C21.75 17.41 21.41 17.75 21 17.75Z" fill="currentColor"/> 2300 </svg> 2301 </span><span class="dtc-mobile-nav__icon dtc-mobile-nav__icon--close" aria-hidden="true"> 2302 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> 2303 <path d="M18 6L6 18M6 6L18 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2304 </svg> 2305 </span> 2306 </button><div 2307 id="dtc-mobile-nav-drop-sections--28135024722229__dtc_header_Cjn8AK" 2308 class="dtc-mobile-nav__drop" 2309 aria-hidden="true" 2310 > 2311 <div class="dtc-mobile-nav__drop-inner"><div class="dtc-mobile-nav__drop-scroll"><div class="dtc-mobile-nav__search dtc-drop-anim" data-delay="0"><div class="dtc-header-search"><predictive-search class="dtc-header-search__predictive" data-loading-text="Loading..."><form 2312 action="/search" 2313 method="get" 2314 role="search" 2315 class="dtc-header-search__form" 2316 data-search-form 2317 > 2318 <label class="dtc-header-search__field"> 2319 <span class="dtc-header-search__icon" aria-hidden="true"> 2320 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"> 2321 <path d="M9.16667 15.8333C12.8486 15.8333 15.8333 12.8486 15.8333 9.16667C15.8333 5.48477 12.8486 2.5 9.16667 2.5C5.48477 2.5 2.5 5.48477 2.5 9.16667C2.5 12.8486 5.48477 15.8333 9.16667 15.8333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2322 <path d="M17.5 17.5L13.875 13.875" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2323 </svg> 2324 </span> 2325 <input 2326 class="dtc-header-search__input" 2327 id="Dtc-Search-Mobile-" 2328 type="search" 2329 name="q" 2330 value="" 2331 placeholder="Search..." 2332 aria-label="Find your next kitchen companion..." 2333 data-search-input 2334 data-element-location="header_drawer"role="combobox" 2335 aria-expanded="false" 2336 aria-owns="predictive-search-results" 2337 aria-controls="predictive-search-results" 2338 aria-haspopup="listbox" 2339 aria-autocomplete="list" 2340 autocorrect="off" 2341 autocomplete="off" 2342 autocapitalize="off" 2343 spellcheck="false"> 2344 <button type="submit" class="visually-hidden" data-search-submit>Find your next kitchen companion...</button> 2345 </label> 2346 2347 <input type="hidden" name="options[prefix]" value="last"><aside class="dtc-mobile-nav__search-results"> 2348 <div class="predictive-search predictive-search--header" tabindex="-1" data-predictive-search> 2349 2350<link href="//cosori.com/cdn/shop/t/166/assets/component-loading-spinner.css?v=116724955567955766481789674181" rel="stylesheet" type="text/css" media="all" /> 2351 2352<div class="predictive-search__loading-state"> 2353 <svg 2354 aria-hidden="true" 2355 focusable="false" 2356 class="spinner"
2357 viewBox="0 0 66 66" 2358 xmlns="http://www.w3.org/2000/svg" 2359 > 2360 <circle class="path" fill="none" stroke-width="6" cx="33" cy="33" r="30"></circle> 2361 </svg> 2362</div> 2363</div> 2364 </aside> 2365 <span class="predictive-search-status visually-hidden" role="status" aria-hidden="true"></span></form></predictive-search></div> 2366</div><nav class="dtc-mobile-nav__nav" aria-label="Main navigation"> 2367 <ul class="dtc-mobile-nav__menu" role="list"><li class="dtc-mobile-nav__item dtc-drop-anim" data-delay="1"><details class="dtc-mobile-nav__sub-details"> 2368 <summary class="dtc-mobile-nav__link dtc-mobile-nav__link--has-sub"> 2369 <span>Shop</span> 2370 <span class="dtc-mobile-nav__chevron" aria-hidden="true"> 2371 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none"> 2372 <path d="M19.9201 8.95001L13.4001 15.47C12.6301 16.24 11.3701 16.24 10.6001 15.47L4.08008 8.95001" stroke="#121A25" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 2373 </svg> 2374 </span> 2375 </summary> 2376 <div class="dtc-mobile-nav__sub-panel"> 2377 <div class="dtc-mobile-nav__sub-panel-inner"><div class="dtc-mobile-nav__mega-shop"> 2378 <div class="dtc-mobile-nav__mega-cards"><a 2379 href="/collections/air-fryers" 2380 class="dtc-header__mega-card dtc-mega-anim" 2381 data-mega-delay="0" 2382 title="Air Fryers" 2383 > 2384 <span class="dtc-header__mega-card-icon" aria-hidden="true"><img src="//cosori.com/cdn/shop/files/CGTM_2303_CAF-DC601-KUS_WA1_01_Front_v2_1_43fa6802-67e3-4603-9ad1-54c54f2e5a8a.png?v=1762457880&width=72" alt="" width="36" height="36" loading="lazy"></span> 2385 <span class="dtc-header__mega-card-text"> 2386 <span class="dtc-header__mega-card-title">Air Fryers</span><span class="dtc-header__mega-card-desc">Smart and classic air fryers</span></span> 2387 <svg class="dtc-header__mega-card-arrow" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2388 <path d="M7 17L17 7M17 7H7M17 7V17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2389 </svg> 2390 </a><a 2391 href="/products/juni-coffee-maker" 2392 class="dtc-header__mega-card dtc-mega-anim" 2393 data-mega-delay="1" 2394 title="Coffee Machines & Accessories" 2395 > 2396 <span class="dtc-header__mega-card-icon" aria-hidden="true"><img src="//cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=72" alt="" width="36" height="36" loading="lazy"></span> 2397 <span class="dtc-header__mega-card-text"> 2398 <span class="dtc-header__mega-card-title">Coffee Machines & Accessories</span><span class="dtc-header__mega-card-desc">Coffee makers & brewing accessories</span></span> 2399 <svg class="dtc-header__mega-card-arrow" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2400 <path d="M7 17L17 7M17 7H7M17 7V17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2401 </svg> 2402 </a><a 2403 href="/collections/kettles" 2404 class="dtc-header__mega-card dtc-mega-anim" 2405 data-mega-delay="2" 2406 title="Kettles" 2407 >
2408 <span class="dtc-header__mega-card-icon" aria-hidden="true"><img src="//cosori.com/cdn/shop/files/1.7kettle.png?v=1777276501&width=72" alt="" width="36" height="36" loading="lazy"></span> 2409 <span class="dtc-header__mega-card-text"> 2410 <span class="dtc-header__mega-card-title">Kettles</span><span class="dtc-header__mega-card-desc">Electric kettles with precise control</span></span> 2411 <svg class="dtc-header__mega-card-arrow" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2412 <path d="M7 17L17 7M17 7H7M17 7V17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2413 </svg> 2414 </a><a 2415 href="/collections/multicookers" 2416 class="dtc-header__mega-card dtc-mega-anim" 2417 data-mega-delay="3" 2418 title="Multi-Cookers" 2419 > 2420 <span class="dtc-header__mega-card-icon" aria-hidden="true"><img src="//cosori.com/cdn/shop/files/rice-cooker-front-view_9b6348a0-6b96-4e1e-9856-f84ca524e6c4.png?v=1762457775&width=72" alt="" width="36" height="36" loading="lazy"></span> 2421 <span class="dtc-header__mega-card-text"> 2422 <span class="dtc-header__mega-card-title">Multi-Cookers</span><span class="dtc-header__mega-card-desc">Rice cookers, pressure cookers & more</span></span> 2423 <svg class="dtc-header__mega-card-arrow" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2424 <path d="M7 17L17 7M17 7H7M17 7V17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2425 </svg> 2426 </a><a 2427 href="/collections/food-dehydrators" 2428 class="dtc-header__mega-card dtc-mega-anim" 2429 data-mega-delay="4" 2430 title="Food Dehydrators" 2431 > 2432 <span class="dtc-header__mega-card-icon" aria-hidden="true"><img src="//cosori.com/cdn/shop/products/01.00_WA1_0522CFD-P101-SUS_LP_04b.png?v=1684946576&width=72" alt="" width="36" height="36" loading="lazy"></span> 2433 <span class="dtc-header__mega-card-text"> 2434 <span class="dtc-header__mega-card-title">Food Dehydrators</span><span class="dtc-header__mega-card-desc">Dehydrators for snacks, jerky, and more</span></span> 2435 <svg class="dtc-header__mega-card-arrow" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2436 <path d="M7 17L17 7M17 7H7M17 7V17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2437 </svg> 2438 </a></div><a 2439 href="/collections/daily-sale" 2440 class="dtc-header__mega-promo dtc-mobile-nav__mega-promo dtc-mega-anim" 2441 data-mega-delay="5" 2442 > 2443 <div class="dtc-header__mega-promo-img"><div class="v-image "><picture><img src="//cosori.com/cdn/shop/files/card_c4192c9d-aeb1-4ea0-82c2-1cf244b81429.png?v=1780911046&width=648" alt="image" srcset="//cosori.com/cdn/shop/files/card_c4192c9d-aeb1-4ea0-82c2-1cf244b81429.png?v=1780911046&width=200 200w, //cosori.com/cdn/shop/files/card_c4192c9d-aeb1-4ea0-82c2-1cf244b81429.png?v=1780911046&width=400 400w, //cosori.com/cdn/shop/files/card_c4192c9d-aeb1-4ea0-82c2-1cf244b8
24431429.png?v=1780911046&width=600 600w" width="648" height="682" loading="lazy" sizes="(max-width: 699px) 400px, 686px" style="object-position:46.68% 37.891%;--image-max-width: 686px; --image-mobile-max-width: 400px"></picture> 2444 </div><style></style> 2445</div> 2446 <div class="dtc-header__mega-promo-overlay"> 2447 <div class="dtc-header__mega-promo-content"><span class="dtc-header__mega-promo-tags">Air Fryers + Dehydrators+ Rice Cookers</span><span class="dtc-header__mega-promo-title">Shop The Daily Sale</span><span class="dtc-header__mega-promo-desc">Upgrade your everyday cooking with COSORI.</span></div><span class="dtc-header__mega-promo-btn">Shop now</span></div> 2448 </a></div></div> 2449 </div> 2450 </details></li><li class="dtc-mobile-nav__item dtc-drop-anim" data-delay="2"><details class="dtc-mobile-nav__sub-details"> 2451 <summary class="dtc-mobile-nav__link dtc-mobile-nav__link--has-sub"> 2452 <span>Explore</span> 2453 <span class="dtc-mobile-nav__chevron" aria-hidden="true"> 2454 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none"> 2455 <path d="M19.9201 8.95001L13.4001 15.47C12.6301 16.24 11.3701 16.24 10.6001 15.47L4.08008 8.95001" stroke="#121A25" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 2456 </svg> 2457 </span> 2458 </summary> 2459 <div class="dtc-mobile-nav__sub-panel"> 2460 <div class="dtc-mobile-nav__sub-panel-inner"><div class="dtc-mobile-nav__mega-explore"><a 2461 href="/pages/coffee-story" 2462 class="dtc-header__mega-card dtc-header__mega-explore-featured dtc-mega-anim" 2463 data-mega-delay="0" 2464 title="Coffee Hub" 2465 > 2466 <span class="dtc-header__mega-explore-featured-top"> 2467 <span class="dtc-header__mega-card-icon" aria-hidden="true"><img src="//cosori.com/cdn/shop/files/Coffee.png?v=1787730496&width=64" alt="" width="32" height="32" loading="lazy"></span> 2468 <span class="dtc-header__mega-card-text"> 2469 <span class="dtc-header__mega-card-title">Coffee Hub</span><span class="dtc-header__mega-card-desc">Explore recipes, tips, partnerships, andcoffee knowledge</span></span> 2470 <svg class="dtc-header__mega-card-arrow" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2471 <path d="M7 17L17 7M17 7H7M17 7V17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2472 </svg> 2473 </span> 2474 <span class="dtc-header__mega-explore-gallery"><span class="dtc-header__mega-explore-gallery-item"><div class="v-image dtc-header__mega-explore-gallery-image"><picture><img src="//cosori.com/cdn/shop/files/expolre-coffee-1.png?v=1787564629&width=202" alt="Coffee Hub" srcset="//cosori.com/cdn/shop/files/expolre-coffee-1.png?v=1787564629&width=200 200w" width="202" height="221" loading="lazy" sizes="(max-width: 699px) 360px, 404px" style="object-position:35.547% 69.434%;--image-max-width: 404px; --image-mobile-max-width: 360px"></picture> 2475 </div><style></style> 2476</span><span class="dtc-header__mega-explore-gallery-item"><div class="v-image dtc-header__mega-explore-gallery-image"><picture><img src="//cosori.com/cdn/shop/files/expolre-coffee-2.png?v=1787564629&width=202" alt="Coffee Hub" srcset="//cosori.com/cdn/shop/files/expolre-coffee-2.png?v=1787564629&width=200 200w" width="202" height="221" loading="lazy" sizes="(max-width: 699px) 360px, 404px" style="object-position:41.504% 74.707%;--image-max-width: 404px; --image-mobile-max-width: 360px"></picture> 2477 </div><style></style> 2478</span><span class="dtc-header__mega-explore-gallery-item"><div class="v-image dtc-header__mega-explore-gallery-image"><picture><img src="//cosori.com/cdn/shop/files/expolre-coffee-3.png?v=1787564629&width=202" alt="Coffee Hub" srcset="//cosori.com/cdn/shop/files/expolre-coffee-3.png?v=1787564629&width=200 200w" width="202" height="221" loading="lazy" sizes="(max-width: 699px) 360px, 404px" style="object-position:49.121% 98.926%;--image-max-width: 404px; --image-mobile-max-width: 360px"></picture> 2479 </div><style></style> 2480</span></span> 2481 </a><div class="dtc-header__mega-explore-side"><a 2482 href="/blogs/recipes" 2483 class="dtc-header__mega-card dtc-mega-anim" 2484 data-mega-delay="1" 2485 title="Recipes" 2486 >
2487 <span class="dtc-header__mega-card-icon" aria-hidden="true"><img src="//cosori.com/cdn/shop/files/ForkKnife.png?v=1787730526&width=64" alt="" width="32" height="32" loading="lazy"></span> 2488 <span class="dtc-header__mega-card-text"> 2489 <span class="dtc-header__mega-card-title">Recipes</span><span class="dtc-header__mega-card-desc">Browse our collection of recipes and find your next favorite dish</span></span> 2490 <svg class="dtc-header__mega-card-arrow" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2491 <path d="M7 17L17 7M17 7H7M17 7V17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2492 </svg> 2493 </a><a 2494 href="/pages/for-smart-kitchens" 2495 class="dtc-header__mega-card dtc-mega-anim" 2496 data-mega-delay="2" 2497 title="For smart systems" 2498 > 2499 <span class="dtc-header__mega-card-icon" aria-hidden="true"><img src="//cosori.com/cdn/shop/files/Vector_c091c9ed-1550-4c24-8ae8-e81efee7ccbf.png?v=1787730549&width=64" alt="" width="32" height="32" loading="lazy"></span> 2500 <span class="dtc-header__mega-card-text"> 2501 <span class="dtc-header__mega-card-title">For smart systems</span><span class="dtc-header__mega-card-desc">Explore smarter ways to cook at home with Cosori</span></span> 2502 <svg class="dtc-header__mega-card-arrow" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2503 <path d="M7 17L17 7M17 7H7M17 7V17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2504 </svg> 2505 </a></div> 2506 </div></div> 2507 </div> 2508 </details></li><li class="dtc-mobile-nav__item dtc-drop-anim" data-delay="3"> 2509 <details class="dtc-mobile-nav__sub-details"> 2510 <summary class="dtc-mobile-nav__link dtc-mobile-nav__link--has-sub"> 2511 <span>Learn</span> 2512 <span class="dtc-mobile-nav__chevron" aria-hidden="true"> 2513 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none"> 2514 <path d="M19.9201 8.95001L13.4001 15.47C12.6301 16.24 11.3701 16.24 10.6001 15.47L4.08008 8.95001" stroke="#121A25" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 2515 </svg> 2516 </span> 2517 </summary> 2518 <div class="dtc-mobile-nav__sub-panel"> 2519 <div class="dtc-mobile-nav__sub-panel-inner"> 2520 <div class="dtc-mobile-nav__mega-learn"> 2521 <div class="dtc-mobile-nav__mega-learn-stack"><a 2522 href="/blogs/learning-hub" 2523 class="dtc-header__learn-card dtc-mega-anim" 2524 data-mega-delay="0" 2525 > 2526 <span class="dtc-header__learn-card-title">Learning Hub</span> 2527 <svg class="dtc-header__learn-card-arrow" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2528 <path d="M7 17L17 7M17 7H7M17 7V17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2529 </svg> 2530 </a><a 2531 href="/blogs/newsroom" 2532 class="dtc-header__learn-card dtc-mega-anim" 2533 data-mega-delay="1" 2534 >
2535 <span class="dtc-header__learn-card-title">Newsroom</span> 2536 <svg class="dtc-header__learn-card-arrow" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2537 <path d="M7 17L17 7M17 7H7M17 7V17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2538 </svg> 2539 </a></div> 2540 </div> 2541 </div> 2542 </div> 2543 </details> 2544 </li></ul> 2545 </nav></div><div class="dtc-mobile-nav__footer dtc-drop-anim" data-delay="9"> 2546 <a 2547 href="https://shopify.com/74265723189/account?locale=en&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJjb3NvcmktMjAyMy5teXNob3BpZnkuY29tIiwiZmxhZ3MiOltdLCJleHAiOjE3OTA5ODUyNzUsIm5iZiI6MTc5MDM4MDQ3NX0.-FZmFHawzlIOqrkLqayinhlQIMEClVlivpDNey7OxHU®ion_country=US" 2548 class="dtc-mobile-nav__btn dtc-mobile-nav__btn--primary" 2549 > 2550 Account 2551 </a> 2552 <a href="/cart" class="dtc-mobile-nav__btn dtc-mobile-nav__btn--outline"> 2553 Cart 2554 </a> 2555 </div> 2556 2557 </div> 2558 </div> 2559 2560</dtc-mobile-nav> 2561</div><div class="dtc-header__logo-wrap"> 2562 <a href="/" class="dtc-header__logo"><img src="//cosori.com/cdn/shop/files/Cosori_by_VeSync_CLR_1.png?v=1780910563&width=250" alt="COSORI" srcset="//cosori.com/cdn/shop/files/Cosori_by_VeSync_CLR_1.png?v=1780910563&width=50 50w, //cosori.com/cdn/shop/files/Cosori_by_VeSync_CLR_1.png?v=1780910563&width=100 100w, //cosori.com/cdn/shop/files/Cosori_by_VeSync_CLR_1.png?v=1780910563&width=150 150w, //cosori.com/cdn/shop/files/Cosori_by_VeSync_CLR_1.png?v=1780910563&width=200 200w, //cosori.com/cdn/shop/files/Cosori_by_VeSync_CLR_1.png?v=1780910563&width=250 250w" width="100" height="34.285714285714285" class="dtc-header__logo-img dtc-header__logo-img--desktop dtc-header__logo-img--solid" style="object-position:0.879% 50.0%;">�<img src="//cosori.com/cdn/shop/files/Cosori_by_VeSync_WHT_1.png?v=1780910563&width=250" alt="COSORI" srcset="//cosori.com/cdn/shop/files/Cosori_by_VeSync_WHT_1.png?v=1780910563&width=50 50w, //cosori.com/cdn/shop/files/Cosori_by_VeSync_WHT_1.png?v=1780910563&width=100 100w, //cosori.com/cdn/shop/files/Cosori_by_VeSync_WHT_1.png?v=1780910563&width=150 150w, //cosori.com/cdn/shop/files/Cosori_by_VeSync_WHT_1.png?v=1780910563&width=200 200w, //cosori.com/cdn/shop/files/Cosori_by_VeSync_WHT_1.png?v=1780910563&width=250 250w" width="100" height="34.862385321100916" class="dtc-header__logo-img dtc-header__logo-img--desktop dtc-header__logo-img--transparent" style="object-position:0.879% 49.121%;">�<img src="//cosori.com/cdn/shop/files/Cosori_by_VeSync_CLR_1.png?v=1780910563&width=160" alt="COSORI" srcset="//cosori.com/cdn/shop/files/Cosori_by_VeSync_CLR_1.png?v=1780910563&width=40 40w, //cosori.com/cdn/shop/files/Cosori_by_VeSync_CLR_1.png?v=1780910563&width=80 80w, //cosori.com/cdn/shop/files/Cosori_by_VeSync_CLR_1.png?v=1780910563&width=120 120w, //cosori.com/cdn/shop/files/Cosori_by_VeSync_CLR_1.png?v=1780910563&width=160 160w" width="100" height="34.285714285714285" class="dtc-header__logo-img dtc-header__logo-img--mobile dtc-header__logo-img--solid" style="object-position:0.879% 50.0%;">�</a> 2563 </div><nav class="dtc-header__nav" aria-label="Main navigation"> 2564 <ul class="dtc-header__nav-list"><li class="dtc-header__nav-item dtc-header__nav-item--has-mega" > 2565 <a href="/" class="dtc-header__nav-link" aria-haspopup="true" aria-expanded="false">Shop<svg class="dtc-header__caret" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"> 2566 <path d="M4 6L8 10L12 6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2567 </svg></a><div class="dtc-header__mega" aria-label="Shop menu"><div class="dtc-header__mega-inner dtc-header__mega-inner--shop"> 2568 <div class="dtc-header__mega-shop-head"> 2569 <div class="dtc-header__mega-shop-head-cell"><p class="dtc-header__mega-label">Shop by Product</p></div><div class="dtc-header__mega-shop-head-cell"><p class="dtc-header__mega-label">Featured</p></div></div> 2570 <div class="dtc-header__mega-shop-body"> 2571 <div class="dtc-header__mega-grid dtc-header__mega-grid--2col"><a href="/collections/air-fryers" class="dtc-header__mega-card" title="Air Fryers">
2572 <span class="dtc-header__mega-card-icon" aria-hidden="true"><img src="//cosori.com/cdn/shop/files/CGTM_2303_CAF-DC601-KUS_WA1_01_Front_v2_1_43fa6802-67e3-4603-9ad1-54c54f2e5a8a.png?v=1762457880&width=72" alt="" width="36" height="36" loading="lazy"></span> 2573 <span class="dtc-header__mega-card-text"> 2574 <span class="dtc-header__mega-card-title">Air Fryers</span><span class="dtc-header__mega-card-desc">Smart and classic air fryers</span></span> 2575 <svg class="dtc-header__mega-card-arrow" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2576 <path d="M7 17L17 7M17 7H7M17 7V17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2577 </svg> 2578 </a><a href="/products/juni-coffee-maker" class="dtc-header__mega-card" title="Coffee Machines & Accessories"> 2579 <span class="dtc-header__mega-card-icon" aria-hidden="true"><img src="//cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=72" alt="" width="36" height="36" loading="lazy"></span> 2580 <span class="dtc-header__mega-card-text"> 2581 <span class="dtc-header__mega-card-title">Coffee Machines & Accessories</span><span class="dtc-header__mega-card-desc">Coffee makers & brewing accessories</span></span> 2582 <svg class="dtc-header__mega-card-arrow" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2583 <path d="M7 17L17 7M17 7H7M17 7V17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2584 </svg> 2585 </a><a href="/collections/kettles" class="dtc-header__mega-card" title="Kettles"> 2586 <span class="dtc-header__mega-card-icon" aria-hidden="true"><img src="//cosori.com/cdn/shop/files/1.7kettle.png?v=1777276501&width=72" alt="" width="36" height="36" loading="lazy"></span> 2587 <span class="dtc-header__mega-card-text"> 2588 <span class="dtc-header__mega-card-title">Kettles</span><span class="dtc-header__mega-card-desc">Electric kettles with precise control</span></span> 2589 <svg class="dtc-header__mega-card-arrow" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2590 <path d="M7 17L17 7M17 7H7M17 7V17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2591 </svg> 2592 </a><a href="/collections/multicookers" class="dtc-header__mega-card" title="Multi-Cookers"> 2593 <span class="dtc-header__mega-card-icon" aria-hidden="true"><img src="//cosori.com/cdn/shop/files/rice-cooker-front-view_9b6348a0-6b96-4e1e-9856-f84ca524e6c4.png?v=1762457775&width=72" alt="" width="36" height="36" loading="lazy"></span> 2594 <span class="dtc-header__mega-card-text"> 2595 <span class="dtc-header__mega-card-title">Multi-Cookers</span><span class="dtc-header__mega-card-desc">Rice cookers, pressure cookers & more</span></span> 2596 <svg class="dtc-header__mega-card-arrow" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2597 <path d="M7 17L17 7M17 7H7M17 7V17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2598 </svg> 2599 </a><a href="/collections/food-dehydrators" class="dtc-header__mega-card" title="Food Dehydrators">
2600 <span class="dtc-header__mega-card-icon" aria-hidden="true"><img src="//cosori.com/cdn/shop/products/01.00_WA1_0522CFD-P101-SUS_LP_04b.png?v=1684946576&width=72" alt="" width="36" height="36" loading="lazy"></span> 2601 <span class="dtc-header__mega-card-text"> 2602 <span class="dtc-header__mega-card-title">Food Dehydrators</span><span class="dtc-header__mega-card-desc">Dehydrators for snacks, jerky, and more</span></span> 2603 <svg class="dtc-header__mega-card-arrow" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2604 <path d="M7 17L17 7M17 7H7M17 7V17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2605 </svg> 2606 </a></div><a href="/collections/daily-sale" class="dtc-header__mega-promo dtc-header__mega-featured"> 2607 <div class="dtc-header__mega-promo-img"><div class="v-image "><picture><img src="//cosori.com/cdn/shop/files/card_c4192c9d-aeb1-4ea0-82c2-1cf244b81429.png?v=1780911046&width=648" alt="image" srcset="//cosori.com/cdn/shop/files/card_c4192c9d-aeb1-4ea0-82c2-1cf244b81429.png?v=1780911046&width=200 200w, //cosori.com/cdn/shop/files/card_c4192c9d-aeb1-4ea0-82c2-1cf244b81429.png?v=1780911046&width=400 400w, //cosori.com/cdn/shop/files/card_c4192c9d-aeb1-4ea0-82c2-1cf244b81429.png?v=1780911046&width=600 600w" width="648" height="682" loading="lazy" sizes="(max-width: 699px) 400px, 648px" style="object-position:46.68% 37.891%;--image-max-width: 648px; --image-mobile-max-width: 400px"></picture> 2608 </div><style></style> 2609</div> 2610 <div class="dtc-header__mega-promo-overlay"> 2611 <div class="dtc-header__mega-promo-content"><span class="dtc-header__mega-promo-tags">Air Fryers + Dehydrators+ Rice Cookers</span><span class="dtc-header__mega-promo-title">Shop The Daily Sale</span><span class="dtc-header__mega-promo-desc">Upgrade your everyday cooking with COSORI.</span></div><span class="dtc-header__mega-promo-btn">Shop now</span></div> 2612 </a></div> 2613 </div></div></li><li class="dtc-header__nav-item dtc-header__nav-item--has-mega" > 2614 <a href="/" class="dtc-header__nav-link" aria-haspopup="true" aria-expanded="false">Explore<svg class="dtc-header__caret" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"> 2615 <path d="M4 6L8 10L12 6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2616 </svg></a><div class="dtc-header__mega" aria-label="Explore menu"><div class="dtc-header__mega-inner dtc-header__mega-inner--explore"><a href="/pages/coffee-story" class="dtc-header__mega-card dtc-header__mega-explore-featured"> 2617 <span class="dtc-header__mega-explore-featured-top"> 2618 <span class="dtc-header__mega-card-icon" aria-hidden="true"><img src="//cosori.com/cdn/shop/files/Coffee.png?v=1787730496&width=72" alt="" width="32" height="32" loading="lazy"></span> 2619 <span class="dtc-header__mega-card-text"> 2620 <span class="dtc-header__mega-card-title">Coffee Hub</span><span class="dtc-header__mega-card-desc">Explore recipes, tips, partnerships, andcoffee knowledge</span></span> 2621 <svg class="dtc-header__mega-card-arrow" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2622 <path d="M7 17L17 7M17 7H7M17 7V17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2623 </svg> 2624 </span> 2625 <span class="dtc-header__mega-explore-gallery"><span class="dtc-header__mega-explore-gallery-item"><div class="v-image dtc-header__mega-explore-gallery-image"><picture><img src="//cosori.com/cdn/shop/files/expolre-coffee-1.png?v=1787564629&width=202" alt="Coffee Hub" srcset="//cosori.com/cdn/shop/files/expolre-coffee-1.png?v=1787564629&width=200 200w" width="202" height="221" loading="lazy" sizes="(max-width: 699px) 360px, 404px" style="object-position:35.547% 69.434%;--image-max-width: 404px; --image-mobile-max-width: 360px"></picture> 2626 </div><style></style> 2627</span><span class="dtc-header__mega-explore-gallery-item"><div class="v-image dtc-header__mega-explore-gallery-image"><picture><img src="//cosori.com/cdn/shop/files/expolre-coffee-2.png?v=1787564629&width=202" alt="Coffee Hub" srcset="//cosori.com/cdn/shop/files/expolre-coffee-2.png?v=1787564629&width=200 200w" width="202" height="221" loading="lazy" sizes="(max-width: 699px) 360px, 404px" style="object-position:41.504% 74.707%;--image-max-width: 404px; --image-mobile-max-width: 360px"></picture> 2628 </div><style></style> 2629</span><span class="dtc-header__mega-explore-gallery-item"><div class="v-image dtc-header__mega-explore-gallery-image"><picture><img src="//cosori.com/cdn/shop/files/expolre-coffee-3.png?v=1787564629&width=202" alt="Coffee Hub" srcset="//cosori.com/cdn/shop/files/expolre-coffee-3.png?v=1787564629&width=200 200w" width="202" height="221" loading="lazy" sizes="(max-width: 699px) 360px, 404px" style="object-position:49.121% 98.926%;--image-max-width: 404px; --image-mobile-max-width: 360px"></picture> 2630 </div><style></style> 2631</span></span> 2632 </a><div class="dtc-header__mega-explore-side"><a href="/blogs/recipes" class="dtc-header__mega-card">
2633 <span class="dtc-header__mega-card-icon" aria-hidden="true"><img src="//cosori.com/cdn/shop/files/ForkKnife.png?v=1787730526&width=72" alt="" width="32" height="32" loading="lazy"></span> 2634 <span class="dtc-header__mega-card-text"> 2635 <span class="dtc-header__mega-card-title">Recipes</span><span class="dtc-header__mega-card-desc">Browse our collection of recipes and find your next favorite dish</span></span> 2636 <svg class="dtc-header__mega-card-arrow" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2637 <path d="M7 17L17 7M17 7H7M17 7V17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2638 </svg> 2639 </a><a href="/pages/for-smart-kitchens" class="dtc-header__mega-card"> 2640 <span class="dtc-header__mega-card-icon" aria-hidden="true"><img src="//cosori.com/cdn/shop/files/Vector_c091c9ed-1550-4c24-8ae8-e81efee7ccbf.png?v=1787730549&width=72" alt="" width="32" height="32" loading="lazy"></span> 2641 <span class="dtc-header__mega-card-text"> 2642 <span class="dtc-header__mega-card-title">For smart systems</span><span class="dtc-header__mega-card-desc">Explore smarter ways to cook at home with Cosori</span></span> 2643 <svg class="dtc-header__mega-card-arrow" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2644 <path d="M7 17L17 7M17 7H7M17 7V17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2645 </svg> 2646 </a></div> 2647 </div></div></li></ul> 2648 </nav><div class="dtc-header__actions"><div class="dtc-header__learn-wrap" > 2649 <button 2650 type="button" 2651 class="dtc-header__learn-link" 2652 aria-haspopup="true" 2653 aria-expanded="false" 2654 >Learn<svg class="dtc-header__caret" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"> 2655 <path d="M4 6L8 10L12 6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2656 </svg> 2657 </button> 2658 <div class="dtc-header__learn-mega" aria-label="Learn menu"> 2659 <div class="dtc-header__learn-mega-inner"><a href="/blogs/learning-hub" class="dtc-header__learn-card"> 2660 <span class="dtc-header__learn-card-title">Learning Hub</span> 2661 <svg class="dtc-header__learn-card-arrow" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2662 <path d="M7 17L17 7M17 7H7M17 7V17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2663 </svg> 2664 </a><a href="/blogs/newsroom" class="dtc-header__learn-card"> 2665 <span class="dtc-header__learn-card-title">Newsroom</span> 2666 <svg class="dtc-header__learn-card-arrow" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2667 <path d="M7 17L17 7M17 7H7M17 7V17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2668 </svg> 2669 </a></div> 2670 </div> 2671 </div><div class="dtc-header__search-desktop"><div class="dtc-header-search"><predictive-search class="dtc-header-search__predictive" data-loading-text="Loading..."><form 2672 action="/search" 2673 method="get" 2674 role="search" 2675 class="dtc-header-search__form" 2676 data-search-form 2677 > 2678 <label class="dtc-header-search__field"> 2679 <span class="dtc-header-search__icon" aria-hidden="true"> 2680 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"> 2681 <path d="M9.16667 15.8333C12.8486 15.8333 15.8333 12.8486 15.8333 9.16667C15.8333 5.48477 12.8486 2.5 9.16667 2.5C5.48477 2.5 2.5 5.48477 2.5 9.16667C2.5 12.8486 5.48477 15.8333 9.16667 15.8333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2682 <path d="M17.5 17.5L13.875 13.875" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2683 </svg> 2684 </span> 2685 <input 2686 class="dtc-header-search__input" 2687 id="Dtc-Search-Desktop-" 2688 type="search" 2689 name="q" 2690 value="" 2691 placeholder="Search..." 2692 aria-label="Find your next kitchen companion..." 2693 data-search-input 2694 data-element-location="header"role="combobox" 2695 aria-expanded="false" 2696 aria-owns="predictive-search-results" 2697 aria-controls="predictive-search-results" 2698 aria-haspopup="listbox" 2699 aria-autocomplete="list" 2700 autocorrect="off" 2701 autocomplete="off" 2702 autocapitalize="off" 2703 spellcheck="false"> 2704 <button type="submit" class="visually-hidden" data-search-submit>Find your next kitchen companion...</button> 2705 </label> 2706 2707 <input type="hidden" name="options[prefix]" value="last"><aside class="dtc-header__search-results"> 2708 <div class="predictive-search predictive-search--header" tabindex="-1" data-predictive-search> 2709 2710<link href="//cosori.com/cdn/shop/t/166/assets/component-loading-spinner.css?v=116724955567955766481789674181" rel="stylesheet" type="text/css" media="all" /> 2711 2712<div class="predictive-search__loading-state"> 2713 <svg 2714 aria-hidden="true" 2715 focusable="false" 2716 class="spinner"
2717 viewBox="0 0 66 66" 2718 xmlns="http://www.w3.org/2000/svg" 2719 > 2720 <circle class="path" fill="none" stroke-width="6" cx="33" cy="33" r="30"></circle> 2721 </svg> 2722</div> 2723</div> 2724 </aside> 2725 <span class="predictive-search-status visually-hidden" role="status" aria-hidden="true"></span></form></predictive-search></div> 2726</div><div class="dtc-header__search-tablet"><dtc-header-search-drawer class="dtc-header-search-drawer"> 2727 <details class="dtc-header-search-drawer__details"> 2728 <summary 2729 class="dtc-header-search-drawer__toggle" 2730 aria-label="Find your next kitchen companion..." 2731 data-ga4-track 2732 data-ga4-event="search_bar_open" 2733 data-button-name="Search Icon" 2734 > 2735 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"> 2736 <path d="M9.16667 15.8333C12.8486 15.8333 15.8333 12.8486 15.8333 9.16667C15.8333 5.48477 12.8486 2.5 9.16667 2.5C5.48477 2.5 2.5 5.48477 2.5 9.16667C2.5 12.8486 5.48477 15.8333 9.16667 15.8333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2737 <path d="M17.5 17.5L13.875 13.875" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2738 </svg> 2739 </summary> 2740 2741 <div class="dtc-header-search-drawer__overlay" aria-hidden="true"></div> 2742 2743 <aside class="dtc-header-search-drawer__panel" role="dialog" aria-modal="true" aria-label="Find your next kitchen companion..."> 2744 <div class="dtc-header-search-drawer__panel-inner"> 2745 <header class="dtc-header-search-drawer__header"> 2746 <button type="button" class="dtc-header-search-drawer__close" aria-label="Close"> 2747 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2748 <path d="M18 6L6 18M6 6L18 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2749 </svg> 2750 </button> 2751 <a href="/" class="dtc-header-search-drawer__logo"><img src="//cosori.com/cdn/shop/files/Cosori_by_VeSync_CLR_1.png?v=1780910563&width=250" alt="COSORI" srcset="//cosori.com/cdn/shop/files/Cosori_by_VeSync_CLR_1.png?v=1780910563&width=50 50w, //cosori.com/cdn/shop/files/Cosori_by_VeSync_CLR_1.png?v=1780910563&width=100 100w, //cosori.com/cdn/shop/files/Cosori_by_VeSync_CLR_1.png?v=1780910563&width=150 150w, //cosori.com/cdn/shop/files/Cosori_by_VeSync_CLR_1.png?v=1780910563&width=200 200w, //cosori.com/cdn/shop/files/Cosori_by_VeSync_CLR_1.png?v=1780910563&width=250 250w" width="100" height="34.285714285714285" style="object-position:0.879% 50.0%;">�</a> 2752 </header><div class="dtc-header-search"><predictive-search class="dtc-header-search__predictive" data-loading-text="Loading..."><form 2753 action="/search" 2754 method="get" 2755 role="search" 2756 class="dtc-header-search__form" 2757 data-search-form 2758 > 2759 <label class="dtc-header-search__field"> 2760 <span class="dtc-header-search__icon" aria-hidden="true"> 2761 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"> 2762 <path d="M9.16667 15.8333C12.8486 15.8333 15.8333 12.8486 15.8333 9.16667C15.8333 5.48477 12.8486 2.5 9.16667 2.5C5.48477 2.5 2.5 5.48477 2.5 9.16667C2.5 12.8486 5.48477 15.8333 9.16667 15.8333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2763 <path d="M17.5 17.5L13.875 13.875" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2764 </svg> 2765 </span> 2766 <input 2767 class="dtc-header-search__input" 2768 id="Dtc-Search-Tablet-" 2769 type="search" 2770 name="q" 2771 value="" 2772 placeholder="Search..." 2773 aria-label="Find your next kitchen companion..." 2774 data-search-input 2775 data-element-location="search_drawer"role="combobox" 2776 aria-expanded="false" 2777 aria-owns="predictive-search-results" 2778 aria-controls="predictive-search-results" 2779 aria-haspopup="listbox" 2780 aria-autocomplete="list" 2781 autocorrect="off" 2782 autocomplete="off" 2783 autocapitalize="off" 2784 spellcheck="false"> 2785 <button type="submit" class="visually-hidden" data-search-submit>Find your next kitchen companion...</button> 2786 </label> 2787 2788 <input type="hidden" name="options[prefix]" value="last"><aside class="dtc-header-search-drawer__results"> 2789 <div class="predictive-search predictive-search--header" tabindex="-1" data-predictive-search> 2790 2791<link href="//cosori.com/cdn/shop/t/166/assets/component-loading-spinner.css?v=116724955567955766481789674181" rel="stylesheet" type="text/css" media="all" /> 2792 2793<div class="predictive-search__loading-state"> 2794 <svg 2795 aria-hidden="true" 2796 focusable="false" 2797 class="spinner"
2798 viewBox="0 0 66 66" 2799 xmlns="http://www.w3.org/2000/svg" 2800 > 2801 <circle class="path" fill="none" stroke-width="6" cx="33" cy="33" r="30"></circle> 2802 </svg> 2803</div> 2804</div> 2805 </aside> 2806 <span class="predictive-search-status visually-hidden" role="status" aria-hidden="true"></span></form></predictive-search></div> 2807</div> 2808 </aside> 2809 </details> 2810</dtc-header-search-drawer> 2811</div><span class="dtc-header__divider" aria-hidden="true"></span><a href="/cart" id="cart-icon-bubble" class="dtc-header__cart-link" aria-label="0 items"> 2812 <svg xmlns="http://www.w3.org/2000/svg" width="21" height="19" viewBox="0 0 21 19" fill="none"> 2813 <path d="M20.9932 17.0737L19.6564 5.82375C19.613 5.45721 19.436 5.11952 19.1593 4.87529C18.8825 4.63106 18.5254 4.49744 18.1564 4.5H15.0035C15.0035 3.30653 14.5294 2.16193 13.6855 1.31802C12.8416 0.474106 11.697 0 10.5035 0C9.31007 0 8.16548 0.474106 7.32156 1.31802C6.47765 2.16193 6.00354 3.30653 6.00354 4.5H2.84698C2.47789 4.49744 2.12082 4.63106 1.84407 4.87529C1.56733 5.11952 1.39034 5.45721 1.34698 5.82375L0.0101074 17.0737C-0.0143916 17.2837 0.00576748 17.4965 0.0692628 17.6981C0.132758 17.8998 0.238156 18.0857 0.378545 18.2438C0.519949 18.4025 0.693226 18.5296 0.887072 18.6168C1.08092 18.704 1.29098 18.7494 1.50355 18.75H19.496C19.7099 18.7505 19.9214 18.7056 20.1166 18.6183C20.3118 18.5311 20.4863 18.4034 20.6285 18.2438C20.7683 18.0854 20.873 17.8993 20.9358 17.6977C20.9987 17.4961 21.0182 17.2835 20.9932 17.0737ZM10.5035 1.5C11.2992 1.5 12.0623 1.81607 12.6249 2.37868C13.1875 2.94129 13.5035 3.70435 13.5035 4.5H7.50354C7.50354 3.70435 7.81962 2.94129 8.38222 2.37868C8.94483 1.81607 9.7079 1.5 10.5035 1.5ZM1.50355 17.25L2.84698 6H6.00354V8.25C6.00354 8.44891 6.08256 8.63968 6.22322 8.78033C6.36387 8.92098 6.55463 9 6.75354 9C6.95246 9 7.14322 8.92098 7.28387 8.78033C7.42453 8.63968 7.50354 8.44891 7.50354 8.25V6H13.5035V8.25C13.5035 8.44891 13.5826 8.63968 13.7232 8.78033C13.8639 8.92098 14.0546 9 14.2535 9C14.4525 9 14.6432 8.92098 14.7839 8.78033C14.9245 8.63968 15.0035 8.44891 15.0035 8.25V6H18.1676L19.496 17.25H1.50355Z" fill="currentColor"/> 2814 </svg> 2815 <span class="dtc-header__cart-count dtc-header__cart-count--empty"></span> 2816 </a><div class="dtc-header__account-wrap"> 2817 <button class="dtc-header__account-link" aria-label="Account" aria-haspopup="true" aria-expanded="false"> 2818 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"> 2819 <path d="M9.75 0C7.82164 0 5.93657 0.571828 4.33319 1.64317C2.72982 2.71451 1.48013 4.23726 0.742179 6.01884C0.00422452 7.80042 -0.188858 9.76082 0.187348 11.6521C0.563554 13.5434 1.49215 15.2807 2.85571 16.6443C4.21928 18.0079 5.95656 18.9365 7.84787 19.3127C9.73919 19.6889 11.6996 19.4958 13.4812 18.7578C15.2627 18.0199 16.7855 16.7702 17.8568 15.1668C18.9282 13.5634 19.5 11.6784 19.5 9.75C19.4973 7.16498 18.4692 4.68661 16.6413 2.85872C14.8134 1.03084 12.335 0.00272983 9.75 0ZM4.695 16.2656C5.23757 15.4171 5.98501 14.7188 6.86843 14.2351C7.75185 13.7513 8.74283 13.4978 9.75 13.4978C10.7572 13.4978 11.7482 13.7513 12.6316 14.2351C13.515 14.7188 14.2624 15.4171 14.805 16.2656C13.3597 17.3897 11.581 17.9999 9.75 17.9999C7.91905 17.9999 6.14032 17.3897 4.695 16.2656ZM6.75 9C6.75 8.40666 6.92595 7.82664 7.2556 7.33329C7.58524 6.83994 8.05378 6.45542 8.60195 6.22836C9.15013 6.0013 9.75333 5.94189 10.3353 6.05764C10.9172 6.1734 11.4518 6.45912 11.8713 6.87868C12.2909 7.29824 12.5766 7.83279 12.6924 8.41473C12.8081 8.99667 12.7487 9.59987 12.5216 10.1481C12.2946 10.6962 11.9101 11.1648 11.4167 11.4944C10.9234 11.8241 10.3433 12 9.75 12C8.95436 12 8.19129 11.6839 7.62868 11.1213C7.06607 10.5587 6.75 9.79565 6.75 9ZM15.915 15.2259C15.0785 14.0138 13.9024 13.0761 12.5344 12.5306C13.2692 11.9519 13.8054 11.1585 14.0684 10.2608C14.3315 9.3632 14.3082 8.4059 14.002 7.52207C13.6957 6.63825 13.1216 5.87183 12.3596 5.3294C11.5975 4.78696 10.6854 4.49548 9.75 4.49548C8.81462 4.49548 7.90248 4.78696 7.14044 5.3294C6.37839 5.87183 5.80432 6.63825 5.49805 7.52207C5.19179 8.4059 5.16855 9.3632 5.43157 10.2608C5.69459 11.1585 6.2308 11.9519 6.96563 12.5306C5.59765 13.0761 4.42147 14.0138 3.585 15.2259C2.52804 14.0373 1.8372 12.5685 1.59567 10.9964C1.35415 9.42427 1.57224 7.81584 2.22368 6.36478C2.87512 4.91372 3.93213 3.68192 5.26745 2.81769C6.60276 1.95346 8.15943 1.49367 9.75 1.49367C11.3406 1.49367 12.8973 1.95346 14.2326 2.81769C15.5679 3.68192 16.6249 4.91372 17.2763 6.36478C17.9278 7.81584 18.1459 9.42427 17.9043 10.9964C17.6628 12.5685 16.972 14.0373 15.915 15.2259Z" fill="currentColor"/> 2820 </svg> 2821 </button> 2822 <div class="dtc-header__account-dropdown"> 2823 <div class="dtc-header__account-dropdown-panel"> 2824 <p class="dtc-header__account-dropdown-label">Account</p><a href="https://shopify.com/74265723189/account?locale=en&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJjb3NvcmktMjAyMy5teXNob3BpZnkuY29tIiwiZmxhZ3MiOltdLCJleHAiOjE3OTA5ODUyNzUsIm5iZiI6MTc5MDM4MDQ3NX0.-FZmFHawzlIOqrkLqayinhlQIMEClVlivpDNey7OxHU®ion_country=US" class="dtc-header__account-dropdown-item" data-v-gtm-auth="login"> 2825 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> 2826 <path d="M19.5 3H4.5C4.10218 3 3.72064 3.15804 3.43934 3.43934C3.15804 3.72064 3 4.10218 3 4.5V19.5C3 19.8978 3.15804 20.2794 3.43934 20.5607C3.72064 20.842 4.10218 21 4.5 21H19.5C19.8978 21 20.2794 20.842 20.5607 20.5607C20.842 20.2794 21 19.8978 21 19.5V4.5C21 4.10218 20.842 3.72064 20.5607 3.43934C20.2794 3.15804 19.8978 3 19.5 3ZM19.5 19.5H4.5V4.5H19.5V19.5ZM8.46937 15.5306C8.39964 15.461 8.34432 15.3783 8.30658 15.2872C8.26884 15.1962 8.24941 15.0986 8.24941 15C8.24941 14.9014 8.26884 14.8038 8.30658 14.7128C8.34432 14.6217 8.39964 14.539 8.46937 14.4694L13.1897 9.75H10.5C10.3011 9.75 10.1103 9.67098 9.96967 9.53033C9.82902 9.38968 9.75 9.19891 9.75 9C9.75 8.80109 9.82902 8.61032 9.96967 8.46967C10.1103 8.32902 10.3011 8.25 10.5 8.25H15C15.1989 8.25 15.3897 8.32902 15.5303 8.46967C15.671 8.61032 15.75 8.80109 15.75 9V13.5C15.75 13.6989 15.671 13.8897 15.5303 14.0303C15.3897 14.171 15.1989 14.25 15 14.25C14.8011 14.25 14.6103 14.171 14.4697 14.0303C14.329 13.8897 14.25 13.6989 14.25 13.5V10.8103L9.53063 15.5306C9.46097 15.6004 9.37825 15.6557 9.28721 15.6934C9.19616 15.7312 9.09856 15.7506 9 15.7506C8.90144 15.7506 8.8
28260384 15.7312 8.71279 15.6934C8.62175 15.6557 8.53903 15.6004 8.46937 15.5306Z" fill="#0F0928"/> 2827 </svg> 2828 <span>Log in</span> 2829 </a><a href="/pages/favorites" class="dtc-header__account-dropdown-item"> 2830 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2831 <path d="M12 2L15.09 8.26L22 9.27L17 14.14L18.18 21.02L12 17.77L5.82 21.02L7 14.14L2 9.27L8.91 8.26L12 2Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2832 </svg> 2833 <span>Favourites</span> 2834 </a> 2835 <a href="/pages/contact-us" class="dtc-header__account-dropdown-item"> 2836 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2837 <circle cx="12" cy="12" r="10" stroke="currentColor" stroke-width="1.5"/> 2838 <circle cx="12" cy="12" r="4" stroke="currentColor" stroke-width="1.5"/> 2839 <path d="M14.83 9.17L19.07 4.93M9.17 14.83L4.93 19.07M14.83 14.83L19.07 19.07M9.17 9.17L4.93 4.93" stroke="currentColor" stroke-width="1.5"/> 2840 </svg> 2841 <span>Support</span> 2842 </a> 2843 </div> 2844 </div> 2845 </div> 2846 </div> 2847 2848 </div> 2849 2850 2851</div></header> 2852<!-- END sections: dtc-header-group --> 2853 2854<link href="//cosori.com/cdn/shop/t/166/assets/quantity-popover.css?v=20559803192580579951789674181" rel="stylesheet" type="text/css" media="all" /> 2855<link href="//cosori.com/cdn/shop/t/166/assets/component-card.css?v=2868478906504407581789674181" rel="stylesheet" type="text/css" media="all" /> 2856
2857<script src="//cosori.com/cdn/shop/t/166/assets/cart.js?v=95952935067914273241789674181" defer="defer"></script>
vendor: 2 bytes, line 2857
2857
2858<script src="//cosori.com/cdn/shop/t/166/assets/quantity-popover.js?v=131972415075478610701789674181" defer="defer"></script>
2858 2859 2860<style> 2861 .drawer { 2862 visibility: hidden; 2863 } 2864</style> 2865 2866<cart-drawer class="drawer is-empty"> 2867 <div id="CartDrawer" class="cart-drawer"> 2868 <div id="CartDrawer-Overlay" class="cart-drawer__overlay"></div> 2869 <div 2870 class="drawer__inner gradient color-scheme-1" 2871 role="dialog" 2872 aria-modal="true" 2873 aria-label="Your cart" 2874 tabindex="-1" 2875 ><div class="drawer__inner-empty"> 2876 <div class="cart-drawer__warnings center"> 2877 <div class="cart-drawer__empty-content"> 2878 <h2 class="cart__empty-text">Your cart is empty</h2> 2879 <button 2880 class="drawer__close" 2881 type="button" 2882 onclick="this.closest('cart-drawer').close()" 2883 aria-label="Close" 2884 > 2885 <svg 2886 xmlns="http://www.w3.org/2000/svg" 2887 aria-hidden="true" 2888 focusable="false" 2889 class="icon icon-close" 2890 fill="none" 2891 viewBox="0 0 18 17" 2892> 2893 <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor"> 2894</svg> 2895 2896 </button> 2897 <a 2898 href="/collections/all" 2899 class="button" 2900 data-ga4-track 2901 data-ga4-event="go_shopping" 2902 data-ga4-module="Cart Popup" 2903 data-button-name="Continue shopping" 2904 > 2905 Continue shopping 2906 </a><p class="cart__login-title h3">Have an account?</p> 2907 <p class="cart__login-paragraph"> 2908 2909 <a 2910 href="https://shopify.com/74265723189/account?locale=en&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJjb3NvcmktMjAyMy5teXNob3BpZnkuY29tIiwiZmxhZ3MiOltdLCJleHAiOjE3OTA5ODUyNzUsIm5iZiI6MTc5MDM4MDQ3NX0.-FZmFHawzlIOqrkLqayinhlQIMEClVlivpDNey7OxHU®ion_country=US" 2911 class="link underlined-link" 2912 data-ga4-track 2913 data-ga4-event="click_log_in" 2914 data-ga4-module="Cart Popup" 2915 data-button-name="Log in" 2916 >Log in</a 2917 > 2918 to check out faster. 2919 </p></div> 2920 </div></div><div class="drawer__header"> 2921 <div class="drawer__heading"> Cart (0 Items)</div> 2922 <button 2923 class="drawer__close" 2924 type="button" 2925 onclick="this.closest('cart-drawer').close()" 2926 aria-label="Close" 2927 > 2928 2929 2930 2931 2932<svg class=" icon icon-close" width="16" height="16" viewBox="0 0 17 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 2933 <path fill-rule="evenodd" clip-rule="evenodd" d="M2.31794 0.363246C1.91626 -0.0384324 1.26499 -0.0384323 0.863316 0.363247C0.461637 0.764925 0.461637 1.41619 0.863316 1.81787L7.04545 8L0.863316 14.1821C0.461637 14.5838 0.461637 15.2351 0.863316 15.6368C1.26499 16.0384 1.91626 16.0384 2.31794 15.6368L8.50007 9.45462L14.6822 15.6368C15.0838 16.0384 15.7351 16.0384 16.1368 15.6368C16.5385 15.2351 16.5384 14.5838 16.1368 14.1821L9.95469 8L16.1368 1.81787C16.5384 1.41625 16.5385 0.764926 16.1368 0.363247C15.7351 -0.0384316 15.0838 -0.0383736 14.6822 0.363246L8.50007 6.54538L2.31794 0.363246Z" fill="currentColor"/> 2934 </svg> 2935 2936 </button> 2937 </div> 2938 <cart-drawer-items 2939 2940 class=" is-empty" 2941 2942 > 2943 <form 2944 action="/cart" 2945 id="CartDrawer-Form" 2946 class="cart__contents cart-drawer__form" 2947 method="post" 2948 > 2949 <div id="CartDrawer-CartItems" class="drawer__contents js-contents"><p id="CartDrawer-LiveRegionText" class="visually-hidden" role="status"></p> 2950 <p id="CartDrawer-LineItemStatus" class="visually-hidden" aria-hidden="true" role="status"> 2951 Loading... 2952 </p> 2953 </div> 2954 <div id="CartDrawer-CartErrors" role="alert"></div> 2955 </form> 2956 </cart-drawer-items> 2957 <div class="drawer__footer"><!-- Start blocks --> 2958 <!-- Subtotals --> 2959 2960 <div class="cart-drawer__footer" > 2961 <div></div> 2962 2963 <div class="totals" role="status"> 2964 <div class="totals__total">Estimated total</div> 2965 <p class="totals__total-value">$0.00 USD</p> 2966 </div> 2967 2968 <small class="tax-note caption-large rte">Taxes, Discounts and <a href="/policies/shipping-policy">shipping</a> calculated at checkout�</small> 2969 </div> 2970 2971 2972 <div class="cart_d_text"> 2973 <p>Free Shipping & Returns | Limited Warranty on All Products</p> 2974 </div> 2975 2976 2977 <!-- CTAs --> 2978 2979 <div class="cart__ctas" > 2980 <noscript> 2981 <button type="submit" class="cart__update-button button button--secondary" form="CartDrawer-Form"> 2982 Update 2983 </button> 2984 </noscript> 2985 2986 <button 2987 type="submit" 2988 id="CartDrawer-Checkout" 2989 class="cart__checkout-button button" 2990 name="checkout" 2991 form="CartDrawer-Form" 2992 data-ga4-track 2993 data-ga4-event="checkout_button" 2994 data-ga4-module="Cart Popup" 2995 data-button-name="Checkout" 2996 2997 disabled 2998 2999 > 3000 Check out 3001 </button> 3002 </div> 3003 </div> 3004 </div> 3005 </div> 3006</cart-drawer> 3007
3008<script> 3009 document.addEventListener('DOMContentLoaded', function () { 3010 function isIE() { 3011 const ua = window.navigator.userAgent; 3012 const msie = ua.indexOf('MSIE '); 3013 const trident = ua.indexOf('Trident/'); 3014 3015 return msie > 0 || trident > 0; 3016 } 3017 3018 if (!isIE()) return; 3019 const cartSubmitInput = document.createElement('input'); 3020 cartSubmitInput.setAttribute('name', 'checkout'); 3021 cartSubmitInput.setAttribute('type', 'hidden'); 3022 document.querySelector('#cart').appendChild(cartSubmitInput); 3023 document.querySelector('#checkout').addEventListener('click', function (event) { 3024 document.querySelector('#cart').submit(); 3025 }); 3026 }); 3027</script>
3027 3028<div id="shopify-section-dtc-cart-drawer" class="shopify-section dtc-cart-drawer-section"><style data-shopify>#shopify-section-dtc-cart-drawer { 3029 height: 0; 3030 overflow: clip; 3031 margin: 0; 3032 padding: 0; 3033 border: 0; 3034 }</style><dtc-cart-drawer 3035 id="DtcCartDrawer" 3036 class="dtc-cart-drawer is-empty" 3037 data-v-gtm-view-cart 3038 data-v-gtm-module="Cart Popup" 3039> 3040 <div class="dtc-cart-drawer__overlay" data-dtc-cart-close></div> 3041 3042 <div 3043 class="dtc-cart-drawer__main is-empty" 3044 role="dialog" 3045 aria-modal="true" 3046 aria-label="Your cart" 3047 tabindex="-1" 3048 > 3049 <div class="dtc-cart-drawer__inner" tabindex="-1"> 3050 <header class="dtc-cart-drawer__header"> 3051 <div class="dtc-cart-drawer__heading">Your cart</div> 3052 <button 3053 class="dtc-cart-drawer__close" 3054 type="button" 3055 aria-label="Close" 3056 data-dtc-cart-close 3057 > 3058 3059 3060<svg 3061 class="" 3062 width="15" 3063 height="15" 3064 viewBox="0 0 15 15" 3065 fill="none" 3066 xmlns="http://www.w3.org/2000/svg" 3067 > 3068 <path d="M12.8536 2.85355C13.0488 2.65829 13.0488 2.34171 12.8536 2.14645C12.6583 1.95118 12.3417 1.95118 12.1464 2.14645L7.5 6.79289L2.85355 2.14645C2.65829 1.95118 2.34171 1.95118 2.14645 2.14645C1.95118 2.34171 1.95118 2.65829 2.14645 2.85355L6.79289 7.5L2.14645 12.1464C1.95118 12.3417 1.95118 12.6583 2.14645 12.8536C2.34171 13.0488 2.65829 13.0488 2.85355 12.8536L7.5 8.20711L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L8.20711 7.5L12.8536 2.85355Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path> 3069 </svg> 3070</button> 3071 </header> 3072 3073 <div class="dtc-cart-drawer__items is-empty"> 3074 <form id="DtcCartDrawer-Form" action="/cart" method="post" class="dtc-cart-drawer__form"> 3075 <div class="dtc-cart-drawer__contents"><div class="dtc-cart-drawer__empty"> 3076 <p class="dtc-cart-drawer__empty-title">Your cart is empty</p> 3077 <button type="button" class="dtc-cart-drawer__button dtc-cart-drawer__button--primary" data-dtc-cart-close> 3078 Continue Shopping 3079 </button> 3080 </div><p id="DtcCartDrawer-LiveRegionText" class="sr-only" role="status"></p> 3081 <p id="DtcCartDrawer-LineItemStatus" class="sr-only" aria-hidden="true" role="status"> 3082 Loading... 3083 </p> 3084 </div> 3085 </form> 3086 </div> 3087 3088 <footer class="dtc-cart-drawer__footer"> 3089 <div class="totals dtc-cart-drawer__subtotal" role="status"> 3090 <div class="totals__subtotal dtc-cart-drawer__subtotal-label">Subtotal:</div> 3091 <p class="totals__subtotal-value dtc-cart-drawer__subtotal-value"> 3092 $0 3093 </p> 3094 </div> 3095 3096 <div class="dtc-cart-drawer__benefits" aria-label="Cart benefits"> 3097 <div class="dtc-cart-drawer__benefit"> 3098 3099 3100<svg 3101 class="dtc-cart-drawer__benefit-icon" 3102 width="16" 3103 height="16"
3104 viewBox="0 0 256 256" 3105 fill="none" 3106 xmlns="http://www.w3.org/2000/svg" 3107 aria-hidden="true" 3108 > 3109 <path d="M16 64h152v112H16V64Z" stroke="currentColor" stroke-width="16" stroke-linejoin="round"/> 3110 <path d="M168 104h40l32 40v32h-72v-72Z" stroke="currentColor" stroke-width="16" stroke-linejoin="round"/> 3111 <circle cx="72" cy="184" r="24" stroke="currentColor" stroke-width="16"/> 3112 <circle cx="200" cy="184" r="24" stroke="currentColor" stroke-width="16"/> 3113 <path d="M16 176h32M96 176h80" stroke="currentColor" stroke-width="16" stroke-linecap="round"/> 3114 </svg> 3115<span>Free shipping</span> 3116 </div> 3117 <div class="dtc-cart-drawer__benefit"> 3118 3119 3120<svg 3121 class="dtc-cart-drawer__benefit-icon" 3122 width="16" 3123 height="16" 3124 viewBox="0 0 256 256" 3125 fill="none" 3126 xmlns="http://www.w3.org/2000/svg" 3127 aria-hidden="true" 3128 > 3129 <path d="M56 96H16V56" stroke="currentColor" stroke-width="16" stroke-linecap="round" stroke-linejoin="round"/> 3130 <path d="M50.2 176A88 88 0 1 0 40 88" stroke="currentColor" stroke-width="16" stroke-linecap="round"/> 3131 <path d="M128 80v56l40 24" stroke="currentColor" stroke-width="16" stroke-linecap="round" stroke-linejoin="round"/> 3132 </svg> 3133<span>2-year warranty</span> 3134 </div> 3135 <div class="dtc-cart-drawer__benefit"> 3136 3137 3138<svg 3139 class="dtc-cart-drawer__benefit-icon" 3140 width="16" 3141 height="16"
3142 viewBox="0 0 256 256" 3143 fill="none" 3144 xmlns="http://www.w3.org/2000/svg" 3145 aria-hidden="true" 3146 > 3147 <path d="M56 96H16V56" stroke="currentColor" stroke-width="16" stroke-linecap="round" stroke-linejoin="round"/> 3148 <path d="M50.2 176A88 88 0 1 0 40 88" stroke="currentColor" stroke-width="16" stroke-linecap="round"/> 3149 <path d="M128 80v56l40 24" stroke="currentColor" stroke-width="16" stroke-linecap="round" stroke-linejoin="round"/> 3150 </svg> 3151<span>30-day returns</span> 3152 </div> 3153 </div> 3154 3155 <div class="cart__ctas dtc-cart-drawer__ctas"> 3156 <noscript> 3157 <button type="submit" class="cart__update-button dtc-cart-drawer__button dtc-cart-drawer__button--secondary" form="DtcCartDrawer-Form"> 3158 Update 3159 </button> 3160 </noscript> 3161 3162 <button type="button" class="dtc-cart-drawer__button dtc-cart-drawer__button--secondary" data-dtc-cart-close> 3163 Continue Shopping 3164 </button> 3165 3166 <button 3167 type="submit" 3168 id="DtcCartDrawer-Checkout" 3169 class="cart__checkout-button button dtc-cart-drawer__button dtc-cart-drawer__button--primary" 3170 name="checkout" 3171 form="DtcCartDrawer-Form" 3172 data-v-gtm-checkout 3173 data-v-gtm-module="Cart Popup" 3174 data-v-gtm-button-name="Checkout" 3175 3176 disabled 3177 3178 > 3179 Check out 3180 </button> 3181 </div> 3182 3183 <div id="DtcCartDrawer-CartErrors" role="alert" class="dtc-cart-drawer__errors"></div> 3184 </footer> 3185 </div> 3186 3187 <div class="dtc-cart-drawer__loading" aria-hidden="true"> 3188 <span class="dtc-cart-drawer__loading-spinner loader-spinner" role="status" aria-label="Loading..."> 3189 3190 3191<svg 3192 class=" inline-block h-5 w-5 animate-spin text-white" 3193 xmlns="http://www.w3.org/2000/svg" 3194 fill="none"
3195 viewBox="0 0 24 24" 3196 aria-hidden="true" 3197 > 3198 <circle class="opacity-25" cx="12" cy="12" r="10" stroke="black" stroke-width="4"></circle> 3199 <path class="opacity-75" fill="black" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path> 3200 </svg> 3201</span> 3202 </div> 3203 </div> 3204</dtc-cart-drawer> 3205 3206</div><main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1"> 3207 <section id="shopify-section-template--28135044186421__main" class="shopify-section section"><div class="breadcrumbs_main breadcrumbs_product"> 3208 3209 <div class="page-width"> 3210 <nav class="breadcrumb" role="navigation" aria-label="breadcrumbs"> 3211 <a href="/" title="Home">Home</a> 3212 3213 3214 3215 / <span class="product_title">Juni⢠The Automatic Pour-Over Coffee Machine</span> 3216 3217 </nav> 3218 </div> 3219 3220 3221</div> 3222<section 3223 id="MainProduct-template--28135044186421__main" 3224 class="product_main section-template--28135044186421__main-padding gradient color-scheme-1" 3225 data-section="template--28135044186421__main" 3226> 3227 <link href="//cosori.com/cdn/shop/t/166/assets/section-main-product.css?v=161891742243770795701789674181" rel="stylesheet" type="text/css" media="all" /> 3228 <link href="//cosori.com/cdn/shop/t/166/assets/component-accordion.css?v=119364686647466659431789674181" rel="stylesheet" type="text/css" media="all" /> 3229 <link href="//cosori.com/cdn/shop/t/166/assets/component-price.css?v=34032550459237142151789674181" rel="stylesheet" type="text/css" media="all" /> 3230 <link href="//cosori.com/cdn/shop/t/166/assets/component-slider.css?v=164302892904981776131789674181" rel="stylesheet" type="text/css" media="all" /> 3231 <link href="//cosori.com/cdn/shop/t/166/assets/component-rating.css?v=173690043817323355641789674181" rel="stylesheet" type="text/css" media="all" /> 3232 <link href="//cosori.com/cdn/shop/t/166/assets/component-deferred-media.css?v=14096082462203297471789674181" rel="stylesheet" type="text/css" media="all" /> 3233 3234 <link href="//cosori.com/cdn/shop/t/166/assets/component-product-variant-picker.css?v=167434723806732782051789674181" rel="stylesheet" type="text/css" media="all" /> 3235 <link href="//cosori.com/cdn/shop/t/166/assets/component-swatch-input.css?v=184205075229120217711789674181" rel="stylesheet" type="text/css" media="all" /> 3236 <link href="//cosori.com/cdn/shop/t/166/assets/component-swatch.css?v=61896725941242793861789674181" rel="stylesheet" type="text/css" media="all" /> 3237 �<style data-shopify>.section-template--28135044186421__main-padding { 3238 padding-top: 36px; 3239 padding-bottom: 9px; 3240 } 3241 3242 @media (min-width: 768px) { 3243 .section-template--28135044186421__main-padding { 3244 padding-top: 48px; 3245 padding-bottom: 12px; 3246 } 3247 }</style>
3247<script src="//cosori.com/cdn/shop/t/166/assets/product-info.js?v=125122232605238659181789674181" defer="defer"></script>
3247 3248
3248<script src="//cosori.com/cdn/shop/t/166/assets/product-form.js?v=157174077156496872421789674181" defer="defer"></script>
3248 3249
3249<script id="EnableZoomOnHover-main" src="//cosori.com/cdn/shop/t/166/assets/magnify.js?v=137710018090829782941789674181" defer="defer"></script>
3249 3250 � 3251 3252 <div class="page-width"> 3253 <div class="product product--medium product--left product--thumbnail_slider product--mobile-show grid grid--1-col grid--2-col-tablet-ss"> 3254 <div class="grid__item product__media-wrapper"> 3255 3256<media-gallery 3257 id="MediaGallery-template--28135044186421__main" 3258 role="region" 3259 3260 aria-label="Gallery Viewer" 3261 data-desktop-layout="thumbnail_slider" 3262> 3263 <div id="GalleryStatus-template--28135044186421__main" class="visually-hidden" role="status"></div> 3264 <slider-component id="GalleryViewer-template--28135044186421__main" class="slider-mobile-gutter"><a class="skip-to-content-link button visually-hidden quick-add-hidden" href="#ProductInfo-template--28135044186421__main"> 3265 Skip to product information 3266 </a><ul 3267 id="Slider-Gallery-template--28135044186421__main" 3268 class="product__media-list contains-media grid grid--peek list-unstyled slider slider--mobile" 3269 role="list" 3270 ><li 3271 id="Slide-template--28135044186421__main-56695870030133" 3272 class="product__media-item grid__item slider__slide is-active product__media-item--variant" 3273 data-media-id="template--28135044186421__main-56695870030133" 3274 > 3275 3276<div 3277 class="product-media-container media-type-image media-fit-contain global-media-settings gradient constrain-height" 3278 style="--ratio: 1.1228070175438596; --preview-ratio: 1.1228070175438596;" 3279> 3280 <noscript><div class="product__media media"> 3281 <img src="//cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=1946" alt="Juni automatic pour-over coffee maker with glass carafe and SCA certification badge" srcset="//cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=246 246w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=493 493w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=600 600w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=713 713w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=823 823w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=990 990w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=1100 1100w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=1206 1206w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=1346 1346w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=1426 1426w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=1646 1646w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=1946 1946w" width="1946" height="1733" sizes="(min-width: 1650px) 853px, (min-width: 990px) calc(55.0vw - 10rem), (min-width: 768px) calc((100vw - 11.5rem) / 2), calc(100vw / 1 - 4rem)"> 3282 </div></noscript> 3283 3284 <modal-opener 3285 class="product__modal-opener product__modal-opener--image no-js-hidden" 3286 data-modal="#ProductModal-template--28135044186421__main" 3287 > 3288 <span 3289 class="product__media-icon motion-reduce quick-add-hidden product__media-icon--hover" 3290 aria-hidden="true" 3291 ><svg 3292 aria-hidden="true" 3293 focusable="false" 3294 class="icon icon-plus" 3295 width="19" 3296 height="19" 3297 viewBox="0 0 19 19" 3298 fill="none" 3299 xmlns="http://www.w3.org/2000/svg" 3300> 3301 <path fill-rule="evenodd" clip-rule="evenodd" d="M4.66724 7.93978C4.66655 7.66364 4.88984 7.43922 5.16598 7.43853L10.6996 7.42464C10.9758 7.42395 11.2002 7.64724 11.2009 7.92339C11.2016 8.19953 10.9783 8.42395 10.7021 8.42464L5.16849 8.43852C4.89235 8.43922 4.66793 8.21592 4.66724 7.93978Z" fill="currentColor"/> 3302 <path fill-rule="evenodd" clip-rule="evenodd" d="M7.92576 4.66463C8.2019 4.66394 8.42632 4.88723 8.42702 5.16337L8.4409 10.697C8.44159 10.9732 8.2183 11.1976 7.94215 11.1983C7.66601 11.199 7.44159 10.9757 7.4409 10.6995L7.42702 5.16588C7.42633 4.88974 7.64962 4.66532 7.92576 4.66463Z" fill="currentColor"/> 3303 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.8324 3.03011C10.1255 0.323296 5.73693 0.323296 3.03011 3.03011C0.323296 5.73693 0.323296 10.1256 3.03011 12.8324C5.73693 15.5392 10.1255 15.5392 12.8324 12.8324C15.5392 10.1256 15.5392 5.73693 12.8324 3.03011ZM2.32301 2.32301C5.42035 -0.774336 10.4421 -0.774336 13.5395 2.32301C16.6101 5.39361 16.6366 10.3556 13.619 13.4588L18.2473 18.0871C18.4426 18.2824 18.4426 18.599 18.2473 18.7943C18.0521 18.9895 17.7355 18.9895 17.5402 18.7943L12.8778 14.1318C9.76383 16.6223 5.20839 16.4249 2.32301 13.5395C-0.774335 10.4421 -0.774335 5.42035 2.32301 2.32301Z" fill="currentColor"/> 3304</svg> 3305</span> 3306 3307<link href="//cosori.com/cdn/shop/t/166/assets/component-loading-spinner.css?v=116724955567955766481789674181" rel="stylesheet" type="text/css" media="all" /> 3308 3309<div class="loading__spinner hidden"> 3310 <svg 3311 aria-hidden="true" 3312 focusable="false" 3313 class="spinner"
3314 viewBox="0 0 66 66" 3315 xmlns="http://www.w3.org/2000/svg" 3316 > 3317 <circle class="path" fill="none" stroke-width="6" cx="33" cy="33" r="30"></circle> 3318 </svg> 3319</div> 3320<div class="product__media media media--transparent"> 3321 <img src="//cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=1946" alt="Juni automatic pour-over coffee maker with glass carafe and SCA certification badge" srcset="//cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=246 246w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=493 493w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=600 600w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=713 713w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=823 823w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=990 990w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=1100 1100w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=1206 1206w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=1346 1346w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=1426 1426w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=1646 1646w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=1946 1946w" width="1946" height="1733" class="image-magnify-hover" sizes="(min-width: 1650px) 853px, (min-width: 990px) calc(55.0vw - 10rem), (min-width: 768px) calc((100vw - 11.5rem) / 2), calc(100vw / 1 - 4rem)"> 3322 </div> 3323 <button 3324 class="product__media-toggle quick-add-hidden product__media-zoom-hover" 3325 type="button" 3326 aria-haspopup="dialog" 3327 data-media-id="56695870030133" 3328 > 3329 <span class="visually-hidden"> 3330 Open media 1 in modal 3331 </span> 3332 </button> 3333 </modal-opener></div> 3334 3335 </li><li 3336 id="Slide-template--28135044186421__main-56803289858357" 3337 class="product__media-item grid__item slider__slide" 3338 data-media-id="template--28135044186421__main-56803289858357" 3339 > 3340 3341<div 3342 class="product-media-container media-type-image media-fit-contain global-media-settings gradient constrain-height" 3343 style="--ratio: 1.0; --preview-ratio: 1.0;" 3344> 3345 <noscript><div class="product__media media"> 3346 <img src="//cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=1946" alt="Front view of Juni automatic pour-over coffee maker with glass carafe and handle" srcset="//cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=246 246w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=493 493w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=600 600w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=713 713w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=823 823w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=990 990w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=1100 1100w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=1206 1206w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=1346 1346w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=1426 1426w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=1646 1646w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=1946 1946w" width="1946" height="1946" loading="lazy" sizes="(min-width: 1650px) 853px, (min-width: 990px) calc(55.0vw - 10rem), (min-width: 768px) calc((100vw - 11.5rem) / 2), calc(100vw / 1 - 4rem)"> 3347 </div></noscript> 3348 3349 <modal-opener 3350 class="product__modal-opener product__modal-opener--image no-js-hidden" 3351 data-modal="#ProductModal-template--28135044186421__main" 3352 > 3353 <span 3354 class="product__media-icon motion-reduce quick-add-hidden product__media-icon--hover" 3355 aria-hidden="true" 3356 ><svg 3357 aria-hidden="true" 3358 focusable="false" 3359 class="icon icon-plus" 3360 width="19" 3361 height="19" 3362 viewBox="0 0 19 19" 3363 fill="none" 3364 xmlns="http://www.w3.org/2000/svg" 3365> 3366 <path fill-rule="evenodd" clip-rule="evenodd" d="M4.66724 7.93978C4.66655 7.66364 4.88984 7.43922 5.16598 7.43853L10.6996 7.42464C10.9758 7.42395 11.2002 7.64724 11.2009 7.92339C11.2016 8.19953 10.9783 8.42395 10.7021 8.42464L5.16849 8.43852C4.89235 8.43922 4.66793 8.21592 4.66724 7.93978Z" fill="currentColor"/> 3367 <path fill-rule="evenodd" clip-rule="evenodd" d="M7.92576 4.66463C8.2019 4.66394 8.42632 4.88723 8.42702 5.16337L8.4409 10.697C8.44159 10.9732 8.2183 11.1976 7.94215 11.
33671983C7.66601 11.199 7.44159 10.9757 7.4409 10.6995L7.42702 5.16588C7.42633 4.88974 7.64962 4.66532 7.92576 4.66463Z" fill="currentColor"/> 3368 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.8324 3.03011C10.1255 0.323296 5.73693 0.323296 3.03011 3.03011C0.323296 5.73693 0.323296 10.1256 3.03011 12.8324C5.73693 15.5392 10.1255 15.5392 12.8324 12.8324C15.5392 10.1256 15.5392 5.73693 12.8324 3.03011ZM2.32301 2.32301C5.42035 -0.774336 10.4421 -0.774336 13.5395 2.32301C16.6101 5.39361 16.6366 10.3556 13.619 13.4588L18.2473 18.0871C18.4426 18.2824 18.4426 18.599 18.2473 18.7943C18.0521 18.9895 17.7355 18.9895 17.5402 18.7943L12.8778 14.1318C9.76383 16.6223 5.20839 16.4249 2.32301 13.5395C-0.774335 10.4421 -0.774335 5.42035 2.32301 2.32301Z" fill="currentColor"/> 3369</svg> 3370</span> 3371 3372<link href="//cosori.com/cdn/shop/t/166/assets/component-loading-spinner.css?v=116724955567955766481789674181" rel="stylesheet" type="text/css" media="all" /> 3373 3374<div class="loading__spinner hidden"> 3375 <svg 3376 aria-hidden="true" 3377 focusable="false" 3378 class="spinner" 3379 viewBox="0 0 66 66" 3380 xmlns="http://www.w3.org/2000/svg" 3381 > 3382 <circle class="path" fill="none" stroke-width="6" cx="33" cy="33" r="30"></circle> 3383 </svg> 3384</div> 3385<div class="product__media media media--transparent"> 3386 <img src="//cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=1946" alt="Front view of Juni automatic pour-over coffee maker with glass carafe and handle" srcset="//cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=246 246w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=493 493w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=600 600w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=713 713w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=823 823w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=990 990w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=1100 1100w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=1206 1206w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=1346 1346w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=1426 1426w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=1646 1646w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=1946 1946w" width="1946" height="1946" loading="lazy" class="image-magnify-hover" sizes="(min-width: 1650px) 853px, (min-width: 990px) calc(55.0vw - 10rem), (min-width: 768px) calc((100vw - 11.5rem) / 2), calc(100vw / 1 - 4rem)"> 3387 </div> 3388 <button 3389 class="product__media-toggle quick-add-hidden product__media-zoom-hover" 3390 type="button" 3391 aria-haspopup="dialog" 3392 data-media-id="56803289858357" 3393 > 3394 <span class="visually-hidden"> 3395 Open media 2 in modal 3396 </span> 3397 </button> 3398 </modal-opener></div> 3399 3400 </li><li 3401 id="Slide-template--28135044186421__main-56803306930485" 3402 class="product__media-item grid__item slider__slide product__media-item--variant" 3403 data-media-id="template--28135044186421__main-56803306930485" 3404 > 3405 3406<div 3407 class="product-media-container media-type-image media-fit-contain global-media-settings gradient constrain-height" 3408 style="--ratio: 1.0; --preview-ratio: 1.0;" 3409> 3410 <noscript><div class="product__media media"> 3411 <img src="//cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=1946" alt="Juni automatic pour-over coffee maker with brew basket and glass carafe, front angle" srcset="//cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=246 246w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=493 493w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackgroun
3411d_1.jpg?v=1788767150&width=600 600w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=713 713w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=823 823w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=990 990w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=1100 1100w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=1206 1206w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=1346 1346w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=1426 1426w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=1646 1646w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=1946 1946w" width="1946" height="1946" loading="lazy" sizes="(min-width: 1650px) 853px, (min-width: 990px) calc(55.0vw - 10rem), (min-width: 768px) calc((100vw - 11.5rem) / 2), calc(100vw / 1 - 4rem)"> 3412 </div></noscript> 3413 3414 <modal-opener 3415 class="product__modal-opener product__modal-opener--image no-js-hidden" 3416 data-modal="#ProductModal-template--28135044186421__main" 3417 > 3418 <span 3419 class="product__media-icon motion-reduce quick-add-hidden product__media-icon--hover" 3420 aria-hidden="true" 3421 ><svg 3422 aria-hidden="true" 3423 focusable="false" 3424 class="icon icon-plus" 3425 width="19" 3426 height="19" 3427 viewBox="0 0 19 19" 3428 fill="none" 3429 xmlns="http://www.w3.org/2000/svg" 3430> 3431 <path fill-rule="evenodd" clip-rule="evenodd" d="M4.66724 7.93978C4.66655 7.66364 4.88984 7.43922 5.16598 7.43853L10.6996 7.42464C10.9758 7.42395 11.2002 7.64724 11.2009 7.92339C11.2016 8.19953 10.9783 8.42395 10.7021 8.42464L5.16849 8.43852C4.89235 8.43922 4.66793 8.21592 4.66724 7.93978Z" fill="currentColor"/> 3432 <path fill-rule="evenodd" clip-rule="evenodd" d="M7.92576 4.66463C8.2019 4.66394 8.42632 4.88723 8.42702 5.16337L8.4409 10.697C8.44159 10.9732 8.2183 11.1976 7.94215 11.1983C7.66601 11.199 7.44159 10.9757 7.4409 10.6995L7.42702 5.16588C7.42633 4.88974 7.64962 4.66532 7.92576 4.66463Z" fill="currentColor"/> 3433 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.8324 3.03011C10.1255 0.323296 5.73693 0.323296 3.03011 3.03011C0.323296 5.73693 0.323296 10.1256 3.03011 12.8324C5.73693 15.5392 10.1255 15.5392 12.8324 12.8324C15.5392 10.1256 15.5392 5.73693 12.8324 3.03011ZM2.32301 2.32301C5.42035 -0.774336 10.4421 -0.774336 13.5395 2.32301C16.6101 5.39361 16.6366 10.3556 13.619 13.4588L18.2473 18.0871C18.4426 18.2824 18.4426 18.599 18.2473 18.7943C18.0521 18.9895 17.7355 18.9895 17.5402 18.7943L12.8778 14.1318C9.76383 16.6223 5.20839 16.4249 2.32301 13.5395C-0.774335 10.4421 -0.774335 5.42035 2.32301 2.32301Z" fill="currentColor"/> 3434</svg> 3435</span> 3436 3437<link href="//cosori.com/cdn/shop/t/166/assets/component-loading-spinner.css?v=116724955567955766481789674181" rel="stylesheet" type="text/css" media="all" /> 3438 3439<div class="loading__spinner hidden"> 3440 <svg 3441 aria-hidden="true" 3442 focusable="false" 3443 class="spinner" 3444 viewBox="0 0 66 66" 3445 xmlns="http://www.w3.org/2000/svg" 3446 > 3447 <circle class="path" fill="none" stroke-width="6" cx="33" cy="33" r="30"></circle> 3448 </svg> 3449</div> 3450<div class="product__media media media--transparent"> 3451 <img src="//cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=1946" alt="Juni automatic pour-over coffee maker with brew basket and glass carafe, front angle" srcset="//cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=246 246w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=493 493w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=600 600w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=713 713w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackgroun
3451d_1.jpg?v=1788767150&width=823 823w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=990 990w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=1100 1100w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=1206 1206w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=1346 1346w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=1426 1426w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=1646 1646w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=1946 1946w" width="1946" height="1946" loading="lazy" class="image-magnify-hover" sizes="(min-width: 1650px) 853px, (min-width: 990px) calc(55.0vw - 10rem), (min-width: 768px) calc((100vw - 11.5rem) / 2), calc(100vw / 1 - 4rem)"> 3452 </div> 3453 <button 3454 class="product__media-toggle quick-add-hidden product__media-zoom-hover" 3455 type="button" 3456 aria-haspopup="dialog" 3457 data-media-id="56803306930485" 3458 > 3459 <span class="visually-hidden"> 3460 Open media 3 in modal 3461 </span> 3462 </button> 3463 </modal-opener></div> 3464 3465 </li><li 3466 id="Slide-template--28135044186421__main-56803574874421" 3467 class="product__media-item grid__item slider__slide" 3468 data-media-id="template--28135044186421__main-56803574874421" 3469 > 3470 3471<div 3472 class="product-media-container media-type-image media-fit-contain global-media-settings gradient constrain-height" 3473 style="--ratio: 1.0; --preview-ratio: 1.0;" 3474> 3475 <noscript><div class="product__media media"> 3476 <img src="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=1946" alt="Close-up of Juni coffee maker control panel and base with brew settings buttons" srcset="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=246 246w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=493 493w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=600 600w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=713 713w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=823 823w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=990 990w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=1100 1100w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=1206 1206w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=1346 1346w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=1426 1426w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=1646 1646w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=1946 1946w" width="1946" height="1946" loading="lazy" sizes="(min-width: 1650px) 853px, (min-width: 990px) calc(55.0vw - 10rem), (min-width: 768px) calc((100vw - 11.5rem) / 2), calc(100vw / 1 - 4rem)"> 3477 </div></noscript> 3478 3479 <modal-opener 3480 class="product__modal-opener product__modal-opener--image no-js-hidden" 3481 data-modal="#ProductModal-template--28135044186421__main" 3482 > 3483 <span 3484 class="product__media-icon motion-reduce quick-add-hidden product__media-icon--hover" 3485 aria-hidden="true" 3486 ><svg 3487 aria-hidden="true" 3488 focusable="false" 3489 class="icon icon-plus" 3490 width="19" 3491 height="19" 3492 viewBox="0 0 19 19" 3493 fill="none" 3494 xmlns="http://www.w3.org/2000/svg" 3495> 3496 <path fill-rule="evenodd" clip-rule="evenodd" d="M4.66724 7.93978C4.66655 7.66364 4.88984 7.43922 5.16598 7.43853L10.6996 7.42464C10.9758 7.42395 11.2002 7.64724 11.2009 7.92339C11.2016 8.19953 10.9783 8.42395 10.7021 8.42464L5.16849 8.43852C4.89235 8.43922 4.66793 8.21592 4.66724 7.93978Z" fill="currentColor"/> 3497 <path fill-rule="evenodd" clip-rule="evenodd" d="M7.92576 4.66463C8.2019 4.66394 8.42632 4.88723 8.42702 5.16337L8.4409 10.697C8.44159 10.9732 8.2183 11.1976 7.94215 11.
34971983C7.66601 11.199 7.44159 10.9757 7.4409 10.6995L7.42702 5.16588C7.42633 4.88974 7.64962 4.66532 7.92576 4.66463Z" fill="currentColor"/> 3498 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.8324 3.03011C10.1255 0.323296 5.73693 0.323296 3.03011 3.03011C0.323296 5.73693 0.323296 10.1256 3.03011 12.8324C5.73693 15.5392 10.1255 15.5392 12.8324 12.8324C15.5392 10.1256 15.5392 5.73693 12.8324 3.03011ZM2.32301 2.32301C5.42035 -0.774336 10.4421 -0.774336 13.5395 2.32301C16.6101 5.39361 16.6366 10.3556 13.619 13.4588L18.2473 18.0871C18.4426 18.2824 18.4426 18.599 18.2473 18.7943C18.0521 18.9895 17.7355 18.9895 17.5402 18.7943L12.8778 14.1318C9.76383 16.6223 5.20839 16.4249 2.32301 13.5395C-0.774335 10.4421 -0.774335 5.42035 2.32301 2.32301Z" fill="currentColor"/> 3499</svg> 3500</span> 3501 3502<link href="//cosori.com/cdn/shop/t/166/assets/component-loading-spinner.css?v=116724955567955766481789674181" rel="stylesheet" type="text/css" media="all" /> 3503 3504<div class="loading__spinner hidden"> 3505 <svg 3506 aria-hidden="true" 3507 focusable="false" 3508 class="spinner" 3509 viewBox="0 0 66 66" 3510 xmlns="http://www.w3.org/2000/svg" 3511 > 3512 <circle class="path" fill="none" stroke-width="6" cx="33" cy="33" r="30"></circle> 3513 </svg> 3514</div> 3515<div class="product__media media media--transparent"> 3516 <img src="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=1946" alt="Close-up of Juni coffee maker control panel and base with brew settings buttons" srcset="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=246 246w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=493 493w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=600 600w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=713 713w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=823 823w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=990 990w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=1100 1100w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=1206 1206w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=1346 1346w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=1426 1426w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=1646 1646w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=1946 1946w" width="1946" height="1946" loading="lazy" class="image-magnify-hover" sizes="(min-width: 1650px) 853px, (min-width: 990px) calc(55.0vw - 10rem), (min-width: 768px) calc((100vw - 11.5rem) / 2), calc(100vw / 1 - 4rem)"> 3517 </div> 3518 <button 3519 class="product__media-toggle quick-add-hidden product__media-zoom-hover" 3520 type="button" 3521 aria-haspopup="dialog" 3522 data-media-id="56803574874421" 3523 > 3524 <span class="visually-hidden"> 3525 Open media 4 in modal 3526 </span> 3527 </button> 3528 </modal-opener></div> 3529 3530 </li><li 3531 id="Slide-template--28135044186421__main-56803595059509" 3532 class="product__media-item grid__item slider__slide" 3533 data-media-id="template--28135044186421__main-56803595059509" 3534 > 3535 3536<div 3537 class="product-media-container media-type-image media-fit-contain global-media-settings gradient constrain-height" 3538 style="--ratio: 1.0; --preview-ratio: 1.0;" 3539> 3540 <noscript><div class="product__media media"> 3541 <img src="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=1946" alt="Juni automatic pour-over coffee maker, full front view with pour-over brew basket" srcset="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=246 246w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=493 493w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Backgroun
3541d_4.jpg?v=1788767590&width=600 600w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=713 713w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=823 823w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=990 990w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=1100 1100w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=1206 1206w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=1346 1346w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=1426 1426w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=1646 1646w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=1946 1946w" width="1946" height="1946" loading="lazy" sizes="(min-width: 1650px) 853px, (min-width: 990px) calc(55.0vw - 10rem), (min-width: 768px) calc((100vw - 11.5rem) / 2), calc(100vw / 1 - 4rem)"> 3542 </div></noscript> 3543 3544 <modal-opener 3545 class="product__modal-opener product__modal-opener--image no-js-hidden" 3546 data-modal="#ProductModal-template--28135044186421__main" 3547 > 3548 <span 3549 class="product__media-icon motion-reduce quick-add-hidden product__media-icon--hover" 3550 aria-hidden="true" 3551 ><svg 3552 aria-hidden="true" 3553 focusable="false" 3554 class="icon icon-plus" 3555 width="19" 3556 height="19" 3557 viewBox="0 0 19 19" 3558 fill="none" 3559 xmlns="http://www.w3.org/2000/svg" 3560> 3561 <path fill-rule="evenodd" clip-rule="evenodd" d="M4.66724 7.93978C4.66655 7.66364 4.88984 7.43922 5.16598 7.43853L10.6996 7.42464C10.9758 7.42395 11.2002 7.64724 11.2009 7.92339C11.2016 8.19953 10.9783 8.42395 10.7021 8.42464L5.16849 8.43852C4.89235 8.43922 4.66793 8.21592 4.66724 7.93978Z" fill="currentColor"/> 3562 <path fill-rule="evenodd" clip-rule="evenodd" d="M7.92576 4.66463C8.2019 4.66394 8.42632 4.88723 8.42702 5.16337L8.4409 10.697C8.44159 10.9732 8.2183 11.1976 7.94215 11.1983C7.66601 11.199 7.44159 10.9757 7.4409 10.6995L7.42702 5.16588C7.42633 4.88974 7.64962 4.66532 7.92576 4.66463Z" fill="currentColor"/> 3563 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.8324 3.03011C10.1255 0.323296 5.73693 0.323296 3.03011 3.03011C0.323296 5.73693 0.323296 10.1256 3.03011 12.8324C5.73693 15.5392 10.1255 15.5392 12.8324 12.8324C15.5392 10.1256 15.5392 5.73693 12.8324 3.03011ZM2.32301 2.32301C5.42035 -0.774336 10.4421 -0.774336 13.5395 2.32301C16.6101 5.39361 16.6366 10.3556 13.619 13.4588L18.2473 18.0871C18.4426 18.2824 18.4426 18.599 18.2473 18.7943C18.0521 18.9895 17.7355 18.9895 17.5402 18.7943L12.8778 14.1318C9.76383 16.6223 5.20839 16.4249 2.32301 13.5395C-0.774335 10.4421 -0.774335 5.42035 2.32301 2.32301Z" fill="currentColor"/> 3564</svg> 3565</span> 3566 3567<link href="//cosori.com/cdn/shop/t/166/assets/component-loading-spinner.css?v=116724955567955766481789674181" rel="stylesheet" type="text/css" media="all" /> 3568 3569<div class="loading__spinner hidden"> 3570 <svg 3571 aria-hidden="true" 3572 focusable="false" 3573 class="spinner" 3574 viewBox="0 0 66 66" 3575 xmlns="http://www.w3.org/2000/svg" 3576 > 3577 <circle class="path" fill="none" stroke-width="6" cx="33" cy="33" r="30"></circle> 3578 </svg> 3579</div> 3580<div class="product__media media media--transparent"> 3581 <img src="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=1946" alt="Juni automatic pour-over coffee maker, full front view with pour-over brew basket" srcset="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=246 246w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=493 493w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=600 600w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=713 713w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=823 823w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Backgroun
3581d_4.jpg?v=1788767590&width=990 990w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=1100 1100w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=1206 1206w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=1346 1346w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=1426 1426w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=1646 1646w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=1946 1946w" width="1946" height="1946" loading="lazy" class="image-magnify-hover" sizes="(min-width: 1650px) 853px, (min-width: 990px) calc(55.0vw - 10rem), (min-width: 768px) calc((100vw - 11.5rem) / 2), calc(100vw / 1 - 4rem)"> 3582 </div> 3583 <button 3584 class="product__media-toggle quick-add-hidden product__media-zoom-hover" 3585 type="button" 3586 aria-haspopup="dialog" 3587 data-media-id="56803595059509" 3588 > 3589 <span class="visually-hidden"> 3590 Open media 5 in modal 3591 </span> 3592 </button> 3593 </modal-opener></div> 3594 3595 </li><li 3596 id="Slide-template--28135044186421__main-56803603677493" 3597 class="product__media-item grid__item slider__slide" 3598 data-media-id="template--28135044186421__main-56803603677493" 3599 > 3600 3601<div 3602 class="product-media-container media-type-image media-fit-contain global-media-settings gradient constrain-height" 3603 style="--ratio: 1.0; --preview-ratio: 1.0;" 3604> 3605 <noscript><div class="product__media media"> 3606 <img src="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=1946" alt="Side profile view of Juni automatic pour-over coffee maker showing slim design" srcset="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=246 246w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=493 493w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=600 600w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=713 713w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=823 823w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=990 990w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=1100 1100w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=1206 1206w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=1346 1346w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=1426 1426w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=1646 1646w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=1946 1946w" width="1946" height="1946" loading="lazy" sizes="(min-width: 1650px) 853px, (min-width: 990px) calc(55.0vw - 10rem), (min-width: 768px) calc((100vw - 11.5rem) / 2), calc(100vw / 1 - 4rem)"> 3607 </div></noscript> 3608 3609 <modal-opener 3610 class="product__modal-opener product__modal-opener--image no-js-hidden" 3611 data-modal="#ProductModal-template--28135044186421__main" 3612 > 3613 <span 3614 class="product__media-icon motion-reduce quick-add-hidden product__media-icon--hover" 3615 aria-hidden="true" 3616 ><svg 3617 aria-hidden="true" 3618 focusable="false" 3619 class="icon icon-plus" 3620 width="19" 3621 height="19" 3622 viewBox="0 0 19 19" 3623 fill="none" 3624 xmlns="http://www.w3.org/2000/svg" 3625> 3626 <path fill-rule="evenodd" clip-rule="evenodd" d="M4.66724 7.93978C4.66655 7.66364 4.88984 7.43922 5.16598 7.43853L10.6996 7.42464C10.9758 7.42395 11.2002 7.64724 11.2009 7.92339C11.2016 8.19953 10.9783 8.42395 10.7021 8.42464L5.16849 8.43852C4.89235 8.43922 4.66793 8.21592 4.66724 7.93978Z" fill="currentColor"/> 3627 <path fill-rule="evenodd" clip-rule="evenodd" d="M7.92576 4.66463C8.2019 4.66394 8.42632 4.88723 8.42702 5.16337L8.4409 10.697C8.44159 10.9732 8.2183 11.1976 7.94215 11.
36271983C7.66601 11.199 7.44159 10.9757 7.4409 10.6995L7.42702 5.16588C7.42633 4.88974 7.64962 4.66532 7.92576 4.66463Z" fill="currentColor"/> 3628 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.8324 3.03011C10.1255 0.323296 5.73693 0.323296 3.03011 3.03011C0.323296 5.73693 0.323296 10.1256 3.03011 12.8324C5.73693 15.5392 10.1255 15.5392 12.8324 12.8324C15.5392 10.1256 15.5392 5.73693 12.8324 3.03011ZM2.32301 2.32301C5.42035 -0.774336 10.4421 -0.774336 13.5395 2.32301C16.6101 5.39361 16.6366 10.3556 13.619 13.4588L18.2473 18.0871C18.4426 18.2824 18.4426 18.599 18.2473 18.7943C18.0521 18.9895 17.7355 18.9895 17.5402 18.7943L12.8778 14.1318C9.76383 16.6223 5.20839 16.4249 2.32301 13.5395C-0.774335 10.4421 -0.774335 5.42035 2.32301 2.32301Z" fill="currentColor"/> 3629</svg> 3630</span> 3631 3632<link href="//cosori.com/cdn/shop/t/166/assets/component-loading-spinner.css?v=116724955567955766481789674181" rel="stylesheet" type="text/css" media="all" /> 3633 3634<div class="loading__spinner hidden"> 3635 <svg 3636 aria-hidden="true" 3637 focusable="false" 3638 class="spinner" 3639 viewBox="0 0 66 66" 3640 xmlns="http://www.w3.org/2000/svg" 3641 > 3642 <circle class="path" fill="none" stroke-width="6" cx="33" cy="33" r="30"></circle> 3643 </svg> 3644</div> 3645<div class="product__media media media--transparent"> 3646 <img src="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=1946" alt="Side profile view of Juni automatic pour-over coffee maker showing slim design" srcset="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=246 246w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=493 493w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=600 600w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=713 713w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=823 823w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=990 990w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=1100 1100w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=1206 1206w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=1346 1346w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=1426 1426w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=1646 1646w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=1946 1946w" width="1946" height="1946" loading="lazy" class="image-magnify-hover" sizes="(min-width: 1650px) 853px, (min-width: 990px) calc(55.0vw - 10rem), (min-width: 768px) calc((100vw - 11.5rem) / 2), calc(100vw / 1 - 4rem)"> 3647 </div> 3648 <button 3649 class="product__media-toggle quick-add-hidden product__media-zoom-hover" 3650 type="button" 3651 aria-haspopup="dialog" 3652 data-media-id="56803603677493" 3653 > 3654 <span class="visually-hidden"> 3655 Open media 6 in modal 3656 </span> 3657 </button> 3658 </modal-opener></div> 3659 3660 </li><li 3661 id="Slide-template--28135044186421__main-56803606888757" 3662 class="product__media-item grid__item slider__slide" 3663 data-media-id="template--28135044186421__main-56803606888757" 3664 > 3665 3666<div 3667 class="product-media-container media-type-image media-fit-contain global-media-settings gradient constrain-height" 3668 style="--ratio: 1.0; --preview-ratio: 1.0;" 3669> 3670 <noscript><div class="product__media media"> 3671 <img src="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=1946" alt="Juni automatic pour-over coffee maker brewing directly into a cup, no carafe" srcset="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=246 246w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=493 493w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Backgroun
3671d_5.jpg?v=1788767614&width=600 600w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=713 713w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=823 823w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=990 990w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=1100 1100w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=1206 1206w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=1346 1346w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=1426 1426w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=1646 1646w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=1946 1946w" width="1946" height="1946" loading="lazy" sizes="(min-width: 1650px) 853px, (min-width: 990px) calc(55.0vw - 10rem), (min-width: 768px) calc((100vw - 11.5rem) / 2), calc(100vw / 1 - 4rem)"> 3672 </div></noscript> 3673 3674 <modal-opener 3675 class="product__modal-opener product__modal-opener--image no-js-hidden" 3676 data-modal="#ProductModal-template--28135044186421__main" 3677 > 3678 <span 3679 class="product__media-icon motion-reduce quick-add-hidden product__media-icon--hover" 3680 aria-hidden="true" 3681 ><svg 3682 aria-hidden="true" 3683 focusable="false" 3684 class="icon icon-plus" 3685 width="19" 3686 height="19" 3687 viewBox="0 0 19 19" 3688 fill="none" 3689 xmlns="http://www.w3.org/2000/svg" 3690> 3691 <path fill-rule="evenodd" clip-rule="evenodd" d="M4.66724 7.93978C4.66655 7.66364 4.88984 7.43922 5.16598 7.43853L10.6996 7.42464C10.9758 7.42395 11.2002 7.64724 11.2009 7.92339C11.2016 8.19953 10.9783 8.42395 10.7021 8.42464L5.16849 8.43852C4.89235 8.43922 4.66793 8.21592 4.66724 7.93978Z" fill="currentColor"/> 3692 <path fill-rule="evenodd" clip-rule="evenodd" d="M7.92576 4.66463C8.2019 4.66394 8.42632 4.88723 8.42702 5.16337L8.4409 10.697C8.44159 10.9732 8.2183 11.1976 7.94215 11.1983C7.66601 11.199 7.44159 10.9757 7.4409 10.6995L7.42702 5.16588C7.42633 4.88974 7.64962 4.66532 7.92576 4.66463Z" fill="currentColor"/> 3693 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.8324 3.03011C10.1255 0.323296 5.73693 0.323296 3.03011 3.03011C0.323296 5.73693 0.323296 10.1256 3.03011 12.8324C5.73693 15.5392 10.1255 15.5392 12.8324 12.8324C15.5392 10.1256 15.5392 5.73693 12.8324 3.03011ZM2.32301 2.32301C5.42035 -0.774336 10.4421 -0.774336 13.5395 2.32301C16.6101 5.39361 16.6366 10.3556 13.619 13.4588L18.2473 18.0871C18.4426 18.2824 18.4426 18.599 18.2473 18.7943C18.0521 18.9895 17.7355 18.9895 17.5402 18.7943L12.8778 14.1318C9.76383 16.6223 5.20839 16.4249 2.32301 13.5395C-0.774335 10.4421 -0.774335 5.42035 2.32301 2.32301Z" fill="currentColor"/> 3694</svg> 3695</span> 3696 3697<link href="//cosori.com/cdn/shop/t/166/assets/component-loading-spinner.css?v=116724955567955766481789674181" rel="stylesheet" type="text/css" media="all" /> 3698 3699<div class="loading__spinner hidden"> 3700 <svg 3701 aria-hidden="true" 3702 focusable="false" 3703 class="spinner" 3704 viewBox="0 0 66 66" 3705 xmlns="http://www.w3.org/2000/svg" 3706 > 3707 <circle class="path" fill="none" stroke-width="6" cx="33" cy="33" r="30"></circle> 3708 </svg> 3709</div> 3710<div class="product__media media media--transparent"> 3711 <img src="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=1946" alt="Juni automatic pour-over coffee maker brewing directly into a cup, no carafe" srcset="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=246 246w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=493 493w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=600 600w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=713 713w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=823 823w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Backgroun
3711d_5.jpg?v=1788767614&width=990 990w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=1100 1100w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=1206 1206w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=1346 1346w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=1426 1426w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=1646 1646w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=1946 1946w" width="1946" height="1946" loading="lazy" class="image-magnify-hover" sizes="(min-width: 1650px) 853px, (min-width: 990px) calc(55.0vw - 10rem), (min-width: 768px) calc((100vw - 11.5rem) / 2), calc(100vw / 1 - 4rem)"> 3712 </div> 3713 <button 3714 class="product__media-toggle quick-add-hidden product__media-zoom-hover" 3715 type="button" 3716 aria-haspopup="dialog" 3717 data-media-id="56803606888757" 3718 > 3719 <span class="visually-hidden"> 3720 Open media 7 in modal 3721 </span> 3722 </button> 3723 </modal-opener></div> 3724 3725 </li></ul><div class="product_slider_btn slider-buttons no-js-hidden quick-add-hidden small-hide"> 3726 <button 3727 type="button" 3728 class="slider-button slider-button--prev" 3729 name="previous" 3730 aria-label="Slide left" 3731 > 3732 <svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg"> 3733<path d="M39.583 25L10.4163 25" stroke="#87B18F" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 3734<path d="M25 39.583L10.4167 24.9997L25 10.4163" stroke="#87B18F" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 3735</svg> 3736 3737 </button> 3738 <div class="slider-counter caption"> 3739 <span class="slider-counter--current">1</span> 3740 <span aria-hidden="true"> / </span> 3741 <span class="visually-hidden">of</span> 3742 <span class="slider-counter--total">6</span> 3743 </div> 3744 <button 3745 type="button" 3746 class="slider-button slider-button--next" 3747 name="next" 3748 aria-label="Slide right" 3749 > 3750 <svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg"> 3751<path d="M10.417 25H39.5837" stroke="#87B18F" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 3752<path d="M25 10.417L39.5833 25.0003L25 39.5837" stroke="#87B18F" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 3753</svg> 3754 3755 </button> 3756 </div></slider-component><slider-component 3757 id="GalleryThumbnails-template--28135044186421__main" 3758 class="thumbnail-slider slider-mobile-gutter quick-add-hidden" 3759 > 3760 <button 3761 type="button" 3762 class="slider-button slider-button--prev" 3763 name="previous" 3764 aria-label="Slide left" 3765 aria-controls="GalleryThumbnails-template--28135044186421__main" 3766 data-step="3" 3767 > 3768 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 3769 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 3770</svg> 3771 3772 </button> 3773 <ul 3774 id="Slider-Thumbnails-template--28135044186421__main" 3775 class="thumbnail-list list-unstyled slider slider--mobile slider--tablet-up" 3776 ><li 3777 id="Slide-Thumbnails-template--28135044186421__main-0" 3778 class="thumbnail-list__item slider__slide thumbnail-list_item--variant" 3779 data-target="template--28135044186421__main-56695870030133" 3780 data-media-position="1" 3781 ><button 3782 class="thumbnail global-media-settings global-media-settings--no-shadow" 3783 aria-label="Load image 1 in gallery view" 3784 aria-current="true" 3785 aria-controls="GalleryViewer-template--28135044186421__main" 3786 aria-describedby="Thumbnail-template--28135044186421__main-0 3787" 3788 > 3789 <img src="//cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=416" alt="Juni automatic pour-over coffee maker with glass carafe and SCA certification badge" srcset="//cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=54 54w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=74 74w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=104 104w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=162 162w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=208 208w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=324 324w, //cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=416 416w" width="416" height="371" loading="lazy" sizes="(min-width: 1650px) calc((853 - 4rem) / 4), 3790 (min-width: 990px) calc((55.0vw - 4rem) / 4), 3791 (min-width: 768px) calc((100vw - 15rem) / 8), 3792 calc((100vw - 8rem) / 3)" id="Thumbnail-template--28135044186421__main-0 3793"> 3794 </button> 3795 </li><li 3796 id="Slide-Thumbnails-template--28135044186421__main-2" 3797 class="thumbnail-list__item slider__slide" 3798 data-target="template--28135044186421__main-56803289858357" 3799 data-media-position="2" 3800 ><button 3801 class="thumbnail global-media-settings global-media-settings--no-shadow" 3802 aria-label="Load image 2 in gallery view" 3803 3804 aria-controls="GalleryViewer-template--28135044186421__main" 3805 aria-describedby="Thumbnail-template--28135044186421__main-2 3806" 3807 > 3808 <img src="//cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackgroun
3808d.jpg?v=1788767129&width=416" alt="Front view of Juni automatic pour-over coffee maker with glass carafe and handle" srcset="//cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=54 54w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=74 74w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=104 104w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=162 162w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=208 208w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=324 324w, //cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=416 416w" width="416" height="416" loading="lazy" sizes="(min-width: 1650px) calc((853 - 4rem) / 4), 3809 (min-width: 990px) calc((55.0vw - 4rem) / 4), 3810 (min-width: 768px) calc((100vw - 15rem) / 8), 3811 calc((100vw - 8rem) / 3)" id="Thumbnail-template--28135044186421__main-2 3812"> 3813 </button> 3814 </li><li 3815 id="Slide-Thumbnails-template--28135044186421__main-3" 3816 class="thumbnail-list__item slider__slide thumbnail-list_item--variant" 3817 data-target="template--28135044186421__main-56803306930485" 3818 data-media-position="3" 3819 ><button 3820 class="thumbnail global-media-settings global-media-settings--no-shadow" 3821 aria-label="Load image 3 in gallery view" 3822 3823 aria-controls="GalleryViewer-template--28135044186421__main" 3824 aria-describedby="Thumbnail-template--28135044186421__main-3 3825" 3826 > 3827 <img src="//cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=416" alt="Juni automatic pour-over coffee maker with brew basket and glass carafe, front angle" srcset="//cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=54 54w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=74 74w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=104 104w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=162 162w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=208 208w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=324 324w, //cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=416 416w" width="416" height="416" loading="lazy" sizes="(min-width: 1650px) calc((853 - 4rem) / 4), 3828 (min-width: 990px) calc((55.0vw - 4rem) / 4), 3829 (min-width: 768px) calc((100vw - 15rem) / 8), 3830 calc((100vw - 8rem) / 3)" id="Thumbnail-template--28135044186421__main-3 3831"> 3832 </button> 3833 </li><li 3834 id="Slide-Thumbnails-template--28135044186421__main-4" 3835 class="thumbnail-list__item slider__slide" 3836 data-target="template--28135044186421__main-56803574874421" 3837 data-media-position="4" 3838 ><button 3839 class="thumbnail global-media-settings global-media-settings--no-shadow" 3840 aria-label="Load image 4 in gallery view" 3841 3842 aria-controls="GalleryViewer-template--28135044186421__main" 3843 aria-describedby="Thumbnail-template--28135044186421__main-4 3844" 3845 > 3846 <img src="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=416" alt="Close-up of Juni coffee maker control panel and base with brew settings buttons" srcset="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=54 54w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=74 74w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=104 104w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Backgroun
3846d_1.jpg?v=1788767561&width=162 162w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=208 208w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=324 324w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=416 416w" width="416" height="416" loading="lazy" sizes="(min-width: 1650px) calc((853 - 4rem) / 4), 3847 (min-width: 990px) calc((55.0vw - 4rem) / 4), 3848 (min-width: 768px) calc((100vw - 15rem) / 8), 3849 calc((100vw - 8rem) / 3)" id="Thumbnail-template--28135044186421__main-4 3850"> 3851 </button> 3852 </li><li 3853 id="Slide-Thumbnails-template--28135044186421__main-5" 3854 class="thumbnail-list__item slider__slide" 3855 data-target="template--28135044186421__main-56803595059509" 3856 data-media-position="5" 3857 ><button 3858 class="thumbnail global-media-settings global-media-settings--no-shadow" 3859 aria-label="Load image 5 in gallery view" 3860 3861 aria-controls="GalleryViewer-template--28135044186421__main" 3862 aria-describedby="Thumbnail-template--28135044186421__main-5 3863" 3864 > 3865 <img src="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=416" alt="Juni automatic pour-over coffee maker, full front view with pour-over brew basket" srcset="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=54 54w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=74 74w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=104 104w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=162 162w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=208 208w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=324 324w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=416 416w" width="416" height="416" loading="lazy" sizes="(min-width: 1650px) calc((853 - 4rem) / 4), 3866 (min-width: 990px) calc((55.0vw - 4rem) / 4), 3867 (min-width: 768px) calc((100vw - 15rem) / 8), 3868 calc((100vw - 8rem) / 3)" id="Thumbnail-template--28135044186421__main-5 3869"> 3870 </button> 3871 </li><li 3872 id="Slide-Thumbnails-template--28135044186421__main-6" 3873 class="thumbnail-list__item slider__slide" 3874 data-target="template--28135044186421__main-56803603677493" 3875 data-media-position="6" 3876 ><button 3877 class="thumbnail global-media-settings global-media-settings--no-shadow" 3878 aria-label="Load image 6 in gallery view" 3879 3880 aria-controls="GalleryViewer-template--28135044186421__main" 3881 aria-describedby="Thumbnail-template--28135044186421__main-6 3882" 3883 > 3884 <img src="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=416" alt="Side profile view of Juni automatic pour-over coffee maker showing slim design" srcset="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=54 54w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=74 74w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=104 104w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=162 162w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=208 208w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=324 324w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=416 416w" width="416" height="416" loading="lazy" sizes="(min-width: 1650px) calc((853 - 4rem) / 4), 3885 (min-width: 990px) calc((55.0vw - 4rem) / 4), 3886 (min-width: 768px) calc((100vw - 15rem) / 8), 3887 calc((100vw - 8rem) / 3)" id="Thumbnail-template--28135044186421__main-6 3888"> 3889 </button> 3890 </li><li 3891 id="Slide-Thumbnails-template--28135044186421__main-7" 3892 class="thumbnail-list__item slider__slide" 3893 data-target="template--28135044186421__main-56803606888757" 3894 data-media-position="7" 3895 ><button 3896 class="thumbnail global-media-settings global-media-settings--no-shadow" 3897 aria-label="Load image 7 in gallery view" 3898 3899 aria-controls="GalleryViewer-template--28135044186421__main" 3900 aria-describedby="Thumbnail-template--28135044186421__main-7 3901" 3902 > 3903 <img src="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Backgroun
3903d_5.jpg?v=1788767614&width=416" alt="Juni automatic pour-over coffee maker brewing directly into a cup, no carafe" srcset="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=54 54w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=74 74w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=104 104w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=162 162w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=208 208w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=324 324w, //cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=416 416w" width="416" height="416" loading="lazy" sizes="(min-width: 1650px) calc((853 - 4rem) / 4), 3904 (min-width: 990px) calc((55.0vw - 4rem) / 4), 3905 (min-width: 768px) calc((100vw - 15rem) / 8), 3906 calc((100vw - 8rem) / 3)" id="Thumbnail-template--28135044186421__main-7 3907"> 3908 </button> 3909 </li></ul> 3910 <button 3911 type="button" 3912 class="slider-button slider-button--next" 3913 name="next" 3914 aria-label="Slide right" 3915 aria-controls="GalleryThumbnails-template--28135044186421__main" 3916 data-step="3" 3917 > 3918 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 3919 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 3920</svg> 3921 3922 </button> 3923 </slider-component></media-gallery> 3924 3925 </div> 3926 <div class="product__info-wrapper product_info_main grid__item"> 3927 <product-info 3928 id="ProductInfo-template--28135044186421__main" 3929 data-section="template--28135044186421__main" 3930 data-url="/products/juni-coffee-maker" 3931 class="product__info-container" 3932 ><div id="shopify-block-AZFJtazdqMkJPa3BvL__bazaarvoice_reviews_photos_rating_summary_block_6pQPjg" class="shopify-block shopify-app-block"> 3933 3934 3935 3936 3937 3938 3939 <div data-bv-show="rating_summary" data-bv-seo="true" data-bv-product-id="10566370951477"> </div> 3940 3941 3942 3943 3944 3945</div>�<div class="product__title" > 3946 <h1>Juni⢠The Automatic Pour-Over Coffee Machine</h1> 3947 <a href="/products/juni-coffee-maker" class="product__title"> 3948 <h2 class="h1"> 3949 Juni⢠The Automatic Pour-Over Coffee Machine 3950 </h2> 3951 </a> 3952 3953 3954 </div><p 3955 class="product__text inline-richtext" 3956 3957 >CCM-P151S-KUS, CCM-P151S-WUS </p><div class="product__description rte quick-add-hidden" > 3958 <p class="p1">Brew barista-level, pour-over coffee without the guesswork. Juni is designed for <span class="s1">all experience levels, from</span> those new to pour-over with quick brew functionality and AI recipe generation, or expert-level brewers who want complete control of every parameter. With <span class="s1">built-in</span> taste intelligence, Juni adapts to your taste with each pour to achieve your perfect cup consistently.</p> 3959 </div> 3960<variant-selects 3961 id="variant-selects-template--28135044186421__main" 3962 class="no-js-hidden" 3963 data-section="template--28135044186421__main" 3964 data-url="/products/juni-coffee-maker" 3965 3966 3967 ><fieldset class="js product-form__input product-form__input--pill"> 3968 <legend class="form__label">Material</legend> 3969 3970 3971<input 3972 type="radio" 3973 id="template--28135044186421__main-1-0" 3974 name="Material" 3975 value="Glass" 3976 form="product-form-template--28135044186421__main" 3977 3978 checked 3979 3980 3981 > 3982 <label for="template--28135044186421__main-1-0"> 3983 Glass 3984 <span class="visually-hidden label-unavailable">Variant sold out or unavailable</span> 3985 </label> 3986<input 3987 type="radio" 3988 id="template--28135044186421__main-1-1" 3989 name="Material" 3990 value="Stainless steel" 3991 form="product-form-template--28135044186421__main" 3992 3993 3994 > 3995 <label for="template--28135044186421__main-1-1"> 3996 Stainless steel 3997 <span class="visually-hidden label-unavailable">Variant sold out or unavailable</span> 3998 </label> 3999 </fieldset>
3999<script type="application/json"> 4000 [{"id":53460911227189,"title":"Glass","option1":"Glass","option2":null,"option3":null,"sku":"KAAPCMCSSUS0001Y","requires_shipping":true,"taxable":true,"featured_image":{"id":67440796795189,"product_id":10566370951477,"position":1,"created_at":"2026-09-01T13:47:45-07:00","updated_at":"2026-09-01T13:47:46-07:00","alt":"Juni automatic pour-over coffee maker with glass carafe and SCA certification badge","width":1344,"height":1197,"src":"\/\/cosori.com\/cdn\/shop\/files\/PDP_Image01_1.png?v=1788295666","variant_ids":[53460911227189]},"available":true,"name":"Juni⢠The Automatic Pour-Over Coffee Machine - Glass","public_title":"Glass","options":["Glass"],"price":29999,"weight":0,"compare_at_price":29999,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":"Juni automatic pour-over coffee maker with glass carafe and SCA certification badge","id":56695870030133,"position":1,"preview_image":{"aspect_ratio":1.123,"height":1197,"width":1344,"src":"\/\/cosori.com\/cdn\/shop\/files\/PDP_Image01_1.png?v=1788295666"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":53460911259957,"title":"Stainless steel","option1":"Stainless steel","option2":null,"option3":null,"sku":"KAAPCMCSSUS0002Y","requires_shipping":true,"taxable":true,"featured_image":{"id":67548984181045,"product_id":10566370951477,"position":3,"created_at":"2026-09-07T00:45:49-07:00","updated_at":"2026-09-07T00:45:50-07:00","alt":"Juni automatic pour-over coffee maker with brew basket and glass carafe, front angle","width":699,"height":699,"src":"\/\/cosori.com\/cdn\/shop\/files\/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150","variant_ids":[53460911259957]},"available":true,"name":"Juni⢠The Automatic Pour-Over Coffee Machine - Stainless steel","public_title":"Stainless steel","options":["Stainless steel"],"price":34999,"weight":0,"compare_at_price":29999,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":"Juni automatic pour-over coffee maker with brew basket and glass carafe, front angle","id":56803306930485,"position":3,"preview_image":{"aspect_ratio":1.0,"height":699,"width":699,"src":"\/\/cosori.com\/cdn\/shop\/files\/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}] 4001 </script>
4001 4002 </variant-selects><noscript class="product-form__noscript-wrapper-template--28135044186421__main"> 4003 <div class="product-form__input"> 4004 <label class="form__label" for="Variants-template--28135044186421__main">Product variants</label> 4005 <div class="select"> 4006 <select 4007 name="id" 4008 id="Variants-template--28135044186421__main" 4009 class="select__select" 4010 form="product-form-template--28135044186421__main" 4011 ><option 4012 4013 selected="selected" 4014 4015 4016 value="53460911227189" 4017 >Glass - $299.99</option><option 4018 4019 4020 value="53460911259957" 4021 >Stainless steel - $349.99</option></select> 4022 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 4023 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 4024</svg> 4025 4026 </div> 4027 </div> 4028</noscript> 4029�<div 4030 id="Quantity-Form-template--28135044186421__main" 4031 class="product-form__input product-form__quantity" 4032 4033 > 4034 4035 � 4036 <label class="quantity__label form__label" for="Quantity-template--28135044186421__main"> 4037 Quantity: 4038 <span class="quantity__rules-cart no-js-hidden hidden"> 4039 4040<link href="//cosori.com/cdn/shop/t/166/assets/component-loading-spinner.css?v=116724955567955766481789674181" rel="stylesheet" type="text/css" media="all" /> 4041 4042<div class="loading__spinner hidden"> 4043 <svg 4044 aria-hidden="true" 4045 focusable="false" 4046 class="spinner" 4047 viewBox="0 0 66 66" 4048 xmlns="http://www.w3.org/2000/svg" 4049 > 4050 <circle class="path" fill="none" stroke-width="6" cx="33" cy="33" r="30"></circle> 4051 </svg> 4052</div> 4053<span 4054 >(<span class="quantity-cart">0</span> in cart)</span 4055 > 4056 </span> 4057 </label> 4058 <div class="price-per-item__container"> 4059 <quantity-input class="quantity" data-url="/products/juni-coffee-maker" data-section="template--28135044186421__main"> 4060 <button class="quantity__button no-js-hidden" name="minus" type="button"> 4061 <span class="visually-hidden">Decrease quantity for Juni⢠The Automatic Pour-Over Coffee Machine</span> 4062 <svg 4063 xmlns="http://www.w3.org/2000/svg" 4064 aria-hidden="true" 4065 focusable="false" 4066 class="icon icon-minus" 4067 fill="none" 4068 viewBox="0 0 10 2" 4069> 4070 <path fill-rule="evenodd" clip-rule="evenodd" d="M.5 1C.5.7.7.5 1 .5h8a.5.5 0 110 1H1A.5.5 0 01.5 1z" fill="currentColor"> 4071</svg> 4072 4073 </button> 4074 <input 4075 class="quantity__input" 4076 type="number" 4077 name="quantity" 4078 id="Quantity-template--28135044186421__main" 4079 data-cart-quantity="0" 4080 data-min="1" 4081 min="1" 4082 4083 step="1" 4084 value="1" 4085 form="product-form-template--28135044186421__main" 4086 > 4087 <button class="quantity__button no-js-hidden" name="plus" type="button"> 4088 <span class="visually-hidden">Increase quantity for Juni⢠The Automatic Pour-Over Coffee Machine</span> 4089 <svg 4090 xmlns="http://www.w3.org/2000/svg" 4091 aria-hidden="true" 4092 focusable="false" 4093 class="icon icon-plus" 4094 fill="none" 4095 viewBox="0 0 10 10" 4096> 4097 <path fill-rule="evenodd" clip-rule="evenodd" d="M1 4.51a.5.5 0 000 1h3.5l.01 3.5a.5.5 0 001-.01V5.5l3.5-.01a.5.5 0 00-.01-1H5.5L5.49.99a.5.5 0 00-1 .01v3.5l-3.5.01H1z" fill="currentColor"> 4098</svg> 4099 4100 </button> 4101 </quantity-input></div> 4102 <div class="quantity__rules caption no-js-hidden" id="Quantity-Rules-template--28135044186421__main"></div></div><div 4103 class="price_main no-js-hidden" 4104 id="price-template--28135044186421__main" 4105 role="status" 4106 4107 > 4108<div 4109 class=" 4110 price price-v2 price--large price--show-badge" 4111> 4112 <div class="price__container"><div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
4113 <span class="price-item price-item--regular"> 4114 $299.99 4115 </span></div> 4116 <div class="price__sale"> 4117
4117<script> 4118 console.log('Debug current_variant:', {"id":53460911227189,"title":"Glass","option1":"Glass","option2":null,"option3":null,"sku":"KAAPCMCSSUS0001Y","requires_shipping":true,"taxable":true,"featured_image":{"id":67440796795189,"product_id":10566370951477,"position":1,"created_at":"2026-09-01T13:47:45-07:00","updated_at":"2026-09-01T13:47:46-07:00","alt":"Juni automatic pour-over coffee maker with glass carafe and SCA certification badge","width":1344,"height":1197,"src":"\/\/cosori.com\/cdn\/shop\/files\/PDP_Image01_1.png?v=1788295666","variant_ids":[53460911227189]},"available":true,"name":"Juni⢠The Automatic Pour-Over Coffee Machine - Glass","public_title":"Glass","options":["Glass"],"price":29999,"weight":0,"compare_at_price":29999,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":"Juni automatic pour-over coffee maker with glass carafe and SCA certification badge","id":56695870030133,"position":1,"preview_image":{"aspect_ratio":1.123,"height":1197,"width":1344,"src":"\/\/cosori.com\/cdn\/shop\/files\/PDP_Image01_1.png?v=1788295666"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}); 4119 console.log('Debug product:', {"id":10566370951477,"title":"Juni⢠The Automatic Pour-Over Coffee Machine","handle":"juni-coffee-maker","description":"\u003cp class=\"p1\"\u003eBrew barista-level, pour-over coffee without the guesswork. Juni is designed for \u003cspan class=\"s1\"\u003eall experience levels, from\u003c\/span\u003e those new to pour-over with quick brew functionality and AI recipe generation, or expert-level brewers who want complete control of every parameter. With \u003cspan class=\"s1\"\u003ebuilt-in\u003c\/span\u003e taste intelligence, Juni adapts to your taste with each pour to achieve your perfect cup consistently.\u003c\/p\u003e","published_at":"2026-09-08T00:01:07-07:00","created_at":"2026-06-24T03:41:42-07:00","vendor":"COSORI","type":"","tags":[],"price":29999,"price_min":29999,"price_max":34999,"available":true,"price_varies":true,"compare_at_price":29999,"compare_at_price_min":29999,"compare_at_price_max":29999,"compare_at_price_varies":false,"variants":[{"id":53460911227189,"title":"Glass","option1":"Glass","option2":null,"option3":null,"sku":"KAAPCMCSSUS0001Y","requires_shipping":true,"taxable":true,"featured_image":{"id":67440796795189,"product_id":10566370951477,"position":1,"created_at":"2026-09-01T13:47:45-07:00","updated_at":"2026-09-01T13:47:46-07:00","alt":"Juni automatic pour-over coffee maker with glass carafe and SCA certification badge","width":1344,"height":1197,"src":"\/\/cosori.com\/cdn\/shop\/files\/PDP_Image01_1.png?v=1788295666","variant_ids":[53460911227189]},"available":true,"name":"Juni⢠The Automatic Pour-Over Coffee Machine - Glass","public_title":"Glass","options":["Glass"],"price":29999,"weight":0,"compare_at_price":29999,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":"Juni automatic pour-over coffee maker with glass carafe and SCA certification badge","id":56695870030133,"position":1,"preview_image":{"aspect_ratio":1.123,"height":1197,"width":1344,"src":"\/\/cosori.com\/cdn\/shop\/files\/PDP_Image01_1.png?v=1788295666"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":53460911259957,"title":"Stainless steel","option1":"Stainless steel","option2":null,"option3":null,"sku":"KAAPCMCSSUS0002Y","requires_shipping":true,"taxable":true,"featured_image":{"id":67548984181045,"product_id":10566370951477,"position":3,"created_at":"2026-09-07T00:45:49-07:00","updated_at":"2026-09-07T00:45:50-07:00","alt":"Juni automatic pour-over coffee maker with brew basket and glass carafe, front angle","width":699,"height":699,"src":"\/\/cosori.com\/cdn\/shop\/files\/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150","variant_ids":[53460911259957]},"available":true,"name":"Juni⢠The Automatic Pour-Over Coffee Machine - Stainless steel","public_title":"Stainless steel","options":["Stainless steel"],"price":34999,"weight":0,"compare_at_price":29999,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":"Juni automatic pour-over coffee maker with brew basket and glass carafe, front angle","id":56803306930485,"position":3,"preview_image":{"aspect_ratio":1.0,"height":699,"width":699,"src":"\/\/cosori.com\/cdn\/shop\/files\/JuniStainlessCarafeWhiteBackgroun
4119d_1.jpg?v=1788767150"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/cosori.com\/cdn\/shop\/files\/PDP_Image01_1.png?v=1788295666","\/\/cosori.com\/cdn\/shop\/files\/JuniGlassCarafeWhiteBackground.jpg?v=1788767129","\/\/cosori.com\/cdn\/shop\/files\/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150","\/\/cosori.com\/cdn\/shop\/files\/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561","\/\/cosori.com\/cdn\/shop\/files\/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590","\/\/cosori.com\/cdn\/shop\/files\/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607","\/\/cosori.com\/cdn\/shop\/files\/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614"],"featured_image":"\/\/cosori.com\/cdn\/shop\/files\/PDP_Image01_1.png?v=1788295666","options":["Material"],"media":[{"alt":"Juni automatic pour-over coffee maker with glass carafe and SCA certification badge","id":56695870030133,"position":1,"preview_image":{"aspect_ratio":1.123,"height":1197,"width":1344,"src":"\/\/cosori.com\/cdn\/shop\/files\/PDP_Image01_1.png?v=1788295666"},"aspect_ratio":1.123,"height":1197,"media_type":"image","src":"\/\/cosori.com\/cdn\/shop\/files\/PDP_Image01_1.png?v=1788295666","width":1344},{"alt":"Front view of Juni automatic pour-over coffee maker with glass carafe and handle","id":56803289858357,"position":2,"preview_image":{"aspect_ratio":1.0,"height":700,"width":700,"src":"\/\/cosori.com\/cdn\/shop\/files\/JuniGlassCarafeWhiteBackground.jpg?v=1788767129"},"aspect_ratio":1.0,"height":700,"media_type":"image","src":"\/\/cosori.com\/cdn\/shop\/files\/JuniGlassCarafeWhiteBackground.jpg?v=1788767129","width":700},{"alt":"Juni automatic pour-over coffee maker with brew basket and glass carafe, front angle","id":56803306930485,"position":3,"preview_image":{"aspect_ratio":1.0,"height":699,"width":699,"src":"\/\/cosori.com\/cdn\/shop\/files\/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150"},"aspect_ratio":1.0,"height":699,"media_type":"image","src":"\/\/cosori.com\/cdn\/shop\/files\/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150","width":699},{"alt":"Close-up of Juni coffee maker control panel and base with brew settings buttons","id":56803574874421,"position":4,"preview_image":{"aspect_ratio":1.0,"height":700,"width":700,"src":"\/\/cosori.com\/cdn\/shop\/files\/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561"},"aspect_ratio":1.0,"height":700,"media_type":"image","src":"\/\/cosori.com\/cdn\/shop\/files\/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561","width":700},{"alt":"Juni automatic pour-over coffee maker, full front view with pour-over brew basket","id":56803595059509,"position":5,"preview_image":{"aspect_ratio":1.0,"height":700,"width":700,"src":"\/\/cosori.com\/cdn\/shop\/files\/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590"},"aspect_ratio":1.0,"height":700,"media_type":"image","src":"\/\/cosori.com\/cdn\/shop\/files\/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590","width":700},{"alt":"Side profile view of Juni automatic pour-over coffee maker showing slim design","id":56803603677493,"position":6,"preview_image":{"aspect_ratio":1.0,"height":700,"width":700,"src":"\/\/cosori.com\/cdn\/shop\/files\/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607"},"aspect_ratio":1.0,"height":700,"media_type":"image","src":"\/\/cosori.com\/cdn\/shop\/files\/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607","width":700},{"alt":"Juni automatic pour-over coffee maker brewing directly into a cup, no carafe","id":56803606888757,"position":7,"preview_image":{"aspect_ratio":1.0,"height":700,"width":700,"src":"\/\/cosori.com\/cdn\/shop\/files\/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614"},"aspect_ratio":1.0,"height":700,"media_type":"image","src":"\/\/cosori.com\/cdn\/shop\/files\/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614","width":700}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp class=\"p1\"\u003eBrew barista-level, pour-over coffee without the guesswork. Juni is designed for \u003cspan class=\"s1\"\u003eall experience levels, from\u003c\/span\u003e those new to pour-over with quick brew functionality and AI recipe generation, or expert-level brewers who want complete control of every parameter. With \u003cspan class=\"s1\"\u003ebuilt-in\u003c\/span\u003e taste intelligence, Juni adapts to your taste with each pour to achieve your perfect cup consistently.\u003c\/p\u003e"}); 4120 </script>
4120 4121<span class="visually-hidden visually-hidden--inline">Sale price</span> 4122 <span class="price-item price-item--sale price-item--last"></span></div> 4123 <small class="unit-price caption hidden"> 4124 <span class="visually-hidden">Unit price</span> 4125 <span class="price-item price-item--last"> 4126 <span></span> 4127 <span aria-hidden="true">/</span> 4128 <span class="visually-hidden"> per </span> 4129 <span> 4130 </span> 4131 </span> 4132 </small> 4133 </div> 4134 4135</div> 4136</div><div class="product__tax caption rte"><a href="/policies/shipping-policy">Shipping</a> calculated at checkout.�</div> 4137 4138 4139 4140 4141<div class="buy-buttons" > 4142 <div><product-form 4143 class="product-form" 4144 data-hide-errors="false" 4145 data-section-id="template--28135044186421__main" 4146 data-price="$299.99" 4147 > 4148 <div class="product-form__error-message-wrapper" role="alert" hidden> 4149 <svg 4150 aria-hidden="true" 4151 focusable="false" 4152 class="icon icon-error"
4153 viewBox="0 0 13 13" 4154 > 4155 <circle cx="6.5" cy="6.50049" r="5.5" stroke="white" stroke-width="2"/> 4156 <circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width="0.7"/> 4157 <path d="M5.87413 3.52832L5.97439 7.57216H7.02713L7.12739 3.52832H5.87413ZM6.50076 9.66091C6.88091 9.66091 7.18169 9.37267 7.18169 9.00504C7.18169 8.63742 6.88091 8.34917 6.50076 8.34917C6.12061 8.34917 5.81982 8.63742 5.81982 9.00504C5.81982 9.37267 6.12061 9.66091 6.50076 9.66091Z" fill="white"/> 4158 <path d="M5.87413 3.17832H5.51535L5.52424 3.537L5.6245 7.58083L5.63296 7.92216H5.97439H7.02713H7.36856L7.37702 7.58083L7.47728 3.537L7.48617 3.17832H7.12739H5.87413ZM6.50076 10.0109C7.06121 10.0109 7.5317 9.57872 7.5317 9.00504C7.5317 8.43137 7.06121 7.99918 6.50076 7.99918C5.94031 7.99918 5.46982 8.43137 5.46982 9.00504C5.46982 9.57872 5.94031 10.0109 6.50076 10.0109Z" fill="white" stroke="#EB001B" stroke-width="0.7"> 4159 </svg> 4160 <span class="product-form__error-message"></span> 4161 </div><form method="post" action="/cart/add" id="product-form-template--28135044186421__main" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /><input 4162 type="hidden" 4163 name="id" 4164 value="53460911227189" 4165 4166 class="product-variant-id" 4167 ><div class="product-form__buttons"><div class="btn_parent"> 4168 <button 4169 id="ProductSubmitButton-template--28135044186421__main" 4170 type="submit" 4171 name="add" 4172 class="product-form__submit button button--full-width button--secondary" 4173 data-dtc-add-to-cart�data-v-gtm-event="add_to_cart"data-v-gtm-module="Product Details Page"data-v-gtm-button_name="Add to cart"data-v-gtm-item-id="KAAPC
4173MCSSUS0001Y"data-v-gtm-product-id="10566370951477"data-v-gtm-variant-id="53460911227189"data-v-gtm-item-name="Juni⢠The Automatic Pour-Over Coffee Machine"data-v-gtm-item-variant="Glass"data-v-gtm-price="299.99"data-v-gtm-quantity="1"data-v-gtm-discount="0"data-v-gtm-index="1"data-v-gtm-item-list-id="Product Details Page"data-v-gtm-item-list-name="Product Details Page" 4174 > 4175 <span>Add to cart�</span> 4176 4177<link href="//cosori.com/cdn/shop/t/166/assets/component-loading-spinner.css?v=116724955567955766481789674181" rel="stylesheet" type="text/css" media="all" /> 4178 4179<div class="loading__spinner hidden"> 4180 <svg 4181 aria-hidden="true" 4182 focusable="false" 4183 class="spinner" 4184 viewBox="0 0 66 66" 4185 xmlns="http://www.w3.org/2000/svg" 4186 > 4187 <circle class="path" fill="none" stroke-width="6" cx="33" cy="33" r="30"></circle> 4188 </svg> 4189</div> 4190</button> 4191 </div><div 4192 class="btn_parent product-form__dynamic-checkout dtc-product-form__dynamic-checkout dtc-dynamic-checkout--loading"data-v-gtm-event="express_checkout"data-v-gtm-module="Product Details Page"data-v-gtm-item-id="KAAPC
4192MCSSUS0001Y"data-v-gtm-product-id="10566370951477"data-v-gtm-variant-id="53460911227189"data-v-gtm-item-name="Juni⢠The Automatic Pour-Over Coffee Machine"data-v-gtm-item-variant="Glass"data-v-gtm-price="299.99"data-v-gtm-quantity="1"data-v-gtm-discount="0"data-v-gtm-index="1"data-v-gtm-item-list-id="Product Details Page"data-v-gtm-item-list-name="Product Details Page"> 4193 <div data-shopify="payment-button" class="shopify-payment-button"> <shopify-accelerated-checkout recommended="{"supports_subs":true,"supports_def_opts":false,"name":"shop_pay","wallet_params":{"shopId":74265723189,"merchantName":"COSORI","personalized":true}}" fallback="{"supports_subs":true,"supports_def_opts":true,"name":"buy_it_now","wallet_params":{}}" access-token="91c6a17a7aa75bdcc543b074d063db88" buyer-country="US" buyer-locale="en" buyer-currency="USD" variant-params="[{"id":53460911227189,"requiresShipping":true},{"id":53460911259957,"requiresShipping":true}]" shop-id="74265723189" enabled-flags="["1172c16a","a1d1f9a1","f5afabb3","370070f3"]" > <div class="shopify-payment-button__button" role="button" disabled aria-hidden="true" style="background-color: transparent; border: none"> <div class="shopify-payment-button__skeleton"> </div> </div> <div class="shopify-payment-button__more-options shopify-payment-button__skeleton" role="button" disabled aria-hidden="true"> </div> </shopify-accelerated-checkout> </div> 4194 </div></div><input type="hidden" name="product-id" value="10566370951477" /><input type="hidden" name="section-id" value="template--28135044186421__main" /></form></product-form></div> 4195
4195<script> 4196 var variantSku = "KAAPCMCSSUS0001Y"; 4197 console.log("Product variant sku is: ", variantSku); 4198 </script>
4198 4199 <div class="product_extra_btn"><div 4200 class="button ps-widget" 4201 ps-sku="KAAPCMCSSUS0001Y" 4202 ps-widget-type="lightbox" 4203 ></div> 4204 </div><link href="//cosori.com/cdn/shop/t/166/assets/component-pickup-availability.css?v=75280788494841395931789674181" rel="stylesheet" type="text/css" media="all" />�<pickup-availability 4205 class="product__pickup-availabilities no-js-hidden quick-add-hidden" 4206 4207 data-root-url="/" 4208 data-variant-id="53460911227189" 4209 data-has-only-default-variant="false" 4210 data-product-page-color-scheme="gradient color-scheme-1" 4211 > 4212 <template> 4213 <pickup-availability-preview class="pickup-availability-preview"> 4214 <svg 4215 xmlns="http://www.w3.org/2000/svg" 4216 fill="none" 4217 aria-hidden="true" 4218 focusable="false" 4219 class="icon icon-unavailable" 4220 fill="none" 4221 viewBox="0 0 20 20" 4222> 4223 <path fill="#DE3618" stroke="#fff" d="M13.94 3.94L10 7.878l-3.94-3.94A1.499 1.499 0 103.94 6.06L7.88 10l-3.94 3.94a1.499 1.499 0 102.12 2.12L10 12.12l3.94 3.94a1.497 1.497 0 002.12 0 1.499 1.499 0 000-2.12L12.122 10l3.94-3.94a1.499 1.499 0 10-2.121-2.12z"/> 4224</svg> 4225 4226 <div class="pickup-availability-info"> 4227 <p class="caption-large">Couldn't load pickup availability</p> 4228 <button class="pickup-availability-button link link--text underlined-link"> 4229 Refresh 4230 </button> 4231 </div> 4232 </pickup-availability-preview> 4233 </template> 4234 </pickup-availability> 4235 4236
4236<script src="//cosori.com/cdn/shop/t/166/assets/pickup-availability.js?v=66138958121968076331789674181" defer="defer"></script>
4236</div> 4237 4238 �<div class="product_highlight_main"> 4239 <h2 class="product-small-heading">Why shop with us:</h2> 4240 <div class="why_shop_with_content"> 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 <div class="why_icon_text_item"> 4253 4254 <div class="v-image "><picture><img src="//cosori.com/cdn/shop/files/IRON_-_FREESHIPPING.svg?v=1753174442&width=32" alt="image" width="32" height="32" loading="lazy" sizes="(max-width: 767px) 32px, 32px" style="--image-max-width: 32px; --image-mobile-max-width: 32px"></picture> 4255 </div><style></style> 4256 4257 4258 <p>Free Shipping</p> 4259 </div> 4260 4261 <div class="why_icon_text_item"> 4262 4263 <div class="v-image "><picture><img src="//cosori.com/cdn/shop/files/ICON_-_WARRANTY.svg?v=1753174442&width=32" alt="image" width="32" height="32" loading="lazy" sizes="(max-width: 767px) 32px, 32px" style="--image-max-width: 32px; --image-mobile-max-width: 32px"></picture> 4264 </div><style></style> 4265 4266 4267 <p>2-Year Limited Warranty</p> 4268 </div> 4269 4270 <div class="why_icon_text_item"> 4271 4272 <div class="v-image "><picture><img src="//cosori.com/cdn/shop/files/ICONS-_FreeReturns.svg?v=1753174441&width=32" alt="image" width="32" height="32" loading="lazy" sizes="(max-width: 767px) 32px, 32px" style="--image-max-width: 32px; --image-mobile-max-width: 32px"></picture> 4273 </div><style></style> 4274 4275 4276 <p>30-Day Free Returns</p> 4277 </div> 4278 </div> 4279 </div> 4280 4281 <div 4282 class="product_accordian_main" 4283 data-v-gtm-product-accordion 4284 data-v-gtm-module="Product Details Page" 4285 ><details 4286 id="Details--template--28135044186421__main-" 4287 class="border-b" 4288 rotate-icon 4289 > 4290 <summary class="product-accordian-title"> 4291 <p class="p_accordian_title">Product Specs</p> 4292 <div class="plusminus"></div> 4293 </summary> 4294 <div 4295 class=" pb-3" 4296 id="ProductAccordion--template--28135044186421__main-" 4297 > 4298 <ul class="flex flex-col gap-2 pl-6"><li> 4299 <strong>Power Supply</strong>: 120V 4300 </li><li> 4301 <strong>Rated Power</strong>: 1,500W 4302 </li><li> 4303 <strong>Capacity</strong>: 1.6 qt / 1.5 L 4304 </li><li> 4305 <strong>Temperature Range</strong>: 176°â205°F / 80°â96°C 4306 </li><li> 4307 <strong>Time Range</strong>: 1â15 min 4308 </li><li> 4309 <strong>Dimensions</strong>: 15.2 à 8.9 à 12.4 in / 38.5 à 22.5 à 31.5 cm 4310 </li><li> 4311 <strong>Weight (Without Carafe)</strong>: 8.4 lb / 3.8 kg 4312 </li> 4313 <li><strong>Model Number</strong>: CCM-P151S-KUS, CCM-P151S-WUS </li> 4314 4315 </ul> 4316 </div> 4317 </details><details 4318 id="Details--template--28135044186421__main-summary" 4319 class="border-b" 4320 rotate-icon 4321 > 4322 <summary class="product-accordian-title"> 4323 <p class="p_accordian_title">Summary</p> 4324 <div class="plusminus"></div> 4325 </summary> 4326 <div 4327 class="prose_content_main" 4328 id="ProductAccordion--template--28135044186421__main-summary" 4329 > 4330 <div class="prose_content"><div class="metafield-rich_text_field"><ul><li>2 Brew Baskets: Dedicated cone or flat bottom brew baskets optimize extraction from single cup to batch brewing. </li><li>Precision Temperature Control: Precise heating delivers stable brew temperatures for consistent extraction in every pour. </li><li>Dynamic Pour Patterns: Coordinated nozzle movement and basket rotation recreates the precision of hand-crafted, pour-over techniques. </li><li>Vibration Extraction: Gently agitates the coffee bed during the brew process to promote even saturation, consistent extraction, and balanced flavor. </li><li>Clean Finish: An automatic drip stop prevents post-brew drips for a cleaner brewing experience. </li></ul></div></div> 4331 </div> 4332 </details>
4332<details 4333 id="Details--template--28135044186421__main-whats-in-the-box" 4334 class="border-b" 4335 rotate-icon 4336 > 4337 <summary class="product-accordian-title"> 4338 <p class="p_accordian_title">What's in the Box</p> 4339 <div class="plusminus"></div> 4340 </summary> 4341 <div 4342 class="prose_content_main" 4343 id="ProductAccordion--template--28135044186421__main-whats-in-the-box" 4344 > 4345 <div class="prose_content"><div class="metafield-rich_text_field"><p>1 à Cosori Juni⢠Automatic Pour-Over Machine <br /> 43461 à Flat Bottom Brew Basket <br /> 43471 à Cone Brew Basket <br /> 43481 à Carafe <br /> 43491 à Dual-Sided Measuring Spoon <br /> 43501 à Quick Guide <br /> 43511 à User Manual </p></div></div> 4352 </div> 4353 </details><details 4354 id="Details--template--28135044186421__main-how-it-works" 4355 class="border-b" 4356 rotate-icon 4357 > 4358 <summary class="product-accordian-title"> 4359 <p class="p_accordian_title">How it Works</p> 4360 <div class="plusminus"></div> 4361 </summary> 4362 <div 4363 class="prose_content_main" 4364 id="ProductAccordion--template--28135044186421__main-how-it-works" 4365 > 4366 <div class="prose_content"><div class="metafield-rich_text_field"><p>3 Pour Patterns: The retractable nozzle and rotating basket create spiral, circular, center pour patterns, replicating manual techniques used by experienced baristas.</p><p>Vibrating Basket: Gentle agitation levels the coffee bed for full, even saturation and extraction as the grounds bloom.</p><p>Staged Pouring: Water is poured in stages to control flavor extraction. Barista Mode offers fully customized pour control to fine tune the flavor, body, and clarity of your final cup.</p><p>Precision Water Control: From temperature and flow rate to volume, every parameter is customizable to adjust to your preferences at every stage of the pour-over process.</p><p>Adapts to Your Feedback: After each brew, rate the acidity, sweetness, bitterness, and body to provide Juni with insights to refine your next cup to your preferences.</p></div></div> 4367 </div> 4368 </details><details 4369 id="Details--template--28135044186421__main-downloads" 4370 class="border-b" 4371 rotate-icon 4372 > 4373 <summary class="product-accordian-title"> 4374 <p class="p_accordian_title">User Manuals</p> 4375 <div class="plusminus"></div> 4376 </summary> 4377 <div 4378 class=" pb-3" 4379 id="ProductAccordion--template--28135044186421__main-" 4380 > 4381 <ul class="flex flex-col gap-2 pl-6"><li> 4382 <a href="//cosori.com/cdn/shop/files/6100000068_Coffee_Maker_Manual_A2-260703.pdf?v=17968790351254837375" target="_blank">Juni Manual (Glass)</a> 4383 </li><li> 4384 <a href="//cosori.com/cdn/shop/files/6100000069_Coffee_Maker_Manual_A2-260703.pdf?v=3585532092445898372" target="_blank">Juni Manual (Stainless steel)</a> 4385 </li></ul> 4386 </div> 4387 </details></div> 4388 4389 <a href="/products/juni-coffee-maker" class="link product__view-details animate-arrow"> 4390 View full details 4391 <svg 4392 viewBox="0 0 14 10" 4393 fill="none" 4394 aria-hidden="true" 4395 focusable="false" 4396 class="icon icon-arrow" 4397 xmlns="http://www.w3.org/2000/svg" 4398> 4399 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 4400</svg> 4401 4402 </a><style> 4403 .product-proposition { 4404 margin-top: 32px; 4405 /* border-radius: 16px; */ 4406 /* border: 1px solid #ADADAD; */ 4407 /* padding: 16px; */ 4408 .title-warning { 4409 color: #333333; 4410 cursor: pointer; 4411 text-decoration: underline; 4412 text-decoration-color: var(--text-decoration-color); 4413 text-decoration-thickness: var(--text-decoration-thickness); 4414 text-underline-offset: var(--text-decoration-offset); 4415 } 4416 .title-warning-text { 4417 color: #5b5b5b; 4418 }
4419 .modal-container { 4420 display: none; 4421 position: fixed; 4422 top: 0; 4423 left: 0; 4424 width: 100%; 4425 height: 100%; 4426 background-color: rgba(0, 0, 0, 0.5); 4427 z-index: 1000; 4428 } 4429 .modal-detail { 4430 position: absolute; 4431 top: 50%; 4432 left: 50%; 4433 transform: translate(-50%, -50%); 4434 width: 582px; 4435 height: auto; 4436 background-color: #fff; 4437 border-radius: 16px; 4438 padding: 24px; 4439 } 4440 .modal-header { 4441 display: flex; 4442 justify-content: space-between; 4443 align-items: center; 4444 margin-bottom: 24px; 4445 line-height: 1; 4446 gap: 16px; 4447 } 4448 .modal-title { 4449 font-size: 20px; 4450 font-weight: 600; 4451 color: #333333; 4452 } 4453 .modal-close { 4454 cursor: pointer; 4455 } 4456 a { 4457 color: #333333; 4458 text-decoration: underline; 4459 text-decoration-color: var(--text-decoration-color); 4460 text-decoration-thickness: var(--text-decoration-thickness); 4461 text-underline-offset: var(--text-decoration-offset); 4462 } 4463 } 4464 4465 @media (max-width: 767px) { 4466 .product-proposition { 4467 .modal-detail { 4468 width: 80vw; 4469 } 4470 } 4471 } 4472</style> 4473<div class="product-proposition"> 4474 <div class="title"> 4475 <span class="title-warning">WARNING:</span> 4476 <span class="title-warning-text">Californiaâs Proposition 65</span> 4477 </div> 4478 <div class="modal-container"> 4479 <div class="modal-detail"> 4480 <div class="modal-header"> 4481 <div class="modal-title">Proposition 65 Warning for California Consumers</div> 4482 <div class="modal-close"> 4483 <svg xmlns="http://www.w3.org/2000/svg" width="33" height="33" viewBox="0 0 33 33" fill="none"> 4484 <rect x="10.9619" y="23.3903" width="2.18734" height="17.4988" rx="1.09367" transform="rotate(-135 10.9619 23.3903)" fill="#333333"/> 4485 <rect x="9.74536" y="11.2374" width="2.18734" height="17.4988" rx="1.09367" transform="rotate(-45 9.74536 11.2374)" fill="#333333"/> 4486 </svg> 4487 </div> 4488 </div> 4489 <div class="modal-content"> 4490 <svg 4491 width="30" 4492 height="30"
4493 viewBox="0 0 30 30" 4494 fill="none" 4495 xmlns="http://www.w3.org/2000/svg" 4496 style="display: inline-block;vertical-align: text-bottom;" 4497 > 4498 <path d="M13.285 4.85831C14.0618 3.56363 15.9382 3.56363 16.715 4.85831L28.1826 23.971C28.9824 25.3041 28.0222 27 26.4676 27H3.53238C1.97779 27 1.01757 25.3041 1.81739 23.971L13.285 4.85831Z" fill="#FFDD01" stroke="black" stroke-width="2"/> 4499 <path d="M13.2744 22.2693C13.2741 22.0356 13.3213 21.8042 13.413 21.5892C13.5047 21.3742 13.6391 21.1801 13.808 21.0185C13.9768 20.8569 14.1767 20.7312 14.3955 20.649C14.6144 20.5669 14.8476 20.5299 15.0811 20.5404C15.5396 20.5404 15.9794 20.7226 16.3036 21.0468C16.6278 21.3711 16.81 21.8108 16.81 22.2693C16.81 22.7279 16.6278 23.1676 16.3036 23.4919C15.9794 23.8161 15.5396 23.9982 15.0811 23.9982C14.8476 24.0088 14.6144 23.9718 14.3955 23.8897C14.1767 23.8075 13.9768 23.6818 13.808 23.5202C13.6391 23.3586 13.5047 23.1644 13.413 22.9494C13.3213 22.7344 13.2741 22.5031 13.2744 22.2693ZM13.6893 11.5934L13.6288 9H16.5593L16.4988 11.5934L15.8677 18.9239H14.2253L13.6893 11.5934Z" fill="black"/> 4500 </svg> 4501 <b>WARNING:</b> This product can expose you to chemicals including Lead which is known to the State of 4502 California to cause cancer and birth defects or other reproductive harm. For more information go to 4503 <a href="https://www.p65warnings.ca.gov/" target="_blank">www.p65warnings.ca.gov</a> 4504 </div> 4505 </div> 4506 </div> 4507</div>
4508<script> 4509 document.addEventListener('DOMContentLoaded', function () { 4510 const warningTitle = document.querySelector('.product-proposition .title-warning'); 4511 const modalContainer = document.querySelector('.product-proposition .modal-container'); 4512 const closeButton = document.querySelector('.product-proposition .modal-close'); 4513 warningTitle.addEventListener('click', function () { 4514 modalContainer.style.display = 'block'; 4515 }); 4516 closeButton.addEventListener('click', function () { 4517 modalContainer.style.display = 'none'; 4518 }); 4519 }); 4520</script>
4520 4521�</product-info> 4522 </div></div> 4523 4524 4525 4526<product-modal id="ProductModal-template--28135044186421__main" class="product-media-modal media-modal"> 4527 <div 4528 class="product-media-modal__dialog color-scheme-1 gradient" 4529 role="dialog" 4530 aria-label="Media gallery" 4531 aria-modal="true" 4532 tabindex="-1" 4533 > 4534 <button 4535 id="ModalClose-template--28135044186421__main" 4536 type="button" 4537 class="product-media-modal__toggle" 4538 aria-label="Close" 4539 > 4540 <svg 4541 xmlns="http://www.w3.org/2000/svg" 4542 aria-hidden="true" 4543 focusable="false" 4544 class="icon icon-close" 4545 fill="none" 4546 viewBox="0 0 18 17" 4547> 4548 <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor"> 4549</svg> 4550 4551 </button> 4552 4553 <div 4554 class="product-media-modal__content color-scheme-1 gradient" 4555 role="document" 4556 aria-label="Media gallery" 4557 tabindex="0" 4558 > 4559<img 4560 class="global-media-settings global-media-settings--no-shadow product__media-item--variant" 4561 srcset="//cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=550 550w,//cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=1100 1100w,//cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666 1344w 4562 " 4563 sizes="(min-width: 768px) calc(100vw - 22rem), 1100px" 4564 src="//cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666&width=1445" 4565 alt="Juni automatic pour-over coffee maker with glass carafe and SCA certification badge" 4566 loading="lazy" 4567 width="1100" 4568 height="980" 4569 data-media-id="56695870030133" 4570 > 4571<img 4572 class="global-media-settings global-media-settings--no-shadow" 4573 srcset="//cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=550 550w,//cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129 700w 4574 " 4575 sizes="(min-width: 768px) calc(100vw - 22rem), 1100px" 4576 src="//cosori.com/cdn/shop/files/JuniGlassCarafeWhiteBackground.jpg?v=1788767129&width=1445" 4577 alt="Front view of Juni automatic pour-over coffee maker with glass carafe and handle" 4578 loading="lazy" 4579 width="1100" 4580 height="1100" 4581 data-media-id="56803289858357" 4582 > 4583<img 4584 class="global-media-settings global-media-settings--no-shadow product__media-item--variant" 4585 srcset="//cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=550 550w,//cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150 699w 4586 " 4587 sizes="(min-width: 768px) calc(100vw - 22rem), 1100px" 4588 src="//cosori.com/cdn/shop/files/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150&width=1445" 4589 alt="Juni automatic pour-over coffee maker with brew basket and glass carafe, front angle" 4590 loading="lazy" 4591 width="1100" 4592 height="1100" 4593 data-media-id="56803306930485" 4594 > 4595<img 4596 class="global-media-settings global-media-settings--no-shadow" 4597 srcset="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=550 550w,//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561 700w 4598 " 4599 sizes="(min-width: 768px) calc(100vw - 22rem), 1100px" 4600 src="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_1.jpg?v=1788767561&width=1445" 4601 alt="Close-up of Juni coffee maker control panel and base with brew settings buttons" 4602 loading="lazy" 4603 width="1100" 4604 height="1100" 4605 data-media-id="56803574874421" 4606 > 4607<img 4608 class="global-media-settings global-media-settings--no-shadow" 4609 srcset="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=550 550w,//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590 700w 4610 " 4611 sizes="(min-width: 768px) calc(100vw - 22rem), 1100px" 4612 src="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_4.jpg?v=1788767590&width=1445" 4613 alt="Juni automatic pour-over coffee maker, full front view with pour-over brew basket" 4614 loading="lazy" 4615 width="1100" 4616 height="1100" 4617 data-media-id="56803595059509" 4618 > 4619<img 4620 class="global-media-settings global-media-settings--no-shadow" 4621 srcset="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Backgroun
4621d_6.jpg?v=1788767607&width=550 550w,//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607 700w 4622 " 4623 sizes="(min-width: 768px) calc(100vw - 22rem), 1100px" 4624 src="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_6.jpg?v=1788767607&width=1445" 4625 alt="Side profile view of Juni automatic pour-over coffee maker showing slim design" 4626 loading="lazy" 4627 width="1100" 4628 height="1100" 4629 data-media-id="56803603677493" 4630 > 4631<img 4632 class="global-media-settings global-media-settings--no-shadow" 4633 srcset="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=550 550w,//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614 700w 4634 " 4635 sizes="(min-width: 768px) calc(100vw - 22rem), 1100px" 4636 src="//cosori.com/cdn/shop/files/Juni_Glass_Carafe_White_Background_5.jpg?v=1788767614&width=1445" 4637 alt="Juni automatic pour-over coffee maker brewing directly into a cup, no carafe" 4638 loading="lazy" 4639 width="1100" 4640 height="1100" 4641 data-media-id="56803606888757" 4642 ></div> 4643 </div> 4644</product-modal> 4645 4646 4647 �
4647<script src="//cosori.com/cdn/shop/t/166/assets/product-modal.js?v=116616134454508949461789674181" defer="defer"></script>
4647 4648
4648<script src="//cosori.com/cdn/shop/t/166/assets/media-gallery.js?v=44650165723660075311789674181" defer="defer"></script>
4648<script> 4649 document.addEventListener('DOMContentLoaded', function () { 4650 function isIE() { 4651 const ua = window.navigator.userAgent; 4652 const msie = ua.indexOf('MSIE '); 4653 const trident = ua.indexOf('Trident/'); 4654 4655 return msie > 0 || trident > 0; 4656 } 4657 4658 if (!isIE()) return; 4659 const hiddenInput = document.querySelector('#product-form-template--28135044186421__main input[name="id"]'); 4660 const noScriptInputWrapper = document.createElement('div'); 4661 const variantPicker = document.querySelector('variant-selects[data-section="template--28135044186421__main"]'); 4662 noScriptInputWrapper.innerHTML = document.querySelector( 4663 '.product-form__noscript-wrapper-template--28135044186421__main' 4664 ).textContent; 4665 variantPicker.outerHTML = noScriptInputWrapper.outerHTML; 4666 4667 document.querySelector('#Variants-template--28135044186421__main').addEventListener('change', function (event) { 4668 hiddenInput.value = event.currentTarget.value; 4669 }); 4670 }); 4671 </script>
4671 4672 4673 </div> 4674</section> 4675
4676<script> 4677 var klaviyo = klaviyo || []; 4678 klaviyo.init({ 4679 account: 'SvTWYw', 4680 platform: 'shopify', 4681 exclude_on_tags: 'limited edition', 4682 }); 4683 klaviyo.enable('backinstock', { 4684 trigger: { 4685 product_page_text: 'Notify Me When Available ', 4686 product_page_class: 'btn', 4687 product_page_text_align: 'center', 4688 product_page_margin: '0px', 4689 replace_anchor: false, 4690 }, 4691 modal: { 4692 headline: '{product_name}', 4693 body_content: 'Register to receive a notification when this item comes back in stock.', 4694 email_field_label: 'Email', 4695 button_label: 'NOTIFY ME WHEN AVAILABLE ', 4696 subscription_success_label: "You're in! We'll let you know when it's back.", 4697 footer_content: '', 4698 additional_styles: 'system+font', 4699 drop_background_color: '#6E695F', 4700 background_color: '#fff', 4701 text_color: '#6E695F', 4702 button_text_color: '#E1DED3', 4703 button_background_color: '#6C5936', 4704 close_button_color: '#ccc', 4705 error_background_color: '#E1DED3', 4706 error_text_color: '#E1DED3', 4707 font_family: 'system+font', 4708 headers_font_family: 'system+font', 4709 success_background_color: '#d3efcd', 4710 success_text_color: '#1B9500', 4711 }, 4712 }); 4713</script>
4713 4714 4715 4716</section><section id="shopify-section-template--28135044186421__feature_carousel_L88KQX" class="shopify-section feature-carousel-section"> 4717<section 4718 id="feature-carousel-template--28135044186421__feature_carousel_L88KQX" 4719 class="fc" 4720 data-loop="true" 4721 data-autoplay="false" 4722 data-autoplay-interval="6" 4723 data-swipe="true" 4724><div class="fc__header"><span class="fc__header-text">JUNIâ¢</span><span class="fc__header-rule" aria-hidden="true"></span></div><div class="fc__viewport" data-roll-viewport> 4725 <div class="fc__track" data-roll-track role="list"><article 4726 class="fc__slide fc__slide--fill is-active" 4727 data-index="0" 4728 role="listitem" 4729 aria-roledescription="slide" 4730 aria-label="1 of 5" 4731 style="--fc-focal: 50% 50%; --fc-body-w: 372px;" 4732 4733 ><div class="fc__media"> 4734 <div class="fc__layer is-active" data-fc-layer="0"><video 4735 class="fc__media-video" 4736 muted 4737 loop 4738 playsinline 4739 preload="auto" 4740 4741 data-autoplay 4742 ><source src="//cosori.com/cdn/shop/videos/c/vp/071b160c95ef4fb18bc93b8a25cba099/071b160c95ef4fb18bc93b8a25cba099.m3u8?v=0" type="application/x-mpegURL"><source src="//cosori.com/cdn/shop/videos/c/vp/071b160c95ef4fb18bc93b8a25cba099/071b160c95ef4fb18bc93b8a25cba099.SD-480p-1.5Mbps-92167570.mp4?v=0" type="video/mp4"></video></div></div><div 4743 class="fc__content" 4744 4745 ><h3 class="fc__title">2 Brew Baskets</h3> 4746<div class="fc__desc"><p>Dedicated cone or flat bottom brew baskets optimize extraction from single cup to batch brewing. </p></div></div></article><article 4747 class="fc__slide" 4748 data-index="1" 4749 role="listitem" 4750 aria-roledescription="slide" 4751 aria-label="2 of 5" 4752 style="--fc-focal: 50% 50%; --fc-body-w: 372px;" 4753 4754 ><div class="fc__media"> 4755 <div class="fc__layer is-active" data-fc-layer="0"><video 4756 class="fc__media-video" 4757 muted 4758 loop 4759 playsinline 4760 preload="auto" 4761 4762 data-autoplay 4763 ><source src="//cosori.com/cdn/shop/videos/c/vp/f55ee0c795ba4de0914b22eab146d909/f55ee0c795ba4de0914b22eab146d909.m3u8?v=0" type="application/x-mpegURL"><source src="//cosori.com/cdn/shop/videos/c/vp/f55ee0c795ba4de0914b22eab146d909/f55ee0c795ba4de0914b22eab146d909.HD-1080p-7.2Mbps-94627421.mp4?v=0" type="video/mp4"></video></div></div><div 4764 class="fc__content" 4765 4766 ><h3 class="fc__title">Precision Temperature Control</h3> 4767<div class="fc__desc"><p>Precise heating delivers stable brew temperatures for consistent extraction.</p></div></div></article><article 4768 class="fc__slide fc__slide--fill" 4769 data-index="2" 4770 role="listitem" 4771 aria-roledescription="slide" 4772 aria-label="3 of 5" 4773 style="--fc-focal: 50% 50%; --fc-body-w: 372px;" 4774 4775 ><div class="fc__media"> 4776 <div class="fc__layer is-active" data-fc-layer="0"><video 4777 class="fc__media-video" 4778 muted 4779 loop 4780 playsinline 4781 preload="auto" 4782 4783 data-autoplay 4784 ><source src="//cosori.com/cdn/shop/videos/c/vp/db45cb13734f465d97dcf8eea10b3fd9/db45cb13734f465d97dcf8eea10b3fd9.m3u8?v=0" type="application/x-mpegURL"><source src="//cosori.com/cdn/shop/videos/c/vp/db45cb13734f465d97dcf8eea10b3fd9/db45cb13734f465d97dcf8eea10b3fd9.HD-1080p-7.2Mbps-93216157.mp4?v=0" type="video/mp4"></video></div><div class="fc__layer" data-fc-layer="1"><video aria-hidden="true" class="fc__media-video" muted loop playsinline preload="none" 4785 data-fc-chip-video><source src="//cosori.com/cdn/shop/videos/c/vp/db45cb13734f465d97dcf8eea10b3fd9/db45cb13734f465d97dcf8eea10b3fd9.m3u8?v=0" type="application/x-mpegURL"><source src="//cosori.com/cdn/shop/videos/c/vp/db45cb13734f465d97dcf8eea10b3fd9/db45cb13734f465d97dcf8eea10b3fd9.HD-1080p-7.2Mbps-93216157.mp4?v=0" type="video/mp4"></video></div><div class="fc__layer" data-fc-layer="2"><video aria-hidden="true" class="fc__media-video" muted loop playsinline preload="none" 4786 data-fc-chip-video><source src="//cosori.com/cdn/shop/videos/c/vp/18bd0d00d85b4afd869c27d0a5719887/18bd0d00d85b4afd869c27d0a5719887.m3u8?v=0" type="application/x-mpegURL"><source src="//cosori.com/cdn/shop/videos/c/vp/18bd0d00d85b4afd869c27d0a5719887/18bd0d00d85b4afd869c27d0a5719887.HD-1080p-7.2Mbps-93594296.mp4?v=0" type="video/mp4"></video></div><div class="fc__layer" data-fc-layer="3"><video aria-hidden="true" class="fc__media-video" muted loop playsinline preload="none" 4787 data-fc-chip-video><source src="//cosori.com/cdn/shop/videos/c/vp/92bb6d63724a4173a97d56e154f8a89a/92bb6d63724a4173a97d56e154f8a89a.m3u8?v=0" type="application/x-mpegURL"><source src="//cosori.com/cdn/shop/videos/c/vp/92bb6d63724a4173a97d56e154f8a89a/92bb6d63724a4173a97d56e154f8a89a.HD-1080p-7.2Mbps-93594345.mp4?v=0" type="video/mp4"></video></div><div class="fc__chips" data-fc-chips role="group" aria-label="Dynamic Pour Patterns:"><button type="button" class="fc__chip is-selected" 4788 data-fc-chip="1" aria-pressed="true">Spiral Pour</button><button type="button" class="fc__chip" 4789 data-fc-chip="2" aria-pressed="false">Circular Pour</button><button type="button" class="fc__chip" 4790 data-fc-chip="3" aria-pressed="false">Center Pour</button></div></div><div 4791 class="fc__content" 4792 4793 ><h3 class="fc__title">Dynamic Pour Patterns:</h3> 4794<div class="fc__desc"><p>Coordinated nozzle movement and basket rotation recreates the precision of hand-crafted, pour-over techniques.</p></div></div></article><article 4795 class="fc__slide" 4796 data-index="3" 4797 role="listitem" 4798 aria-roledescription="slide" 4799 aria-label="4 of 5" 4800 style="--fc-focal: 50% 50%; --fc-body-w: 372px;" 4801 4802 ><div class="fc__media"> 4803 <div class="fc__layer is-active" data-fc-layer="0"><video 4804 class="fc__media-video" 4805 muted 4806 loop 4807 playsinline 4808 preload="auto" 4809 4810 data-autoplay 4811 ><source src="//cosori.com/cdn/shop/videos/c/vp/f6344194b6ff441ca0e7410d81a87ad7/f6344194b6ff441ca0e7410d81a87ad7.m3u8?v=0" type="application/x-mpegURL"><source src="//cosori.com/cdn/shop/videos/c/vp/f6344194b6ff441ca0e7410d81a87ad7/f6344194b6ff441ca0e7410d81a87ad7.HD-1080p-7.2Mbps-93596147.mp4?v=0" type="video/mp4"></video></div></div><div 4812 class="fc__content" 4813 4814 ><h3 class="fc__title">Vibration Extraction</h3> 4815<div class="fc__desc"><p>Gently agitates the coffee bed during the brew process to promote even saturation, consistent extraction, and balanced flavor.</p></div></div></article><article 4816 class="fc__slide fc__slide--fill" 4817 data-index="4" 4818 role="listitem" 4819 aria-roledescription="slide" 4820 aria-label="5 of 5" 4821 style="--fc-focal: 50% 50%; --fc-body-w: 372px;" 4822 4823 ><div class="fc__media"> 4824 <div class="fc__layer is-active" data-fc-layer="0"><video 4825 class="fc__media-video" 4826 muted 4827 loop 4828 playsinline 4829 preload="auto" 4830 4831 data-autoplay 4832 ><source src="//cosori.com/cdn/shop/videos/c/vp/9c2231581ff24b48bd6371c93148532a/9c2231581ff24b48bd6371c93148532a.m3u8?v=0" type="application/x-mpegURL"><source src="//cosori.com/cdn/shop/videos/c/vp/9c2231581ff24b48bd6371c93148532a/9c2231581ff24b48bd6371c93148532a.HD-1080p-7.2Mbps-93596149.mp4?v=0" type="video/mp4"></video></div></div><div 4833 class="fc__content" 4834 4835 ><h3 class="fc__title">Clean Finish</h3> 4836<div class="fc__desc"><p>An automatic drip stop prevents post-brew drips for a cleaner brewing experience.</p></div></div></article></div><div class="fc__nav">
4837 <button class="fc__arrow fc__arrow--prev" type="button" aria-label="Previous slide"> 4838 <svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> 4839 <polyline points="15 18 9 12 15 6"/> 4840 </svg> 4841 </button> 4842 <button class="fc__arrow fc__arrow--next" type="button" aria-label="Next slide"> 4843 <svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> 4844 <polyline points="9 18 15 12 9 6"/> 4845 </svg> 4846 </button> 4847 </div></div><div class="fc__mtext" data-roll-viewport> 4848 <div class="fc__mtext-track" data-roll-track><div 4849 class="fc__mtext-item is-active" 4850 data-index="0" 4851 aria-hidden="false" 4852 ><span class="fc__badge" aria-hidden="true">1</span><h3 class="fc__mtitle">2 Brew Baskets</h3><div class="fc__mdesc"><p>Dedicated cone or flat bottom brew baskets optimize extraction from single cup to batch brewing. </p></div></div><div 4853 class="fc__mtext-item" 4854 data-index="1" 4855 aria-hidden="true" 4856 ><span class="fc__badge" aria-hidden="true">2</span><h3 class="fc__mtitle">Precision Temperature Control</h3><div class="fc__mdesc"><p>Precise heating delivers stable brew temperatures for consistent extraction.</p></div></div><div 4857 class="fc__mtext-item" 4858 data-index="2" 4859 aria-hidden="true" 4860 ><span class="fc__badge" aria-hidden="true">3</span><h3 class="fc__mtitle">Dynamic Pour Patterns:</h3><div class="fc__mdesc"><p>Coordinated nozzle movement and basket rotation recreates the precision of hand-crafted, pour-over techniques.</p></div></div><div 4861 class="fc__mtext-item" 4862 data-index="3" 4863 aria-hidden="true" 4864 ><span class="fc__badge" aria-hidden="true">4</span><h3 class="fc__mtitle">Vibration Extraction</h3><div class="fc__mdesc"><p>Gently agitates the coffee bed during the brew process to promote even saturation, consistent extraction, and balanced flavor.</p></div></div><div 4865 class="fc__mtext-item" 4866 data-index="4" 4867 aria-hidden="true" 4868 ><span class="fc__badge" aria-hidden="true">5</span><h3 class="fc__mtitle">Clean Finish</h3><div class="fc__mdesc"><p>An automatic drip stop prevents post-brew drips for a cleaner brewing experience.</p></div></div></div> 4869 </div><div class="fc__mmedia" data-roll-viewport> 4870 <div class="fc__mmedia-track" data-roll-track><div 4871 class="fc__mmedia-item" 4872 data-index="0" 4873 style="--fc-m-focal: 50% 50%;" 4874 > 4875 <div class="fc__layer is-active" data-fc-layer="0"><video 4876 class="fc__mmedia-video" 4877 muted 4878 loop 4879 playsinline 4880 preload="auto" 4881 4882 data-autoplay 4883 ><source src="//cosori.com/cdn/shop/videos/c/vp/1bc5374d1339477d99ba239f9cd2a850/1bc5374d1339477d99ba239f9cd2a850.m3u8?v=0" type="application/x-mpegURL"><source src="//cosori.com/cdn/shop/videos/c/vp/1bc5374d1339477d99ba239f9cd2a850/1bc5374d1339477d99ba239f9cd2a850.HD-1080p-7.2Mbps-93595706.mp4?v=0" type="video/mp4"></video></div></div><div 4884 class="fc__mmedia-item" 4885 data-index="1" 4886 style="--fc-m-focal: 50% 50%;" 4887 > 4888 <div class="fc__layer is-active" data-fc-layer="0"><video 4889 class="fc__mmedia-video" 4890 muted 4891 loop 4892 playsinline 4893 preload="auto" 4894 4895 data-autoplay 4896 ><source src="//cosori.com/cdn/shop/videos/c/vp/81eb2a67af374b2a8523fe75a16523f8/81eb2a67af374b2a8523fe75a16523f8.m3u8?v=0" type="application/x-mpegURL"><source src="//cosori.com/cdn/shop/videos/c/vp/81eb2a67af374b2a8523fe75a16523f8/81eb2a67af374b2a8523fe75a16523f8.HD-1080p-7.2Mbps-94627645.mp4?v=0" type="video/mp4"></video></div></div><div 4897 class="fc__mmedia-item" 4898 data-index="2" 4899 style="--fc-m-focal: 50% 50%;" 4900 > 4901 <div class="fc__layer is-active" data-fc-layer="0"><video 4902 class="fc__mmedia-video" 4903 muted 4904 loop 4905 playsinline 4906 preload="auto" 4907 4908 data-autoplay 4909 ><source src="//cosori.com/cdn/shop/videos/c/vp/38b14b5fb5ef4bcea095b7ae7d35bb1c/38b14b5fb5ef4bcea095b7ae7d35bb1c.m3u8?v=0" type="application/x-mpegURL"><source src="//cosori.com/cdn/shop/videos/c/vp/38b14b5fb5ef4bcea095b7ae7d35bb1c/38b14b5fb5ef4bcea095b7ae7d35bb1c.HD-1080p-7.2Mbps-93218096.mp4?v=0" type="video/mp4"></video></div><div class="fc__layer" data-fc-layer="1"><video aria-hidden="true" class="fc__mmedia-video" muted loop playsinline preload="none" 4910 data-fc-chip-video><source src="//cosori.com/cdn/shop/videos/c/vp/400a1bdd4050449e81bbc8a3e61f436e/400a1bdd4050449e81bbc8a3e61f436e.m3u8?v=0" type="application/x-mpegURL"><source src="//cosori.com/cdn/shop/videos/c/vp/400a1bdd4050449e81bbc8a3e61f436e/400a1bdd4050449e81bbc8a3e61f436e.HD-1080p-7.2Mbps-93595901.mp4?v=0" type="video/mp4"></video></div><div class="fc__layer" data-fc-layer="2"><video aria-hidden="true" class="fc__mmedia-video" muted loop playsinline preload="none" 4911 data-fc-chip-video><source src="//cosori.com/cdn/shop/videos/c/vp/8e266a630c34474eb518cf2e64e78d14/8e266a630c34474eb518cf2e64e78d14.m3u8?v=0" type="application/x-mpegURL"><source src="//cosori.com/cdn/shop/videos/c/vp/8e266a630c34474eb518cf2e64e78d14/8e266a630c34474eb518cf2e64e78d14.HD-1080p-7.2Mbps-93594673.mp4?v=0" type="video/mp4"></video></div><div class="fc__layer" data-fc-layer="3"><video aria-hidden="true" class="fc__mmedia-video" muted loop playsinline preload="none" 4912 data-fc-chip-video><source src="//cosori.com/cdn/shop/videos/c/vp/4621c1521600463db492d8bf377882ac/4621c1521600463db492d8bf377882ac.m3u8?v=0" type="application/x-mpegURL"><source src="//cosori.com/cdn/shop/videos/c/vp/4621c1521600463db492d8bf377882ac/4621c1521600463db492d8bf377882ac.HD-1080p-7.2Mbps-93594696.mp4?v=0" type="video/mp4"></video></div><div class="fc__chips fc__chips--m" data-fc-chips role="group" aria-label="Dynamic Pour Patterns:"><button type="button" class="fc__chip is-selected" 4913 data-fc-chip="1" aria-pressed="true">Spiral Pour</button><button type="button" class="fc__chip" 4914 data-fc-chip="2" aria-pressed="false">Circular Pour</button><button type="button" class="fc__chip" 4915 data-fc-chip="3" aria-pressed="false">Center Pour</button></div></div><div 4916 class="fc__mmedia-item" 4917 data-index="3" 4918 style="--fc-m-focal: 50% 50%;" 4919 > 4920 <div class="fc__layer is-active" data-fc-layer="0"><video 4921 class="fc__mmedia-video" 4922 muted 4923 loop 4924 playsinline 4925 preload="auto" 4926 4927 data-autoplay 4928 ><source src="//cosori.com/cdn/shop/videos/c/vp/f6344194b6ff441ca0e7410d81a87ad7/f6344194b6ff441ca0e7410d81a87ad7.m3u8?v=0" type="application/x-mpegURL"><source src="//cosori.com/cdn/shop/videos/c/vp/f6344194b6ff441ca0e7410d81a87ad7/f6344194b6ff441ca0e7410d81a87ad7.HD-1080p-7.2Mbps-93596147.mp4?v=0" type="video/mp4"></video></div></div><div 4929 class="fc__mmedia-item" 4930 data-index="4" 4931 style="--fc-m-focal: 50% 50%;" 4932 > 4933 <div class="fc__layer is-active" data-fc-layer="0"><video 4934 class="fc__mmedia-video" 4935 muted 4936 loop 4937 playsinline 4938 preload="auto" 4939 4940 data-autoplay 4941 ><source src="//cosori.com/cdn/shop/videos/c/vp/9e0d683a6f4a4a72934efc513c36191d/9e0d683a6f4a4a72934efc513c36191d.m3u8?v=0" type="application/x-mpegURL"><source src="//cosori.com/cdn/shop/videos/c/vp/9e0d683a6f4a4a72934efc513c36191d/9e0d683a6f4a4a72934efc513c36191d.HD-1080p-7.2Mbps-93596170.mp4?v=0" type="video/mp4"></video></div></div></div>
4941<button class="fc__tap fc__tap--prev" type="button" aria-label="Previous slide"></button> 4942 <button class="fc__tap fc__tap--next" type="button" aria-label="Next slide"></button></div><div class="fc__dots" role="tablist" aria-label="Slide navigation"><button 4943 class="fc__dot is-active" 4944 type="button" 4945 data-index="0" 4946 role="tab" 4947 aria-label="Go to slide 1" 4948 aria-selected="true" 4949 ></button><button 4950 class="fc__dot" 4951 type="button" 4952 data-index="1" 4953 role="tab" 4954 aria-label="Go to slide 2" 4955 aria-selected="false" 4956 ></button><button 4957 class="fc__dot" 4958 type="button" 4959 data-index="2" 4960 role="tab" 4961 aria-label="Go to slide 3" 4962 aria-selected="false" 4963 ></button><button 4964 class="fc__dot" 4965 type="button" 4966 data-index="3" 4967 role="tab" 4968 aria-label="Go to slide 4" 4969 aria-selected="false" 4970 ></button><button 4971 class="fc__dot" 4972 type="button" 4973 data-index="4" 4974 role="tab" 4975 aria-label="Go to slide 5" 4976 aria-selected="false" 4977 ></button></div></section> 4978 4979<style> 4980 #feature-carousel-template--28135044186421__feature_carousel_L88KQX { 4981 /* ââ Section ââ */ 4982 --fc-bg: #ffffff; 4983 --fc-pad-top: 37px; 4984 --fc-pad-bottom: 60px; 4985 4986 /* ââ Header lock-up ââ */ 4987 --fc-logo-w: 130px; 4988 --fc-header-gap: 16px; 4989 --fc-rule-w: 200px; 4990 --fc-rule-color: #512a44; 4991 --fc-header-mb: 32px; 4992 4993 /* ââ Desktop card ââ */ 4994 --fc-card-w: min(1000px, calc(100vw - 300px)); 4995 --fc-card-radius: 12px; 4996 --fc-card-gap: 22px; 4997 --fc-card-bg: linear-gradient(90deg, #292727 0%, #464142 100%); 4998 --fc-card-shadow: 4.491px 4.491px 7.485px rgba(0, 0, 0, 0.15); 4999 5000 /* ââ Desktop copy ââ */ 5001 --fc-text: #e8e0d5; 5002 --fc-copy-left: 64px; 5003 --fc-copy-gap: 8px; 5004 --fc-title-size: 20px; 5005 --fc-body-size: 16px; 5006 --fc-body-w: 372px; 5007 5008 /* ââ Desktop media box ââ */ 5009 --fc-media-right: 0%; 5010 --fc-media-w: 100%; 5011 --fc-media-ar: 1 / 1; 5012 --fc-media-radius: 0px; 5013 --fc-media-shadow: none; 5014 --fc-overlay: #000000; 5015 --fc-overlay-stop: 53%; 5016 5017 /* ââ Control panel (panel slides) ââ 5018 The four img percentages are Liquid-computed from the crop rectangle so the 5019 stylesheet carries plain numbers; calc() on unitless custom properties is a 5020 trap worth avoiding. Fallbacks are the dehydrator crop, which is what these 5021 values resolve to when no panel image is picked and the rules go unused. */ 5022 --fcp-ar: 1323 / 267; 5023 --fcp-img-w: 309.6%; 5024 --fcp-img-h: 1534.082%; 5025 --fcp-img-l: -106.803%; 5026 --fcp-img-t: -695.506%; 5027 --fcp-hl: #fdf3e0; 5028 --fcp-hl-ring: rgba(253, 243, 224, 0.14); 5029 --fcp-hl-glow: rgba(253, 243, 224, 0.5); 5030 --fcp-mk-size: 34px; 5031 --fcp-mk-text: #292727; 5032 --fcp-gap: 18px; 5033 --fcp-radius: 6px; 5034 --fcp-stack-gap: 28px; 5035 5036 /* ââ Arrows ââ */ 5037 --fc-arrow-size: 44px; 5038 --fc-arrow-bg: rgba(255,255,255,0.2); 5039 --fc-arrow-color: #ffffff; 5040 --fc-arrow-offset: 82px; 5041 5042 /* ââ Mobile ââ */ 5043 --fc-pad-top-m: 32px; 5044 --fc-pad-bottom-m: 48px; 5045 --fc-logo-w-m: 150px; 5046 --fc-header-gap-m: 12px; 5047 --fc-rule-w-m: 180px; 5048 --fc-header-mb-m: 15px; 5049 --fc-m-text: #333535; 5050 --fc-m-badge-border: #333535; 5051 --fc-m-badge-size: 32px; 5052 --fc-m-title-size: 32px; 5053 --fc-m-body-size: 20px; 5054 --fc-m-item-w: 350px; 5055 --fc-m-item-gap: 100px; 5056 --fc-m-side: 20px; 5057 --fc-m-inner-gap: 16px; 5058 --fc-m-text-h: 258px;--fc-m-card-side: 16px; 5059 --fc-m-card-w: min(358px, calc(100vw - (var(--fc-m-card-side) * 2))); 5060 --fc-m-card-h: 447px; 5061 --fc-m-card-radius: 16px; 5062 --fc-m-card-border: rgba(255,255,255,0.2); 5063 5064 /* ââ Dots ââ */ 5065 --fc-dot-size: 9px; 5066 --fc-dot-gap: 14px; 5067 --fc-dot-mt: 16px; 5068 --fc-dot-active: #fb914a; 5069 --fc-dot-inactive: #e8e0d5; 5070 } 5071
5072 #feature-carousel-template--28135044186421__feature_carousel_L88KQX { 5073 position: relative; 5074 width: 100%; 5075 box-sizing: border-box; 5076 background-color: var(--fc-bg); 5077 padding-top: var(--fc-pad-top); 5078 padding-bottom: var(--fc-pad-bottom); 5079 /* Each roll clips itself, so the section needs no overflow of its own â 5080 `overflow-x: hidden` here would compute overflow-y to auto and can add a 5081 stray vertical scrollbar. */ 5082 -webkit-font-smoothing: antialiased; 5083 -moz-osx-font-smoothing: grayscale; 5084 } 5085 5086 #feature-carousel-template--28135044186421__feature_carousel_L88KQX *, 5087 #feature-carousel-template--28135044186421__feature_carousel_L88KQX *::before, 5088 #feature-carousel-template--28135044186421__feature_carousel_L88KQX *::after { 5089 box-sizing: border-box; 5090 }@media (min-width: 769px) { 5091 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .line-break--mobile { display: none; } 5092 } 5093 @media (max-width: 768px) { 5094 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .line-break--desktop { display: none; } 5095 } 5096 5097 /* ââ Header lock-up ââ */ 5098 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__header { 5099 display: flex; 5100 flex-direction: column; 5101 align-items: center; 5102 gap: var(--fc-header-gap); 5103 margin: 0 auto var(--fc-header-mb); 5104 padding: 0 20px; 5105 } 5106 5107 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__header-image { 5108 display: block; 5109 width: var(--fc-logo-w); 5110 max-width: 100%; 5111 height: auto; 5112 } 5113 5114 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__header-text { 5115 font-family: 'Gilroy-SemiBold', 'Gilroy-Semibold', 'Gilroy', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; 5116 font-weight: 600; 5117 font-size: 24px; 5118 line-height: 1.2; 5119 letter-spacing: 0.24em; 5120 text-transform: uppercase; 5121 color: var(--fc-m-text); 5122 }#feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__header-rule { 5123 display: block; 5124 width: var(--fc-rule-w); 5125 max-width: 100%; 5126 height: 1px; 5127 background-color: var(--fc-rule-color); 5128 } 5129 5130 /* ââ Desktop viewport + track ââ */ 5131 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__viewport { 5132 position: relative; 5133 width: 100%; 5134 /* Height follows the card so the arrows can centre on it. */ 5135 height: calc(var(--fc-card-w) * 620 / 1000); 5136 overflow: hidden; 5137 } 5138 5139 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__track { 5140 display: flex; 5141 align-items: stretch; 5142 gap: var(--fc-card-gap); 5143 height: 100%; 5144 /* Centred by JS via translateX; starts at 0 to avoid a first-paint flash. */ 5145 transform: translateX(0); 5146 transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1); 5147 will-change: transform; 5148 } 5149 5150 @media (prefers-reduced-motion: reduce) { 5151 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__track, 5152 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mtext-track, 5153 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mmedia-track { 5154 transition: none; 5155 } 5156 } 5157 5158 /* ââ Desktop card ââ */ 5159 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__slide { 5160 position: relative; 5161 flex: 0 0 var(--fc-card-w); 5162 width: var(--fc-card-w); 5163 height: 100%; 5164 border-radius: var(--fc-card-radius); 5165 overflow: hidden; 5166 background: var(--fc-card-bg); 5167 box-shadow: var(--fc-card-shadow); 5168 } 5169 5170 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__cardbg, 5171 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__cardbg-img { 5172 position: absolute; 5173 inset: 0; 5174 width: 100%; 5175 height: 100%; 5176 } 5177 5178 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__cardbg-img { 5179 object-fit: cover; 5180 } 5181 5182 /* Media box: pinned right, sized by settings. Cosori default is a flush-right 5183 square that fills the card height;
5183 Levoit's look is a smaller inset box. */#feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__media { 5184 position: absolute; 5185 right: var(--fc-media-right); 5186 width: var(--fc-media-w); 5187 top: 0; 5188 height: 100%; 5189 aspect-ratio: auto; 5190 z-index: 1; 5191 border-radius: var(--fc-media-radius); 5192 overflow: hidden; 5193 box-shadow: var(--fc-media-shadow); 5194 }#feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__media-img, 5195 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__media-video { 5196 display: block; 5197 width: 100%; 5198 height: 100%; 5199 object-fit: cover; 5200 object-position: var(--fc-focal, 50% 50%); 5201 border-radius: var(--fc-media-radius); 5202 }#feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__layer { 5203 position: absolute; 5204 inset: 0; 5205 opacity: 0; 5206 visibility: hidden; 5207 transition: opacity 350ms ease, visibility 0s linear 350ms; 5208 } 5209 5210 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__layer.is-active { 5211 opacity: 1; 5212 visibility: visible; 5213 transition: opacity 350ms ease, visibility 0s linear 0s; 5214 } 5215 5216 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__chips { 5217 position: absolute; 5218 left: 50%; 5219 transform: translateX(-50%); 5220 bottom: 32px; 5221 z-index: 3; 5222 display: flex; 5223 align-items: center; 5224 gap: 12px; 5225 max-width: calc(100% - 24px); 5226 padding: 8px; 5227 border-radius: 170px; 5228 background: rgba(0,0,0,0.25); 5229 overflow-x: auto; 5230 scrollbar-width: none; 5231 visibility: hidden; 5232 opacity: 0; 5233 transition: opacity 200ms ease, visibility 0s linear 200ms; 5234 } 5235 5236 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__chips::-webkit-scrollbar { display: none; }#feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__slide--fill .fc__chips { 5237 left: calc(100% - var(--fc-media-right) - (var(--fc-media-w) / 2)); 5238 }@media (min-width: 769px) { 5239 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__chips, 5240 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__slide--fill .fc__chips { 5241 left: 72%; 5242 } 5243 }#feature-carousel-template--28135044186421__feature_carousel_L88KQX .is-active .fc__chips { 5244 visibility: visible; 5245 opacity: 1; 5246 transition: opacity 200ms ease, visibility 0s linear 0s; 5247 } 5248 5249 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__chip { 5250 flex: 0 0 auto; 5251 appearance: none; 5252 -webkit-appearance: none; 5253 margin: 0; 5254 padding: 10px 32px; 5255 border: 1px solid transparent; 5256 border-radius: 52px; 5257 background: none; 5258 cursor: pointer; 5259 font-family: 'Gilroy', sans-serif; 5260 font-weight: 500; 5261 font-size: 16px; 5262 line-height: 1.4; 5263 white-space: nowrap; 5264 color: #e8e0d5; 5265 } 5266 5267 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__chip.is-selected { 5268 background: #e8e0d5; 5269 border-color: #ccd1e2; 5270 color: #464142; 5271 } 5272 5273 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__chip:focus-visible { 5274 outline: 2px solid #e8e0d5; 5275 outline-offset: 2px; 5276 } 5277 5278 /* Full-bleed variant: media fills the card, copy sits over a left gradient. */ 5279 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__slide--fill .fc__media { 5280 right: 0; 5281 top: 0; 5282 transform: none; 5283 width: 100%; 5284 height: 100%; 5285 aspect-ratio: auto; 5286 border-radius: 0; 5287 box-shadow: none; 5288 } 5289 5290 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__slide--fill::after { 5291 content: ''; 5292 position: absolute; 5293 inset: 0; 5294 z-index: 1; 5295 pointer-events: none; 5296 background: linear-gradient(90deg, var(--fc-overlay) 0%, transparent var(--fc-overlay-stop)); 5297 } 5298 5299 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__content { 5300 position: absolute; 5301 z-index: 2; 5302 left: var(--fc-copy-left); 5303 top: 50%; 5304 transform: translateY(-50%); 5305 display: flex; 5306 flex-direction: column; 5307 gap: var(--fc-copy-gap); 5308 max-width: var(--fc-body-w); 5309 color: var(--fc-text); 5310 } 5311
5312 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__title { 5313 margin: 0; 5314 font-family: 'Gilroy-SemiBold', 'Gilroy-Semibold', 'Gilroy', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; 5315 font-weight: 600; 5316 font-size: var(--fc-title-size); 5317 line-height: 1.2; 5318 color: inherit; 5319 } 5320 5321 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__desc { 5322 font-family: 'Gilroy-Regular', 'Gilroy', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; 5323 font-weight: 400; 5324 font-size: var(--fc-body-size); 5325 line-height: 1.2; 5326 color: inherit; 5327 width: var(--fc-body-w); 5328 max-width: 100%; 5329 }#feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__title p, 5330 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__desc p, 5331 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mtitle p, 5332 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mdesc p { 5333 margin: 0; 5334 } 5335 5336 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__desc p + p, 5337 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mdesc p + p { 5338 margin-top: 0.5em; 5339 } 5340 5341 /* ââ Panel spotlight slides ââ 5342 A different card composition to `box`/`fill`: the copy is in normal flow at the 5343 top and the panel spans the card below it, which buys the strip ~872px on a 5344 1000px card so the individual controls stay legible. The card's own height rule 5345 is untouched, so the carousel's geometry does not move. */ 5346 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__slide--panel { 5347 display: flex; 5348 flex-direction: column; 5349 justify-content: center; 5350 gap: var(--fcp-stack-gap); 5351 padding: var(--fc-copy-left); 5352 } 5353 5354 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__slide--panel .fc__content { 5355 position: static; 5356 transform: none; 5357 max-width: none; 5358 } 5359 5360 /* --fc-body-w is a hard width on .fc__desc, which would pin the copy to the 5361 narrow column the overlaid layouts want. Panel slides get the card instead. */ 5362 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__slide--panel .fc__desc { 5363 width: 100%; 5364 max-width: 640px; 5365 } 5366 5367 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__chead { 5368 display: flex; 5369 align-items: center; 5370 gap: 14px; 5371 }#feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__dbadge { 5372 flex: none; 5373 display: flex; 5374 align-items: center; 5375 justify-content: center; 5376 width: var(--fcp-mk-size); 5377 height: var(--fcp-mk-size); 5378 border: 1px solid currentColor; 5379 border-radius: 50%; 5380 font-family: 'Proxima Sera', Georgia, 'Times New Roman', serif; 5381 font-weight: 400; 5382 font-size: 16px; 5383 line-height: 1; 5384 color: inherit; 5385 } 5386 5387 /* Overflow stays visible so the marker and connector can sit outside the frame; 5388 the margins reserve room for them on both sides, so every slide in the track 5389 reserves the same space whichever side its own marker takes. */ 5390 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__panel { 5391 position: relative; 5392 width: 100%; 5393 margin: calc(var(--fcp-mk-size) + var(--fcp-gap) + 6px) 0; 5394 } 5395 5396 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__panel-frame { 5397 position: relative; 5398 width: 100%; 5399 aspect-ratio: var(--fcp-ar); 5400 overflow: hidden; 5401 border-radius: var(--fcp-radius); 5402 }#feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__panel-img { 5403 position: absolute; 5404 left: var(--fcp-img-l); 5405 top: var(--fcp-img-t); 5406 width: var(--fcp-img-w); 5407 height: var(--fcp-img-h); 5408 max-width: none; 5409 display: block; 5410 } 5411 5412 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__panel-hl { 5413 position: absolute; 5414 z-index: 1; 5415 border: 1.5px solid var(--fcp-hl); 5416 border-radius: 8px; 5417 box-shadow: 0 0 0 3px var(--fcp-hl-ring), 0 0 26px var(--fcp-hl-glow); 5418 opacity: 0; 5419 transform: scale(0.94); 5420 transition: opacity 0.45s ease, transform 0.45s cubic-bezier(0.2, 0.9, 0.2, 1); 5421 pointer-events: none; 5422 } 5423 5424 /* The connector is a sibling of the frame, not a child, so the frame's 5425 overflow:hidden does not clip the part that runs outside it. */
5426 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__panel-line { 5427 position: absolute; 5428 z-index: 2; 5429 width: 1px; 5430 background: var(--fcp-hl); 5431 transform: translateX(-50%); 5432 opacity: 0; 5433 transition: opacity 0.45s ease; 5434 pointer-events: none; 5435 } 5436 5437 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__panel-mk { 5438 position: absolute; 5439 z-index: 3; 5440 display: flex; 5441 align-items: center; 5442 justify-content: center; 5443 width: var(--fcp-mk-size); 5444 height: var(--fcp-mk-size); 5445 border-radius: 50%; 5446 background: var(--fcp-hl); 5447 color: var(--fcp-mk-text); 5448 font-family: 'Gilroy-SemiBold', 'Gilroy-Semibold', 'Gilroy', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; 5449 font-weight: 600; 5450 font-size: 15px; 5451 line-height: 1; 5452 opacity: 0; 5453 transform: translateX(-50%) scale(0.94); 5454 transition: opacity 0.45s ease, transform 0.45s cubic-bezier(0.2, 0.9, 0.2, 1); 5455 pointer-events: none; 5456 } 5457 5458 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__panel-mk--above { bottom: calc(100% + var(--fcp-gap)); } 5459 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__panel-mk--below { top: calc(100% + var(--fcp-gap)); } 5460 5461 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__panel-mk::before { 5462 content: ''; 5463 position: absolute; 5464 inset: -6px; 5465 border-radius: 50%; 5466 border: 2px solid var(--fcp-hl); 5467 opacity: 0; 5468 }#feature-carousel-template--28135044186421__feature_carousel_L88KQX .is-active .fc__panel-hl { 5469 opacity: 1; 5470 transform: scale(1); 5471 } 5472 5473 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .is-active .fc__panel-line { opacity: 0.95; } 5474 5475 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .is-active .fc__panel-mk { 5476 opacity: 1; 5477 transform: translateX(-50%) scale(1); 5478 } 5479 5480 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .is-active .fc__panel-mk::before { 5481 animation: fcp-pulse-template--28135044186421__feature_carousel_L88KQX 1.6s ease-out infinite; 5482 } 5483 5484 @keyframes fcp-pulse-template--28135044186421__feature_carousel_L88KQX { 5485 0% { opacity: 0.85; transform: scale(0.85); } 5486 100% { opacity: 0; transform: scale(1.9); } 5487 } 5488 5489 @media (prefers-reduced-motion: reduce) { 5490 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__panel-hl, 5491 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__panel-line, 5492 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__panel-mk { 5493 transition: none; 5494 } 5495 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .is-active .fc__panel-mk::before { animation: none; } 5496 } 5497 5498 /* ââ Arrows ââ 5499 Centred on a point `arrow_offset` outside the card edge, so they float in the 5500 gutter over the peeking neighbours rather than straddling the active card. */ 5501 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__nav { 5502 position: absolute; 5503 inset: 0; 5504 pointer-events: none; 5505 z-index: 5; 5506 } 5507 5508 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__arrow { 5509 position: absolute; 5510 top: 50%; 5511 pointer-events: auto; 5512 width: var(--fc-arrow-size); 5513 height: var(--fc-arrow-size); 5514 border-radius: 50%; 5515 border: none; 5516 padding: 0; 5517 background: var(--fc-arrow-bg); 5518 color: var(--fc-arrow-color); 5519 cursor: pointer; 5520 display: inline-flex; 5521 align-items: center; 5522 justify-content: center; 5523 -webkit-backdrop-filter: blur(2px); 5524 backdrop-filter: blur(2px); 5525 transition: opacity 0.2s ease, background 0.2s ease; 5526 } 5527 5528 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__arrow--prev { 5529 left: calc(50% - (var(--fc-card-w) / 2) - var(--fc-arrow-offset)); 5530 transform: translate(-50%, -50%); 5531 } 5532 5533 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__arrow--next { 5534 left: calc(50% + (var(--fc-card-w) / 2) + var(--fc-arrow-offset)); 5535 transform: translate(-50%, -50%); 5536 } 5537
5538 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__arrow:hover { 5539 background: var(--fc-arrow-bg); 5540 opacity: 0.8; 5541 } 5542 5543 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__arrow:disabled { 5544 opacity: 0.35; 5545 cursor: not-allowed; 5546 } 5547 5548 /* ââ Mobile pieces: hidden on desktop ââ */ 5549 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mtext, 5550 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mmedia, 5551 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__dots { 5552 display: none; 5553 } 5554 5555 /* ââââââââââââââ Mobile (<=768px) ââââââââââââââ */ 5556 @media (max-width: 768px) { 5557 #feature-carousel-template--28135044186421__feature_carousel_L88KQX { 5558 padding-top: var(--fc-pad-top-m); 5559 padding-bottom: var(--fc-pad-bottom-m); 5560 } 5561 5562 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__header { 5563 gap: var(--fc-header-gap-m); 5564 margin-bottom: var(--fc-header-mb-m); 5565 } 5566 5567 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__header-image { width: var(--fc-logo-w-m); } 5568 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__header-rule { width: var(--fc-rule-w-m); } 5569 5570 /* The desktop card roll is replaced wholesale by the two rolls below. */ 5571 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__viewport { display: none; } 5572 5573 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mtext, 5574 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mmedia { 5575 display: block; 5576 } 5577 5578 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__dots { 5579 display: flex; 5580 align-items: center; 5581 justify-content: center; 5582 gap: var(--fc-dot-gap); 5583 margin-top: var(--fc-dot-mt); 5584 } 5585 5586 /* ââ Text roll ââ 5587 Fixed height, so a longer body copy never pushes the media card down and the 5588 card stays put between slides. */ 5589 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mtext { 5590 position: relative; 5591 width: 100%; 5592 height: var(--fc-m-text-h); 5593 /* The left inset moved onto the item, which now owns the full slot width - 5594 see the note there. place() measures items[0].offsetLeft as its base, so 5595 it follows either arrangement. */ 5596 overflow: hidden; 5597 } 5598 5599 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mtext-track { 5600 display: flex; 5601 align-items: flex-start; 5602 gap: var(--fc-m-item-gap); 5603 height: 100%; 5604 transform: translateX(0); 5605 transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1); 5606 will-change: transform; 5607 }#feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mtext-item { 5608 flex: 0 0 100%; 5609 width: 100%; 5610 padding-left: max(var(--fc-m-side), calc((100% - var(--fc-m-item-w)) / 2)); 5611 padding-right: max(var(--fc-m-side), calc((100% - var(--fc-m-item-w)) / 2)); 5612 display: flex; 5613 flex-direction: column; 5614 align-items: flex-start; 5615 gap: var(--fc-m-inner-gap); 5616 color: var(--fc-m-text); 5617 } 5618 5619 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__badge { 5620 flex: none; 5621 display: flex; 5622 align-items: center; 5623 justify-content: center; 5624 width: var(--fc-m-badge-size); 5625 height: var(--fc-m-badge-size); 5626 border: 0.5px solid var(--fc-m-badge-border); 5627 border-radius: 50%; 5628 font-family: 'Proxima Sera', Georgia, 'Times New Roman', serif; 5629 font-weight: 400; 5630 font-size: 16px; 5631 line-height: 1.4; 5632 color: var(--fc-m-text); 5633 } 5634 5635 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mtitle { 5636 margin: 0; 5637 font-family: 'Gilroy-SemiBold', 'Gilroy-Semibold', 'Gilroy', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; 5638 font-weight: 600; 5639 font-size: var(--fc-m-title-size); 5640 line-height: 1.2; 5641 color: inherit; 5642 } 5643
5644 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mdesc { 5645 font-family: 'Gilroy-Regular', 'Gilroy', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; 5646 font-weight: 400; 5647 font-size: var(--fc-m-body-size); 5648 line-height: 1.4; 5649 color: inherit; 5650 } 5651 5652 /* ââ Media card ââ */ 5653 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mmedia { 5654 position: relative; 5655 width: var(--fc-m-card-w); 5656 height: var(--fc-m-card-h); 5657 margin: 0 auto; 5658 border-radius: var(--fc-m-card-radius); 5659 border: 1px solid var(--fc-m-card-border); 5660 overflow: hidden; 5661 } 5662 5663 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mmedia-track { 5664 display: flex; 5665 align-items: stretch; 5666 height: 100%; 5667 transform: translateX(0); 5668 transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1); 5669 will-change: transform; 5670 } 5671 5672 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mmedia-item { 5673 flex: 0 0 100%; 5674 width: 100%; 5675 height: 100%; 5676 /* Containing block for .fc__layer. Without it the absolutely positioned 5677 layers resolve against .fc__mmedia (the only positioned ancestor), so 5678 every slide's media stacks at the viewport instead of travelling with 5679 the track â the media then sits ~1000px off to the left. */ 5680 position: relative; 5681 } 5682 5683 /* Figma 1689:16439: the bar sits 19px up with tighter chips at 12px. */ 5684 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__chips--m { 5685 bottom: 19px; 5686 gap: 10px; 5687 max-width: calc(100% - 16px); 5688 }#feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__chips--m {
5689 gap: clamp(6px, calc(10px - (390px - 100vw) * 0.13), 10px); 5690 z-index: 4; 5691 } 5692 5693 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__chips--m .fc__chip { 5694 padding: 10px clamp(8px, calc(16px - (390px - 100vw) * 0.27), 16px); 5695 font-size: 12px; 5696 }#feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mmedia-img, 5697 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mmedia-video { 5698 display: block; 5699 width: 100%; 5700 height: 100%; 5701 object-fit: cover; 5702 object-position: var(--fc-m-focal, 50% 50%); 5703 } 5704 5705 /* ââ Panel spotlight on the portrait card ââ 5706 The strip is zoomed to --fcp-m-w of the card and slid by --fcp-m-l, both 5707 Liquid-computed per slide so the highlighted control lands mid-card. The item 5708 clips its own overflow: the strip is wider than the card and would otherwise 5709 bleed into the neighbouring slide in the flex track. */ 5710 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mmedia-item--panel { 5711 position: relative; 5712 display: flex; 5713 align-items: center; 5714 overflow: hidden; 5715 background: var(--fc-card-bg); 5716 } 5717 5718 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mpanel { 5719 flex: none; 5720 position: relative; 5721 width: var(--fcp-m-w, 240%); 5722 margin-left: var(--fcp-m-l, 0%); 5723 } 5724 5725 /* Square off the corners here â the card already rounds and clips them, and a 5726 second radius inside it reads as a seam against the gradient. */ 5727 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__mpanel .fc__panel-frame { 5728 border-radius: 0; 5729 } 5730 5731 /* Invisible half-width tap targets â the mobile design has no arrows. */ 5732 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__tap { 5733 position: absolute; 5734 top: 0; 5735 width: 50%; 5736 height: 100%; 5737 z-index: 3; 5738 padding: 0; 5739 border: none; 5740 background: transparent; 5741 cursor: pointer; 5742 -webkit-tap-highlight-color: transparent; 5743 } 5744 5745 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__tap--prev { left: 0; } 5746 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__tap--next { right: 0; }#feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__tap { 5747 height: calc(100% - 19px - 56px); 5748 }#feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__tap:focus-visible { 5749 outline: 2px solid var(--fc-dot-active); 5750 outline-offset: -4px; 5751 } 5752 5753 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__dot { 5754 width: var(--fc-dot-size); 5755 height: var(--fc-dot-size); 5756 border-radius: 50%; 5757 border: none; 5758 padding: 0; 5759 background: var(--fc-dot-inactive); 5760 cursor: pointer; 5761 transition: background 0.2s ease; 5762 } 5763 5764 #feature-carousel-template--28135044186421__feature_carousel_L88KQX .fc__dot.is-active { 5765 background: var(--fc-dot-active); 5766 } 5767 } 5768</style> 5769
5770<script> 5771 (function () { 5772 var section = document.getElementById('feature-carousel-template--28135044186421__feature_carousel_L88KQX'); 5773 if (!section) return; 5774 5775 var n = 5; 5776 if (n === 0) return; 5777 5778 var loop = section.getAttribute('data-loop') === 'true' && n > 1; 5779 5780 // ââ Rolls ââ 5781 // Three independent tracks driven by one index. The desktop card roll centres 5782 // its active item in the viewport; the two mobile rolls align the active item 5783 // to their own left edge. Measuring offsetLeft (rather than doing pitch 5784 // arithmetic) keeps this correct when a card is width-clamped on a narrow 5785 // viewport. 5786 var rolls = []; 5787 Array.prototype.forEach.call(section.querySelectorAll('[data-roll-viewport]'), function (vp) { 5788 var track = vp.querySelector('[data-roll-track]'); 5789 if (!track) return; 5790 rolls.push({ 5791 vp: vp, 5792 track: track, 5793 mode: track.classList.contains('fc__track') ? 'center' : 'start', 5794 items: [] 5795 }); 5796 }); 5797 if (!rolls.length) return; 5798 5799 // ââ Infinite loop ââ 5800 // Clone the last item to the front and the first to the back of EVERY track, 5801 // so a peek is always available on the desktop roll and all three stay index 5802 // aligned. `current` indexes the padded list; realIndexOf() maps back. 5803 rolls.forEach(function (roll) { 5804 var kids = Array.prototype.filter.call(roll.track.children, function (el) { 5805 return el.hasAttribute('data-index'); 5806 }); 5807 if (loop && kids.length) { 5808 var firstClone = kids[0].cloneNode(true); 5809 var lastClone = kids[kids.length - 1].cloneNode(true); 5810 [firstClone, lastClone].forEach(function (c) { 5811 c.setAttribute('aria-hidden', 'true'); 5812 c.classList.add('fc--clone'); 5813 // Clones must never be focus targets or duplicate ids in the a11y tree. 5814 Array.prototype.forEach.call(c.querySelectorAll('button, a, input'), function (f) { 5815 f.setAttribute('tabindex', '-1'); 5816 }); 5817 }); 5818 roll.track.insertBefore(lastClone, kids[0]); 5819 roll.track.appendChild(firstClone); 5820 } 5821 roll.items = Array.prototype.filter.call(roll.track.children, function (el) { 5822 return el.hasAttribute('data-index'); 5823 }); 5824 }); 5825 5826 var dots = Array.prototype.slice.call(section.querySelectorAll('.fc__dot')); 5827 var prevBtn = section.querySelector('.fc__arrow--prev'); 5828 var nextBtn = section.querySelector('.fc__arrow--next'); 5829 var tapPrev = section.querySelector('.fc__tap--prev'); 5830 var tapNext = section.querySelector('.fc__tap--next'); 5831 5832 var current = loop ? 1 : 0; 5833 var animating = false; 5834 var animTimer = null; 5835 5836 function realIndexOf(paddedIndex) { 5837 if (!loop) return paddedIndex; 5838 if (paddedIndex === 0) return n - 1; // leading clone = last real 5839 if (paddedIndex === n + 1) return 0; // trailing clone = first real 5840 return paddedIndex - 1; 5841 } 5842 5843 function place(roll, index, animate) { 5844 var item = roll.items[index]; 5845 // A hidden roll measures as 0 and would compute a garbage offset. Skip it; 5846 // settle() re-places every roll on resize, which includes crossing the 5847 // breakpoint, so it is corrected before it is ever seen. 5848 if (!item || !roll.vp.clientWidth) return; 5849 // Measure from the first item, not from the offsetParent's border box: the 5850 // mobile text roll carries a left padding and the media card a 1px border, 5851 // and a raw offsetLeft would translate those away. 5852 var base = roll.items[0].offsetLeft; 5853 var x = item.offsetLeft - base; 5854 var offset = roll.mode === 'center' 5855 ? roll.vp.clientWidth / 2 - (x + item.offsetWidth / 2) 5856 : -x; 5857 roll.track.style.transition = animate ? '' : 'none'; 5858 roll.track.style.transform = 'translateX(' + offset + 'px)'; 5859 if (!animate) { 5860 void roll.track.offsetWidth; // force reflow so the next animated move starts here 5861 roll.track.style.transition = ''; 5862 } 5863 } 5864 5865 function placeAll(index, animate) { 5866 rolls.forEach(function (roll) { place(roll, index, animate); }); 5867 } 5868 5869 function playActiveVideos(index) {
5870 rolls.forEach(function (roll) { 5871 roll.items.forEach(function (item, i) { 5872 Array.prototype.forEach.call(item.querySelectorAll('video[data-autoplay]'), function (v) { 5873 if (i === index) { 5874 var p = v.play(); 5875 if (p && p.catch) p.catch(function () {}); 5876 } else if (!v.paused) { 5877 // Off-centre: pause but leave the current frame on screen. 5878 v.pause(); 5879 } 5880 }); 5881 }); 5882 }); 5883 } 5884 5885 // ââ Pour-pattern options ââ 5886 // Scoped to the media box that was clicked, so the desktop card and the 5887 // mobile card keep their own selection; only one is on screen at a time. 5888 section.addEventListener('click', function (e) { 5889 var chip = e.target.closest ? e.target.closest('[data-fc-chip]') : null; 5890 if (!chip || !section.contains(chip)) return; 5891 var bar = chip.closest('[data-fc-chips]'); 5892 var box = bar && bar.parentNode; 5893 if (!box) return; 5894 5895 var want = chip.getAttribute('data-fc-chip'); 5896 Array.prototype.slice.call(bar.querySelectorAll('[data-fc-chip]')).forEach(function (c) { 5897 var on = c === chip; 5898 c.classList.toggle('is-selected', on); 5899 c.setAttribute('aria-pressed', on ? 'true' : 'false'); 5900 }); 5901 5902 Array.prototype.slice.call(box.children).forEach(function (layer) { 5903 if (!layer.classList || !layer.classList.contains('fc__layer')) return; 5904 var on = layer.getAttribute('data-fc-layer') === want; 5905 layer.classList.toggle('is-active', on); 5906 var v = layer.querySelector('video'); 5907 if (!v) return; 5908 if (on) { 5909 var p = v.play(); 5910 if (p && p.catch) p.catch(function () {}); 5911 } else if (!v.paused) { 5912 v.pause(); 5913 } 5914 }); 5915 }); 5916 5917 function syncUI() { 5918 var real = realIndexOf(current); 5919 rolls.forEach(function (roll) { 5920 roll.items.forEach(function (item, i) { 5921 var on = i === current; 5922 item.classList.toggle('is-active', on); 5923 if (item.classList.contains('fc__mtext-item')) { 5924 item.setAttribute('aria-hidden', on ? 'false' : 'true'); 5925 } 5926 }); 5927 }); 5928 dots.forEach(function (dot, i) { 5929 var on = i === real; 5930 dot.classList.toggle('is-active', on); 5931 dot.setAttribute('aria-selected', on ? 'true' : 'false'); 5932 }); 5933 if (!loop) { 5934 if (prevBtn) prevBtn.disabled = current === 0; 5935 if (nextBtn) nextBtn.disabled = current === n - 1; 5936 } 5937 } 5938 5939 function goTo(index, animate) { 5940 current = index; 5941 placeAll(current, animate); 5942 syncUI(); 5943 playActiveVideos(current); 5944 } 5945 5946 // After an animated move onto a clone, jump (untransitioned) to its real twin. 5947 function onTransitionEnd() { 5948 clearTimeout(animTimer); 5949 animating = false; 5950 if (!loop) return; 5951 if (current === n + 1) { current = 1; placeAll(current, false); syncUI(); playActiveVideos(current); } 5952 else if (current === 0) { current = n; placeAll(current, false); syncUI(); playActiveVideos(current); } 5953 } 5954 5955 // Bound to every track: only one is visible at a time, and a second call is a 5956 // no-op because current has already been normalised. 5957 rolls.forEach(function (roll) { 5958 roll.track.addEventListener('transitionend', function (e) { 5959 if (e.propertyName === 'transform' && e.target === roll.track) onTransitionEnd(); 5960 }); 5961 }); 5962 5963 function step(dir) { 5964 if (animating) return; 5965 var target = current + dir; 5966 if (!loop) { 5967 target = Math.max(0, Math.min(target, n - 1)); 5968 if (target === current) return; 5969 } 5970 animating = true; 5971 goTo(target, true); 5972 // Safety net: if transitionend is missed (interrupted transition, a 5973 // background tab, or prefers-reduced-motion where it never fires at all), 5974 // release the lock so input keeps working. 5975 clearTimeout(animTimer); 5976 animTimer = setTimeout(onTransitionEnd, 650); 5977 } 5978 5979 if (prevBtn) prevBtn.addEventListener('click', function () { step(-1); }); 5980 if (nextBtn) nextBtn.addEventListener('click', function () { step(1); }); 5981 if (tapPrev) tapPrev.addEventListener('click', function () { step(-1); }); 5982 if (tapNext) tapNext.addEventListener('click', function () { step(1); }); 5983
5984 dots.forEach(function (dot) { 5985 dot.addEventListener('click', function () { 5986 if (animating) return; 5987 var real = parseInt(dot.getAttribute('data-index'), 10) || 0; 5988 goTo(loop ? real + 1 : real, true); 5989 }); 5990 }); 5991 5992 // ââ Swipe (opt-in) ââ 5993 // Committed on touchend by total horizontal delta, so a normal finger flick 5994 // reliably advances one slide. Passive listeners keep vertical scrolling smooth. 5995 if (section.getAttribute('data-swipe') === 'true' && n > 1) { 5996 rolls.forEach(function (roll) { 5997 var sx = 0, sy = 0, tracking = false; 5998 roll.vp.addEventListener('touchstart', function (e) { 5999 if (!e.touches || e.touches.length !== 1) { tracking = false; return; } 6000 sx = e.touches[0].clientX; sy = e.touches[0].clientY; tracking = true; 6001 }, { passive: true }); 6002 roll.vp.addEventListener('touchend', function (e) { 6003 if (!tracking) return; 6004 tracking = false; 6005 var t = e.changedTouches && e.changedTouches[0]; 6006 if (!t) return; 6007 var dx = sx - t.clientX; 6008 var dy = sy - t.clientY; 6009 if (Math.abs(dx) > 40 && Math.abs(dx) > Math.abs(dy)) step(dx > 0 ? 1 : -1); 6010 }, { passive: true }); 6011 roll.vp.addEventListener('touchcancel', function () { tracking = false; }, { passive: true }); 6012 }); 6013 } 6014 6015 // ââ Autoplay (opt-in) ââ 6016 var timer = null; 6017 var startAutoplay = function () {}; 6018 var stopAutoplay = function () {}; 6019 if (section.getAttribute('data-autoplay') === 'true' && n > 1) { 6020 var ms = (parseFloat(section.getAttribute('data-autoplay-interval')) || 6) * 1000; 6021 startAutoplay = function () { if (!timer) timer = setInterval(function () { step(1); }, ms); }; 6022 stopAutoplay = function () { if (timer) { clearInterval(timer); timer = null; } }; 6023 startAutoplay(); 6024 section.addEventListener('mouseenter', stopAutoplay); 6025 section.addEventListener('mouseleave', startAutoplay); 6026 } 6027 6028 // ââ Prime a first frame on every video ââ 6029 // Some browsers won't render a preloaded but never-played <video>, so an 6030 // off-centre slide that hasn't been active shows black. Nudging currentTime a 6031 // hair past 0 forces that frame to paint while the video stays paused. 6032 function primeFrame(v) { 6033 var paint = function () { 6034 try { if (v.paused && v.currentTime < 0.04) v.currentTime = 0.04; } catch (e) {} 6035 }; 6036 if (v.readyState >= 2) paint(); 6037 else v.addEventListener('loadeddata', paint, { once: true }); 6038 } 6039 Array.prototype.forEach.call(section.querySelectorAll('video[data-autoplay]'), primeFrame); 6040 6041 // ââ Init, and keep every roll placed across resize / breakpoint changes ââ 6042 function settle() { placeAll(current, false); } 6043 if (document.readyState === 'complete') settle(); 6044 else window.addEventListener('load', settle); 6045 requestAnimationFrame(settle); 6046 6047 var rt; 6048 window.addEventListener('resize', function () { 6049 clearTimeout(rt); 6050 rt = setTimeout(settle, 120); 6051 }); 6052 6053 // Theme editor lifecycle: tear the interval down so a re-render doesn't leave 6054 // a second one running against a detached section. 6055 document.addEventListener('shopify:section:unload', function (e) { 6056 if (e.detail && e.detail.sectionId && String(e.detail.sectionId) !== 'template--28135044186421__feature_carousel_L88KQX') return; 6057 stopAutoplay(); 6058 clearTimeout(animTimer); 6059 clearTimeout(rt); 6060 }); 6061 document.addEventListener('shopify:section:select', stopAutoplay); 6062 document.addEventListener('shopify:section:deselect', startAutoplay); 6063 6064 syncUI(); 6065 playActiveVideos(current); 6066 })(); 6067</script>
6067 6068 6069 6070</section><section id="shopify-section-template--28135044186421__feature_card_slider_9AH7NT" class="shopify-section section-feature-card-slider"> 6071 6072<section class="pfs pfs--mobile-dots" id="pfs-template--28135044186421__feature_card_slider_9AH7NT"><div class="pfs__head"><h2 class="pfs__heading">Taste Intelligence</h2><p class="pfs__subheading">Share your feedback and Juni will refine the recipe to your taste</p></div><div class="pfs__track-wrap"> 6073 <ul class="pfs__track" id="pfs-track-template--28135044186421__feature_card_slider_9AH7NT" role="list"><li class="pfs__card" > 6074 <div class="pfs__card-text"><h3 class="pfs__card-title">Rate your coffee</h3><p class="pfs__card-desc">After completing a brew, you will be prompted to give a rating</p></div><div class="pfs__card-media"><picture><source 6075 media="(max-width: 768px)" 6076 srcset="//cosori.com/cdn/shop/files/Image_52.png?v=1788283254&width=400 400w, //cosori.com/cdn/shop/files/Image_52.png?v=1788283254&width=800 800w" 6077 sizes="88vw" 6078 ><img 6079 src="//cosori.com/cdn/shop/files/Image_49.png?v=1788280352&width=800" 6080 srcset=" 6081 //cosori.com/cdn/shop/files/Image_49.png?v=1788280352&width=400 400w, 6082 //cosori.com/cdn/shop/files/Image_49.png?v=1788280352&width=800 800w 6083 " 6084 sizes="(max-width: 640px) 85vw, 420px" 6085 alt="A dark mobile app or website modal dialog asking 'How was your coffee?' with options 'Loved it!', 'Could be better', and a 'Submit' button." 6086 width="1260" 6087 height="770" 6088 loading="lazy" 6089 class="pfs__card-img" 6090 > 6091 </picture> 6092 </div></li><li class="pfs__card" > 6093 <div class="pfs__card-text"><h3 class="pfs__card-title">Provide feedback</h3><p class="pfs__card-desc">If you select "Could be better," you can provide feedback on sweetness, acidity, bitterness, and body</p></div><div class="pfs__card-media"><video 6094 class="pfs__card-video pfs__card-video--desktop" 6095 muted loop playsinline 6096 preload="none" 6097 poster="//cosori.com/cdn/shop/files/Image_50.png?v=1788280366&width=800" 6098 ><source src="//cosori.com/cdn/shop/videos/c/vp/262df7077b61474988b02e9f0cace12c/262df7077b61474988b02e9f0cace12c.HD-720p-1.6Mbps-93201934.mp4?v=0" type="video/mp4"><source src="//cosori.com/cdn/shop/videos/c/vp/262df7077b61474988b02e9f0cace12c/262df7077b61474988b02e9f0cace12c.m3u8?v=0" type="application/x-mpegURL"></video><video 6099 class="pfs__card-video pfs__card-video--mobile" 6100 muted loop playsinline 6101 preload="none" 6102 poster="//cosori.com/cdn/shop/files/Image_50.png?v=1788280366&width=800" 6103 ><source src="//cosori.com/cdn/shop/videos/c/vp/27fbf9832c0f48fe8936b565dad206d2/27fbf9832c0f48fe8936b565dad206d2.HD-1080p-2.5Mbps-93595226.mp4?v=0" type="video/mp4"><source src="//cosori.com/cdn/shop/videos/c/vp/27fbf9832c0f48fe8936b565dad206d2/27fbf9832c0f48fe8936b565dad206d2.m3u8?v=0" type="application/x-mpegURL"></video></div></li><li class="pfs__card" > 6104 <div class="pfs__card-text"><h3 class="pfs__card-title">Get AI recommendations</h3><p class="pfs__card-desc">Based on your feedback, you will receive recommendations to improve the recipe</p></div><div class="pfs__card-media"><video 6105 class="pfs__card-video pfs__card-video--desktop" 6106 muted loop playsinline 6107 preload="none" 6108 6109 ><source src="//cosori.com/cdn/shop/videos/c/vp/4fbaef83897046c0ae8b11e8fb621cc3/4fbaef83897046c0ae8b11e8fb621cc3.HD-720p-2.1Mbps-93595313.mp4?v=0" type="video/mp4"><source src="//cosori.com/cdn/shop/videos/c/vp/4fbaef83897046c0ae8b11e8fb621cc3/4fbaef83897046c0ae8b11e8fb621cc3.m3u8?v=0" type="application/x-mpegURL"></video><video 6110 class="pfs__card-video pfs__card-video--mobile" 6111 muted loop playsinline 6112 preload="none" 6113 6114 ><source src="//cosori.com/cdn/shop/videos/c/vp/7dc22cb45b7e4b4d95132bc93fdee15f/7dc22cb45b7e4b4d95132bc93fdee15f.HD-1080p-2.5Mbps-93595259.mp4?v=0" type="video/mp4"><source src="//cosori.com/cdn/shop/videos/c/vp/7dc22cb45b7e4b4d95132bc93fdee15f/7dc22cb45b7e4b4d95132bc93fdee15f.m3u8?v=0" type="application/x-mpegURL"></video></div></li><li class="pfs__card" > 6115 <div class="pfs__card-text"><h3 class="pfs__card-title">Brew again</h3><p class="pfs__card-desc">The recipe is updated based on your selection for future brews that better match your preferences</p></div><div class="pfs__card-media"><picture><source 6116 media="(max-width: 768px)" 6117 srcset="//cosori.com/cdn/shop/files/Image_53.png?v=1788283269&width=400 400w, //cosori.com/cdn/shop/files/Image_53.png?v=1788283269&width=800 800w" 6118 sizes="88vw" 6119 ><img 6120 src="//cosori.com/cdn/shop/files/Image_51.png?v=1788280436&width=800" 6121 srcset=" 6122 //cosori.com/cdn/shop/files/Image_51.png?v=1788280436&width=400 400w, 6123 //cosori.com/cdn/shop/files/Image_51.png?v=1788280436&width=800 800w 6124 " 6125 sizes="(max-width: 640px) 85vw, 420px" 6126 alt="Brew again" 6127 width="1260" 6128 height="768" 6129 loading="lazy" 6130 class="pfs__card-img" 6131 > 6132 </picture> 6133 </div></li></ul> 6134 </div><div class="pfs__nav pfs__nav--align-left" role="group" aria-label="Slide navigation"> 6135 <button class="pfs__nav-btn pfs__nav-btn--prev" id="pfs-prev-template--28135044186421__feature_card_slider_9AH7NT" aria-label="Previous slide" aria-controls="pfs-track-template--28135044186421__feature_card_slider_9AH7NT"> 6136 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 44 44" fill="none" width="44" height="44" aria-hidden="true"><path d="M25.007 15.4937L18.993 22L25.007 28.5063" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg> 6137 </button> 6138 <button class="pfs__nav-btn pfs__nav-btn--next" id="pfs-next-template--28135044186421__feature_card_slider_9AH7NT" aria-label="Next slide" aria-controls="pfs-track-template--28135044186421__feature_card_slider_9AH7NT"> 6139 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 44 44" fill="none" width="44" height="44" aria-hidden="true"><path d="M18.993 15.4937L25.007 22L18.993 28.5063" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg> 6140 </button> 6141 </div><div class="pfs__dots" id="pfs-dots-template--28135044186421__feature_card_slider_9AH7NT" role="tablist" aria-label="Slide navigation"></div></section> 6142 6143<style>#pfs-template--28135044186421__feature_card_slider_9AH7NT { 6144 --pfs-bg: #ffffff; 6145 --pfs-text: #555555; 6146 --pfs-heading-color: #464142; 6147 --pfs-card-bg: #101010; 6148 --pfs-card-border: #e8e8e8; 6149 --pfs-card-title-color: #e8e0d5; 6150 --pfs-card-desc-color: #e8e0d5; 6151 --pfs-text-space: 148px; 6152 --pfs-text-space-mobile: 132px; 6153 --pfs-dot-color: #e8e0d5; 6154 --pfs-dot-active-color: #464142;--pfs-inset: min(100px, 8vw); 6155 --pfs-card-gap: 24px;--pfs-card-inner-gap: 0px; 6156 --pfs-track-pad-top: 0px; 6157 --pfs-card-shadow: 4px 4px 10px 0 rgba(0, 0, 0, 0.15); 6158 --pfs-heading-gap: 8px; 6159 --pfs-head-space: 30px; 6160 --pfs-subhead-max: 840px; 6161 --pfs-card-pad-x: 20px; 6162 --pfs-card-pad-top: 24px; 6163 --pfs-card-pad-top-mobile: 32px; 6164 --pfs-card-copy-gap: 16px; 6165 --pfs-card-title-size: 20px; 6166 --pfs-card-title-size-m: 20px; 6167 --pfs-card-desc-size: 16px; 6168 --pfs-card-desc-size-m: 16px; 6169 --pfs-card-title-tracking: -0.4px; 6170 --pfs-nav-btn: #1c1c1c; 6171 --pfs-nav-icon: #ffffff; 6172 --pfs-nav-gap: 35px; 6173 --pfs-nav-btn-gap: 24px; 6174 background-color: var(--pfs-bg, #f9f9f9); 6175 padding: 52px 0 52px; 6176 overflow-x: hidden; 6177 }#pfs-template--28135044186421__feature_card_slider_9AH7NT, 6178 #pfs-template--28135044186421__feature_card_slider_9AH7NT *,
6179 #pfs-template--28135044186421__feature_card_slider_9AH7NT *::before, 6180 #pfs-template--28135044186421__feature_card_slider_9AH7NT *::after { 6181 box-sizing: border-box; 6182 }#pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__head { 6183 display: flex; 6184 flex-direction: column; 6185 gap: var(--pfs-heading-gap, 4px); 6186 margin: 0 0 var(--pfs-head-space, 32px); 6187 } 6188 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__heading { 6189 font-family: 'Proxima Sera', Georgia, 'Times New Roman', serif; 6190font-size: 36px; 6191 font-weight: 500; 6192 text-align: center; 6193 color: var(--pfs-heading-color, #111111); 6194 margin: 0; 6195 padding: 0 24px; 6196 letter-spacing: -0.09px; 6197 line-height: 1.12; 6198 -webkit-font-smoothing: antialiased; 6199 -moz-osx-font-smoothing: grayscale; 6200 } 6201 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__subheading { 6202 font-size: 20px; 6203 font-weight: 400; 6204 text-align: center; 6205 line-height: 1.4; 6206 color: #3b3b3b; 6207 margin: 0 auto; 6208 padding: 0 24px; 6209 width: 100%; 6210 max-width: var(--pfs-subhead-max, 720px); 6211 -webkit-font-smoothing: antialiased; 6212 -moz-osx-font-smoothing: grayscale; 6213 } 6214 6215 /* ââ Track ââ */ 6216 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__track-wrap { 6217 width: 100%; 6218 } 6219 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__track { 6220 list-style: none; 6221 margin: 0; 6222 /* Left inset so the active card has breathing room from the viewport 6223 edge on desktop (Flickity's `cellAlign: left` aligns the cell to the 6224 track's content-box left edge â padding shifts that inward). */ 6225 padding: var(--pfs-track-pad-top, 8px) 0 28px var(--pfs-inset); 6226 } 6227 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__track .pfs__card:first-child { 6228 margin-left: 0; 6229 } 6230 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__track .flickity-viewport { 6231 overflow: visible; 6232 }@media screen and (min-width: 769px) { 6233 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__track .flickity-viewport { 6234 clip-path: inset(-100vh -100vw -100vh 0); 6235 } 6236 } 6237 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__track .pfs__card { 6238 margin: 0 calc(var(--pfs-card-gap, 16px) / 2); 6239 } 6240 /* Hide default Flickity buttons (we use custom arrows / custom dots) */ 6241 #pfs-template--28135044186421__feature_card_slider_9AH7NT .flickity-button { display: none; } 6242 6243 /* ââ Card ââ */ 6244 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card { 6245 width: min(630px, 80vw); 6246 max-width: min(630px, 80vw); 6247 height: min(533px, 85vw * 1.26); 6248 max-height: 533px; 6249 background: var(--pfs-card-bg, #FFF); 6250 border-radius: 16px; 6251 overflow: hidden; 6252 display: flex; 6253 flex-direction: column; 6254 align-items: center; 6255 gap: var(--pfs-card-inner-gap, 8px); 6256 box-shadow: var(--pfs-card-shadow, 7px 8px 10px 0 rgba(0, 0, 0, 0.15)); 6257 } 6258 /* Intermediate breakpoint â scale cards down on tablets to keep multiple cards visible */ 6259 @media screen and (min-width: 769px) and (max-width: 1024px) { 6260 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card { 6261 width: min(630px, 60vw); 6262 max-width: min(630px, 60vw); 6263 } 6264 } 6265 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-text { 6266 padding: var(--pfs-card-pad-top, 28px) var(--pfs-card-pad-x, 28px) 0; 6267 flex-shrink: 0; 6268 width: 100%; 6269 box-sizing: border-box; 6270 /* Reserve vertical space for the copy so the media below can be pulled up. 6271 min-height means the box grows if the real text is taller â text is never 6272 clipped. Desktop/tablet only; disabled on mobile below. */ 6273 min-height: var(--pfs-text-space, 0px); 6274 } 6275 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-title { 6276 color: var(--pfs-card-title-color, #000); 6277 font-family: 'Gilroy', sans-serif; 6278 font-size: var(--pfs-card-title-size, 24px); 6279 font-weight: 600; 6280 line-height: 120%; 6281 letter-spacing: var(--pfs-card-title-tracking, 0.06px); 6282 margin: 0 0 var(--pfs-card-copy-gap, 10px); 6283 -webkit-font-smoothing: antialiased; 6284 -moz-osx-font-smoothing: grayscale; 6285 } 6286 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-desc { 6287 color: var(--pfs-card-desc-color, #000); 6288 font-family: 'Gilroy', sans-serif; 6289 font-size: var(--pfs-card-desc-size, 20px); 6290 font-weight: 500; 6291 line-height: 140%; 6292 letter-spacing: 0.08px; 6293 margin: 0; 6294 -webkit-font-smoothing: antialiased; 6295 -moz-osx-font-smoothing: grayscale; 6296 } 6297 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-media { 6298 /* Sits directly under the reserved text area (see .pfs__card-text min-height). 6299 On desktop it grows to fill the rest of the fixed-height card (below). */ 6300 width: 100%; 6301 overflow: hidden; 6302 } 6303 /* The image is wrapped in <picture> (for the optional mobile image), so the 6304 wrapper must pass the media box's size through to the <img> for the desktop 6305 fill to work. */ 6306 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-media picture { 6307 display: block; 6308 width: 100%; 6309 height: 100%; 6310 } 6311 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-img { 6312 width: 100%; 6313 height: auto; 6314 display: block; 6315 } 6316 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-video { 6317 width: 100%; 6318 height: auto; 6319 display: block; 6320 object-fit: cover; 6321 }#pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-video--mobile { 6322 display: none; 6323 } 6324 @media screen and (max-width: 768px) { 6325 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-video--desktop { 6326 display: none; 6327 } 6328 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-video--mobile { 6329 display: block; 6330 } 6331 }#pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-media--placeholder { 6332 background: rgba(127, 127, 127, 0.14); 6333 display: flex; 6334 align-items: center; 6335 justify-content: center; 6336 min-height: 120px; 6337 } 6338 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-placeholder-svg { 6339 width: 100%; 6340 height: 100%; 6341 display: block; 6342 fill: currentColor; 6343 opacity: 0.3; 6344 } 6345 /* Desktop/tablet: the card is a fixed height, so stretch the media to fill the 6346 space between the (uniform) text area and the card's bottom edge â the photo
6347 runs all the way down with no gap. Mobile keeps natural height (card is auto). */ 6348 @media screen and (min-width: 769px) { 6349 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-media { 6350 flex: 1 1 auto; 6351 min-height: 0; 6352 } 6353 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-img, 6354 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-video { 6355 height: 100%; 6356 object-fit: cover; 6357 } 6358 } 6359 6360 /* ââ Footer ââ */ 6361 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__footer { 6362 display: flex; 6363 align-items: center; 6364 justify-content: center; 6365 gap: 20px; 6366 padding: 32px 48px 0; 6367 } 6368 6369 /* ââ App promo ââ */ 6370 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__app { 6371 display: flex; 6372 align-items: center; 6373 gap: 14px; 6374 flex-wrap: wrap; 6375 justify-content: center; 6376 } 6377 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__app-icon { 6378 width: 56px; 6379 height: 56px; 6380 border-radius: 14px; 6381 object-fit: cover; 6382 display: block; 6383 flex-shrink: 0; 6384 } 6385 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__app-icon--placeholder { 6386 background: #e0e8f0; 6387 display: flex; 6388 align-items: center; 6389 justify-content: center; 6390 color: #7aaed0; 6391 } 6392 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__app-meta { 6393 display: flex; 6394 flex-direction: column; 6395 gap: 0; 6396 } 6397 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__app-name { 6398 font-size: 1.25rem; 6399 font-weight: 500; 6400 margin: 0; 6401 line-height: 1.2; 6402 color: var(--pfs-heading-color, #111111); 6403 } 6404 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__app-tagline { 6405 font-size: 0.875rem; 6406 margin: 0; 6407 color: var(--pfs-text, #777777); 6408 } 6409 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__app-badges { 6410 display: flex; 6411 gap: 10px; 6412 align-items: center; 6413 flex-wrap: wrap; 6414 margin-left: 20px; 6415 } 6416 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__badge-link { 6417 text-decoration: none; 6418 display: block; 6419 } 6420 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__badge-img { 6421 height: 42px; 6422 width: auto; 6423 display: block; 6424 border-radius: 8px; 6425 } 6426 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__badge { 6427 display: inline-flex; 6428 align-items: center; 6429 gap: 8px; 6430 background: #111111; 6431 color: #ffffff; 6432 padding: 8px 16px; 6433 border-radius: 8px; 6434 font-size: 0.875rem; 6435 font-weight: 600; 6436 white-space: nowrap; 6437 line-height: 1; 6438 } 6439 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__badge span { 6440 display: flex; 6441 flex-direction: column; 6442 gap: 1px; 6443 } 6444 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__badge small { 6445 font-size: 0.625rem; 6446 font-weight: 400; 6447 letter-spacing: 0.04em; 6448 text-transform: uppercase; 6449 opacity: 0.8; 6450 } 6451 6452 /* ââ Nav buttons ââ */ 6453 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__nav { 6454 display: flex; 6455 gap: var(--pfs-nav-btn-gap, 16px); 6456 justify-content: flex-end; 6457padding: var(--pfs-nav-gap, 16px) var(--pfs-inset) 0; 6458 } 6459 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__nav--align-left { 6460 justify-content: flex-start; 6461 } 6462 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__nav--align-center { 6463 justify-content: center; 6464 } 6465 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__nav--align-right { 6466 justify-content: flex-end; 6467 } 6468 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__nav-btn { 6469 width: 44px; 6470 height: 44px; 6471 border-radius: 50%; 6472 border: none; 6473 padding: 0; 6474 background: var(--pfs-nav-btn, #111111); 6475 cursor: pointer; 6476 display: flex; 6477 align-items: center; 6478 justify-content: center; 6479 color: var(--pfs-nav-icon, #ffffff); 6480 transition: opacity 0.2s; 6481 } 6482 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__nav-btn svg { 6483 display: block; 6484 flex: 0 0 auto; 6485 } 6486 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__nav-btn:hover { 6487 opacity: 0.8; 6488 } 6489 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__nav-btn:disabled { 6490 opacity: 0.35;
6491 cursor: not-allowed; 6492 } 6493 6494 /* ââ Mobile dots (opt-in via "Mobile navigation" = Dots) ââ */ 6495 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__dots { display: none; } 6496 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__dot { 6497 width: 9px; 6498 height: 9px; 6499 border-radius: 50%; 6500 padding: 0; 6501 border: 0; 6502 cursor: pointer; 6503 background: var(--pfs-dot-color, #DACEBF); 6504 transition: background 0.2s; 6505 -webkit-appearance: none; 6506 appearance: none; 6507 } 6508 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__dot--active { 6509 background: var(--pfs-dot-active-color, #001B70); 6510 } 6511 6512 /* ââ Responsive ââ */ 6513 @media screen and (max-width: 768px) { 6514 #pfs-template--28135044186421__feature_card_slider_9AH7NT { 6515 padding: 32px 0 32px; 6516 } 6517 6518 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__head { 6519 margin-bottom: 24px; 6520 } 6521 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__track .pfs__card { 6522 margin: 0 calc(16px / 2); 6523 }#pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__track { 6524 padding-left: 0; 6525 padding-right: var(--pfs-inset); 6526 } 6527 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__heading { 6528 /* Fixed on mobile â no viewport scaling. The previous 6529 clamp(14px, 4.8vw, 1.75rem) + white-space: nowrap pair resized the 6530 heading continuously as the screen changed: the vw term bought the 6531 single line by shrinking the type to fit. A fixed 24px can't hold one 6532 line (headings in use measure 302â404px against ~272â327px of available 6533 width), so the nowrap is dropped and long headings wrap to two lines 6534 rather than being clipped by this section's overflow-x: hidden. */ 6535 font-size: 24px; 6536 /* Even the two-line split instead of leaving an orphan word. Older 6537 browsers ignore this and wrap normally, so it needs no fallback. */ 6538 text-wrap: balance; 6539 } 6540 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__subheading { 6541 font-size: 20px; 6542 } 6543 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card { 6544 width: 90vw; 6545 max-width: 90vw;height: 592px; 6546 max-height: 592px; 6547 } 6548 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-text { 6549 padding: var(--pfs-card-pad-top-mobile, 20px) 20px 0; 6550 /* Mobile cards size to content (height: auto) and are JS-equalized, so the 6551 desktop text-space reservation is disabled here to avoid clipping â unless 6552 a mobile text area is set explicitly, which reserves it the same way the 6553 desktop rule does (the box still grows if the real copy is taller). */ 6554 min-height: var(--pfs-text-space-mobile, 0px); 6555 } 6556 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-title { 6557 font-size: var(--pfs-card-title-size-m, 20px); 6558 } 6559 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-desc { 6560 font-size: var(--pfs-card-desc-size-m, 16px); 6561 } 6562 /* The card gets a fixed inline height from equalizeCardHeights() so slides 6563 don't jump. Without a grower, that extra height lands as white space under 6564 the image on every card that isn't the tallest â so let the media absorb it, 6565 mirroring the desktop rule above. object-position: top keeps the top of the 6566 app screenshot pinned; the crop is taken off the bottom. */ 6567 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-media { 6568 flex: 1 1 auto; 6569 min-height: 0; 6570 } 6571 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-img, 6572 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card-video { 6573 height: 100%; 6574 object-fit: cover; 6575 object-position: top; 6576 } 6577 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__nav { 6578 justify-content: center; 6579 padding: 16px 20px 0; 6580 } 6581 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__footer { 6582 padding: 20px 20px 0; 6583 align-items: center; 6584 } 6585 /* Dots mode: hide arrows, show the centered dots row (Figma: 14px gap). */ 6586 #pfs-template--28135044186421__feature_card_slider_9AH7NT.pfs--mobile-dots .pfs__nav { display: none; } 6587 #pfs-template--28135044186421__feature_card_slider_9AH7NT.pfs--mobile-dots .pfs__dots { 6588 display: flex; 6589 gap: 14px; 6590 justify-content: center; 6591 align-items: center; 6592 /* The track already carries 28px of bottom padding, which is the whole gap 6593 the design asks for between the cards and the dots. */ 6594 padding: 0 20px; 6595 } 6596 } 6597 @media screen and (max-width: 480px) { 6598 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__card { 6599 width: 90vw; 6600 max-width: 90vw; 6601 } 6602 #pfs-template--28135044186421__feature_card_slider_9AH7NT .pfs__app-badges { 6603 gap: 8px; 6604 } 6605 }</style> 6606 6607<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/flickity.min.css">
6608<script src="https://unpkg.com/[email protected]/dist/flickity.pkgd.min.js"></script>
vendor: 1 bytes, line 6608
6608
6609<script> 6610(function() { 6611 var section = document.getElementById('pfs-template--28135044186421__feature_card_slider_9AH7NT'); 6612 if (!section) return; 6613 6614 var track = section.querySelector('.pfs__track'); 6615 var btnPrev = section.querySelector('.pfs__nav-btn--prev'); 6616 var btnNext = section.querySelector('.pfs__nav-btn--next'); 6617 if (!track) return; 6618 6619 // Active cell snaps to the LEFT edge on desktop (lets multiple cards 6620 // peek into view from the right) but CENTERS on mobile, so the 6621 // active card isn't pinned against the screen edge with empty space 6622 // hanging off the other side. 6623 var mobileMq = window.matchMedia('(max-width: 768px)'); 6624 var nav = section.querySelector('.pfs__nav'); 6625 var cards = track.querySelectorAll('.pfs__card'); 6626 6627 // Mobile pagination dots (opt-in). Built once from the cards and driven by 6628 // Flickity's `select` event. CSS shows them only on mobile in dots mode, so 6629 // building them on desktop is harmless (they stay hidden). 6630 var mobileDots = true; 6631 // When the mobile card height is set the CSS pins every card to the same box, so 6632 // the measure-and-level pass below has nothing to do (and must not fight it). 6633 var fixedMobileHeight = 592; 6634 var dotsWrap = section.querySelector('.pfs__dots'); 6635 var dotEls = []; 6636 function buildDots() { 6637 if (!mobileDots || !dotsWrap) return; 6638 dotsWrap.innerHTML = ''; 6639 dotEls = []; 6640 cards.forEach(function(card, i) { 6641 var b = document.createElement('button'); 6642 b.type = 'button'; 6643 b.className = 'pfs__dot'; 6644 b.setAttribute('role', 'tab'); 6645 b.setAttribute('aria-label', 'Go to slide ' + (i + 1)); 6646 b.addEventListener('click', function() { if (flkty) flkty.select(i, false, true); }); 6647 dotsWrap.appendChild(b); 6648 dotEls.push(b); 6649 }); 6650 } 6651 function syncDots(inst) { 6652 if (!mobileDots || !dotEls.length || !inst) return; 6653 var sel = inst.selectedIndex; 6654 dotEls.forEach(function(d, i) { 6655 var active = i === sel; 6656 d.classList.toggle('pfs__dot--active', active); 6657 d.setAttribute('aria-selected', active ? 'true' : 'false'); 6658 }); 6659 } 6660 6661 function cardsWidth() { 6662 var total = 0; 6663 cards.forEach(function(card) { 6664 var cs = getComputedStyle(card); 6665 total += card.getBoundingClientRect().width 6666 + (parseFloat(cs.marginLeft) || 0) 6667 + (parseFloat(cs.marginRight) || 0); 6668 }); 6669 return total; 6670 } 6671 6672 // Desktop cards share a fixed height, but mobile lets them size to content 6673 // (height: auto), so cards with longer copy end up taller and the carousel 6674 // jumps between slides. Level them to the tallest. Heights are cleared 6675 // first so the measurement is always of natural content, never of a value 6676 // a previous pass set. 6677 function equalizeCardHeights() { 6678 cards.forEach(function(card) { card.style.height = ''; }); 6679 if (!mobileMq.matches || fixedMobileHeight > 0) return; 6680 var tallest = 0; 6681 cards.forEach(function(card) { 6682 tallest = Math.max(tallest, card.getBoundingClientRect().height); 6683 }); 6684 if (!tallest) return; 6685 cards.forEach(function(card) { card.style.height = Math.ceil(tallest) + 'px'; }); 6686 } 6687 6688 // Desktop: level every card's text area to the tallest so the media below 6689 // starts at the same vertical position on every card. The CSS base rule 6690 // already floors each text box at the slider value (--pfs-text-space), so the 6691 // natural measurement is max(slider, own copy); the cross-card max is 6692 // max(slider, tallest copy) â uniform, and never short enough to clip any 6693 // card. Inline height is always cleared first (so mobile falls back to the 6694 // CSS `min-height: 0`, and each pass re-measures natural content). 6695 function equalizeTextHeights() { 6696 var texts = track.querySelectorAll('.pfs__card-text'); 6697 texts.forEach(function(t) { t.style.minHeight = ''; }); 6698 if (mobileMq.matches) return; 6699 var tallest = 0; 6700 texts.forEach(function(t) { tallest = Math.max(tallest, t.getBoundingClientRect().height); }); 6701 if (!tallest) return; 6702 texts.forEach(function(t) { t.style.minHeight = Math.ceil(tallest) + 'px'; }); 6703 } 6704 6705 // Do the cards together out-measure the track? `wrapAround` fills any 6706 // leftover space by re-positioning cells ±slideableWidth, so on a very 6707 // wide screen â where the cards no longer span the viewport â the same 6708 // cards get laid down twice. Only loop while there's genuinely more 6709 // content than room; otherwise `contain` pins the cards in place. 6710 // 6711 // Always measure against the track's CSS inset, never against a centering 6712 // pad a previous pass left behind â that would compound on every resize. 6713 function cardsOverflow() { 6714 track.style.paddingLeft = ''; 6715 track.style.paddingRight = ''; 6716 var ts = getComputedStyle(track); 6717 var room = track.clientWidth 6718 - (parseFloat(ts.paddingLeft) || 0) 6719 - (parseFloat(ts.paddingRight) || 0); 6720 return cardsWidth() > room + 1; // 1px slack for sub-pixel rounding 6721 } 6722 6723 var looping = null; 6724 function applyLayout() { 6725 looping = cardsOverflow(); 6726 // Nothing to scroll to when every card already fits â the arrows would 6727 // be inert, so take them out of the layout. 6728 if (nav) nav.style.display = looping ? '' : 'none'; 6729 if (!looping) { 6730 // Pad the track evenly so the row sits centered rather than hugging 6731 // the left inset with all the dead space on the right. Flickity aligns 6732 // the first cell to the content-box edge, so an even pad on both sides 6733 // shrinks the viewport to exactly the cards' width and centers it. 6734 var pad = Math.max(0, (track.clientWidth - cardsWidth()) / 2); 6735 track.style.paddingLeft = pad + 'px'; 6736 track.style.paddingRight = pad + 'px'; 6737 } 6738 } 6739 6740 function buildFlickity() { 6741 applyLayout(); 6742 equalizeCardHeights(); 6743 equalizeTextHeights(); 6744 var f = new Flickity(track, { 6745 cellAlign: mobileMq.matches ? 'center' : 'left', 6746 contain: !looping, 6747 wrapAround: looping,
6748 prevNextButtons: false, 6749 pageDots: false, 6750 draggable: looping, 6751 freeScroll: false, 6752 percentPosition: false, 6753 imagesLoaded: true, 6754 resize: true 6755 }); 6756 if (mobileDots) f.on('select', function() { syncDots(f); }); 6757 return f; 6758 } 6759 buildDots(); 6760 var flkty = buildFlickity(); 6761 syncDots(flkty); 6762 6763 function rebuild() { 6764 var selected = flkty ? flkty.selectedIndex : 0; 6765 if (flkty) flkty.destroy(); 6766 flkty = buildFlickity(); 6767 if (typeof selected === 'number') flkty.select(selected, false, true); 6768 syncDots(flkty); 6769 } 6770 6771 // Re-init when crossing the mobile breakpoint so cellAlign updates. 6772 // syncVideos() is hoisted from further down; it hands playback to whichever half 6773 // of a desktop/mobile video pair the new width displays. 6774 function onBreakpoint() { 6775 rebuild(); 6776 syncVideos(); 6777 } 6778 if (mobileMq.addEventListener) mobileMq.addEventListener('change', onBreakpoint); 6779 else if (mobileMq.addListener) mobileMq.addListener(onBreakpoint); 6780 6781 if (btnPrev) { 6782 btnPrev.disabled = false; 6783 btnPrev.addEventListener('click', function() { flkty.previous(true); }); 6784 } 6785 if (btnNext) { 6786 btnNext.disabled = false; 6787 btnNext.addEventListener('click', function() { flkty.next(true); }); 6788 } 6789 6790 // Reflow after late image loads and after fonts settle (use a closure 6791 // that looks up `flkty` each time so it stays valid after re-init). 6792 // Both can change a card's natural height, so re-level before resizing. 6793 function reflow() { 6794 equalizeCardHeights(); 6795 equalizeTextHeights(); 6796 if (flkty) flkty.resize(); 6797 } 6798 var imgs = track.querySelectorAll('img'); 6799 imgs.forEach(function(img) { 6800 if (img.complete) return; 6801 img.addEventListener('load', reflow, { once: true }); 6802 }); 6803 if (document.fonts && document.fonts.ready) { 6804 document.fonts.ready.then(reflow); 6805 } 6806 6807 // Card videos: nudge muted autoplay (browsers can decline the initial 6808 // attempt) and reflow once dimensions are known, since Flickity's 6809 // imagesLoaded only accounts for <img> elements. 6810 var vids = track.querySelectorAll('.pfs__card-video'); 6811 6812 // A card with both a desktop and a mobile video keeps both in the DOM with only 6813 // one displayed, so every play goes through this check first: play() is what 6814 // starts the fetch (the pair is preload="none"), and playing the hidden element 6815 // would pull down a file nobody ever sees. 6816 function videoHidden(v) { 6817 return window.getComputedStyle(v).display === 'none'; 6818 } 6819 6820 function syncVideos() { 6821 vids.forEach(function(v) { 6822 if (videoHidden(v)) { 6823 if (!v.paused) v.pause(); 6824 return; 6825 } 6826 var p = v.play(); 6827 if (p && typeof p.catch === 'function') p.catch(function(){}); 6828 }); 6829 } 6830 6831 vids.forEach(function(v) { 6832 v.addEventListener('canplay', syncVideos, { once: true }); 6833 v.addEventListener('loadedmetadata', reflow, { once: true }); 6834 }); 6835 syncVideos(); 6836 6837 // A resize can carry the track across the point where the cards stop 6838 // filling it, which flips looping on or off â that's an init-time option 6839 // in Flickity, so it needs a rebuild rather than a reflow. 6840 var resizeTimer; 6841 function onResize() { 6842 clearTimeout(resizeTimer); 6843 resizeTimer = setTimeout(function() { 6844 var wasLooping = looping; 6845 applyLayout(); // re-centers the row, or restores the CSS inset 6846 // A narrower card wraps its copy differently, so the tallest can change. 6847 if (looping !== wasLooping) rebuild(); 6848 else reflow(); 6849 }, 150); 6850 } 6851 6852 if ('ResizeObserver' in window) { 6853 new ResizeObserver(onResize).observe(section); 6854 } 6855 window.addEventListener('resize', onResize); 6856})(); 6857</script>
6857 6858 6859 6860</section><div id="shopify-section-template--28135044186421__testimonials_3apUbU" class="shopify-section"> 6861 6862<section id="testimonials-template--28135044186421__testimonials_3apUbU" class="testimonials"> 6863 <style> 6864 #testimonials-template--28135044186421__testimonials_3apUbU{ 6865 --bg: #ffffff; 6866 --heading: #464142; 6867 --text: #464142; 6868 --star: #464142; 6869 6870 --max: 1112px; 6871 --quote-max: 560px; 6872 --col-gap: 20px; 6873 --card-gap: 0px; 6874 --stack-gap: 24px; 6875 --star-size: 16px; 6876 --pad-x: 20px; 6877 --pad-y: 52px; 6878 6879 background: var(--bg); 6880 width: 100%; 6881 position: relative; 6882 z-index: 1; 6883 } 6884 6885 #testimonials-template--28135044186421__testimonials_3apUbU *{ box-sizing: border-box; } 6886 6887 #testimonials-template--28135044186421__testimonials_3apUbU .main-container{ 6888 max-width: calc(var(--max) + (var(--pad-x) * 2)); 6889 width: 100%; 6890 margin: 0 auto; 6891 padding: var(--pad-y) var(--pad-x); 6892 display: flex; 6893 flex-direction: column; 6894 align-items: center; 6895 gap: var(--stack-gap); 6896 } 6897 6898 #testimonials-template--28135044186421__testimonials_3apUbU .tst-heading{ 6899 margin: 0; 6900 width: 100%; 6901 font-family: Proxima Sera, Georgia, serif; 6902 font-size: 36px; 6903 font-weight: 500; 6904 line-height: 1.29; 6905 letter-spacing: -0.09px; 6906 text-align: center; 6907 color: var(--heading); 6908 white-space: pre-line; 6909 word-break: break-word; 6910 } 6911 6912 /* Card row â flex rather than grid so an off-design block count degrades 6913 gracefully: `justify-content:center` keeps 2 or 4 cards at their design 6914 width and centred, where repeat(3,1fr) would leave a dead column or a 6915 left-stranded orphan. Column count arrives as --col-basis-d / -t, set 6916 inline from Liquid so the calc() never divides by a variable. */ 6917 #testimonials-template--28135044186421__testimonials_3apUbU .tst-list{ 6918 width: 100%; 6919 display: flex; 6920 flex-flow: row wrap; 6921 align-items: flex-start; 6922 justify-content: center; 6923 gap: var(--col-gap); 6924 } 6925 6926 #testimonials-template--28135044186421__testimonials_3apUbU .tst-card{ 6927 flex: 0 1 var(--col-basis-d, calc((100% - 2 * var(--col-gap)) / 3)); 6928 min-width: 0; 6929 display: flex; 6930 flex-direction: column; 6931 align-items: center; 6932 gap: 16px; 6933 padding: 32px; 6934 border-radius: 16px; 6935 } 6936 6937 /* Stars â geometry taken straight from the Figma export (80 x 15.737 for 6938 five stars, i.e. a 15.8961px pitch). One inline SVG per star so the 6939 rating is configurable per card. */ 6940 #testimonials-template--28135044186421__testimonials_3apUbU .tst-stars{ 6941 display: flex; 6942 align-items: center; 6943 justify-content: center; 6944 line-height: 0; 6945 } 6946 6947 #testimonials-template--28135044186421__testimonials_3apUbU .tst-star{ 6948 display: block; 6949 width: var(--star-size); 6950 height: auto; 6951 flex: 0 0 auto; 6952 } 6953 6954 #testimonials-template--28135044186421__testimonials_3apUbU .tst-star--on{ 6955 fill: var(--star); 6956 stroke: none; 6957 } 6958 6959 #testimonials-template--28135044186421__testimonials_3apUbU .tst-star--off{ 6960 fill: none; 6961 stroke: var(--star); 6962 stroke-width: 1; 6963 opacity: .45; 6964 } 6965 6966 /* Quote */ 6967 #testimonials-template--28135044186421__testimonials_3apUbU .tst-quote-wrap{ 6968 position: relative; 6969 width: 100%; 6970 max-width: var(--quote-max); 6971 } 6972 6973 #testimonials-template--28135044186421__testimonials_3apUbU .tst-quote{ 6974 margin: 0; 6975 font-family: Proxima Sera, Georgia, serif; 6976 font-size: 16px; 6977 font-weight: 500; 6978 font-style: normal; 6979 line-height: 1.4; 6980 text-align: center; 6981 color: var(--text); 6982 white-space: pre-line; 6983 word-break: break-word; 6984 } 6985 6986 /* Large decorative mark. Figma nudges this per card (-27/-5/-23 desktop) 6987 so it tucks in beside the first word of a hand-broken first line. Copy 6988 reflows here, so instead it hangs clear of the quote box at a single 6989 offset per breakpoint â -27px desktop, -24px mobile. Those are floors, 6990 not preferences: the quote text no longer carries its own opening quote, 6991 so a full-width first line starts at the box edge and anything shallower 6992 collides with it. Both are per-block settings for nudging. */ 6993 #testimonials-template--28135044186421__testimonials_3apUbU .tst-mark{ 6994 position: absolute; 6995 top: 11px; 6996 left: var(--mark-x-d, -27px); 6997 font-family: Proxima Sera, Georgia, serif; 6998 font-size: 64px; 6999 font-weight: 500; 7000 line-height: .4; 7001 color: var(--text); 7002 pointer-events: none; 7003 user-select: none; 7004 } 7005 7006 /* Attribution. Sized to its content rather than to the quote box: in Figma 7007 the longest of the three ("Archana M. | â¦") is 293px inside a 292px box, 7008 i.e. the designer let it hang out by a hair via nowrap. max-content plus 7009 a cap of the box + 48px reproduces that â the overflow is absorbed by the 7010 card's own 32px padding and never reaches the card edge â while genuinely 7011 long merchant copy still wraps instead of spilling. */ 7012 #testimonials-template--28135044186421__testimonials_3apUbU .tst-attr{ 7013 margin: 0; 7014 width: max-content; 7015 max-width: calc(100% + 48px); 7016 font-family: Gilroy, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; 7017 font-size: 12px; 7018 font-weight: 500; 7019 line-height: 1.12; 7020 text-align: center; 7021 color: var(--text); 7022 word-break: break-word; 7023 } 7024 7025 #testimonials-template--28135044186421__testimonials_3apUbU .tst-name{ 7026 text-transform: uppercase; 7027 letter-spacing: 1.28px; 7028 } 7029 7030 #testimonials-template--28135044186421__testimonials_3apUbU .tst-product{ 7031 font-family: Proxima Sera, Georgia, serif; 7032 font-style: italic; 7033 font-weight: 500; 7034 letter-spacing: normal; 7035 } 7036 7037 #testimonials-template--28135044186421__testimonials_3apUbU .tst-handle{ 7038 display: block; 7039 margin-top: 2px; 7040 } 7041 7042 /* Tablet â halve the columns. Three across at 769px would leave only 7043 ~166px of text per card; two across bottoms out at ~290px, which is 7044 the desktop design's own 292px measure. */ 7045 @media (max-width: 1100px){ 7046 #testimonials-template--28135044186421__testimonials_3apUbU .tst-heading{ 7047 font-size: 30px; 7048 } 7049 #testimonials-template--28135044186421__testimonials_3apUbU .tst-card{ 7050 flex-basis: var(--col-basis-t, calc((100% - var(--col-gap)) / 2)); 7051 } 7052 } 7053 7054 /* Mobile â 1:1 with the 390px Figma frame. Everything here exists to stop 7055 a desktop value leaking down; do not trim without re-measuring. */ 7056 @media (max-width: 768px){ 7057 #testimonials-template--28135044186421__testimonials_3apUbU{ 7058 --pad-x: 15px; 7059 } 7060 #testimonials-template--28135044186421__testimonials_3apUbU .tst-list{ 7061 gap: var(--card-gap); 7062 } 7063 #testimonials-template--28135044186421__testimonials_3apUbU .tst-heading{ 7064 font-size: 24px; 7065 letter-spacing: normal; 7066 white-space: normal; 7067 } 7068 #testimonials-template--28135044186421__testimonials_3apUbU .tst-card{ 7069 flex-basis: 100%; 7070 gap: 16px; 7071 padding: 24px 20px; 7072 border-radius: 8px; 7073 } 7074 #testimonials-template--28135044186421__testimonials_3apUbU .tst-quote-wrap{ 7075 max-width: 320px; 7076 } 7077 #testimonials-template--28135044186421__testimonials_3apUbU .tst-quote{ 7078 font-size: 16px; 7079 white-space: normal; 7080 } 7081 #testimonials-template--28135044186421__testimonials_3apUbU .tst-mark{ 7082 top: 16px; 7083 left: var(--mark-x-m, -24px); 7084 font-size: 52px; 7085 } 7086 } 7087 7088 /* Nicer ragging â avoids a single-word last line. Deliberately the LAST 7089 rule in this block: `white-space` is a shorthand for white-space-collapse 7090 + text-wrap, so the `white-space: pre-line` above and the 7091 `white-space: normal` in the mobile query both reset text-wrap to `wrap`. 7092 Declared after them, this wins at every breakpoint. Ignored by browsers 7093 that don't support it, which only costs the nicer ragging. */ 7094 #testimonials-template--28135044186421__testimonials_3apUbU .tst-heading, 7095 #testimonials-template--28135044186421__testimonials_3apUbU .tst-quote, 7096 #testimonials-template--28135044186421__testimonials_3apUbU .tst-attr{ 7097 text-wrap: pretty; 7098 } 7099 </style> 7100 7101 <div class="main-container"> 7102 7103 7104 <h2 class="tst-heading">The Buzz About Juni</h2> 7105 7106 7107 7108<div 7109 class="tst-list" 7110 style="--col-basis-d: calc((100% - 2 * var(--col-gap)) / 3); --col-basis-t: calc((100% - 1 * var(--col-gap)) / 2);" 7111 > 7112 7113<div class="tst-card" >
7114 <span 7115 class="tst-stars" 7116 role="img" 7117 aria-label="Rated 5 out of 5 stars" 7118 > 7119 7120 <svg 7121 class="tst-star tst-star--on" 7122 viewBox="0 0 16 15.7374" 7123 xmlns="http://www.w3.org/2000/svg" 7124 aria-hidden="true" 7125 focusable="false" 7126 > 7127 <path d="M8.20734 1.2959L10.343 5.62246L15.1188 6.32052L11.6631 9.68639L12.4786 14.4415L8.20734 12.1952L3.93607 14.4415L4.75162 9.68639L1.2959 6.32052L6.07171 5.62246L8.20734 1.2959Z"/> 7128 </svg> 7129 7130 <svg 7131 class="tst-star tst-star--on" 7132 viewB
7132ox="0 0 16 15.7374" 7133 xmlns="http://www.w3.org/2000/svg" 7134 aria-hidden="true" 7135 focusable="false" 7136 > 7137 <path d="M8.20734 1.2959L10.343 5.62246L15.1188 6.32052L11.6631 9.68639L12.4786 14.4415L8.20734 12.1952L3.93607 14.4415L4.75162 9.68639L1.2959 6.32052L6.07171 5.62246L8.20734 1.2959Z"/> 7138 </svg> 7139 7140 <svg 7141 class="tst-star tst-star--on" 7142 viewBox="0 0 16 15.7374" 7143 xmlns="http://www.w3.org/2000/svg" 7144 aria-hidden="true" 7145 focusable="false" 7146 > 7147 <path d="M8.20734 1.2959L10.343 5.62246L15.1188 6.32052L11.6631 9.68639L12.4786 14.4415L8.20734 12.1952L3.93607 14.4415L4.75162 9.68639L1.2959 6.32052L6.07171 5.62246L8.20734 1.2959Z"/> 7148 </svg> 7149 7150 <svg 7151 class="tst-star tst-star--on"
7152 viewBox="0 0 16 15.7374" 7153 xmlns="http://www.w3.org/2000/svg" 7154 aria-hidden="true" 7155 focusable="false" 7156 > 7157 <path d="M8.20734 1.2959L10.343 5.62246L15.1188 6.32052L11.6631 9.68639L12.4786 14.4415L8.20734 12.1952L3.93607 14.4415L4.75162 9.68639L1.2959 6.32052L6.07171 5.62246L8.20734 1.2959Z"/> 7158 </svg> 7159 7160 <svg 7161 class="tst-star tst-star--on" 7162 viewBox="0 0 16 15.7374" 7163 xmlns="http://www.w3.org/2000/svg" 7164 aria-hidden="true" 7165 focusable="false" 7166 > 7167 <path d="M8.20734 1.2959L10.343 5.62246L15.1188 6.32052L11.6631 9.68639L12.4786 14.4415L8.20734 12.1952L3.93607 14.4415L4.75162 9.68639L1.2959 6.32052L6.07171 5.62246L8.20734 1.2959Z"/> 7168 </svg> 7169 7170 </span> 7171 7172 7173 <div class="tst-quote-wrap"> 7174 <p class="tst-quote">Whether you're a professional or a novice like myself, you can get the job done and have a perfectly brewed cup of coffee without any effort whatsoever and without having to think about it at all."</p> 7175 7176 <span class="tst-mark" aria-hidden="true" style="--mark-x-d: -27px; --mark-x-m: -24px;">“</span> 7177 7178 </div> 7179 7180 7181 7182 <p class="tst-attr"><span class="tst-name">Rodrick M. </span></p> 7183 7184 </div> 7185 7186<div class="tst-card" > 7187 <span 7188 class="tst-stars" 7189 role="img" 7190 aria-label="Rated 5 out of 5 stars" 7191 > 7192 7193 <svg 7194 class="tst-star tst-star--on"
7195 viewBox="0 0 16 15.7374" 7196 xmlns="http://www.w3.org/2000/svg" 7197 aria-hidden="true" 7198 focusable="false" 7199 > 7200 <path d="M8.20734 1.2959L10.343 5.62246L15.1188 6.32052L11.6631 9.68639L12.4786 14.4415L8.20734 12.1952L3.93607 14.4415L4.75162 9.68639L1.2959 6.32052L6.07171 5.62246L8.20734 1.2959Z"/> 7201 </svg> 7202 7203 <svg 7204 class="tst-star tst-star--on" 7205 viewBox="0 0 16 15.7374" 7206 xmlns="http://www.w3.org/2000/svg" 7207 aria-hidden="true" 7208 focusable="false" 7209 > 7210 <path d="M8.20734 1.2959L10.343 5.62246L15.1188 6.32052L11.6631 9.68639L12.4786 14.4415L8.20734 12.1952L3.93607 14.4415L4.75162 9.68639L1.2959 6.32052L6.07171 5.62246L8.20734 1.2959Z"/> 7211 </svg> 7212 7213 <svg 7214 class="tst-star tst-star--on"
7215 viewBox="0 0 16 15.7374" 7216 xmlns="http://www.w3.org/2000/svg" 7217 aria-hidden="true" 7218 focusable="false" 7219 > 7220 <path d="M8.20734 1.2959L10.343 5.62246L15.1188 6.32052L11.6631 9.68639L12.4786 14.4415L8.20734 12.1952L3.93607 14.4415L4.75162 9.68639L1.2959 6.32052L6.07171 5.62246L8.20734 1.2959Z"/> 7221 </svg> 7222 7223 <svg 7224 class="tst-star tst-star--on" 7225 viewBox="0 0 16 15.7374" 7226 xmlns="http://www.w3.org/2000/svg" 7227 aria-hidden="true" 7228 focusable="false" 7229 > 7230 <path d="M8.20734 1.2959L10.343 5.62246L15.1188 6.32052L11.6631 9.68639L12.4786 14.4415L8.20734 12.1952L3.93607 14.4415L4.75162 9.68639L1.2959 6.32052L6.07171 5.62246L8.20734 1.2959Z"/> 7231 </svg> 7232 7233 <svg 7234 class="tst-star tst-star--on"
7235 viewBox="0 0 16 15.7374" 7236 xmlns="http://www.w3.org/2000/svg" 7237 aria-hidden="true" 7238 focusable="false" 7239 > 7240 <path d="M8.20734 1.2959L10.343 5.62246L15.1188 6.32052L11.6631 9.68639L12.4786 14.4415L8.20734 12.1952L3.93607 14.4415L4.75162 9.68639L1.2959 6.32052L6.07171 5.62246L8.20734 1.2959Z"/> 7241 </svg> 7242 7243 </span> 7244 7245 7246 <div class="tst-quote-wrap"> 7247 <p class="tst-quote">As a roaster, I cup and calibrate constantly. The Juni is the first automatic brewer â¨I trust enough to use for quality control. The consistency is there, and barista mode lets me run our sensory training the same way every single time."</p> 7248 7249 <span class="tst-mark" aria-hidden="true" style="--mark-x-d: -27px; --mark-x-m: -24px;">“</span> 7250 7251 </div> 7252 7253 7254 7255 <p class="tst-attr"><span class="tst-name">Mehmet S.</span></p> 7256 7257 </div> 7258 7259<div class="tst-card" > 7260 <span 7261 class="tst-stars" 7262 role="img" 7263 aria-label="Rated 5 out of 5 stars" 7264 > 7265 7266 <svg 7267 class="tst-star tst-star--on"
7268 viewBox="0 0 16 15.7374" 7269 xmlns="http://www.w3.org/2000/svg" 7270 aria-hidden="true" 7271 focusable="false" 7272 > 7273 <path d="M8.20734 1.2959L10.343 5.62246L15.1188 6.32052L11.6631 9.68639L12.4786 14.4415L8.20734 12.1952L3.93607 14.4415L4.75162 9.68639L1.2959 6.32052L6.07171 5.62246L8.20734 1.2959Z"/> 7274 </svg> 7275 7276 <svg 7277 class="tst-star tst-star--on" 7278 viewBox="0 0 16 15.7374" 7279 xmlns="http://www.w3.org/2000/svg" 7280 aria-hidden="true" 7281 focusable="false" 7282 > 7283 <path d="M8.20734 1.2959L10.343 5.62246L15.1188 6.32052L11.6631 9.68639L12.4786 14.4415L8.20734 12.1952L3.93607 14.4415L4.75162 9.68639L1.2959 6.32052L6.07171 5.62246L8.20734 1.2959Z"/> 7284 </svg> 7285 7286 <svg 7287 class="tst-star tst-star--on"
7288 viewBox="0 0 16 15.7374" 7289 xmlns="http://www.w3.org/2000/svg" 7290 aria-hidden="true" 7291 focusable="false" 7292 > 7293 <path d="M8.20734 1.2959L10.343 5.62246L15.1188 6.32052L11.6631 9.68639L12.4786 14.4415L8.20734 12.1952L3.93607 14.4415L4.75162 9.68639L1.2959 6.32052L6.07171 5.62246L8.20734 1.2959Z"/> 7294 </svg> 7295 7296 <svg 7297 class="tst-star tst-star--on" 7298 viewBox="0 0 16 15.7374" 7299 xmlns="http://www.w3.org/2000/svg" 7300 aria-hidden="true" 7301 focusable="false" 7302 > 7303 <path d="M8.20734 1.2959L10.343 5.62246L15.1188 6.32052L11.6631 9.68639L12.4786 14.4415L8.20734 12.1952L3.93607 14.4415L4.75162 9.68639L1.2959 6.32052L6.07171 5.62246L8.20734 1.2959Z"/> 7304 </svg> 7305 7306 <svg 7307 class="tst-star tst-star--on"
7308 viewBox="0 0 16 15.7374" 7309 xmlns="http://www.w3.org/2000/svg" 7310 aria-hidden="true" 7311 focusable="false" 7312 > 7313 <path d="M8.20734 1.2959L10.343 5.62246L15.1188 6.32052L11.6631 9.68639L12.4786 14.4415L8.20734 12.1952L3.93607 14.4415L4.75162 9.68639L1.2959 6.32052L6.07171 5.62246L8.20734 1.2959Z"/> 7314 </svg> 7315 7316 </span> 7317 7318 7319 <div class="tst-quote-wrap"> 7320 <p class="tst-quote">The fact that I can now just add the â¨beans in, walk away, and come back â¨four minutes later to an expertly brewed pour-over coffee, I find really appealing."</p> 7321 7322 <span class="tst-mark" aria-hidden="true" style="--mark-x-d: -27px; --mark-x-m: -24px;">“</span> 7323 7324 </div> 7325 7326 7327 7328 <p class="tst-attr"><span class="tst-name">Martin K.</span></p> 7329 7330 </div> 7331 7332 </div> 7333 7334 </div> 7335</section> 7336 7337 7338</div><div id="shopify-section-template--28135044186421__awards_6rCfJk" class="shopify-section"> 7339 7340<section id="awards-template--28135044186421__awards_6rCfJk" class="awards"> 7341 <style> 7342 #awards-template--28135044186421__awards_6rCfJk{ 7343 --bg: #ffffff; 7344 --heading: #464142; 7345 --text: #464142; 7346 7347 --max: 1112px; 7348 --col-gap: 32px; 7349 --row-gap: 40px; 7350 --stack-gap: 24px; 7351 --cap-gap: 24px; 7352 --item-w: 240px; 7353 --media-w: 176px; 7354 --media-h: 120px; 7355 --pad-x: 20px; 7356 --pad-y: 52px; 7357 7358 background: var(--bg); 7359 width: 100%; 7360 position: relative; 7361 z-index: 1; 7362 7363 /* Grayscale AA, to match how Figma rasterises the comp â see point 1 7364 in the header comment. Scoped to this section rather than set 7365 globally so it cannot shift type anywhere else in the theme. */ 7366 -webkit-font-smoothing: antialiased; 7367 -moz-osx-font-smoothing: grayscale; 7368 } 7369 7370 #awards-template--28135044186421__awards_6rCfJk *{ box-sizing: border-box; } 7371 7372 #awards-template--28135044186421__awards_6rCfJk .main-container{ 7373 max-width: calc(var(--max) + (var(--pad-x) * 2)); 7374 width: 100%; 7375 margin: 0 auto; 7376 padding: var(--pad-y) var(--pad-x); 7377 display: flex; 7378 flex-direction: column; 7379 align-items: center; 7380 gap: var(--stack-gap); 7381 } 7382 7383 /* Matched to .tst-heading in testimonials.liquid so the two headings are 7384 the same object when the sections are stacked. */ 7385 #awards-template--28135044186421__awards_6rCfJk .awd-heading{ 7386 margin: 0; 7387 width: 100%; 7388 font-family: Proxima Sera, Georgia, serif; 7389 font-size: 36px; 7390 font-weight: 500; 7391 line-height: 1.29; 7392 letter-spacing: -0.09px; 7393 text-align: center; 7394 color: var(--heading); 7395 white-space: pre-line; 7396 word-break: break-word; 7397 } 7398 7399 /* Flex + wrap rather than a grid: award counts are merchant-driven, and 7400 a 3rd or 5th badge should centre on its own row instead of leaving a 7401 dead column. Fixed 240px items are what makes that centring read. */ 7402 #awards-template--28135044186421__awards_6rCfJk .awd-list{ 7403 width: 100%; 7404 display: flex; 7405 flex-flow: row wrap; 7406 align-items: flex-start; 7407 justify-content: center; 7408 column-gap: var(--col-gap); 7409 row-gap: var(--row-gap); 7410 } 7411 7412 #awards-template--28135044186421__awards_6rCfJk .awd-item{ 7413 flex: 0 1 var(--item-w); 7414 max-width: 100%; 7415 min-width: 0; 7416 display: flex; 7417 flex-direction: column; 7418 align-items: center; 7419 justify-content: flex-start; 7420 gap: var(--cap-gap); 7421 text-align: center; 7422 } 7423 7424 /* Links are optional; when present the item must not pick up the theme's 7425 default anchor colour or underline. */ 7426 #awards-template--28135044186421__awards_6rCfJk a.awd-item{ 7427 text-decoration: none; 7428 color: inherit; 7429 } 7430 7431 #awards-template--28135044186421__awards_6rCfJk a.awd-item:hover .awd-media, 7432 #awards-template--28135044186421__awards_6rCfJk a.awd-item:focus-visible .awd-media{ 7433 opacity: .78; 7434 } 7435 7436 /* Fixed-height centring box â see the header comment. Both Figma badges 7437 are pinned to 120px tall with width left to follow, and contain-style 7438 limits reproduce that for any uploaded ratio without cropping. */ 7439 #awards-template--28135044186421__awards_6rCfJk .awd-media{ 7440 width: 100%; 7441 max-width: var(--media-w); 7442 height: var(--media-h); 7443 display: flex; 7444 align-items: center; 7445 justify-content: center; 7446 transition: opacity .18s ease; 7447 } 7448 7449 #awards-template--28135044186421__awards_6rCfJk .awd-media img, 7450 #awards-template--28135044186421__awards_6rCfJk .awd-media svg{ 7451 display: block; 7452 width: auto; 7453 height: auto; 7454 max-width: 100%; 7455 max-height: 100%; 7456 object-fit: contain; 7457 } 7458 7459 /* Shopify's placeholder SVG has no intrinsic size and collapses to 0 7460 height inside a flex box, so it is given the box explicitly. */ 7461 #awards-template--28135044186421__awards_6rCfJk .awd-media .placeholder-svg{ 7462 width: 100%; 7463 height: 100%; 7464 fill: var(--text); 7465 opacity: .25; 7466 } 7467 7468 #awards-template--28135044186421__awards_6rCfJk .awd-caption{ 7469 margin: 0; 7470 width: 100%; 7471 font-family: Proxima Sera, Georgia, serif; 7472 font-size: 14px; 7473 font-style: normal; 7474 /* Figma: Semibold (600), which resolves to the Bold face here â see 7475 point 2 in the header comment. Settable, because there is no true 7476 Semibold to fall back to. */ 7477 font-weight: 600; 7478 /* 140% of 14px = 19.6px, per the Figma text style. */ 7479 line-height: 1.4; 7480 text-align: center; 7481 color: var(--text); 7482 white-space: pre-line; 7483 word-break: break-word; 7484 } 7485 7486 /* Mobile â two badges still fit side by side at 390px once the item and 7487 badge box come down; see the header comment for the arithmetic. */ 7488 @media (max-width: 768px){ 7489 #awards-template--28135044186421__awards_6rCfJk{ 7490 --pad-x: 15px; 7491 --col-gap: 24px; 7492 --row-gap: 32px; 7493 --media-w: 150px; 7494 --media-h: 96px; 7495 --cap-gap: 16px; 7496 } 7497 /* Two per row at every phone width. A fixed px basis would silently 7498 wrap to one-per-row below ~360px â 2 x 150 + a 24 gap needs 324 of 7499 the 290 available on a 320px screen, and flex breaks lines on the 7500 flex-basis before it shrinks anything. A percentage basis can't. 7501 The badge stays capped by --media-w, so a wider phone spends the 7502 extra room on caption measure instead of inflating the badge. */ 7503 #awards-template--28135044186421__awards_6rCfJk .awd-item{ 7504 flex-basis: calc((100% - var(--col-gap)) / 2); 7505 } 7506 #awards-template--28135044186421__awards_6rCfJk .awd-heading{ 7507 font-size: 24px; 7508 letter-spacing: normal; 7509 white-space: normal; 7510 } 7511 #awards-template--28135044186421__awards_6rCfJk .awd-caption{ 7512 font-size: 13px; 7513 white-space: normal; 7514 }} 7515 7516 /* Nicer ragging. Last rule in the block on purpose: `white-space` is a 7517 shorthand for white-space-collapse + text-wrap, so the `pre-line` above 7518 and the `normal` in the media query both reset text-wrap to `wrap`. 7519 Declared after them, this wins at every breakpoint. Same reasoning as 7520 testimonials.liquid. */ 7521 #awards-template--28135044186421__awards_6rCfJk .awd-heading, 7522 #awards-template--28135044186421__awards_6rCfJk .awd-caption{ 7523 text-wrap: pretty; 7524 } 7525 </style> 7526 7527 <div class="main-container"> 7528 7529 7530 <h2 class="awd-heading">Awards</h2> 7531 7532 7533 7534 <div class="awd-list"> 7535 7536<div 7537 class="awd-item" 7538 7539 7540 > 7541 <div class="awd-media"> 7542 7543 <img 7544 src="//cosori.com/cdn/shop/files/SCA_CT_Without_Logotype_White_RGB_1_1.png?v=1788202502&width=528" 7545 srcset=" 7546 //cosori.com/cdn/shop/files/SCA_CT_Without_Logotype_White_RGB_1_1.png?v=1788202502&width=176 176w, 7547 //cosori.com/cdn/shop/files/SCA_CT_Without_Logotype_White_RGB_1_1.png?v=1788202502&width=352 352w, 7548 //cosori.com/cdn/shop/files/SCA_CT_Without_Logotype_White_RGB_1_1.png?v=1788202502&width=528 528w 7549 " 7550 sizes="176px" 7551 alt="Specialty Coffee AssociationCertified Home Brewer" 7552 loading="lazy" 7553 width="202" 7554 height="240" 7555 > 7556 7557 </div> 7558 7559 7560 <p class="awd-caption">Specialty Coffee Association 7561Certified Home Brewer</p> 7562 7563 </div> 7564 7565<div 7566 class="awd-item" 7567 7568 7569 > 7570 <div class="awd-media"> 7571 7572 <img 7573 src="//cosori.com/cdn/shop/files/PD2026_RD_t.png?v=1789776225&width=528" 7574 srcset=" 7575 //cosori.com/cdn/shop/files/PD2026_RD_t.png?v=1789776225&width=176 176w, 7576 //cosori.com/cdn/shop/files/PD2026_RD_t.png?v=1789776225&width=352 352w, 7577 //cosori.com/cdn/shop/files/PD2026_RD_t.png?v=1789776225&width=528 528w 7578 " 7579 sizes="176px" 7580 alt="Red DotProduct Design Award" 7581 loading="lazy" 7582 width="1639" 7583 height="945" 7584 > 7585 7586 </div> 7587 7588 7589 <p class="awd-caption">Red Dot 7590Product Design Award</p> 7591 7592 </div> 7593 7594 </div> 7595 7596 </div> 7597</section> 7598 7599 7600</div><div id="shopify-section-template--28135044186421__image_with_text_3BDTd8" class="shopify-section section v-image-text"><link href="//cosori.com/cdn/shop/t/166/assets/component-image-with-text.css?v=46223204942767246591789674181" rel="stylesheet" type="text/css" media="all" /> 7601<style data-shopify>.section-template--28135044186421__image_with_text_3BDTd8-padding { 7602 padding-top: 27px; 7603 padding-bottom: 27px; 7604 } 7605 7606 @media (min-width: 768px) { 7607 .section-template--28135044186421__image_with_text_3BDTd8-padding { 7608 padding-top: 36px; 7609 padding-bottom: 36px; 7610 } 7611 }</style><div class="section-template--28135044186421__image_with_text_3BDTd8-padding gradient color-scheme-1 image-text-section"> 7612 <div class="page-width"> 7613 <div class="image-with-text image-with-text--no-overlap isolate collapse-corners"> 7614 <div class="image-with-text__grid grid grid--gapless grid--1-col grid--2-col-tablet"> 7615 <div class="image-with-text__media-item image-with-text__media-item--medium image-with-text__media-item--top grid__item"> 7616 <div 7617 class="image-with-text__media image-with-text__media--adapt global-media-settings background-trans
7617parent media" 7618 7619 style="padding-bottom: 72.72727272727273%;" 7620 7621 ><img src="//cosori.com/cdn/shop/files/Image_44.png?v=1788275197&width=1500" alt="" srcset="//cosori.com/cdn/shop/files/Image_44.png?v=1788275197&width=165 165w, //cosori.com/cdn/shop/files/Image_44.png?v=1788275197&width=360 360w, //cosori.com/cdn/shop/files/Image_44.png?v=1788275197&width=535 535w, //cosori.com/cdn/shop/files/Image_44.png?v=1788275197&width=750 750w, //cosori.com/cdn/shop/files/Image_44.png?v=1788275197&width=1070 1070w, //cosori.com/cdn/shop/files/Image_44.png?v=1788275197&width=1500 1500w" width="1500" height="1091" loading="lazy" sizes="(min-width: 1650px) 775px, 7622 (min-width: 768px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)" fetchpriority="auto"> 7623</div> 7624 </div> 7625 <div class="image-with-text__text-item grid__item"> 7626 <div 7627 id="ImageWithText--template--28135044186421__image_with_text_3BDTd8" 7628 class="image-with-text__content image-with-text__content--top image-with-text__content--desktop-left image-with-text__content--mobile-left image-with-text__content--adapt content-container background-transparent" 7629 ><h2 7630 class="image-with-text__heading inline-richtext h1" 7631 7632 > 7633 Why <em>Cosori</em>? 7634 </h2><div class="image-with-text__text rte body" > 7635 <p>We believe exceptional cooking starts with exceptional materials. That's why we design thoughtfully crafted kitchen tools built with premium materials, lasting quality, and performance you can rely on every day.</p> 7636 </div></div> 7637 </div> 7638 </div> 7639 </div> 7640 </div> 7641</div> 7642 7643 7644</div><div id="shopify-section-template--28135044186421__faq_EwcehF" class="shopify-section">�<section 7645 id="faq-template--28135044186421__faq_EwcehF" 7646 class="faq" 7647 data-v-gtm-faq 7648 data-v-gtm-module="Frequently Asked Questions" 7649> 7650 <style> 7651 #faq-template--28135044186421__faq_EwcehF{ 7652 --bg: #ffffff; 7653 --heading: #464142; 7654 --question: #464142; 7655 --answer: #464142; 7656 --border: #e3e3e3; 7657 --icon: #464142; 7658 7659 --max: 1200px; 7660 --row-h: 74px; 7661 --row-pad-x: 20px; 7662 --heading-gap: 38px; 7663 --pad-x: 24px; 7664 --pad-top: 56px; 7665 --pad-bottom: 74px; 7666 7667 background: var(--bg); 7668 width: 100%; 7669 position: relative; 7670 z-index: 1; 7671 } 7672 7673 #faq-template--28135044186421__faq_EwcehF *{ box-sizing: border-box; } 7674 7675 /* Content column â 1200px in the design, centred with a safe gutter */ 7676 #faq-template--28135044186421__faq_EwcehF .main-container{ 7677 max-width: calc(var(--max) + (var(--pad-x) * 2)); 7678 width: 100%; 7679 margin: 0 auto; 7680 padding: var(--pad-top) var(--pad-x) var(--pad-bottom); 7681 } 7682 7683 #faq-template--28135044186421__faq_EwcehF .faq-heading{ 7684 margin: 0 0 var(--heading-gap); 7685 font-family: Proxima Sera, Georgia, serif; 7686 font-size: 36px; 7687 font-weight: 500; 7688 line-height: 1; 7689 text-align: center; 7690 color: var(--heading); 7691 word-break: break-word; 7692 } 7693 7694 /* The rows carry a top border each; the list closes with the last line, 7695 which reproduces the design's shared 1px rules without doubling them. */ 7696 #faq-template--28135044186421__faq_EwcehF .faq-list{ 7697 border-bottom: 1px solid var(--border); 7698 } 7699 7700 #faq-template--28135044186421__faq_EwcehF .faq-item{ 7701 border-top: 1px solid var(--border); 7702 } 7703 7704 #faq-template--28135044186421__faq_EwcehF .faq-question{ 7705 display: flex; 7706 align-items: center; 7707 justify-content: space-between; 7708 gap: 16px; 7709 width: 100%; 7710 min-height: var(--row-h); 7711 padding: 12px var(--row-pad-x); 7712 cursor: pointer; 7713 list-style: none; 7714 font-family: Gilroy, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; 7715 font-size: 16px; 7716 font-weight: 600; 7717 line-height: 1.2; 7718 letter-spacing: -0.32px; 7719 color: var(--question); 7720 word-break: break-word; 7721 } 7722 7723 #faq-template--28135044186421__faq_EwcehF .faq-question::-webkit-details-marker{ display: none; } 7724 #faq-template--28135044186421__faq_EwcehF .faq-question::marker{ content: ''; } 7725 7726 #faq-template--28135044186421__faq_EwcehF .faq-question:focus-visible{ 7727 outline: 2px solid var(--question); 7728 outline-offset: -2px; 7729 } 7730 7731 /* 24 x 24 icon box from the design, right-aligned inside the 20px pad */ 7732 #faq-template--28135044186421__faq_EwcehF .faq-icon{ 7733 display: block; 7734 flex: 0 0 auto; 7735 width: 24px; 7736 height: 24px; 7737 color: var(--icon); 7738 transition: transform 0.3s ease-in-out; 7739 } 7740 7741 #faq-template--28135044186421__faq_EwcehF .faq-icon svg{ 7742 display: block; 7743 width: 24px; 7744 height: 24px; 7745 } 7746 7747 /* Plus becomes a close mark once the row is open */ 7748 #faq-template--28135044186421__faq_EwcehF .faq-item[open] .faq-icon{ 7749 transform: rotate(45deg); 7750 } 7751 7752 #faq-template--28135044186421__faq_EwcehF .faq-panel{ 7753 overflow: hidden; 7754 } 7755 7756 /* Reveal matches the levoit accordion: the row opens to full height 7757 immediately and only the answer fades and rises. Gated behind .faq--js 7758 so that without JS the answer stays plainly visible. */ 7759 #faq-template--28135044186421__faq_EwcehF.faq--js .faq-answer{ 7760 opacity: 0; 7761 transform: translateY(20px); 7762 transition: opacity 0.4s ease-in-out, transform 0.3s ease-in-out; 7763 } 7764 7765 #faq-template--28135044186421__faq_EwcehF.faq--js .faq-item.is-open .faq-answer{ 7766 opacity: 1;
7767 transform: translateY(0); 7768 } 7769 7770 #faq-template--28135044186421__faq_EwcehF .faq-answer{ 7771 padding: 0 var(--row-pad-x) 24px; 7772 font-family: Gilroy, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; 7773 font-size: 16px; 7774 font-weight: 400; 7775 line-height: 1.5; 7776 color: var(--answer); 7777 } 7778 7779 #faq-template--28135044186421__faq_EwcehF .faq-answer > *:first-child{ margin-top: 0; } 7780 #faq-template--28135044186421__faq_EwcehF .faq-answer > *:last-child{ margin-bottom: 0; } 7781 #faq-template--28135044186421__faq_EwcehF .faq-answer a{ color: inherit; } 7782 7783 /* Tablet */ 7784 @media (max-width: 1100px){ 7785 #faq-template--28135044186421__faq_EwcehF .faq-heading{ 7786 font-size: 30px; 7787 } 7788 } 7789 7790 /* Mobile â rows grow with the wrapped question instead of holding 74px */ 7791 @media (max-width: 768px){ 7792 #faq-template--28135044186421__faq_EwcehF .main-container{ 7793 padding: 32px 18px 40px; 7794 } 7795 #faq-template--28135044186421__faq_EwcehF .faq-heading{ 7796 font-size: 26px; 7797 line-height: 1.2; 7798 margin-bottom: 20px; 7799 } 7800 #faq-template--28135044186421__faq_EwcehF .faq-question{ 7801 min-height: 64px; 7802 padding: 14px 4px; 7803 gap: 12px; 7804 font-size: 15px; 7805 } 7806 #faq-template--28135044186421__faq_EwcehF .faq-icon, 7807 #faq-template--28135044186421__faq_EwcehF .faq-icon svg{ 7808 width: 20px; 7809 height: 20px; 7810 } 7811 #faq-template--28135044186421__faq_EwcehF .faq-answer{ 7812 padding: 0 4px 20px; 7813 font-size: 15px; 7814 } 7815 } 7816 7817 @media (prefers-reduced-motion: reduce){ 7818 #faq-template--28135044186421__faq_EwcehF.faq--js .faq-answer, 7819 #faq-template--28135044186421__faq_EwcehF .faq-icon{ 7820 transition: none; 7821 } 7822 #faq-template--28135044186421__faq_EwcehF.faq--js .faq-answer{ 7823 opacity: 1; 7824 transform: none; 7825 } 7826 } 7827 </style> 7828 7829 <div class="main-container"> 7830 7831 7832 <h2 class="faq-heading">Frequently Asked Questions</h2> 7833 7834 7835 7836 <div class="faq-list" data-faq-list> 7837 7838 <details 7839 class="faq-item" 7840 data-faq-item 7841 id="faq-item-template--28135044186421__faq_EwcehF-question_akBWnL" 7842 7843 7844 > 7845 <summary class="faq-question"> 7846 <span class="faq-question-text">Do I need the VeSync app to use Juni?</span> 7847 <span class="faq-icon" aria-hidden="true"> 7848 <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" focusable="false"> 7849 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.9147 3.31468C12.9147 2.80973 12.5053 2.40039 12.0004 2.40039C11.4954 2.40039 11.0861 2.80973 11.0861 3.31468V11.0861H3.31468C2.80973 11.0861 2.40039 11.4954 2.40039 12.0004C2.40039 12.5053 2.80973 12.9147 3.31468 12.9147H11.0861L11.0861 20.6861C11.0861 21.191 11.4954 21.6004 12.0004 21.6004C12.5053 21.6004 12.9147 21.191 12.9147 20.6861L12.9147 12.9147L20.6861 12.9147C21.191 12.9147 21.6004 12.5053 21.6004 12.0004C21.6004 11.4954 21.191 11.0861 20.6861 11.0861L12.9147 11.0861V3.31468Z" fill="currentColor"/> 7850 </svg> 7851 </span> 7852 </summary> 7853 <div class="faq-panel" data-faq-panel> 7854 <div class="faq-answer"><p>No. You can brew directly from Juni using the built-in controls and display. Connecting to the VeSync app gives you access to additional features, including personalized recipe recommendations, complete control over brew settings, remote start, and smart scheduling.</p></div> 7855 </div> 7856 </details> 7857 7858 <details 7859 class="faq-item" 7860 data-faq-item 7861 id="faq-item-template--28135044186421__faq_EwcehF-question_Rxdd4Q" 7862 7863 7864 > 7865 <summary class="faq-question">
7866 <span class="faq-question-text">How much coffee can I brew with each brew basket?</span> 7867 <span class="faq-icon" aria-hidden="true"> 7868 <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" focusable="false"> 7869 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.9147 3.31468C12.9147 2.80973 12.5053 2.40039 12.0004 2.40039C11.4954 2.40039 11.0861 2.80973 11.0861 3.31468V11.0861H3.31468C2.80973 11.0861 2.40039 11.4954 2.40039 12.0004C2.40039 12.5053 2.80973 12.9147 3.31468 12.9147H11.0861L11.0861 20.6861C11.0861 21.191 11.4954 21.6004 12.0004 21.6004C12.5053 21.6004 12.9147 21.191 12.9147 20.6861L12.9147 12.9147L20.6861 12.9147C21.191 12.9147 21.6004 12.5053 21.6004 12.0004C21.6004 11.4954 21.191 11.0861 20.6861 11.0861L12.9147 11.0861V3.31468Z" fill="currentColor"/> 7870 </svg> 7871 </span> 7872 </summary> 7873 <div class="faq-panel" data-faq-panel> 7874 <div class="faq-answer"><p>Juni includes 2 brew baskets for different serving sizes. The cone brew basket supports up to 600 mL and is ideal for smaller batch brewing of 1â3 cups. The flat bottom brew basket supports up to 1.5 L and is well suited for large batch brewing of 3â6 cups. Juniâs default cup size is 250 mL. You can use the VeSync app to adjust the default cup size to your preference.</p></div> 7875 </div> 7876 </details> 7877 7878 <details 7879 class="faq-item" 7880 data-faq-item 7881 id="faq-item-template--28135044186421__faq_EwcehF-question_tMzG8w" 7882 7883 7884 > 7885 <summary class="faq-question"> 7886 <span class="faq-question-text">How long does Juni take to brew coffee?</span> 7887 <span class="faq-icon" aria-hidden="true"> 7888 <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" focusable="false"> 7889 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.9147 3.31468C12.9147 2.80973 12.5053 2.40039 12.0004 2.40039C11.4954 2.40039 11.0861 2.80973 11.0861 3.31468V11.0861H3.31468C2.80973 11.0861 2.40039 11.4954 2.40039 12.0004C2.40039 12.5053 2.80973 12.9147 3.31468 12.9147H11.0861L11.0861 20.6861C11.0861 21.191 11.4954 21.6004 12.0004 21.6004C12.5053 21.6004 12.9147 21.191 12.9147 20.6861L12.9147 12.9147L20.6861 12.9147C21.191 12.9147 21.6004 12.5053 21.6004 12.0004C21.6004 11.4954 21.191 11.0861 20.6861 11.0861L12.9147 11.0861V3.31468Z" fill="currentColor"/> 7890 </svg> 7891 </span> 7892 </summary> 7893 <div class="faq-panel" data-faq-panel> 7894 <div class="faq-answer"><p>Brewing typically takes approximately 3â10 minutes, depending on the serving size and selected brew settings.</p></div> 7895 </div> 7896 </details> 7897 7898 <details 7899 class="faq-item" 7900 data-faq-item 7901 id="faq-item-template--28135044186421__faq_EwcehF-question_p3ybUh" 7902 7903 7904 > 7905 <summary class="faq-question"> 7906 <span class="faq-question-text">Does Juni have a built-in grinder?</span> 7907 <span class="faq-icon" aria-hidden="true"> 7908 <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" focusable="false"> 7909 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.9147 3.31468C12.9147 2.80973 12.5053 2.40039 12.0004 2.40039C11.4954 2.40039 11.0861 2.80973 11.0861 3.31468V11.0861H3.31468C2.80973 11.0861 2.40039 11.4954 2.40039 12.0004C2.40039 12.5053 2.80973 12.9147 3.31468 12.9147H11.0861L11.0861 20.6861C11.0861 21.191 11.4954 21.6004 12.0004 21.6004C12.5053 21.6004 12.9147 21.191 12.9147 20.6861L12.9147 12.9147L20.6861 12.9147C21.191 12.9147 21.6004 12.5053 21.6004 12.0004C21.6004 11.4954 21.191 11.0861 20.6861 11.0861L12.9147 11.0861V3.31468Z" fill="currentColor"/> 7910 </svg> 7911 </span> 7912 </summary> 7913 <div class="faq-panel" data-faq-panel> 7914 <div class="faq-answer"><p>No, Juni does not include a built-in grinder. For best results, we recommend using a dedicated burr grinder and starting with a medium to medium-coarse grind for pour-over coffee. You can also have your beans ground for pour-over at your local coffee shop.</p></div> 7915 </div> 7916 </details> 7917 7918 <details 7919 class="faq-item" 7920 data-faq-item 7921 id="faq-item-template--28135044186421__faq_EwcehF-question_ndBnA8" 7922 7923 7924 > 7925 <summary class="faq-question">
7926 <span class="faq-question-text">Which brew baskets and filters does Juni use?</span> 7927 <span class="faq-icon" aria-hidden="true"> 7928 <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" focusable="false"> 7929 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.9147 3.31468C12.9147 2.80973 12.5053 2.40039 12.0004 2.40039C11.4954 2.40039 11.0861 2.80973 11.0861 3.31468V11.0861H3.31468C2.80973 11.0861 2.40039 11.4954 2.40039 12.0004C2.40039 12.5053 2.80973 12.9147 3.31468 12.9147H11.0861L11.0861 20.6861C11.0861 21.191 11.4954 21.6004 12.0004 21.6004C12.5053 21.6004 12.9147 21.191 12.9147 20.6861L12.9147 12.9147L20.6861 12.9147C21.191 12.9147 21.6004 12.5053 21.6004 12.0004C21.6004 11.4954 21.191 11.0861 20.6861 11.0861L12.9147 11.0861V3.31468Z" fill="currentColor"/> 7930 </svg> 7931 </span> 7932 </summary> 7933 <div class="faq-panel" data-faq-panel> 7934 <div class="faq-answer"><p>Juni includes both a cone brew basket and a flat bottom brew basket, so you can explore different brewing styles and recipes. Each brew basket comes with 20 compatible paper filters, for a total of 40 filters in the box. Additional replacement filters will be available for purchase directly from the Cosori website.</p></div> 7935 </div> 7936 </details> 7937 7938 <details 7939 class="faq-item" 7940 data-faq-item 7941 id="faq-item-template--28135044186421__faq_EwcehF-question_ycLQAU" 7942 7943 7944 > 7945 <summary class="faq-question"> 7946 <span class="faq-question-text">Can I use my own carafe with Juni?</span> 7947 <span class="faq-icon" aria-hidden="true"> 7948 <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" focusable="false"> 7949 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.9147 3.31468C12.9147 2.80973 12.5053 2.40039 12.0004 2.40039C11.4954 2.40039 11.0861 2.80973 11.0861 3.31468V11.0861H3.31468C2.80973 11.0861 2.40039 11.4954 2.40039 12.0004C2.40039 12.5053 2.80973 12.9147 3.31468 12.9147H11.0861L11.0861 20.6861C11.0861 21.191 11.4954 21.6004 12.0004 21.6004C12.5053 21.6004 12.9147 21.191 12.9147 20.6861L12.9147 12.9147L20.6861 12.9147C21.191 12.9147 21.6004 12.5053 21.6004 12.0004C21.6004 11.4954 21.191 11.0861 20.6861 11.0861L12.9147 11.0861V3.31468Z" fill="currentColor"/> 7950 </svg> 7951 </span> 7952 </summary> 7953 <div class="faq-panel" data-faq-panel> 7954 <div class="faq-answer"><p>Yes, you can use your own carafe as long as it fits within the brewing area. For the best fit, choose a carafe with a height of up to 8 inches (203 millimeters), measured from the base to the top of the lid, and a diameter of up to 4.9 inches (125 millimeters). We recommend using a carafe that is heat-resistant up to 100°C (212°F) and has a capacity of at least 300 mL. Always make sure the carafe is stable and properly positioned before brewing.</p></div> 7955 </div> 7956 </details> 7957 7958 <details 7959 class="faq-item" 7960 data-faq-item 7961 id="faq-item-template--28135044186421__faq_EwcehF-question_NB4EGE" 7962 7963 7964 > 7965 <summary class="faq-question"> 7966 <span class="faq-question-text">What materials are used in Juniâs water/coffee-contact components?</span> 7967 <span class="faq-icon" aria-hidden="true"> 7968 <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" focusable="false"> 7969 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.9147 3.31468C12.9147 2.80973 12.5053 2.40039 12.0004 2.40039C11.4954 2.40039 11.0861 2.80973 11.0861 3.31468V11.0861H3.31468C2.80973 11.0861 2.40039 11.4954 2.40039 12.0004C2.40039 12.5053 2.80973 12.9147 3.31468 12.9147H11.0861L11.0861 20.6861C11.0861 21.191 11.4954 21.6004 12.0004 21.6004C12.5053 21.6004 12.9147 21.191 12.9147 20.6861L12.9147 12.9147L20.6861 12.9147C21.191 12.9147 21.6004 12.5053 21.6004 12.0004C21.6004 11.4954 21.191 11.0861 20.6861 11.0861L12.9147 11.0861V3.31468Z" fill="currentColor"/> 7970 </svg> 7971 </span> 7972 </summary> 7973 <div class="faq-panel" data-faq-panel> 7974 <div class="faq-answer"><p>Juni uses carefully selected food-contact materials designed for durability, heat performance, and everyday use. The cone and flat bottom brew baskets are made from Tritan⢠copolyester (PCTG), and the water tank is made from SAN polymer. Materials that come into contact with water or brewed coffee are tested for their intended use and comply with applicable food-contact safety requirements.</p></div> 7975 </div> 7976 </details> 7977 7978 <details 7979 class="faq-item" 7980 data-faq-item 7981 id="faq-item-template--28135044186421__faq_EwcehF-question_yfzgia" 7982 7983 7984 > 7985 <summary class="faq-question">
7986 <span class="faq-question-text">How will I know when Juni needs descaling?</span> 7987 <span class="faq-icon" aria-hidden="true"> 7988 <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" focusable="false"> 7989 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.9147 3.31468C12.9147 2.80973 12.5053 2.40039 12.0004 2.40039C11.4954 2.40039 11.0861 2.80973 11.0861 3.31468V11.0861H3.31468C2.80973 11.0861 2.40039 11.4954 2.40039 12.0004C2.40039 12.5053 2.80973 12.9147 3.31468 12.9147H11.0861L11.0861 20.6861C11.0861 21.191 11.4954 21.6004 12.0004 21.6004C12.5053 21.6004 12.9147 21.191 12.9147 20.6861L12.9147 12.9147L20.6861 12.9147C21.191 12.9147 21.6004 12.5053 21.6004 12.0004C21.6004 11.4954 21.191 11.0861 20.6861 11.0861L12.9147 11.0861V3.31468Z" fill="currentColor"/> 7990 </svg> 7991 </span> 7992 </summary> 7993 <div class="faq-panel" data-faq-panel> 7994 <div class="faq-answer"><p>Juni will remind you when itâs time to descale. After 90 days of use or more than 60 brew cycles, the display will show âCâ when the machine â¨is turned on, and the Pre-Rinse Filter button will flash. Press and hold the Pre-Rinse Filter button to start the descaling cycle. When descaling â¨is complete, Juni will beep three times and automatically return to standby mode. We recommend rinsing the water tank to remove any remaining descaling solution, then running one full brew cycle with only water (no coffee grounds) before using Juni again.</p></div> 7995 </div> 7996 </details> 7997 7998 <details 7999 class="faq-item" 8000 data-faq-item 8001 id="faq-item-template--28135044186421__faq_EwcehF-question_8EUeJT" 8002 8003 8004 > 8005 <summary class="faq-question"> 8006 <span class="faq-question-text">Can I schedule or remotely start a brew with Juni?</span> 8007 <span class="faq-icon" aria-hidden="true"> 8008 <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" focusable="false"> 8009 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.9147 3.31468C12.9147 2.80973 12.5053 2.40039 12.0004 2.40039C11.4954 2.40039 11.0861 2.80973 11.0861 3.31468V11.0861H3.31468C2.80973 11.0861 2.40039 11.4954 2.40039 12.0004C2.40039 12.5053 2.80973 12.9147 3.31468 12.9147H11.0861L11.0861 20.6861C11.0861 21.191 11.4954 21.6004 12.0004 21.6004C12.5053 21.6004 12.9147 21.191 12.9147 20.6861L12.9147 12.9147L20.6861 12.9147C21.191 12.9147 21.6004 12.5053 21.6004 12.0004C21.6004 11.4954 21.191 11.0861 20.6861 11.0861L12.9147 11.0861V3.31468Z" fill="currentColor"/> 8010 </svg> 8011 </span> 8012 </summary> 8013 <div class="faq-panel" data-faq-panel> 8014 <div class="faq-answer"><p>Yes, with the VeSync app. Before using scheduled or remote brewing, make sure the water, coffee grounds, paper filter, brew basket, â¨and carafe are all properly prepared. If you are using the provided carafe, Juni will detect when the carafe is correctly positioned, allowing â¨a scheduled brew or remote start to begin automatically. If you are using your own cup, carafe, or another non-Juni container, the machine cannot reliably detect whether it's in place. For safety, you will need to confirm on the machine before brewing can begin because â¨unattended scheduled or remote-start brewing is not supported with third-party containers.</p></div> 8015 </div> 8016 </details> 8017 8018 <details 8019 class="faq-item" 8020 data-faq-item 8021 id="faq-item-template--28135044186421__faq_EwcehF-question_AjLy68" 8022 8023 8024 > 8025 <summary class="faq-question">
8026 <span class="faq-question-text">Is Juni an SCA Certified Home Brewer?</span> 8027 <span class="faq-icon" aria-hidden="true"> 8028 <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" focusable="false"> 8029 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.9147 3.31468C12.9147 2.80973 12.5053 2.40039 12.0004 2.40039C11.4954 2.40039 11.0861 2.80973 11.0861 3.31468V11.0861H3.31468C2.80973 11.0861 2.40039 11.4954 2.40039 12.0004C2.40039 12.5053 2.80973 12.9147 3.31468 12.9147H11.0861L11.0861 20.6861C11.0861 21.191 11.4954 21.6004 12.0004 21.6004C12.5053 21.6004 12.9147 21.191 12.9147 20.6861L12.9147 12.9147L20.6861 12.9147C21.191 12.9147 21.6004 12.5053 21.6004 12.0004C21.6004 11.4954 21.191 11.0861 20.6861 11.0861L12.9147 11.0861V3.31468Z" fill="currentColor"/> 8030 </svg> 8031 </span> 8032 </summary> 8033 <div class="faq-panel" data-faq-panel> 8034 <div class="faq-answer"><p>Yes, Juni is an SCA Certified Home Brewer, meeting the Specialty Coffee Associationâs rigorous standards for exceptional home brewing performance.</p></div> 8035 </div> 8036 </details> 8037 8038 <details 8039 class="faq-item" 8040 data-faq-item 8041 id="faq-item-template--28135044186421__faq_EwcehF-question_FkP8Lh" 8042 8043 8044 > 8045 <summary class="faq-question"> 8046 <span class="faq-question-text">Does Juni come with a warranty?</span> 8047 <span class="faq-icon" aria-hidden="true"> 8048 <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" focusable="false"> 8049 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.9147 3.31468C12.9147 2.80973 12.5053 2.40039 12.0004 2.40039C11.4954 2.40039 11.0861 2.80973 11.0861 3.31468V11.0861H3.31468C2.80973 11.0861 2.40039 11.4954 2.40039 12.0004C2.40039 12.5053 2.80973 12.9147 3.31468 12.9147H11.0861L11.0861 20.6861C11.0861 21.191 11.4954 21.6004 12.0004 21.6004C12.5053 21.6004 12.9147 21.191 12.9147 20.6861L12.9147 12.9147L20.6861 12.9147C21.191 12.9147 21.6004 12.5053 21.6004 12.0004C21.6004 11.4954 21.191 11.0861 20.6861 11.0861L12.9147 11.0861V3.31468Z" fill="currentColor"/> 8050 </svg> 8051 </span> 8052 </summary> 8053 <div class="faq-panel" data-faq-panel> 8054 <div class="faq-answer"><p>Yes, Juni is backed by Cosoriâs 2-year limited warranty. Warranty coverage, registration requirements, and other terms are subject to the applicable warranty policy in the country of purchase.</p></div> 8055 </div> 8056 </details> 8057 8058 </div> 8059 8060 </div> 8061</section> 8062
8063<script> 8064 (function () { 8065 var root = document.getElementById('faq-template--28135044186421__faq_EwcehF'); 8066 if (!root) return; 8067 8068 var allowMultiple = false; 8069 var items = Array.prototype.slice.call(root.querySelectorAll('[data-faq-item]')); 8070 if (!items.length) return; 8071 8072 // Signals that the fade-in styles should apply; without JS the answers stay 8073 // visible and the rows fall back to plain <details> behaviour. 8074 root.classList.add('faq--js'); 8075 8076 /* 8077 The row opens to full height in one frame and the answer fades and rises 8078 into it â no height animation, so there is no transition to wait on and 8079 nothing that can leave a row wedged half-open. 8080 8081 `is-open` is applied on the next frame rather than in the same tick: the 8082 panel is display:none while the row is closed, and a transition started in 8083 the frame an element becomes visible does not run. 8084 */ 8085 function expand(item) { 8086 item.open = true; 8087 requestAnimationFrame(function () { 8088 requestAnimationFrame(function () { 8089 if (item.open) item.classList.add('is-open'); 8090 }); 8091 }); 8092 } 8093 8094 function collapse(item) { 8095 item.classList.remove('is-open'); 8096 item.open = false; 8097 } 8098 8099 // Rows set to "open by default" render with the attribute already set, so 8100 // mark them before the fade styles would otherwise hide their answers. 8101 items.forEach(function (item) { 8102 if (item.open) item.classList.add('is-open'); 8103 }); 8104 8105 items.forEach(function (item) { 8106 var summary = item.querySelector('.faq-question'); 8107 if (!summary) return; 8108 8109 summary.addEventListener('click', function (e) { 8110 e.preventDefault(); 8111 8112 if (item.open) { 8113 collapse(item); 8114 return; 8115 } 8116 8117 if (!allowMultiple) { 8118 items.forEach(function (other) { 8119 if (other !== item && other.open) collapse(other); 8120 }); 8121 } 8122 8123 8124 8125 expand(item); 8126 }); 8127 }); 8128 8129 // Theme editor: open the row a merchant selects in the sidebar. 8130 document.addEventListener('shopify:block:select', function (e) { 8131 var item = e.target.closest ? e.target.closest('[data-faq-item]') : null; 8132 if (!item || !root.contains(item) || item.open) return; 8133 if (!allowMultiple) { 8134 items.forEach(function (other) { 8135 if (other !== item && other.open) collapse(other); 8136 }); 8137 } 8138 expand(item); 8139 }); 8140 })(); 8141</script>
8141<script type="application/ld+json"> 8142 { 8143 "@context": "https://schema.org", 8144 "@type": "FAQPage", 8145 "mainEntity": [{ 8146 "@type": "Question", 8147 "name": "Do I need the VeSync app to use Juni?", 8148 "acceptedAnswer": { 8149 "@type": "Answer", 8150 "text": "\u003cp\u003eNo. You can brew directly from Juni using the built-in controls and display. Connecting to the VeSync app gives you access to additional features, including personalized recipe recommendations, complete control over brew settings, remote start, and smart scheduling.\u003c\/p\u003e" 8151 } 8152 },{ 8153 "@type": "Question", 8154 "name": "How much coffee can I brew with each brew basket?", 8155 "acceptedAnswer": { 8156 "@type": "Answer", 8157 "text": "\u003cp\u003eJuni includes 2 brew baskets for different serving sizes. The cone brew basket supports up to 600 mL and is ideal for smaller batch brewing of 1â3 cups. The flat bottom brew basket supports up to 1.5 L and is well suited for large batch brewing of 3â6 cups. Juniâs default cup size is 250 mL. You can use the VeSync app to adjust the default cup size to your preference.\u003c\/p\u003e" 8158 } 8159 },{ 8160 "@type": "Question", 8161 "name": "How long does Juni take to brew coffee?", 8162 "acceptedAnswer": { 8163 "@type": "Answer", 8164 "text": "\u003cp\u003eBrewing typically takes approximately 3â10 minutes, depending on the serving size and selected brew settings.\u003c\/p\u003e" 8165 } 8166 },{ 8167 "@type": "Question", 8168 "name": "Does Juni have a built-in grinder?", 8169 "acceptedAnswer": { 8170 "@type": "Answer", 8171 "text": "\u003cp\u003eNo, Juni does not include a built-in grinder. For best results, we recommend using a dedicated burr grinder and starting with a medium to medium-coarse grind for pour-over coffee. You can also have your beans ground for pour-over at your local coffee shop.\u003c\/p\u003e" 8172 } 8173 },{ 8174 "@type": "Question", 8175 "name": "Which brew baskets and filters does Juni use?", 8176 "acceptedAnswer": { 8177 "@type": "Answer", 8178 "text": "\u003cp\u003eJuni includes both a cone brew basket and a flat bottom brew basket, so you can explore different brewing styles and recipes. Each brew basket comes with 20 compatible paper filters, for a total of 40 filters in the box. Additional replacement filters will be available for purchase directly from the Cosori website.\u003c\/p\u003e" 8179 } 8180 },{ 8181 "@type": "Question", 8182 "name": "Can I use my own carafe with Juni?", 8183 "acceptedAnswer": { 8184 "@type": "Answer", 8185 "text": "\u003cp\u003eYes, you can use your own carafe as long as it fits within the brewing area. For the best fit, choose a carafe with a height of up to 8 inches (203 millimeters), measured from the base to the top of the lid, and a diameter of up to 4.9 inches (125 millimeters). We recommend using a carafe that is heat-resistant up to 100°C (212°F) and has a capacity of at least 300 mL. Always make sure the carafe is stable and properly positioned before brewing.\u003c\/p\u003e" 8186 } 8187 },{ 8188 "@type": "Question", 8189 "name": "What materials are used in Juniâs water\/coffee-contact components?", 8190 "acceptedAnswer": { 8191 "@type": "Answer", 8192 "text": "\u003cp\u003eJuni uses carefully selected food-contact materials designed for durability, heat performance, and everyday use. The cone and flat bottom brew baskets are made from Tritan⢠copolyester (PCTG), and the water tank is made from SAN polymer. Materials that come into contact with water or brewed coffee are tested for their intended use and comply with applicable food-contact safety requirements.\u003c\/p\u003e" 8193 } 8194 },{ 8195 "@type": "Question", 8196 "name": "How will I know when Juni needs descaling?",
8197 "acceptedAnswer": { 8198 "@type": "Answer", 8199 "text": "\u003cp\u003eJuni will remind you when itâs time to descale. After 90 days of use or more than 60 brew cycles, the display will show âCâ when the machine \u2028is turned on, and the Pre-Rinse Filter button will flash. Press and hold the Pre-Rinse Filter button to start the descaling cycle. When descaling \u2028is complete, Juni will beep three times and automatically return to standby mode. We recommend rinsing the water tank to remove any remaining descaling solution, then running one full brew cycle with only water (no coffee grounds) before using Juni again.\u003c\/p\u003e" 8200 } 8201 },{ 8202 "@type": "Question", 8203 "name": "Can I schedule or remotely start a brew with Juni?", 8204 "acceptedAnswer": { 8205 "@type": "Answer", 8206 "text": "\u003cp\u003eYes, with the VeSync app. Before using scheduled or remote brewing, make sure the water, coffee grounds, paper filter, brew basket, \u2028and carafe are all properly prepared. If you are using the provided carafe, Juni will detect when the carafe is correctly positioned, allowing \u2028a scheduled brew or remote start to begin automatically. If you are using your own cup, carafe, or another non-Juni container, the machine cannot reliably detect whether it's in place. For safety, you will need to confirm on the machine before brewing can begin because \u2028unattended scheduled or remote-start brewing is not supported with third-party containers.\u003c\/p\u003e" 8207 } 8208 },{ 8209 "@type": "Question", 8210 "name": "Is Juni an SCA Certified Home Brewer?", 8211 "acceptedAnswer": { 8212 "@type": "Answer", 8213 "text": "\u003cp\u003eYes, Juni is an SCA Certified Home Brewer, meeting the Specialty Coffee Associationâs rigorous standards for exceptional home brewing performance.\u003c\/p\u003e" 8214 } 8215 },{ 8216 "@type": "Question", 8217 "name": "Does Juni come with a warranty?", 8218 "acceptedAnswer": { 8219 "@type": "Answer", 8220 "text": "\u003cp\u003eYes, Juni is backed by Cosoriâs 2-year limited warranty. Warranty coverage, registration requirements, and other terms are subject to the applicable warranty policy in the country of purchase.\u003c\/p\u003e" 8221 } 8222 }] 8223 } 8224 </script>
8224 8225</div><div id="shopify-section-template--28135044186421__iconic_customers_love_jPgYkU" class="shopify-section"> 8226<section id="customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU" class="cal" data-cal> 8227 <style> 8228 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU{ 8229 --heading: #512A44; 8230 --heading-font: inherit; 8231 --heading-size: 44px; 8232 --heading-weight: 700; 8233 --heading-lh: 1.05; 8234 --heading-ls: -0.02em; 8235 --heading-mb: 28px; 8236 --heading-em-style: italic; 8237 --heading-em-weight: 700; 8238 8239 --text: #2b2b2b; 8240 --title-font: inherit; 8241 --title-size: 18px; 8242 --title-weight: 700; 8243 --title-lh: 1.2; 8244 8245 --price: rgba(0,0,0,.55); 8246 --price-font: inherit; 8247 --price-size: 12px; 8248 --price-weight: 600; 8249 --price-ls: normal; 8250 --price-mt: 6px; 8251 8252 --card-bg: #F4F1F2; 8253 --badge-bg: #7B6A78; 8254 --badge-text: #ffffff; 8255 --badge-font: inherit; 8256 --badge-size: 11px; 8257 --badge-weight: 700; 8258 --badge-lh: 1; 8259 --badge-ls: .06em; 8260 --badge-radius: 999px; 8261 --badge-pad-y: 6px; 8262 --badge-pad-x: 10px; 8263 --badge-offset: 12px; 8264 8265 --radius: 18px; 8266 --max: 1100px; 8267 8268 --pad-y: 44px; 8269 --pad-x: 22px; 8270 8271 --gap: 34px; 8272 --card-gap: 14px; 8273 --media-pad: 18px; 8274 --text-pad-x: 0px; 8275 8276 --atc-bg: #fb914a; 8277 --atc-text: #ffffff; 8278 --atc-font: inherit; 8279 --atc-size: 16px; 8280 --atc-weight: 700; 8281 --atc-ls: .04em; 8282 --atc-lh: 1; 8283 --atc-height: 44px; 8284 --atc-radius: 16px; 8285 --atc-max: 320px; 8286 8287 /* Mobile slider tuning */ 8288 --peek: 14vw; /* how much next card peeks in */ 8289 --snap-pad: 16px; /* left/right padding inside the scroll area */ 8290 } 8291 8292 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU *{ box-sizing: border-box; } 8293 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU a{ color: inherit; text-decoration: none; } 8294 8295 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU{ background:#fff; width:100%; } 8296 8297 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-wrap{ 8298 max-width: var(--max); 8299 margin: 0 auto; 8300 padding: var(--pad-y) var(--pad-x); 8301 } 8302 8303 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-heading{ 8304 margin: 0 0 var(--heading-mb); 8305 text-align: center; 8306 color: var(--heading); 8307 font-family: var(--heading-font); 8308 font-weight: var(--heading-weight); 8309 letter-spacing: var(--heading-ls); 8310 line-height: var(--heading-lh); 8311 font-size: var(--heading-size); 8312 } 8313 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-heading em{ 8314 font-style: var(--heading-em-style); 8315 font-weight: var(--heading-em-weight); 8316 } 8317 8318 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-grid{ 8319 display: grid; 8320 grid-template-columns: repeat(3, minmax(0, 1fr)); 8321 gap: var(--gap); 8322 align-items: start; 8323 } 8324 8325 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-card{ 8326 display: flex; 8327 flex-direction: column; 8328 gap: var(--card-gap); 8329 min-width: 0; 8330 } 8331 8332 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-media{ 8333 position: relative; 8334 background: var(--card-bg); 8335 border-radius: var(--radius); 8336 overflow: hidden; 8337 width: 100%; 8338 aspect-ratio: 4 / 4; 8339 display: block; 8340 } 8341 8342 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-media img{ 8343 width: 100%; 8344 height: 100%; 8345 object-fit: contain; 8346 display: block; 8347 padding: var(--media-pad); 8348 transform: translateZ(0); 8349 transition: transform .18s ease; 8350 } 8351 8352 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-media:hover img{ 8353 transform: scale(1.01); 8354 } 8355 8356 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-badge{ 8357 position: absolute; 8358 top: var(--badge-offset); 8359 right: var(--badge-offset); 8360 background: var(--badge-bg); 8361 color: var(--badge-text); 8362 font-family: var(--badge-font); 8363 font-size: var(--badge-size); 8364 line-height: var(--badge-lh); 8365 padding: var(--badge-pad-y) var(--badge-pad-x); 8366 border-radius: var(--badge-radius);
8367 font-weight: var(--badge-weight); 8368 letter-spacing: var(--badge-ls); 8369 text-transform: uppercase; 8370 } 8371 8372 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-info{ 8373 padding-left: var(--text-pad-x); 8374 padding-right: var(--text-pad-x); 8375 } 8376 8377 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-title{ 8378 margin: 0; 8379 font-family: var(--title-font); 8380 font-size: var(--title-size); 8381 font-weight: var(--title-weight); 8382 color: var(--text); 8383 line-height: var(--title-lh); 8384 } 8385 8386 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-price{ 8387 margin: var(--price-mt) 0 0; 8388 font-family: var(--price-font); 8389 font-size: var(--price-size); 8390 font-weight: var(--price-weight); 8391 letter-spacing: var(--price-ls); 8392 color: var(--price); 8393 } 8394 8395 /* Add to Cart â only rendered when the section setting is on */ 8396 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-atc{ 8397 align-self: center; 8398 width: 100%; 8399 max-width: var(--atc-max); 8400 min-height: var(--atc-height); 8401 display: inline-flex; 8402 align-items: center; 8403 justify-content: center; 8404 background: var(--atc-bg); 8405 border: 1px solid var(--atc-bg); 8406 color: var(--atc-text); 8407 border-radius: var(--atc-radius); 8408 padding: 12px 16px; 8409 font-family: var(--atc-font); 8410 font-size: var(--atc-size); 8411 font-weight: var(--atc-weight); 8412 line-height: var(--atc-lh); 8413 letter-spacing: var(--atc-ls); 8414 text-transform: uppercase; 8415 cursor: pointer; 8416 appearance: none; 8417 -webkit-appearance: none; 8418 transition: transform .18s ease, opacity .18s ease; 8419 } 8420 8421 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-atc:hover:not([disabled]){ 8422 transform: translateY(-2px); 8423 } 8424 8425 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-atc:active:not([disabled]){ 8426 transform: translateY(0); 8427 } 8428 8429 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-atc[disabled]{ 8430 opacity: .5; 8431 cursor: not-allowed; 8432 transform: none; 8433 } 8434 8435 /* Busy while an add is in flight (dtc.js sets .is-loading + aria-busy). */ 8436 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-atc.is-loading, 8437 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-atc[aria-busy="true"]{ 8438 opacity: .6; 8439 cursor: progress; 8440 } 8441 8442 @media (prefers-reduced-motion: reduce){ 8443 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-atc, 8444 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-media img{ 8445 transition: none; 8446 } 8447 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-atc:hover:not([disabled]){ 8448 transform: none; 8449 } 8450 } 8451 8452 @media (max-width: 1100px){ 8453 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU{ 8454 --max: 980px; 8455 --pad-x: 22px; 8456 --heading-size: 40px; 8457 } 8458 } 8459 8460 /* â Mobile: one-at-a-time swipe slider + peek */ 8461 @media (max-width: 900px){ 8462 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU{ 8463 --heading-size: 34px; 8464 --heading-mb: 22px; 8465 --title-size: 16px; 8466 } 8467 8468 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-wrap{ 8469 padding-left: 0; 8470 padding-right: 0; 8471 } 8472 8473 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-grid{ 8474 display: flex; 8475 gap: 14px; 8476 8477 overflow-x: auto; 8478 overflow-y: visible; 8479 -webkit-overflow-scrolling: touch; 8480 8481 scroll-snap-type: x mandatory; 8482 scroll-padding-left: var(--snap-pad); 8483 scroll-padding-right: var(--snap-pad); 8484 8485 padding: 0 var(--snap-pad) 6px; 8486 } 8487 8488 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-grid::-webkit-scrollbar{ 8489 display: none; 8490 } 8491 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-grid{ 8492 scrollbar-width: none; 8493 } 8494 8495 /* One card per "page" with a peek of the next */ 8496 #customers-also-love-template--28135044186421__iconic_customers_love_jPgYkU .cal-card{ 8497 flex: 0 0 calc(100% - var(--peek)); 8498 scroll-snap-align: start; 8499 scroll-snap-stop: always; 8500 } 8501 } 8502 </style> 8503 8504 <div class="cal-wrap"> 8505 <h2 class="cal-heading"> 8506 8507 <p>Customers Also <em>Love</em></p> 8508 8509 </h2> 8510 8511 <div class="cal-grid" role="list"> 8512 8513 8514 8515 <div class="cal-card" role="listitem" > 8516 8517 <a class="cal-media" href="/products/nutrilens-smart-nutrition-scale" aria-label="Cosori NutriLens Smart Nutrition Scale"> 8518
8519 <span class="cal-badge">SMART</span> 8520 8521 8522 8523 <img 8524 src="//cosori.com/cdn/shop/files/1.0_CNS-R001S-X_US_Black_LP0A1.jpg?v=1755497282&width=1400" 8525 alt="Cosori NutriLens Smart Nutrition Scale" 8526 loading="lazy" 8527 width="1600" 8528 height="1600" 8529 > 8530 8531 </a> 8532 8533 <div class="cal-info"> 8534 <a href="/products/nutrilens-smart-nutrition-scale"> 8535 <p class="cal-title" id="cal-title-item_JGyGQh">Cosori NutriLens Smart Nutrition Scale</p> 8536 </a> 8537 8538 8539 <p class="cal-price">$49.99</p> 8540 8541 </div> 8542 8543 8544 8545 <button 8546 type="button" 8547 class="cal-atc" 8548 data-cal-atc 8549 data-dtc-add-to-cart 8550 data-variant-id="51222975611189" 8551 aria-describedby="cal-title-item_JGyGQh" 8552 >Add to cart</button> 8553 8554 8555 8556 </div> 8557 8558 8559 8560 <div class="cal-card" role="listitem" > 8561 8562 <a class="cal-media" href="/products/smart-electric-gooseneck-kettle-cs108-nk" aria-label="Smart Electric<br>Gooseneck Kettle"> 8563 8564 <span class="cal-badge">SMART</span> 8565 8566 8567 8568 <img 8569 src="//cosori.com/cdn/shop/products/new-electric-kettle-img.png?v=1762457669&width=1400" 8570 alt="Smart Electric<br>Gooseneck Kettle" 8571 loading="lazy" 8572 width="1000" 8573 height="1000" 8574 > 8575 8576 </a> 8577 8578 <div class="cal-info"> 8579 <a href="/products/smart-electric-gooseneck-kettle-cs108-nk"> 8580 <p class="cal-title" id="cal-title-item_iJtJMg">Smart Electric<br>Gooseneck Kettle</p> 8581 </a> 8582 8583 8584 <p class="cal-price">$77.99</p> 8585 8586 </div> 8587 8588 8589 8590 <button 8591 type="button" 8592 class="cal-atc" 8593 data-cal-atc 8594 data-dtc-add-to-cart 8595 data-variant-id="45003288019253" 8596 aria-describedby="cal-title-item_iJtJMg" 8597 >Add to cart</button> 8598 8599 8600 8601 </div> 8602 8603 8604 8605 <div class="cal-card" role="listitem" > 8606 8607 <a class="cal-media" href="/products/premium-stainless-steel-food-dehydrator-cp267-fd" aria-label="COSORI Premium 6-Tray Stainless Steel Food Dehydrator"> 8608 8609 <span class="cal-badge">SMART</span> 8610 8611 8612 8613 <img 8614 src="//cosori.com/cdn/shop/products/01.01_OA1_CP267-FD_Silver_03.png?v=1762457668&width=1400" 8615 alt="COSORI Premium 6-Tray Stainless Steel Food Dehydrator" 8616 loading="lazy" 8617 width="3000" 8618 height="3000" 8619 > 8620 8621 </a> 8622 8623 <div class="cal-info"> 8624 <a href="/products/premium-stainless-steel-food-dehydrator-cp267-fd"> 8625 <p class="cal-title" id="cal-title-item_UT8eCx">COSORI Premium 6-Tray Stainless Steel Food Dehydrator</p> 8626 </a> 8627 8628 8629 <p class="cal-price">$159.99</p> 8630 8631 </div> 8632 8633 8634 8635 <button 8636 type="button" 8637 class="cal-atc" 8638 data-cal-atc 8639 data-dtc-add-to-cart 8640 data-variant-id="45003286282549" 8641 aria-describedby="cal-title-item_UT8eCx" 8642 >Add to cart</button> 8643 8644 8645 8646 </div> 8647 8648 </div> 8649 </div> 8650</section>
8650<script> 8651 (function () { 8652 if (window.__dtcAtcFallbackBound) return; 8653 window.__dtcAtcFallbackBound = true; 8654 8655 /* Mirrors shouldUseDtcCart() in assets/product-form.js:24-35. */ 8656 function dtcReady() { 8657 return !!( 8658 window.DtcCartDrawerController && 8659 typeof window.DtcCartDrawerController.add === 'function' && 8660 document.querySelector('dtc-cart-drawer') 8661 ); 8662 } 8663 8664 function rootPath() { 8665 return (window.Shopify && window.Shopify.routes && window.Shopify.routes.root) || '/'; 8666 } 8667 8668 document.addEventListener('click', function (e) { 8669 var btn = e.target.closest && e.target.closest('[data-dtc-add-to-cart]'); 8670 if (!btn || btn.disabled || btn.getAttribute('aria-busy') === 'true') return; 8671 8672 /* dtc.js is present and healthy â let it handle this click. */ 8673 if (dtcReady()) return; 8674 8675 var variantId = btn.getAttribute('data-variant-id'); 8676 if (!variantId) return; 8677 8678 /* Claim the click so dtc.js's bubble listener cannot also fire. */ 8679 e.preventDefault(); 8680 e.stopImmediatePropagation(); 8681 8682 var original = btn.textContent; 8683 var restore = function (text, delay) { 8684 btn.textContent = text; 8685 setTimeout(function () { 8686 btn.textContent = original; 8687 btn.disabled = false; 8688 btn.removeAttribute('aria-busy'); 8689 btn.classList.remove('is-loading'); 8690 }, delay); 8691 }; 8692 8693 btn.disabled = true; 8694 btn.setAttribute('aria-busy', 'true'); 8695 btn.classList.add('is-loading'); 8696 btn.textContent = 'Addingâ¦'; 8697 8698 /* Bounded, always. An unbounded await is what left these buttons stuck on 8699 "Addingâ¦" in the first place â fetch has no default timeout. */ 8700 var controller = new AbortController(); 8701 var timer = setTimeout(function () { controller.abort(); }, 10000); 8702 8703 fetch(rootPath() + 'cart/add.js', { 8704 method: 'POST', 8705 headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, 8706 body: JSON.stringify({ items: [{ id: parseInt(variantId, 10), quantity: 1 }] }), 8707 signal: controller.signal 8708 }) 8709 .then(function (res) { 8710 if (!res.ok) throw new Error('Add to cart failed: ' + res.status); 8711 return res.json(); 8712 }) 8713 .then(function () { restore('Added â', 1600); }) 8714 .catch(function (err) { 8715 console.error('[dtc-atc-fallback] add to cart failed:', err); 8716 restore(original, 0); 8717 }) 8718 .finally(function () { clearTimeout(timer); }); 8719 }, true); 8720 })(); 8721</script>
8721 8722 8723</div><section id="shopify-section-template--28135044186421__product_metafeilds_video_RW7JbC" class="shopify-section section"> 8724</section><div id="shopify-section-template--28135044186421__product_feature_section_UzwTag" class="shopify-section"> 8725 8726<style> #shopify-section-template--28135044186421__product_feature_section_UzwTag .h1 {color: #000;} </style></div><div id="shopify-section-template--28135044186421__new_product_meta_banner_Re4tQC" class="shopify-section"> 8727</div><div id="shopify-section-template--28135044186421__product_meta_simple_banner_7z7jNf" class="shopify-section"> 8728 8729 8730</div><section id="shopify-section-template--28135044186421__product_what_in_the_box_rHeqVx" class="shopify-section section"> 8731 8732 8733</section><section id="shopify-section-template--28135044186421__product_article_metafeilds_by_tag_Hza7PT" class="shopify-section"> 8734 8735 8736</section><section id="shopify-section-template--28135044186421__product_meta_collapsible_content_f7Pdr6" class="shopify-section section"> 8737 8738 8739</section><div id="shopify-section-template--28135044186421__product_reviews_header_PYL6Gy" class="shopify-section"> 8740 8741<link href="//cosori.com/cdn/shop/t/166/assets/bv-reviews.css?v=63491158950074665531789674181" rel="stylesheet" type="text/css" media="all" /> 8742 8743<section id="product-reviews-header-template--28135044186421__product_reviews_header_PYL6Gy" class="bvr-header"> 8744 <style> 8745 #product-reviews-header-template--28135044186421__product_reviews_header_PYL6Gy { 8746 background: #ffffff; 8747 padding: 52px 20px 0; 8748 } 8749 8750 #product-reviews-header-template--28135044186421__product_reviews_header_PYL6Gy .bvr-heading { 8751 margin: 0 0 32px; 8752 text-align: center; 8753 color: #000000; 8754 font-family: 'Gilroy-SemiBold', sans-serif; 8755 font-size: 48px; /* Figma: Desktop(2025)/Header 02 */ 8756 font-weight: 600; 8757 line-height: 1; 8758 letter-spacing: 0; 8759 text-transform: none; 8760 } 8761 8762 /* This theme has no global p reset, and a `richtext` setting renders as 8763 <p>. Left alone, that <p> keeps the UA default margin: 1em 0 â 48px above 8764 and below at this font-size â and silently breaks the Figma spacing. */ 8765 #product-reviews-header-template--28135044186421__product_reviews_header_PYL6Gy .bvr-heading p { 8766 margin: 0; 8767 } 8768 8769 /* assets/reskin.css maps h1-h5 em to Proxima Sera already; restated here so 8770 the intent is explicit and survives a change to that global rule. */ 8771 #product-reviews-header-template--28135044186421__product_reviews_header_PYL6Gy .bvr-heading em, 8772 #product-reviews-header-template--28135044186421__product_reviews_header_PYL6Gy .bvr-heading i { 8773 font-family: 'Proxima Sera', serif; 8774 font-style: italic; 8775 font-weight: 600; 8776 } 8777 8778 @media (max-width: 749px) { 8779 #product-reviews-header-template--28135044186421__product_reviews_header_PYL6Gy { 8780 padding-top: 36px; 8781 } 8782 8783 #product-reviews-header-template--28135044186421__product_reviews_header_PYL6Gy .bvr-heading { 8784 font-size: 28px; /* Figma: Mobile(2025)/Header 02 */ 8785 margin-bottom: 24px; 8786 } 8787 } 8788 8789 /* ------------------------------------------------------------------ 8790 Design tokens handed to assets/bv-reviews.css 8791 ------------------------------------------------------------------ */ 8792 #bv_review_maincontainer { 8793 --bvr-accent: #fb914a; 8794 --bvr-ink: #1b1b1e; 8795 --bvr-line: #bfbfbf; 8796 --bvr-bar-track: #ececec; 8797 --bvr-card-radius: 16px; 8798 --bvr-card-gap: 20px;padding-bottom: 52px; 8799 } 8800 8801 @media (max-width: 749px) { 8802 #bv_review_maincontainer { 8803 padding-bottom: 48px; 8804 } 8805 }#bv_review_maincontainer #reviews_container > section .bv-rnr__emkap-1, 8806 #bv_review_maincontainer #reviews_container > section .bv-rnr__emkap-2, 8807 #bv_review_maincontainer #reviews_container > section .bv-rnr__emkap-3, 8808 #bv_review_maincontainer #reviews_container > section .bv-rnr__sc-16dr7i1-12 { 8809 display: none; 8810 }</style> 8811 8812 <h2 class="bvr-heading"><p>Customer <em>Reviews</em></p> 8813</h2> 8814</section> 8815 8816 8817</div><section id="shopify-section-template--28135044186421__17153288635b2c2b4f" class="shopify-section section"><div class="page-width"><div id="shopify-block-ARk9hNVR5bGQzSUNid__bazaarvoice_reviews_photos_reviews_block_ydPEex" class="shopify-block shopify-app-block"> 8818 8819 8820 8821 8822 8823 8824 <div data-bv-show="reviews" data-bv-seo="true" data-bv-product-id="10566370951477"> </div> 8825 8826 8827 8828 8829 8830</div> 8831</div> 8832 8833 8834</section><section id="shopify-section-template--28135044186421__product_meta_products_JDTedk" class="shopify-section section"> 8835 8836 8837</section> 8838 </main> 8839 8840 <!-- BEGIN sections: dtc-footer-group --> 8841<section id="shopify-section-sections--28135024623925__dtc-footer" class="shopify-section shopify-section-group-dtc-footer-group dtc-footer-section"><style data-shopify>#shopify-section-sections--28135024623925__dtc-footer { 8842 position: relative; 8843 z-index: 2; 8844 margin-top: -24px; 8845 } 8846 8847 #shopify-section-sections--28135024623925__dtc-footer .dtc-footer { 8848 background-color: #512a44; 8849 padding-top: 80px; 8850 padding-bottom: 0px; 8851 } 8852 8853 @media screen and (max-width: 699px) { 8854 #shopify-section-sections--28135024623925__dtc-footer { 8855 margin-top: -22px; 8856 } 8857 }</style><dtc-footer> 8858<footer class="dtc-footer" id="dtc-footer-sections--28135024623925__dtc-footer" role="contentinfo" data-v-gtm-scope="footer" data-v-gtm-module="Bottom Navigation"> 8859 <div class="dtc-footer__inner"><div class="dtc-footer__mobile-logo"> 8860 <a class="dtc-footer__logo-link" href="/" aria-label="COSORI"><div class="v-image dtc-footer__logo-img"><picture><img src="//cosori.com/cdn/shop/files/dtc-about-us-hero-logo-cosori.png?v=1780988053&width=1533" alt="image" srcset="//cosori.com/cdn/shop/files/dtc-about-us-hero-logo-cosori.png?v=1780988053&width=200 200w, //cosori.com/cdn/shop/files/dtc-about-us-hero-logo-cosori.png?v=1780988053&width=400 400w, //cosori.com/cdn/shop/files/dtc-about-us-hero-logo-cosori.png?v=1780988053&width=600 600w, //cosori.com/cdn/shop/files/dtc-about-us-hero-logo-cosori.png?v=1780988053&width=800 800w, //cosori.com/cdn/shop/files/dtc-about-us-hero-logo-cosori.png?v=1780988053&width=1000 1000w, //cosori.com/cdn/shop/files/dtc-about-us-hero-logo-cosori.png?v=1780988053&width=1200 1200w, //cosori.com/cdn/shop/files/dtc-about-us-hero-logo-cosori.png?v=1780988053&width=1400 1400w" width="1533" height="531" loading="lazy" sizes="(max-width: 699px) min(100vw, 1533px), min(100vw, 1533px)" style="object-position:50.0% 51.66%;"></picture> 8861 </div><style></style> 8862</a> 8863 </div> 8864 8865 <div class="dtc-footer__newsletter-row"> 8866 <div class="dtc-footer__newsletter-left"><h2 class="dtc-footer__newsletter-heading">Get Exclusive Coffee Recipes & Tips</h2></div> 8867 <div class="dtc-footer__newsletter-right"><p class="dtc-footer__newsletter-desc">Join our community of coffee lovers for the latest recipes, brewing tips, and partnership updates delivered to your inbox.</p><div class="dtc-footer__subscribe-wrap"><form method="post" action="/contact#dtc-footer-form-sections--28135024623925__dtc-footer" id="dtc-footer-form-sections--28135024623925__dtc-footer" accept-charset="UTF-8" class="dtc-footer__subscribe-form" data-v-gtm-module="Bottom Navigation"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="return_to" value="/products/juni-coffee-maker#dtc-footer-form-sections--28135024623925__dtc-footer" /><input type="hidden" name="contact[tags]" value="newsletter"> 8868 <input type="hidden" name="contact[accepts_marketing]" value="true"> 8869 <div class="dtc-footer__subscribe-row"> 8870 <input 8871 class="dtc-footer__email-input" 8872 type="email" 8873 name="contact[email]" 8874 id="dtc-footer-email-sections--28135024623925__dtc-footer" 8875 value="" 8876 placeholder="Enter your email address" 8877 autocomplete="email" 8878 required 8879 8880 aria-label="Enter your email address" 8881 > 8882 <button class="dtc-footer__subscribe-btn" type="submit"> 8883 Subscribe 8884 </button> 8885 </div></form></div><div class="dtc-footer__newsletter-consent"><p>By subscribing, you agree to our <a href="/pages/legal/terms" target="_blank" title="/pages/legal/terms"><strong>Terms of Use</strong></a> and <a href="/pages/legal/privacy" target="_blank" title="/pages/legal/privacy"><strong>Privacy Policy</strong></a></p></div></div> 8886 </div><div class="dtc-footer__divider" role="separator" aria-hidden="true"></div><div class="dtc-footer__main-row"><div class="dtc-footer__brand"> 8887 <a class="dtc-footer__logo-link dtc-footer__logo-link--desktop" href="/" aria-label="COSORI"><div class="v-image dtc-footer__logo-img"><picture><img src="//cosori.com/cdn/shop/files/dtc-about-us-hero-logo-cosori.png?v=1780988053&width=1533" alt="image" srcset="//cosori.com/cdn/shop/files/dtc-about-us-hero-logo-cosori.png?v=1780988053&width=200 200w, //cosori.com/cdn/shop/files/dtc-about-us-hero-logo-cosori.png?v=1780988053&width=400 400w, //cosori.com/cdn/shop/files/dtc-about-us-hero-logo-cosori.png?v=1780988053&width=600 600w, //cosori.com/cdn/shop/files/dtc-about-us-hero-logo-cosori.png?v=1780988053&width=800 800w, //cosori.com/cdn/shop/files/dtc-about-us-hero-logo-cosori.png?v=1780988053&width=1000 1000w, //cosori.com/cdn/shop/files/dtc-about-us-hero-logo-cosori.png?v=1780988053&width=1200 1200w, //cosori.com/cdn/shop/files/dtc-about-us-hero-logo-cosori.png?v=1780988053&width=1400 1400w" width="1533" height="531" loading="lazy" sizes="(max-width: 699px) min(100vw, 1533px), min(100vw, 1533px)" style="object-position:50.0% 51.66%;"></picture> 8888 </div><style></style> 8889</a><div class="dtc-footer__brand-bottom">
8889<p class="dtc-footer__copyright">Copyright © 2026 COSORI.</p><ul class="dtc-footer__socials" aria-label="Social media links" data-v-gtm-module="Bottom Navigation"><li class="dtc-footer__social-item"> 8890 <a 8891 class="dtc-footer__social-link" 8892 href="https://www.facebook.com/CosoriCooks" 8893 target="_blank" 8894 rel="noopener noreferrer" 8895 aria-label="Facebook" 8896 ><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"> 8897 <path d="M20 10.0611C20 4.50451 15.5229 0 10 0C4.47715 0 0 4.50451 0 10.0611C0 15.0828 3.65684 19.2452 8.4375 20V12.9694H5.89844V10.0611H8.4375V7.84452C8.4375 5.32296 9.9305 3.93012 12.2146 3.93012C13.3088 3.93012 14.4531 4.12663 14.4531 4.12663V6.60261H13.1922C11.95 6.60261 11.5625 7.37822 11.5625 8.1739V10.0611H14.3359L13.8926 12.9694H11.5625V20C16.3432 19.2452 20 15.083 20 10.0611Z" fill="white"/> 8898 </svg></a> 8899 </li><li class="dtc-footer__social-item"> 8900 <a 8901 class="dtc-footer__social-link" 8902 href="https://www.instagram.com/cosoricooks" 8903 target="_blank" 8904 rel="noopener noreferrer" 8905 aria-label="Instagram" 8906 ><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 8907 <path fill-rule="evenodd" clip-rule="evenodd" d="M16 3.24219H8C5.23858 3.24219 3 5.48077 3 8.24219V16.2422C3 19.0036 5.23858 21.2422 8 21.2422H16C18.7614 21.2422 21 19.0036 21 16.2422V8.24219C21 5.48077 18.7614 3.24219 16 3.24219ZM19.25 16.2422C19.2445 18.0348 17.7926 19.4867 16 19.4922H8C6.20735 19.4867 4.75549 18.0348 4.75 16.2422V8.24219C4.75549 6.44954 6.20735 4.99768 8 4.99219H16C17.7926 4.99768 19.2445 6.44954 19.25 8.24219V16.2422ZM16.75 8.49219C17.3023 8.49219 17.75 8.04447 17.75 7.49219C17.75 6.93991 17.3023 6.49219 16.75 6.49219C16.1977 6.49219 15.75 6.93991 15.75 7.49219C15.75 8.04447 16.1977 8.49219 16.75 8.49219ZM12 7.74219C9.51472 7.74219 7.5 9.75691 7.5 12.2422C7.5 14.7275 9.51472 16.7422 12 16.7422C14.4853 16.7422 16.5 14.7275 16.5 12.2422C16.5027 11.0479 16.0294 9.90176 15.1849 9.05727C14.3404 8.21278 13.1943 7.73953 12 7.74219ZM9.25 12.2422C9.25 13.761 10.4812 14.9922 12 14.9922C13.5188 14.9922 14.75 13.761 14.75 12.2422C14.75 10.7234 13.5188 9.49219 12 9.49219C10.4812 9.49219 9.25 10.7234 9.25 12.2422Z" fill="white"/> 8908 </svg></a> 8909 </li><li class="dtc-footer__social-item"> 8910 <a 8911 class="dtc-footer__social-link" 8912 href="https://www.tiktok.com/@cosori_official?lang=en" 8913 target="_blank" 8914 rel="noopener noreferrer" 8915 aria-label="TikTok" 8916 ><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 8917 <path d="M10.3037 9.65365V12.7245C9.93253 12.6226 9.54412 12.6087 9.16708 12.6838C8.79004 12.7589 8.43401 12.9212 8.12521 13.1586C7.81641 13.396 7.56272 13.7025 7.38283 14.0556C7.20293 14.4086 7.10143 14.7992 7.0858 15.1985C7.06468 15.5423 7.11448 15.8868 7.23187 16.2089C7.34925 16.5311 7.53151 16.8232 7.76637 17.066C8.00124 17.3087 8.28328 17.4963 8.59355 17.616C8.90381 17.7359 9.23512 17.7852 9.56521 17.7607C11.3973 17.7607 12.0446 16.4207 12.0446 15.1639V3H14.9611C15.4572 6.21209 16.9992 6.95746 19.0661 7.30196V10.3795C19.0661 10.3795 16.6141 10.198 15.0437 8.96524V15.0449C15.0421 17.7959 13.4755 20.8667 9.5872 20.8667C5.97883 20.8667 4.13281 17.6841 4.13281 15.0165C4.15583 14.2261 4.33952 13.4497 4.67179 12.7387C5.00405 12.0276 5.47735 11.3979 6.06045 10.8912C6.64356 10.3844 7.32323 10.0121 8.05464 9.7988C8.78607 9.58549 9.5526 9.53602 10.3037 9.65365Z" fill="white"/> 8918 </svg></a> 8919 </li></ul><div class="dtc-footer__official-websites"><p class="dtc-footer__official-websites-heading">Visit our official websites</p><ul class="dtc-footer__official-websites-list" aria-label="Visit our official websites"><li class="dtc-footer__official-websites-item" > 8920 <a 8921 class="dtc-footer__official-websites-link" 8922 href="https://cosori.co.uk/"target="_blank" 8923 rel="noopener noreferrer">Cosori UK</a> 8924 </li><li class="dtc-footer__official-websites-item" > 8925 <a 8926 class="dtc-footer__official-websites-link" 8927 href="https://cosori.de/"target="_blank" 8928 rel="noopener noreferrer">Cosori DE</a> 8929 </li><li class="dtc-footer__official-websites-item" > 8930 <a 8931 class="dtc-footer__official-websites-link" 8932 href="https://cosori.es/"target="_blank" 8933 rel="noopener noreferrer">Cosori ES</a> 8934 </li></ul></div></div></div><nav class="dtc-footer__nav" aria-label="Footer navigation"><div class="dtc-footer__nav-col"> 8935 <button 8936 class="dtc-footer__nav-heading"
8937 aria-expanded="false" 8938 aria-controls="dtc-footer-nav-sections--28135024623925__dtc-footer-1" 8939 > 8940 Shop All 8941 <span class="dtc-footer__nav-toggle-icon" aria-hidden="true"> 8942 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4 6l4 4 4-4" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg> 8943 </span> 8944 </button> 8945 8946 <ul 8947 class="dtc-footer__nav-links" 8948 id="dtc-footer-nav-sections--28135024623925__dtc-footer-1" 8949 ><li class="dtc-footer__nav-link-item"> 8950 <a 8951 class="dtc-footer__nav-link" 8952 href="/collections/daily-sale"> 8953 Daily Sale�</a> 8954 </li><li class="dtc-footer__nav-link-item"> 8955 <a 8956 class="dtc-footer__nav-link" 8957 href="/collections/air-fryers"> 8958 Air Fryers�</a> 8959 </li><li class="dtc-footer__nav-link-item"> 8960 <a 8961 class="dtc-footer__nav-link" 8962 href="/collections/multicookers"> 8963 Multi-Cookers�</a> 8964 </li><li class="dtc-footer__nav-link-item"> 8965 <a 8966 class="dtc-footer__nav-link" 8967 href="/collections/food-dehydrators"> 8968 Food Dehydrators�</a> 8969 </li><li class="dtc-footer__nav-link-item"> 8970 <a 8971 class="dtc-footer__nav-link" 8972 href="/collections/kettles"> 8973 Kettles�</a> 8974 </li><li class="dtc-footer__nav-link-item"> 8975 <a 8976 class="dtc-footer__nav-link" 8977 href="/collections/accessories"> 8978 Accessories�</a> 8979 </li><li class="dtc-footer__nav-link-item"> 8980 <a 8981 class="dtc-footer__nav-link" 8982 href="/collections/coffee"> 8983 Coffee Machines & Accessories�</a> 8984 </li></ul> 8985 </div><div class="dtc-footer__nav-col"> 8986 <button 8987 class="dtc-footer__nav-heading" 8988 aria-expanded="false" 8989 aria-controls="dtc-footer-nav-sections--28135024623925__dtc-footer-2" 8990 > 8991 Learn 8992 <span class="dtc-footer__nav-toggle-icon" aria-hidden="true"> 8993 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4 6l4 4 4-4" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg> 8994 </span> 8995 </button> 8996 8997 <ul 8998 class="dtc-footer__nav-links" 8999 id="dtc-footer-nav-sections--28135024623925__dtc-footer-2" 9000 ><li class="dtc-footer__nav-link-item"> 9001 <a 9002 class="dtc-footer__nav-link" 9003 href="/blogs/learning-hub"> 9004 Learning Hub�</a> 9005 </li><li class="dtc-footer__nav-link-item"> 9006 <a 9007 class="dtc-footer__nav-link" 9008 href="/blogs/newsroom"> 9009 Newsroom�</a> 9010 </li></ul> 9011 </div><div class="dtc-footer__nav-col"> 9012 <button 9013 class="dtc-footer__nav-heading" 9014 aria-expanded="false" 9015 aria-controls="dtc-footer-nav-sections--28135024623925__dtc-footer-3" 9016 > 9017 Our Company 9018 <span class="dtc-footer__nav-toggle-icon" aria-hidden="true"> 9019 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4 6l4 4 4-4" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg> 9020 </span> 9021 </button> 9022 9023 <ul 9024 class="dtc-footer__nav-links" 9025 id="dtc-footer-nav-sections--28135024623925__dtc-footer-3" 9026 ><li class="dtc-footer__nav-link-item"> 9027 <a 9028 class="dtc-footer__nav-link" 9029 href="/pages/about"> 9030 About COSORI�</a> 9031 </li><li class="dtc-footer__nav-link-item"> 9032 <a 9033 class="dtc-footer__nav-link" 9034 href="https://www.vesync.com/"target="_blank" rel="noopener noreferrer"> 9035 VeSync�<svg class="dtc-footer__external-icon" width="16" height="16" viewB
9035ox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M3.5 12.5l9-9M12.5 3.5H7M12.5 3.5V9" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></a> 9036 </li><li class="dtc-footer__nav-link-item"> 9037 <a 9038 class="dtc-footer__nav-link" 9039 href="https://levoit.com/"target="_blank" rel="noopener noreferrer"> 9040 Levoit�<svg class="dtc-footer__external-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M3.5 12.5l9-9M12.5 3.5H7M12.5 3.5V9" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></a> 9041 </li><li class="dtc-footer__nav-link-item"> 9042 <a 9043 class="dtc-footer__nav-link" 9044 href="https://etekcity.com/"target="_blank" rel="noopener noreferrer"> 9045 Etekcity�<svg class="dtc-footer__external-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M3.5 12.5l9-9M12.5 3.5H7M12.5 3.5V9" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></a> 9046 </li><li class="dtc-footer__nav-link-item"> 9047 <a 9048 class="dtc-footer__nav-link" 9049 href="https://jobs.lever.co/vesync"target="_blank" rel="noopener noreferrer"> 9050 Careers�<svg class="dtc-footer__external-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M3.5 12.5l9-9M12.5 3.5H7M12.5 3.5V9" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></a> 9051 </li><li class="dtc-footer__nav-link-item"> 9052 <a 9053 class="dtc-footer__nav-link" 9054 href="https://cosori.com/pages/affiliates"> 9055 Affiliates�</a> 9056 </li><li class="dtc-footer__nav-link-item"> 9057 <a 9058 class="dtc-footer__nav-link" 9059 href="https://warranty.cosori.com/warranty"> 9060 Product Registration�</a> 9061 </li></ul> 9062 </div><div class="dtc-footer__nav-col"> 9063 <button 9064 class="dtc-footer__nav-heading" 9065 aria-expanded="false" 9066 aria-controls="dtc-footer-nav-sections--28135024623925__dtc-footer-4" 9067 > 9068 Explore 9069 <span class="dtc-footer__nav-toggle-icon" aria-hidden="true"> 9070 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4 6l4 4 4-4" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg> 9071 </span> 9072 </button> 9073 9074 <ul 9075 class="dtc-footer__nav-links" 9076 id="dtc-footer-nav-sections--28135024623925__dtc-footer-4" 9077 ><li class="dtc-footer__nav-link-item"> 9078 <a 9079 class="dtc-footer__nav-link" 9080 href="https://cosori.com/pages/coffee-story"> 9081 Coffee Hub�</a> 9082 </li><li class="dtc-footer__nav-link-item"> 9083 <a 9084 class="dtc-footer__nav-link" 9085 href="/pages/for-smart-kitchens"> 9086 For Smart Kitchens�</a> 9087 </li><li class="dtc-footer__nav-link-item"> 9088 <a 9089 class="dtc-footer__nav-link" 9090 href="/pages/user-manuals"> 9091 User Manuals�</a> 9092 </li></ul> 9093 </div><div class="dtc-footer__nav-col"> 9094 <button 9095 class="dtc-footer__nav-heading" 9096 aria-expanded="false" 9097 aria-controls="dtc-footer-nav-sections--28135024623925__dtc-footer-5" 9098 > 9099 Help Center
9100 <span class="dtc-footer__nav-toggle-icon" aria-hidden="true"> 9101 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4 6l4 4 4-4" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg> 9102 </span> 9103 </button> 9104 9105 <ul 9106 class="dtc-footer__nav-links" 9107 id="dtc-footer-nav-sections--28135024623925__dtc-footer-5" 9108 ><li class="dtc-footer__nav-link-item"> 9109 <a 9110 class="dtc-footer__nav-link" 9111 href="https://support.cosori.com/s/"> 9112 Help�</a> 9113 </li><li class="dtc-footer__nav-link-item"> 9114 <a 9115 class="dtc-footer__nav-link" 9116 href="/pages/shipping-and-delivery-cosori"> 9117 Shipping & Delivery Policy�</a> 9118 </li><li class="dtc-footer__nav-link-item"> 9119 <a 9120 class="dtc-footer__nav-link" 9121 href="/pages/returns-cosori"> 9122 Return Policy�</a> 9123 </li><li class="dtc-footer__nav-link-item"> 9124 <a 9125 class="dtc-footer__nav-link" 9126 href="https://cosori.com/pages/legal/privacy"> 9127 Privacy Policy�</a> 9128 </li><li class="dtc-footer__nav-link-item"> 9129 <a 9130 class="dtc-footer__nav-link" 9131 href="https://cosori.com/pages/legal/terms"> 9132 Terms of Use�</a> 9133 </li><li class="dtc-footer__nav-link-item"> 9134 <a 9135 class="dtc-footer__nav-link" 9136 href="https://cosori.com/pages/legal/cookie"> 9137 Cookie Policy�</a> 9138 </li><li class="dtc-footer__nav-link-item"> 9139 <a 9140 class="dtc-footer__nav-link" 9141 href="/pages/warranty-policy-cosori"> 9142 Warranty Policy�</a> 9143 </li><li class="dtc-footer__nav-link-item"> 9144 <a 9145 class="dtc-footer__nav-link" 9146 href="/pages/accessibility-cosori"> 9147 Accessibility�</a> 9148 </li><li class="dtc-footer__nav-link-item"> 9149 <a 9150 class="dtc-footer__nav-link" 9151 href="https://cosori.com/pages/state-cookware-disclosures"> 9152 California Privacy Rights�</a> 9153 </li><li class="dtc-footer__nav-link-item"> 9154 <a 9155 class="dtc-footer__nav-link" 9156 href="https://cosori.com/pages/state-cookware-disclosures"> 9157 State Cookware Disclosure�</a> 9158 </li><li class="dtc-footer__nav-link-item"> 9159 <a 9160 class="dtc-footer__nav-link" 9161 href="/pages/ca-sb-657-statement"> 9162 CA SB 657 Statment�</a> 9163 </li><li class="dtc-footer__nav-link-item"> 9164 <a 9165 class="dtc-footer__nav-link" 9166 href="/pages/student-beans"> 9167 Student Discount�</a> 9168 </li><li class="dtc-footer__nav-link-item"> 9169 <a 9170 class="dtc-footer__nav-link" 9171 href="https://security.vesync.com/"target="_blank" rel="noopener noreferrer"> 9172 VeSync Security�<svg class="dtc-footer__external-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M3.5 12.5l9-9M12.5 3.5H7M12.5 3.5V9" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></a> 9173 </li></ul> 9174 </div></nav></div><div class="dtc-footer__divider" role="separator" aria-hidden="true"></div><div class="dtc-footer__bottom-bar"><ul class="dtc-footer__legal-links" aria-label="Legal links"><li><a class="dtc-footer__legal-link" href="https://cosori.com/pages/legal/privacy">Privacy Policy</a></li><li><a class="dtc-footer__legal-link" href="https://cosori.com/pages/legal/terms">Terms of Use</a></li><li><a class="dtc-footer__legal-link" href="https://cosori.com/pages/accessibility-cosori">Accessibility Policy</a></li></ul><ul class="dtc-footer__cert-badges" aria-label="Certifications"></ul></div> 9175 9176 </div> 9177</footer> 9178</dtc-footer></section> 9179<!-- END sections: dtc-footer-group --> 9180 9181 <ul hidden> 9182 <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li> 9183 <li id="a11y-new-window-message">Opens in a new window.</li> 9184 </ul> 9185 9186
9186<script> 9187 window.shopUrl = 'https://cosori.com'; 9188 window.routes = { 9189 cart_add_url: '/cart/add', 9190 cart_change_url: '/cart/change', 9191 cart_update_url: '/cart/update', 9192 cart_url: '/cart', 9193 predictive_search_url: '/search/suggest', 9194 }; 9195 9196 window.cartStrings = { 9197 error: `There was an error while updating your cart. Please try again.`, 9198 quantityError: `You can only add [quantity] of this item to your cart.`, 9199 }; 9200 9201 window.variantStrings = { 9202 addToCart: `Add to cart`, 9203 soldOut: `Sold out`, 9204 unavailable: `Unavailable`, 9205 unavailable_with_option: `[value] - Unavailable`, 9206 }; 9207 9208 window.quickOrderListStrings = { 9209 itemsAdded: `[quantity] items added`, 9210 itemAdded: `[quantity] item added`, 9211 itemsRemoved: `[quantity] items removed`, 9212 itemRemoved: `[quantity] item removed`, 9213 viewCart: `View cart`, 9214 each: `[money]/ea`, 9215 }; 9216 9217 window.accessibilityStrings = { 9218 imageAvailable: `Image [index] is now available in gallery view`, 9219 shareSuccess: `Link copied to clipboard`, 9220 pauseSlideshow: `Pause slideshow`, 9221 playSlideshow: `Play slideshow`, 9222 recipientFormExpanded: `Gift card recipient form expanded`, 9223 recipientFormCollapsed: `Gift card recipient form collapsed`, 9224 countrySelectorSearchCount: `[count] countries/regions found`, 9225 }; 9226 </script>
9226<script src="//cosori.com/cdn/shop/t/166/assets/predictive-search.js?v=177118469785996549821789674181" defer="defer"></script>
9226 9227 <link href="//cosori.com/cdn/shop/t/166/assets/customer.css?v=141224120013978791891789674181" rel="stylesheet" type="text/css" media="all" /> 9228 9229<div class="custom_recipe_popup"> 9230 <div class="custom_recipe_popup_content"> 9231 <div class="customer login "> 9232 <div class="login_header"> 9233 <h2 class="title_login" id="login" tabindex="-1">Save this post to your account</h2> 9234 9235 9236 9237<svg class="customer_pages icon icon-close" width="16" height="16" viewBox="0 0 17 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 9238 <path fill-rule="evenodd" clip-rule="evenodd" d="M2.31794 0.363246C1.91626 -0.0384324 1.26499 -0.0384323 0.863316 0.363247C0.461637 0.764925 0.461637 1.41619 0.863316 1.81787L7.04545 8L0.863316 14.1821C0.461637 14.5838 0.461637 15.2351 0.863316 15.6368C1.26499 16.0384 1.91626 16.0384 2.31794 15.6368L8.50007 9.45462L14.6822 15.6368C15.0838 16.0384 15.7351 16.0384 16.1368 15.6368C16.5385 15.2351 16.5384 14.5838 16.1368 14.1821L9.95469 8L16.1368 1.81787C16.5384 1.41625 16.5385 0.764926 16.1368 0.363247C15.7351 -0.0384316 15.0838 -0.0383736 14.6822 0.363246L8.50007 6.54538L2.31794 0.363246Z" fill="currentColor"/> 9239 </svg> 9240 9241 </div> 9242 <div><form method="post" action="/account/login" id="customer_login" accept-charset="UTF-8" data-login-with-shop-sign-in="true" novalidate="novalidate" data-v-gtm-auth="login"><input type="hidden" name="form_type" value="customer_login" /><input type="hidden" name="utf8" value="â" /><div class="field custom_feild"> 9243 <label for="CustomerEmail"> Email: </label> 9244 <input 9245 type="email" 9246 name="customer[email]" 9247 id="CustomerEmail" 9248 autocomplete="email" 9249 autocorrect="off" 9250 autocapitalize="off" 9251 9252 placeholder="Email" 9253 > 9254 </div><div class="field custom_feild"> 9255 <label for="CustomerPassword"> Password: </label> 9256 <input 9257 type="password" 9258 value="" 9259 name="customer[password]" 9260 id="CustomerPassword" 9261 autocomplete="current-password" 9262 9263 placeholder="Password" 9264 > 9265 </div><div class="btn_parent white_border"> 9266 <button class="button"> 9267 Sign in 9268 </button> 9269 </div> 9270 <div class="btn_account_sign "> 9271 Don't have an account? 9272 <a href="/account/register" data-v-gtm-auth="sign_up"> Sign up </a> 9273 </div></form></div></div> 9274 </div> 9275</div> 9276 9277 9278 9279 <!-- Start of cosori Zendesk Widget script --> 9280 <!-- 9281
9281<script 9282 id="ze-snippet" 9283 src="https://static.zdassets.com/ekr/snippet.js?key=c73e0113-abb9-4e6c-b752-501aaf0909e5" 9284 ></script>
9284 9285 --> 9286 <!-- End of cosori Zendesk Widget script --> 9287 9288 9289 9290 9291�
9291<script> 9292 window.dataLayer = window.dataLayer || []; 9293 9294 window.dataLayer.push({ 9295 user_id: undefined, 9296 login_status: "log out", 9297 site_section: "Shop", 9298 content_group: "Product Detail Page", 9299 blog_category: undefined, 9300 brand: 'Cosori', 9301 country_code: 'US', 9302 debug_mode: false 9303 }); 9304 9305 function setCookie(name, value, days) { 9306 var expires = ""; 9307 if (days) { 9308 var date = new Date(); 9309 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 9310 expires = "; expires=" + date.toUTCString(); 9311 } 9312 document.cookie = name + "=" + (value || "") + expires + "; path=/; SameSite=Lax"; 9313 } 9314 9315 var userId = undefined; 9316 9317 if (userId !== undefined) { 9318 setCookie('vsid', userId, 365); 9319 } else { 9320 setCookie('vsid', '', -1); 9321 } 9322</script>
9322 9323
9324<script>
vendor: 425 bytes, lines 9324-9334
9324 9325 (function (w, d, s, l, i) { 9326 w[l] = w[l] || []; 9327 w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); 9328 var f = d.getElementsByTagName(s)[0], 9329 j = d.createElement(s), 9330 dl = l != 'dataLayer' ? '&l=' + l : ''; 9331 j.async = true; 9332 j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; 9333 f.parentNode.insertBefore(j, f); 9334 })(window, document, 'script', 'dataLayer', '
9334GTM-PWGHF7VP
vendor: 5 bytes, line 9334
9334');
9335</script>
9335 9336 9337� 9338 9339
9339<script> 9340 /* klaviyo loader + init moved to <head> in layout/theme.liquid for faster form rendering */ 9341 var klaviyo = klaviyo || []; 9342 klaviyo.enable("backinstock",{ 9343 trigger: { 9344 product_page_text: "Notify Me", 9345 product_page_class: "btn button kl_notify_btn", 9346 product_page_text_align: "center", 9347 product_page_margin: "0px", 9348 replace_anchor: false 9349 }, 9350 modal: { 9351 headline: "{product_name}", 9352 body_content: "Sorry, we've sold out! Register your email address below to receive an email as this becomes available again.", 9353 email_field_label: "Email", 9354 button_label: "Notify me when available", 9355 subscription_success_label: "You're in! We'll let you know when it's back.", 9356 footer_content: '', 9357 additional_styles: "@import url('https://fonts.googleapis.com/css?family=Helvetica+Neue');", 9358 drop_background_color: "#000", 9359 background_color: "#fff", 9360 text_color: "#222", 9361 button_text_color: "#fff", 9362 button_background_color: "#FB914A", 9363 close_button_color: "#ccc", 9364 error_background_color: "#fcd6d7", 9365 error_text_color: "#C72E2F", 9366 success_background_color: "#d3efcd", 9367 success_text_color: "#1B9500" 9368 } 9369 }); 9370</script>
9370 9371 9372 <!-- Start of cosori Klaviyo Add-to-cart event tracker script --> 9373 9374 <!-- End of cosori Klaviyo Add-to-cart event tracker script --> 9375 9376 <!-- Start of 20251021 aspireiq, requested by US Peiti and Brandon --> 9377 9378 <!-- End of 20251021 aspireiq --> 9379 9380 <style> button.kl-teaser-UmvhY8 {z-index: 99 !important;} </style> 9381<div id="shopify-block-Ab3NWekVWZ0d1WEdmR__497739090016974244" class="shopify-block shopify-app-block insider-object-extension"> 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 9402
9403<script> 9404 window.insider_object = window.insider_object || {}; 9405 window.shopifyIO = true; 9406</script>
9406 9407 9408 9409 9410 9411
9411<script> 9412 window.insider_object.parsePrice = function (str) { 9413 str = (str || '').toString(); 9414 let price = 0; 9415 9416 price = str.replace(/[^0-9.,]/g, ''); 9417 9418 if (price.slice(-3).indexOf(',') !== -1) { 9419 price = parseFloat(str.replace(/[^0-9,]/g, '').replace(',', '.')) || 0; 9420 } else if (price.slice(-3).indexOf('.') !== -1) { 9421 price = parseFloat(str.replace(/[^0-9.]/g, '')) || 0; 9422 } else { 9423 price = parseFloat(str.replace(/[^0-9]/g, '')) || 0; 9424 } 9425 9426 return price; 9427 } 9428 </script>
9428 9429
9429<script> 9430 9431 9432 9433 9434 9435 9436 window.insider_object.page = { 9437 "version": "2.0", 9438 "type": "Product" 9439 }; 9440 9441 9442 9443 window.insider_object.product = { 9444 "id": "53460911227189", 9445 "name": "Juni⢠The Automatic Pour-Over Coffee Machine", 9446 "taxonomy": [ 9447 <!-- BEGIN app snippet: product-taxonomy --> 9448 9449 9450 9451 9452 "Home \u0026 Garden", 9453 9454 "Kitchen \u0026 Dining", 9455 9456 "Kitchen Appliances", 9457 9458 "Coffee Makers \u0026 Espresso Machines", 9459 9460 9461 9462 "Pour Over Coffee Makers" 9463 9464 9465 9466 9467<!-- END app snippet --> 9468 ], 9469 "currency": "USD", 9470 9471 "unit_price": window.insider_object.parsePrice("299.99"), 9472 "unit_sale_price": window.insider_object.parsePrice("299.99"), 9473 9474 "url": "https://cosori.com/products/juni-coffee-maker?variant=53460911227189", 9475 "stock": 2763, 9476 "product_image_url": "https://cosori.com/cdn/shop/files/PDP_Image01_1.png?v=1788295666", 9477 "description": "Brew barista-level, pour-over coffee without the guesswork. Juni is designed for all experience levels, from those new to pour-over with quick brew functionality and AI recipe generation, or expert-level brewers who want complete control of every parameter. With built-in taste intelligence, Juni adapts to your taste with each pour to achieve your perfect cup consistently.", 9478 "groupcode": "10566370951477", 9479 "quantity": 2763, 9480 "currency": "USD", 9481 "sku": "KAAPCMCSSUS0001Y", 9482 9483 "locale": "en_" + window.Shopify.country, 9484 9485 "in_stock": 1, 9486 "custom":{ 9487 "vendor": "COSORI", 9488 "tags": [], 9489 "product_type": "", 9490 "handle": "juni-coffee-maker", 9491 "product_id": "10566370951477", 9492 "barcode": "", 9493 "weight": "0", 9494 "weight_unit": "lb", 9495 "taxable": true, 9496 "requires_shipping": true, 9497 "inventory_management": "shopify", 9498 "inventory_policy": "deny" 9499 }, 9500 "variants": [{"id":53460911227189,"title":"Glass","option1":"Glass","option2":null,"option3":null,"sku":"KAAPCMCSSUS0001Y","requires_shipping":true,"taxable":true,"featured_image":{"id":67440796795189,"product_id":10566370951477,"position":1,"created_at":"2026-09-01T13:47:45-07:00","updated_at":"2026-09-01T13:47:46-07:00","alt":"Juni automatic pour-over coffee maker with glass carafe and SCA certification badge","width":1344,"height":1197,"src":"\/\/cosori.com\/cdn\/shop\/files\/PDP_Image01_1.png?v=1788295666","variant_ids":[53460911227189]},"available":true,"name":"Juni⢠The Automatic Pour-Over Coffee Machine - Glass","public_title":"Glass","options":["Glass"],"price":29999,"weight":0,"compare_at_price":29999,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":"Juni automatic pour-over coffee maker with glass carafe and SCA certification badge","id":56695870030133,"position":1,"preview_image":{"aspect_ratio":1.123,"height":1197,"width":1344,"src":"\/\/cosori.com\/cdn\/shop\/files\/PDP_Image01_1.png?v=1788295666"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":53460911259957,"title":"Stainless steel","option1":"Stainless steel","option2":null,"option3":null,"sku":"KAAPCMCSSUS0002Y","requires_shipping":true,"taxable":true,"featured_image":{"id":67548984181045,"product_id":10566370951477,"position":3,"created_at":"2026-09-07T00:45:49-07:00","updated_at":"2026-09-07T00:45:50-07:00","alt":"Juni automatic pour-over coffee maker with brew basket and glass carafe, front angle","width":699,"height":699,"src":"\/\/cosori.com\/cdn\/shop\/files\/JuniStainlessCarafeWhiteBackgroun
9500d_1.jpg?v=1788767150","variant_ids":[53460911259957]},"available":true,"name":"Juni⢠The Automatic Pour-Over Coffee Machine - Stainless steel","public_title":"Stainless steel","options":["Stainless steel"],"price":34999,"weight":0,"compare_at_price":29999,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":"Juni automatic pour-over coffee maker with brew basket and glass carafe, front angle","id":56803306930485,"position":3,"preview_image":{"aspect_ratio":1.0,"height":699,"width":699,"src":"\/\/cosori.com\/cdn\/shop\/files\/JuniStainlessCarafeWhiteBackground_1.jpg?v=1788767150"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}], 9501 }; 9502 9503 9504 9505 if ("material" === "size" || 9506 "material" === "color") { 9507 window.insider_object.product["material"] = "Glass"; 9508 } else { 9509 window.insider_object.product.custom["material"] = "Glass"; 9510 } 9511 9512 9513 9514 window.insider_object.visited_products = JSON.parse(window.localStorage.getItem('ins-shopify-products-info') || '{}').value || {}; 9515 window.insider_object.visited_products["10566370951477"] = { 9516 url: "https://cosori.com/products/juni-coffee-maker", 9517 taxonomy: [ 9518 <!-- BEGIN app snippet: product-taxonomy --> 9519 9520 9521 9522 9523 "Home \u0026 Garden", 9524 9525 "Kitchen \u0026 Dining", 9526 9527 "Kitchen Appliances", 9528 9529 "Coffee Makers \u0026 Espresso Machines", 9530 9531 9532 9533 "Pour Over Coffee Makers" 9534 9535 9536 9537 9538<!-- END app snippet --> 9539 ], 9540 }; 9541 window.localStorage.setItem('ins-shopify-products-info', JSON.stringify({ 9542 value: window.insider_object.visited_products, 9543 _expires: new Date().getTime() + 10*24*60*60*1000, 9544 })); 9545 9546 9547 </script>
9547 9548
9548<script> 9549 9550 window.insider_object.user = { 9551 "language" : "en".substring(0, 2) + "_US", 9552 "market_locale_id": "52010713397", 9553 "market_locale_handle": "us", 9554 "market_country_code": "US", 9555 "shop_locale": "en" 9556 }; 9557 9558 9559 window.localStorage.setItem('ins-shopify-user-language', JSON.stringify({ 9560 value: window.insider_object.user.language, 9561 _expires: new Date().getTime() + 10*24*60*60*1000, 9562 })); 9563 </script>
9563 9564 9565
9565<script> 9566 9567 window.insider_object.basket = { 9568 "currency": "USD" 9569 9570 }; 9571 </script>
9571 9572 <!-- BEGIN app snippet: cart-token-collector -->
9572<script> 9573 function throttle(func, limit) { 9574 let inThrottle; 9575 return function executedFunction(...args) { 9576 if (!inThrottle) { 9577 func(...args); 9578 inThrottle = true; 9579 setTimeout(function() { 9580 inThrottle = false; 9581 }, limit); 9582 } 9583 }; 9584 } 9585 9586 async function handleUserInfoUpdate() { 9587 const userInfo = { 9588 oldCartToken: window.localStorage.getItem('ins-old-cart-token'), 9589 oldInsiderId: window.localStorage.getItem('ins-old-insider-id'), 9590 newInsiderId: Insider.getUserId(), 9591 newCartToken: await getCartToken(), 9592 insiderSessionId: Insider.getUserSession() 9593 }; 9594 const isInfoChanged = userInfo.oldCartToken !== userInfo.newCartToken || 9595 userInfo.oldInsiderId !== userInfo.newInsiderId 9596 9597 if (!userInfo.newInsiderId || !userInfo.newCartToken || !userInfo.insiderSessionId) { 9598 return; 9599 } 9600 9601 if (isInfoChanged) { 9602 sendUserInfoRequest(userInfo); 9603 // Persist the Insider id as a Shopify cart attribute so it propagates into checkout, 9604 // where the Checkout UI extension reads `_insider_iid` to personalise recommendations. 9605 writeInsiderIdCartAttribute(userInfo.newInsiderId); 9606 } 9607 } 9608 9609 function writeInsiderIdCartAttribute(insiderId) { 9610 // Best-effort: a failed attribute write must never break the storefront. Guarded by the 9611 // caller (non-null insiderId + non-empty cart) and throttled/deduped like the rest of the snippet. 9612 // .catch() swallows network rejections so they never surface as an unhandledrejection. 9613 fetch(window.Shopify.routes.root + 'cart/update.json', { 9614 method: 'POST', 9615 headers: { 'Content-Type': 'application/json' }, 9616 body: JSON.stringify({ attributes: { _insider_iid: insiderId } }) 9617 }).catch(function () { 9618 /* swallow: cart-attribute write is non-critical */ 9619 }); 9620 } 9621 9622 function sendUserInfoRequest(userInfo) { 9623 let url = 9624 'https://sfyapp.useinsider.com/cart-token-collector/v2/save/' + 9625 Shopify.shop + 9626 '?' + 9627 'iid=' + userInfo.newInsiderId + 9628 '&ct=' + userInfo.newCartToken + 9629 '&sid=' + userInfo.insiderSessionId + 9630 '&oldCt=' + (userInfo.oldCartToken || ''); 9631 9632 let request = new XMLHttpRequest(); 9633 request.onload = function() { 9634 if (this.status >= 200 && this.status < 300) { 9635 setUserInfos(userInfo); 9636 } 9637 }; 9638 request.open('GET', url, true); 9639 request.send(); 9640 } 9641 9642 function setUserInfos(userInfo) { 9643 window.localStorage.setItem('ins-old-cart-token', userInfo.newCartToken); 9644 window.localStorage.setItem('ins-old-insider-id', userInfo.newInsiderId); 9645 } 9646 9647 async function getCartToken() { 9648 const response = await fetch(window.Shopify.routes.root + 'cart.js'); 9649 const data = await response.json(); 9650 9651 return data.item_count > 0 ? data.token : null; 9652 } 9653 9654 window.addEventListener('insider:api-initialized', throttle(handleUserInfoUpdate, 2000)); 9655 window.addEventListener('cart:amount:update', throttle(handleUserInfoUpdate, 2000)); 9656</script>
9656 9657<!-- END app snippet --> 9658 9659 9660 9661 9662 9663 9664 9665</div>
9665<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
9665 9666</body> 9667</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.