PageSourceSearch

https://www.drinkjoey.com/

html drinkjoey.com collected 2026-10-04 20:15:52 UTC 218,335 bytes, 2,957 lines download raw bytes

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&#39;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&#39;y"><meta name="twitter:card" content="summary"><meta name="twitter:title" content="Joe&#39;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&#39;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="{&quot;isInstalled&quot;:true,&quot;installedOn&quot;:&quot;2025-11-12T06:12:36.891Z&quot;,&quot;appVersion&quot;:&quot;3.0&quot;,&quot;subscriptionName&quot;:&quot;Unlimited&quot;,&quot;cartAnalytics&quot;:true,&quot;freeTrialEndsOn&quot;:null,&quot;settings&quot;:{&quot;reminderBannerStyle&quot;:{&quot;position&quot;:{&quot;horizontal&quot;:&quot;right&quot;,&quot;vertical&quot;:&quot;bottom&quot;},&quot;closingMode&quot;:&quot;doNotAutoClose&quot;,&quot;cssStyles&quot;:&quot;&quot;,&quot;displayAfter&quot;:5,&quot;headerText&quot;:&quot;&quot;,&quot;imageUrl&quot;:null,&quot;primaryColor&quot;:&quot;#000000&quot;,&quot;reshowBannerAfter&quot;:&quot;everyNewSession&quot;,&quot;selfcloseAfter&quot;:5,&quot;showImage&quot;:false,&quot;subHeaderText&quot;:&quot;&quot;},&quot;addedItemIdentifier&quot;:&quot;_Gifted&quot;,&quot;ignoreOtherAppLineItems&quot;:null,&quot;customVariantsInfoLifetimeMins&quot;:1440,&quot;redirectPath&quot;:null,&quot;ignoreNonStandardCartRequests&quot;:false,&quot;bannerStyle&quot;:{&quot;position&quot;:{&quot;horizontal&quot;:&quot;right&quot;,&quot;vertical&quot;:&quot;bottom&quot;},&quot;cssStyles&quot;:null,&quot;primaryColor&quot;:&quot;#000000&quot;},&quot;themePresetId&quot;:null,&quot;notificationStyle&quot;:{&quot;position&quot;:{&quot;horizontal&quot;:null,&quot;vertical&quot;:null},&quot;cssStyles&quot;:null,&quot;duration&quot;:null,&quot;hasCustomizations&quot;:false,&quot;primaryColor&quot;:null},&quot;fetchCartData&quot;:false,&quot;useLocalStorage&quot;:{&quot;enabled&quot;:false,&quot;expiryMinutes&quot;:null},&quot;popupStyle&quot;:{&quot;closeModalOutsideClick&quot;:true,&quot;priceShowZeroDecimals&quot;:true,&quot;addButtonText&quot;:null,&quot;cssStyles&quot;:null,&quot;dismissButtonText&quot;:null,&quot;hasCustomizations&quot;:false,&quot;imageUrl&quot;:null,&quot;outOfStockButtonText&quot;:null,&quot;primaryColor&quot;:null,&quot;secondaryColor&quot;:null,&quot;showProductLink&quot;:false,&quot;subscriptionLabel&quot;:null},&quot;refreshAfterBannerClick&quot;:false,&quot;disableReapplyRules&quot;:false,&quot;disableReloadOnFailedAddition&quot;:false,&quot;autoReloadCartPage&quot;:false,&quot;ajaxRedirectPath&quot;:null,&quot;allowSimultaneousRequests&quot;:false,&quot;applyRulesOnCheckout&quot;:false,&quot;enableCartCtrlOverrides&quot;:true,&quot;customRedirectFromCart&quot;:null,&quot;scriptSettings&quot;:{&quot;branding&quot;:{&quot;removalRequestSent&quot;:null,&quot;show&quot;:false},&quot;productPageRedirection&quot;:{&quot;enabled&quot;:false,&quot;products&quot;:[],&quot;redirectionURL&quot;:&quot;\/&quot;},&quot;debugging&quot;:{&quot;enabled&quot;:false,&quot;enabledOn&quot;:null,&quot;stringifyObj&quot;:false},&quot;useFinalPriceGetEntireCart&quot;:false,&quot;disableRedirectAfterFormSubmit&quot;:false,&quot;customCSS&quot;:null,&quot;decodePayload&quot;:false,&quot;delayUpdates&quot;:2000,&quot;enableBuyNowInterceptions&quot;:false,&quot;fetchCartDataBeforeRequest&quot;:false,&quot;fetchProductInfoFromSavedDomain&quot;:false,&quot;hideAlertsOnFrontend&quot;:false,&quot;hideGiftedPropertyText&quot;:false,&quot;removeEGPropertyFromSplitActionLineItems&quot;:false,&quot;removeProductsAddedFromExpiredRules&quot;:false,&quot;useFinalPrice&quot;:false},&quot;accessToEnterprise&quot;:false},&quot;translations&quot;:null,&quot;defaultLocale&quot;:&quot;en&quot;,&quot;shopDomain&quot;:&quot;www.drinkjoey.com&quot;}">
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&#39;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>&copy; 2026 Joe&rsquo;y. All rights reserved.</span>
2627    <a href="/policies/privacy-policy">Privacy</a>
2628    <a href="/policies/terms-of-service">Terms &amp; 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.