1<!doctype html> 2 3<html lang="en" dir="ltr"> 4 <head> 5<!-- Start of Booster Apps Seo-0.1-->
5<script type="application/ld+json"> 6 { 7 "@context": "https://schema.org", 8 "@type": "Organization", 9 "name": "Joe\u0026#39;y", 10 "url": "https://www.drinkjoey.com", 11 "description": "Deliciously smooth energy from 12 superfood ingredients. No jitters, no crashes, no coffee.","image": "https://www.drinkjoey.com/cdn/shop/t/105/assets/logo.png?v=25107", 12 "logo": "https://www.drinkjoey.com/cdn/shop/t/105/assets/logo.png?v=25107","sameAs": [""] 13 } 14</script>
14<script type="application/ld+json"> 15 { 16 "@context": "https://schema.org", 17 "@type": "WebSite", 18 "name": "Joe\u0026#39;y", 19 "url": "https://www.drinkjoey.com", 20 "potentialAction": { 21 "@type": "SearchAction", 22 "query-input": "required name=query", 23 "target": "https://www.drinkjoey.com/search?q={query}" 24 } 25 } 26</script>
26<!-- end of Booster Apps SEO --> 27 28 29 30 31 32 33 34<style>#footer-app,#home-product-pages-app{overflow-x:clip;}</style> 35 36 <meta charset="utf-8"> 37 <meta name="viewport" content="width=device-width, initial-scale=1.0, height=device-height, minimum-scale=1.0, maximum-scale=5.0"> 38 39 40<link rel="canonical" href="https://www.drinkjoey.com/"><link rel="shortcut icon" href="//www.drinkjoey.com/cdn/shop/files/Joe_y_Shopify_Square_Logo.png?v=1735544978&width=96"> 41 <link rel="apple-touch-icon" href="//www.drinkjoey.com/cdn/shop/files/Joe_y_Shopify_Square_Logo.png?v=1735544978&width=180"><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin><link rel="preload" href="//www.drinkjoey.com/cdn/fonts/instrument_sans/instrumentsans_n4.db86542ae5e1596dbdb28c279ae6c2086c4c5bfa.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="//www.drinkjoey.com/cdn/fonts/nunito/nunito_n4.fc49103dc396b42cae9460289072d384b6c6eb63.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="//www.drinkjoey.com/cdn/shop/files/mohr-black-webfont.woff2?v=15419162492476879935" as="font" type="font/woff2" crossorigin> 42 <link rel="preload" href="//www.drinkjoey.com/cdn/shop/files/mohr-semibold-webfont.woff2?v=3232129701942460624" as="font" type="font/woff2" crossorigin><meta property="og:type" content="website"> 43 <meta property="og:title" content="Joe'y⢠â Mushroom Coffee Alternative"><meta property="og:image" content="http://www.drinkjoey.com/cdn/shop/files/Joe_y_Shopify_Social_sharing_image.png?v=1735544567&width=2048"> 44 <meta property="og:image:secure_url" content="https://www.drinkjoey.com/cdn/shop/files/Joe_y_Shopify_Social_sharing_image.png?v=1735544567&width=2048"> 45 <meta property="og:image:width" content="1200"> 46 <meta property="og:image:height" content="628"><meta property="og:description" content="Deliciously smooth energy from 12 superfood ingredients. No jitters, no crashes, no coffee."><meta property="og:url" content="https://www.drinkjoey.com/"> 47<meta property="og:site_name" content="Joe'y"><meta name="twitter:card" content="summary"><meta name="twitter:title" content="Joe'y⢠â Mushroom Coffee Alternative"> 48 <meta name="twitter:description" content="Deliciously smooth energy from 12 superfood ingredients. No jitters, no crashes, no coffee."><meta name="twitter:image" content="https://www.drinkjoey.com/cdn/shop/files/Joe_y_Shopify_Social_sharing_image.png?crop=center&height=1200&v=1735544567&width=1200"> 49 <meta name="twitter:image:alt" content="">
49<script type="application/ld+json"> 50 { 51 "@context": "https://schema.org", 52 "@type": "BreadcrumbList", 53 "itemListElement": [{ 54 "@type": "ListItem", 55 "position": 1, 56 "name": "Home", 57 "item": "https://www.drinkjoey.com" 58 }] 59 } 60</script>
60<script type="application/ld+json"> 61 [ 62 { 63 "@context": "https://schema.org", 64 "@type": "WebSite", 65 "name": "Joe\u0026#39;y", 66 "url": "https:\/\/www.drinkjoey.com", 67 "potentialAction": { 68 "@type": "SearchAction", 69 "target": "https:\/\/www.drinkjoey.com\/search?q={search_term_string}", 70 "query-input": "required name=search_term_string" 71 } 72 }, 73 { 74 "@context": "https://schema.org", 75 "@type": "Organization", 76 "name": "Joe\u0026#39;y","logo": "https:\/\/www.drinkjoey.com\/cdn\/shop\/files\/Joe_y_Shopify_Social_sharing_image.png?v=1735544567\u0026width=1200","slogan": "Lasting energy with less caffeine.","sameAs": ["https:\/\/facebook.com\/drinkjoey","https:\/\/instagram.com\/drinkjoey","https:\/\/www.linkedin.com\/company\/drinkjoey\/","https:\/\/pinterest.com\/drinkjoey","https:\/\/tiktok.com\/@drinkjoey","https:\/\/youtube.com\/@drinkjoey"],"url": "https:\/\/www.drinkjoey.com" 77 } 78 ] 79 </script>
79<style>/* Typography (heading) */ 80 @font-face { 81 font-family: "Instrument Sans"; 82 font-weight: 400; 83 font-style: normal; 84 font-display: fallback; 85 src: url("//www.drinkjoey.com/cdn/fonts/instrument_sans/instrumentsans_n4.db86542ae5e1596dbdb28c279ae6c2086c4c5bfa.woff2") format("woff2"), 86 url("//www.drinkjoey.com/cdn/fonts/instrument_sans/instrumentsans_n4.510f1b081e58d08c30978f465518799851ef6d8b.woff") format("woff"); 87} 88 89@font-face { 90 font-family: "Instrument Sans"; 91 font-weight: 400; 92 font-style: italic; 93 font-display: fallback; 94 src: url("//www.drinkjoey.com/cdn/fonts/instrument_sans/instrumentsans_i4.028d3c3cd8d085648c808ceb20cd2fd1eb3560e5.woff2") format("woff2"), 95 url("//www.drinkjoey.com/cdn/fonts/instrument_sans/instrumentsans_i4.7e90d82df8dee29a99237cd19cc529d2206706a2.woff") format("woff"); 96} 97 98/* Typography (body) */ 99 @font-face { 100 font-family: Nunito; 101 font-weight: 400; 102 font-style: normal; 103 font-display: fallback; 104 src: url("//www.drinkjoey.com/cdn/fonts/nunito/nunito_n4.fc49103dc396b42cae9460289072d384b6c6eb63.woff2") format("woff2"), 105 url("//www.drinkjoey.com/cdn/fonts/nunito/nunito_n4.5d26d13beeac3116db2479e64986cdeea4c8fbdd.woff") format("woff"); 106} 107 108@font-face { 109 font-family: Nunito; 110 font-weight: 400; 111 font-style: italic; 112 font-display: fallback; 113 src: url("//www.drinkjoey.com/cdn/fonts/nunito/nunito_i4.fd53bf99043ab6c570187ed42d1b49192135de96.woff2") format("woff2"), 114 url("//www.drinkjoey.com/cdn/fonts/nunito/nunito_i4.cb3876a003a73aaae5363bb3e3e99d45ec598cc6.woff") format("woff"); 115} 116 117@font-face { 118 font-family: Nunito; 119 font-weight: 700; 120 font-style: normal; 121 font-display: fallback; 122 src: url("//www.drinkjoey.com/cdn/fonts/nunito/nunito_n7.37cf9b8cf43b3322f7e6e13ad2aad62ab5dc9109.woff2") format("woff2"), 123 url("//www.drinkjoey.com/cdn/fonts/nunito/nunito_n7.45cfcfadc6630011252d54d5f5a2c7c98f60d5de.woff") format("woff"); 124} 125 126@font-face { 127 font-family: Nunito; 128 font-weight: 700; 129 font-style: italic; 130 font-display: fallback; 131 src: url("//www.drinkjoey.com/cdn/fonts/nunito/nunito_i7.3f8ba2027bc9ceb1b1764ecab15bae73f86c4632.woff2") format("woff2"), 132 url("//www.drinkjoey.com/cdn/fonts/nunito/nunito_i7.82bfb5f86ec77ada3c9f660da22064c2e46e1469.woff") format("woff"); 133} 134 135:root { 136 /* Container */ 137 --container-max-width: 100%; 138 --container-xxs-max-width: 27.5rem; /* 440px */ 139 --container-xs-max-width: 42.5rem; /* 680px */ 140 --container-sm-max-width: 61.25rem; /* 980px */ 141 --container-md-max-width: 71.875rem; /* 1150px */ 142 --container-lg-max-width: 78.75rem; /* 1260px */ 143 --container-xl-max-width: 85rem; /* 1360px */ 144 --container-gutter: 1.25rem; 145 146 --section-vertical-spacing: 2.25rem; 147 --section-vertical-spacing-tight:2.5rem; 148 149 --section-stack-gap:1.75rem; 150 --section-stack-gap-tight:1.75rem; 151 152 /* Form settings */ 153 --form-gap: 1.25rem; /* Gap between fieldset and submit button */ 154 --fieldset-gap: 1rem; /* Gap between each form input within a fieldset */ 155 --form-control-gap: 0.625rem; /* Gap between input and label (ignored for floating label) */ 156 --checkbox-control-gap: 0.75rem; /* Horizontal gap between checkbox and its associated label */ 157 --input-padding-block: 0.65rem; /* Vertical padding for input, textarea and native select */ 158 --input-padding-inline: 0.8rem; /* Horizontal padding for input, textarea and native select */ 159 --checkbox-size: 0.875rem; /* Size (width and height) for checkbox */ 160 161 /* Other sizes */ 162 --sticky-area-height: calc(var(--announcement-bar-is-sticky, 0) * var(--announcement-bar-height, 0px) + var(--header-is-sticky, 0) * var(--header-is-visible, 1) * var(--header-height, 0px)); 163 164 /* RTL support */ 165 --transform-logical-flip: 1; 166 --transform-origin-start: left; 167 --transform-origin-end: right; 168 169 /** 170 * --------------------------------------------------------------------- 171 * TYPOGRAPHY 172 * --------------------------------------------------------------------- 173 */ 174 175 /* Font properties */ 176 --heading-font-family: "Instrument Sans", sans-serif;
177 --heading-font-weight: 400; 178 --heading-font-style: normal; 179 --heading-text-transform: uppercase; 180 --heading-letter-spacing: 0.18em; 181 --text-font-family: Nunito, sans-serif; 182 --text-font-weight: 400; 183 --text-font-style: normal; 184 --text-letter-spacing: 0.0em; 185 --button-font: var(--text-font-style) var(--text-font-weight) var(--text-sm) / 1.65 var(--text-font-family); 186 --button-text-transform: uppercase; 187 --button-letter-spacing: 0.18em; 188 189 /* Font sizes */--text-heading-size-factor: 1; 190 --text-h1: max(0.6875rem, clamp(1.375rem, 1.146341463414634rem + 0.975609756097561vw, 2rem) * var(--text-heading-size-factor)); 191 --text-h2: max(0.6875rem, clamp(1.25rem, 1.0670731707317074rem + 0.7804878048780488vw, 1.75rem) * var(--text-heading-size-factor)); 192 --text-h3: max(0.6875rem, clamp(1.125rem, 1.0335365853658536rem + 0.3902439024390244vw, 1.375rem) * var(--text-heading-size-factor)); 193 --text-h4: max(0.6875rem, clamp(1rem, 0.9542682926829268rem + 0.1951219512195122vw, 1.125rem) * var(--text-heading-size-factor)); 194 --text-h5: calc(0.875rem * var(--text-heading-size-factor)); 195 --text-h6: calc(0.75rem * var(--text-heading-size-factor)); 196 197 --text-xs: 0.75rem; 198 --text-sm: 0.8125rem; 199 --text-base: 0.875rem; 200 --text-lg: 1.0rem; 201 --text-xl: 1.125rem; 202 203 /* Rounded variables (used for border radius) */ 204 --rounded-full: 9999px; 205 --button-border-radius: 0.0rem; 206 --input-border-radius: 0.0rem; 207 208 /* Box shadow */ 209 --shadow-sm: 0 2px 8px rgb(0 0 0 / 0.05); 210 --shadow: 0 5px 15px rgb(0 0 0 / 0.05); 211 --shadow-md: 0 5px 30px rgb(0 0 0 / 0.05); 212 --shadow-block: px px px rgb(var(--text-primary) / 0.0); 213 214 /** 215 * --------------------------------------------------------------------- 216 * OTHER 217 * --------------------------------------------------------------------- 218 */ 219 220 --checkmark-svg-url: url(//www.drinkjoey.com/cdn/shop/t/105/assets/checkmark.svg?v=77552481021870063511790653094); 221 --cursor-zoom-in-svg-url: url(//www.drinkjoey.com/cdn/shop/t/105/assets/cursor-zoom-in.svg?v=53880737899771658811790653094); 222 } 223 224 [dir="rtl"]:root { 225 /* RTL support */ 226 --transform-logical-flip: -1; 227 --transform-origin-start: right; 228 --transform-origin-end: left; 229 } 230 231 @media screen and (min-width: 700px) { 232 :root { 233 /* Typography (font size) */ 234 --text-xs: 0.75rem; 235 --text-sm: 0.8125rem; 236 --text-base: 0.875rem; 237 --text-lg: 1.0rem; 238 --text-xl: 1.25rem; 239 240 /* Spacing settings */ 241 --container-gutter: 2rem; 242 } 243 } 244 245 @media screen and (min-width: 1000px) { 246 :root { 247 /* Spacing settings */ 248 --container-gutter: 3rem; 249 250 --section-vertical-spacing: 3.5rem; 251 --section-vertical-spacing-tight: 3.5rem; 252 253 --section-stack-gap:2.5rem; 254 --section-stack-gap-tight:2.5rem; 255 } 256 }:root {/* Overlay used for modal */ 257 --page-overlay: 0 0 0 / 0.4; 258 259 /* We use the first scheme background as default */ 260 --page-background: ; 261 262 /* Product colors */ 263 --on-sale-text: 227 44 43; 264 --on-sale-badge-background: 227 44 43; 265 --on-sale-badge-text: 255 255 255; 266 --sold-out-badge-background: 239 239 239; 267 --sold-out-badge-text: 0 0 0 / 0.65; 268 --custom-badge-background: 28 28 28; 269 --custom-badge-text: 255 255 255; 270 --star-color: 28 28 28; 271 272 /* Status colors */ 273 --success-background: 212 227 203; 274 --success-text: 48 122 7; 275 --warning-background: 253 241 224; 276 --warning-text: 237 138 0; 277 --error-background: 243 204 204; 278 --error-text: 203 43 43; 279 }.color-scheme--scheme-1 { 280 /* Color settings */--accent: 28 28 28; 281 --text-color: 28 28 28; 282 --background: 239 239 239 / 1.0; 283 --background-without-opacity: 239 239 239; 284 --background-gradient: ;--border-color: 207 207 207;/* Button colors */ 285 --button-background: 28 28 28; 286 --button-text-color: 255 255 255; 287 288 /* Circled buttons */ 289 --circle-button-background: 255 255 255; 290 --circle-button-text-color: 28 28 28; 291 }.shopify-section:has(.section-spacing.color-scheme--bg-609ecfcfee2f667ac6c12366fc6ece56) + .shopify-section:has(.section-spacing.color-scheme--bg-609ecfcfee2f667ac6c12366fc6ece56:not(.bordered-section)) .section-spacing { 292 padding-block-start: 0; 293 }.color-scheme--scheme-2 {
294 /* Color settings */--accent: 28 28 28; 295 --text-color: 28 28 28; 296 --background: 255 255 255 / 1.0; 297 --background-without-opacity: 255 255 255; 298 --background-gradient: ;--border-color: 221 221 221;/* Button colors */ 299 --button-background: 28 28 28; 300 --button-text-color: 255 255 255; 301 302 /* Circled buttons */ 303 --circle-button-background: 255 255 255; 304 --circle-button-text-color: 28 28 28; 305 }.shopify-section:has(.section-spacing.color-scheme--bg-54922f2e920ba8346f6dc0fba343d673) + .shopify-section:has(.section-spacing.color-scheme--bg-54922f2e920ba8346f6dc0fba343d673:not(.bordered-section)) .section-spacing { 306 padding-block-start: 0; 307 }.color-scheme--scheme-3 { 308 /* Color settings */--accent: 255 255 255; 309 --text-color: 255 255 255; 310 --background: 28 28 28 / 1.0; 311 --background-without-opacity: 28 28 28; 312 --background-gradient: ;--border-color: 62 62 62;/* Button colors */ 313 --button-background: 255 255 255; 314 --button-text-color: 28 28 28; 315 316 /* Circled buttons */ 317 --circle-button-background: 255 255 255; 318 --circle-button-text-color: 28 28 28; 319 }.shopify-section:has(.section-spacing.color-scheme--bg-c1f8cb21047e4797e94d0969dc5d1e44) + .shopify-section:has(.section-spacing.color-scheme--bg-c1f8cb21047e4797e94d0969dc5d1e44:not(.bordered-section)) .section-spacing { 320 padding-block-start: 0; 321 }.color-scheme--scheme-4 { 322 /* Color settings */--accent: 255 255 255; 323 --text-color: 255 255 255; 324 --background: 0 0 0 / 0.0; 325 --background-without-opacity: 0 0 0; 326 --background-gradient: ;--border-color: 255 255 255;/* Button colors */ 327 --button-background: 255 255 255; 328 --button-text-color: 28 28 28; 329 330 /* Circled buttons */ 331 --circle-button-background: 255 255 255; 332 --circle-button-text-color: 28 28 28; 333 }.shopify-section:has(.section-spacing.color-scheme--bg-3671eee015764974ee0aef1536023e0f) + .shopify-section:has(.section-spacing.color-scheme--bg-3671eee015764974ee0aef1536023e0f:not(.bordered-section)) .section-spacing { 334 padding-block-start: 0; 335 }.color-scheme--dialog { 336 /* Color settings */--accent: 28 28 28; 337 --text-color: 28 28 28; 338 --background: 255 255 255 / 1.0; 339 --background-without-opacity: 255 255 255; 340 --background-gradient: ;--border-color: 221 221 221;/* Button colors */ 341 --button-background: 28 28 28; 342 --button-text-color: 255 255 255; 343 344 /* Circled buttons */ 345 --circle-button-background: 255 255 255; 346 --circle-button-text-color: 28 28 28; 347 } 348</style> 349<title>Joe'y | Mushroom Coffee Alternative</title> 350<meta name="description" content="Deliciously smooth energy from 12 superfood ingredients. No jitters, no crashes, no coffee."> 351<link rel="preconnect" href="https://cdn.shopify.com"> 352<link rel="preconnect" href="https://cdn.shopify.com" crossorigin> 353<link rel="preload" as="font" type="font/woff2" crossorigin href="https://cdn.shopify.com/s/files/1/0558/5803/6906/files/basic_definition-webfont.woff2?v=1739392597"><link rel="preload" as="image" fetchpriority="high" href="https://cdn.shopify.com/s/files/1/0558/5803/6906/files/home-mug-bag.webp?v=1748548076&width=1200"> 354<link rel="preload" as="image" href="https://cdn.shopify.com/s/files/1/0558/5803/6906/files/preview_images/f684440392a849a8bbb2ac5bf8622b1d.thumbnail.0000000000.jpg?width=900"> 355<style> 356 /* Hero video box: show the first frame while the bundle's spinner would be up */ 357 .e9b8rml50 .e1gu53vy1 { 358 background: #f3e3c0 url("https://cdn.shopify.com/s/files/1/0558/5803/6906/files/preview_images/f684440392a849a8bbb2ac5bf8622b1d.thumbnail.0000000000.jpg?width=900") center / cover no-repeat; 359 } 360 .e9b8rml50 .e1gu53vy1 > :not(video) { display: none; } 361</style><style> 362 @font-face { 363 font-family: BasicDefinition; 364 src: url("https://cdn.shopify.com/s/files/1/0558/5803/6906/files/basic_definition-webfont.woff2?v=1739392597") format("woff2"), 365 url("https://cdn.shopify.com/s/files/1/0558/5803/6906/files/basic_definition-webfont.woff?v=1739392597") format("woff"); 366 font-display: swap; 367 } 368</style>
369<script> 370(function () { 371 try { if (document.fonts && document.fonts.load) document.fonts.load('1em BasicDefinition'); } catch (e) {} 372 373 /* ---- cap un-sized Shopify CDN images ---- */ 374 var CAP = 1200; 375 var HOST = /(cdn\.shopify\.com\/s\/files\/|\/cdn\/shop\/files\/)/; 376 var EXT = /\.(png|jpe?g|webp)(\?|$)/i; 377 function cap(v) { 378 if (typeof v !== 'string' || !HOST.test(v) || !EXT.test(v) || /[?&]width=/.test(v)) return v; 379 return v + (v.indexOf('?') === -1 ? '?' : '&') + 'width=' + CAP; 380 } 381 var setAttr = Element.prototype.setAttribute; 382 Element.prototype.setAttribute = function (name, value) { 383 try { 384 if (this instanceof HTMLImageElement && String(name).toLowerCase() === 'src') value = cap(value); 385 } catch (e) {} 386 return setAttr.call(this, name, value); 387 }; 388 try { 389 var d = Object.getOwnPropertyDescriptor(HTMLImageElement.prototype, 'src'); 390 if (d && d.set && d.get) { 391 Object.defineProperty(HTMLImageElement.prototype, 'src', { 392 configurable: true, enumerable: d.enumerable, get: d.get, 393 set: function (v) { d.set.call(this, cap(v)); } 394 }); 395 } 396 } catch (e) {} 397 398 /* ---- posters for Shopify-hosted videos ---- */ 399 var VID = /cdn\.shopify\.com\/videos\/c\/(?:o\/v|vp\/[0-9a-f]{32})\/([0-9a-f]{32})/i; 400 function poster(v) { 401 try { 402 if (v.getAttribute('poster')) return; 403 var s = v.getAttribute('src') || (v.querySelector('source') || {}).src || ''; 404 var m = VID.exec(s); 405 if (!m) return; 406 v.setAttribute('poster', 'https://cdn.shopify.com/s/files/1/0558/5803/6906/files/preview_images/' + m[1] + '.thumbnail.0000000000.jpg?width=900'); 407 } catch (e) {} 408 } 409 function scan(root) { 410 if (!root || !root.querySelectorAll) return; 411 if (root.tagName === 'VIDEO') poster(root); 412 var list = root.querySelectorAll('video'); 413 for (var i = 0; i < list.length; i++) poster(list[i]); 414 } 415 try { 416 new MutationObserver(function (muts) { 417 for (var i = 0; i < muts.length; i++) { 418 var m = muts[i]; 419 if (m.type === 'childList') { 420 for (var j = 0; j < m.addedNodes.length; j++) { 421 var n = m.addedNodes[j]; 422 if (n.nodeType === 1) scan(n.tagName === 'SOURCE' ? n.parentNode : n); 423 } 424 } 425 } 426 }).observe(document.documentElement, { childList: true, subtree: true }); 427 } catch (e) {} 428})(); 429</script>
vendor: 1 bytes, line 429
429
430<script> 431 // This allows to expose several variables to the global scope, to be used in scripts 432 window.themeVariables = { 433 settings: { 434 showPageTransition: null, 435 pageType: "index", 436 moneyFormat: "${{amount}}", 437 moneyWithCurrencyFormat: "${{amount}} USD", 438 currencyCodeEnabled: false, 439 cartType: "drawer", 440 staggerMenuApparition: true 441 }, 442 443 strings: { 444 addedToCart: "Added to your cart!", 445 closeGallery: "Close gallery", 446 zoomGallery: "Zoom picture", 447 errorGallery: "Image cannot be loaded", 448 shippingEstimatorNoResults: "Sorry, we do not ship to your address.", 449 shippingEstimatorOneResult: "There is one shipping rate for your address:", 450 shippingEstimatorMultipleResults: "There are several shipping rates for your address:", 451 shippingEstimatorError: "One or more error occurred while retrieving shipping rates:", 452 next: "Next", 453 previous: "Previous" 454 }, 455 456 mediaQueries: { 457 'sm': 'screen and (min-width: 700px)', 458 'md': 'screen and (min-width: 1000px)', 459 'lg': 'screen and (min-width: 1150px)', 460 'xl': 'screen and (min-width: 1400px)', 461 '2xl': 'screen and (min-width: 1600px)', 462 'sm-max': 'screen and (max-width: 699px)', 463 'md-max': 'screen and (max-width: 999px)', 464 'lg-max': 'screen and (max-width: 1149px)', 465 'xl-max': 'screen and (max-width: 1399px)', 466 '2xl-max': 'screen and (max-width: 1599px)', 467 'motion-safe': '(prefers-reduced-motion: no-preference)', 468 'motion-reduce': '(prefers-reduced-motion: reduce)', 469 'supports-hover': 'screen and (pointer: fine)', 470 'supports-touch': 'screen and (hover: none)' 471 } 472 };</script>
472<script> 473/* ============================================================================ 474 Joe'y image diet (2026-09-01) 475 ---------------------------------------------------------------------------- 476 The header's flavor menu ships three PNGs - Original_20.png, Vanilla_20.png, 477 Mocha_20.png - at **4167 x 4167** each, on every page load, with no srcset and 478 no loading attribute. They render at 0 x 0 until the menu is opened and at 479 roughly 60px after that. Measured: about 366 KB transferred each, ~1.1 MB a 480 page, and that is AFTER Shopify's automatic WebP conversion. The same file at 481 ?width=400 is 27 KB. 482 483 Their URLs are hardcoded in the compiled bundle - they do not appear anywhere 484 in the server-rendered HTML - so there is no Liquid or theme setting to point 485 at a smaller asset. This intercepts the attribute write instead, before the 486 browser starts the fetch, and appends a width parameter that Shopify's CDN 487 honours. Verified: all three arrive at 27-28 KB and no full-size request is 488 made at all, so the rewrite lands ahead of the fetch rather than cancelling it. 489 490 Deliberately narrow: it only touches <img>, only the `src` attribute, only 491 those three filenames, and only when no width is already set. Everything else 492 falls through to the native setter untouched. 493 494 THE REAL FIX is to replace the source files with assets sized for their use 495 (they are ~70x larger than they render), which needs no code at all. Delete 496 this snippet when that happens, or when the rebuilt buy block renders the 497 menu from Liquid with a proper srcset. 498 ============================================================================ */ 499(function () { 500 var RE = /\/files\/(Original|Vanilla|Mocha)_20\.png/i; 501 var WIDTH = 400; 502 503 function slim(value) { 504 if (typeof value !== 'string') return value; 505 if (!RE.test(value)) return value; 506 if (value.indexOf('width=') > -1) return value; 507 return value + (value.indexOf('?') === -1 ? '?' : '&') + 'width=' + WIDTH; 508 } 509 510 var setAttr = Element.prototype.setAttribute; 511 Element.prototype.setAttribute = function (name, value) { 512 try { 513 if (this instanceof HTMLImageElement && String(name).toLowerCase() === 'src') { 514 value = slim(value); 515 } 516 } catch (e) {} 517 return setAttr.call(this, name, value); 518 }; 519 520 try { 521 var d = Object.getOwnPropertyDescriptor(HTMLImageElement.prototype, 'src'); 522 if (d && d.set && d.get) { 523 Object.defineProperty(HTMLImageElement.prototype, 'src', { 524 configurable: true, 525 enumerable: d.enumerable, 526 get: d.get, 527 set: function (v) { d.set.call(this, slim(v)); } 528 }); 529 } 530 } catch (e) {} 531})(); 532</script>
532<script> 533/* ============================================================================ 534 Joe'y PDP sold-out guard (added 2026-09-01) 535 ---------------------------------------------------------------------------- 536 PROBLEM: the buy block on /products/joey (React app in assets/home.js) only 537 sets a price from a size it can actually sell. When every size of the selected 538 flavor is unavailable, no size gets selected and the buy block goes quietly 539 wrong in three ways at once: 540 1. the frequency tiles keep whatever was on screen before: "$0 $0" on a 541 fresh load (what the hamburger menu link to Mocha showed on 2026-09-01) 542 or the previous flavor's price after a flavor switch (Mocha showing 543 Original's $48 / $60, which is worse than $0); 544 2. the size tiles show the generic "COMING SOON!" art, which is wrong for a 545 bag we have been selling since March, it is sold out; 546 3. Add to Cart still looks live. It is inert (verified 2026-09-01: a real 547 click adds nothing, while the same click on Original adds the starter 548 kit), so nothing oversells, but the customer gets a dead button with no 549 explanation. 550 Mocha's only SKU, JMS20R1 (20 servings), had gone out of stock at -47, DENY. 551 552 FIX, while the buy block has no size selected: 553 - hide the two price headings and show a copy of each carrying the correct 554 price for the selected flavor, read live from /products/<handle>.js 555 (public endpoint, no token). Subscribe price = list x 0.8, which is what 556 the app itself renders ($60/$48, $25/$20, $9.99/$7.99); 557 - and when that product has NO available variant at all, mark every size 558 the flavor really sells "BACK SOON" (sizes it does not sell keep the 559 "COMING SOON!" art, which is accurate for them) and turn Add to Cart into 560 a disabled BACK SOON button. 561 As soon as a size is selected again every copy and overlay is removed and the 562 app's own markup comes back. 563 564 The app's own DOM text is never rewritten. React keeps a handle on each price 565 text node and skips a re-render when its value is unchanged, so editing those 566 nodes in place leaves the edit stuck on screen after the flavor changes back 567 (Original rendering Mocha's $20 / $25 with the 60 serving size selected). 568 Hiding and copying keeps React's tree consistent with what React believes. 569 570 The BACK SOON tile is an overlay inset inside the existing tile art, so the 571 rounded border still comes from the image and the three tiles stay identical 572 in shape. `.size-item` carries `opacity: 0.5`, so the colours below are the 573 PRE-fade values: they were derived by sampling the rendered tile 574 (cream 249,228,190 / ink 177,141,131) and undoing the 50% blend against the 575 page background (247,223,212). Verified: the overlay renders within 4/255 of 576 the neighbouring COMING SOON tiles on every channel. 577 578 MAINTENANCE: keys off .flavor-item.selected img[alt], .size-item(.selected), 579 .frquent-item h3, .joey-freindly-buy-add-cart and the "60 serv" / "20 serv" / 580 "8 serv" variant titles, all of which come from the compiled app. If those are 581 renamed the guard stops firing and the page falls back to the $0 render. The 582 real fix belongs in the selector app source, which has no deploy path yet 583 (repo drift, see joey-pdp-selector-app in project memory). 584 ============================================================================ */ 585(function () { 586 var HANDLES = { 587 original: 'joey-flavor-original', 588 vanilla: 'joey-flavor-vanilla', 589 mocha: 'joey-flavor-mocha' 590 }; 591 /* Tile order on the page is 60, 20, 8. */ 592 var SIZE_ORDER = [/60\s*serv/i, /20\s*serv/i, /(8\s*serv|to.?go|sachet)/i]; 593 var TILE_CREAM = '#FBE9A8'; 594 var TILE_INK = '#6B3B32'; 595 var cache = {}; 596 var shown = []; 597 var overlays = []; 598 var shownKey = null; 599 var pending = false; 600 var timer = null; 601 602 function num(n) { 603 return (Math.round(n * 100) / 100).toFixed(2).replace(/\.00$/, ''); 604 } 605 606 function money(n) { 607 return '$' + num(n); 608 } 609 610 function load(handle) { 611 if (!cache[handle]) { 612 cache[handle] = fetch('/products/' + handle + '.js') 613 .then(function (r) { return r.ok ? r.json() : null; }) 614 .catch(function () { return null; }); 615 } 616 return cache[handle]; 617 } 618 619 /* Variant sitting in each size slot, or null when the flavor has no such bag. */ 620 function variantsBySize(product) { 621 var out = [null, null, null]; 622 if (!product || !product.variants) return out; 623 for (var i = 0; i < SIZE_ORDER.length; i++) { 624 for (var j = 0; j < product.variants.length; j++) { 625 if (SIZE_ORDER[i].test(product.variants[j].title || '')) { out[i] = product.variants[j]; break; } 626 } 627 } 628 return out; 629 } 630 631 /* Largest size the flavor actually sells: 60, then 20, then the 8 / to-go. */ 632 function headlineVariant(bySize, product) { 633 for (var i = 0; i < bySize.length; i++) if (bySize[i]) return bySize[i]; 634 return product && product.variants ? product.variants[0] : null; 635 } 636 637 function selectedHandle() { 638 var img = document.querySelector('.flavor-item.selected img[alt]'); 639 if (!img) return null; 640 return HANDLES[(img.getAttribute('alt') || '').trim().toLowerCase()] || null; 641 } 642 643 /* Only step in once the sizes have rendered and none of them is selected, 644 which is exactly the state where the app stops maintaining the price. */ 645 function stranded() { 646 if (!document.querySelectorAll('.size-item').length) return false;
647 return !document.querySelector('.size-item.selected'); 648 } 649 650 function setPrice(root, value) { 651 for (var i = 0; i < root.childNodes.length; i++) { 652 var n = root.childNodes[i]; 653 if (n.nodeType !== 3) continue; 654 var t = n.nodeValue || ''; 655 if (/^\s*\d[\d.,]*\s*$/.test(t)) { 656 n.nodeValue = t.replace(/\d[\d.,]*/, function () { return num(value); }); 657 } else if (/\$\s*\d[\d.,]*/.test(t)) { 658 n.nodeValue = t.replace(/\$\s*\d[\d.,]*/, function () { return money(value); }); 659 } 660 } 661 } 662 663 function hideAndCopy(original, decorate) { 664 var copy = original.cloneNode(true); 665 decorate(copy); 666 copy.setAttribute('data-joey-sold-out-guard', '1'); 667 original.parentNode.insertBefore(copy, original.nextSibling); 668 shown.push({ original: original, copy: copy, display: original.style.display }); 669 original.style.display = 'none'; 670 return copy; 671 } 672 673 function soldOutTile(tile) { 674 var position = tile.style.position; 675 var mark = document.createElement('div'); 676 mark.setAttribute('data-joey-sold-out-guard', '1'); 677 mark.style.cssText = 'position:absolute;top:4px;right:4px;bottom:4px;left:4px;' 678 + 'border-radius:6px;background:' + TILE_CREAM + ';color:' + TILE_INK + ';' 679 + 'display:flex;align-items:center;justify-content:center;text-align:center;' 680 + 'font-family:MohrBlack,sans-serif;font-size:20px;line-height:1.15;' 681 + 'letter-spacing:0.01em;text-transform:uppercase;pointer-events:none;'; 682 mark.textContent = 'Back soon'; 683 tile.style.position = 'relative'; 684 tile.appendChild(mark); 685 overlays.push({ tile: tile, mark: mark, position: position }); 686 } 687 688 function teardown() { 689 for (var i = 0; i < shown.length; i++) { 690 if (shown[i].copy.parentNode) shown[i].copy.parentNode.removeChild(shown[i].copy); 691 shown[i].original.style.display = shown[i].display; 692 } 693 shown = []; 694 for (var j = 0; j < overlays.length; j++) { 695 if (overlays[j].mark.parentNode) overlays[j].mark.parentNode.removeChild(overlays[j].mark); 696 overlays[j].tile.style.position = overlays[j].position; 697 } 698 overlays = []; 699 shownKey = null; 700 } 701 702 function intact() { 703 if (!shown.length) return false; 704 for (var i = 0; i < shown.length; i++) { 705 if (!document.contains(shown[i].copy)) return false; 706 if (!document.contains(shown[i].original)) return false; 707 if (shown[i].original.style.display !== 'none') return false; 708 } 709 for (var j = 0; j < overlays.length; j++) { 710 if (!document.contains(overlays[j].mark)) return false; 711 } 712 return true; 713 } 714 715 /* A heading with a <span> is the subscribe tile: its own text run holds the 716 subscribe price and the span holds the struck-through list price. */ 717 function build(key, sub, list, bySize, allSoldOut) { 718 if (shownKey === key && intact()) return; 719 teardown(); 720 721 var hs = document.querySelectorAll('.frquent-item h3'); 722 for (var i = 0; i < hs.length; i++) { 723 var h = hs[i]; 724 if ((h.textContent || '').indexOf('$') === -1) continue; 725 hideAndCopy(h, function (copy) { 726 var span = copy.querySelector('span'); 727 setPrice(copy, span ? sub : list); 728 if (span) setPrice(span, list); 729 }); 730 } 731 732 if (allSoldOut) { 733 var tiles = document.querySelectorAll('.size-item'); 734 for (var t = 0; t < tiles.length && t < bySize.length; t++) { 735 if (bySize[t]) soldOutTile(tiles[t]); 736 } 737 var atc = document.querySelector('.joey-freindly-buy-add-cart'); 738 if (atc) { 739 hideAndCopy(atc, function (copy) { 740 copy.style.pointerEvents = 'none'; 741 copy.style.opacity = '0.55'; 742 copy.style.cursor = 'default'; 743 copy.setAttribute('aria-disabled', 'true'); 744 var label = copy.firstElementChild || copy; 745 label.textContent = 'Back soon'; 746 }); 747 } 748 } 749 750 shownKey = shown.length ? key : null; 751 } 752 753 function fix() { 754 if (pending) return; 755 if (!stranded()) { 756 if (shown.length || overlays.length) teardown(); 757 return; 758 } 759 var handle = selectedHandle(); 760 if (!handle) return; 761 pending = true; 762 load(handle).then(function (product) { 763 pending = false;
764 if (!stranded()) return; 765 var bySize = variantsBySize(product); 766 var v = headlineVariant(bySize, product); 767 if (!v || !v.price) return; 768 var allSoldOut = true; 769 for (var i = 0; i < product.variants.length; i++) { 770 if (product.variants[i].available) { allSoldOut = false; break; } 771 } 772 var list = v.price / 100; 773 build(handle + ':' + v.id + ':' + allSoldOut, Math.round(list * 80) / 100, list, bySize, allSoldOut); 774 }); 775 } 776 777 function start() { 778 if (!document.getElementById('home-product-pages-app')) return; 779 fix(); 780 new MutationObserver(function () { 781 clearTimeout(timer); 782 timer = setTimeout(fix, 120); 783 }).observe(document.body, { childList: true, subtree: true, characterData: true }); 784 } 785 786 if (document.readyState === 'loading') { 787 document.addEventListener('DOMContentLoaded', start); 788 } else { 789 start(); 790 } 791})(); 792</script>
792<style> 793 /* ========================================================================== 794 Joe'y mobile fixes (2026-09-01) 795 -------------------------------------------------------------------------- 796 Two measured defects on the PDP, phones only. Desktop is deliberately left 797 pixel-identical: every rule sits inside the max-width query. 798 799 1. iOS Safari zooms the page when a focused form control is under 16px, and 800 does not zoom back out. Two controls on the PDP were under: the delivery 801 frequency combobox input (13px) and Okendo's review sort select (14px). 802 A customer tapping "deliver every 1 month" mid-purchase got thrown into a 803 zoomed, sideways-scrolling page. Only those two are raised. The quantity 804 input and the email field are already 20px and are not touched, because a 805 blanket rule would shrink them. 806 807 2. Twelve elements in the buy block render under 12px, some at 8px, and they 808 carry real merchandising ("NEW!", "MOST POPULAR!", the per-cup prices). 809 810 Sizes were checked against their containers before being raised: 811 .new-label 48px badge in a 113px tile -> 10px, fits 812 .new-label.most-populer 92px badge in a 366px card -> 10px, fits 813 .size-title full tile width -> 12px, fits 814 .new-label.kit-label 102px badge in a 113px tile -> LEFT AT 8px. 815 "FREE STARTER KIT!" already fills its tile; any bump overflows on a 816 phone, where the tile is ~104px. Needs shorter copy or a layout change, 817 not a font size. 818 .size-title.just-want-bag 159px inside a 113px tile -> LEFT AT 10px. 819 Already overflows its tile at the current size. Pre-existing; same 820 answer, it needs layout work. 821 822 Delete this snippet when the buy block is rebuilt in Liquid - the rebuilt 823 section should just use readable sizes to begin with. 824 ========================================================================== */ 825 @media (max-width: 767px) { 826 #home-product-pages-app input[type="text"] { font-size: 16px !important; } 827 [class*="oke-"] select { font-size: 16px !important; } 828 829 #home-product-pages-app .new-label { font-size: 10px !important; } 830 #home-product-pages-app .new-label.kit-label { font-size: 8px !important; } 831 #home-product-pages-app .size-title { font-size: 12px !important; } 832 #home-product-pages-app .size-title.just-want-bag { font-size: 10px !important; } 833 } 834</style><style> 835 /* ========================================================================== 836 Joe'y sticky add to cart (2026-09-01) 837 -------------------------------------------------------------------------- 838 Phones only. The PDP is long and the buy button scrolls away and never comes 839 back, which on a 70%-mobile store is the most-cited missing pattern on a 840 product page. This puts the current selection and price back in reach. 841 842 It does NOT add to cart itself. The real button lives inside the compiled 843 React app and only responds to a genuine pointer event (verified 844 2026-09-01: a programmatic .click() on it adds nothing, a real click adds 845 the item). So the bar scrolls back to the buy block and highlights it, which 846 is honest and cannot mis-add a variant. When the rebuilt Liquid buy block 847 lands, this can post to /cart/add directly. 848 849 Everything it shows is mirrored from what the buy block is already 850 rendering, so it inherits the price guard: a sold-out flavor shows the same 851 "Back soon" wording and the bar goes inert. 852 ========================================================================== */ 853 .joey-satc{ 854 position:fixed;left:0;right:0;bottom:0;z-index:40; 855 display:none;align-items:center;gap:12px; 856 padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px)); 857 background:#FAF0D6;border-top:2px solid #E3C4B4; 858 box-shadow:0 -6px 18px rgba(92,12,13,.10); 859 transform:translateY(110%);transition:transform .22s ease; 860 } 861 .joey-satc.is-on{transform:translateY(0)} 862 .joey-satc__info{min-width:0;flex:1;line-height:1.2} 863 .joey-satc__flavor{display:block;font-family:MohrBlack,sans-serif;font-size:13px;color:#5C0C0D;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} 864 .joey-satc__size{display:block;font-family:MohrSemibold,sans-serif;font-size:11px;color:#8A4418} 865 .joey-satc__price{font-family:MohrBlack,sans-serif;font-size:17px;color:#580D17;white-space:nowrap} 866 .joey-satc__price s{color:#A92C00;font-size:14px;margin-left:5px} 867 .joey-satc__btn{ 868 border:0;border-radius:24px;padding:13px 20px;min-height:44px; 869 font-family:MohrBlack,sans-serif;font-size:15px;letter-spacing:.02em;text-transform:uppercase; 870 cursor:pointer;white-space:nowrap; 871 /* Theme CSS sets `background-image: none` on buttons at a higher specificity
872 than a class rule can reach from here (verified 2026-09-01: the button 873 computed to `background-image: none` / transparent). !important is the 874 narrow fix - it applies to this one injected element and nothing on the 875 page reads these declarations. */ 876 background-color:#8A4418 !important; 877 background-image:linear-gradient(90deg,#7D3C11 0%,#BC7550 25%,#8A4418 45%,#661F0A 63.5%,#9D5A2E 100%) !important; 878 color:#FFF6E6 !important; 879 } 880 .joey-satc__btn[disabled]{opacity:.55;cursor:default} 881 @media (max-width: 767px){ .joey-satc{display:flex} } 882 @media (max-width: 767px){ body.joey-satc-on{padding-bottom:78px} } 883</style> 884
885<script> 886(function () { 887 function ready(fn) { 888 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', fn); 889 else fn(); 890 } 891 892 ready(function () { 893 if (!document.getElementById('home-product-pages-app')) return; 894 895 var bar = document.createElement('div'); 896 bar.className = 'joey-satc'; 897 bar.setAttribute('data-joey-satc', '1'); 898 bar.innerHTML = 899 '<span class="joey-satc__info">' + 900 '<span class="joey-satc__flavor" data-satc-flavor></span>' + 901 '<span class="joey-satc__size" data-satc-size></span>' + 902 '</span>' + 903 '<span class="joey-satc__price" data-satc-price></span>' + 904 '<button type="button" class="joey-satc__btn" data-satc-btn>Add to cart</button>'; 905 document.body.appendChild(bar); 906 907 var flavorEl = bar.querySelector('[data-satc-flavor]'); 908 var sizeEl = bar.querySelector('[data-satc-size]'); 909 var priceEl = bar.querySelector('[data-satc-price]'); 910 var btn = bar.querySelector('[data-satc-btn]'); 911 912 function realAtc() { 913 var all = document.querySelectorAll('.joey-freindly-buy-add-cart'); 914 for (var i = 0; i < all.length; i++) { 915 if (all[i].style.display !== 'none' && all[i].getBoundingClientRect().height > 0) return all[i]; 916 } 917 return null; 918 } 919 920 function buyBlock() { 921 return document.querySelector('.frquent-item') || document.getElementById('home-product-pages-app'); 922 } 923 924 /* Never write a value that is already there: the observer below watches the 925 whole body, and re-assigning identical text would keep waking it. */ 926 function set(el, value) { 927 if (el.textContent !== value) el.textContent = value; 928 } 929 930 /* Mirror whatever the buy block currently says. No independent source of 931 truth, so this cannot disagree with the page. */ 932 function sync() { 933 var atc = realAtc(); 934 if (!atc) return; 935 936 var img = document.querySelector('.flavor-item.selected img[alt]'); 937 set(flavorEl, img ? (img.getAttribute('alt') || '').trim() + " Joe'y" : "Joe'y"); 938 939 var selected = document.querySelector('.size-item.selected img[alt]'); 940 set(sizeEl, selected ? (selected.getAttribute('alt') || '').replace(/\bCup\b/i, 'cups') : ''); 941 942 /* The price guard hides the app's own heading and shows a corrected clone 943 beside it, so take the first heading that carries a price AND is 944 actually visible. Reading the hidden one gives the stale price the 945 guard exists to suppress. */ 946 var chosen = document.querySelector('.frquent-item.selected') || document.querySelector('.frquent-item'); 947 /* The heading is "$48 <span>$60</span>": the span is the full price the 948 buy block strikes out. Keep that split so the bar strikes it out too 949 (fixed 2026-09-24: the bar used to flatten it to plain "$48 $60"). */ 950 var now = '', was = ''; 951 if (chosen) { 952 var hs = chosen.querySelectorAll('h3'); 953 for (var i = 0; i < hs.length; i++) { 954 if ((hs[i].textContent || '').indexOf('$') > -1 && hs[i].getBoundingClientRect().height > 0) { 955 var sp = hs[i].querySelector('span, s, del'); 956 was = sp && /\$\s*\d/.test(sp.textContent) ? sp.textContent.trim() : ''; 957 now = hs[i].textContent; 958 if (was) now = now.replace(sp.textContent, ''); 959 now = now.replace(/^\s*ONE-TIME PURCHASE\s*/i, '').trim(); 960 break; 961 } 962 } 963 } 964 var key = now + '|' + was; 965 if (priceEl.getAttribute('data-k') !== key) { 966 priceEl.setAttribute('data-k', key); 967 priceEl.textContent = now; 968 if (was) { 969 var strike = document.createElement('s'); 970 strike.textContent = was; 971 priceEl.appendChild(strike); 972 } 973 } 974 975 var label = (atc.textContent || '').trim(); 976 var buyable = /add to cart/i.test(label); 977 set(btn, buyable ? 'Add to cart' : label || 'Unavailable'); 978 if (btn.disabled !== !buyable) btn.disabled = !buyable; 979 } 980 981 btn.addEventListener('click', function () { 982 var target = buyBlock(); 983 if (!target) return; 984 target.scrollIntoView({ behavior: 'smooth', block: 'center' }); 985 var atc = realAtc(); 986 if (!atc) return; 987 atc.style.transition = 'box-shadow .25s ease'; 988 atc.style.boxShadow = '0 0 0 4px rgba(169,44,0,.45)'; 989 setTimeout(function () { atc.style.boxShadow = ''; }, 1400); 990 }); 991 992 /* Show the bar once the real button has scrolled above the viewport. 993 An IntersectionObserver was tried first and does not work here: the app 994 replaces the button element on every re-render, so the observer ends up
995 watching a detached node and stops firing. A rAF-throttled scroll read is 996 cheap and cannot go stale. */ 997 var ticking = false; 998 function place() { 999 var atc = realAtc(); 1000 /* The body padding is toggled WITH the bar, never on mount. The app div 1001 is present on the homepage too, where there is no buy block and the bar 1002 therefore never shows: reserving 78px there left a strip of body 1003 background below the footer on phones (found on the live site 1004 2026-09-01, right after publish). */ 1005 var on = !!atc && atc.getBoundingClientRect().bottom < 0; 1006 bar.classList.toggle('is-on', on); 1007 document.body.classList.toggle('joey-satc-on', on); 1008 } 1009 /* rAF does NOT fire in a backgrounded tab (verified 2026-09-01: a hidden 1010 tab never ran the callback). Without the timer below, a customer who 1011 scrolls and then switches apps mid-scroll - the single most common thing 1012 that happens on a phone - leaves `ticking` stuck true, and the bar never 1013 updates again for the rest of the session. The timeout still fires while 1014 hidden, throttled, so it unsticks the flag and re-reads on return. */ 1015 function onScroll() { 1016 if (ticking) return; 1017 ticking = true; 1018 requestAnimationFrame(function () { ticking = false; place(); }); 1019 setTimeout(function () { if (ticking) { ticking = false; place(); } }, 250); 1020 } 1021 window.addEventListener('scroll', onScroll, { passive: true }); 1022 window.addEventListener('resize', place, { passive: true }); 1023 document.addEventListener('visibilitychange', function () { ticking = false; place(); }); 1024 1025 var t = null; 1026 new MutationObserver(function () { 1027 clearTimeout(t); 1028 t = setTimeout(function () { sync(); place(); }, 150); 1029 }).observe(document.body, { childList: true, subtree: true, characterData: true }); 1030 1031 sync(); 1032 place(); 1033 }); 1034})(); 1035</script>
1035 1036<style> 1037 :root { 1038 --joey-plaid: 1039 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 .93 0 0 0 0 .8 0 0 0 .32 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E"), 1040 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.45 .75' numOctaves='4' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .12 0 0 0 0 .03 0 0 0 0 .02 0 0 0 .6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E"), 1041 repeating-linear-gradient(45deg, rgba(0,0,0,.07) 0 1px, transparent 1px 3px), 1042 repeating-linear-gradient(90deg, 1043 rgba(168,63,33,.62) 0 18px, transparent 18px 26px, 1044 rgba(255,212,87,.7) 26px 28px, transparent 28px 36px, 1045 rgba(246,139,31,.38) 36px 48px, transparent 48px 58px, 1046 rgba(20,4,4,.45) 58px 62px, transparent 62px 72px), 1047 repeating-linear-gradient(0deg, 1048 rgba(168,63,33,.62) 0 18px, transparent 18px 26px, 1049 rgba(255,212,87,.7) 26px 28px, transparent 28px 36px, 1050 rgba(246,139,31,.38) 36px 48px, transparent 48px 58px, 1051 rgba(20,4,4,.45) 58px 62px, transparent 62px 72px); 1052 --joey-plaid-size: 180px 180px, 220px 220px, auto, auto, auto; 1053 --joey-frame: 10px; 1054 } 1055 @media (max-width: 767px) { :root { --joey-frame: 6px; } } 1056 1057 aside.shopify-section--announcement-bar .announcement-bar:not([data-joey-sale-bar]) { 1058 position: relative; 1059 background-color: #5c0c0d !important; 1060 background-image: var(--joey-plaid) !important; 1061 background-size: var(--joey-plaid-size) !important; 1062 background-attachment: fixed !important; 1063 box-shadow: inset 0 3px 5px rgba(0,0,0,.28), inset 0 -3px 5px rgba(0,0,0,.28); 1064 padding-top: 9px !important; 1065 padding-bottom: 9px !important; 1066 } 1067 /* the message sits on a small felt patch */ 1068 aside.shopify-section--announcement-bar .announcement-bar:not([data-joey-sale-bar]) .prose { 1069 width: fit-content; 1070 max-width: calc(100% - 8px); 1071 margin-inline: auto; 1072 padding: 3px 14px 2px; 1073 border-radius: 5px; 1074 background-color: #5c0c0d; 1075 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 .93 0 0 0 0 .8 0 0 0 .22 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E"); 1076 box-shadow: 0 1px 3px rgba(0,0,0,.45); 1077 text-shadow: 0 1px 1px rgba(0,0,0,.35); 1078 } 1079 .announcement-bar__carousel { margin-left: 0 !important; } 1080 1081 /* plaid frame around the whole window: thin sides and bottom, the banner is 1082 the top. background-attachment: fixed lines the tartan up with the banner. 1083 Kept below the menu overlay (z 99998) so an open menu covers it. */ 1084 .joey-frame i { 1085 position: fixed; 1086 z-index: 99990; 1087 pointer-events: none; 1088 background-color: #5c0c0d; 1089 background-image: var(--joey-plaid); 1090 background-size: var(--joey-plaid-size); 1091 background-attachment: fixed; 1092 } 1093 .joey-frame .l { left: 0; top: var(--announcement-bar-height, 0px); bottom: 0; width: var(--joey-frame); box-shadow: 1px 0 3px rgba(0,0,0,.35); } 1094 .joey-frame .r { right: 0; top: var(--announcement-bar-height, 0px); bottom: 0; width: var(--joey-frame); box-shadow: -1px 0 3px rgba(0,0,0,.35); } 1095 .joey-frame .b { left: 0; right: 0; bottom: 0; height: var(--joey-frame); box-shadow: 0 -1px 3px rgba(0,0,0,.35); } 1096 /* keep the footer and the phone add-to-cart bar clear of the frame */ 1097 body { padding-bottom: var(--joey-frame); } 1098 .joey-satc { left: var(--joey-frame) !important; right: var(--joey-frame) !important; bottom: var(--joey-frame) !important; } 1099 @media (max-width: 767px) { body.joey-satc-on { padding-bottom: calc(78px + var(--joey-frame)); } } 1100 1101 /* falling leaves */ 1102 .joey-leaves { position: fixed; inset: 0; pointer-events: none; overflow: hidden; z-index: 2147483000; } 1103 .joey-leaf { position: absolute; top: -60px; will-change: transform; animation: joeyLeafFall var(--d) linear var(--delay) forwards; opacity: 0; } 1104 .joey-leaf svg { display: block; width: var(--s); height: var(--s); animation: joeyLeafSway var(--sw) ease-in-out var(--delay) infinite alternate; filter: drop-shadow(0 2px 2px rgba(60,12,6,.25)); } 1105 @keyframes joeyLeafFall {
1106 0% { transform: translate3d(0,0,0); opacity: 0; } 1107 6% { opacity: 1; } 1108 82% { opacity: 1; } 1109 100% { transform: translate3d(var(--drift), calc(100vh + 80px), 0); opacity: 0; } 1110 } 1111 @keyframes joeyLeafSway { 1112 0% { transform: translateX(calc(var(--sway) * -1)) rotate(calc(var(--r) - 35deg)) rotateY(0deg); } 1113 100% { transform: translateX(var(--sway)) rotate(calc(var(--r) + 35deg)) rotateY(30deg); } 1114 } 1115</style> 1116
1117<script> 1118(function () { 1119 function add() { 1120 if (!document.body || document.querySelector('.joey-frame')) return; 1121 var f = document.createElement('div'); 1122 f.className = 'joey-frame'; 1123 f.setAttribute('aria-hidden', 'true'); 1124 f.innerHTML = '<i class="l"></i><i class="r"></i><i class="b"></i>'; 1125 document.body.appendChild(f); 1126 } 1127 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', add); 1128 else add(); 1129})(); 1130</script>
1130<script> 1131(function () { 1132 /* ---------- 1. headline ---------- */ 1133 var LINE1 = 'The coziest way to'; 1134 var LINE2 = 'cut back on coffee.'; 1135 var OLD = /old\s+cup\s+of\s+joe/i; /* the bundle uses non-breaking spaces */ 1136 1137 function patchHeadline() { 1138 var app = document.getElementById('home-product-pages-app'); 1139 if (!app) return false; 1140 var els = app.querySelectorAll('div, h1, h2, p'); 1141 for (var i = 0; i < els.length; i++) { 1142 var el = els[i]; 1143 var texts = []; 1144 for (var c = el.firstChild; c; c = c.nextSibling) if (c.nodeType === 3 && c.nodeValue.trim()) texts.push(c); 1145 if (texts.length < 1) continue; 1146 var joined = texts.map(function (t) { return t.nodeValue; }).join(' '); 1147 if (!OLD.test(joined)) continue; 1148 if (texts.length >= 2) { 1149 texts[0].nodeValue = LINE1; 1150 texts[texts.length - 1].nodeValue = LINE2; 1151 for (var k = 1; k < texts.length - 1; k++) texts[k].nodeValue = ''; 1152 } else { 1153 texts[0].nodeValue = LINE1 + ' ' + LINE2; 1154 } 1155 el.setAttribute('data-joey-headline', 'fall-2026'); 1156 fitHeadline(el); 1157 return true; 1158 } 1159 return false; 1160 } 1161 1162 /* The new line is longer than the old one. The hero keeps its old line's 1163 footprint (the bag photo sits right next to it), so shrink the new line 1164 until it is no wider than "old cup of joe." would be at this breakpoint. 1165 Measured with a hidden clone, so it stays right on every screen size. */ 1166 function fitHeadline(el) { 1167 if (!el || !el.parentNode) return; 1168 var probe = el.cloneNode(false); 1169 probe.removeAttribute('data-joey-headline'); 1170 probe.style.cssText = 'position:absolute;left:0;top:0;visibility:hidden;pointer-events:none;width:max-content;white-space:nowrap;'; 1171 probe.innerHTML = 'Itâs not your<br>old cup of joe.'; 1172 el.parentNode.appendChild(probe); 1173 var target = probe.getBoundingClientRect().width; 1174 var pcs = getComputedStyle(probe); 1175 var base = parseFloat(pcs.fontSize); 1176 var lh = parseFloat(pcs.lineHeight); 1177 el.parentNode.removeChild(probe); 1178 if (!target || !base) return; 1179 el.style.whiteSpace = 'nowrap'; 1180 el.style.width = 'max-content'; 1181 var f = base; 1182 /* Phones: the headline has the full column to itself, so let it grow 1183 a little and use that width instead of the old line's footprint. */ 1184 if (window.innerWidth < 768) { 1185 var ps = getComputedStyle(el.parentNode); 1186 var avail = el.parentNode.clientWidth - parseFloat(ps.paddingLeft) - parseFloat(ps.paddingRight); 1187 if (avail > target) { target = avail / 1.03; f = base * 1.3; } 1188 } 1189 function set() { 1190 el.style.fontSize = f + 'px'; 1191 if (lh) el.style.lineHeight = (lh * f / base) + 'px'; 1192 } 1193 set(); 1194 while (el.getBoundingClientRect().width > target * 1.03 && f > base * 0.6) { f -= 0.5; set(); } 1195 } 1196 1197 var done = null; 1198 var mo = new MutationObserver(function () { 1199 if (done && done.isConnected && done.lastChild && done.lastChild.nodeValue === LINE2) return; 1200 done = null; 1201 if (patchHeadline()) done = document.querySelector('[data-joey-headline]'); 1202 }); 1203 mo.observe(document.documentElement, { childList: true, subtree: true, characterData: true }); 1204 setTimeout(function () { mo.disconnect(); }, 30000); 1205 1206 function refit() { var el = document.querySelector('[data-joey-headline]'); if (el) fitHeadline(el); } 1207 var rt; 1208 window.addEventListener('resize', function () { clearTimeout(rt); rt = setTimeout(refit, 150); }); 1209 if (document.fonts && document.fonts.ready) document.fonts.ready.then(refit); 1210 window.addEventListener('load', refit); 1211 1212 /* ---------- 2. falling leaves ---------- */ 1213 function reduced() { 1214 try { return window.matchMedia('(prefers-reduced-motion: reduce)').matches; } catch (e) { return false; } 1215 } 1216 1217 var SHAPES = [ 1218 /* maple */ 1219 '<svg viewBox="0 0 100 100" aria-hidden="true"><path fill="C" d="M50 4l7 20 15-8-5 21 21-4-12 16 17 10-22 4 4 18-18-10-4 26h-6l-4-26-18 10 4-18-22-4 17-10-12-16 21 4-5-21 15 8z"/><path d="M50 50v44" stroke="rgba(60,12,6,.45)" stroke-width="2.5" fill="none"/></svg>', 1220 /* oval */ 1221 '<svg viewBox="0 0 100 100" aria-hidden="true"><path fill="C" d="M50 4C82 22 90 62 50 92 10 62 18 22 50 4z"/><path d="M50 10v88M50 40l-16-10M50 40l16-10M50 58l-20-12M50 58l20-12M50 74l-15-9M50 74l15-9" stroke="rgba(60,12,6,.4)" stroke-width="2.2" fill="none"/></svg>', 1222 /* oak */ 1223 '<svg viewBox="0 0 100 100" aria-hidden="true"><path fill="C" d="M50 4c8 4 6 12 4 16 8-3 14 2 10 10 8-2 13 6 6 12 8 2 9 10 1 14 6 5 2 13-6 11 2 8-6 12-12 8l-1 16h-4l-1-16c-6 4-14 0-12-8-8 2-12-6-6-11-8-4-7-12 1-14-7-6-2-14 6-12-4-8 2-13 10-10-2-4-4-12 4-16z"/><path d="M50 12v84" stroke="rgba(60,12,6,.4)" stroke-width="2.2" fill="none"/></svg>' 1224 ]; 1225 var COLORS = ['#A83F21', '#F68B1F', '#FFD457', '#C8651B', '#8E2A12', '#E0A030']; 1226 1227 function rand(a, b) { return a + Math.random() * (b - a); } 1228 1229 function leaves() { 1230 if (reduced() || !document.body) return; 1231 var small = window.innerWidth < 768; 1232 var count = small ? 14 : 26; 1233 var box = document.createElement('div'); 1234 box.className = 'joey-leaves'; 1235 box.setAttribute('aria-hidden', 'true'); 1236 var longest = 0; 1237 for (var i = 0; i < count; i++) { 1238 var leaf = document.createElement('div'); 1239 leaf.className = 'joey-leaf';
1240 var d = rand(4.5, 8), delay = rand(0, 2.6); 1241 longest = Math.max(longest, d + delay); 1242 leaf.style.left = rand(-3, 97) + 'vw'; 1243 leaf.style.setProperty('--d', d.toFixed(2) + 's'); 1244 leaf.style.setProperty('--delay', delay.toFixed(2) + 's'); 1245 leaf.style.setProperty('--s', Math.round(small ? rand(18, 32) : rand(22, 42)) + 'px'); 1246 leaf.style.setProperty('--sw', rand(1.1, 2.2).toFixed(2) + 's'); 1247 leaf.style.setProperty('--sway', Math.round(rand(14, 40)) + 'px'); 1248 leaf.style.setProperty('--drift', Math.round(rand(-80, 80)) + 'px'); 1249 leaf.style.setProperty('--r', Math.round(rand(-60, 60)) + 'deg'); 1250 leaf.innerHTML = SHAPES[i % SHAPES.length].replace('fill="C"', 'fill="' + COLORS[Math.floor(Math.random() * COLORS.length)] + '"'); 1251 box.appendChild(leaf); 1252 } 1253 document.body.appendChild(box); 1254 setTimeout(function () { if (box.parentNode) box.parentNode.removeChild(box); }, (longest + 0.5) * 1000); 1255 } 1256 1257 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', leaves); 1258 else leaves(); 1259})(); 1260</script>
1260<style> 1261 #home-product-pages-app [data-joey-headline], 1262 #home-product-pages-app .e9b8rml38, 1263 #home-product-pages-app .e9b8rml37, 1264 #home-product-pages-app .er33sk33{text-transform:none !important;letter-spacing:-0.015em !important;line-height:1.04 !important;font-family:MohrBlack,sans-serif !important;} 1265 #home-product-pages-app .e9b8rml39{text-align:center !important;margin-left:auto !important;margin-right:auto !important;} 1266 #home-product-pages-app .e9b8rml38, 1267 #home-product-pages-app .e9b8rml37{display:block !important;white-space:nowrap !important;font-size:calc(clamp(32px,3.8vw,58px) * var(--jt-s,1)) !important;} 1268 #home-product-pages-app .e9b8rml39 br{display:none !important;} 1269 #home-product-pages-app [data-joey-sub]{white-space:normal !important;} 1270 /* Phones (2026-09-25): titles sized so "Is it easy to make?" fits one line; first section title pushed below the 12-superfoods badge */ 1271 @media (max-width:767px){ 1272 #home-product-pages-app .e9b8rml38, 1273 #home-product-pages-app .e9b8rml37{font-size:calc(clamp(24px,7.4vw,32px) * var(--jt-s,1)) !important;} 1274 #home-product-pages-app [data-joey-first-title]{margin-top:110px !important;} 1275 /* Goodbye-to / Hello-to list: out from over the mug, side by side and centered under it */ 1276 #home-product-pages-app .e9b8rml27{position:static !important;width:100% !important;flex-direction:row !important;justify-content:center !important;gap:36px !important;margin:6px 0 18px !important;} 1277 #home-product-pages-app .e9b8rml27>.e9b8rml25, 1278 #home-product-pages-app .e9b8rml27>.e9b8rml24{width:auto !important;flex:0 0 auto !important;text-align:center !important;} 1279 } 1280</style> 1281<style id="joey-hero-size"></style>
1282<script> 1283(function () { 1284 var OLD_SUB = /12\s*\(surprisingly\)\s*delicious\s+superfoods\s*(\.+|â¦)?/i; 1285 var NEW_SUB = '12 superfoods. Zero coffee. Nothing else.'; 1286 var MAX = 46, MIN = 24, GAP = 16; 1287 var probe = null, lastFs = 0, alpha = {}; 1288 function getProbe(h) { 1289 if (probe) return probe; 1290 var cs = getComputedStyle(h); 1291 probe = document.createElement('div'); 1292 probe.setAttribute('aria-hidden', 'true'); 1293 probe.style.cssText = 'position:fixed;left:-9999px;top:0;visibility:hidden;pointer-events:none;white-space:nowrap;width:max-content;font-size:100px;letter-spacing:-0.015em;line-height:1;text-transform:none;'; 1294 probe.style.fontFamily = cs.fontFamily; 1295 probe.style.fontWeight = cs.fontWeight; 1296 probe.innerHTML = 'The coziest way to<br>cut back on coffee.'; 1297 document.body.appendChild(probe); 1298 return probe; 1299 } 1300 function loadAlpha(src) { 1301 if (alpha[src]) return; 1302 alpha[src] = { rows: null }; 1303 var im = new Image(); 1304 im.crossOrigin = 'anonymous'; 1305 im.onload = function () { 1306 try { 1307 var w = 200, hgt = Math.max(1, Math.round(200 * im.naturalHeight / im.naturalWidth)); 1308 var c = document.createElement('canvas'); c.width = w; c.height = hgt; 1309 var x = c.getContext('2d'); x.drawImage(im, 0, 0, w, hgt); 1310 var d = x.getImageData(0, 0, w, hgt).data, rows = []; 1311 for (var y = 0; y < hgt; y++) { 1312 var m = 1; 1313 for (var xx = 0; xx < w; xx++) { if (d[(y * w + xx) * 4 + 3] > 20) { m = xx / w; break; } } 1314 rows.push(m); 1315 } 1316 alpha[src].rows = rows; 1317 lastFs = 0; sizeHero(); 1318 } catch (e) {} 1319 }; 1320 im.src = src; 1321 } 1322 function opaqueLeft(img, b, top, bottom) { 1323 var src = img.currentSrc || img.src; 1324 loadAlpha(src); 1325 var rows = alpha[src] && alpha[src].rows; 1326 if (!rows) return b.left; 1327 var n = rows.length, y0 = Math.max(0, Math.floor((top - b.top) / b.height * n)), y1 = Math.min(n - 1, Math.ceil((bottom - b.top) / b.height * n)); 1328 var f = 1; 1329 for (var y = y0; y <= y1; y++) f = Math.min(f, rows[y]); 1330 return b.left + f * b.width; 1331 } 1332 function sizeHero() { 1333 var h = document.querySelector('#home-product-pages-app [data-joey-headline]'); 1334 if (!h || !h.parentNode || !document.body) return; 1335 var p = getProbe(h); 1336 var pr = p.getBoundingClientRect(); 1337 if (!pr.width) return; 1338 var col = h.parentNode; 1339 var ps = getComputedStyle(col); 1340 var cr = col.getBoundingClientRect(); 1341 var hr = h.getBoundingClientRect(); 1342 var gp = col.parentElement; 1343 var right = gp ? gp.getBoundingClientRect().right - GAP : cr.right; 1344 var beside = false;
1345 var tallest = hr.top + pr.height / 100 * MAX * 1.04; 1346 var imgs = document.querySelectorAll('#home-product-pages-app img'); 1347 for (var i = 0; i < imgs.length; i++) { 1348 var b = imgs[i].getBoundingClientRect(); 1349 if (b.width < 120 || b.left <= hr.left + 40) continue; 1350 if (b.top >= tallest || b.bottom <= hr.top) continue; 1351 beside = true; 1352 right = Math.min(right, opaqueLeft(imgs[i], b, hr.top, tallest) - GAP); 1353 } 1354 if (!beside) right = cr.right - parseFloat(ps.paddingRight); 1355 var avail = right - hr.left; 1356 if (avail <= 0) return; 1357 var fs = Math.floor(100 * avail * 0.98 / pr.width); 1358 fs = Math.max(MIN, Math.min(MAX, fs)); 1359 if (fs === lastFs) return; 1360 lastFs = fs; 1361 var st = document.getElementById('joey-hero-size'); 1362 if (st) st.textContent = '#home-product-pages-app [data-joey-headline]{font-size:' + fs + 'px !important;}'; 1363 } 1364 function fitTitles() { 1365 /* One size for every section title (Brendan 2026-09-25): the scale is set by 1366 whichever title's longest line is tightest, and applied to all of them. 1367 The long subline [data-joey-sub] is left out; it wraps instead. */ 1368 var boxes = document.querySelectorAll('#home-product-pages-app .e9b8rml39'); 1369 var g = 1; 1370 for (var i = 0; i < boxes.length; i++) { 1371 var b = boxes[i], avail = b.clientWidth; 1372 if (!avail) continue; 1373 var s = parseFloat(b.style.getPropertyValue('--jt-s')) || 1, widest = 0; 1374 var lines = b.querySelectorAll('.e9b8rml38, .e9b8rml37'); 1375 for (var j = 0; j < lines.length; j++) { 1376 if (lines[j].hasAttribute('data-joey-sub')) continue; 1377 var r = document.createRange(); r.selectNodeContents(lines[j]); 1378 widest = Math.max(widest, r.getBoundingClientRect().width / s); 1379 } 1380 if (widest) g = Math.min(g, avail * 0.98 / widest); 1381 } 1382 g = Math.floor(g * 1000) / 1000; 1383 for (var k = 0; k < boxes.length; k++) { 1384 var ks = parseFloat(boxes[k].style.getPropertyValue('--jt-s')) || 1; 1385 if (Math.abs(ks - g) > 0.004) boxes[k].style.setProperty('--jt-s', String(g)); 1386 } 1387 } 1388 function fix() { 1389 var app = document.getElementById('home-product-pages-app'); 1390 if (!app) return; 1391 var els = app.querySelectorAll('.e9b8rml37, .e9b8rml38'); 1392 for (var i = 0; i < els.length; i++) { 1393 for (var c = els[i].firstChild; c; c = c.nextSibling) { 1394 if (c.nodeType === 3 && OLD_SUB.test(c.nodeValue)) c.nodeValue = c.nodeValue.replace(OLD_SUB, NEW_SUB); 1395 if (c.nodeType === 3 && /easy to\s*$/i.test(c.nodeValue) && !/ $/.test(c.nodeValue)) c.nodeValue = c.nodeValue + ' '; 1396 } 1397 if (els[i].textContent.indexOf(NEW_SUB) > -1 && !els[i].hasAttribute('data-joey-sub')) els[i].setAttribute('data-joey-sub', ''); 1398 if (els[i].classList.contains('e9b8rml38') && /What.s in a cup/i.test(els[i].textContent)) { 1399 var box = els[i].closest('.e9b8rml39'); 1400 if (box && !box.hasAttribute('data-joey-first-title')) box.setAttribute('data-joey-first-title', ''); 1401 } 1402 } 1403 fitTitles(); 1404 sizeHero(); 1405 } 1406 var t; 1407 var mo = new MutationObserver(function () { clearTimeout(t); t = setTimeout(fix, 60); }); 1408 function start() { 1409 fix(); 1410 mo.observe(document.getElementById('home-product-pages-app') || document.documentElement, { childList: true, subtree: true, characterData: true }); 1411 setTimeout(function () { mo.disconnect(); }, 30000); 1412 } 1413 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', start); else start(); 1414 window.addEventListener('load', function () { fix(); setTimeout(sizeHero, 300); }); 1415 var rt; 1416 window.addEventListener('resize', function () { clearTimeout(rt); rt = setTimeout(function () { fitTitles(); sizeHero(); }, 150); }); 1417 if (document.fonts && document.fonts.ready) document.fonts.ready.then(function () { lastFs = 0; fitTitles(); sizeHero(); }); 1418})(); 1419</script>
1419<style> 1420 [id$="__announcement-bar"].shopify-section { z-index: 99998 !important; } 1421</style>
1422<script async crossorigin fetchpriority="high" src="/cdn/shopifycloud/importmap-polyfill/es-modules-shim.2.4.0.js"></script>
vendor: 1 bytes, line 1422
1422
1423<script type="importmap">{ 1424 "imports": { 1425 "vendor": "//www.drinkjoey.com/cdn/shop/t/105/assets/vendor.min.js?v=118757129943152772801790653094", 1426 "theme": "//www.drinkjoey.com/cdn/shop/t/105/assets/theme.js?v=145321480898471368621790653094", 1427 "photoswipe": "//www.drinkjoey.com/cdn/shop/t/105/assets/photoswipe.min.js?v=13374349288281597431790653094" 1428 } 1429 } 1430 </script>
1430 1431 1432
1432<script type="module" src="//www.drinkjoey.com/cdn/shop/t/105/assets/vendor.min.js?v=118757129943152772801790653094"></script>
1432 1433
1433<script type="module" src="//www.drinkjoey.com/cdn/shop/t/105/assets/theme.js?v=145321480898471368621790653094"></script>
1433 1434 1435
1435<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
1435<meta name="google-site-verification" content="2GEnPeCNexy_Y1hympuDWqthUvMBacXWHQQfhb3iZrI"> 1436<meta name="google-site-verification" content="XAAP3VegxsTn79zrWMxVfGgd6DdPTVrNQVpoGejgtn0"> 1437<meta name="facebook-domain-verification" content="01y9qfnt4lkbpft7uf2whx2io66nkq"> 1438<meta name="facebook-domain-verification" content="yzn3aw2g7n21cupxfqe6akv3kd2i8j"> 1439<meta name="facebook-domain-verification" content="c46vu4jo6eo145aaay4q1uz6lolqjt"> 1440<meta name="google-site-verification" content="hhS9Ly__OoOp6J9OPNZeW6JWBg3jMWgHwlwujlIL7Lc"> 1441<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/55858036906/digital_wallets/dialog"> 1442<meta id="in-context-paypal-metadata" data-shop-id="55858036906" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 1443<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
1443<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=2449244330"></script>
1443 1444<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
1445<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=2449244330&shop_id=55858036906" crossorigin="anonymous"></script>
vendor: 1 bytes, line 1445
1445
1446<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":55858036906,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/55858036906","merchantName":"Joe'y","requiredBillingContactFields":["postalAddress","email"],"requiredShippingContactFields":["postalAddress","email"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Joe'y","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 1446
1446
1447<script id="shopify-features" type="application/json">{"accessToken":"71c7991f4dd115db80926914fe0f1e63","betas":["rich-media-storefront-analytics"],"domain":"www.drinkjoey.com","predictiveSearch":true,"shopId":55858036906,"locale":"en"}</script>
vendor: 1 bytes, line 1447
1447
1448<script>var Shopify = Shopify || {}; 1449Shopify.shop = "respect-des-fonds.myshopify.com"; 1450Shopify.locale = "en"; 1451Shopify.currency = {"active":"USD","rate":"1.0"}; 1452Shopify.country = "US"; 1453Shopify.theme = {"name":"SEO: titles + descriptions back (09-29)","id":187423195306,"schema_name":"Prestige","schema_version":"10.7.0","theme_store_id":855,"role":"main"}; 1454Shopify.theme.handle = "null"; 1455Shopify.theme.style = {"id":null,"handle":null}; 1456Shopify.cdnHost = "www.drinkjoey.com/cdn"; 1457Shopify.routes = Shopify.routes || {}; 1458Shopify.routes.root = "/"; 1459Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 1460Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 1461Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 1462Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 1462
1462
1463<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 1463
1463
1464<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 1464
1464
1465<script> 1466 window.ShopifyPay = window.ShopifyPay || {}; 1467 window.ShopifyPay.apiHost = "shop.app\/pay"; 1468 window.ShopifyPay.redirectState = null; 1469</script>
vendor: 1 bytes, line 1469
1469
1470<script> 1471 window.Shopify = window.Shopify || {}; 1472 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 1473 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 1474 window.Shopify.SignInWithShop.eligible = true; 1475</script>
vendor: 1 bytes, line 1475
1475
1476<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
vendor: 1 bytes, line 1476
1476
1477<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 1477
1477
1478<script type="module"> 1479 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 1480 1481 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 1482 1483</script>
vendor: 1 bytes, line 1483
1483
1484<script> 1485 window.Shopify = window.Shopify || {}; 1486 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 1487 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"]}; 1488</script>
vendor: 1 bytes, line 1488
1488
1489<script>(function() { 1490 var isLoaded = false; 1491 function asyncLoad() { 1492 if (isLoaded) return; 1493 isLoaded = true; 1494 var urls = ["https:\/\/static.rechargecdn.com\/assets\/js\/widget.min.js?shop=respect-des-fonds.myshopify.com"]; 1495 for (var i = 0; i < urls.length; i++) { 1496 var s = document.createElement('script'); 1497 s.type = 'text/javascript'; 1498 s.async = true; 1499 s.src = urls[i]; 1500 var x = document.getElementsByTagName('script')[0]; 1501 x.parentNode.insertBefore(s, x); 1502 } 1503 }; 1504 if(window.attachEvent) { 1505 window.attachEvent('onload', asyncLoad); 1506 } else { 1507 window.addEventListener('load', asyncLoad, false); 1508 } 1509})();</script>
vendor: 1 bytes, line 1509
1509
1510<script id="__st">var __st={"a":55858036906,"offset":-25200,"reqid":"fa3a2db9-4207-4322-9771-d7920edb8aed-1791144950","pageurl":"www.drinkjoey.com\/","u":"2709a5b5702f","p":"home"};</script>
vendor: 1 bytes, line 1510
1510
1511<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 1511
1511
1512<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!1,!0)}();</script>
vendor: 1 bytes, line 1512
1512
1513<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.drinkjoey.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 1513
1513
1514<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 = "//www.drinkjoey.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>
1514<script crossorigin="anonymous" defer="defer" src="//www.drinkjoey.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 1514
1514
1515<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 1515
1515
1516<script> 1517 window.Shopify = window.Shopify || {}; 1518 window.Shopify.MCP = window.Shopify.MCP || {}; 1519 window.Shopify.MCP.enabled = true; 1520 window.Shopify.MCP.shop = "respect-des-fonds.myshopify.com"; 1521 window.Shopify.MCP.mcpEndpoint = "https:\/\/www.drinkjoey.com\/api\/mcp"; 1522 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"]}}]; 1523</script>
vendor: 1 bytes, line 1523
1523
1524<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("\/\/www.drinkjoey.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 1525</script>
vendor: 1 bytes, line 1525
1525
1526<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://www.drinkjoey.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 1527</script>
vendor: 1 bytes, line 1527
1527
1528<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 1529 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); 1530</script>
vendor: 1 bytes, line 1530
1530
1531<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 1532</script>
1532 1533<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.drinkjoey.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 1534<style id="shopify-accelerated-checkout-cart"> 1535 #shopify-buyer-consent { 1536 margin-top: 1em; 1537 display: inline-block; 1538 width: 100%; 1539} 1540 1541#shopify-buyer-consent.hidden { 1542 display: none; 1543} 1544 1545#shopify-subscription-policy-button { 1546 background: none; 1547 border: none; 1548 padding: 0; 1549 text-decoration: underline; 1550 font-size: inherit; 1551 cursor: pointer; 1552} 1553 1554#shopify-subscription-policy-button::before { 1555 box-shadow: none; 1556} 1557 1558 </style> 1559
1560<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
1560 1561 1562 1563 1564 1565<link href="//www.drinkjoey.com/cdn/shop/t/105/assets/theme.css?v=100252600308972364641790653094" rel="stylesheet" type="text/css" media="all" /><style> 1566 @font-face{font-family:'mohr-bold';src:url(//www.drinkjoey.com/cdn/shop/files/mohr-black-webfont.woff2?v=15419162492476879935) format('woff2'),url(//www.drinkjoey.com/cdn/shop/files/mohr-black-webfont.woff?v=17283674973405835481) format('woff');font-weight:700;font-style:normal;font-display:swap;} 1567 @font-face{font-family:'mohr-semibold';src:url(//www.drinkjoey.com/cdn/shop/files/mohr-semibold-webfont.woff2?v=3232129701942460624) format('woff2'),url(//www.drinkjoey.com/cdn/shop/files/mohr-semibold-webfont.woff?v=4214723708176290236) format('woff');font-weight:600;font-style:normal;font-display:swap;} 1568 </style><link href="//www.drinkjoey.com/cdn/shop/t/105/assets/index-iEgHy6o_.css?v=117052360089712125011790653094" rel="stylesheet" type="text/css" media="all" /><style> 1569 @font-face{font-family:"MohrBlack";src:url("//www.drinkjoey.com/cdn/shop/files/mohr-black-webfont.woff2?v=15419162492476879935") format("woff2");font-weight:normal;font-style:normal;font-display:swap;} 1570 @font-face{font-family:"MohrSemibold";src:url("//www.drinkjoey.com/cdn/shop/files/mohr-semibold-webfont.woff2?v=3232129701942460624") format("woff2");font-weight:normal;font-style:normal;font-display:swap;} 1571 @font-face{font-family:"MohrAltBlack";src:url("//www.drinkjoey.com/cdn/shop/files/MohrAlt-Black.otf?v=2522732506380928468") format("opentype");font-weight:normal;font-style:normal;font-display:swap;} 1572 @font-face{font-family:"MohrBold";src:url("//www.drinkjoey.com/cdn/shop/files/Mohr-Bold.otf?v=3515179194629886407") format("opentype");font-weight:normal;font-style:normal;font-display:swap;} 1573 </style> 1574 1575 1576 1577 1578 1579 1580<!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593
1593<script async src="https://static.klaviyo.com/onsite/js/SqCGnt/klaviyo.js?company_id=SqCGnt"></script>
1593 1594
1594<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>
1594 1595 1596 1597 1598 1599 1600 1601
1601<script> 1602 window.klaviyoReviewsProductDesignMode = false 1603 </script>
1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613<!-- 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 /> 1614<link rel='preconnect dns-prefetch' href='https://conf.config-security.com/' crossorigin />
1615<script> 1616/* >> TriplePixel :: start*/ 1617window.TriplePixelData={TripleName:"respect-des-fonds.myshopify.com",ver:"2.16",plat:"SHOPIFY",isHeadless:false,src:'SHOPIFY_EXT',product:{id:"",name:``,price:"",variant:"",av:{ }},search:"",collection:"",cart:"drawer",template:"index",curr:"USD" || "USD", market:"2944434346"},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); 1618/* << TriplePixel :: end*/ 1619</script>
1619 1620 1621 1622 1623<!-- END app block --><!-- BEGIN app block: shopify://apps/eg-auto-add-to-cart/blocks/app-embed/0f7d4f74-1e89-4820-aec4-6564d7e535d2 --> 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636
1636<script 1637 async 1638 type="text/javascript" 1639 src="https://cdn.506.io/eg/script.js?shop=respect-des-fonds.myshopify.com&v=12" 1640 ></script>
1640 1641 1642 1643 1644 1645 <meta id="easygift-shop" itemid="c2hvcF8kXzE3OTExNDQ5NTE=" content="{"isInstalled":true,"installedOn":"2025-11-12T06:12:36.891Z","appVersion":"3.0","subscriptionName":"Unlimited","cartAnalytics":true,"freeTrialEndsOn":null,"settings":{"reminderBannerStyle":{"position":{"horizontal":"right","vertical":"bottom"},"closingMode":"doNotAutoClose","cssStyles":"","displayAfter":5,"headerText":"","imageUrl":null,"primaryColor":"#000000","reshowBannerAfter":"everyNewSession","selfcloseAfter":5,"showImage":false,"subHeaderText":""},"addedItemIdentifier":"_Gifted","ignoreOtherAppLineItems":null,"customVariantsInfoLifetimeMins":1440,"redirectPath":null,"ignoreNonStandardCartRequests":false,"bannerStyle":{"position":{"horizontal":"right","vertical":"bottom"},"cssStyles":null,"primaryColor":"#000000"},"themePresetId":null,"notificationStyle":{"position":{"horizontal":null,"vertical":null},"cssStyles":null,"duration":null,"hasCustomizations":false,"primaryColor":null},"fetchCartData":false,"useLocalStorage":{"enabled":false,"expiryMinutes":null},"popupStyle":{"closeModalOutsideClick":true,"priceShowZeroDecimals":true,"addButtonText":null,"cssStyles":null,"dismissButtonText":null,"hasCustomizations":false,"imageUrl":null,"outOfStockButtonText":null,"primaryColor":null,"secondaryColor":null,"showProductLink":false,"subscriptionLabel":null},"refreshAfterBannerClick":false,"disableReapplyRules":false,"disableReloadOnFailedAddition":false,"autoReloadCartPage":false,"ajaxRedirectPath":null,"allowSimultaneousRequests":false,"applyRulesOnCheckout":false,"enableCartCtrlOverrides":true,"customRedirectFromCart":null,"scriptSettings":{"branding":{"removalRequestSent":null,"show":false},"productPageRedirection":{"enabled":false,"products":[],"redirectionURL":"\/"},"debugging":{"enabled":false,"enabledOn":null,"stringifyObj":false},"useFinalPriceGetEntireCart":false,"disableRedirectAfterFormSubmit":false,"customCSS":null,"decodePayload":false,"delayUpdates":2000,"enableBuyNowInterceptions":false,"fetchCartDataBeforeRequest":false,"fetchProductInfoFromSavedDomain":false,"hideAlertsOnFrontend":false,"hideGiftedPropertyText":false,"removeEGPropertyFromSplitActionLineItems":false,"removeProductsAddedFromExpiredRules":false,"useFinalPrice":false},"accessToEnterprise":false},"translations":null,"defaultLocale":"en","shopDomain":"www.drinkjoey.com"}"> 1646 1647
1648<script defer> 1649 (async function() { 1650 try { 1651 1652 const blockVersion = "v3" 1653 if (blockVersion != "v3") { 1654 return 1655 } 1656 1657 let metaErrorFlag = false; 1658 if (metaErrorFlag) { 1659 return 1660 } 1661 1662 // Parse metafields as JSON 1663 const metafields = {"easygift-rule-691425fd8b00f3a8826afe1c":{"schedule":{"enabled":false,"starts":null,"ends":null},"trigger":{"productTags":{"targets":[],"collectionInfo":null,"sellingPlan":null},"promoCode":null,"promoCodeDiscount":null,"type":"productsInclude","minCartValue":null,"hasUpperCartValue":false,"upperCartValue":null,"products":[{"name":"Joe'y to-go'y - Default Title","variantId":47610827604138,"variantGid":"gid:\/\/shopify\/ProductVariant\/47610827604138","productGid":"gid:\/\/shopify\/Product\/8291109929130","handle":"joey-to-goy","sellingPlans":[],"alerts":[],"_id":"691425fd8b00f3a8826afe1d"}],"collections":[],"condition":"quantity","conditionMin":3,"conditionMax":null,"collectionSellingPlanType":null},"action":{"notification":{"enabled":false,"headerText":null,"subHeaderText":null,"showImage":false,"imageUrl":""},"discount":{"type":"shpAutomatic","title":"FROTHYTOGOY","id":"gid:\/\/shopify\/DiscountAutomaticNode\/1489855578282","createdByEasyGift":true,"value":100,"discountType":"percentage","easygiftAppDiscount":false,"issue":null},"popupOptions":{"headline":null,"subHeadline":null,"showItemsPrice":false,"popupDismissable":false,"imageUrl":null,"persistPopup":false,"rewardQuantity":1,"showDiscountedPrice":false,"hideOOSItems":false,"showVariantsSeparately":false},"banner":{"enabled":false,"headerText":null,"imageUrl":null,"subHeaderText":null,"showImage":false,"displayAfter":"5","closingMode":"doNotAutoClose","selfcloseAfter":"5","reshowBannerAfter":"everyNewSession","redirectLink":null},"type":"addAutomatically","products":[{"name":"Froth'y - Default Title","variantId":"41764410556586","variantGid":"gid:\/\/shopify\/ProductVariant\/41764410556586","productGid":"gid:\/\/shopify\/Product\/7064716738730","quantity":1,"handle":"frothy","price":"18.00"}],"limit":1,"preventProductRemoval":false,"addAvailableProducts":false},"targeting":{"link":{"destination":null,"data":null,"cookieLifetime":14},"additionalCriteria":{"geo":{"include":[],"exclude":[]},"type":null,"customerTags":[],"customerTagsExcluded":[],"customerId":[],"orderCount":null,"hasOrderCountMax":false,"orderCountMax":null,"totalSpent":null,"hasTotalSpentMax":false,"totalSpentMax":null},"type":"all"},"settings":{"worksInReverse":true,"runsOncePerSession":false,"preventAddedItemPurchase":false,"showReminderBanner":false},"_id":"691425fd8b00f3a8826afe1c","name":"Free Frother with To-Goys","store":"69142552c95522827f6f6123","shop":"respect-des-fonds","active":true,"translations":null,"createdAt":"2025-11-12T06:15:25.200Z","updatedAt":"2025-11-12T06:15:25.200Z","__v":0}}; 1664 1665 // Process metafields in JavaScript 1666 let savedRulesArray = []; 1667 for (const [key, value] of Object.entries(metafields)) { 1668 if (value) { 1669 for (const prop in value) { 1670 // avoiding Object.Keys for performance gain -- no need to make an array of keys. 1671 savedRulesArray.push(value); 1672 break; 1673 } 1674 } 1675 } 1676 1677 const metaTag = document.createElement('meta'); 1678 metaTag.id = 'easygift-rules'; 1679 metaTag.content = JSON.stringify(savedRulesArray); 1680 metaTag.setAttribute('itemid', 'cnVsZXNfJF8xNzkxMTQ0OTUx'); 1681 1682 document.head.appendChild(metaTag); 1683 } catch (err) { 1684 1685 } 1686 })(); 1687</script>
1687 1688 1689 1690
1690<script 1691 type="text/javascript" 1692 defer 1693 > 1694 1695 (function () { 1696 try { 1697 window.EG_INFO = window.EG_INFO || {}; 1698 var shopInfo = {"isInstalled":true,"installedOn":"2025-11-12T06:12:36.891Z","appVersion":"3.0","subscriptionName":"Unlimited","cartAnalytics":true,"freeTrialEndsOn":null,"settings":{"reminderBannerStyle":{"position":{"horizontal":"right","vertical":"bottom"},"closingMode":"doNotAutoClose","cssStyles":"","displayAfter":5,"headerText":"","imageUrl":null,"primaryColor":"#000000","reshowBannerAfter":"everyNewSession","selfcloseAfter":5,"showImage":false,"subHeaderText":""},"addedItemIdentifier":"_Gifted","ignoreOtherAppLineItems":null,"customVariantsInfoLifetimeMins":1440,"redirectPath":null,"ignoreNonStandardCartRequests":false,"bannerStyle":{"position":{"horizontal":"right","vertical":"bottom"},"cssStyles":null,"primaryColor":"#000000"},"themePresetId":null,"notificationStyle":{"position":{"horizontal":null,"vertical":null},"cssStyles":null,"duration":null,"hasCustomizations":false,"primaryColor":null},"fetchCartData":false,"useLocalStorage":{"enabled":false,"expiryMinutes":null},"popupStyle":{"closeModalOutsideClick":true,"priceShowZeroDecimals":true,"addButtonText":null,"cssStyles":null,"dismissButtonText":null,"hasCustomizations":false,"imageUrl":null,"outOfStockButtonText":null,"primaryColor":null,"secondaryColor":null,"showProductLink":false,"subscriptionLabel":null},"refreshAfterBannerClick":false,"disableReapplyRules":false,"disableReloadOnFailedAddition":false,"autoReloadCartPage":false,"ajaxRedirectPath":null,"allowSimultaneousRequests":false,"applyRulesOnCheckout":false,"enableCartCtrlOverrides":true,"customRedirectFromCart":null,"scriptSettings":{"branding":{"removalRequestSent":null,"show":false},"productPageRedirection":{"enabled":false,"products":[],"redirectionURL":"\/"},"debugging":{"enabled":false,"enabledOn":null,"stringifyObj":false},"useFinalPriceGetEntireCart":false,"disableRedirectAfterFormSubmit":false,"customCSS":null,"decodePayload":false,"delayUpdates":2000,"enableBuyNowInterceptions":false,"fetchCartDataBeforeRequest":false,"fetchProductInfoFromSavedDomain":false,"hideAlertsOnFrontend":false,"hideGiftedPropertyText":false,"removeEGPropertyFromSplitActionLineItems":false,"removeProductsAddedFromExpiredRules":false,"useFinalPrice":false},"accessToEnterprise":false},"translations":null,"defaultLocale":"en","shopDomain":"www.drinkjoey.com"}; 1699 var productRedirectionEnabled = shopInfo.settings.scriptSettings.productPageRedirection.enabled; 1700 if (["Unlimited", "Enterprise"].includes(shopInfo.subscriptionName) && productRedirectionEnabled) { 1701 var products = shopInfo.settings.scriptSettings.productPageRedirection.products; 1702 if (products.length > 0) { 1703 var productIds = products.map(function(prod) { 1704 var productGid = prod.id; 1705 var productIdNumber = parseInt(productGid.split('/').pop()); 1706 return productIdNumber; 1707 }); 1708 var productInfo = null; 1709 var isProductInList = productIds.includes(productInfo.id); 1710 if (isProductInList) { 1711 var redirectionURL = shopInfo.settings.scriptSettings.productPageRedirection.redirectionURL; 1712 if (redirectionURL) { 1713 window.location = redirectionURL; 1714 } 1715 } 1716 } 1717 } 1718 1719 1720 } catch(err) { 1721 return 1722 }}
1722)() 1723 </script>
1723 1724 1725 1726 1727<!-- END app block --><!-- BEGIN app block: shopify://apps/okendo/blocks/theme-settings/bb689e69-ea70-4661-8fb7-ad24a2e23c29 --><!-- BEGIN app snippet: header-metafields --> 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 <style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/okendo-reviews-styles.18391d59.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/modules/okendo-star-rating.4cb378a8.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/modules/okendo-reviews-keywords.0942444f.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/modules/okendo-reviews-summary.a0c9d7d6.css"></style><style type="text/css">.okeReviews[data-oke-container],div.okeReviews{font-size:14px;font-size:var(--oke-text-regular);font-weight:400;font-family:var(--oke-text-fontFamily);line-height:1.6}.okeReviews[data-oke-container] *,.okeReviews[data-oke-container] :after,.okeReviews[data-oke-container] :before,div.okeReviews *,div.okeReviews :after,div.okeReviews :before{box-sizing:border-box}.okeReviews[data-oke-container] h1,.okeReviews[data-oke-container] h2,.okeReviews[data-oke-container] h3,.okeReviews[data-oke-container] h4,.okeReviews[data-oke-container] h5,.okeReviews[data-oke-container] h6,div.okeReviews h1,div.okeReviews h2,div.okeReviews h3,div.okeReviews h4,div.okeReviews h5,div.okeReviews h6{font-size:1em;font-weight:400;line-height:1.4;margin:0}.okeReviews[data-oke-container] ul,div.okeReviews ul{padding:0;margin:0}.okeReviews[data-oke-container] li,div.okeReviews li{list-style-type:none;padding:0}.okeReviews[data-oke-container] p,div.okeReviews p{line-height:1.8;margin:0 0 4px}.okeReviews[data-oke-container] p:last-child,div.okeReviews p:last-child{margin-bottom:0}.okeReviews[data-oke-container] a,div.okeReviews a{text-decoration:none;color:inherit}.okeReviews[data-oke-container] button,div.okeReviews button{border-radius:0;border:0;box-shadow:none;margin:0;width:auto;min-width:auto;padding:0;background-color:transparent;min-height:auto}.okeReviews[data-oke-container] button,.okeReviews[data-oke-container] input,.okeReviews[data-oke-container] select,.okeReviews[data-oke-container] textarea,div.okeReviews button,div.okeReviews input,div.okeReviews select,div.okeReviews textarea{font-family:inherit;font-size:1em}.okeReviews[data-oke-container] label,.okeReviews[data-oke-container] select,div.okeReviews label,div.okeReviews select{display:inline}.okeReviews[data-oke-container] select,div.okeReviews select{width:auto}.okeReviews[data-oke-container] article,.okeReviews[data-oke-container] aside,div.okeReviews article,div.okeReviews aside{margin:0}.okeReviews[data-oke-container] table,div.okeReviews table{background:transparent;border:0;border-collapse:collapse;border-spacing:0;font-family:inherit;font-size:1em;table-layout:auto}.okeReviews[data-oke-container] table td,.okeReviews[data-oke-container] table th,.okeReviews[data-oke-container] table tr,div.okeReviews table td,div.okeReviews table th,div.okeReviews table tr{border:0;font-family:inherit;font-size:1em}.okeReviews[data-oke-container] table td,.okeReviews[data-oke-container] table th,div.okeReviews table td,div.okeReviews table th{background:transparent;font-weight:400;letter-spacing:normal;padding:0;text-align:left;text-transform:none;vertical-align:middle}.okeReviews[data-oke-container] table tr:hover td,.okeReviews[data-oke-container] table tr:hover th,div.okeReviews table tr:hover td,div.okeReviews table tr:hover th{background:transparent}.okeReviews[data-oke-container] fieldset,div.okeReviews fieldset{border:0;padding:0;margin:0;min-width:0}.okeReviews[data-oke-container] img,.okeReviews[data-oke-container] svg,div.okeReviews img,div.okeReviews svg{max-width:none}.okeReviews[data-oke-container] div:empty,div.okeReviews div:empty{display:block}.okeReviews[data-oke-container] .oke-icon:before,div.okeReviews .oke-icon:before{font-family:oke-widget-icons!important;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:inherit}.okeReviews[data-oke-container] .oke-icon--select-arrow:before,div.okeReviews .oke-icon--select-arrow:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--loading:before,div.okeReviews .oke-icon--loading:before{content:"î¤"}
1741.okeReviews[data-oke-container] .oke-icon--pencil:before,div.okeReviews .oke-icon--pencil:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--filter:before,div.okeReviews .oke-icon--filter:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--play:before,div.okeReviews .oke-icon--play:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--tick-circle:before,div.okeReviews .oke-icon--tick-circle:before{content:"î¤
"}.okeReviews[data-oke-container] .oke-icon--chevron-left:before,div.okeReviews .oke-icon--chevron-left:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--chevron-right:before,div.okeReviews .oke-icon--chevron-right:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--thumbs-down:before,div.okeReviews .oke-icon--thumbs-down:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--thumbs-up:before,div.okeReviews .oke-icon--thumbs-up:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--close:before,div.okeReviews .oke-icon--close:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--chevron-up:before,div.okeReviews .oke-icon--chevron-up:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--chevron-down:before,div.okeReviews .oke-icon--chevron-down:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--star:before,div.okeReviews .oke-icon--star:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--magnifying-glass:before,div.okeReviews .oke-icon--magnifying-glass:before{content:"î¤"}@font-face{font-family:oke-widget-icons;src:url(https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/fonts/oke-widget-icons.ttf) format("truetype"),url(https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/fonts/oke-widget-icons.woff) format("woff"),url(https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/img/oke-widget-icons.bc0d6b0a.svg) format("svg");font-weight:400;font-style:normal;font-display:swap}.okeReviews[data-oke-container] .oke-button,div.okeReviews .oke-button{display:inline-block;border-style:solid;border-color:var(--oke-button-borderColor);border-width:var(--oke-button-borderWidth);background-color:var(--oke-button-backgroundColor);line-height:1;padding:12px 24px;margin:0;border-radius:var(--oke-button-borderRadius);color:var(--oke-button-textColor);text-align:center;position:relative;font-weight:var(--oke-button-fontWeight);font-size:var(--oke-button-fontSize);font-family:var(--oke-button-fontFamily);outline:0}.okeReviews[data-oke-container] .oke-button-text,.okeReviews[data-oke-container] .oke-button .oke-icon,div.okeReviews .oke-button-text,div.okeReviews .oke-button .oke-icon{line-height:1}.okeReviews[data-oke-container] .oke-button.oke-is-loading,div.okeReviews .oke-button.oke-is-loading{position:relative}.okeReviews[data-oke-container] .oke-button.oke-is-loading:before,div.okeReviews .oke-button.oke-is-loading:before{font-family:oke-widget-icons!important;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"î¤";color:undefined;font-size:12px;display:inline-block;animation:oke-spin 1s linear infinite;position:absolute;width:12px;height:12px;top:0;left:0;bottom:0;right:0;margin:auto}.okeReviews[data-oke-container] .oke-button.oke-is-loading>*,div.okeReviews .oke-button.oke-is-loading>*{opacity:0}.okeReviews[data-oke-container] .oke-button.oke-is-active,div.okeReviews .oke-button.oke-is-active{background-color:var(--oke-button-backgroundColorActive);color:var(--oke-button-textColorActive);border-color:var(--oke-button-borderColorActive)}.okeReviews[data-oke-container] .oke-button:not(.oke-is-loading),div.okeReviews .oke-button:not(.oke-is-loading){cursor:pointer}.okeReviews[data-oke-container] .oke-button:not(.oke-is-loading):not(.oke-is-active):hover,div.okeReviews .oke-button:not(.oke-is-loading):not(.oke-is-active):hover{background-color:var(--oke-button-backgroundColorHover);color:var(--oke-button-textColorHover);border-color:var(--oke-button-borderColorHover);box-shadow:0 0 0 2px var(--oke-button-backgroundColorHover)}.okeReviews[data-oke-container] .oke-button:not(.oke-is-loading):not(.oke-is-active):active,.okeReviews[data-oke-container] .oke-button:not(.oke-is-loading):not(.oke-is-active):hover:active,div.okeReviews .oke-button:not(.oke-is-loading):not(.oke-is-active):active,div.okeReviews .oke-button:not(.oke-is-loading):not(.oke-is-active):hover:active{background-color:var(--oke-button-backgroundColorActive);color:var(--oke-button-textColorActive);border-color:var(--oke-button-borderColorActive)}.okeReviews[data-oke-container] .oke-title,div.okeReviews .oke-title{font-weight:var(--oke-title-fontWeight);font-size:var(--oke-title-fontSize);font-family:var(--oke-title-fontFamily)}.okeReviews[data-oke-container] .oke-bodyText,div.okeReviews .oke-bodyText{font-weight:var(--oke-bodyText-fontWeight);font-size:var(--oke-bodyText-fontSize);font-family:var(--oke-bodyText-fontFamily)}.okeReviews[data-oke-container] .oke-linkButton,div.okeReviews .oke-linkButton{curs
1741or:pointer;font-weight:700;pointer-events:auto;text-decoration:underline}.okeReviews[data-oke-container] .oke-linkButton:hover,div.okeReviews .oke-linkButton:hover{text-decoration:none}.okeReviews[data-oke-container] .oke-readMore,div.okeReviews .oke-readMore{cursor:pointer;color:inherit;text-decoration:underline}.okeReviews[data-oke-container] .oke-select,div.okeReviews .oke-select{cursor:pointer;background-repeat:no-repeat;background-position-x:100%;background-position-y:50%;border:none;padding:0 24px 0 12px;-moz-appearance:none;appearance:none;color:inherit;-webkit-appearance:none;background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='currentColor' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");outline-offset:4px}.okeReviews[data-oke-container] .oke-select:disabled,div.okeReviews .oke-select:disabled{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='%239a9db1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.okeReviews[data-oke-container] .oke-loader,div.okeReviews .oke-loader{position:relative}.okeReviews[data-oke-container] .oke-loader:before,div.okeReviews .oke-loader:before{font-family:oke-widget-icons!important;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"î¤";color:var(--oke-text-secondaryColor);font-size:12px;display:inline-block;animation:oke-spin 1s linear infinite;position:absolute;width:12px;height:12px;top:0;left:0;bottom:0;right:0;margin:auto}.okeReviews[data-oke-container] .oke-a11yText,div.okeReviews .oke-a11yText{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.okeReviews[data-oke-container] .oke-hidden,div.okeReviews .oke-hidden{display:none}.okeReviews[data-oke-container] .oke-modal,div.okeReviews .oke-modal{bottom:0;left:0;overflow:auto;position:fixed;right:0;top:0;z-index:2147483647;max-height:100%;background-color:rgba(0,0,0,.5);padding:40px 0 32px}@media only screen and (min-width:1024px){.okeReviews[data-oke-container] .oke-modal,div.okeReviews .oke-modal{display:flex;align-items:center;padding:48px 0}}.okeReviews[data-oke-container] .oke-modal ::-moz-selection,div.okeReviews .oke-modal ::-moz-selection{background-color:rgba(39,45,69,.2)}.okeReviews[data-oke-container] .oke-modal ::selection,div.okeReviews .oke-modal ::selection{background-color:rgba(39,45,69,.2)}.okeReviews[data-oke-container] .oke-modal,.okeReviews[data-oke-container] .oke-modal p,div.okeReviews .oke-modal,div.okeReviews .oke-modal p{color:#272d45}.okeReviews[data-oke-container] .oke-modal-content,div.okeReviews .oke-modal-content{background-color:#fff;margin:auto;position:relative;will-change:transform,opacity;width:calc(100% - 64px)}@media only screen and (min-width:1024px){.okeReviews[data-oke-container] .oke-modal-content,div.okeReviews .oke-modal-content{max-width:1000px}}.okeReviews[data-oke-container] .oke-modal-close,div.okeReviews .oke-modal-close{cursor:pointer;position:absolute;width:32px;height:32px;top:-32px;padding:4px;right:-4px;line-height:1}.okeReviews[data-oke-container] .oke-modal-close:before,div.okeReviews .oke-modal-close:before{font-family:oke-widget-icons!important;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"î¤";color:#fff;font-size:24px;display:inline-block;width:24px;height:24px}.okeReviews[data-oke-container] .oke-modal-overlay,div.okeReviews .oke-modal-overlay{background-color:rgba(43,46,56,.9)}@media only screen and (min-width:1024px){.okeReviews[data-oke-container] .oke-modal--large .oke-modal-content,div.okeReviews .oke-modal--large .oke-modal-content{max-width:1200px}}.okeReviews[data-oke-container] .oke-modal .oke-helpful,.okeReviews[data-oke-container] .oke-modal .oke-helpful-vote-button,.okeReviews[data-oke-container] .oke-modal .oke-reviewContent-date,div.okeReviews .oke-modal .oke-helpful,div.okeReviews .oke-modal .oke-helpful-vote-button,div.okeReviews .oke-modal .oke-reviewContent-date{color:#676986}.oke-modal .okeReviews[data-oke-container].oke-w,.oke-modal div.okeReviews.oke-w{color:#272d45}.okeReviews[data-oke-container] .oke-tag,div.okeReviews .oke-tag{align-items:center;color:#272d45;display:flex;font-size:var(--oke-text-small);font-weight:600;text-align:left;position:relative;z-index:2;background-color:#f4f4f6;padding:4px 6px;border:none;border-radius:4px;gap:6px;line-height:1}.okeReviews[data-oke-container] .oke-tag svg,div.okeReviews .oke-tag svg{fill:currentColor;height:1rem}.okeReviews[data-oke-container] .hooper,div.okeReviews .hooper{height:auto}.okeReviews--left{text-align:left}.okeReviews--right{text-align:right}.okeReviews--center{text-align:center}.okeReviews :not([tabindex="-1"]):focus-visible{outline:5px auto highlight;outline:5px auto -webkit-focus-ring-color}.is-oke-modalOpen{overflow:hidden!important}img.oke-is-error{background-color:var(--oke-shadingColor);background-size:cover;background-position:50% 50%;box-shadow:inset 0 0 0 1px var(--oke-border-color)}@keyframes oke-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes oke-fade-in{0%{opacity:0}
1741to{opacity:1}}.layout-panel-flex>div:has([data-oke-container]){width:100%} 1742.oke-stars{line-height:1;position:relative;display:inline-block}.oke-stars-background svg{overflow:visible}.oke-stars-foreground{overflow:hidden;position:absolute;top:0;left:0}.oke-sr{display:inline-block;padding-top:var(--oke-starRating-spaceAbove);padding-bottom:var(--oke-starRating-spaceBelow)}.oke-sr .oke-is-clickable{cursor:pointer}.oke-sr--hidden{display:none}.oke-sr-count,.oke-sr-rating,.oke-sr-stars{display:inline-block;vertical-align:middle}.oke-sr-stars{line-height:1;margin-right:8px}.oke-sr-rating{display:none}.oke-sr-count--brackets:before{content:"("}.oke-sr-count--brackets:after{content:")"} 1743.oke-rk{display:block}.okeReviews[data-oke-container] .oke-reviewsKeywords-heading,div.okeReviews .oke-reviewsKeywords-heading{font-weight:700;margin-bottom:8px}.okeReviews[data-oke-container] .oke-reviewsKeywords-heading-skeleton,div.okeReviews .oke-reviewsKeywords-heading-skeleton{height:calc(var(--oke-button-fontSize) + 4px);width:150px}.okeReviews[data-oke-container] .oke-reviewsKeywords-list,div.okeReviews .oke-reviewsKeywords-list{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px}.okeReviews[data-oke-container] .oke-reviewsKeywords-list-category,div.okeReviews .oke-reviewsKeywords-list-category{background-color:var(--oke-filter-backgroundColor);color:var(--oke-filter-textColor);border:1px solid var(--oke-filter-borderColor);border-radius:var(--oke-filter-borderRadius);padding:6px 16px;transition:background-color .1s ease-out,border-color .1s ease-out;white-space:nowrap}.okeReviews[data-oke-container] .oke-reviewsKeywords-list-category.oke-is-clickable,div.okeReviews .oke-reviewsKeywords-list-category.oke-is-clickable{cursor:pointer}.okeReviews[data-oke-container] .oke-reviewsKeywords-list-category.oke-is-active,div.okeReviews .oke-reviewsKeywords-list-category.oke-is-active{background-color:var(--oke-filter-backgroundColorActive);color:var(--oke-filter-textColorActive);border-color:var(--oke-filter-borderColorActive)}.okeReviews[data-oke-container] .oke-reviewsKeywords .oke-translateButton,div.okeReviews .oke-reviewsKeywords .oke-translateButton{margin-top:12px} 1744.oke-rs{display:block}.oke-rs .oke-reviewsSummary.oke-is-preRender .oke-reviewsSummary-summary{-webkit-mask:linear-gradient(180deg,#000 0,#000 40%,transparent 95%,transparent 0) 100% 50%/100% 100% repeat-x;mask:linear-gradient(180deg,#000 0,#000 40%,transparent 95%,transparent 0) 100% 50%/100% 100% repeat-x;max-height:150px}.okeReviews[data-oke-container] .oke-reviewsSummary .oke-tooltip,div.okeReviews .oke-reviewsSummary .oke-tooltip{display:inline-block;font-weight:400}.okeReviews[data-oke-container] .oke-reviewsSummary .oke-tooltip-trigger,div.okeReviews .oke-reviewsSummary .oke-tooltip-trigger{height:15px;width:15px;overflow:hidden;transform:translateY(-10%)}.okeReviews[data-oke-container] .oke-reviewsSummary-heading,div.okeReviews .oke-reviewsSummary-heading{align-items:center;-moz-column-gap:4px;column-gap:4px;display:inline-flex;font-weight:700;margin-bottom:8px}.okeReviews[data-oke-container] .oke-reviewsSummary-heading-skeleton,div.okeReviews .oke-reviewsSummary-heading-skeleton{height:calc(var(--oke-button-fontSize) + 4px);width:150px}.okeReviews[data-oke-container] .oke-reviewsSummary-icon,div.okeReviews .oke-reviewsSummary-icon{fill:currentColor;font-size:14px}.okeReviews[data-oke-container] .oke-reviewsSummary-icon svg,div.okeReviews .oke-reviewsSummary-icon svg{vertical-align:baseline}.okeReviews[data-oke-container] .oke-reviewsSummary-summary.oke-is-truncated,div.okeReviews .oke-reviewsSummary-summary.oke-is-truncated{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}</style> 1745 1746
1746<script type="application/json" id="oke-reviews-settings">{"subscriberId":"ffd1e690-43d9-4772-89cb-9362e976c71d","analyticsSettings":{"isWidgetOnScreenTrackingEnabled":true,"provider":"ua"},"locale":"en","localeAndVariant":{"code":"en"},"matchCustomerLocale":false,"widgetSettings":{"global":{"dateSettings":{"format":{"type":"relative"}},"hideOkendoBranding":true,"reviewTranslationsMode":"off","showIncentiveIndicator":false,"searchEnginePaginationEnabled":true,"stars":{"backgroundColor":"#FFFFFF","foregroundColor":"#FFD300","interspace":2,"shape":{"type":"default"},"showBorder":false},"font":{"fontType":"inherit-from-page"}},"homepageCarousel":{"slidesPerPage":{"large":3,"medium":2},"totalSlides":12,"scrollBehaviour":"slide","style":{"showDates":false,"border":{"color":"#C1C1C1","width":{"value":1,"unit":"px"}},"bodyFont":{"fontSize":{"value":14,"unit":"px"},"fontType":"use-global","fontWeight":400,"hasCustomFontSettings":true},"headingFont":{"fontSize":{"value":14,"unit":"px"},"fontType":"use-global","fontWeight":600,"hasCustomFontSettings":true},"arrows":{"color":"#676986","size":{"value":24,"unit":"px"},"enabled":true},"avatar":{"backgroundColor":"#2D2D2B","placeholderTextColor":"#2D2D2B","size":{"value":48,"unit":"px"},"enabled":false},"media":{"size":{"value":80,"unit":"px"},"imageGap":{"value":4,"unit":"px"},"enabled":false},"stars":{"height":{"value":15,"unit":"px"}},"productImageSize":{"value":48,"unit":"px"},"layout":{"name":"default","reviewDetailsPosition":"below","showProductName":false,"showAttributeBars":false,"showProductDetails":"only-when-grouped"},"highlightColor":"#E7B87F","spaceAbove":{"value":20,"unit":"px"},"text":{"primaryColor":"#2C3E50","fontSizeRegular":{"value":14,"unit":"px"},"fontSizeSmall":{"value":12,"unit":"px"},"secondaryColor":"#676986"},"spaceBelow":{"value":20,"unit":"px"}},"defaultSort":"rating desc","autoPlay":true,"truncation":{"bodyMaxLines":10,"truncateAll":false,"enabled":false}},"mediaCarousel":{"minimumImages":1,"linkText":"Read More","autoPlay":false,"slideSize":"medium","arrowPosition":"outside"},"mediaGrid":{"gridStyleDesktop":{"layout":"default-desktop"},"gridStyleMobile":{"layout":"default-mobile"},"showMoreArrow":{"arrowColor":"#676986","enabled":true,"backgroundColor":"#f4f4f6"},"linkText":"Read More","infiniteScroll":false,"gapSize":{"value":10,"unit":"px"}},"questions":{"initialPageSize":6,"loadMorePageSize":6},"reviewsBadge":{"layout":"large","colorScheme":"dark"},"reviewsTab":{"enabled":false},"reviewsWidget":{"tabs":{"reviews":true,"questions":true},"header":{"columnDistribution":"left","verticalAlignment":"top","blocks":[{"columnWidth":"half","modules":[{"name":"rating-average","layout":"two-line"},{"name":"rating-breakdown","backgroundColor":"#F4F4F6","shadingColor":"#2D2D2B","stretchMode":"contain"}],"textAlignment":"left"},{"columnWidth":"half","modules":[{"name":"media-grid","imageGap":{"value":4,"unit":"px"},"scaleToFill":true,"rows":2,"columns":10}],"textAlignment":"left"}]},"style":{"showDates":false,"border":{"color":"#C1C1C1","width":{"value":1,"unit":"px"}},"bodyFont":{"hasCustomFontSettings":false},"headingFont":{"hasCustomFontSettings":false},"filters":{"backgroundColorActive":"#676986","backgroundColor":"#FFFFFF","borderColor":"#DBDDE4","borderRadius":{"value":100,"unit":"px"},"borderColorActive":"#676986","textColorActive":"#FFFFFF","textColor":"#2C3E50","searchHighlightColor":"#B2F9E9"},"avatar":{"enabled":false},"stars":{"height":{"value":15,"unit":"px"},"globalOverrideSettings":{"backgroundColor":"#E5E5E5","foregroundColor":"#E7B87F","interspace":2,"showBorder":false}},"shadingColor":"#FFFFFF","productImageSize":{"value":48,"unit":"px"},"button":{"backgroundColorActive":"#FFFFFF","borderColorHover":"#C1C1C1","backgroundColor":"#FFFFFF","borderColor":"#C1C1C1","backgroundColorHover":"#FFFFFF","textColorHover":"#525252","borderRadius":{"value":0,"unit":"px"},"borderWidth":{"value":1,"unit":"px"},"borderColorActive":"#C1C1C1","textColorActive":"#525252","textColor":"#525252","font":{"hasCustomFontSettings":false}},"highlightColor":"#E7B87F","spaceAbove":{"value":20,"unit":"px"},"text":{"primaryColor":"#525252","fontSizeRegular":{"value":14,"unit":"px"},"fontSizeLarge":{"value":20,"unit":"px"},"fontSizeSmall":{"value":12,"unit":"px"},"secondaryColor":"#525252"},"spaceBelow":{"value":20,"unit":"px"},"attributeBar":{"style":"default","backgroundColor":"#D3D4DD","shadingColor":"#9A9DB1","markerColor":"#2D2D2B"}},"showWhenEmpty":true,"reviews":{"list":{"layout":{"name":"minimal","showAttributeBars":true,"showProductVariantName":false,"columnAmount":4,"showProductDetails":"only-when-grouped"},"initialPageSize":12,"media":{"layout":"hidden"},"truncation":{"bodyMaxLines":10,"truncateAll":false,"enabled":false},"loadMorePageSize":12},"controls":{"filterMode":"off","defaultSort":"rating desc","writeReviewButtonEnabled":true,"freeTextSearchEnabled":false}}},"starRatings":{"showWhenEmpty":false,"clickBehavior":"scroll-to-widget","style":{"text":{"content":"review-count","style":"number-and-text","brackets":false},"spaceAbove":{"value":0,"unit":"px"},"spaceBelow":{"value":0,"unit":"px"},"height":{"value":18,"unit":"px"}}}},"features":{"attributeFiltersEnabled":true,"recorderPlusEnabled":true,"recorderQandaPlusEnabled":true,"reviewsKeywordsEnabled":true,"reviewsSummariesEnabled":true}}</script>
1746 1747 <style id="oke-css-vars">:root{--oke-widget-spaceAbove:20px;--oke-widget-spaceBelow:20px;--oke-starRating-spaceAbove:0;--oke-starRating-spaceBelow:0;--oke-button-backgroundColor:#fff;--oke-button-backgroundColorHover:#fff;--oke-button-backgroundColorActive:#fff;--oke-button-textColor:#525252;--oke-button-textColorHover:#525252;--oke-button-textColorActive:#525252;--oke-button-borderColor:#c1c1c1;--oke-button-borderColorHover:#c1c1c1;--oke-button-borderColorActive:#c1c1c1;--oke-button-borderRadius:0;--oke-button-borderWidth:1px;--oke-button-fontWeight:700;--oke-button-fontSize:var(--oke-text-regular,14px);--oke-button-fontFamily:inherit;--oke-border-color:#c1c1c1;--oke-border-width:1px;--oke-text-primaryColor:#525252;--oke-text-secondaryColor:#525252;--oke-text-small:12px;--oke-text-regular:14px;--oke-text-large:20px;--oke-text-fontFamily:inherit;--oke-avatar-size:undefined;--oke-avatar-backgroundColor:undefined;--oke-avatar-placeholderTextColor:undefined;--oke-highlightColor:#e7b87f;--oke-shadingColor:#fff;--oke-productImageSize:48px;--oke-attributeBar-shadingColor:#9a9db1;--oke-attributeBar-borderColor:undefined;--oke-attributeBar-backgroundColor:#d3d4dd;--oke-attributeBar-markerColor:#2d2d2b;--oke-filter-backgroundColor:#fff;--oke-filter-backgroundColorActive:#676986;--oke-filter-borderColor:#dbdde4;--oke-filter-borderColorActive:#676986;--oke-filter-textColor:#2c3e50;--oke-filter-textColorActive:#fff;--oke-filter-borderRadius:100px;--oke-filter-searchHighlightColor:#b2f9e9;--oke-mediaGrid-chevronColor:#676986;--oke-stars-foregroundColor:#ffd300;--oke-stars-backgroundColor:#fff;--oke-stars-borderWidth:0}.oke-w,.oke-modal{--oke-stars-foregroundColor:#e7b87f;--oke-stars-backgroundColor:#e5e5e5;--oke-stars-borderWidth:0}.oke-w,oke-modal{--oke-title-fontWeight:600;--oke-title-fontSize:var(--oke-text-regular,14px);--oke-title-fontFamily:inherit;--oke-bodyText-fontWeight:400;--oke-bodyText-fontSize:var(--oke-text-regular,14px);--oke-bodyText-fontFamily:inherit}</style> 1748 <style id="oke-reviews-custom-css">.okeReviews.oke-w .oke-helpful,.okeReviews .oke-modal .oke-w-reviewSimple-helpful,.okeReviews.oke-w .oke-w-reviews-count,.okeReviews.oke-w label.oke-sortSelect-label,.okeReviews .oke-modal .oke-w-reviewer-avatar{display:none}.okeReviews.oke-w .oke-reviewContent-title,.okeReviews .oke-modal .oke-reviewContent-title{font-family:"futura-medium",sans-serif;font-size:17.5px;font-weight:700;letter-spacing:normal}.okeReviews.oke-w .oke-w-navBar .oke-w-navBar-item{font-family:"futura-medium",sans-serif;font-size:14px;font-weight:700;letter-spacing:normal}.okeReviews .oke-modal,.okeReviews .oke-modal .oke-helpful,.okeReviews .oke-modal .oke-helpful-vote-button,.okeReviews .oke-modal .oke-reviewContent-date,.okeReviews .oke-modal p,.okeReviews .oke-modal .oke-reviewContent-title{color:#5c0c0d}.okeReviews.oke-w .oke-reviewContent-body p,.okeReviews .oke-modal .oke-reviewContent-body p{line-height:25.2px;font-weight:400;letter-spacing:normal}.okeReviews.oke-w .oke-button{font-family:"futura-book",sans-serif;font-weight:400;font-size:14px;letter-spacing:normal}.okeReviews.oke-w .oke-button:not(.oke-is-loading):not(.oke-is-active):hover{box-shadow:0 0}.okeReviews.oke-w a.oke-w-writeReview.oke-button{height:100%}.okeReviews.oke-w .oke-is-small .oke-w-reviews-writeReview{width:100%}.okeReviews.oke-w .oke-is-small a.oke-w-writeReview.oke-button{width:100%}.okeReviews.oke-w .oke-is-small .oke-button{width:100%}.okeReviews.oke-w .oke-is-small .oke-qw-header-sort,.okeReviews.oke-w .oke-is-small .oke-qw-header-askQuestion{width:100%;margin:0}.okeReviews[data-oke-container].oke-w .oke-questions-main{margin-top:1em}.okeReviews.oke-w span.oke-w-ratingAverageModule-rating-average,.okeReviews.oke-w span.oke-w-recommendsModule-value{background:#ffd45c;color:#fff;font-weight:700;padding:.25em .7em;font-size:16px}.okeReviews.oke-w .oke-w-reviewer-identity span.oke-w-reviewer-name,.oke-w-reviewer-verified{font-size:14px;font-weight:400}.okeReviews.oke-w .oke-w-header{border:1px solid #a83f21;border-right:0;border-left:0;padding:1.5em;margin-bottom:25px}.okeReviews.oke-w .oke-w-header-content-block.oke-w-header-content-block--oneThird.oke-w-header-content-block--left{border-right:1px solid #a83f21;padding-right:2em;margin-right:2em;margin-bottom:0}.okeReviews.oke-w[data-oke-container] .oke-w-reviews-head,div.okeReviews.oke-w .oke-w-reviews-head{margin-bottom:16px}.okeReviews.oke-w .oke-is-small .oke-w-header-content-block.oke-w-header-content-block--oneThird.oke-w-header-content-block--left{border:0;padding-right:0;margin-right:0;margin-bottom:1.5em}.okeReviews.oke-w .oke-is-small .oke-w-recommendsModule{display:flex;align-items:center}.okeReviews.oke-w .oke-is-small span.oke-w-recommendsModule-value{margin-right:5px}.okeReviews.oke-w .oke-w-ratingAverageModule-count{margin-top:10px}.okeReviews.oke-w .oke-is-small ul.oke-mediaStrip.oke-mediaStrip--maxImages-10{grid-template-columns:repeat(4,4fr) !important}.okeReviews.oke-w .oke-is-small ul.oke-mediaStrip.oke-mediaStrip--maxImages-10 li{height:60px !important;width:60px !important}.okeReviews.oke-w .oke-w-breakdownModule-distribution-bar{border-radius:0;height:1.4em}.okeReviews.oke-w .oke-w-breakdownModule-distribution-bar-fill{border-radius:0}.okeReviews.oke-w .oke-w-reviews-controls{justify-content:flex-end}.okeReviews.oke-w .oke-sortSelect{border:1px solid #a84024;padding:10px 20px;margin-bottom:.6em}.okeReviews.oke-w .oke-qw-header-sort .oke-sortSelect{height:40px;margin-bottom:0;padding:8px 11px}.okeReviews.oke-w .oke-is-small .oke-w-reviews-sort{width:100%}.okeReviews.oke-w .oke-is-small .oke-sortSelect{display:flex;align-items:center;flex-flow:column wrap}.okeReviews.oke-w .oke-is-small .oke-w-reviews-head{margin-bottom:1em}.okeReviews.oke-w .oke-w-reviewer div{display:flex;flex-flow:row wrap}.okeReviews.oke-w .oke-w-reviewer-identity{margin-right:1em}.okeReviews.oke-w .oke-w-reviewReply-main{flex-flow:column wrap}.okeReviews.oke-w .oke-w-reviewReply-body{padding-top:10px}.okeReviews.oke-w .oke-w-reviewMinimal-reply{border-top:1px solid #a84024;border-bottom:0;border-right:0;border-left:0}.okeReviews.oke-w span.oke-w-navBar-item-count::before,.okeReviews.oke-w span.oke-w-navBar-item-count::after{display:none}.okeReviews.oke-w span.oke-w-navBar-item-count{color:#fff;background:#5c0c0d;padding:1px 6px;font-size:.714em}.okeReviews[data-oke-container].oke-w .oke-button{font-family:"futura-book",sans-serif;font-weight:400;font-size:14px;letter-spacing:normal}.okeReviews[data-oke-container].oke-w .oke-w-reviews-controls{justify-content:flex-end}.okeReviews[data-oke-container].oke-w .oke-helpful,.okeReviews[data-oke-container] .oke-modal .oke-w-reviewSimple-helpful,.okeReviews[data-oke-container] .oke-modal .oke-w-reviewer-avatar{display:none}.okeReviews[data-oke-container].oke-w .oke-w-reviewMinimal-reply{border-top:1px solid #a84024;border-bottom:0;border-right:0;border-left:0}.okeReviews[data-oke-container].oke-w .oke-w-breakdownModule-distribution-bar{border-radius:0;height:1.4em}.okeReviews[data-oke-container].oke-w .oke-w-breakdownModule-distribution-bar-fill{border-radius:0}.okeReviews[data-oke-container].oke-modal .oke-reviewContent-body p{color:#5c0c0d}
1748div.okeReviews[data-oke-container] .oke-reviewCarousel-header{display:none}</style> 1749 <template id="oke-reviews-body-template"><svg id="oke-star-symbols" style="display:none!important" data-oke-id="oke-star-symbols"><symbol id="oke-star-empty" style="overflow:visible;"><path id="star-default--empty" fill="var(--oke-stars-backgroundColor)" stroke="var(--oke-stars-borderColor)" stroke-width="var(--oke-stars-borderWidth)" d="M3.34 13.86c-.48.3-.76.1-.63-.44l1.08-4.56L.26 5.82c-.42-.36-.32-.7.24-.74l4.63-.37L6.92.39c.2-.52.55-.52.76 0l1.8 4.32 4.62.37c.56.05.67.37.24.74l-3.53 3.04 1.08 4.56c.13.54-.14.74-.63.44L7.3 11.43l-3.96 2.43z"/></symbol><symbol id="oke-star-filled" style="overflow:visible;"><path id="star-default--filled" fill="var(--oke-stars-foregroundColor)" stroke="var(--oke-stars-borderColor)" stroke-width="var(--oke-stars-borderWidth)" d="M3.34 13.86c-.48.3-.76.1-.63-.44l1.08-4.56L.26 5.82c-.42-.36-.32-.7.24-.74l4.63-.37L6.92.39c.2-.52.55-.52.76 0l1.8 4.32 4.62.37c.56.05.67.37.24.74l-3.53 3.04 1.08 4.56c.13.54-.14.74-.63.44L7.3 11.43l-3.96 2.43z"/></symbol></svg></template>
1749<script>document.addEventListener('readystatechange',() =>{Array.from(document.getElementById('oke-reviews-body-template')?.content.children)?.forEach(function(child){if(!Array.from(document.body.querySelectorAll('[data-oke-id='.concat(child.getAttribute('data-oke-id'),']'))).length){document.body.prepend(child)}})},{once:true});</script>
1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763<!-- END app snippet --> 1764 1765 <!-- BEGIN app snippet: okendo-reviews-json-ld --> 1766<!-- END app snippet --> 1767 1768<!-- BEGIN app snippet: widget-plus-initialisation-script --> 1769 1770 1771 1772 1773
1773<script async id="okendo-reviews-script" src="https://cdn-static.okendo.io/reviews-widget-plus/js/okendo-reviews.js"></script>
1773 1774 1775<!-- END app snippet --> 1776 1777 1778<!-- END app block --><link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1779<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: 55858036906,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "index"};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 1779
1779
1780<script> 1781 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 1782</script>
vendor: 1 bytes, line 1782
1782
1783<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}
1783).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: 55858036906,storefrontBaseUrl: "https://www.drinkjoey.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.drinkjoey.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"1921515690","configuration":"{\"pixelCode\":\"D9G0VT3C77U6HL2UKCE0\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"22e92c2ad45662f435e4801458fb78cc","type":"APP","apiClientId":4383523,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"}
1783,{"id":"1800536234","configuration":"{\"widgetId\":\"w4gasgzuq0ud6os\",\"baseRequestUrl\":\"https:\\\/\\\/shopify-server.getredo.com\\\/widgets\",\"splitEnabled\":\"false\",\"customerAccountsEnabled\":\"false\",\"conciergeSplitEnabled\":\"false\",\"marketingEnabled\":\"true\",\"expandedWarrantyEnabled\":\"false\",\"storefrontSalesAIEnabled\":\"false\",\"conversionEnabled\":\"false\",\"contextualEnabled\":\"false\",\"failedDiscountRescueEnabled\":\"false\",\"galePaymentInfoEnabled\":\"false\",\"coverageProductIds\":\"[]\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"9b8b9baae668c34654484d7b7cf88765","type":"APP","apiClientId":3426665,"privacyPurposes":["ANALYTICS","MARKETING"],"capabilities":["advanced_dom_events"],"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":"1387364522","configuration":"{\"accountID\":\"SqCGnt\",\"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":"831619242","configuration":"{\"store_id\":\"129492\",\"environment\":\"prod\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"10c4f173702937db6fa4bf871600cafd","type":"APP","apiClientId":294517,"privacyPurposes":["ANALYTICS"],"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":"785580202","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"9bce1c0cdfc09538057898e4ff134fa2","type":"APP","apiClientId":30400643073,"privacyPurposes":["ANALYTICS"],"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":"776339626","configuration":"{\"accountID\":\"1220658\",\"workspaceId\":\"dd5b22eb-b540-468f-ad84-3c0b0a672e41\",\"projectId\":\"9274028b-2d7a-49e6-9587-38e743a71c35\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d98eb033f1e81320021a411362de3a55","type":"APP","apiClientId":5461967,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"625017002","configuration":"{\"shopId\":\"respect-des-fonds.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":"353304746","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-BJP4F079NB\\\",\\\"AW-10821211039\\\",\\\"GT-5MJQZL7\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-BJP4F079NB\\\",\\\"AW-10821211039\\\/GtptCJnvqogDEJ-n-qco\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-BJP4F079NB\\\",\\\"AW-10821211039\\\/Iz4NCJzvqogDEJ-n-qco\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-BJP4F079NB\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-BJP4F079NB\\\",\\\"AW-10821211039\\\/c4YPCJPvqogDEJ-n-qco\\\",\\\"MC-F1GNKZ7WHN\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-BJP4F079NB\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-BJP4F079NB\\\",\\\"AW-10821211039\\\/l-yrCJDvqogDEJ-n-qco\\\",\\\"MC-F1GNKZ7WHN\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-BJP4F079NB\\\",\\\"AW-10821211039\\\/sEYlCI3vqogDEJ-n-qco\\\",\\\"MC-F1GNKZ7WHN\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-BJP4F079NB\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-BJP4F079NB\\\",\\\"AW-10821211039\\\/FWXuCJ_vqogDEJ-n-qco\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-BJP4F079NB\\\",\\\"AW-10821211039\\\/tnLGCJbvqogDEJ-n-qco\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-BJP4F079NB\\\"}],\\\"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"]}
1783,{"id":"151716010","configuration":"{\"pixel_id\":\"334821632442998\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"61702314","configuration":"{\"tagID\":\"2613974770120\"}","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":"26149034","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Website Sale - New"},{"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":"Joe'y","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"respect-des-fonds.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.drinkjoey.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"8402841600170","handle":"joey-flavor-original","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"48120166809770","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8402826166442","handle":"joey-flavor-vanilla","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"48120094654634","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8402830491818","handle":"joey-flavor-mocha","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"48120089673898","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7064716738730","handle":"frothy","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41764410556586","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8002412413098","handle":"joey-jar","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46151459799210","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8005121015978","handle":"fellow-ceramic-mug","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46161441063082","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8248263540906","handle":"joey-tumbler","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47442121228458","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7119625584810","handle":"joey","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42009498583210","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8429442138282","handle":"joey-tasting-kit","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"48265133523114","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8042786914474","handle":"joey-starter-kit-60-servings","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46351958605994","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7327573475498","handle":"joey-on-demand-60-servings","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42814140809386","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8585698476202","handle":"joey-hat","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"48978809585834","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8042787274922","handle":"joey-starter-kit-on-demand-60-servings","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46351959687338","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://www.drinkjoey.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"187423195306","themeStoreId":"855","themePublished":"true","eventMetadataId":"d5ec44b4-b138-492b-a1e8-d51add3ff060","pageType":"home","shopId":"55858036906","storefrontBaseUrl":"https:\/\/www.drinkjoey.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
1783<script> 1784 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 1785 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 1786 window.ShopifyAnalytics.meta.currency = 'USD'; 1787 var meta = {"page":{"pageType":"home","requestId":"fa3a2db9-4207-4322-9771-d7920edb8aed-1791144950"}}; 1788 for (var attr in meta) { 1789 window.ShopifyAnalytics.meta[attr] = meta[attr]; 1790 } 1791</script>
vendor: 1 bytes, line 1791
1791
1792<script class="analytics"> 1793 (function () { 1794 var customDocumentWrite = function(content) { 1795 var jquery = null; 1796 1797 if (window.jQuery) { 1798 jquery = window.jQuery; 1799 } else if (window.Checkout && window.Checkout.$) { 1800 jquery = window.Checkout.$; 1801 } 1802 1803 if (jquery) { 1804 jquery('body').append(content); 1805 } 1806 }; 1807 1808 var hasLoggedConversion = function(token) { 1809 if (token) { 1810 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 1811 } 1812 return false; 1813 } 1814 1815 var setCookieIfConversion = function(token) { 1816 if (token) { 1817 var twoMonthsFromNow = new Date(Date.now()); 1818 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 1819 1820 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 1821 } 1822 } 1823 1824 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 1825 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 1826 if (trekkie.integrations) { 1827 return; 1828 } 1829 trekkie.methods = [ 1830 'identify', 1831 'page', 1832 'ready', 1833 'track', 1834 'trackForm', 1835 'trackLink' 1836 ]; 1837 trekkie.factory = function(method) { 1838 return function() { 1839 var args = Array.prototype.slice.call(arguments); 1840 args.unshift(method); 1841 trekkie.push(args); 1842 if (method == 'track' || method == 'page') { 1843 var pageUrl; 1844 try { 1845 pageUrl = window.location.href; 1846 } catch (e) {} 1847 var pageReferrer; 1848 try { 1849 pageReferrer = document.referrer; 1850 } catch (e) {} 1851 try { 1852 if (window.__TREKKIE_SHIM_QUEUE == null) { 1853 window.__TREKKIE_SHIM_QUEUE = []; 1854 } 1855 window.__TREKKIE_SHIM_QUEUE.push({ 1856 from: 'trekkie-stub', 1857 method: method, 1858 args: args.slice(1), 1859 pageContext: { 1860 url: pageUrl, 1861 referrer: pageReferrer 1862 } 1863 }); 1864 } catch (e) { 1865 // no-op 1866 } 1867 } 1868 return trekkie; 1869 }; 1870 }; 1871 for (var i = 0; i < trekkie.methods.length; i++) { 1872 var key = trekkie.methods[i]; 1873 trekkie[key] = trekkie.factory(key); 1874 } 1875 trekkie.load = function(config) { 1876 trekkie.config = config || {}; 1877 trekkie.config.initialDocumentCookie = document.cookie; 1878 var first = document.getElementsByTagName('script')[0]; 1879var script = document.createElement('script'); 1880script.type = 'text/javascript'; 1881script.onerror = function(e) { 1882 var scriptFallback = document.createElement('script'); 1883 scriptFallback.type = 'text/javascript'; 1884 scriptFallback.onerror = function(error) { 1885 var Monorail = { 1886 produce: function produce(monorailDomain, schemaId, payload) { 1887 var currentMs = new Date().getTime(); 1888 var event = { 1889 schema_id: schemaId, 1890 payload: payload, 1891 metadata: { 1892 event_created_at_ms: currentMs, 1893 event_sent_at_ms: currentMs 1894 } 1895 }; 1896 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 1897 }, 1898 sendRequest: function sendRequest(endpointUrl, payload) { 1899 // Try the sendBeacon API 1900 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 1901 var blobData = new window.Blob([payload], { 1902 type: 'text/plain' 1903 }); 1904 1905 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 1906 return true; 1907 } // sendBeacon was not successful 1908 1909 } // XHR beacon 1910 1911 var xhr = new XMLHttpRequest(); 1912 1913 try { 1914 xhr.open('POST', endpointUrl); 1915 xhr.setRequestHeader('Content-Type', 'text/plain'); 1916 xhr.send(payload); 1917 } catch (e) { 1918 console.log(e); 1919 } 1920 1921 return false; 1922 }, 1923 isIos12: function isIos12() { 1924 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 1925 } 1926 }; 1927 Monorail.produce('monorail-edge.shopifysvc.com', 1928 'trekkie_storefront_load_errors/1.1', 1929 {shop_id: 55858036906, 1930 theme_id: 187423195306, 1931 app_name: "storefront", 1932 context_url: window.location.href, 1933 source_url: "//www.drinkjoey.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 1934 1935 }; 1936 scriptFallback.async = true; 1937 scriptFallback.src = '//www.drinkjoey.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1938 first.parentNode.insertBefore(scriptFallback, first); 1939}; 1940script.async = true; 1941script.src = '//www.drinkjoey.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1942first.parentNode.insertBefore(script, first); 1943 1944 }; 1945 trekkie.load( 1946 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":55858036906,"isMerchantRequest":null,"themeId":187423195306,"themeCityHash":"8444241140878522874","contentLanguage":"en","currency":"USD","eventMetadataId":"d5ec44b4-b138-492b-a1e8-d51add3ff060"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 1947 ); 1948 1949 var loaded = false;
1950 trekkie.ready(function() { 1951 if (loaded) return; 1952 loaded = true; 1953 1954 window.ShopifyAnalytics.lib = window.trekkie; 1955 1956 var originalDocumentWrite = document.write; 1957 document.write = customDocumentWrite; 1958 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1959 document.write = originalDocumentWrite; 1960 1961 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1962 var token = match? match[1]: undefined; 1963 if (!hasLoggedConversion(token)) { 1964 setCookieIfConversion(token); 1965 1966 } 1967 }); 1968 1969 window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"fa3a2db9-4207-4322-9771-d7920edb8aed-1791144950","shopifyEmitted":true}); 1970 1971 var eventsListenerScript = document.createElement('script'); 1972 eventsListenerScript.async = true; 1973 eventsListenerScript.src = "//www.drinkjoey.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1974 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1975})();</script>
1975 1976
1976<script> 1977 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 1978 window.ga = function ga() { 1979 (window.ga.q = window.ga.q || []).push(arguments); 1980 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 1981 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 1982 } 1983 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 1984 }; 1985 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 1986 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 1987 } 1988 } 1989</script>
vendor: 1 bytes, line 1989
1989
1990<script 1991 defer 1992 src="https://www.drinkjoey.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 1993 data-application="storefront-renderer" 1994 data-shop-id="55858036906" 1995 data-render-region="gcp-us-central1" 1996 data-page-type="index" 1997 data-theme-instance-id="187423195306" 1998 data-theme-name="Prestige" 1999 data-theme-version="10.7.0" 2000 data-monorail-region="shop_domain" 2001 data-resource-timing-sampling-rate="10" 2002 data-shs="true" 2003 data-shs-beacon="true" 2004 data-shs-export-with-fetch="true" 2005 data-shs-logs-sample-rate="1" 2006 data-shs-beacon-endpoint="https://www.drinkjoey.com/api/collect" 2007></script>
2007 2008<meta name="shopify-y" content="e3d70edc-4096-4e80-8568-b3828769fe60" data-expiration="1822702550000"><meta name="shopify-s" content="b37b4f1c-507f-4fbb-b0b2-1f65298ea726" data-expiration="1791146750000"><meta name="new-cookie-storage-activated" content="t"> 2009</head> 2010 2011 2012 2013 <body style='overflow-x: hidden !important' class="features--button-transition features--zoom-image color-scheme color-scheme--scheme-1 "><template id="drawer-default-template"> 2014 <div part="base"> 2015 <div part="overlay"></div> 2016 2017 <div part="content"> 2018 <header part="header"> 2019 <slot name="header"></slot> 2020 2021 <dialog-close-button style="display: contents"> 2022 <button type="button" part="close-button tap-area" aria-label="Close"><svg aria-hidden="true" focusable="false" fill="currentColor" width="24" class="icon icon-close" viewBox="0 0 100 100"> 2023 <path fill="currentColor" d="M50,5.1C25.2,5.1,5.1,25.2,5.1,50S25.2,95,50,95S95,74.9,95,50S74.9,5.1,50,5.1z M50,88.5c-21.3,0-38.5-17.2-38.5-38.5 S28.8,11.5,50,11.5S88.5,28.8,88.5,50S71.3,88.5,50,88.5z M61.4,34.2L50,45.5L38.7,34.2c-1.3-1.2-3.3-1.2-4.5,0.1 c-1.2,1.2-1.2,3.2,0,4.5L45.5,50L34.2,61.4c-1.2,1.3-1.2,3.3,0.1,4.5c1.2,1.2,3.2,1.2,4.5,0L50,54.6l11.3,11.3 c1.3,1.2,3.3,1.2,4.5-0.1c1.2-1.2,1.2-3.2,0-4.5L54.6,50l11.3-11.3c1.2-1.3,1.2-3.3-0.1-4.5C64.6,32.9,62.6,32.9,61.4,34.2z"/> 2024 </svg></button> 2025 </dialog-close-button> 2026 </header> 2027 2028 <div part="body"> 2029 <slot></slot> 2030 </div> 2031 2032 <footer part="footer"> 2033 <slot name="footer"></slot> 2034 </footer> 2035 </div> 2036 </div> 2037</template><template id="modal-default-template"> 2038 <div part="base"> 2039 <div part="overlay"></div> 2040 2041 <div part="content"> 2042 <header part="header"> 2043 <slot name="header"></slot> 2044 2045 <dialog-close-button style="display: contents"> 2046 <button type="button" part="close-button tap-area" aria-label="Close"><svg aria-hidden="true" focusable="false" fill="currentColor" width="24" class="icon icon-close" viewBox="0 0 100 100"> 2047 <path fill="currentColor" d="M50,5.1C25.2,5.1,5.1,25.2,5.1,50S25.2,95,50,95S95,74.9,95,50S74.9,5.1,50,5.1z M50,88.5c-21.3,0-38.5-17.2-38.5-38.5 S28.8,11.5,50,11.5S88.5,28.8,88.5,50S71.3,88.5,50,88.5z M61.4,34.2L50,45.5L38.7,34.2c-1.3-1.2-3.3-1.2-4.5,0.1 c-1.2,1.2-1.2,3.2,0,4.5L45.5,50L34.2,61.4c-1.2,1.3-1.2,3.3,0.1,4.5c1.2,1.2,3.2,1.2,4.5,0L50,54.6l11.3,11.3 c1.3,1.2,3.3,1.2,4.5-0.1c1.2-1.2,1.2-3.2,0-4.5L54.6,50l11.3-11.3c1.2-1.3,1.2-3.3-0.1-4.5C64.6,32.9,62.6,32.9,61.4,34.2z"/> 2048 </svg></button> 2049 </dialog-close-button> 2050 </header> 2051 2052 <div part="body"> 2053 <slot></slot> 2054 </div> 2055 </div> 2056 </div> 2057</template><template id="popover-default-template"> 2058 <div part="base"> 2059 <div part="overlay"></div> 2060 2061 <div part="content"> 2062 <header part="header"> 2063 <slot name="header"></slot> 2064 2065 <dialog-close-button style="display: contents"> 2066 <button type="button" part="close-button tap-area" aria-label="Close"><svg aria-hidden="true" focusable="false" fill="currentColor" width="24" class="icon icon-close" viewBox="0 0 100 100"> 2067 <path fill="currentColor" d="M50,5.1C25.2,5.1,5.1,25.2,5.1,50S25.2,95,50,95S95,74.9,95,50S74.9,5.1,50,5.1z M50,88.5c-21.3,0-38.5-17.2-38.5-38.5 S28.8,11.5,50,11.5S88.5,28.8,88.5,50S71.3,88.5,50,88.5z M61.4,34.2L50,45.5L38.7,34.2c-1.3-1.2-3.3-1.2-4.5,0.1 c-1.2,1.2-1.2,3.2,0,4.5L45.5,50L34.2,61.4c-1.2,1.3-1.2,3.3,0.1,4.5c1.2,1.2,3.2,1.2,4.5,0L50,54.6l11.3,11.3 c1.3,1.2,3.3,1.2,4.5-0.1c1.2-1.2,1.2-3.2,0-4.5L54.6,50l11.3-11.3c1.2-1.3,1.2-3.3-0.1-4.5C64.6,32.9,62.6,32.9,61.4,34.2z"/> 2068 </svg></button> 2069 </dialog-close-button> 2070 </header> 2071 2072 <div part="body"> 2073 <slot></slot> 2074 </div> 2075 </div> 2076 </div> 2077</template><template id="header-search-default-template"> 2078 <div part="base"> 2079 <div part="overlay"></div> 2080 2081 <div part="content"> 2082 <slot></slot> 2083 </div> 2084 </div> 2085</template><template id="video-media-default-template"> 2086 <slot></slot> 2087 2088 <svg part="play-button" fill="none" width="48" height="48" viewBox="0 0 48 48"> 2089 <path fill-rule="evenodd" clip-rule="evenodd" d="M48 24c0 13.255-10.745 24-24 24S0 37.255 0 24 10.745 0 24 0s24 10.745 24 24Zm-18 0-9-6.6v13.2l9-6.6Z" fill="var(--play-button-background, #efefef)"/> 2090 </svg> 2091</template> 2092<loading-bar class="loading-bar" aria-hidden="true"></loading-bar> 2093 <a href="#main" allow-hash-change class="skip-to-content sr-only">Skip to content</a> 2094 2095 <span id="header-scroll-tracker" style="position: absolute; width: 1px; height: 1px; top: var(--header-scroll-tracker-offset, 10px); left: 0;"></span><!-- BEGIN sections: header-group --> 2096<aside id="shopify-section-sections--27797482537130__announcement-bar" class="shopify-section shopify-section-group-header-group shopify-section--announcement-bar"><style> 2097 :root { 2098 --announcement-bar-is-sticky: 1;}#shopify-section-sections--27797482537130__announcement-bar { 2099 position: sticky; 2100 top: 0; 2101 z-index: 5; 2102 } 2103 2104 .shopify-section--header ~ #shopify-section-sections--27797482537130__announcement-bar { 2105 top: calc(var(--header-is-sticky, 0) * var(--header-height, 0px)); 2106 z-index: 4; /* We have to lower the z-index in case the announcement bar is displayed after the header */ 2107 }#shopify-section-sections--27797482537130__announcement-bar { 2108 --announcement-bar-font-size: 0.625rem; 2109 } 2110 2111 @media screen and (min-width: 999px) { 2112 #shopify-section-sections--27797482537130__announcement-bar { 2113 --announcement-bar-font-size: 0.6875rem; 2114 } 2115 } 2116 2117 .announcement-bar { 2118 background: #5c0c0d !important; 2119 padding-top: 8px; 2120 padding-bottom: 6px; 2121 cursor: pointer; 2122 } 2123 2124 .announcement-bar .prose { 2125 font-size: 14px !important; 2126 font-weight: 700 !important; 2127 letter-spacing: 0.4px !important; 2128 font-family: 'mohr-bold', 'MohrSemibold', sans-serif !important; 2129 color: #ffe8af !important; 2130 user-select: none; 2131 } 2132 2133 .announcement-bar__carousel { 2134 margin-left: 20px; /* Otherwise doesn't line up with logo */ 2135 } 2136 2137 .announcement-bar .klaviyo-form-trigger { 2138 cursor: pointer; 2139 } 2140 2141 .announcement-bar:hover .prose, 2142 .announcement-bar .klaviyo-form-trigger:hover { 2143 color: #ffd459 !important; 2144 } 2145 2146 /* the carousel arrows keep their own cursor: they page the messages, 2147 they do not open the popup */ 2148 .announcement-bar carousel-prev-button button, 2149 .announcement-bar carousel-next-button button { 2150 cursor: default; 2151 } 2152 </style> 2153 2154 <height-observer variable="announcement-bar"><div 2155 class="announcement-bar color-scheme color-scheme--scheme-3"data-alia-campaign-id="14549" 2156 role="button" 2157 tabindex="0" 2158 aria-label="Open the 20% off first order offer">
2158<announcement-bar-carousel allow-swipe autoplay="5" id="carousel-sections--27797482537130__announcement-bar" class="announcement-bar__carousel"><p class="klaviyo-form-trigger prose heading is-selected" >BETTER MORNINGS AHEAD â 20% OFF FIRST PURCHASE!</p></announcement-bar-carousel></div> 2159 </height-observer> 2160 2161
2161<script> 2162document.addEventListener('DOMContentLoaded', function () { 2163 // Keep the height var up to date 2164 var sect = document.getElementById('shopify-section-sections--27797482537130__announcement-bar'); 2165 if (sect) { 2166 document.documentElement.style.setProperty('--announcement-bar-height', `${sect.clientHeight.toFixed(2)}px`); 2167 } 2168 2169 /* -------------------------------------------------------------------- 2170 Open the Alia popup from the announcement bar. 2171 2172 Alia's documented SDK call is: 2173 window.alia.push({ type: 'open', campaignID: <number>, ignoreTargeting: true }) 2174 2175 Two things matter and both were wrong before: 2176 1. campaignID must be a NUMBER. Passing the string '14549' does nothing. 2177 2. ignoreTargeting must be true, otherwise Alia refuses to reopen the 2178 popup for anyone who has already dismissed it once, which is most 2179 returning visitors and is exactly the case where a click is deliberate. 2180 Verified against campaign 14549 on the live storefront, 4 September 2026. 2181 -------------------------------------------------------------------- */ 2182 var ALIA_FALLBACK_CAMPAIGN = 14549; 2183 2184 function openAliaPopup(sourceEl) { 2185 var host = sourceEl && sourceEl.closest ? sourceEl.closest('[data-alia-campaign-id]') : null; 2186 var raw = host ? host.getAttribute('data-alia-campaign-id') : null; 2187 var campaignID = parseInt(raw, 10); 2188 if (!campaignID) campaignID = ALIA_FALLBACK_CAMPAIGN; 2189 2190 function send() { 2191 if (window.alia && typeof window.alia.push === 'function') { 2192 window.alia.push({ type: 'open', campaignID: campaignID, ignoreTargeting: true }); 2193 return true; 2194 } 2195 return false; 2196 } 2197 2198 if (send()) return; 2199 2200 // Alia's script may not have booted yet on a fast click. Poll briefly. 2201 var tries = 0; 2202 var timer = setInterval(function () { 2203 if (send() || ++tries > 20) clearInterval(timer); 2204 }, 250); 2205 } 2206 2207 // The whole bar is the target, not just the message text, so clicking the 2208 // padding works too. The carousel arrows are excluded so they still page. 2209 function opener(target) { 2210 if (!target || !target.closest) return null; 2211 if (target.closest('a, button, carousel-prev-button, carousel-next-button')) return null; 2212 return target.closest('.announcement-bar'); 2213 } 2214 2215 document.addEventListener('click', function (e) { 2216 var el = opener(e.target); 2217 if (!el) return; 2218 e.preventDefault(); 2219 openAliaPopup(el); 2220 }, true); 2221 2222 document.addEventListener('keydown', function (e) { 2223 if (e.key !== 'Enter' && e.key !== ' ') return; 2224 var el = opener(e.target); 2225 if (!el) return; 2226 e.preventDefault(); 2227 openAliaPopup(el); 2228 }, true); 2229}); 2230</script>
2230 2231</aside><div id="shopify-section-sections--27797482537130__header" class="shopify-section shopify-section-group-header-group"><div id="header-app" style="overflow: hidden"></div> 2232 2233
2234<script type="module" src="//www.drinkjoey.com/cdn/shop/t/105/assets/header.js?v=31227410264906599751790653094"></script>
2234</div><section id="shopify-section-sections--27797482537130__custom_liquid_wKnkXA" class="shopify-section shopify-section-group-header-group shopify-section--custom-liquid"><div class=" color-scheme color-scheme--scheme-1 color-scheme--bg-609ecfcfee2f667ac6c12366fc6ece56 "> 2235 <div class=""> 2236 <div class="text-center"> 2237 2238<style> 2239 #sachet-qr-banner { 2240 display: none; 2241 align-items: center; 2242 justify-content: center; 2243 gap: 8px; 2244 background: #F5C544; 2245 color: #5C1A1B; 2246 padding: 10px 16px; 2247 box-sizing: border-box; 2248 position: relative; 2249 left: 50%; 2250 margin-left: -50vw; 2251 width: 100vw; 2252 font-weight: 700; 2253 font-size: 15px; 2254 line-height: 1.3; 2255 text-align: center; 2256 } 2257 #sachet-qr-banner.is-visible { 2258 display: flex; 2259 } 2260 #sachet-qr-banner .sachet-emoji { 2261 font-size: 18px; 2262 flex: none; 2263 } 2264 @media screen and (max-width: 749px) { 2265 #sachet-qr-banner { 2266 font-size: 13px; 2267 padding: 8px 12px; 2268 gap: 6px; 2269 } 2270 #sachet-qr-banner .sachet-emoji { 2271 font-size: 15px; 2272 } 2273 } 2274</style> 2275 2276<div id="sachet-qr-banner"> 2277 <span class="sachet-emoji">ð</span> 2278 <span>You're getting an extra <strong>25% off</strong> â auto-applied at checkout!</span> 2279</div> 2280
2281<script> 2282(function () { 2283 function qrVisitor() { 2284 // 1. Arrived directly from the QR redirect URL 2285 var params = new URLSearchParams(window.location.search); 2286 if (params.get('utm_campaign') === 'sachet') return true; 2287 2288 // 2. Shopify discount cookie set by the /discount/SACHET25 link 2289 var m = document.cookie.match(/(?:^|;\s*)discount_code=([^;]+)/); 2290 if (m && decodeURIComponent(m[1]).toUpperCase().indexOf('SACHET25') !== -1) return true; 2291 2292 // 3. Seen earlier this session (survives navigating away and back) 2293 if (sessionStorage.getItem('sachetQR') === '1') return true; 2294 2295 return false; 2296 } 2297 2298 if (qrVisitor()) { 2299 try { sessionStorage.setItem('sachetQR', '1'); } catch (e) {} 2300 var el = document.getElementById('sachet-qr-banner'); 2301 if (el) el.classList.add('is-visible'); 2302 2303 // Suppress the Alia signup popup for QR visitors (they already have a better offer). 2304 // Closes immediately and re-closes any time Alia tries to show a popup this session. 2305 var closeAlia = function () { 2306 window.alia = window.alia || []; 2307 window.alia.push({ type: 'close' }); 2308 }; 2309 closeAlia(); 2310 document.addEventListener('alia:campaignMatched', closeAlia); 2311 document.addEventListener('alia:popupView', closeAlia); 2312 2313 // Confetti on first landing only (once per session, not on every page). 2314 if (!sessionStorage.getItem('sachetConfetti')) { 2315 try { sessionStorage.setItem('sachetConfetti', '1'); } catch (e) {} 2316 var s = document.createElement('script'); 2317 s.src = 'https://cdn.jsdelivr.net/npm/[email protected]/dist/confetti.browser.min.js'; 2318 s.onload = function () { 2319 var colors = ['#F5C544', '#5C1A1B', '#FFFFFF', '#E8A33D']; 2320 confetti({ particleCount: 90, spread: 70, origin: { y: 0.25 }, colors: colors, disableForReducedMotion: true }); 2321 setTimeout(function () { 2322 confetti({ particleCount: 50, angle: 60, spread: 55, origin: { x: 0, y: 0.4 }, colors: colors, disableForReducedMotion: true }); 2323 confetti({ particleCount: 50, angle: 120, spread: 55, origin: { x: 1, y: 0.4 }, colors: colors, disableForReducedMotion: true }); 2324 }, 250); 2325 }; 2326 document.head.appendChild(s); 2327 } 2328 } 2329})(); 2330</script>
2330</div> 2331 </div> 2332 </div> 2333</section> 2334<!-- END sections: header-group --><!-- BEGIN sections: overlay-group --> 2335<section id="shopify-section-sections--27797484109994__cart-drawer" class="shopify-section shopify-section-group-overlay-group shopify-section--cart-drawer"><cart-drawer style="display: none" id="cart-drawer" class="cart-drawer drawer drawer--center-body color-scheme color-scheme--scheme-1" initial-focus="false" handle-editor-events> 2336 <p class="h4 cart-drawer-header" slot="header">Cart</p><p class="h5 text-center">Your cart is empty</p></cart-drawer> 2337 2338 2339 2340 2341</section> 2342<!-- END sections: overlay-group --><main id="main" class="anchor"> 2343 <div id="shopify-section-template--27797488304298__joey_seo_h1" class="shopify-section"><h1 class="joey-seo-h1" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;">Joe'y: The Mushroom Coffee Alternative With Zero Coffee</h1> 2344 2345</div><div id="shopify-section-template--27797488304298__home" class="shopify-section"><div id="home-product-pages-app"></div> 2346 2347<!-- <link rel="stylesheet" href="//www.drinkjoey.com/cdn/shop/t/105/assets/index-S5F0M6g2.css?v=138172176131844629941790653094"> --> 2348 2349
2349<script type="module" src="//www.drinkjoey.com/cdn/shop/t/105/assets/home.js?v=43335415382994471141790653094"></script>
2349 2350 2351 2352</div> 2353<!-- BEGIN sections: footer-group --> 2354<div id="shopify-section-sections--27797482438826__footer-joey" class="shopify-section shopify-section-group-footer-group"><style> 2355 .jf { 2356 --jf-cream: #ffe8af; 2357 --jf-ink: #5c0c0d; 2358 position: relative; 2359 width: 100%; 2360 background: linear-gradient(100deg, #6a2a0b 0%, #bc7550 14%, #8a4418 28%, #5a1c08 42%, #c58258 56%, #7d3c11 70%, #5e2406 84%, #b06a42 100%); 2361 background-size: 240% 100%; 2362 animation: jfMetal 16s ease-in-out infinite alternate; 2363 isolation: isolate; 2364 color: #fff; 2365 padding: 96px 0 0; 2366 margin-top: -20px; 2367 overflow: hidden; 2368 --size: 14px; 2369 --m: 1.5; 2370 --p: calc(var(--m) * var(--size)); 2371 --R: calc(var(--size) * sqrt(var(--m) * var(--m) + 1)); 2372 -webkit-mask: radial-gradient(var(--R) at 50% calc(var(--size) + var(--p)), #000 99%, #0000 101%) calc(50% - 2 * var(--size)) 0 / calc(4 * var(--size)) 100%, 2373 radial-gradient(var(--R) at 50% calc(-1 * var(--p)), #0000 99%, #000 101%) 50% var(--size) / calc(4 * var(--size)) 100% repeat-x; 2374 mask: radial-gradient(var(--R) at 50% calc(var(--size) + var(--p)), #000 99%, #0000 101%) calc(50% - 2 * var(--size)) 0 / calc(4 * var(--size)) 100%, 2375 radial-gradient(var(--R) at 50% calc(-1 * var(--p)), #0000 99%, #000 101%) 50% var(--size) / calc(4 * var(--size)) 100% repeat-x; 2376 } 2377 .jf *, .jf *::before, .jf *::after { box-sizing: border-box; } 2378 .jf > * { position: relative; z-index: 2; } 2379 .jf::before { 2380 content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; 2381 background: linear-gradient(112deg, transparent 38%, rgba(255,232,175,.18) 46%, rgba(255,246,222,.42) 50%, rgba(255,232,175,.18) 54%, transparent 62%); 2382 background-size: 300% 100%; 2383 mix-blend-mode: overlay; 2384 animation: jfSheen 9s cubic-bezier(.45,0,.2,1) infinite; 2385 } 2386 .jf::after { 2387 content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; 2388 background: 2389 radial-gradient(520px circle at var(--jf-mx, 70%) var(--jf-my, 30%), rgba(255,236,200,.22), transparent 60%), 2390 repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 1px, transparent 1px 3px), 2391 linear-gradient(180deg, rgba(255,255,255,.10), transparent 30%, rgba(0,0,0,.18)); 2392 mix-blend-mode: soft-light; 2393 } 2394 @keyframes jfMetal { from { background-position: 0% 50%; } to { background-position: 100% 50%; } } 2395 @keyframes jfSheen { 0% { background-position: 120% 0; } 55%, 100% { background-position: -20% 0; } } 2396 @media (prefers-reduced-motion: reduce) { 2397 .jf, .jf::before { animation: none; } 2398 } 2399 .jf a { color: inherit; text-decoration: none; } 2400 2401 .jf__top { 2402 max-width: 1240px; 2403 margin: 0 auto; 2404 padding: 0 48px; 2405 display: grid; 2406 grid-template-columns: minmax(0, 1fr) auto; 2407 gap: 48px; 2408 align-items: start; 2409 } 2410 2411 .jf__title { 2412 max-width: 480px; 2413 font-family: MohrBlack, sans-serif; 2414 font-size: 30px; 2415 text-transform: uppercase; 2416 line-height: 1; 2417 margin: 0 0 22px; 2418 color: var(--jf-cream); 2419 } 2420 .jf .css-n48rgu { position: relative; width: 100%; max-width: 480px; } 2421 .jf .css-7n72pu { 2422 width: 100%; 2423 height: 64px; 2424 border: 0; 2425 border-radius: 999px; 2426 background: var(--jf-cream); 2427 padding: 4px 170px 0 28px; 2428 font-family: MohrBlack, sans-serif; 2429 font-size: 17px; 2430 color: var(--jf-ink); 2431 outline: 0; 2432 } 2433 .jf .css-7n72pu::placeholder { color: var(--jf-ink); opacity: .75; text-transform: uppercase; letter-spacing: .04em; } 2434 .jf .css-1hfft79 { 2435 position: absolute; 2436 top: 7px; right: 7px; bottom: 7px; 2437 display: flex; align-items: center; justify-content: center; 2438 border: 0; border-radius: 999px; 2439 background: var(--jf-ink); 2440 color: var(--jf-cream); 2441 padding: 0 30px; 2442 cursor: pointer; 2443 transition: background .2s ease; 2444 } 2445 .jf .css-1hfft79:hover { background: #793211; } 2446 .jf .css-1hfft79 > div { 2447 font-family: MohrBlack, sans-serif; 2448 font-size: 19px; line-height: 1; margin-top: 3px; 2449 text-transform: uppercase; 2450 } 2451 .jf .success, .jf .error { 2452 max-width: 480px; 2453 border-radius: 999px; 2454 padding: 18px 28px 14px; 2455 font-family: MohrBlack, sans-serif; 2456 font-size: 17px; line-height: 1.2; 2457 } 2458 .jf .success { background: var(--jf-cream); color: var(--jf-ink); } 2459 .jf .error { background: #b94a48; color: #fff; margin-bottom: 12px; } 2460 2461 .jf__cols { 2462 display: grid; 2463 grid-template-columns: repeat(3, max-content); 2464 column-gap: 56px; 2465 } 2466 .jf__h { 2467 font-family: MohrBlack, sans-serif; 2468 font-size: 30px; 2469 text-transform: uppercase; 2470 color: var(--jf-cream); 2471 line-height: 1; 2472 margin: 0 0 22px; 2473 } 2474 .jf__col a { 2475 display: block; 2476 font-family: MohrBlack, sans-serif; 2477 font-size: 15px; 2478 letter-spacing: .05em; 2479 text-transform: uppercase; 2480 line-height: 1.25; 2481 padding: 5px 0; 2482 white-space: nowrap; 2483 transition: color .2s ease; 2484 } 2485 .jf__col a:hover { color: var(--jf-ink); } 2486 2487 .jf__social { display: flex; gap: 20px; margin-top: 26px; } 2488 .jf__social a { display: block; width: 28px; height: 28px; color: var(--jf-cream); transition: color .2s ease, transform .2s ease; } 2489 .jf__social a:hover { color: var(--jf-ink); transform: translateY(-2px); } 2490 .jf__social svg { display: block; width: 100%; height: 100%; fill: currentColor; } 2491 2492 .jf__legal { 2493 max-width: 1240px; 2494 margin: 0 auto; 2495 padding: 0 48px 40px; 2496 display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; 2497 font-family: MohrSemibold, sans-serif; 2498 font-size: 12px; 2499 opacity: .85; 2500 } 2501 .jf__legal a:hover { color: var(--jf-ink); } 2502 2503 .jf__mark { 2504 display: block; 2505 width: min(44vw, 640px); 2506 margin: 0 auto; 2507 padding: 72px 0 28px; 2508 } 2509 .jf__mark svg { display: block; width: 100%; height: auto; } 2510 .jf__mark path, .jf__mark ellipse { fill: var(--jf-cream); } 2511 2512 @media screen and (max-width: 1240px) { 2513 .jf__cols { column-gap: 36px; } 2514 } 2515 @media screen and (max-width: 1024px) { 2516 .jf__top { grid-template-columns: 1fr; gap: 56px; padding: 0 32px; } 2517 .jf__legal { padding: 0 32px 36px; } 2518 } 2519 /* Phones: Apple-style collapsible sections. Each heading is a row with a chevron; tap to open. */ 2520 @media screen and (max-width: 760px) { 2521 .jf__cols { grid-template-columns: 1fr; gap: 0; } 2522 .jf__col { border-top: 1px solid rgba(255,232,175,.28); } 2523 .jf__col:last-child { border-bottom: 1px solid rgba(255,232,175,.28); } 2524 .jf .jf__h { 2525 display: flex; align-items: center; justify-content: space-between; 2526 margin: 0; padding: 18px 0 14px; cursor: pointer; user-select: none; 2527 -webkit-tap-highlight-color: transparent; 2528 } 2529 .jf__h::after { 2530 content: ""; width: 9px; height: 9px; margin: -4px 4px 0 0; 2531 border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; 2532 transform: rotate(45deg); transition: transform .3s ease; 2533 } 2534 .jf__col.is-open .jf__h::after { transform: rotate(-135deg); margin-top: 4px; } 2535 .jf__links { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .3s ease; } 2536 .jf__links > div { overflow: hidden; } 2537 .jf__col.is-open .jf__links { grid-template-rows: 1fr; } 2538 .jf__col.is-open .jf__links > div { padding-bottom: 14px; } 2539 .jf .jf__col a { font-size: 13px; padding: 7px 0; } 2540 } 2541 @media screen and (max-width: 640px) { 2542 .jf { padding-top: 72px; } 2543 .jf__top { padding: 0 20px; gap: 44px; } 2544 .jf__title { font-size: 24px; } 2545 .jf .css-7n72pu { height: 56px; font-size: 15px; padding-right: 130px; padding-left: 22px; } 2546 .jf .css-1hfft79 { padding: 0 20px; } 2547 .jf .css-1hfft79 > div { font-size: 16px; } 2548 .jf__social { gap: 16px; margin-top: 20px; } 2549 .jf__social a { width: 24px; height: 24px; } 2550 .jf__h { font-size: 20px; margin-bottom: 12px; } 2551 .jf__mark { width: 62vw; padding: 48px 0 20px; } 2552 .jf__legal { padding: 0 20px 28px; font-size: 11px; gap: 6px 14px; } 2553 } 2554</style> 2555 2556<footer id="footer-app" class="jf" role="contentinfo"> 2557 <div class="jf__top"> 2558 <div class="jf__news"> 2559 <h2 class="jf__title">Better mornings, straight to your inbox.</h2> 2560 2561<form method="post" action="/contact#footer-newsletter" id="footer-newsletter" accept-charset="UTF-8" class="Footer__Newsletter Form alternate"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /><!-- <input type="text" name="contact[first_name]" placeholder="First name" class="Form__Input" required> --> 2562 <input type="hidden" name="contact[tags]" value="newsletter"> 2563 2564 <div class="css-n48rgu e13tduah13"> 2565 <input aria-label="Email" placeholder="Email" required="" class="css-7n72pu e13tduah12" type="email" name="contact[email]"> 2566 <button type="submit" class="css-1hfft79 e13tduah11"> 2567 <div>Subscribe</div> 2568 </button> 2569 </div></form> 2570 <div class="jf__social"> 2571 <a href="https://www.instagram.com/drinkjoey" target="_blank" rel="noopener" aria-label="Joe'y on Instagram"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M7.0301.084c-1.2768.0602-2.1487.264-2.911.5634-.7888.3075-1.4575.72-2.1228 1.3877-.6652.6677-1.075 1.3368-1.3802 2.127-.2954.7638-.4956 1.6365-.552 2.914-.0564 1.2775-.0689 1.6882-.0626 4.947.0062 3.2586.0206 3.6671.0825 4.9473.061 1.2765.264 2.1482.5635 2.9107.308.7889.72 1.4573 1.388 2.1228.6679.6655 1.3365 1.0743 2.1285 1.38.7632.295 1.6361.4961 2.9134.552 1.2773.056 1.6884.069 4.9462.0627 3.2578-.0062 3.668-.0207 4.9478-.0814 1.28-.0607 2.147-.2652 2.9098-.5633.7889-.3086 1.4578-.72 2.1228-1.3881.665-.6682 1.0745-1.3378 1.3795-2.1284.2957-.7632.4966-1.636.552-2.9124.056-1.2809.0692-1.6898.063-4.948-.0063-3.2583-.021-3.6668-.0817-4.9465-.0607-1.2797-.264-2.1487-.5633-2.9117-.3084-.7889-.72-1.4568-1.3876-2.1228C21.2982 1.33 20.628.9208 19.8378.6165 19.074.321 18.2017.1197 16.9244.0645 15.6471.0093 15.236-.005 11.977.0014 8.718.0076 8.31.0215 7.0301.0839m.1402 21.6932c-1.17-.0509-1.8053-.2453-2.2287-.408-.5606-.216-.96-.4771-1.3819-.895-.422-.4178-.6811-.8186-.9-1.378-.1644-.4234-.3624-1.058-.4171-2.228-.0595-1.2645-.072-1.6442-.079-4.848-.00
25717-3.2037.0053-3.583.0607-4.848.05-1.169.2456-1.805.408-2.2282.216-.5613.4762-.96.895-1.3816.4188-.4217.8184-.6814 1.3783-.9003.423-.1651 1.0575-.3614 2.227-.4171 1.2655-.06 1.6447-.072 4.848-.079 3.2033-.007 3.5835.005 4.8495.0608 1.169.0508 1.8053.2445 2.228.408.5608.216.96.4754 1.3816.895.4217.4194.6816.8176.9005 1.3787.1653.4217.3617 1.056.4169 2.2263.0602 1.2655.0739 1.645.0796 4.848.0058 3.203-.0055 3.5834-.061 4.848-.051 1.17-.245 1.8055-.408 2.2294-.216.5604-.4763.96-.8954 1.3814-.419.4215-.8181.6811-1.3783.9-.4224.1649-1.0577.3617-2.2262.4174-1.2656.0595-1.6448.072-4.8493.079-3.2045.007-3.5825-.006-4.848-.0608M16.953 5.5864A1.44 1.44 0 1 0 18.39 4.144a1.44 1.44 0 0 0-1.437 1.4424M5.8385 12.012c.0067 3.4032 2.7706 6.1557 6.173 6.1493 3.4026-.0065 6.157-2.7701 6.1506-6.1733-.0065-3.4032-2.771-6.1565-6.174-6.1498-3.403.0067-6.156 2.771-6.1496 6.1738M8 12.0077a4 4 0 1 1 4.008 3.9921A3.9996 3.9996 0 0 1 8 12.0077"/></svg></a> 2572 <a href="https://www.tiktok.com/@drinkjoey" target="_blank" rel="noopener" aria-label="Joe'y on TikTok"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.650-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z"/></svg></a> 2573 <a href="https://www.facebook.com/drinkjoey" target="_blank" rel="noopener" aria-label="Joe'y on Facebook"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z"/></svg></a> 2574 <a href="https://www.pinterest.com/drinkjoey/" target="_blank" rel="noopener" aria-label="Joe'y on Pinterest"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12.017 0C5.396 0 .029 5.367.029 11.987c0 5.079 3.158 9.417 7.618 11.162-.105-.949-.199-2.403.041-3.439.219-.937 1.406-5.957 1.406-5.957s-.359-.72-.359-1.781c0-1.663.967-2.911 2.168-2.911 1.024 0 1.518.769 1.518 1.688 0 1.029-.653 2.567-.992 3.992-.285 1.193.6 2.165 1.775 2.165 2.128 0 3.768-2.245 3.768-5.487 0-2.861-2.063-4.869-5.008-4.869-3.41 0-5.409 2.562-5.409 5.199 0 1.033.394 2.143.889 2.741.099.12.112.225.085.345-.09.375-.293 1.199-.334 1.363-.053.225-.172.271-.401.165-1.495-.69-2.433-2.878-2.433-4.646 0-3.776 2.748-7.252 7.920-7.252 4.158 0 7.392 2.967 7.392 6.923 0 4.135-2.607 7.462-6.233 7.462-1.214 0-2.354-.629-2.758-1.379l-.749 2.848c-.269 1.045-1.004 2.352-1.498 3.146 1.123.345 2.306.535 3.55.535 6.607 0 11.985-5.365 11.985-11.987C23.97 5.39 18.592.026 11.985.026L12.017 0z"/></svg></a> 2575</div> 2576 2577 </div> 2578 2579 <nav class="jf__cols" aria-label="Footer"> 2580 <div class="jf__col"> 2581 <h3 class="jf__h">Shop</h3> 2582 <div class="jf__links"><div> 2583 <a href="/collections/shop-all">Shop all</a> 2584 <a href="/pages/subscription">Why subscribe?</a> 2585 <a href="/pages/referral">Give 30%, get $10</a> 2586 <a href="/pages/store-locator">Find a store</a> 2587 <a href="https://wholesale.drinkjoey.com">Wholesale</a> 2588 </div></div> 2589 </div> 2590 <div class="jf__col"> 2591 <h3 class="jf__h">Learn</h3> 2592 <div class="jf__links"><div> 2593 <a href="/pages/our-story">Our story</a> 2594 <a href="/pages/joey-vs-coffee">Joe'y vs. coffee</a> 2595 <a href="/pages/better-mushroom-coffee">What's mushroom coffee?</a> 2596 <a href="/pages/cut-back-on-caffeine">How to cut caffeine</a> 2597 <a href="/pages/morning-cup-that-does-more">Our 12 superfoods</a> 2598 </div></div> 2599 </div> 2600 <div class="jf__col"> 2601 <h3 class="jf__h">Help</h3> 2602 <div class="jf__links"><div> 2603 <a href="/pages/track">Track my order</a> 2604 <a href="/apps/redo/returns-portal/login?referralId=6a21cd3b5e6fef513e7c5e49">Returns</a> 2605 <a href="/pages/faq">FAQ</a> 2606 <a href="/pages/contact-us">Contact us</a> 2607 <a href="/pages/accessibility">Accessibility</a> 2608 </div></div> 2609 </div> 2610 </nav> 2611 </div> 2612 2613 <a class="jf__mark" href="/" aria-label="Joe'y home"> 2614 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 215.31 97.82" aria-hidden="true"> 2615 <path d="M146.1,4.52a11.29,11.29,0,0,0-7.65-2.36,10.76,10.76,0,0,0-4.52,1.25A9.28,9.28,0,0,0,129.17,14c1.41,6.26,7,8.23,10.77,9a24.68,24.68,0,0,1,11.59,5.68,1.47,1.47,0,0,0,1.08.38,1.54,1.54,0,0,0,1.46-1.54C154.06,21.59,153.08,10.19,146.1,4.52Z"></path>
2616 <path d="M202.51,23.92c-8.49.21-11.66,7.87-12.42,10.18a.7.7,0,0,0,.4.88,15.31,15.31,0,0,1,5.75,3.91c6.41,7.6.67,18.94-2.19,24.11-.19-.31-.32-.48-.41-.66-.63-1.31-1.27-2.62-1.88-3.94-4.34-9.48-7.87-19.28-11.3-29.12-.1-.31-.21-.61-.32-.91a2.85,2.85,0,0,0-2.66-1.9,2.74,2.74,0,0,0-.74.1c-5.89,1.7-11.4,3.35-17.38,5a2.39,2.39,0,0,0-1.78,2.3l0,3.17a2.35,2.35,0,0,0,1.29,2.11,10.11,10.11,0,0,1,4.76,4.72c.74,1.81,1.53,3.6,2.24,5.42,3.1,7.95,6.61,15.73,10.38,23.39,1.66,3.35,4.51,7.69,6.24,11a1.33,1.33,0,0,1,0,1.18c-1.59,2.39-3.82,4.25-6.75,4.26h0c-3.85,0-6.55-5-3.35-9.37a.62.62,0,0,0,.09-.64,8.55,8.55,0,0,0-7.85-4.76,8,8,0,0,0-1.63.16c-5.35,1.1-8.55,5-8.35,10.1.34,8.62,7.75,13.21,15.69,13.21,10.8,0,17.58-8.38,20.05-12,5-7.39,20.5-35.9,22.16-39.06C220.36,31.66,210.12,23.74,202.51,23.92Z"></path> 2617 <path d="M77.79,26.52c-17.22,0-28.67,11.67-28.67,29.23S60.57,85.09,77.79,85.09s28.56-11.78,28.56-29.34S94.91,26.52,77.79,26.52Zm.11,51c-5,0-6.73-5.56-6.73-21.78S72.94,34,77.9,34c4.64,0,6.29,5.56,6.29,21.78S82.54,77.53,77.9,77.53Z"></path> 2618 <path d="M46.31,68.54c0-4.46,0-26.89,0-35.93,0-3.63-.8-5.8-4.29-5.8a18.21,18.21,0,0,0-4.88.87L19.49,32.45a2.75,2.75,0,0,0-2.17,2.61v3.21a2.39,2.39,0,0,0,2,2.11c4.06.63,4.42,1.95,4.4,5.58,0,0-.11,37.21-.13,38.69,0,.55-.16,1.09-1.36,1.09-5.39,0-7.39-7.93-5.45-15.35a.79.79,0,0,0-.25-.8,7.64,7.64,0,0,0-4.9-1.5A11.38,11.38,0,0,0,0,79.69C-.23,94.41,17.59,94.91,19.72,94.91h.16a32.33,32.33,0,0,0,11.64-2.29,20.8,20.8,0,0,0,12.13-11.1A31.12,31.12,0,0,0,46.31,68.54Z"></path> 2619 <path d="M153.05,65.92a.9.9,0,0,0-1.37,0c-2,2.45-5.54,6.29-11.4,6.29-3.44,0-8.43-1.32-11.44-7.38a13.65,13.65,0,0,1-1.48-5.31l29.54-7.29a1.16,1.16,0,0,0,.89-1.22,30.33,30.33,0,0,0-4.45-13.65,22.88,22.88,0,0,0-12.73-9.76,26.28,26.28,0,0,0-7.76-1.17,28.44,28.44,0,0,0-5.7.59c-8.38,1.7-22.08,8.45-22.15,28.32h0c0,.13,0,.26,0,.4,0,17.56,11.44,29.34,28.67,29.34,14,0,21.69-9.71,23.87-12.86a.92.92,0,0,0-.06-1.11ZM131.82,34.26a4.52,4.52,0,0,1,3.34,1.54,7.69,7.69,0,0,1,1.69,3,15,15,0,0,1,.77,4.8,6.11,6.11,0,0,1-4.45,6c-2,.6-6.76,1.46-7.34,1.56C125.49,34.94,130.44,34.26,131.82,34.26Z"></path> 2620 <ellipse cx="32.72" cy="12.18" rx="12.08" ry="12.18"></ellipse> 2621 </svg> 2622 2623 </a> 2624 2625 <div class="jf__legal"> 2626 <span>© 2026 Joe’y. All rights reserved.</span> 2627 <a href="/policies/privacy-policy">Privacy</a> 2628 <a href="/policies/terms-of-service">Terms & Conditions</a> 2629 <a href="/policies/shipping-policy">Shipping Policy</a> 2630 <a href="/policies/subscription-policy">Cancellation Policy</a> 2631 </div> 2632</footer>
2633<script> 2634 (function(){ 2635 var mq=window.matchMedia('(max-width: 760px)'); 2636 document.querySelectorAll('.jf__col').forEach(function(col){ 2637 var h=col.querySelector('.jf__h'); if(!h) return; 2638 h.setAttribute('role','button'); h.setAttribute('tabindex','0'); h.setAttribute('aria-expanded','false'); 2639 function toggle(){ if(!mq.matches) return; var o=col.classList.toggle('is-open'); h.setAttribute('aria-expanded',o?'true':'false'); } 2640 h.addEventListener('click',toggle); 2641 h.addEventListener('keydown',function(e){ if(e.key==='Enter'||e.key===' '){ e.preventDefault(); toggle(); } }); 2642 }); 2643 })(); 2644 (function(){ 2645 var f=document.querySelector('.jf'); if(!f||!window.matchMedia('(hover:hover)').matches) return; 2646 var raf=0; f.addEventListener('pointermove',function(e){ 2647 if(raf) return; raf=requestAnimationFrame(function(){ raf=0; 2648 var r=f.getBoundingClientRect(); 2649 f.style.setProperty('--jf-mx',(e.clientX-r.left)+'px'); 2650 f.style.setProperty('--jf-my',(e.clientY-r.top)+'px'); 2651 }); 2652 }); 2653 })(); 2654</script>
2654 2655</div> 2656<!-- END sections: footer-group --></main> 2657 <div id="modal-root"></div> 2658
2659<script> 2660(function() { 2661 var DISCLOSURE_ID = 'joey-arl-cart-disclosure'; 2662 2663 function injectDisclosure() { 2664 if (document.getElementById(DISCLOSURE_ID)) return; 2665 var form = document.querySelector('form.cart-drawer__footer'); 2666 if (!form) return; 2667 var btn = form.querySelector('button[name="checkout"], button[type="submit"]'); 2668 if (!btn) return; 2669 var box = document.createElement('div'); 2670 box.id = DISCLOSURE_ID; 2671 box.style.cssText = 'padding:0 16px 12px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;line-height:1.6;color:#666666;'; 2672 box.innerHTML = '<strong style="color:#444444;">Subscription terms:</strong> Your subscription renews automatically at the frequency and price shown, plus taxes, until you cancel. To cancel, log in at drinkjoey.com â Manage Subscription â Cancel Subscription, or email <a href="mailto:[email protected]" style="color:#666666;">[email protected]</a> or call <a href="tel:+12674783038" style="color:#666666;">+1 (267) 478-3038</a>. <a href="/policies/subscription-policy" style="color:#666666;text-decoration:underline;">Full cancellation policy</a>'; 2673 form.appendChild(box); 2674 } 2675 2676 function removeDisclosure() { 2677 var el = document.getElementById(DISCLOSURE_ID); 2678 if (el) el.remove(); 2679 } 2680 2681 function checkCartAndUpdate() { 2682 fetch('/cart.js') 2683 .then(function(r) { return r.json(); }) 2684 .then(function(cart) { 2685 var hasSub = cart.items.some(function(item) { 2686 return item.selling_plan_allocation != null; 2687 }); 2688 if (hasSub) { 2689 injectDisclosure(); 2690 } else { 2691 removeDisclosure(); 2692 } 2693 }); 2694 } 2695 2696 new MutationObserver(function() { 2697 if (document.querySelector('form.cart-drawer__footer')) { 2698 checkCartAndUpdate(); 2699 } else { 2700 removeDisclosure(); 2701 } 2702 }).observe(document.body, { childList: true, subtree: true }); 2703})(); 2704</script>
2704 2705
2706<script> 2707/* ============================================================================ 2708 Joe'y PDP deep links (added 2026-06-19; ?variant mapping added 2026-06-20) 2709 ---------------------------------------------------------------------------- 2710 Adds URL params to /products/joey so links can preselect size + starter kit: 2711 ?size=60|20|8 -> selects the size 2712 ?kit=0 -> on size=60, drops the free starter kit (just the bag); 2713 the kit is included by default 2714 (?flavor=Original|Vanilla|Mocha is handled natively by the site, not here.) 2715 2716 Google Shopping support: Google's feed links the Original product's variants 2717 with ?variant=<id>. We map those three variant IDs to the matching size below 2718 (variantSizeMap) so a Shopping click lands on the right size/price instead of 2719 the default 60-serving+kit view. If those variant IDs ever change in Shopify, 2720 update variantSizeMap. 2721 2722 MAINTENANCE NOTE: this works by clicking the product page's buttons by their 2723 CSS class names: .size-item (size buttons), .kit-label ("FREE STARTER KIT!" 2724 tag), .just-want-bag (kit/bag toggle). If the product component is ever 2725 rebuilt and these classes are renamed or removed, the ?size= / ?kit= links 2726 silently stop working (page falls back to the default 60-serving). Flavor 2727 links keep working. Fix = update the class names below to match the new markup. 2728 ============================================================================ */ 2729(function () { 2730 var params = new URLSearchParams(location.search); 2731 var s = params.get('size'); 2732 if (s === null) { 2733 var variantSizeMap = { '48120166842538': '20', '48120166875306': '8', '48120166809770': '60' }; 2734 var vid = params.get('variant'); 2735 if (vid && variantSizeMap[vid]) s = variantSizeMap[vid]; 2736 } 2737 var map = { '60': 0, '20': 1, '8': 2 }; 2738 if (!(s in map)) return; 2739 var wantKit = params.get('kit') !== '0'; 2740 var tries = 0; 2741 var timer = setInterval(function () { 2742 var items = document.querySelectorAll('.size-item'); 2743 if (items.length >= 3) { 2744 clearInterval(timer); 2745 var el = items[map[s]]; 2746 var oos = /out of stock/i.test(el.textContent) || el.querySelector('img[alt="Out Of Stock"]'); 2747 if (!el || oos) return; 2748 el.click(); 2749 if (s === '60') { 2750 setTimeout(function () { 2751 var sel = document.querySelector('.size-item.selected'); 2752 var kitActive = !!(sel && sel.querySelector('.kit-label')); 2753 var toggle = sel && sel.querySelector('.just-want-bag'); 2754 if (toggle && kitActive !== wantKit) toggle.click(); 2755 }, 500); 2756 } 2757 } else if (++tries > 50) { 2758 clearInterval(timer); 2759 } 2760 }, 150); 2761})(); 2762</script>
2762 2763 2764 2765<style> </style> 2766<div id="shopify-block-AVElYbHJnemxjbVVrN__10840395464443086010" class="shopify-block shopify-app-block"> 2767 2768
2769<script> 2770 console.log("[Alia app extension] v1.0.5"); 2771 2772 const BACKEND_URL = "https://backend.alia-prod.com"; 2773 2774 window.ALIA_SHOPIFY_EXTENSION_INFO = { 2775 customerID: "", 2776 country: "US", 2777 market: "us", 2778 language: "en" 2779 } 2780 2781 if (document.readyState !== "loading") { 2782 initAlia(); 2783 } else { 2784 document.addEventListener("DOMContentLoaded", () => initAlia(), { once: true }); 2785 } 2786 2787 async function initAlia() { 2788 const url = BACKEND_URL + "/public/launcher.js?shopifyUrl=respect-des-fonds.myshopify.com"; 2789 const script = document.createElement("script"); 2790 script.src = url; 2791 script.async = true; 2792 document.head.appendChild(script); 2793 } 2794</script>
2794 2795 2796</div><div id="shopify-block-AWGxmMlp0WWFnTzZRY__16798170927650018749" class="shopify-block shopify-app-block"> 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810<div id="recharge-storefront-experiences"> 2811 2812 <div></div> 2813</div>
2814<script type="module" src="https://static.rechargecdn.com/assets/storefront-experiences/storefront-experiences.js"></script>
2814 2815
2816<script> 2817 (function () { 2818 2819 2820 2821 2822 2823 2824 window.RechargeStorefrontConfig = { 2825 customer: null, 2826 shop: { 2827 currency: "USD", 2828 locale: "en", 2829 identifier: "respect-des-fonds.myshopify.com", 2830 market_id: 2944434346, 2831 currency_format: "${{amount}}", 2832 routes: { 2833 cart: "\/cart", 2834 root: "\/", 2835 }, 2836 }, 2837 cart_overlay:{"enabled":true}, 2838 cart_overlay_preview:{"config":{"settings":{"advanced":{"drawer_settings":{"drawer_width_enabled":false,"z_index_enabled":false}},"blocks":[{"settings":{"background_color":"#E3EBF0","foreground_color":"#0B1317","padding_bottom":12,"padding_top":12,"text":"\u003cp\u003e{{product_title}} added to the cart!\u003c\/p\u003e"},"type":"banner"},{"settings":{"padding_bottom":20,"padding_top":20,"text":"\u003ch1\u003eSubscribe \u0026 save {{discount}}\u003c\/h1\u003e\u003cp\u003eWhen you subscribe, you'll also get these benefits:\u003c\/p\u003e\u003cul\u003e\u003cli\u003e\u003cp\u003eSave {{discount}} on every order\u003c\/p\u003e\u003c\/li\u003e\u003cli\u003e\u003cp\u003eSkip, delay or cancel any time\u003c\/p\u003e\u003c\/li\u003e\u003cli\u003e\u003cp\u003eFree shipping in the US\u003c\/p\u003e\u003c\/li\u003e\u003cli\u003e\u003cp\u003eRenew on your timeframe\u003c\/p\u003e\u003c\/li\u003e\u003c\/ul\u003e"},"type":"text_area"},{"settings":{"divider_placement":"top","frequency_select_label":"Deliver every","padding_bottom":10,"padding_top":20,"savings_text":"Saving {{discount}}","show_divider_line":true,"show_frequency_select_label":true,"show_savings_text":true,"show_strikethrough_price":true},"type":"upsell_product"},{"settings":{"padding_bottom":20,"padding_top":10,"primary_button_text":"Subscribe \u0026 save {{discount}}","secondary_button_text":"Continue to your cart"},"type":"upsell_buttons"}
2838],"theme":{"accent_color":"#16833a","background_color":"#FFFFFF","border_radius":"full","error_color":"#EC3D10","foreground_color":"#000000","link_color":"#467c99","muted_color":"#535a5d","padding_left":24,"padding_right":24,"primary_color":"#467c99","primary_foreground_color":"#ffffff","secondary_color":"#E3EBF0","secondary_foreground_color":"#467c99"}},"type":"upsell","upsell_config":{"upsell_delivery_frequency":"default"},"flow_id":0}}, 2839 cart_drawer:{"config":{"config":{"cross_sell":{"enabled":true,"config_list":[{"trigger":{"type":"any"},"cross_sell":{"type":"specific_products","products":[{"id":"7064716738730","handle":"frothy","variant_ids":["41764410556586"],"purchase_option":"onetime_only","frequency_selection":"customer"},{"id":"8002412413098","handle":"joey-jar","variant_ids":["46151459799210"],"purchase_option":"onetime_only","frequency_selection":"customer"},{"id":"8005121015978","handle":"fellow-ceramic-mug","variant_ids":["46161441063082"],"purchase_option":"onetime_only","frequency_selection":"customer"},{"id":"8248263540906","handle":"joey-tumbler","variant_ids":["47442121228458"],"purchase_option":"onetime_only","frequency_selection":"customer"}],"number_of_products":4}}]},"upsell_cart_items":true,"shipping_progress_bar":{"enabled":false,"required_amount":50,"required_amount_type":"discounted","subscriptions_unlock_free_shipping":false}},"settings":{"theme":{"link_color":"rgba(92, 12, 13, 1)","error_color":"#EC3D10","muted_color":"#535a5d","accent_color":"rgba(168, 63, 33, 1)","padding_left":24,"border_radius":"full","padding_right":24,"primary_color":"rgba(92, 12, 13, 1)","secondary_color":"rgba(255, 232, 175, 1)","background_color":"rgba(253, 249, 239, 1)","foreground_color":"rgba(92, 12, 13, 1)","primary_foreground_color":"#ffffff","secondary_foreground_color":"rgba(168, 63, 33, 1)"},"advanced":{"selectors":{"cart_count":"[data-recharge-cart-count],\n.e1a3k64w0","cart_trigger":"[data-recharge-cart-trigger], .e1a3k64w0","cart_count_enabled":false,"add_to_cart_enabled":false,"cart_trigger_enabled":true,"add_to_cart_override_type":"auto"},"drawer_settings":{"z_index":"9999999999","z_index_enabled":true,"drawer_width_enabled":false}},"templates":{"empty":{"body":{"blocks":[{"type":"text_area","settings":{"text":"\u003ch2\u003eYour cart is empty!\u003c\/h2\u003e","padding_top":0,"padding_bottom":8}},{"type":"empty_cart_button","settings":{"button_text":"Continue shopping","button_action":"close"}}],"alignment":"center","padding_top":0,"padding_bottom":0},"footer":{"blocks":[],"padding_top":20,"padding_bottom":20,"section_divider":"shadow","background_color":"#FFFFFF"},"header":{"blocks":[{"type":"cart_title","settings":{"title":"\u003ch2 style=\"font-size: 24px;\"\u003eYour cart ({{items_count}})\u003c\/h2\u003e","padding_top":16,"padding_bottom":16}}],"show_divider_line":true}},"line_items":{"body":{"blocks":[{"type":"line_items","settings":{"upsell":{"display_type":"button","text_discount":"Upgrade to subscription and save {{discount}}","text_no_discount":"Upgrade to a subscription","frequency_select_label":"Deliver every","show_onetime_frequency":false,"onetime_frequency_label":"One-time purchase","upsell_in_progress_text":"Upgrading to subscription...","text_discount_quantity_upsell":"Subscribe and buy {{quantity}}, save {{discount}}!"},"padding_top":18,"savings_text":"Saving {{discount}}","padding_bottom":18,"show_divider_line":true,"show_savings_text":true,"show_strikethrough_price":true}},{"type":"cross_sell","settings":{"show_title":true,"title_text":"\u003ch4 style=\"text-align: center\"\u003eDonât Forget the Extras!\u003c\/h4\u003e","padding_top":11,"padding_bottom":35,"display_options":"dropdown","card_background_color":"rgba(250, 250, 250, 1)","add_to_cart_button_text":"Add","section_background_color":"rgba(255, 227, 130, 1)","display_products_on_cards":true,"prompt_one_time_option_text":"One-time purchase","prompt_add_to_cart_button_text":"Add to cart","prompt_variant_selection_label":"Options","prompt_frequency_selection_label":"Deliver every"}}],"alignment":"top","padding_top":0,"padding_bottom":0},"footer":{"blocks":[{"type":"subtotal","settings":{"padding_top":0,"padding_bottom":4,"subtotal_text_plural":"\u003cstrong\u003eSubtotal ({{items_count}} items):\u003c\/strong\u003e","subtotal_text_singular":"\u003cstrong\u003eSubtotal ({{items_count}} item):\u003c\/strong\u003e","show_strikethrough_price":true}},{"type":"checkout_button","settings":{"padding_top":4,"padding_bottom":0,"checkout_button_text":"Checkout"}},{"type":"text_area","settings":{"text":"\u003cp\u003eSubscription terms: Your subscription renews automatically at the frequency and price shown, plus taxes, until you cancel. To cancel, log in at \u003ca target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"http:\/\/drinkjoey.com\"\u003edrinkjoey.com\u003c\/a\u003e â Manage Subscription â Cancel Subscription, or email \u003ca target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"mailto:[email protected]\"\[email protected]\u003c\/a\u003e or call +1 (2
283967) 478-3038. Full terms: drinkjoey.com\/policies\/subscription-policy\u003c\/p\u003e","padding_top":20,"padding_bottom":20}}],"padding_top":20,"padding_bottom":20,"section_divider":"shadow","background_color":"rgba(253, 248, 237, 1)"},"header":{"blocks":[{"type":"cart_title","settings":{"title":"\u003ch2\u003eYour Cart ({{items_count}})\u003c\/h2\u003e","padding_top":16,"padding_bottom":16}},{"type":"shipping_progress_bar","settings":{"icon":"https:\/\/static.stage.rechargecdn.com\/assets\/affinity-components\/shipping-default.png","show_icon":false,"padding_top":16,"completed_text":"\u003cp style=\"text-align:center;\"\u003eð \u003cstrong\u003eCongrats\u003c\/strong\u003eâyou've unlocked free shipping!\u003c\/p\u003e","padding_bottom":16,"background_color":"#FFFFFF","in_progress_text":"\u003cp style=\"text-align:center;\"\u003eSpend \u003cstrong\u003e{{amount}}\u003c\/strong\u003e more for free shipping\u003c\/p\u003e","divider_placement":"top","show_divider_line":true,"bar_background_color":"#E3EBF0","bar_foreground_color":"#16833A"}}],"show_divider_line":true}}}},"passed_activation_ready_schema":true,"flow_id":239344},"enabled":true}, 2840 cart_drawer_preview:{}, 2841 bundles_selling_plan_sync_enabled:false, 2842 }; 2843 })(); 2844</script>
2844 2845 2846 2847 2848 2849</div><div id="shopify-block-AMXlNNXM5SWtGZ0cxR__17151115064775110295" class="shopify-block shopify-app-block"><style data-recharge-theme='{"has_theme_customization": true, "design_mode": false }'> 2850 .recharge-theme { 2851 /* App */ 2852 --recharge-app-background: #FAF0D6; 2853 --recharge-app-container: 1200px; 2854 --recharge-app-vertical-padding: 32px; 2855 2856 /* Brand colors */ 2857 2858--recharge-color-brand: #5B0E10; 2859 2860 /* Tints */ 2861 --recharge-color-brand-120: #340809; 2862 --recharge-color-brand-20: #7c3e40; 2863 --recharge-color-brand-40: #9d6e70; 2864 --recharge-color-brand-60: #bd9f9f; 2865 --recharge-color-brand-75: #d6c3c3; 2866 --recharge-color-brand-85: #e6dbdb; 2867 2868 /* Neutral */ 2869 --recharge-color-neutral: hsl(358, 35%, 7%); 2870 --recharge-color-neutral-80: hsl(358, 7%, 25%); 2871 --recharge-color-neutral-70: hsl(358, 5%, 35%); 2872 --recharge-color-neutral-40: hsl(358, 3%, 63%); 2873 --recharge-color-neutral-10: hsl(358, 2%, 91%); 2874 2875 2876 /* Links */ 2877 --recharge-button-secondary: #A84024; 2878 --recharge-button-secondary-120: #83321c; 2879 --recharge-button-secondary-60: #cb8c7c; 2880 2881 /* Images */ 2882 --recharge-images-ratio: 1; 2883 2884 /* Cards */ 2885 2886 --recharge-cards-background: #FAF0D6; 2887 2888 2889 2890 --recharge-cards-border-color: RGBA(0,0,0,0); 2891 2892 2893 /* Fonts */ 2894 --recharge-typography-scale: 16px; 2895 --recharge-typography-size-1: calc(3 * var(--recharge-typography-scale)); 2896 --recharge-typography-size-2: calc(2.25 * var(--recharge-typography-scale)); 2897 --recharge-typography-size-3: calc(1.625 * var(--recharge-typography-scale)); 2898 --recharge-typography-size-4: calc(1.25 * var(--recharge-typography-scale)); 2899 --recharge-typography-size-5: calc(1 * var(--recharge-typography-scale)); 2900 --recharge-typography-size-6: calc(.875 * var(--recharge-typography-scale)); 2901 2902 /** Text **/ 2903 --recharge-typography-light: #FFFFFF; 2904 --recharge-typography-primary: var(--recharge-color-neutral); 2905 --recharge-typography-secondary: var(--recharge-color-neutral-70); 2906 2907 /* Corners */ 2908 --recharge-corners-radius: 8px; 2909 2910 --recharge-button-border-radius: 8px; 2911 2912 2913 /* Views */ 2914 2915 --recharge-views-background: #FAF0D6; 2916 2917 2918 /* Buttons */ 2919 --recharge-button-font-family: inherit; 2920 --recharge-button-brand: var(--recharge-color-brand); 2921 --recharge-button-color: #FFFFFF; 2922 } 2923</style> 2924 2925</div>
2925<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
2925 2926</body> 2927</html><style> 2928 [id^="alia-root"] img[src*="logoheader"], 2929 [id^="alia-popup"] img[src*="logoheader"]{ 2930 display:block !important; 2931 margin-left:auto !important; 2932 margin-right:auto !important; 2933 } 2934 2935 /* Alia popup, answer buttons. 2936 2937 In the popup's content column every child fills the column except the 2938 stack holding the four answer buttons, which Alia sizes to a fixed 288px 2939 and gives no side margins. So it sits flush left while the headline and 2940 "No thanks" centre above and below it. Measured on a 430px phone the 2941 column is 398px and the stack 288px, putting it 34px off centre; at 768px 2942 the same stack is 179px off. 2943 2944 Auto side margins centre it, and are a no-op for the siblings that already 2945 fill the column. The :has() scope pins the rule to the one container that 2946 holds the popup logo, so no other part of Alia's layout is touched, and on 2947 a browser without :has() support nothing applies and the popup renders as 2948 it does today. 2949 2950 This belongs in Alia's own popup editor, on the button container's width. 2951 Delete this rule once it is set there. 2952 Added 2026-09-08. */ 2953 [id^="alia-root"] div[id^="alia-"]:has(> img[src*="logoheader"]) >
2953 div[id^="alia-"]{ 2954 margin-left:auto !important; 2955 margin-right:auto !important; 2956 } 2957</style>
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.