PageSourceSearch

https://www.seattlecoffeegear.com/pages/learn-articles

html seattlecoffeegear.com collected 2026-10-02 02:45:09 UTC 867,274 bytes, 19,221 lines download raw bytes

1<!doctype html>
2<html class="min-h-[100vh]" lang="en">
3  <head>
4    
5<script>
6    (function () {
7      var real = ['www', 'seattle' + 'coffee' + 'gear', 'com'].join('.');
8      var host = location.hostname;
9      var allowed =
10        host === real ||
11        host === real.slice(4) ||
12        /\.myshopify\.com$|\.shopifypreview\.com$/.test(host);
13      if (allowed) return;
14
15      if (window.stop) window.stop();
16      var root = document.documentElement;
17      while (root.firstChild) root.removeChild(root.firstChild);
18      var head = root.appendChild(document.createElement('head'));
19      var robots = head.appendChild(document.createElement('meta'));
20      robots.name = 'robots';
21      robots.content = 'noindex, nofollow';
22      head.appendChild(document.createElement('title')).textContent = 'Unavailable';
23      root.appendChild(document.createElement('body'));
24    })();
25  </script>
25
26<!--LOOMI SDK-->
27<!--DO NOT EDIT-->
28<!--Start - Anti Flicker-->
29<style id="vslyAntiFlickerStyle-AE29">
30    body {
31        opacity: 0!important;
32    }
33</style>
34<style id="vslyAntiFlickerStyle-BC82">
35    body {
36
37        animation: vslyAntiFlickerFadeIn 0.1s linear;
38        -moz-animation: vslyAntiFlickerFadeIn 0.1s linear;
39        -o-animation: vslyAntiFlickerFadeIn 0.1s linear;
40        -webkit-animation: vslyAntiFlickerFadeIn 0.1s linear;
41
42        animation-fill-mode: forwards;
43        -moz-animation-fill-mode: forwards;
44        -o-animation-fill-mode: forwards;
45        -webkit-animation-fill-mode: forwards;
46
47        animation-delay: 500ms;
48        -moz-animation-delay: 500ms;
49        -o-animation-delay: 500ms;
50        -webkit-animation-delay: 500ms;
51    }
52
53    @keyframes vslyAntiFlickerFadeIn {
54        to {
55            opacity: 1;
56        }
57    }
58</style>
59<script id="vslyAntiFlickerScript-OJ93" data-em-disable>
60    console.debug('vsly-anti-flicker', 'Anti Flicker Script Loaded');
61    let fallbackTimer = -1;
62    let retryTimer = -1;
63    let retries = 0;
64
65    function _vslyAntiFlickerRevealInner() {
66        try {
67            console.debug('vsly-anti-flicker', 'Revealing');
68            const hideElem = document.querySelector('#vslyAntiFlickerStyle-AE29');
69            if (hideElem) {
70                hideElem.remove();
71            }
72            clearTimeout(fallbackTimer);
73            console.debug('vsly-anti-flicker', 'Revealing done');
74        } catch (ex) {
75            console.error('vsly-anti-flicker', ex);
76            if (retries > 15) {
77                setTimeout(window.vslyAntiFlickerReveal, 10);
78                retries += 1;
79            }
80        }
81    }
82
83    window.vslyAntiFlickerReveal = function () {
84        setTimeout(_vslyAntiFlickerRevealInner, 10);
85    }
86
87    fallbackTimer = setTimeout(() => {
88        console.debug('vsly-anti-flicker', 'Falling back after timeout');
89        window._vslyAntiFlickerRevealInner()
90        clearTimeout(retryTimer)
91    }, 500)
92</script>
92
93<!--End - Anti Flicker-->
94<link rel="preconnect"  href="https://live.visually-io.com" crossorigin data-em-disable>
95<link rel="dns-prefetch" href="https://live.visually-io.com" data-em-disable>
96<script type="text/javascript" data-em-disable data-vsly>
97    (()=> {
98        const env = 2;
99        var store = "seattlecoffeegear.myshopify.com";
100        var alias = store.replace(".myshopify.com", "").replaceAll("-", "_").toUpperCase();
101        var jitsuKey =  "js.83175735603";
102        var themeId = 161449935155;
103        var role = "main";
104        window.loomi_ctx = {...(window.loomi_ctx || {}),storeAlias:alias,jitsuKey,env,themeId,role};
105        
106        
107    
108	
109        
110        window.loomi_ctx.blockingConcent = false;
111        loomi_ctx.ttl=1793500148;
112        loomi_ctx.embeddedTests=[];
113    })()
114</script>
vendor: 1 bytes, line 114
114
115<script type="text/javascript" data-em-disable>
116    !function(){var e,t,n;!function(e){e.JSCondition="jsCondition",e.JSFunction="jsFunction",e.JSEvent="jsEvent",e.Selector="selector",e.ElementEvent="elementEvent",e.PageLoad="pageLoad",e.Timeout="timeout",e.Inactivity="inactivity",e.ExitIntent="exitIntent",e.Conjunction="conjunction"}(e||(e={})),function(e){e[e.PAUSED=4]="PAUSED"}(t||(t={})),function(e){e[e.LOCAL=0]="LOCAL",e[e.STAGE=1]="STAGE",e[e.PROD=2]="PROD",e[e.TEST=3]="TEST"}(n||(n={}));const r="lmi_preview";var o;!function(e){e.USE_CASE="USE_CASE",e.ADD_TO_CART="ADD_TO_CART"}(o||(o={}));const i=function(e){void 0===e&&(e=()=>window);try{return Promise.resolve(v(()=>void 0!==_(()=>e().removeEventListener),100,100)).then(function(){return Promise.resolve()})}catch(e){return Promise.reject(e)}},s=function(e,t){void 0===e&&(e=()=>window),void 0===t&&(t=!1);try{function n(){return Promise.resolve()}const r=t&&a()?Promise.resolve(v(()=>c,1e3,10)).then(function(){}):Promise.resolve(v(()=>void 0!==_(()=>e().addEventListener),10,1e3)).then(function(){});return Promise.resolve(r&&r.then?r.then(n):n())}catch(o){return Promise.reject(o)}};let c=!1;function a(){return!0===_(()=>window.vslyDeferResources)}function u(e,t){void 0===t&&(t=20);let n=0;return function(){clearTimeout(n),n=setTimeout(()=>e(...[].slice.call(arguments)),t)}}window.addEventListener("load",()=>{setTimeout(()=>{c=!0},2e3)});const l="vsly-hide-theme-preview",d="vslyCtags",m=()=>{_(()=>{const e=window.loomi_ctx.ctags||[];0===e.length?window.loomi_ctx.ctags=JSON.parse(localStorage.getItem(d)||"[]"):localStorage.setItem(d,JSON.stringify(e)),_(()=>{const e=JSON.parse(localStorage.getItem("vslyCustomCtags")||"[]");e&&e.length>0&&(window.loomi_ctx.ctags=[...window.loomi_ctx.ctags||[],...e])})})},f=()=>new Date(1e3*Math.floor(Date.now()/1e3));function h(e,t){void 0===t&&(t={async:!1,defer:!1});const n=_(()=>window.visually.flags["bunny-cdn"]),r=A();return p(`vsly-lib-${e}`,`https://${n?"assets.visually.io":r}/vsly/lib/${e}.js`,t)}function p(e,t,n){return void 0===n&&(n={async:!1,defer:!1}),new Promise((r,o)=>{let i=document.getElementById(e);i?r(document.getElementById(e)):(i=document.createElement("script"),i.id=e,i.src=t,i.async=n.async||!1,i.defer=n.defer||!1,i.setAttribute("data-em-disable",""),i.onload=()=>r(i),i.onerror=()=>o(new Error(`Failed to load ${t}`)),document.head.appendChild(i))})}function v(e,t,n,r){return void 0===t&&(t=500),void 0===n&&(n=4),new Promise((o,i)=>{e()?o(0):0!==n?setTimeout(()=>{r&&r()&&i(`condition rejected ${_(()=>e.toString())}`),v(e,t,n-1).then(o).catch(i)},t):i(`condition rejected ${_(()=>e.toString())}`)})}function w(e,t){void 0===t&&(t=500);const n=_(()=>window.visually_io_editor)?Date.now()+1e4:Infinity;function r(o){try{const i=e();i?o(i):Date.now()>=n?o(void 0):setTimeout(()=>r(o),t)}catch(e){console.error("vsly-when",e),Date.now()>=n?o(void 0):setTimeout(()=>r(o),t)}}return new Promise(e=>{r(e)})}function y(e){return!Array.isArray(e)||0===e.length}function g(e){return btoa(unescape(encodeURIComponent(JSON.stringify(e))))}function _(e,t){void 0===t&&(t=void 0);try{return e()}catch{return t}}const S=e=>e&&decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(e).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1"))||null;function E(){const e=window.loomi_ctx?.clientId;return e?(window.localStorage.setItem("vsly__st",String(e)),String(e)):window.localStorage.getItem("vsly__st")}function P(e,t,n){void 0===t&&(t=5),void 0===n&&(n=500),t>=0&&!_(e)&&setTimeout(()=>{_(e)||P(e,t-1)},n)}const A=function(e){return void 0===e&&(e=window.loomi_ctx.env),e===n.STAGE?"sdk.loomi-stg.xyz":"live.visually-io.com"};function I(e){return e.replace(/[^a-z_A-Z0-9]/gi,"_")}const b=()=>!!_(()=>x()()),x=()=>_(()=>window.Shopify.customerPrivacy.analyticsProcessingAllowed)||_(()=>window.Shopify.customerPrivacy.userCanBeTracked)||_(()=>window.visually.analyticsProcessingAllowed);function C(){const e=function(){try{return Promise.resolve(v(()=>!!_(()=>window.loomi.jitsu),a()?1e3:500,120)).then(function(){return _(()=>window.loomi.jitsu)})}catch(e){return Promise.reject(e)}}();return{register(t,n,r,o){e.then(e=>_(()=>e.register(t,n,r,o)))},track:function(t,n,r){return Promise.resolve(e).then(function(e){return Promise.resolve(_(()=>e.track(t,n,r))).then(function(){})})},trackExt:function(t,n){return Promise.resolve(e).then(function(e){return Promise.resolve(_(()=>e.trackExt(t,n))).then(function(){})})}}}let k=!1,T=!1;function N(e,t,n){return{id:T?"lmi-000":"lmi-"+ ++j,isApplied:!1,kind:e,selector:t,value:n}}function O(e,t){let n,r=!1;return null!==e.previousElementSibling?n=e.previousElementSibling:(n=e.parentElement,r=!0),n?(e.outerHTML=t,r?n.firstElementChild:n.nextElementSibling):e}let j=Math.round(1e4*Math.random()),L=[],$=new Map;const R="lmid",D="lmwv";function U(){return!!_(()=>window.vsly_fbs)}function M(){return window.location.search.includes("lmi_debug")||U()}function q(){M()&&console.debug("loomi-editor",...[].slice.call(arguments))}function F(){M()&&console.error("loomi-editor",...[].slice.call(arguments))}let B=!0,J={};class V{constructor(e,t){this._value=void 0,this._addedAt=void 0,this._value=e,this._addedAt=t||(new Date).getTime()}value(){return this._value}addedAt(){return this._addedAt}}class H{constructor(e,t){this.backend=void 0,this.ttlMillis=void 0,this.backend=e,this.ttlMillis=t}isValid(e){return!!e&&(new Date).getTime()-e.addedAt()<=this.ttlMillis}get(e){const t=this.backend.get(e),n=this.isValid(t);if(t&&n)return t.value();n||this.backend.remove(e)}set(e,t,n){const r=new V(t,n);this.backend.set(e,r)}}class G{constructor(e){this.namespace=void 0,this.namespace=`vsly_cache_${e}`,window[this.namespace]={}}get(e){return _(()=>window[this.namespace][e])}remove(e){_(()=>delete window[this.namespace][e])}set(e,t){window[this.namespace][e]=t}}class z{constructor(e){this.namespace=void 0,this.namespace=`vsly_cache_${e}`}get(e){return _(()=>{const t=sessionStorage.getItem(`${this.namespace}_${e}`);if(!t)return;const n=JSON.parse(t);return new V(n._value,n._addedAt)})}remove(e){sessionStorage.removeItem(`${this.namespace}_${e}`)}set(e,t){sessionStorage.setItem(`${this.namespace}_${e}`,JSON.stringify(t))}}class K extends H{constructor(e,t){super(new G(e),t)}}const W=function(e,t){void 0===t&&(t=8397271938200529);let n=3735928559^t,r=1103547991^t;for(let t,o=0;o<e.length;
116o++)t=e.charCodeAt(o),n=Math.imul(n^t,2654435761),r=Math.imul(r^t,1597334677);return n=Math.imul(n^n>>>16,2246822507)^Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),`${4294967296*(2097151&r)+(n>>>0)}`},Q="targeting-changed",Y="vslyThemeTest",Z="0891c521a9aa47c6a9fd965198b7ed44",X="_203";function ee(e,t,n,r,o){void 0===n&&(n=10),void 0===r&&(r=!1),void 0===o&&(o="none");const{_USE_CASE:i,_USE_CASE_VARIANT:s,_USE_CASE_AUDIENCES:c,_USE_CASE_VERSION:a,_USE_CASE_GA_VARIANT:u,_USE_CASE_GA:l}=e;if(U()||ie())return;if(!function(e){try{const t=location.pathname,n=new URL(e);if(location.search.includes("vsly-redirected-from"))return!1;if(!0===_(()=>window.visually.flags["sdk-kill-advanced-redirect-checks"]))return!0;{let e=!1;const r=decodeURIComponent(location.search);return n.searchParams.forEach((t,n)=>{const o=decodeURIComponent(`${n}=${t}`);r.includes(o)||(e=!0)}),!!((_(()=>Array.from(n.searchParams.values()).length)||0)>0&&e)||t!==n.pathname}}catch(e){return!1}}(t))return;if(!function(e,t,n){const r=`vsly-redirect-${W(`${n._USE_CASE}-${n._USE_CASE_VARIANT}-${n._USE_CASE_VERSION}-${e}`)}`;return"session"===t?"true"!==sessionStorage.getItem(r)&&(sessionStorage.setItem(r,"true"),!0):"user"!==t||"true"!==localStorage.getItem(r)&&(localStorage.setItem(r,"true"),!0)}(t,o,e))return;h();const d=`${i}-${s}`,m={type:"USE_CASE",ts:f().valueOf(),payload:{sid:_(()=>window.loomi_ctx.session.id),user:{anonymous_id:_(()=>window.loomi_ctx.userId)},use_case:i,use_case_variant:s,...a?{version:a}:{},...c?{audiences:c}:{}},options:{gaName:_(()=>I(l)),gaVariant:_(()=>I(u))}};function h(){document.body&&(document.body.style.opacity=0)}_(()=>{ce(i)&&(m.payload.clickId="redirect",m.options.isRedirect=!0)}),window.vsly_redirecting=!0,setTimeout(function(){try{h();const e=JSON.stringify(m),n=g(m),o=!d.includes(re);let i=t;try{new URLSearchParams(location.search).forEach((e,t)=>{(r||oe(t))&&(i=te(i,t,e))})}catch(t){q("e87",{redirectUrl:i,key:d,event:e,ex:t})}return i=te(i,"vsly-redirected-from",d),o&&(i=te(i,"vsly-redirected-event",n)),location.replace&&location.replace(i),Promise.resolve()}catch(e){return Promise.reject(e)}},n)}function te(e,t,n){try{const r=new URL(e);return r.searchParams.append(t,n),r.href}catch(t){return`${e}${e.includes("?")?"&":"?"}key=${n}`}}function ne(e){return{_USE_CASE:e.experienceId,_USE_CASE_VARIANT:e.variantId,_USE_CASE_VERSION:e.version,_USE_CASE_AUDIENCES:_(()=>window.loomi_ctx.audiences.join("|"),""),_USE_CASE_GA:e.gaExperienceName,_USE_CASE_GA_VARIANT:e.gaVariantName}}const re="theme_test_redirect_back_to_main",oe=e=>e.toLowerCase().startsWith("utm");function ie(){return _(()=>window.Shopify.designMode,!1)}function se(){return _(()=>window.Shopify.country)||_(()=>window.visually.country)}const ce=e=>window.loomi.conf.experiments.find(t=>t.name===e).isRedirect,ae=(e,t)=>{_(()=>!0===window.visually.flags["sdk-disable-dynamic-height-strategy"],!1)||e&&function(e,t,n){let r=e,o=0;for(;r.parentElement&&o<10;)n(r.parentElement),r=r.parentElement,o+=1}(e,0,e=>{const t=e.style.height;var n;(n=t)&&""!==n&&(e.style.removeProperty("height"),e.style.minHeight=t)})};function ue(e,t,n,r){if(!document.body.contains(r)){const r=document.querySelector(n);return r?(t(),e(),{element:r,isDetached:!0}):{isDetached:!1}}return{isDetached:!1}}function le(e){if(!_(()=>window.visually.flags["visibility-redo"]))return document.querySelector(e);const t=document.querySelectorAll(e);for(let e=0;e<t.length;e++){const n=t.item(e);if(de(n))return n}return _(()=>t[0])}function de(e){try{if(!_(()=>window.visually.flags["visibility-redo"]))return!0;if(!e)return!1;const t=e.getBoundingClientRect(),n=getComputedStyle(e);return!_(()=>"none"==n.display||"0"==n.opacity||"hidden"==n.visibility||t.width<=5&&t.height<=5||"none"==e.style.display||"0"==e.style.opacity||"hidden"==e.style.visibility)}catch(e){return!0}}function me(e){return _(()=>window.visually.flags[e],!1)}function fe(){return _(()=>!0===window.vslyDeferWidgets||me("sdk-defer-widgets"),!1)}const he="visually",pe="widgets";let ve;function we(e,t){const n=e+t,r=`vslyw-${n}`;if(!document.getElementById(r)){const e=document.createElement("script");e.id=r,e.type="text/javascript";
116const t=_(()=>window.visually.flags["bunny-cdn"]),o=A();e.src=`https://${t?"assets.visually.io":o}/widgets/${n}.js`,document.head.appendChild(e)}}window.IntersectionObserver&&(ve=new IntersectionObserver((e,t)=>{e.forEach(e=>{if(e.isIntersecting){const n=e.target;(function(e){const t=e.getAttribute("lmw"),n=e.getAttribute(D);if(t&&n){const r=t+n;return v(()=>_(()=>!!window[he][pe][r])&&_(()=>!!window.preact),50,500).then(()=>{_(()=>window[he][pe][r](`#${e.id}`))}),!0}return!1})(n)&&t.unobserve(n)}})},{root:null,rootMargin:window.vslyDeferWidgetsMargin||"100px",threshold:.1}));const ye="vsly-orig-sel";function ge(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}const _e=function(e){try{return Promise.resolve(ge(function(){return Promise.resolve(v(()=>!!_(()=>document.querySelector(e)),250,100)).then(function(){return Promise.resolve(document.querySelector(e))})},function(e){return Promise.reject(e)}))}catch(e){return Promise.reject(e)}};function Se(e,t,n){const r=t.extra;return n&&n>=3?void 0!==r&&!!_(()=>e.childNodes[r]):!!r&&!!_(()=>e.childNodes[r])}function Ee(e,t,n){void 0===n&&(n=10),me("kill-theme-testing")||Pe(t)||(Ae(e,t),ee(e,Ie(t).href,n,!0,"session"))}const Pe=e=>{if(xe())return!0;_(function(){try{return Promise.resolve(v(()=>!!document&&!!document.head,10,2e3)).then(function(){const e=document.head||document.getElementsByTagName("head")[0];if(!e.querySelector(`#${l}`)){const t=document.createElement("style");t.id=l,t.appendChild(document.createTextNode("#preview-bar-iframe,#PBarNextFrameWrapper,#PBarNextFrame { display: none !important;}")),e.appendChild(t)}})}catch(e){return Promise.reject(e)}});const t=window.loomi_ctx.themeId||_(()=>window.Shopify.theme.id),n=window.loomi_ctx.role||_(()=>window.Shopify.theme.role),r=!Ne({id:t,role:n}),o=_(()=>!window.loomi_ctx.testedThemes.includes(t));return!(!r||!o)||Te({id:t,role:n},e)},Ae=(e,t)=>{const n=e._USE_CASE!==re;Le(t)&&n&&[sessionStorage,localStorage].forEach(e=>Oe(e))},Ie=e=>{let t=Re();return _(()=>!!window.loomi_api.vslyResolveThemeTestUrl)&&(t=_(()=>window.loomi_api.vslyResolveThemeTestUrl(t),t)),t.searchParams.append("preview_theme_id",`${e||""}`),t},be=()=>{const e="vsly-tts";if($e(e)||De(e))return;ke();const t=Ie("");t.searchParams.append(e,"1"),sessionStorage.setItem(e,`${f().valueOf()}`),document.body.style.opacity=0,location.replace(t.href)},xe=()=>
116{const e="vsly_disableThemeTest",t=$e("disableThemeTest")||!!sessionStorage.getItem(e);return t&&sessionStorage.setItem(e,"1"),ie()||t},Ce=()=>0===(window.loomi_ctx.embeddedTests||[]).filter(e=>e.experiment.isThemeTest).length,ke=()=>[sessionStorage,localStorage].forEach(e=>e.removeItem(Y)),Te=(e,t)=>e.id===t||Ne(e)&&!t,Ne=e=>"main"===e.role,Oe=e=>e.setItem(Y,"1"),je=e=>e.getItem(Y),Le=e=>!!e,$e=e=>_(()=>Re().searchParams.has(e)),Re=()=>_(()=>new URL(window.location.href)),De=e=>{const t=sessionStorage.getItem(e);if(t){const e=f().valueOf()-Number(t);return Number.isFinite(e)&&e<864e5}return t},Ue="data-rid",Me="data-alchemy-element-root";let qe,Fe=0;function Be(e){return e.hasAttribute(Ue)||e.hasAttribute(Me)}const Je=function(e,t){try{return Promise.resolve(v(()=>!!document&&!!document.body&&!!document.querySelector,50,200)).then(function(){!function(){if("undefined"==typeof document)return;Ve||(Ve=new MutationObserver(He)),He();const e="spa"===_(()=>window.vslyIntegrationType,"static")?document:document.body;Ve.observe(e,{childList:!0,subtree:!0,characterData:!0,attributes:!1})}(),e&&(k=e),t&&(T=t)})}catch(e){return Promise.reject(e)}};let Ve;function He(){L.filter(e=>!e.isApplied).forEach(e=>{try{const t=_(()=>document.body.querySelector(e.selector));if(!t)return void function(e,t,n,r,o){void 0===r&&(r=100),void 0===o&&(o=10);const i=!!t,s=_(()=>J[e])||0;!i&&B&&s<o&&(B=!1,J[e]=(_(()=>J[e])||0)+1,setTimeout(()=>{try{n()}catch(t){F("failed to run setTimeout on refreshAllElementsSets",e,t)}B=!0},r+50*s))}(e.selector,t,He,100,10);if($.has(e.id))return;if(function(e,t){if(e&&(void 0===qe&&(qe=!!document.querySelector(`[${Me}],[${Ue}]`)),qe)&&function(e){return["replace","appendBefore","appendAfter","compound","widget","moveElem"].includes(e.kind)}(t))for(let t=e;t;t=t.parentElement)if(Be(t))return!0;return!1}(t,e)&&!function(){if(U())return!0;const e=window.vslyHydrationSize||1,t=!!window.elementIdToRuntimeInitialized&&Object.values(window.elementIdToRuntimeInitialized).length>=e;t&&0===Fe&&(Fe=Date.now());const n=Date.now()-Fe,r=window.vslyHydrationGrace||500;return t&&n>r}())return;const n=Ge(e,t);n&&($.set(e.id,n),e.isApplied=!0)}catch(t){!function(){M()&&console.warn("loomi-editor",...[].slice.call(arguments))}("failed to resolve command from mutation request with exception.",t,e)}}),Ke()}function Ge(e,t){if("replace"===e.kind)return function(e,t,n,r,o){let i=o||e,s=!1;const c=n.outerHTML;return{id:e,isApplied:()=>s,kind:"replace",do:()=>{s||(k&&n.setAttribute(R,i),n.outerHTML!==r&&(n=O(n,r),ae(n),k&&n.setAttribute(R,i),s=!0))},undo:()=>{s&&n.outerHTML!==c&&(n=O(n,c),s=!1)},redoIfNeeded:()=>!1,setDebugId:e=>i=e}}(e.id,0,t,e.value,e.id);if("appendBefore"===e.kind||"appendAfter"===e.kind)return function(e,t,n,r,o){let i=o||e,s=!1,c=document.querySelector(t),a=document.createElement("div");const u=()=>{s||("appendBefore"===r&&(c=document.querySelector(t),_(()=>c.parentNode.insertBefore(a,c)),ae(c),a=O(a,n),k&&a.setAttribute(R,i),s=!0),"appendAfter"===r&&(s||(c=document.querySelector(t),c.nextSibling?(_(()=>c.parentNode.insertBefore(a,c.nextSibling)),ae(c)):(_(()=>c.parentNode.appendChild(a)),ae(c)),a=O(a,n),k&&a.setAttribute(R,i),s=!0)),s=!0)},l=()=>{s&&(a.remove(),s=!1)};return{id:e,isApplied:()=>s,kind:r,do:u,undo:l,redoIfNeeded:()=>{const e=ue(u,l,t,c);return e.element&&(c=e.element),e.isDetached},setDebugId:e=>i=e}}(e.id,e.selector,e.value,e.kind,e.id);if("appendCss"===e.kind)return function(e,t,n,r){let o=r||e,i=!1,s=document.querySelector(t);const c=document.createElement("style"),a=()=>{i||(c.innerHTML=n,k&&c.setAttribute(R,o),document.head.appendChild(c),i=!0)},u=()=>{i&&(c.remove(),i=!1)};return{id:e,kind:"appendCss",isApplied:()=>i,do:a,undo:u,redoIfNeeded:()=>{const e=ue(a,u,t,s);return e.element&&(s=e.element),e.isDetached},setDebugId:e=>o=e}}(e.id,e.selector,e.value,e.id);if("appendJs"===e.kind)return function(e,t,n,r,o){let i=r||e,s=!1,c=document.querySelector(t),a=null;const u=()=>{s||(a||(a=document.createElement("script")),a.setAttribute("type","application/javascript"),a.innerHTML=function(e,t){return e&&t?`(async () => {\n    const _USE_CASE = "${t.experienceId}";
116\n    const _USE_CASE_VARIANT = "${t.variantId}";\n    const _USE_CASE_VERSION = ${_(()=>t.version||0,0)};\n    const _USE_CASE_AUDIENCES = "${_(()=>window.loomi_ctx.audiences.join("|"),"")}";\n    const _USE_CASE_GA = "${_(()=>t.gaExperienceName.replace(/"/g,'\\"'),t.gaExperienceName)}";\n    const _USE_CASE_GA_VARIANT = "${_(()=>t.gaVariantName.replace(/"/g,'\\"'),t.gaVariantName)}";\n    const _USE_CASE_CTX = {_USE_CASE,_USE_CASE_VARIANT,_USE_CASE_VERSION,_USE_CASE_AUDIENCES,_USE_CASE_GA,_USE_CASE_GA_VARIANT};\n    const __currentScriptElement = document.currentScript;\n    ${e}\n    if (typeof vslyCleanup !== 'undefined') {     \n      if (__currentScriptElement) {\n        __currentScriptElement.__vslyCleanup = vslyCleanup;\n      }\n    }\n  })()`:!t&&e?`\n(async () => {\n  const __currentScriptElement = document.currentScript;\n  ${e}\n    if (typeof vslyCleanup !== 'undefined') {     \n      if (__currentScriptElement) {\n        __currentScriptElement.__vslyCleanup = vslyCleanup;\n      }\n    }\n})();\n`:e}(n,o),k&&(a.id=i),document.body.appendChild(a),s=!0)},l=()=>{if(!s)return;const e=(()=>{try{const e=a.__vslyCleanup;if(e)return e(),!0}catch(e){k&&console.error("vslyCleanup error:",e)}return!1})();a&&a.remove(),e&&(a=null),s=!1};return{id:e,kind:"appendJs",isApplied:()=>s,do:u,undo:l,redoIfNeeded:()=>{const e=ue(u,l,t,c);return e.element&&(c=e.element),e.isDetached},setDebugId:e=>i=e}}(e.id,e.selector,e.value,e.id,e.options);if("appendFont"===e.kind){const t=JSON.parse(e.value);if(t&&t.family&&t.weights)return function(e,t,n){n=n||e;let r=!1;const o=document.createElement("link"),i=(c=t.weights,(s=t.family).toLowerCase().includes("jetbrains")&&(s="JetBrains Mono"),`https://fonts.googleapis.com/css2?family=${encodeURIComponent(s)}:wght@${_(()=>c.join(";"))}&display=block`);var s,c;return o.setAttribute("href",i),o.setAttribute("rel","stylesheet"),{id:e,isApplied:()=>r,kind:"appendFont",do:()=>{r||(k&&o.setAttribute(R,n),document.head.appendChild(o),r=!0)},undo:()=>{r&&(o.remove(),r=!1)},redoIfNeeded:()=>!1}}(e.id,t,e.id)}else{if("compound"===e.kind){const n=e.value.map(n=>(n.options=e.options,Ge(n,t))).filter(e=>e);return function(e,t,n){let r=!1;return{id:e,isApplied:()=>r,kind:"compound",do:()=>{r||(t.filter(e=>!e.isApplied()).forEach(e=>{e.setDebugId&&e.setDebugId(n),e.do()}),r=!0)},undo:()=>{r&&(t.filter(e=>e.isApplied()).reverse().forEach(e=>e.undo()),r=!1)},redoIfNeeded:()=>t.map(e=>e.redoIfNeeded()).filter(e=>e).length>0}}(e.id,n,e.id)}if("widget"===e.kind){const t=_(()=>e.block.value),n=_(()=>t.env.sectionId.substring(1),e.id);return function(e,t,n,r,o,i,s){void 0===s&&(s="");const c=i||t;let a=!1;const u=`vslyp-${t}`;let l=null,d=null,m=[];const f=()=>{a||(we(r,s),"replace"===e?w():y(),fe()&&ve||h(),a=!0)},h=()=>{const e=r+s;v(()=>_(()=>!!window[he][pe][e])&&_(()=>!!window.preact),50,500).then(()=>{ae(l),_(()=>window[he][pe][e](`#${t}`))})},p=()=>{if(!a)return;d&&d.remove();const t=document.getElementById(u);if(t&&t.remove(),"replace"===e&&l&&l.children&&l.children.length>0){let e=0;for(const t of l.children)t.style.display=m[e],e+=1}a=!1},w=()=>
116{if(l=le(n),l){if(m=[],l.children&&l.children.length>0)for(const e of l.children){const t=e;t&&!t.getAttribute("preact")&&(m.push(t.style.display),t.style.display="none")}g(),l.appendChild(d),fe()&&ve&&ve.observe(d)}else F("vsly",`failed to find element with selector: ${n} when trying to replace with widget`)},y=()=>{l=le(n),l?(g(),l.insertAdjacentElement("appendBefore"===e?"beforebegin":"afterend",d),fe()&&ve&&ve.observe(d)):F("vsly",`failed to find element with selector: ${n} when trying to append widget`)},g=()=>{if(d=document.getElementById(t),!d){d=document.createElement("section"),d.style.all="unset",d.style.width="100%",d.setAttribute("preact","1"),k&&d.setAttribute(R,c),d.setAttribute("lmw",r),d.setAttribute(D,s),d.id=t;const e=document.createElement("script");e.id=u,e.setAttribute("type","text/props"),e.innerHTML=JSON.stringify(o),_(()=>document.body.appendChild(e))}};return{id:t,isApplied:()=>a,kind:"widget",do:f,undo:p,redoIfNeeded:()=>{const e=ue(f,p,n,l);return e.element&&(l=e.element),e.isDetached}}}(t.htmlKind,n,e.selector,t.widgetId,t.env,n,t.version)}if("moveElem"===e.kind){const t=_(()=>e.block.value);return function(e,t,n,r){let o=!1,i={display:""},s=null,c=null;const a=()=>{o||v(()=>(s=document.querySelector(t),c=document.querySelector(n),!!s&&!!c),50,500).then(()=>{s=document.querySelector(t),c=document.querySelector(n),u()})},u=()=>{c&&s&&(i={display:c.style.display,parentNode:s.parentElement,nextSib:s.nextElementSibling,prevSib:s.previousElementSibling},"appendBefore"===r?c.insertAdjacentElement("beforebegin",s):"appendAfter"===r?c.insertAdjacentElement("afterend",s):"replace"===r&&(c.style.display="none!important",c.insertAdjacentElement("afterend",s)),s.setAttribute(ye,t),o=!0)};return{id:e,isApplied:()=>o,kind:"moveElem",do:a,undo:()=>{o&&c&&s&&(i&&i.prevSib?i.prevSib.insertAdjacentElement("afterend",s):i&&i.nextSib?i.nextSib.insertAdjacentElement("beforebegin",s):i&&i.parentNode&&i.parentNode.appendChild(s),"replace"===r&&(c.style.display=i.display),s.removeAttribute(ye),o=!1)},redoIfNeeded:()=>!(_(()=>s.hasAttribute(ye))&&document.body.contains(s)||(o=!1,a(),0))}}(e.id,e.selector,t.destSelector,_(()=>t.htmlKind))}if("automation"===e.kind)return function(e){let t=!1;return{id:`automation-${(new Date).getDate()}`,kind:"automation",isApplied:()=>t,do:()=>{if(!t){t=!0;try{e.sort((e,t)=>e.order-t.order).map(e=>{switch(e.kind){case"click":return()=>function(e){try{return Promise.resolve(ge(function(){return q("fake-click","about to click on:",e.selector),Promise.resolve(_e(e.selector)).then(function(e){return e&&e.click(),Promise.resolve()})},function(e){return Promise.reject(e)}))}catch(e){return Promise.reject(e)}}(e);case"type":return()=>function(e){try{return Promise.resolve(ge(function(){return q("fake-click","about to type on:",e.selector,"with text: ",e.data),Promise.resolve(_e(e.selector)).then(function(t){const n=_(()=>Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value").set);_(()=>n.call(t,e.data||""));const r=new Event("input",{bubbles:!0});return t.dispatchEvent(r),Promise.resolve()})},function(e){return Promise.reject(e)}))}catch(e){return Promise.reject(e)}}(e);case"scroll":return()=>function(e){try{return Promise.resolve(ge(function(){return q("fake-click","about to scroll to:",e.selector),Promise.resolve(_e(e.selector)).then(function(e){return e.scrollIntoView(!0),Promise.resolve()})},function(e){return Promise.reject(e)}))}catch(e){return Promise.reject(e)}}(e);case"wait":return()=>function(e){try{try{return q("fake-click",`about to wait for: ${e.data}ms`),Promise.resolve(new Promise(t=>{setTimeout(()=>t(),_(()=>e.data)||1e3)}))}catch(e){return Promise.reject(e)}}catch(e){return Promise.reject(e)}}(e);default:return()=>Promise.resolve()}}).reduce((e,t)=>e.then(e=>t()),Promise.resolve()).then()}catch(e){F("failed to run automation with exception:",e)}}},undo:()=>{},redoIfNeeded:()=>!1}}(_(()=>e.block.value).steps);if("visualEdit"===e.kind){const t=_(()=>e.block.value);return function(e,t){let n=!1,r={};const o=function(e,t,n){void 0===n&&(n=!0);const o=t.subChanges.map(n=>{switch(n.kind){case"text":return((e,t,n)=>{if(!e)return()=>{};const r=t.extra;if(Se(e,t,n)){const n=e.childNodes[r].textContent;return e.childNodes[r].textContent=t.value,()=>e.childNodes[r].textContent=n}{const n=e.textContent;return e.textContent=t.value,()=>e.textContent=n}})(e,n,t.version);case"style":return((e,t)=>{if(!e)return()=>{};const n=_(()=>e.style[t.key],null);return e.style.setProperty(t.key,t.value,"important"),()=>e.style.setProperty(t.key,n)})(e,n);case"image":return((e,t)=>{if(!e||!e.removeAttribute||!e.getAttribute)return()=>{};const n=e.getAttribute("srcset")||"";e.removeAttribute("srcset");const r=_(()=>e.src,void 0);e.src=t.value;const o=e.parentElement,i=o&&"PICTURE"===o.nodeName,s=[];
116return i&&o.querySelectorAll("source").forEach(e=>{s.push(e.getAttribute("srcset")||""),e.removeAttribute("srcset")}),()=>{e.setAttribute("srcset",n),e.src=r,i&&o.querySelectorAll("source").forEach((e,t)=>{e.setAttribute("srcset",s[t])})}})(e,n);case"video":return((e,t)=>{if(!e||!e.setAttribute)return()=>{};const n=e.innerHTML;e.innerHTML="";const r=e.getAttribute("src")||"";return e.setAttribute("src",t.value),()=>{e.innerHTML=n,e.setAttribute("src",r)}})(e,n);case"attr":return((e,t)=>{if(!e||!e.setAttribute||!e.getAttribute)return()=>{};const n=e.getAttribute(t.key);return e.setAttribute(t.key,t.value),()=>n?e.setAttribute(t.key,n):e.removeAttribute(t.key)})(e,n)}});n&&(r[t.selector]={ve:t,elem:e,reverts:o})};return{id:e,kind:"visualEdit",isApplied:()=>n,do:()=>{n||(n=!0,t.forEach(e=>{v(()=>!!document.querySelector(e.selector),250,300).then(()=>{const t=document.querySelector(e.selector);o(t,e)})}))},undo:()=>{n&&(n=!1,Object.values(r).forEach(e=>e.reverts.forEach(e=>e())),r={})},redoIfNeeded:()=>{if(!n)return!1;let e=!1;return Object.values(r).forEach(t=>{e=document.body.contains(t.elem)?function(e,t){return e.ve.subChanges.forEac
116h((n,r)=>{n.value!==((e,t,n)=>{switch(t.kind){case"text":return((e,t,n)=>{const r=t.extra;return Se(e,t,n)?e.childNodes[r].textContent:e.textContent})(e,t,n);case"attr":return((e,t)=>e.getAttribute(t.key))(e,t);case"style":return((e,t)=>_(()=>e.style[t.key],null))(e,t);case"image":case"video":return(e=>e.src)(e)}})(e.elem,n,e.ve.version)&&(_(()=>e.reverts[r]()),o(e.elem,{selector:e.ve.selector,subChanges:[n]},!1),t=!0)}),t}(t,e):function(e){e.reverts.forEach(e=>e());const t=document.querySelector(e.ve.selector);return t&&o(t,e.ve),!0}(t)}),e}}}(e.id,t.changes)}if("pageRedirect"===e.kind){const t=_(()=>e.block.value);if(t)return n=t,r=e.options,{id:e.id,kind:"pageRedirect",isApplied:()=>!1,do:()=>{ee(ne(r),n.destUrl,n.redirectAfter,!0===n.retainQueryParams,n.stickinessMode)},undo:()=>{},redoIfNeeded:()=>!1,setDebugId:e=>""}}else if("themeTest"===e.kind){const t=_(()=>e.block.value);if(t)return function(e,t,n){const r=()=>!1;return{id:e,kind:"themeTest",isApplied:r,do:()=>Ee(ne(n),t.targetThemeId),undo:r,redoIfNeeded:r,setDebugId:r}}(e.id,t,e.options)}}var n,r}let ze=!1;function Ke(){ze||(ze=!0,requestAnimationFrame(We))}function We(){$.forEach(e=>{try{e.isApplied()?e.redoIfNeeded():e.do()}catch(t){F("failed to apply mutation command with exception:",t,e)}}),ze=!1}function Qe(e){try{const n=$.get(e),r=n&&n.undo();$.delete(e);const o=L.findIndex(t=>t.id==e);return(t=_(()=>L[o].selector))&&_(()=>J[t])&&delete J[t],L.splice(o,1),Ke(),r}catch(e){return}var t}function Ye(e){return"div"===e.selector&&(e.selector="body div"),L.push(e),He(),{revert:()=>Qe(e.id),mutationId:e.id}}function Ze(){const e=_(()=>window.loomi_ctx.cart);if(e)return e;const t=localStorage.getItem("loomi-cart");if(t)try{return JSON.parse(t)}catch(e){}}var Xe;!function(e){e.CART_CHANGE="CART_CHANGE",e.LOYALTY_CHANGE="LOYALTY_CHANGE"}(Xe||(Xe={}));const et=u((e,t)=>{const n=function(e,t){const n=new Event(Q);return n.key=e,n.value=t,n}(e,t);document.dispatchEvent(n),console.debug("Targeting has changed:",n)},80),tt=()=>window.loomi_ctx.session.id;function nt(e){return _(()=>e.items.map(e=>_(()=>e.selling_plan_allocation.selling_plan.name.toLowerCase())).filter(e=>!!e),[])}function rt(){return JSON.parse(localStorage.getItem("loomi-cart-history")||"[]")}function ot(){const e=_(()=>window.loomi_ctx.sessionProducts);if(e)return e;const t=localStorage.getItem("loomi_session_products"),n=t?JSON.parse(t):[];return _(()=>n.filter(e=>""!=e.handle).reverse().slice(0,20))}function it(e){return JSON.parse(localStorage.getItem(e)||"[]")}function st(e,t,n,r){e=e||[],t=t||[];const o=_(()=>t.filter(t=>!e.find(n(t))))||[],i=[...e,...o].slice(0,25);return i.length>0&&localStorage.setItem(r,JSON.stringify(i)),i}function ct(){return JSON.parse(localStorage.getItem("loomi_purchased_products")||"[]")}const at="vsly_params_history",ut="vsly_visited_pages",lt=function(e){try{const t=e.matches?ht.MOBILE:ht.DESKTOP,n=function(){if(dt!=t){q("device-listener",`device changed to ${t} from ${dt}`),window.loomi_ctx.deviceOverride=t===ht.MOBILE?"m":"d",dt=t;const e=_(()=>window.visually.reload),n=function(){if(e)return Promise.resolve(e()).then(function(){});F("device-listener","can't find reload function")}();if(n&&n.then)return n.then(function(){})}}();return Promise.resolve(n&&n.then?n.then(function(){}):void 0)}catch(e){return Promise.reject(e)}};let dt;function mt(){a()?function(){try{return Promise.resolve(v(()=>c,1e3,10)).then(function(){return ft(),Promise.resolve()})}catch(e){return Promise.reject(e)}}().catch(console.error):ft()}function ft(){let e=_(()=>window.vslyDesktopBreakpoint)||960;e<=0&&(e=960);const t=window.matchMedia(`(max-width: ${e}px)`);t.removeEventListener("change",lt),t.addEventListener("change",lt)}var ht;!function(e){e.MOBILE="MOBILE",e.DESKTOP="DESKTOP"}(ht||(ht={}));const pt=()=>edgetag("getUserId");function vt(){const e="vsly_edgetag";return P(()=>(pt()&&localStorage.setItem(e,pt()),!0)),_(pt)||localStorage.getItem(e)}const wt="lmi_type",yt="lmi_from",gt="lmi_class",_t="lmi_utm_data",St={utm_source:"source",utm_medium:"medium",utm_campaign:"campaign",utm_term:"term",utm_content:"content"},Et=function(e,t){void 0===t&&(t=3);let n=e;for(let e=0;e<t;e++)try{const e=decodeURIComponent(n);if(e===n)break;n=e}catch{break}return n},Pt=function(e){void 0===e&&(e=window.location.search);const t={utm:{},lmi_params:{}};return _(()=>
116new URLSearchParams(e)).forEach((e,n)=>{if(e){const r=St[n],o=Et(e);r?t.utm[r]=o:function(e){return _(()=>[gt,yt,wt].includes(e))}(n)&&(t.lmi_params[n]=o)}}),t};function At(){const e=function(e){let t=[];const n=localStorage.getItem(_t);return null!=n&&(t=[...JSON.parse(n)].slice(0,20)),e&&(e.ts=f(),t=[e,...t]),t}(function(e){if(function(e){return!e||"{}"===JSON.stringify(e)}(e))return null;const t={};return e.campaign&&(t.campaign=e.campaign),e.medium&&(t.medium=e.medium),e.source&&(t.source=e.source),e.term&&(t.term=e.term),e.content&&(t.content=e.content),t}(_(()=>Pt().utm)));return localStorage.setItem(_t,JSON.stringify(e)),e}function It(){const e=_(()=>At(),[]);if(!Array.isArray(e)||0===e.length)return"";const t=e.filter(e=>e.campaign);return 0===t.length?"":_(()=>t.reduce((e,t)=>t.ts>e.ts?t:e,t[0]).campaign,"")||""}const bt=function(e){return Promise.resolve(xt()).then(function(t){return new Promise((n,r)=>{const o=t.transaction([kt],"readonly").objectStore(kt).get(e);o.onerror=e=>{r("IDB e:r"+e.target.error)},o.onsuccess=e=>{n(e.target.result)}})})},xt=function(){try{const e=function(){if(!Tt)return Promise.resolve(new Promise((e,t)=>{const n=indexedDB.open(Ct,1);n.onerror=e=>{t("IDB e:o"+e.target.error)},n.onsuccess=t=>{Tt=t.target.result,e(Tt)},n.onupgradeneeded=e=>{e.target.result.createObjectStore(kt,{keyPath:"id"}).createIndex("id","id",{unique:!0})}})).then(function(){})}();return Promise.resolve(e&&e.then?e.then(function(){return Tt}):Tt)}catch(e){return Promise.reject(e)}},Ct="VISUALLY_IO",kt=Ct;let Tt=null;function Nt(){const e={},t=window.loomi_ctx||{};t.productId&&(e.productId=t.productId);const n=_(()=>{const e=new URL(location.href).searchParams,t="variant";return e.has(t)&&function(e){const t=Number(e),n=isNaN(t)?Number(`${e}`.replace(/[^\d.]+/g,""))||void 0:t;if(void 0!==n&&0!==n)return`${n}`}(e.get(t))})||t.variantId;return n&&(e.variantId=n),e}function Ot(){return _(()=>Ze().items.map(e=>({variantId:e.variant_id||0,quantity:e.quantity||0,productId:e.product_id||0,price:e.price||0})))||[]}const jt=function(e){return void 0===e&&(e=Ze()),_(()=>(("spa"==window.vslyIntegrationType?_(()=>e.attributes.map(e=>e.key)):_(()=>Object.keys(e.attributes)))||[]).filter(e=>!e.startsWith("vsly")&&e.length<20).slice(0,50))||[]};function Lt(){const e=new URL(window.location.href);return e.protocol+"//"+e.hostname+e.pathname}const $t=function(e,t){try{let n;const r=this.cart;if(!r)return Promise.resolve(0);const o=function(){try{var o=r.currency===e?(n=1,r.total_price/100):function(){if(t)return Promise.resolve(v(()=>!!window.loomi_ctx.Currency,100,10)).then(function(){const t=(window.loomi_ctx.Currency.convert(r.total_price,r.currency,e)||0)/100;return n=1,t})}()}catch(e){return}return o&&o.then?o.then(void 0,function(){}):o}();return Promise.resolve(o&&o.then?o.then(function(e){return n?e:0}):n?o:0)}catch(e){return Promise.reject(e)}};function Rt(){const e=_(()=>this.cart.items);if(e&&e.length>0){const t=tt(),n=localStorage.getItem("vsly-last-atc-sid");if(!n)return!1;if(n!==t)return!0;const r=e.map(e=>`${e.variant_id}`);return!!_(()=>rt().find(e=>!!e.sid&&r.includes(`${e.variant_id}`)&&`${e.sid}`!=t))}return!1}function Dt(e){return jt(this.cart).includes(e)}function Ut(e,t){function n(e){return e.toLowerCase()}const r={"==":t=>n(t)==n(e),"!=":t=>n(t)!=n(e),contains:t=>n(t).includes(n(e)),matches:t=>new RegExp(e).test(t)};return!!this.CartSubs().find(e=>r[t](e))}function Mt(){return nt(this.cart)}function qt(e){const t=this.cart;return!!_(()=>t.items.find(t=>t.handle===e))}function Ft(e,t){return"contains"!==t?qt.call(this,e):this.cart?.items?.some(t=>t.handle?.includes(e))??!1}function Bt(e){const t=this.cart;return!!_(()=>t.items.find(t=>!!t.tags&&t.tags.includes(e)))}function Jt(e,t){return"contains"!==t?Bt.call(this,e):this.cart?.items?.some(t=>t.tags?.some(t=>t.includes(e)))??!1}function Vt(e){const t=this.cart;if(t.items.length<=0)return!1;const n=_(()=>t.items.filter(t=>!!t.tags&&t.tags.includes(e)));return _(()=>n.length===t.items.length,!1)}function Ht(e,t){const n=this.cart?.items;return!!n?.length&&n.every(n=>(n.tags||[]).some(n=>"contains"===t?n.includes(e):n===e))}function Gt(e){const t=this.cart;return!!_(()=>t.items.find(t=>!!t.collections&&t.collections.includes(e)))}function zt(){return!0===_(()=>window.loomi_ctx.loyalty.isMember,!1)}function Kt(){return _(()=>
116window.loomi_ctx.loyalty.pointsBalance,0)}function Wt(){return _(()=>window.loomi_ctx.loyalty.earnedPoints,0)}const Qt="__eventn_id";function Yt(){const{id:e,firstSeen:t}=function(e){const t=function(e){try{const t=S(e),{firstSeen:n,id:r}=en(t);if(t)return{id:r,firstSeen:n||nn()}}catch(e){}}(e),n=function(e){const t=window.localStorage.getItem(e),{id:n,firstSeen:r}=en(t);if(t)return{id:n,firstSeen:r||nn()}}(e);if(!t&&!n){const{newId:t,newEpoch:n}=function(){const e=Math.random().toString(36).substring(2,12),t=nn();return{newId:e,newEpoch:t,value:tn(e,t)}}();return Zt(t,n,e),{id:t,firstSeen:n}}if(!n&&t)return Zt(t.id,t.firstSeen,e),t;if(!t&&n)return Zt(n.id,n.firstSeen,e),n;const r=Math.min(t.firstSeen,n.firstSeen);let o=t.firstSeen<=n.firstSeen?t.id:n.id;return Xt(t,n)&&(o=t.id<=n.id?t.id:n.id),n.id==t.id&&n.firstSeen==t.firstSeen||Zt(o,r,e),{id:o,firstSeen:r}}(Qt);return{id:e,firstSession:rn(t),firstSeen:t}}function Zt(e,t,n){void 0===n&&(n=Qt);const r=tn(e,t);_(()=>localStorage.setItem(n,r)),((e,t,n,r)=>{_(()=>window.loomi_ctx.cc)&&!b()||(document.cookie=encodeURIComponent(e)+"="+t+"; path=/; expires=Fri, 31 Dec 9999 23:59:59 GMT"+(n?"; domain="+n:"")+(r?"; secure":""))})(n,r,document.location.hostname.replace("www.","").replace("checkout.",""),"http:"!==document.location.protocol)}const Xt=(e,t)=>e.firstSeen===t.firstSeen&&e.id!==t.id;function en(e){return{firstSeen:_(()=>parseInt(e.split(".")[1]),null),id:_(()=>e.split(".")[0])}}function tn(e,t){return`${e}.${t}`}function nn(){return Math.trunc((new Date).getTime()/1e3)}const rn=e=>(new Date).getTime()/1e3-e<=7200,on="vsly_vid",sn="lmi_debug";function cn(e){return _(()=>new URL(window.location.href).searchParams.get(e)||void 0)}const an=["Roboto","Open Sans","Fredoka","Fredoka","Smooch Sans","Rubik","Lato","Poppins","Oswald","League Spartan","Noto Sans","Raleway","Merriweather","Playfair Display","Inter","JetBrains Mono","Jetbrains Mono"];function un(e){try{(function(e){const t=e.flatMap(e=>_(()=>e.code)).filter(e=>!!e).filter(e=>"widget"===e.kind).map(e=>ln(e.value.env)),n=new Map;return function(e,t){e.forEach(e=>{!function(e,t){const n=new Map;e.forEach(e=>{let[t,r]=e;const o=".font.";if(t.includes(o)){const e=t.split(o)[0]+o;n.has(e)||n.set(e,{families:new Set,weights:new Set});const i=n.get(e);if(t.endsWith(".fontFamily"))i.families.add(r);else if(t.endsWith(".fontWeight")){const e=parseInt(r,10)||500;i.weights.add(e)}}}),function(e,t){e.forEach(e=>{if(e.families.size>0){const n=e.weights.size>0?e.weights:new Set([500]);e.families.forEach(e=>{dn(t,e,n)})}})}(n,t)}(Object.entries(e),t),function(e,t){const n=function(e){const t=".text.isRichText",n=new Set;return e.forEach(e=>{let[r,o]=e;if(r.endsWith(t)&&!0===o){const e=`${r.split(t)[0]}.text.value`;n.add(e)}}),n}(e);0!==n.size&&e.filter(e=>{let[t]=e;return n.has(t)}).forEach(e=>{let[n,r]=e;return function(e,t){var n;if(e)try{!function(e,t){e.querySelectorAll("[style]").forEach(e=>{const n=e.style;if(n.fontFamily){const e=n.fontFamily,r=parseInt(n.fontWeight,10)||500;dn(t,e,new Set([r]))}})}((n=decodeURIComponent(e),(new DOMParser).parseFromString(n,"text/html")),t)}catch(e){console.error("Failed to parse rich text HTML",e)}}(r,t)})}(Object.entries(e),t)})}(t,n),function(e){return Array.from(e.entries()).map(e=>{let[t,n]=e;return{family:t,weights:Array.from(n).sort()}})}(n)})(e).forEach(e=>{let{family:t,weights:n}=e;return function(e,t){return Ye(N("appendFont","div",JSON.stringify({family:e,weights:t})))}(t,n)})}catch(e){F("failed to install custom fonts",e)}}function ln(e){const t={};for(const n in e)if("object"!=typeof e[n]||Array.isArray(e[n]))t[n]=e[n];else{const r=ln(e[n]);for(const e in r)t[`${n}.${e}`]=r[e]}return t}function dn(e,t,n){if(!t)return;const r=t.replaceAll("'","").replaceAll('"',"");if(!function(e){return an.includes(e)}(r))return;e.has(r)||e.set(r,new Set);const o=e.get(r);
116o.add(400),n.forEach(e=>{o.add(e)})}const mn=function(e,t,n,r){void 0===n&&(n=!0),void 0===r&&(r=void 0);try{const o=_(()=>window.loomi_api.addToCart),i=function(){if(o)return Promise.resolve(window.loomi_api.addToCart(e,t,n,r)).then(function(){})}();return Promise.resolve(i&&i.then?i.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},fn=function(e){try{let n;function t(t){return n?t:e.map(e=>{const t=String(e.id),n=pn.get(gn(e.id))||r[t];return n?{...e,variants:Array.isArray(e.variants)?e.variants.map(e=>{const t=_n(e,n);return t?{...e,fixed_price_currency:t.price.currencyCode,price:parseFloat(t.price.amount),compare_at_price:t.compareAtPrice?parseFloat(t.compareAtPrice.amount):e.compare_at_price}:e}):e.variants}:e})}if(!e||0===e.length)return Promise.resolve(e);let r={};const{productIdsToFetch:o}=Sn(e),i=function(){if(o.length>0)return function(t,n){try{var o=Promise.resolve(hn(e)).then(function(e){r=e,Object.entries(r).forEach(e=>{let[t,n]=e;return pn.set(gn(t),n)})})}catch(e){return n(e)}return o&&o.then?o.then(void 0,n):o}(0,function(t){return console.error("vsly",t),n=1,e})}();return Promise.resolve(i&&i.then?i.then(t):t(i))}catch(s){return Promise.reject(s)}},hn=function(e){try{return Promise.resolve(fetch(`https://${wn()}/api/2025-10/graphql.json`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:vn(e)})})).then(function(e){if(!e.ok)throw new Error(`Shopify API error: ${e.status}`);return Promise.resolve(e.json()).then(function(e){if(e.errors)throw new Error(`GraphQL errors: ${JSON.stringify(e.errors)}`);const t={};for(const n in e.data){const r=e.data[n];if(!r)continue;const o=yn(r.id);t[o]={variants:{}}
116,r.variants.edges.forEach(e=>{const n=yn(e.node.id);t[o].variants[n]={price:e.node.price,compareAtPrice:e.node.compareAtPrice}})}return t})})}catch(e){return Promise.reject(e)}},pn=new class extends H{constructor(e,t){super(new z(e),t)}}("p",18e5);function vn(e){const{productIdsToFetch:t,maxVariantsPerProduct:n}=Sn(e),r=se();return`\n    query GetProductPrices ${r?`@inContext(country: ${r})`:""} {\n      ${t.map(e=>`\n    product_${e}: product(id: "gid://shopify/Product/${e}") {\n      id\n      variants(first: ${n}) {\n        edges {\n          node {\n            id\n            price {\n              amount\n              currencyCode\n            }\n            compareAtPrice {\n              amount\n              currencyCode\n            }\n          }\n        }\n      }\n    }\n  `).join("\n")}\n    }\n  `}const wn=()=>window.loomi_ctx.storeAlias.toLowerCase().replaceAll("_","-")+".myshopify.com";function yn(e){const t=e.match(/\/(\d+)$/);return t?t[1]:e}const gn=e=>String(e)+se(),_n=(e,t)=>{let n=String(e.variant_id);const r=Object.keys(t.variants);return 1==r.length&&(n=r[0]),t.variants[n]},Sn=e=>{let t=1,n=!0;return{productIdsToFetch:e.map(e=>{if(!Array.isArray(e.variants))return{id:String(e.id),needsFetch:!1};const r=new Set(e.variants.map(e=>e.price)).size>1;r&&(n=!1),e.variants.length>t&&(t=e.variants.length);const o=((e,t,n)=>{if(!e)return!0;if(!n)return!1;const r=e.variants||{};return t.some(e=>void 0===r[e])})(pn.get(gn(e.id)),e.variants.map(e=>String(e.variant_id)),r);return{id:String(e.id),needsFetch:o}}).filter(e=>e.needsFetch).map(e=>e.id),maxVariantsPerProduct:n?1:t}},En=new K("recs_cache",300001),Pn=function(e,t){try{const n=Promise.resolve([]);return Promise.resolve(function(r,o){try{var i=function(){if(!e)return n;let r=_(()=>e.recommendationOptions);if(!r)return n;var o;!function(e){const{productId:t,variantId:n}=Nt();(t||n)&&(e.productId={productId:t,variantId:n})}(r),r.cartItems=(o=Ot(),_(()=>o.filter(e=>!!e.productId).map(e=>({productId:`${e.productId}`,variantId:`${e.variantId}`,quantity:e.quantity||1})))),r.currency=_(()=>Ze().currency||"USD","USD"),r.cart_total=_(()=>Ze().total_price,0),_(()=>+Date.now()-window.loomi_ctx.last_vid_atc.ts<5e3)&&(r.last_vid_atc=window.loomi_ctx.last_vid_atc),r.respSize=_(()=>window.visually.recsPerVariant[t.variantId]),["RECENTLY_VIEWED","VIEWED_WITH_RECENTLY_VIEWED"].find(e=>An(r,e))&&(r.recentlyViewed=ot().filter(e=>!!e.productId).map(e=>({productId:`${e.productId}`,variantId:`${e.variantId||""}`,...e.ts?{ts:e.ts}:{}})));const i=ct();return i.length>0&&(r.pastPurchases=i),(An(r,"CART_ITEMS")||function(e){return _(()=>!!e.layeredRuling.find(e=>"latest_added"==e.ruleCond.itemSelection))}(r))&&(r.cartHistory=kn()),r.userId=_(()=>window.loomi_ctx.userId,""),t&&(r.widgetContext=t),_(()=>!!window.loomi_ctx.storeAlias)&&(r.storeAlias=window.loomi_ctx.storeAlias),r.locale=_(()=>window.Shopify.locale)||_(()=>window.visually.locale),E()&&(r.clientId=E()),r.country=se(),Promise.resolve(function(e,t){const n=_(()=>window.loomi_api.updateRecsOpts),r=_(()=>n.get(function(e){return e.widgetId+e.experienceId+e.variantId+e.sectionId}(e))(t),t);return _(()=>n.get(window.loomi_ctx.storeAlias)(r),r)}(t,r)).then(function(e){return r=e,Promise.resolve(Cn(r))})}()}catch(e){return o(e)}return i&&i.then?i.then(void 0,o):i}(0,function(e){return F("loomi-widget,recProducts failed:",e),n}))}catch(e){return Promise.reject(e)}};function An(e,t){return e.type===t||_(()=>e.strategyPerSlot.find(e=>e.strategy===t))||_(()=>!!Object.values(e.conditions).find(e=>e.qbProps.envKey===t))||_(()=>!!e.layeredRuling.find(e=>e.strategy===t||!!_(()=>e.strategyPerSlot.slots.find(e=>e.strategy===t))))}function In(e){const t=function(){const e=window.innerWidth;return e<=360?200:e<=480?360:e<=640?480:e<=768?640:e<=960?768:1024}();e.products.forEach(e=>{const n=new URL(e.image.src);n.searchParams.set("width",`${Math.min(t,e.image.width||1280)}`),e.image.src=n.href})}function bn(){return`https://${A(window.loomi_ctx.env)}/api/recommendations/web/public/v2/recommend`}const xn=new Map,Cn=function(e){try{function t(){return _(()=>o.products)}const n=g(e),r=W(n);let o=En.get(r);const i=function(){if(!o){let e=!0;return me("kill-locale-currency")&&(e=!1),Promise.resolve(((e,t,n)=>{if(xn.has(e))return xn.get(e);const r=window.vslyNativeFetch||window.fetch,o=function(){try{return Promise.resolve(function(e,o){try{var i=function(){function e(){return Promise.resolve(o.json()).then(function(e){const t=function(){if(e.fetchPrices&&n)return Promise.resolve(fn(e.products)).then(function(t){e.products=t})}();return t&&t.then?t.then(function(){return e}):e})}let o;const i=t.length>1e4&&!me("disable-recs-post")?Promise.resolve(r(bn(),{method:"POST",headers:{"Content-Type":"text/plain"},body:t})).then(function(e){o=e}):Promise.resolve(r(`${bn()}?q=${t}`)).then(function(e){o=e});return i&&i.then?i.then(e):e()}()}catch(e){return o(!0,e)}return i&&i.then?i.then(o.bind(null,!1),o.bind(null,!0)):o(!1,i)}(0,function(t,n){if(xn.delete(e),t)throw n;return n}))}catch(e){return Promise.reject(e)}}();return xn.set(e,o),o})(r,n,e)).then(function(e){o=e,_(()=>
116[In,window.loomi_api.onRecsResp].forEach(e=>e&&e(o))),En.set(r,o)})}}();return Promise.resolve(i&&i.then?i.then(t):t())}catch(s){return Promise.reject(s)}},kn=()=>rt().map(e=>{const t={...e};return delete t.sid,t});function Tn(e){return`vsly_pi_${e}`}function Nn(e){return`vsly_hbt_${e}`}function On(e){return`vsly_hbc_${e}`}function jn(e){return Array(e).fill(0).map(()=>Math.floor(10*Math.random())).join("")}function Ln(){try{const e=_(()=>window.vslyAntiFlickerReveal,void 0);e&&e()}catch(e){}}const $n=function(e,t){try{if(y(e)||y(t))return Promise.resolve({products:[]});const n=function(e,t){const n=window.loomi_ctx.storeAlias||"",r=new URLSearchParams({byHandle:g({handles:e}),al:n,slimResp:"1"});return t&&t.length>0&&r.set("metafields",g({fields:t})),`${bn()}?${r.toString()}`}(e,t);return Promise.resolve(fetch(n)).then(function(e){if(!e.ok)throw new Error(`vsly 400 ${e.statusText}`);return e.json()})}catch(e){return Promise.reject(e)}},Rn=function(e){try{try{const t=g(e),n=window.loomi_ctx.storeAlias,r=W(`${n}_${t}_${se()}`),o=Un.get(r);if(o)return Promise.resolve(o);if(Mn.has(r))return Promise.resolve(Mn.get(r));const i=function(){try{return Promise.resolve(function(e,o){try{var i=function(e,o){try{var i=function(){const e=new URL(bn());e.searchParams.set("al",n),e.searchParams.set("productQuery",t);const o=window.vslyNativeFetch||window.fetch;return Promise.resolve(o(e.toString(),{method:"GET",headers:{Accept:"application/json"}})).then(function(e){return e.ok?Promise.resolve(e.json()).then(function(e){return Promise.resolve(function(e){try{if(!e||!e.results||"object"!=typeof e.results)return Promise.resolve({results:{}});const t=e.results,n=function(e){return Object.keys(e).map(t=>{const n=e[t];return n&&n.id?{key:t,product:n}:null}).filter(e=>!!e)}(t);if(0===n.length)return Promise.resolve({...e,results:t});let r=n.map(e=>e.product);return r=function(e){const t={products:e};return In(t),t.products}(r),Promise.resolve(Dn(r)).then(function(o){return r=o,r=function(e){const t=window.loomi_api;if(!t||!t.onRecsResp)return e;try{const n={products:e};return t.onRecsResp(n),n.products}catch(t){return F("onRecsResp hook failed",t),e}}(r),function(e,t,n){t.forEach((t,r)=>{const o=n[r];o&&o.id&&(e[t.key]=o)})}(t,n,r),{...e,results:t}})}catch(e){return Promise.reject(e)}}(e)).then(function(e){return Un.set(r,e),e})}):{results:{}}})}()}catch(e){return o(e)}return i&&i.then?i.then(void 0,o):i}(0,function(e){return F("queryProducts failed:",e),{results:{}}})}catch(e){return o(!0,e)}return i&&i.then?i.then(o.bind(null,!1),o.bind(null,!0)):o(!1,i)}(0,function(e,t){if(Mn.delete(r),e)throw t;return t}))}catch(e){return Promise.reject(e)}}();return Mn.set(r,i),Promise.resolve(i)}catch(e){return F("queryProducts setup failed:",e),Promise.resolve({results:{}})}}catch(e){return Promise.reject(e)}},Dn=function(e){try{return me("kill-locale-currency")||_(()=>!Array.isArray(e[0].variants))?Promise.resolve(e):Promise.resolve(fn(e))}catch(e){return Promise.reject(e)}},Un=new K("ai_recs_cache",300001),Mn=new Map,qn=function(e,t,n){try{const o=Yt(),i=function(e,t,n){const r=function(){const e=Ot(),t={path:window.location.pathname,host:window.location.hostname};_(()=>e.length)>0&&(t.cartItems=e);const n=_(()=>Ze().token);n&&(t.cartToken=n);const r=At();r&&(t.trafficSources=r),t.productsSeenInSession=ot(),t.isCustomer=!!E(),t.query=window.location.search||"",t.hash=window.location.hash||"";const o=jt();return o&&(t.cartAttributes=o),t}();r.storeAlias=e;const o=E();o&&(r.clientId=o),r.anonymousId=t.id,r.firstSeen=t.firstSeen,r.firstSession=t.firstSession,r.gaId=_(()=>document.cookie.split(";").map(e=>e.split("=")).find(e=>{let[t,n]=e;return"_ga"==t.trim()})[1],"");const i=window.loomi_ctx;r.customerTags=_(()=>i.ctags.slice(0,20)),r.landingPage=_(()=>i.session.landing_page),r.hasSubs=!!_(()=>nt(Ze()).length>0);const s=vt();s&&(r.edgetag=s);const c=function(){try{const e=_(()=>new URL(window.location.href));if(_(()=>e.searchParams.get("forceOverride"))){const t=_(()=>e.searchParams.get("targeting"));if(t)return JSON.parse(decodeURIComponent(escape(atob(t))))}}catch(e){F("preview overrides",e)}return{}}(),a=it(at),u=function(){const e=it(ut);function t(e){return new Date(e.ts).valueOf()}function n(){const e=new URL(location.href);return["vslyvid","vslywgid","vslysid","lmi_preview","targeting","vsly_vid"].forEach(t=>e.searchParams.delete(t)),e.search||""}return bt(ut).then(r=>{const o={ts:new Date,name:Lt(),search:_(n,"")},i=!!o.search,s=(_(()=>r.visits)||e||[]).filter(e=>!i||!(e.name===o.name&&!e.search)).filter(e=>
116!(e.name===o.name&&(o.search===e.search||i&&!e.search))).sort((e,n)=>t(n)-t(e)).slice(0,500);var c;s.unshift(o),(c={id:ut,visits:s},Promise.resolve(xt()).then(function(e){return new Promise((t,n)=>{const r=e.transaction([kt],"readwrite").objectStore(kt).put(c);r.onerror=e=>{n("IDB e:w"+e.target.error)},r.onsuccess=()=>{t("")}})})).catch()}).catch(),st([{ts:f(),name:Lt()}],e,e=>t=>e.name===t.name,ut)}(),l=ct(),d={deviceKind:_(()=>window.loomi_ctx.deviceOverride,void 0),...n||{}},m=!!_(()=>navigator.userAgent.includes("Macintosh")&&"ontouchend"in document),h=_(()=>window.innerWidth,0),p=_(()=>window.vslyDesktopBreakpoint)||960,v=_(()=>S("cart_currency"))||_(()=>Ze().currency)||"",w=_(()=>i.current_product);if(w){r.oos=_(()=>w.oos),r.price=_(()=>w.price),r.iq=_(()=>w.variants.reduce((e,t)=>t.iq+e,0)),r.productId=_(()=>{const e=Nt().productId;return Number.isFinite(Number(e))?e.toString():""},"");const e=1*i.variantId;Number.isFinite(e)&&(r.vid=e)}const y=_(tt);"spa"==window.vslyIntegrationType&&(r.spa=!0);const g=_(()=>i.ttl);return{cartCurrency:v,...r,queryHistory:a,isIPadPro:m,windowInnerWidth:h,desktopBreakpoint:p,visitedPages:u,ttl:Number.isFinite(g)?g:0,purchasedLineItems:l,sid:y,...d||{},...c||{}}}(e,o,n);return Promise.resolve(function(e,t){try{const n=g(t),o=function(e){const{previewKey:t,debugAllocator:n,previewVariantId:o}=function(){[r,on].map(e=>{const t=cn(e);t&&sessionStorage.setItem(e,t)});const e=sessionStorage.getItem(r),t=sessionStorage.getItem(on);return{previewKey:e,debugAllocator:cn(sn),previewVariantId:t}}();let i=new URL(e);return t&&i.searchParams.append(r,t),n&&i.searchParams.append(sn,"true"),o&&i.searchParams.append(on,o),i}(Vn(e).cfgUrl);o.searchParams.append("q",n);const i=W(o.href),s=window.vslyNativeFetch||window.fetch,c=Bn.has(i)?Bn.get(i):s(o.href,{priority:"high"}).finally(()=>Bn.delete(i));return Bn.set(i,c),Promise.resolve(c).then(function(e){if(e.ok)return Promise.resolve(e.json());throw new Error(`failed to load config: ${e.statusText}`)})}catch(e){return Promise.reject(e)}}(t,i)).then(function(e){return _(()=>{window.loomi_ctx.audiences=e.audiences,_(()=>e.audiences&&localStorage.setItem("vsly_audiences",JSON.stringify(e.audiences))),window.loomi_ctx.testedThemes=e.testedThemes||[]}),function(e){const t=e.currentVariant;window.loomi_ctx={...window.loomi_ctx||{}};const n=_(()=>t.pid);n&&(window.loomi_ctx.productId=`${n}`);const r=_(()=>t.vid);r&&(window.loomi_ctx.variantId=`${r}`);const o=_(()=>t.price);o&&(window.loomi_ctx.variantPrice=o);const i=_(()=>t.meta);i&&(window.loomi_ctx.productMeta=`${i}`)}(e),st(e.queryHistory,i.queryHistory,e=>t=>t.v===e.v&&t.k===e.k,at),function(e){var t;(t=e.experiments)&&t.findIndex(e=>{const t=_(()=>e.clientTargetingFormula.toString(),"")||"";return t.includes("CartItemHasTag")||t.includes("CartItemHasCollection")||t.includes("AllCartItemsHasTag")})>-1||!0===_(()=>e.flags["sdk-enable-cart-enrichment"],!1)&&(e.flags["sdk-enable-cart-enrichment"]=!1)}(e),{configuration:e,tracking:o}})}catch(e){return Promise.reject(e)}},Fn="vslyb",Bn=new Map;function Jn(e){if("number"==typeof e.chance&&e.chance<100){const t={experienceId:e.name,variantId:e.variant,storeAlias:_(()=>window.loomi_ctx.storeAlias),anonymousId:_(()=>window.loomi_ctx.userId)};e.version&&(t.version=e.version);const r=g(t),o=_(()=>window.loomi_ctx.env,n.PROD),i=new URL(Vn(o).cfgUrl.replace("/allocate","/match"));i.searchParams.append("q",r),fetch(i)}}function Vn(e){let t="/api/allocator/web/public/v2/allocate";return Gn(e)&&(t="/allocate"),{cfgUrl:`${Hn(e)}${t}`}}function Hn(e){return Gn(e)?"http://localhost:8080":`https://${A()}`}function Gn(e){return[n.TEST,n.LOCAL].includes(e)}function zn(e){window.visually={..._(()=>window.visually)||{},flags:e},localStorage.setItem("loomi-flags",JSON.stringify(e))}function Kn(e,t,n){const r=function(r){_(()=>!!r.persisted)&&(window.loomi_ctx.cart=void 0,n(e,t,500).catch(e=>{F("failed reloading sdk",e)}))};_(()=>!window.loomi_ctx.pageshow)&&(q("pageshow initialized"),s().then(()=>{window.addEventListener("pageshow",r),window.loomi_ctx.pageshow=!0}))}function Wn(e){return`${e.name}-${e.variant}`}function Qn(e){return`${e.name}-${e.variant}-${e.version||0}`}function Yn(e){$.forEach(t=>{e&&!e(t)||(t.undo(),t.do())})}const Zn=(e,t)=>!!_(()=>e.audiences.includes(t)),Xn=e=>{const t={},n=Zn(e,"d"),r=Zn(e,"m");return n||r?(_(()=>e.experiments.filter(e=>
116!!e.code).forEach(e=>e.code.forEach(r=>{const o=_(()=>r.value.env.general.recsCount),i=_(()=>n?o.desktop.value:o.value);i>(t[e.variant]||0)&&"number"==typeof i&&(t[e.variant]=i)}))),t):t},er=function(e){void 0===e&&(e={});try{const t=Z+X;return we(Z,X),Promise.resolve(v(()=>_(()=>window.visually.widgets[t]),100,50)).then(function(){const n="#vsly-overlay",r="#vslyp-vsly-overlay";if(!document.querySelector(r)){const e=document.createElement("div");e.id=n.replace("#",""),e.textContent=".",e.style.opacity="0",e.style.display="none",document.body.appendChild(e);const t=document.createElement("script");t.id=r.replace("#",""),t.type="text/props",t.textContent="{}",document.body.appendChild(t)}return window.visually.widgets[t](n),Promise.resolve(v(()=>!!window.loomi_api._openProductOverlay,100,50)).then(function(){window.loomi_api._openProductOverlay((e=>{const t=_(()=>e.widgetContext)||_(()=>e.mpCtx)||_(()=>e.overlay.mpCtx);return t?{...e,overlay:{...e.overlay||{},mpCtx:t}}:e})(e))})})}catch(e){return Promise.reject(e)}};function tr(e,t,n,r){const[o,i]=t.split(",");return new Promise(t=>{bt(ut).then(n=>{for(const s of function(e,t,n){const r=(new Date).valueOf();return(_(()=>e.visits,[])||[]).filter(e=>{const o=new Date(e.ts).valueOf(),i=36e5,s=parseInt(t);switch(n.replaceAll('"',"")){case"hours":return o>r-s*i;case"weeks":return o>r-s*i*24*7;case"days":return o>r-s*i*24;default:return!1}})}(n,o,i))if(r||cr(e)){if(rr(s,e))return void t(!0)}else if(nr(s,e))return void t(!0);t(!1)})})}function nr(e,t){return!![or(e),sr(or(e))].find(e=>e.includes(t))}function rr(e,t){const n=e.search||"",r=or(e)+n;return!![r,sr(r)].find(e=>e.includes(ir(t)))}function or(e){return ir(function(e){const t=_(()=>new URL(e));if(!t)return e;const n=t.pathname.split("/");return/^[a-z]{2}-[a-z]{2}$/.test(n[1])&&(t.pathname=n.slice(2).join("/")),ir(t.href)}(e.name))}function ir(e){const t=_(()=>new URL(e));return t&&t.pathname.endsWith("/")?"/"===t.pathname?t.href.slice(0,-1):(t.pathname=t.pathname.slice(0,-1),t.href):e}function sr(e){return e.includes("/products/")&&e.includes("/collections/")?e.replace(/\/collections\/[^/]+/,""):e}function cr(e){return _(()=>!!new URL(e).search)}const ar=function(e){try{return Er(),yr(e.clientTargetingFormula)&&(mr[hr(e)]=e),Promise.resolve(Sr(e)).then(function(t){return t?(vr(e),!0):(q(`exp: ${e.gaName} not run client targeting: ${e.clientTargetingFormula} => false`),!1)})}catch(e){return Promise.reject(e)}},ur=function(e){try{const t=Object.entries(mr).map(t=>{let[n,r]=t;return yr(r.clientTargetingFormula)&&(mr[hr(r)]=r),{exp:r,shouldBeApplied:lr(r.clientTargetingFormula,e,r.name),hasBeenApplied:()=>!!fr[hr(r)]}});return Promise.resolve(gr(t)).then(function(e){!function(e){e.filter(e=>e.hasBeenApplied()&&!e.shouldBeApplied).flatMap(e=>{const t=_(()=>fr[hr(e.exp)]);return t&&delete fr[hr(e.exp)],t}).forEach(e=>{_(e.revert)})}(e),function(e){e.filter(e=>e.shouldBeApplied&&!e.hasBeenApplied()).forEach(e=>{var t,n,r;vr(e.exp),t=e.exp,n=wr,void 0===r&&(r=C()),n.has(t.variant)||(xr(r,t),n.add(t.variant),Jn(t))})}(e)})}catch(e){return Promise.reject(e)}},lr=function(e,t,n){void 0===n&&(n="");try{if(void 0===t&&(t=pr()),yr(e)){t.Total=$t,t.CartHasSubs=Ut,t.CartSubs=Mt,t.CartHasItem=qt,t.CartHasItemMatching=Ft,t.CartItemHasTagMatching=Jt,t.CartItemHasTag=Bt,t.AllCartItemsHasTag=Vt,t.AllCartItemsHasTagMatching=Ht,t.CartItemHasCollection=Gt,t.IsLoyaltyCustomer=zt,t.LoyaltyPointsBalance=Kt,t.LoyaltyPointsEarned=Wt,t.PageVisit=tr,t.CustomerTag=Pr,t.IsGuest=Ar,t.AbandonedCart=Rt,t.CartAttrName=Dt,t.UseCaseId=n;const r=()=>new Function(`\n        const c = arguments[0];\n        return ${function(e){const t=t=>_(()=>e.includes(t));for(const n of["PageVisit","Total"])t(`c.${n}`)&&!t(`await c.${n}`)&&(e=`( ${e.replaceAll(`c.${n}`,`await c.${n}`)} )`);return!t("(async ()")&&t("await")?`(async () => (${e}))()`:e}(e)}`)(t);return Promise.resolve(new Promise(e=>e(r())).catch(e=>(F("client side formula err",e),!1)))}return Promise.resolve(!0)}catch(e){return Promise.reject(e)}};let dr=!1;const mr={},fr={},hr=e=>`${e.name}-${e.variant}`;function pr(){return{cart:Ze(),Total:$t,CartHasSubs:Ut,CartSubs:Mt,CartHasItem:qt,CartHasItemMatching:Ft,CartItemHasTagMatching:Jt,CartItemHasTag:Bt,AllCartItemsHasTag:Vt,AllCartItemsHasTagMatching:Ht,CartItemHasCollection:Gt,IsLoyaltyCustomer:zt,LoyaltyPointsBalance:Kt,LoyaltyPointsEarned:Wt,PageVisit:tr,CustomerTag:Pr,IsGuest:Ar,AbandonedCart:Rt,CartAttrName:Dt}}function vr(e){const t={experienceId:e.name,variantId:e.variant,gaExperienceName:e.gaName,gaVariantName:e.gaVariant,reportGa:e.ga,publishedAt:e.publishedAt,version:e.version};var n;n=_(()=>e.code.map(e=>{try{return function(e,t){if("compound"===e.kind){const n=e.value,r=function(e,t,n,r,o){const i=[];return n&&""!==n&&i.push(N(e,t,n)),r&&""!==r&&i.push(N("appendCss",t,r)),o&&""!==o&&i.push(N("appendJs",t,o)),i}(n.htmlKind,e.selector,n.html,n.css,n.js),o=N(e.kind,e.selector,r);o.options=t;const i=Ye(o);return i.htmlId=r[0].id,r[1]&&(i.cssId=r[1].id),r[2]&&(i.jsId=r[2].id),i}if("widget"===e.kind){const n=N(e.kind,e.selector,"");n.options=t,n.block=e;const r=function(e,t){const n=_(()=>e.block.value);return{...t,sectionId:_(()=>n.env.sectionId),widgetId:_(()=>n.widgetId),widgetVersion:_(()=>n.version)}}(n,t);!function(e,t){const n=_(()=>e.block.value.env);
116n&&Object.entries(t).forEach(e=>{let[t,r]=e;return n[t]=r})}(n,r);const o=Ye(n);return o.htmlId=n.id,o}if(["pageRedirect","themeTest"].includes(e.kind)){const n=N(e.kind,e.selector,"");return n.options=t,n.block=e,Ye(n)}if(["moveElem","automation","visualEdit"].includes(e.kind)){const n=N(e.kind,e.selector,"");n.options=t,n.block=e;const r=Ye(n);return r.htmlId=n.id,r}const n=N(e.kind,e.selector,e.value);return n.options=t,Ye(n)}(e,t)}catch(e){}}).filter(e=>!!e),[]),fr[hr(e)]=n,function(e){if(!0!==window.visually?.flags?.["experience-applied-callback"])return;const t=window.vslyOnExperienceApplied;if("function"!=typeof t)return;const n={experienceId:e.name,variantId:e.variant,experienceName:e.gaName,variantName:e.gaVariant,version:e.version??0};try{Promise.resolve(t(n)).catch(e=>F("vslyOnExperienceApplied callback failed",e))}catch(e){F("vslyOnExperienceApplied callback failed",e)}}(e)}const wr=new Set;function yr(e){return!!e&&""!==e}const gr=function(e){try{return Promise.resolve(Promise.all(e.map(function(e){try{return Promise.resolve(e.shouldBeApplied).then(function(t){return{...e,shouldBeApplied:t}})}catch(e){return Promise.reject(e)}})))}catch(e){return Promise.reject(e)}},_r=e=>{const t=_(()=>e.key),n=_(()=>e.value),r=pr();t===Xe.CART_CHANGE?(ur({...r,cart:n}),_(()=>window.loomi_ctx.maintainCartAttributes(n))):t===Xe.LOYALTY_CHANGE&&ur(r)};function Sr(e){return lr(e.clientTargetingFormula,void 0,e.name)}function Er(){dr||s(()=>document).then(()=>{document.addEventListener(Q,_r),dr=!0})}function Pr(e,t){if(void 0===t&&(t=""),"contains"===t)return _(()=>window.loomi_ctx.ctags?.some(t=>t.includes(e)))||!1;const n=["!","not in"].some(e=>t.includes(e)),r=_(()=>window.loomi_ctx.ctags.includes(e))||!1;return n?!r:r}function Ar(){return Promise.resolve(_(()=>!window.loomi_ctx.clientId))}function Ir(e){const t=hr(e),n=fr[t];n&&(n.forEach(e=>_(e.revert)),delete fr[t]),delete mr[t]}const br=function(e,t,n){try{let r;return Promise.resolve(n()).then(function(n){n?(xr(t,e),(yr(e.clientTargetingFormula)||function(e){return!!me("trigger-delayed-allocation")&&_(()=>["jsFunction","jsCondition"].includes(e.trigger.type))}(e))&&Jn(e)):r=1})}catch(e){return Promise.reject(e)}};function xr(e,t){return _(()=>{e.register(t.name,t.variant,t.gaVariant,t.gaName);const n=t.ga;return e.track(o.USE_CASE,{use_case:t.name,use_case_variant:t.variant,...t.version?{version:t.version}:{}},{isAudience:t.isAudience,isRedirect:t.isRedirect,immediate:t.immediate,gaName:t.gaName,gaVariant:t.gaVariant,...n?{reportGa:n}:{}})})}const Cr=new Set,kr=new Set,Tr=new Set,Nr=new Set;let Or;function jr(e){void 0===Or&&(Or=new MutationObserver(Lr(e)),Or.observe(document.body,{childList:!0,subtree:!0,attributes:!1,characterData:!1}))}function Lr(e){return()=>{$r(Cr,Tr,(t,n)=>{br(n,e,()=>(t.add(Rr(n.trigger.selector,n)),ar(n)))}),$r(kr,Nr,(t,n,r)=>{const o=n.trigger;t.add(Rr(o.selector,n)),r.addEventListener(o.name,()=>br(n,e,()=>ar(n)),{once:void 0!==o.once&&o.once})})}}function $r(e,t,n){e.forEach(e=>{_(()=>{const r=e.trigger.selector;document.body.querySelectorAll(r).forEach(o=>{t.has(Rr(r,e))||n(t,e,o)})})})}function Rr(e,t){return`${e}-${t.name}`}function Dr(e){const t=JSON.stringify({ts:(new Date).getTime(),...e});let n,r,o=0;if(0===t.length)return o;for(n=0;n<t.length;n++)r=t.charCodeAt(n),o=(o<<5)-o+r,o|=0;return o}function Ur(e){const t=Dr(e);return Br(t),v(()=>new Function(e.code)(window),e.timeoutMillis,e.retries,()=>void 0===Jr(t))}function Mr(e){return JSON.parse(localStorage.getItem(e)||"[]")}let qr=[];const Fr=function(e,t,n){_(()=>t.experiments.forEach(t=>{n&&n.matches(t)?n.onSubscribeCall(t):Gr(t,e)}))},Br=(e,t)=>{qr.push({handler:e,experienceKey:t})},Jr=e=>qr.find(t=>t.handler===e),Vr=function(e){qr.filter(t=>t.experienceKey===e).forEach(e=>{try{"number"!=typeof e.handler&&e.handler()}catch(e){}}),qr=qr.filter(t=>t.experienceKey!==e)};function Hr(e,t){Gr(e,t)}function Gr(t,n){switch(_(()=>t.trigger.type)){case e.PageLoad:!function(e,t){br(e,t,()=>ar(e))}(t,n);break;case e.Timeout:!function(e,t){const n=setTimeout(()=>{br(e,t,()=>ar(e))},e.trigger.timeoutMillis);Br(()=>{n&&clearTimeout(n)})}
116(t,n);break;case e.Inactivity:!function(e,t){const n=e.trigger.timeoutMillis;let r;function o(){clearTimeout(r),r=setTimeout(()=>{br(e,t,function(){try{return Promise.resolve(Sr(e)).then(function(t){return t&&ar(e),t})}catch(e){return Promise.reject(e)}})},n)}o();const c=["mousemove","keypress","scroll","touchstart","touchmove"];Br(()=>{clearTimeout(r),i(()=>document).then(()=>c.forEach(e=>document.removeEventListener(e,o)))}),s(()=>document,!0).then(()=>{c.forEach(e=>document.addEventListener(e,o,{passive:!0}))})}(t,n);break;case e.Selector:!function(e,t){jr(e),Cr.add(t),Lr(e)()}(n,t);break;case e.ExitIntent:!function(e,t){const n=r=>{_(()=>!r.toElement&&!r.relatedTarget)&&br(e,t,()=>{const t=ar(e);return i(()=>document).then(()=>{document.removeEventListener("mouseout",n)}),t})};s(()=>document,!0).then(()=>{document.addEventListener("mouseout",n,{passive:!0})}),Br(()=>{i(()=>document).then(()=>{document.removeEventListener("mouseout",n)})})}(t,n);break;case e.JSCondition:!function(e,t){Ur(e.trigger).then(()=>{br(e,t,()=>ar(e))}).catch(()=>{})}(t,n);break;case e.JSFunction:!function(e,t){!function(n){try{const r=new Function(`return async function() { ${n.code} }`)()(),o=Dr(n);Br(o),r.then(()=>void 0!==Jr(o)&&void br(e,t,()=>ar(e)))}catch(e){}}(e.trigger)}(t,n);break;case e.JSEvent:!function(e,t){const n=e.trigger,r="vsly-js-events";function o(n){n&&br(e,t,()=>ar(e))}const c=e=>{let t;try{t=new Function(n.jsEvent.matchCode)(e),localStorage.setItem(r,JSON.stringify([...Mr(r),{event:{detail:e.detail},ts:(new Date).valueOf()/1e3}].splice(0,25)))}catch(e){F("handleJsEvent",e),t=!1}o(t)};o(function(e,t){return _(()=>!!Mr(e).find(e=>{const n=e.ts;return(new Date).valueOf()/1e3-n<2628e3&&new Function(t)(e.event)}))}(r,n.jsEvent.matchCode)),s(()=>window).then(()=>{window.addEventListener(n.jsEvent.name,c)}),Br(()=>{i().then(()=>{window.removeEventListener(n.jsEvent.name,c)})})}(t,n);break;case e.Conjunction:!function(t,n){if(function(t){return[e.ExitIntent,e.Selector,e.Timeout].includes(t.trigger.condition.type)}(t)){const e=t.trigger;Ur(e.jsCond).then(()=>{Gr({...t,trigger:e.condition},n)}).catch(()=>{})}}(t,n);break;case e.ElementEvent:!function(e,t){jr(t),kr.add(e),Lr(t)()}(t,n)}}const zr=["vsly-backdrop-container","__loomi_crosshair_container"];function Kr(e){let t=_(()=>e.target),n=!1;for(;t;){if(zr.includes(_(()=>t.id))){n=!0;break}t=_(()=>t.parentElement)}n&&(q("vsly","about to stop propagation of event",e),_(()=>e.stopImmediatePropagation()),_(()=>e.stopPropagation()))}function Wr(e,t){const n=_(()=>window.Shopify.currency.active,"USD"),r=_(()=>window.Shopify.locale,"en-US"),o=new Intl.NumberFormat(r,{style:"currency",currency:n,minimumFractionDigits:!0===_(()=>window.visually.flags["op-locale-currency-always-show-decimals"],!1)?2:0,maximumFractionDigits:2});if(t){if(Zr()){const t=_(()=>window.visually.priceRound)||Math.round;return o.format(t(e,n))}return o.format(e)}const i=_(()=>window.Shopify.currency.rate,"1");let s=Number.parseFloat(i);s=Number.isNaN(s)?1:s;let c=e*s;return 1!=s&&me("exchange-fee")&&(c*=1.02),c=Qr(s,c,n),o.format(c)}const Qr=(e,t,n)=>1!==e&&me("exchange-round")||Zr()?(_(()=>window.visually.priceRound)||Math.round)(t,n):t;function Yr(){const e=_(()=>!0===window.visually.flags["kill-locale-currency"]),t=_(()=>window.Shopify.currency,{}),n=!!_(()=>t.active),r=_(()=>t.rate),o=!!r&&!Number.isNaN(Number.parseFloat(r));return!e&&n&&o}const Zr=()=>!me("op-locale-currency-no-round");let Xr=window.location.href;const eo=()=>{requestAnimationFrame(()=>{Xr!==window.location.href&&(Xr=window.location.href,window.dispatchEvent(new CustomEvent("vslyUrlChanged",{detail:{prev:Xr,curr:window.location.href}})))})};var to;!function(e){e.NONE="none",e.YOTPO="yotpo"}(to||(to={}));const no={isMember:!1,provider:to.NONE};function ro(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}const oo="vsly-loyalty-ctx",io=(()=>{const e=["swell:customer:updated","swell:redemption","swell:initialized","swell:setup","vsly:loyalty-changed"];let t;const n=()=>{const e=_(()=>window.swellConfig.customer);return e?{id:e.local_customer_id,providerId:e.id,email:e.email,earnedPoints:e.points_earned,isMember:!0===e.is_member,pointsBalance:e.points_balance,adjustedPointsBalance:_(()=>e.adjusted_points_balance,0),provider:to.YOTPO}:no},r=e=>{_(()=>"vsly:loyalty-changed"===e.type)&&_(()=>window.swellAPI.refreshCustomerDetails()),t(n())};return{provide:n,onChange:function(n){try{t=n;const o=ro(function(){return Promise.resolve(v(()=>
116!!window.jQuery,50,200)).then(function(){e.forEach(e=>{window.jQuery(document).on(e,r)})})},function(){e.forEach(e=>{document.addEventListener(e,r)})});return Promise.resolve(o&&o.then?o.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},connect:()=>v(()=>!!_(()=>window.swellConfig.customer.local_customer_id),400,20),disconnect:function(){try{const t=ro(function(){return Promise.resolve(v(()=>!!window.jQuery,50,200)).then(function(){e.forEach(e=>{window.jQuery(document).off(e,r)})})},function(){e.forEach(e=>{document.removeEventListener(e,r)})});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}}}})();function so(e){et(Xe.LOYALTY_CHANGE,e),sessionStorage.setItem(oo,JSON.stringify({ts:(new Date).getTime(),ctx:e})),window.loomi_ctx={...window.loomi_ctx||{},loyalty:e}}const co="vsly_session";function ao(e){return Et((e||"").replace("+"," "))}function uo(){const e=window.loomi_ctx.storeAlias,t={id:W(e+window.loomi_ctx.userId+f()+It()+fo()),utm_campaign:It(),last_interaction:new Date,landing_page:_(()=>location.href,""),start_at:new Date};return lo(t),t}function lo(e){const t=JSON.stringify(e);localStorage.setItem(co,t),window.loomi_ctx.session=e}function mo(){const e=function(){window.loomi_ctx=window.loomi_ctx||{};let e=window.loomi_ctx.session||_(()=>{const e=JSON.parse(localStorage.getItem(co));return e.last_interaction=new Date(e.last_interaction),e.start_at=new Date(e.start_at),e})||uo();return function(e){const t=new Date,n=e.last_interaction;return(t.valueOf()-n.valueOf())/6e4>30||ao(It())!==ao(e.utm_campaign)||e.last_interaction.getDate()!==t.getDate()}(e)&&(e=uo()),window.loomi_ctx.session=e,e}();e.last_interaction=new Date,lo(e)}const fo=()=>Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15);function ho(e,t){try{var n=e()}catch(e){return t(!0,e)}return n&&n.then?n.then(t.bind(null,!1),t.bind(null,!0)):t(!1,n)}const po=function(e,t,r){void 0===r&&(r=1e3);try{return vo?(console.debug("vsly-sdk","cannot reload since another reload is in progress"),Promise.resolve()):(vo=!0,Promise.resolve(ho(function(){console.debug("vsly-sdk","about to reload sdk");const o=me("sdk-reconcile")?Promise.resolve(function(e,t,n){try{return Promise.resolve(n(t,e)).then(function(e){let{configuration:t}=e;const n=_(()=>window.loomi.conf.experiments)||[],r=new Map,o=t.experiments||[],i=new Map,s=new Set(Object.keys(fr)),c=C();n.forEach(e=>r.set(Wn(e),e)),o.forEach(e=>i.set(Wn(e),e)),(e=>{window.loomi={..._(()=>window.loomi)||{},conf:e},window.visually={..._(()=>window.visually)||{},flags:e.flags,recsPerVariant:Xn(e)},zn(e.flags)})(t),((e,t,n)=>{e.forEach((e,r)=>{t.has(r)||(n.has(r)&&Ir(e),Vr(r))})})(r,i,s),document.dispatchEvent(Object.assign(new Event("reset-widget"),{value:"reload"})),document.dispatchEvent(Object.assign(new Event("targeting-changed"),{value:"#reload",key:"CART_CHANGE"})),((e,t,n,r)=>{e.forEach((e,o)=>{const i=t.get(o);i?Qn(i)!==Qn(e)&&(r.has(o)&&Ir(i),Vr(o),un([e]),Hr(e,n)):(un([e]),Hr(e,n))})})(i,r,c,s)})}catch(e){return Promise.reject(e)}}(e,t,wo)).then(function(){}):Promise.resolve(function(){try{return dr&&i(()=>document).then(()=>{document.removeEventListener(Q,_r),dr=!1}),qr.forEach(e=>{try{"number"!=typeof e.handler&&e.handler()}catch(e){}}),qr=[],Array.from($.keys()).forEach(e=>{Qe(e)}),Ve&&Ve.disconnect(),Promise.resolve()}catch(e){return Promise.reject(e)}}()).then(function(){return Promise.resolve((o=r,void 0===o&&(o=40),new Promise(e=>setTimeout(e,o)))).then(function(){return Promise.resolve(function(e,t){try{return void 0===e&&(e=n.PROD),Promise.resolve(ho(function(){return function(r,o){try{var i=(function(){if(window.vsly_blocked)throw Ln(),new Error(Fn)}(),function(e,t){window.loomi_ctx=window.loomi_ctx||{},window.loomi_ctx.env=window.loomi_ctx.env||e,window.loomi_ctx.storeAlias=window.loomi_ctx.storeAlias||t}(e,t),Promise.resolve(function(e,t){try{return void 0===e&&(e=n.PROD),Promise.resolve(yo(t,e,void 0)).then(function(n){let{configuration:r,tracking:o}=n;return go(r,t,e,o)})}catch(e){return Promise.reject(e)}}(e,t)).then(function(n){let{jitsu:r,configuration:o}=n;if(!_(()=>o.flags["kill-switch"]))return Promise.resolve(Je()).then(function(){un(o.experiments),Fr(r,o),Kn(e,t,po),mt()})}))}catch(e){return o(e)}return i&&i.then?i.then(void 0,o):i}(0,function(e){_(()=>e.message)!==Fn&&F("failed initialising sdk",e)})},function(e,t){if(Ln(),e)throw t;return t}))}catch(e){return Promise.reject(e)}}(e,t)).then(function(){})});var o});if(o&&o.then)return o.then(function(){})},function(e,t){if(vo=!1,e)throw t;return t})))}catch(e){return Promise.reject(e)}};let vo=!1;const wo=function(e,t,n){try{return m(),Promise.resolve(qn(e,t,n))}catch(e){return Promise.reject(e)}},yo=function(e,t,n){try{return _(mo),m(),Promise.resolve(qn(e,t,n))}catch(e){return Promise.reject(e)}},go=function(e,t,n,r){try{return zn(e.flags),function(e,t,n,r,o,i){Er(),window.loomi_ctx={..._(()=>window.loomi_ctx)||{},env:t,storeAlias:e,apply:e=>{un([e]),ar(e)},shouldApply:lr};const s=_(()=>
116o.productId),c=window.loomi_ctx;s&&!c.productId&&(c.productId=s);const a=_(()=>o.variantId);a&&!c.variantId&&(c.variantId=a),window.loomi={..._(()=>window.loomi)||{},conf:n},window.visually={..._(()=>window.visually)||{},flags:n.flags,enabledIntegrations:n.integrations,recsPerVariant:Xn(n),sdk_api:{addToCart:mn,recommendProducts:Pn,getProductsMetafields:$n,fetchRecs:Cn},reAllocate:i,rerender:Yn,reload:function(){try{return Promise.resolve(r(t,e,1e3)).then(function(){})}catch(e){return Promise.reject(e)}}}}(t,n,e,po,Nt(),wo),function(e){try{if(e.noActiveThemeTests&&Ce()){if(Pe(0))return;be()}else(e=>!(e.experiments||[]).find(e=>e.isThemeTest)&&_(Ce)&&!![localStorage,sessionStorage].find(je))(e)&&be()}catch(e){}}(e),Promise.resolve(Eo()).then(function(){var o,c,a,l;(function(e,t,n){window.loomi_api||(window.loomi_api={}),window.loomi_api.when=w,window.loomi_api.awaitCondition=v,window.loomi_api.loadVisuallyLib=h,window.loomi_api.queryProducts=Rn,window.loomi_api.debounce=u,window.loomi_api.allocatorQuery=e=>function(e,t){try{function n(){return Promise.resolve(r)}const r={results:{}},o={...e};o.queries=function(e,t){return e.queries.filter(e=>{const n=_(()=>e.oneOf.productInfo);if(n){const r=Tn(n.handle),o=sessionStorage.getItem(r);if(!o)return!0;const i=JSON.parse(o);return!!function(e,t){return!((!e.includeCollections||t.collections)&&(!e.includeTags||t.tags)&&(!e.includeSales||t.sales)&&(!e.includeVariants||t.variants))}(n,i)||(i.cached=!0,t.results[e.name]=i,!1)}const r=_(()=>e.oneOf.handlesByTag);if(r){const n=Nn(r),o=sessionStorage.getItem(n);if(!o)return!0;const i=JSON.parse(o);return i.cached=!0,t.results[e.name]=i,!1}const o=_(()=>e.oneOf.handlesByCollection);if(o){const n=On(o),r=sessionStorage.getItem(n);if(!r)return!0;const i=JSON.parse(r);return i.cached=!0,t.results[e.name]=i,!1}return!0})}(e,r);const i=function(){if(o.queries.length>0){const{query:e,hashedQuery:n}=function(e,t){e.timestamp=`${jn(4)}${t}${jn(5)}`,e.alias=window.loomi_ctx.storeAlias||"",e.userId=window.loomi_ctx.userId||"";const n=g(e);return{query:n,hashedQuery:(n+window.loomi_ctx.userId+window.loomi_ctx.storeAlias+t).split("").reduce((e,t)=>(e=(e<<5)-e+t.charCodeAt(0))&e,0)}}(o,t),i=Vn(window.loomi_ctx.env).cfgUrl.replace("/allocate",`/query?q=${e}&h=${n}`);return Promise.resolve(fetch(i)).then(function(e){const t=function(){if(e.ok)return Promise.resolve(e.json()).then(function(e){e.results&&Object.entries(e.results).forEach(e=>{let[t,n]=e;!function(e,t,n){if(t)if("ProductInfo"===t.kind){const r=n.queries.find(t=>t.name===e);r&&(_(()=>r.oneOf.productInfo.includeTags,!1)&&!t.tags&&(t.tags=[]),_(()=>r.oneOf.productInfo.includeCollections,!1)&&!t.collections&&(t.collections=[]),_(()=>r.oneOf.productInfo.includeSales,!1)&&!t.sales&&(t.sales=""),_(()=>r.oneOf.productInfo.includeVariants,!1)&&!t.variants&&(t.variants=[]),sessionStorage.setItem(Tn(t.handle),JSON.stringify(t)))}else if("HandlesByCollection"===t.kind){const r=n.queries.find(t=>t.name===e);if(r){const e=_(()=>r.oneOf.handlesByCollection,"")||"";sessionStorage.setItem(On(e),JSON.stringify(t))}}else if("HandlesByTag"===t.kind){const r=n.queries.find(t=>t.name===e);if(r){const e=_(()=>r.oneOf.handlesByTag,"")||"";sessionStorage.setItem(Nn(e),JSON.stringify(t))}}}(t,n,o),r.results[t]=n})})}();if(t&&t.then)return t.then(function(){})})}}();return Promise.resolve(i&&i.then?i.then(n):n())}catch(s){return Promise.reject(s)}}(e,`${(new Date).getTime()+Math.round(1e6*Math.random())}`),window.loomi_api.openProductOverlay=er,_(()=>e.shopApi.forEach(e=>{let{js:t,windowKey:n}=e;try{window.loomi_api[n]=new Function(t)}catch(e){}})),window.loomi_api.formatLocaleMoney=function(){var e=[].slice.call(arguments);return n()?t(...e):(_(()=>window.loomi_api.formatMoney)||(()=>`${_(()=>e[0],"")}`))(...e)},window.loomi_api.redirectTest=ee})(e,Wr,Yr),a=e.first_seen,(c=e.uid)!==(l=r.id)&&c&&a>0?(window.loomi_ctx.userId=c,Zt(c,a)):window.loomi_ctx.userId=l,function(e,t){try{return _(()=>window.loomi_ctx.cc)&&v(b,1e3,120).then(()=>Zt(e,t||(new Date).getTime()/1e3)),Promise.resolve()}catch(e){return Promise.reject(e)}}(window.loomi_ctx.userId,a),(o=e.flags)["sdk-auto-clean"]&&!o["sdk-kill-auto-clean"]&&h("price_test_cleanup_v2",{async:!1,defer:!0}).then(),_(()=>!0===window.visually.flags["op-focus-trap-removal"])&&s(()=>document,!0).then(()=>{document.addEventListener("focusin",Kr,{capture:!0,passive:!0}),document.addEventListener("mousedown",Kr,{capture:!0,passive:!0}),document.addEventListener("touchstart",Kr,{capture:!0,passive:!0}),document.addEventListener("touchend",Kr,{capture:!0,passive:!0})}),function(e,t){if(me("kill-sdk-reload-url-detection")||!me("sdk-reload")&&!["/products/","/collections/"].find(e=>window.location.href.includes(e)))return;const n=function(){const r=(()=>{requestAnimationFrame(()=>{(me("sdk-reload-url-detection-href")?So!==window.location.href:new URL(So).pathname!==new URL(window.location.href).pathname)&&(So=window.location.href,n(),_o(e,t,10))})})||eo,o=["click","touchend","pdpresp"];return s(()=>document.body,!0).then(()=>
116{o.forEach(e=>document.body.addEventListener(e,r,!0))}),()=>{i(()=>document.body).then(()=>{o.forEach(e=>{document.body.removeEventListener(e,r,!0)})})}}()}(n,t),function(){try{return Promise.resolve(function(e,t){try{var n=function(){so(function(){const e=sessionStorage.getItem(oo);if(e){const t=_(()=>JSON.parse(e));if(t&&t.ts>(new Date).getTime()-3e5)return t.ctx}}()||no);const e=_(()=>!0===window.visually.flags["loyalty-targeting"]),t=function(){if(e)return Promise.resolve(function(e){try{return e.onChange(e=>{so(e)}),Promise.resolve(e.connect()).then(function(){const t=e.provide();return so(t),{ctx:t,disconnect:e.disconnect}})}catch(e){return Promise.reject(e)}}(io)).then(function(){const e=document.querySelectorAll('[href*="/account/logout"]');e&&Array.from(e).forEach(e=>{e.addEventListener("click",()=>(sessionStorage.removeItem(oo),!0))})})}();if(t&&t.then)return t.then(function(){})}()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}(0,function(e){console.debug("vsly-loyalty","unable to find loyalty provider",e)}))}catch(e){return Promise.reject(e)}}();const d=C();return{configuration:e,jitsu:d}})}catch(e){return Promise.reject(e)}},_o=u(po,10);let So=window.location.href;const Eo=function(){try{return Promise.resolve(function(){if(me("block-do-not-track"))return Promise.resolve(x()).then(function(e){if(!e)throw new Error(Fn)})}())}catch(e){return Promise.reject(e)}};function Po(e){return e.startsWith("https://")?e.substring(8):e}function Ao(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch{return""}}var Io;!function(e){e.SIGNUP="SIGNUP",e.ADD_TO_CART="ADD_TO_CART",e.CHANGE_QTY="CHANGE_QTY",e.REMOVE_FROM_CART="REMOVE_FROM_CART",e.PAGE_LOAD="PAGE_LOAD",e.CLICK="CLICK",e.LOGIN="LOGIN",e.LOGOUT="LOGOUT",e.TIME_SPENT="TIME_SPENT",e.USE_CASE="USE_CASE",e.LEAD_SUBMISSION_EMAIL="LEAD_SUBMISSION_EMAIL",e.LEAD_SUBMISSION_PHONE="LEAD_SUBMISSION_PHONE"}(Io||(Io={}));let bo=[];const xo=function(e,t){if(void 0===t&&(t=0),0===bo.length)return;const n=bo;bo=[];const r=ko(n),o=Co(n);e({bulk:o,shared:r},!0).catch(()=>{const r=n.concat(bo);r.length<100&&(bo=r,t<2&&setTimeout(()=>xo(e,t+1),500*Math.pow(2,t)))})};u(xo,100);const Co=e=>e.map(e=>{const t=JSON.parse(JSON.stringify(e));return delete t.user,delete t.event_id,delete t.user_agent,delete t.utc_time,delete t.local_tz_offset,delete t.doc_host,delete t.ids_ga,delete t.alias,delete t.userCanBeTracked,delete t.userDataCanBeSold,delete t.edgetag,delete t.api_key,delete t.src,t}),ko=e=>{const t=_(()=>String(e[0].user.anonymous_id),""),n=_(()=>String(e[0].user_agent),""),r=_(()=>String(e[0].event_id),""),o=_(()=>String(e[0].utc_time),""),i=_(()=>Number(e[0].local_tz_offset)||0),s=_(()=>String(e[0].doc_host),""),c=_(()=>String(e[0].ids_ga),""),a=_(()=>String(e[0].alias),""),u=_(()=>Boolean(e[0].userCanBeTracked),!0),l=_(()=>Boolean(e[0].userDataCanBeSold),!0),d=_(()=>String(e[0].edgetag),""),m=_(()=>String(e[0].api_key),""),f=_(()=>String(e[0].src),"");return Object.entries({anonymous_id:t,event_id:r,user_agent:n,utc_time:o,local_tz_offset:i,doc_host:s,ids_ga:c,alias:a,userCanBeTracked:u,userDataCanBeSold:l,edgetag:d,api_key:m,src:f}).reduce((e,t)=>{let[n,r]=t;if(r){if("undefined"===r)return e;e[n]=r}return e},{})},To=function(e){try{let r;function t(e){return r?e:Promise.resolve(!1)}const o=function(){if(_(()=>e.eventPayload.bulk.length>0,!1)){const t=_(()=>JSON.parse(JSON.stringify(e.eventPayload.bulk[0])),void 0);if(!t){const e=Promise.resolve(!1);return r=1,e}const o=_(()=>JSON.parse(JSON.stringify(t.ga)),void 0);return delete t.ga,Promise.resolve(function(e){try{return Promise.resolve(function(t,r){try{var o=function(){const t=window.loomi_ctx.jitsuKey,r=function(e){const t={trackingHost:"https://live.visually-io.com"};return e===n.TEST&&(t.trackingHost="http://localhost:8088"),e===n.STAGE&&(t.trackingHost="https://sdk.loomi-stg.xyz"),t}(window.loomi_ctx.env).trackingHost;return Promise.resolve(fetch(`${r}/api/s?token=${t}&bulk=1`,{headers:{"content-type":"text/plain"},body:JSON.stringify(e.eventPayload),method:"POST",mode:"cors",credentials:"omit",keepalive:!0})).then(function(e){return e.ok})}()}catch(e){return r(e)}return o&&o.then?o.then(void 0,r):o}(0,function(e){return console.error("vsly: Failed to send event",e),!1}))}catch(e){return Promise.reject(e)}}(e)).then(function(n){return Promise.resolve(function(e){try{try{const t=e.eventPayload,n=t.bulk[0],r=window.loomi_ctx.env,o=t.shared,i=g({experienceId:n.use_case,variantId:n.use_case_variant,storeAlias:o.alias,anonymousId:o.anonymous_id,version:n.version}),s=new URL(Vn(r).cfgUrl.replace("/allocate","/match"));s.searchParams.append("q",i),fetch(s.toString())}catch(e){console.error("vsly: Failed to persist allocation",e)}return Promise.resolve()}catch(e){return Promise.reject(e)}}(e)).then(function(){return o&&C().trackExt(t,o).then().catch(e=>{console.error("vsly: Failed track ext event",e,t,o)}),r=1,n})})}}();return Promise.resolve(o&&o.then?o.then(t):t(o))}catch(i){return Promise.reject(i)}},No="vsly_analytics_queue";function Oo(e,t,n){void 0===n&&(n=!1);try{const r=window.loomi_ctx,o=r.storeAlias,i=r.jitsuKey,s=Pt(),c={id:`${Date.now()}-${Math.random().toString(36).substring(2,9)}`,timestamp:Date.now(),eventPayload:{bulk:[{url:location.href,doc_path:location.pathname,doc_search:location.search,sid:r.session.id,sid_start:r.session.start_at,utm:s.utm,lmi_params:s.lmi_params,event_type:"USE_CASE",use_case:e._USE_CASE,use_case_variant:e._USE_CASE_VARIANT,version:e._USE_CASE_VERSION||1,ga:{isAudience:!1,gaName:e._USE_CASE_GA||e._USE_CASE,gaVariant:e._USE_CASE_GA_VARIANT||e._USE_CASE_VARIANT,reportGa:n}}],shared:{anonymous_id:t.id,user_agent:navigator.userAgent,utc_time:(new Date).toISOString(),local_tz_offset:(new Date).getTimezoneOffset(),doc_host:location.host,alias:o,api_key:i}},retries:0},a=jo();a.push(c),Lo(a)}catch(e){console.error("vsly: Failed to queue analytics event",e)}}function jo(){try{const e=localStorage.getItem(No);if(!e)return[];const t=JSON.parse(e);return Array.isArray(t)?t:[]}catch(e){return console.error("vsly: Failed to read analytics queue",e),[]}}function Lo(e){try{localStorage.setItem(No,JSON.stringify(e))}catch(e){console.error("vsly: Failed to save analytics queue",e)}}const $o=(e,t)=>{try{localStorage.setItem(e,JSON.stringify({variant:t.experiment.variant,version:t.experiment.version||0}))}catch(e){}},Ro=(e,t)=>{let n=null;try{const r=localStorage.getItem(e);if(r){let e;const o=JSON.parse(r);if(o&&"object"==typeof o&&"variant"in o){e=o;const r=t.find(t=>t.experiment.variant===e.variant);r&&(r.experiment.version||0)===(e.version||0)&&(n=r)}}}catch(e){}return n},Do=e=>`vsly_redirect_test_${e[0].experiment.name}`,Uo=(e,t)=>{if(e){const n=e.experiment;t.some(e=>{const t=e.experiment;return t.variant===n.variant&&t.version===n.version})||(e=!1)}if(!e){const n=100*Math.random();let r=0;for(const o of t)if(r+=o.targeting.chance,n<=r){e=o;break}}return e},Mo=function(e){void 0===e&&(e=!0);const t=window.loomi_ctx.consent;t.allowed=e,t.fin||(t.fin=qo())},qo=()=>(new Date).getTime(),Fo=()=>window.Shopify.customerPrivacy,Bo=["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","NO","IS","LI"],Jo=function(e){void 0===e&&(e=!0);const t=window.loomi_ctx.consent;t.allowed=e,t.fin||(t.fin=Vo())},Vo=()=>(new Date).getTime(),Ho=()=>window.Shopify.customerPrivacy,Go=()=>Promise.resolve(),zo=()=>(window.loomi_ctx=window.loomi_ctx||{},window.loomi_ctx.performanceMetrics=window.loomi_ctx.performanceMetrics||{},window.loomi_ctx.performanceMetrics);function Ko(){try{const e=zo().as;
116if(void 0===e)return;const t=performance.now();Object.assign(zo(),{ae:t,ad:t-e}),(e=>{try{if("function"!=typeof performance.getEntriesByType)return;const t=performance.getEntriesByType("resource").filter(t=>t.startTime>=e&&(e=>{try{return new URL(e.name).pathname.endsWith("/allocate")}catch{return!1}})(t)).pop();if(!t)return;Object.assign(zo(),{ars:t.startTime,afs:t.fetchStart,aqs:t.requestStart,aps:t.responseStart,ape:t.responseEnd,ard:t.duration,ardl:t.startTime-e,aprd:t.requestStart-t.startTime,arwd:t.responseStart-t.requestStart,ardd:t.responseEnd-t.responseStart})}catch{}})(e)}catch(e){}}function Wo(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}function Qo(){return _(mo),Yt(),function(e){void 0===e&&(e=window.loomi_ctx.embeddedTests);try{if(!e)return;if(0===e.length)return;const t=e.filter(e=>e.experiment.isThemeTest);t.length>0&&function(e){const t=Do(e);let n=Ro(t,e);if(n=Uo(n,e),!n)return;if(!n.experiment)return;$o(t,n);const r=n.experiment,o=_(()=>r.code.find(e=>"themeTest"===e.kind).value.targetThemeId)||0,i=ne({experienceId:r.name,variantId:r.variant,version:r.version,gaExperienceName:r.gaName,gaVariantName:r.gaVariant});Oo(i,Yt(),_(()=>!!r.ga)||!1),Ee(i,o)}(t);const n=e.filter(e=>!e.experiment.isThemeTest);n.length>0&&function(e){const t=e.filter(e=>function(e){if(!e)return!0;try{const t=e.match(/UrlTarget\(([^)]+)\)/);if(!t)return!1;const n=function(e){try{const t=e.match(/^"([^"]*)",\s*"([^"]*)",\s*(true|false)$/);return t?{value:t[1],op:t[2],includeQueryParam:"true"===t[3]}:null}catch{return null}}(t[1]);return!!n&&function(e,t,n){const r=window.location.search||"",o=window.location.href||"",i=(s=function(e){const t=e.startsWith("/")?e:"/"+e,n=t.split("/");if(n.length<2)return t;const r=n[1];let o=!1;return r.length>0&&r.length<=7&&(2===r.length||r.length>2&&"-"===r[2])&&(o=!0),o?"/"+n.slice(2).join("/"):t}(window.location.pathname),["STORY_IL","MAYVEN_GLOBAL","JDSPORT_IL"].includes(window.loomi_ctx.storeAlias)?s.toLowerCase():s);var s;const{hostPath:c,rawQuery:a}=function(e){const t=Po(e),n=t.indexOf("?");return-1!==n?{hostPath:t.substring(0,n),rawQuery:t.substring(n+1)}:{hostPath:t,rawQuery:""}}(e),u=c.toLowerCase();let l=Po(o.split("?")[0]).toLowerCase(),d="",m=u;if(d=(new URL(o).host+i).toLowerCase(),n){const e=r?Ao(r.substring(1)):"";if(e&&(l+="?"+e,d+="?"+e),a){const e=Ao(a);e&&(m+="?"+e)}}return function(e,t,n,r){switch(r){case"contains":return e.includes(n)||t.includes(n);case"matches":try{const r=new RegExp(n);return r.test(e)||r.test(t)}catch{return!1}case"==":return e===n||t===n;case"!=":return e===t?e!==n:t!==n;default:return!1}}(l,d,m,t)}(n.value,n.op,n.includeQueryParam)}catch(e){return console.error("vsly: Failed to evaluate targeting formula",e),!1}}(e.targeting.formula));if(0===t.length)return;const n=Do(t);let r=Ro(n,t);if(r=Uo(r,t),!r)return;if(!r.experiment)return;$o(n,r);const o=r.experiment,i=ne({experienceId:o.name,variantId:o.variant,version:o.version,gaExperienceName:o.gaName,gaVariantName:o.gaVariant});Oo(i,Yt(),_(()=>!!o.ga)||!1);const s=_(()=>o.code.find(e=>"pageRedirect"===e.kind).value);s&&ee(i,s.destUrl,s.redirectAfter||1,s.retainQueryParams,s.stickinessMode)}(n)}catch(e){console.error("vsly ETT",e)}}(),window.vsly_redirecting}const Yo=()=>window.loomi_ctx.blockingConcent;(function(){try{let t;function e(e){if(t)return e;(function(){const e=jo();e.length>0&&Promise.allSettled(e.map(To)).then(t=>{Lo(e.filter((e,n)=>{const r=t[n];return("fulfilled"!==r.status||!r.value)&&(e.retries++,(e=>!(Date.now()-e.timestamp>18e5||e.retries>3))(e))}))}).catch(e=>{console.error("vsly: Failed to process analytics queue",e)})})(),(()=>{const e=()=>{const e=se();return!!e&&!Bo.includes(e)};return new Promise((t,n)=>{const r=window.loomi_ctx.consent||={};r.init=Vo(),(se()?Go():v(se,50,200)).then(()=>{e()&&(Jo(),t())}),(_(()=>Ho().analyticsProcessingAllowed)?Go():v(()=>_(()=>Ho().analyticsProcessingAllowed),50,200)).then(()=>{const r=Ho().analyticsProcessingAllowed()||e();Jo(r),r?t():n()}),r.ccListener||(document.addEventListener("visitorConsentCollected",r=>{const o=r.detail.analyticsAllowed||e();Jo(o),o?t():n()}),r.ccListener=!0)})})().catch(),function(){try{zo().as=performance.now()}catch(e){}}();const s=yo(o,i);return s.then(Ko),s.then(e=>{let{configuration:t,tracking:r}=e;return(e=>{p("vsly-a",`${(e=>e==n.STAGE?"https://sdk.loomi-stg.xyz/":"https://assets.visually.io/")(e)}v/visually-a.js?cb=${window.loomi_ctx.sdk_version}`,{defer:!0}).catch()}
116)(i),function(e){let{configuration:t,tracking:n}=e;try{return Promise.resolve(function(e,t){try{const{storeAlias:n,env:r}=window.loomi_ctx;return Promise.resolve(Wo(function(){return Promise.resolve(go(e,n,r,t)).then(function(e){let{jitsu:t,configuration:o}=e;if(!_(()=>o.flags["kill-switch"]))return Promise.resolve(Je()).then(function(){un(o.experiments),Fr(t,o),Kn(r,n,po),mt()})})},function(e){_(()=>e.message)!==Fn&&F("fail initialising sdk",e)}))}catch(e){return Promise.reject(e)}}(t,n)).then(function(){window.dispatchEvent(new Event("visually_loaded"))})}catch(e){return Promise.reject(e)}}({configuration:t,tracking:r})}).catch(r).finally(Ln)}const r=e=>console.error(e);if(window.fetch&&(window.vslyNativeFetch=window.fetch),window.vsly_init=!0,window.vslyIntegrationType="static",(()=>{if(_(()=>window.visually_io_editor))return!0;const e=_(()=>window.loomi_ctx.ttl);return!("number"!=typeof e||!Number.isFinite(e)||e<=0)&&e<Math.floor(Date.now()/1e3)})())return console.log("sdk blocked"),Promise.resolve();window.loomi_ctx.sdk_version="0.12.169";const{storeAlias:o,env:i}=window.loomi_ctx;if(!Yo()&&Qo())return Promise.resolve();const s=function(){if(Yo()){function e(e){return t?e:window.loomi_ctx.consent.allowed?void(Qo()&&(t=1)):(Ln(),void(t=1))}const n=Wo(function(){return Promise.resolve((console.log("consent api init"),new Promise((e,t)=>{const n=window.loomi_ctx.consent||={};n.init=qo(),(_(()=>Fo().analyticsProcessingAllowed)?Promise.resolve():v(()=>_(()=>Fo().analyticsProcessingAllowed),50,200)).then(()=>{const n=window.Shopify.customerPrivacy.analyticsProcessingAllowed();console.log("consent api",n),Mo(n),n?e():t()}),n.ccListener||(document.addEventListener("visitorConsentCollected",()=>{const n=window.Shopify.customerPrivacy.analyticsProcessingAllowed();console.log("visitorConsentCollected",n),Mo(n),n?e():t()}),n.ccListener=!0)}))).then(function(){})},function(){Ln(),t=1});return n&&n.then?n.then(e):e(n)}}();return Promise.resolve(s&&s.then?s.then(e):e(s))}catch(c){return Promise.reject(c)}})().then(()=>console.log("vsly sdk with embed init"))}();
117
118</script>
vendor: 1 bytes, line 118
118
119<script data-vsly="preact2" type="text/javascript" data-em-disable>
120    // Preact
121!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):n(e.preact={})}(this,function(e){var b,n,t,_,o,r,l,x={},C=[],u=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function w(e,n){for(var t in n)e[t]=n[t];return e}function g(e){var n=e.parentNode;n&&n.removeChild(e)}function i(e,n,t){var _,o=arguments,l={};for(_ in n)"key"!==_&&"ref"!==_&&(l[_]=n[_]);if(3<arguments.length)for(t=[t],_=3;_<arguments.length;_++)t.push(o[_]);if(null!=t&&(l.children=t),"function"==typeof e&&null!=e.defaultProps)for(_ in e.defaultProps)void 0===l[_]&&(l[_]=e.defaultProps[_]);return k(e,l,n&&n.key,n&&n.ref,null)}function k(e,n,t,_,o){var l={type:e,props:n,key:t,ref:_,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:o};return null==o&&(l.__v=l),b.vnode&&b.vnode(l),l}function S(e){return e.children}function P(e,n){this.props=e,this.context=n}function N(e,n){if(null==n)return e.__?N(e.__,e.__.__k.indexOf(e)+1):null;for(var t;n<e.__k.length;n++)if(null!=(t=e.__k[n])&&null!=t.__e)return t.__e;return"function"==typeof e.type?N(e):null}function c(e){var n,t;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,n=0;n<e.__k.length;n++)if(null!=(t=e.__k[n])&&null!=t.__e){e.__e=e.__c.base=t.__e;break}return c(e)}}function s(e){(!e.__d&&(e.__d=!0)&&t.push(e)&&!p.__r++||o!==b.debounceRendering)&&((o=b.debounceRendering)||_)(p)}function p(){for(var e;p.__r=t.length;)e=t.sort(function(e,n){return e.__v.__b-n.__v.__b}),t=[],e.some(function(e){var n,t,_,o,l,r,u;e.__d&&(r=(l=(n=e).__v).__e,(u=n.__P)&&(t=[],o=D(u,l,(_=w({},l)).__v=_,n.__n,void 0!==u.ownerSVGElement,null,t,null==r?N(l):r),d(t,l),o!=r&&c(l)))})}function E(e,n,t,_,o,l,r,u,i,c){var s,p,f,a,d,h,y,v=_&&_.__k||C,m=v.length;for(i==x&&(i=null!=r?r[0]:m?N(_,0):null),t.__k=[],s=0;s<n.length;s++)if(null!=(a=t.__k[s]=null==(a=n[s])||"boolean"==typeof a?null:"string"==typeof a||"number"==typeof a?k(null,a,null,null,a):Array.isArray(a)?k(S,{children:a},null,null,null):null!=a.__e||null!=a.__c?k(a.type,a.props,a.key,null,a.__v):a)){if(a.__=t,a.__b=t.__b+1,null===(f=v[s])||f&&a.key==f.key&&a.type===f.type)v[s]=void 0;else for(p=0;p<m;p++){if((f=v[p])&&a.key==f.key&&a.type===f.type){v[p]=void 0;break}f=null}d=D(e,a,f=f||x,o,l,r,u,i,c),(p=a.ref)&&f.ref!=p&&(y=y||[],f.ref&&y.push(f.ref,null,a),y.push(p,a.__c||d,a)),null!=d?(null==h&&(h=d),i=U(e,a,f,v,r,d,i),"option"==t.type?e.value="":"function"==typeof t.type&&(t.__d=i)):i&&f.__e==i&&i.parentNode!=e&&(i=N(f))}if(t.__e=h,null!=r&&"function"!=typeof t.type)for(s=r.length;s--;)null!=r[s]&&g(r[s]);for(s=m;s--;)null!=v[s]&&W(v[s],v[s]);if(y)for(s=0;s<y.length;s++)T(y[s],y[++s],y[++s])}function U(e,n,t,_,o,l,r){var u,i,c;if(void 0!==n.__d)u=n.__d,n.__d=void 0;else if(o==t||l!=r||null==l.parentNode)e:if(null==r||r.parentNode!==e)e.appendChild(l),u=null;else{for(i=r,c=0;(i=i.nextSibling)&&c<_.length;c+=2)if(i==l)break e;e.insertBefore(l,r),u=r}return void 0!==u?u:l.nextSibling}function f(e,n,t){"-"===n[0]?e.setProperty(n,t):e[n]="number"==typeof t&&!1===u.test(n)?t+"px":null==t?"":t}function A(e,n,t,_,o){var l,r,u,i,c;if(o?"className"===n&&(n="class"):"class"===n&&(n="className"),"style"===n)if(l=e.style,"string"==typeof t)l.cssText=t;else{if("string"==typeof _&&(l.cssText="",_=null),_)for(i in _)t&&i in t||f(l,i,"");if(t)for(c in t)_&&t[c]===_[c]||f(l,c,t[c])}else"o"===n[0]&&"n"===n[1]?(r=n!==(n=n.replace(/Capture$/,"")),n=((u=n.toLowerCase())in e?u:n).slice(2),t?(_||e.addEventListener(n,a,r),(e.l||(e.l={}))[n]=t):e.removeEventListener(n,a,r)):"list"!==n&&"tagName"!==n&&"form"!==n&&"type"!==n&&"size"!==n&&!o&&n in e?e[n]=null==t?"":t:"function"!=typeof t&&"dangerouslySetInnerHTML"!==n&&(n!==(n=n.replace(/^xlink:?/,""))?null==t||!1===t?e.removeAttributeNS("http://www.w3.org/1999/xlink",n.toLowerCase()):e.setAttributeNS("http://www.w3.org/1999/xlink",n.toLowerCase(),t):null==t||!1===t&&!/^ar/.test(n)?e.removeAttribute(n):e.setAttribute(n,t))}function a(e){this.l[e.type](b.event?b.event(e):e)}function D(e,n,t,_,o,l,r,u,i){var c,s,p,f,a,d,h,y,v,m,g,k=n.type;if(void 0!==n.constructor)return null;(c=b.__b)&&c(n);try{e:if("function"==typeof k){if(y=n.props,v=(c=k.contextType)&&_[c.__c],m=c?v?v.props.value:c.__:_,t.__c?h=(s=n.__c=t.__c).__=s.__E:("prototype"in k&&k.prototype.render?n.__c=s=new k(y,m):(n.__c=s=new P(y,m),s.constructor=k,s.render=L),v&&v.sub(s),s.props=y,s.state||(s.state={}),s.context=m,s.__n=_,p=s.__d=!0,s.__h=[]),null==s.__s&&(s.__s=s.state),null!=k.getDerivedStateFromProps&&(s.__s==s.state&&(s.__s=w({},s.__s)),w(s.__s,k.getDerivedStateFromProps(y,s.__s))),f=s.props,a=s.state,p)null==k.getDerivedStateFromProps&&null!=s.componentWillMount&&s.componentWillMount(),null!=s.componentDidMount&&s.__h.push(s.componentDidMount);else{if(null==k.getDerivedStateFromProps&&y!==f&&null!=s.componentWillReceiveProps&&s.componentWillReceiveProps(y,m),!s.__e&&null!=s.shouldComponentUpdate&&!1===s.shouldComponentUpdate(y,s.__s,m)||n.__v===t.__v){s.props=y,s.state=s.__s,n.__v!==t.__v&&(s.__d=!1),(s.__v=n).__e=t.__e,n.__k=t.__k,s.__h.length&&r.push(s),function e(n,t,_){for(var o,l=0;l<n.__k.length;l++)(o=n.__k[l])&&(o.__=n,o.__e&&("function"==typeof o.type&&1<o.__k.length&&e(o,t,_),t=U(_,o,o,n.__k,null,o.__e,t),"function"==typeof n.type&&(n.__d=t)))}(n,u,e);break e}null!=s.componentWillUpdate&&s.componentWillUpdate(y,s.__s,m),null!=s.componentDidUpdate&&s.__h.push(function(){s.componentDidUpdate(f,a,d)})}s.context=m,s.props=y,s.state=s.__s,(c=b.__r)&&c(n),s.__d=!1,s.__v=n,s.__P=e,c=s.render(s.props,s.state,s.context),s.state=s.__s,null!=s.getChildContext&&(_=w(w({},_),s.getChildContext())),p||null==s.getSnapshotBeforeUpdate||(d=s.getSnapshotBeforeUpdate(f,a)),g=null!=c&&c.type==S&&null==c.key?c.props.children:c,E(e,Array.isArray(g)?g:[g],n,t,_,o,l,r,u,i),s.base=n.__e,s.__h.length&&r.push(s),h&&(s.__E=s.__=null),s.__e=!1}else null==l&&n.__v===t.__v?(n.__k=t.__k,n.__e=t.__e):n.__e=function(e,n,t,_,o,l,r,u){var i,c,s,p,f,a=t.props,d=n.props;if(o="svg"===n.type||o,null!=l)for(i=0;i<l.length;i++)if(null!=(c=l[i])&&((null===n.type?3===c.nodeType:c.localName===n.type)||e==c)){e=c,l[i]=null;break}
121if(null==e){if(null===n.type)return document.createTextNode(d);e=o?document.createElementNS("http://www.w3.org/2000/svg",n.type):document.createElement(n.type,d.is&&{is:d.is}),l=null,u=!1}if(null===n.type)a!==d&&e.data!=d&&(e.data=d);else{if(null!=l&&(l=C.slice.call(e.childNodes)),s=(a=t.props||x).dangerouslySetInnerHTML,p=d.dangerouslySetInnerHTML,!u){if(null!=l)for(a={},f=0;f<e.attributes.length;f++)a[e.attributes[f].name]=e.attributes[f].value;(p||s)&&(p&&s&&p.__html==s.__html||(e.innerHTML=p&&p.__html||""))}(function(e,n,t,_,o){var l;for(l in t)"children"===l||"key"===l||l in n||A(e,l,null,t[l],_);for(l in n)o&&"function"!=typeof n[l]||"children"===l||"key"===l||"value"===l||"checked"===l||t[l]===n[l]||A(e,l,n[l],t[l],_)})(e,d,a,o,u),p?n.__k=[]:(i=n.props.children,E(e,Array.isArray(i)?i:[i],n,t,_,"foreignObject"!==n.type&&o,l,r,x,u)),u||("value"in d&&void 0!==(i=d.value)&&i!==e.value&&A(e,"value",i,a.value,!1),"checked"in d&&void 0!==(i=d.checked)&&i!==e.checked&&A(e,"checked",i,a.checked,!1))}return e}(t.__e,n,t,_,o,l,r,i);(c=b.diffed)&&c(n)}catch(e){n.__v=null,b.__e(e,n,t)}return n.__e}function d(e,n){b.__c&&b.__c(n,e),e.some(function(n){try{e=n.__h,n.__h=[],e.some(function(e){e.call(n)})}catch(e){b.__e(e,n.__v)}})}function T(e,n,t){try{"function"==typeof e?e(n):e.current=n}catch(e){b.__e(e,t)}}function W(e,n,t){var _,o,l;if(b.unmount&&b.unmount(e),(_=e.ref)&&(_.current&&_.current!==e.__e||T(_,null,n)),t||"function"==typeof e.type||(t=null!=(o=e.__e)),e.__e=e.__d=void 0,null!=(_=e.__c)){if(_.componentWillUnmount)try{_.componentWillUnmount()}catch(e){b.__e(e,n)}
121_.base=_.__P=null}if(_=e.__k)for(l=0;l<_.length;l++)_[l]&&W(_[l],n,t);null!=o&&g(o)}function L(e,n,t){return this.constructor(e,t)}function h(e,n,t){var _,o,l;b.__&&b.__(e,n),o=(_=t===r)?null:t&&t.__k||n.__k,e=i(S,null,[e]),l=[],D(n,(!_&&t||n).__k=e,o||x,x,void 0!==n.ownerSVGElement,t&&!_?[t]:!o&&n.childNodes.length?C.slice.call(n.childNodes):null,l,t||x,_),d(l,e)}b={__e:function(e,n){for(var t,_;n=n.__;)if((t=n.__c)&&!t.__)try{if(t.constructor&&null!=t.constructor.getDerivedStateFromError&&(_=!0,t.setState(t.constructor.getDerivedStateFromError(e))),null!=t.componentDidCatch&&(_=!0,t.componentDidCatch(e)),_)return s(t.__E=t)}catch(n){e=n}throw e}},n=function(e){return null!=e&&void 0===e.constructor},P.prototype.setState=function(e,n){var t=this.__s!==this.state?this.__s:this.__s=w({},this.state);"function"==typeof e&&(e=e(t,this.props)),e&&w(t,e),null!=e&&this.__v&&(n&&this.__h.push(n),s(this))},P.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),s(this))},P.prototype.render=S,t=[],_="function"==typeof Promise?Promise.prototype.then.bind(Prom
121ise.resolve()):setTimeout,p.__r=0,r=x,l=0,e.render=h,e.hydrate=function(e,n){h(e,n,r)},e.createElement=i,e.h=i,e.Fragment=S,e.createRef=function(){return{current:null}},e.isValidElement=n,e.Component=P,e.cloneElement=function(e,n){var t,_;for(_ in n=w(w({},e.props),n),2<arguments.length&&(n.children=C.slice.call(arguments,2)),t={},n)"key"!==_&&"ref"!==_&&(t[_]=n[_]);return k(e.type,t,n.key||e.key,n.ref||e.ref,null)},e.createContext=function(e){var n={},o={__c:"__cC"+l++,__:e,Consumer:function(e,n){return e.children(n)},Provider:function(e){var t,_=this;return this.getChildContext||(t=[],this.getChildContext=function(){return n[o.__c]=_,n},this.shouldComponentUpdate=function(n){_.props.value!==n.value&&t.some(function(e){e.context=n.value,s(e)})},this.sub=function(e){t.push(e);var n=e.componentWillUnmount;e.componentWillUnmount=function(){t.splice(t.indexOf(e),1),n&&n.call(e)}}),e.children}};return(o.Consumer.contextType=o).Provider.__=o},e.toChildArray=function e(n){return null==n||"boolean"==typeof n?[]:Array.isArray(n)?C.concat.apply([],n.map(e)):[n]},e.__u=W,e.options=b});
122// Preact Hooks
123!function(_,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("preact")):n(_.preactHooks={},_.preact)}(this,function(_,o){var e,u,t,i=0,r=[],c=o.options.__r,f=o.options.diffed,n=o.options.__c,s=o.options.unmount;function a(_,n){o.options.__h&&o.options.__h(u,_,i||n),i=0;var t=u.__H||(u.__H={__:[],__h:[]});return _>=t.__.length&&t.__.push({}),t.__[_]}function p(_){return i=1,h(b,_)}function h(_,n,t){var o=a(e++,2);return o.t=_,o.__c||(o.__c=u,o.__=[t?t(n):b(void 0,n),function(_){var n=o.t(o.__[0],_);o.__[0]!==n&&(o.__=[n,o.__[1]],o.__c.setState({}))}]),o.__}function m(_,n){var t=a(e++,4);!o.options.__s&&E(t.__H,n)&&(t.__=_,t.__H=n,u.__h.push(t))}function v(_,n){var t=a(e++,7);return E(t.__H,n)?(t.__H=n,t.__h=_,t.__=_()):t.__}function H(){r.some(function(n){if(n.__P)try{n.__H.__h.forEach(l),n.__H.__h.forEach(y),n.__H.__h=[]}catch(_){return n.__H.__h=[],o.options.__e(_,n.__v),!0}}),r=[]}o.options.__r=function(_){c&&c(_),e=0;var n=(u=_.__c).__H;n&&(n.__h.forEach(l),n.__h.forEach(y),n.__h=[])},o.options.diffed=function(_){f&&f(_);var n=_.__c;n&&n.__H&&n.__H.__h.length&&(1!==r.push(n)&&t===o.options.requestAnimationFrame||((t=o.options.requestAnimationFrame)||function(_){function n(){clearTimeout(o),d&&cancelAnimationFrame(t),setTimeout(_)}var t,o=setTimeout(n,100);d&&(t=requestAnimationFrame(n))})(H))},o.options.__c=function(_,t){t.some(function(n){try{n.__h.forEach(l),n.__h=n.__h.filter(function(_){return!_.__||y(_)})}catch(_){t.some(function(_){_.__h&&(_.__h=[])}),t=[],o.options.__e(_,n.__v)}}),n&&n(_,t)},o.options.unmount=function(_){s&&s(_);var n=_.__c;if(n&&n.__H)try{n.__H.__.forEach(l)}catch(_){o.options.__e(_,n.__v)}};var d="function"==typeof requestAnimationFrame;function l(_){"function"==typeof _.u&&_.u()}function y(_){_.u=_.__()}function E(t,_){return!t||_.some(function(_,n){return _!==t[n]})}function b(_,n){return"function"==typeof n?n(_):n}_.useState=p,_.useReducer=h,_.useEffect=function(_,n){var t=a(e++,3);!o.options.__s&&E(t.__H,n)&&(t.__=_,t.__H=n,u.__H.__h.push(t))},_.useLayoutEffect=m,_.useRef=function(_){return i=5,v(function(){return{current:_}},[])},_.useImperativeHandle=function(_,n,t){i=6,m(function(){"function"==typeof _?_(n()):_&&(_.current=n())},null==t?t:t.concat(_))},_.useMemo=v,_.useCallback=function(_,n){return i=8,v(function(){return _},n)},_.useContext=function(_){var n=u.context[_.__c],t=a(e++,9);return t.__c=_,n?(null==t.__&&(t.__=!0,n.sub(u)),n.props.value):_.__},_.useDebugValue=function(_,n){o.options.useDebugValue&&o.options.useDebugValue(n?n(_):_)},_.useErrorBoundary=function(_){var n=a(e++,10),t=p();return n.__=_,u.componentDidCatch||(u.componentDidCatch=function(_){n.__&&n.__(_),t[1](_)}),[t[0],function(){t[1](void 0)}]}});
124// Preact Compat
125!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("preact/hooks"),require("preact")):t(e.compat={},e.preactHooks,e.preact)}(this,function(t,n,u){function r(e,t){for(var n in t)e[n]=t[n];return e}function i(e,t){for(var n in e)if("__source"!==n&&!(n in t))return!0;for(var o in t)if("__source"!==o&&e[o]!==t[o])return!0;return!1}var o,e,a,l=(o=u.Component,a=o,(e=c).prototype=Object.create(a.prototype),(e.prototype.constructor=e).__proto__=a,c.prototype.shouldComponentUpdate=function(e,t){return i(this.props,e)||i(this.state,t)},c);function c(e){var t;return(t=o.call(this,e)||this).isPureReactComponent=!0,t}function p(t,o){function n(e){var t=this.props.ref,n=t==e.ref;return!n&&t&&(t.call?t(null):t.current=null),o?!o(this.props,e)||!n:i(this.props,e)}function e(e){return this.shouldComponentUpdate=n,u.createElement(t,e)}return e.prototype.isReactComponent=!0,e.displayName="Memo("+(t.displayName||t.name)+")",e.t=!0,e}var f=u.options.__b;u.options.__b=function(e){e.type&&e.type.t&&e.ref&&(e.props.ref=e.ref,e.ref=null),f&&f(e)};var s="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function d(o){function e(e,t){var n=r({},e);return delete n.ref,o(n,(t=e.ref||t)&&("object"!=typeof t||"current"in t)?t:null)}return e.$$typeof=s,(e.render=e).prototype.isReactComponent=e.t=!0,e.displayName="ForwardRef("+(o.displayName||o.name)+")",e}function _(e,o){return e?u.toChildArray(e).reduce(function(e,t,n){return e.concat(o(t,n))},[]):null}var h={map:_,forEach:_,count:function(e){return e?u.toChildArray(e).length:0},only:function(e){if(1!==(e=u.toChildArray(e)).length)throw new Error("Children.only() expects only one child.");return e[0]},toArray:u.toChildArray},m=u.options.__e;function v(e){return e&&((e=r({},e)).__c=null,e.__k=e.__k&&e.__k.map(v)),e}function y(){this.__u=0,this.u=null,this.__b=null}function C(e){var t=e.__.__c;return t&&t.o&&t.o(e)}function b(t){var n,o,r;function e(e){if(n||(n=t()).then(function(e){o=e.default||e},function(e){r=e}),r)throw r;if(!o)throw n;return u.createElement(o,e)}return e.displayName="Lazy",e.t=!0,e}function k(){this.i=null,this.l=null}u.options.__e=function(e,t,n){if(e.then)for(var o,r=t;r=r.__;)if((o=r.__c)&&o.__c)return o.__c(e,t.__c);m(e,t,n)},(y.prototype=new u.Component).__c=function(e,t){var n=this;null==n.u&&(n.u=[]),n.u.push(t);function o(){i||(i=!0,r?r(u):u())}var r=C(n.__v),i=!1;t.__c=t.componentWillUnmount,t.componentWillUnmount=function(){o(),t.__c&&t.__c()};var u=function(){var e;if(!--n.__u)for(n.__v.__k[0]=n.state.o,n.setState({o:n.__b=null});e=n.u.pop();)e.forceUpdate()};n.__u++||n.setState({o:n.__b=n.__v.__k[0]}),e.then(o,o)},y.prototype.render=function(e,t){return this.__b&&(this.__v.__k&&
125(this.__v.__k[0]=v(this.__b)),this.__b=null),[u.createElement(u.Fragment,null,t.o?null:e.children),t.o&&e.fallback]};function g(e,t,n){if(++n[1]===n[0]&&e.l.delete(t),e.props.revealOrder&&("t"!==e.props.revealOrder[0]||!e.l.size))for(n=e.i;n;){for(;3<n.length;)n.pop()();if(n[1]<n[0])break;e.i=n=n[2]}}(k.prototype=new u.Component).o=function(n){var o=this,r=C(o.__v),i=o.l.get(n);return i[0]++,function(e){function t(){o.props.revealOrder?(i.push(e),g(o,n,i)):e()}r?r(t):t()}},k.prototype.render=function(e){this.i=null,this.l=new Map;var t=u.toChildArray(e.children);e.revealOrder&&"b"===e.revealOrder[0]&&t.reverse();for(var n=t.length;n--;)this.l.set(t[n],this.i=[1,0,this.i]);return e.children},k.prototype.componentDidUpdate=k.prototype.componentDidMount=function(){var n=this;n.l.forEach(function(e,t){g(n,t,e)})};var E,N=((E=S.prototype).getChildContext=function(){return this.props.context},E.render=function(e){return e.children},S);function S(){}function x(e){var t=this,n=e.container,o=u.createElement(N,{context:t.context},e.vnode);return t.s&&t.s!==n&&(t.h.parentNode&&t.s.removeChild(t.h),u.__u(t.v),t.p=!1),e.vnode?t.p?(n.__k=t.__k,u.render(o,n),t.__k=n.__k):(t.h=document.createTextNode(""),u.hydrate("",n),n.appendChild(t.h),t.p=!0,t.s=n,u.render(o,n,t.h),t.__k=t.h.__k):t.p&&(t.h.parentNode&&t.s.removeChild(t.h),u.__u(t.v)),t.v=o,t.componentWillUnmount=function(){t.h.parentNode&&t.s.removeChild(t.h),u.__u(t.v)},null}function w(e,t){return u.createElement(x,{vnode:e,container:t})}var A=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;u.Component.prototype.isReactComponent={};var R="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;function U(e,t,n){if(null==t.__k)for(;t.firstChild;)t.removeChild(t.firstChild);return u.render(e,t),"function"==typeof n&&n(),e?e.__c:null}function P(e,t,n){return u.hydrate(e,t),"function"==typeof n&&n(),e?e.__c:null}var F=u.options.event;function O(e,t){e["UNSAFE_"+t]&&!e[t]&&Object.defineProperty(e,t,{configurable:!1,get:function(){return this["UNSAFE_"+t]}
125,set:function(e){this["UNSAFE_"+t]=e}})}u.options.event=function(e){F&&(e=F(e));var t=!(e.persist=function(){}),n=!1,o=e.stopPropagation;e.stopPropagation=function(){o.call(e),t=!0};var r=e.preventDefault;return e.preventDefault=function(){r.call(e),n=!0},e.isPropagationStopped=function(){return t},e.isDefaultPrevented=function(){return n},e.nativeEvent=e};var L={configurable:!0,get:function(){return this.class}},M=u.options.vnode;function D(e){return u.createElement.bind(null,e)}function V(e){return!!e&&e.$$typeof===R}function W(e){return V(e)?u.cloneElement.apply(null,arguments):e}function $(e){return!!e.__k&&(u.render(null,e),!0)}function j(e){return e&&(e.base||1===e.nodeType&&e)||null}u.options.vnode=function(i){i.$$typeof=R;var e,t,n,o=i.type,r=i.props;if(o){if(r.class!=r.className&&(L.enumerable="className"in r,null!=r.className&&(r.class=r.className),Object.defineProperty(r,"className",L)),"function"!=typeof o){for(n in r.defaultValue&&void 0!==r.value&&(r.value||0===r.value||(r.value=r.defaultValue),delete r.defaultValue),Array.isArray(r.value)&&r.multiple&&"select"===o&&(u.toChildArray(r.children).forEach(function(e){-1!=r.value.indexOf(e.props.value)&&(e.props.selected=!0)}),delete r.value),r)if(e=A.test(n))break;if(e)for(n in t=i.props={},r)t[A.test(n)?n.replace(/[A-Z0-9]/,"-$&").toLowerCase():n]=r[n]}!function(){var e=i.type,t=i.props;if(t&&"string"==typeof e){var n,o={};for(var r in t)/^on(Ani|Tra|Tou)/.test(r)&&(t[r.toLowerCase()]=t[r],delete t[r]),o[r.toLowerCase()]=r;o.ondoubleclick&&(t.ondblclick=t[o.ondoubleclick],delete t[o.ondoubleclick]),o.onbeforeinput&&(t.onbeforeinput=t[o.onbeforeinput],delete t[o.onbeforeinput]),o.onchange&&("textarea"===e||"input"===e.toLowerCase()&&!/^fil|che|ra/i.test(t.type))&&(t[n=o.oninput||"oninput"]||(t[n]=t[o.onchange],delete t[o.onchange]))}}(),"function"==typeof o&&!o.m&&o.prototype&&(O(o.prototype,"componentWillMount"),O(o.prototype,"componentWillReceiveProps"),O(o.prototype,"componentWillUpdate"),o.m=!0)}M&&M(i)};function z(e,t){return e(t)}var H=u.Fragment,T={useState:n.useState,useReducer:n.useReducer,useEffect:n.useEffect,useLayoutEffect:n.useLayoutEffect,useRef:n.useRef,useImperativeHandle:n.useImperativeHandle,useMemo:n.useMemo,useCallback:n.useCallback,useContext:n.useContext,useDebugValue:n.useDebugValue,version:"16.8.0",Children:h,render:U,hydrate:P,unmountComponentAtNode:$,createPortal:w,createElement:u.createElement,createContext:u.createContext,createFactory:D,cloneElement:W,createRef:u.createRef,Fragment:u.Fragment,isValidElement:V,findDOMNode:j,Component:u.Component,PureComponent:l,memo:p,forwardRef:d,unstable_batchedUpdates:z,StrictMode:H,Suspense:y,SuspenseList:k,lazy:b};Object.keys(n).forEach(function(e){t[e]=n[e]}),t.createElement=u.createElement,t.createContext=u.createContext,t.createRef=u.createRef,t.Fragment=u.Fragment,t.Component=u.Component,t.version="16.8.0",t.Children=h,t.render=U,t.hydrate=P,t.unmountComponentAtNode=$,t.createPortal=w,t.createFactory=D,t.cloneElement=W,t.isValidElement=V,t.findDOMNode=j,t.PureComponent=l,t.memo=p,t.forwardRef=d,t.unstable_batchedUpdates=z,t.StrictMode=H,t.Suspense=y,t.SuspenseList=k,t.lazy=b,t.default=T});
126// Goober
127!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):t((e||self).goober={})}(this,function(e){let t={data:""},r=e=>"object"==typeof window?((e?e.querySelector("#_goober"):window._goober)||Object.assign((e||document.head).appendChild(document.createElement("style")),{innerHTML:" ",id:"_goober"})).firstChild:e||t,l=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,n=/\/\*[^]*?\*\/|  +/g,o=/\n+/g,a=(e,t)=>{let r="",l="",n="";for(let o in e){let s=e[o];"@"==o[0]?"i"==o[1]?r=o+" "+s+";":l+="f"==o[1]?a(s,o):o+"{"+a(s,"k"==o[1]?"":t)+"}":"object"==typeof s?l+=a(s,t?t.replace(/([^,])+/g,e=>o.replace(/(^:.*)|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+" "+t:t)):o):null!=s&&(o=/^--/.test(o)?o:o.replace(/[A-Z]/g,"-$&").toLowerCase(),n+=a.p?a.p(o,s):o+":"+s+";")}return r+(t&&n?t+"{"+n+"}":n)+l},s={},i=e=>{if("object"==typeof e){let t="";for(let r in e)t+=r+i(e[r]);return t}return e},c=(e,t,r,c,f)=>{let p=i(e),u=s[p]||(s[p]=(e=>{let t=0,r=11;for(;t<e.length;)r=101*r+e.charCodeAt(t++)>>>0;return"go"+r})(p));if(!s[u]){let t=p!==e?e:(e=>{let t,r,a=[{}];for(;t=l.exec(e.replace(n,""));)t[4]?a.shift():t[3]?(r=t[3].replace(o," ").trim(),a.unshift(a[0][r]=a[0][r]||{})):a[0][t[1]]=t[2].replace(o," ").trim();return a[0]})(e);
127s[u]=a(f?{["@keyframes "+u]:t}:t,r?"":"."+u)}return((e,t,r)=>{-1==t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(s[u],t,c),u},f=(e,t,r)=>e.reduce((e,l,n)=>{let o=t[n];if(o&&o.call){let e=o(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;o=t?"."+t:e&&"object"==typeof e?e.props?"":a(e,""):!1===e?"":e}return e+l+(null==o?"":o)},"");function p(e){let t=this||{},l=e.call?e(t.p):e;return c(l.unshift?l.raw?f(l,[].slice.call(arguments,1),t.p):l.reduce((e,r)=>Object.assign(e,r&&r.call?r(t.p):r),{}):l,r(t.target),t.g,t.o,t.k)}let u,d,g,b=p.bind({g:1}),h=p.bind({k:1});e.css=p,e.extractCss=e=>{let t=r(e),l=t.data;return t.data="",l},e.glob=b,e.keyframes=h,e.setup=function(e,t,r,l){a.p=t,u=e,d=r,g=l},e.styled=function(e,t){let r=this||{};return function(){let l=arguments;function n(o,a){let s=Object.assign({},o),i=s.className||n.className;r.p=Object.assign({theme:d&&d()},s),r.o=/ *go\d+/.test(i),s.className=p.apply(r,l)+(i?" "+i:""),t&&(s.ref=a);let c=e;return e[0]&&(c=s.as||e,delete s.as),g&&c[0]&&g(s),u(c,s)}return t?t(n):n}}});
128
129</script>
129
130<!--LOOMI SDK-->
131
132
133    <!--
134  
135-->
136<meta http-equiv="Content-Security-Policy" content="
137  default-src 'self' https: data:;
138  script-src 'self' 'unsafe-inline' 'unsafe-eval' https: data: blob:;
139  script-src-elem 'self' 'unsafe-inline' https: blob:;
140  connect-src 'self' https: wss: ws: data: blob:;
141  img-src 'self' https: data: blob:;
142  style-src 'self' 'unsafe-inline' https:;
143  font-src 'self' https: data:;
144  frame-src 'self' https:;
145  worker-src 'self' blob: https:;
146  object-src 'none';
147  base-uri 'self';
148  form-action 'self' https:;
149  upgrade-insecure-requests;
150">
151  <!--
152  Permissions Policy - Documents browser feature restrictions
153
154  The 'unload' event is deprecated because it blocks Back/Forward Cache (bfcache).
155  Modern browsers enforce this by default. We explicitly document it here.
156  Note: This warning typically comes from Shopify's own scripts or third-party apps,
157  not your theme code. The browser handles it gracefully by ignoring the listener.
158-->
159<meta http-equiv="Permissions-Policy" content="unload=()">
160    <!-- snippets/theme__meta.liquid -->
161
162
163<meta charset="utf-8">
164<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5"><title>Espresso Machine and Coffee How-To Articles, News, and Resources | Seattle Coffee Gear</title>
165
166
167
168
169
170
171  <link href="https://www.seattlecoffeegear.com/pages/learn-articles" rel="canonical">
172
173
174
175  <link href="//www.seattlecoffeegear.com/cdn/shop/files/SCG-Logo-Icon-Red.png?crop=center&height=180&v=1766179016&width=180" rel="apple-touch-icon" sizes="180x180">
176  <link href="//www.seattlecoffeegear.com/cdn/shop/files/SCG-Logo-Icon-Red.png?crop=center&height=32&v=1766179016&width=32" rel="icon" type="image/png" sizes="32x32">
177
178<meta name="msapplication-TileColor" content="#ffffff">
179<meta name="theme-color" content="#282828">
180<meta name="description" content="See The Best Espresso Machine Reviews And Coffee News And The Latest from the coffee experts at Seattle Coffee Gear here!">
181
182<meta property="og:url" content="https://www.seattlecoffeegear.com/pages/learn-articles">
183<meta property="og:site_name" content="Seattle Coffee Gear">
184<meta property="og:type" content="article">
185<meta property="og:title" content="Espresso Machine and Coffee How-To Articles, News, and Resources">
186<meta property="og:description" content="See The Best Espresso Machine Reviews And Coffee News And The Latest from the coffee experts at Seattle Coffee Gear here!"><meta property="og:image" content="http://www.seattlecoffeegear.com/cdn/shop/files/ShopifySocial_Image.jpg?v=1771609577">
187  <meta property="og:image:secure_url" content="https://www.seattlecoffeegear.com/cdn/shop/files/ShopifySocial_Image.jpg?v=1771609577">
188  <meta property="og:image:width" content="2400">
189  <meta property="og:image:height" content="1256"><meta name="twitter:title" content="Espresso Machine and Coffee How-To Articles, News, and Resources">
190<meta name="twitter:site" content="seacoffeegear">
191<meta name="twitter:description" content="See The Best Espresso Machine Reviews And Coffee News And The Latest from the coffee experts at Seattle Coffee Gear here!">
192<meta name="twitter:card" content="summary_large_image">
193
194<meta name="google-site-verification" content="btQGHYqYHcIsiFKx1fnqowGQjkdmJPtArYl3xlcnhh4">
195<meta name="google-site-verification" content="X2_qWSIj1AyuLWbDQGMkbFl-ucnd0fBz3zY87o2ZxAM">
196<meta name="p:domain_verify" content="VjegNAxdBVr4AmoTxSZgskgBOLAtEZ9L">
197<meta name="facebook-domain-verification" content="8zqajx721zcxjkhjbbcha7x8qpr00y">
198<meta name="facebook-domain-verification" content="oor0zb0pifll2pvm8b6j0lzgraihzv">
199
200
201    <link
202      rel="preconnect"
203      href="https://cdn.shopify.com"
204      crossorigin><link
205        rel="preconnect"
206        href="https://fonts.shopifycdn.com"
207        crossorigin><!-- Pandectes -->
208<script id="pandectes-rules">�   /* PANDECTES-GDPR: DO NOT MODIFY AUTO GENERATED CODE OF THIS SCRIPT */�   �   window.PandectesSettings = {"store":{"id":83175735603,"plan":"enterprise","theme":"scg-shopify/main","primaryLocale":"en","adminMode":false,"headless":false,"storefrontRootDomain":"","checkoutRootDomain":"","storefrontAccessToken":""},"tsPublished":1715810986,"declaration":{"showPurpose":false,"showProvider":false,"declIntroText":"We use cookies to optimize website functionality, analyze the performance, and provide personalized experience to you. Some cookies are essential to make the website operate and function correctly. Those cookies cannot be disabled. In this window you can manage your preference of cookies.","showDateGenerated":true},"language":{"languageMode":"Single","fallbackLanguage":"en","languageDetection":"browser","languagesSupported":[]},"texts":{"managed":{"headerText":{"en":"We respect your privacy"},"consentText":{"en":"This website uses cookies to ensure you get the best experience."},"dismissButtonText":{"en":"Ok"},"linkText":{"en":"Learn more"},"imprintText":{"en":"Imprint"},"preferencesButtonText":{"en":"Preferences"},"allowButtonText":{"en":"Accept"},"denyButtonText":{"en":"Decline"},"leaveSiteButtonText":{"en":"Leave this site"},"cookiePolicyText":{"en":"Cookie policy"},"preferencesPopupTitleText":{"en":"Manage consent preferences"},"preferencesPopupIntroText":{"en":"We use cookies to optimize website functionality, analyze the performance, and provide personalized experience to you. Some cookies are essential to make the website operate and function correctly. Those cookies cannot be disabled. In this window you can manage your preference of cookies."},"preferencesPopupCloseButtonText":{"en":"Close"},"preferencesPopupAcceptAllButtonText":{"en":"Accept all"},"preferencesPopupRejectAllButtonText":{"en":"Reject all"},"preferencesPopupSaveButtonText":{"en":"Save preferences"},"accessSectionTitleText":{"en":"Data portability"},"accessSectionParagraphText":{"en":"You have the right to request access to your data at any time."},"rectificationSectionTitleText":{"en":"Data Rectification"},"rectificationSectionParagraphText":{"en":"You have the right to request your data to be updated whenever you think it is appropriate."},"erasureSectionTitleText":{"en":"Right to be forgotten"},"erasureSectionParagraphText":{"en":"You have the right to ask all your data to be erased. After that, you will no longer be able to access your account."},"declIntroText":{"en":"We use cookies to optimize website functionality, analyze the performance, and provide personalized experience to you. Some cookies are essential to make the website operate and function correctly. Those cookies cannot be disabled. In this window you can manage your preference of cookies."}}
208,"categories":{"strictlyNecessaryCookiesTitleText":{"en":"Strictly necessary cookies"},"functionalityCookiesTitleText":{"en":"Functional cookies"},"performanceCookiesTitleText":{"en":"Performance cookies"},"targetingCookiesTitleText":{"en":"Targeting cookies"},"unclassifiedCookiesTitleText":{"en":"Unclassified cookies"},"strictlyNecessaryCookiesDescriptionText":{"en":"These cookies are essential in order to enable you to move around the website and use its features, such as accessing secure areas of the website. The website cannot function properly without these cookies."},"functionalityCookiesDescriptionText":{"en":"These cookies enable the site to provide enhanced functionality and personalisation. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies then some or all of these services may not function properly."},"performanceCookiesDescriptionText":{"en":"These cookies enable us to monitor and improve the performance of our website. For example, they allow us to count visits, identify traffic sources and see which parts of the site are most popular."},"targetingCookiesDescriptionText":{"en":"These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites.    They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising."},"unclassifiedCookiesDescriptionText":{"en":"Unclassified cookies are cookies that we are in the process of classifying, together with the providers of individual cookies."}},"auto":{"declName":{"en":"Name"},"declPath":{"en":"Path"},"declType":{"en":"Type"},"declDomain":{"en":"Domain"},"declPurpose":{"en":"Purpose"},"declProvider":{"en":"Provider"},"declRetention":{"en":"Retention"},"declFirstParty":{"en":"First-party"},"declThirdParty":{"en":"Third-party"},"declSeconds":{"en":"seconds"},"declMinutes":{"en":"minutes"},"declHours":{"en":"hours"},"declDays":{"en":"days"},"declMonths":{"en":"months"},"declYears":{"en":"years"},"declSession":{"en":"Session"},"cookiesDetailsText":{"en":"Cookies details"},"preferencesPopupAlwaysAllowedText":{"en":"Always allowed"},"submitButton":{"en":"Submit"},"submittingButton":{"en":"Submitting..."},"cancelButton":{"en":"Cancel"},"guestsSupportInfoText":{"en":"Please login with your customer account to further proceed."},"guestsSupportEmailPlaceholder":{"en":"E-mail address"},"guestsSupportEmailValidationError":{"en":"Email is not valid"},"guestsSupportEmailSuccessTitle":{"en":"Thank you for your request"},"guestsSupportEmailFailureTitle":{"en":"A problem occurred"},"guestsSupportEmailSuccessMessage":{"en":"If you are registered as a customer of this store, you will soon receive an email with instructions on how to proceed."},"guestsSupportEmailFailureMessage":{"en":"Your request was not submitted. Please try again and if problem persists, contact store owner for assistance."},"confirmationSuccessTitle":{"en":"Your request is verified"},"confirmationFailureTitle":{"en":"A problem occurred"},"confirmationSuccessMessage":{"en":"We will soon get back to you as to your request."},"confirmationFailureMessage":{"en":"Your request was not verified. Please try again and if problem persists, contact store owner for assistance"},"consentSectionTitleText":{"en":"Your cookie consent"},"consentSectionNoConsentText":{"en":"You have not consented to the cookies policy of this website."},"consentSectionConsentedText":{"en":"You consented to the cookies policy of this website on"},"consentStatus":{"en":"Consent preference"},"consentDate":{"en":"Consent date"},"consentId":{"en":"Consent ID"},"consentSectionChangeConsentActionText":{"en":"Change consent preference"},"accessSectionGDPRRequestsActionText":{"en":"Data subject requests"},"accessSectionAccountInfoActionText":{"en":"Personal data"},"accessSectionOrdersRecordsActionText":{"en":"Orders"},"accessSectionDownloadReportActionText":{"en":"Request export"},"rectificationCommentPlaceholder":{"en":"Describe what you want to be updated"},"rectificationCommentValidationError":{"en":"Comment is required"},"rectificationSectionEditAccountActionText":{"en":"Request an update"}
208,"erasureSectionRequestDeletionActionText":{"en":"Request personal data deletion"}}},"library":{"previewMode":false,"fadeInTimeout":0,"defaultBlocked":0,"showLink":true,"showImprintLink":false,"enabled":true,"cookie":{"name":"_pandectes_gdpr","expiryDays":365,"secure":true,"domain":""},"dismissOnScroll":200,"dismissOnWindowClick":true,"dismissOnTimeout":false,"palette":{"popup":{"background":"#FFFFFF","backgroundForCalculations":{"a":1,"b":255,"g":255,"r":255},"text":"#000000"},"button":{"background":"#4E535A","backgroundForCalculations":{"a":1,"b":90,"g":83,"r":78},"text":"#FFFFFF","textForCalculation":{"a":1,"b":255,"g":255,"r":255},"border":"transparent"}},"content":{"href":"https://seattlecoffeegear.myshopify.com/policies/privacy-policy","imprintHref":"/","close":"&#10005;","target":"_blank","logo":""},"window":"<div role=\"dialog\" aria-live=\"polite\" aria-label=\"cookieconsent\" aria-describedby=\"cookieconsent:desc\" id=\"pandectes-banner\" class=\"cc-window-wrapper cc-bottom-center-wrapper\"><div class=\"pd-cookie-banner-window cc-window {{classes}}\"><!--googleoff: all-->{{children}}<!--googleon: all--></div></div>","compliance":{"custom":"<div class=\"cc-compliance cc-highlight\">{{preferences}}{{dismiss}}</div>"},"type":"custom","layouts":{"basic":"{{messagelink}}{{compliance}}{{close}}"},"position":"bottom-center","theme":"classic","revokable":false,"animateRevokable":false,"revokableReset":false,"revokableLogoUrl":"https://cdn.shopify.com/s/files/1/0831/7573/5603/t/4/assets/pandectes-reopen-logo.png?v=1712168356","revokablePlacement":"bottom-left","revokableMarginHorizontal":15,"revokableMarginVertical":15,"static":false,"autoAttach":true,"hasTransition":true,"blacklistPage":[""]},"geolocation":{"brOnly":false,"caOnly":false,"chOnly":false,"euOnly":false,"jpOnly":false,"thOnly":false,"zaOnly":false,"canadaOnly":false,"globalVisibility":true},"dsr":{"guestsSupport":true,"accessSectionDownloadReportAuto":false},"banner":{"resetTs":1711657414,"extraCss":"        .cc-banner-logo {max-width: 24em!important;}    @media(min-width: 768px) {.cc-window.cc-floating{max-width: 24em!important;width: 24em!important;}}    .cc-message, .pd-cookie-banner-window .cc-header, .cc-logo {text-align: center}    .cc-window-wrapper{z-index: 2147483647;}    .cc-window{z-index: 2147483647;font-size: 14px!important;font-family: inherit;}    .pd-cookie-banner-window .cc-header{font-size: 14px!important;font-family: inherit;}    .pd-cp-ui{font-family: inherit; background-color: #FFFFFF;color:#000000;}    button.pd-cp-btn, a.pd-cp-btn{background-color:#4E535A;color:#FFFFFF!important;}    input + .pd-cp-preferences-slider{background-color: rgba(0, 0, 0, 0.3)}    .pd-cp-scrolling-section::-webkit-scrollbar{background-color: rgba(0, 0, 0, 0.3)}    input:checked + .pd-cp-preferences-slider{background-color: rgba(0, 0, 0, 1)}    .pd-cp-scrolling-section::-webkit-scrollbar-thumb {background-color: rgba(0, 0, 0, 1)}    .pd-cp-ui-close{color:#000000;}    .pd-cp-preferences-slider:before{background-color: #FFFFFF}    .pd-cp-title:before {border-color: #000000!important}    .pd-cp-preferences-slider{background-color:#000000}    .pd-cp-toggle{color:#000000!important}    @media(max-width:699px) {.pd-cp-ui-close-top svg {fill: #000000}}    .pd-cp-toggle:hover,.pd-cp-toggle:visited,.pd-cp-toggle:active{color:#000000!important}    .pd-cookie-banner-window {box-shadow: 0 0 18px rgb(0 0 0 / 20%);}  ","customJavascript":null,"showPoweredBy":false,"revokableTrigger":false,"hybridStrict":false,"cookiesBlockedByDefault":"0","isActive":true,"implicitSavePreferences":false,"cookieIcon":false,"blockBots":false,"showCookiesDetails":true,"hasTransition":true,"blockingPage":false,"showOnlyLandingPage":false,"leaveSiteUrl":"https://www.google.com","linkRespectStoreLang":false},"cookies":{"0":[{"name":"keep_alive","domain":"seattlecoffeegear.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"en":"Used in connection with buyer localization."}},{"name":"secure_customer_sig","domain":"seattlecoffeegear.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":"Used in connection with customer login."}},{"name":"localization","domain":"seattlecoffeegear.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":"Shopify store localization"}},{"name":"cart_currency","domain":"seattlecoffeegear.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"2 ","expires":2,"unit":"declSession","purpose":{"en":"The cookie is necessary for the secure checkout and payment function on the website. This function is provided by shopify.com."}},{"name":"_cmp_a","domain":".seattlecoffeegear.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 day(s)","expires":1,"unit":"declDays","purpose":{"en":"Used for managing customer privacy settings."}},{"name":"_tracking_consent","domain":".seattlecoffeegear.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":"Tracking preferences."}},{"name":"shopify_pay_redirect","domain":"seattlecoffeegear.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 hour(s)","expires":1,"unit":"declHours","purpose":{"en":"The cookie is necessary for the secure checkout and payment function on the website. This function is provided by shopify.com."}}],"1":[],"2":[],"4":[{"name":"pixlee_analytics_cookie_legacy","domain":".seattlecoffeegear.myshopify.com","path":"/","provider":"Pixlee","firstParty":true,"retention":"1 month(s)","expires":1,"unit":"declMonths","purpose":{"en":""}}],"8":[]},"blocker":{"isActive":false,"googleConsentMode":{"id":"","analyticsId":"","adwordsId":"","isActive":false,"adStorageCategory":4,"analyticsStorageCategory":2,"personalizationStorageCategory":1,"functionalityStorageCategory":1,"customEvent":false,"securityStorageCategory":0,"redactData":false,"urlPassthrough":false,"dataLayerProperty":"dataLayer","waitForUpdate":0,"useNativeChannel":false},"facebookPixel":{"id":"","isActive":false,"ldu":false},"rakuten":{"isActive":false,"cmp":false,"ccpa":false},"klaviyoIsActive":false,"gpcIsActive":false,"defaultBlocked":0,"patterns":{"whiteList":[],"blackList":{"1":[],"2":[],"4":[],"8":[]},"iframesWhiteList":[],"iframesBlackList":{"1":[],"2":[],"4":[],"8":[]},"beaconsWhiteList":[],"beaconsBlackList":{"1":[],"2":[],"4":[],"8":[]}}}}�   �   !function(){"use strict";window.PandectesRules=window.PandectesRules||{},window.PandectesRules.manualBlacklist={1:[],2:[],4:[]},window.PandectesRules.blacklistedIFrames={1:[],2:[],4:[]},window.PandectesRules.blacklistedCss={1:[],2:[],4:[]},window.PandectesRules.blacklistedBeacons={1:[],2:[],4:[]};var e="javascript/blocked";function t(e){return new RegExp(e.replace(/[/\\.+?$()]/g,"\\$&").replace("*","(.*)"))}var n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"log";new URLSearchParams(window.location.search).get("log")&&console[t]("PandectesRules: ".concat(e))};function a(e){var t=document.createElement("script");t.async=!0,t.src=e,document.head.appendChild(t)}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};
208t%2?r(Object(n),!0).forEach((function(t){c(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,t||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function c(e,t,n){return(t=i(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,i,s=[],c=!0,l=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(s.push(a.value),s.length!==t);c=!0);}catch(e){l=!0,r=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw r}}return s}}(e,t)||d(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||d(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){if(e){if("string"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}var p=window.PandectesRulesSettings||window.PandectesSettings,g=!(void 0===window.dataLayer||!Array.isArray(window.dataLayer)||!window.dataLayer.some((function(e){return"pandectes_full_scan"===e.event}))),y=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"_pandectes_gdpr",n=("; "+document.cookie).split("; "+t+"=");if(n.length<2)e={};else{var a=n.pop().split(";");e=window.atob(a.shift())}var r=function(e){try{return JSON.parse(e)}catch(e){return!1}}(e);return!1!==r?r:e}(),h=p.banner.isActive,v=p.blocker,w=v.defaultBlocked,m=v.patterns,b=y&&null!==y.preferences&&void 0!==y.preferences?y.preferences:null,k=g?0:h?null===b?w:b:0,_={1:0==(1&k),2:0==(2&k),4:0==(4&k)},L=m.blackList,S=m.whiteList,C=m.iframesBlackList,P=m.iframesWhiteList,A=m.beaconsBlackList,O=m.beaconsWhiteList,j={blackList:[],whiteList:[],iframesBlackList:{1:[],2:[],4:[],8:[]},iframesWhiteList:[],beaconsBlackList:{1:[],2:[],4:[],8:[]},beaconsWhiteList:[]};[1,2,4].map((function(e){var n;_[e]||((n=j.blackList).push.apply(n,u(L[e].length?L[e].map(t):[])),j.iframesBlackList[e]=C[e].length?C[e].map(t):[],j.beaconsBlackList[e]=A[e].length?A[e].map(t):[])})),j.whiteList=S.length?S.map(t):[],j.iframesWhiteList=P.length?P.map(t):[],j.beaconsWhiteList=O.length?O.map(t):[];var E={scripts:[],iframes:{1:[],2:[],4:[]},beacons:{1:[],2:[],4:[]},css:{1:[],2:[],4:[]}},B=function(t,n){return t&&(!n||n!==e)&&(!j.blackList||j.blackList.some((function(e){return e.test(t)})))&&(!j.whiteList||j.whiteList.every((function(e){return!e.test(t)})))},I=function(e){var t=e.getAttribute("src");return j.blackList&&j.blackList.every((function(e){return!e.test(t)}))||j.whiteList&&j.whiteList.some((function(e){return e.test(t)}))},R=function(e,t){var n=j.iframesBlackList[t],a=j.iframesWhiteList;return e&&(!n||n.some((function(t){return t.test(e)})))&&(!a||a.every((function(t){return!t.test(e)})))},T=function(e,t){var n=j.beaconsBlackList[t],a=j.beaconsWhiteList;return e&&(!n||n.some((function(t){return t.test(e)})))&&(!a||a.every((function(t){return!t.test(e)})))},N=new MutationObserver((function(e){for(var t=0;t<e.length;t++)for(var n=e[t].addedNodes,a=0;a<n.length;a++){var r=n[a],o=r.dataset&&r.dataset.cookiecategory;if(1===r.nodeType&&"LINK"===r.tagName){var i=r.dataset&&r.dataset.href;if(i&&o)switch(o){case"functionality":case"C0001":E.css[1].push(i);break;case"performance":case"C0002":E.css[2].push(i);break;case"targeting":case"C0003":E.css[4].push(i)}}}})),x=new MutationObserver((function(t){for(var n=0;n<t.length;n++)for(var a=t[n].addedNodes,r=function(){var t=a[o],n=t.src||t.dataset&&t.dataset.src,r=t.dataset&&t.dataset.cookiecategory;if(1===t.nodeType&&"IFRAME"===t.tagName){if(n){var i=!1;R(n,1)||"functionality"===r||"C0001"===r?(i=!0,E.iframes[1].push(n)):R(n,2)||"performance"===r||"C0002"===r?(i=!0,E.iframes[2].push(n)):(R(n,4)||"targeting"===r||"C0003"===r)&&(i=!0,E.iframes[4].push(n)),i&&(t.removeAttribute("src"),t.setAttribute("data-src",n))}}else if(1===t.nodeType&&"IMG"===t.tagName){if(n){var s=!1;T(n,1)?(s=!0,E.beacons[1].push(n)):T(n,2)?(s=!0,E.beacons[2].push(n)):T(n,4)&&(s=!0,E.beacons[4].push(n)),s&&(t.removeAttribute("src"),t.setAttribute("data-src",n))}}else if(1===t.nodeType&&"LINK"===t.tagName){var c=t.dataset&&t.dataset.href;if(c&&r)switch(r){case"functionality":case"C0001":E.css[1].push(c);break;case"performance":case"C0002":E.css[2].push(c);break;case"targeting":case"C0003":E.css[4].push(c)}}
208else if(1===t.nodeType&&"SCRIPT"===t.tagName){var l=t.type,u=!1;if(B(n,l))u=!0;else if(n&&r)switch(r){case"functionality":case"C0001":u=!0,window.PandectesRules.manualBlacklist[1].push(n);break;case"performance":case"C0002":u=!0,window.PandectesRules.manualBlacklist[2].push(n);break;case"targeting":case"C0003":u=!0,window.PandectesRules.manualBlacklist[4].push(n)}if(u){E.scripts.push([t,l]),t.type=e;t.addEventListener("beforescriptexecute",(function n(a){t.getAttribute("type")===e&&a.preventDefault(),t.removeEventListener("beforescriptexecute",n)})),t.parentElement&&t.parentElement.removeChild(t)}}},o=0;o<a.length;o++)r()})),D=document.createElement,M={src:Object.getOwnPropertyDescriptor(HTMLScriptElement.prototype,"src"),type:Object.getOwnPropertyDescriptor(HTMLScriptElement.prototype,"type")};window.PandectesRules.unblockCss=function(e){var t=E.css[e]||[];t.length&&n("Unblocking CSS for ".concat(e)),t.forEach((function(e){var t=document.querySelector('link[data-href^="'.concat(e,'"]'));t.removeAttribute("data-href"),t.href=e})),E.css[e]=[]},window.PandectesRules.unblockIFrames=function(e){var t=E.iframes[e]||[];t.length&&n("Unblocking IFrames for ".concat(e)),j.iframesBlackList[e]=[],t.forEach((function(e){var t=document.querySelector('iframe[data-src^="'.concat(e,'"]'));t.removeAttribute("data-src"),t.src=e})),E.iframes[e]=[]},window.PandectesRules.unblockBeacons=function(e){var t=E.beacons[e]||[];t.length&&n("Unblocking Beacons for ".concat(e)),j.beaconsBlackList[e]=[],t.forEach((function(e){var t=document.querySelector('img[data-src^="'.concat(e,'"]'));t.removeAttribute("data-src"),t.src=e})),E.beacons[e]=[]},window.PandectesRules.unblockInlineScripts=function(e){var t=1===e?"functionality":2===e?"performance":"targeting";document.querySelectorAll('script[type="javascript/blocked"][data-cookiecategory="'.concat(t,'"]')).forEach((function(e){var t=e.textContent;e.parentNode.removeChild(e);var n=document.createElement("script");n.type="text/javascript",n.textContent=t,document.body.appendChild(n)}))},window.PandectesRules.unblock=function(a){a.length<1?(j.blackList=[],j.whiteList=[],j.iframesBlackList=[],j.iframesWhiteList=[]):(j.blackList&&(j.blackList=j.blackList.filter((function(e){return a.every((function(t){return"string"==typeof t?!e.test(t):t instanceof RegExp?e.toString()!==t.toString():void 0}))}))),j.whiteList&&(j.whiteList=[].concat(u(j.whiteList),u(a.map((function(e){if("string"==typeof e){var n=".*"+t(e)+".*";if(j.whiteList.every((function(e){return e.toString()!==n.toString()})))return new RegExp(n)}else if(e instanceof RegExp&&j.whiteList.every((function(t){return t.toString()!==e.toString()})))return e;return null})).filter(Boolean)))));for(var r=document.querySelectorAll('script[type="'.concat(e,'"]')),o=0;o<r.length;o++){var i=r[o];I(i)&&(E.scripts.push([i,"application/javascript"]),i.parentElement.removeChild(i))}var s=0;u(E.scripts).forEach((function(e,t){var n=l(e,2),a=n[0],r=n[1];if(I(a)){for(var o=document.createElement("script"),i=0;i<a.attributes.length;i++){var c=a.attributes[i];"src"!==c.name&&"type"!==c.name&&o.setAttribute(c.name,a.attributes[i].value)}o.setAttribute("src",a.src),o.setAttribute("type",r||"application/javascript"),document.head.appendChild(o),E.scripts.splice(t-s,1),s++}})),0==j.blackList.length&&0===j.iframesBlackList[1].length&&0===j.iframesBlackList[2].length&&0===j.iframesBlackList[4].length&&0===j.beaconsBlackList[1].length&&0===j.beaconsBlackList[2].length&&0===j.beaconsBlackList[4].length&&(n("Disconnecting observers"),x.disconnect(),N.disconnect())};var z,W,F=p.store.adminMode,U=p.banner.isActive,q=p.blocker,J=q.defaultBlocked;U&&(z=function(){!function(){var e=window.Shopify.trackingConsent;if(!1!==e.shouldShowBanner()||null!==b||7!==J)try{var t=F&&!(window.Shopify&&window.Shopify.AdminBarInjector),a={preferences:0==(1&k)||g||t,analytics:0==(2&k)||g||t,marketing:0==(4&k)||g||t};e.firstPartyMarketingAllowed()===a.marketing&&e.analyticsProcessingAllowed()===a.analytics&&e.preferencesProcessingAllowed()===a.preferences||(a.sale_of_data=a.marketing,e.setTrackingConsent(a,(function(e){e&&e.error?n("Shopify.customerPrivacy API - failed to setTrackingConsent"):n("setTrackingConsent(".concat(JSON.stringify(a),")"))})))}catch(e){n("Shopify.customerPrivacy API - exception")}}(),function(){var e=window.Shopify.trackingConsent,t=e.currentVisitorConsent();if(q.gpcIsActive&&"CCPA"===e.getRegulation()&&"no"===t.gpc&&"yes"!==t.sale_of_data){var a={sale_of_data:!1};e.setTrackingConsent(a,(function(e){e&&e.error?n("Shopify.customerPrivacy API - failed to setTrackingConsent({".concat(JSON.stringify(a),")")):n("setTrackingConsent(".concat(JSON.stringify(a),")"))}))}}()},W=null,window.Shopify&&window.Shopify.loadFeatures&&window.Shopify.trackingConsent?z():W=setInterval((function(){window.Shopify&&window.Shopify.loadFeatures&&(clearInterval(W),window.Shopify.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],(function(e){e?n("Shopify.customerPrivacy API - failed to load"):(n("shouldShowBanner() -> ".concat(window.Shopify.trackingConsent.shouldShowBanner()," | saleOfDataRegion() -> ").concat(window.Shopify.trackingConsent.saleOfDataRegion())),z())})))}),10));var G=p.banner.isActive,H=p.blocker.googleConsentMode,$=H.isActive,K=H.customEvent,V=H.id,Q=void 0===V?"":V,X=H.analyticsId,Y=void 0===X?"":X,Z=H.adwordsId,ee=void 0===Z?"":Z,te=H.redactData,ne=H.urlPassthrough,ae=H.adStorageCategory,re=H.analyticsStorageCategory,oe=H.functionalityStorageCategory,ie=H.personalizationStorageCategory,se=H.securityStorageCategory,ce=H.dataLayerProperty,le=void 0===ce?"dataLayer":ce,ue=H.waitForUpdate,de=void 0===ue?0:ue,fe=H.useNativeChannel,pe=void 0!==fe&&fe;function ge(){window[le].push(arguments)}window[le]=window[le]||[];var ye,he,ve={hasInitialized:!1,useNativeChannel:!1,ads_data_redaction:!1,url_passthrough:!1,data_layer_property:"dataLayer",storage:{ad_storage:"granted",ad_user_data:"granted",ad_personalization:"granted",analytics_storage:"granted",functionality_storage:"granted",personalization_storage:"granted",security_storage:"granted"}};if(G&&$){var we=0==(k&ae)?"granted":"denied",me=0==(k&re)?"granted":"denied",be=0==(k&oe)?"granted":"denied",ke=0==(k&ie)?"granted":"denied",_e=0==(k&se)?"granted":"denied";ve.hasInitialized=!0,ve.useNativeChannel=pe,ve.ads_data_redaction="denied"===we&&te,ve.url_passthrough=ne,ve.storage.ad_storage=we,ve.storage.ad_user_data=we,ve.storage.ad_personalization=we,ve.storage.analytics_storage=me,ve.storage.functionality_storage=be,ve.storage.personalization_storage=ke,ve.storage.security_storage=_e,de&&(ve.storage.wait_for_update="denied"===me||"denied"===we?de:0),ve.data_layer_property=le||"dataLayer",ve.ads_data_redaction&&ge("set","ads_data_redaction",ve.ads_data_redaction),ve.url_passthrough&&ge("set","url_passthrough",ve.url_passthrough),ve.useNativeChannel&&(window[le].push=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(t&&t[0]){var a=t[0][0],r=t[0][1],o=t[0][2],i=o&&"object"===s(o)&&4===Object.values(o).length&&o.ad_storage&&o.analytics_storage&&o.ad_user_data&&o.ad_personalization;if("consent"===a&&i)if("default"===r)o.functionality_storage=ve.storage.functionality_storage,o.personalization_storage=ve.storage.personalization_storage,o.security_storage="granted",ve.storage.wait_for_update&&(o.wait_for_update=ve.storage.wait_for_update);else if("update"===r){try{var c=window.Shopify.customerPrivacy.preferencesProcessingAllowed()?"granted":"denied";o.functionality_storage=c,o.personalization_storage=c}catch(e){}o.security_storage="granted"}}return Array.prototype.push.apply(this,t)}),function(){ge("consent","default",ve.storage),!1===pe?console.log("Pandectes: Google Consent Mode (av2)"):console.log("Pandectes: Google Consent Mode (av2nc)");(Q.length||Y.length||ee.length)&&(window[ve.data_layer_property].push({"pandectes.start":(new Date).getTime(),event:"pandectes-rules.min.js"}),(Y.length||ee.length)&&ge("js",new Date));var e="https://www.googletagmanager.com";if(Q.length){var t=Q.split(",");window[ve.data_layer_property].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});for(var n=0;n<t.length;n++){var r="dataLayer"!==ve.data_layer_property?"&l=".concat(ve.data_layer_property):"";
208a("".concat(e,"/gtm.js?id=").concat(t[n].trim()).concat(r))}}if(Y.length)for(var o=Y.split(","),i=0;i<o.length;i++){var s=o[i].trim();s.length&&(a("".concat(e,"/gtag/js?id=").concat(s)),ge("config",s,{send_page_view:!1}))}if(ee.length)for(var c=ee.split(","),l=0;l<c.length;l++){var u=c[l].trim();u.length&&(a("".concat(e,"/gtag/js?id=").concat(u)),ge("config",u,{allow_enhanced_conversions:!0}))}}()}G&&K&&(he=7===(ye=k)?"deny":0===ye?"allow":"mixed",window[le].push({event:"Pandectes_Consent_Update",pandectes_status:he,pandectes_categories:{C0000:"allow",C0001:_[1]?"allow":"deny",C0002:_[2]?"allow":"deny",C0003:_[4]?"allow":"deny"}}));var Le=p.blocker,Se=Le.klaviyoIsActive,Ce=Le.googleConsentMode.adStorageCategory;Se&&window.addEventListener("PandectesEvent_OnConsent",(function(e){var t=e.detail.preferences;if(null!=t){var n=0==(t&Ce)?"granted":"denied";void 0!==window.klaviyo&&window.klaviyo.isIdentified()&&window.klaviyo.push(["identify",{ad_personalization:n,ad_user_data:n}])}})),p.banner.revokableTrigger&&window.addEventListener("PandectesEvent_OnInitialize",(function(){document.querySelectorAll('[href*="#reopenBanner"]').forEach((function(e){e.onclick=function(e){e.preventDefault(),window.Pandectes.fn.revokeConsent()}}))})),window.PandectesRules.gcm=ve;var Pe=p.banner.isActive,Ae=p.blocker.isActive;n("Prefs: ".concat(k," | Banner: ").concat(Pe?"on":"off"," | Blocker: ").concat(Ae?"on":"off"));var Oe=null===b&&/\/checkouts\//.test(window.location.pathname);Pe&&0!==k&&!1===g&&Ae&&!Oe&&(n("Blocker will execute"),document.createElement=function(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];if("script"!==n[0].toLowerCase())return D.bind?D.bind(document).apply(void 0,n):D;var r=D.bind(document).apply(void 0,n);try{Object.defineProperties(r,{src:o(o({},M.src),{},{set:function(t){B(t,r.type)&&M.type.set.call(this,e),M.src.set.call(this,t)}}),type:o(o({},M.type),{},{get:function(){var t=M.type.get.call(this);return t===e||B(this.src,t)?null:t},set:function(t){var n=B(r.src,r.type)?e:t;M.type.set.call(this,n)}})}),r.setAttribute=function(t,n){if("type"===t){var a=B(r.src,r.type)?e:n;M.type.set.call(r,a)}else"src"===t?(B(n,r.type)&&M.type.set.call(r,e),M.src.set.call(r,n)):HTMLScriptElement.prototype.setAttribute.call(r,t,n)}}catch(e){console.warn("Pandectes: unable to prevent script execution for script src ",r.src,".\n",'A likely cause would be because you are using a third-party browser extension that monkey patches the "document.createElement" function.')}return r},x.observe(document.documentElement,{childList:!0,subtree:!0}),N.observe(document.documentElement,{childList:!0,subtree:!0}))}();
209�</script>
vendor: 1 bytes, line 209
209
210<script src="//www.seattlecoffeegear.com/cdn/shop/files/pandectes-rules.js?v=10749316884066499988"></script>
210
211
212
213<!-- Clarity -->
214<script type="text/javascript">
215  (function (c, l, a, r, i, t, y) {
216    c[a] =
217      c[a] ||
218      function () {
219        (c[a].q = c[a].q || []).push(arguments);
220      };
221    t = l.createElement(r);
222    t.async = 1;
223    t.src = 'https://www.clarity.ms/tag/' + i;
224    y = l.getElementsByTagName(r)[0];
225    y.parentNode.insertBefore(t, y);
226  })(window, document, 'clarity', 'script', 'giuxwlq7uu');
227</script>
227
228
229<!-- Product Specific Scripts -->
230
231    <!-- snippets/theme__structured-data.liquid -->
232�
233
234
235
236
237
238�
238<script type="application/ld+json">
239  {
240    "@context": "http://schema.org",
241    "@graph":[
242      {
243    "@type": "Organization",
244    "@id": "https://www.seattlecoffeegear.com/#organization",
245    "name": "Seattle Coffee Gear",
246    "url": "https://www.seattlecoffeegear.com/pages/learn-articles",
247    
248      "logo": "https://www.seattlecoffeegear.com/cdn/shop/files/SCG-Logo-Icon-Red.png?v=1766179016",
249    
250    "email": "[email protected]",
251    "telephone": "+1-866-372-4734",
252    "contactPoint" : [
253      { 
254        "@type" : "ContactPoint",
255        "telephone" : "+1-866-372-4734",
256        "email": "[email protected]",
257        "contactType" : "technical support",
258        "url" : "https://www.seattlecoffeegear.com/policies/contact-information",
259        "contactOption" : "TollFree",
260        "areaServed" : "US"
261      },
262      {
263        "@type" : "ContactPoint",
264        "telephone" : "+1-866-372-4734",
265        "email" : "[email protected]",
266        "contactType" : "sales",
267        "url" : "https://www.seattlecoffeegear.com/policies/contact-information",
268        "contactOption" : "TollFree",
269        "areaServed" : "US"
270      }
271    ],
272    "address": {
273      "@type": "PostalAddress",
274      "addressCountry": "US",
275      "addressLocality": "Lynnwood, WA",
276      "postalCode": "98036",
277      "streetAddress": "6825 216th St SW, Suite A"
278    },
279    "sameAs": [
280      "https://www.instagram.com/seattlecoffeegear",
281      "https://youtube.com/c/Seattlecoffeegearinfo",
282      "https://www.facebook.com/SeattleCoffeeGear",
283      "https://twitter.com/seacoffeegear",
284      "https://www.pinterest.com/seattlecoffeegear/",
285      "https://www.tiktok.com/@seattlecoffeegear",
286      "https://linkedin.com/company/seattle-coffee-gear",
287      "",
288      ""
289    ]
290  },
291  {
292    "@type": "WebSite",
293    "@id": "https://www.seattlecoffeegear.com/#website",
294    "name": "Seattle Coffee Gear",
295    "url": "https://www.seattlecoffeegear.com/pages/learn-articles",
296    "inLanguage":"en",
297    "potentialAction": {
298      "@type": "SearchAction",
299      "target": "https://www.seattlecoffeegear.com/search?type=product&q={search_term_string}",
300      "query-input": "required name=search_term_string"
301    }
302  },
303  {
304    "@type":"WebPage",
305      "@id":"https://www.seattlecoffeegear.com/pages/learn-articles/#webpage",
306      "url":"https://www.seattlecoffeegear.com/pages/learn-articles",
307      "name":"Espresso Machine and Coffee How-To Articles, News, and Resources",
308      "inLanguage":"en",
309      "description":"See The Best Espresso Machine Reviews And Coffee News And The Latest from the coffee experts at Seattle Coffee Gear here!"
310  }
311      
312        ,{
313      "@type": "BreadcrumbList",
314      "itemListElement": [
315        {
316          "@type": "ListItem",
317          "position": 1,
318          "name": "Home",
319          "item": "https://www.seattlecoffeegear.com"
320        },
321        {
322          "@type": "ListItem",
323          "position": 2,
324          "name": "The Best Espresso Machine Reviews And Coffee News"
325        }
326      ]
327    }
328      
329      
330    ]
331  }
332</script>
332
333
334    <!-- snippets/theme__styles.liquid -->
335
336
337<noscript>
338  <style>
339    .js\:animation.opacity-0 {
340      opacity: 100 !important;
341    }
342    .js\:animation.translate-y-4,
343    .js\:animation.translate-y-8 {
344      transform: translateY(0px) !important;
345    }
346    .no-js--hide {
347      display: none !important;
348    }
349    .no-js--block {
350      display: block !important;
351    }
352  </style>
353</noscript><style data-shopify>
354
355
356  /*
357   * Proxima Nova - Optimized
358   * Reduced from 14 font weights to 7 essential weights
359   * Removed: weights 100, 200, 300, 800 to reduce payload
360   * Changed font-display to 'swap' for better performance
361   * Removed 'opentype' format (only woff2 and woff for better browser support)
362   */
363
364  /* Proxima Nova Regular (400) */
365  /* Proxima Nova Regular (400) */@font-face {
366    font-family: 'proxima-nova';
367    src: url('https://use.typekit.net/af/efe4a5/00000000000000007735e609/30/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3') format('woff2')
368    , url('https://use.typekit.net/af/efe4a5/00000000000000007735e609/30/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3') format('woff');
369    font-display: swap;
370    font-style: normal;
371    font-weight: 400;
372  }
373
374  /* Proxima Nova Semibold (600) */
375  /* Proxima Nova Semibold (600) */@font-face {
376    font-family: 'proxima-nova';
377    src: url('https://use.typekit.net/af/78aca8/00000000000000007735e60d/30/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n6&v=3') format('woff2')
378    , url('https://use.typekit.net/af/78aca8/00000000000000007735e60d/30/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n6&v=3') format('woff');
379    font-display: swap;
380    font-style: normal;
381    font-weight: 600;
382  }
383
384  /* Proxima Nova Bold (700) */
385  /* Proxima Nova Bold (700) */@font-face {
386    font-family: 'proxima-nova';
387    src: url('https://use.typekit.net/af/2555e1/00000000000000007735e603/30/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3') format('woff2')
388    , url('https://use.typekit.net/af/2555e1/00000000000000007735e603/30/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3') format('woff');
389    font-display: swap;
390    font-style: normal;
391    font-weight: 700;
392  }
393
394  /* Proxima Nova Condensed Regular (400) */
395  @font-face {
396    font-family: 'proxima-nova-condensed';
397    src: url('https://use.typekit.net/af/669f97/00000000000000007735e623/30/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3') format('woff2')
398    , url('https://use.typekit.net/af/669f97/00000000000000007735e623/30/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3') format('woff')
399    , url('https://use.typekit.net/af/669f97/00000000000000007735e623/30/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3') format('opentype');
400    font-display: auto;
401    font-style: normal;
402    font-weight: 400;
403    font-stretch: normal;
404  }
405
406  @font-face {
407    font-family: 'proxima-nova-condensed';
408    src: url('https://use.typekit.net/af/7a7bec/00000000000000007735e61c/30/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n5&v=3') format('woff2')
409    , url('https://use.typekit.net/af/7a7bec/00000000000000007735e61c/30/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n5&v=3') format('woff')
410    , url('https://use.typekit.net/af/7a7bec/00000000000000007735e61c/30/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n5&v=3') format('opentype');
411    font-display: auto;
412    font-style: normal;
413    font-weight: 500;
414    font-stretch: normal;
415  }
416
417  @font-face {
418    font-family: 'proxima-nova-condensed';
419    src: url('https://use.typekit.net/af/3f0c14/00000000000000007735e626/30/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n6&v=3') format('woff2')
420    , url('https://use.typekit.net/af/3f0c14/00000000000000007735e626/30/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n6&v=3') format('woff')
421    , url('https://use.typekit.net/af/3f0c14/00000000000000007735e626/30/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n6&v=3') format('opentype');
422    font-display: auto;
423    font-style: normal;
424    font-weight: 600;
425    font-stretch: normal;
426  }
427
428  /* Proxima Nova Condensed Bold (700) */
429  @font-face {
430    font-family: 'proxima-nova-condensed';
431    src: url('https://use.typekit.net/af/15606c/00000000000000007735e60c/30/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3') format('woff2')
432    , url('https://use.typekit.net/af/15606c/00000000000000007735e60c/30/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3') format('woff');
433    font-display: swap;
434    font-style: normal;
435    font-weight: 700
436  }
437
438</style>
439
440<style data-shopify>
441  @font-face {
442  font-family: Roboto;
443  font-weight: 400;
444  font-style: normal;
445  font-display: swap;
446  src: url("//www.seattlecoffeegear.com/cdn/fonts/roboto/roboto_n4.2019d890f07b1852f56ce63ba45b2db45d852cba.woff2") format("woff2"),
447       url("//www.seattlecoffeegear.com/cdn/fonts/roboto/roboto_n4.238690e0007583582327135619c5f7971652fa9d.woff") format("woff");
448}
449
450  @font-face {
451  font-family: Roboto;
452  font-weight: 700;
453  font-style: normal;
454  font-display: swap;
455  src: url("//www.seattlecoffeegear.com/cdn/fonts/roboto/roboto_n7.f38007a10afbbde8976c4056bfe890710d51dec2.woff2") format("woff2"),
456       url("//www.seattlecoffeegear.com/cdn/fonts/roboto/roboto_n7.94bfdd3e80c7be00e128703d245c207769d763f9.woff") format("woff");
457}
458
459  @font-face {
460  font-family: Roboto;
461  font-weight: 400;
462  font-style: italic;
463  font-display: swap;
464  src: url("//www.seattlecoffeegear.com/cdn/fonts/roboto/roboto_i4.57ce898ccda22ee84f49e6b57ae302250655e2d4.woff2") format("woff2"),
465       url("//www.seattlecoffeegear.com/cdn/fonts/roboto/roboto_i4.b21f3bd061cbcb83b824ae8c7671a82587b264bf.woff") format("woff");
466}
467
468  @font-face {
469  font-family: Roboto;
470  font-weight: 700;
471  font-style: italic;
472  font-display: swap;
473  src: url("//www.seattlecoffeegear.com/cdn/fonts/roboto/roboto_i7.7ccaf9410746f2c53340607c42c43f90a9005937.woff2") format("woff2"),
474       url("//www.seattlecoffeegear.com/cdn/fonts/roboto/roboto_i7.49ec21cdd7148292bffea74c62c0df6e93551516.woff") format("woff");
475}
476
477  @font-face {
478  font-family: "Work Sans";
479  font-weight: 900;
480  font-style: normal;
481  font-display: swap;
482  src: url("//www.seattlecoffeegear.com/cdn/fonts/work_sans/worksans_n9.4bea1158977687159ff35b9520eb34f1313023a4.woff2") format("woff2"),
483       url("//www.seattlecoffeegear.com/cdn/fonts/work_sans/worksans_n9.6eee75bb5ea8f3fa835861b7ca7ceb0958dae714.woff") format("woff");
484}
485
486  @font-face {
487  font-family: Roboto;
488  font-weight: 400;
489  font-style: normal;
490  font-display: swap;
491  src: url("//www.seattlecoffeegear.com/cdn/fonts/roboto/roboto_n4.2019d890f07b1852f56ce63ba45b2db45d852cba.woff2") format("woff2"),
492       url("//www.seattlecoffeegear.com/cdn/fonts/roboto/roboto_n4.238690e0007583582327135619c5f7971652fa9d.woff") format("woff");
493}
494
495
496  :root {
497    --color__bg-body-light: #ffffff;
498    --color__bg-overlay-light-1: #f0f0f0;
499    --color__bg-overlay-light-2: #e0e0e0;
500    --color__bg-overlay-light-3: #c2c2c2;
501
502    --color__text-light: #282828;
503    --color__link-light: #D2324C;
504
505    --color__scg-red: #D2324C;
506    --color__scg-green: #218368;
507    --color__scg-blue: #217a97;
508    --color__scg-yellow: #edaf44;
509    
510    --color__text-dark: #c7c8ce;
511
512    --color__border-divider-dark-1: #D2324C;
513    --color__border-divider-dark-2: #b82840;
514    --color__border-divider-dark-3: #962134;
515    --color__border-selected-dark-1: #58131e;
516    --color__border-selected-dark-2: #190509;
517
518    --color__border-divider-light-1: #f7f7fa;
519    --color__border-divider-light-2: #c8c8dd;
520    --color__border-divider-light-3: #9999bf;
521    --color__border-selected-light-1: #6a6aa2;
522    --color__border-selected-light-2: #494976;
523
524    --color-primary-button-background-light-transparent: rgba(210, 50, 76, 0.5);
525    --color-primary-button-background-light: #D2324C;
526    --color-primary-button-background-dark: #962134;
527    --color-primary-button-border-light: #D2324C;
528    --color-primary-button-text-light: #FAFAFA;
529
530    --color-secondary-button-background-light: #217A97;
531    --color-secondary-button-border-light: #217A97;
532    --color-secondary-button-text-light: #FAFAFA;
533
534    --color-tertiary-button-background-light: #4E535A;
535    --color-tertiary-button-border-light: #4E535A;
536    --color-tertiary-button-text-light: #FAFAFA;
537
538    --color-neutral-button-background-light: #e9d9db;
539    --color-neutral-button-border-light: #e9d9db;
540    --color-neutral-button-text-light: #282828;
541
542    --color-plain-button-background-light: #f0f0f0;
543    --color-plain-button-border-light: #f0f0f0;
544    --color-plain-button-text-light: #282828;
545
546    --sizes-border-button-radius: 5px;
547    --sizes-border-input-radius: 2px;
548    --sizes-border-element-radius: 2px;
549    --sizes-border-width: 1px;
550    --sizes-gap-width: 8px;
551
552    --type-font-body-family: proxima-nova; /* Roboto, sans-serif; */
553    --type-font-body-style: normal;
554    --type-font-body-weight: 400;
555
556    --type-font-header-family: proxima-nova-condensed; /* "Work Sans", sans-serif; */
557    --type-font-header-style: normal;
558    --type-font-header-weight: 400;
559
560    --type-font-nav-family: proxima-nova; /* Roboto, sans-serif; */
561    --type-font-nav-style: normal;
562    --type-font-nav-weight: 400;
563
564    --type-font-base-size: 16px;
565    --type-button-capiliziation: ;
566  }
567</style>
568
569    <link href="//www.seattlecoffeegear.com/cdn/shop/t/4/assets/styles.css?v=129939244603524093601790875532" rel="stylesheet" type="text/css" media="all" />
570    
570<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
570<meta name="facebook-domain-verification" content="faht1a1ivi9wy5rmdebxur7n5txpiq">
571<meta name="google-site-verification" content="uQ6aibUnFoSDRxw5a1780tZUUi8j8LVmthoc8Ae9mN8">
572<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/83175735603/digital_wallets/dialog">
573<meta id="in-context-paypal-metadata" data-shop-id="83175735603" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD">
574<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
574<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=6768427315"></script>
574
575<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
576<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=6768427315&shop_id=83175735603" crossorigin="anonymous"></script>
vendor: 1 bytes, line 576
576
577<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":83175735603,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/83175735603","merchantName":"Seattle Coffee Gear","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Seattle Coffee Gear","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 577
577
578<script id="shopify-features" type="application/json">{"accessToken":"a6e6831f01180b322409ff7320ffbc22","betas":["rich-media-storefront-analytics"],"domain":"www.seattlecoffeegear.com","predictiveSearch":true,"shopId":83175735603,"locale":"en"}</script>
vendor: 1 bytes, line 578
578
579<script>var Shopify = Shopify || {};
580Shopify.shop = "seattlecoffeegear.myshopify.com";
581Shopify.locale = "en";
582Shopify.currency = {"active":"USD","rate":"1.0"};
583Shopify.country = "US";
584Shopify.theme = {"name":"scg-shopify\/main","id":161449935155,"schema_name":"Paper","schema_version":"6.1.3","theme_store_id":null,"role":"main"};
585Shopify.theme.handle = "null";
586Shopify.theme.style = {"id":null,"handle":null};
587Shopify.cdnHost = "www.seattlecoffeegear.com/cdn";
588Shopify.routes = Shopify.routes || {};
589Shopify.routes.root = "/";
590Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
591Shopify.SignInWithShop = Shopify.SignInWithShop || {};
592Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
593Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 593
593
594<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 594
594
595<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 595
595
596<script>
597  window.ShopifyPay = window.ShopifyPay || {};
598  window.ShopifyPay.apiHost = "shop.app\/pay";
599  window.ShopifyPay.redirectState = null;
600</script>
vendor: 1 bytes, line 600
600
601<script>
602  window.Shopify = window.Shopify || {};
603  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
604  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
605  window.Shopify.SignInWithShop.eligible = true;
606</script>
vendor: 1 bytes, line 606
606
607<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 607
607
608<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 608
608
609<script type="module">
610  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
611
612  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
613
614</script>
vendor: 1 bytes, line 614
614
615<script>
616  window.Shopify = window.Shopify || {};
617  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
618  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"]};
619</script>
vendor: 1 bytes, line 619
619
620<script>(function() {
621  var isLoaded = false;
622  function asyncLoad() {
623    if (isLoaded) return;
624    isLoaded = true;
625    var urls = ["https:\/\/d2r9py2hfy5mgp.cloudfront.net\/63\/67\/A5\/F03EB23BD1-83175735603\/tagalys-shopify.js?v=20240129181422\u0026shop=seattlecoffeegear.myshopify.com","https:\/\/cdn.attn.tv\/scgear\/dtag.js?shop=seattlecoffeegear.myshopify.com","https:\/\/cdn-scripts.signifyd.com\/shopify\/script-tag.js?shop=seattlecoffeegear.myshopify.com","https:\/\/cdn.chatbot.com\/widget\/ow-inline-plugin.js?organization_id=cea9ed9d-bc18-446c-9474-dca76a5584f4\u0026template_id=562ff5e3-130b-42aa-bee4-73766ec15cc6\u0026shop=seattlecoffeegear.myshopify.com","https:\/\/d217z8zw4dqir.cloudfront.net\/script_tags\/loop_snippets?shop=seattlecoffeegear.myshopify.com","https:\/\/chat-widget.withremark.com\/api\/loader?shop=seattlecoffeegear.myshopify.com","\/\/cdn.shopify.com\/proxy\/383412b8dcf0b529de3b9ef488b14fc4f231d9d5f9d05377fce460cfa6e27d4b\/cdn.bogos.io\/script_tag\/secomapp.scripttag.js?shop=seattlecoffeegear.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA"];
626    for (var i = 0; i < urls.length; i++) {
627      var s = document.createElement('script');
628      s.type = 'text/javascript';
629      s.async = true;
630      s.src = urls[i];
631      var x = document.getElementsByTagName('script')[0];
632      x.parentNode.insertBefore(s, x);
633    }
634  };
635  if(window.attachEvent) {
636    window.attachEvent('onload', asyncLoad);
637  } else {
638    window.addEventListener('load', asyncLoad, false);
639  }
640})();</script>
vendor: 1 bytes, line 640
640
641<script id="__st">var __st={"a":83175735603,"offset":-25200,"reqid":"6dba6a37-1c1c-45f4-9da1-d786ce63be3d-1790909108","pageurl":"www.seattlecoffeegear.com\/pages\/learn-articles","s":"pages-131213820211","u":"7f8267326af9","p":"page","rtyp":"page","rid":131213820211};</script>
vendor: 1 bytes, line 641
641
642<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 642
642
643<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 643
643
644<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.seattlecoffeegear.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 644
644
645<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.seattlecoffeegear.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>
645<script crossorigin="anonymous" defer="defer" src="//www.seattlecoffeegear.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 645
645
646<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 646
646
647<script>
648  window.Shopify = window.Shopify || {};
649  window.Shopify.MCP = window.Shopify.MCP || {};
650  window.Shopify.MCP.enabled = true;
651  window.Shopify.MCP.shop = "seattlecoffeegear.myshopify.com";
652  window.Shopify.MCP.mcpEndpoint = "https:\/\/www.seattlecoffeegear.com\/api\/mcp";
653  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"]}}];
654</script>
vendor: 1 bytes, line 654
654
655<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.seattlecoffeegear.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})();
656</script>
vendor: 1 bytes, line 656
656
657<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.seattlecoffeegear.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
658</script>
vendor: 1 bytes, line 658
658
659<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
660  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);
661</script>
vendor: 1 bytes, line 661
661
662<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})}}));
663</script>
663
664<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.seattlecoffeegear.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
665<style id="shopify-accelerated-checkout-cart">
666        #shopify-buyer-consent {
667  margin-top: 1em;
668  display: inline-block;
669  width: 100%;
670}
671
672#shopify-buyer-consent.hidden {
673  display: none;
674}
675
676#shopify-subscription-policy-button {
677  background: none;
678  border: none;
679  padding: 0;
680  text-decoration: underline;
681  font-size: inherit;
682  cursor: pointer;
683}
684
685#shopify-subscription-policy-button::before {
686  box-shadow: none;
687}
688
689      </style>
690
691<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
691
692
693
694
695
696  <!-- BEGIN app block: shopify://apps/pandectes-gdpr/blocks/banner/58c0baa2-6cc1-480c-9ea6-38d6d559556a -->
697
698  
699    
700      <!-- TCF is active, scripts are loaded above -->
701      
702        
702<script>
703          if (!window.PandectesRulesSettings) {
704            window.PandectesRulesSettings = {"store":{"id":83175735603,"adminMode":false,"headless":false,"storefrontRootDomain":"","checkoutRootDomain":"","storefrontAccessToken":""},"banner":{"revokableTrigger":false,"cookiesBlockedByDefault":"0","hybridStrict":false,"isActive":true},"geolocation":{"brOnly":false,"caOnly":false,"chOnly":false,"euOnly":false,"jpOnly":false,"thOnly":false,"zaOnly":false,"canadaOnly":false,"canadaLaw25":false,"canadaPipeda":false,"globalVisibility":true},"blocker":{"isActive":false,"googleConsentMode":{"isActive":false,"id":"","analyticsId":"","adwordsId":"","adStorageCategory":4,"analyticsStorageCategory":2,"functionalityStorageCategory":1,"personalizationStorageCategory":1,"securityStorageCategory":0,"customEvent":false,"redactData":false,"urlPassthrough":false,"dataLayerProperty":"dataLayer","waitForUpdate":0,"useNativeChannel":false},"facebookPixel":{"isActive":false,"id":"","ldu":false},"microsoft":{},"clarity":{},"rakuten":{"isActive":false,"cmp":false,"ccpa":false},"gpcIsActive":false,"klaviyoIsActive":false,"defaultBlocked":0,"patterns":{"whiteList":[],"blackList":{"1":[],"2":[],"4":[],"8":[]},"iframesWhiteList":[],"iframesBlackList":{"1":[],"2":[],"4":[],"8":[]},"beaconsWhiteList":[],"beaconsBlackList":{"1":[],"2":[],"4":[],"8":[]}}}};
705            const rulesScript = document.createElement('script');
706            window.PandectesRulesSettings.auto = true;
707            rulesScript.src = "https://cdn.shopify.com/extensions/01a0d309-5aa0-76cf-9f48-2a42b2760403/gdpr-cookie-consent-411/assets/pandectes-rules.js";
708            const firstChild = document.head.firstChild;
709            document.head.insertBefore(rulesScript, firstChild);
710          }
711        </script>
711
712      
713      
713<script>
714        
715          window.PandectesSettings = {"store":{"id":83175735603,"plan":"enterprise","theme":"scg-shopify/main","primaryLocale":"en","adminMode":false,"headless":false,"storefrontRootDomain":"","checkoutRootDomain":"","storefrontAccessToken":"","useGeolocation":false},"tsPublished":1769477477,"declaration":{"showPurpose":false,"showProvider":false,"declIntroText":"We use cookies to optimize website functionality, analyze the performance, and provide personalized experience to you. Some cookies are essential to make the website operate and function correctly. Those cookies cannot be disabled. In this window you can manage your preference of cookies.","showDateGenerated":true},"language":{"unpublished":[],"languageMode":"Single","fallbackLanguage":"en","languageDetection":"browser","languagesSupported":[]},"texts":{"managed":{"headerText":{"en":"We respect your privacy"},"consentText":{"en":"This website uses cookies to ensure you get the best experience."},"linkText":{"en":"Learn more"},"imprintText":{"en":"Imprint"},"googleLinkText":{"en":"Google's Privacy Terms"},"allowButtonText":{"en":"Accept"},"denyButtonText":{"en":"Decline"},"dismissButtonText":{"en":"Ok"},"leaveSiteButtonText":{"en":"Leave this site"},"preferencesButtonText":{"en":"Preferences"},"cookiePolicyText":{"en":"Cookie policy"},"preferencesPopupTitleText":{"en":"Manage consent preferences"},"preferencesPopupIntroText":{"en":"We use cookies to optimize website functionality, analyze the performance, and provide personalized experience to you. Some cookies are essential to make the website operate and function correctly. Those cookies cannot be disabled. In this window you can manage your preference of cookies."},"preferencesPopupSaveButtonText":{"en":"Save preferences"},"preferencesPopupCloseButtonText":{"en":"Close"},"preferencesPopupAcceptAllButtonText":{"en":"Accept all"},"preferencesPopupRejectAllButtonText":{"en":"Reject all"},"cookiesDetailsText":{"en":"Cookies details"},"preferencesPopupAlwaysAllowedText":{"en":"Always allowed"},"accessSectionParagraphText":{"en":"You have the right to request access to your data at any time."},"accessSectionTitleText":{"en":"Data portability"},"accessSectionAccountInfoActionText":{"en":"Personal data"},"accessSectionDownloadReportActionText":{"en":"Request export"},"accessSectionGDPRRequestsActionText":{"en":"Data subject requests"},"accessSectionOrdersRecordsActionText":{"en":"Orders"},"rectificationSectionParagraphText":{"en":"You have the right to request your data to be updated whenever you think it is appropriate."},"rectificationSectionTitleText":{"en":"Data Rectification"},"rectificationCommentPlaceholder":{"en":"Describe what you want to be updated"},"rectificationCommentValidationError":{"en":"Comment is required"},"rectificationSectionEditAccountActionText":{"en":"Request an update"},"erasureSectionTitleText":{"en":"Right to be forgotten"},"erasureSectionParagraphText":{"en":"You have the right to ask all your personal data to be erased. Data relating to orders placed within the last 180 days will be kept for record-keeping purposes. After that period has elapsed, you will no longer be able to access your account for the purpose of viewing/tracking your order."},"erasureSectionRequestDeletionActionText":{"en":"Request personal data deletion"},"consentDate":{"en":"Consent date"},"consentId":{"en":"Consent ID"},"consentSectionChangeConsentActionText":{"en":"Change consent preference"},"consentSectionConsentedText":{"en":"You consented to the cookies policy of this website on"},"consentSectionNoConsentText":{"en":"You have not consented to the cookies policy of this website."},"consentSectionTitleText":{"en":"Your cookie consent"},"consentStatus":{"en":"Consent preference"},"confirmationFailureMessage":{"en":"Your request was not verified. Please try again and if problem persists, contact store owner for assistance"},"confirmationFailureTitle":{"en":"A problem occurred"},"confirmationSuccessMessage":{"en":"We will soon get back to you as to your request."},"confirmationSuccessTitle":{"en":"Your request is verified"},"guestsSupportEmailFailureMessage":{"en":"Your request was not submitted. Please try again and if problem persists, contact store owner for assistance."},"guestsSupportEmailFailureTitle":{"en":"A problem occurred"},"guestsSupportEmailPlaceholder":{"en":"E-mail address"},"guestsSupportEmailSuccessMessage":{"en":"If you are registered as a customer of this store, you will soon receive an email with instructions on how to proceed."}
715,"guestsSupportEmailSuccessTitle":{"en":"Thank you for your request"},"guestsSupportEmailValidationError":{"en":"Email is not valid"},"guestsSupportInfoText":{"en":"Please login with your customer account to further proceed."},"submitButton":{"en":"Submit"},"submittingButton":{"en":"Submitting..."},"cancelButton":{"en":"Cancel"},"declIntroText":{"en":"We use cookies to optimize website functionality, analyze the performance, and provide personalized experience to you. Some cookies are essential to make the website operate and function correctly. Those cookies cannot be disabled. In this window you can manage your preference of cookies."},"declName":{"en":"Name"},"declPurpose":{"en":"Purpose"},"declType":{"en":"Type"},"declRetention":{"en":"Retention"},"declProvider":{"en":"Provider"},"declFirstParty":{"en":"First-party"},"declThirdParty":{"en":"Third-party"},"declSeconds":{"en":"seconds"},"declMinutes":{"en":"minutes"},"declHours":{"en":"hours"},"declWeeks":{"en":"week(s)"},"declDays":{"en":"days"},"declMonths":{"en":"months"},"declYears":{"en":"years"},"declSession":{"en":"Session"},"declDomain":{"en":"Domain"},"declPath":{"en":"Path"}}
715,"categories":{"strictlyNecessaryCookiesTitleText":{"en":"Strictly necessary cookies"},"strictlyNecessaryCookiesDescriptionText":{"en":"These cookies are essential in order to enable you to move around the website and use its features, such as accessing secure areas of the website. The website cannot function properly without these cookies."},"functionalityCookiesTitleText":{"en":"Functional cookies"},"functionalityCookiesDescriptionText":{"en":"These cookies enable the site to provide enhanced functionality and personalisation. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies then some or all of these services may not function properly."},"performanceCookiesTitleText":{"en":"Performance cookies"},"performanceCookiesDescriptionText":{"en":"These cookies enable us to monitor and improve the performance of our website. For example, they allow us to count visits, identify traffic sources and see which parts of the site are most popular."},"targetingCookiesTitleText":{"en":"Targeting cookies"},"targetingCookiesDescriptionText":{"en":"These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites.    They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising."},"unclassifiedCookiesTitleText":{"en":"Unclassified cookies"},"unclassifiedCookiesDescriptionText":{"en":"Unclassified cookies are cookies that we are in the process of classifying, together with the providers of individual cookies."}},"auto":{}},"library":{"previewMode":false,"fadeInTimeout":0,"defaultBlocked":0,"showLink":true,"showImprintLink":false,"showGoogleLink":false,"enabled":true,"cookie":{"expiryDays":365,"secure":true,"domain":""},"dismissOnScroll":false,"dismissOnWindowClick":false,"dismissOnTimeout":false,"palette":{"popup":{"background":"#FFFFFF","backgroundForCalculations":{"a":1,"b":255,"g":255,"r":255},"text":"#000000"},"button":{"background":"#4E535A","backgroundForCalculations":{"a":1,"b":90,"g":83,"r":78},"text":"#FFFFFF","textForCalculation":{"a":1,"b":255,"g":255,"r":255},"border":"transparent"}},"content":{"href":"https://seattlecoffeegear.myshopify.com/policies/privacy-policy","imprintHref":"/","close":"&#10005;","target":"_blank","logo":""},"window":"<div role=\"dialog\" aria-label=\"{{header}}\" aria-describedby=\"cookieconsent:desc\" id=\"pandectes-banner\" class=\"cc-window-wrapper cc-bottom-center-wrapper\"><div class=\"pd-cookie-banner-window cc-window {{classes}}\">{{children}}</div></div>","compliance":{"custom":"<div class=\"cc-compliance cc-highlight\">{{preferences}}{{dismiss}}</div>"},"type":"custom","layouts":{"basic":"{{messagelink}}{{compliance}}{{close}}"},"position":"bottom-center","theme":"classic","revokable":false,"animateRevokable":false,"revokableReset":false,"revokableLogoUrl":"https://seattlecoffeegear.myshopify.com/cdn/shop/files/pandectes-reopen-logo.png","revokablePlacement":"bottom-left","revokableMarginHorizontal":15,"revokableMarginVertical":15,"static":false,"autoAttach":true,"hasTransition":true,"blacklistPage":[""],"elements":{"close":"<button aria-label=\"Close\" type=\"button\" class=\"cc-close\">{{close}}</button>","dismiss":"<button type=\"button\" class=\"cc-btn cc-btn-decision cc-dismiss\">{{dismiss}}</button>","allow":"<button type=\"button\" class=\"cc-btn cc-btn-decision cc-allow\">{{allow}}</button>","deny":"<button type=\"button\" class=\"cc-btn cc-btn-decision cc-deny\">{{deny}}</button>","preferences":"<button type=\"button\" class=\"cc-btn cc-settings\" aria-controls=\"pd-cp-preferences\" onclick=\"Pandectes.fn.openPreferences()\">{{preferences}}</button>"}},"geolocation":{"brOnly":false,"caOnly":false,"chOnly":false,"euOnly":false,"jpOnly":false,"thOnly":false,"zaOnly":false,"canadaOnly":false,"canadaLaw25":false,"canadaPipeda":false,"globalVisibility":true},"dsr":{"guestsSupport":true,"accessSectionDownloadReportAuto":false},"banner":{"resetTs":1711657414,"extraCss":"        .cc-banner-logo {max-width: 24em!important;}    @media(min-width: 768px) {.cc-window.cc-floating{max-width: 24em!important;width: 24em!important;}}    .cc-message, .pd-cookie-banner-window .cc-header, .cc-logo {text-align: center}    .cc-window-wrapper{z-index: 2147483647;}    .cc-window{z-index: 2147483647;font-size: 14px!important;font-family: inherit;}    .pd-cookie-banner-window .cc-header{font-size: 14px!important;font-family: inherit;}    .pd-cp-ui{font-family: inherit; background-color: #FFFFFF;color:#000000;}    button.pd-cp-btn, a.pd-cp-btn{background-color:#4E535A;color:#FFFFFF!important;}    input + .pd-cp-preferences-slider{background-color: rgba(0, 0, 0, 0.3)}    .pd-cp-scrolling-section::-webkit-scrollbar{background-color: rgba(0, 0, 0, 0.3)}    input:checked + .pd-cp-preferences-slider{background-color: rgba(0, 0, 0, 1)}    .pd-cp-scrolling-section::-webkit-scrollbar-thumb {background-color: rgba(0, 0, 0, 1)}    .pd-cp-ui-close{color:#000000;}    .pd-cp-preferences-slider:before{background-color: #FFFFFF}    .pd-cp-title:before {border-color: #000000!important}    .pd-cp-preferences-slider{background-color:#000000}    .pd-cp-toggle{color:#000000!important}    @media(max-width:699px) {.pd-cp-ui-close-top svg {fill: #000000}}    .pd-cp-toggle:hover,.pd-cp-toggle:visited,.pd-cp-toggle:active{color:#000000!important}    .pd-cookie-banner-window {box-shadow: 0 0 18px rgb(0 0 0 / 20%);}  ","customJavascript":{},"showPoweredBy":false,"logoHeight":40,"revokableTrigger":false,"hybridStrict":false,"cookiesBlockedByDefault":"0","isActive":true,"implicitSavePreferences":false,"cookieIcon":false,"blockBots":false,"showCookiesDetails":true,"hasTransition":true,"blockingPage":false,"showOnlyLandingPage":false,"leaveSiteUrl":"https://www.google.com","linkRespectStoreLang":false},"cookies":{"0":[{"name":"keep_alive","type":"http","domain":"seattlecoffeegear.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","session":false,"expires":30,"unit":"declMinutes","purpose":{"en":"Used in connection with buyer localization."}},{"name":"secure_customer_sig","type":"http","domain":"seattlecoffeegear.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","session":false,"expires":1,"unit":"declYears","purpose":{"en":"Used in connection with customer login."}},{"name":"localization","type":"http","domain":"seattlecoffeegear.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","session":false,"expires":1,"unit":"declYears","purpose":{"en":"Shopify store localization"}},{"name":"cart_currency","type":"http","domain":"seattlecoffeegear.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"2 ","session":false,"expires":2,"unit":"declSession","purpose":{"en":"The cookie is necessary for the secure checkout and payment function on the website. This function is provided by shopify.com."}},{"name":"_cmp_a","type":"http","domain":".seattlecoffeegear.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 day(s)","session":false,"expires":1,"unit":"declDays","purpose":{"en":"Used for managing customer privacy settings."}},{"name":"_tracking_consent","type":"http","domain":".seattlecoffeegear.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","session":false,"expires":1,"unit":"declYears","purpose":{"en":"Tracking preferences."}},{"name":"shopify_pay_redirect","type":"http","domain":"seattlecoffeegear.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 hour(s)","session":false,"expires":1,"unit":"declHours","purpose":{"en":"The cookie is necessary for the secure checkout and payment function on the website. This function is provided by shopify.com."}}],"1":[],"2":[],"4":[{"name":"pixlee_analytics_cookie_legacy","type":"http","domain":".seattlecoffeegear.myshopify.com","path":"/","provider":"Pixlee","firstParty":true,"retention":"1 month(s)","session":false,"expires":1,"unit":"declMonths","purpose":{"en":""}}],"8":[]},"blocker":{"isActive":false,"googleConsentMode":{"id":"","analyticsId":"","adwordsId":"","isActive":false,"adStorageCategory":4,"analyticsStorageCategory":2,"personalizationStorageCategory":1,"functionalityStorageCategory":1,"customEvent":false,"securityStorageCategory":0,"redactData":false,"urlPassthrough":false,"dataLayerProperty":"dataLayer","waitForUpdate":0,"useNativeChannel":false},"facebookPixel":{"id":"","isActive":false,"ldu":false},"microsoft":{},"rakuten":{"isActive":false,"cmp":false,"ccpa":false},"klaviyoIsActive":false,"gpcIsActive":false,"clarity":{},"defaultBlocked":0,"patterns":{"whiteList":[],"blackList":{"1":[],"2":[],"4":[],"8":[]},"iframesWhiteList":[],"iframesBlackList":{"1":[],"2":[],"4":[],"8":[]},"beaconsWhiteList":[],"beaconsBlackList":{"1":[],"2":[],"4":[],"8":[]}}}};
716        
717        window.addEventListener('DOMContentLoaded', function(){
718          const script = document.createElement('script');
719          
720            script.src = "https://cdn.shopify.com/extensions/01a0d309-5aa0-76cf-9f48-2a42b2760403/gdpr-cookie-consent-411/assets/pandectes-core.js";
721          
722          script.defer = true;
723          document.body.appendChild(script);
724        })
725      </script>
725
726    
727  
728
729
730
731  <!-- A11y -->
732  
733  
734  
735  
736  
737
738  
739
740
741
742<!-- END app block --><!-- BEGIN app block: shopify://apps/microsoft-clarity/blocks/clarity_js/31c3d126-8116-4b4a-8ba1-baeda7c4aeea -->
743<script type="text/javascript">
744  (function (c, l, a, r, i, t, y) {
745    c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments); };
746    t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i + "?ref=shopify";
747    y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y);
748
749    c.Shopify.loadFeatures([{ name: "consent-tracking-api", version: "0.1" }], error => {
750      if (error) {
751        console.error("Error loading Shopify features:", error);
752        return;
753      }
754
755      c[a]('consentv2', {
756        ad_Storage: c.Shopify.customerPrivacy.marketingAllowed() ? "granted" : "denied",
757        analytics_Storage: c.Shopify.customerPrivacy.analyticsProcessingAllowed() ? "granted" : "denied",
758        source: 101,
759      });
760    });
761
762    l.addEventListener("visitorConsentCollected", function (e) {
763      c[a]('consentv2', {
764        ad_Storage: e.detail.marketingAllowed ? "granted" : "denied",
765        analytics_Storage: e.detail.analyticsAllowed ? "granted" : "denied",
766        source: 101,
767      });
768    });
769  })(window, document, "clarity", "script", "giuxwlq7uu");
770</script>
770
771
772
773
774<!-- END app block --><!-- BEGIN app block: shopify://apps/pdbmdl5dd-opensend/blocks/opensend/019a7ef5-499f-7f9e-8bea-502de9b7646b -->
775<script type='text/javascript'>
776!function(s) {
777  let o = s.createElement('script'), u = s.getElementsByTagName('script')[0];
778  o.src = 'https://cdn.aggle.net/oir/oir.min.js';
779  o.async = !0, o.setAttribute('oirtyp', '48b1feaa'), o.setAttribute('oirid', 'PDBMDL5DD');
780  u.parentNode.insertBefore(o, u);
781}(document);
782</script>
782
783
784<script type='text/javascript'>
785  {
786    const cleanObj = (value) => {
787      if (Array.isArray(value)) {
788        const cleanedArray = value.map(cleanObj).filter((v) => v !== undefined);
789        return cleanedArray.length ? cleanedArray : undefined;
790      }
791      if (value && typeof value === "object") {
792        const cleanedObject = Object.entries(value).reduce((acc, [key, val]) => {
793          const cleanedValue = cleanObj(val);
794          if (cleanedValue !== undefined && cleanedValue !== null && cleanedValue !== "") {
795            acc[key] = cleanedValue;
796          }
797          return acc;
798        }, {});
799        return Object.keys(cleanedObject).length ? cleanedObject : undefined;
800      }
801      if (value === null || value === undefined || value === "") {
802        return undefined;
803      }
804      return value;
805    };
806    const getCustomer = () => ({
807      shopifyCustomerId: "",
808      email: "",
809      phone: "",
810      first_name: null,
811      last_name: null,
812      lifetime_value: null,
813      order_count: null,
814      address: {
815        street: null,
816        city: null,
817        state:  null,
818        stateCode: null,
819        postalCode: "",
820        country: "",
821        province: "",
822        countryCode: "",
823      }
824    });
825    
826  }
827</script>
827
828
829
830<!-- END app block --><!-- BEGIN app block: shopify://apps/sc-easy-redirects/blocks/app/be3f8dbd-5d43-46b4-ba43-2d65046054c2 -->
831    <!-- common for all pages -->
832    
833    
834        
835            
835<script src="https://cdn.shopify.com/extensions/019feafe-a942-7fff-96d6-964177dec909/sc-easy-redirects-16/assets/esc-redirect-app.js" async></script>
835
836        
837    
838
839
840
841
842<!-- END app block --><!-- BEGIN app block: shopify://apps/elevar-conversion-tracking/blocks/dataLayerEmbed/bc30ab68-b15c-4311-811f-8ef485877ad6 -->
843
844
845
846<script type="module" dynamic>
847  const configUrl = "/a/elevar/static/configs/e8c7e1722fb779ca0c54f08e5147149f4f8b689d/config.js";
848  const config = (await import(configUrl)).default;
849  const scriptUrl = config.script_src_app_theme_embed;
850
851  if (scriptUrl) {
852    const { handler } = await import(scriptUrl);
853
854    await handler(
855      config,
856      {
857        cartData: {
858  marketId: "71082934579",
859  localeCountryCode:"US",
860  attributes:{},
861  cartTotal: "0.0",
862  currencyCode:"USD",
863  items: []
864}
865,
866        user: {
867  cartTotal: "0.0",
868  currencyCode:"USD",
869  customer: {},
870}
871,
872        isOnCartPage:false,
873        collectionView:null,
874        searchResultsView:null,
875        productView:null,
876      }
877    );
878  }
879</script>
879
880
881
882<!-- END app block --><!-- BEGIN app block: shopify://apps/userway-website-accessibility/blocks/uw-widget-extension/bc2d8a34-1a37-451b-ab1a-271bc4e9daa7 -->
883
884
885
886
887<script type="text/javascript" async="" src="https://cdn.userway.org/widget.js?account=9o3ocAFnQx&amp;platfAppInstalledSiteId=3480081&amp;shop=www.seattlecoffeegear.com"></script>
887
888
889<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 -->
890
891
892
893
894
895
896
897
898
899
900
901
902  
902<script async src="https://static.klaviyo.com/onsite/js/STSejp/klaviyo.js?company_id=STSejp"></script>
902
903  
903<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>
903
904
905  
906
907
908
909
910  
910<script>
911    window.klaviyoReviewsProductDesignMode = false
912  </script>
912
913
914
915
916  <!-- BEGIN app snippet: customer-hub-data -->
916<script>
917  if (!window.customerHub) {
918    window.customerHub = {};
919  }
920  window.customerHub.storefrontRoutes = {
921    login: "https://www.seattlecoffeegear.com/customer_authentication/redirect?locale=en&region_country=US?return_url=%2F%23k-hub",
922    register: "https://account.seattlecoffeegear.com?locale=en&region_country=US&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzZWF0dGxlY29mZmVlZ2Vhci5teXNob3BpZnkuY29tIiwiZmxhZ3MiOltdLCJleHAiOjE3OTE1MTM5MDksIm5iZiI6MTc5MDkwOTEwOX0.3bkH6r6sZEI68Ly-4RtftxRmOuH_eSBVKLrkH7qQAdg?return_url=%2F%23k-hub",
923    logout: "/account/logout",
924    profile: "/account",
925    addresses: "/account/addresses",
926  };
927  
928  window.customerHub.userId = null;
929  
930  window.customerHub.storeDomain = "seattlecoffeegear.myshopify.com";
931
932  
933
934  
935    window.customerHub.storeLocale = {
936        currentLanguage: 'en',
937        currentCountry: 'US',
938        availableLanguages: [
939          
940            {
941              iso_code: 'en',
942              endonym_name: 'English'
943            }
944          
945        ],
946        availableCountries: [
947          
948            {
949              iso_code: 'US',
950              name: 'United States',
951              currency_code: 'USD'
952            }
953          
954        ]
955    };
956  
957</script>
957
958<!-- END app snippet -->
959
960
961
962
963
964
965
966<!-- END app block --><!-- BEGIN app block: shopify://apps/attentive/blocks/attn-tag/8df62c72-8fe4-407e-a5b3-72132be30a0d -->
966<script type="text/javascript" src="https://vnuqz.seattlecoffeegear.com/providers/atLabel/load" onerror=" var fallbackScript = document.createElement('script'); fallbackScript.src = 'https://cdn.attn.tv/scgear/dtag.js'; document.head.appendChild(fallbackScript);" data-source="loaded?source=app-embed" defer="defer"></script>
966
967
968
969<!-- END app block --><!-- BEGIN app block: shopify://apps/hulk-form-builder/blocks/app-embed/b6b8dd14-356b-4725-a4ed-77232212b3c3 --><!-- BEGIN app snippet: hulkapps-formbuilder-theme-ext -->
969<script type="text/javascript">
970  
971  if (typeof window.formbuilder_customer != "object") {
972        window.formbuilder_customer = {}
973  }
974
975  
976
977  window.hulkFormBuilder = {
978    form_data: {"form_60qHpZ1FtrYgKhNxfL-IAg":{"uuid":"60qHpZ1FtrYgKhNxfL-IAg","form_name":"Price Matching","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"\u003ch3\u003e\u003cspan style=\"color:#282828;\"\u003ePrice Matching Request\u0026nbsp;\u003c\/span\u003e\u003c\/h3\u003e\n","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"\u003cp\u003eYour request has been submitted. Please allow 2-3 business days for a response.\u0026nbsp;\u003c\/p\u003e\n","captcha_enable":"no","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"2","form_width":"100%","form_border_size":"2","form_border_clr":"#ffffff","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"35","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"Price Matching","form_access_message":"\u
978003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","formElements":[{"type":"text","position":0,"label":"First Name","customClass":"","halfwidth":"yes","Conditions":{},"required":"yes","page_number":1},{"type":"text","position":1,"label":"Last Name","halfwidth":"yes","Conditions":{},"required":"yes","page_number":1},{"type":"email","position":2,"label":"Email","required":"yes","email_confirm":"no","Conditions":{},"page_number":1,"confirm_value":"no"},{"Conditions":{},"type":"phone","position":3,"label":"Phone Number","required":"yes","page_number":1},{"Conditions":{},"type":"text","position":4,"label":"Product Name","required":"yes","page_number":1},{"Conditions":{},"type":"text","position":5,"label":"Product Sku","page_number":1},{"Conditions":{},"type":"text","position":6,"label":"Competitor’s Price","required":"yes","page_number":1},{"Conditions":{},"type":"url","position":7,"label":"Competitor’s URL","required":"yes","page_number":1},{"type":"textarea","position":8,"label":"Configuration, options, and extra information","required":"no","Conditions":{},"page_number":1}]},"is_spam_form":false,"shop_uuid":"jUcCjp7iZCFpH5f2xrLeEA","shop_timezone":"America\/Los_Angeles","shop_id":96386,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"seattlecoffeegear.myshopify.com","popup_settings":{},"form_is_active":true},"form_9qywC9USrasPYBrL4HtySw":{"uuid":"9qywC9USrasPYBrL4HtySw","form_name":"Repairs \u0026 Service","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"\u003ch3\u003e\u003cspan style=\"color:#282828;\"\u003eRepair \u0026amp; Service Request Form - Please Submit As Much Information As You Can\u003c\/span\u003e\u003c\/h3\u003e\n","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"\u003cp\u003eYour request has been submitted. Please allow 2-3 business days for a response.\u0026nbsp;\u003c\/p\u003e\n","captcha_enable":"no","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"2","form_width":"100%","form_border_size":"2","form_border_clr":"#ffffff","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"35","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"Repairs \u0026 Service","form_access_message":"\u
978003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","formElements":[{"type":"text","position":0,"label":"First Name","customClass":"","halfwidth":"yes","Conditions":{},"page_number":1},{"type":"text","position":1,"label":"Last Name","halfwidth":"yes","Conditions":{},"page_number":1},{"Conditions":{},"type":"phone","position":2,"label":"Phone","page_number":1},{"type":"email","position":3,"label":"Email","required":"yes","email_confirm":"no","Conditions":{},"page_number":1,"confirm_value":"no"},{"Conditions":{},"type":"text","position":4,"label":"Shipping Line 1","required":"yes","page_number":1},{"Conditions":{},"type":"text","position":5,"label":"Shipping Line 2","page_number":1},{"Conditions":{},"type":"text","position":6,"label":"City","required":"yes","page_number":1},{"Conditions":{},"type":"text","position":7,"label":"State","required":"yes","page_number":1},{"Conditions":{},"type":"text","position":8,"label":"Zip Code","required":"yes","page_number":1},{"Conditions":{},"type":"text","position":9,"label":"Machine Make \u0026 Model","page_number":1},{"Conditions":{},"type":"text","position":10,"label":"Machine Serial Number","page_number":1},{"Conditions":{},"type":"text","position":11,"label":"SCG Order Number (if applicable, N\/A if not)","required":"yes","page_number":1},{"Conditions":{},"type":"textarea","position":12,"label":"What’s going on with the machine?","inputHeight":"75","required":"no","page_number":1},{"Conditions":{},"type":"textarea","position":13,"label":"How long has this been happening?","inputHeight":"75","page_number":1},{"Conditions":{},"type":"textarea","position":14,"label":"What regular maintenance have you been performing?","inputHeight":"75","page_number":1}]},"is_spam_form":false,"shop_uuid":"jUcCjp7iZCFpH5f2xrLeEA","shop_timezone":"America\/Los_Angeles","shop_id":96386,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"seattlecoffeegear.myshopify.com","popup_settings":{},"form_is_active":true},"form_ajma91DmHfxOgoUg8O9aXw":{"uuid":"ajma91DmHfxOgoUg8O9aXw","form_name":"Customization Inquiry","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"\u003ch3\u003eCustom Espresso Machine Design Inquiry\u003c\/h3\u003e\n","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"\u003cp\u003eThank you for submitting your customization request. Our team will review your ideas and contact you within 3 business days to explore the possibilities for your custom espresso machine. We\u0026#39;re excited to help create your perfect coffee setup.\u003c\/p\u003e\n","captcha_enable":"no","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"2","form_width":"100%","form_border_size":"2","form_border_clr":"#c7c7c7","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"35","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"Customization Inquiry","form_access_message":"\u
978003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","custommessage":{"thank_you":"Thank you for submitting your customization request. Our team will review your ideas and contact you within 3 business days to explore the possibilities for your custom espresso machine. We're excited to help create your perfect coffee setup."},"banner_img_width":"400","form_banner_alignment":"center","formElements":[{"type":"text","position":0,"label":"First Name","customClass":"","halfwidth":"yes","Conditions":{},"required":"yes","page_number":1},{"type":"text","position":1,"label":"Last Name","halfwidth":"yes","Conditions":{},"page_number":1},{"type":"email","position":2,"label":"Email","required":"yes","email_confirm":"yes","Conditions":{},"page_number":1},{"Conditions":{},"type":"phone","position":3,"label":"Phone Number","required":"yes","page_number":1},{"Conditions":{},"type":"text","position":4,"label":"Which Machine Would You Like to Customize?","page_number":1},{"type":"textarea","position":5,"label":"Tell us more about your customization ideas","required":"yes","Conditions":{},"page_number":1}]},"is_spam_form":false,"shop_uuid":"jUcCjp7iZCFpH5f2xrLeEA","shop_timezone":"America\/Los_Angeles","shop_id":96386,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"seattlecoffeegear.myshopify.com","popup_settings":{},"form_is_active":true},"form_EVr3tp98XDgj_TJslaiMSQ":{"uuid":"EVr3tp98XDgj_TJslaiMSQ","form_name":"Commercial Support","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"\u003cp\u003eYour request has been submitted. Please allow 2-3 business days for a response.\u0026nbsp;\u003c\/p\u003e\n","captcha_enable":"no","label_style":"inlineLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"rightBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"2","form_width":"100%","form_border_size":"2","form_border_clr":"#ffffff","form_border_radius":"2","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"2","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"Commercial Support","form_access_message":"\u
978003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","banner_img_height":"0","banner_img_width":"0","advance_css":".form_container .form-group {\n    margin-bottom: 0;\n}\n\n.form_submit_div {\n    margin-top: 0;\n}\n.form_generater_form_div .form_element{\n    display:flex;\n    justify-content:center;\n}\n.form-control {\nheight: 35px;\n}\n\n","formElements":[{"type":"email","position":0,"label":"Email","required":"yes","email_confirm":"no","Conditions":{},"page_number":1,"confirm_value":"no"}]},"is_spam_form":false,"shop_uuid":"jUcCjp7iZCFpH5f2xrLeEA","shop_timezone":"America\/Los_Angeles","shop_id":96386,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"seattlecoffeegear.myshopify.com","popup_settings":{},"form_is_active":true},"form_QukIiNiEmb-XWFQ53mdtAg":{"uuid":"QukIiNiEmb-XWFQ53mdtAg","form_name":"Contact Form","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"\u003ch3\u003e\u003cspan style=\"color:#282828;\"\u003eContact Us\u003c\/span\u003e\u003c\/h3\u003e\n","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"\u003cp\u003eYour request has been submitted. Please allow 2-3 business days for a response.\u0026nbsp;\u003c\/p\u003e\n","captcha_enable":"no","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"2","form_width":"100%","form_border_size":"2","form_border_clr":"#ffffff","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"35","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"Contact Form","form_access_message":"\u
978003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","formElements":[{"type":"text","position":0,"label":"First Name","customClass":"","halfwidth":"yes","Conditions":{},"page_number":1},{"type":"text","position":1,"label":"Last Name","halfwidth":"yes","Conditions":{},"page_number":1},{"type":"email","position":2,"label":"Email","required":"yes","email_confirm":"no","Conditions":{},"page_number":1,"confirm_value":"no"},{"type":"select","position":3,"label":"Subject","values":"Product Inquiry\nOrder Delivery\nReturn\nPayment Related\nOther","Conditions":{},"elementCost":{},"required":"yes","page_number":1},{"type":"textarea","position":4,"label":"Message","required":"yes","Conditions":{},"page_number":1}]},"is_spam_form":false,"shop_uuid":"jUcCjp7iZCFpH5f2xrLeEA","shop_timezone":"America\/Los_Angeles","shop_id":96386,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"seattlecoffeegear.myshopify.com","popup_settings":{},"form_is_active":true}},
979    shop_data: {"shop_jUcCjp7iZCFpH5f2xrLeEA":{"shop_uuid":"jUcCjp7iZCFpH5f2xrLeEA","shop_timezone":"America\/Los_Angeles","shop_id":96386,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"seattlecoffeegear.myshopify.com","shop_created_at":"2023-12-05T12:57:49.569-06:00","is_skip_metafield":false,"shop_deleted":false,"shop_disabled":false}},
980    settings_data: {"shop_settings":{"shop_customise_msgs":[],"default_customise_msgs":{"is_required":"is required","thank_you":"Thank you! The form was submitted successfully.","processing":"Processing...","valid_data":"Please provide valid data","valid_email":"Provide valid email format","valid_tags":"HTML Tags are not allowed","valid_phone":"Provide valid phone number","valid_captcha":"Please provide a valid CAPTCHA response.","valid_url":"Provide valid URL","only_number_alloud":"Provide valid number in","number_less":"must be less than","number_more":"must be more than","image_must_less":"Image must be less than 20MB","image_number":"Images allowed","image_extension":"Invalid extension! Please provide image file","error_image_upload":"Error in image upload. Please try again.","error_file_upload":"Error in file upload. Please try again.","your_response":"Your response","error_form_submit":"Error occur.Please try again after sometime.","email_submitted":"Form with this email is already submitted","invalid_email_by_zerobounce":"The email address you entered appears to be invalid. Please check it and try again.","download_file":"Download file","card_details_invalid":"Your card details are invalid","card_details":"Card details","please_enter_card_details":"Please enter card details","card_number":"Card number","exp_mm":"Exp MM","exp_yy":"Exp YY","crd_cvc":"CVV","payment_value":"Payment amount","please_enter_payment_amount":"Please enter a payment amount.","address1":"Address line 1","address2":"Address line 2","city":"City","province":"Province","zipcode":"Zip code","country":"Country","blocked_domain":"This form does not accept addresses from","file_must_less":"File must be less than 20MB","file_extension":"Invalid extension! Please provide file","only_file_number_alloud":"files allowed","previous":"Previous","next":"Next","must_have_a_input":"Please enter at least one field.","please_enter_required_data":"Please enter required data","atleast_one_special_char":"Include at least one special character","atleast_one_lowercase_char":"Include at least one lowercase character","atleast_one_uppercase_char":"Include at least one uppercase character","atleast_one_number":"Include at least one number","must_have_8_chars":"Must have 8 characters long","be_between_8_and_12_chars":"Be between 8 and 12 characters long","please_select":"Please Select","phone_submitted":"Form with this phone number is already submitted","user_res_parse_error":"Error while submitting the form","valid_same_values":"values must be the same","product_choice_clear_selection":"Clear Selection","picture_choice_clear_selection":"Clear Selection","remove_all_for_file_image_upload":"Remove All","invali
980d_file_type_for_image_upload":"You can't upload files of this type.","invalid_file_type_for_signature_upload":"You can't upload files of this type.","max_files_exceeded_for_file_upload":"You can not upload any more files.","max_files_exceeded_for_image_upload":"You can not upload any more files.","file_already_exist":"File already uploaded","max_limit_exceed":"You have added the maximum number of text fields.","cancel_upload_for_file_upload":"Cancel upload","cancel_upload_for_image_upload":"Cancel upload","cancel_upload_for_signature_upload":"Cancel upload"}}},
981    features_data: {"shop_plan_features":{"shop_plan_features":["unlimited-forms","full-design-customization","export-form-submissions","multiple-recipients-for-form-submissions","multiple-admin-notifications","enable-captcha","unlimited-file-uploads","save-submitted-form-data","set-auto-response-message","conditional-logic","form-banner","save-as-draft-facility","include-user-response-in-admin-email","disable-form-submission","mail-platform-integration","stripe-payment-integration","pre-built-templates","create-customer-account-on-shopify","google-analytics-3-by-tracking-id","facebook-pixel-id","bing-uet-pixel-id","advanced-js","advanced-css","api-available","customize-form-message","hidden-field","restrict-from-submissions-per-one-user","utm-tracking","ratings","privacy-notices","heading","paragraph","shopify-flow-trigger","domain-setup","block-domain","address","html-code","form-schedule","after-submit-script","customize-form-scrolling","on-form-submission-record-the-referrer-url","password","duplicate-the-forms","include-user-response-in-auto-responder-email","elements-add-ons","admin-and-auto-responder-email-with-tokens","email-export","premium-support","google-analytics-4-by-measurement-id","google-ads-for-tracking-conversion","validation-field","load_form_as_popup","advanced_conditional_logic","forms-limit","submissions-visibility-limit","file-upload"]}},
982    shop: null,
983    shop_id: null,
984    plan_features: null,
985    validateDoubleQuotes: false,
986    assets: {
987      searchableDropdown: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/searchable-dropdown.js",
988      extraFunctions: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/extra-functions.js",
989      extraStyles: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/extra-styles.css",
990      bootstrapStyles: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/theme-app-extension-bootstrap.css",
991    },
992    translations: {
993      htmlTagNotAllowed: "HTML Tags are not allowed",
994      sqlQueryNotAllowed: "SQL Queries are not allowed",
995      doubleQuoteNotAllowed: "Double quotes are not allowed",
996      
997      maxTextFieldsReached: "You have added the maximum number of text fields.",
998      
999
1000      
1001      zerobounceApiErrorMsg: "We couldn\u0026#39;t verify your email due to a technical issue. Please try again later.",
1002    }
1003
1004  }
1005
1006  
1007
1008  window.FbThemeAppExtSettingsHash = {}
1009  
1010</script>
1010<!-- END app snippet --><!-- END app block --><!-- BEGIN app block: shopify://apps/instant-ai-page-builder/blocks/instant_core/927e19d9-4e68-41db-99c7-d8debdc1f80d -->
1011<script>
1012window.Instant = {
1013  initialized: true,
1014  initializedAppEmbed: true,
1015  initializedVersion: 'latest',
1016  swiperScriptUrl: 'https://cdn.shopify.com/extensions/01a0d87c-c768-79e0-a5ea-5058a5161b12/instant-5-93/assets/swiper-bundle.min.js',
1017  swiperElementScriptUrl: 'https://cdn.shopify.com/extensions/01a0d87c-c768-79e0-a5ea-5058a5161b12/instant-5-93/assets/swiper-element-bundle.min.js'
1018};
1019</script>
1019
1020
1021<!-- END app block --><link href="https://cdn.shopify.com/extensions/01a0eeb5-5bd5-7dc0-8af1-1331a372e80e/magical-mandatory-fees-309/assets/magical-mandatory-fees.css" rel="stylesheet" type="text/css" media="all">
1022<script src="https://cdn.shopify.com/extensions/01a0ef11-ed59-7a1a-9dac-8835710c3c5e/applovin-shop-integration-98/assets/app-embed.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1022
1022
1023<script src="https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/form-builder-script.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1023
1023
1024<script src="https://cdn.shopify.com/extensions/01a0d87c-c768-79e0-a5ea-5058a5161b12/instant-5-93/assets/instant-core.min.js" type="text/javascript" defer="defer"></script>
1024
1025<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1026<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: 83175735603,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 1026
1026
1027<script>
1028  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
1029</script>
vendor: 1 bytes, line 1029
1029
1030<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}
1030).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: 83175735603,storefrontBaseUrl: "https://www.seattlecoffeegear.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.seattlecoffeegear.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2699559219","configuration":"{\"eventKey\":\"3eab9c2d-b368-4b82-b619-f82feff69fd3\",\"name\":\"seattlecoffeegear - Axon Pixel\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"4a5dfd2e28427774549854cee30cb444","type":"APP","apiClientId":256560922625,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2682683699","configuration":"{\"Enabled\":\"true\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"aa5ce03f4eef7efa71315100d12f21a1","type":"APP","apiClientId":34646425601,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
1030,"dataSharingState":"unrestricted"},{"id":"2629599539","configuration":"{\"webPixelName\":\"Judge.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8acc938b1a30dc7624e304493ca567d7","type":"APP","apiClientId":683015,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2378039603","configuration":"{ \"alias\": \"SEATTLECOFFEEGEAR\", \"apiKey\": \"ux4ung2maf2gh5lxklpkp.fc64n2iubntb63ae5o2db\" }","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"089c563d4539df58b1e71259ac47d388","type":"APP","apiClientId":6779637,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2083062067","configuration":"{\"accountID\":\"STSejp\",\"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":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"1997668659","configuration":"{\"storeHandle\":\"seattlecoffeegear.myshopify.com\", \"publisherId\": \"PDBMDL5DD\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"94a881e8d211e628cef2d7cbc6e68cf4","type":"APP","apiClientId":295989051393,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_phone","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1960575283","configuration":"{\"shop\":\"seattlecoffeegear.myshopify.com\",\"collect_url\":\"https:\\\/\\\/collect.bogos.io\\\/collect\",\"product_bundles_data\":\"[]\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"e375ae2aeef9215058b62ddff7136cb9","type":"APP","apiClientId":177733,"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":"1938456883","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"AW-16970674238\\\",\\\"GT-WF65MHJ8\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"AW-16970674238\\\/Iu93CNbmmrYbEL7gn5w_\\\"},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"AW-16970674238\\\/kkY7COLmmrYbEL7gn5w_\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"AW-16970674238\\\/Kqg2CN_mmrYbEL7gn5w_\\\",\\\"MC-9T35VLNWRH\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"AW-16970674238\\\/t-dcCK_jmrYbEL7gn5w_\\\",\\\"MC-9T35VLNWRH\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"AW-16970674238\\\/fxpRCNzmmrYbEL7gn5w_\\\",\\\"MC-9T35VLNWRH\\\"]},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"AW-16970674238\\\/oceICOXmmrYbEL7gn5w_\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"AW-16970674238\\\/CbShCNnmmrYbEL7gn5w_\\\"}],\\\"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"]}
1030,"dataSharingState":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"1899233587","configuration":"{\"siteId\":\"XLaEWoFqbzE9Zww0\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0d1a379d85da8550d7ec5af32a393808","type":"APP","apiClientId":45694124033,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1659732275","configuration":"{\"projectId\":\"giuxwlq7uu\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d8a2bb2ccbb513dc8e8b6937f4b8033e","type":"APP","apiClientId":240074326017,"privacyPurposes":[],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1280377139","configuration":"{\"apiKey\":\"AZEdZV1lT9zETRDMg2Lu\",\"attributionWindow\":\"30\",\"conversionEnabled\":\"true\",\"environment\":\"production\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"04760ab023d53cff6a3abe9df0d382b2","type":"APP","apiClientId":308803,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1273004339","configuration":"{\"pixel_id\":\"661303220098261\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"1257603379","configuration":"{\"siteKey\":\"FXvbEP9ZXZpRg6qsite\",\"conversionEnabled\":\"false\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"a185a2fe7c225022100281af9c86107c","type":"APP","apiClientId":2865993,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1253179699","configuration":"{\"campaignID\":\"34034\",\"externalExecutionURL\":\"https:\/\/engine.saasler.com\/api\/v1\/webhook_executions\/db77a4fa0e5dcf2f857f9adbab2701d5\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"4d2ae310e7f99f154f33560b5c81cfa9","type":"APP","apiClientId":3546795,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"171245875","configuration":"{\"env\":\"prod\"}","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"8a9a175b11d15038a70fe78d09c59720","type":"APP","apiClientId":3977633,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"149553459","configuration":"{\"config_url\": \"https:\/\/shopify-gtm-suite.getelevar.com\/configs\/e8c7e1722fb779ca0c54f08e5147149f4f8b689d\/config.js\"}","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"7ae63d00911d5ee26809bf1e3232d852","type":"APP","apiClientId":2509311,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
1030,"dataSharingState":"unrestricted"},{"id":"93487411","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"3","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Elevar - Checkout Tracking"},{"id":"112165171","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"20","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"GTM - SiteGP v3"},{"id":"120815923","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Tagalys - Order Tracking"},{"id":"131563827","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Attentive Custom App"},{"id":"184844595","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"FenixCommerce fenixSSID cookie"},{"id":"187892019","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"Remark pixel"},{"id":"190349619","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Neon Pixel Shopify Conversion"},{"id":"206930227","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"compose"},{"id":"219578675","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"optiversal-pixel"},{"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":"Seattle Coffee Gear","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"seattlecoffeegear.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.seattlecoffeegear.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://www.seattlecoffeegear.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"161449935155","themePublished":"true","eventMetadataId":"0bd78160-07b1-45ba-86cb-e2868046adde","pageType":"page","resourceId":"131213820211","shopId":"83175735603","storefrontBaseUrl":"https:\/\/www.seattlecoffeegear.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>
1030<script>
1031  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
1032  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
1033  window.ShopifyAnalytics.meta.currency = 'USD';
1034  var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":131213820211,"requestId":"6dba6a37-1c1c-45f4-9da1-d786ce63be3d-1790909108"}};
1035  for (var attr in meta) {
1036    window.ShopifyAnalytics.meta[attr] = meta[attr];
1037  }
1038</script>
vendor: 1 bytes, line 1038
1038
1039<script class="analytics">
1040  (function () {
1041    var customDocumentWrite = function(content) {
1042      var jquery = null;
1043
1044      if (window.jQuery) {
1045        jquery = window.jQuery;
1046      } else if (window.Checkout && window.Checkout.$) {
1047        jquery = window.Checkout.$;
1048      }
1049
1050      if (jquery) {
1051        jquery('body').append(content);
1052      }
1053    };
1054
1055    var hasLoggedConversion = function(token) {
1056      if (token) {
1057        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
1058      }
1059      return false;
1060    }
1061
1062    var setCookieIfConversion = function(token) {
1063      if (token) {
1064        var twoMonthsFromNow = new Date(Date.now());
1065        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
1066
1067        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
1068      }
1069    }
1070
1071    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
1072    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
1073    if (trekkie.integrations) {
1074      return;
1075    }
1076    trekkie.methods = [
1077      'identify',
1078      'page',
1079      'ready',
1080      'track',
1081      'trackForm',
1082      'trackLink'
1083    ];
1084    trekkie.factory = function(method) {
1085      return function() {
1086        var args = Array.prototype.slice.call(arguments);
1087        args.unshift(method);
1088        trekkie.push(args);
1089        if (method == 'track' || method == 'page') {
1090          var pageUrl;
1091          try {
1092            pageUrl = window.location.href;
1093          } catch (e) {}
1094          var pageReferrer;
1095          try {
1096            pageReferrer = document.referrer;
1097          } catch (e) {}
1098          try {
1099            if (window.__TREKKIE_SHIM_QUEUE == null) {
1100              window.__TREKKIE_SHIM_QUEUE = [];
1101            }
1102            window.__TREKKIE_SHIM_QUEUE.push({
1103              from: 'trekkie-stub',
1104              method: method,
1105              args: args.slice(1),
1106              pageContext: {
1107                url: pageUrl,
1108                referrer: pageReferrer
1109              }
1110            });
1111          } catch (e) {
1112            // no-op
1113          }
1114        }
1115        return trekkie;
1116      };
1117    };
1118    for (var i = 0; i < trekkie.methods.length; i++) {
1119      var key = trekkie.methods[i];
1120      trekkie[key] = trekkie.factory(key);
1121    }
1122    trekkie.load = function(config) {
1123      trekkie.config = config || {};
1124      trekkie.config.initialDocumentCookie = document.cookie;
1125      var first = document.getElementsByTagName('script')[0];
1126var script = document.createElement('script');
1127script.type = 'text/javascript';
1128script.onerror = function(e) {
1129  var scriptFallback = document.createElement('script');
1130  scriptFallback.type = 'text/javascript';
1131  scriptFallback.onerror = function(error) {
1132          var Monorail = {
1133      produce: function produce(monorailDomain, schemaId, payload) {
1134        var currentMs = new Date().getTime();
1135        var event = {
1136          schema_id: schemaId,
1137          payload: payload,
1138          metadata: {
1139            event_created_at_ms: currentMs,
1140            event_sent_at_ms: currentMs
1141          }
1142        };
1143        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
1144      },
1145      sendRequest: function sendRequest(endpointUrl, payload) {
1146        // Try the sendBeacon API
1147        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
1148          var blobData = new window.Blob([payload], {
1149            type: 'text/plain'
1150          });
1151
1152          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
1153            return true;
1154          } // sendBeacon was not successful
1155
1156        } // XHR beacon
1157
1158        var xhr = new XMLHttpRequest();
1159
1160        try {
1161          xhr.open('POST', endpointUrl);
1162          xhr.setRequestHeader('Content-Type', 'text/plain');
1163          xhr.send(payload);
1164        } catch (e) {
1165          console.log(e);
1166        }
1167
1168        return false;
1169      },
1170      isIos12: function isIos12() {
1171        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
1172      }
1173    };
1174    Monorail.produce('monorail-edge.shopifysvc.com',
1175      'trekkie_storefront_load_errors/1.1',
1176      {shop_id: 83175735603,
1177      theme_id: 161449935155,
1178      app_name: "storefront",
1179      context_url: window.location.href,
1180      source_url: "//www.seattlecoffeegear.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"});
1181
1182  };
1183  scriptFallback.async = true;
1184  scriptFallback.src = '//www.seattlecoffeegear.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js';
1185  first.parentNode.insertBefore(scriptFallback, first);
1186};
1187script.async = true;
1188script.src = '//www.seattlecoffeegear.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js';
1189first.parentNode.insertBefore(script, first);
1190
1191    };
1192    trekkie.load(
1193      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":83
1193175735603,"isMerchantRequest":null,"themeId":161449935155,"themeCityHash":"15906657896118771968","contentLanguage":"en","currency":"USD","eventMetadataId":"0bd78160-07b1-45ba-86cb-e2868046adde"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}}
1194    );
1195
1196    var loaded = false;
1197    trekkie.ready(function() {
1198      if (loaded) return;
1199      loaded = true;
1200
1201      window.ShopifyAnalytics.lib = window.trekkie;
1202
1203      var originalDocumentWrite = document.write;
1204      document.write = customDocumentWrite;
1205      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
1206      document.write = originalDocumentWrite;
1207
1208      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
1209      var token = match? match[1]: undefined;
1210      if (!hasLoggedConversion(token)) {
1211        setCookieIfConversion(token);
1212        
1213      }
1214    });
1215
1216    window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":131213820211,"requestId":"6dba6a37-1c1c-45f4-9da1-d786ce63be3d-1790909108","shopifyEmitted":true});
1217
1218    var eventsListenerScript = document.createElement('script');
1219    eventsListenerScript.async = true;
1220    eventsListenerScript.src = "//www.seattlecoffeegear.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
1221    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
1222})();</script>
vendor: 1 bytes, line 1222
1222
1223<script
1224  defer
1225  src="https://www.seattlecoffeegear.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js"
1226  data-application="storefront-renderer"
1227  data-shop-id="83175735603"
1228  data-render-region="gcp-us-central1"
1229  data-page-type="page"
1230  data-theme-instance-id="161449935155"
1231  data-theme-name="Paper"
1232  data-theme-version="6.1.3"
1233  data-monorail-region="shop_domain"
1234  data-resource-timing-sampling-rate="10"
1235  data-shs="true"
1236  data-shs-beacon="true"
1237  data-shs-export-with-fetch="true"
1238  data-shs-logs-sample-rate="1"
1239  data-shs-beacon-endpoint="https://www.seattlecoffeegear.com/api/collect"
1240></script>
1240
1241<meta name="shopify-y" content="6c5c8185-459d-4ad5-bd3f-f96249ba0af2" data-expiration="1822466708000"><meta name="shopify-s" content="26a8d05f-9750-48f2-aa9f-ccdb943fa0ea" data-expiration="1790910908000"><meta name="new-cookie-storage-activated" content="t">
1242</head>
1243  <body class="
1244      min-h-[100vh] break-words
1245      page-learn-articles
1246    ">
1247    <div
1248      x-data="app()"
1249      x-init="
1250        handleSharedCart();
1251        updateCart(false);
1252        initScroll();
1253      "
1254      class="min-h-[100vh] flex flex-col">
1255      
1255<script>
1256              // Global error handler to catch unhandled promise rejections
1257              window.addEventListener('unhandledrejection', function(event) {
1258        console.warn('Unhandled promise rejection caught:', event.reason);
1259        // Prevent the error from propagating and interrupting execution
1260        event.preventDefault();
1261              });
1262              
1263              // Also catch synchronous errors that might occur
1264              window.addEventListener('error', function(event) {
1265        // Only log and continue - don't break page functionality
1266        if (event.error) {
1267          console.warn('Global error caught:', event.error.message);
1268        }
1269              });
1270      </script>
1270
1271      <a href="#root" class="color__bg-body border__button--radius fixed left-4 top-4 z-50 -translate-y-20 transform px-4 py-2 no-underline shadow-md focus:translate-y-0">
1272        Skip to content
1273      </a>
1274
1275      <header
1276        class="
1277        z-30
1278        dynamic
1279        sticky top-0 left-0 right-0 animation-300
1280        
1281      "
1282        :class="
1283        {
1284          '!z-10' : hide_header
1285        }
1286      "
1287        x-ref="header"
1288        
1289        x-bind:style="
1290          is_scrolled ?
1291          'transform: translateY(-2rem); opacity: 0; pointer-events: none;' :
1292          'transform: none; opacity: 1;'
1293        "
1294        >
1295        <!-- BEGIN sections: header-group -->
1296<div id="shopify-section-sections--21256152121651__theme_announcement" class="shopify-section shopify-section-group-header-group theme__announcement"><!-- sections/theme__announcement.liquid -->
1297
1298
1299<section
1300  class="
1301    relative
1302    
1303    color__bg-tertiary color__tertiary
1304  "
1305>
1306  <div
1307    class="
1308      min-h-[60px] py-2 flex flex-wrap items-center justify-center
1309      window--wide
1310    "
1311  >
1312    
1313    <div
1314      class="
1315        items-center justify-start flex-shrink hidden lg:flex lg:w-1/4
1316        
1317      "
1318    >
1319      
1320    </div>
1321
1322    
1323    <div
1324      class="
1325        flex items-center flex-grow w-full lg:text-left lg:w-1/2
1326        
1327        justify-center
1328      "
1329    >
1330      <div
1331        class=" relative w-full"
1332        x-data="
1333          {
1334            index: 1,
1335            index_size: 0,
1336            incrementFlash() {
1337              if (this.index == this.index_size){
1338                this.index = 1;
1339              }
1340              else {
1341                this.index++;
1342              }
1343            },
1344            autoIncrement() {
1345              setInterval(() => this.incrementFlash(), 7000);
1346            }
1347          }
1348        "
1349        
1350          x-init="autoIncrement()"
1351        
1352      >
1353        <div class="relative flex w-full min-h-[16px] overflow-hidden">
1354          
1355        </div>
1356      </div>
1357    </div>
1358
1359    
1360    <div class="lg:flex lg:w-1/4 items-center justify-end hidden">
1361      
1362
1363      
1364    </div>
1365  </div>
1366</section>
1367
1368
1369</div><div id="shopify-section-sections--21256152121651__theme_header" class="shopify-section shopify-section-group-header-group"><!-- sections/theme__header.liquid -->
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382<nav
1383  class="
1384    border--b-width
1385    
1386    color__bg-body color__text
1387    color__border-divider-1
1388  "
1389  x-data="
1390    {
1391      search_visible: true,
1392      search_active: false
1393    }
1394  "
1395  x-init="initTagalys(function () {Tagalys.Analytics.trackPlatformEvents();}); hideCookieBanner(window.location.pathname);">
1396<div class="relative"><div class="
1397        lg:hidden flex flex-wrap items-center py-2
1398        window--wide
1399      "><div class="flex items-center justify-start flex-grow flex-shrink basis-0">
1400      
1401        <button
1402          @click="menu_drawer = true; if(enable_audio) { playSound(click_audio) }"
1403          class="inline-flex py-2 pr-4 mr-2 no-underline type__nav no-js--hide"
1404          title="Menu">
1405          <!-- snippets/component__icon.liquid -->
1406
1407
1408<span class="inline-flex align-middle " aria-hidden="true">
1409  
1410      <svg
1411        xmlns="http://www.w3.org/2000/svg"
1412        width="24"
1413        height="24"
1414        viewBox="0 0 24 24"
1415        fill="none"
1416        stroke="currentColor"
1417        stroke-width="2"
1418        stroke-linecap="round"
1419        stroke-linejoin="round"
1420        class="feather feather-menu"
1421      >
1422        <line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line>
1423      </svg>
1424    
1425</span>
1426
1427        </button>
1428      
1429
1430      <noscript>
1431        
1432          <button
1433            @click="menu_drawer = true; if(enable_audio) { playSound(click_audio) }"
1434            class="inline-flex py-2 pr-4 mr-2 no-underline type__nav peer"
1435            title="Menu">
1436            <!-- snippets/component__icon.liquid -->
1437
1438
1439<span class="inline-flex align-middle " aria-hidden="true">
1440  
1441      <svg
1442        xmlns="http://www.w3.org/2000/svg"
1443        width="24"
1444        height="24"
1445        viewBox="0 0 24 24"
1446        fill="none"
1447        stroke="currentColor"
1448        stroke-width="2"
1449        stroke-linecap="round"
1450        stroke-linejoin="round"
1451        class="feather feather-menu"
1452      >
1453        <line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line>
1454      </svg>
1455    
1456</span>
1457
1458          </button>
1459        
1460
1461        <div class="color__bg-body border--t-width color__border-divider-1 fixed bottom-0 left-0 right-0 -z-10 mt-28 hidden max-h-[70vh] w-full overflow-scroll focus-within:block hover:block peer-focus:block"><a class="block w-full p-4 no-underline border--b-width color__border-divider-1" href="#">Shop Gear </a>
1462            
1463              <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" href="/collections/espresso-machines">Espresso Machines</a>
1464              
1465                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/semi-automatic">Semi-Automatic</a>
1466              
1467                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/superautomatic-espresso-machines">Superautomatic </a>
1468              
1469                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/espresso-machine-bundles">Bundle and Save! </a>
1470              
1471            
1472              <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" href="/collections/grinders">Grinders</a>
1473              
1474                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/espresso-grinders">Espresso Grinders</a>
1475              
1476                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/coffee-grinders">Coffee Grinders</a>
1477              
1478                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/grinder-accessories">Grinder Accessories</a>
1479              
1480            
1481              <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" href="/collections/coffee-makers">Coffee Makers</a>
1482              
1483                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/drip-brewers">Drip Brewers</a>
1484              
1485                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/french-presses">French Presses</a>
1486              
1487                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/stove-top-coffee-makers">Stove Top </a>
1488              
1489                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/cold-brew">Cold Brew</a>
1490              
1491                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/pour-overs">Pour Overs</a>
1492              
1493            
1494              <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" href="/collections/accessories">Accessories</a>
1495              
1496                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/cleaning-supplies">Cleaning Supplies</a>
1497              
1498                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/filters">Filters</a>
1499              
1500                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/espresso-accessories">Espresso Accessories</a>
1501              
1502                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/scales-and-measuring">Scales and Measuring</a>
1503              
1504                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/coffee-storage">Coffee Storage</a>
1505              
1506                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/cups">Cups</a>
1507              
1508                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/kettles">Kettles</a>
1509              
1510                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/milk-frothers">Milk Frothers</a>
1511              
1512                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/tea-ware">Tea Ware</a>
1513              
1514                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/all-parts">Parts </a>
1515              
1516                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/espresso-machine-maintenance-filters-subscribable">Subscriptions</a>
1517              
1518            
1519<a class="block w-full p-4 no-underline border--b-width color__border-divider-1" href="#">Shop Coffee</a>
1520            
1521              <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" href="/collections/coffee">Coffee</a>
1522              
1523                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/coffee-new-arrivals">New Arrivals</a>
1524              
1525                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/staff-picks-coffee">Staff Picks</a>
1526              
1527                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/pages/roasters">Shop Roasters</a>
1528              
1529                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="https://www.seattlecoffeegear.com/collections/coffee/subscribable">Subscriptions</a>
1530              
1531            
1532              <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" href="#">Roast Level</a>
1533              
1534                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/light-roast">Light</a>
1535              
1536                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/medium-roast">Medium</a>
1537              
1538                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/dark-roast">Dark </a>
1539              
1540            
1541              <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" href="#">Taste Profile</a>
1542              
1543                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/balanced">Balanced</a>
1544              
1545                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/bright-and-floral">Bright and Floral</a>
1546              
1547                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/earth-and-smoke">Earth and Smoke</a>
1548              
1549                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/fruit-forward">Fruit Forward</a>
1550              
1551                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/rich-and-sweet">Rich and Sweet</a>
1552              
1553            
1554              <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" href="#">Brew Method</a>
1555              
1556                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/superautomatic-friendly">Superautomatic Friendly</a>
1557              
1558                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/espresso">Espresso</a>
1559              
1560                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/drip">Drip Coffee</a>
1561              
1562                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/pour-over-coffee">Pour Over</a>
1563              
1564            
1565              <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" href="#">Specialty</a>
1566              
1567                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/single-origin">Single Origin</a>
1568              
1569                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/blends">Blends</a>
1570              
1571                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/decaf">Decaf</a>
1572              
1573                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/organic">Organic</a>
1574              
1575                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/european-favorites">European Favorites</a>
1576              
1577                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/direct-trade">Fair/Direct Trade</a>
1578              
1579            
1580<a class="block w-full p-4 no-underline border--b-width color__border-divider-1" href="#">Commercial</a>
1581            
1582              <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" href="/collections/commercial-espresso-machines">Commercial Machines</a>
1583              
1584                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/commercial-semi-automatic">Semi-automatic</a>
1585              
1586                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/commercial-superautomatic">Superautomatic</a>
1587              
1588            
1589              <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" href="/collections/commercial-grinders">Commercial Grinders</a>
1590              
1591                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/commercial-coffee-grinders">Coffee Grinders</a>
1592              
1593                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/commercial-espresso-grinders">Espresso Grinders</a>
1594              
1595            
1596              <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" href="/collections/commercial-brewing">Commercial Brewing</a>
1597              
1598                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/commercial-drip-brewers">Drip</a>
1599              
1600                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/commercial-cold-brew-and-tea">Cold Brew and Tea</a>
1601              
1602            
1603              <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-8 no-underline" href="/collections/commercial-accessories">Commercial Accessories</a>
1604              
1605                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/commercial-maintenance">Maintenance</a>
1606              
1607                <a class="border--b-width color__border-divider-1 block w-full p-4 !pl-12 no-underline" href="/collections/commercial-cleaning-supplies">Cleaning Supplies</a>
1608              
1609            
1610<a class="block w-full p-4 no-underline border--b-width color__border-divider-1" href="/collections/sale">SALE</a>
1611            
1612</div>
1613      </noscript>
1614    </div>
1615    <div class="flex max-w-[60%] items-center sm:max-w-[70%]">
1616      
1617
1618      
1619      
1620        <a
1621          class="relative !inline-block flex hidden items-center"
1622          style="
1623          height: 60px;
1624          width: 246.0px;
1625        "
1626          href="/"
1627          title="Seattle Coffee Gear">
1628          <img src="//www.seattlecoffeegear.com/cdn/shop/files/SCG_LOGO_Primary_Red_Black.svg?v=1702922034&amp;width=400" alt="Seattle Coffee Gear Logo" srcset="//www.seattlecoffeegear.com/cdn/shop/files/SCG_LOGO_Primary_Red_Black.svg?v=1702922034&amp;width=352 352w, //www.seattlecoffeegear.com/cdn/shop/files/SCG_LOGO_Primary_Red_Black.svg?v=1702922034&amp;width=400 400w" width="400" height="98" class="w-full h-full !bg-transparent object-contain">
1629        </a>
1630      
1631      
1632    </div>
1633    <div class="flex items-center justify-end flex-grow flex-shrink text-right basis-0 gap-3">
1634      
1635        <!-- snippets/header__search-mobile.liquid -->
1636
1637
1638<div
1639  class="no-js--hide flex-grow w-full pt-2 ml-3"
1640  x-data="
1641    {
1642      search: false,
1643      params: {
1644        author: false,
1645        body: false,
1646        product_type: true,
1647        tag: true,
1648        title: true,
1649        variants_barcode: true,
1650        variants_sku: true,
1651        variants_title: true,
1652        vendor: true
1653      },
1654      resources: {
1655        article: false,
1656        collection: true,
1657        page: false,
1658        product: true,
1659        query: true
1660      }
1661    }
1662  "
1663>
1664  <form
1665    action="/search"
1666    method="get"
1667    x-init="initTagalys(function () {initSearchSuggestions();});"
1668  >
1669    <div
1670      class="relative min-h-[]"
1671      :class="{ 'z-10': search_active }"
1672    >
1673      
1674      <input type="hidden" name="type" value="product">
1675      <div
1676        class="animation-500 absolute top-0 w-full hidden"
1677        :class="{ 'z-10 !fixed !block left-4 !top-4 right-4 !w-auto': search_active }"
1678      >
1679        <label
1680          class="sr-only"
1681          for="search-mobile"
1682        >Search</label>
1683        <input
1684          id="search-mobile"
1685          class="
1686            form-input !pl-8 color__text !min-h-0
1687            color__border-divider-1
1688          "
1689          type="text"
1690          autocomplete="off"
1691          name="q"
1692          placeholder="Search by products, colors, or more..."
1693          x-ref="searchInputMobile"
1694          @focus="search_active = true; renderFocusSuggestions($event);"
1695          @input.debounce="updateSearchSuggestions($event)"
1696        >
1697        <div class="right-2 absolute top-0 flex items-center h-full">
1698          <button
1699            class="btn btn--smaller btn--plain !bg-transparent !border-0 opacity-0"
1700            :class="{ '!opacity-100' : search_active }"
1701            type="button"
1702            title="Cancel search"
1703            @click="search_active = false; $refs.searchInputMobile.value = '';"
1704            x-show="search_active"
1705          >
1706            <!-- snippets/component__icon.liquid -->
1707
1708
1709<span class="inline-flex align-middle " aria-hidden="true"
1709>
1710  
1711      <svg
1712        xmlns="http://www.w3.org/2000/svg"
1713        width="16"
1714        height="16"
1715        viewBox="0 0 24 24"
1716        fill="none"
1717        stroke="currentColor"
1718        stroke-width="2"
1719        stroke-linecap="round"
1720        stroke-linejoin="round"
1721        class="feather feather-x"
1722      >
1723        <line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line>
1724      </svg>
1725    
1726</span>
1727
1728          </button>
1729        </div>
1730        <!-- snippets/component__icon.liquid -->
1731
1732
1733<span class="inline-flex align-middle absolute !flex items-center
1734          top-0 left-2 h-full opacity-50 color__text" aria-hidden="true">
1735  
1736      <svg
1737        xmlns="http://www.w3.org/2000/svg"
1738        width="20"
1739        height="20"
1740        viewBox="0 0 24 24"
1741        fill="none"
1742        stroke="currentColor"
1743        stroke-width="2"
1744        stroke-linecap="round"
1745        stroke-linejoin="round"
1746        class="feather feather-search"
1747      >
1748        <circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line>
1749      </svg>
1750    
1751</span>
1752
1753      </div>
1754
1755      <button
1756        type="button"
1757        class=""
1758        aria-label="Open Search"
1759        @click="search_active = true; $nextTick(() => { $refs.searchInputMobile.focus(); renderFocusSuggestions({ target: $refs.searchInputMobile }); });"
1760      >
1761        <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
1762          <circle cx="11" cy="11" r="8"></circle>
1763          <line x1="21" y1="21" x2="16.65" y2="16.65"></line>
1764        </svg>
1765      </button><div
1766        class="
1767          fixed overflow-hidden mobile-border--radius-t-0 shadow-md border--width border--radius animation-100 left-0 right-0 top-0 pt-14
1768          color__border-divider-1
1769          color__bg-body color__text
1770        "
1771        x-show="search_active"
1772        
1773          x-transition:enter="animation-300"
1774          x-transition:enter-start="opacity-0"
1775          x-transition:enter-end="opacity-100"
1776          x-transition:leave="animation-300"
1777          x-transition:leave-start="opacity-100"
1778          x-transition:leave-end="opacity-0"
1779        
1780        x-cloak
1781      >
1782        <div class="flex flex-wrap h-full px-4 -mx-4 overflow-y-auto">
1783          <div class="h-[50vh] w-full overflow-y-auto">�<div
1784              class="p-4"
1785              x-show="search_loading"
1786              x-cloak
1787            >
1788              <div class="btn--load btn--loading">
1789                <div class="btn__content">Loading...</div>
1790                <div class="btn__spinner">
1791                  <!-- snippets/component__icon.liquid -->
1792
1793
1794<span class="inline-flex align-middle " aria-hidden="true">
1795  
1796      <svg
1797        xmlns="http://www.w3.org/2000/svg"
1798        width="20"
1799        height="20"
1800        viewBox="0 0 24 24"
1801        fill="none"
1802        stroke="currentColor"
1803        stroke-width="2"
1804        stroke-linecap="round"
1805        stroke-linejoin="round"
1806        class="feather feather-loader"
1807      >
1808        <line x1="12" y1="2" x2="12" y2="6"></line><line x1="12" y1="18" x2="12" y2="22"></line><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"></line><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"></line><line x1="2" y1="12" x2="6" y2="12"></line><line x1="18" y1="12" x2="22" y2="12"></line><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"></line><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"></line>
1809      </svg>
1810    
1811</span>
1812
1813                </div>
1814              </div>
1815            </div><div
1816              class="
1817                sticky top-0 z-10 border--b-width p-4
1818                color__border-divider-1
1819                color__bg-body color__text
1820              "
1821              x-show="(search_items && search_items.length != 0) || (search_items_pages && search_items_pages.length !== 0) || (search_items_articles && search_items_articles.length !== 0) && !search_loading"
1822              x-cloak
1823            >
1824              <button
1825                class="underline"
1826                type="submit"
1827              >
1828                View all results
1829              </button>
1830            </div>
1831
1832            
1833            <div
1834              x-show="!search_loading && $refs.searchInputMobile.value.length == 0"
1835              x-cloak
1836            >
1837              <div
1838                class="p-4 pt-2 border--b-width color__border-divider-1"
1839                x-show="search_items_recent && search_items_recent.length !== 0"
1840              >
1841                <span class="type--small pb-2 no-underline">
1842                  <strong>Recent</strong>
1843                </span>
1844                <template x-for="item in search_items_recent">
1845                  <div class="flex items-center justify-between">
1846                    <div class="flex items-center">
1847                      <!-- snippets/component__icon.liquid -->
1848
1849
1850<span class="inline-flex align-middle mr-1" aria-hidden="true">
1851  
1852      <svg xmlns="http://www.w3.org/2000/svg" width="20" viewBox="0 0 512 512">
1853        <!--!Font Awesome Pro 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2024 Fonticons, Inc.--><path d="M418 187.1C391.2 124.1 328.7 80 256 80c-39.7 0-77.8 15.8-105.9 43.9l-4.1 4.1 35.7 35.7c6.6 6.6 10.3 15.6 10.3 25c0 19.5-15.8 35.3-35.3 35.3H40c-13.3 0-24-10.7-24-24V83.3C16 63.8 31.8 48 51.3 48c9.4 0 18.3 3.7 25 10.3L112 94.1l4.1-4.1C153.2 52.8 203.5 32 256 32c92.6 0 172.1 56.2 206.2 136.3c5.2 12.2-.5 26.3-12.7 31.5s-26.3-.5-31.5-12.7zM50 344.1c-5.2-12.2 .4-26.3 12.6-31.5s26.3 .4 31.5 12.6C121 388.1 183.4 432 256 432c39.7 0 77.8-15.8 105.9-43.9l4.1-4.1-35.7-35.7c-6.6-6.6-10.3-15.6-10.3-25c0-19.5 15.8-35.3 35.3-35.3H472c13.3 0 24 10.7 24 24V428.7c0 19.5-15.8 35.3-35.3 35.3c-9.4 0-18.3-3.7-25-10.3L400 417.9l-4.1 4.1C358.8 459.2 308.5 480 256 480c-92.5 0-171.8-56-206-135.9zM64 176h62.1L64 113.9V176zM448 336H385.9L448 398.1V336z"/>
1854      </svg>
1855    
1856</span>
1857
1858                      <a
1859                        class="whitespace-nowrap text-ellipsis overflow-hidden no-underline"
1860                        :href="window.location.origin + '/search?type=product&' + item.queryString"
1861                        x-html="item.displayString"
1862                      >
1863                      </a>
1864                    </div>
1865                    <button
1866                      class="btn btn--search__remove"
1867                      @click="removeRecentSearch(item.queryString)"
1868                    >
1869                      <!-- snippets/component__icon.liquid -->
1870
1871
1872<span class="inline-flex align-middle " aria-hidden="true">
1873  
1874      <svg
1875        xmlns="http://www.w3.org/2000/svg"
1876        width="16"
1877        height="16"
1878        viewBox="0 0 24 24"
1879        fill="none"
1880        stroke="currentColor"
1881        stroke-width="2"
1882        stroke-linecap="round"
1883        stroke-linejoin="round"
1884        class="feather feather-x"
1885      >
1886        <line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line>
1887      </svg>
1888    
1889</span>
1890
1891                    </button>
1892                  </div>
1893                </template>
1894              </div>
1895              <div
1896                class="p-4 pt-2 border--b-width color__border-divider-1"
1897                x-show="search_items_suggestions && search_items_suggestions.length !== 0"
1898              >
1899                <span class="type--small pb-2 no-underline">
1900                  <strong>Trending</strong>
1901                </span>
1902                <template x-for="item in search_items_suggestions">
1903                  <div class="flex items-center">
1904                    <!-- snippets/component__icon.liquid -->
1905
1906
1907<span class="inline-flex align-middle mr-1" aria-hidden="true">
1908  
1909      <svg xmlns="http://www.w3.org/2000/svg" width="20" viewBox="0 0 576 512">
1910        <!--!Font Awesome Pro 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2024 Fonticons, Inc.--><path d="M352 120c0-13.3 10.7-24 24-24H552c13.3 0 24 10.7 24 24V296c0 13.3-10.7 24-24 24s-24-10.7-24-24V177.9L337 369c-9.4 9.4-24.6 9.4-33.9 0l-111-111L41 409c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L175 207c9.4-9.4 24.6-9.4 33.9 0l111 111L494.1 144H376c-13.3 0-24-10.7-24-24z"/>
1911      </svg>
1912    
1913</span>
1914
1915                    <a
1916                      class="whitespace-nowrap text-ellipsis overflow-hidden no-underline"
1917                      :href="window.location.origin + '/search?type=product&' + item.queryString"
1918                      x-html="item.displayString"
1919                    >
1920                    </a>
1921                  </div>
1922                </template>
1923              </div>
1924            </div><div
1925              x-show="!search_loading && $refs.searchInputMobile.value.length > 0"
1926              x-cloak
1927            >
1928              <div
1929                class="p-4"
1930                x-show="(search_items && search_items.length === 0) && (search_items_pages && search_items_pages.length === 0) && (search_items_articles && search_items_articles.length === 0) && !search_loading"
1931                x-cloak
1932              >
1933                <p>No results found</p>
1934              </div>
1935
1936              
1937              <div
1938                class="
1939                  p-4 border--b-width
1940                  color__border-divider-1
1941                "
1942                x-show="search_items && search_items.length != 0"
1943              >
1944                <span class="type--small pb-2 no-underline">
1945                  <strong>Products</strong>
1946                </span>
1947
1948                <div class="md:gap-4 grid grid-cols-1 gap-2">
1949                  <template x-for="item in search_items">
1950                    <a
1951                      class="hover:no-underline border--width border--radius color__bg-body color__text color__border-divider-1 flex items-center w-full overflow-hidden no-underline"
1952                      :href="'/products/'+ item.handle"
1953                    >
1954                      <div class="w-[25%] h-full flex-none">
1955                        <div
1956                          class="
1957                            object-cover flex items-center aspect-[1/1] aspect-w-1 aspect-h-1 h-full max-w-full
1958                            color__bg-body after:color__bg-body color__text after:color__text
1959                          "
1960                        >
1961                          <img
1962                            class="
1963                              w-full h-full object-cover
1964                              color__bg-body after:color__bg-body color__text after:color__text
1965                            "
1966                            width="180"
1967                            height="180"
1968                            loading="lazy"
1969                            :src="item.featured_image.src + '&width=180'"
1970                            :alt="item.title"
1971                          >
1972                        </div>
1973                      </div>
1974
1975                      <div class="grow md:py-4 p-2 px-4">
1976                        <p
1977                          class="
1978                            mb-0 type--base !leading-tight
1979                            type__body
1980                            
1981                            
1982                          "
1983                          x-text="item.title"
1984                        ></p>
1985                        <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75 mb-0.5">
1986                          
1987                          
1988                        </ul>
1989
1990                        <p class="type--small mb-0">
1991                          <span
1992                            class="type--small !leading-tight"
1993                            x-text="Shopify.formatMoney(item.price*100, currency_symbol, true, 'amount', '100')"
1994                          >
1995                            
1996                          </span>
1997                          <span x-show="item.compare_at_price_max > item.price">
1998                            <s
1999                              class="type--small !leading-tight"
2000                              x-text="Shopify.formatMoney(item.compare_at_price_max*100, currency_symbol, true, 'amount', '100')"
2001                            >
2002                              
2003                            </s>
2004                          </span>
2005                        </p>
2006                      </div>
2007                    </a>
2008                  </template>
2009                </div>
2010              </div>
2011
2012              
2013              <div
2014                class="
2015                  p-4 border--b-width
2016                  color__border-divider-1
2017                "
2018                x-show="search_items_collections && search_items_collections.length !== 0"
2019              >
2020                <span class="type--small pb-2 no-underline">
2021                  <strong>Collections</strong>
2022                </span>
2023                <template x-for="item in search_items_collections">
2024                  <div class="flex items-center">
2025                    <!-- snippets/component__icon.liquid -->
2026
2027
2028<span class="inline-flex align-middle mr-1" aria-hidden="true">
2029  
2030      <svg
2031        xmlns="http://www.w3.org/2000/svg"
2032        width="20"
2033        height="20"
2034        viewBox="0 0 24 24"
2035        fill="none"
2036        stroke="currentColor"
2037        stroke-width="2"
2038        stroke-linecap="round"
2039        stroke-linejoin="round"
2040        class="feather feather-search"
2041      >
2042        <circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line>
2043      </svg>
2044    
2045</span>
2046
2047                    <a
2048                      class="whitespace-nowrap text-ellipsis overflow-hidden no-underline"
2049                      :href="item.link"
2050                      x-text="item.displayString"
2051                    >
2052                    </a>
2053                  </div>
2054                </template>
2055              </div>
2056
2057              
2058              <div
2059                class="
2060                  p-4 border--b-width
2061                  color__border-divider-1
2062                "
2063                x-show="search_items_pages && search_items_pages.length !== 0"
2064              >
2065                <span class="type--small pb-2 no-underline">
2066                  <strong>Pages</strong>
2067                </span>
2068                <template x-for="item in search_items_pages">
2069                  <div class="flex items-center">
2070                    <!-- snippets/component__icon.liquid -->
2071
2072
2073<span class="inline-flex align-middle mr-1" aria-hidden="true">
2074  
2075      <svg
2076        xmlns="http://www.w3.org/2000/svg"
2077        width="20"
2078        height="20"
2079        viewBox="0 0 24 24"
2080        fill="none"
2081        stroke="currentColor"
2082        stroke-width="2"
2083        stroke-linecap="round"
2084        stroke-linejoin="round"
2085        class="feather feather-search"
2086      >
2087        <circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line>
2088      </svg>
2089    
2090</span>
2091
2092                    <a
2093                      class="whitespace-nowrap text-ellipsis overflow-hidden no-underline"
2094                      :href="item.link"
2095                      x-text="item.displayString"
2096                    >
2097                    </a>
2098                  </div>
2099                </template>
2100              </div>
2101
2102              
2103              <div
2104                class="p-4 border--b-width color__border-divider-1"
2105                x-show="search_items_articles && search_items_articles.length !== 0"
2106              >
2107                <span class="type--small pb-2 no-underline">
2108                  <strong>Articles</strong>
2109                </span>
2110                <template x-for="item in search_items_articles">
2111                  <div class="flex items-center">
2112                    <!-- snippets/component__icon.liquid -->
2113
2114
2115<span class="inline-flex align-middle mr-1" aria-hidden="true">
2116  
2117      <svg
2118        xmlns="http://www.w3.org/2000/svg"
2119        width="20"
2120        height="20"
2121        viewBox="0 0 24 24"
2122        fill="none"
2123        stroke="currentColor"
2124        stroke-width="2"
2125        stroke-linecap="round"
2126        stroke-linejoin="round"
2127        class="feather feather-search"
2128      >
2129        <circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line>
2130      </svg>
2131    
2132</span>
2133
2134                    <a
2135                      class="whitespace-nowrap text-ellipsis overflow-hidden no-underline"
2136                      :href="item.link"
2137                      x-text="item.displayString"
2138                    >
2139                    </a>
2140                  </div>
2141                </template>
2142              </div>
2143            </div>
2144          </div>
2145        </div>
2146      </div>
2147    </div>
2148  </form><div
2149    class="fixed inset-0 bg-black bg-opacity-25"
2150    aria-hidden="true"
2151    @click="search_active = false;"
2152    x-show="search_active"
2153    
2154      x-transition:enter="animation-300"
2155      x-transition:enter-start="opacity-0"
2156      x-transition:enter-end="opacity-100"
2157      x-transition:leave="animation-300"
2158      x-transition:leave-start="opacity-100"
2159      x-transition:leave-end="opacity-0"
2160    
2161    x-cloak
2162  ></div>
2163</div>
2164
2165      
2166      
2167        <a
2168          class="relative inline-flex items-center py-2 no-underline type__nav"
2169          href="/cart"
2170          rel="nofollow"
2171          title="Cart"
2172          >
2173          <!-- snippets/component__icon.liquid -->
2174
2175
2176<span class="inline-flex align-middle " aria-hidden="true">
2177  
2178      <svg
2179        xmlns="http://www.w3.org/2000/svg"
2180        width="24"
2181        height="24"
2182        viewBox="0 0 24 24"
2183        fill="none"
2184        stroke="currentColor"
2185        stroke-width="2"
2186        stroke-linecap="round"
2187        stroke-linejoin="round"
2188        class="feather feather-shopping-cart"
2189      >
2190        <circle cx="9" cy="21" r="1"></circle><circle cx="20" cy="21" r="1"></circle><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"></path>
2191      </svg>
2192    
2193</span>
2194
2195          <span
2196            class="type__nav type--smaller color__bg-primary color__primary border__button--radius ml-1 px-2 py-0.5"
2197            x-show="cart.item_count > 0"
2198            x-cloak>
2199            <span class="type__nav" x-text="cart.item_count">0</span>
2200          </span>
2201        </a>
2202      
2203    </div>
2204  </div><div class="
2205        lg:flex items-stretch justify-between hidden
2206        window--wide
2207        
2208        
2209          flex-wrap
2210        
2211        
2212      ">
2213    
2214
2215    
2216      
2217  <div class="md:pt-4 flex items-center max-w-xs py-2
2218    ">
2219
2220    
2221
2222    
2223      
2224      <a class="!inline-block relative"  
2225        style="
2226      height: 80px;
2227      width: 328.0px;
2228    "
2229        href="/" 
2230        title="Seattle Coffee Gear">
2231        <img src="//www.seattlecoffeegear.com/cdn/shop/files/SCG_LOGO_Primary_Red_Black.svg?v=1702922034&amp;width=600" alt="Seattle Coffee Gear Logo" srcset="//www.seattlecoffeegear.com/cdn/shop/files/SCG_LOGO_Primary_Red_Black.svg?v=1702922034&amp;width=352 352w, //www.seattlecoffeegear.com/cdn/shop/files/SCG_LOGO_Primary_Red_Black.svg?v=1702922034&amp;width=600 600w" width="600" height="146" class="w-full h-full !bg-transparent object-contain">
2232      </a>
2233      
2234    
2235  </div>
2236
2237      
2238  
2239    <!-- snippets/header__search-desktop.liquid -->
2240
2241
2242<div
2243  class="
2244    no-js--hide left-0 right-0 top-1/2 flex items-center justify-center flex-grow py-0
2245    relative grow-[7]
2246    
2247  "
2248>
2249  <div
2250    class="
2251      flex-grow w-full
2252      relative pl-6
2253      
2254    "
2255    x-data="
2256      {
2257        params: {
2258          author: false,
2259          body: false,
2260          product_type: true,
2261          tag: true,
2262          title: true,
2263          variants_barcode: true,
2264          variants_sku: true,
2265          variants_title: true,
2266          vendor: true
2267        },
2268        resources: {
2269          article: false,
2270          collection: true,
2271          page: false,
2272          product: true,
2273          query: true
2274        }
2275      }
2276    "
2277    x-show="search_visible"
2278    x-cloak
2279  >
2280    <form
2281      action="/search"
2282      method="get"
2283      x-init="initTagalys(function () {initSearchSuggestions();});"
2284    >
2285      <div
2286        class="relative"
2287        :class="{ 'z-50': search_active }"
2288      >
2289        
2290        <input type="hidden" name="type" value="product"><div
2291          class="relative"
2292          :class="{ 'z-10': search_active }"
2293        >
2294          <label
2295            class="sr-only"
2296            for="search-desktop"
2297          >
2298            Search
2299          </label>
2300          <input
2301            id="search-desktop"
2302            class="
2303              form-input !pl-8 py-2 color__text !min-h-0 max-h-[35px]
2304              color__border-divider-1
2305            "
2306            type="text"
2307            autocomplete="off"
2308            name="q"
2309            placeholder="Search by products, colors, or more..."
2310            x-ref="searchInput"
2311            @focus="search_active = true; renderFocusSuggestions($event);"
2312            
2313            @input.debounce="updateSearchSuggestions($event)"
2314          >
2315          <div class="right-2 absolute top-0 flex items-center h-full">
2316            <button
2317              class="btn btn--smaller btn--plain !bg-transparent !border-0"
2318              title="Cancel search"
2319              type="button"
2320              @click="
2321                search_active = false; $refs.searchInput.value = '';
2322                
2323              "
2324              x-show="search_active"
2325              x-cloak
2326            >
2327              <!-- snippets/component__icon.liquid -->
2328
2329
2330<span class="inline-flex align-middle " aria-hidden="true">
2331  
2332      <svg
2333        xmlns="http://www.w3.org/2000/svg"
2334        width="20"
2335        height="20"
2336        viewBox="0 0 24 24"
2337        fill="none"
2338        stroke="currentColor"
2339        stroke-width="2"
2340        stroke-linecap="round"
2341        stroke-linejoin="round"
2342        class="feather feather-x"
2343      >
2344        <line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line>
2345      </svg>
2346    
2347</span>
2348
2349            </button>
2350          </div>
2351          <!-- snippets/component__icon.liquid -->
2352
2353
2354<span class="inline-flex align-middle pointer-events-none absolute !flex items-center
2355            top-0 left-2 h-full opacity-50 color__text" aria-hidden="true">
2356  
2357      <svg
2358        xmlns="http://www.w3.org/2000/svg"
2359        width="20"
2360        height="20"
2361        viewBox="0 0 24 24"
2362        fill="none"
2363        stroke="currentColor"
2364        stroke-width="2"
2365        stroke-linecap="round"
2366        stroke-linejoin="round"
2367        class="feather feather-search"
2368      >
2369        <circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line>
2370      </svg>
2371    
2372</span>
2373
2374        </div><div
2375          class="
2376            absolute overflow-hidden shadow-md border--width border--radius animation-500 pt-16 -left-3 -right-3 -top-3
2377            color__border-divider-1
2378            color__bg-body color__text
2379          "
2380          x-show="search_active"
2381          x-cloak
2382        >
2383          <div class="flex flex-wrap h-full px-4 -mx-4">
2384            <div class="h-[70vh] max-h-[600px] w-full overflow-y-auto">�<div
2385                class="p-4"
2386                x-show="search_loading"
2387                x-cloak
2388              >
2389                <div class="btn--load btn--loading">
2390                  <div class="btn__content">Loading...</div>
2391                  <div class="btn__spinner">
2392                    <!-- snippets/component__icon.liquid -->
2393
2394
2395<span class="inline-flex align-middle " aria-hidden="true">
2396  
2397      <svg
2398        xmlns="http://www.w3.org/2000/svg"
2399        width="24"
2400        height="24"
2401        viewBox="0 0 24 24"
2402        fill="none"
2403        stroke="currentColor"
2404        stroke-width="2"
2405        stroke-linecap="round"
2406        stroke-linejoin="round"
2407        class="feather feather-loader"
2408      >
2409        <line x1="12" y1="2" x2="12" y2="6"></line><line x1="12" y1="18" x2="12" y2="22"></line><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"></line><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"></line><line x1="2" y1="12" x2="6" y2="12"></line><line x1="18" y1="12" x2="22" y2="12"></line><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"></line><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"></line>
2410      </svg>
2411    
2412</span>
2413
2414                  </div>
2415                </div>
2416              </div><div
2417                class="
2418                  sticky top-0 z-10 border--b-width p-4
2419                  color__border-divider-1
2420                  color__bg-body color__text
2421                "
2422                x-show="(search_items && search_items.length != 0) || (search_items_pages && search_items_pages.length !== 0) || (search_items_articles && search_items_articles.length !== 0) && !search_loading"
2423                x-cloak
2424              >
2425                <button
2426                  class="underline"
2427                  type="submit"
2428                >
2429                  View all results
2430                </button>
2431              </div>
2432              
2433              <div
2434                x-show="!search_loading && $refs.searchInput.value.length == 0"
2435                x-cloak
2436              >
2437                <div
2438                  class="p-4 pt-2 border--b-width color__border-divider-1"
2439                  x-show="search_items_recent && search_items_recent.length !== 0"
2440                >
2441                  <span class="type--small pb-2 no-underline">
2442                    <strong>Recent</strong>
2443                  </span>
2444                  <template x-for="item in search_items_recent">
2445                    <div class="flex items-center justify-between">
2446                      <div class="flex items-center">
2447                        <!-- snippets/component__icon.liquid -->
2448
2449
2450<span class="inline-flex align-middle mr-1" aria-hidden="true">
2451  
2452      <svg xmlns="http://www.w3.org/2000/svg" width="20" viewBox="0 0 512 512">
2453        <!--!Font Awesome Pro 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2024 Fonticons, Inc.--><path d="M418 187.1C391.2 124.1 328.7 80 256 80c-39.7 0-77.8 15.8-105.9 43.9l-4.1 4.1 35.7 35.7c6.6 6.6 10.3 15.6 10.3 25c0 19.5-15.8 35.3-35.3 35.3H40c-13.3 0-24-10.7-24-24V83.3C16 63.8 31.8 48 51.3 48c9.4 0 18.3 3.7 25 10.3L112 94.1l4.1-4.1C153.2 52.8 203.5 32 256 32c92.6 0 172.1 56.2 206.2 136.3c5.2 12.2-.5 26.3-12.7 31.5s-26.3-.5-31.5-12.7zM50 344.1c-5.2-12.2 .4-26.3 12.6-31.5s26.3 .4 31.5 12.6C121 388.1 183.4 432 256 432c39.7 0 77.8-15.8 105.9-43.9l4.1-4.1-35.7-35.7c-6.6-6.6-10.3-15.6-10.3-25c0-19.5 15.8-35.3 35.3-35.3H472c13.3 0 24 10.7 24 24V428.7c0 19.5-15.8 35.3-35.3 35.3c-9.4 0-18.3-3.7-25-10.3L400 417.9l-4.1 4.1C358.8 459.2 308.5 480 256 480c-92.5 0-171.8-56-206-135.9zM64 176h62.1L64 113.9V176zM448 336H385.9L448 398.1V336z"/>
2454      </svg>
2455    
2456</span>
2457
2458                        <a
2459                          class="whitespace-nowrap text-ellipsis overflow-hidden no-underline"
2460                          :href="window.location.origin + '/search?type=product&' + item.queryString"
2461                          x-html="item.displayString"
2462                        >
2463                        </a>
2464                      </div>
2465                      <button
2466                        class="btn btn--search__remove"
2467                        @click="removeRecentSearch(item.queryString)"
2468                      >
2469                        <!-- snippets/component__icon.liquid -->
2470
2471
2472<span class="inline-flex align-middle " aria-hidden="true">
2473  
2474      <svg
2475        xmlns="http://www.w3.org/2000/svg"
2476        width="16"
2477        height="16"
2478        viewBox="0 0 24 24"
2479        fill="none"
2480        stroke="currentColor"
2481        stroke-width="2"
2482        stroke-linecap="round"
2483        stroke-linejoin="round"
2484        class="feather feather-x"
2485      >
2486        <line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line>
2487      </svg>
2488    
2489</span>
2490
2491                      </button>
2492                    </div>
2493                  </template>
2494                </div>
2495                <div
2496                  class="p-4 pt-2 border--b-width color__border-divider-1"
2497                  x-show="search_items_suggestions && search_items_suggestions.length !== 0"
2498                >
2499                  <span class="type--small pb-2 no-underline">
2500                    <strong>Trending</strong>
2501                  </span>
2502                  <template x-for="item in search_items_suggestions">
2503                    <div class="flex items-center">
2504                      <!-- snippets/component__icon.liquid -->
2505
2506
2507<span class="inline-flex align-middle mr-1" aria-hidden="true">
2508  
2509      <svg xmlns="http://www.w3.org/2000/svg" width="20" viewBox="0 0 576 512">
2510        <!--!Font Awesome Pro 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2024 Fonticons, Inc.--><path d="M352 120c0-13.3 10.7-24 24-24H552c13.3 0 24 10.7 24 24V296c0 13.3-10.7 24-24 24s-24-10.7-24-24V177.9L337 369c-9.4 9.4-24.6 9.4-33.9 0l-111-111L41 409c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L175 207c9.4-9.4 24.6-9.4 33.9 0l111 111L494.1 144H376c-13.3 0-24-10.7-24-24z"/>
2511      </svg>
2512    
2513</span>
2514
2515                      <a
2516                        class="whitespace-nowrap text-ellipsis overflow-hidden no-underline"
2517                        :href="window.location.origin + '/search?type=product&' + item.queryString"
2518                        x-html="item.displayString"
2519                      >
2520                      </a>
2521                    </div>
2522                  </template>
2523                </div>
2524              </div><div
2525                x-show="!search_loading && $refs.searchInput.value.length > 0"
2526                x-cloak
2527              >
2528                <div
2529                  class="p-4"
2530                  x-show="(search_items && search_items.length === 0) && (search_items_pages && search_items_pages.length === 0) && (search_items_articles && search_items_articles.length === 0) && !search_loading"
2531                  x-cloak
2532                >
2533                  <p>No results found</p>
2534                </div>
2535
2536                
2537                <div
2538                  class="
2539                    p-4 border--b-width
2540                    color__border-divider-1
2541                  "
2542                  x-show="search_items && search_items.length != 0"
2543                >
2544                  <span class="type--small pb-2 no-underline">
2545                    <strong>Products</strong>
2546                  </span>
2547                  <div class="md:gap-4 grid grid-cols-2 gap-2">
2548                    <template x-for="item in search_items">
2549                      <a
2550                        class="hover:no-underline border--width border--radius color__bg-body color__text color__border-divider-1 flex items-center w-full overflow-hidden no-underline"
2551                        :href="'/products/'+ item.handle "
2552                      >
2553                        <div class="w-[20%] h-full flex flex-col shrink-0 overflow-hidden">
2554                          <div
2555                            class="
2556                              flex items-center object-cover aspect-[1/1] aspect-w-1 aspect-h-1 h-full max-w-full
2557                              color__bg-body after:color__bg-body color__text after:color__text
2558                            "
2559                          >
2560                            <img
2561                              class="w-full h-full object-cover color__bg-body after:color__bg-body color__text after:color__text"
2562                              width="120"
2563                              height="120"
2564                              loading="lazy"
2565                              :src="item.featured_image.src  + '&width=240'"
2566                              :alt="item.title"
2567                            >
2568                          </div>
2569                        </div>
2570
2571                        <div class="grow md:py-4 p-2 px-4">
2572                          <p
2573                            class="
2574                              mb-0 type--base !leading-tight
2575                              type__body
2576                              
2577                              
2578                            "
2579                            x-text="item.title"
2580                          ></p>
2581                          <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75 mb-0.5">
2582                            
2583                            
2584                          </ul>
2585
2586                          <p class="type--small mb-0">
2587                            <span
2588                              class="type--small !leading-tight"
2589                              x-text="Shopify.formatMoney(item.price*100, currency_symbol, true, 'amount', '100')"
2590                            >
2591                              
2592                            </span>
2593                            <span x-show="item.compare_at_price_max > item.price">
2594                              <s
2595                                class="type--small !leading-tight"
2596                                x-text="Shopify.formatMoney(item.compare_at_price_max*100, currency_symbol, true, 'amount', '100')"
2597                              >
2598                                
2599                              </s>
2600                            </span>
2601                          </p>
2602                        </div>
2603                      </a>
2604                    </template>
2605                  </div>
2606                </div>
2607
2608                
2609                <div
2610                  class="
2611                    p-4 border--b-width
2612                    color__border-divider-1
2613                  "
2614                  x-show="search_items_collections && search_items_collections.length !== 0"
2615                >
2616                  <span class="type--small pb-2 no-underline">
2617                    <strong>Collections</strong>
2618                  </span>
2619                  <template x-for="item in search_items_collections">
2620                    <div class="flex items-center">
2621                      <!-- snippets/component__icon.liquid -->
2622
2623
2624<span class="inline-flex align-middle mr-1" aria-hidden="true">
2625  
2626      <svg
2627        xmlns="http://www.w3.org/2000/svg"
2628        width="20"
2629        height="20"
2630        viewBox="0 0 24 24"
2631        fill="none"
2632        stroke="currentColor"
2633        stroke-width="2"
2634        stroke-linecap="round"
2635        stroke-linejoin="round"
2636        class="feather feather-search"
2637      >
2638        <circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line>
2639      </svg>
2640    
2641</span>
2642
2643                      <a
2644                        class="whitespace-nowrap text-ellipsis overflow-hidden no-underline"
2645                        :href="item.link"
2646                        x-text="item.displayString"
2647                      >
2648                      </a>
2649                    </div>
2650                  </template>
2651                </div>
2652
2653                
2654                <div
2655                  class="
2656                    p-4 border--b-width
2657                    color__border-divider-1
2658                  "
2659                  x-show="search_items_pages && search_items_pages.length !== 0"
2660                >
2661                  <span class="type--small pb-2 no-underline">
2662                    <strong>Pages</strong>
2663                  </span>
2664                  <template x-for="item in search_items_pages">
2665                    <div class="flex items-center">
2666                      <!-- snippets/component__icon.liquid -->
2667
2668
2669<span class="inline-flex align-middle mr-1" aria-hidden="true">
2670  
2671      <svg
2672        xmlns="http://www.w3.org/2000/svg"
2673        width="20"
2674        height="20"
2675        viewBox="0 0 24 24"
2676        fill="none"
2677        stroke="currentColor"
2678        stroke-width="2"
2679        stroke-linecap="round"
2680        stroke-linejoin="round"
2681        class="feather feather-search"
2682      >
2683        <circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line>
2684      </svg>
2685    
2686</span>
2687
2688                      <a
2689                        class="whitespace-nowrap text-ellipsis overflow-hidden no-underline"
2690                        :href="item.link"
2691                        x-text="item.displayString"
2692                      >
2693                      </a>
2694                    </div>
2695                  </template>
2696                </div>
2697
2698                
2699                <div
2700                  class="
2701                    p-4 border--b-width
2702                    color__border-divider-1
2703                  "
2704                  x-show="search_items_articles && search_items_articles.length !== 0"
2705                >
2706                  <span class="type--small pb-2 no-underline">
2707                    <strong>Articles</strong>
2708                  </span>
2709                  <template x-for="item in search_items_articles">
2710                    <div class="flex items-center">
2711                      <!-- snippets/component__icon.liquid -->
2712
2713
2714<span class="inline-flex align-middle mr-1" aria-hidden="true">
2715  
2716      <svg
2717        xmlns="http://www.w3.org/2000/svg"
2718        width="20"
2719        height="20"
2720        viewBox="0 0 24 24"
2721        fill="none"
2722        stroke="currentColor"
2723        stroke-width="2"
2724        stroke-linecap="round"
2725        stroke-linejoin="round"
2726        class="feather feather-search"
2727      >
2728        <circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line>
2729      </svg>
2730    
2731</span>
2732
2733                      <a
2734                        class="whitespace-nowrap text-ellipsis overflow-hidden no-underline"
2735                        :href="item.link"
2736                        x-text="item.displayString"
2737                      >
2738                      </a>
2739                    </div>
2740                  </template>
2741                </div>
2742              </div>
2743            </div>
2744          </div>
2745        </div>
2746      </div>
2747    </form><div
2748      class="fixed inset-0 bg-black bg-opacity-25"
2749      aria-hidden="true"
2750      @click="
2751        search_active = false;
2752        
2753      "
2754      x-show="search_active"
2755      x-cloak
2756    ></div>
2757  </div>
2758</div>
2759 
2760  
2761
2762      
2763  <div class="flex items-center justify-end flex-shrink pl-2 text-right">
2764
2765    
2766      
2767       
2768   
2769  </div>
2770
2771      
2772  <div
2773    class="
2774      flex flex-wrap items-center type__body -mt-4
2775      
2776      
2777      w-full
2778      
2779    "
2780  ><div class="flex-shrink">
2781        <a
2782          href="#"
2783          class="
2784            header__link h-full flex items-center mr-2 block no-underline type__nav--top text-zinc-600
2785            
2786            
2787            xl:pr-4 pt-2 pb-4 uppercase font-medium 
2788            
2789            
2790            
2791            
2792              px-2 xl:px-4 xl:mx-2
2793            
2794          "
2795          x-data="{ linkTitle: 'shop gear ' }"
2796          :class="{ '!text-scg-red': ['sale','deal'].some(k => linkTitle.includes(k)) }"
2797        >
2798          Shop Gear 
2799          
2800            <!-- snippets/component__icon.liquid -->
2801
2802
2803<span class="inline-flex align-middle ml-1" aria-hidden="true">
2804  
2805      <svg
2806        xmlns="http://www.w3.org/2000/svg"
2807        width="16"
2808        height="16"
2809        viewBox="0 0 24 24"
2810        fill="none"
2811        stroke="currentColor"
2812        stroke-width="2"
2813        stroke-linecap="round"
2814        stroke-linejoin="round"
2815        class="feather feather-chevron-down"
2816      >
2817        <polyline points="6 9 12 15 18 9"></polyline>
2818      </svg>
2819    
2820</span>
2821
2822          
2823        </a>
2824
2825        
2826          <div class="absolute left-0 block w-full h-0 overflow-hidden normal-case opacity-0 header__dropdown animation-300">
2827            <div
2828              class="
2829                border--t-width border--b-width
2830                color__bg-body color__text
2831                color__border-divider-1
2832              "
2833            >
2834              <div class="window--wide">
2835                <div
2836                  class="
2837                    flex flex-row justify-start items-start overflow-hidden
2838                    
2839                    color__border-divider-1
2840                  "
2841                >
2842                  <div class="flex flex-wrap ">
2843                    
2844                      <div class="py-8 pr-2 xl:pr-4">
2845                        
2846                          <a href="/collections/espresso-machines" class="flex flex-col items-start h-16 px-4 py-2 mb-4 no-underline bg-gray-100 rounded-md hover:no-underline hover:opacity-60">
2847                            <div class="type__body--bold !hover:no-underline">
2848                              Espresso Machines
2849                            </div>
2850                            <span class="text-sm no-underline type__body hover:underline">
2851                              Shop All
2852                              <!-- snippets/component__icon.liquid -->
2853
2854
2855<span class="inline-flex align-middle ml-1" aria-hidden="true">
2856  
2857      <svg
2858        xmlns="http://www.w3.org/2000/svg"
2859        width="16"
2860        height="16"
2861        viewBox="0 0 24 24"
2862        fill="none"
2863        stroke="currentColor"
2864        stroke-width="2"
2865        stroke-linecap="round"
2866        stroke-linejoin="round"
2867        class="feather feather-arrow-right inline-block"
2868      >
2869        <line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
2870      </svg>
2871    
2872</span>
2873
2874                            </span>
2875                          </a>
2876                        
2877                        
2878                          <a href="/collections/semi-automatic" class="block pl-4 no-underline type__body">
2879                            Semi-Automatic
2880                          </a>
2881                        
2882                          <a href="/collections/superautomatic-espresso-machines" class="block pl-4 no-underline type__body">
2883                            Superautomatic 
2884                          </a>
2885                        
2886                          <a href="/collections/espresso-machine-bundles" class="block pl-4 no-underline type__body">
2887                            Bundle and Save! 
2888                          </a>
2889                        
2890                      </div>
2891                    
2892                      <div class="py-8 pr-2 xl:pr-4">
2893                        
2894                          <a href="/collections/grinders" class="flex flex-col items-start h-16 px-4 py-2 mb-4 no-underline bg-gray-100 rounded-md hover:no-underline hover:opacity-60">
2895                            <div class="type__body--bold !hover:no-underline">
2896                              Grinders
2897                            </div>
2898                            <span class="text-sm no-underline type__body hover:underline">
2899                              Shop All
2900                              <!-- snippets/component__icon.liquid -->
2901
2902
2903<span class="inline-flex align-middle ml-1" aria-hidden="true">
2904  
2905      <svg
2906        xmlns="http://www.w3.org/2000/svg"
2907        width="16"
2908        height="16"
2909        viewBox="0 0 24 24"
2910        fill="none"
2911        stroke="currentColor"
2912        stroke-width="2"
2913        stroke-linecap="round"
2914        stroke-linejoin="round"
2915        class="feather feather-arrow-right inline-block"
2916      >
2917        <line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
2918      </svg>
2919    
2920</span>
2921
2922                            </span>
2923                          </a>
2924                        
2925                        
2926                          <a href="/collections/espresso-grinders" class="block pl-4 no-underline type__body">
2927                            Espresso Grinders
2928                          </a>
2929                        
2930                          <a href="/collections/coffee-grinders" class="block pl-4 no-underline type__body">
2931                            Coffee Grinders
2932                          </a>
2933                        
2934                          <a href="/collections/grinder-accessories" class="block pl-4 no-underline type__body">
2935                            Grinder Accessories
2936                          </a>
2937                        
2938                      </div>
2939                    
2940                      <div class="py-8 pr-2 xl:pr-4">
2941                        
2942                          <a href="/collections/coffee-makers" class="flex flex-col items-start h-16 px-4 py-2 mb-4 no-underline bg-gray-100 rounded-md hover:no-underline hover:opacity-60">
2943                            <div class="type__body--bold !hover:no-underline">
2944                              Coffee Makers
2945                            </div>
2946                            <span class="text-sm no-underline type__body hover:underline">
2947                              Shop All
2948                              <!-- snippets/component__icon.liquid -->
2949
2950
2951<span class="inline-flex align-middle ml-1" aria-hidden="true">
2952  
2953      <svg
2954        xmlns="http://www.w3.org/2000/svg"
2955        width="16"
2956        height="16"
2957        viewBox="0 0 24 24"
2958        fill="none"
2959        stroke="currentColor"
2960        stroke-width="2"
2961        stroke-linecap="round"
2962        stroke-linejoin="round"
2963        class="feather feather-arrow-right inline-block"
2964      >
2965        <line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
2966      </svg>
2967    
2968</span>
2969
2970                            </span>
2971                          </a>
2972                        
2973                        
2974                          <a href="/collections/drip-brewers" class="block pl-4 no-underline type__body">
2975                            Drip Brewers
2976                          </a>
2977                        
2978                          <a href="/collections/french-presses" class="block pl-4 no-underline type__body">
2979                            French Presses
2980                          </a>
2981                        
2982                          <a href="/collections/stove-top-coffee-makers" class="block pl-4 no-underline type__body">
2983                            Stove Top 
2984                          </a>
2985                        
2986                          <a href="/collections/cold-brew" class="block pl-4 no-underline type__body">
2987                            Cold Brew
2988                          </a>
2989                        
2990                          <a href="/collections/pour-overs" class="block pl-4 no-underline type__body">
2991                            Pour Overs
2992                          </a>
2993                        
2994                      </div>
2995                    
2996                      <div class="py-8 pr-2 xl:pr-4">
2997                        
2998                          <a href="/collections/accessories" class="flex flex-col items-start h-16 px-4 py-2 mb-4 no-underline bg-gray-100 rounded-md hover:no-underline hover:opacity-60">
2999                            <div class="type__body--bold !hover:no-underline">
3000                              Accessories
3001                            </div>
3002                            <span class="text-sm no-underline type__body hover:underline">
3003                              Shop All
3004                              <!-- snippets/component__icon.liquid -->
3005
3006
3007<span class="inline-flex align-middle ml-1" aria-hidden="true">
3008  
3009      <svg
3010        xmlns="http://www.w3.org/2000/svg"
3011        width="16"
3012        height="16"
3013        viewBox="0 0 24 24"
3014        fill="none"
3015        stroke="currentColor"
3016        stroke-width="2"
3017        stroke-linecap="round"
3018        stroke-linejoin="round"
3019        class="feather feather-arrow-right inline-block"
3020      >
3021        <line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
3022      </svg>
3023    
3024</span>
3025
3026                            </span>
3027                          </a>
3028                        
3029                        
3030                          <a href="/collections/cleaning-supplies" class="block pl-4 no-underline type__body">
3031                            Cleaning Supplies
3032                          </a>
3033                        
3034                          <a href="/collections/filters" class="block pl-4 no-underline type__body">
3035                            Filters
3036                          </a>
3037                        
3038                          <a href="/collections/espresso-accessories" class="block pl-4 no-underline type__body">
3039                            Espresso Accessories
3040                          </a>
3041                        
3042                          <a href="/collections/scales-and-measuring" class="block pl-4 no-underline type__body">
3043                            Scales and Measuring
3044                          </a>
3045                        
3046                          <a href="/collections/coffee-storage" class="block pl-4 no-underline type__body">
3047                            Coffee Storage
3048                          </a>
3049                        
3050                          <a href="/collections/cups" class="block pl-4 no-underline type__body">
3051                            Cups
3052                          </a>
3053                        
3054                          <a href="/collections/kettles" class="block pl-4 no-underline type__body">
3055                            Kettles
3056                          </a>
3057                        
3058                          <a href="/collections/milk-frothers" class="block pl-4 no-underline type__body">
3059                            Milk Frothers
3060                          </a>
3061                        
3062                          <a href="/collections/tea-ware" class="block pl-4 no-underline type__body">
3063                            Tea Ware
3064                          </a>
3065                        
3066                          <a href="/collections/all-parts" class="block pl-4 no-underline type__body">
3067                            Parts 
3068                          </a>
3069                        
3070                          <a href="/collections/espresso-machine-maintenance-filters-subscribable" class="block pl-4 no-underline type__body">
3071                            Subscriptions
3072                          </a>
3073                        
3074                      </div>
3075                    
3076                  </div>
3077
3078                  
3079                  
3080                  
3081
3082                  
3083
3084<div class="flex flex-wrap py-8 max-w-[50%] mt-16 pl-6">
3085  <div class="flex flex-col border-l-2 border-gray-200">
3086    
3087      
3088      
3089      
3090    
3091      
3092      
3093      
3094        
3095          <a class="
3096                                    type__body block mb-1 pl-4 no-underline uppercase
3097                                    
3098                                    
3099                                  " href="/collections/new-arrivals">
3100            New Arrivals
3101          </a>
3102        
3103          <a class="
3104                                    type__body block mb-1 pl-4 no-underline uppercase
3105                                    
3106                                    
3107                                  " href="/collections/staff-pick">
3108            Staff Picks
3109          </a>
3110        
3111          <a class="
3112                                    type__body block mb-1 pl-4 no-underline uppercase
3113                                    
3114                                    
3115                                  " href="/pages/brands">
3116            Shop Brands
3117          </a>
3118        
3119          <a class="
3120                                    type__body block mb-1 pl-4 no-underline uppercase
3121                                    
3122                                    
3123                                  " href="/collections/refurbished">
3124            Refurbished
3125          </a>
3126        
3127          <a class="
3128                                    type__body block mb-1 pl-4 no-underline uppercase
3129                                    
3130                                    
3131                                  " href="/collections/open-box-merchandise">
3132            Open Box
3133          </a>
3134        
3135          <a class="
3136                                    type__body block mb-1 pl-4 no-underline uppercase
3137                                    
3138                                    
3139                                  " href="/collections/closeouts">
3140            Closeouts
3141          </a>
3142        
3143          <a class="
3144                                    type__body block mb-1 pl-4 no-underline uppercase
3145                                    
3146                                    color__text-scg-red
3147                                  " href="/collections/sale">
3148            Sale
3149          </a>
3150        
3151      
3152    
3153      
3154      
3155      
3156    
3157  </div>
3158</div></div></div></div></div></div><div class="flex-shrink">
3159        <a
3160          href="#"
3161          class="
3162            header__link h-full flex items-center mr-2 block no-underline type__nav--top text-zinc-600
3163            
3164            
3165            xl:pr-4 pt-2 pb-4 uppercase font-medium 
3166            
3167            
3168            
3169            
3170              px-2 xl:px-4 xl:mx-2
3171            
3172          "
3173          x-data="{ linkTitle: 'shop coffee' }"
3174          :class="{ '!text-scg-red': ['sale','deal'].some(k => linkTitle.includes(k)) }"
3175        >
3176          Shop Coffee
3177          
3178            <!-- snippets/component__icon.liquid -->
3179
3180
3181<span class="inline-flex align-middle ml-1" aria-hidden="true">
3182  
3183      <svg
3184        xmlns="http://www.w3.org/2000/svg"
3185        width="16"
3186        height="16"
3187        viewBox="0 0 24 24"
3188        fill="none"
3189        stroke="currentColor"
3190        stroke-width="2"
3191        stroke-linecap="round"
3192        stroke-linejoin="round"
3193        class="feather feather-chevron-down"
3194      >
3195        <polyline points="6 9 12 15 18 9"></polyline>
3196      </svg>
3197    
3198</span>
3199
3200          
3201        </a>
3202
3203        
3204          <div class="absolute left-0 block w-full h-0 overflow-hidden normal-case opacity-0 header__dropdown animation-300">
3205            <div
3206              class="
3207                border--t-width border--b-width
3208                color__bg-body color__text
3209                color__border-divider-1
3210              "
3211            >
3212              <div class="window--wide">
3213                <div
3214                  class="
3215                    flex flex-row justify-start items-start overflow-hidden
3216                    
3217                      !justify-between
3218                    
3219                    color__border-divider-1
3220                  "
3221                >
3222                  <div class="flex flex-wrap ">
3223                    
3224                      <div class="py-8 pr-2 xl:pr-4">
3225                        
3226                          <a href="/collections/coffee" class="flex flex-col items-start h-16 px-4 py-2 mb-4 no-underline bg-gray-100 rounded-md hover:no-underline hover:opacity-60">
3227                            <div class="type__body--bold !hover:no-underline">
3228                              Coffee
3229                            </div>
3230                            <span class="text-sm no-underline type__body hover:underline">
3231                              Shop All
3232                              <!-- snippets/component__icon.liquid -->
3233
3234
3235<span class="inline-flex align-middle ml-1" aria-hidden="true">
3236  
3237      <svg
3238        xmlns="http://www.w3.org/2000/svg"
3239        width="16"
3240        height="16"
3241        viewBox="0 0 24 24"
3242        fill="none"
3243        stroke="currentColor"
3244        stroke-width="2"
3245        stroke-linecap="round"
3246        stroke-linejoin="round"
3247        class="feather feather-arrow-right inline-block"
3248      >
3249        <line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
3250      </svg>
3251    
3252</span>
3253
3254                            </span>
3255                          </a>
3256                        
3257                        
3258                          <a href="/collections/coffee-new-arrivals" class="block pl-4 no-underline type__body">
3259                            New Arrivals
3260                          </a>
3261                        
3262                          <a href="/collections/staff-picks-coffee" class="block pl-4 no-underline type__body">
3263                            Staff Picks
3264                          </a>
3265                        
3266                          <a href="/pages/roasters" class="block pl-4 no-underline type__body">
3267                            Shop Roasters
3268                          </a>
3269                        
3270                          <a href="https://www.seattlecoffeegear.com/collections/coffee/subscribable" class="block pl-4 no-underline type__body">
3271                            Subscriptions
3272                          </a>
3273                        
3274                      </div>
3275                    
3276                      <div class="py-8 pr-2 xl:pr-4">
3277                        
3278                          <div class="flex items-center h-16 px-4 py-2 mb-4 bg-gray-100 rounded-md">
3279                            <div class="leading-tight type__body--bold">
3280                              Roast Level
3281                            </div>
3282                          </div>
3283                        
3284                        
3285                          <a href="/collections/light-roast" class="block pl-4 no-underline type__body">
3286                            Light
3287                          </a>
3288                        
3289                          <a href="/collections/medium-roast" class="block pl-4 no-underline type__body">
3290                            Medium
3291                          </a>
3292                        
3293                          <a href="/collections/dark-roast" class="block pl-4 no-underline type__body">
3294                            Dark 
3295                          </a>
3296                        
3297                      </div>
3298                    
3299                      <div class="py-8 pr-2 xl:pr-4">
3300                        
3301                          <div class="flex items-center h-16 px-4 py-2 mb-4 bg-gray-100 rounded-md">
3302                            <div class="leading-tight type__body--bold">
3303                              Taste Profile
3304                            </div>
3305                          </div>
3306                        
3307                        
3308                          <a href="/collections/balanced" class="block pl-4 no-underline type__body">
3309                            Balanced
3310                          </a>
3311                        
3312                          <a href="/collections/bright-and-floral" class="block pl-4 no-underline type__body">
3313                            Bright and Floral
3314                          </a>
3315                        
3316                          <a href="/collections/earth-and-smoke" class="block pl-4 no-underline type__body">
3317                            Earth and Smoke
3318                          </a>
3319                        
3320                          <a href="/collections/fruit-forward" class="block pl-4 no-underline type__body">
3321                            Fruit Forward
3322                          </a>
3323                        
3324                          <a href="/collections/rich-and-sweet" class="block pl-4 no-underline type__body">
3325                            Rich and Sweet
3326                          </a>
3327                        
3328                      </div>
3329                    
3330                      <div class="py-8 pr-2 xl:pr-4">
3331                        
3332                          <div class="flex items-center h-16 px-4 py-2 mb-4 bg-gray-100 rounded-md">
3333                            <div class="leading-tight type__body--bold">
3334                              Brew Method
3335                            </div>
3336                          </div>
3337                        
3338                        
3339                          <a href="/collections/superautomatic-friendly" class="block pl-4 no-underline type__body">
3340                            Superautomatic Friendly
3341                          </a>
3342                        
3343                          <a href="/collections/espresso" class="block pl-4 no-underline type__body">
3344                            Espresso
3345                          </a>
3346                        
3347                          <a href="/collections/drip" class="block pl-4 no-underline type__body">
3348                            Drip Coffee
3349                          </a>
3350                        
3351                          <a href="/collections/pour-over-coffee" class="block pl-4 no-underline type__body">
3352                            Pour Over
3353                          </a>
3354                        
3355                      </div>
3356                    
3357                      <div class="py-8 pr-2 xl:pr-4">
3358                        
3359                          <div class="flex items-center h-16 px-4 py-2 mb-4 bg-gray-100 rounded-md">
3360                            <div class="leading-tight type__body--bold">
3361                              Specialty
3362                            </div>
3363                          </div>
3364                        
3365                        
3366                          <a href="/collections/single-origin" class="block pl-4 no-underline type__body">
3367                            Single Origin
3368                          </a>
3369                        
3370                          <a href="/collections/blends" class="block pl-4 no-underline type__body">
3371                            Blends
3372                          </a>
3373                        
3374                          <a href="/collections/decaf" class="block pl-4 no-underline type__body">
3375                            Decaf
3376                          </a>
3377                        
3378                          <a href="/collections/organic" class="block pl-4 no-underline type__body">
3379                            Organic
3380                          </a>
3381                        
3382                          <a href="/collections/european-favorites" class="block pl-4 no-underline type__body">
3383                            European Favorites
3384                          </a>
3385                        
3386                          <a href="/collections/direct-trade" class="block pl-4 no-underline type__body">
3387                            Fair/Direct Trade
3388                          </a>
3389                        
3390                      </div>
3391                    
3392                  </div>
3393
3394                  
3395                  
3396                  
3397
3398                  
3399
3400
3401
3402  
3403  
3404  
3405    <a href="/pages/coffee-subscriptions" class="flex flex-wrap py-8">
3406      <div class="relative aspect-square" style="height: 16rem;">
3407        
3408          <div class="relative w-full h-full overflow-hidden rounded-lg">
3409            <img src="//www.seattlecoffeegear.com/cdn/shop/files/SubsNavBlock.jpg?crop=center&amp;height=192&amp;v=1762890026&amp;width=256" alt="A selection of Tony&#39;s Coffee products on a dark gray background with portafilter and latte&#39;s. " srcset="//www.seattlecoffeegear.com/cdn/shop/files/SubsNavBlock.jpg?crop=center&amp;height=192&amp;v=1762890026&amp;width=256 256w" width="256" height="192" class="w-full h-full object-cover">
3410
3411            
3412              <div class="absolute inset-0 flex items-start justify-center pt-4">
3413                <h3 class="px-4 text-xl font-bold text-center text-white drop-shadow-lg">
3414                  SUBSCRIBE & SAVE
3415                </h3>
3416              </div>
3417            
3418
3419            
3420              <div class="absolute inset-0 flex items-end justify-center pb-4">
3421                <span class="px-3 py-1 text-sm font-medium text-white rounded-md" style="background-color: #d3324d;">
3422                  5% Off Every Order
3423                </span>
3424              </div>
3425            
3426          </div>
3427        
3428      </div>
3429    </a>
3430  
3431
3432  
3433  
3434  
3435
3436  
3437  
3438  
3439</div></div></div></div></div><div class="flex-shrink">
3440        <a
3441          href="#"
3442          class="
3443            header__link h-full flex items-center mr-2 block no-underline type__nav--top text-zinc-600
3444            
3445            
3446            xl:pr-4 pt-2 pb-4 uppercase font-medium 
3447            
3448            
3449            
3450            
3451              px-2 xl:px-4 xl:mx-2
3452            
3453          "
3454          x-data="{ linkTitle: 'commercial' }"
3455          :class="{ '!text-scg-red': ['sale','deal'].some(k => linkTitle.includes(k)) }"
3456        >
3457          Commercial
3458          
3459            <!-- snippets/component__icon.liquid -->
3460
3461
3462<span class="inline-flex align-middle ml-1" aria-hidden="true">
3463  
3464      <svg
3465        xmlns="http://www.w3.org/2000/svg"
3466        width="16"
3467        height="16"
3468        viewBox="0 0 24 24"
3469        fill="none"
3470        stroke="currentColor"
3471        stroke-width="2"
3472        stroke-linecap="round"
3473        stroke-linejoin="round"
3474        class="feather feather-chevron-down"
3475      >
3476        <polyline points="6 9 12 15 18 9"></polyline>
3477      </svg>
3478    
3479</span>
3480
3481          
3482        </a>
3483
3484        
3485          <div class="absolute left-0 block w-full h-0 overflow-hidden normal-case opacity-0 header__dropdown animation-300">
3486            <div
3487              class="
3488                border--t-width border--b-width
3489                color__bg-body color__text
3490                color__border-divider-1
3491              "
3492            >
3493              <div class="window--wide">
3494                <div
3495                  class="
3496                    flex flex-row justify-start items-start overflow-hidden
3497                    
3498                    color__border-divider-1
3499                  "
3500                >
3501                  <div class="flex flex-wrap ">
3502                    
3503                      <div class="py-8 pr-2 xl:pr-4">
3504                        
3505                          <a href="/collections/commercial-espresso-machines" class="flex flex-col items-start h-16 px-4 py-2 mb-4 no-underline bg-gray-100 rounded-md hover:no-underline hover:opacity-60">
3506                            <div class="type__body--bold !hover:no-underline">
3507                              Commercial Machines
3508                            </div>
3509                            <span class="text-sm no-underline type__body hover:underline">
3510                              Shop All
3511                              <!-- snippets/component__icon.liquid -->
3512
3513
3514<span class="inline-flex align-middle ml-1" aria-hidden="true">
3515  
3516      <svg
3517        xmlns="http://www.w3.org/2000/svg"
3518        width="16"
3519        height="16"
3520        viewBox="0 0 24 24"
3521        fill="none"
3522        stroke="currentColor"
3523        stroke-width="2"
3524        stroke-linecap="round"
3525        stroke-linejoin="round"
3526        class="feather feather-arrow-right inline-block"
3527      >
3528        <line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
3529      </svg>
3530    
3531</span>
3532
3533                            </span>
3534                          </a>
3535                        
3536                        
3537                          <a href="/collections/commercial-semi-automatic" class="block pl-4 no-underline type__body">
3538                            Semi-automatic
3539                          </a>
3540                        
3541                          <a href="/collections/commercial-superautomatic" class="block pl-4 no-underline type__body">
3542                            Superautomatic
3543                          </a>
3544                        
3545                      </div>
3546                    
3547                      <div class="py-8 pr-2 xl:pr-4">
3548                        
3549                          <a href="/collections/commercial-grinders" class="flex flex-col items-start h-16 px-4 py-2 mb-4 no-underline bg-gray-100 rounded-md hover:no-underline hover:opacity-60">
3550                            <div class="type__body--bold !hover:no-underline">
3551                              Commercial Grinders
3552                            </div>
3553                            <span class="text-sm no-underline type__body hover:underline">
3554                              Shop All
3555                              <!-- snippets/component__icon.liquid -->
3556
3557
3558<span class="inline-flex align-middle ml-1" aria-hidden="true">
3559  
3560      <svg
3561        xmlns="http://www.w3.org/2000/svg"
3562        width="16"
3563        height="16"
3564        viewBox="0 0 24 24"
3565        fill="none"
3566        stroke="currentColor"
3567        stroke-width="2"
3568        stroke-linecap="round"
3569        stroke-linejoin="round"
3570        class="feather feather-arrow-right inline-block"
3571      >
3572        <line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
3573      </svg>
3574    
3575</span>
3576
3577                            </span>
3578                          </a>
3579                        
3580                        
3581                          <a href="/collections/commercial-coffee-grinders" class="block pl-4 no-underline type__body">
3582                            Coffee Grinders
3583                          </a>
3584                        
3585                          <a href="/collections/commercial-espresso-grinders" class="block pl-4 no-underline type__body">
3586                            Espresso Grinders
3587                          </a>
3588                        
3589                      </div>
3590                    
3591                      <div class="py-8 pr-2 xl:pr-4">
3592                        
3593                          <a href="/collections/commercial-brewing" class="flex flex-col items-start h-16 px-4 py-2 mb-4 no-underline bg-gray-100 rounded-md hover:no-underline hover:opacity-60">
3594                            <div class="type__body--bold !hover:no-underline">
3595                              Commercial Brewing
3596                            </div>
3597                            <span class="text-sm no-underline type__body hover:underline">
3598                              Shop All
3599                              <!-- snippets/component__icon.liquid -->
3600
3601
3602<span class="inline-flex align-middle ml-1" aria-hidden="true">
3603  
3604      <svg
3605        xmlns="http://www.w3.org/2000/svg"
3606        width="16"
3607        height="16"
3608        viewBox="0 0 24 24"
3609        fill="none"
3610        stroke="currentColor"
3611        stroke-width="2"
3612        stroke-linecap="round"
3613        stroke-linejoin="round"
3614        class="feather feather-arrow-right inline-block"
3615      >
3616        <line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
3617      </svg>
3618    
3619</span>
3620
3621                            </span>
3622                          </a>
3623                        
3624                        
3625                          <a href="/collections/commercial-drip-brewers" class="block pl-4 no-underline type__body">
3626                            Drip
3627                          </a>
3628                        
3629                          <a href="/collections/commercial-cold-brew-and-tea" class="block pl-4 no-underline type__body">
3630                            Cold Brew and Tea
3631                          </a>
3632                        
3633                      </div>
3634                    
3635                      <div class="py-8 pr-2 xl:pr-4">
3636                        
3637                          <a href="/collections/commercial-accessories" class="flex flex-col items-start h-16 px-4 py-2 mb-4 no-underline bg-gray-100 rounded-md hover:no-underline hover:opacity-60">
3638                            <div class="type__body--bold !hover:no-underline">
3639                              Commercial Accessories
3640                            </div>
3641                            <span class="text-sm no-underline type__body hover:underline">
3642                              Shop All
3643                              <!-- snippets/component__icon.liquid -->
3644
3645
3646<span class="inline-flex align-middle ml-1" aria-hidden="true">
3647  
3648      <svg
3649        xmlns="http://www.w3.org/2000/svg"
3650        width="16"
3651        height="16"
3652        viewBox="0 0 24 24"
3653        fill="none"
3654        stroke="currentColor"
3655        stroke-width="2"
3656        stroke-linecap="round"
3657        stroke-linejoin="round"
3658        class="feather feather-arrow-right inline-block"
3659      >
3660        <line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
3661      </svg>
3662    
3663</span>
3664
3665                            </span>
3666                          </a>
3667                        
3668                        
3669                          <a href="/collections/commercial-maintenance" class="block pl-4 no-underline type__body">
3670                            Maintenance
3671                          </a>
3672                        
3673                          <a href="/collections/commercial-cleaning-supplies" class="block pl-4 no-underline type__body">
3674                            Cleaning Supplies
3675                          </a>
3676                        
3677                      </div>
3678                    
3679                  </div>
3680
3681                  
3682                  
3683                  
3684
3685                  
3686
3687
3688
3689  
3690  
3691  
3692
3693  
3694  
3695  
3696
3697  
3698  
3699  
3700    <div class="flex flex-wrap py-8 max-w-[50%]">
3701      <div class="p-6 rounded-md color__bg-scg-blue h-fit">
3702        <h3 class="color__primary">Get started with a free consultation!</h3>
3703        <div class="color__primary">
3704          <p>We’ll reach out to you to assist with product selection, troubleshooting, and to answer any general questions.</p>
3705        </div>
3706        <a href="/pages/commercial" class="btn">
3707          Learn More
3708        </a>
3709      </div>
3710
3711      <div>
3712        <h4 class="text-lg font-bold !mb-1 !mt-2">Need Assistance?</h4>
3713        <div class="flex flex-col items-start justify-start gap-1">
3714          <div class="flex flex-row items-start justify-start divide-x-2 divide-slate-200 ">
3715            <div class="flex flex-col px-3 mt-2 ">
3716              <span class="flex items-center">
3717                <!-- snippets/component__icon.liquid -->
3718
3719
3720<span class="inline-flex align-middle mr-2 color__text" aria-hidden="true">
3721  
3722      <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 512 512">
3723        <path d="M493.09 351.3L384.7 304.8a31.36 31.36 0 0 0-36.5 8.9l-44.1 53.9A350 350 0 0 1 144.5 208l53.9-44.1a31.35 31.35 0 0 0 8.9-36.49l-46.5-108.5A31.33 31.33 0 0 0 125 .81L24.2 24.11A31.05 31.05 0 0 0 0 54.51C0 307.8 205.3 512 457.49 512A31.23 31.23 0 0 0 488 487.7L511.19 387a31.21 31.21 0 0 0-18.1-35.7zM456.89 480C222.4 479.7 32.3 289.7 32.1 55.21l99.6-23 46 107.39-72.8 59.5C153.3 302.3 209.4 358.6 313 407.2l59.5-72.8 107.39 46z"/>
3724      </svg>
3725    
3726</span>
3727
3728                <span class="flex flex-col xl:flex-row">
3729                  <span class="text-base xl:text-lg">Call us at</span>
3730                  <a href="tel:8663724734" class="color__text-scg-blue xl:ml-2 !no-underline">866-372-4734</a>
3731                </span>
3732              </span>
3733
3734            </div>
3735
3736            <div class="px-3 mt-2">
3737              <a href="/policies/contact-information" class="color__text-scg-blue flex items-center !no-underline">
3738                <!-- snippets/component__icon.liquid -->
3739
3740
3741<span class="inline-flex align-middle mr-2 color__text" aria-hidden="true">
3742  
3743      <svg
3744        xmlns="http://www.w3.org/2000/svg"
3745        width="18"
3746        height="18"
3747        viewBox="0 0 24 24"
3748        fill="none"
3749        stroke="currentColor"
3750        stroke-width="2"
3751        stroke-linecap="round"
3752        stroke-linejoin="round"
3753        class="feather feather-message-circle"
3754      >
3755        <path d="M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z"></path>
3756      </svg>
3757    
3758</span>
3759
3760                <span class="text-base xl:text-lg">Live Chat</span>
3761              </a>
3762            </div>
3763
3764            <div class="px-3 mt-2">
3765              <a href="mailto:[email protected]" class="color__text-scg-blue flex items-center !no-underline">
3766                <!-- snippets/component__icon.liquid -->
3767
3768
3769<span class="inline-flex align-middle mr-2 color__text" aria-hidden="true">
3770  
3771      <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 512 512">
3772        <path d="M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM48 96h416c8.8 0 16 7.2 16 16v41.4c-21.9 18.5-53.2 44-150.6 121.3-16.9 13.4-50.2 45.7-73.4 45.3-23.2.4-56.6-31.9-73.4-45.3C85.2 197.4 53.9 171.9 32 153.4V112c0-8.8 7.2-16 16-16zm416 320H48c-8.8 0-16-7.2-16-16V195c22.8 18.7 58.8 47.6 130.7 104.7 20.5 16.4 56.7 52.5 93.3 52.3 36.4.3 72.3-35.5 93.3-52.3 71.9-57.1 107.9-86 130.7-104.7v205c0 8.8-7.2 16-16 16z"/>
3773      </svg>
3774    
3775</span>
3776
3777                <span class="text-base xl:text-lg">Email Us</span>
3778              </a>
3779            </div>
3780
3781            <div class="px-3 mt-2">
3782              <a href="/blogs/scg-blog" class="color__text-scg-blue flex items-center !no-underline">
3783                <!-- snippets/component__icon.liquid -->
3784
3785
3786<span class="inline-flex align-middle mr-2 color__text" aria-hidden="true">
3787  
3788      <svg
3789        xmlns="http://www.w3.org/2000/svg"
3790        width="22"
3791        height="14"
3792        viewBox="0 0 576 512"
3793        stroke="currentColor"
3794        stroke-width="2"
3795        stroke-linecap="round"
3796        stroke-linejoin="round"
3797        class="feather feather-blog"
3798      >
3799        <path d="M561.91 0C549.44 0 406.51 6.49 320 56.89 233.49 6.49 90.56 0 78.09 0 35.03 0 0 34.34 0 76.55v313.72c0 40.73 32.47 74.3 73.92 76.41 36.78 1.91 128.81 9.5 187.73 38.69 8.19 4.05 17.25 6.29 26.34 6.58v.05h64.02v-.05c9.09-.29 18.15-2.53 26.34-6.58 58.92-29.19 150.95-36.78 187.73-38.69C607.53 464.57 640 431 640 390.27V76.55C640 34.34 604.97 0 561.91 0zM296 438.15c0 11.09-10.96 18.91-21.33 14.96-64.53-24.54-153.96-32.07-198.31-34.38-15.9-.8-28.36-13.3-28.36-28.46V76.55C48 60.81 61.5 48 78.06 48c19.93.1 126.55 7.81 198.53 40.49 11.63 5.28 19.27 16.66 19.28 29.44L296 224v214.15zm296-47.88c0 15.16-12.46 27.66-28.36 28.47-44.35 2.3-133.78 9.83-198.31 34.38-10.37 3.94-21.33-3.87-21.33-14.96V224l.14-106.08c.02-12.78 7.65-24.15 19.28-29.44C435.4 55.81 542.02 48.1 561.94 48 578.5 48 592 60.81 592 76.55v313.72z"/>
3800      </svg>
3801    
3802</span>
3803
3804                <span class="text-base xl:text-lg">Blog</span>
3805              </a>
3806            </div>
3807          </div>
3808          <span class="ml-6 text-sm">8am - 5pm PST, Mon - Fri</span>
3809        </div>
3810      </div>
3811    </div>
3812  
3813</div></div></div></div></div><div class="flex-shrink">
3814        <a
3815          href="/collections/sale"
3816          class="
3817            header__link h-full flex items-center mr-2 block no-underline type__nav--top text-zinc-600
3818            
3819            
3820            xl:pr-4 pt-2 pb-4 uppercase font-medium 
3821            
3822            
3823            
3824            
3825              px-2 xl:px-4 xl:mx-2
3826            
3827          "
3828          x-data="{ linkTitle: 'sale' }"
3829          :class="{ '!text-scg-red': ['sale','deal'].some(k => linkTitle.includes(k)) }"
3830        >
3831          SALE
3832          
3833        </a>
3834
3835        </div>
3836<div class="flex flex-wrap items-center ml-auto">
3837<div class="relative flex-shrink" x-data="{ showTooltipResourceHub: false }">
3838  <a
3839    x-on:mouseover="showTooltipResourceHub = true"
3840    x-on:mouseout="showTooltipResourceHub = false"
3841    class="type__nav inline-flex items-center pl-2 xl:pl-4 ml-2 !no-underline"
3842    href="/pages/resource-hub"
3843    title="Resource Hub">
3844    <!-- snippets/component__icon.liquid -->
3845
3846
3847<span class="inline-flex align-middle " aria-hidden="true">
3848  
3849      <svg
3850        xmlns="http://www.w3.org/2000/svg"
3851        width="24"
3852        height="24"
3853        viewBox="0 0 24 24"
3854        fill="none"
3855        stroke="currentColor"
3856        stroke-width="2"
3857        stroke-linecap="round"
3858        stroke-linejoin="round"
3859        class="feather feather-help-circle"
3860      >
3861        <circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line>
3862      </svg>
3863    
3864</span>
3865
3866  </a>
3867  <div
3868    x-show="showTooltipResourceHub"
3869    class="tooltip"
3870    x-cloak>
3871    Resource Hub
3872  </div>
3873</div>
3874
3875<div class="relative flex-shrink" x-data="{ showTooltipLearn: false }">
3876  <a
3877    x-on:mouseover="showTooltipLearn = true"
3878    x-on:mouseout="showTooltipLearn = false"
3879    class="type__nav inline-flex items-center pl-2 xl:pl-4 ml-2 !no-underline"
3880    href="/pages/learn-articles"
3881    title="Blog Articles">
3882    <!-- snippets/component__icon.liquid -->
3883
3884
3885<span class="inline-flex align-middle " aria-hidden="true">
3886  
3887      <svg
3888        xmlns="http://www.w3.org/2000/svg"
3889        width="28"
3890        height="20"
3891        viewBox="0 0 576 512"
3892        stroke="currentColor"
3893        stroke-width="2"
3894        stroke-linecap="round"
3895        stroke-linejoin="round"
3896        class="feather feather-blog"
3897      >
3898        <path d="M561.91 0C549.44 0 406.51 6.49 320 56.89 233.49 6.49 90.56 0 78.09 0 35.03 0 0 34.34 0 76.55v313.72c0 40.73 32.47 74.3 73.92 76.41 36.78 1.91 128.81 9.5 187.73 38.69 8.19 4.05 17.25 6.29 26.34 6.58v.05h64.02v-.05c9.09-.29 18.15-2.53 26.34-6.58 58.92-29.19 150.95-36.78 187.73-38.69C607.53 464.57 640 431 640 390.27V76.55C640 34.34 604.97 0 561.91 0zM296 438.15c0 11.09-10.96 18.91-21.33 14.96-64.53-24.54-153.96-32.07-198.31-34.38-15.9-.8-28.36-13.3-28.36-28.46V76.55C48 60.81 61.5 48 78.06 48c19.93.1 126.55 7.81 198.53 40.49 11.63 5.28 19.27 16.66 19.28 29.44L296 224v214.15zm296-47.88c0 15.16-12.46 27.66-28.36 28.47-44.35 2.3-133.78 9.83-198.31 34.38-10.37 3.94-21.33-3.87-21.33-14.96V224l.14-106.08c.02-12.78 7.65-24.15 19.28-29.44C435.4 55.81 542.02 48.1 561.94 48 578.5 48 592 60.81 592 76.55v313.72z"/>
3899      </svg>
3900    
3901</span>
3902
3903  </a>
3904  <div
3905    x-show="showTooltipLearn"
3906    class="tooltip"
3907    x-cloak>
3908    Blog Articles
3909  </div>
3910</div>
3911<div class="relative flex-shrink" x-data="{ showTooltipAccount: false }">
3912  <a
3913    x-on:mouseover="showTooltipAccount = true"
3914    x-on:mouseout="showTooltipAccount = false"
3915    class="type__nav inline-flex items-center pl-2 xl:pl-4 ml-2 !no-underline"
3916    href="https://account.seattlecoffeegear.com"
3917    rel="nofollow"
3918    title="Log in">
3919    <!-- snippets/component__icon.liquid -->
3920
3921
3922<span class="inline-flex align-middle " aria-hidden="true">
3923  
3924      <svg
3925        xmlns="http://www.w3.org/2000/svg"
3926        width="24"
3927        height="24"
3928        viewBox="0 0 24 24"
3929        fill="none"
3930        stroke="currentColor"
3931        stroke-width="2"
3932        stroke-linecap="round"
3933        stroke-linejoin="round"
3934        class="feather feather-user"
3935      >
3936        <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle>
3937      </svg>
3938    
3939</span>
3940
3941  
3942  </a>
3943  <div
3944    x-show="showTooltipAccount"
3945    class="tooltip"
3946    x-cloak>
3947    Account
3948  </div>
3949</div>
3950
3951<div class="flex-shrink">
3952  <a
3953    class="type__nav relative inline-flex items-center pl-2 xl:pl-4 ml-2 !no-underline"
3954    href="/cart"
3955    rel="nofollow"
3956    title="Cart"
3957    >
3958    <!-- snippets/component__icon.liquid -->
3959
3960
3961<span class="inline-flex align-middle " aria-hidden="true">
3962  
3963      <svg
3964        xmlns="http://www.w3.org/2000/svg"
3965        width="24"
3966        height="24"
3967        viewBox="0 0 24 24"
3968        fill="none"
3969        stroke="currentColor"
3970        stroke-width="2"
3971        stroke-linecap="round"
3972        stroke-linejoin="round"
3973        class="feather feather-shopping-cart"
3974      >
3975        <circle cx="9" cy="21" r="1"></circle><circle cx="20" cy="21" r="1"></circle><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"></path>
3976      </svg>
3977    
3978</span>
3979
3980    <span
3981      class="type__nav type--smaller color__bg-primary color__primary ml-1 px-2 py-0.5 border__button--radius"
3982      x-show="cart.item_count > 0"
3983      x-cloak>
3984      <span class="type__nav" x-text="cart.item_count">0</span>
3985    </span>
3986  
3987  </a>
3988</div></div></div>
3989    
3990
3991    
3992  </div>
3993</div></nav></div>
3994<!-- END sections: header-group -->
3995      </header>
3996      <div id="shopify-section-theme__cart" class="shopify-section"><!-- sections/theme__cart.liquid -->
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006<section
4007  class="fixed inset-0 z-50 overflow-hidden"
4008  x-show="cart_drawer"
4009  x-cloak
4010>
4011  <div class="absolute inset-0 overflow-hidden">
4012    <div
4013      class="backdrop-blur-md absolute inset-0 bg-black bg-opacity-50"
4014      aria-hidden="true"
4015      x-show="cart_drawer"
4016      
4017        x-transition:enter="animation-300"
4018        x-transition:enter-start="opacity-0"
4019        x-transition:enter-end="opacity-100"
4020        x-transition:leave="animation-300"
4021        x-transition:leave-start="opacity-100"
4022        x-transition:leave-end="opacity-0"
4023      
4024      @click="cart_drawer = false;"
4025      x-cloak
4026    ></div>
4027    <div
4028      class="fixed inset-y-0 right-0 z-10 flex max-w-full"
4029      x-trap="cart_drawer"
4030      x-show="cart_drawer"
4031      
4032        x-transition:enter="animation-300 opacity-0"
4033        x-transition:enter-start="translate-x-8 opacity-0"
4034        x-transition:enter-end="translate-x-0 opacity-100"
4035        x-transition:leave="animation-300 opacity-100"
4036        x-transition:leave-start="translate-x-0 opacity-100"
4037        x-transition:leave-end="translate-x-8 opacity-0"
4038      
4039      x-cloak
4040    >
4041      <div class="lg:flex right-full absolute hidden min-w-[256px] self-start gap-4 m-4 flex-wrap">
4042        
4043  
4044
4045      </div>
4046      <div class="md:max-w-xl w-screen max-w-full">
4047        <div class="color__bg-body flex flex-col h-full shadow-xl" action="/cart" method="post"><section
4048            class="
4049              border--b-width flex flex-col px-4 py-2 sticky top-0 shadow bg-white z-[51]
4050              color__border-divider-1
4051            "
4052          >
4053            <div class="flex flex-wrap items-center justify-between">
4054              <div class="text-black text-[28px] font-bold text-left flex flex-row">
4055                Cart
4056                <span class="ml-3" x-show="cart.item_count > 0" x-cloak>
4057                  <div class="flex items-center justify-center w-7 h-7 rounded-full border color__border-scg-red">
4058                    <div
4059                      class="color__text-scg-red text-base font-semibold tracking-widest"
4060                      x-text="cart.item_count"
4061                    ></div>
4062                  </div>
4063                </span>
4064              </div>
4065
4066              <div>
4067                <button
4068                  class="h-14 w-14 flex items-center justify-center opacity-80 bg-white rounded-full shadow hover:bg-gray-100"
4069                  title="Close"
4070                  @click="cart_drawer = false;"
4071                >
4072                  <!-- snippets/component__icon.liquid -->
4073
4074
4075<span class="inline-flex align-middle " aria-hidden="true">
4076  
4077      <svg
4078        xmlns="http://www.w3.org/2000/svg"
4079        width="24"
4080        height="24"
4081        viewBox="0 0 24 24"
4082        fill="none"
4083        stroke="currentColor"
4084        stroke-width="2"
4085        stroke-linecap="round"
4086        stroke-linejoin="round"
4087        class="feather feather-x"
4088      >
4089        <line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line>
4090      </svg>
4091    
4092</span>
4093
4094                </button>
4095              </div>
4096            </div>
4097              <div
4098                class="px-4 py-2"
4099              >
4100                <p
4101                  class="type--small text-center mb-2"
4102                  x-show="cart.shipping_gap > 0"
4103                  x-cloak
4104                >
4105                  You&#39;re
4106                  <span
4107                    x-text="Shopify.formatMoney(cart.shipping_gap, currency_symbol, true, 'amount', '100')"
4108                  >
4109                  </span>
4110                  away from free shipping
4111                </p>
4112                <p
4113                  class="type--small text-center mb-2"
4114                  x-show="cart.shipping_gap <= 0"
4115                  x-cloak
4116                >
4117                  <!-- snippets/component__icon.liquid -->
4118
4119
4120<span class="inline-flex align-middle pr-1" aria-hidden="true">
4121  
4122      <svg
4123        width="24"
4124        height="14"
4125        viewBox="0 0 25 14"
4126        fill="none"
4127        xmlns="http://www.w3.org/2000/svg"
4128      >
4129        <g>
4130        <path id="Fill 1" fill-rule="evenodd" clip-rule="evenodd" d="M23.5237 11.6162H22.7326C22.504 10.8608 21.7915 10.3288 20.9737 10.3288C20.1564 10.3288 19.4439 10.8608 19.2147 11.6162H18.4243V4.23642H20.801C21.3629 4.23642 21.8207 4.68501 21.8207 5.23567V7.26159H19.6606C19.3719 7.26159 19.1368 7.49142 19.1368 7.77492C19.1368 8.05726 19.3719 8.28767 19.6606 8.28767H22.0993C22.8844 8.28767 23.5237 8.91417 23.5237 9.68359V11.6162ZM20.9737 12.9036C20.5385 12.9036 20.1844 12.5559 20.1844 12.1295C20.1844 11.7025 20.5385 11.356 20.9737 11.356C21.4094 11.356 21.7635 11.7025 21.7635 12.1295C21.7635 12.5559 21.4094 12.9036 20.9737 12.9036ZM9.88676 12.9036C9.45104 12.9036 9.09747 12.5559 9.09747 12.1295C9.09747 11.7025 9.45104 11.356 9.88676 11.356C10.3225 11.356 10.6766 11.7025 10.6766 12.1295C10.6766 12.5559 10.3225 12.9036 9.88676 12.9036ZM22.8677 7.38351V5.23567C22.8677 4.11859 21.9403 3.20976 20.801 3.20976H18.4243V1.09576C18.4243 0.812841 18.1891 0.583008 17.9004 0.583008H5.32009C5.03199 0.583008 4.79688 0.812841 4.79688 1.09576C4.79688 1.37926 5.03199 1.60967 5.32009 1.60967H17.3766V11.6162H11.6457C11.4171 10.8608 10.704 10.3288 9.88676 10.3288C9.06949 10.3288 8.35699 10.8608 8.12783 11.6162H5.32009C5.03199 11.6162 4.79688 11.8466 4.79688 12.1295C4.79688 12.413 5.03199 12.6428 5.32009 12.6428H8.12783C8.35699 13.3983 9.06949 13.9297 9.88676 13.9297C10.704 13.9297 11.4171 13.3983 11.6457 12.6428H19.2147C19.4439 13.3983 20.1564 13.9297 20.9737 13.9297C21.7915 13.9297 22.504 13.3983 22.7326 12.6428H24.0475C24.3362 12.6428 24.5713 12.413 24.5713 12.1295V9.68359C24.5713 8.63009 23.8796 7.70726 22.8677 7.38351Z" fill="#282828"/>
4131        <path id="Fill 4" fill-rule="evenodd" clip-rule="evenodd" d="M3.50233 4.45049H9.77137C10.0607 4.45049 10.2952 4.22008 10.2952 3.93716C10.2952 3.65424 10.0607 3.42383 9.77137 3.42383H3.50233C3.21363 3.42383 2.97852 3.65424 2.97852 3.93716C2.97852 4.22008 3.21363 4.45049 3.50233 4.45049Z" fill="#282828"/>
4132        <path id="Fill 6" fill-rule="evenodd" clip-rule="evenodd" d="M1.85779 7.12628H6.63756C6.92684 7.12628 7.16137 6.89586 7.16137 6.61294C7.16137 6.33003 6.92684 6.09961 6.63756 6.09961H1.85779C1.5691 6.09961 1.33398 6.33003 1.33398 6.61294C1.33398 6.89586 1.5691 7.12628 1.85779 7.12628Z" fill="#282828"/>
4133        <path id="Fill 8" fill-rule="evenodd" clip-rule="evenodd" d="M3.97202 9.05762H0.523809C0.234524 9.05762 0 9.28803 0 9.57095C0 9.85387 0.234524 10.0843 0.523809 10.0843H3.97202C4.26071 10.0843 4.49583 9.85387 4.49583 9.57095C4.49583 9.28803 4.26071 9.05762 3.97202 9.05762Z" fill="#282828"/>
4134        </g>
4135      </svg>
4136    
4137</span>
4138
4139                  <span class="text-zinc-800 text-sm font-normal">You've got </span
4140                  ><span class="color__text-scg-green text-sm font-bold">FREE </span
4141                  ><span class="text-zinc-800 text-sm font-normal">
4141delivery on this order.</span>
4142                  
4143                </p>
4144                <div class="color__bg-overlay-2 rounded-lg h-2 overflow-hidden">
4145                  <div
4146                    class="color__bg-scg-green animation-500--all h-2"
4147                    :style="{ width: cart.shipping_progress }"
4148                  ></div>
4149                </div>
4150              </div>
4151            
4152          </section><section
4153            class="pt-5 flex flex-col flex-grow overflow-x-hidden overflow-y-auto bg-gray-50"
4154            x-data="
4155              {
4156                scroll: false,
4157                animate_index: 0,
4158                animate_delay: 0
4159              }
4160            "
4161            @scroll.throttle="scroll = true"
4162          ><template x-if="cart.items.length == 0">
4163              <div
4164                class="
4165                  flex flex-col items-center justify-center flex-grow bg-white shadow
4166                  color__bg-body color__text
4167                  color__border-divider-1
4168                "
4169              >
4170                <p>Your cart is empty</p>
4171                <a class="btn" href="/collections/all">
4172                  Shop all
4173                </a>
4174              </div>
4175            </template>
4176
4177            <template x-for="(item, index) in cart.items">
4178              <div class="mx-5 mb-5">
4179                <div
4180                  class="
4181                    drawer-cart-item border--b-width flex w-full p-4 gap-2 bg-white shadow
4182                    color__bg-body color__text
4183                    color__border-divider-1
4184                  "
4185                >
4186                  <a
4187                    class="drawer-cart-item__image w-[30%] h-full flex-none relative lg:mr-2"
4188                    :href="item.url"
4189                  >
4190                    <div
4191                      class="
4192                        border--radius object-cover max-w-full overflow-hidden
4193                        aspect-[1/1] aspect-w-1 aspect-h-1
4194                        color__bg-body after:color__bg-body color__text after:color__text
4195                      "
4196                    >
4197                      
4198                      <picture>
4199                        <source :srcset="item.featured_image + '&width=200'" media="(min-width: 768px)">
4200                        <img
4201                          class=" w-full h-full object-cover animation-1000 color__bg-body after:color__bg-body color__text after:color__text"
4202                          loading="lazy"
4203                          
4204                            :class="
4205                              {
4206                              'opacity-0' : cart_loading }
4207                            "
4208                          
4209                          :src="item.image + '&width=200'"
4210                          :alt="item.product_title"
4211                          width="200"
4212                          height="200"
4213                        >
4214                      </picture>
4215                    </div>
4216                  </a>
4217
4218                  <div
4219                    class="animation-500 flex flex-col justify-between flex-grow"
4220                    
4221                      :class="
4222                        {
4223                        'opacity-50' : cart_loading }
4224                      "
4225                    
4226                  >
4227                    <div class="flex items-start justify-between gap-2">
4228                      <a
4229                        class="drawer-cart-item__info hover:no-underline no-underline gap-2 flex flex-col justify-between flex-grow"
4230                        :href="item.url"
4231                        tabindex="-1"
4232                      >
4233                        <p
4234                          class="drawer-cart-item__title mb-0 text-neutral-800 text-base font-bold"
4235                          x-text="item.product_title"
4236                        ></p>
4237                        
4238
4239                        <template x-if="item.properties">
4240                          <template x-for="property in Object.entries(item.properties)">
4241                            <p
4242                              x-show="!/_|Extend/.test(property[0])"
4243                              class="type--smaller mb-0 opacity-75"
4244                              x-text="property[0] + ' : ' + property[1]"
4245                            ></p>
4246                          </template>
4247                        </template>
4248
4249                        <p
4250                          class="text-zinc-600 text-base font-normal leading-snug mb-0"
4251                          x-show="item.variant_title"
4252                        >
4253                          Color:
4254                          <span
4255                            class="text-zinc-600 text-base font-bold leading-snug"
4256                            x-text="item.variant_title"
4257                          ></span>
4258                        </p>
4259
4260                        
4261                        
4262
4263                        <p
4264                          class="type--smaller mb-0 opacity-75"
4265                          x-text="item.selling_plan_allocation ? item.selling_plan_allocation.selling_plan.name : ''"
4266                          x-show="item.selling_plan_allocation"
4267                          x-cloak
4268                        ></p>
4269
4270                        
4271                        <template x-for="(discount) in item.discounts">
4272                          <div class="mt-2">
4273                            
4274                            <!-- snippets/component__badge.liquid -->
4275
4276
4277<div
4278  id="pdp-badge"
4279  class="
4280    color__bg-overlay-2 color__overlay-2 border__button--radius inline-flex items-center px-2 py-1
4281    
4282  "
4283>
4284  
4285
4286  
4287    <!-- snippets/component__icon.liquid -->
4288
4289
4290<span class="inline-flex align-middle  mr-1  " aria-hidden="true">
4291  
4292      <svg
4293        xmlns="http://www.w3.org/2000/svg"
4294        width="16"
4295        height="16"
4296        viewBox="0 0 24 24"
4297        fill="none"
4298        stroke="currentColor"
4299        stroke-width="2"
4300        stroke-linecap="round"
4301        stroke-linejoin="round"
4302        class="feather feather-tag"
4303      >
4304        <path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line>
4305      </svg>
4306    
4307</span>
4308
4309  
4310  <span class="type--small !font-bold type__nav flex items-center gap-1 ">
4311                              <span class="type--smaller type__nav mr-1" x-text="discount.title"></span>
4312                              <span class="type--smaller type__nav mr-1">·</span>
4313                              <span class="type--smaller type__nav" x-text="Shopify.formatMoney(discount.amount, currency_symbol, true, 'amount', '100')"></span>
4314                            </span>
4315</div>
4316
4317                          </div>
4318                        </template>
4319
4320                        
4321                        <div class="flex flex-row">
4322                          <span
4323                            class="drawer-cart-item__price !leading-tight font-bold"
4324                            x-text="Shopify.formatMoney(item.line_price, currency_symbol,true, 'amount', '100')"
4325                          ></span>
4326                          <span
4327                            class="!leading-tight pl-2"
4328                            x-show="item.total_discount > 0"
4329                            x-cloak
4330                          >
4331                            <s
4332                              class="!leading-tight"
4333                              x-text="Shopify.formatMoney(item.original_line_price, currency_symbol, true, 'amount', '100')"
4334                            >
4335                            </s>
4336                          </span>
4337                          <span class="type--small" x-show="item.unit_price_measurement">
4338                            <span
4339                              x-text="Shopify.formatMoney(item.unit_price, currency_symbol, true, 'amount', '100')"
4340                            ></span>
4341                            <span>/</span>
4342                            <span
4343                              x-text="
4344                                if(item.unit_price_measurement){
4345                                  return item.unit_price_measurement.reference_value;
4346                                }
4347                              "
4348                            ></span>
4349                            <span
4350                              x-text="
4351                                if(item.unit_price_measurement){
4352                                  return item.unit_price_measurement.reference_unit;
4353                                }
4354                              "
4355                            ></span>
4356                          </span>
4357                        </div>
4358                      </a>
4359
4360                      <div x-data="{ button_loading: false }">
4361                        <button
4362                          class="h-9 w-9 flex items-center justify-center bg-white rounded-full shadow hover:bg-gray-100"
4363                          :class="{ 'btn--loading' : cart_loading && button_loading }"
4364                          :disabled="button_loading"
4365                          @click="changeCartItemQuantity(item.key, 0, false); button_loading = true; setTimeout(function(){ button_loading = false}, 500);"
4366                        >
4367                          <!-- snippets/component__icon.liquid -->
4368
4369
4370<span class="inline-flex align-middle " aria-hidden="true">
4371  
4372      <svg
4373        xmlns="http://www.w3.org/2000/svg"
4374        width="14"
4375        height="14"
4376        viewBox="0 0 24 24"
4377        fill="none"
4378        stroke="currentColor"
4379        stroke-width="2"
4380        stroke-linecap="round"
4381        stroke-linejoin="round"
4382        class="feather feather-x"
4383      >
4384        <line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line>
4385      </svg>
4386    
4387</span>
4388
4389
4390                          <div class="btn__spinner">
4391                            <!-- snippets/component__icon.liquid -->
4392
4393
4394<span class="inline-flex align-middle " aria-hidden="true">
4395  
4396      <svg
4397        xmlns="http://www.w3.org/2000/svg"
4398        width="16"
4399        height="16"
4400        viewBox="0 0 24 24"
4401        fill="none"
4402        stroke="currentColor"
4403        stroke-width="2"
4404        stroke-linecap="round"
4405        stroke-linejoin="round"
4406        class="feather feather-loader"
4407      >
4408        <line x1="12" y1="2" x2="12" y2="6"></line><line x1="12" y1="18" x2="12" y2="22"></line><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"></line><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"></line><line x1="2" y1="12" x2="6" y2="12"></line><line x1="18" y1="12" x2="22" y2="12"></line><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"></line><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"></line>
4409      </svg>
4410    
4411</span>
4412
4413                          </div>
4414                        </button>
4415                      </div>
4416
4417                      
4418                    </div>
4419                    <div class="mt-2 flex items-center justify-between gap-2">
4420                      <div
4421                        class="color__text border-neutral-200 border--width hover:color__border-selected-1 color__bg-overlay-1 border__input--radius animation-500 relative flex max-h-[38px] max-w-[150px] overflow-hidden"
4422                        x-data="
4423                          {
4424                            button_loading: false
4425                          }
4426                        "
4427                      >
4428                        <button
4429                          class="btn btn--smaller btn--plain shrink-0 !rounded-none !min-h-[35px] !min-w-[30px]"
4430                          :disabled="button_loading"
4431                          title="Decrease quantity"
4432                          type="button"
4433                          @click="
4434                            if(changeCartItemQuantity(item.key, item.quantity-1, false, false)) {
4435                              button_loading = true;
4436                              item.quantity--;
4437                              setTimeout(function(){ button_loading = false}, 500);
4438                            }
4439                          "
4440                        >
4441                          <!-- snippets/component__icon.liquid -->
4442
4443
4444<span class="inline-flex align-middle " aria-hidden="true">
4445  
4446      <svg
4447        xmlns="http://www.w3.org/2000/svg"
4448        width="14"
4449        height="14"
4450        viewBox="0 0 24 24"
4451        fill="none"
4452        stroke="currentColor"
4453        stroke-width="2"
4454        stroke-linecap="round"
4455        stroke-linejoin="round"
4456        class="feather feather-minus"
4457      >
4458        <line x1="5" y1="12" x2="19" y2="12"></line>
4459      </svg>
4460    
4461</span>
4462
4463                        </button>
4464                        <label :for="'cart-' + item.key + '-quantity'" class="sr-only">Quantity</label>
4465                        <input
4466                          :id="'cart-' + item.key + '-quantity'"
4467                          placeholder="1"
4468                          type="text"
4469                          class="drawer-cart-item__quantity !color__bg-light-gray form-input !w-12 !rounded-none !border-0 text-center !font-bold !min-h-[35px] !min-w-[30px]"
4470                          @change.debounce="
4471                            changeCartItemQuantity(item.key, item.quantity, false);
4472                            button_loading = true;
4473                            setTimeout(function(){ button_loading = false}, 500);
4474                          "
4475                          x-model="item.quantity"
4476                        >
4477                        <div
4478                          class="btn__spinner btn--smaller !w-auto"
4479                          :class="{ '!visible color__bg-overlay-1 z-10' : button_loading }"
4480                        >
4481                          <!-- snippets/component__icon.liquid -->
4482
4483
4484<span class="inline-flex align-middle " aria-hidden="true">
4485  
4486      <svg
4487        xmlns="http://www.w3.org/2000/svg"
4488        width="16"
4489        height="16"
4490        viewBox="0 0 24 24"
4491        fill="none"
4492        stroke="currentColor"
4493        stroke-width="2"
4494        stroke-linecap="round"
4495        stroke-linejoin="round"
4496        class="feather feather-loader"
4497      >
4498        <line x1="12" y1="2" x2="12" y2="6"></line><line x1="12" y1="18" x2="12" y2="22"></line><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"></line><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"></line><line x1="2" y1="12" x2="6" y2="12"></line><line x1="18" y1="12" x2="22" y2="12"></line><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"></line><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"></line>
4499      </svg>
4500    
4501</span>
4502
4503                        </div>
4504                        <button
4505                          class="btn btn--smaller btn--plain shrink-0 !rounded-none !min-h-[35px] !min-w-[30px]"
4506                          :disabled="button_loading"
4507                          title="Increase quantity"
4508                          type="button"
4509                          @click="
4510                            if(changeCartItemQuantity(item.key, item.quantity+1, false, false)) {
4511                              button_loading = true;
4512                              item.quantity++;
4513                              setTimeout(function(){ button_loading = false}, 500);
4514                            }
4515                          "
4516                        >
4517                          <!-- snippets/component__icon.liquid -->
4518
4519
4520<span class="inline-flex align-middle " aria-hidden="true">
4521  
4522      <svg
4523        xmlns="http://www.w3.org/2000/svg"
4524        width="14"
4525        height="14"
4526        viewBox="0 0 24 24"
4527        fill="none"
4528        stroke="currentColor"
4529        stroke-width="2"
4530        stroke-linecap="round"
4531        stroke-linejoin="round"
4532        class="feather feather-plus"
4533      >
4534        <line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line>
4535      </svg>
4536    
4537</span>
4538
4539                        </button>
4540                      </div>
4541                      <div class="flex">
4542                        <div
4543                          :class="item.product_has_only_default_variant ? 'hidden' : 'mr-2'"
4544                          x-data="{ button_loading: false }"
4545                        >
4546                          <button
4547                            class="btn btn--load btn--plain btn--small !rounded-none !min-h-[35px] !min-w-[30px] !border-neutral-200"
4548                            :class="{ 'btn--loading' : cart_loading && button_loading }"
4549                            :disabled="button_loading"
4550                            @click="fetchAndRenderQuickAdd(item.handle, 'cart', true); setQuery(item.variant_id); setTimeout(function(){ button_loading = false}, 500);"
4551                          >
4552                            Edit
4553                            <div class="btn__spinner">
4554                              <!-- snippets/component__icon.liquid -->
4555
4556
4557<span class="inline-flex align-middle " aria-hidden="true">
4558  
4559      <svg
4560        xmlns="http://www.w3.org/2000/svg"
4561        width="20"
4562        height="20"
4563        viewBox="0 0 24 24"
4564        fill="none"
4565        stroke="currentColor"
4566        stroke-width="2"
4567        stroke-linecap="round"
4568        stroke-linejoin="round"
4569        class="feather feather-loader"
4570      >
4571        <line x1="12" y1="2" x2="12" y2="6"></line><line x1="12" y1="18" x2="12" y2="22"></line><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"></line><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"></line><line x1="2" y1="12" x2="6" y2="12"></line><line x1="18" y1="12" x2="22" y2="12"></line><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"></line><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"></line>
4572      </svg>
4573    
4574</span>
4575
4576                            </div>
4577                          </button>
4578                        </div>
4579
4580                        <div :id="'js:quickAdd-cart-' + item.handle"></div>
4581                      </div>
4582                    </div>
4583                  </div>
4584                </div>
4585              </div>
4586            </template>
4587
4588            
4589            ���<div
4590              class="bottom-4 sticky text-center"
4591              @click="scroll = true;"
4592              x-show="!scroll && cart.items.length > 5"
4593              
4594                x-transition:enter="animation-300"
4595                x-transition:enter-start="opacity-0 translate-y-8"
4596                x-transition:enter-end="opacity-100"
4597                x-transition:leave="animation-300"
4598                x-transition:leave-start="opacity-100"
4599                x-transition:leave-end="opacity-0 translate-y-8"
4600              
4601              x-cloak
4602            >
4603              <button class="btn btn--plain btn--small shadow-sm" title="Scroll down">
4604                <!-- snippets/component__icon.liquid -->
4605
4606
4607<span class="inline-flex align-middle " aria-hidden="true">
4608  
4609      <svg
4610        xmlns="http://www.w3.org/2000/svg"
4611        width="20"
4612        height="20"
4613        viewBox="0 0 24 24"
4614        fill="none"
4615        stroke="currentColor"
4616        stroke-width="2"
4617        stroke-linecap="round"
4618        stroke-linejoin="round"
4619        class="feather feather-arrow-down"
4620      >
4621        <line x1="12" y1="5" x2="12" y2="19"></line><polyline points="19 12 12 19 5 12"></polyline>
4622      </svg>
4623    
4624</span>
4625
4626              </button>
4627            </div>
4628          </section><aside
4629            class="
4630              border--t-width mt-auto
4631              color__bg-body color__text
4632              color__border-divider-1
4633            "
4634            x-show="cart.items.length > 0"
4635            x-cloak
4636          >
4637            <div
4638              class="flex flex-wrap"
4639              x-data="
4640                {
4641                  index: 0,
4642                  index_scroll: 0,
4643                  index_size: 4,
4644                  show_arrows: false,
4645                  scrollToIndex(index_scroll) {
4646                    let slider = this.$refs.slider;
4647                    let currentSlide = slider.querySelector('[data-slide=&quot;'+ index_scroll + '&quot;]');
4648                    currentSlide.scrollIntoView({behavior: 'smooth', inline: 'start', block: 'nearest'});
4649                  },
4650                  scrollNext() {
4651                    this.index ++;
4652                    let slider = this.$refs.slider;
4653                    if(this.index > this.index_size){
4654                      slider.scrollLeft = 0;
4655                    } else {
4656                      slider.scrollLeft += slider.offsetWidth-300;
4657                    }
4658                  },
4659                  scrollBack() {
4660                    this.index --;
4661                    let slider = this.$refs.slider;
4662                    if(this.index < 0){
4663                      slider.scrollLeft = 999999;
4664                    } else {
4665                      slider.scrollLeft -= slider.offsetWidth-300;
4666                    }
4667                  }
4668                }
4669              "
4670            ><div
4671                class="w-full p-4 pb-0"
4672                
4673                x-cloak
4674              >
4675                <div
4676                  class="flex items-center justify-between w-full mb-1"
4677                  x-show="cart.total_discount > 0"
4678                >
4679                  <span class="">Subtotal</span>
4680                  <span
4681                    class=""
4682                    x-text="Shopify.formatMoney(cart.original_total_price, currency_symbol, true, 'amount', '100')"
4683                  ></span>
4684                </div>
4685                <div
4686                  class="flex items-center justify-between w-full mb-1"
4687                  x-show="cart.total_discount > 0"
4688                >
4689                  <span>Discount</span>
4690                  <span
4691                    x-text="'-' + Shopify.formatMoney(cart.total_discount, currency_symbol, true, 'amount', '100')"
4692                  ></span>
4693                </div>
4694                <div class="flex items-center justify-between w-full">
4695                  <span class="flex items-center w-full">
4696                    <div class="text-neutral-800 text-base font-normal">Total</div>
4697                    
4698                    
4699                  </span>
4700                  <strong
4701                    id="drawer-cart_total-price"
4702                    x-text="Shopify.formatMoney(cart.total_price, currency_symbol, true, 'amount', '100')"
4703                  ></strong>
4704                </div>
4705              </div><form
4706                id="drawer-cart_form"
4707                class="w-full px-4 py-4"
4708                action="/cart"
4709                method="post"
4710                x-data="{checkout_button_loading:false}"
4711                @submit.prevent="checkout_button_loading = true; if(enable_audio) { playSound(click_audio) } ;setTimeout(function(){ checkout_button_loading = false}, 5000); window.location.href = '/checkout';"
4712              >
4713                <p class="mb-0">
4714                  
4715                    <button
4716                      type="submit"
4717                      name="checkout"
4718                      class="!w-full flex flex-row !items-center !justify-between btn btn--load !bg-zinc-800 shadow !border-none"
4719                      :class="{ 'btn--loading' : checkout_button_loading }"
4720                      :disabled="checkout_button_loading"
4721                    >
4722                      <div class="btn__spinner">
4723                        <!-- snippets/component__icon.liquid -->
4724
4725
4726<span class="inline-flex align-middle " aria-hidden="true">
4727  
4728      <svg
4729        xmlns="http://www.w3.org/2000/svg"
4730        width="24"
4731        height="24"
4732        viewBox="0 0 24 24"
4733        fill="none"
4734        stroke="currentColor"
4735        stroke-width="2"
4736        stroke-linecap="round"
4737        stroke-linejoin="round"
4738        class="feather feather-loader"
4739      >
4740        <line x1="12" y1="2" x2="12" y2="6"></line><line x1="12" y1="18" x2="12" y2="22"></line><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"></line><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"></line><line x1="2" y1="12" x2="6" y2="12"></line><line x1="18" y1="12" x2="22" y2="12"></line><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"></line><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"></line>
4741      </svg>
4742    
4743</span>
4744
4745                      </div>
4746                      <div class="btn__content">
4747                        Checkout
4748                        
4749                      </div>
4750                      <!-- snippets/component__icon.liquid -->
4751
4752
4753<span class="inline-flex align-middle " aria-hidden="true">
4754  
4755      <svg
4756        xmlns="http://www.w3.org/2000/svg"
4757        width="16"
4758        height="16"
4759        viewBox="0 0 24 24"
4760        fill="none"
4761        stroke="currentColor"
4762        stroke-width="2"
4763        stroke-linecap="round"
4764        stroke-linejoin="round"
4765        class="feather feather-arrow-right inline-block"
4766      >
4767        <line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
4768      </svg>
4769    
4770</span>
4771
4772                    </button>
4773                  
4774                  
4775                </p>
4776                  <div class="type--smaller m-0--clear font-bold mt-2 text-center">
4777                    Shipping, Taxes, and Discounts Applied at Checkout
4778                  </div></form>
4779            </div>
4780          </aside>
4781        </div>
4782      </div>
4783    </div>
4784  </div>
4785</section>
4786
4787<!-- snippets/component__alert.liquid -->
4788
4789
4790<div class="md:left-auto md:right-5 md:top-5 color__bg-body color__text border--radius md:w-96 border--width color__border-divider-1 fixed top-0 left-0 right-0 z-50 w-auto overflow-hidden shadow-md" 
4791  @click.outside="cart_alert = false"
4792  @keyup.escape.window="cart_alert = false"
4793  x-show="cart_alert"
4794  
4795    x-transition:enter="animation-300"
4796    x-transition:enter-start="opacity-0"
4797    x-transition:enter-end="opacity-100"
4798    x-transition:leave="animation-300"
4799    x-transition:leave-start="opacity-100"
4800    x-transition:leave-end="opacity-0"
4801  
4802  x-cloak>
4803 
4804  <div class="relative p-4 overflow-hidden">
4805    
4806      <div class="color__bg-overlay-1 absolute top-0 left-0 w-full h-1 overflow-hidden">
4807        <div class="color__bg-secondary animation-5000--all w-0 h-1" 
4808          :style="{ width: cart_delay_width }"></div>
4809      </div>
4810    
4811    
4812  <div class="flex flex-wrap items-center justify-between mb-4">
4813
4814    <p class="flex items-center mb-0">
4815      <!-- snippets/component__icon.liquid -->
4816
4817
4818<span class="inline-flex align-middle mr-1" aria-hidden="true">
4819  
4820      <svg
4821        xmlns="http://www.w3.org/2000/svg"
4822        width="24"
4823        height="24"
4824        viewBox="0 0 24 24"
4825        fill="none"
4826        stroke="currentColor"
4827        stroke-width="2"
4828        stroke-linecap="round"
4829        stroke-linejoin="round"
4830        class="feather feather-check"
4831      >
4832        <polyline points="20 6 9 17 4 12"></polyline>
4833      </svg>
4834    
4835</span>
4836 Cart updated (<span x-text="cart.item_count"></span>)
4837    </p>
4838    <div class="flex">
4839      <button class="btn btn--smaller btn--plain"
4840        title="Close"
4841        @click="cart_alert = false">
4842        <!-- snippets/component__icon.liquid -->
4843
4844
4845<span class="inline-flex align-middle " aria-hidden="true">
4846  
4847      <svg
4848        xmlns="http://www.w3.org/2000/svg"
4849        width="24"
4850        height="24"
4851        viewBox="0 0 24 24"
4852        fill="none"
4853        stroke="currentColor"
4854        stroke-width="2"
4855        stroke-linecap="round"
4856        stroke-linejoin="round"
4857        class="feather feather-x"
4858      >
4859        <line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line>
4860      </svg>
4861    
4862</span>
4863
4864      </button>
4865    </div>
4866  </div>
4867
4868  
4869  
4870
4871  
4872  <a class="btn btn--small btn--plain !w-full mb-2"
4873    href="/cart">
4874    View Cart
4875  </a>
4876
4877  <button class="btn btn--small btn--primary !w-full mb-2" @click="checkout_button_loading = true; setTimeout(function(){ checkout_button_loading = false}, 5000); window.location.href = '/checkout';">
4878    Checkout · 
4879    
4880    <span class="type__nav ml-1" x-text="Shopify.formatMoney(cart.total_price, currency_symbol, true, 'amount', '100')"></span>
4881    
4882  </button>
4883
4884  </div>
4885</div>
4886
4887<script>
4888  window.__initialData = window.__initialData || {};
4889  Object.assign(window.__initialData, {
4890    progress_bar_threshold: 4900,
4891  });
4892</script>
4892
4893
4894
4895</div>
4896      <div id="shopify-section-theme__cart-modal" class="shopify-section"><!-- sections/cart-modal.liquid -->
4897
4898
4899<section
4900  class="fixed inset-0 z-[105] overflow-hidden custom-section-cart-popup-modal-container"
4901  x-show="cart_modal "
4902  x-init="
4903    $watch('cart_modal', value => {
4904      if (value && cart?.recently_added) {
4905        console.log('🧩 Recently added product object:', JSON.parse(JSON.stringify(cart.recently_added)));
4906      }
4907    });
4908  "
4909  x-cloak>
4910  <div class="flex items-end justify-center min-h-screen px-4 pt-4 text-center sm:block sm:p-0">
4911    <div
4912      class="fixed inset-0 transition-opacity bg-black bg-opacity-50 -z-10"
4913      @click="theme_scroll = true;"
4914      aria-hidden="true"
4915      x-show="cart_modal"
4916      
4917      x-transition:enter="animation-300"
4918      x-transition:enter-start="opacity-0"
4919      x-transition:enter-end="opacity-100"
4920      x-transition:leave="animation-300"
4921      x-transition:leave-start="opacity-100"
4922      x-transition:leave-end="opacity-0"
4923      
4924      x-cloak></div>
4925    <div
4926      class="absolute bottom-auto inline-block m-auto text-left align-middle transition-all transform -translate-y-1/2 left-2 right-2 top-1/2 md:left-5 md:right-5 md:max-w-3xl lg:max-w-5xl"
4927      x-show="cart_modal"
4928      x-trap="cart_modal"
4929      
4930      x-transition:enter="animation-300"
4931      x-transition:enter-start="opacity-0 translate-y-8"
4932      x-transition:enter-end="opacity-100"
4933      x-transition:leave="animation-300"
4934      x-transition:leave-start="opacity-100"
4935      x-transition:leave-end="opacity-0 translate-y-8"
4936      
4937      x-cloak>
4938      <div
4939        class="color__bg-body color__text max-h-[90vh] overflow-y-auto rounded shadow-lg"
4940        x-data="{ button_loading: false, edit: window.location.search.includes('edit') }"
4941        @click.outside="cart_modal = false; hide_header = false; reduce_product_zindex = false; setQuery('');">
4942        <div
4943          class="flex flex-col h-full shadow-xl color__bg-body"
4944          action="/cart"
4945          method="post"><section class="flex flex-wrap items-center justify-between px-4 py-2 bg-white ">
4946            <div class="">
4947              <!-- snippets/component__icon.liquid -->
4948
4949
4950<span class="inline-flex align-middle text-scg-green" aria-hidden="true">
4951  
4952      <svg
4953        xmlns="http://www.w3.org/2000/svg"
4954        width="22"
4955        height="22"
4956        viewBox="0 0 24 24"
4957        fill="none"
4958        stroke="currentColor"
4959        stroke-width="2"
4960        stroke-linecap="round"
4961        stroke-linejoin="round"
4962        class="feather feather-check"
4963      >
4964        <polyline points="20 6 9 17 4 12"></polyline>
4965      </svg>
4966    
4967</span>
4968
4969              <span class="ml-4 text-base font-bold">
4970                Added to Cart
4971              </span>
4972            </div>
4973            <div>
4974              <button
4975                class="bg-white text-ll-dark-gray"
4976                title="Close"
4977                @click="cart_modal = false;">
4978                <!-- snippets/component__icon.liquid -->
4979
4980
4981<span class="inline-flex align-middle " aria-hidden="true">
4982  
4983      <svg
4984        xmlns="http://www.w3.org/2000/svg"
4985        width="26"
4986        height="26"
4987        viewBox="0 0 24 24"
4988        fill="none"
4989        stroke="currentColor"
4990        stroke-width="2"
4991        stroke-linecap="round"
4992        stroke-linejoin="round"
4993        class="feather feather-x"
4994      >
4995        <line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line>
4996      </svg>
4997    
4998</span>
4999
5000              </button>
5001            </div>
5002          </section>
5003          
5004
5005          <div x-data="countdownTimer()" class="countdown-timer-container mx-2 inline-flex items-start justify-center gap-2 bg-[#439529]/10 py-4">
5006            <div class="text-center">
5007              <span class="text-base font-normal">Your cart is reserved for
5008              </span>
5009              <span class="text-base font-bold text-[#b83f3f]" x-text="countdownTimerText">10:00</span>
5010              <span class="text-base font-bold text-[#b83f3f]">
5011                min</span>
5012            </div>
5013          </div><section
5014            class=" flex flex-grow flex-col overflow-y-auto overflow-x-hidden"
5015            x-data="
5016              {
5017                scroll: false,
5018                animate_index: 0,
5019                animate_delay: 0
5020              }
5021            "
5022            @scroll.throttle="scroll = true">
5023            
5024
5025            <div>
5026              <template x-if="cart.recently_added">
5027                <div>
5028                  <div class="
5029                      border--b-width flex w-full flex-col items-center
5030                      justify-between gap-2 px-4 py-2 pb-4 md:flex-row
5031                      
5032                      
5033                    ">
5034                    <a class="flex-none w-full h-full no-underline hover:no-underline md:w-2/3 section-popup-modal-cart-checkout-container-left" :href="cart.recently_added.url">
5035                      <div class="flex flex-row items-center w-full gap-2 md:gap-4">
5036                        <div class="w-1/3 md:w-1/4 section-popup-modal-cart-upsell-card-image-container">
5037                          <div class="
5038                              border--radius max-w-full overflow-hidden object-cover
5039                              aspect-[1/1] aspect-w-1 aspect-h-1
5040                              color__bg-body after:color__bg-body color__text after:color__text
5041                            ">
5042                            
5043                            <picture>
5044                              <source :srcset="cart.recently_added.featured_image ? cart.recently_added.featured_image + '&width=300' : ''" media="(min-width: 768px)">
5045                              <img
5046                                class=" w-full h-full object-cover animation-1000 color__bg-body after:color__bg-body color__text after:color__text"
5047                                loading="lazy"
5048                                :src="cart.recently_added.image ? cart.recently_added.image + '&width=300' : ''"
5049                                :alt="cart.recently_added.product_title"
5050                                width="200"
5051                                height="200">
5052                            </picture>
5053                          </div>
5054                        </div>
5055                        <div class="w-2/3 md:w-2/4">
5056                          <p class="cart-item__title mb-0 !leading-tight" x-text="cart.recently_added.product_title"></p>
5057
5058                          <template x-for="entry in cart.recently_added.options_with_values">
5059                            <div x-show="entry.name != 'Title' && entry.name != 'price'">
5060                              <span class="text-base leading-snug text-zinc-600" x-text="entry.name + ': '"></span>
5061                              <span class="text-base leading-snug text-zinc-600" x-text="entry.value"></span>
5062                            </div>
5063                          </template>
5064
5065                          <div
5066                            class="flex flex-row gap-2"
5067                            x-data="{ cap: 0, price: 0, loadingCap: false }"
5068                            x-init="
5069    console.log('🛒 cart object:', cart);
5070
5071    $watch('cart.recently_added', (item) => {
5072      if (!item || !item.handle) return;
5073
5074      price = Number(item.final_price ?? 0);
5075      loadingCap = true;
5076
5077      fetch(`/products/${item.handle}.js`)
5078        .then(res => res.json())
5079        .then(productData => {
5080          const variant = productData.variants.find(v => Number(v.id) === Number(item.variant_id));
5081          if (variant) {
5082            cap = Number(variant.compare_at_price ?? 0);
5083          } else {
5084            console.warn('⚠️ Variant not found in product.js for', item.variant_id);
5085          }
5086        })
5087        .catch(err => console.error('⚠️ Error fetching product.js', err))
5088        .finally(() => loadingCap = false);
5089    });
5090  ">
5091
5092
5093                            <!-- Compare-at price -->
5094                            <span
5095                              class="h6 section-popup-modal-cart-addons-compare-at-price"
5096                              x-show="cap > price && cap > 0"
5097                              x-cloak>
5098                              <s
5099                                class="text-base !leading-tight"
5100                                style="color:#27272A"
5101                                x-text="Shopify.formatMoney(cap, currency_symbol, true, 'amount', '100')"></s>
5102                            </span>
5103                            <!-- Current price -->
5104                            <span
5105                              class="h6 section-popup-modal-cart-addons-selling-price"
5106                              :style="cap > price && cap > 0 ? 'color:#D2334B' : ''"
5107                              x-text="Shopify.formatMoney(price, currency_symbol, true, 'amount', '100')"></span>
5108                          </div>
5109
5110
5111                          <template x-for="(discount) in ((cart.recently_added && cart.recently_added.discounts) || []).filter((d) => !(cart.cart_level_discount_applications || []).some((cd) => cd.title === d.title))">
5112                            <div class="mt-2">
5113                              
5114                              <!-- snippets/component__badge.liquid -->
5115
5116
5117<div
5118  id="pdp-badge"
5119  class="
5120    color__bg-overlay-2 color__overlay-2 border__button--radius inline-flex items-center px-2 py-1
5121    
5122  "
5123>
5124  
5125
5126  
5127    <!-- snippets/component__icon.liquid -->
5128
5129
5130<span class="inline-flex align-middle  mr-1  " aria-hidden="true">
5131  
5132      <svg
5133        xmlns="http://www.w3.org/2000/svg"
5134        width="16"
5135        height="16"
5136        viewBox="0 0 24 24"
5137        fill="none"
5138        stroke="currentColor"
5139        stroke-width="2"
5140        stroke-linecap="round"
5141        stroke-linejoin="round"
5142        class="feather feather-tag"
5143      >
5144        <path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line>
5145      </svg>
5146    
5147</span>
5148
5149  
5150  <span class="type--small !font-bold type__nav flex items-center gap-1 ">
5151                                <span class="mr-1 er" x-text="discount.title"></span>
5152                                <span class="mr-1 er">·</span>
5153                                <span class="er" x-text="Shopify.formatMoney(discount.amount, currency_symbol, true, `amount`, '100')"></span>
5154                              </span>
5155</div>
5156
5157                            </div>
5158                          </template>
5159                        </div>
5160                      </div>
5161                    </a>
5162                    <div
5163                      class="flex flex-row justify-end flex-grow w-full animation-500 md:w-1/3 md:flex-col md:justify-between section-popup-modal-cart-checkout-container-right-side"
5164                      
5165                      :class="
5166                          {
5167                          'opacity-50' : cart_loading }
5168                        "
5169                      >
5170                      <div class="flex items-center justify-between gap-2 my-auto md:justify-end section-popup-modal-cart-checkout-container-right">
5171                        <div class="flex flex-col items-end justify-end section-popup-modal-cart-checkout-container-right">
5172                          <div class="px-2">
5173                            <span class="mr-2 text-base font-semibold text-[#4d4e50]">Cart Subtotal (<span x-text="cart.item_count"></span>
5174                              item):</span>
5175                            <span class="text-base font-normal text-[#222323] " x-text="Shopify.formatMoney(cart.total_price, currency_symbol, true, 'amount', '100')"></span>
5176                          </div>
5177                          <div class="flex items-center justify-start section-popup-modal-cart-checkout-container-right-inner"><div
5178                              class="flex items-center justify-start w-full gap-4 p-2 pb-4 section-popup-modal-cart-checkout-row"
5179                              rel="nofollow"
5180                              x-data="{checkout_button_loading:false}">
5181                              
5182                              <a class="btn btn--plain btn--load !w-full section-popup-modal-cart-checkout-button-secondary" href="/cart">
5183                                <div class="btn__content text-nowrap" style="text-wrap: nowrap;">
5184                                  View Cart
5185                                </div>
5186                              </a>
5187
5188                              
5189
5190                              <button
5191                                class="btn btn--primary btn--load block !min-h-max !w-full border border-solid !px-2 section-popup-modal-cart-checkout-button"
5192                                @click="checkout_button_loading = true;  setTimeout(function(){ checkout_button_loading = false}, 5000); window.location.href = '/checkout';"
5193                                :class="{ 'btn--loading' : checkout_button_loading }"
5194                                :disabled="checkout_button_loading">
5195                                <div class="btn__spinner">
5196
5197                                  <!-- snippets/component__icon.liquid -->
5198
5199
5200<span class="inline-flex align-middle " aria-hidden="true">
5201  
5202      <svg
5203        xmlns="http://www.w3.org/2000/svg"
5204        width="24"
5205        height="24"
5206        viewBox="0 0 24 24"
5207        fill="none"
5208        stroke="currentColor"
5209        stroke-width="2"
5210        stroke-linecap="round"
5211        stroke-linejoin="round"
5212        class="feather feather-loader"
5213      >
5214        <line x1="12" y1="2" x2="12" y2="6"></line><line x1="12" y1="18" x2="12" y2="22"></line><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"></line><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"></line><line x1="2" y1="12" x2="6" y2="12"></line><line x1="18" y1="12" x2="22" y2="12"></line><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"></line><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"></line>
5215      </svg>
5216    
5217</span>
5218
5219                                </div>
5220                                <div class="section-popup-modal-cart-checkout-button-icon" style="margin-right: 8px;"><svg width="22" height="22" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" style="
5221    margin-top: 2px;">
5222<path d="M5.01318 3.50909C5.01318 2.71137 5.33008 1.94632 5.89415 1.38225C6.45822 0.818175 7.22327 0.501282 8.02099 0.501282C8.81871 0.501282 9.58376 0.818175 10.1478 1.38225C10.7119 1.94632 11.0288 2.71137 11.0288 3.50909V4.01039H11.5301C12.1949 4.01039 12.8324 4.27447 13.3025 4.74453C13.7725 5.2146 14.0366 5.85214 14.0366 6.5169V11.5299C14.0366 12.1947 13.7725 12.8322 13.3025 13.3023C12.8324 13.7724 12.1949 14.0364 11.5301 14.0364H4.51188C3.84711 14.0364 3.20957 13.7724 2.73951 13.3023C2.26945 12.8322 2.00537 12.1947 2.00537 11.5299V6.5169C2.00537 5.85214 2.26945 5.2146 2.73951 4.74453C3.20957 4.27447 3.84711 4.01039 4.51188 4.01039H5.01318V3.50909ZM8.02099 1.50389C7.48918 1.50389 6.97915 1.71515 6.6031 2.0912C6.22705 2.46725 6.01579 2.97728 6.01579 3.50909V4.01039H10.0262V3.50909C10.0262 2.97728 9.81494 2.46725 9.43889 2.0912C9.06284 1.71515 8.55281 1.50389 8.02099 1.50389ZM8.02099 10.026C8.2869 10.026 8.54192 9.92038 8.72994 9.73236C8.91796 9.54433 9.0236 9.28932 9.0236 9.02341C9.0236 8.7575 8.91796 8.50249 8.72994 8.31446C8.54192 8.12644 8.2869 8.02081 8.02099 8.02081C7.75509 8.02081 7.50007 8.12644 7.31204 8.31446C7.12402 8.50249 7.01839 8.7575 7.01839 9.02341C7.01839 9.28932 7.12402 9.54433 7.31204 9.73236C7.50007 9.92038 7.75509 10.026 8.02099 10.026Z" fill="white"/>
5223</svg></div>
5224                                <div class="btn__content">
5225                                  Checkout
5226                                </div>
5227                              </button>
5228                            </div>
5229                          </div>
5230                        </div>
5231                      </div>
5232                    </div>
5233                  </div>
5234                </div>
5235              </template>
5236            </div>
5237          </section><aside
5238            class="m-4 transition-all duration-1000 ease-in-out"
5239            x-data="
5240              {
5241                product_count: 0,
5242                show_product: false
5243              }
5244            "
5245            x-show="cart.recently_added && product_count > 0"
5246            x-transition:enter="transition-all duration-1000 ease-in-out"
5247            x-transition:enter-start="max-h-0 opacity-0"
5248            x-transition:enter-end="max-h-screen opacity-100"
5249            x-transition:leave="transition-all duration-1000 ease-in-out"
5250            x-transition:leave-start="max-h-screen opacity-100"
5251            x-transition:leave-end="max-h-0 opacity-0"
5252            x-cloak>
5253            <section x-data="
5254  {
5255    index_slide: 0,
5256    initialLoad: true,
5257    loadingRecomendations : false,
5258    complementary_products: [],
5259    getRecomendations() {
5260      // Clear the previous recommendations
5261      this.complementary_products = [];
5262      this.product_count = 0; // Reset product count to avoid stale data
5263
5264      // Build the recommendations API URL
5265      const url = `${window.Shopify.routes.root}recommendations/products.json?product_id=${cart.recently_added.product_id}&limit=4&intent=complementary`;
5266
5267      // Fetch recommendations
5268      fetch(url)
5269        .then(response => {
5270          if (!response.ok) {
5271            throw new Error(`Error fetching recommendations: ${response.statusText}`);
5272          }
5273          return response.json();
5274        })
5275        .then(({ products = [] }) => {
5276
5277          // If no products, clear the UI state and return
5278          if (!products.length) return;
5279
5280          // Filter out products with the 'disable_quick_add' tag or unavailable ones
5281          // Subscription products (with selling plans) are kept and rendered via the Loop widget
5282          const filteredProducts = products.filter(product => {
5283            const tags = product.tags.map(t => t.toLowerCase());
5284            return product.available && !tags.includes('disable_quick_add');
5285          });
5286
5287          if (!filteredProducts.length) {
5288            this.complementary_products = [];
5289          } else {
5290            // ✅ Map ALL filtered products (not just the first one)
5291            this.complementary_products = filteredProducts.map(product => {
5292              const {
5293                compare_at_price,
5294                compare_at_price_max,
5295                compare_at_price_min,
5296                price,
5297                price_min,
5298                price_max,
5299                ...rest
5300              } = product;
5301
5302              return {
5303                compare_at_price,
5304                compare_at_price_max,
5305                compare_at_price_min,
5306                price,
5307                price_min,
5308                price_max,
5309                ...rest
5310              };
5311            });
5312          }
5313
5314          // Update UI state
5315          this.loadingRecomendations = true;
5316          this.initialLoad = false;
5317          this.product_count = this.complementary_products.length;
5318          this.show_product = true;
5319          this.$nextTick(() => { this.updateScrollState() })
5320        })
5321        .catch(error => {
5322          console.error('Error loading recommendations:', error);
5323          // Handle errors gracefully by resetting state
5324          this.complementary_products = [];
5325          this.product_count = 0;
5326          this.show_product = false;
5327        });
5328    }
5329  }
5330">
5331
5332              <div>
5333                <div class="flex flex-col items-center justify-center w-full gap-2 px-2 mb-2 md:px-4 lg:items-start section-popup-modal-cart-addons-header-container">
5334                  <div class="inline-flex items-start justify-start gap-4 section-popup-modal-cart-addons-title">
5335                    <div class="text-xl font-bold uppercase text-[#4d4e50] lg:text-3xl section-popup-modal-cart-addons-title-textv1">Recommended for Your Cart</div>
5336                    <div class="text-xl font-bold uppercase text-[#4d4e50] lg:text-3xl section-popup-modal-cart-addons-title-textv2">
5337                      <span class="inline md:hidden">
5337Hand-picked to pair with your cart</span>
5338                      <span class="hidden md:inline">Hand-picked to pair <br/> with your cart</span>
5339                    </div>
5340                  </div>
5341                  <div class="hidden text-base font-normal text-[#222323] md:block section-popup-modal-cart-addons-description">
5342                    Our espresso experts hand picked this to pair perfectly with your
5343                    <span class="text-base font-normal text-[#222323]" x-text="new DOMParser().parseFromString(cart.recently_added.title, 'text/html').body.textContent"></span>.
5344                  </div>
5345                </div>
5346
5347
5348                
5349                <div
5350                  class="relative w-full overflow-hidden original-upsell-slider-in-modal abt-upsell-slider"
5351                  x-data="{
5352    canScrollLeft: false,
5353    canScrollRight: false,
5354    updateScrollState() {
5355      const el = $refs.slider;
5356      this.canScrollLeft = el.scrollLeft > 0;
5357      this.canScrollRight = el.scrollLeft + el.clientWidth < el.scrollWidth - 22;
5358    },
5359    scrollNext() {
5360      const el = $refs.slider;
5361      el.scrollBy({ left: el.offsetWidth * 0.99, behavior: 'smooth' });
5362      setTimeout(() => this.updateScrollState(), 300);
5363    },
5364    scrollPrev() {
5365      const el = $refs.slider;
5366      el.scrollBy({ left: -el.offsetWidth * 0.99, behavior: 'smooth' });
5367      setTimeout(() => this.updateScrollState(), 300);
5368    }
5369  }"
5370                  x-init="
5371    $watch('cart_modal', value => { if (value) getRecomendations(); });
5372    $watch('cart.recently_added', value => { if (value && cart_modal) getRecomendations(); });
5373    $nextTick(() => setTimeout(() => updateScrollState(), 250));
5374  "
5375                  @scroll.window.debounce.150ms="updateScrollState"
5376                  x-show="complementary_products.length > 0"
5377                  x-cloak>
5378                  <!-- Left arrow -->
5379                  <button
5380                    type="button"
5381                    class="ab-test-cart-upsell-slider-button abt-upsell-arrow abt-upsell-arrow--left"
5382                    @click="scrollPrev"
5383                    x-show="canScrollLeft"
5384                    x-transition.opacity
5385                    aria-label="Previous item">
5386                    ‹
5387                  </button>
5388
5389                  <!-- Slider content -->
5390                  <div
5391                    class="inline-flex justify-center w-full px-2 pb-2 overflow-x-auto overflow-y-hidden scroll-smooth whitespace-nowrap md:px-4 upsell-slider-row-container-for-items"
5392                    x-ref="slider"
5393                    @scroll.debounce.100ms="updateScrollState">
5394                    <template x-for="(item, index) in complementary_products">
5395                      <div
5396                        class="transition-all duration-700 ease-in-out abt-upsell-card"
5397                        :class="'md:h-auto lg:h-auto relative md:snap-center flex justify-center flex-none whitespace-normal border border-solid rounded-[4px] upsell-slider-row-container-card overflow-hidden upsell upsell--' + item.id"
5398                        x-show="item.available && show_product"
5399                        x-transition:enter="transition-all duration-700 ease-in-out"
5400                        x-transition:enter-start="max-h-0 opacity-0"
5401                        x-transition:enter-end="max-h-screen opacity-100"
5402                        x-transition:leave="transition-all duration-700 ease-in-out"
5403                        x-transition:leave-start="max-h-screen opacity-100"
5404                        x-transition:leave-end="max-h-0 opacity-0"
5405                        x-cloak>
5406                        <div
5407                          class="modal-upsell"
5408                          x-init="
5409            (() => {
5410              const _handle = item.handle;
5411              const _hasSP = item.selling_plan_groups && item.selling_plan_groups.length > 0;
5412              const _targetId = 'js:modalUpsell-upsell-item-' + _handle;
5413              if (_hasSP) {
5414                fetch(window.Shopify.routes.root + 'products/' + _handle + '?section_id=modal-upsell-loop')
5415                  .then(r => r.text())
5416                  .then(html => {
5417                    const el = document.getElementById(_targetId);
5418                    if (!el) return;
5419                    el.innerHTML = html;
5420                    // Re-execute injected scripts so the Loop widget initialises
5421                    el.querySelectorAll('script').forEach(s => {
5422                      const ns = document.createElement('script');
5423                      [...s.attributes].forEach(a => ns.setAttribute(a.name, a.value));
5424                      ns.textContent = s.textContent;
5425                      s.parentNode.replaceChild(ns, s);
5426                    });
5427                  });
5428              } else {
5429                fetchAndRenderUpsellItem(_handle, 'upsell-item');
5430              }
5431            })()
5432          "
5433                          :id="'js:modalUpsell-upsell-item-' + item.handle"></div>
5434                      </div>
5435                    </template>
5436                  </div>
5437
5438                  <!-- Right arrow -->
5439                  <button
5440                    type="button"
5441                    class="ab-test-cart-upsell-slider-button abt-upsell-arrow abt-upsell-arrow--right"
5442                    @click="scrollNext"
5443                    x-show="canScrollRight"
5444                    x-transition.opacity
5445                    aria-label="Next item">
5446                    ›
5447                  </button>
5448                </div>
5449
5450
5451              
5452
5453
5454              </div>
5455            </section>
5456          </aside>
5457        </div>
5458      </div>
5459    </div>
5460  </div>
5461</section>
5462<style>
5463  /* disable cart timer */
5464  .countdown-timer-container {
5465    display: none !important;
5466  }
5467</style>
5468
5469
5470
5471
5472<style>
5473
5474
5475  /* Original states - variant 1 */
5476  .section-popup-modal-cart-addons-title-textv1 {
5477    display: flex;
5478  }
5479
5480  .section-popup-modal-cart-addons-title-textv2 {
5481    display: none;
5482  }
5483  .new-upsell-slider-in-modal {
5484    display: none;
5485  }
5486  .section-popup-modal-cart-addons-compare-at-price {
5487    display: none;
5488  }
5489  .section-popup-modal-cart-addons-selling-price {
5490    color: #181818 !important;
5491  }
5492  .custom-section-cart-popup-modal-container .color__bg-product-outer {
5493    overflow-x: hidden !important;
5494  }
5495  /* Default: show only one */
5496  .custom-section-cart-popup-modal-container .upsell-slider-row-container-card {
5497    display: none;
5498  }
5499  .custom-section-cart-popup-modal-container .upsell-slider-row-container-card:first-of-type {
5500    display: flex !important;
5501  }
5502  .section-popup-modal-cart-checkout-button-icon {
5503    display: none;
5504  }
5505  /* End - variant 1 */
5506
5507  @media (max-width: 768px) {
5508    /* When variant 'c' is active, show all cards */
5509    .custom-section-cart-popup-modal-container .upsell-slider-row-container-card {
5510      display: flex !important;
5511    }
5512
5513    .custom-section-cart-popup-modal-container .section-popup-modal-cart-addons-title-textv1 {
5514      display: none !important;
5515    }
5516
5517    .custom-section-cart-popup-modal-container .section-popup-modal-cart-addons-title-textv2 {
5518      display: flex;
5519    }
5520    .custom-section-cart-popup-modal-container .section-popup-modal-cart-addons-description {
5521      margin: auto;
5522      display: inline !important;
5523    }
5524
5525    .custom-section-cart-popup-modal-container .section-popup-modal-cart-checkout-row {
5526      flex-direction: row;
5527      display: flex;
5528      gap: 1rem;
5529    }
5530    /* Primary button: larger */
5531    .custom-section-cart-popup-modal-container .section-popup-modal-cart-checkout-button-primary {
5532      flex: 0 1 220px;
5533      /* base width 220px, can shrink if needed */
5534      min-width: 180px;
5535      max-width: 240px;
5536    }
5537
5538    /* Secondary button: slightly smaller */
5539    .custom-section-cart-popup-modal-container .section-popup-modal-cart-checkout-button-secondary {
5540      flex: 0 1 180px;
5541      min-width: 140px;
5542      max-width: 200px;
5543    }
5544
5545    .custom-section-cart-popup-modal-container .ab-test-cart-upsell-slider-button {
5546      border-radius: 25px;
5547      background: white;
5548      display: flex;
5549    }
5550
5551    .custom-section-cart-popup-modal-container .upsell-slider-row-container-for-items {
5552      justify-content: flex-start !important;
5553    }
5554
5555    .custom-section-cart-popup-modal-container .upsell-slider-row-container-card {
5556      border: none !important;
5557    }
5558
5559    .custom-section-cart-popup-modal-container .section-popup-modal-cart-addons-compare-at-price {
5560      display: block;
5561    }
5562
5563    .custom-section-cart-popup-modal-container .section-popup-modal-cart-addons-header-container {
5564      margin-bottom: 16px;
5565    }
5566
5567    .custom-section-cart-popup-modal-container .section-popup-modal-cart-upsell-card-image-container {
5568      width: 165px;
5569      margin-left: auto;
5570    }
5571
5572    .custom-section-cart-popup-modal-container .mt-2 .flex.items-center.gap-2 {
5573      margin-bottom: 16px;
5574    }
5575    .custom-section-cart-popup-modal-container .section-popup-modal-cart-addons-selling-price {
5576      color: #D2334B !important;
5577    }
5578
5579    .custom-section-cart-popup-modal-container .upsell-slider-row-container-card:last-of-type {
5580      margin-right: 20px;
5581    }
5582
5583    .custom-section-cart-popup-modal-container .upsell-modal-component-item-price {
5584      justify-content: center;
5585    }
5586
5587    .custom-section-cart-popup-modal-container .upsell-modal-component-item-atc-button {
5588      align-items: center;
5589    }
5590
5591    .custom-section-cart-popup-modal-container .upsell-modal-component-item-title-and-price-container {
5592      justify-content: center;
5593      width: 100%;
5594    }
5595
5596    .custom-section-cart-popup-modal-container .upsell-modal-component-item-title {
5597      text-align: center;
5598    }
5599
5600    .custom-section-cart-popup-modal-container .section-popup-modal-cart-checkout-container-right-side {
5601      width: 50% !important;
5602    }
5603    .custom-section-cart-popup-modal-container .section-popup-modal-cart-checkout-container-right {
5604      width: 100% !important;
5605    }
5606    .custom-section-cart-popup-modal-container .section-popup-modal-cart-checkout-container-right-inner {
5607      width: 100%;
5608    }
5609    .custom-section-cart-popup-modal-container .section-popup-modal-cart-checkout-container-left {
5610      width: 50% !important;
5611    }
5612    .custom-section-cart-popup-modal-container .section-popup-modal-cart-checkout-button-icon {
5613      margin-right: 8px;
5614      display: flex !important;
5615    }
5616    .custom-section-cart-popup-modal-container .section-popup-modal-cart-addons-title {
5617      width: 100%;
5618      justify-content: center;
5619    }
5620
5621    /* Wrapper scroll area */
5622    .custom-section-cart-popup-modal-container .original-upsell-slider-in-modal [x-ref="slider"] {
5623      display: flex;
5624      gap: 1rem;
5625      scroll-snap-type: x mandatory;
5626      scroll-padding-left: 1rem;
5627      -webkit-overflow-scrolling: touch;
5628    }
5629
5630    /* Each upsell card */
5631    .custom-section-cart-popup-modal-container .original-upsell-slider-in-modal .upsell {
5632      flex: 0 0 85%;
5633      max-width: 85%;
5634      scroll-snap-align: start;
5635      box-sizing: border-box;
5636      height: min-content;
5637    }
5638
5639    .custom-section-cart-popup-modal-container .original-upsell-slider-in-modal .upsell:hover {
5640      transform: translateY(-2px);
5641    }
5642
5643    /* Variant C upsell styling */
5644    .custom-section-cart-popup-modal-container .abt-upsell-slider {
5645      display: flex;
5646      gap: 1rem;
5647      overflow-x: auto;
5648      scroll-snap-type: x mandatory;
5649      scroll-padding: 1rem;
5650      justify-content: flex-start;
5651      padding: 1rem 0;
5652    }
5653
5654    .custom-section-cart-popup-modal-container .upsell-modal-product-card-variant-options {
5655      margin: auto;
5656    }
5657
5658    /* Each card fully visible & aligned */
5659    .custom-section-cart-popup-modal-container .abt-upsell-card {
5660      flex: 0 0 80%;
5661      max-width: 80%;
5662      scroll-snap-align: center;
5663      scroll-snap-stop: always;
5664    }
5665
5666    /* Fix scroll offset on mobile so first card fully visible */
5667    .custom-section-cart-popup-modal-container .abt-upsell-slider::-webkit-scrollbar {
5668      display: none;
5669    }
5670
5671    .custom-section-cart-popup-modal-container .abt-upsell-slider {
5672      -ms-overflow-style: none;
5673      scrollbar-width: none;
5674      scroll-behavior: smooth;
5675    }
5676
5677    /* Optional: center align titles/buttons below each image */
5678    .custom-section-cart-popup-modal-container .modal-upsell {
5679      display: flex;
5680      flex-direction: column;
5681      align-items: center;
5682      justify-content: flex-start;
5683    }
5684
5685    .custom-section-cart-popup-modal-container .abt-upsell-slider {
5686      position: relative;
5687    }
5688
5689    .custom-section-cart-popup-modal-container .modal-upsell-item-card {
5690      flex-direction: column !important;
5691      min-width: unset;
5692    }
5693
5694
5695    /* Shared arrow base */
5696    .custom-section-cart-popup-modal-container .abt-upsell-arrow {
5697      position: absolute;
5698      top: 50%;
5699      transform: translateY(-50%);
5700      width: 40px;
5701      height: 40px;
5702      border-radius: 50%;
5703      background: white;
5704      color: #333;
5705      font-size: 1.75rem;
5706      font-weight: 400;
5707      display: flex;
5708      align-items: center;
5709      justify-content: center;
5710      cursor: pointer;
5711      transition: all 0.2s ease;
5712      z-index: 5;
5713      padding-bottom: 7px;
5714    }
5715
5716    .custom-section-cart-popup-modal-container .abt-upsell-arrow:hover {
5717      background: #f8f8f8;
5718      transform: translateY(-50%) scale(1.05);
5719    }
5720
5721    .custom-section-cart-popup-modal-container .abt-upsell-arrow--left {
5722      left: 0.5rem;
5723    }
5724
5725    .custom-section-cart-popup-modal-container .abt-upsell-arrow--right {
5726      right: 0.5rem;
5727    }
5728    .custom-section-cart-popup-modal-container .section-popup-modal-cart-checkout-row {
5729      flex-direction: column !important;
5730    }
5731    .custom-section-cart-popup-modal-container .section-popup-modal-cart-checkout-container-left {
5732      width: 100% !important;
5733    }
5734    .custom-section-cart-popup-modal-container .section-popup-modal-cart-checkout-container-right-side {
5735      width: 100% !important;
5736      justify-content: flex-start;
5737    }
5738    .custom-section-cart-popup-modal-container .section-popup-modal-cart-checkout-container-right {
5739      align-items: flex-start !important;
5740    }
5741    .custom-section-cart-popup-modal-container .section-popup-modal-cart-checkout-button-primary,
5742    .custom-section-cart-popup-modal-container .section-popup-modal-cart-checkout-button-secondary {
5743      width: 100% !important;
5744      max-width: 100%;
5745      flex: 1 1 100%;
5746    }
5747    .custom-section-cart-popup-modal-container .abt-upsell-arrow {
5748      display: flex;
5749    }
5750    .original-upsell-slider-in-modal [x-ref="slider"] {
5751      justify-content: flex-start !important;
5752      padding-left: 1rem;
5753    }
5754
5755    .custom-section-cart-popup-modal-container .original-upsell-slider-in-modal .upsell {
5756      flex: 0 0 100%;
5757      max-width: 100%;
5758    }
5759    .custom-section-cart-popup-modal-container .section-popup-modal-cart-addons-title,
5760    .custom-section-cart-popup-modal-container .section-popup-modal-cart-addons-description {
5761      text-align: center;
5762    }
5763    .custom-section-cart-popup-modal-container #shopify-section-modal-upsell .hidescrollbar.inline-flex.w-full.overflow-x-auto.overflow-y-hidden.whitespace-nowrap.text-center.px-0 {
5764      padding-left: 0;
5765    }
5766  }
5767
5768
5769  /* Desktop: show two centered cards */
5770  /* Two centered cards visible on desktop */
5771
5772
5773  /*
5774
5775   @media (min-width: 1024px) { 
5776   .custom-section-cart-popup-modal-container .abt-upsell-slider { 
5777   justify-content: center; 
5778   overflow: hidden; 
5779   } 
5780
5781   .custom-section-cart-popup-modal-container .abt-upsell-card { 
5782   flex: 0 0 calc(50% - 1rem); 
5783   max-width: calc(50% - 1rem); 
5784   } 
5785   } 
5786
5787   @media (min-width: 768px) { 
5788   .original-upsell-slider-in-modal [x-ref="slider"] { 
5789   overflow-x: auto; 
5790   gap: 2rem; 
5791   } 
5792
5793   .custom-section-cart-popup-modal-container .original-upsell-slider-in-modal .upsell { 
5794   flex: 0 0 calc(50% - 1rem); 
5795   max-width: calc(50% - 1rem); 
5796   transition: transform 0.3s ease; 
5797   } 
5798   } 
5799*/
5800
5801
5802</style><style> #shopify-section-theme__cart-modal div[x-data="countdownTimer()"] {display: none !important;} </style></div>
5803      <div id="shopify-section-theme__menu" class="shopify-section"><!-- sections/theme__menu.liquid -->
5804
5805
5806
5807
5808<!-- snippets/component__drawer.liquid -->
5809
5810
5811<section
5812  class="fixed inset-0 z-50 overflow-hidden"
5813  x-show="menu_drawer"
5814  x-cloak>
5815  <div class="backdrop-blur-md absolute inset-0 bg-black bg-opacity-50"
5816    aria-hidden="true"
5817    @click="menu_drawer = false; hide_header = false;"
5818    x-show="menu_drawer"
5819    
5820      x-transition:enter="animation-300"
5821      x-transition:enter-start="opacity-0"
5822      x-transition:enter-end="opacity-100"
5823      x-transition:leave="animation-300"
5824      x-transition:leave-start="opacity-100"
5825      x-transition:leave-end="opacity-0"
5826    
5827    x-cloak>
5828  </div>
5829  <div
5830    class="left-0 fixed inset-y-0 flex max-w-full"
5831    x-trap="menu_drawer"
5832    x-show="menu_drawer"
5833    
5834      x-transition:enter="animation-300 opacity-0 -translate-x-8"
5835      x-transition:enter-start="opacity-0 -translate-x-8"
5836      x-transition:enter-end="translate-x-0 opacity-100"
5837      x-transition:leave="animation-300 opacity-100 -translate-x-8"
5838      x-transition:leave-start="translate-x-0 opacity-100"
5839      x-transition:leave-end="opacity-0 -translate-x-8"
5840    
5841    x-cloak>
5842    <div class="md:max-w-md w-screen max-w-full">
5843      <div class="color__bg-body color__text flex flex-col h-full overflow-y-auto shadow-xl">
5844        �<section class="border--b-width sticky top-0 flex flex-wrap items-center justify-between px-4 py-2
5845    color__bg-body color__text
5846    color__border-divider-1"
5847    @click="menu_nested = false;">
5848    <div>
5849
5850      <button class="btn btn--smaller
5851        btn btn--plain"
5852        title="Close"
5853        @click="menu_drawer = false;">
5854        <!-- snippets/component__icon.liquid -->
5855
5856
5857<span class="inline-flex align-middle " aria-hidden="true">
5858  
5859      <svg
5860        xmlns="http://www.w3.org/2000/svg"
5861        width="24"
5862        height="24"
5863        viewBox="0 0 24 24"
5864        fill="none"
5865        stroke="currentColor"
5866        stroke-width="2"
5867        stroke-linecap="round"
5868        stroke-linejoin="round"
5869        class="feather feather-x"
5870      >
5871        <line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line>
5872      </svg>
5873    
5874</span>
5875
5876      </button>
5877    </div>
5878    <div class="text-right ">
5879      
5880
5881        <a
5882          class="relative flex inline-flex items-center pl-4 !no-underline"
5883          href="/cart"
5884          rel="nofollow"
5885          title="Open Cart"
5886          
5887          >
5888          <!-- snippets/component__icon.liquid -->
5889
5890
5891<span class="inline-flex align-middle " aria-hidden="true">
5892  
5893      <svg
5894        xmlns="http://www.w3.org/2000/svg"
5895        width="24"
5896        height="24"
5897        viewBox="0 0 24 24"
5898        fill="none"
5899        stroke="currentColor"
5900        stroke-width="2"
5901        stroke-linecap="round"
5902        stroke-linejoin="round"
5903        class="feather feather-shopping-cart"
5904      >
5905        <circle cx="9" cy="21" r="1"></circle><circle cx="20" cy="21" r="1"></circle><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"></path>
5906      </svg>
5907    
5908</span>
5909 
5910          <span class="type--smaller color__bg-primary color__primary ml-1 px-2 py-0.5 border__button--radius">
5911            <span class="type__nav" x-text="cart.item_count">0</span>
5912          </span>
5913        </a>
5914      
5915    </div>
5916  </section><section class="relative h-[inherit] overflow-y-auto overflow-x-hidden
5917    color__bg-body color__text"><div 
5918        class="w-full"
5919        :class="{ 
5920          'border--b-width color__border-divider-1': !flipbook,
5921          'absolute flex items-stretch top-0 h-full': flipbook
5922        }"
5923        x-data="{ flipbook: false }"
5924        @click.outside="flipbook = false;"
5925        x-cloak>
5926
5927        
5928          <button type="button" class="flex items-center justify-between w-full px-4 py-4"
5929            x-show="!flipbook"
5930            @click="flipbook = ! flipbook; menu_nested = true;">
5931            <span class="type__body">
5932              Shop Gear 
5933            </span>
5934            <div>
5935              <!-- snippets/component__icon.liquid -->
5936
5937
5938<span class="inline-flex align-middle " aria-hidden="true">
5939  
5940      <svg
5941        xmlns="http://www.w3.org/2000/svg"
5942        width="24"
5943        height="24"
5944        viewBox="0 0 24 24"
5945        fill="none"
5946        stroke="currentColor"
5947        stroke-width="2"
5948        stroke-linecap="round"
5949        stroke-linejoin="round"
5950        class="feather feather-chevron-right"
5951      >
5952        <polyline points="9 18 15 12 9 6"></polyline>
5953      </svg>
5954    
5955</span>
5956
5957            </div>
5958          </button>
5959          <div
5960            class="w-full h-full absolute block items-stretch top-0 z-10
5961             color__bg-body color__text"
5962            x-show="flipbook"
5963            
5964              x-transition:enter="animation-100"
5965              x-transition:enter-start="translate-x-24 opacity-0"
5966              x-transition:enter-end="translate-x-0 opacity-100"
5967              x-transition:leave="animation-100"
5968              x-transition:leave-start="translate-x-0 opacity-100"
5969              x-transition:leave-end="translate-x-24 opacity-0"
5970            
5971            x-cloak>
5972            <div class="border--b-width sticky top-0 px-4 py-2 color__bg-body color__text color__border-divider-1">
5973              <button
5974                class="btn btn--small
5975                btn btn--secondary"
5976                @click="flipbook = ! flipbook; menu_nested = false;">
5977                <!-- snippets/component__icon.liquid -->
5978
5979
5980<span class="inline-flex align-middle " aria-hidden="true">
5981  
5982      <svg
5983        xmlns="http://www.w3.org/2000/svg"
5984        width="20"
5985        height="20"
5986        viewBox="0 0 24 24"
5987        fill="none"
5988        stroke="currentColor"
5989        stroke-width="2"
5990        stroke-linecap="round"
5991        stroke-linejoin="round"
5992        class="feather feather-chevron-left"
5993      >
5994        <polyline points="15 18 9 12 15 6"></polyline>
5995      </svg>
5996    
5997</span>
5998
5999                Back
6000              </button>
6001            </div>
6002
6003
6004            
6005              
6006                
6007                
6008                
6009                <!-- snippets/component__accordion.liquid -->
6010
6011<div
6012  id=""
6013  class="
6014                  border--b-width color__border-divider-1
6015                "
6016  
6017  x-data="
6018    {
6019      
6020        accordion: false
6021      
6022    }
6023  "
6024>
6025  <button
6026    type="button"
6027    class="mb-1 flex w-full items-center justify-between py-2 px-4 "
6028    @click="
6029      
6030        accordion = ! accordion
6031      
6032    "
6033  >
6034    <div class="flex items-center">
6035      
6036
6037      <span class="type__body--bold text-left text-zinc-600">
6038        Espresso Machines
6039      </span>
6040    </div>
6041    <div x-show=" !accordion ">
6042      <!-- snippets/component__icon.liquid -->
6043
6044
6045<span class="inline-flex align-middle " aria-hidden="true">
6046  
6047      <svg
6048        xmlns="http://www.w3.org/2000/svg"
6049        width="24"
6050        height="24"
6051        viewBox="0 0 24 24"
6052        fill="none"
6053        stroke="currentColor"
6054        stroke-width="2"
6055        stroke-linecap="round"
6056        stroke-linejoin="round"
6057        class="feather feather-chevron-down"
6058      >
6059        <polyline points="6 9 12 15 18 9"></polyline>
6060      </svg>
6061    
6062</span>
6063
6064    </div>
6065    <div x-show=" accordion " x-cloak>
6066      <!-- snippets/component__icon.liquid -->
6067
6068
6069<span class="inline-flex align-middle " aria-hidden="true">
6070  
6071      <svg
6072        xmlns="http://www.w3.org/2000/svg"
6073        width="24"
6074        height="24"
6075        viewBox="0 0 24 24"
6076        fill="none"
6077        stroke="currentColor"
6078        stroke-width="2"
6079        stroke-linecap="round"
6080        stroke-linejoin="round"
6081        class="feather feather-chevron-up"
6082      >
6083        <polyline points="18 15 12 9 6 15"></polyline>
6084      </svg>
6085    
6086</span>
6087
6088    </div>
6089  </button>
6090
6091  <div
6092    class="accordion-content 
6093                  color__bg-overlay-1
6094                "
6095    x-show=" accordion "
6096    
6097      x-transition:enter="animation-100"
6098      x-transition:enter-start="opacity-0"
6099      x-transition:enter-end="opacity-100"
6100      x-transition:leave="animation-100"
6101      x-transition:leave-start="opacity-100"
6102      x-transition:leave-end="opacity-0"
6103    
6104    x-cloak
6105  >
6106    
6107                
6108                  
6109                    <a href="/collections/espresso-machines" class="flex items-center justify-between w-full px-4 py-4 pl-6 no-underline type__body--bold">
6110                      <span class="text-left type__body--bold text-zinc-600">
6111                        Shop All Espresso Machines <!-- snippets/component__icon.liquid -->
6112
6113
6114<span class="inline-flex align-middle fill-zinc-600 ml-0.5 mb-0.5" aria-hidden="true">
6115  
6116      <svg
6117        xmlns="http://www.w3.org/2000/svg"
6118        width="14"
6119        height="14"
6120        viewBox="0 0 24 24"
6121        fill="none"
6122        stroke="currentColor"
6123        stroke-width="2"
6124        stroke-linecap="round"
6125        stroke-linejoin="round"
6126        class="feather feather-arrow-right inline-block"
6127      >
6128        <line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
6129      </svg>
6130    
6131</span>
6132
6133                      </span>
6134                    </a>
6135                  
6136                  
6137                    <a href="/collections/semi-automatic" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6138                      Semi-Automatic
6139                    </a>
6140                  
6141                    <a href="/collections/superautomatic-espresso-machines" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6142                      Superautomatic 
6143                    </a>
6144                  
6145                    <a href="/collections/espresso-machine-bundles" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6146                      Bundle and Save! 
6147                    </a>
6148                  
6149                
6150  </div>
6151</div>
6152
6153              
6154            
6155              
6156                
6157                
6158                
6159                <!-- snippets/component__accordion.liquid -->
6160
6161<div
6162  id=""
6163  class="
6164                  border--b-width color__border-divider-1
6165                "
6166  
6167  x-data="
6168    {
6169      
6170        accordion: false
6171      
6172    }
6173  "
6174>
6175  <button
6176    type="button"
6177    class="mb-1 flex w-full items-center justify-between py-2 px-4 "
6178    @click="
6179      
6180        accordion = ! accordion
6181      
6182    "
6183  >
6184    <div class="flex items-center">
6185      
6186
6187      <span class="type__body--bold text-left text-zinc-600">
6188        Grinders
6189      </span>
6190    </div>
6191    <div x-show=" !accordion ">
6192      <!-- snippets/component__icon.liquid -->
6193
6194
6195<span class="inline-flex align-middle " aria-hidden="true">
6196  
6197      <svg
6198        xmlns="http://www.w3.org/2000/svg"
6199        width="24"
6200        height="24"
6201        viewBox="0 0 24 24"
6202        fill="none"
6203        stroke="currentColor"
6204        stroke-width="2"
6205        stroke-linecap="round"
6206        stroke-linejoin="round"
6207        class="feather feather-chevron-down"
6208      >
6209        <polyline points="6 9 12 15 18 9"></polyline>
6210      </svg>
6211    
6212</span>
6213
6214    </div>
6215    <div x-show=" accordion " x-cloak>
6216      <!-- snippets/component__icon.liquid -->
6217
6218
6219<span class="inline-flex align-middle " aria-hidden="true">
6220  
6221      <svg
6222        xmlns="http://www.w3.org/2000/svg"
6223        width="24"
6224        height="24"
6225        viewBox="0 0 24 24"
6226        fill="none"
6227        stroke="currentColor"
6228        stroke-width="2"
6229        stroke-linecap="round"
6230        stroke-linejoin="round"
6231        class="feather feather-chevron-up"
6232      >
6233        <polyline points="18 15 12 9 6 15"></polyline>
6234      </svg>
6235    
6236</span>
6237
6238    </div>
6239  </button>
6240
6241  <div
6242    class="accordion-content 
6243                  color__bg-overlay-1
6244                "
6245    x-show=" accordion "
6246    
6247      x-transition:enter="animation-100"
6248      x-transition:enter-start="opacity-0"
6249      x-transition:enter-end="opacity-100"
6250      x-transition:leave="animation-100"
6251      x-transition:leave-start="opacity-100"
6252      x-transition:leave-end="opacity-0"
6253    
6254    x-cloak
6255  >
6256    
6257                
6258                  
6259                    <a href="/collections/grinders" class="flex items-center justify-between w-full px-4 py-4 pl-6 no-underline type__body--bold">
6260                      <span class="text-left type__body--bold text-zinc-600">
6261                        Shop All Grinders <!-- snippets/component__icon.liquid -->
6262
6263
6264<span class="inline-flex align-middle fill-zinc-600 ml-0.5 mb-0.5" aria-hidden="true">
6265  
6266      <svg
6267        xmlns="http://www.w3.org/2000/svg"
6268        width="14"
6269        height="14"
6270        viewBox="0 0 24 24"
6271        fill="none"
6272        stroke="currentColor"
6273        stroke-width="2"
6274        stroke-linecap="round"
6275        stroke-linejoin="round"
6276        class="feather feather-arrow-right inline-block"
6277      >
6278        <line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
6279      </svg>
6280    
6281</span>
6282
6283                      </span>
6284                    </a>
6285                  
6286                  
6287                    <a href="/collections/espresso-grinders" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6288                      Espresso Grinders
6289                    </a>
6290                  
6291                    <a href="/collections/coffee-grinders" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6292                      Coffee Grinders
6293                    </a>
6294                  
6295                    <a href="/collections/grinder-accessories" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6296                      Grinder Accessories
6297                    </a>
6298                  
6299                
6300  </div>
6301</div>
6302
6303              
6304            
6305              
6306                
6307                
6308                
6309                <!-- snippets/component__accordion.liquid -->
6310
6311<div
6312  id=""
6313  class="
6314                  border--b-width color__border-divider-1
6315                "
6316  
6317  x-data="
6318    {
6319      
6320        accordion: false
6321      
6322    }
6323  "
6324>
6325  <button
6326    type="button"
6327    class="mb-1 flex w-full items-center justify-between py-2 px-4 "
6328    @click="
6329      
6330        accordion = ! accordion
6331      
6332    "
6333  >
6334    <div class="flex items-center">
6335      
6336
6337      <span class="type__body--bold text-left text-zinc-600">
6338        Coffee Makers
6339      </span>
6340    </div>
6341    <div x-show=" !accordion ">
6342      <!-- snippets/component__icon.liquid -->
6343
6344
6345<span class="inline-flex align-middle " aria-hidden="true">
6346  
6347      <svg
6348        xmlns="http://www.w3.org/2000/svg"
6349        width="24"
6350        height="24"
6351        viewBox="0 0 24 24"
6352        fill="none"
6353        stroke="currentColor"
6354        stroke-width="2"
6355        stroke-linecap="round"
6356        stroke-linejoin="round"
6357        class="feather feather-chevron-down"
6358      >
6359        <polyline points="6 9 12 15 18 9"></polyline>
6360      </svg>
6361    
6362</span>
6363
6364    </div>
6365    <div x-show=" accordion " x-cloak>
6366      <!-- snippets/component__icon.liquid -->
6367
6368
6369<span class="inline-flex align-middle " aria-hidden="true">
6370  
6371      <svg
6372        xmlns="http://www.w3.org/2000/svg"
6373        width="24"
6374        height="24"
6375        viewBox="0 0 24 24"
6376        fill="none"
6377        stroke="currentColor"
6378        stroke-width="2"
6379        stroke-linecap="round"
6380        stroke-linejoin="round"
6381        class="feather feather-chevron-up"
6382      >
6383        <polyline points="18 15 12 9 6 15"></polyline>
6384      </svg>
6385    
6386</span>
6387
6388    </div>
6389  </button>
6390
6391  <div
6392    class="accordion-content 
6393                  color__bg-overlay-1
6394                "
6395    x-show=" accordion "
6396    
6397      x-transition:enter="animation-100"
6398      x-transition:enter-start="opacity-0"
6399      x-transition:enter-end="opacity-100"
6400      x-transition:leave="animation-100"
6401      x-transition:leave-start="opacity-100"
6402      x-transition:leave-end="opacity-0"
6403    
6404    x-cloak
6405  >
6406    
6407                
6408                  
6409                    <a href="/collections/coffee-makers" class="flex items-center justify-between w-full px-4 py-4 pl-6 no-underline type__body--bold">
6410                      <span class="text-left type__body--bold text-zinc-600">
6411                        Shop All Coffee Makers <!-- snippets/component__icon.liquid -->
6412
6413
6414<span class="inline-flex align-middle fill-zinc-600 ml-0.5 mb-0.5" aria-hidden="true">
6415  
6416      <svg
6417        xmlns="http://www.w3.org/2000/svg"
6418        width="14"
6419        height="14"
6420        viewBox="0 0 24 24"
6421        fill="none"
6422        stroke="currentColor"
6423        stroke-width="2"
6424        stroke-linecap="round"
6425        stroke-linejoin="round"
6426        class="feather feather-arrow-right inline-block"
6427      >
6428        <line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
6429      </svg>
6430    
6431</span>
6432
6433                      </span>
6434                    </a>
6435                  
6436                  
6437                    <a href="/collections/drip-brewers" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6438                      Drip Brewers
6439                    </a>
6440                  
6441                    <a href="/collections/french-presses" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6442                      French Presses
6443                    </a>
6444                  
6445                    <a href="/collections/stove-top-coffee-makers" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6446                      Stove Top 
6447                    </a>
6448                  
6449                    <a href="/collections/cold-brew" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6450                      Cold Brew
6451                    </a>
6452                  
6453                    <a href="/collections/pour-overs" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6454                      Pour Overs
6455                    </a>
6456                  
6457                
6458  </div>
6459</div>
6460
6461              
6462            
6463              
6464                
6465                
6466                
6467                <!-- snippets/component__accordion.liquid -->
6468
6469<div
6470  id=""
6471  class="
6472                  border--b-width color__border-divider-1
6473                "
6474  
6475  x-data="
6476    {
6477      
6478        accordion: false
6479      
6480    }
6481  "
6482>
6483  <button
6484    type="button"
6485    class="mb-1 flex w-full items-center justify-between py-2 px-4 "
6486    @click="
6487      
6488        accordion = ! accordion
6489      
6490    "
6491  >
6492    <div class="flex items-center">
6493      
6494
6495      <span class="type__body--bold text-left text-zinc-600">
6496        Accessories
6497      </span>
6498    </div>
6499    <div x-show=" !accordion ">
6500      <!-- snippets/component__icon.liquid -->
6501
6502
6503<span class="inline-flex align-middle " aria-hidden="true">
6504  
6505      <svg
6506        xmlns="http://www.w3.org/2000/svg"
6507        width="24"
6508        height="24"
6509        viewBox="0 0 24 24"
6510        fill="none"
6511        stroke="currentColor"
6512        stroke-width="2"
6513        stroke-linecap="round"
6514        stroke-linejoin="round"
6515        class="feather feather-chevron-down"
6516      >
6517        <polyline points="6 9 12 15 18 9"></polyline>
6518      </svg>
6519    
6520</span>
6521
6522    </div>
6523    <div x-show=" accordion " x-cloak>
6524      <!-- snippets/component__icon.liquid -->
6525
6526
6527<span class="inline-flex align-middle " aria-hidden="true">
6528  
6529      <svg
6530        xmlns="http://www.w3.org/2000/svg"
6531        width="24"
6532        height="24"
6533        viewBox="0 0 24 24"
6534        fill="none"
6535        stroke="currentColor"
6536        stroke-width="2"
6537        stroke-linecap="round"
6538        stroke-linejoin="round"
6539        class="feather feather-chevron-up"
6540      >
6541        <polyline points="18 15 12 9 6 15"></polyline>
6542      </svg>
6543    
6544</span>
6545
6546    </div>
6547  </button>
6548
6549  <div
6550    class="accordion-content 
6551                  color__bg-overlay-1
6552                "
6553    x-show=" accordion "
6554    
6555      x-transition:enter="animation-100"
6556      x-transition:enter-start="opacity-0"
6557      x-transition:enter-end="opacity-100"
6558      x-transition:leave="animation-100"
6559      x-transition:leave-start="opacity-100"
6560      x-transition:leave-end="opacity-0"
6561    
6562    x-cloak
6563  >
6564    
6565                
6566                  
6567                    <a href="/collections/accessories" class="flex items-center justify-between w-full px-4 py-4 pl-6 no-underline type__body--bold">
6568                      <span class="text-left type__body--bold text-zinc-600">
6569                        Shop All Accessories <!-- snippets/component__icon.liquid -->
6570
6571
6572<span class="inline-flex align-middle fill-zinc-600 ml-0.5 mb-0.5" aria-hidden="true">
6573  
6574      <svg
6575        xmlns="http://www.w3.org/2000/svg"
6576        width="14"
6577        height="14"
6578        viewBox="0 0 24 24"
6579        fill="none"
6580        stroke="currentColor"
6581        stroke-width="2"
6582        stroke-linecap="round"
6583        stroke-linejoin="round"
6584        class="feather feather-arrow-right inline-block"
6585      >
6586        <line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
6587      </svg>
6588    
6589</span>
6590
6591                      </span>
6592                    </a>
6593                  
6594                  
6595                    <a href="/collections/cleaning-supplies" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6596                      Cleaning Supplies
6597                    </a>
6598                  
6599                    <a href="/collections/filters" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6600                      Filters
6601                    </a>
6602                  
6603                    <a href="/collections/espresso-accessories" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6604                      Espresso Accessories
6605                    </a>
6606                  
6607                    <a href="/collections/scales-and-measuring" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6608                      Scales and Measuring
6609                    </a>
6610                  
6611                    <a href="/collections/coffee-storage" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6612                      Coffee Storage
6613                    </a>
6614                  
6615                    <a href="/collections/cups" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6616                      Cups
6617                    </a>
6618                  
6619                    <a href="/collections/kettles" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6620                      Kettles
6621                    </a>
6622                  
6623                    <a href="/collections/milk-frothers" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6624                      Milk Frothers
6625                    </a>
6626                  
6627                    <a href="/collections/tea-ware" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6628                      Tea Ware
6629                    </a>
6630                  
6631                    <a href="/collections/all-parts" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6632                      Parts 
6633                    </a>
6634                  
6635                    <a href="/collections/espresso-machine-maintenance-filters-subscribable" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6636                      Subscriptions
6637                    </a>
6638                  
6639                
6640  </div>
6641</div>
6642
6643              
6644            
6645
6646            
6647            
6648            
6649            
6650            
6651              
6652              
6653                  <div
6654                    class="flex flex-wrap py-8 "
6655                  >
6656                    <div class="flex flex-col">
6657                      
6658                        
6659                        
6660                        
6661                          
6662                            
6663                              <a
6664                                class="
6665                                  type__body block mb-2 pl-4 no-underline uppercase
6666                                  
6667                                  
6668                                "
6669                                href="/collections/new-arrivals"
6670                              >
6671                                New Arrivals 
6672                              </a>
6673                            
6674                          
6675                            
6676                              <a
6677                                class="
6678                                  type__body block mb-2 pl-4 no-underline uppercase
6679                                  
6680                                  
6681                                "
6682                                href="/collections/staff-pick"
6683                              >
6684                                Staff Picks 
6685                              </a>
6686                            
6687                          
6688                            
6689                              <a
6690                                class="
6691                                  type__body block mb-2 pl-4 no-underline uppercase
6692                                  
6693                                  
6694                                "
6695                                href="/pages/brands"
6696                              >
6697                                Shop Brands 
6698                              </a>
6699                            
6700                          
6701                            
6702                              <a
6703                                class="
6704                                  type__body block mb-2 pl-4 no-underline uppercase
6705                                  
6706                                  
6707                                "
6708                                href="/collections/refurbished"
6709                              >
6710                                Refurbished 
6711                              </a>
6712                            
6713                          
6714                            
6715                              <a
6716                                class="
6717                                  type__body block mb-2 pl-4 no-underline uppercase
6718                                  
6719                                  
6720                                "
6721                                href="/collections/open-box-merchandise"
6722                              >
6723                                Open Box 
6724                              </a>
6725                            
6726                          
6727                            
6728                              <a
6729                                class="
6730                                  type__body block mb-2 pl-4 no-underline uppercase
6731                                  
6732                                  
6733                                "
6734                                href="/collections/closeouts"
6735                              >
6736                                Closeouts 
6737                              </a>
6738                            
6739                          
6740                            
6741                              <a
6742                                class="
6743                                  type__body block mb-2 pl-4 no-underline uppercase
6744                                  
6745                                  color__text-scg-red
6746                                "
6747                                href="/collections/sale"
6748                              >
6749                                Sale 
6750                              </a>
6751                            
6752                          
6753
6754                        
6755                      
6756                        
6757                        
6758                        
6759                      
6760                        
6761                        
6762                        
6763                      
6764                    </div>
6765                  </div>
6766
6767                  
6768
6769            
6770            
6771          </div>
6772        
6773
6774      </div><div 
6775        class="w-full"
6776        :class="{ 
6777          'border--b-width color__border-divider-1': !flipbook,
6778          'absolute flex items-stretch top-0 h-full': flipbook
6779        }"
6780        x-data="{ flipbook: false }"
6781        @click.outside="flipbook = false;"
6782        x-cloak>
6783
6784        
6785          <button type="button" class="flex items-center justify-between w-full px-4 py-4"
6786            x-show="!flipbook"
6787            @click="flipbook = ! flipbook; menu_nested = true;">
6788            <span class="type__body">
6789              Shop Coffee
6790            </span>
6791            <div>
6792              <!-- snippets/component__icon.liquid -->
6793
6794
6795<span class="inline-flex align-middle " aria-hidden="true">
6796  
6797      <svg
6798        xmlns="http://www.w3.org/2000/svg"
6799        width="24"
6800        height="24"
6801        viewBox="0 0 24 24"
6802        fill="none"
6803        stroke="currentColor"
6804        stroke-width="2"
6805        stroke-linecap="round"
6806        stroke-linejoin="round"
6807        class="feather feather-chevron-right"
6808      >
6809        <polyline points="9 18 15 12 9 6"></polyline>
6810      </svg>
6811    
6812</span>
6813
6814            </div>
6815          </button>
6816          <div
6817            class="w-full h-full absolute block items-stretch top-0 z-10
6818             color__bg-body color__text"
6819            x-show="flipbook"
6820            
6821              x-transition:enter="animation-100"
6822              x-transition:enter-start="translate-x-24 opacity-0"
6823              x-transition:enter-end="translate-x-0 opacity-100"
6824              x-transition:leave="animation-100"
6825              x-transition:leave-start="translate-x-0 opacity-100"
6826              x-transition:leave-end="translate-x-24 opacity-0"
6827            
6828            x-cloak>
6829            <div class="border--b-width sticky top-0 px-4 py-2 color__bg-body color__text color__border-divider-1">
6830              <button
6831                class="btn btn--small
6832                btn btn--secondary"
6833                @click="flipbook = ! flipbook; menu_nested = false;">
6834                <!-- snippets/component__icon.liquid -->
6835
6836
6837<span class="inline-flex align-middle " aria-hidden="true">
6838  
6839      <svg
6840        xmlns="http://www.w3.org/2000/svg"
6841        width="20"
6842        height="20"
6843        viewBox="0 0 24 24"
6844        fill="none"
6845        stroke="currentColor"
6846        stroke-width="2"
6847        stroke-linecap="round"
6848        stroke-linejoin="round"
6849        class="feather feather-chevron-left"
6850      >
6851        <polyline points="15 18 9 12 15 6"></polyline>
6852      </svg>
6853    
6854</span>
6855
6856                Back
6857              </button>
6858            </div>
6859
6860
6861            
6862              
6863                
6864                
6865                
6866                <!-- snippets/component__accordion.liquid -->
6867
6868<div
6869  id=""
6870  class="
6871                  border--b-width color__border-divider-1
6872                "
6873  
6874  x-data="
6875    {
6876      
6877        accordion: false
6878      
6879    }
6880  "
6881>
6882  <button
6883    type="button"
6884    class="mb-1 flex w-full items-center justify-between py-2 px-4 "
6885    @click="
6886      
6887        accordion = ! accordion
6888      
6889    "
6890  >
6891    <div class="flex items-center">
6892      
6893
6894      <span class="type__body--bold text-left text-zinc-600">
6895        Coffee
6896      </span>
6897    </div>
6898    <div x-show=" !accordion ">
6899      <!-- snippets/component__icon.liquid -->
6900
6901
6902<span class="inline-flex align-middle " aria-hidden="true">
6903  
6904      <svg
6905        xmlns="http://www.w3.org/2000/svg"
6906        width="24"
6907        height="24"
6908        viewBox="0 0 24 24"
6909        fill="none"
6910        stroke="currentColor"
6911        stroke-width="2"
6912        stroke-linecap="round"
6913        stroke-linejoin="round"
6914        class="feather feather-chevron-down"
6915      >
6916        <polyline points="6 9 12 15 18 9"></polyline>
6917      </svg>
6918    
6919</span>
6920
6921    </div>
6922    <div x-show=" accordion " x-cloak>
6923      <!-- snippets/component__icon.liquid -->
6924
6925
6926<span class="inline-flex align-middle " aria-hidden="true">
6927  
6928      <svg
6929        xmlns="http://www.w3.org/2000/svg"
6930        width="24"
6931        height="24"
6932        viewBox="0 0 24 24"
6933        fill="none"
6934        stroke="currentColor"
6935        stroke-width="2"
6936        stroke-linecap="round"
6937        stroke-linejoin="round"
6938        class="feather feather-chevron-up"
6939      >
6940        <polyline points="18 15 12 9 6 15"></polyline>
6941      </svg>
6942    
6943</span>
6944
6945    </div>
6946  </button>
6947
6948  <div
6949    class="accordion-content 
6950                  color__bg-overlay-1
6951                "
6952    x-show=" accordion "
6953    
6954      x-transition:enter="animation-100"
6955      x-transition:enter-start="opacity-0"
6956      x-transition:enter-end="opacity-100"
6957      x-transition:leave="animation-100"
6958      x-transition:leave-start="opacity-100"
6959      x-transition:leave-end="opacity-0"
6960    
6961    x-cloak
6962  >
6963    
6964                
6965                  
6966                    <a href="/collections/coffee" class="flex items-center justify-between w-full px-4 py-4 pl-6 no-underline type__body--bold">
6967                      <span class="text-left type__body--bold text-zinc-600">
6968                        Shop All Coffee <!-- snippets/component__icon.liquid -->
6969
6970
6971<span class="inline-flex align-middle fill-zinc-600 ml-0.5 mb-0.5" aria-hidden="true">
6972  
6973      <svg
6974        xmlns="http://www.w3.org/2000/svg"
6975        width="14"
6976        height="14"
6977        viewBox="0 0 24 24"
6978        fill="none"
6979        stroke="currentColor"
6980        stroke-width="2"
6981        stroke-linecap="round"
6982        stroke-linejoin="round"
6983        class="feather feather-arrow-right inline-block"
6984      >
6985        <line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
6986      </svg>
6987    
6988</span>
6989
6990                      </span>
6991                    </a>
6992                  
6993                  
6994                    <a href="/collections/coffee-new-arrivals" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6995                      New Arrivals
6996                    </a>
6997                  
6998                    <a href="/collections/staff-picks-coffee" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
6999                      Staff Picks
7000                    </a>
7001                  
7002                    <a href="/pages/roasters" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7003                      Shop Roasters
7004                    </a>
7005                  
7006                    <a href="https://www.seattlecoffeegear.com/collections/coffee/subscribable" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7007                      Subscriptions
7008                    </a>
7009                  
7010                
7011  </div>
7012</div>
7013
7014              
7015            
7016              
7017                
7018                
7019                
7020                <!-- snippets/component__accordion.liquid -->
7021
7022<div
7023  id=""
7024  class="
7025                  border--b-width color__border-divider-1
7026                "
7027  
7028  x-data="
7029    {
7030      
7031        accordion: false
7032      
7033    }
7034  "
7035>
7036  <button
7037    type="button"
7038    class="mb-1 flex w-full items-center justify-between py-2 px-4 "
7039    @click="
7040      
7041        accordion = ! accordion
7042      
7043    "
7044  >
7045    <div class="flex items-center">
7046      
7047
7048      <span class="type__body--bold text-left text-zinc-600">
7049        Roast Level
7050      </span>
7051    </div>
7052    <div x-show=" !accordion ">
7053      <!-- snippets/component__icon.liquid -->
7054
7055
7056<span class="inline-flex align-middle " aria-hidden="true">
7057  
7058      <svg
7059        xmlns="http://www.w3.org/2000/svg"
7060        width="24"
7061        height="24"
7062        viewBox="0 0 24 24"
7063        fill="none"
7064        stroke="currentColor"
7065        stroke-width="2"
7066        stroke-linecap="round"
7067        stroke-linejoin="round"
7068        class="feather feather-chevron-down"
7069      >
7070        <polyline points="6 9 12 15 18 9"></polyline>
7071      </svg>
7072    
7073</span>
7074
7075    </div>
7076    <div x-show=" accordion " x-cloak>
7077      <!-- snippets/component__icon.liquid -->
7078
7079
7080<span class="inline-flex align-middle " aria-hidden="true">
7081  
7082      <svg
7083        xmlns="http://www.w3.org/2000/svg"
7084        width="24"
7085        height="24"
7086        viewBox="0 0 24 24"
7087        fill="none"
7088        stroke="currentColor"
7089        stroke-width="2"
7090        stroke-linecap="round"
7091        stroke-linejoin="round"
7092        class="feather feather-chevron-up"
7093      >
7094        <polyline points="18 15 12 9 6 15"></polyline>
7095      </svg>
7096    
7097</span>
7098
7099    </div>
7100  </button>
7101
7102  <div
7103    class="accordion-content 
7104                  color__bg-overlay-1
7105                "
7106    x-show=" accordion "
7107    
7108      x-transition:enter="animation-100"
7109      x-transition:enter-start="opacity-0"
7110      x-transition:enter-end="opacity-100"
7111      x-transition:leave="animation-100"
7112      x-transition:leave-start="opacity-100"
7113      x-transition:leave-end="opacity-0"
7114    
7115    x-cloak
7116  >
7117    
7118                
7119                  
7120                  
7121                    <a href="/collections/light-roast" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7122                      Light
7123                    </a>
7124                  
7125                    <a href="/collections/medium-roast" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7126                      Medium
7127                    </a>
7128                  
7129                    <a href="/collections/dark-roast" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7130                      Dark 
7131                    </a>
7132                  
7133                
7134  </div>
7135</div>
7136
7137              
7138            
7139              
7140                
7141                
7142                
7143                <!-- snippets/component__accordion.liquid -->
7144
7145<div
7146  id=""
7147  class="
7148                  border--b-width color__border-divider-1
7149                "
7150  
7151  x-data="
7152    {
7153      
7154        accordion: false
7155      
7156    }
7157  "
7158>
7159  <button
7160    type="button"
7161    class="mb-1 flex w-full items-center justify-between py-2 px-4 "
7162    @click="
7163      
7164        accordion = ! accordion
7165      
7166    "
7167  >
7168    <div class="flex items-center">
7169      
7170
7171      <span class="type__body--bold text-left text-zinc-600">
7172        Taste Profile
7173      </span>
7174    </div>
7175    <div x-show=" !accordion ">
7176      <!-- snippets/component__icon.liquid -->
7177
7178
7179<span class="inline-flex align-middle " aria-hidden="true">
7180  
7181      <svg
7182        xmlns="http://www.w3.org/2000/svg"
7183        width="24"
7184        height="24"
7185        viewBox="0 0 24 24"
7186        fill="none"
7187        stroke="currentColor"
7188        stroke-width="2"
7189        stroke-linecap="round"
7190        stroke-linejoin="round"
7191        class="feather feather-chevron-down"
7192      >
7193        <polyline points="6 9 12 15 18 9"></polyline>
7194      </svg>
7195    
7196</span>
7197
7198    </div>
7199    <div x-show=" accordion " x-cloak>
7200      <!-- snippets/component__icon.liquid -->
7201
7202
7203<span class="inline-flex align-middle " aria-hidden="true">
7204  
7205      <svg
7206        xmlns="http://www.w3.org/2000/svg"
7207        width="24"
7208        height="24"
7209        viewBox="0 0 24 24"
7210        fill="none"
7211        stroke="currentColor"
7212        stroke-width="2"
7213        stroke-linecap="round"
7214        stroke-linejoin="round"
7215        class="feather feather-chevron-up"
7216      >
7217        <polyline points="18 15 12 9 6 15"></polyline>
7218      </svg>
7219    
7220</span>
7221
7222    </div>
7223  </button>
7224
7225  <div
7226    class="accordion-content 
7227                  color__bg-overlay-1
7228                "
7229    x-show=" accordion "
7230    
7231      x-transition:enter="animation-100"
7232      x-transition:enter-start="opacity-0"
7233      x-transition:enter-end="opacity-100"
7234      x-transition:leave="animation-100"
7235      x-transition:leave-start="opacity-100"
7236      x-transition:leave-end="opacity-0"
7237    
7238    x-cloak
7239  >
7240    
7241                
7242                  
7243                  
7244                    <a href="/collections/balanced" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7245                      Balanced
7246                    </a>
7247                  
7248                    <a href="/collections/bright-and-floral" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7249                      Bright and Floral
7250                    </a>
7251                  
7252                    <a href="/collections/earth-and-smoke" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7253                      Earth and Smoke
7254                    </a>
7255                  
7256                    <a href="/collections/fruit-forward" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7257                      Fruit Forward
7258                    </a>
7259                  
7260                    <a href="/collections/rich-and-sweet" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7261                      Rich and Sweet
7262                    </a>
7263                  
7264                
7265  </div>
7266</div>
7267
7268              
7269            
7270              
7271                
7272                
7273                
7274                <!-- snippets/component__accordion.liquid -->
7275
7276<div
7277  id=""
7278  class="
7279                  border--b-width color__border-divider-1
7280                "
7281  
7282  x-data="
7283    {
7284      
7285        accordion: false
7286      
7287    }
7288  "
7289>
7290  <button
7291    type="button"
7292    class="mb-1 flex w-full items-center justify-between py-2 px-4 "
7293    @click="
7294      
7295        accordion = ! accordion
7296      
7297    "
7298  >
7299    <div class="flex items-center">
7300      
7301
7302      <span class="type__body--bold text-left text-zinc-600">
7303        Brew Method
7304      </span>
7305    </div>
7306    <div x-show=" !accordion ">
7307      <!-- snippets/component__icon.liquid -->
7308
7309
7310<span class="inline-flex align-middle " aria-hidden="true">
7311  
7312      <svg
7313        xmlns="http://www.w3.org/2000/svg"
7314        width="24"
7315        height="24"
7316        viewBox="0 0 24 24"
7317        fill="none"
7318        stroke="currentColor"
7319        stroke-width="2"
7320        stroke-linecap="round"
7321        stroke-linejoin="round"
7322        class="feather feather-chevron-down"
7323      >
7324        <polyline points="6 9 12 15 18 9"></polyline>
7325      </svg>
7326    
7327</span>
7328
7329    </div>
7330    <div x-show=" accordion " x-cloak>
7331      <!-- snippets/component__icon.liquid -->
7332
7333
7334<span class="inline-flex align-middle " aria-hidden="true">
7335  
7336      <svg
7337        xmlns="http://www.w3.org/2000/svg"
7338        width="24"
7339        height="24"
7340        viewBox="0 0 24 24"
7341        fill="none"
7342        stroke="currentColor"
7343        stroke-width="2"
7344        stroke-linecap="round"
7345        stroke-linejoin="round"
7346        class="feather feather-chevron-up"
7347      >
7348        <polyline points="18 15 12 9 6 15"></polyline>
7349      </svg>
7350    
7351</span>
7352
7353    </div>
7354  </button>
7355
7356  <div
7357    class="accordion-content 
7358                  color__bg-overlay-1
7359                "
7360    x-show=" accordion "
7361    
7362      x-transition:enter="animation-100"
7363      x-transition:enter-start="opacity-0"
7364      x-transition:enter-end="opacity-100"
7365      x-transition:leave="animation-100"
7366      x-transition:leave-start="opacity-100"
7367      x-transition:leave-end="opacity-0"
7368    
7369    x-cloak
7370  >
7371    
7372                
7373                  
7374                  
7375                    <a href="/collections/superautomatic-friendly" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7376                      Superautomatic Friendly
7377                    </a>
7378                  
7379                    <a href="/collections/espresso" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7380                      Espresso
7381                    </a>
7382                  
7383                    <a href="/collections/drip" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7384                      Drip Coffee
7385                    </a>
7386                  
7387                    <a href="/collections/pour-over-coffee" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7388                      Pour Over
7389                    </a>
7390                  
7391                
7392  </div>
7393</div>
7394
7395              
7396            
7397              
7398                
7399                
7400                
7401                <!-- snippets/component__accordion.liquid -->
7402
7403<div
7404  id=""
7405  class="
7406                  border--b-width color__border-divider-1
7407                "
7408  
7409  x-data="
7410    {
7411      
7412        accordion: false
7413      
7414    }
7415  "
7416>
7417  <button
7418    type="button"
7419    class="mb-1 flex w-full items-center justify-between py-2 px-4 "
7420    @click="
7421      
7422        accordion = ! accordion
7423      
7424    "
7425  >
7426    <div class="flex items-center">
7427      
7428
7429      <span class="type__body--bold text-left text-zinc-600">
7430        Specialty
7431      </span>
7432    </div>
7433    <div x-show=" !accordion ">
7434      <!-- snippets/component__icon.liquid -->
7435
7436
7437<span class="inline-flex align-middle " aria-hidden="true">
7438  
7439      <svg
7440        xmlns="http://www.w3.org/2000/svg"
7441        width="24"
7442        height="24"
7443        viewBox="0 0 24 24"
7444        fill="none"
7445        stroke="currentColor"
7446        stroke-width="2"
7447        stroke-linecap="round"
7448        stroke-linejoin="round"
7449        class="feather feather-chevron-down"
7450      >
7451        <polyline points="6 9 12 15 18 9"></polyline>
7452      </svg>
7453    
7454</span>
7455
7456    </div>
7457    <div x-show=" accordion " x-cloak>
7458      <!-- snippets/component__icon.liquid -->
7459
7460
7461<span class="inline-flex align-middle " aria-hidden="true">
7462  
7463      <svg
7464        xmlns="http://www.w3.org/2000/svg"
7465        width="24"
7466        height="24"
7467        viewBox="0 0 24 24"
7468        fill="none"
7469        stroke="currentColor"
7470        stroke-width="2"
7471        stroke-linecap="round"
7472        stroke-linejoin="round"
7473        class="feather feather-chevron-up"
7474      >
7475        <polyline points="18 15 12 9 6 15"></polyline>
7476      </svg>
7477    
7478</span>
7479
7480    </div>
7481  </button>
7482
7483  <div
7484    class="accordion-content 
7485                  color__bg-overlay-1
7486                "
7487    x-show=" accordion "
7488    
7489      x-transition:enter="animation-100"
7490      x-transition:enter-start="opacity-0"
7491      x-transition:enter-end="opacity-100"
7492      x-transition:leave="animation-100"
7493      x-transition:leave-start="opacity-100"
7494      x-transition:leave-end="opacity-0"
7495    
7496    x-cloak
7497  >
7498    
7499                
7500                  
7501                  
7502                    <a href="/collections/single-origin" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7503                      Single Origin
7504                    </a>
7505                  
7506                    <a href="/collections/blends" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7507                      Blends
7508                    </a>
7509                  
7510                    <a href="/collections/decaf" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7511                      Decaf
7512                    </a>
7513                  
7514                    <a href="/collections/organic" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7515                      Organic
7516                    </a>
7517                  
7518                    <a href="/collections/european-favorites" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7519                      European Favorites
7520                    </a>
7521                  
7522                    <a href="/collections/direct-trade" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7523                      Fair/Direct Trade
7524                    </a>
7525                  
7526                
7527  </div>
7528</div>
7529
7530              
7531            
7532
7533            
7534            
7535            
7536            
7537            
7538              
7539              
7540                    
7541                    
7542                      
7543                      
7544                      
7545                    
7546                      
7547                      
7548                      
7549                    
7550                      
7551                      
7552                      
7553                        <a href="/pages/coffee-subscriptions" class="flex flex-wrap px-2 py-8">
7554                          <div class="relative w-full max-w-sm mx-auto">
7555                            
7556                              <div class="relative w-full h-32 overflow-hidden rounded-lg">
7557                                <img src="//www.seattlecoffeegear.com/cdn/shop/files/SubsNavBlock_Mobile.jpg?crop=center&amp;height=192&amp;v=1762893831&amp;width=400" alt="Tony&#39;s coffee products including coffee beans, packaging, and a cup of coffee on a dark surface." srcset="//www.seattlecoffeegear.com/cdn/shop/files/SubsNavBlock_Mobile.jpg?crop=center&amp;height=168&amp;v=1762893831&amp;width=352 352w, //www.seattlecoffeegear.com/cdn/shop/files/SubsNavBlock_Mobile.jpg?crop=center&amp;height=192&amp;v=1762893831&amp;width=400 400w" width="400" height="192" class="w-full h-full object-cover">
7558                                
7559                                  <div class="absolute inset-0 flex flex-col items-start justify-center gap-2">
7560                                     
7561                                    <h3 class="px-4 text-xl font-bold text-left text-white drop-shadow-lg">
7562                                      SUBSCRIBE & SAVE
7563                                    </h3>
7564                                  
7565                                    
7566                                      <span class="px-3 py-1 ml-4 text-sm font-medium text-white rounded-md"
7567                                        style="background-color: #d3324d;">
7568                                        5% Off Every Order
7569                                      </span>
7570                                    
7571                                  </div>
7572                              </div>
7573                            
7574                          </div>
7575                        </a>
7576                      
7577                    
7578                
7579
7580            
7581            
7582          </div>
7583        
7584
7585      </div><div 
7586        class="w-full"
7587        :class="{ 
7588          'border--b-width color__border-divider-1': !flipbook,
7589          'absolute flex items-stretch top-0 h-full': flipbook
7590        }"
7591        x-data="{ flipbook: false }"
7592        @click.outside="flipbook = false;"
7593        x-cloak>
7594
7595        
7596          <button type="button" class="flex items-center justify-between w-full px-4 py-4"
7597            x-show="!flipbook"
7598            @click="flipbook = ! flipbook; menu_nested = true;">
7599            <span class="type__body">
7600              Commercial
7601            </span>
7602            <div>
7603              <!-- snippets/component__icon.liquid -->
7604
7605
7606<span class="inline-flex align-middle " aria-hidden="true">
7607  
7608      <svg
7609        xmlns="http://www.w3.org/2000/svg"
7610        width="24"
7611        height="24"
7612        viewBox="0 0 24 24"
7613        fill="none"
7614        stroke="currentColor"
7615        stroke-width="2"
7616        stroke-linecap="round"
7617        stroke-linejoin="round"
7618        class="feather feather-chevron-right"
7619      >
7620        <polyline points="9 18 15 12 9 6"></polyline>
7621      </svg>
7622    
7623</span>
7624
7625            </div>
7626          </button>
7627          <div
7628            class="w-full h-full absolute block items-stretch top-0 z-10
7629             color__bg-body color__text"
7630            x-show="flipbook"
7631            
7632              x-transition:enter="animation-100"
7633              x-transition:enter-start="translate-x-24 opacity-0"
7634              x-transition:enter-end="translate-x-0 opacity-100"
7635              x-transition:leave="animation-100"
7636              x-transition:leave-start="translate-x-0 opacity-100"
7637              x-transition:leave-end="translate-x-24 opacity-0"
7638            
7639            x-cloak>
7640            <div class="border--b-width sticky top-0 px-4 py-2 color__bg-body color__text color__border-divider-1">
7641              <button
7642                class="btn btn--small
7643                btn btn--secondary"
7644                @click="flipbook = ! flipbook; menu_nested = false;">
7645                <!-- snippets/component__icon.liquid -->
7646
7647
7648<span class="inline-flex align-middle " aria-hidden="true">
7649  
7650      <svg
7651        xmlns="http://www.w3.org/2000/svg"
7652        width="20"
7653        height="20"
7654        viewBox="0 0 24 24"
7655        fill="none"
7656        stroke="currentColor"
7657        stroke-width="2"
7658        stroke-linecap="round"
7659        stroke-linejoin="round"
7660        class="feather feather-chevron-left"
7661      >
7662        <polyline points="15 18 9 12 15 6"></polyline>
7663      </svg>
7664    
7665</span>
7666
7667                Back
7668              </button>
7669            </div>
7670
7671
7672            
7673              
7674                
7675                
7676                
7677                <!-- snippets/component__accordion.liquid -->
7678
7679<div
7680  id=""
7681  class="
7682                  border--b-width color__border-divider-1
7683                "
7684  
7685  x-data="
7686    {
7687      
7688        accordion: false
7689      
7690    }
7691  "
7692>
7693  <button
7694    type="button"
7695    class="mb-1 flex w-full items-center justify-between py-2 px-4 "
7696    @click="
7697      
7698        accordion = ! accordion
7699      
7700    "
7701  >
7702    <div class="flex items-center">
7703      
7704
7705      <span class="type__body--bold text-left text-zinc-600">
7706        Commercial Machines
7707      </span>
7708    </div>
7709    <div x-show=" !accordion ">
7710      <!-- snippets/component__icon.liquid -->
7711
7712
7713<span class="inline-flex align-middle " aria-hidden="true">
7714  
7715      <svg
7716        xmlns="http://www.w3.org/2000/svg"
7717        width="24"
7718        height="24"
7719        viewBox="0 0 24 24"
7720        fill="none"
7721        stroke="currentColor"
7722        stroke-width="2"
7723        stroke-linecap="round"
7724        stroke-linejoin="round"
7725        class="feather feather-chevron-down"
7726      >
7727        <polyline points="6 9 12 15 18 9"></polyline>
7728      </svg>
7729    
7730</span>
7731
7732    </div>
7733    <div x-show=" accordion " x-cloak>
7734      <!-- snippets/component__icon.liquid -->
7735
7736
7737<span class="inline-flex align-middle " aria-hidden="true">
7738  
7739      <svg
7740        xmlns="http://www.w3.org/2000/svg"
7741        width="24"
7742        height="24"
7743        viewBox="0 0 24 24"
7744        fill="none"
7745        stroke="currentColor"
7746        stroke-width="2"
7747        stroke-linecap="round"
7748        stroke-linejoin="round"
7749        class="feather feather-chevron-up"
7750      >
7751        <polyline points="18 15 12 9 6 15"></polyline>
7752      </svg>
7753    
7754</span>
7755
7756    </div>
7757  </button>
7758
7759  <div
7760    class="accordion-content 
7761                  color__bg-overlay-1
7762                "
7763    x-show=" accordion "
7764    
7765      x-transition:enter="animation-100"
7766      x-transition:enter-start="opacity-0"
7767      x-transition:enter-end="opacity-100"
7768      x-transition:leave="animation-100"
7769      x-transition:leave-start="opacity-100"
7770      x-transition:leave-end="opacity-0"
7771    
7772    x-cloak
7773  >
7774    
7775                
7776                  
7777                    <a href="/collections/commercial-espresso-machines" class="flex items-center justify-between w-full px-4 py-4 pl-6 no-underline type__body--bold">
7778                      <span class="text-left type__body--bold text-zinc-600">
7779                        Shop All Commercial Machines <!-- snippets/component__icon.liquid -->
7780
7781
7782<span class="inline-flex align-middle fill-zinc-600 ml-0.5 mb-0.5" aria-hidden="true">
7783  
7784      <svg
7785        xmlns="http://www.w3.org/2000/svg"
7786        width="14"
7787        height="14"
7788        viewBox="0 0 24 24"
7789        fill="none"
7790        stroke="currentColor"
7791        stroke-width="2"
7792        stroke-linecap="round"
7793        stroke-linejoin="round"
7794        class="feather feather-arrow-right inline-block"
7795      >
7796        <line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
7797      </svg>
7798    
7799</span>
7800
7801                      </span>
7802                    </a>
7803                  
7804                  
7805                    <a href="/collections/commercial-semi-automatic" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7806                      Semi-automatic
7807                    </a>
7808                  
7809                    <a href="/collections/commercial-superautomatic" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7810                      Superautomatic
7811                    </a>
7812                  
7813                
7814  </div>
7815</div>
7816
7817              
7818            
7819              
7820                
7821                
7822                
7823                <!-- snippets/component__accordion.liquid -->
7824
7825<div
7826  id=""
7827  class="
7828                  border--b-width color__border-divider-1
7829                "
7830  
7831  x-data="
7832    {
7833      
7834        accordion: false
7835      
7836    }
7837  "
7838>
7839  <button
7840    type="button"
7841    class="mb-1 flex w-full items-center justify-between py-2 px-4 "
7842    @click="
7843      
7844        accordion = ! accordion
7845      
7846    "
7847  >
7848    <div class="flex items-center">
7849      
7850
7851      <span class="type__body--bold text-left text-zinc-600">
7852        Commercial Grinders
7853      </span>
7854    </div>
7855    <div x-show=" !accordion ">
7856      <!-- snippets/component__icon.liquid -->
7857
7858
7859<span class="inline-flex align-middle " aria-hidden="true">
7860  
7861      <svg
7862        xmlns="http://www.w3.org/2000/svg"
7863        width="24"
7864        height="24"
7865        viewBox="0 0 24 24"
7866        fill="none"
7867        stroke="currentColor"
7868        stroke-width="2"
7869        stroke-linecap="round"
7870        stroke-linejoin="round"
7871        class="feather feather-chevron-down"
7872      >
7873        <polyline points="6 9 12 15 18 9"></polyline>
7874      </svg>
7875    
7876</span>
7877
7878    </div>
7879    <div x-show=" accordion " x-cloak>
7880      <!-- snippets/component__icon.liquid -->
7881
7882
7883<span class="inline-flex align-middle " aria-hidden="true">
7884  
7885      <svg
7886        xmlns="http://www.w3.org/2000/svg"
7887        width="24"
7888        height="24"
7889        viewBox="0 0 24 24"
7890        fill="none"
7891        stroke="currentColor"
7892        stroke-width="2"
7893        stroke-linecap="round"
7894        stroke-linejoin="round"
7895        class="feather feather-chevron-up"
7896      >
7897        <polyline points="18 15 12 9 6 15"></polyline>
7898      </svg>
7899    
7900</span>
7901
7902    </div>
7903  </button>
7904
7905  <div
7906    class="accordion-content 
7907                  color__bg-overlay-1
7908                "
7909    x-show=" accordion "
7910    
7911      x-transition:enter="animation-100"
7912      x-transition:enter-start="opacity-0"
7913      x-transition:enter-end="opacity-100"
7914      x-transition:leave="animation-100"
7915      x-transition:leave-start="opacity-100"
7916      x-transition:leave-end="opacity-0"
7917    
7918    x-cloak
7919  >
7920    
7921                
7922                  
7923                    <a href="/collections/commercial-grinders" class="flex items-center justify-between w-full px-4 py-4 pl-6 no-underline type__body--bold">
7924                      <span class="text-left type__body--bold text-zinc-600">
7925                        Shop All Commercial Grinders <!-- snippets/component__icon.liquid -->
7926
7927
7928<span class="inline-flex align-middle fill-zinc-600 ml-0.5 mb-0.5" aria-hidden="true">
7929  
7930      <svg
7931        xmlns="http://www.w3.org/2000/svg"
7932        width="14"
7933        height="14"
7934        viewBox="0 0 24 24"
7935        fill="none"
7936        stroke="currentColor"
7937        stroke-width="2"
7938        stroke-linecap="round"
7939        stroke-linejoin="round"
7940        class="feather feather-arrow-right inline-block"
7941      >
7942        <line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
7943      </svg>
7944    
7945</span>
7946
7947                      </span>
7948                    </a>
7949                  
7950                  
7951                    <a href="/collections/commercial-coffee-grinders" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7952                      Coffee Grinders
7953                    </a>
7954                  
7955                    <a href="/collections/commercial-espresso-grinders" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
7956                      Espresso Grinders
7957                    </a>
7958                  
7959                
7960  </div>
7961</div>
7962
7963              
7964            
7965              
7966                
7967                
7968                
7969                <!-- snippets/component__accordion.liquid -->
7970
7971<div
7972  id=""
7973  class="
7974                  border--b-width color__border-divider-1
7975                "
7976  
7977  x-data="
7978    {
7979      
7980        accordion: false
7981      
7982    }
7983  "
7984>
7985  <button
7986    type="button"
7987    class="mb-1 flex w-full items-center justify-between py-2 px-4 "
7988    @click="
7989      
7990        accordion = ! accordion
7991      
7992    "
7993  >
7994    <div class="flex items-center">
7995      
7996
7997      <span class="type__body--bold text-left text-zinc-600">
7998        Commercial Brewing
7999      </span>
8000    </div>
8001    <div x-show=" !accordion ">
8002      <!-- snippets/component__icon.liquid -->
8003
8004
8005<span class="inline-flex align-middle " aria-hidden="true">
8006  
8007      <svg
8008        xmlns="http://www.w3.org/2000/svg"
8009        width="24"
8010        height="24"
8011        viewBox="0 0 24 24"
8012        fill="none"
8013        stroke="currentColor"
8014        stroke-width="2"
8015        stroke-linecap="round"
8016        stroke-linejoin="round"
8017        class="feather feather-chevron-down"
8018      >
8019        <polyline points="6 9 12 15 18 9"></polyline>
8020      </svg>
8021    
8022</span>
8023
8024    </div>
8025    <div x-show=" accordion " x-cloak>
8026      <!-- snippets/component__icon.liquid -->
8027
8028
8029<span class="inline-flex align-middle " aria-hidden="true">
8030  
8031      <svg
8032        xmlns="http://www.w3.org/2000/svg"
8033        width="24"
8034        height="24"
8035        viewBox="0 0 24 24"
8036        fill="none"
8037        stroke="currentColor"
8038        stroke-width="2"
8039        stroke-linecap="round"
8040        stroke-linejoin="round"
8041        class="feather feather-chevron-up"
8042      >
8043        <polyline points="18 15 12 9 6 15"></polyline>
8044      </svg>
8045    
8046</span>
8047
8048    </div>
8049  </button>
8050
8051  <div
8052    class="accordion-content 
8053                  color__bg-overlay-1
8054                "
8055    x-show=" accordion "
8056    
8057      x-transition:enter="animation-100"
8058      x-transition:enter-start="opacity-0"
8059      x-transition:enter-end="opacity-100"
8060      x-transition:leave="animation-100"
8061      x-transition:leave-start="opacity-100"
8062      x-transition:leave-end="opacity-0"
8063    
8064    x-cloak
8065  >
8066    
8067                
8068                  
8069                    <a href="/collections/commercial-brewing" class="flex items-center justify-between w-full px-4 py-4 pl-6 no-underline type__body--bold">
8070                      <span class="text-left type__body--bold text-zinc-600">
8071                        Shop All Commercial Brewing <!-- snippets/component__icon.liquid -->
8072
8073
8074<span class="inline-flex align-middle fill-zinc-600 ml-0.5 mb-0.5" aria-hidden="true">
8075  
8076      <svg
8077        xmlns="http://www.w3.org/2000/svg"
8078        width="14"
8079        height="14"
8080        viewBox="0 0 24 24"
8081        fill="none"
8082        stroke="currentColor"
8083        stroke-width="2"
8084        stroke-linecap="round"
8085        stroke-linejoin="round"
8086        class="feather feather-arrow-right inline-block"
8087      >
8088        <line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
8089      </svg>
8090    
8091</span>
8092
8093                      </span>
8094                    </a>
8095                  
8096                  
8097                    <a href="/collections/commercial-drip-brewers" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
8098                      Drip
8099                    </a>
8100                  
8101                    <a href="/collections/commercial-cold-brew-and-tea" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
8102                      Cold Brew and Tea
8103                    </a>
8104                  
8105                
8106  </div>
8107</div>
8108
8109              
8110            
8111              
8112                
8113                
8114                
8115                <!-- snippets/component__accordion.liquid -->
8116
8117<div
8118  id=""
8119  class="
8120                  border--b-width color__border-divider-1
8121                "
8122  
8123  x-data="
8124    {
8125      
8126        accordion: false
8127      
8128    }
8129  "
8130>
8131  <button
8132    type="button"
8133    class="mb-1 flex w-full items-center justify-between py-2 px-4 "
8134    @click="
8135      
8136        accordion = ! accordion
8137      
8138    "
8139  >
8140    <div class="flex items-center">
8141      
8142
8143      <span class="type__body--bold text-left text-zinc-600">
8144        Commercial Accessories
8145      </span>
8146    </div>
8147    <div x-show=" !accordion ">
8148      <!-- snippets/component__icon.liquid -->
8149
8150
8151<span class="inline-flex align-middle " aria-hidden="true">
8152  
8153      <svg
8154        xmlns="http://www.w3.org/2000/svg"
8155        width="24"
8156        height="24"
8157        viewBox="0 0 24 24"
8158        fill="none"
8159        stroke="currentColor"
8160        stroke-width="2"
8161        stroke-linecap="round"
8162        stroke-linejoin="round"
8163        class="feather feather-chevron-down"
8164      >
8165        <polyline points="6 9 12 15 18 9"></polyline>
8166      </svg>
8167    
8168</span>
8169
8170    </div>
8171    <div x-show=" accordion " x-cloak>
8172      <!-- snippets/component__icon.liquid -->
8173
8174
8175<span class="inline-flex align-middle " aria-hidden="true">
8176  
8177      <svg
8178        xmlns="http://www.w3.org/2000/svg"
8179        width="24"
8180        height="24"
8181        viewBox="0 0 24 24"
8182        fill="none"
8183        stroke="currentColor"
8184        stroke-width="2"
8185        stroke-linecap="round"
8186        stroke-linejoin="round"
8187        class="feather feather-chevron-up"
8188      >
8189        <polyline points="18 15 12 9 6 15"></polyline>
8190      </svg>
8191    
8192</span>
8193
8194    </div>
8195  </button>
8196
8197  <div
8198    class="accordion-content 
8199                  color__bg-overlay-1
8200                "
8201    x-show=" accordion "
8202    
8203      x-transition:enter="animation-100"
8204      x-transition:enter-start="opacity-0"
8205      x-transition:enter-end="opacity-100"
8206      x-transition:leave="animation-100"
8207      x-transition:leave-start="opacity-100"
8208      x-transition:leave-end="opacity-0"
8209    
8210    x-cloak
8211  >
8212    
8213                
8214                  
8215                    <a href="/collections/commercial-accessories" class="flex items-center justify-between w-full px-4 py-4 pl-6 no-underline type__body--bold">
8216                      <span class="text-left type__body--bold text-zinc-600">
8217                        Shop All Commercial Accessories <!-- snippets/component__icon.liquid -->
8218
8219
8220<span class="inline-flex align-middle fill-zinc-600 ml-0.5 mb-0.5" aria-hidden="true">
8221  
8222      <svg
8223        xmlns="http://www.w3.org/2000/svg"
8224        width="14"
8225        height="14"
8226        viewBox="0 0 24 24"
8227        fill="none"
8228        stroke="currentColor"
8229        stroke-width="2"
8230        stroke-linecap="round"
8231        stroke-linejoin="round"
8232        class="feather feather-arrow-right inline-block"
8233      >
8234        <line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
8235      </svg>
8236    
8237</span>
8238
8239                      </span>
8240                    </a>
8241                  
8242                  
8243                    <a href="/collections/commercial-maintenance" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
8244                      Maintenance
8245                    </a>
8246                  
8247                    <a href="/collections/commercial-cleaning-supplies" class="type__body border--t-width color__border-divider-1 flex items-center justify-between w-full px-4 py-4 pl-8 no-underline">
8248                      Cleaning Supplies
8249                    </a>
8250                  
8251                
8252  </div>
8253</div>
8254
8255              
8256            
8257
8258            
8259            
8260            
8261            
8262            
8263              
8264              
8265                    
8266                    
8267                      
8268                      
8269                      
8270                    
8271                      
8272                      
8273                      
8274                        <div
8275                          class="flex flex-wrap px-4 py-8 "
8276                        >
8277                          <div class="p-4 rounded-md color__bg-scg-blue h-fit">
8278                            <h3 class="color__primary">Get started with a free consultation!</h3>
8279                            <div class="color__primary">
8280                              <p>We’ll reach out to you to assist with product selection, troubleshooting, and to answer any general questions.</p>
8281                            </div>
8282                            <a href="/pages/commercial"
8283                              class="btn">
8284                              Learn More
8285                            </a>
8286                          </div>
8287
8288                          <div class="pt-4">
8289                            <h4 class="text-lg font-bold !mb-1">Need Assistance?</h4>
8290                            <div class="flex flex-col items-start justify-start">
8291                              <div class="flex flex-col px-3 mt-2 ">
8292                                <span class="flex items-center">
8293                                  <!-- snippets/component__icon.liquid -->
8294
8295
8296<span class="inline-flex align-middle mr-2 color__text" aria-hidden="true">
8297  
8298      <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 512 512">
8299        <path d="M493.09 351.3L384.7 304.8a31.36 31.36 0 0 0-36.5 8.9l-44.1 53.9A350 350 0 0 1 144.5 208l53.9-44.1a31.35 31.35 0 0 0 8.9-36.49l-46.5-108.5A31.33 31.33 0 0 0 125 .81L24.2 24.11A31.05 31.05 0 0 0 0 54.51C0 307.8 205.3 512 457.49 512A31.23 31.23 0 0 0 488 487.7L511.19 387a31.21 31.21 0 0 0-18.1-35.7zM456.89 480C222.4 479.7 32.3 289.7 32.1 55.21l99.6-23 46 107.39-72.8 59.5C153.3 302.3 209.4 358.6 313 407.2l59.5-72.8 107.39 46z"/>
8300      </svg>
8301    
8302</span>
8303
8304                                  Call us at <a href="tel:8663724734" class="color__text-scg-blue ml-2 !no-underline">866-372-4734</a>
8305                                </span>
8306                                <span class="ml-6 text-sm">8am - 5pm PST, Mon - Fri</span>
8307                              </div>
8308                    
8309                              <div class="px-3 mt-2">
8310                                <a href="/policies/contact-information" class="color__text-scg-blue flex items-center !no-underline">
8311                                  <!-- snippets/component__icon.liquid -->
8312
8313
8314<span class="inline-flex align-middle mr-2 color__text" aria-hidden="true">
8315  
8316      <svg
8317        xmlns="http://www.w3.org/2000/svg"
8318        width="18"
8319        height="18"
8320        viewBox="0 0 24 24"
8321        fill="none"
8322        stroke="currentColor"
8323        stroke-width="2"
8324        stroke-linecap="round"
8325        stroke-linejoin="round"
8326        class="feather feather-message-circle"
8327      >
8328        <path d="M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z"></path>
8329      </svg>
8330    
8331</span>
8332
8333                                  <span>Live Chat</span>
8334                                </a>
8335                              </div>
8336                            
8337                              <div class="px-3 mt-2">
8338                                <a href="mailto:[email protected]" class="color__text-scg-blue flex items-center !no-underline">
8339                                  <!-- snippets/component__icon.liquid -->
8340
8341
8342<span class="inline-flex align-middle mr-2 color__text" aria-hidden="true">
8343  
8344      <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 512 512">
8345        <path d="M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM48 96h416c8.8 0 16 7.2 16 16v41.4c-21.9 18.5-53.2 44-150.6 121.3-16.9 13.4-50.2 45.7-73.4 45.3-23.2.4-56.6-31.9-73.4-45.3C85.2 197.4 53.9 171.9 32 153.4V112c0-8.8 7.2-16 16-16zm416 320H48c-8.8 0-16-7.2-16-16V195c22.8 18.7 58.8 47.6 130.7 104.7 20.5 16.4 56.7 52.5 93.3 52.3 36.4.3 72.3-35.5 93.3-52.3 71.9-57.1 107.9-86 130.7-104.7v205c0 8.8-7.2 16-16 16z"/>
8346      </svg>
8347    
8348</span>
8349
8350                                  <span>Email Us</span>
8351                                </a>
8352                              </div>
8353                            
8354                              <div class="px-3 mt-2">
8355                                <a href="/blogs/scg-blog" class="color__text-scg-blue flex items-center !no-underline">
8356                                  <!-- snippets/component__icon.liquid -->
8357
8358
8359<span class="inline-flex align-middle mr-2 color__text" aria-hidden="true">
8360  
8361      <svg
8362        xmlns="http://www.w3.org/2000/svg"
8363        width="22"
8364        height="14"
8365        viewBox="0 0 576 512"
8366        stroke="currentColor"
8367        stroke-width="2"
8368        stroke-linecap="round"
8369        stroke-linejoin="round"
8370        class="feather feather-blog"
8371      >
8372        <path d="M561.91 0C549.44 0 406.51 6.49 320 56.89 233.49 6.49 90.56 0 78.09 0 35.03 0 0 34.34 0 76.55v313.72c0 40.73 32.47 74.3 73.92 76.41 36.78 1.91 128.81 9.5 187.73 38.69 8.19 4.05 17.25 6.29 26.34 6.58v.05h64.02v-.05c9.09-.29 18.15-2.53 26.34-6.58 58.92-29.19 150.95-36.78 187.73-38.69C607.53 464.57 640 431 640 390.27V76.55C640 34.34 604.97 0 561.91 0zM296 438.15c0 11.09-10.96 18.91-21.33 14.96-64.53-24.54-153.96-32.07-198.31-34.38-15.9-.8-28.36-13.3-28.36-28.46V76.55C48 60.81 61.5 48 78.06 48c19.93.1 126.55 7.81 198.53 40.49 11.63 5.28 19.27 16.66 19.28 29.44L296 224v214.15zm296-47.88c0 15.16-12.46 27.66-28.36 28.47-44.35 2.3-133.78 9.83-198.31 34.38-10.37 3.94-21.33-3.87-21.33-14.96V224l.14-106.08c.02-12.78 7.65-24.15 19.28-29.44C435.4 55.81 542.02 48.1 561.94 48 578.5 48 592 60.81 592 76.55v313.72z"/>
8373      </svg>
8374    
8375</span>
8376
8377                                  <span>Blog</span>
8378                                </a>
8379                              </div>
8380                            </div>
8381                          </div>
8382                        </div>
8383                      
8384                    
8385                      
8386                      
8387                      
8388                    
8389
8390                  
8391
8392            
8393            
8394          </div>
8395        
8396
8397      </div><div 
8398        class="w-full"
8399        :class="{ 
8400          'border--b-width color__border-divider-1': !flipbook,
8401          'absolute flex items-stretch top-0 h-full': flipbook
8402        }"
8403        x-data="{ flipbook: false }"
8404        @click.outside="flipbook = false;"
8405        x-cloak>
8406
8407           
8408          <a href="/collections/sale" class="type__body flex items-center justify-between w-full px-4 py-4 no-underline
8409            
8410            ">
8411            <span class="type__body" 
8412              x-data="{ linkTitle: 'sale' }"
8413              :class="{ '!text-scg-red': linkTitle.includes('sale') || linkTitle.includes('deal')}" >
8414              SALE
8415            </span>
8416          </a>
8417        
8418
8419      </div><div class="flex flex-col mt-8">
8420      <div class="w-full border--b-width color__border-divider-1">
8421        <a
8422        class="type__nav flex items-center w-full px-4 py-4 !no-underline"
8423        href="https://account.seattlecoffeegear.com"
8424        rel="nofollow"
8425        title="Log in">
8426          <!-- snippets/component__icon.liquid -->
8427
8428
8429<span class="inline-flex align-middle " aria-hidden="true">
8430  
8431      <svg
8432        xmlns="http://www.w3.org/2000/svg"
8433        width="18"
8434        height="18"
8435        viewBox="0 0 24 24"
8436        fill="none"
8437        stroke="currentColor"
8438        stroke-width="2"
8439        stroke-linecap="round"
8440        stroke-linejoin="round"
8441        class="feather feather-user"
8442      >
8443        <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle>
8444      </svg>
8445    
8446</span>
8447 
8448          <span class="pl-2 type--small">
8449            Account
8450          </span>
8451        </a> 
8452      </div>
8453
8454      <div class="w-full border--b-width color__border-divider-1">
8455        <a
8456        class="type__nav flex items-center w-full px-4 py-4 !no-underline"
8457        href="https://seattlecoffeegear.com/pages/resource-hub"
8458        title="Resource Hub">
8459          <!-- snippets/component__icon.liquid -->
8460
8461
8462<span class="inline-flex align-middle " aria-hidden="true">
8463  
8464      <svg
8465        xmlns="http://www.w3.org/2000/svg"
8466        width="18"
8467        height="18"
8468        viewBox="0 0 24 24"
8469        fill="none"
8470        stroke="currentColor"
8471        stroke-width="2"
8472        stroke-linecap="round"
8473        stroke-linejoin="round"
8474        class="feather feather-help-circle"
8475      >
8476        <circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line>
8477      </svg>
8478    
8479</span>
8480
8481          <span class="pl-2 type--small">
8482            Resource Hub
8483          </span>
8484        </a>
8485      </div>
8486
8487      <div class="w-full border--b-width color__border-divider-1">
8488        <a
8489        class="type__nav flex items-center w-full px-4 py-4 !no-underline"
8490        href="https://seattlecoffeegear.com/pages/learn-articles"
8491        title="Blog Articles">
8492          <!-- snippets/component__icon.liquid -->
8493
8494
8495<span class="inline-flex align-middle " aria-hidden="true">
8496  
8497      <svg
8498        xmlns="http://www.w3.org/2000/svg"
8499        width="22"
8500        height="14"
8501        viewBox="0 0 576 512"
8502        stroke="currentColor"
8503        stroke-width="2"
8504        stroke-linecap="round"
8505        stroke-linejoin="round"
8506        class="feather feather-blog"
8507      >
8508        <path d="M561.91 0C549.44 0 406.51 6.49 320 56.89 233.49 6.49 90.56 0 78.09 0 35.03 0 0 34.34 0 76.55v313.72c0 40.73 32.47 74.3 73.92 76.41 36.78 1.91 128.81 9.5 187.73 38.69 8.19 4.05 17.25 6.29 26.34 6.58v.05h64.02v-.05c9.09-.29 18.15-2.53 26.34-6.58 58.92-29.19 150.95-36.78 187.73-38.69C607.53 464.57 640 431 640 390.27V76.55C640 34.34 604.97 0 561.91 0zM296 438.15c0 11.09-10.96 18.91-21.33 14.96-64.53-24.54-153.96-32.07-198.31-34.38-15.9-.8-28.36-13.3-28.36-28.46V76.55C48 60.81 61.5 48 78.06 48c19.93.1 126.55 7.81 198.53 40.49 11.63 5.28 19.27 16.66 19.28 29.44L296 224v214.15zm296-47.88c0 15.16-12.46 27.66-28.36 28.47-44.35 2.3-133.78 9.83-198.31 34.38-10.37 3.94-21.33-3.87-21.33-14.96V224l.14-106.08c.02-12.78 7.65-24.15 19.28-29.44C435.4 55.81 542.02 48.1 561.94 48 578.5 48 592 60.81 592 76.55v313.72z"/>
8509      </svg>
8510    
8511</span>
8512
8513          <span class="pl-2 type--small">
8514            Blog Articles
8515          </span>
8516        </a>
8517      </div>
8518      
8519
8520    </div>
8521
8522  </section><aside class="sticky bottom-0 color__bg-body color__text" x-show="!menu_nested">
8523    <div class="flex flex-wrap">
8524
8525      <div class="border--t-width color__border-divider-1 w-full">
8526        <div class="flex flex-wrap px-4 pt-2">
8527
8528          
8529          
8530        </div>
8531      </div>
8532
8533      <div class="border--t-width color__border-divider-1 w-full">
8534        <p class="px-4 py-2 m-0 type--small"></p>
8535      </div>
8536      
8537    </div>
8538  </aside>
8539
8540
8541      </div>
8542    </div>
8543  </div>
8544</section>
8545
8546
8547
8548</div>
8549
8550      <!-- BEGIN sections: resource-nav-group -->
8551<div id="shopify-section-sections--26732957827379__resource_nav" class="shopify-section shopify-section-group-resource-nav-group"><!-- sections/resource-nav.liquid -->
8552
8553<nav
8554    class="color__bg-tertiary color__tertiary border-b"
8555    aria-label="Resource navigation"
8556  >
8557    <div class="window--wide">
8558      <div class="flex flex-col md:flex-row md:items-center gap-3 pt-2 pb-3 md:py-2">
8559        <ul
8560          id="resource-nav-tabs"
8561          role="menubar"
8562          class="
8563            flex flex-nowrap overflow-x-auto whitespace-nowrap list-none p-0 m-0
8564            -mx-4 px-4 md:mx-0 md:px-0 flex-1
8565            pb-2 md:pb-0
8566            md:justify-center
8567            md:order-1
8568          "
8569        ><li role="none" class="shrink-0" >
8570              <a
8571                href="/pages/resource-hub"
8572                role="menuitem"
8573                
8574                class="
8575                  inline-block px-4 py-3 text-sm no-underline
8576                  opacity-75 hover:opacity-100
8577                "
8578                style="font-family: proxima-nova, sans-serif;"
8579              >
8580                SCG Resource Hub
8581              </a>
8582            </li><li role="none" class="shrink-0" >
8583              <a
8584                href="/blogs/learning-center"
8585                role="menuitem"
8586                
8587                class="
8588                  inline-block px-4 py-3 text-sm no-underline
8589                  opacity-75 hover:opacity-100
8590                "
8591                style="font-family: proxima-nova, sans-serif;"
8592              >
8593                Learning Center
8594              </a>
8595            </li><li role="none" class="shrink-0" >
8596              <a
8597                href="/pages/brand-resources"
8598                role="menuitem"
8599                
8600                class="
8601                  inline-block px-4 py-3 text-sm no-underline
8602                  opacity-75 hover:opacity-100
8603                "
8604                style="font-family: proxima-nova, sans-serif;"
8605              >
8606                Brand Guides
8607              </a>
8608            </li><li role="none" class="shrink-0" >
8609              <a
8610                href="/pages/product-resource"
8611                role="menuitem"
8612                
8613                class="
8614                  inline-block px-4 py-3 text-sm no-underline
8615                  opacity-75 hover:opacity-100
8616                "
8617                style="font-family: proxima-nova, sans-serif;"
8618              >
8619                User Manuals
8620              </a>
8621            </li><li role="none" class="shrink-0" >
8622              <a
8623                href="/pages/learn-articles"
8624                role="menuitem"
8625                aria-current="page"
8626                class="
8627                  inline-block px-4 py-3 text-sm no-underline
8628                  font-semibold border-b-2 border-current
8629                "
8630                style="font-family: proxima-nova, sans-serif;"
8631              >
8632                Blog
8633              </a>
8634            </li><li role="none" class="shrink-0" >
8635              <a
8636                href="/policies/contact-information"
8637                role="menuitem"
8638                
8639                class="
8640                  inline-block px-4 py-3 text-sm no-underline
8641                  opacity-75 hover:opacity-100
8642                "
8643                style="font-family: proxima-nova, sans-serif;"
8644              >
8645                Customer Support
8646              </a>
8647            </li><li role="none" class="shrink-0" >
8648              <a
8649                href="/pages/classes"
8650                role="menuitem"
8651                
8652                class="
8653                  inline-block px-4 py-3 text-sm no-underline
8654                  opacity-75 hover:opacity-100
8655                "
8656                style="font-family: proxima-nova, sans-serif;"
8657              >
8658                Classes
8659              </a>
8660            </li></ul></div>
8661    </div>
8662  </nav>
8663
8664  
8664<script>
8665    (function () {
8666      var nav = document.getElementById('resource-nav-tabs');
8667      if (!nav) return;
8668      var active = nav.querySelector('a[aria-current="page"]');
8669      if (!active) return;
8670      if (nav.scrollWidth <= nav.clientWidth) return;
8671      var navRect = nav.getBoundingClientRect();
8672      var activeRect = active.getBoundingClientRect();
8673      nav.scrollLeft = activeRect.left - navRect.left - (nav.clientWidth - active.offsetWidth) / 2;
8674    })();
8675  </script>
8675
8676</div>
8677<!-- END sections: resource-nav-group -->
8678
8679      <main id="root" role="main">
8680        <div id="shopify-section-template--21732448698675__breadcrumb_gyzaX8" class="shopify-section"><!-- sections/breadcrumb.liquid -->
8681
8682<section
8683  class="color__bg-body color__text"
8684  style="
8685    padding-top:20px;
8686    padding-bottom:20px;
8687  "
8688>
8689  <div
8690    class="
8691      window--wide
8692      flex justify-center
8693    "
8694  >
8695    <div class="w-full">
8696      
8697        <!-- snippets/page__breadcrumb.liquid -->
8698
8699
8700<nav
8701  class="type--smaller"
8702  role="navigation"
8703  aria-label="breadcrumbs"
8704>
8705  <a
8706    href="/"
8707    title="Home"
8708    class="text-zinc-400 no-underline"
8709  >Home</a>
8710
8711  
8712
8713  <span class="text-zinc-400" aria-hidden="true">/</span>
8714  <span class="text-cyan-700">The Best Espresso Machine Reviews And Coffee News</span>
8715</nav>
8716
8717      
8718      
8719      
8720    </div>
8721  </div>
8722</section>
8723
8724
8725</div><div id="shopify-section-template--21732448698675__main" class="shopify-section"><!-- sections/page__main.liquid -->
8726
8727
8728<section
8729  class="color__bg-body color__text"
8730  style="
8731    padding-top:0px;
8732    padding-bottom:0px;
8733  "
8734>
8735  <div
8736    class="
8737      window--wide
8738      flex justify-center
8739    "
8740  >
8741    
8742    <div class="w-full">
8743      <h1>
8744        The Best Espresso Machine Reviews And Coffee News
8745      </h1>
8746      <div class="rte">
8747        
8748      </div>
8749    </div>
8750  </div>
8751</section>
8752
8753
8754</div><div id="shopify-section-template--21732448698675__article_grid_new_4nAyeG" class="shopify-section"><!-- sections/article-grid-new.liquid -->
8755
8756
8757<section
8758  class="
8759    
8760    color__bg-body color__text
8761    color__border-divider-1
8762    border--b-width
8763  "
8764>
8765  <div
8766    class="window--wide"
8767    style="
8768      padding-top:0px;
8769      padding-bottom:0px;
8770    "
8771  >
8772
8773    
8774    <div class="flex flex-col md:flex-row gap-8">
8775
8776      
8777      <div class="md:w-3/4 min-w-0">
8778
8779        
8780        
8781
8782          
8783          <a href="/blogs/scg-blog/top-3-advanced-espresso-grinders-of-2026" class="block relative w-full overflow-hidden no-underline hover:no-underline mb-4
8784            border--radius border--width color__border-divider-1
8785          ">
8786            <div class="aspect-w-16 aspect-h-9 aspect-video w-full color__bg-body after:color__bg-body color__text after:color__text">
8787                <img src="//www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Advanced_Espresso_Grinders_94ebd5be-83b1-4736-90b1-d8a33aeeeb40.jpg?v=1790812542&amp;width=1200" alt="Rocket Spluga, Eureka Atom W 65, and Oro Mignon Single Dose Pro advanced espresso grinders" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Advanced_Espresso_Grinders_94ebd5be-83b1-4736-90b1-d8a33aeeeb40.jpg?v=1790812542&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Advanced_Espresso_Grinders_94ebd5be-83b1-4736-90b1-d8a33aeeeb40.jpg?v=1790812542&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Advanced_Espresso_Grinders_94ebd5be-83b1-4736-90b1-d8a33aeeeb40.jpg?v=1790812542&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Advanced_Espresso_Grinders_94ebd5be-83b1-4736-90b1-d8a33aeeeb40.jpg?v=1790812542&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Advanced_Espresso_Grinders_94ebd5be-83b1-4736-90b1-d8a33aeeeb40.jpg?v=1790812542&amp;width=1200 1200w" width="1200" height="786" loading="eager" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text" sizes="(min-width: 1024px) 75vw, 100vw">
8788</div>
8789          </a>
8790
8791          
8792<h2 class="type__heading--section-heading mb-4 uppercase font-extrabold text-4xl">
8793              The Latest from the coffee experts at SCG
8794            </h2>
8795          <a href="/blogs/scg-blog/top-3-advanced-espresso-grinders-of-2026" class="block no-underline hover:no-underline group mb-8 md:mb-12
8796            
8797          ">
8798            <h3 class="type--base type__body--bare mb-0.5 font-semibold !leading-tight ">
8799              Top 3 Advanced Espresso Grinders of 2026: A Buying Guide for Experienced Home Baristas
8800            </h3>
8801            
8802              
8803              <span class="type--small mb-1 flex w-full">Ready to upgrade past your first grinder? Here are our top picks for the experienc...</span>
8804            
8805            <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
8806              
8807                <li class="type--small inline-block last:after:hidden
8808                  after:content-['\00B7']
8809                ">
8810                  Oct 1, 2026
8811                </li>
8812              
8813              
8814            </ul>
8815          </a>
8816
8817        
8818
8819        
8820        
8821
8822        
8823        
8824          <div
8825            class="
8826              flex mt-8 md:mt-12
8827              
8828                justify-start
8829              
8830            "
8831          >
8832            <a href="https://www.seattlecoffeegear.com/blogs/scg-blog" class="btn btn--secondary">
8833              View all articles
8834            </a>
8835          </div>
8836        
8837
8838      </div>
8839
8840      
8841      
8842        <div class="md:w-1/4 shrink-0">
8843
8844          <div x-data="{ open: true }">
8845            <button
8846              @click="open = !open"
8847              class="w-full flex items-center justify-between mb-4 md:pointer-events-none"
8848            >
8849              <p class="type__heading--section-heading text-base font-semibold uppercase tracking-wide m-0">Recent Posts</p>
8850              <span class="md:hidden text-xl font-normal leading-none select-none" x-text="open ? '−' : '+'"></span>
8851            </button>
8852            <div
8853              x-show="open"
8854              x-cloak
8855              x-transition:enter="transition ease-out duration-200"
8856              x-transition:enter-start="opacity-0"
8857              x-transition:enter-end="opacity-100"
8858              x-transition:leave="transition ease-in duration-150"
8859              x-transition:leave-start="opacity-100"
8860              x-transition:leave-end="opacity-0"
8861            >
8862              <div class="flex flex-col gap-4">
8863                
8864                
8865                
8866                  
8867                  
8868                  <a
8869                    href="/blogs/scg-blog/scgs-best-videos-september-2026-coffee-gear-roundup"
8870                    class="flex flex-row gap-3 items-start no-underline hover:no-underline group border border-gray-200 rounded-md p-2"
8871                  >
8872                    <div class="w-16 h-16 shrink-0 overflow-hidden rounded color__bg-body after:color__bg-body color__text after:color__text"><img src="//www.seattlecoffeegear.com/cdn/shop/articles/Monthly_Video_Recap_-_September_2026_f5f33c0f-a5a0-4563-a002-d15e06dafee1.jpg?v=1790721197&amp;width=200" alt="SCG&#39;s Best Videos: September 2026 Coffee &amp; Gear Roundup" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/Monthly_Video_Recap_-_September_2026_f5f33c0f-a5a0-4563-a002-d15e06dafee1.jpg?v=1790721197&amp;width=200 200w" width="200" height="131" loading="lazy" class="w-full h-full object-cover">
8873</div>
8874                    <span class="type--base font-semibold leading-snug group-hover:underline">
8875                      SCG's Best Videos: September 2026 Coffee & Gear Roundup
8876                    </span>
8877                  </a>
8878                
8879                  
8880                  <a
8881                    href="/blogs/scg-blog/cherry-coffee-chia-pudding-the-make-ahead-breakfast-with-a-chocolate-shell-twist"
8882                    class="flex flex-row gap-3 items-start no-underline hover:no-underline group border border-gray-200 rounded-md p-2"
8883                  >
8884                    <div class="w-16 h-16 shrink-0 overflow-hidden rounded color__bg-body after:color__bg-body color__text after:color__text"><img src="//www.seattlecoffeegear.com/cdn/shop/articles/Cherry_Coffee_Chia_Pudding_d6186631-21e8-4065-8aa9-07db84667b8f.jpg?v=1790370324&amp;width=200" alt="Cherry Coffee Chia Pudding: The Make Ahead Breakfast With a Chocolate Shell Twist" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/Cherry_Coffee_Chia_Pudding_d6186631-21e8-4065-8aa9-07db84667b8f.jpg?v=1790370324&amp;width=200 200w" width="200" height="131" loading="lazy" class="w-full h-full object-cover">
8885</div>
8886                    <span class="type--base font-semibold leading-snug group-hover:underline">
8887                      Cherry Coffee Chia Pudding: The Make Ahead Breakfast With a Chocolate Shell Twist
8888                    </span>
8889                  </a>
8890                
8891                  
8892                  <a
8893                    href="/blogs/scg-blog/top-3-espresso-grinders-of-2026"
8894                    class="flex flex-row gap-3 items-start no-underline hover:no-underline group border border-gray-200 rounded-md p-2"
8895                  >
8896                    <div class="w-16 h-16 shrink-0 overflow-hidden rounded color__bg-body after:color__bg-body color__text after:color__text"><img src="//www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Espresso_Grinders_1736b081-b68c-4e87-9ddc-ed2d6d5a8857.jpg?v=1790374338&amp;width=200" alt="Eureka Mignon Zero, Fellow Opus Gen 2, and Baratza Encore ESP Pro espresso grinders" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Espresso_Grinders_1736b081-b68c-4e87-9ddc-ed2d6d5a8857.jpg?v=1790374338&amp;width=200 200w" width="200" height="131" loading="lazy" class="w-full h-full object-cover">
8897</div>
8898                    <span class="type--base font-semibold leading-snug group-hover:underline">
8899                      Top 3 Espresso Grinders of 2026: A Buying Guide for New Home Baristas
8900                    </span>
8901                  </a>
8902                
8903              </div>
8904            </div>
8905          </div>
8906
8907          <div class="border-t color__border-divider-1 mt-6 mb-6"></div>
8908
8909          <div x-data="{ open: window.matchMedia('(min-width: 768px)').matches }">
8910            <button
8911              @click="open = !open"
8912              class="w-full flex items-center justify-between mb-4 md:pointer-events-none"
8913            >
8914              <p class="type__heading--section-heading text-base font-semibold uppercase tracking-wide m-0">Categories</p>
8915              <span class="md:hidden text-xl font-normal leading-none select-none" x-text="open ? '−' : '+'"></span>
8916            </button>
8917            <div
8918              x-show="open"
8919              x-cloak
8920              x-transition:enter="transition ease-out duration-200"
8921              x-transition:enter-start="opacity-0"
8922              x-transition:enter-end="opacity-100"
8923              x-transition:leave="transition ease-in duration-150"
8924              x-transition:leave-start="opacity-100"
8925              x-transition:leave-end="opacity-0"
8926              class="mb-6"
8927            >
8928              <ul class="flex flex-col gap-3 list-none">
8929                
8930                  
8931                    <li >
8932                      <a
8933                        href="/blogs/scg-blog"
8934                        class="text-xl font-normal leading-snug text-black"
8935                      >
8936                        All Articles
8937                      </a>
8938                    </li>
8939                  
8940                
8941                  
8942                    <li >
8943                      <a
8944                        href="/blogs/scg-blog/tagged/barista-recipes"
8945                        class="text-xl font-normal leading-snug text-black"
8946                      >
8947                        Barista Recipes
8948                      </a>
8949                    </li>
8950                  
8951                
8952                  
8953                    <li >
8954                      <a
8955                        href="/blogs/scg-blog/tagged/coffee"
8956                        class="text-xl font-normal leading-snug text-black"
8957                      >
8958                        Coffee
8959                      </a>
8960                    </li>
8961                  
8962                
8963                  
8964                    <li >
8965                      <a
8966                        href="/blogs/scg-blog/tagged/education"
8967                        class="text-xl font-normal leading-snug text-black"
8968                      >
8969                        Education
8970                      </a>
8971                    </li>
8972                  
8973                
8974                  
8975                    <li >
8976                      <a
8977                        href="/blogs/scg-blog/tagged/news"
8978                        class="text-xl font-normal leading-snug text-black"
8979                      >
8980                        News
8981                      </a>
8982                    </li>
8983                  
8984                
8985                  
8986                    <li >
8987                      <a
8988                        href="/blogs/scg-blog/tagged/reviews"
8989                        class="text-xl font-normal leading-snug text-black"
8990                      >
8991                        Reviews
8992                      </a>
8993                    </li>
8994                  
8995                
8996              </ul>
8997            </div>
8998          </div>
8999
9000        </div>
9001      
9002
9003    </div>
9004
9005  </div>
9006</section>
9007
9008
9009</div><div id="shopify-section-template--21732448698675__38b2ee91-d0fa-4169-ae2f-f69e15fa6aa7" class="shopify-section"><!-- sections/article-tagged-grid.liquid -->
9010
9011
9012<section
9013  class="
9014    
9015    color__bg-body color__text
9016    color__border-divider-1
9017    border--b-width
9018  "
9019>
9020  <div
9021    class="window--wide"
9022    style="
9023      padding-top:40px;
9024      padding-bottom:40px;
9025    "
9026  ><div
9027        class="
9028          flex flex-row flex-wrap items-end gap-2 pb-4
9029          justify-between
9030          
9031            
9032              opacity-0 js:animation animation-300
9033            
9034          
9035        "
9036        
9037          data-delay="100"
9038          data-replace="
9039            {
9040              'opacity-0' : 'opacity-100'
9041            }
9042          "
9043        
9044      >
9045        <div class="w-full max-w-prose md:w-auto"><h3 class="type__heading--section-heading mb-1">Barista Recipes</h3><div class="m-0--clear mb-1 text-base font-normal leading-snug text-zinc-600">
9046              Savor Every Sip: Delightful Coffee-Inspired Recipes to Elevate Your Brewing Journey
9047            </div><a
9048            href="/blogs/scg-blog/tagged/barista-recipes"
9049            class="
9050              flex flex-row items-center
9051              text-base
9052              font-normal
9053              leading-snug
9054              text-cyan-700
9055              underline
9056            "
9057          >
9058            <div>Browse All Barista Recipes</div><!-- snippets/component__icon.liquid -->
9059
9060
9061<span class="inline-flex align-middle ml-1" aria-hidden="true">
9062  
9063      <svg
9064        width="18"
9065        height="18"
9066        viewBox="0 0 15 16"
9067        fill="none"
9068        xmlns="http://www.w3.org/2000/svg"
9069      >
9070        <g id="Arrow">
9071        <circle id="Oval Copy" cx="7.5" cy="8" r="7.08333" fill="white" stroke="#217A97" stroke-width="0.833333"/>
9072        <g id="np_arrow-right_888647_000000 copy">
9073        <path id="Path" d="M3 7.47656H10.7933V8.52113H3V7.47656Z" fill="#217A97"/>
9074        <path id="Path_2" d="M8.63197 11.5L7.92773 10.7684L10.5929 8L7.92773 5.23163L8.63197 4.5L12.0004 8.00001L8.63197 11.5Z" fill="#217A97"/>
9075        </g>
9076        </g>
9077      </svg>
9078    
9079</span>
9080
9081          </a>
9082        </div>
9083      </div>
9084      <div
9085        class="
9086          grid
9087          md:grid-cols-4
9088          grid grid-cols-2
9089        "
9090        style="
9091          column-gap: 8px;
9092          row-gap: 12.0px;
9093        "
9094      >
9095        
9096
9097        
9098          
9099
9100          
9101            
9102
9103            
9104              
9105
9106              
9107            
9108              
9109
9110              
9111            
9112              
9113
9114              
9115            
9116              
9117
9118              
9119            
9120              
9121
9122              
9123            
9124              
9125
9126              
9127            
9128              
9129
9130              
9131            
9132              
9133
9134              
9135            
9136
9137            
9138
9139            
9140          
9141            
9142
9143            
9144              
9145
9146              
9147            
9148              
9149
9150              
9151            
9152              
9153
9154              
9155            
9156              
9157
9158              
9159            
9160              
9161
9162              
9163            
9164              
9165
9166              
9167            
9168              
9169
9170              
9171            
9172
9173            
9174
9175            
9176          
9177            
9178
9179            
9180              
9181
9182              
9183                
9184                
9185
9186            
9187              
9188
9189              
9190                <!-- snippets/component__blog-item.liquid -->
9191
9192
9193<a
9194  href="/blogs/scg-blog/cherry-coffee-chia-pudding-the-make-ahead-breakfast-with-a-chocolate-shell-twist"
9195  class="
9196    group relative w-full no-underline hover:no-underline
9197    
9198  "
9199>
9200  <div
9201    class="relative mb-4 block w-full overflow-hidden"
9202  >
9203    <div
9204      class="
9205        aspect-w-16 aspect-h-9 aspect-video w-full object-cover
9206        color__bg-body after:color__bg-body color__text after:color__text
9207        
9208          border--radius overflow-hidden
9209          border--width color__border-divider-1
9210        
9211      "
9212    >
9213        
9214        
9215        <img src="//www.seattlecoffeegear.com/cdn/shop/articles/Cherry_Coffee_Chia_Pudding_d6186631-21e8-4065-8aa9-07db84667b8f.jpg?v=1790370324&amp;width=1200" alt="Cherry Coffee Chia Pudding: The Make Ahead Breakfast With a Chocolate Shell Twist - Seattle Coffee Gear" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/Cherry_Coffee_Chia_Pudding_d6186631-21e8-4065-8aa9-07db84667b8f.jpg?v=1790370324&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/Cherry_Coffee_Chia_Pudding_d6186631-21e8-4065-8aa9-07db84667b8f.jpg?v=1790370324&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/Cherry_Coffee_Chia_Pudding_d6186631-21e8-4065-8aa9-07db84667b8f.jpg?v=1790370324&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/Cherry_Coffee_Chia_Pudding_d6186631-21e8-4065-8aa9-07db84667b8f.jpg?v=1790370324&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/Cherry_Coffee_Chia_Pudding_d6186631-21e8-4065-8aa9-07db84667b8f.jpg?v=1790370324&amp;width=1200 1200w" width="1200" height="786" loading="lazy" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text " sizes="(min-width: 1024px) 33vw, (min-width: 768px) 50vw, 100vw">�</div>
9216  </div>
9217
9218  <div
9219    class="
9220      block whitespace-normal no-underline hover:no-underline
9221      
9222    "
9223  >
9224    
9225      <div class="mb-2 flex gap-2">
9226        <span class="color__bg-overlay-2 inline-flex h-5 w-5 items-center justify-center rounded-full">
9227          <span class="type--smaller">K</span>
9228        </span>
9229        <span class="type--small opacity-75">
9230          Kelli R
9231        </span>
9232      </div>
9233    
9234    <h3
9235      class="
9236        type--base type__body--bare mb-0.5 font-semibold !leading-tight
9237        
9238      "
9239    >
9240      Cherry Coffee Chia Pudding: The Make Ahead Breakfast With a Chocolate Shell Twist
9241    </h3>
9242    
9243      
9244      <span class="type--small mb-1 flex w-full">
9245        We layered espresso, chia, and fresh cherries into a make ahead coffee chia puddin...
9246      </span>
9247    
9248    <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
9249      
9250        <li
9251          class="
9252            type--small inline-block last:after:hidden
9253             after:content-['\00B7'] 
9254          "
9255        >
9256          Sep 28, 2026
9257        </li>
9258      
9259      
9260    </ul>
9261  </div>
9262</a>
9263
9264              
9265            
9266
9267            
9268          
9269            
9270
9271            
9272              
9273
9274              
9275            
9276              
9277
9278              
9279            
9280              
9281
9282              
9283            
9284              
9285
9286              
9287            
9288              
9289
9290              
9291            
9292              
9293
9294              
9295            
9296
9297            
9298
9299            
9300          
9301            
9302
9303            
9304              
9305
9306              
9307            
9308              
9309
9310              
9311            
9312              
9313
9314              
9315            
9316              
9317
9318              
9319            
9320              
9321
9322              
9323            
9324              
9325
9326              
9327            
9328              
9329
9330              
9331            
9332              
9333
9334              
9335            
9336
9337            
9338
9339            
9340          
9341            
9342
9343            
9344              
9345
9346              
9347            
9348              
9349
9350              
9351            
9352              
9353
9354              
9355            
9356              
9357
9358              
9359            
9360              
9361
9362              
9363            
9364              
9365
9366              
9367            
9368              
9369
9370              
9371            
9372
9373            
9374
9375            
9376          
9377            
9378
9379            
9380              
9381
9382              
9383            
9384              
9385
9386              
9387            
9388              
9389
9390              
9391            
9392              
9393
9394              
9395            
9396              
9397
9398              
9399            
9400              
9401
9402              
9403            
9404              
9405
9406              
9407            
9408              
9409
9410              
9411            
9412
9413            
9414
9415            
9416          
9417            
9418
9419            
9420              
9421
9422              
9423            
9424              
9425
9426              
9427            
9428              
9429
9430              
9431            
9432              
9433
9434              
9435            
9436              
9437
9438              
9439            
9440              
9441
9442              
9443            
9444              
9445
9446              
9447            
9448              
9449
9450              
9451            
9452
9453            
9454
9455            
9456          
9457            
9458
9459            
9460              
9461
9462              
9463            
9464              
9465
9466              
9467            
9468              
9469
9470              
9471            
9472              
9473
9474              
9475            
9476              
9477
9478              
9479            
9480              
9481
9482              
9483            
9484              
9485
9486              
9487            
9488              
9489
9490              
9491            
9492              
9493
9494              
9495            
9496
9497            
9498
9499            
9500          
9501            
9502
9503            
9504              
9505
9506              
9507                
9508                
9509
9510            
9511              
9512
9513              
9514                <!-- snippets/component__blog-item.liquid -->
9515
9516
9517<a
9518  href="/blogs/scg-blog/maple-pecan-iced-latte-the-fall-drink-to-skip-the-drive-thru-line-for"
9519  class="
9520    group relative w-full no-underline hover:no-underline
9521    
9522  "
9523>
9524  <div
9525    class="relative mb-4 block w-full overflow-hidden"
9526  >
9527    <div
9528      class="
9529        aspect-w-16 aspect-h-9 aspect-video w-full object-cover
9530        color__bg-body after:color__bg-body color__text after:color__text
9531        
9532          border--radius overflow-hidden
9533          border--width color__border-divider-1
9534        
9535      "
9536    >
9537        
9538        
9539        <img src="//www.seattlecoffeegear.com/cdn/shop/articles/Maple_Pecan_Iced_Latte_6439f563-3c69-4275-a959-64868606468a.jpg?v=1789076240&amp;width=1200" alt="Maple Pecan Iced Latte: The Fall Drink to Skip the Drive-Thru Line For - Seattle Coffee Gear" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/Maple_Pecan_Iced_Latte_6439f563-3c69-4275-a959-64868606468a.jpg?v=1789076240&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/Maple_Pecan_Iced_Latte_6439f563-3c69-4275-a959-64868606468a.jpg?v=1789076240&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/Maple_Pecan_Iced_Latte_6439f563-3c69-4275-a959-64868606468a.jpg?v=1789076240&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/Maple_Pecan_Iced_Latte_6439f563-3c69-4275-a959-64868606468a.jpg?v=1789076240&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/Maple_Pecan_Iced_Latte_6439f563-3c69-4275-a959-64868606468a.jpg?v=1789076240&amp;width=1200 1200w" width="1200" height="786" loading="lazy" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text " sizes="(min-width: 1024px) 33vw, (min-width: 768px) 50vw, 100vw">�</div>
9540  </div>
9541
9542  <div
9543    class="
9544      block whitespace-normal no-underline hover:no-underline
9545      
9546    "
9547  >
9548    
9549      <div class="mb-2 flex gap-2">
9550        <span class="color__bg-overlay-2 inline-flex h-5 w-5 items-center justify-center rounded-full">
9551          <span class="type--smaller">K</span>
9552        </span>
9553        <span class="type--small opacity-75">
9554          Kelli R
9555        </span>
9556      </div>
9557    
9558    <h3
9559      class="
9560        type--base type__body--bare mb-0.5 font-semibold !leading-tight
9561        
9562      "
9563    >
9564      Maple Pecan Iced Latte: The Fall Drink to Skip the Drive-Thru Line For
9565    </h3>
9566    
9567      
9568      <span class="type--small mb-1 flex w-full">
9569        This maple pecan iced latte layers a double shot over cold milk, then tops it with...
9570      </span>
9571    
9572    <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
9573      
9574        <li
9575          class="
9576            type--small inline-block last:after:hidden
9577             after:content-['\00B7'] 
9578          "
9579        >
9580          Sep 11, 2026
9581        </li>
9582      
9583      
9584    </ul>
9585  </div>
9586</a>
9587
9588              
9589            
9590
9591            
9592          
9593            
9594
9595            
9596              
9597
9598              
9599            
9600              
9601
9602              
9603            
9604              
9605
9606              
9607            
9608              
9609
9610              
9611            
9612              
9613
9614              
9615            
9616              
9617
9618              
9619            
9620
9621            
9622
9623            
9624          
9625            
9626
9627            
9628              
9629
9630              
9631            
9632              
9633
9634              
9635            
9636              
9637
9638              
9639            
9640              
9641
9642              
9643            
9644              
9645
9646              
9647            
9648              
9649
9650              
9651            
9652              
9653
9654              
9655            
9656
9657            
9658
9659            
9660          
9661            
9662
9663            
9664              
9665
9666              
9667            
9668              
9669
9670              
9671            
9672              
9673
9674              
9675            
9676              
9677
9678              
9679            
9680              
9681
9682              
9683            
9684
9685            
9686
9687            
9688          
9689            
9690
9691            
9692              
9693
9694              
9695            
9696              
9697
9698              
9699            
9700              
9701
9702              
9703            
9704              
9705
9706              
9707            
9708              
9709
9710              
9711            
9712              
9713
9714              
9715            
9716
9717            
9718
9719            
9720          
9721            
9722
9723            
9724              
9725
9726              
9727                
9728                
9729
9730            
9731              
9732
9733              
9734                <!-- snippets/component__blog-item.liquid -->
9735
9736
9737<a
9738  href="/blogs/scg-blog/espresso-tonic-bomb-the-fizzy-coffee-to-wake-you-up"
9739  class="
9740    group relative w-full no-underline hover:no-underline
9741    
9742  "
9743>
9744  <div
9745    class="relative mb-4 block w-full overflow-hidden"
9746  >
9747    <div
9748      class="
9749        aspect-w-16 aspect-h-9 aspect-video w-full object-cover
9750        color__bg-body after:color__bg-body color__text after:color__text
9751        
9752          border--radius overflow-hidden
9753          border--width color__border-divider-1
9754        
9755      "
9756    >
9757        
9758        
9759        <img src="//www.seattlecoffeegear.com/cdn/shop/articles/Espresso_Tonic_Bomb_be4f4b27-6e63-4246-b94e-591376f5e0a4.jpg?v=1787763443&amp;width=1200" alt="Espresso Tonic Bomb: The Fizzy Coffee to Wake You Up - Seattle Coffee Gear" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/Espresso_Tonic_Bomb_be4f4b27-6e63-4246-b94e-591376f5e0a4.jpg?v=1787763443&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/Espresso_Tonic_Bomb_be4f4b27-6e63-4246-b94e-591376f5e0a4.jpg?v=1787763443&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/Espresso_Tonic_Bomb_be4f4b27-6e63-4246-b94e-591376f5e0a4.jpg?v=1787763443&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/Espresso_Tonic_Bomb_be4f4b27-6e63-4246-b94e-591376f5e0a4.jpg?v=1787763443&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/Espresso_Tonic_Bomb_be4f4b27-6e63-4246-b94e-591376f5e0a4.jpg?v=1787763443&amp;width=1200 1200w" width="1200" height="786" loading="lazy" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text " sizes="(min-width: 1024px) 33vw, (min-width: 768px) 50vw, 100vw">�</div>
9760  </div>
9761
9762  <div
9763    class="
9764      block whitespace-normal no-underline hover:no-underline
9765      
9766    "
9767  >
9768    
9769      <div class="mb-2 flex gap-2">
9770        <span class="color__bg-overlay-2 inline-flex h-5 w-5 items-center justify-center rounded-full">
9771          <span class="type--smaller">K</span>
9772        </span>
9773        <span class="type--small opacity-75">
9774          Kelli R
9775        </span>
9776      </div>
9777    
9778    <h3
9779      class="
9780        type--base type__body--bare mb-0.5 font-semibold !leading-tight
9781        
9782      "
9783    >
9784      Espresso Tonic Bomb: The Fizzy Coffee to Wake You Up
9785    </h3>
9786    
9787      
9788      <span class="type--small mb-1 flex w-full">
9789        The espresso tonic bomb is a salted-lime coffee drink that turns a simple shot int...
9790      </span>
9791    
9792    <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
9793      
9794        <li
9795          class="
9796            type--small inline-block last:after:hidden
9797             after:content-['\00B7'] 
9798          "
9799        >
9800          Aug 28, 2026
9801        </li>
9802      
9803      
9804    </ul>
9805  </div>
9806</a>
9807
9808              
9809            
9810
9811            
9812          
9813            
9814
9815            
9816              
9817
9818              
9819            
9820              
9821
9822              
9823            
9824              
9825
9826              
9827            
9828              
9829
9830              
9831            
9832              
9833
9834              
9835            
9836              
9837
9838              
9839            
9840
9841            
9842
9843            
9844          
9845            
9846
9847            
9848              
9849
9850              
9851            
9852              
9853
9854              
9855            
9856              
9857
9858              
9859            
9860              
9861
9862              
9863            
9864              
9865
9866              
9867            
9868              
9869
9870              
9871            
9872              
9873
9874              
9875            
9876
9877            
9878
9879            
9880          
9881            
9882
9883            
9884              
9885
9886              
9887            
9888              
9889
9890              
9891            
9892              
9893
9894              
9895            
9896              
9897
9898              
9899            
9900              
9901
9902              
9903            
9904              
9905
9906              
9907            
9908              
9909
9910              
9911            
9912              
9913
9914              
9915            
9916
9917            
9918
9919            
9920          
9921            
9922
9923            
9924              
9925
9926              
9927            
9928              
9929
9930              
9931            
9932              
9933
9934              
9935            
9936              
9937
9938              
9939            
9940              
9941
9942              
9943            
9944              
9945
9946              
9947            
9948
9949            
9950
9951            
9952          
9953            
9954
9955            
9956              
9957
9958              
9959                
9960                
9961
9962            
9963              
9964
9965              
9966                <!-- snippets/component__blog-item.liquid -->
9967
9968
9969<a
9970  href="/blogs/scg-blog/jittery-cola-float-a-true-caffeine-upgraded-treat"
9971  class="
9972    group relative w-full no-underline hover:no-underline
9973    
9974  "
9975>
9976  <div
9977    class="relative mb-4 block w-full overflow-hidden"
9978  >
9979    <div
9980      class="
9981        aspect-w-16 aspect-h-9 aspect-video w-full object-cover
9982        color__bg-body after:color__bg-body color__text after:color__text
9983        
9984          border--radius overflow-hidden
9985          border--width color__border-divider-1
9986        
9987      "
9988    >
9989        
9990        
9991        <img src="//www.seattlecoffeegear.com/cdn/shop/articles/Jittery_Cola_Float_d87c0e50-e1a3-4b59-b6d8-973e2178535c.jpg?v=1786662782&amp;width=1200" alt="Jittery Cola Float: A True Caffeine Upgraded Treat - Seattle Coffee Gear" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/Jittery_Cola_Float_d87c0e50-e1a3-4b59-b6d8-973e2178535c.jpg?v=1786662782&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/Jittery_Cola_Float_d87c0e50-e1a3-4b59-b6d8-973e2178535c.jpg?v=1786662782&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/Jittery_Cola_Float_d87c0e50-e1a3-4b59-b6d8-973e2178535c.jpg?v=1786662782&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/Jittery_Cola_Float_d87c0e50-e1a3-4b59-b6d8-973e2178535c.jpg?v=1786662782&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/Jittery_Cola_Float_d87c0e50-e1a3-4b59-b6d8-973e2178535c.jpg?v=1786662782&amp;width=1200 1200w" width="1200" height="786" loading="lazy" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text " sizes="(min-width: 1024px) 33vw, (min-width: 768px) 50vw, 100vw">�</div>
9992  </div>
9993
9994  <div
9995    class="
9996      block whitespace-normal no-underline hover:no-underline
9997      
9998    "
9999  >
10000    
10001      <div class="mb-2 flex gap-2">
10002        <span class="color__bg-overlay-2 inline-flex h-5 w-5 items-center justify-center rounded-full">
10003          <span class="type--smaller">K</span>
10004        </span>
10005        <span class="type--small opacity-75">
10006          Kelli R
10007        </span>
10008      </div>
10009    
10010    <h3
10011      class="
10012        type--base type__body--bare mb-0.5 font-semibold !leading-tight
10013        
10014      "
10015    >
10016      Jittery Cola Float: A True Caffeine Upgraded Treat
10017    </h3>
10018    
10019      
10020      <span class="type--small mb-1 flex w-full">
10021        The Jittery Cola Float takes your childhood soda fountain order and hands it a dou...
10022      </span>
10023    
10024    <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
10025      
10026        <li
10027          class="
10028            type--small inline-block last:after:hidden
10029             after:content-['\00B7'] 
10030          "
10031        >
10032          Aug 14, 2026
10033        </li>
10034      
10035      
10036    </ul>
10037  </div>
10038</a>
10039
10040              
10041            
10042
10043            
10044              
10045        
10046      </div>
10047    
10048  </div>
10049</section>
10050
10051
10052</div><div id="shopify-section-template--21732448698675__f27a1cac-0db5-4e00-80d3-3b3a74dd17ad" class="shopify-section"><!-- sections/article-tagged-grid.liquid -->
10053
10054
10055<section
10056  class="
10057    
10058    color__bg-body color__text
10059    color__border-divider-1
10060    border--b-width
10061  "
10062>
10063  <div
10064    class="window--wide"
10065    style="
10066      padding-top:40px;
10067      padding-bottom:40px;
10068    "
10069  ><div
10070        class="
10071          flex flex-row flex-wrap items-end gap-2 pb-4
10072          justify-between
10073          
10074            
10075              opacity-0 js:animation animation-300
10076            
10077          
10078        "
10079        
10080          data-delay="100"
10081          data-replace="
10082            {
10083              'opacity-0' : 'opacity-100'
10084            }
10085          "
10086        
10087      >
10088        <div class="w-full max-w-prose md:w-auto"><h3 class="type__heading--section-heading mb-1">Coffee</h3><div class="m-0--clear mb-1 text-base font-normal leading-snug text-zinc-600">
10089              Crafting Your Coffee Experience: A Comprehensive Collection of Expert Advice for the Perfect Cup
10090            </div><a
10091            href="/blogs/scg-blog/tagged/coffee"
10092            class="
10093              flex flex-row items-center
10094              text-base
10095              font-normal
10096              leading-snug
10097              text-cyan-700
10098              underline
10099            "
10100          >
10101            <div>Browse All Coffee</div><!-- snippets/component__icon.liquid -->
10102
10103
10104<span class="inline-flex align-middle ml-1" aria-hidden="true">
10105  
10106      <svg
10107        width="18"
10108        height="18"
10109        viewBox="0 0 15 16"
10110        fill="none"
10111        xmlns="http://www.w3.org/2000/svg"
10112      >
10113        <g id="Arrow">
10114        <circle id="Oval Copy" cx="7.5" cy="8" r="7.08333" fill="white" stroke="#217A97" stroke-width="0.833333"/>
10115        <g id="np_arrow-right_888647_000000 copy">
10116        <path id="Path" d="M3 7.47656H10.7933V8.52113H3V7.47656Z" fill="#217A97"/>
10117        <path id="Path_2" d="M8.63197 11.5L7.92773 10.7684L10.5929 8L7.92773 5.23163L8.63197 4.5L12.0004 8.00001L8.63197 11.5Z" fill="#217A97"/>
10118        </g>
10119        </g>
10120      </svg>
10121    
10122</span>
10123
10124          </a>
10125        </div>
10126      </div>
10127      <div
10128        class="
10129          grid
10130          md:grid-cols-4
10131          grid grid-cols-2
10132        "
10133        style="
10134          column-gap: 8px;
10135          row-gap: 12.0px;
10136        "
10137      >
10138        
10139
10140        
10141          
10142
10143          
10144            
10145
10146            
10147              
10148
10149              
10150            
10151              
10152
10153              
10154            
10155              
10156
10157              
10158            
10159              
10160
10161              
10162            
10163              
10164
10165              
10166            
10167              
10168
10169              
10170            
10171              
10172
10173              
10174            
10175              
10176
10177              
10178            
10179
10180            
10181
10182            
10183          
10184            
10185
10186            
10187              
10188
10189              
10190            
10191              
10192
10193              
10194            
10195              
10196
10197              
10198            
10199              
10200
10201              
10202            
10203              
10204
10205              
10206            
10207              
10208
10209              
10210            
10211              
10212
10213              
10214            
10215
10216            
10217
10218            
10219          
10220            
10221
10222            
10223              
10224
10225              
10226            
10227              
10228
10229              
10230            
10231              
10232
10233              
10234            
10235              
10236
10237              
10238            
10239              
10240
10241              
10242            
10243              
10244
10245              
10246            
10247
10248            
10249
10250            
10251          
10252            
10253
10254            
10255              
10256
10257              
10258            
10259              
10260
10261              
10262            
10263              
10264
10265              
10266            
10267              
10268
10269              
10270            
10271              
10272
10273              
10274            
10275              
10276
10277              
10278            
10279
10280            
10281
10282            
10283          
10284            
10285
10286            
10287              
10288
10289              
10290            
10291              
10292
10293              
10294            
10295              
10296
10297              
10298            
10299              
10300
10301              
10302            
10303              
10304
10305              
10306            
10307              
10308
10309              
10310            
10311              
10312
10313              
10314            
10315              
10316
10317              
10318            
10319
10320            
10321
10322            
10323          
10324            
10325
10326            
10327              
10328
10329              
10330            
10331              
10332
10333              
10334            
10335              
10336
10337              
10338            
10339              
10340
10341              
10342            
10343              
10344
10345              
10346            
10347              
10348
10349              
10350            
10351              
10352
10353              
10354            
10355
10356            
10357
10358            
10359          
10360            
10361
10362            
10363              
10364
10365              
10366            
10367              
10368
10369              
10370            
10371              
10372
10373              
10374            
10375              
10376
10377              
10378            
10379              
10380
10381              
10382            
10383              
10384
10385              
10386            
10387              
10388
10389              
10390            
10391              
10392
10393              
10394            
10395
10396            
10397
10398            
10399          
10400            
10401
10402            
10403              
10404
10405              
10406            
10407              
10408
10409              
10410            
10411              
10412
10413              
10414            
10415              
10416
10417              
10418            
10419              
10420
10421              
10422            
10423              
10424
10425              
10426            
10427              
10428
10429              
10430            
10431              
10432
10433              
10434            
10435
10436            
10437
10438            
10439          
10440            
10441
10442            
10443              
10444
10445              
10446            
10447              
10448
10449              
10450            
10451              
10452
10453              
10454            
10455              
10456
10457              
10458            
10459              
10460
10461              
10462            
10463              
10464
10465              
10466            
10467              
10468
10469              
10470            
10471              
10472
10473              
10474            
10475              
10476
10477              
10478            
10479
10480            
10481
10482            
10483          
10484            
10485
10486            
10487              
10488
10489              
10490            
10491              
10492
10493              
10494            
10495              
10496
10497              
10498            
10499              
10500
10501              
10502            
10503              
10504
10505              
10506            
10507              
10508
10509              
10510            
10511              
10512
10513              
10514            
10515              
10516
10517              
10518            
10519
10520            
10521
10522            
10523          
10524            
10525
10526            
10527              
10528
10529              
10530            
10531              
10532
10533              
10534            
10535              
10536
10537              
10538            
10539              
10540
10541              
10542            
10543              
10544
10545              
10546            
10547              
10548
10549              
10550            
10551
10552            
10553
10554            
10555          
10556            
10557
10558            
10559              
10560
10561              
10562            
10563              
10564
10565              
10566            
10567              
10568
10569              
10570            
10571              
10572
10573              
10574            
10575              
10576
10577              
10578            
10579              
10580
10581              
10582            
10583              
10584
10585              
10586            
10587
10588            
10589
10590            
10591          
10592            
10593
10594            
10595              
10596
10597              
10598            
10599              
10600
10601              
10602            
10603              
10604
10605              
10606            
10607              
10608
10609              
10610            
10611              
10612
10613              
10614            
10615
10616            
10617
10618            
10619          
10620            
10621
10622            
10623              
10624
10625              
10626            
10627              
10628
10629              
10630            
10631              
10632
10633              
10634            
10635              
10636
10637              
10638            
10639              
10640
10641              
10642            
10643              
10644
10645              
10646            
10647
10648            
10649
10650            
10651          
10652            
10653
10654            
10655              
10656
10657              
10658            
10659              
10660
10661              
10662            
10663              
10664
10665              
10666            
10667              
10668
10669              
10670            
10671              
10672
10673              
10674            
10675              
10676
10677              
10678            
10679              
10680
10681              
10682            
10683              
10684
10685              
10686            
10687
10688            
10689
10690            
10691          
10692            
10693
10694            
10695              
10696
10697              
10698            
10699              
10700
10701              
10702            
10703              
10704
10705              
10706            
10707              
10708
10709              
10710            
10711              
10712
10713              
10714            
10715              
10716
10717              
10718            
10719
10720            
10721
10722            
10723          
10724            
10725
10726            
10727              
10728
10729              
10730            
10731              
10732
10733              
10734                
10735                
10736
10737            
10738              
10739
10740              
10741                <!-- snippets/component__blog-item.liquid -->
10742
10743
10744<a
10745  href="/blogs/scg-blog/how-to-store-coffee-beans-so-they-actually-stay-fresh"
10746  class="
10747    group relative w-full no-underline hover:no-underline
10748    
10749  "
10750>
10751  <div
10752    class="relative mb-4 block w-full overflow-hidden"
10753  >
10754    <div
10755      class="
10756        aspect-w-16 aspect-h-9 aspect-video w-full object-cover
10757        color__bg-body after:color__bg-body color__text after:color__text
10758        
10759          border--radius overflow-hidden
10760          border--width color__border-divider-1
10761        
10762      "
10763    >
10764        
10765        
10766        <img src="//www.seattlecoffeegear.com/cdn/shop/articles/Store_Coffee_Beans_for_Freshest_Taste_8ff2c5a8-7e43-45d9-bf7a-0e0d57dba753.jpg?v=1787348580&amp;width=1200" alt="Roasted coffee beans spilling from an airtight glass storage c
10766anister - Seattle Coffee Gear" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/Store_Coffee_Beans_for_Freshest_Taste_8ff2c5a8-7e43-45d9-bf7a-0e0d57dba753.jpg?v=1787348580&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/Store_Coffee_Beans_for_Freshest_Taste_8ff2c5a8-7e43-45d9-bf7a-0e0d57dba753.jpg?v=1787348580&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/Store_Coffee_Beans_for_Freshest_Taste_8ff2c5a8-7e43-45d9-bf7a-0e0d57dba753.jpg?v=1787348580&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/Store_Coffee_Beans_for_Freshest_Taste_8ff2c5a8-7e43-45d9-bf7a-0e0d57dba753.jpg?v=1787348580&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/Store_Coffee_Beans_for_Freshest_Taste_8ff2c5a8-7e43-45d9-bf7a-0e0d57dba753.jpg?v=1787348580&amp;width=1200 1200w" width="1200" height="786" loading="lazy" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text " sizes="(min-width: 1024px) 33vw, (min-width: 768px) 50vw, 100vw">�</div>
10767  </div>
10768
10769  <div
10770    class="
10771      block whitespace-normal no-underline hover:no-underline
10772      
10773    "
10774  >
10775    
10776      <div class="mb-2 flex gap-2">
10777        <span class="color__bg-overlay-2 inline-flex h-5 w-5 items-center justify-center rounded-full">
10778          <span class="type--smaller">P</span>
10779        </span>
10780        <span class="type--small opacity-75">
10781          Pat C
10782        </span>
10783      </div>
10784    
10785    <h3
10786      class="
10787        type--base type__body--bare mb-0.5 font-semibold !leading-tight
10788        
10789      "
10790    >
10791      How to Store Coffee Beans (So They Actually Stay Fresh)
10792    </h3>
10793    
10794      
10795      <span class="type--small mb-1 flex w-full">
10796        Stale beans are almost never your machine's fault — it's the storage. Here's how t...
10797      </span>
10798    
10799    <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
10800      
10801        <li
10802          class="
10803            type--small inline-block last:after:hidden
10804             after:content-['\00B7'] 
10805          "
10806        >
10807          Aug 24, 2026
10808        </li>
10809      
10810      
10811    </ul>
10812  </div>
10813</a>
10814
10815              
10816            
10817
10818            
10819          
10820            
10821
10822            
10823              
10824
10825              
10826            
10827              
10828
10829              
10830            
10831              
10832
10833              
10834                
10835                
10836
10837            
10838              
10839
10840              
10841                <!-- snippets/component__blog-item.liquid -->
10842
10843
10844<a
10845  href="/blogs/scg-blog/crew-review-5-easy-ways-to-make-cold-brew-coffee-at-home"
10846  class="
10847    group relative w-full no-underline hover:no-underline
10848    
10849  "
10850>
10851  <div
10852    class="relative mb-4 block w-full overflow-hidden"
10853  >
10854    <div
10855      class="
10856        aspect-w-16 aspect-h-9 aspect-video w-full object-cover
10857        color__bg-body after:color__bg-body color__text after:color__text
10858        
10859          border--radius overflow-hidden
10860          border--width color__border-divider-1
10861        
10862      "
10863    >
10864        
10865        
10866        <img src="//www.seattlecoffeegear.com/cdn/shop/articles/5_Easy_Ways_to_Make_Cold_Brew_Coffee_at_Home_97b04882-2389-4d8c-8052-44f9a69f1bdb.jpg?v=1787017713&amp;width=1200" alt="Cold brew coffee being poured over ice in a tall glass - Seattle Coffee Gear" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/5_Easy_Ways_to_Make_Cold_Brew_Coffee_at_Home_97b04882-2389-4d8c-8052-44f9a69f1bdb.jpg?v=1787017713&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/5_Easy_Ways_to_Make_Cold_Brew_Coffee_at_Home_97b04882-2389-4d8c-8052-44f9a69f1bdb.jpg?v=1787017713&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/5_Easy_Ways_to_Make_Cold_Brew_Coffee_at_Home_97b04882-2389-4d8c-8052-44f9a69f1bdb.jpg?v=1787017713&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/5_Easy_Ways_to_Make_Cold_Brew_Coffee_at_Home_97b04882-2389-4d8c-8052-44f9a69f1bdb.jpg?v=1787017713&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/5_Easy_Ways_to_Make_Cold_Brew_Coffee_at_Home_97b04882-2389-4d8c-8052-44f9a69f1bdb.jpg?v=1787017713&amp;width=1200 1200w" width="1200" height="786" loading="lazy" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text " sizes="(min-width: 1024px) 33vw, (min-width: 768px) 50vw, 100vw">�</div>
10867  </div>
10868
10869  <div
10870    class="
10871      block whitespace-normal no-underline hover:no-underline
10872      
10873    "
10874  >
10875    
10876      <div class="mb-2 flex gap-2">
10877        <span class="color__bg-overlay-2 inline-flex h-5 w-5 items-center justify-center rounded-full">
10878          <span class="type--smaller">P</span>
10879        </span>
10880        <span class="type--small opacity-75">
10881          Pat C
10882        </span>
10883      </div>
10884    
10885    <h3
10886      class="
10887        type--base type__body--bare mb-0.5 font-semibold !leading-tight
10888        
10889      "
10890    >
10891      Crew Review: 5 Easy Ways to Make Cold Brew Coffee at Home
10892    </h3>
10893    
10894      
10895      <span class="type--small mb-1 flex w-full">
10896        Great cold brew doesn't need fancy gear. We rank five easy at-home methods — flavo...
10897      </span>
10898    
10899    <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
10900      
10901        <li
10902          class="
10903            type--small inline-block last:after:hidden
10904             after:content-['\00B7'] 
10905          "
10906        >
10907          Aug 19, 2026
10908        </li>
10909      
10910      
10911    </ul>
10912  </div>
10913</a>
10914
10915              
10916            
10917
10918            
10919          
10920            
10921
10922            
10923              
10924
10925              
10926            
10927              
10928
10929              
10930                
10931                
10932
10933            
10934              
10935
10936              
10937                <!-- snippets/component__blog-item.liquid -->
10938
10939
10940<a
10941  href="/blogs/scg-blog/espresso-vs-ground-coffee-which-is-best"
10942  class="
10943    group relative w-full no-underline hover:no-underline
10944    
10945  "
10946>
10947  <div
10948    class="relative mb-4 block w-full overflow-hidden"
10949  >
10950    <div
10951      class="
10952        aspect-w-16 aspect-h-9 aspect-video w-full object-cover
10953        color__bg-body after:color__bg-body color__text after:color__text
10954        
10955          border--radius overflow-hidden
10956          border--width color__border-divider-1
10957        
10958      "
10959    >
10960        
10961        
10962        <img src="//www.seattlecoffeegear.com/cdn/shop/articles/Espresso_vs_Ground_Coffee_-_Which_is_best_f9e7f11b-f7a2-419d-9d06-ec8595386660.jpg?v=1786659506&amp;width=1200" alt="Ground espresso coffee and whole beans compared side by side - Seattle Coffee Gear" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/Espresso_vs_Ground_Coffee_-_Which_is_best_f9e7f11b-f7a2-419d-9d06-ec8595386660.jpg?v=1786659506&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/Espresso_vs_Ground_Coffee_-_Which_is_best_f9e7f11b-f7a2-419d-9d06-ec8595386660.jpg?v=1786659506&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/Espresso_vs_Ground_Coffee_-_Which_is_best_f9e7f11b-f7a2-419d-9d06-ec8595386660.jpg?v=1786659506&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/Espresso_vs_Ground_Coffee_-_Which_is_best_f9e7f11b-f7a2-419d-9d06-ec8595386660.jpg?v=1786659506&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/Espresso_vs_Ground_Coffee_-_Which_is_best_f9e7f11b-f7a2-419d-9d06-ec8595386660.jpg?v=1786659506&amp;width=1200 1200w" width="1200" height="786" loading="lazy" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text " sizes="(min-width: 1024px) 33vw, (min-width: 768px) 50vw, 100vw">�</div>
10963  </div>
10964
10965  <div
10966    class="
10967      block whitespace-normal no-underline hover:no-underline
10968      
10969    "
10970  >
10971    
10972      <div class="mb-2 flex gap-2">
10973        <span class="color__bg-overlay-2 inline-flex h-5 w-5 items-center justify-center rounded-full">
10974          <span class="type--smaller">P</span>
10975        </span>
10976        <span class="type--small opacity-75">
10977          Pat C
10978        </span>
10979      </div>
10980    
10981    <h3
10982      class="
10983        type--base type__body--bare mb-0.5 font-semibold !leading-tight
10984        
10985      "
10986    >
10987      Espresso vs Ground Coffee: What's Actually Different (and Why It Matters)
10988    </h3>
10989    
10990      
10991      <span class="type--small mb-1 flex w-full">
10992        There's no such thing as an espresso bean. Here's what actually separates espresso...
10993      </span>
10994    
10995    <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
10996      
10997        <li
10998          class="
10999            type--small inline-block last:after:hidden
11000             after:content-['\00B7'] 
11001          "
11002        >
11003          Aug 17, 2026
11004        </li>
11005      
11006      
11007    </ul>
11008  </div>
11009</a>
11010
11011              
11012            
11013
11014            
11015          
11016            
11017
11018            
11019              
11020
11021              
11022            
11023              
11024
11025              
11026            
11027              
11028
11029              
11030            
11031              
11032
11033              
11034            
11035              
11036
11037              
11038            
11039              
11040
11041              
11042            
11043              
11044
11045              
11046            
11047              
11048
11049              
11050            
11051
11052            
11053
11054            
11055          
11056            
11057
11058            
11059              
11060
11061              
11062            
11063              
11064
11065              
11066            
11067              
11068
11069              
11070            
11071              
11072
11073              
11074            
11075
11076            
11077
11078            
11079          
11080            
11081
11082            
11083              
11084
11085              
11086            
11087              
11088
11089              
11090            
11091              
11092
11093              
11094            
11095              
11096
11097              
11098            
11099              
11100
11101              
11102            
11103              
11104
11105              
11106            
11107              
11108
11109              
11110            
11111
11112            
11113
11114            
11115          
11116            
11117
11118            
11119              
11120
11121              
11122            
11123              
11124
11125              
11126            
11127              
11128
11129              
11130            
11131              
11132
11133              
11134            
11135              
11136
11137              
11138            
11139              
11140
11141              
11142            
11143              
11144
11145              
11146            
11147
11148            
11149
11150            
11151          
11152            
11153
11154            
11155              
11156
11157              
11158            
11159              
11160
11161              
11162            
11163              
11164
11165              
11166            
11167              
11168
11169              
11170            
11171              
11172
11173              
11174            
11175              
11176
11177              
11178            
11179
11180            
11181
11182            
11183          
11184            
11185
11186            
11187              
11188
11189              
11190            
11191              
11192
11193              
11194            
11195              
11196
11197              
11198            
11199              
11200
11201              
11202            
11203              
11204
11205              
11206            
11207              
11208
11209              
11210            
11211              
11212
11213              
11214            
11215
11216            
11217
11218            
11219          
11220            
11221
11222            
11223              
11224
11225              
11226            
11227              
11228
11229              
11230            
11231              
11232
11233              
11234            
11235              
11236
11237              
11238            
11239              
11240
11241              
11242            
11243              
11244
11245              
11246            
11247              
11248
11249              
11250            
11251              
11252
11253              
11254            
11255
11256            
11257
11258            
11259          
11260            
11261
11262            
11263              
11264
11265              
11266            
11267              
11268
11269              
11270            
11271              
11272
11273              
11274            
11275              
11276
11277              
11278            
11279              
11280
11281              
11282            
11283              
11284
11285              
11286            
11287
11288            
11289
11290            
11291          
11292            
11293
11294            
11295              
11296
11297              
11298            
11299              
11300
11301              
11302            
11303              
11304
11305              
11306            
11307              
11308
11309              
11310            
11311              
11312
11313              
11314            
11315              
11316
11317              
11318            
11319              
11320
11321              
11322            
11323
11324            
11325
11326            
11327          
11328            
11329
11330            
11331              
11332
11333              
11334            
11335              
11336
11337              
11338            
11339              
11340
11341              
11342            
11343              
11344
11345              
11346            
11347              
11348
11349              
11350            
11351              
11352
11353              
11354            
11355              
11356
11357              
11358            
11359
11360            
11361
11362            
11363          
11364            
11365
11366            
11367              
11368
11369              
11370            
11371              
11372
11373              
11374            
11375              
11376
11377              
11378            
11379              
11380
11381              
11382            
11383              
11384
11385              
11386            
11387              
11388
11389              
11390            
11391
11392            
11393
11394            
11395          
11396            
11397
11398            
11399              
11400
11401              
11402            
11403              
11404
11405              
11406            
11407              
11408
11409              
11410            
11411              
11412
11413              
11414            
11415              
11416
11417              
11418            
11419              
11420
11421              
11422            
11423              
11424
11425              
11426            
11427
11428            
11429
11430            
11431          
11432            
11433
11434            
11435              
11436
11437              
11438            
11439              
11440
11441              
11442            
11443              
11444
11445              
11446            
11447              
11448
11449              
11450            
11451              
11452
11453              
11454            
11455              
11456
11457              
11458            
11459
11460            
11461
11462            
11463          
11464            
11465
11466            
11467              
11468
11469              
11470            
11471              
11472
11473              
11474            
11475              
11476
11477              
11478            
11479              
11480
11481              
11482            
11483              
11484
11485              
11486            
11487              
11488
11489              
11490            
11491              
11492
11493              
11494            
11495              
11496
11497              
11498            
11499
11500            
11501
11502            
11503          
11504            
11505
11506            
11507              
11508
11509              
11510                
11511                
11512
11513            
11514              
11515
11516              
11517                <!-- snippets/component__blog-item.liquid -->
11518
11519
11520<a
11521  href="/blogs/scg-blog/coming-to-seattle-for-the-world-cup-heres-where-to-get-your-coffee-fix"
11522  class="
11523    group relative w-full no-underline hover:no-underline
11524    
11525  "
11526>
11527  <div
11528    class="relative mb-4 block w-full overflow-hidden"
11529  >
11530    <div
11531      class="
11532        aspect-w-16 aspect-h-9 aspect-video w-full object-cover
11533        color__bg-body after:color__bg-body color__text after:color__text
11534        
11535          border--radius overflow-hidden
11536          border--width color__border-divider-1
11537        
11538      "
11539    >
11540        
11541        
11542        <img src="//www.seattlecoffeegear.com/cdn/shop/articles/World_Cup_-_July_2027_84504a8e-1e7c-4494-b8e6-80e910622f97.jpg?v=1783025526&amp;width=1200" alt="Pike Place Market neon sign glowing at sunset in downtown Seattle - Seattle Coffee Gear" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/World_Cup_-_July_2027_84504a8e-1e7c-4494-b8e6-80e910622f97.jpg?v=1783025526&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/World_Cup_-_July_2027_84504a8e-1e7c-4494-b8e6-80e910622f97.jpg?v=1783025526&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/World_Cup_-_July_2027_84504a8e-1e7c-4494-b8e6-80e910622f97.jpg?v=1783025526&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/World_Cup_-_July_2027_84504a8e-1e7c-4494-b8e6-80e910622f97.jpg?v=1783025526&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/World_Cup_-_July_2027_84504a8e-1e7c-4494-b8e6-80e910622f97.jpg?v=1783025526&amp;width=1200 1200w" width="1200" height="786" loading="lazy" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text " sizes="(min-width: 1024px) 33vw, (min-width: 768px) 50vw, 100vw">�</div>
11543  </div>
11544
11545  <div
11546    class="
11547      block whitespace-normal no-underline hover:no-underline
11548      
11549    "
11550  >
11551    
11552      <div class="mb-2 flex gap-2">
11553        <span class="color__bg-overlay-2 inline-flex h-5 w-5 items-center justify-center rounded-full">
11554          <span class="type--smaller">K</span>
11555        </span>
11556        <span class="type--small opacity-75">
11557          Kelli R
11558        </span>
11559      </div>
11560    
11561    <h3
11562      class="
11563        type--base type__body--bare mb-0.5 font-semibold !leading-tight
11564        
11565      "
11566    >
11567      Coming to Seattle for the World Cup? Here's Where to Get Your Coffee Fix
11568    </h3>
11569    
11570      
11571      <span class="type--small mb-1 flex w-full">
11572        Heading to Seattle for the 2026 FIFA World Cup? Fuel up between matches at Gloom C...
11573      </span>
11574    
11575    <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
11576      
11577        <li
11578          class="
11579            type--small inline-block last:after:hidden
11580             after:content-['\00B7'] 
11581          "
11582        >
11583          Jul 2, 2026
11584        </li>
11585      
11586      
11587    </ul>
11588  </div>
11589</a>
11590
11591              
11592            
11593
11594            
11595              
11596        
11597      </div>
11598    
11599  </div>
11600</section>
11601
11602
11603</div><div id="shopify-section-template--21732448698675__0ab49888-04e4-49e5-80ab-f34c8848f59c" class="shopify-section"><!-- sections/article-tagged-grid.liquid -->
11604
11605
11606<section
11607  class="
11608    
11609    color__bg-body color__text
11610    color__border-divider-1
11611    border--b-width
11612  "
11613>
11614  <div
11615    class="window--wide"
11616    style="
11617      padding-top:40px;
11618      padding-bottom:40px;
11619    "
11620  ><div
11621        class="
11622          flex flex-row flex-wrap items-end gap-2 pb-4
11623          justify-between
11624          
11625            
11626              opacity-0 js:animation animation-300
11627            
11628          
11629        "
11630        
11631          data-delay="100"
11632          data-replace="
11633            {
11634              'opacity-0' : 'opacity-100'
11635            }
11636          "
11637        
11638      >
11639        <div class="w-full max-w-prose md:w-auto"><h3 class="type__heading--section-heading mb-1">Education</h3><div class="m-0--clear mb-1 text-base font-normal leading-snug text-zinc-600">
11640              Unlocking the World of Coffee: Expert Education, and Essential Tips & Tricks to Master Your Brew
11641            </div><a
11642            href="/blogs/scg-blog/tagged/education"
11643            class="
11644              flex flex-row items-center
11645              text-base
11646              font-normal
11647              leading-snug
11648              text-cyan-700
11649              underline
11650            "
11651          >
11652            <div>Browse All Education</div><!-- snippets/component__icon.liquid -->
11653
11654
11655<span class="inline-flex align-middle ml-1" aria-hidden="true">
11656  
11657      <svg
11658        width="18"
11659        height="18"
11660        viewBox="0 0 15 16"
11661        fill="none"
11662        xmlns="http://www.w3.org/2000/svg"
11663      >
11664        <g id="Arrow">
11665        <circle id="Oval Copy" cx="7.5" cy="8" r="7.08333" fill="white" stroke="#217A97" stroke-width="0.833333"/>
11666        <g id="np_arrow-right_888647_000000 copy">
11667        <path id="Path" d="M3 7.47656H10.7933V8.52113H3V7.47656Z" fill="#217A97"/>
11668        <path id="Path_2" d="M8.63197 11.5L7.92773 10.7684L10.5929 8L7.92773 5.23163L8.63197 4.5L12.0004 8.00001L8.63197 11.5Z" fill="#217A97"/>
11669        </g>
11670        </g>
11671      </svg>
11672    
11673</span>
11674
11675          </a>
11676        </div>
11677      </div>
11678      <div
11679        class="
11680          grid
11681          md:grid-cols-4
11682          grid grid-cols-2
11683        "
11684        style="
11685          column-gap: 8px;
11686          row-gap: 12.0px;
11687        "
11688      >
11689        
11690
11691        
11692          
11693
11694          
11695            
11696
11697            
11698              
11699
11700              
11701            
11702              
11703
11704              
11705            
11706              
11707
11708              
11709            
11710              
11711
11712              
11713                
11714                
11715
11716            
11717              
11718
11719              
11720                <!-- snippets/component__blog-item.liquid -->
11721
11722
11723<a
11724  href="/blogs/scg-blog/top-3-advanced-espresso-grinders-of-2026"
11725  class="
11726    group relative w-full no-underline hover:no-underline
11727    
11728  "
11729>
11730  <div
11731    class="relative mb-4 block w-full overflow-hidden"
11732  >
11733    <div
11734      class="
11735        aspect-w-16 aspect-h-9 aspect-video w-full object-cover
11736        color__bg-body after:color__bg-body color__text after:color__text
11737        
11738          border--radius overflow-hidden
11739          border--width color__border-divider-1
11740        
11741      "
11742    >
11743        
11744        
11745        <img src="//www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Advanced_Espresso_Grinders_94ebd5be-83b1-4736-90b1-d8a33aeeeb40.jpg?v=1790812542&amp;width=1200" alt="Rocket Spluga, Eureka Atom W 65, and Oro Mignon Single Dose Pro advanced espresso grinders - Seattle Coffee Gear" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Advanced_Espresso_Grinders_94ebd5be-83b1-4736-90b1-d8a33aeeeb40.jpg?v=1790812542&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Advanced_Espresso_Grinders_94ebd5be-83b1-4736-90b1-d8a33aeeeb40.jpg?v=1790812542&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Advanced_Espresso_Grinders_94ebd5be-83b1-4736-90b1-d8a33aeeeb40.jpg?v=1790812542&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Advanced_Espresso_Grinders_94ebd5be-83b1-4736-90b1-d8a33aeeeb40.jpg?v=1790812542&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Advanced_Espresso_Grinders_94ebd5be-83b1-4736-90b1-d8a33aeeeb40.jpg?v=1790812542&amp;width=1200 1200w" width="1200" height="786" loading="lazy" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text " sizes="(min-width: 1024px) 33vw, (min-width: 768px) 50vw, 100vw">�</div>
11746  </div>
11747
11748  <div
11749    class="
11750      block whitespace-normal no-underline hover:no-underline
11751      
11752    "
11753  >
11754    
11755      <div class="mb-2 flex gap-2">
11756        <span class="color__bg-overlay-2 inline-flex h-5 w-5 items-center justify-center rounded-full">
11757          <span class="type--smaller">P</span>
11758        </span>
11759        <span class="type--small opacity-75">
11760          Pat C
11761        </span>
11762      </div>
11763    
11764    <h3
11765      class="
11766        type--base type__body--bare mb-0.5 font-semibold !leading-tight
11767        
11768      "
11769    >
11770      Top 3 Advanced Espresso Grinders of 2026: A Buying Guide for Experienced Home Baristas
11771    </h3>
11772    
11773      
11774      <span class="type--small mb-1 flex w-full">
11775        Ready to upgrade past your first grinder? Here are our top picks for the experienc...
11776      </span>
11777    
11778    <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
11779      
11780        <li
11781          class="
11782            type--small inline-block last:after:hidden
11783             after:content-['\00B7'] 
11784          "
11785        >
11786          Oct 1, 2026
11787        </li>
11788      
11789      
11790    </ul>
11791  </div>
11792</a>
11793
11794              
11795            
11796
11797            
11798          
11799            
11800
11801            
11802              
11803
11804              
11805            
11806              
11807
11808              
11809            
11810              
11811
11812              
11813            
11814              
11815
11816              
11817            
11818              
11819
11820              
11821            
11822              
11823
11824              
11825            
11826              
11827
11828              
11829            
11830
11831            
11832
11833            
11834          
11835            
11836
11837            
11838              
11839
11840              
11841            
11842              
11843
11844              
11845            
11846              
11847
11848              
11849            
11850              
11851
11852              
11853            
11854              
11855
11856              
11857            
11858              
11859
11860              
11861            
11862
11863            
11864
11865            
11866          
11867            
11868
11869            
11870              
11871
11872              
11873            
11874              
11875
11876              
11877            
11878              
11879
11880              
11881                
11882                
11883
11884            
11885              
11886
11887              
11888                <!-- snippets/component__blog-item.liquid -->
11889
11890
11891<a
11892  href="/blogs/scg-blog/top-3-espresso-grinders-of-2026"
11893  class="
11894    group relative w-full no-underline hover:no-underline
11895    
11896  "
11897>
11898  <div
11899    class="relative mb-4 block w-full overflow-hidden"
11900  >
11901    <div
11902      class="
11903        aspect-w-16 aspect-h-9 aspect-video w-full object-cover
11904        color__bg-body after:color__bg-body color__text after:color__text
11905        
11906          border--radius overflow-hidden
11907          border--width color__border-divider-1
11908        
11909      "
11910    >
11911        
11912        
11913        <img src="//www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Espresso_Grinders_1736b081-b68c-4e87-9ddc-ed2d6d5a8857.jpg?v=1790374338&amp;width=1200" alt="Eureka Mignon Zero, Fellow Opus Gen 2, and Baratza Encore ESP Pro espresso grinders - Seattle Coffee Gear" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Espresso_Grinders_1736b081-b68c-4e87-9ddc-ed2d6d5a8857.jpg?v=1790374338&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Espresso_Grinders_1736b081-b68c-4e87-9ddc-ed2d6d5a8857.jpg?v=1790374338&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Espresso_Grinders_1736b081-b68c-4e87-9ddc-ed2d6d5a8857.jpg?v=1790374338&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Espresso_Grinders_1736b081-b68c-4e87-9ddc-ed2d6d5a8857.jpg?v=1790374338&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Espresso_Grinders_1736b081-b68c-4e87-9ddc-ed2d6d5a8857.jpg?v=1790374338&amp;width=1200 1200w" width="1200" height="786" loading="lazy" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text " sizes="(min-width: 1024px) 33vw, (min-width: 768px) 50vw, 100vw">�</div>
11914  </div>
11915
11916  <div
11917    class="
11918      block whitespace-normal no-underline hover:no-underline
11919      
11920    "
11921  >
11922    
11923      <div class="mb-2 flex gap-2">
11924        <span class="color__bg-overlay-2 inline-flex h-5 w-5 items-center justify-center rounded-full">
11925          <span class="type--smaller">P</span>
11926        </span>
11927        <span class="type--small opacity-75">
11928          Pat C
11929        </span>
11930      </div>
11931    
11932    <h3
11933      class="
11934        type--base type__body--bare mb-0.5 font-semibold !leading-tight
11935        
11936      "
11937    >
11938      Top 3 Espresso Grinders of 2026: A Buying Guide for New Home Baristas
11939    </h3>
11940    
11941      
11942      <span class="type--small mb-1 flex w-full">
11943        So you're ready to buy your first serious espresso grinder? You've come to the rig...
11944      </span>
11945    
11946    <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
11947      
11948        <li
11949          class="
11950            type--small inline-block last:after:hidden
11951             after:content-['\00B7'] 
11952          "
11953        >
11954          Sep 28, 2026
11955        </li>
11956      
11957      
11958    </ul>
11959  </div>
11960</a>
11961
11962              
11963            
11964
11965            
11966          
11967            
11968
11969            
11970              
11971
11972              
11973            
11974              
11975
11976              
11977            
11978              
11979
11980              
11981                
11982                
11983
11984            
11985              
11986
11987              
11988                <!-- snippets/component__blog-item.liquid -->
11989
11990
11991<a
11992  href="/blogs/scg-blog/rancilio-silvia-pro-x-vs-rocket-appartamento-tca"
11993  class="
11994    group relative w-full no-underline hover:no-underline
11995    
11996  "
11997>
11998  <div
11999    class="relative mb-4 block w-full overflow-hidden"
12000  >
12001    <div
12002      class="
12003        aspect-w-16 aspect-h-9 aspect-video w-full object-cover
12004        color__bg-body after:color__bg-body color__text after:color__text
12005        
12006          border--radius overflow-hidden
12007          border--width color__border-divider-1
12008        
12009      "
12010    >
12011        
12012        
12013        <img src="//www.seattlecoffeegear.com/cdn/shop/articles/Search_Blog_-_Rocket_TCA_vs_Rancilio_Silvia_Pro_X_1d1e9ed5-b98f-4047-88ba-75d5ea4d7680.jpg?v=1790122319&amp;width=1200" alt="Rocket Appartamento TCA and Rancilio Silvia Pro X espresso machines pulling shots side by side - Seattle Coffee Gear" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/Search_Blog_-_Rocket_TCA_vs_Rancilio_Silvia_Pro_X_1d1e9ed5-b98f-4047-88ba-75d5ea4d7680.jpg?v=1790122319&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/Search_Blog_-_Rocket_TCA_vs_Rancilio_Silvia_Pro_X_1d1e9ed5-b98f-4047-88ba-75d5ea4d7680.jpg?v=1790122319&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/Search_Blog_-_Rocket_TCA_vs_Rancilio_Silvia_Pro_X_1d1e9ed5-b98f-4047-88ba-75d5ea4d7680.jpg?v=1790122319&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/Search_Blog_-_Rocket_TCA_vs_Rancilio_Silvia_Pro_X_1d1e9ed5-b98f-4047-88ba-75d5ea4d7680.jpg?v=1790122319&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/Search_Blog_-_Rocket_TCA_vs_Rancilio_Silvia_Pro_X_1d1e9ed5-b98f-4047-88ba-75d5ea4d7680.jpg?v=1790122319&amp;width=1200 1200w" width="1200" height="786" loading="lazy" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text " sizes="(min-width: 1024px) 33vw, (min-width: 768px) 50vw, 100vw">�</div>
12014  </div>
12015
12016  <div
12017    class="
12018      block whitespace-normal no-underline hover:no-underline
12019      
12020    "
12021  >
12022    
12023      <div class="mb-2 flex gap-2">
12024        <span class="color__bg-overlay-2 inline-flex h-5 w-5 items-center justify-center rounded-full">
12025          <span class="type--smaller">P</span>
12026        </span>
12027        <span class="type--small opacity-75">
12028          Pat C
12029        </span>
12030      </div>
12031    
12032    <h3
12033      class="
12034        type--base type__body--bare mb-0.5 font-semibold !leading-tight
12035        
12036      "
12037    >
12038      Rancilio Silvia Pro X vs. Rocket Appartamento TCA: Which One's Right for You?
12039    </h3>
12040    
12041      
12042      <span class="type--small mb-1 flex w-full">
12043        Two well-regarded Italian machines at a similar price, and neither one wins on pap...
12044      </span>
12045    
12046    <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
12047      
12048        <li
12049          class="
12050            type--small inline-block last:after:hidden
12051             after:content-['\00B7'] 
12052          "
12053        >
12054          Sep 24, 2026
12055        </li>
12056      
12057      
12058    </ul>
12059  </div>
12060</a>
12061
12062              
12063            
12064
12065            
12066          
12067            
12068
12069            
12070              
12071
12072              
12073            
12074              
12075
12076              
12077            
12078              
12079
12080              
12081            
12082              
12083
12084              
12085            
12086              
12087
12088              
12089                
12090                
12091
12092            
12093              
12094
12095              
12096                <!-- snippets/component__blog-item.liquid -->
12097
12098
12099<a
12100  href="/blogs/scg-blog/the-top-three-semi-automatic-espresso-machines-of-2026"
12101  class="
12102    group relative w-full no-underline hover:no-underline
12103    
12104  "
12105>
12106  <div
12107    class="relative mb-4 block w-full overflow-hidden"
12108  >
12109    <div
12110      class="
12111        aspect-w-16 aspect-h-9 aspect-video w-full object-cover
12112        color__bg-body after:color__bg-body color__text after:color__text
12113        
12114          border--radius overflow-hidden
12115          border--width color__border-divider-1
12116        
12117      "
12118    >
12119        
12120        
12121        <img src="//www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Semi-automatic_Espresso_Machine_da80c9ba-6177-4eac-a29b-15583d4ca2f2.jpg?v=1789764787&amp;width=1200" alt="Top three semi-automatic espresso machines from Breville, Fellow, and Diletta on display - Seattle Coffee Gear" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Semi-automatic_Espresso_Machine_da80c9ba-6177-4eac-a29b-15583d4ca2f2.jpg?v=1789764787&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Semi-automatic_Espresso_Machine_da80c9ba-6177-4eac-a29b-15583d4ca2f2.jpg?v=1789764787&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Semi-automatic_Espresso_Machine_da80c9ba-6177-4eac-a29b-15583d4ca2f2.jpg?v=1789764787&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Semi-automatic_Espresso_Machine_da80c9ba-6177-4eac-a29b-15583d4ca2f2.jpg?v=1789764787&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Semi-automatic_Espresso_Machine_da80c9ba-6177-4eac-a29b-15583d4ca2f2.jpg?v=1789764787&amp;width=1200 1200w" width="1200" height="786" loading="lazy" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text " sizes="(min-width: 1024px) 33vw, (min-width: 768px) 50vw, 100vw">�</div>
12122  </div>
12123
12124  <div
12125    class="
12126      block whitespace-normal no-underline hover:no-underline
12127      
12128    "
12129  >
12130    
12131      <div class="mb-2 flex gap-2">
12132        <span class="color__bg-overlay-2 inline-flex h-5 w-5 items-center justify-center rounded-full">
12133          <span class="type--smaller">P</span>
12134        </span>
12135        <span class="type--small opacity-75">
12136          Pat C
12137        </span>
12138      </div>
12139    
12140    <h3
12141      class="
12142        type--base type__body--bare mb-0.5 font-semibold !leading-tight
12143        
12144      "
12145    >
12146      The Top Three Semi-Automatic Espresso Machines of 2026 (Plus an Honorable Mention)
12147    </h3>
12148    
12149      
12150      <span class="type--small mb-1 flex w-full">
12151        Ready to pull your own shots? We put this year's semi-automatic espresso machines ...
12152      </span>
12153    
12154    <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
12155      
12156        <li
12157          class="
12158            type--small inline-block last:after:hidden
12159             after:content-['\00B7'] 
12160          "
12161        >
12162          Sep 21, 2026
12163        </li>
12164      
12165      
12166    </ul>
12167  </div>
12168</a>
12169
12170              
12171            
12172
12173            
12174              
12175        
12176      </div>
12177    
12178  </div>
12179</section>
12180
12181
12182</div><div id="shopify-section-template--21732448698675__040ff9d8-2b45-44a6-99fe-0b2b11fa79af" class="shopify-section"><!-- sections/article-tagged-grid.liquid -->
12183
12184
12185<section
12186  class="
12187    
12188    color__bg-body color__text
12189    color__border-divider-1
12190    border--b-width
12191  "
12192>
12193  <div
12194    class="window--wide"
12195    style="
12196      padding-top:40px;
12197      padding-bottom:40px;
12198    "
12199  ><div
12200        class="
12201          flex flex-row flex-wrap items-end gap-2 pb-4
12202          justify-between
12203          
12204            
12205              opacity-0 js:animation animation-300
12206            
12207          
12208        "
12209        
12210          data-delay="100"
12211          data-replace="
12212            {
12213              'opacity-0' : 'opacity-100'
12214            }
12215          "
12216        
12217      >
12218        <div class="w-full max-w-prose md:w-auto"><h3 class="type__heading--section-heading mb-1">News</h3><div class="m-0--clear mb-1 text-base font-normal leading-snug text-zinc-600">
12219              Caffeinate Your Knowledge: Stay Updated with the Latest Coffee News, Trends, and Insights
12220            </div><a
12221            href="/blogs/scg-blog/tagged/news"
12222            class="
12223              flex flex-row items-center
12224              text-base
12225              font-normal
12226              leading-snug
12227              text-cyan-700
12228              underline
12229            "
12230          >
12231            <div>Browse All News</div><!-- snippets/component__icon.liquid -->
12232
12233
12234<span class="inline-flex align-middle ml-1" aria-hidden="true">
12235  
12236      <svg
12237        width="18"
12238        height="18"
12239        viewBox="0 0 15 16"
12240        fill="none"
12241        xmlns="http://www.w3.org/2000/svg"
12242      >
12243        <g id="Arrow">
12244        <circle id="Oval Copy" cx="7.5" cy="8" r="7.08333" fill="white" stroke="#217A97" stroke-width="0.833333"/>
12245        <g id="np_arrow-right_888647_000000 copy">
12246        <path id="Path" d="M3 7.47656H10.7933V8.52113H3V7.47656Z" fill="#217A97"/>
12247        <path id="Path_2" d="M8.63197 11.5L7.92773 10.7684L10.5929 8L7.92773 5.23163L8.63197 4.5L12.0004 8.00001L8.63197 11.5Z" fill="#217A97"/>
12248        </g>
12249        </g>
12250      </svg>
12251    
12252</span>
12253
12254          </a>
12255        </div>
12256      </div>
12257      <div
12258        class="
12259          grid
12260          md:grid-cols-4
12261          grid grid-cols-2
12262        "
12263        style="
12264          column-gap: 8px;
12265          row-gap: 12.0px;
12266        "
12267      >
12268        
12269
12270        
12271          
12272
12273          
12274            
12275
12276            
12277              
12278
12279              
12280            
12281              
12282
12283              
12284            
12285              
12286
12287              
12288            
12289              
12290
12291              
12292            
12293              
12294
12295              
12296            
12297              
12298
12299              
12300            
12301              
12302
12303              
12304            
12305              
12306
12307              
12308            
12309
12310            
12311
12312            
12313          
12314            
12315
12316            
12317              
12318
12319              
12320            
12321              
12322
12323              
12324            
12325              
12326
12327              
12328                
12329                
12330
12331            
12332              
12333
12334              
12335                <!-- snippets/component__blog-item.liquid -->
12336
12337
12338<a
12339  href="/blogs/scg-blog/scgs-best-videos-september-2026-coffee-gear-roundup"
12340  class="
12341    group relative w-full no-underline hover:no-underline
12342    
12343  "
12344>
12345  <div
12346    class="relative mb-4 block w-full overflow-hidden"
12347  >
12348    <div
12349      class="
12350        aspect-w-16 aspect-h-9 aspect-video w-full object-cover
12351        color__bg-body after:color__bg-body color__text after:color__text
12352        
12353          border--radius overflow-hidden
12354          border--width color__border-divider-1
12355        
12356      "
12357    >
12358        
12359        
12360        <img src="//www.seattlecoffeegear.com/cdn/shop/articles/Monthly_Video_Recap_-_September_2026_f5f33c0f-a5a0-4563-a002-d15e06dafee1.jpg?v=1790721197&amp;width=1200" alt="SCG&#39;s Best Videos: September 2026 Coffee &amp; Gear Roundup - Seattle Coffee Gear" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/Monthly_Video_Recap_-_September_2026_f5f33c0f-a5a0-4563-a002-d15e06dafee1.jpg?v=1790721197&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/Monthly_Video_Recap_-_September_2026_f5f33c0f-a5a0-4563-a002-d15e06dafee1.jpg?v=1790721197&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/Monthly_Video_Recap_-_September_2026_f5f33c0f-a5a0-4563-a002-d15e06dafee1.jpg?v=1790721197&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/Monthly_Video_Recap_-_September_2026_f5f33c0f-a5a0-4563-a002-d15e06dafee1.jpg?v=1790721197&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/Monthly_Video_Recap_-_September_2026_f5f33c0f-a5a0-4563-a002-d15e06dafee1.jpg?v=1790721197&amp;width=1200 1200w" width="1200" height="786" loading="lazy" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text " sizes="(min-width: 1024px) 33vw, (min-width: 768px) 50vw, 100vw">�</div>
12361  </div>
12362
12363  <div
12364    class="
12365      block whitespace-normal no-underline hover:no-underline
12366      
12367    "
12368  >
12369    
12370      <div class="mb-2 flex gap-2">
12371        <span class="color__bg-overlay-2 inline-flex h-5 w-5 items-center justify-center rounded-full">
12372          <span class="type--smaller">P</span>
12373        </span>
12374        <span class="type--small opacity-75">
12375          Pat C
12376        </span>
12377      </div>
12378    
12379    <h3
12380      class="
12381        type--base type__body--bare mb-0.5 font-semibold !leading-tight
12382        
12383      "
12384    >
12385      SCG's Best Videos: September 2026 Coffee & Gear Roundup
12386    </h3>
12387    
12388      
12389      <span class="type--small mb-1 flex w-full">
12390        Everything we filmed in September 2026, including our Top 3 espresso machines, gri...
12391      </span>
12392    
12393    <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
12394      
12395        <li
12396          class="
12397            type--small inline-block last:after:hidden
12398             after:content-['\00B7'] 
12399          "
12400        >
12401          Sep 30, 2026
12402        </li>
12403      
12404      
12405    </ul>
12406  </div>
12407</a>
12408
12409              
12410            
12411
12412            
12413          
12414            
12415
12416            
12417              
12418
12419              
12420            
12421              
12422
12423              
12424            
12425              
12426
12427              
12428            
12429              
12430
12431              
12432            
12433              
12434
12435              
12436            
12437              
12438
12439              
12440            
12441
12442            
12443
12444            
12445          
12446            
12447
12448            
12449              
12450
12451              
12452            
12453              
12454
12455              
12456            
12457              
12458
12459              
12460            
12461              
12462
12463              
12464            
12465              
12466
12467              
12468            
12469              
12470
12471              
12472            
12473
12474            
12475
12476            
12477          
12478            
12479
12480            
12481              
12482
12483              
12484            
12485              
12486
12487              
12488            
12489              
12490
12491              
12492            
12493              
12494
12495              
12496            
12497              
12498
12499              
12500            
12501              
12502
12503              
12504            
12505              
12506
12507              
12508            
12509              
12510
12511              
12512            
12513
12514            
12515
12516            
12517          
12518            
12519
12520            
12521              
12522
12523              
12524            
12525              
12526
12527              
12528            
12529              
12530
12531              
12532            
12533              
12534
12535              
12536            
12537              
12538
12539              
12540            
12541              
12542
12543              
12544            
12545              
12546
12547              
12548            
12549
12550            
12551
12552            
12553          
12554            
12555
12556            
12557              
12558
12559              
12560            
12561              
12562
12563              
12564            
12565              
12566
12567              
12568            
12569              
12570
12571              
12572            
12573              
12574
12575              
12576            
12577              
12578
12579              
12580            
12581              
12582
12583              
12584            
12585              
12586
12587              
12588            
12589
12590            
12591
12592            
12593          
12594            
12595
12596            
12597              
12598
12599              
12600            
12601              
12602
12603              
12604            
12605              
12606
12607              
12608            
12609              
12610
12611              
12612            
12613              
12614
12615              
12616            
12617              
12618
12619              
12620            
12621              
12622
12623              
12624            
12625              
12626
12627              
12628            
12629
12630            
12631
12632            
12633          
12634            
12635
12636            
12637              
12638
12639              
12640            
12641              
12642
12643              
12644            
12645              
12646
12647              
12648            
12649              
12650
12651              
12652            
12653              
12654
12655              
12656            
12657              
12658
12659              
12660            
12661              
12662
12663              
12664            
12665              
12666
12667              
12668            
12669              
12670
12671              
12672            
12673
12674            
12675
12676            
12677          
12678            
12679
12680            
12681              
12682
12683              
12684            
12685              
12686
12687              
12688            
12689              
12690
12691              
12692            
12693              
12694
12695              
12696            
12697              
12698
12699              
12700            
12701              
12702
12703              
12704            
12705              
12706
12707              
12708            
12709              
12710
12711              
12712            
12713
12714            
12715
12716            
12717          
12718            
12719
12720            
12721              
12722
12723              
12724            
12725              
12726
12727              
12728            
12729              
12730
12731              
12732            
12733              
12734
12735              
12736            
12737              
12738
12739              
12740            
12741              
12742
12743              
12744            
12745
12746            
12747
12748            
12749          
12750            
12751
12752            
12753              
12754
12755              
12756            
12757              
12758
12759              
12760            
12761              
12762
12763              
12764            
12765              
12766
12767              
12768            
12769              
12770
12771              
12772            
12773              
12774
12775              
12776            
12777              
12778
12779              
12780            
12781
12782            
12783
12784            
12785          
12786            
12787
12788            
12789              
12790
12791              
12792            
12793              
12794
12795              
12796            
12797              
12798
12799              
12800            
12801              
12802
12803              
12804                
12805                
12806
12807            
12808              
12809
12810              
12811                <!-- snippets/component__blog-item.liquid -->
12812
12813
12814<a
12815  href="/blogs/scg-blog/scgs-best-videos-august-2026-coffee-gear-roundup"
12816  class="
12817    group relative w-full no-underline hover:no-underline
12818    
12819  "
12820>
12821  <div
12822    class="relative mb-4 block w-full overflow-hidden"
12823  >
12824    <div
12825      class="
12826        aspect-w-16 aspect-h-9 aspect-video w-full object-cover
12827        color__bg-body after:color__bg-body color__text after:color__text
12828        
12829          border--radius overflow-hidden
12830          border--width color__border-divider-1
12831        
12832      "
12833    >
12834        
12835        
12836        <img src="//www.seattlecoffeegear.com/cdn/shop/articles/Monthly_Video_Recap_-_August_2026_7a7e24ce-5927-46a4-8111-c28b3aabea73.jpg?v=1788219810&amp;width=1200" alt="SCG crew member smiling between two Terra Kaffe superautomatic espresso machines - Seattle Coffee Gear" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/Monthly_Video_Recap_-_August_2026_7a7e24ce-5927-46a4-8111-c28b3aabea73.jpg?v=1788219810&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/Monthly_Video_Recap_-_August_2026_7a7e24ce-5927-46a4-8111-c28b3aabea73.jpg?v=1788219810&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/Monthly_Video_Recap_-_August_2026_7a7e24ce-5927-46a4-8111-c28b3aabea73.jpg?v=1788219810&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/Monthly_Video_Recap_-_August_2026_7a7e24ce-5927-46a4-8111-c28b3aabea73.jpg?v=1788219810&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/Monthly_Video_Recap_-_August_2026_7a7e24ce-5927-46a4-8111-c28b3aabea73.jpg?v=1788219810&amp;width=1200 1200w" width="1200" height="786" loading="lazy" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text " sizes="(min-width: 1024px) 33vw, (min-width: 768px) 50vw, 100vw">�</div>
12837  </div>
12838
12839  <div
12840    class="
12841      block whitespace-normal no-underline hover:no-underline
12842      
12843    "
12844  >
12845    
12846      <div class="mb-2 flex gap-2">
12847        <span class="color__bg-overlay-2 inline-flex h-5 w-5 items-center justify-center rounded-full">
12848          <span class="type--smaller">P</span>
12849        </span>
12850        <span class="type--small opacity-75">
12851          Pat C
12852        </span>
12853      </div>
12854    
12855    <h3
12856      class="
12857        type--base type__body--bare mb-0.5 font-semibold !leading-tight
12858        
12859      "
12860    >
12861      SCG's Best Videos: August 2026 Coffee & Gear Roundup
12862    </h3>
12863    
12864      
12865      <span class="type--small mb-1 flex w-full">
12866        Every video we filmed in August, all in one place — grinder mistakes to avoid, a h...
12867      </span>
12868    
12869    <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
12870      
12871        <li
12872          class="
12873            type--small inline-block last:after:hidden
12874             after:content-['\00B7'] 
12875          "
12876        >
12877          Sep 1, 2026
12878        </li>
12879      
12880      
12881    </ul>
12882  </div>
12883</a>
12884
12885              
12886            
12887
12888            
12889          
12890            
12891
12892            
12893              
12894
12895              
12896            
12897              
12898
12899              
12900            
12901              
12902
12903              
12904            
12905              
12906
12907              
12908            
12909              
12910
12911              
12912            
12913              
12914
12915              
12916            
12917
12918            
12919
12920            
12921          
12922            
12923
12924            
12925              
12926
12927              
12928            
12929              
12930
12931              
12932            
12933              
12934
12935              
12936            
12937              
12938
12939              
12940            
12941              
12942
12943              
12944            
12945              
12946
12947              
12948            
12949              
12950
12951              
12952            
12953              
12954
12955              
12956            
12957
12958            
12959
12960            
12961          
12962            
12963
12964            
12965              
12966
12967              
12968            
12969              
12970
12971              
12972            
12973              
12974
12975              
12976            
12977              
12978
12979              
12980            
12981              
12982
12983              
12984            
12985              
12986
12987              
12988            
12989
12990            
12991
12992            
12993          
12994            
12995
12996            
12997              
12998
12999              
13000            
13001              
13002
13003              
13004            
13005              
13006
13007              
13008            
13009              
13010
13011              
13012            
13013              
13014
13015              
13016            
13017              
13018
13019              
13020            
13021              
13022
13023              
13024            
13025
13026            
13027
13028            
13029          
13030            
13031
13032            
13033              
13034
13035              
13036            
13037              
13038
13039              
13040            
13041              
13042
13043              
13044            
13045              
13046
13047              
13048            
13049              
13050
13051              
13052            
13053              
13054
13055              
13056            
13057              
13058
13059              
13060            
13061              
13062
13063              
13064            
13065
13066            
13067
13068            
13069          
13070            
13071
13072            
13073              
13074
13075              
13076            
13077              
13078
13079              
13080            
13081              
13082
13083              
13084            
13085              
13086
13087              
13088            
13089              
13090
13091              
13092            
13093              
13094
13095              
13096            
13097
13098            
13099
13100            
13101          
13102            
13103
13104            
13105              
13106
13107              
13108            
13109              
13110
13111              
13112            
13113              
13114
13115              
13116            
13117              
13118
13119              
13120            
13121              
13122
13123              
13124            
13125              
13126
13127              
13128            
13129              
13130
13131              
13132            
13133              
13134
13135              
13136            
13137
13138            
13139
13140            
13141          
13142            
13143
13144            
13145              
13146
13147              
13148            
13149              
13150
13151              
13152            
13153              
13154
13155              
13156            
13157              
13158
13159              
13160            
13161
13162            
13163
13164            
13165          
13166            
13167
13168            
13169              
13170
13171              
13172            
13173              
13174
13175              
13176            
13177              
13178
13179              
13180            
13181              
13182
13183              
13184            
13185              
13186
13187              
13188            
13189              
13190
13191              
13192            
13193              
13194
13195              
13196            
13197
13198            
13199
13200            
13201          
13202            
13203
13204            
13205              
13206
13207              
13208            
13209              
13210
13211              
13212            
13213              
13214
13215              
13216            
13217              
13218
13219              
13220            
13221              
13222
13223              
13224            
13225              
13226
13227              
13228            
13229              
13230
13231              
13232            
13233
13234            
13235
13236            
13237          
13238            
13239
13240            
13241              
13242
13243              
13244            
13245              
13246
13247              
13248            
13249              
13250
13251              
13252            
13253              
13254
13255              
13256                
13257                
13258
13259            
13260              
13261
13262              
13263                <!-- snippets/component__blog-item.liquid -->
13264
13265
13266<a
13267  href="/blogs/scg-blog/scgs-best-videos-july-2026-coffee-gear-roundup"
13268  class="
13269    group relative w-full no-underline hover:no-underline
13270    
13271  "
13272>
13273  <div
13274    class="relative mb-4 block w-full overflow-hidden"
13275  >
13276    <div
13277      class="
13278        aspect-w-16 aspect-h-9 aspect-video w-full object-cover
13279        color__bg-body after:color__bg-body color__text after:color__text
13280        
13281          border--radius overflow-hidden
13282          border--width color__border-divider-1
13283        
13284      "
13285    >
13286        
13287        
13288        <img src="//www.seattlecoffeegear.com/cdn/shop/articles/Monthly_Video_Recap_-_July_2026_4057d8cc-8028-4024-a0b6-ff1baaca9b1e.jpg?v=1785365228&amp;width=1200" alt="SCG host with the LELIT Mara X3 and Bianca espresso machines in July&#39;s video recap - Seattle Coffee Gear" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/Monthly_Video_Recap_-_July_2026_4057d8cc-8028-4024-a0b6-ff1baaca9b1e.jpg?v=1785365228&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/Monthly_Video_Recap_-_July_2026_4057d8cc-8028-4024-a0b6-ff1baaca9b1e.jpg?v=1785365228&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/Monthly_Video_Recap_-_July_2026_4057d8cc-8028-4024-a0b6-ff1baaca9b1e.jpg?v=1785365228&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/Monthly_Video_Recap_-_July_2026_4057d8cc-8028-4024-a0b6-ff1baaca9b1e.jpg?v=1785365228&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/Monthly_Video_Recap_-_July_2026_4057d8cc-8028-4024-a0b6-ff1baaca9b1e.jpg?v=1785365228&amp;width=1200 1200w" width="1200" height="786" loading="lazy" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text " sizes="(min-width: 1024px) 33vw, (min-width: 768px) 50vw, 100vw">�</div>
13289  </div>
13290
13291  <div
13292    class="
13293      block whitespace-normal no-underline hover:no-underline
13294      
13295    "
13296  >
13297    
13298      <div class="mb-2 flex gap-2">
13299        <span class="color__bg-overlay-2 inline-flex h-5 w-5 items-center justify-center rounded-full">
13300          <span class="type--smaller">P</span>
13301        </span>
13302        <span class="type--small opacity-75">
13303          Pat C
13304        </span>
13305      </div>
13306    
13307    <h3
13308      class="
13309        type--base type__body--bare mb-0.5 font-semibold !leading-tight
13310        
13311      "
13312    >
13313      SCG's Best Videos: July 2026 Coffee & Gear Roundup
13314    </h3>
13315    
13316      
13317      <span class="type--small mb-1 flex w-full">
13318        Flow profiling goes mainstream, a new Eureka grinder, and a deep clean.
13319      </span>
13320    
13321    <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
13322      
13323        <li
13324          class="
13325            type--small inline-block last:after:hidden
13326             after:content-['\00B7'] 
13327          "
13328        >
13329          Jul 30, 2026
13330        </li>
13331      
13332      
13333    </ul>
13334  </div>
13335</a>
13336
13337              
13338            
13339
13340            
13341          
13342            
13343
13344            
13345              
13346
13347              
13348            
13349              
13350
13351              
13352            
13353              
13354
13355              
13356            
13357              
13358
13359              
13360            
13361              
13362
13363              
13364            
13365              
13366
13367              
13368            
13369              
13370
13371              
13372            
13373
13374            
13375
13376            
13377          
13378            
13379
13380            
13381              
13382
13383              
13384            
13385              
13386
13387              
13388            
13389              
13390
13391              
13392            
13393              
13394
13395              
13396            
13397              
13398
13399              
13400            
13401              
13402
13403              
13404            
13405              
13406
13407              
13408            
13409              
13410
13411              
13412            
13413
13414            
13415
13416            
13417          
13418            
13419
13420            
13421              
13422
13423              
13424            
13425              
13426
13427              
13428            
13429              
13430
13431              
13432            
13433              
13434
13435              
13436            
13437              
13438
13439              
13440            
13441              
13442
13443              
13444            
13445
13446            
13447
13448            
13449          
13450            
13451
13452            
13453              
13454
13455              
13456            
13457              
13458
13459              
13460            
13461              
13462
13463              
13464            
13465              
13466
13467              
13468            
13469              
13470
13471              
13472            
13473              
13474
13475              
13476            
13477              
13478
13479              
13480            
13481
13482            
13483
13484            
13485          
13486            
13487
13488            
13489              
13490
13491              
13492            
13493              
13494
13495              
13496            
13497              
13498
13499              
13500            
13501              
13502
13503              
13504            
13505              
13506
13507              
13508            
13509              
13510
13511              
13512            
13513              
13514
13515              
13516            
13517
13518            
13519
13520            
13521          
13522            
13523
13524            
13525              
13526
13527              
13528            
13529              
13530
13531              
13532            
13533              
13534
13535              
13536            
13537              
13538
13539              
13540            
13541              
13542
13543              
13544            
13545              
13546
13547              
13548            
13549
13550            
13551
13552            
13553          
13554            
13555
13556            
13557              
13558
13559              
13560            
13561              
13562
13563              
13564            
13565              
13566
13567              
13568            
13569              
13570
13571              
13572            
13573              
13574
13575              
13576            
13577              
13578
13579              
13580            
13581              
13582
13583              
13584            
13585
13586            
13587
13588            
13589          
13590            
13591
13592            
13593              
13594
13595              
13596            
13597              
13598
13599              
13600            
13601              
13602
13603              
13604            
13605              
13606
13607              
13608            
13609              
13610
13611              
13612            
13613              
13614
13615              
13616            
13617
13618            
13619
13620            
13621          
13622            
13623
13624            
13625              
13626
13627              
13628            
13629              
13630
13631              
13632            
13633              
13634
13635              
13636            
13637              
13638
13639              
13640            
13641              
13642
13643              
13644            
13645              
13646
13647              
13648            
13649              
13650
13651              
13652            
13653              
13654
13655              
13656            
13657
13658            
13659
13660            
13661          
13662            
13663
13664            
13665              
13666
13667              
13668            
13669              
13670
13671              
13672                
13673                
13674
13675            
13676              
13677
13678              
13679                <!-- snippets/component__blog-item.liquid -->
13680
13681
13682<a
13683  href="/blogs/scg-blog/coming-to-seattle-for-the-world-cup-heres-where-to-get-your-coffee-fix"
13684  class="
13685    group relative w-full no-underline hover:no-underline
13686    
13687  "
13688>
13689  <div
13690    class="relative mb-4 block w-full overflow-hidden"
13691  >
13692    <div
13693      class="
13694        aspect-w-16 aspect-h-9 aspect-video w-full object-cover
13695        color__bg-body after:color__bg-body color__text after:color__text
13696        
13697          border--radius overflow-hidden
13698          border--width color__border-divider-1
13699        
13700      "
13701    >
13702        
13703        
13704        <img src="//www.seattlecoffeegear.com/cdn/shop/articles/World_Cup_-_July_2027_84504a8e-1e7c-4494-b8e6-80e910622f97.jpg?v=1783025526&amp;width=1200" alt="Pike Place Market neon sign glowing at sunset in downtown Seattle - Seattle Coffee Gear" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/World_Cup_-_July_2027_84504a8e-1e7c-4494-b8e6-80e910622f97.jpg?v=1783025526&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/World_Cup_-_July_2027_84504a8e-1e7c-4494-b8e6-80e910622f97.jpg?v=1783025526&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/World_Cup_-_July_2027_84504a8e-1e7c-4494-b8e6-80e910622f97.jpg?v=1783025526&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/World_Cup_-_July_2027_84504a8e-1e7c-4494-b8e6-80e910622f97.jpg?v=1783025526&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/World_Cup_-_July_2027_84504a8e-1e7c-4494-b8e6-80e910622f97.jpg?v=1783025526&amp;width=1200 1200w" width="1200" height="786" loading="lazy" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text " sizes="(min-width: 1024px) 33vw, (min-width: 768px) 50vw, 100vw">�</div>
13705  </div>
13706
13707  <div
13708    class="
13709      block whitespace-normal no-underline hover:no-underline
13710      
13711    "
13712  >
13713    
13714      <div class="mb-2 flex gap-2">
13715        <span class="color__bg-overlay-2 inline-flex h-5 w-5 items-center justify-center rounded-full">
13716          <span class="type--smaller">K</span>
13717        </span>
13718        <span class="type--small opacity-75">
13719          Kelli R
13720        </span>
13721      </div>
13722    
13723    <h3
13724      class="
13725        type--base type__body--bare mb-0.5 font-semibold !leading-tight
13726        
13727      "
13728    >
13729      Coming to Seattle for the World Cup? Here's Where to Get Your Coffee Fix
13730    </h3>
13731    
13732      
13733      <span class="type--small mb-1 flex w-full">
13734        Heading to Seattle for the 2026 FIFA World Cup? Fuel up between matches at Gloom C...
13735      </span>
13736    
13737    <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
13738      
13739        <li
13740          class="
13741            type--small inline-block last:after:hidden
13742             after:content-['\00B7'] 
13743          "
13744        >
13745          Jul 2, 2026
13746        </li>
13747      
13748      
13749    </ul>
13750  </div>
13751</a>
13752
13753              
13754            
13755
13756            
13757              
13758        
13759      </div>
13760    
13761  </div>
13762</section>
13763
13764
13765</div><div id="shopify-section-template--21732448698675__46b4deac-10e4-4014-859e-43d47c0a57c6" class="shopify-section"><!-- sections/article-tagged-grid.liquid -->
13766
13767
13768<section
13769  class="
13770    
13771    color__bg-body color__text
13772    color__border-divider-1
13773    border--b-width
13774  "
13775>
13776  <div
13777    class="window--wide"
13778    style="
13779      padding-top:40px;
13780      padding-bottom:40px;
13781    "
13782  ><div
13783        class="
13784          flex flex-row flex-wrap items-end gap-2 pb-4
13785          justify-between
13786          
13787            
13788              opacity-0 js:animation animation-300
13789            
13790          
13791        "
13792        
13793          data-delay="100"
13794          data-replace="
13795            {
13796              'opacity-0' : 'opacity-100'
13797            }
13798          "
13799        
13800      >
13801        <div class="w-full max-w-prose md:w-auto"><h3 class="type__heading--section-heading mb-1">Reviews</h3><div class="m-0--clear mb-1 text-base font-normal leading-snug text-zinc-600">
13802              Unveiling the Perfect Brew: Comprehensive Reviews of Coffee and Espresso Brewing Equipment for Every Enthusiast
13803            </div><a
13804            href="/blogs/scg-blog/tagged/reviews"
13805            class="
13806              flex flex-row items-center
13807              text-base
13808              font-normal
13809              leading-snug
13810              text-cyan-700
13811              underline
13812            "
13813          >
13814            <div>Browse All Reviews</div><!-- snippets/component__icon.liquid -->
13815
13816
13817<span class="inline-flex align-middle ml-1" aria-hidden="true">
13818  
13819      <svg
13820        width="18"
13821        height="18"
13822        viewBox="0 0 15 16"
13823        fill="none"
13824        xmlns="http://www.w3.org/2000/svg"
13825      >
13826        <g id="Arrow">
13827        <circle id="Oval Copy" cx="7.5" cy="8" r="7.08333" fill="white" stroke="#217A97" stroke-width="0.833333"/>
13828        <g id="np_arrow-right_888647_000000 copy">
13829        <path id="Path" d="M3 7.47656H10.7933V8.52113H3V7.47656Z" fill="#217A97"/>
13830        <path id="Path_2" d="M8.63197 11.5L7.92773 10.7684L10.5929 8L7.92773 5.23163L8.63197 4.5L12.0004 8.00001L8.63197 11.5Z" fill="#217A97"/>
13831        </g>
13832        </g>
13833      </svg>
13834    
13835</span>
13836
13837          </a>
13838        </div>
13839      </div>
13840      <div
13841        class="
13842          grid
13843          md:grid-cols-4
13844          grid grid-cols-2
13845        "
13846        style="
13847          column-gap: 8px;
13848          row-gap: 12.0px;
13849        "
13850      >
13851        
13852
13853        
13854          
13855
13856          
13857            
13858
13859            
13860              
13861
13862              
13863            
13864              
13865
13866              
13867            
13868              
13869
13870              
13871            
13872              
13873
13874              
13875            
13876              
13877
13878              
13879            
13880              
13881
13882              
13883            
13884              
13885
13886              
13887            
13888              
13889
13890              
13891            
13892
13893            
13894
13895            
13896          
13897            
13898
13899            
13900              
13901
13902              
13903            
13904              
13905
13906              
13907            
13908              
13909
13910              
13911            
13912              
13913
13914              
13915            
13916              
13917
13918              
13919            
13920              
13921
13922              
13923            
13924              
13925
13926              
13927            
13928
13929            
13930
13931            
13932          
13933            
13934
13935            
13936              
13937
13938              
13939            
13940              
13941
13942              
13943            
13944              
13945
13946              
13947            
13948              
13949
13950              
13951            
13952              
13953
13954              
13955            
13956              
13957
13958              
13959            
13960
13961            
13962
13963            
13964          
13965            
13966
13967            
13968              
13969
13970              
13971            
13972              
13973
13974              
13975            
13976              
13977
13978              
13979            
13980              
13981
13982              
13983            
13984              
13985
13986              
13987            
13988              
13989
13990              
13991            
13992
13993            
13994
13995            
13996          
13997            
13998
13999            
14000              
14001
14002              
14003            
14004              
14005
14006              
14007            
14008              
14009
14010              
14011            
14012              
14013
14014              
14015            
14016              
14017
14018              
14019            
14020              
14021
14022              
14023            
14024              
14025
14026              
14027                
14028                
14029
14030            
14031              
14032
14033              
14034                <!-- snippets/component__blog-item.liquid -->
14035
14036
14037<a
14038  href="/blogs/scg-blog/rancilio-silvia-pro-x-vs-rocket-appartamento-tca"
14039  class="
14040    group relative w-full no-underline hover:no-underline
14041    
14042  "
14043>
14044  <div
14045    class="relative mb-4 block w-full overflow-hidden"
14046  >
14047    <div
14048      class="
14049        aspect-w-16 aspect-h-9 aspect-video w-full object-cover
14050        color__bg-body after:color__bg-body color__text after:color__text
14051        
14052          border--radius overflow-hidden
14053          border--width color__border-divider-1
14054        
14055      "
14056    >
14057        
14058        
14059        <img src="//www.seattlecoffeegear.com/cdn/shop/articles/Search_Blog_-_Rocket_TCA_vs_Rancilio_Silvia_Pro_X_1d1e9ed5-b98f-4047-88ba-75d5ea4d7680.jpg?v=1790122319&amp;width=1200" alt="Rocket Appartamento TCA and Rancilio Silvia Pro X espresso machines pulling shots side by side - Seattle Coffee Gear" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/Search_Blog_-_Rocket_TCA_vs_Rancilio_Silvia_Pro_X_1d1e9ed5-b98f-4047-88ba-75d5ea4d7680.jpg?v=1790122319&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/Search_Blog_-_Rocket_TCA_vs_Rancilio_Silvia_Pro_X_1d1e9ed5-b98f-4047-88ba-75d5ea4d7680.jpg?v=1790122319&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/Search_Blog_-_Rocket_TCA_vs_Rancilio_Silvia_Pro_X_1d1e9ed5-b98f-4047-88ba-75d5ea4d7680.jpg?v=1790122319&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/Search_Blog_-_Rocket_TCA_vs_Rancilio_Silvia_Pro_X_1d1e9ed5-b98f-4047-88ba-75d5ea4d7680.jpg?v=1790122319&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/Search_Blog_-_Rocket_TCA_vs_Rancilio_Silvia_Pro_X_1d1e9ed5-b98f-4047-88ba-75d5ea4d7680.jpg?v=1790122319&amp;width=1200 1200w" width="1200" height="786" loading="lazy" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text " sizes="(min-width: 1024px) 33vw, (min-width: 768px) 50vw, 100vw">�</div>
14060  </div>
14061
14062  <div
14063    class="
14064      block whitespace-normal no-underline hover:no-underline
14065      
14066    "
14067  >
14068    
14069      <div class="mb-2 flex gap-2">
14070        <span class="color__bg-overlay-2 inline-flex h-5 w-5 items-center justify-center rounded-full">
14071          <span class="type--smaller">P</span>
14072        </span>
14073        <span class="type--small opacity-75">
14074          Pat C
14075        </span>
14076      </div>
14077    
14078    <h3
14079      class="
14080        type--base type__body--bare mb-0.5 font-semibold !leading-tight
14081        
14082      "
14083    >
14084      Rancilio Silvia Pro X vs. Rocket Appartamento TCA: Which One's Right for You?
14085    </h3>
14086    
14087      
14088      <span class="type--small mb-1 flex w-full">
14089        Two well-regarded Italian machines at a similar price, and neither one wins on pap...
14090      </span>
14091    
14092    <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
14093      
14094        <li
14095          class="
14096            type--small inline-block last:after:hidden
14097             after:content-['\00B7'] 
14098          "
14099        >
14100          Sep 24, 2026
14101        </li>
14102      
14103      
14104    </ul>
14105  </div>
14106</a>
14107
14108              
14109            
14110
14111            
14112          
14113            
14114
14115            
14116              
14117
14118              
14119            
14120              
14121
14122              
14123            
14124              
14125
14126              
14127            
14128              
14129
14130              
14131            
14132              
14133
14134              
14135            
14136              
14137
14138              
14139            
14140              
14141
14142              
14143            
14144
14145            
14146
14147            
14148          
14149            
14150
14151            
14152              
14153
14154              
14155            
14156              
14157
14158              
14159            
14160              
14161
14162              
14163            
14164              
14165
14166              
14167            
14168              
14169
14170              
14171            
14172              
14173
14174              
14175            
14176              
14177
14178              
14179            
14180              
14181
14182              
14183            
14184
14185            
14186
14187            
14188          
14189            
14190
14191            
14192              
14193
14194              
14195            
14196              
14197
14198              
14199            
14200              
14201
14202              
14203            
14204              
14205
14206              
14207            
14208              
14209
14210              
14211            
14212              
14213
14214              
14215            
14216              
14217
14218              
14219            
14220              
14221
14222              
14223            
14224
14225            
14226
14227            
14228          
14229            
14230
14231            
14232              
14233
14234              
14235            
14236              
14237
14238              
14239            
14240              
14241
14242              
14243            
14244              
14245
14246              
14247            
14248              
14249
14250              
14251            
14252              
14253
14254              
14255                
14256                
14257
14258            
14259              
14260
14261              
14262                <!-- snippets/component__blog-item.liquid -->
14263
14264
14265<a
14266  href="/blogs/scg-blog/the-top-three-super-automatic-espresso-machines-of-2026-plus-an-honorable-mention"
14267  class="
14268    group relative w-full no-underline hover:no-underline
14269    
14270  "
14271>
14272  <div
14273    class="relative mb-4 block w-full overflow-hidden"
14274  >
14275    <div
14276      class="
14277        aspect-w-16 aspect-h-9 aspect-video w-full object-cover
14278        color__bg-body after:color__bg-body color__text after:color__text
14279        
14280          border--radius overflow-hidden
14281          border--width color__border-divider-1
14282        
14283      "
14284    >
14285        
14286        
14287        <img src="//www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Superautos_199b9e19-17f6-4d72-ad54-20babf3bc2bb.jpg?v=1789161600&amp;width=1200" alt="Top super automatic espresso machines of 2026: Terra Kaffe Demi, Philips Café Aromis, De&#39;Longhi Rivelia - Seattle Coffee Gear" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Superautos_199b9e19-17f6-4d72-ad54-20babf3bc2bb.jpg?v=1789161600&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Superautos_199b9e19-17f6-4d72-ad54-20babf3bc2bb.jpg?v=1789161600&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Superautos_199b9e19-17f6-4d72-ad54-20babf3bc2bb.jpg?v=1789161600&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Superautos_199b9e19-17f6-4d72-ad54-20babf3bc2bb.jpg?v=1789161600&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/Top_3_of_the_Year_Superautos_199b9e19-17f6-4d72-ad54-20babf3bc2bb.jpg?v=1789161600&amp;width=1200 1200w" width="1200" height="786" loading="lazy" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text " sizes="(min-width: 1024px) 33vw, (min-width: 768px) 50vw, 100vw">�</div>
14288  </div>
14289
14290  <div
14291    class="
14292      block whitespace-normal no-underline hover:no-underline
14293      
14294    "
14295  >
14296    
14297      <div class="mb-2 flex gap-2">
14298        <span class="color__bg-overlay-2 inline-flex h-5 w-5 items-center justify-center rounded-full">
14299          <span class="type--smaller">P</span>
14300        </span>
14301        <span class="type--small opacity-75">
14302          Pat C
14303        </span>
14304      </div>
14305    
14306    <h3
14307      class="
14308        type--base type__body--bare mb-0.5 font-semibold !leading-tight
14309        
14310      "
14311    >
14312      The Top Three Super Automatic Espresso Machines of 2026 (Plus an Honorable Mention)
14313    </h3>
14314    
14315      
14316      <span class="type--small mb-1 flex w-full">
14317        Our tested shortlist of the best super automatic espresso machines for 2026 — the ...
14318      </span>
14319    
14320    <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
14321      
14322        <li
14323          class="
14324            type--small inline-block last:after:hidden
14325             after:content-['\00B7'] 
14326          "
14327        >
14328          Sep 14, 2026
14329        </li>
14330      
14331      
14332    </ul>
14333  </div>
14334</a>
14335
14336              
14337            
14338
14339            
14340          
14341            
14342
14343            
14344              
14345
14346              
14347            
14348              
14349
14350              
14351            
14352              
14353
14354              
14355            
14356              
14357
14358              
14359            
14360              
14361
14362              
14363            
14364              
14365
14366              
14367            
14368              
14369
14370              
14371            
14372              
14373
14374              
14375            
14376
14377            
14378
14379            
14380          
14381            
14382
14383            
14384              
14385
14386              
14387            
14388              
14389
14390              
14391            
14392              
14393
14394              
14395            
14396              
14397
14398              
14399            
14400              
14401
14402              
14403            
14404              
14405
14406              
14407            
14408
14409            
14410
14411            
14412          
14413            
14414
14415            
14416              
14417
14418              
14419            
14420              
14421
14422              
14423            
14424              
14425
14426              
14427            
14428              
14429
14430              
14431            
14432              
14433
14434              
14435            
14436              
14437
14438              
14439                
14440                
14441
14442            
14443              
14444
14445              
14446                <!-- snippets/component__blog-item.liquid -->
14447
14448
14449<a
14450  href="/blogs/scg-blog/crew-review-rocket-r58-tune-espresso-machine"
14451  class="
14452    group relative w-full no-underline hover:no-underline
14453    
14454  "
14455>
14456  <div
14457    class="relative mb-4 block w-full overflow-hidden"
14458  >
14459    <div
14460      class="
14461        aspect-w-16 aspect-h-9 aspect-video w-full object-cover
14462        color__bg-body after:color__bg-body color__text after:color__text
14463        
14464          border--radius overflow-hidden
14465          border--width color__border-divider-1
14466        
14467      "
14468    >
14469        
14470        
14471        <img src="//www.seattlecoffeegear.com/cdn/shop/articles/Crew_Review__Rocket_R58_Tune_Espresso_Machine_4cc5b4b5-3b77-4c0a-8a9d-d3e6ad328729.jpg?v=1788473082&amp;width=1200" alt="Black Rocket R58 Tune espresso machine with angled PID display in SCG showroom - Seattle Coffee Gear" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/Crew_Review__Rocket_R58_Tune_Espresso_Machine_4cc5b4b5-3b77-4c0a-8a9d-d3e6ad328729.jpg?v=1788473082&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/Crew_Review__Rocket_R58_Tune_Espresso_Machine_4cc5b4b5-3b77-4c0a-8a9d-d3e6ad328729.jpg?v=1788473082&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/Crew_Review__Rocket_R58_Tune_Espresso_Machine_4cc5b4b5-3b77-4c0a-8a9d-d3e6ad328729.jpg?v=1788473082&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/Crew_Review__Rocket_R58_Tune_Espresso_Machine_4cc5b4b5-3b77-4c0a-8a9d-d3e6ad328729.jpg?v=1788473082&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/Crew_Review__Rocket_R58_Tune_Espresso_Machine_4cc5b4b5-3b77-4c0a-8a9d-d3e6ad328729.jpg?v=1788473082&amp;width=1200 1200w" width="1200" height="786" loading="lazy" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text " sizes="(min-width: 1024px) 33vw, (min-width: 768px) 50vw, 100vw">�</div>
14472  </div>
14473
14474  <div
14475    class="
14476      block whitespace-normal no-underline hover:no-underline
14477      
14478    "
14479  >
14480    
14481      <div class="mb-2 flex gap-2">
14482        <span class="color__bg-overlay-2 inline-flex h-5 w-5 items-center justify-center rounded-full">
14483          <span class="type--smaller">P</span>
14484        </span>
14485        <span class="type--small opacity-75">
14486          Pat C
14487        </span>
14488      </div>
14489    
14490    <h3
14491      class="
14492        type--base type__body--bare mb-0.5 font-semibold !leading-tight
14493        
14494      "
14495    >
14496      Crew Review: Rocket R58 Tune Espresso Machine
14497    </h3>
14498    
14499      
14500      <span class="type--small mb-1 flex w-full">
14501        Rocket's classic R58 gets a top-to-bottom rework — new colorways, a relocated PID ...
14502      </span>
14503    
14504    <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
14505      
14506        <li
14507          class="
14508            type--small inline-block last:after:hidden
14509             after:content-['\00B7'] 
14510          "
14511        >
14512          Sep 8, 2026
14513        </li>
14514      
14515      
14516    </ul>
14517  </div>
14518</a>
14519
14520              
14521            
14522
14523            
14524          
14525            
14526
14527            
14528              
14529
14530              
14531            
14532              
14533
14534              
14535            
14536              
14537
14538              
14539            
14540              
14541
14542              
14543            
14544              
14545
14546              
14547            
14548
14549            
14550
14551            
14552          
14553            
14554
14555            
14556              
14557
14558              
14559            
14560              
14561
14562              
14563            
14564              
14565
14566              
14567            
14568              
14569
14570              
14571            
14572              
14573
14574              
14575                
14576                
14577
14578            
14579              
14580
14581              
14582                <!-- snippets/component__blog-item.liquid -->
14583
14584
14585<a
14586  href="/blogs/scg-blog/crew-review-rocket-espresso-spluga-grinder"
14587  class="
14588    group relative w-full no-underline hover:no-underline
14589    
14590  "
14591>
14592  <div
14593    class="relative mb-4 block w-full overflow-hidden"
14594  >
14595    <div
14596      class="
14597        aspect-w-16 aspect-h-9 aspect-video w-full object-cover
14598        color__bg-body after:color__bg-body color__text after:color__text
14599        
14600          border--radius overflow-hidden
14601          border--width color__border-divider-1
14602        
14603      "
14604    >
14605        
14606        
14607        <img src="//www.seattlecoffeegear.com/cdn/shop/articles/New_Product_-_Rocket_Espresso_Spluga_Grinder__Everything_You_Need_to_Know_5487402a-9e5b-436c-8389-ae4d6ebbfa09.jpg?v=1788221204&amp;width=1200" alt="Rocket Espresso Spluga grinder dispensing espresso grounds into a portafilter - Seattle Coffee Gear" srcset="//www.seattlecoffeegear.com/cdn/shop/articles/New_Product_-_Rocket_Espresso_Spluga_Grinder__Everything_You_Need_to_Know_5487402a-9e5b-436c-8389-ae4d6ebbfa09.jpg?v=1788221204&amp;width=375 375w, //www.seattlecoffeegear.com/cdn/shop/articles/New_Product_-_Rocket_Espresso_Spluga_Grinder__Everything_You_Need_to_Know_5487402a-9e5b-436c-8389-ae4d6ebbfa09.jpg?v=1788221204&amp;width=550 550w, //www.seattlecoffeegear.com/cdn/shop/articles/New_Product_-_Rocket_Espresso_Spluga_Grinder__Everything_You_Need_to_Know_5487402a-9e5b-436c-8389-ae4d6ebbfa09.jpg?v=1788221204&amp;width=750 750w, //www.seattlecoffeegear.com/cdn/shop/articles/New_Product_-_Rocket_Espresso_Spluga_Grinder__Everything_You_Need_to_Know_5487402a-9e5b-436c-8389-ae4d6ebbfa09.jpg?v=1788221204&amp;width=900 900w, //www.seattlecoffeegear.com/cdn/shop/articles/New_Product_-_Rocket_Espresso_Spluga_Grinder__Everything_You_Need_to_Know_5487402a-9e5b-436c-8389-ae4d6ebbfa09.jpg?v=1788221204&amp;width=1200 1200w" width="1200" height="786" loading="lazy" class="w-full h-full object-cover aspect-video color__bg-body after:color__bg-body color__text after:color__text " sizes="(min-width: 1024px) 33vw, (min-width: 768px) 50vw, 100vw">�</div>
14608  </div>
14609
14610  <div
14611    class="
14612      block whitespace-normal no-underline hover:no-underline
14613      
14614    "
14615  >
14616    
14617      <div class="mb-2 flex gap-2">
14618        <span class="color__bg-overlay-2 inline-flex h-5 w-5 items-center justify-center rounded-full">
14619          <span class="type--smaller">P</span>
14620        </span>
14621        <span class="type--small opacity-75">
14622          Pat C
14623        </span>
14624      </div>
14625    
14626    <h3
14627      class="
14628        type--base type__body--bare mb-0.5 font-semibold !leading-tight
14629        
14630      "
14631    >
14632      Crew Review: Rocket Espresso Spluga Grinder
14633    </h3>
14634    
14635      
14636      <span class="type--small mb-1 flex w-full">
14637        Rocket's new Spluga grinder promises prosumer performance in a home-friendly footp...
14638      </span>
14639    
14640    <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5 p-0 opacity-75">
14641      
14642        <li
14643          class="
14644            type--small inline-block last:after:hidden
14645             after:content-['\00B7'] 
14646          "
14647        >
14648          Aug 31, 2026
14649        </li>
14650      
14651      
14652    </ul>
14653  </div>
14654</a>
14655
14656              
14657            
14658
14659            
14660              
14661        
14662      </div>
14663    
14664  </div>
14665</section>
14666
14667
14668</div><div id="shopify-section-template--21732448698675__article_tagged_grid_VLFhW8" class="shopify-section"><!-- sections/article-tagged-grid.liquid -->
14669
14670
14671<section
14672  class="
14673    
14674    color__bg-body color__text
14675    color__border-divider-1
14676    border--b-width
14677  "
14678>
14679  <div
14680    class="window--wide"
14681    style="
14682      padding-top:40px;
14683      padding-bottom:40px;
14684    "
14685  ><div
14686        class="
14687          flex flex-row flex-wrap items-end gap-2 pb-4
14688          justify-between
14689          
14690            
14691              opacity-0 js:animation animation-300
14692            
14693          
14694        "
14695        
14696          data-delay="100"
14697          data-replace="
14698            {
14699              'opacity-0' : 'opacity-100'
14700            }
14701          "
14702        
14703      >
14704        <div class="w-full max-w-prose md:w-auto"><h3 class="type__heading--section-heading mb-1">Legacy Articles</h3><div class="m-0--clear mb-1 text-base font-normal leading-snug text-zinc-600">
14705              You've found some Seattle Coffee Gear legacy content! We hope you find this information useful, but please be aware some of it may be outdated or no longer accurate. Enjoy!
14706            </div><a
14707            href="/blogs/scg-blog/tagged/legacy"
14708            class="
14709              flex flex-row items-center
14710              text-base
14711              font-normal
14712              leading-snug
14713              text-cyan-700
14714              underline
14715            "
14716          >
14717            <div>Browse All Legacy Articles</div><!-- snippets/component__icon.liquid -->
14718
14719
14720<span class="inline-flex align-middle ml-1" aria-hidden="true">
14721  
14722      <svg
14723        width="18"
14724        height="18"
14725        viewBox="0 0 15 16"
14726        fill="none"
14727        xmlns="http://www.w3.org/2000/svg"
14728      >
14729        <g id="Arrow">
14730        <circle id="Oval Copy" cx="7.5" cy="8" r="7.08333" fill="white" stroke="#217A97" stroke-width="0.833333"/>
14731        <g id="np_arrow-right_888647_000000 copy">
14732        <path id="Path" d="M3 7.47656H10.7933V8.52113H3V7.47656Z" fill="#217A97"/>
14733        <path id="Path_2" d="M8.63197 11.5L7.92773 10.7684L10.5929 8L7.92773 5.23163L8.63197 4.5L12.0004 8.00001L8.63197 11.5Z" fill="#217A97"/>
14734        </g>
14735        </g>
14736      </svg>
14737    
14738</span>
14739
14740          </a>
14741        </div>
14742      </div>
14743  </div>
14744</section>
14745
14746
14747</div><div id="shopify-section-template--21732448698675__article_featured_grid_X8niTR" class="shopify-section"><!-- sections/article-featured-grid.liquid -->
14748
14749
14750<section
14751  class="
14752    
14753    color__bg-body color__text
14754    color__border-divider-1
14755    border--b-width
14756  "
14757>
14758  <div
14759    class="
14760      !px-0
14761      window--wide
14762    "
14763    style="
14764      padding-top:40px;
14765      padding-bottom:20px;
14766    "
14767  ><!-- snippets/component__slider.liquid -->
14768
14769
14770<div
14771  class="
14772    flex flex-wrap
14773    
14774  "
14775>
14776  <div
14777    class="relative w-full"
14778    x-data="
14779      {
14780        index: 1,
14781        index_size: 0,
14782        show_arrows: false,
14783        isOverflown(element) {
14784          return element.scrollWidth > element.clientWidth;
14785        },
14786
14787        scrollToIndex(index_scroll) {
14788          let slider = this.$refs.slider;
14789          let currentSlide = slider.querySelector('[data-slide=&quot;' + index_scroll + '&quot;]');
14790          if (currentSlide) {
14791            let sliderWidth = slider.offsetWidth;
14792            let currentSlidePosition = currentSlide.offsetLeft;
14793            let currentSlideWidth = currentSlide.offsetWidth;
14794            let centerPosition = currentSlidePosition + currentSlideWidth / 2 - sliderWidth / 2;
14795
14796            slider.scrollTo({
14797              top: 0,
14798              left: centerPosition,
14799              behavior: 'smooth'
14800            });
14801          }
14802        },
14803
14804        scrollNext() {
14805          let slider = this.$refs.slider;
14806          let scrolledToEnd = (el) => {
14807            if(el.scrollLeft + el.offsetWidth == el.scrollWidth){
14808              return true;
14809            } else {
14810              return false;
14811            }
14812          }
14813          if(this.index >= (this.index_size - 1) || scrolledToEnd(slider)){
14814            this.index = 1;
14815            this.scrollToIndex(0);
14816          } else {
14817            this.index++
14818            this.scrollToIndex(this.index);
14819          }
14820        },
14821
14822        scrollBack() {
14823          let slider = this.$refs.slider;
14824          if(this.index <= 0 || slider.scrollLeft == 0){
14825            this.index = (this.index_size - 1);
14826            this.scrollToIndex(this.index);
14827          } else {
14828            this.index--
14829            this.scrollToIndex(this.index);
14830          }
14831        }
14832      }
14833    "
14834  >
14835    <div class="flex w-full flex-row">
14836      <!-- snippets/component__section-header.liquid -->
14837�<div
14838    class="
14839      flex flex-row flex-wrap items-end gap-2 pb-4
14840      
14841      px-4 w-full md:w-2/3
14842      
14843        
14844          opacity-0 js:animation animation-300
14845        
14846      
14847    "
14848    
14849      data-delay="100"
14850      data-replace="
14851        {
14852          'opacity-0' : 'opacity-100'
14853        }
14854      "
14855    
14856  >
14857    <span class="">
14858      <div class="w-full max-w-prose md:w-auto "><h3 class="type__heading--section-heading mb-1 ">Seattle Coffee Gear Blog</h3><div class="m-0--clear mb-1 text-base font-normal leading-snug text-zinc-600">
14859            We write about all things coffee, espresso and tea! Visit our blog to stay in-the-know and read up on the latest product news. From semi-automatic espresso machine comparisons to coffee recipes and more, enjoy our collection of blog posts from industry experts.
14860          </div><a
14861            href="/pages/authors"
14862            class="
14863              flex flex-row items-center
14864              text-base
14865              font-normal
14866              leading-snug
14867              text-cyan-700
14868              underline
14869            "
14870          >
14871            <div>About Our Authors</div><!-- snippets/component__icon.liquid -->
14872
14873
14874<span class="inline-flex align-middle ml-1" aria-hidden="true">
14875  
14876      <svg
14877        width="18"
14878        height="18"
14879        viewBox="0 0 15 16"
14880        fill="none"
14881        xmlns="http://www.w3.org/2000/svg"
14882      >
14883        <g id="Arrow">
14884        <circle id="Oval Copy" cx="7.5" cy="8" r="7.08333" fill="white" stroke="#217A97" stroke-width="0.833333"/>
14885        <g id="np_arrow-right_888647_000000 copy">
14886        <path id="Path" d="M3 7.47656H10.7933V8.52113H3V7.47656Z" fill="#217A97"/>
14887        <path id="Path_2" d="M8.63197 11.5L7.92773 10.7684L10.5929 8L7.92773 5.23163L8.63197 4.5L12.0004 8.00001L8.63197 11.5Z" fill="#217A97"/>
14888        </g>
14889        </g>
14890      </svg>
14891    
14892</span>
14893
14894          </a></div>
14895    </span>
14896    
14897  </div>
14898�<div class="hidden justify-end gap-4 pb-4 md:flex md:w-1/3 window--wide">
14899        <div
14900          
14901            x-show="show_arrows"
14902          
14903        >
14904          <button
14905            class="btn btn--plain btn--small !rounded-full"
14906            title="Previous slide"
14907            
14908              x-transition:enter="animation-300"
14909              x-transition:enter-start="opacity-0"
14910              x-transition:enter-end="opacity-100"
14911              x-transition:leave="animation-300"
14912              x-transition:leave-start="opacity-100"
14913              x-transition:leave-end="opacity-0"
14914            
14915            x-cloak
14916            @click="scrollBack();"
14917          >
14918            <!-- snippets/component__icon.liquid -->
14919
14920
14921<span class="inline-flex align-middle " aria-hidden="true">
14922  
14923      <svg
14924        xmlns="http://www.w3.org/2000/svg"
14925        width="20"
14926        height="20"
14927        viewBox="0 0 24 24"
14928        fill="none"
14929        stroke="currentColor"
14930        stroke-width="2"
14931        stroke-linecap="round"
14932        stroke-linejoin="round"
14933        class="feather feather-arrow-left inline-block"
14934      >
14935        <line x1="19" y1="12" x2="5" y2="12"></line><polyline points="12 19 5 12 12 5"></polyline>
14936      </svg>
14937    
14938</span>
14939
14940          </button>
14941        </div>
14942        <div
14943          
14944            x-show="show_arrows"
14945          
14946        >
14947          <button
14948            class="btn btn--plain btn--small !rounded-full"
14949            title="Next slide"
14950            
14951              x-transition:enter="animation-300"
14952              x-transition:enter-start="opacity-0"
14953              x-transition:enter-end="opacity-100"
14954              x-transition:leave="animation-300"
14955              x-transition:leave-start="opacity-100"
14956              x-transition:leave-end="opacity-0"
14957            
14958            x-cloak
14959            @click="scrollNext();"
14960          >
14961            <!-- snippets/component__icon.liquid -->
14962
14963
14964<span class="inline-flex align-middle " aria-hidden="true">
14965  
14966      <svg
14967        xmlns="http://www.w3.org/2000/svg"
14968        width="20"
14969        height="20"
14970        viewBox="0 0 24 24"
14971        fill="none"
14972        stroke="currentColor"
14973        stroke-width="2"
14974        stroke-linecap="round"
14975        stroke-linejoin="round"
14976        class="feather feather-arrow-right inline-block"
14977      >
14978        <line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
14979      </svg>
14980    
14981</span>
14982
14983          </button>
14984        </div>
14985      </div>
14986    </div>
14987      <div
14988        class="hidescrollbar inline-flex w-full overflow-x-auto overflow-y-hidden scroll-smooth whitespace-nowrap px-4 md:snap-x px-4"
14989        style="
14990          column-gap: 8px;
14991          row-gap: 12.0px;
14992        "
14993        x-init="setTimeout(function(){ if (isOverflown($el)) show_arrows = true}, 600);"
14994        x-ref="slider"
14995      >
14996        
14997      
14998
14999      </div>
15000    
15001  </div>
15002</div>
15003
15004  </div>
15005</section>
15006
15007
15008</div>
15009
15010        �</main>
15011
15012      <!-- BEGIN sections: footer-group -->
15013<div id="shopify-section-sections--21256152088883__theme_footer" class="shopify-section shopify-section-group-footer-group"><!-- sections/theme__footer.liquid -->
15014
15015
15016<footer
15017  class="
15018    relative
15019    
15020  "
15021>
15022  
15023  
15024    
15025        <nav class="md:hidden color__bg-overlay-1 color__text">
15026          
15027            
15028              
15029              
15030              
15031              <!-- snippets/component__accordion.liquid -->
15032
15033<div
15034  id=""
15035  class="
15036          border--t-width color__border-divider-1 no-js--hide
15037          "
15038  
15039  x-data="
15040    {
15041      
15042        accordion: false
15043      
15044    }
15045  "
15046>
15047  <button
15048    type="button"
15049    class="mb-1 flex w-full items-center justify-between py-2 px-4 "
15050    @click="
15051      
15052        accordion = ! accordion
15053      
15054    "
15055  >
15056    <div class="flex items-center">
15057      
15058
15059      <span class="type__body--bold text-left ">
15060        Questions?
15061      </span>
15062    </div>
15063    <div x-show=" !accordion ">
15064      <!-- snippets/component__icon.liquid -->
15065
15066
15067<span class="inline-flex align-middle " aria-hidden="true">
15068  
15069      <svg
15070        xmlns="http://www.w3.org/2000/svg"
15071        width="24"
15072        height="24"
15073        viewBox="0 0 24 24"
15074        fill="none"
15075        stroke="currentColor"
15076        stroke-width="2"
15077        stroke-linecap="round"
15078        stroke-linejoin="round"
15079        class="feather feather-chevron-down"
15080      >
15081        <polyline points="6 9 12 15 18 9"></polyline>
15082      </svg>
15083    
15084</span>
15085
15086    </div>
15087    <div x-show=" accordion " x-cloak>
15088      <!-- snippets/component__icon.liquid -->
15089
15090
15091<span class="inline-flex align-middle " aria-hidden="true">
15092  
15093      <svg
15094        xmlns="http://www.w3.org/2000/svg"
15095        width="24"
15096        height="24"
15097        viewBox="0 0 24 24"
15098        fill="none"
15099        stroke="currentColor"
15100        stroke-width="2"
15101        stroke-linecap="round"
15102        stroke-linejoin="round"
15103        class="feather feather-chevron-up"
15104      >
15105        <polyline points="18 15 12 9 6 15"></polyline>
15106      </svg>
15107    
15108</span>
15109
15110    </div>
15111  </button>
15112
15113  <div
15114    class="accordion-content 
15115      
15116          "
15117    x-show=" accordion "
15118    
15119      x-transition:enter="animation-100"
15120      x-transition:enter-start="opacity-0"
15121      x-transition:enter-end="opacity-100"
15122      x-transition:leave="animation-100"
15123      x-transition:leave-start="opacity-100"
15124      x-transition:leave-end="opacity-0"
15125    
15126    x-cloak
15127  >
15128    
15129          
15130          <a href="/policies/contact-information" class="type__body border--t-width flex w-full items-center justify-between px-4 py-4 pl-8 no-underline
15131                          color__border-divider-1">
15132            Contact Us
15133          </a>
15134          
15135          
15136          <a href="/pages/commercial-support" class="type__body border--t-width flex w-full items-center justify-between px-4 py-4 pl-8 no-underline
15137                          color__border-divider-1">
15138            Commercial Support
15139          </a>
15140          
15141          
15142          <a href="/policies/shipping-policy" class="type__body border--t-width flex w-full items-center justify-between px-4 py-4 pl-8 no-underline
15143                          color__border-divider-1">
15144            Order & Shipping Policy
15145          </a>
15146          
15147          
15148          <a href="/policies/refund-policy" class="type__body border--t-width flex w-full items-center justify-between px-4 py-4 pl-8 no-underline
15149                          color__border-divider-1">
15150            Return Policy
15151          </a>
15152          
15153          
15154          <a href="/pages/cart-exclusions" class="type__body border--t-width flex w-full items-center justify-between px-4 py-4 pl-8 no-underline
15155                          color__border-divider-1">
15156            *Promotion Exclusions
15157          </a>
15158          
15159          
15160          <a href="/pages/scg-promise" class="type__body border--t-width flex w-full items-center justify-between px-4 py-4 pl-8 no-underline
15161                          color__border-divider-1">
15162            Price Matching
15163          </a>
15164          
15165          
15166          
15167  </div>
15168</div>
15169
15170
15171              <noscript>
15172                <a
15173                  class="border--t-width color__border-divider-1 block w-full p-4 no-underline"
15174                  href="#"
15175                >Questions?</a>
15176                
15177                  <a
15178                    class="border--t-width color__border-divider-1 block w-full p-4 !pl-8 no-underline"
15179                    href="/policies/contact-information"
15180                  >Contact Us</a>
15181                  
15182                
15183                  <a
15184                    class="border--t-width color__border-divider-1 block w-full p-4 !pl-8 no-underline"
15185                    href="/pages/commercial-support"
15186                  >Commercial Support</a>
15187                  
15188                
15189                  <a
15190                    class="border--t-width color__border-divider-1 block w-full p-4 !pl-8 no-underline"
15191                    href="/policies/shipping-policy"
15192                  >Order & Shipping Policy</a>
15193                  
15194                
15195                  <a
15196                    class="border--t-width color__border-divider-1 block w-full p-4 !pl-8 no-underline"
15197                    href="/policies/refund-policy"
15198                  >Return Policy</a>
15199                  
15200                
15201                  <a
15202                    class="border--t-width color__border-divider-1 block w-full p-4 !pl-8 no-underline"
15203                    href="/pages/cart-exclusions"
15204                  >*Promotion Exclusions</a>
15205                  
15206                
15207                  <a
15208                    class="border--t-width color__border-divider-1 block w-full p-4 !pl-8 no-underline"
15209                    href="/pages/scg-promise"
15210                  >Price Matching</a>
15211                  
15212                
15213              </noscript>
15214            
15215          
15216        </nav>
15217    
15218  
15219    
15220        <nav class="md:hidden color__bg-overlay-1 color__text">
15221          
15222            
15223              
15224              
15225              
15226              <!-- snippets/component__accordion.liquid -->
15227
15228<div
15229  id=""
15230  class="
15231          border--t-width color__border-divider-1 no-js--hide
15232          "
15233  
15234  x-data="
15235    {
15236      
15237        accordion: false
15238      
15239    }
15240  "
15241>
15242  <button
15243    type="button"
15244    class="mb-1 flex w-full items-center justify-between py-2 px-4 "
15245    @click="
15246      
15247        accordion = ! accordion
15248      
15249    "
15250  >
15251    <div class="flex items-center">
15252      
15253
15254      <span class="type__body--bold text-left ">
15255        More From SCG
15256      </span>
15257    </div>
15258    <div x-show=" !accordion ">
15259      <!-- snippets/component__icon.liquid -->
15260
15261
15262<span class="inline-flex align-middle " aria-hidden="true">
15263  
15264      <svg
15265        xmlns="http://www.w3.org/2000/svg"
15266        width="24"
15267        height="24"
15268        viewBox="0 0 24 24"
15269        fill="none"
15270        stroke="currentColor"
15271        stroke-width="2"
15272        stroke-linecap="round"
15273        stroke-linejoin="round"
15274        class="feather feather-chevron-down"
15275      >
15276        <polyline points="6 9 12 15 18 9"></polyline>
15277      </svg>
15278    
15279</span>
15280
15281    </div>
15282    <div x-show=" accordion " x-cloak>
15283      <!-- snippets/component__icon.liquid -->
15284
15285
15286<span class="inline-flex align-middle " aria-hidden="true">
15287  
15288      <svg
15289        xmlns="http://www.w3.org/2000/svg"
15290        width="24"
15291        height="24"
15292        viewBox="0 0 24 24"
15293        fill="none"
15294        stroke="currentColor"
15295        stroke-width="2"
15296        stroke-linecap="round"
15297        stroke-linejoin="round"
15298        class="feather feather-chevron-up"
15299      >
15300        <polyline points="18 15 12 9 6 15"></polyline>
15301      </svg>
15302    
15303</span>
15304
15305    </div>
15306  </button>
15307
15308  <div
15309    class="accordion-content 
15310      
15311          "
15312    x-show=" accordion "
15313    
15314      x-transition:enter="animation-100"
15315      x-transition:enter-start="opacity-0"
15316      x-transition:enter-end="opacity-100"
15317      x-transition:leave="animation-100"
15318      x-transition:leave-start="opacity-100"
15319      x-transition:leave-end="opacity-0"
15320    
15321    x-cloak
15322  >
15323    
15324          
15325          <a href="/pages/repairs-service" class="type__body border--t-width flex w-full items-center justify-between px-4 py-4 pl-8 no-underline
15326                          color__border-divider-1">
15327            Repairs & Service
15328          </a>
15329          
15330          
15331          <a href="/pages/learn-articles" class="type__body border--t-width flex w-full items-center justify-between px-4 py-4 pl-8 no-underline
15332                          color__border-divider-1">
15333            Blog
15334          </a>
15335          
15336          
15337          <a href="/pages/podcast" class="type__body border--t-width flex w-full items-center justify-between px-4 py-4 pl-8 no-underline
15338                          color__border-divider-1">
15339            SCG Podcast
15340          </a>
15341          
15342          
15343          <a href="/pages/retail" class="type__body border--t-width flex w-full items-center justify-between px-4 py-4 pl-8 no-underline
15344                          color__border-divider-1">
15345            Retail Stores
15346          </a>
15347          
15348          
15349          <a href="/pages/classes" class="type__body border--t-width flex w-full items-center justify-between px-4 py-4 pl-8 no-underline
15350                          color__border-divider-1">
15351            Classes & Events
15352          </a>
15353          
15354          
15355          <a href="/pages/product-resource" class="type__body border--t-width flex w-full items-center justify-between px-4 py-4 pl-8 no-underline
15356                          color__border-divider-1">
15357            Product Resources
15358          </a>
15359          
15360          
15361          <a href="/collections/all" class="type__body border--t-width flex w-full items-center justify-between px-4 py-4 pl-8 no-underline
15362                          color__border-divider-1">
15363            Shop All Products
15364          </a>
15365          
15366          
15367          <a href="https://www.seattlecoffeegear.com/pages/shop-explore" class="type__body border--t-width flex w-full items-center justify-between px-4 py-4 pl-8 no-underline
15368                          color__border-divider-1">
15369            Product Collections
15370          </a>
15371          
15372          
15373          
15374  </div>
15375</div>
15376
15377
15378              <noscript>
15379                <a
15380                  class="border--t-width color__border-divider-1 block w-full p-4 no-underline"
15381                  href="#"
15382                >More From SCG</a>
15383                
15384                  <a
15385                    class="border--t-width color__border-divider-1 block w-full p-4 !pl-8 no-underline"
15386                    href="/pages/repairs-service"
15387                  >Repairs & Service</a>
15388                  
15389                
15390                  <a
15391                    class="border--t-width color__border-divider-1 block w-full p-4 !pl-8 no-underline"
15392                    href="/pages/learn-articles"
15393                  >Blog</a>
15394                  
15395                
15396                  <a
15397                    class="border--t-width color__border-divider-1 block w-full p-4 !pl-8 no-underline"
15398                    href="/pages/podcast"
15399                  >SCG Podcast</a>
15400                  
15401                
15402                  <a
15403                    class="border--t-width color__border-divider-1 block w-full p-4 !pl-8 no-underline"
15404                    href="/pages/retail"
15405                  >Retail Stores</a>
15406                  
15407                
15408                  <a
15409                    class="border--t-width color__border-divider-1 block w-full p-4 !pl-8 no-underline"
15410                    href="/pages/classes"
15411                  >
15411Classes & Events</a>
15412                  
15413                
15414                  <a
15415                    class="border--t-width color__border-divider-1 block w-full p-4 !pl-8 no-underline"
15416                    href="/pages/product-resource"
15417                  >Product Resources</a>
15418                  
15419                
15420                  <a
15421                    class="border--t-width color__border-divider-1 block w-full p-4 !pl-8 no-underline"
15422                    href="/collections/all"
15423                  >Shop All Products</a>
15424                  
15425                
15426                  <a
15427                    class="border--t-width color__border-divider-1 block w-full p-4 !pl-8 no-underline"
15428                    href="https://www.seattlecoffeegear.com/pages/shop-explore"
15429                  >Product Collections</a>
15430                  
15431                
15432              </noscript>
15433            
15434          
15435        </nav>
15436    
15437  
15438    
15439        <nav class="md:hidden color__bg-overlay-1 color__text">
15440          
15441            
15442              
15443              
15444              
15445              <!-- snippets/component__accordion.liquid -->
15446
15447<div
15448  id=""
15449  class="
15450          border--t-width color__border-divider-1 no-js--hide
15451          "
15452  
15453  x-data="
15454    {
15455      
15456        accordion: false
15457      
15458    }
15459  "
15460>
15461  <button
15462    type="button"
15463    class="mb-1 flex w-full items-center justify-between py-2 px-4 "
15464    @click="
15465      
15466        accordion = ! accordion
15467      
15468    "
15469  >
15470    <div class="flex items-center">
15471      
15472
15473      <span class="type__body--bold text-left ">
15474        Company
15475      </span>
15476    </div>
15477    <div x-show=" !accordion ">
15478      <!-- snippets/component__icon.liquid -->
15479
15480
15481<span class="inline-flex align-middle " aria-hidden="true">
15482  
15483      <svg
15484        xmlns="http://www.w3.org/2000/svg"
15485        width="24"
15486        height="24"
15487        viewBox="0 0 24 24"
15488        fill="none"
15489        stroke="currentColor"
15490        stroke-width="2"
15491        stroke-linecap="round"
15492        stroke-linejoin="round"
15493        class="feather feather-chevron-down"
15494      >
15495        <polyline points="6 9 12 15 18 9"></polyline>
15496      </svg>
15497    
15498</span>
15499
15500    </div>
15501    <div x-show=" accordion " x-cloak>
15502      <!-- snippets/component__icon.liquid -->
15503
15504
15505<span class="inline-flex align-middle " aria-hidden="true">
15506  
15507      <svg
15508        xmlns="http://www.w3.org/2000/svg"
15509        width="24"
15510        height="24"
15511        viewBox="0 0 24 24"
15512        fill="none"
15513        stroke="currentColor"
15514        stroke-width="2"
15515        stroke-linecap="round"
15516        stroke-linejoin="round"
15517        class="feather feather-chevron-up"
15518      >
15519        <polyline points="18 15 12 9 6 15"></polyline>
15520      </svg>
15521    
15522</span>
15523
15524    </div>
15525  </button>
15526
15527  <div
15528    class="accordion-content 
15529      
15530          "
15531    x-show=" accordion "
15532    
15533      x-transition:enter="animation-100"
15534      x-transition:enter-start="opacity-0"
15535      x-transition:enter-end="opacity-100"
15536      x-transition:leave="animation-100"
15537      x-transition:leave-start="opacity-100"
15538      x-transition:leave-end="opacity-0"
15539    
15540    x-cloak
15541  >
15542    
15543          
15544          <a href="/pages/about-us" class="type__body border--t-width flex w-full items-center justify-between px-4 py-4 pl-8 no-underline
15545                          color__border-divider-1">
15546            Our Story
15547          </a>
15548          
15549          
15550          <a href="/pages/scg-crew" class="type__body border--t-width flex w-full items-center justify-between px-4 py-4 pl-8 no-underline
15551                          color__border-divider-1">
15552            SCG Crew
15553          </a>
15554          
15555          
15556          <a href="https://jobs.lever.co/cscgeneration-2?department=Seattle%20Coffee%20Gear" class="type__body border--t-width flex w-full items-center justify-between px-4 py-4 pl-8 no-underline
15557                          color__border-divider-1">
15558            Careers
15559          </a>
15560          
15561          
15562          <a href="/pages/media-kit" class="type__body border--t-width flex w-full items-center justify-between px-4 py-4 pl-8 no-underline
15563                          color__border-divider-1">
15564            Media Partners
15565          </a>
15566          
15567          
15568          <a href="/policies/terms-of-service" class="type__body border--t-width flex w-full items-center justify-between px-4 py-4 pl-8 no-underline
15569                          color__border-divider-1">
15570            Terms of Use
15571          </a>
15572          
15573          
15574          <a href="/policies/privacy-policy" class="type__body border--t-width flex w-full items-center justify-between px-4 py-4 pl-8 no-underline
15575                          color__border-divider-1">
15576            Privacy Policy
15577          </a>
15578          
15579          
15580          
15581  </div>
15582</div>
15583
15584
15585              <noscript>
15586                <a
15587                  class="border--t-width color__border-divider-1 block w-full p-4 no-underline"
15588                  href="#"
15589                >Company</a>
15590                
15591                  <a
15592                    class="border--t-width color__border-divider-1 block w-full p-4 !pl-8 no-underline"
15593                    href="/pages/about-us"
15594                  >Our Story</a>
15595                  
15596                
15597                  <a
15598                    class="border--t-width color__border-divider-1 block w-full p-4 !pl-8 no-underline"
15599                    href="/pages/scg-crew"
15600                  >SCG Crew</a>
15601                  
15602                
15603                  <a
15604                    class="border--t-width color__border-divider-1 block w-full p-4 !pl-8 no-underline"
15605                    href="https://jobs.lever.co/cscgeneration-2?department=Seattle%20Coffee%20Gear"
15606                  >Careers</a>
15607                  
15608                
15609                  <a
15610                    class="border--t-width color__border-divider-1 block w-full p-4 !pl-8 no-underline"
15611                    href="/pages/media-kit"
15612                  >Media Partners</a>
15613                  
15614                
15615                  <a
15616                    class="border--t-width color__border-divider-1 block w-full p-4 !pl-8 no-underline"
15617                    href="/policies/terms-of-service"
15618                  >Terms of Use</a>
15619                  
15620                
15621                  <a
15622                    class="border--t-width color__border-divider-1 block w-full p-4 !pl-8 no-underline"
15623                    href="/policies/privacy-policy"
15624                  >Privacy Policy</a>
15625                  
15626                
15627              </noscript>
15628            
15629          
15630        </nav>
15631    
15632  
15633    
15634        <form method="post" action="/contact#contact_form" id="contact_form" accept-charset="UTF-8" class="contact-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="✓" />
15635          <section
15636            class="
15637              border--t-width py-8 md:hidden
15638              color__bg-overlay-1 color__text
15639              color__border-divider-1
15640            "
15641          >
15642            <div class="window--wide">
15643              <h3 class="type__body--bold type--base mb-2">
15644                Join The List
15645              </h3>
15646
15647              
15648
15649              
15650                <div class="m-0--clear mb-2">
15651                  <p>Exclusive offers, new arrivals, & freshly brewed coffee content</p>
15652                </div>
15653                <label for="customerEmail_footer" class="sr-only">Email</label>
15654                <input
15655                  id="customerEmail_footer"
15656                  class="form-input mb-2 flex-grow"
15657                  name="contact[email]"
15658                  type="email"
15659                  placeholder="Enter your email"
15660                  autocorrect="off"
15661                  autocapitalize="off"
15662                >
15663                <button type="submit" class="btn--small whitespace-nowrap btn btn--secondary">
15664                  <span class="btn__content">Subscribe</span>
15665                </button>
15666                <div class="m-0--clear type--smaller mt-2 opacity-50">
15667                  
15668                </div>
15669              
15670            </div>
15671          </section>
15672        </form>
15673
15674        
15675      
15676  
15677
15678  
15679  <nav
15680    class="
15681      border--t-width hidden md:block
15682      color__border-divider-1
15683      color__bg-overlay-1 color__text
15684    "
15685  >
15686    <div
15687      class="window--wide"
15688    >
15689      <div
15690        class="flex overflow-hidden py-8"
15691      >
15692        <div
15693          class="flex grow flex-wrap justify-between gap-12"
15694        >
15695          
15696            
15697                <div>
15698                  
15699                    <div
15700                      class="
15701                        type__body--bold mb-3 block no-underline
15702                        
15703                      "
15704                    >
15705                      Questions?
15706                    </div>
15707                    
15708                      <a href="/policies/contact-information" class="mb-2 block no-underline opacity-50">
15709                        Contact Us
15710                      </a>
15711                      
15712                    
15713                      <a href="/pages/commercial-support" class="mb-2 block no-underline opacity-50">
15714                        Commercial Support
15715                      </a>
15716                      
15717                    
15718                      <a href="/policies/shipping-policy" class="mb-2 block no-underline opacity-50">
15719                        Order & Shipping Policy
15720                      </a>
15721                      
15722                    
15723                      <a href="/policies/refund-policy" class="mb-2 block no-underline opacity-50">
15724                        Return Policy
15725                      </a>
15726                      
15727                    
15728                      <a href="/pages/cart-exclusions" class="mb-2 block no-underline opacity-50">
15729                        *Promotion Exclusions
15730                      </a>
15731                      
15732                    
15733                      <a href="/pages/scg-promise" class="mb-2 block no-underline opacity-50">
15734                        Price Matching
15735                      </a>
15736                      
15737                    
15738                  
15739                </div>
15740
15741                
15742              
15743          
15744            
15745                <div>
15746                  
15747                    <div
15748                      class="
15749                        type__body--bold mb-3 block no-underline
15750                        
15751                      "
15752                    >
15753                      More From SCG
15754                    </div>
15755                    
15756                      <a href="/pages/repairs-service" class="mb-2 block no-underline opacity-50">
15757                        Repairs & Service
15758                      </a>
15759                      
15760                    
15761                      <a href="/pages/learn-articles" class="mb-2 block no-underline opacity-50">
15762                        Blog
15763                      </a>
15764                      
15765                    
15766                      <a href="/pages/podcast" class="mb-2 block no-underline opacity-50">
15767                        SCG Podcast
15768                      </a>
15769                      
15770                    
15771                      <a href="/pages/retail" class="mb-2 block no-underline opacity-50">
15772                        Retail Stores
15773                      </a>
15774                      
15775                    
15776                      <a href="/pages/classes" class="mb-2 block no-underline opacity-50">
15777                        Classes & Events
15778                      </a>
15779                      
15780                    
15781                      <a href="/pages/product-resource" class="mb-2 block no-underline opacity-50">
15782                        Product Resources
15783                      </a>
15784                      
15785                    
15786                      <a href="/collections/all" class="mb-2 block no-underline opacity-50">
15787                        Shop All Products
15788                      </a>
15789                      
15790                    
15791                      <a href="https://www.seattlecoffeegear.com/pages/shop-explore" class="mb-2 block no-underline opacity-50">
15792                        Product Collections
15793                      </a>
15794                      
15795                    
15796                  
15797                </div>
15798
15799                
15800              
15801          
15802            
15803                <div>
15804                  
15805                    <div
15806                      class="
15807                        type__body--bold mb-3 block no-underline
15808                        
15809                      "
15810                    >
15811                      Company
15812                    </div>
15813                    
15814                      <a href="/pages/about-us" class="mb-2 block no-underline opacity-50">
15815                        Our Story
15816                      </a>
15817                      
15818                    
15819                      <a href="/pages/scg-crew" class="mb-2 block no-underline opacity-50">
15820                        SCG Crew
15821                      </a>
15822                      
15823                    
15824                      <a href="https://jobs.lever.co/cscgeneration-2?department=Seattle%20Coffee%20Gear" class="mb-2 block no-underline opacity-50">
15825                        Careers
15826                      </a>
15827                      
15828                    
15829                      <a href="/pages/media-kit" class="mb-2 block no-underline opacity-50">
15830                        Media Partners
15831                      </a>
15832                      
15833                    
15834                      <a href="/policies/terms-of-service" class="mb-2 block no-underline opacity-50">
15835                        Terms of Use
15836                      </a>
15837                      
15838                    
15839                      <a href="/policies/privacy-policy" class="mb-2 block no-underline opacity-50">
15840                        Privacy Policy
15841                      </a>
15842                      
15843                    
15844                  
15845                </div>
15846
15847                
15848              
15849          
15850            
15851                <div class="max-w-[250px]">
15852                  
15853
15854                  
15855
15856                  <form method="post" action="/contact#contact_form" id="contact_form" accept-charset="UTF-8" class="contact-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="✓" />
15857                    <h3 class="type__body--bold type--base mb-2">
15858                      Join The List
15859                    </h3>
15860
15861                    
15862
15863                    
15864                      <div class="m-0--clear mb-2">
15865                        <p>Exclusive offers, new arrivals, & freshly brewed coffee content</p>
15866                      </div>
15867                      <label for="newsletter_input_footer" class="sr-only">Email</label>
15868                      <input
15869                        id="newsletter_input_footer"
15870                        class="form-input mb-2 flex-grow"
15871                        name="contact[email]"
15872                        type="email"
15873                        placeholder="Enter your email"
15874                        autocorrect="off"
15875                        autocapitalize="off"
15876                      >
15877                      <button
15878                        type="submit"
15879                        class="btn--small whitespace-nowrap btn btn--secondary"
15880                      >
15881                        <span class="btn__content">Subscribe</span>
15882                      </button>
15883                      <div class="m-0--clear type--smaller mt-2 opacity-50">
15884                        
15885                      </div>
15886                    
15887                  </form>
15888                </div>
15889
15890                
15891              
15892          
15893        </div>
15894      </div>
15895    </div>
15896  </nav>
15897
15898  
15899  <section
15900    class="
15901      border--t-width flex flex-wrap gap-4 py-2
15902      color__bg-overlay-1 color__text
15903      color__border-divider-1
15904    "
15905  >
15906    
15907    <div
15908      class="
15909        flex w-full flex-wrap items-center justify-between gap-4 pt-2
15910        window--wide
15911      "
15912    >
15913      
15914      <div
15915        class="flex w-full gap-2 md:w-auto"
15916      >
15917        
15918          <a
15919            href="https://www.tiktok.com/@seattlecoffeegear"
15920            target="_blank"
15921            title="TikTok"
15922            class="inline-flex no-underline opacity-50 hover:no-underline"
15923          >
15924            <!-- snippets/component__icon.liquid -->
15925
15926
15927<span class="inline-flex align-middle " aria-hidden="true">
15928  
15929      <svg
15930        aria-hidden="true"
15931        width="20"
15932        height="20"
15933        focusable="false"
15934        data-prefix="fab"
15935        data-icon="tiktok"
15936        class="svg-inline--fa fa-tiktok fa-w-14"
15937        role="img"
15938        xmlns="http://www.w3.org/2000/svg"
15939        viewBox="0 0 448 512"
15940      >
15941        <path fill="currentColor" d="M448,209.91a210.06,210.06,0,0,1-122.77-39.25V349.38A162.55,162.55,0,1,1,185,188.31V278.2a74.62,74.62,0,1,0,52.23,71.18V0l88,0a121.18,121.18,0,0,0,1.86,22.17h0A122.18,122.18,0,0,0,381,102.39a121.43,121.43,0,0,0,67,20.14Z"></path>
15942      </svg>
15943    
15944</span>
15945
15946          </a>
15947        
15948        
15949          <a
15950            href="https://www.instagram.com/seattlecoffeegear"
15951            target="_blank"
15952            title="Instagram"
15953            class="inline-flex no-underline opacity-50 hover:no-underline"
15954          >
15955            <!-- snippets/component__icon.liquid -->
15956
15957
15958<span class="inline-flex align-middle " aria-hidden="true">
15959  
15960      <svg
15961        aria-hidden="true"
15962        width="20"
15963        height="20"
15964        focusable="false"
15965        data-prefix="fab"
15966        data-icon="instagram"
15967        class="svg-inline--fa fa-instagram fa-w-14"
15968        role="img"
15969        xmlns="http://www.w3.org/2000/svg"
15970        viewBox="0 0 448 512"
15971      >
15972        <path fill="currentColor" d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"></path>
15973      </svg>
15974    
15975</span>
15976
15977          </a>
15978        
15979        
15980          <a
15981            href="https://www.facebook.com/SeattleCoffeeGear"
15982            target="_blank"
15983            title="Facebook"
15984            class="inline-flex no-underline opacity-50 hover:no-underline"
15985          >
15986            <!-- snippets/component__icon.liquid -->
15987
15988
15989<span class="inline-flex align-middle " aria-hidden="true">
15990  
15991      <svg
15992        aria-hidden="true"
15993        width="20"
15994        height="20"
15995        focusable="false"
15996        data-prefix="fab"
15997        data-icon="facebook"
15998        class="svg-inline--fa fa-facebook fa-w-16"
15999        role="img"
16000        xmlns="http://www.w3.org/2000/svg"
16001        viewBox="0 0 512 512"
16002      >
16003        <path fill="currentColor" d="M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z"></path>
16004      </svg>
16005    
16006</span>
16007
16008          </a>
16009        
16010        
16011          <a
16012            href="https://www.pinterest.com/seattlecoffeegear/"
16013            target="_blank"
16014            title="Pinterest"
16015            class="inline-flex no-underline opacity-50 hover:no-underline"
16016          >
16017            <!-- snippets/component__icon.liquid -->
16018
16019
16020<span class="inline-flex align-middle " aria-hidden="true">
16021  
16022      <svg
16023        aria-hidden="true"
16024        width="20"
16025        height="20"
16026        focusable="false"
16027        data-prefix="fab"
16028        data-icon="pinterest"
16029        class="svg-inline--fa fa-pinterest fa-w-16"
16030        role="img"
16031        xmlns="http://www.w3.org/2000/svg"
16032        viewBox="0 0 496 512"
16033      >
16034        <path fill="currentColor" d="M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z"></path>
16035      </svg>
16036    
16037</span>
16038
16039          </a>
16040        
16041        
16042        
16043        
16044        
16045          <a
16046            href="https://linkedin.com/company/seattle-coffee-gear"
16047            target="_blank"
16048            title="LinkedIn"
16049            class="inline-flex no-underline opacity-50 hover:no-underline"
16050          >
16051            <!-- snippets/component__icon.liquid -->
16052
16053
16054<span class="inline-flex align-middle " aria-hidden="true">
16055  
16056      <svg
16057        aria-hidden="true"
16058        width="20"
16059        height="20"
16060        focusable="false"
16061        data-prefix="fab"
16062        data-icon="linkedin"
16063        class="svg-inline--fa fa-linkedin fa-w-14"
16064        role="img"
16065        xmlns="http://www.w3.org/2000/svg"
16066        viewBox="0 0 448 512"
16067      >
16068        <path fill="currentColor" d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path>
16069      </svg>
16070    
16071</span>
16072
16073          </a>
16074        
16075        
16076        
16077          <a
16078            href="https://youtube.com/c/Seattlecoffeegearinfo"
16079            target="_blank"
16080            title="YouTube"
16081            class="inline-flex no-underline opacity-50 hover:no-underline"
16082          >
16083            <!-- snippets/component__icon.liquid -->
16084
16085
16086<span class="inline-flex align-middle " aria-hidden="true">
16087  
16088      <svg
16089        aria-hidden="true"
16090        width="20"
16091        height="20"
16092        focusable="false"
16093        data-prefix="fab"
16094        data-icon="youtube"
16095        class="svg-inline--fa fa-youtube fa-w-18"
16096        role="img"
16097        xmlns="http://www.w3.org/2000/svg"
16098        viewBox="0 0 576 512"
16099      >
16100        <path fill="currentColor" d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"></path>
16101      </svg>
16102    
16103</span>
16104
16105          </a>
16106        
16107        
16108      </div>
16109
16110      
16111      
16112      <div>
16113        
16114          <ul class="m-0 flex w-full list-none flex-wrap gap-2 p-0 md:justify-end" role="list">
16115            
16116            
16117              <li>
16118                <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-visa"><title id="pi-visa">Visa</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#142FBD" style="fill:#142FBD;fill:color(display-p3 0.0784 0.1843 0.7412);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#1532CB" style="fill:#1532CB;fill:color(display-p3 0.0824 0.1961 0.7961);fill-opacity:1;"/><path d="M29.5944 10.2167H29.2778C28.8556 11.2722 28.5389 11.8 28.2222 13.3833H30.2278C29.9111 11.8 29.9111 11.0611 29.5944 10.2167V10.2167ZM32.6556 16.4444H30.8611C30.7556 16.4444 30.7556 16.4444 30.65 16.3389L30.4389 15.3889L30.3333 15.1778H27.8C27.6944 15.1778 27.5889 15.1778 27.5889 15.3889L27.2722 16.3389C27.2722 16.4444 27.1667 16.4444 27.1667 16.4444H24.95L25.1611 15.9167L28.2222 8.73889C28.2222 8.21111 28.5389 8 29.0667 8H30.65C30.7556 8 30.8611 8 30.8611 8.21111L32.3389 15.0722C32.4444 15.4944 32.55 15.8111 32.55 16.2333C32.6556 16.3389 32.6556 16.3389 32.6556 16.4444V16.4444ZM18.5111 16.1278L18.9333 14.2278C19.0389 14.2278 19.1444 14.3333 19.1444 14.3333C19.8833 14.65 20.6222 14.8611 21.3611 14.7556C21.5722 14.7556 21.8889 14.65 22.1 14.5444C22.6278 14.3333 22.6278 13.8056 22.2056 13.3833C21.9944 13.1722 21.6778 13.0667 21.3611 12.8556C20.9389 12.6444 20.5167 12.4333 20.2 12.1167C18.9333 11.0611 19.3556 9.58333 20.0944 8.84444C20.7278 8.42222 21.0444 8 21.8889 8C23.1556 8 24.5278 8 25.1611 8.21111H25.2667C25.1611 8.84444 25.0556 9.37222 24.8444 10.0056C24.3167 9.79444 23.7889 9.58333 23.2611 9.58333C22.9444 9.58333 22.6278 9.58333 22.3111 9.68889C22.1 9.68889 21.9944 9.79444 21.8889 9.9C21.6778 10.1111 21.6778 10.4278 21.8889 10.6389L22.4167 11.0611C22.8389 11.2722 23.2611 11.4833 23.5778 11.6944C24.1056 12.0111 24.6333 12.5389 24.7389 13.1722C24.95 14.1222 24.6333 14.9667 23.7889 15.6C23.2611 16.0222 23.05 16.2333 22.3111 16.2333C20.8333 16.2333 19.6722 16.3389 18.7222 16.0222C18.6167 16.2333 18.6167 16.2333 18.5111 16.1278V16.1278ZM14.8167 16.4444C14.9222 15.7056 14.9222 15.7056 15.0278 15.3889C15.5556 13.0667 16.0833 10.6389 16.5056 8.31667C16.6111 8.10556 16.6111 8 16.8222 8H18.7222C18.5111 9.26667 18.3 10.2167 17.9833 11.3778C17.6667 12.9611 17.35 14.5444 16.9278 16.1278C16.9278 16.3389 16.8222 16.3389 16.6111 16.3389L14.8167 16.4444ZM5 8.21111C5 8.10556 5.21111 8 5.31667 8H8.90556C9.43333 8 9.85556 8.31667 9.96111 8.84444L10.9111 13.4889C10.9111 13.5944 10.9111 13.5944 11.0167 13.7C11.0167 13.5944 11.1222 13.5944 11.1222 13.5944L13.3389 8.21111C13.2333 8.10556 13.3389 8 13.4444 8H15.6611C15.6611 8.10556 15.6611 8.10556 15.5556 8.21111L12.2833 15.9167C12.1778 16.1278 12.1778 
1611816.2333 12.0722 16.3389C11.9667 16.4444 11.7556 16.3389 11.5444 16.3389H9.96111C9.85556 16.3389 9.75 16.3389 9.75 16.1278L8.06111 9.58333C7.85 9.37222 7.53333 9.05556 7.11111 8.95C6.47778 8.63333 5.31667 8.42222 5.10556 8.42222L5 8.21111Z" fill="white" style="fill:white;fill-opacity:1;"/></svg>
16119
16120              </li>
16121            
16122              <li>
16123                <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-master"><title id="pi-master">Mastercard</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#1C1C1C" style="fill:#1C1C1C;fill:color(display-p3 0.1098 0.1098 0.1098);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#232323" style="fill:#232323;fill:color(display-p3 0.1373 0.1373 0.1373);fill-opacity:1;"/><path d="M14.6364 19.2727C18.8538 19.2727 22.2727 15.8538 22.2727 11.6364C22.2727 7.41892 18.8538 4 14.6364 4C10.4189 4 7 7.41892 7 11.6364C7 15.8538 10.4189 19.2727 14.6364 19.2727Z" fill="#EB001B" style="fill:#EB001B;fill:color(display-p3 0.9216 0.0000 0.1059);fill-opacity:1;"/><path d="M23.3637 19.2727C27.5811 19.2727 31 15.8538 31 11.6364C31 7.41892 27.5811 4 23.3637 4C19.1462 4 15.7273 7.41892 15.7273 11.6364C15.7273 15.8538 19.1462 19.2727 23.3637 19.2727Z" fill="#F79E1B" style="fill:#F79E1B;fill:color(display-p3 0.9686 0.6196 0.1059);fill-opacity:1;"/><path d="M22.2727 11.6362C22.2727 9.01797 20.9637 6.72706 19 5.41797C17.0364 6.83615 15.7273 9.12706 15.7273 11.6362C15.7273 14.1452 17.0364 16.5452 19 17.8543C20.9637 16.5452 22.2727 14.2543 22.2727 11.6362Z" fill="#FF5F00" style="fill:#FF5F00;fill:color(display-p3 1.0000 0.3725 0.0000);fill-opacity:1;"/></svg>
16124
16125              </li>
16126            
16127              <li>
16128                <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-american_express"><title id="pi-american_express">American Express</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#0071CE" style="fill:#0071CE;fill:color(display-p3 0.0000 0.4431 0.8078);fill-opacity:1;"/><path d="M3 0.5H35C36.3348 0.5 37.5 1.58692 37.5 3V21C37.5 22.4239 36.4239 23.5 35 23.5H3C1.66524 23.5 0.5 22.4131 0.5 21V3C0.5 1.57614 1.57614 0.5 3 0.5Z" stroke="black" stroke-opacity="0.07" style="stroke:black;stroke-opacity:0.07;"/><path d="M25.8662 6.33203V3H31L31.8662 5.5332L32.7334 3H37V14.2002H36.7998L34.8672 16.2656L36.7998 18.3594H37V21.2666H33.5996L31.9336 19.3994L30.2002 21.2666H19.4668V12.666H16L20.2666 3H24.4004L25.8662 6.33203ZM20.5996 20.2656H27V18.5322H22.666V17.3994H26.8662V15.666H22.666V14.5322H27V12.7988H20.5996V20.2656ZM30.5332 16.5322L27 20.2656H29.5996L31.8662 17.8662L34.0664 20.2656H36.7324L33.1992 16.4658L36.7324 12.7988H34.1328L31.8662 15.1992L29.7324 12.7988H27L30.5332 16.5322ZM17.666 11.7324H19.9326L20.5332 10.1992H23.999L24.666 11.7324H26.999L23.666 4.19922H20.999L17.666 11.7324ZM33.5996 4.19922L31.9326 8.86621L30.1992 4.19922H27V11.666H29.0664V6.39941L31 11.666H32.7998L34.7324 6.39941V11.666H36.7324V4.13281L33.5996 4.19922ZM23.2656 8.46582H21.2656L22.2656 5.99902L23.2656 8.46582Z" fill="white" style="fill:white;fill-opacity:1;"/></svg>
16129
16130              </li>
16131            
16132              <li>
16133                <svg class="icon icon--full-color" viewBox="0 0 38 24" width="38" height="24" role="img" aria-labelledby="pi-discover" fill="none" xmlns="http://www.w3.org/2000/svg"><title id="pi-discover">Discover</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32z" fill="#fff"/><path d="M3.57 7.16H2v5.5h1.57c.83 0 1.43-.2 1.96-.63.63-.52 1-1.3 1-2.11-.01-1.63-1.22-2.76-2.96-2.76zm1.26 4.14c-.34.3-.77.44-1.47.44h-.29V8.1h.29c.69 0 1.11.12 1.47.44.37.33.59.84.59 1.37 0 .53-.22 1.06-.59 1.39zm2.19-4.14h1.07v5.5H7.02v-5.5zm3.69 2.11c-.64-.24-.83-.4-.83-.69 0-.35.34-.61.8-.61.32 0 .59.13.86.45l.56-.73c-.46-.4-1.01-.61-1.62-.61-.97 0-1.72.68-1.72 1.58 0 .76.35 1.15 1.35 1.51.42.15.63.25.74.31.21.14.32.34.32.57 0 .45-.35.78-.83.78-.51 0-.92-.26-1.17-.73l-.69.67c.49.73 1.09 1.05 1.9 1.05 1.11 0 1.9-.74 1.9-1.81.02-.89-.35-1.29-1.57-1.74zm1.92.65c0 1.62 1.27 2.87 2.9 2.87.46 0 .86-.09 1.34-.32v-1.26c-.43.43-.81.6-1.29.6-1.08 0-1.85-.78-1.85-1.9 0-1.06.79-1.89 1.8-1.89.51 0 .9.18 1.34.62V7.38c-.47-.24-.86-.34-1.32-.34-1.61 0-2.92 1.28-2.92 2.88zm12.76.94l-1.47-3.7h-1.17l2.33 5.64h.58l2.37-5.64h-1.16l-1.48 3.7zm3.13 1.8h3.04v-.93h-1.97v-1.48h1.9v-.93h-1.9V8.1h1.97v-.94h-3.04v5.5zm7.29-3.87c0-1.03-.71-1.62-1.95-1.62h-1.59v5.5h1.07v-2.21h.14l1.48 2.21h1.32l-1.73-2.32c.81-.17 1.26-.72 1.26-1.56zm-2.16.91h-.31V8.03h.33c.67 0 1.03.28 1.03.82 0 .55-.36.85-1.05.85z" fill="#231F20"/><path d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint0_linear)"/><path opacity=".65" d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint1_linear)"/><path d="M36.57 7.506c0-.1-.07-.15-.18-.15h-.16v.48h.12v-.19l.14.19h.14l-.16-.2c.06-.01.1-.06.1-.13zm-.2.07h-.02v-.13h.02c.06 0 .09.02.09.06 0 .05-.03.07-.09.07z" fill="#231F20"/><path d="M36.41 7.176c-.23 0-.42.19-.42.42 0 .23.19.42.42.42.23 0 .42-.19.42-.42 0-.23-.19-.42-.42-.42zm0 .77c-.18 0-.34-.15-.34-.35 0-.19.15-.35.34-.35.18 0 .33.16.33.35 0 .19-.15.35-.33.35z" fill="#231F20"/><path d="M37 12.984S27.09 19.873 8.976 23h26.023a2 2 0 002-1.984l.024-3.02L37 12.985z" fill="#F48120"/><defs><linearGradient id="pi-paint0_linear" x1="21.657" y1="12.275" x2="19.632" y2="9.104" gradientUnits="userSpaceOnUse"><stop stop-color="#F89F20"/><stop offset=".25" stop-color="#F79A20"/><stop offset=".533" stop-color="#F68D20"/><stop offset=".62" stop-color="#F58720"/><stop offset=".723" stop-color="#F48120"/><stop offset="1" stop-color="#F37521"/></linearGradient><linearGradient id="pi-paint1_linear" x1="21.338" y1="12.232" x2="18.378" y2="6.446" gradientUnits="userSpaceOnUse"><stop stop-color="#F58720"/><stop offset=".359" stop-color="#E16F27"/><stop offset=".703" stop-color="#D4602C"/><stop offset=".982" stop-color="#D05B2E"/></linearGradient></defs></svg>
16134              </li>
16135            
16136              <li>
16137                <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-shopify_pay"><title id="pi-shopify_pay">Shop Pay</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000"/><path d="M35.889 0C37.05 0 38 .982 38 2.182v19.636c0 1.2-.95 2.182-2.111 2.182H2.11C.95 24 0 23.018 0 21.818V2.182C0 .982.95 0 2.111 0H35.89z" fill="#5A31F4"/><path d="M9.35 11.368c-1.017-.223-1.47-.31-1.47-.705 0-.372.306-.558.92-.558.54 0 .934.238 1.225.704a.079.079 0 00.104.03l1.146-.584a.082.082 0 00.032-.114
16137c-.475-.831-1.353-1.286-2.51-1.286-1.52 0-2.464.755-2.464 1.956 0 1.275 1.15 1.597 2.17 1.82 1.02.222 1.474.31 1.474.705 0 .396-.332.582-.993.582-.612 0-1.065-.282-1.34-.83a.08.08 0 00-.107-.035l-1.143.57a.083.083 0 00-.036.111c.454.92 1.384 1.437 2.627 1.437 1.583 0 2.539-.742 2.539-1.98s-1.155-1.598-2.173-1.82v-.003zM15.49 8.855c-.65 0-1.224.232-1.636.646a.04.04 0 01-.069-.03v-2.64a.08.08 0 00-.08-.081H12.27a.08.08 0 00-.08.082v8.194a.08.08 0 00.08.082h1.433a.08.08 0 00.081-.082v-3.594c0-.695.528-1.227 1.239-1.227.71 0 1.226.521 1.226 1.227v3.594a.08.08 0 00.081.082h1.433a.08.08 0 00.081-.082v-3.594c0-1.51-.981-2.577-2.355-2.577zM20.753 8.62c-.778 0-1.507.24-2.03.588a.082.082 0 00-.027.109l.632 1.088a.08.08 0 00.11.03 2.5 2.5 0 011.318-.366c1.25 0 2.17.891 2.17 2.068 0 1.003-.736 1.745-1.669 1.745-.76 0-1.288-.446-1.288-1.077 0-.361.152-.657.548-.866a.08.08 0 00.032-.113l-.596-1.018a.08.08 0 00-.098-.035c-.799.299-1.359 1.018-1.359 1.984 0 1.46 1.152 2.55 2.76 2.55 1.877 0 3.227-1.313 3.227-3.195 0-2.018-1.57-3.492-3.73-3.492zM28.675 8.843c-.724 0-1.373.27-1.845.746-.026.027-.069.007-.069-.029v-.572a.08.08 0 00-.08-.082h-1.397a.08.08 0 00-.08.082v8.182a.08.08 0 00.08.081h1.433a.08.08 0 00.081-.081v-2.683c0-.036.043-.054.069-.03a2.6 2.6 0 001.808.7c1.682 0 2.993-1.373 2.993-3.157s-1.313-3.157-2.993-3.157zm-.271 4.929c-.956 0-1.681-.768-1.681-1.783s.723-1.783 1.681-1.783c.958 0 1.68.755 1.68 1.783 0 1.027-.713 1.783-1.681 1.783h.001z" fill="#fff"/></svg>
16138
16139              </li>
16140            
16141              <li>
16142                <svg class="icon icon--full-color" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-paypal"><title id="pi-paypal">PayPal</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path fill="#003087" d="M23.9 8.3c.2-1 0-1.7-.6-2.3-.6-.7-1.7-1-3.1-1h-4.1c-.3 0-.5.2-.6.5L14 15.6c0 .2.1.4.3.4H17l.4-3.4 1.8-2.2 4.7-2.1z"/><path fill="#3086C8" d="M23.9 8.3l-.2.2c-.5 2.8-2.2 3.8-4.6 3.8H18c-.3 0-.5.2-.6.5l-.6 3.9-.2 1c0 .2.1.4.3.4H19c.3 0 .5-.2.5-.4v-.1l.4-2.4v-.1c0-.2.3-.4.5-.4h.3c2.1 0 3.7-.8 4.1-3.2.2-1 .1-1.8-.4-2.4-.1-.5-.3-.7-.5-.8z"/><path fill="#012169" d="M23.3 8.1c-.1-.1-.2-.1-.3-.1-.1 0-.2 0-.3-.1-.3-.1-.7-.1-1.1-.1h-3c-.1 0-.2 
161420-.2.1-.2.1-.3.2-.3.4l-.7 4.4v.1c0-.3.3-.5.6-.5h1.3c2.5 0 4.1-1 4.6-3.8v-.2c-.1-.1-.3-.2-.5-.2h-.1z"/></svg>
16143              </li>
16144            
16145              <li>
16146                <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-amazon"><title id="pi-amazon">Amazon</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" fill-rule="nonzero" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF" fill-rule="nonzero"/><path d="M25.26 16.23c-1.697 1.48-4.157 2.27-6.275 2.27-2.97 0-5.644-1.3-7.666-3.463-.16-.17-.018-.402.173-.27 2.183 1.504 4.882 2.408 7.67 2.408 1.88 0 3.95-.46 5.85-1.416.288-.145.53.222.248.47v.001zm.706-.957c-.216-.328-1.434-.155-1.98-.078-.167.024-.193-.148-.043-.27.97-.81 2.562-.576 2.748-.305.187.272-.047 2.16-.96 3.063-.14.138-.272.064-.21-.12.205-.604.664-1.96.446-2.29h-.001z" fill="#F90" fill-rule="nonzero"/><path d="M21.814 15.291c-.574-.498-.676-.73-.993-1.205-.947 1.012-1.618 1.315-2.85 1.315-1.453 0-2.587-.938-2.587-2.818 0-1.467.762-2.467 1.844-2.955.94-.433 2.25-.51 3.25-.628v-.235c0-.43.033-.94-.208-1.31-.212-.333-.616-.47-.97-.47-.66 0-1.25.353-1.392 1.085-.03.163-.144.323-.3.33l-1.677-.187c-.14-.033-.296-.153-.257-.38.386-2.125 2.223-2.766 3.867-2.766.84 0 1.94.234 2.604.9.842.82.762 1.918.762 3.11v2.818c0 .847.335 1.22.65 1.676.113.164.138.36-.003.482-.353.308-.98.88-1.326 1.2a.367.367 0 0 1-.414.038zm-1.659-2.533c.34-.626.323-1.214.323-1.918v-.392c-1.25 0-2.57.28-2.57 1.82 0 .782.386 1.31 1.05 1.31.487 0 .922-.312 1.197-.82z" fill="#221F1F"/></svg>
16147
16148              </li>
16149            
16150              <li>
16151                <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-google_pay"><title id="pi-google_pay">Google Pay</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF"/><path d="M18.093 11.976v3.2h-1.018v-7.9h2.691a2.447 2.447 0 0 1 1.747.692 2.28 2.28 0 0 1 .11 3.224l-.11.116c-.47.447-1.098.69-1.747.674l-1.673-.006zm0-3.732v2.788h1.698c.377.012.741-.135 1.005-.404a1.391 1.391 0 0 0-1.005-2.354l-1.698-.03zm6.484 1.348c.65-.03 1.286.188 1.778.613.445.43.682 1.03.65 1.649v3.334h-.969v-.766h-.049a1.93 1.93 0 0 1-1.673.931 2.17 2.17 0 0 1-1.496-.533 1.667 1.667 0 0 1-.613-1.324 1.606 1.606 0 0 1 .613-1.336 2.746 2.746 0 0 1 1.698-.515c.517-.02 1.03.093 1.49.331v-.208a1.134 1.134 0 0 0-.417-.901 1.416 1.416 0 0 0-.98-.368 1.545 1.545 0 0 0-1.319.717l-.895-.564a2.488 2.488 0 0 1 2.182-1.
1615106zM23.29 13.52a.79.79 0 0 0 .337.662c.223.176.5.269.785.263.429-.001.84-.17 1.146-.472.305-.286.478-.685.478-1.103a2.047 2.047 0 0 0-1.324-.374 1.716 1.716 0 0 0-1.03.294.883.883 0 0 0-.392.73zm9.286-3.75l-3.39 7.79h-1.048l1.281-2.728-2.224-5.062h1.103l1.612 3.885 1.569-3.885h1.097z" fill="#5F6368"/><path d="M13.986 11.284c0-.308-.024-.616-.073-.92h-4.29v1.747h2.451a2.096 2.096 0 0 1-.9 1.373v1.134h1.464a4.433 4.433 0 0 0 1.348-3.334z" fill="#4285F4"/><path d="M9.629 15.721a4.352 4.352 0 0 0 3.01-1.097l-1.466-1.14a2.752 2.752 0 0 1-4.094-1.44H5.577v1.17a4.53 4.53 0 0 0 4.052 2.507z" fill="#34A853"/><path d="M7.079 12.05a2.709 2.709 0 0 1 0-1.735v-1.17H5.577a4.505 4.505 0 0 0 0 4.075l1.502-1.17z" fill="#FBBC04"/><path d="M9.629 8.44a2.452 2.452 0 0 1 1.74.68l1.3-1.293a4.37 4.37 0 0 0-3.065-1.183 4.53 4.53 0 0 0-4.027 2.5l1.502 1.171a2.715 2.715 0 0 1 2.55-1.875z" fill="#EA4335"/></svg>
16152
16153              </li>
16154            
16155              <li>
16156                <svg class="icon icon--full-color" version="1.1" xmlns="http://www.w3.org/2000/svg" role="img" x="0" y="0" width="38" height="24" viewBox="0 0 165.521 105.965" xml:space="preserve" aria-labelledby="pi-apple_pay"><title id="pi-apple_pay">Apple Pay</title><path fill="#000" d="M150.698 0H14.823c-.566 0-1.133 0-1.698.003-.477.004-.953.009-1.43.022-1.039.028-2.087.09-3.113.274a10.51 10.51 0 0 0-2.958.975 9.932 9.932 0 0 0-4.35 4.35 10.463 10.463 0 0 0-.975 2.96C.113 9.611.052 10.658.024 11.696a70.22 70.22 0 0 0-.022 1.43C0 13.69 0 14.256 0 14.823v76.318c0 .567 0 1.132.002 1.699.003.476.009.953.022 1.43.028 1.036.09 2.084.275 3.11a10.46 10.46 0 0 0 .974 2.96 9.897 9.897 0 0 0 1.83 2.52 9.874 9.874 0 0 0 2.52 1.83c.947.483 1.917.79 2.96.977 1.025.183 2.073.245 3.112.273.477.011.953.017 1.43.02.565.004 1.132.004 1.698.004h135.875c.565 0 1.132 0 1.697-.004.476-.002.952-.009 1.431-.02 1.037-.028 2.085-.09 3.113-.273a10.478 10.478 0 0 0 2.958-.977 9.955 9.955 0 0 0 4.35-4.35c.483-.947.789-1.917.974-2.96.186-1.026.246-2.074.274-3.11.013-.477.02-.954.022-1.43.004-.567.004-1.132.004-1.699V14.824c0-.567 0-1.133-.004-1.699a63.067 63.067 0 0 0-.022-1.429c-.028-1.038-.088-2.085-.274-3.112a10.4 10.4 0 0 0-.974-2.96 9.94 9.94 0 0 0-4.35-4.35A10.52 10.52 0 0 0 156.939.3c-1.028-.185-2.076-.246-3.113-.274a71.417 71.417 0 0 0-1.431-.022C151.83 0 151.263 0 150.698 0z" /><path fill="#FFF" d="M150.698 3.532l1.672.003c.452.003.905.008 1.36.02.793.022 1.719.065 2.583.22.75.135 1.38.34 1.984.648a6.392 6.392 0 0 1 2.804 2.807c.306.6.51 1.226.645 1.983.154.854.197 1.783.218 2.58.013.45.019.9.02 1.36.005.557.005 1.113.005 1.671v76.318c0 .558 0 1.114-.004 1.682-.002.45-.008.9-.02 1.35-.022.796-.065 1.725-.221 2.589a6.855 6.855 0 0 1-.645 1.975 6.397 6.397 0 0 1-2.808 2.807c-.6.306-1.228.511-1.971.645-.881.157-1.847.2-2.574.22-.457.01-.912.017-1.379.019-.555.004-1.113.004-1.669.004H14.801c-.55 0-1.1 0-1.66-.004a74.993 74.993 0 0 1-1.35-.018c-.744-.02-1.71-.064-2.584-.22a6.938 6.938 0 0 1-1.986-.65 6.337 6.337 0 0 1-1.622-1.18 6.355 6.355 0 0 1-1.178-1.623 6.935 6.935 0 0 1-.646-1.985c-.156-.863-.2-1.788-.22-2.578a66.088 66.088 0 0 1-.02-1.355l-.003-1.327V14.474l.002-1.325a66.7 66.7 0 0 1 .02-1.357c.022-.792.065-1.717.222-2.587a6.924 6.924 0 0 1 .646-1.981c.304-.598.7-1.144 1.18-1.623a6.386 6.386 0 0 1 1.624-1.18 6.96 6.96 0 0 1 1.98-.646c.865-.155 1.792-.198 2.586-.22.452-.012.905-.017 1.354-.02l1.677-.003h135.875" /><g><g><path fill="#000" d="M43.508 35.77c1.404-1.755 2.356-4.112 2.105-6.52-2.054.102-4.56 1.355-6.012 3.112-1.303 1.504-2.456 3.959-2.156 6.266 2.306.2 4.61-1.152 6.063-2.858" /><path fill="#000" d="M45.587 39.079c-3.35-.2-6.196 1.9-7.795 1.9-1.6 0-4.049-1.8-6.698-1.751-3.447.05-6.645 2-8.395 5.1-3.598 6.2-.95 15.4 2.55 20.45 1.699 2.5 3.747 5.25 6.445 5.151 2.55-.1 3.549-1.65 6.647-1.65 3.097 0 3.997 1.65 6.696 1.6 2.798-.05 4.548-2.5 6.247-5 1.95-2.85 2.747-5.6 2.797-5.75-.05-.05-5.396-2.101-5.446-8.251-.05-5.15 4.198-7.6 4.398-7.751-2.399-3.548-6.147-3.948-7.447-4.048" /></g><g><path fill="#000" d="M78.973 32.11c7.278 0 12.347 5.017 12.347 12.321 0 7.33-5.173 12.373-12.529 12.373h-8.058V69.62h-5.822V32.11h14.062zm-8.24 19.807h6.68c5.07 0 7.954-2.729 7.954-7.46 0-4.73-2.885-7.434-7.928-7.434h-6.706v14.894z" />
16156<path fill="#000" d="M92.764 61.847c0-4.809 3.665-7.564 10.423-7.98l7.252-.442v-2.08c0-3.04-2.001-4.704-5.562-4.704-2.938 0-5.07 1.507-5.51 3.82h-5.252c.157-4.86 4.731-8.395 10.918-8.395 6.654 0 10.995 3.483 10.995 8.89v18.663h-5.38v-4.497h-.13c-1.534 2.937-4.914 4.782-8.579 4.782-5.406 0-9.175-3.222-9.175-8.057zm17.675-2.417v-2.106l-6.472.416c-3.64.234-5.536 1.585-5.536 3.95 0 2.288 1.975 3.77 5.068 3.77 3.95 0 6.94-2.522 6.94-6.03z" /><path fill="#000" d="M120.975 79.652v-4.496c.364.051 1.247.103 1.715.103 2.573 0 4.029-1.09 4.913-3.899l.52-1.663-9.852-27.293h6.082l6.863 22.146h.13l6.862-22.146h5.927l-10.216 28.67c-2.34 6.577-5.017 8.735-10.683 8.735-.442 0-1.872-.052-2.261-.157z" /></g></g></svg>
16157
16158              </li>
16159            
16160              <li>
16161                <svg class="icon icon--full-color" viewBox="0 0 38 24" width="38" height="24" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="pi-venmo"><title id="pi-venmo">Venmo</title><g fill="none" fill-rule="evenodd"><rect fill-opacity=".07" fill="#000" width="38" height="24" rx="3"/><path fill="#3D95CE" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M24.675 8.36c0 3.064-2.557 7.045-4.633 9.84h-4.74L13.4 6.57l4.151-.402 1.005 8.275c.94-1.566 2.099-4.025 2.099-5.702 0-.918-.154-1.543-.394-2.058l3.78-.783c.437.738.634 1.499.634 2.46z" fill="#FFF" fill-rule="nonzero"/></g></svg>
16162
16163              </li>
16164            
16165          </ul>
16166        
16167      </div>
16168    </div>
16169
16170    
16171    <div
16172      class="
16173        flex w-full flex-wrap items-center justify-between gap-4
16174        window--wide
16175      "
16176    >
16177      
16178      
16179
16180      
16181      <div
16182        class="flex w-full flex-1 flex-wrap gap-2 md:w-auto md:text-right"
16183      >
16184        
16185        <div class="m-0--clear type--smaller w-full opacity-50">
16186          
16187          
16188          Copyright 2026 ©. All rights reserved.
16189        </div>
16190      </div>
16191    </div>
16192  </section>
16193</footer>
16194
16195
16196<style> #shopify-section-sections--21256152088883__theme_footer [aria-labelledby="pi-venmo"] {display: none;} </style></div>
16197<!-- END sections: footer-group -->
16198      <!-- BEGIN sections: overlay-group -->
16199<div id="shopify-section-sections--21364686750003__theme_scrollup" class="shopify-section shopify-section-group-overlay-group"><!-- sections/theme__scrollup.liquid -->
16200
16201
16202<section>
16203  
16204</section>
16205
16206
16207</div><div id="shopify-section-sections--21364686750003__theme_age-verification" class="shopify-section shopify-section-group-overlay-group"><!-- sections/theme__age-verification.liquid -->
16208
16209
16210
16211
16212
16213
16214</div>
16215<!-- END sections: overlay-group -->
16216
16217      <!-- snippets/theme__localization-popup.liquid -->
16218
16219
16220
16221<!-- snippets/component__popup.liquid -->
16222
16223
16224<section 
16225  role="dialog" 
16226  aria-modal="true"
16227  class="fixed inset-0 z-50 overflow-hidden"
16228  @keyup.escape.window="localization_popup = false;"
16229  x-show="localization_popup"
16230  x-cloak>
16231  <div class="sm:block sm:p-0 flex items-end justify-center min-h-screen px-4 pt-4 text-center">  
16232    <div aria-hidden="true"
16233      class="fixed inset-0 transition-opacity bg-black bg-opacity-50" 
16234      @click="localization_popup = false;"
16235      x-show="localization_popup"
16236      
16237        x-transition:enter="animation-300"
16238        x-transition:enter-start="opacity-0"
16239        x-transition:enter-end="opacity-100"
16240        x-transition:leave="animation-300"
16241        x-transition:leave-start="opacity-100"
16242        x-transition:leave-end="opacity-0"
16243      
16244      x-cloak>
16245    </div>
16246    <div class="md:left-5 md:bottom-auto md:right-5 md:top-1/2 md:align-middle md:max-w-md md:-translate-y-1/2 absolute bottom-0 left-0 right-0 inline-block m-auto text-left align-bottom transition-all transform"
16247      x-show="localization_popup"
16248      x-trap="localization_popup"
16249      
16250        x-transition:enter="animation-300"
16251        x-transition:enter-start="opacity-0 translate-y-8"
16252        x-transition:enter-end="opacity-100"
16253        x-transition:leave="animation-300"
16254        x-transition:leave-start="opacity-100"
16255        x-transition:leave-end="opacity-0 translate-y-8"
16256      
16257      x-cloak>
16258      <div class="md:px-0 px-4 py-4">
16259        <button class="btn btn--smaller btn--plain" 
16260          type="button"
16261          title="Close"
16262          @click="localization_popup = false;">
16263          <!-- snippets/component__icon.liquid -->
16264
16265
16266<span class="inline-flex align-middle " aria-hidden="true">
16267  
16268      <svg
16269        xmlns="http://www.w3.org/2000/svg"
16270        width="24"
16271        height="24"
16272        viewBox="0 0 24 24"
16273        fill="none"
16274        stroke="currentColor"
16275        stroke-width="2"
16276        stroke-linecap="round"
16277        stroke-linejoin="round"
16278        class="feather feather-x"
16279      >
16280        <line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line>
16281      </svg>
16282    
16283</span>
16284
16285        </button>
16286      </div>
16287      <div class="mobile-border--radius-b-0 color__bg-body border--radius overflow-y-auto shadow-lg max-h-[70vh]"
16288        @click.outside="localization_popup = false;">
16289        
16290
16291  
16292
16293  
16294  <!-- snippets/script__localization.liquid -->
16295
16296
16297<script>
16298  class LocalizationForm extends HTMLElement {
16299
16300    constructor() {
16301      super();
16302      this.elements = {
16303        input: this.querySelector('input[name="language_code"], input[name="country_code"]'),
16304        button: this.querySelector('button'),
16305      };  
16306      this.querySelectorAll('[id^="language_selection_"]').forEach(item => item.addEventListener('click', this.onItemClick.bind(this)));
16307      this.querySelectorAll('[id^="country_selection_"]').forEach(item => item.addEventListener('click', this.onItemClick.bind(this)));
16308    }
16309  
16310    onItemClick(event) {
16311      event.preventDefault();
16312      const form = this.querySelector('form');
16313      this.elements.input.value = event.currentTarget.dataset.value;
16314      if (form) form.submit();
16315    }
16316  
16317    openSelector() {
16318      this.elements.button.focus();
16319      this.elements.button.setAttribute('aria-expanded', (this.elements.button.getAttribute('aria-expanded') === 'false').toString());
16320    }
16321
16322  }
16323  
16324  customElements.define('localization-form', LocalizationForm);
16325</script>
16325
16326
16327
16328      </div>
16329    </div>
16330  </div>
16331</section>
16332      <!-- snippets/theme__audio-popup.liquid -->
16333
16334
16335
16336<!-- snippets/component__popup.liquid -->
16337
16338
16339<section 
16340  role="dialog" 
16341  aria-modal="true"
16342  class="fixed inset-0 z-50 overflow-hidden"
16343  @keyup.escape.window="audio_popup = false;"
16344  x-show="audio_popup"
16345  x-cloak>
16346  <div class="sm:block sm:p-0 flex items-end justify-center min-h-screen px-4 pt-4 text-center">  
16347    <div aria-hidden="true"
16348      class="fixed inset-0 transition-opacity bg-black bg-opacity-50" 
16349      @click="audio_popup = false;"
16350      x-show="audio_popup"
16351      
16352        x-transition:enter="animation-300"
16353        x-transition:enter-start="opacity-0"
16354        x-transition:enter-end="opacity-100"
16355        x-transition:leave="animation-300"
16356        x-transition:leave-start="opacity-100"
16357        x-transition:leave-end="opacity-0"
16358      
16359      x-cloak>
16360    </div>
16361    <div class="md:left-5 md:bottom-auto md:right-5 md:top-1/2 md:align-middle md:max-w-md md:-translate-y-1/2 absolute bottom-0 left-0 right-0 inline-block m-auto text-left align-bottom transition-all transform"
16362      x-show="audio_popup"
16363      x-trap="audio_popup"
16364      
16365        x-transition:enter="animation-300"
16366        x-transition:enter-start="opacity-0 translate-y-8"
16367        x-transition:enter-end="opacity-100"
16368        x-transition:leave="animation-300"
16369        x-transition:leave-start="opacity-100"
16370        x-transition:leave-end="opacity-0 translate-y-8"
16371      
16372      x-cloak>
16373      <div class="md:px-0 px-4 py-4">
16374        <button class="btn btn--smaller btn--plain" 
16375          type="button"
16376          title="Close"
16377          @click="audio_popup = false;">
16378          <!-- snippets/component__icon.liquid -->
16379
16380
16381<span class="inline-flex align-middle " aria-hidden="true">
16382  
16383      <svg
16384        xmlns="http://www.w3.org/2000/svg"
16385        width="24"
16386        height="24"
16387        viewBox="0 0 24 24"
16388        fill="none"
16389        stroke="currentColor"
16390        stroke-width="2"
16391        stroke-linecap="round"
16392        stroke-linejoin="round"
16393        class="feather feather-x"
16394      >
16395        <line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line>
16396      </svg>
16397    
16398</span>
16399
16400        </button>
16401      </div>
16402      <div class="mobile-border--radius-b-0 color__bg-body border--radius overflow-y-auto shadow-lg max-h-[70vh]"
16403        @click.outside="audio_popup = false;">
16404        
16405  <button class="type__nav border--b-width color__border-divider-1 hover:color__bg-overlay-1 block w-full p-4 text-left no-underline"
16406    @click.prevent="enable_audio = true; localStorage.setItem('paper_enable_audio', 'true')">
16407    <span x-show="enable_audio == true">
16408      <!-- snippets/component__icon.liquid -->
16409
16410
16411<span class="inline-flex align-middle mr-1" aria-hidden="true">
16412  
16413      <svg
16414        xmlns="http://www.w3.org/2000/svg"
16415        width="16"
16416        height="16"
16417        viewBox="0 0 24 24"
16418        fill="none"
16419        stroke="currentColor"
16420        stroke-width="2"
16421        stroke-linecap="round"
16422        stroke-linejoin="round"
16423        class="feather feather-check"
16424      >
16425        <polyline points="20 6 9 17 4 12"></polyline>
16426      </svg>
16427    
16428</span>
16429
16430    </span>
16431    Enable audio
16432  </button>
16433  <button class="type__nav hover:color__bg-overlay-1 block w-full p-4 text-left no-underline"
16434    @click.prevent="enable_audio = false; localStorage.setItem('paper_enable_audio', 'false')">
16435    <span x-show="enable_audio == false">
16436      <!-- snippets/component__icon.liquid -->
16437
16438
16439<span class="inline-flex align-middle mr-1" aria-hidden="true">
16440  
16441      <svg
16442        xmlns="http://www.w3.org/2000/svg"
16443        width="16"
16444        height="16"
16445        viewBox="0 0 24 24"
16446        fill="none"
16447        stroke="currentColor"
16448        stroke-width="2"
16449        stroke-linecap="round"
16450        stroke-linejoin="round"
16451        class="feather feather-check"
16452      >
16453        <polyline points="20 6 9 17 4 12"></polyline>
16454      </svg>
16455    
16456</span>
16457
16458    </span>
16459    Disable audio
16460  </button>
16461
16462      </div>
16463    </div>
16464  </div>
16465</section>
16466      <!-- snippets/theme__error-popup.liquid -->
16467
16468
16469
16470<!-- snippets/component__alert.liquid -->
16471
16472
16473<div class="md:left-auto md:right-5 md:top-5 color__bg-body color__text border--radius md:w-96 border--width color__border-divider-1 fixed top-0 left-0 right-0 z-50 w-auto overflow-hidden shadow-md" 
16474  @click.outside="show_alert = false"
16475  @keyup.escape.window="show_alert = false"
16476  x-show="show_alert"
16477  
16478    x-transition:enter="animation-300"
16479    x-transition:enter-start="opacity-0"
16480    x-transition:enter-end="opacity-100"
16481    x-transition:leave="animation-300"
16482    x-transition:leave-start="opacity-100"
16483    x-transition:leave-end="opacity-0"
16484  
16485  x-cloak>
16486 
16487  <div class="relative p-4 overflow-hidden">
16488    
16489    
16490  <div class="flex flex-wrap items-center justify-between mb-4">
16491    <p class="flex items-center mb-0"
16492      x-text="error_title"></p>
16493    <button class="btn btn--smaller btn--plain"
16494      title="Close"
16495      @click="show_alert = false">
16496      <!-- snippets/component__icon.liquid -->
16497
16498
16499<span class="inline-flex align-middle " aria-hidden="true">
16500  
16501      <svg
16502        xmlns="http://www.w3.org/2000/svg"
16503        width="24"
16504        height="24"
16505        viewBox="0 0 24 24"
16506        fill="none"
16507        stroke="currentColor"
16508        stroke-width="2"
16509        stroke-linecap="round"
16510        stroke-linejoin="round"
16511        class="feather feather-x"
16512      >
16513        <line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line>
16514      </svg>
16515    
16516</span>
16517
16518    </button>
16519  </div>
16520  <div>
16521    <p class="mb-0" 
16522      x-text="error_message"></p>
16523  </div>
16524
16525  </div>
16526</div>
16527      
16527<script async crossorigin fetchpriority="high" src="/cdn/shopifycloud/importmap-polyfill/es-modules-shim.2.4.0.js"></script>
vendor: 1 bytes, line 16527
16527
16528<script type="importmap">
16529  {
16530    "imports": {
16531      "alpinejs": "https://cdn.jsdelivr.net/npm/[email protected]/dist/module.esm.min.js",
16532      "@alpinejs/focus": "https://cdn.jsdelivr.net/npm/@alpinejs/[email protected]/dist/module.esm.min.js",
16533      "@alpinejs/intersect": "https://cdn.jsdelivr.net/npm/@alpinejs/[email protected]/dist/module.esm.min.js",
16534      "theme/bsl": "//www.seattlecoffeegear.com/cdn/shop/t/4/assets/theme-bsl.js?v=178919795351328436801778794383",
16535      "theme/globals": "//www.seattlecoffeegear.com/cdn/shop/t/4/assets/theme-globals.js?v=97689550620484394861778794386",
16536      "theme/cart": "//www.seattlecoffeegear.com/cdn/shop/t/4/assets/theme-cart.js?v=101474761087039252641790365273",
16537      "theme/search": "//www.seattlecoffeegear.com/cdn/shop/t/4/assets/theme-search.js?v=108326625697426168021778794387",
16538      "theme/collections": "//www.seattlecoffeegear.com/cdn/shop/t/4/assets/theme-collections.js?v=180017826159887890011778794384",
16539      "theme/util": "//www.seattlecoffeegear.com/cdn/shop/t/4/assets/theme-util.js?v=182505900553291918701778794388",
16540      "theme/tagalys": "//www.seattlecoffeegear.com/cdn/shop/t/4/assets/theme-tagalys.js?v=14532526135575393141789574321",
16541      "theme/cookies": "//www.seattlecoffeegear.com/cdn/shop/t/4/assets/theme-cookies.js?v=98591664362376396351778794385",
16542      "theme/promo-messaging": "//www.seattlecoffeegear.com/cdn/shop/t/4/assets/theme-promo-messaging.js?v=47486882762788507031778794386",
16543      "theme/animation": "//www.seattlecoffeegear.com/cdn/shop/t/4/assets/theme-animation-observer.js?v=164527484286546929671778794382",
16544      "theme/format-money": "//www.seattlecoffeegear.com/cdn/shop/t/4/assets/theme-format-money.js?v=115398150903042036341778794385"
16545    }
16546  }
16547</script>
16547
16548
16549<script src="https://cdn.jsdelivr.net/npm/[email protected]/instantpage.min.js" type="module"></script>
16549
16550
16551<script src="//www.seattlecoffeegear.com/cdn/shop/t/4/assets/page-search.js?v=125269946050982813451778794379" type="module"></script>
16551<script src="//www.seattlecoffeegear.com/cdn/shop/t/4/assets/main.js?v=168803651101593317931778794378" type="module"></script>
16551
16552
16553      <!-- snippets/theme__scripts.liquid -->
16554
16555
16556<script>
16557  window.__initialData = window.__initialData || {};
16558  Object.assign(window.__initialData, {
16559    // Audio related properties
16560    
16561    
16562    
16563    enable_audio: false,
16564    audio_popup: false,
16565    // Scroll related properties
16566    is_scrolled: false,
16567    prev_scroll_pos: 0,
16568    scroll_up: false,
16569    scroll_up_force: true,
16570    hide_header: false,
16571    reduce_product_zindex: false,
16572    // Mouse position properties
16573    mouse_x: 0,
16574    mouse_y: 0,
16575    // Menu related properties
16576    menu_drawer: false,
16577    menu_nested: false,
16578    // Popup related properties
16579    age_popup:  localStorage.getItem("agePopupConfirmed") ? true : false,
16580    filter_popup: false,
16581    localization_popup: false,
16582    // Alert related properties
16583    show_alert: false,
16584    error_title: 'Something went wrong...',
16585    error_message: '',
16586    // Product related properties
16587    recent_products: localStorage.getItem("recentlyViewedProducts") ? JSON.parse(localStorage.getItem("recentlyViewedProducts")) : [],
16588    incomplete_fields: false,
16589    selectedImageIndex: 0,
16590    // Cart related properties
16591    cart_drawer: false,
16592    cart_modal: false,
16593    cart_loading: false,
16594    cart_alert: false,
16595    cart_delay: 5000,
16596    cart_delay_width: 0,
16597    cart_behavior: 'alert',
16598    cart: {
16599      items: [],
16600      note: null,
16601      item_count: 0,
16602      recently_added: {},
16603      total_price: 0,
16604      original_total_price: 0,
16605      total_discount: 0,
16606      shipping_gap: 0,
16607      shipping_progress: '0%',
16608    },
16609    // Search related properties
16610    search_loading: false,
16611    search_active: false,
16612    search_items: [],
16613    search_items_collections: [],
16614    search_items_pages: [],
16615    search_items_articles: [],
16616    search_items_queries: [],
16617    // Collection and pagination related properties
16618    collection_loading: false,
16619    currency_symbol:  '$' ,
16620    button_loading: false
16621  });
16622</script>
16622
16623
16624
16625
16626<!-- snippets/script__design-mode.liquid -->
16627
16628
16629
16630
16631      <!-- All Pages Scripts -->
16632
16633<script
16634  src="https://storage.googleapis.com/tagalys-front-end-components/tagalys-api-connector-2.0.0-beta2.min.js"
16635  defer
16636  ></script>
16636
16637
16638<!-- Affirm - Updated for cookieless contexts -->
16639<script>
16640  // Configure Affirm with latest settings
16641  var _affirm_config = {
16642    public_api_key: '9KH69N77B4WOA1C7',
16643    script: 'https://cdn1.affirm.com/js/v2/affirm.js',
16644    // Enable cookieless mode (falls back to localStorage/IndexedDB)
16645    use_vcn: false,
16646    // Add error handling for third-party cookie restrictions
16647    onError: function(error) {
16648      console.warn('Affirm SDK:', error.message || 'Third-party cookies unavailable - using fallback');
16649      // Show static fallback messaging
16650      document.querySelectorAll('.affirm-as-low-as').forEach(function(el) {
16651        if (!el.textContent.trim()) {
16652          var amount = el.getAttribute('data-amount');
16653          if (amount) {
16654            var monthlyPayment = Math.ceil(amount / 100 / 12); // Rough estimate: divide by 12 months
16655            el.innerHTML = '<span class="affirm-fallback">Financing available from $' + monthlyPayment + '/month. <a href="https://www.affirm.com/how-it-works" target="_blank" rel="noopener">Learn more</a></span>';
16656            el.style.display = 'block';
16657          }
16658        }
16659      });
16660    }
16661  };
16662
16663  // Async loader with error handling
16664  (function (l, g, m, e, a, f, b) {
16665    var d,
16666      c = l[m] || {},
16667      h = document.createElement(f),
16668      n = document.getElementsByTagName(f)[0],
16669      k = function (a, b, c) {
16670        return function () {
16671          a[b]._.push([c, arguments]);
16672        };
16673      };
16674    c[e] = k(c, e, 'set');
16675    d = c[e];
16676    c[a] = {};
16677    c[a]._ = [];
16678    d._ = [];
16679    c[a][b] = k(c, a, b);
16680    a = 0;
16681    for (b = 'set add save post open empty reset on off trigger ready setProduct'.split(' '); a < b.length; a++)
16682      d[b[a]] = k(c, e, b[a]);
16683    a = 0;
16684    for (b = ['get', 'token', 'url', 'items']; a < b.length; a++) d[b[a]] = function () {};
16685    
16686    // Add error handling for script load failures
16687    h.onerror = function() {
16688      console.warn('Affirm script failed to load - showing fallback messaging');
16689      if (typeof g.onError === 'function') {
16690        g.onError({ message: 'Script load failed' });
16691      }
16692    };
16693    
16694    h.async = !0;
16695    h.src = g[f];
16696    n.parentNode.insertBefore(h, n);
16697    delete g[f];
16698    d(g);
16699    l[m] = c;
16700  })(window, _affirm_config, 'affirm', 'checkout', 'ui', 'script', 'ready');
16701
16702  // Fallback timeout: if Affirm doesn't load within 5 seconds, show static content
16703  setTimeout(function() {
16704    if (typeof window.affirm === 'undefined' || !window.affirm.ui) {
16705      console.warn('Affirm SDK did not initialize - using static fallback');
16706      if (typeof _affirm_config.onError === 'function') {
16707        _affirm_config.onError({ message: 'SDK timeout' });
16708      }
16709    }
16710  }, 5000);
16711</script>
16711
16712<!-- End Affirm -->
16713
16714
16715<!-- Extend - Add necessary SDK script tags and configure the store -->
16716<script src="https://sdk.helloextend.com/extend-sdk-client/v1/extend-sdk-client.min.js" defer="defer"></script>
vendor: 1 bytes, line 16716
16716
16717<script
16718  src="https://sdk.helloextend.com/extend-sdk-client-shopify-addon/v1/extend-sdk-client-shopify-addon.min.js"
16719  defer="defer"
16720></script>
vendor: 1 bytes, line 16720
16720
16721<script>
16722  window.addEventListener('DOMContentLoaded', function () {
16723    window.Extend.config({ storeId: '2d398a03-5a18-4507-870c-93ed4fdbcd8e', environment: 'production' });
16724    window.Extend.integration = {};
16725
16726    // Extend - Analytics and writeLogs boolean
16727    window.Extend.integration.analytics = true;
16728
16729    // Set to true while developing integration for better debugging - Be sure to set to false before going live
16730    window.Extend.integration.writeLogs = false;
16731
16732    // Extend - QA Cypress booleans
16733    window.Extend.integration.isExtendPdpOfferEnabled = true;
16734    window.Extend.integration.isExtendOfferModalEnabled = true;
16735    window.Extend.integration.isExtendMainCartOfferEnabled = true;
16736
16737    // Extend - QA Cypress SP booleans
16738    window.Extend.integration.isShippingProtectionEnabled = false;
16739    window.Extend.integration.isSpCheckOutExt = false;
16740    window.Extend.integration.isShippingProtectionOptOut = true;
16741    window.Extend.integration.isShippingProtectionOnMainCart = false;
16742
16743    // Only defines utils if Extend and ExtendShopify is defined
16744    if (window.Extend && window.ExtendShopify) {
16745      const extendUtils = {
16746        /*
16747         * takes in object and logs it if writeLogs is true
16748         * @param {object} objToLog will be an object of information to log
16749         */
16750        logger: (objToLog) => {
16751          try {
16752            if (Extend.integration.writeLogs) {
16753              console.log('EXTEND: ', objToLog);
16754            }
16755          } catch (error) {
16756            console.warn('EXTEND: ' + error);
16757          }
16758        },
16759      };
16760      window.Extend.integration.utils = extendUtils;
16761    }
16762  });
16763</script>
16763
16764
16765<!-- Extend - Render aftermarket integration snippet -->
16766<script>
16767  window.addEventListener('DOMContentLoaded', function () {
16768    if (
16769      window.Extend &&
16770      window.ExtendShopify &&
16771      window.Shopify &&
16772      window.Shopify.currency &&
16773      window.Shopify.currency.active === 'USD'
16774    ) {
16775      try {
16776        // Get params from URL
16777        const params = new URL(document.location).searchParams;
16778
16779        // Check if leadToken or leadtoken is in the URL
16780        let leadToken = params.get('leadToken') ? params.get('leadToken') : params.get('leadtoken');
16781
16782        if (leadToken) {
16783          Extend.aftermarketModal.open({
16784            leadToken: leadToken,
16785            onClose: function (plan, product, quantity) {
16786              if (plan && product) {
16787                ExtendShopify.addPlanToCart(
16788                  {
16789                    plan: plan,
16790                    product: product,
16791                    leadToken: leadToken,
16792                    quantity: quantity || 1,
16793                  },
16794                  function () {
16795                    window.location = '/cart';
16796                  }
16797                );
16798              }
16799            },
16800          });
16801        }
16802      } catch (error) {
16803        console.error('EXTEND: ' + error);
16804      }
16805    }
16806  });
16807</script>
16807
16808
16809
16810<!-- Extend - Render analytics -->
16811<script>
16812  // run scripts on DOMContentLoaded to avoid affecting site load time
16813  window.addEventListener('DOMContentLoaded', function () {
16814    // Only run ajax integration if Extend and ExtendShopify is defined, the currency is set to USD and analytics are enabled
16815    if (
16816      window.Extend &&
16817      window.ExtendShopify &&
16818      Extend.integration.analytics &&
16819      window.Shopify &&
16820      window.Shopify.currency &&
16821      window.Shopify.currency.active === 'USD'
16822    ) {
16823      /***********************/
16824      /* util functions      */
16825      /***********************/
16826
16827      // getPlanId - Takes in the cart and a product ID and returns the plan ID for that product
16828      function getPlanId(cart, productId) {
16829        let planId;
16830        cart.items.forEach(function (item) {
16831          if (item.properties.Ref && item.properties.Ref === productId) planId = item.sku.toString();
16832        });
16833        return planId;
16834      }
16835
16836      /***********************/
16837      /* end util functions  */
16838      /***********************/
16839
16840      // productAnalytics() - Takes in the product ID and quantity at the time it is added to the cart
16841      let productAnalytics = function (prodId, prodQty) {
16842        if (prodId) {
16843          if (!prodQty) prodQty = 1;
16844
16845          Extend.trackProductAddedToCart({ productId: prodId.toString(), productQuantity: parseInt(prodQty) });
16846        } else {
16847          console.warn('Extend: Product id is ' + prodId);
16848        }
16849      };
16850
16851      // cartAnalytics() - Takes in the oldCart and the newCart at a point where the cart updates
16852      let cartAnalytics = function (oldCart, newCart) {
16853        try {
16854          //if there is an old or new cart with items.
16855          if (oldCart && newCart && oldCart.items && newCart.items) {
16856            // Triggers if an item has been removed
16857            if (oldCart.items.length > newCart.items.length) {
16858              oldCart.items.forEach(function (currentItem) {
16859                let productFound = false;
16860                newCart.items.forEach(function (currentNewItem) {
16861                  if (currentItem.id == currentNewItem.id) {
16862                    productFound = true;
16863                  }
16864                });
16865
16866                // making sdk call of which product was removed from cart
16867                if (productFound === false) {
16868                  if (currentItem.vendor === 'Extend' && currentItem && currentItem.sku && currentItem.properties.Ref) {
16869                    Extend.trackOfferRemovedFromCart({
16870                      productId: currentItem.properties.Ref.toString(),
16871                      planId: currentItem.sku.toString(),
16872                    });
16873                  } else if (currentItem.id) {
16874                    Extend.trackProductRemovedFromCart({ productId: currentItem.id.toString() });
16875                  }
16876                }
16877              });
16878
16879              // Triggers if an item quantity has changed
16880            } else if (oldCart.item_count != newCart.item_count) {
16881              oldCart.items.forEach(function (currentItem) {
16882                newCart.items.forEach(function (currentNewItem) {
16883                  // Runs when the updated item is found if its not an Extend warranty
16884                  if (
16885                    currentItem.id == currentNewItem.id &&
16886                    currentItem.quantity != currentNewItem.quantity &&
16887                    currentItem.vendor != 'Extend'
16888                  ) {
16889                    if (
16890                      currentItem.id &&
16891                      currentNewItem.quantity &&
16892                      ExtendShopify.warrantyAlreadyInCart(currentItem.id.toString(), oldCart.items)
16893                    ) {
16894                      // Gets the associated plan ID using the product ID
16895                      let planId = getPlanId(newCart, currentItem.id.toString());
16896
16897                      // Product has warranty in cart
16898                      Extend.trackOfferUpdated({
16899                        productId: currentItem.id.toString(),
16900                        planId: planId,
16901                        updates: {
16902                          warrantyQuantity: parseInt(currentNewItem.quantity),
16903                          productQuantity: parseInt(currentNewItem.quantity),
16904                        },
16905                      });
16906                    } else if (currentItem.id && currentNewItem.quantity) {
16907                      // Product has no warranty in cart
16908                      Extend.trackProductUpdated({
16909                        productId: currentItem.id.toString(),
16910                        updates: {
16911                          productQuantity: parseInt(currentNewItem.quantity),
16912                        },
16913                      });
16914                    }
16915                  }
16916                });
16917              });
16918            }
16919          } else {
16920            console.warn('EXTEND: corrupt cart objects');
16921          }
16922        } catch (error) {
16923          console.error('EXTEND: ' + error);
16924        }
16925      };
16926
16927      window.Extend.integration.productAnalytics = productAnalytics;
16928      window.Extend.integration.cartAnalytics = cartAnalytics;
16929    }
16930  });
16931</script>
16931
16932
16933
16934<!-- Extend -- Load sidecart integration script -->
16935<script>
16936  // run scripts on DOMContentLoaded to avoid affecting site load time
16937  window.addEventListener('DOMContentLoaded', function () {
16938
16939      // Only run ajax integration if Extend and ExtendShopify is defined, and the currency is set to USD
16940      if (window.Extend && window.ExtendShopify && window.Shopify && window.Shopify.currency && window.Shopify.currency.active === 'USD') {
16941
16942          /*****************************************/
16943          /* Global Variables - THEME SPECIFIC     */
16944          /*****************************************/
16945
16946          let cartRowItem = '#drawer-cart_form .drawer-cart-item'; // This is the container element for each item in the cart
16947          let cartRowItemTitle = '.drawer-cart-item__title'; // This is the title anchor element for the product
16948          let cartRowItemImage = '.drawer-cart-item__image'; // This is the product image or image anchor element
16949          let cartRowItemQuantity = '.drawer-cart-item__quantity'; // This is the input element containing the product quantity
16950          let warrantyContainer = '.drawer-cart-item__info'; // This is the container where the offer will be appended
16951          let warrantyOriginalMeta = '.drawer-cart-item__info .type--smaller'; // Each warranty metadata item we want to remove.
16952          let metadataContainer = '.drawer-cart-item__info'; // This is where warranty metadata will be appended (Product and Term)
16953          let offerClass = 'extend-side-cart-offer'; // This is the class that will be assigned to each Extend offer
16954          let titleReformat = false; // If warranty titles contain various extra characters, set this to true. Sets title to 'Extend Protection Plan'
16955          let localCart = {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}; // Shopify Cart Object on initial load
16956          let regEx = /\d+$/;
16957          const extendUtils = window.Extend.integration.utils;
16958          const extendLogger = extendUtils.logger;
16959
16960          // QA Cypress variables
16961          window.Extend.integration.sideCartRowItem = cartRowItem;
16962          window.Extend.integration.sideCartRowItemTitle = cartRowItemTitle;
16963          window.Extend.integration.sideCartRowItemImage = cartRowItemImage;
16964          window.Extend.integration.sideCartRowItemQuantity = cartRowItemQuantity;
16965          window.Extend.integration.sideWarrantyContainer = warrantyContainer;
16966          window.Extend.integration.sideWarrantyOriginalMeta = warrantyOriginalMeta;
16967          window.Extend.integration.sideMetadataContainer = metadataContainer;
16968          window.Extend.integration.sideCartOffer = offerClass;
16969
16970          // Fail safe for cart
16971          if (!localCart) {
16972              console.error("EXTEND: Exiting - localCart unavailable")
16973              return false;
16974          }
16975
16976          /***********************/
16977          /* util functions      */
16978          /***********************/
16979          // findAll(element) - querySelectorAll to search for children in document OR a parentElement
16980          function findAll(elementToFind, parentElement) {
16981              const items = parentElement
16982                  ? parentElement.querySelectorAll(elementToFind)
16983                  : document.querySelectorAll(elementToFind);
16984              return items;
16985          }
16986
16987          /**************************************/
16988          /* refreshCart - THEME SPECIFIC       */
16989          /**************************************/
16990          // Refresh the cart (hard refresh by default)
16991          function refreshCart() {
16992              fetch("/cart.js", {
16993                  credentials: "same-origin",
16994                  method: "GET",
16995                  headers: { "Content-Type": "application/json", "X-Requested-With": "XMLHttpRequest" }
16996              }).then(function (updatedCart) {
16997                  return updatedCart.json().then(({ items, total_price }) => {
16998                      if (localCart.items.length != items.length) {
16999                          return location.href = location.hash ? location.href.substring(0, location.href.indexOf("#")) : location.href;
17000                      }
17001
17002                      const currentCartItemElements = document.querySelectorAll(cartRowItem);
17003                      Array.from(currentCartItemElements).forEac
17003h(function (element, index) {
17004
17005                      if (items[index].title.indexOf('Extend Protection') > -1) {
17006                          let newItemPrice = items[index].price * items[index].quantity
17007                          newItemPrice = newItemPrice.toString()
17008                          let newItemPriceSpan = element.querySelector('.drawer-cart-item__price');
17009
17010                          if (newItemPrice.length > 5) {
17011                              newItemPrice = newItemPrice.substring(0, newItemPrice.length - 5) + "," + newItemPrice.substring(newItemPrice.length - 5);
17012                          }
17013                          newItemPrice = newItemPrice.substring(0, newItemPrice.length - 2) + "." + newItemPrice.substring(newItemPrice.length - 2);
17014
17015
17016                          newItemPriceSpan.innerHTML = '$' + newItemPrice;
17017                      }
17018
17019                          const quantity = element.querySelector(cartRowItemQuantity);
17020                          if (quantity.value != items[index].quantity) {
17021                              quantity.value = items[index].quantity;
17022                          }
17023                      });
17024
17025                      window.setTimeout(function () {
17026                          handleStyling();
17027
17028                          let newPrice = total_price.toString();
17029                          if (newPrice.length > 5) {
17030                              newPrice = newPrice.substring(0, newPrice.length - 5) + "," + newPrice.substring(newPrice.length - 5);
17031                          }
17032
17033                          newPrice = newPrice.substring(0, newPrice.length - 2) + "." + newPrice.substring(newPrice.length - 2);
17034                          document.querySelector("#drawer-cart_total-price").innerHTML = "$" + newPrice;
17035                          if (document.querySelector('.drawer-cart_checkout-price')) document.querySelector('.drawer-cart_checkout-price').innerHTML = "$" + newPrice;
17036                      }, 500);
17037                  });
17038              });
17039          }
17040
17041          /***********************/
17042          /* createElement       */
17043          /***********************/
17044          // createElement(product) - Takes in the product element, and creates the Extend offer element + appends the offer
17045          function createElement(product, index) {
17046              try {
17047                  // Removes existing offer elements before creating new ones
17048                  let extendOffer = product.querySelector('.' + offerClass);
17049                  if (extendOffer)
17050                      extendOffer.remove();
17051
17052                  // Grab URL from title anchor href
17053                  let url = product.querySelector(cartRowItemTitle).href;
17054
17055                  // Grabs variant ID from URL if available, otherwise from localCart
17056                  let variantId = (url && url.match(regEx)) ? url.match(regEx)[0] : localCart.items[index].id;
17057
17058                  if (!variantId) {
17059                      throw new Error("Exiting - variantId unavailable")
17060                  }
17061                  // Select quantity value - Side Cart
17062                  let quantity = product.querySelector(cartRowItemQuantity).value;
17063
17064                  // Parent container to append ajax offer
17065                  let container = product.querySelector(warrantyContainer);
17066
17067                  extendLogger({ variantId, quantity, container });
17068
17069                  // Fail safes
17070                  if (!variantId || !quantity || !container) {
17071                      throw new Error("Exiting - variant, quantity or container unavailable");
17072                  }
17073
17074                  // Create new element & set class, data-extend-variant, and data-extend-quantity attributes
17075                  let newExtendOffer = document.createElement('div');
17076                  newExtendOffer.className = offerClass;
17077                  newExtendOffer.setAttribute('data-extend-variant', variantId);
17078                  newExtendOffer.setAttribute('data-extend-quantity', quantity);
17079
17080                  // Append the offer to the container element (THEME SPECIFIC)
17081                  container.parentElement.parentElement.insertBefore(newExtendOffer, container.parentElement.parentElement.querySelector('.drawer-cart_quantity-container'));
17082              } catch (error) {
17083                  console.error("EXTEND:", error);
17084              }
17085          }
17086
17087          /************************/
17088          /* Handle Styling       */
17089          /************************/
17090          // Finds all cartRowItems and styles only Extend warranties
17091          function handleStyling() {
17092
17093              findAll(cartRowItem).forEach(function (el, index) {
17094                  try {
17095                      // Grab the title of the current item
17096                      let title = el.querySelector(cartRowItemTitle);
17097                      extendLogger({ title });
17098
17099                      // Title fail safe
17100                      if (!title) {
17101                          throw new Error("Exiting - title unavailable");
17102                      }
17103
17104                      el.querySelectorAll('button').forEach(function (each) {
17105                          if (each.innerText.indexOf('Edit') > -1) each.remove()
17106                      })
17107
17108                      // If it's a warranty set isExtend to true and remove links
17109                      if (title.innerText.toLowerCase().indexOf('extend protection') > -1) { // Grab the image of the current item and fail safe
17110                          // Select and remove pointerEvents from warranty title
17111                          title.parentElement.style.pointerEvents = 'none';
17112
17113                          if (titleReformat === true) {
17114                              title.innerText = 'Extend Protection Plan';
17115                          };
17116
17117                          let image = el.querySelector(cartRowItemImage);
17118                          extendLogger({ image });
17119
17120                          if (!image) {
17121                              throw new Error("Exiting - image unavailable");
17122                          }
17123
17124                          // Select and remove pointerEvents from warranty image
17125                          image.style.pointerEvents = 'none';
17126
17127                          /**************************************/
17128                          /* THEME SPECIFIC STYLING START       */
17129                          /**************************************/
17130
17131                          // Removes old metadata
17132                          if (el.querySelector(warrantyOriginalMeta)) {
17133                              findAll(warrantyOriginalMeta, el).forEach(function (each) {
17134                                  each.remove();
17135                              })
17136                          }
17137
17138                          // Selects where to append warranty metadata
17139                          let contentContainer = el.querySelector(metadataContainer)
17140                          let warrantyProductData;
17141                          let warrantyTermData;
17142
17143                          if (localCart.items[index].options_with_values && localCart.items[index].options_with_values[1]) { // Finds the ref id string in the product info string and replaces with an empty string
17144                              let regexReplace = localCart.items[index].options_with_values[0].value.match(/\-\d{5,}/g);
17145                              warrantyProductData = localCart.items[index].options_with_values[0].value.replace(regexReplace, '');
17146                              warrantyTermData = localCart.items[index].options_with_values[1].value;
17147                          } else {
17148                              warrantyProductData = localCart.items[index].properties.Product;
17149                              warrantyTermData = localCart.items[index].properties.Term;
17150                          }
17151
17152                          // For category offers, fetch title by filtering through cart for warranted product refId
17153                          if (warrantyProductData === "Covered Product") {
17154                              const coveredProdId = localCart.items[index].properties['_Extend.ProductId'];
17155                              const coveredProdTitle = localCart.items.filter((item) => item.id.toString() == coveredProdId)[0].title;
17156                              warrantyProductData = coveredProdTitle;
17157                          }
17158
17159                          // Appends Product and Term metadata
17160                          if (el.querySelector(metadataContainer)) {
17161                              let warrantyProductName = document.createElement('p');
17162                              warrantyProductName.className = 'extend-warranty-info';
17163                              warrantyProductName.innerHTML = '<b style="font-size: 13px;">Product: </b>' + warrantyProductData;
17164                              warrantyProductName.style.margin = '0';
17165                              warrantyProductName.setAttribute('data-cy', 'warranty-description-product');
17166                              let warrantyProductTerm = document.createElement('p')
17167                              warrantyProductTerm.className = 'extend-warranty-info';
17168                              warrantyProductTerm.innerHTML = '<b style="font-size: 13px;">Term: </b>' + warrantyTermData;
17169                              warrantyProductTerm.style.margin = '0';
17170                              warrantyProductTerm.setAttribute('data-cy', 'warranty-description-term');
17171
17172                              // Only append the metadata if it's not already there
17173                              if (!el.querySelector('.extend-warranty-info')) {
17174                                  contentContainer.append(warrantyProductName, warrantyProductTerm);
17175                              }
17176
17177                          }
17178
17179                          /**************************************/
17180                          /* THEME SPECIFIC STYLING END         */
17181                          /**************************************/
17182
17183                      } else { // Create an offer element for each product
17184                          if (el.querySelector('.extend-warranty-info')) el.querySelectorAll('.extend-warranty-info').forEach(function(each) {each.remove()})
17185                          createElement(el, index);
17186                      }
17187                  } catch (error) {
17188                      console.error("EXTEND:", error);
17189                  }
17190              });
17191          }
17192
17193          /************************/
17194          /* initializeCartOffer  */
17195          /************************/
17196          // Invokes handleStyling and finds all offers in the cart, handling both normalization and balancing
17197          function initializeCartOffer() {
17198
17199              // Handles styling and creates offer elements
17200              handleStyling();
17201
17202              // Find all offer elements
17203              findAll('.' + offerClass).forEach(function (el) {
17204
17205                  // Grab attributes out of element
17206                  let variantId = el.getAttribute('data-extend-variant');
17207                  let quantity = el.getAttribute('data-extend-quantity');
17208
17209
17210                  // Grabs the product category and price from the current item metadata
17211                  let productCategory;
17212                  let productPrice;
17213                  if (localCart.items.filter(item => item.id.toString() === variantId).length > 0) {
17214                      productCategory = localCart.items.filter(item => item.id.toString() === variantId)[0].product_type
17215                      productPrice = parseInt(localCart.items.filter(item => item.id.toString() === variantId)[0].price);
17216                  }
17217
17218                  // If there's already a warranty in cart, return
17219                  if (ExtendShopify.warrantyAlreadyInCart(variantId, localCart.items)) {
17220                      return true;
17221                  } else {
17222                      // Render all other buttons
17223                      Extend.buttons.renderSimpleOffer(el, {
17224                          referenceId: variantId,
17225                          price: productPrice,
17226                          category: productCategory,
17227                          onAddToCart: function (options) {
17228                              ExtendShopify.addPlanToCart({
17229                                  plan: options.plan,
17230                                  product: options.product,
17231                                  quantity: quantity
17232                              }, function (err) {
17233                                  try {
17234                                      // An error occurred
17235                                      if (err) {
17236                                          throw new Error({ "Exiting - Error in onAddToCart": error });
17237                                      } else {
17238                                          refreshCart();
17239                                      }
17240                                  } catch (error) {
17241                                      console.error("EXTEND:", error)
17242                                  }
17243                              });
17244                          }
17245                      });
17246                  }
17247              })
17248
17249              // Normalization ensures there is a 1:1 relationship between the product and the warranty
17250              ExtendShopify.normalizeCart({
17251                  cart: localCart,
17252                  balance: true
17253              }, function (err, data) {
17254                  try {
17255                      // An error occurred
17256                      if (err) {
17257                          throw new Error({ "Exiting - Error in normalizeCart": error });
17258                      } else if (data && data.updates) { // Calls refreshCart to update the cart for normalization
17259                          refreshCart();
17260                      } else {
17261                          extendLogger("no cart updates")
17262                      }
17263                  } catch (error) {
17264                      console.error("EXTEND:", error)
17265                  }
17266              });
17267          }
17268
17269          // Function to run when the content of the element changes
17270          function contentChanged(mutationsList, observer) {
17271              for (let mutation of mutationsList) {
17272                  if (mutation.type === 'childList' && mutation.target.id === 'drawer-cart_total-price') {
17273                      // The content of #cart_total-price has changed
17274                      window.dispatchEvent(new Event('refreshAjaxSideCart'))
17275                  }
17276              }
17277          }
17278          const targetNode = document.querySelector('#drawer-cart_total-price');
17279          const observer = new MutationObserver(contentChanged);
17280          const config = { childList: true, subtree: true };
17281          observer.observe(targetNode, config);
17282
17283          window.addEventListener('refreshAjaxSideCart', function (e) {
17284              fetch('/cart.js', {
17285                  credentials: 'same-origin',
17286                  method: 'GET',
17287                  headers: {
17288                      'Content-Type': 'application/json',
17289                      'X-Requested-With': 'XMLHttpRequest'
17290                  }
17291              })
17292                  .then((e) => {
17293                      e.json()
17294                          .then((e) => {
17295                              if (window.Extend.integration.analytics)
17296                                  window.Extend.integration.cartAnalytics(localCart, e);
17297
17298                              localCart = e;
17299                              initializeCartOffer();
17300                          })
17301                          .catch((error) => {
17302                              console.error("EXTEND:", error)
17303                          });
17304                  })
17305                  .catch((error) => {
17306                      console.error("EXTEND: Failed to fetch cart - ", error)
17307                  });
17308          });
17309      }
17310  });
17311</script>
17311
17312
17313<style>
17314  .extend-warranty-info {
17315    font-size: 13px;
17316  }
17317
17318  .extend-side-cart-offer {
17319    margin-top: 5px;
17320  }
17321
17322  .extend-side-cart-offer iframe {
17323    height: 30px !important;
17324  }
17325
17326  #extend-offers-modal-iframe {
17327    z-index: 99999999999 !important;
17328  }
17329
17330  #extend-learn-more-modal-iframe {
17331    z-index: 99999999999 !important;
17332  }
17333</style>
17334
17335
17336
17337
17338
17339
17340<!-- Extend - End Extend code -->
17341
17342
17343<script defer async>
17344  (function (d) {
17345    var s = d.createElement('script');
17346    /* uncomment the following line to override default position*/
17347    /* s.setAttribute("data-position", 3);*/
17348    /* uncomment the following line to override default size (values: small, large)*/
17349    /* s.setAttribute("data-size", "small");*/
17350    /* uncomment the following line to override default language (e.g., fr, de, es, he, nl, etc.)*/
17351    /* s.setAttribute("data-language", "language");*/
17352    /* uncomment the following line to override color set via widget (e.g., #053f67)*/
17353    /* s.setAttribute("data-color", "#053e67");*/
17354    /* uncomment the following line to override type set via widget (1=person, 2=chair, 3=eye, 4=text)*/
17355    /* s.setAttribute("data-type", "1");*/
17356    /* s.setAttribute("data-statement_text:", "Our Accessibility Statement");*/
17357    /* s.setAttribute("data-statement_url", "http://www.example.com/accessibility")";*/
17358    /* uncomment the following line to override support on mobile devices*/
17359    /* s.setAttribute("data-mobile", true);*/
17360    /* uncomment the following line to set custom trigger action for accessibility menu*/
17361    /* s.setAttribute("data-trigger", "triggerId")*/
17362    s.setAttribute('data-account', 'cMPVK3zicN');
17363    s.setAttribute('src', 'https://cdn.userway.org/widget.js');
17364    (d.body || d.head).appendChild(s);
17365  })(document);
17366</script>
17366
17367
17368<script type="text/javascript">
17369  (function () {
17370    'use strict';
17371    var e = null,
17372      n = '48761',
17373      additional = '',
17374      t,
17375      r,
17376      i;
17377    try {
17378      t = top.document.referer !== '' ? encodeURIComponent(top.document.referrer.substring(0, 2048)) : '';
17379    } catch (o) {
17380      t = document.referrer !== null ? document.referrer.toString().substring(0, 2048) : '';
17381    }
17382    try {
17383      i = parent.location.href !== '' ? encodeURIComponent(parent.location.href.toString().substring(0, 2048)) : '';
17384    } catch (a) {
17385      try {
17386        i !== null ? encodeURIComponent(i.toString().substring(0, 2048)) : '';
17387      } catch (f) {
17388        i = '';
17389      }
17390    }
17391    var l,
17392      c = document.createElement('script'),
17393      h = null,
17394      p = document.getElementsByTagName('script'),
17395      d = Number(p.length) - 1,
17396      v = document.getElementsByTagName('script')[d];
17397    if (typeof l === 'undefined') {
17398      l = Math.floor(Math.random() * 1e17);
17399    }
17400    h = 'https://dx.mountain.com/spx?' + 'shaid=' + n + '&tdr=' + t + '&plh=' + i + '&cb=' + l + additional;
17401    c.type = 'text/javascript';
17402    c.async = true;
17403    c.src = h;
17404    v.parentNode.insertBefore(c, v);
17405  })();
17406</script>
17406
17407
17408<script>
17409  (function () {
17410    'use strict';
17411    
17412    // Function to update gift section visibility based on subscription selection
17413    function updateGiftSectionVisibility() {
17414      const subscriptionRadio = document.querySelector('.loop-subscription-group-radio:checked');
17415      const giftSection = document.querySelector('.loop-gw-container');
17416      
17417      if (giftSection) {
17418        giftSection.style.display = subscriptionRadio ? 'none' : 'block';
17419      }
17420    }
17421    
17422    // Run initial check
17423    function initialize() {
17424      updateGiftSectionVisibility();
17425      
17426      // Event-driven: Listen for radio button changes
17427      const radioButtons = document.querySelectorAll('input[name="loop_purchase_option"]');
17428      radioButtons.forEach(function(radio) {
17429        radio.addEventListener('change', updateGiftSectionVisibility);
17430      });
17431      
17432      // Fallback: MutationObserver for dynamically added radio buttons
17433      // (in case Loop widget adds them after page load)
17434      const observer = new MutationObserver(function(mutations) {
17435        let needsUpdate = false;
17436        
17437        mutations.forEach(function(mutation) {
17438          // Check if radio buttons or gift section were added/modified
17439          if (mutation.type === 'childList') {
17440            mutation.addedNodes.forEach(function(node) {
17441              if (node.nodeType === 1) { // Element node
17442                // Check if added node contains Loop radio buttons
17443                if (node.matches && node.matches('input[name="loop_purchase_option"]')) {
17444                  node.addEventListener('change', updateGiftSectionVisibility);
17445                  needsUpdate = true;
17446                } else if (node.querySelector) {
17447                  const radios = node.querySelectorAll('input[name="loop_purchase_option"]');
17448                  radios.forEach(function(radio) {
17449                    radio.addEventListener('change', updateGiftSectionVisibility);
17450                  });
17451                  if (radios.length > 0) needsUpdate = true;
17452                }
17453                
17454                // Check if gift section was added
17455                if ((node.matches && node.matches('.loop-gw-container')) || 
17456                    (node.querySelector && node.querySelector('.loop-gw-container'))) {
17457                  needsUpdate = true;
17458                }
17459              }
17460            });
17461          } else if (mutation.type === 'attributes' && 
17462                     mutation.target.matches && 
17463                     mutation.target.matches('input[name="loop_purchase_option"]')) {
17464            // Radio button attributes changed (e.g., checked state)
17465            needsUpdate = true;
17466          }
17467        });
17468        
17469        if (needsUpdate) {
17470          updateGiftSectionVisibility();
17471        }
17472      });
17473      
17474      // Observe the product form for changes
17475      const productForm = document.querySelector('form[action="/cart/add"]') || document.body;
17476      if (productForm) {
17477        observer.observe(productForm, {
17478          childList: true,
17479          subtree: true,
17480          attributes: true,
17481          attributeFilter: ['checked']
17482        });
17483      }
17484    }
17485    
17486    // Wait for DOM to be ready
17487    if (document.readyState === 'loading') {
17488      document.addEventListener('DOMContentLoaded', initialize);
17489    } else {
17490      initialize();
17491    }
17492  })();
17493</script>
17493
17494
17495
17496<!-- Homepage Specific Scripts -->
17497
17498
17499<!-- Product Specific Scripts -->
17500
17501    </div>
17502<!-- Navidium disabled
17503<script src="https://cdn.navidiumapp.com/navidium-widgets/extension/navidium-extension-checker.js"></script>
vendor: 2 bytes, line 17503
17503
17504<script>
17505  fetch('/cart/update.js', {
17506    method: 'POST',
17507    headers: {
17508      'Content-Type': 'application/json'
17509    },
17510    body: JSON.stringify({
17511      attributes: {
17512        _nvd_opted_in: 1
17513      }
17514    })
17515  });
17516</script>
17516
17517-->
17518  <style> [data-testid="hub-widget-container"] {display: none !important;} </style>
17519<div id="shopify-block-Ac21LRUFTbmFkakdLU__12622292715052272319" class="shopify-block shopify-app-block">
17519<script type="module" src="https://cdn.shopify.com/extensions/01a0eeb5-5bd5-7dc0-8af1-1331a372e80e/magical-mandatory-fees-309/assets/magical-mandatory-fees.js"></script>
17519
17520<magical-mandatory-fees data-id="Ac21LRUFTbmFkakdLU__12622292715052272319">
17520<script type="application/json">
17521    {
17522      "root_url": "/",
17523      "cart_url": "/cart",
17524      "cart_add_url": "/cart/add",
17525      "cart_change_url": "/cart/change",
17526      "cart_clear_url": "/cart/clear",
17527      "cart_update_url": "/cart/update",
17528      "currency_rate_base": {"amount":"100000000","currency_code":"USD"},
17529      "account_login_url": "https://www.seattlecoffeegear.com/customer_authentication/redirect?locale=en&region_country=US",
17530      "account_register_url": "https://account.seattlecoffeegear.com?locale=en&region_country=US&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzZWF0dGxlY29mZmVlZ2Vhci5teXNob3BpZnkuY29tIiwiZmxhZ3MiOltdLCJleHAiOjE3OTE1MTM5MDksIm5iZiI6MTc5MDkwOTEwOX0.3bkH6r6sZEI68Ly-4RtftxRmOuH_eSBVKLrkH7qQAdg",
17531      "fees": [
17532],
17533      "fees_metaobjects": [
17534{
17535                "id" : "52939234050355",
17536                "title" : "CA Battery Recycling Fee",
17537                "price_type" : "percentage",
17538                "price" : "150.0",
17539                "image" : "",
17540                "logic": {
17541                  "fee_type": "product",
17542                  "appliedTo": ["conditions"],
17543                  "appliedDisjunctively": ["true"],
17544                  "cart": [],
17545                  "conditions": [{"column":"tags","condition":"CACBE%","relation":"equals"}],
17546                  "locations": [{"id":"United States","options":[{"id":"California","name":"California","provinceCode":"CA"}],"name":"United States","countryCode":"US"}],
17547                  "markets": [],
17548                  "payment_methods": [],
17549                  "products": [],
17550                  "collections": [],
17551                  "customer_tags": [],
17552                  "quantities": {"conditions":[],"disjunctively":"false","evaluationMode":"all"},
17553                  "sales_channels": ["online_store","draft_orders"],
17554                  "rule": ["every"],
17555                  "bundled_with": ["product"],
17556"min_fee_amount": null,"max_fee_amount": "1500.0"},
17557                "details" : "California required recycling fee for products with embedded batteries.",
17558                "information" : "This product requires \u0026lt;strong\u0026gt;CA Battery Recycling Fee\u0026lt;\/strong\u0026gt;. This \u0026lt;strong\u0026gt;\u0026lt;\/strong\u0026gt; fee will be added to your cart.",
17559                "information_title" : "\u0026lt;strong\u0026gt;CA Battery Recycling Fee\u0026lt;\/strong\u0026gt;",
17560                "information_price" : "\u0026lt;strong\u0026gt;\u0026lt;\/strong\u0026gt;",
17561                "information_percentage": "This product requires \u0026lt;strong\u0026gt;CA Battery Recycling Fee\u0026lt;\/strong\u0026gt;. This 1.5% fee will be added to your cart.",
17562                "consent": "mandated"
17563              }
17564            ,{
17565                "id" : "52949411823923",
17566                "title" : "CA Battery Recycling Fee",
17567                "price_type" : "fixed",
17568                "price" : "1500.0",
17569                "image" : "",
17570                "logic": {
17571                  "fee_type": "product",
17572                  "appliedTo": ["conditions"],
17573                  "appliedDisjunctively": ["true"],
17574                  "cart": [],
17575                  "conditions": [{"column":"tags","condition":"CACBE$","relation":"equals"}],
17576                  "locations": [{"id":"United States","options":[{"id":"California","name":"California","provinceCode":"CA"}],"name":"United States","countryCode":"US"}],
17577                  "markets": [],
17578                  "payment_methods": [],
17579                  "products": [],
17580                  "collections": [],
17581                  "customer_tags": [],
17582                  "quantities": {"conditions":[],"disjunctively":"false","evaluationMode":"all"},
17583                  "sales_channels": ["online_store","draft_orders"],
17584                  "rule": ["every"],
17585                  "bundled_with": ["product"],
17586"min_fee_amount": null,"max_fee_amount": null},
17587                "details" : "California required recycling fee for products with embedded batteries.",
17588                "information" : "This product requires \u0026lt;strong\u0026gt;CA Battery Recycling Fee\u0026lt;\/strong\u0026gt;. This \u0026lt;strong\u0026gt;$15.00\u0026lt;\/strong\u0026gt; fee will be added to your cart.",
17589                "information_title" : "\u0026lt;strong\u0026gt;CA Battery Recycling Fee\u0026lt;\/strong\u0026gt;",
17590                "information_price" : "\u0026lt;strong\u0026gt;$15.00\u0026lt;\/strong\u0026gt;",
17591                "information_percentage": "This product requires \u0026lt;strong\u0026gt;CA Battery Recycling Fee\u0026lt;\/strong\u0026gt;. This 15.0% fee will be added to your cart.",
17592                "consent": "mandated"
17593              }
17594            ],"metafield_fees": null,"metafield_fees_display": {},
17595      "country": "US",
17596      "customer_tags": [],
17597      "order_fees_placeholder": 
17598    null,
17599      "product_fees_placeholder": 
17600    null,
17601      "cart_products": [
17602      ],"cart_variant_prices": {},
17603      "cart_contents": [],
17604      "market": {
17605        "id": 71082934579,
17606        "handle": "us"
17607      },
17608      "current_product": {
17609        "id": "",
17610        "product_type": null,
17611        "vendor": null,
17612        "tags": null,
17613        "variant_options": [],
17614        "selected_variant": "",
17615        "collections": [],
17616        "price": ""
17617      },
17618      "currency_format" : {
17619        "html_with_currency" :"$0.00 USD",
17620        "html_without_currency" :"0.00"},
17621      "plan" : "Growth",
17622      "features" : {"checkout_extensions":true,"location_fees_checkout":true,"extended_payment_methods":true,"customer_tag_fees":true,"total_order_percentage":true,"cart_applied_to":true,"audit_logging":true,"audit_log_history_days":true},
17623
17624      "fees_required_message" : "",
17625      "fees_consent_description" : "",
17626      "hide_dynamic_checkout" : false,
17627      "force_page_refresh" : false,
17628      "disable_storefront_fee_application" : false,
17629      "locale": {
17630        "additional_fees_legacy": "This cart includes products which require fees of",
17631        "additional_fees": "This cart includes products which require fees. Additional fees may apply at checkout.",
17632        "details": "Details",
17633        "fee": "Fee",
17634        "accept": "Accept",
17635        "decline": "Decline",
17636        "accept_all": "Accept all",
17637        "decline_all": "Decline all",
17638        "location_fee_message": "Additional fees may apply at checkout.",
17639        "payment_fee_message": "Additional fees may apply at checkout.",
17640        "customer_tags_fee_message": "Additional fees may apply at checkout.",
17641        "additional_fees_message": "Additional fees apply.",
17642        "additional_fees_may_apply": "Additional fees may apply.",
17643        "price": "Price",
17644        "location_confirmation_required": "Location confirmation required",
17645        "location_fees_may_apply": "Location-based fees may apply to this order. Please confirm your location to ensure accurate pricing.",
17646        "detected_location_country": "Location-based fees may apply to this order. We detected you\u0026#39;re in {{country}}. Please confirm your location to ensure accurate pricing.",
17647        "detected_location_province": "Location-based fees may apply to this order. We detected you\u0026#39;re in {{country}}. Please select your state\/province and confirm your location to ensure accurate pricing.",
17648        "select_state_province": "State\/Province:",
17649        "select_country": "Country:",
17650        "select_your_country": "Select your country...",
17651        "select_your_state_province": "Select your state\/province...",
17652        "select_state_province_manual": "Select your state\/province...",
17653        "my_country_not_listed": "My country is not listed",
17654        "my_state_province_not_listed": "My state\/province is not listed",
17655        "choose_different_location": "Choose different location",
17656        "confirm_location": "Confirm location"
17657      }
17658    }
17659  </script>
17659</magical-mandatory-fees>
17660
17661
17662</div><div id="shopify-block-AdjkraUk3aFVvenQ3d__8605505498557855500" class="shopify-block shopify-app-block bogos-shopify-block">
17663
17664
17665<div id="secomapp_freegifts_version" data-version="3.0"></div>
17666
17667    <!-- BEGIN app snippet: freegifts-snippet --><link href="//cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/glider.min.css" rel="stylesheet" type="text/css" media="all" />
17668<link href="//cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/freegifts-main.min.css" rel="stylesheet" type="text/css" media="all" />
17669
17670
17671
17672
17673
17674
17675
17676
17677
17678
17679
17680
17681<style id="sca_fg_custom_style">
17682    
17683        .freegifts-main-container .fg-section-title, .freegifts-main-container .bogos-slider-info-title { color: #121212; }
17684        .freegifts-main-container .product-title, .freegifts-main-container .bogos-gift-product-title { color: #000000; }
17685        .freegifts-main-container .original-price, .freegifts-main-container .bogos-gift-item-compare-price { color: #121212; }
17686        .freegifts-main-container .gift-price, .freegifts-main-container .bogos-gift-item-price { color: #D2324C; }
17687        .freegifts-main-container .btn-add-to-cart { color: #FFFFFF; background-color: #218369; }
17688        .freegifts-main-container .bogos-slider-offer-badge { background: #FFEF9D }
17689        .freegifts-main-container .bogos-slider-offer-badge.success { background: #CDFEE1 }
17690        .freegifts-main-container .bogos-slider-offer-title { color: #000000 }
17691        .freegifts-main-container .btn-add-to-cart svg path { fill: #FFFFFF; }
17692        .bogos-gift-select-variant-title { color: #005BD3; }
17693        .bogos-gift-select-variant-title-contain::after { border-color: #005BD3; }
17694        
17695        .fg-gift-thumbnail-offer-title { color: #000000; }
17696        .fg-gift-thumbnail-container { border-color: #8A8A8A; }
17697        .fg-gift-thumbnail-offer-time { background-color: #000000; }
17698        #sca-gift-thumbnail .sca-gift-image { width: 50px; max-height: 50px; }
17699
17700        #sca-gift-icon .sca-gift-icon-img { width: 100px; max-height: 100px; }
17701        .sca-gift-icon-collection-page .sca-gift-icon-collection-img { width: 50px; max-height: 50px; }
17702
17703        #sca-promotion-glider { color: #ffffff; background-color: #D2324C; }
17704        
17705        
17706        #sca-fg-today-offer-iframe .sca-fg-header { background-color: #FFFFFF; }
17707        #sca-fg-today-offer-iframe .sca-fg-body { background-color: #FFFFFF; }
17708        #sca-fg-today-offer-iframe .sca-fg-today-offer-title { color: #5E5873 !important; }
17709        #sca-fg-today-offer-iframe .sca-fg-today-offer-subtitle { color: #b9b9c3 !important; }
17710        #sca-fg-today-offer-iframe .sca-offer-title { color: #82868b; }
17711        #sca-fg-today-offer-widget { height: 70px !important; width: 70px !important; }
17712        .sca-fg-icon-success-anim { box-shadow: inset 0 0 0 #69CE82; }
17713        @-webkit-keyframes animated-checkmark-fill { to { box-shadow: inset 0 0 0 30px #69CE82; } }
17714        @keyframes animated-checkmark-fill { to { box-shadow: inset 0 0 0 30px #69CE82; } }
17715        .sca-fg-icon-success-circle { stroke: #69CE82; }
17716        #sca-fg-today-offer-iframe .sca-fg-offer .sca-offer-header-container { background-color: #ebe9f1 }
17717        #sca-fg-today-offer-iframe .sca-fg-offer.sca-offer-archived .sca-offer-header-container { background-color: #69CE8225 }
17718        #sca-fg-today-offer-iframe .sca-gift-product-title { color:  #303030}
17719        #sca-fg-today-offer-iframe .sca-gift-product-discount-price { color: #24B263 }
17720        #sca-fg-today-offer-iframe .sca-gift-product-original-price { color: #616161 }
17721        #sca-fg-today-offer-iframe .sca-offer-info .sca-offer-subtitle { color: #616161 }
17722        
17723        
17724        .bogos-bundles-widget { background-color: #F3F3F3;  }
17725        .bogos-bundles-widget-body .bogos-bundle-item { background-color: #FFFFFF; }
17726        .bogos-bundles-widget .bogos-bundles-widget-title { color: #303030; }
17727        .bogos-bundles-widget .bogos-bundles-widget-description { color: #616161; }
17728        .bogos-bundle-item .bogos-bundle-item-title { color: #303030; }
17729        .bogos-bundle-item .bogos-bundle-item-discount-price, .bogos-bundles-widget .bogos-bundles-total-discount-price { color: #005BD3; }
17730        .bogos-bundle-item .bogos-bundle-item-original-price, .bogos-bundles-widget .bogos-bundles-total-original-price { color: #005BD3; }
17731        .bogos-bundles-widget-footer .bogos-bundles-button-add { color: #FFFFFF; background-color: #303030; }
17732        .bogos-bundles-widget .bogos-bundle-shipping-discount-container { background-color: #DEE6FF; }
17733        .bogos-bundles-widget .bogos-bundle-shipping-discount-title { color: #2332D5; }
17734        
17735        .bogos-bundles-quantity-break-widget { background-color: #F3F3F3;  }
17736        .bogos-bundles-quantity-break-widget-title { color: #303030; }
17737        .bogos-bundles-quantity-break-widget-description { color: #303030; }
17738        .bogos-bundle-quantity-break-item-original-price, .bogos-bundles-quantity-break-origin-price { color: #B5B5B5; }
17739        .bogos-bundles-quantity-break-button-add { background: #303030; color: #FFFFFF; }
17740        .bogos-bundle-quantity-break_item-container { background: #FFFFFF; }
17741        .bogos-bundle-quantity-break-label { background: #303030; color: #FFFFFF; }
17742        .bogos-bundle-quantity-break-tag { background: #F1F1F1; color: #303030; }
17743        .bogos-bundle-quantity-break-sub-title { color: #616161; }
17744        .bogos-bundles-quantity-break-discount-price { color: #303030; }
17745        .bogos-bundle-quantity-break-title { color: #303030; }
17746        .bogos-bundle-quantity-break-item-discount-price { color: #303030; }
17747
17748        .bogos-volume-discount-widget.default-layout { background-color: #F3F3F3;  }
17749        .bogos-volume-discount-widget.default-layout .bogos-volume-discount-widget-title { color: #303030; }
17750        .bogos-volume-discount-widget.default-layout .bogos-volume-discount-widget-description { color: #303030; }
17751        .bogos-volume-discount-widget.default-layout .bogos-volume-discount-item-original-price , .bogos-volume-discount-origin-price { color: #303030; }
17752        .bogos-volume-discount-widget.default-layout .bogos-volume-discount-button-add { background: #303030; color: #FFFFFF; }
17753        .bogos-volume-discount-widget.default-layout .bogos-volume-discount_item-container { background: #FFFFFF; }
17754        .bogos-volume-discount-widget.default-layout .bogos-volume-discount-label { background: #303030; color: #FFFFFF; }
17755        .bogos-volume-discount-widget.default-layout .bogos-volume-discount-tag { background: #F1F1F1; color: #303030; }
17756        .bogos-volume-discount-widget.default-layout .bogos-volume-discount-sub-title { color: #616161; }
17757        .bogos-volume-discount-widget.default-layout .bogos-volume-discount-item-discount-price { color: #303030; }
17758        .bogos-volume-discount-widget.default-layout .bogos-volume-discount-tier-price-primary span { color: #303030; }
17759        .bogos-volume-discount-widget.default-layout .bogos-volume-discount-discount-price { color: #303030; }
17760        .bogos-volume-discount-widget.default-layout .bogos-volume-discount-title { color: #303030; }
17761        .bogos-volume-discount-widget.default-layout .bogos-volume-discount-origin-price, .bogos-volume-discount-widget.default-layout .bogos-volume-discount-item-original-price { color: #B5B5B5; }
17762        .bogos-volume-discount-widget.table-layout .bogos-volume-discount-widget-header { background-color: #F3F3F3; }
17763        .bogos-volume-discount-widget.table-layout .bogos-volume-discount-widget-title { color: #303030; }
17764        .bogos-volume-discount-widget.table-layout .bogos-volume-discount-widget-description { color: #303030; }
17765        .bogos-volume-discount-table-container.line-style .bogos-volume-discount-item { background-color: #FFFFFF; }
17766        .bogos-volume-discount-widget.table-layout, .bogos-volume-discount-widget.table-layout .bogos-volume-discount-item, .bogos-volume-discount-widget-body .bogos-volume-discount-tier-info, .bogos-volume-discount-widget.table-layout .bogos-volume-discount-widget-header { border-color: #E0E0E0; }
17767        .bogos-volume-discount-widget.table-layout .bogos-volume-discount-title { color: #303030; }
17768        .bogos-volume-discount-widget.table-layout .bogos-volume-discount-description { color: #616161; }
17769        .bogos-volume-discount-widget.table-layout .bogos-volume-discount-tag { background-color: #F1F1F1; color: #303030; }
17770        .bogos-volume-discount-widget.table-layout .bogos-volume-discount-tier-discount-text { color: #303030; }
17771        .bogos-volume-discount-widget.table-layout .bogos-volume-discount-tier-label { color: #FFFFFF; background-color: #303030; }
17772        .bogos-volume-discount-widget.table-layout .bogos-volume-discount-tier-discount-price { color: #303030; }
17773        .bogos-volume-discount-widget.table-layout .bogos-volume-discount-tier-price-primary span { color: #303030; }
17774        .bogos-volume-discount-widget.table-layout .bogos-volume-discount-tier-origin-price { color: #B5B5B5; }
17775        .bogos-volume-discount-table-container.is-hidden-line .bogos-volume-discount-tier-info { border-color: transparent; }
17776        .bogos-volume-discount-widget.table-layout .bogos-volume-discount-table-container.zebra-style .bogos-volume-discount-item:nth-child(odd) { background-color: #FFFFFF; }
17777        .bogos-volume-discount-widget.table-layout .bogos-volume-discount-table-container.zebra-style  .bogos-volume-discount-item:nth-child(even) { background-color: #F5F5F5; }
17778        .bogos-volume-discount-widget .bogos-vl-tb-shipping-label { color: #2332D5; }
17779        .bogos-volume-discount-widget .bogos-vl-shipping-label { color: #2332D5; }
17780        .bogos-volume-discount-widget .bogos-vl-shipping-container { background-color: DEE6FF; }
17781        .bogos-volume-discount-widget.default-layout .bogos-vl-subscription-option-title { color: #303030; }
17782        .bogos-volume-discount-widget.default-layout .bogos-vl-subscription-section-title { color: #303030; }
17783        .bogos-volume-discount-widget.default-layout .bogos-vl-subscription-input-c
17783heckbox:checked { background-color: #8051FF; border-color: #8051FF;}
17784        .bogos-volume-discount-widget.default-layout input[type=radio]:checked { background-color: #8051FF; border-color: #8051FF;}
17785        
17786        .bogos-mix-match-widget { background-color: #F3F3F3; ; }
17787        .bogos-mix-match-widget .bogos-mix-item { background-color: #FFFFFF; }
17788        .bogos-mix-match-widget .bogos-mix-match-widget-title { color: #303030; }
17789        .bogos-mix-match-widget .bogos-mix-match-widget-description { color: #616161; }
17790        .bogos-mix-match-widget .bogos-mix-item-title { color: #303030; }
17791        .bogos-mix-match-widget .bogos-mix-item-discount-price { color: #303030; }
17792        .bogos-mix-match-widget .bogos-mix-item-original-price { color: #B5B5B5; }
17793        .bogos-mix-match-widget .bogos-mix-match-button-add { color: #FFFFFF; background-color: #303030; }
17794        .bogos-mix-match-widget .bogos-mix-match-badge-item { background-color: #FFF8DB; }
17795        .bogos-mix-match-widget .bogos-mix-match-badge-item.success { background-color: #CDFEE1; }
17796        .bogos-mix-match-widget .bogos-mix-match-badge-item .bogos-mix-match-badge-title { color: #4F4700; }
17797        .bogos-mix-match-widget .bogos-mix-match-badge-item.success .bogos-mix-match-badge-title { color: #29845A; }
17798        .bogos-mix-match-widget .bogos-mix-match-shipping-discount-container { background-color: #DEE6FF; }
17799        .bogos-mix-match-widget .bogos-mix-match-shipping-discount-title { color: #2332D5; }
17800        
17801        .bogos-bundle-page-container .bogos-bp-steps-bar, .bogos-bundle-page-container .bogos-bp-step-bar-single { background-color: #F3F3F3; }
17802        .bogos-bundle-page-container .bogos-bp-step-title { color: #303030; }
17803        .bogos-bp-steps-container .bogos-bp-step-item.active { border-bottom: solid 3px #303030; }
17804        .bogos-bundle-page-container .bogos-bp-header-title { color: #303030; }
17805        .bogos-bundle-page-container .bogos-bp-header-subtitle { color: #303030; }
17806        .bogos-bundle-page-container .bogos-bp-step-header-title { color: #303030; }
17807        .bogos-bundle-page-container .bogos-bp-step-header-subtitle { color: #616161; }
17808        .bogos-bundle-page-container .bogos-bp-product-title, .bogos-step-item .bogos-step-item-title, .bogos-product-detail-modal .bogos-product-title { color:  #303030; }
17809        .bogos-step-items-container .bogos-step-item-variant-title { color: #616161; }
17810        .bogos-bundle-page-container .bogos-bp-product-price, .bogos-step-item .bogos-step-item-discount-price, .bogos-bp-widget-footer .bogos-bp-total-discount-price {  color:  #303030; }
17811        .bogos-step-item .bogos-step-item-original-price, .bogos-bp-widget-footer .bogos-bp-total-original-price { color:  #808080; }
17812        .bogos-bundle-page-container .bogos-bp-btn-add-product, .bogos-product-detail-modal .bogos-product-add-btn { background-color: #303030; color: #FFFFFF }
17813        .bogos-bp-widget-container .bogos-bp-widget { background-color: #F3F3F3; ; }
17814        .bogos-bp-widget .bogos-bp-widget-title { color: #303030; }
17815        .bogos-bp-widget .bogos-bp-widget-description { color: #303030; }
17816        .bogos-step-items-product-require.success .bogos-step-items-product-require-title { color: #2332D5; }
17817        .bogos-bp-widget .bogos-bp-button-add { background-color: #303030; color: #FFFFFF; }
17818        .bogos-bp-widget-badges-container .bogos-bp-widget-badge-item { background-color: #FFF8DB; }
17819        .bogos-bp-widget-badges-container .bogos-bp-widget-badge-item.success { background-color: #CDFEE1; }
17820        .bogos-bp-widget-badges-container .bogos-bp-widget-badge-title { color: #4F4700; }
17821        .bogos-bp-widget-badge-item.success .bogos-bp-widget-badge-title { color: #29845A; }
17822        .bogos-bp-widget .bogos-bundle-page-shipping-discount-container { background-color: #DEE6FF; }
17823        .bogos-bp-widget .bogos-bundle-page-shipping-discount-title { color: #2332D5; }
17824        
17825        .bogos-fbt-upsell-container { background: #F6F6F6; border-radius: 15px; }
17826        .bogos-fbt-header-title { color: #303030; }
17827        .bogos-fbt-header-description { color: #303030; }
17828        .bogos-fbt-footer-discounted-price { color: #303030; }
17829        .bogos-fbt-footer-original-price { color: #616161; }
17830        .bogos-fbt-footer-button-add { background: #303030; color: #FFFFFF; }
17831        .bogos-fbt-product-title {color: #303030; }
17832        .bogos-fbt-upsell-product-discounted-price {color: #303030; }
17833        .bogos-fbt-upsell-product-original-price {color: #808080; }
17834        .is-cheapest-free-label {color: #FFFFFF ;background-color: #FFAA00;}
17835        .is-cheapest-free {background-color: rgba(255, 170, 0, 0.2);}
17836        .bogos-fbt-this-item {background-color: #D1D1D1;color: #303030;}
17837        .bogos-fbt-upsell-body-item-checkbox {border-color: #303030;}
17838        .bogos-fbt-upsell-body-item-checkbox:checked {border-color: #303030; background-color: #303030;}
17839        .bogos-fbt-shipping-discount-container { background-color: #DEE6FF; }
17840        .bogos-fbt-shipping-discount-title { color: #2332D5; }
17841        .bogos-fbt-upsell-body-stack-meta .bogos-fbt-upsell-img-wrapper, .bogos-fbt-upsell-body-classic-item-img-wrapper .bogos-fbt-upsell-body-classic-item-img {width: 60px; height: 60px;}
17842        .bogos-fbt-upsell-container img.bogos-fbt-upsell-img {border-radius: 7.5px;}
17843        
17844        .bogos-cheapest-discount {background-color: #ffffff; border-color: #888888;}
17845        .bogos-cheapest-discount .bogos-cheapest-title { color: #303030; }
17846        .bogos-cheapest-list-product-modal .bogos-cheapest-title { color: #303030; }
17847        .bogos-cheapest-discount .bogos-cheapest-description { color: #616161; }
17848        .bogos-cheapest-product-card .bogos-cheapest-product-title { color: #303030; }
17849        .bogos-cheapest-product-card .bogos-cheapest-product-price { color: #303030; }
17850        .bogos-cheapest-product-card .bogos-cheapest-select-variant-title { color: #303030; }
17851        .bogos-cheapest-product-card .bogos-cheapest-product-add-btn { color: #ffffff; background-color: #303030}
17852        .bogos-cheapest-label-item.active .bogos-cheapest-label { color: #303030; }
17853        .bogos-cheapest-label-item.active #bogos-active-icon path { fill: #3
1785303030; }
17854        .bogos-cheapest-label-item.excluded .bogos-cheapest-label { color: #CCCCCC; }
17855        .bogos-cheapest-label-item.excluded #bogos-excluded-icon path { fill: #CCCCCC; }
17856        .bogos-cheapest-label-item:not(.active):not(.excluded) #bogos-uncheck-icon path { fill: #4A4A4A; }
17857        .bogos-cheapest-label-item:not(.active):not(.excluded) .bogos-cheapest-label { color: #303030; }
17858        .bogos-cheapest-discount .bogos-cheapest-label-container:not(:has(.bogos-cheapest-discount-bullet-items)) {background-color: #F6F6F6;}
17859        .bogos-cheapest-discount .bogos-cheapest-discount-bullet-item {color: #808080;}
17860        .bogos-cheapest-discount .bogos-cheapest-products-describe {color: #616161;}
17861        .bogos-cheapest-discount .bogos-cheapest-products-more-btn {color: #303030;}
17862        
17863        .bogos-select-option-custom-item:not(.bogos-option-default):not(.bogos-active):not(has(.sca-d-none)) {background-color: #F0F0F0; color: #303030;}
17864        .bogos-select-option-custom-item:not(.bogos-option-default).bogos-active:not(has(.sca-d-none)) {background-color: #F0F0F0; color: #303030;}
17865        .bogos-select-option-custom-item:not(.bogos-option-default).bogos-active {border: 0.5px solid #303030;}
17866        .bogos-select-option-custom-item.bogos-option-default:not(.bogos-active) .bogos-option-value-title {background-color: #F0F0F0; color: #303030;}
17867        .bogos-select-option-custom-item.bogos-option-default.bogos-active .bogos-option-value-title {background-color: #F0F0F0; color: #303030;}
17868        .bogos-select-option-custom-item.bogos-option-default.bogos-active {border: 0.5px solid #303030;}
17869        .bogos-mix-item-select-variant-option:hover, .bogos-gift-select-variant-option:hover, .bogos-bundle-select-variant-option:hover, .bogos-vl-select-variant-option:hover, .bogos-fbt-variant-item:hover, .bogos-pa-variant-item:hover, .bogos-pa-variant-item.active {background-color: #F0F0F0;}
17870        
17871    
17872    
17873</style>
17873<script id="sca_fg_custom_script" data-cmp-vendor="bogos" data-cmp-ab="0">
17874    
17875    
17876</script>
17876
17877
17878<script src="https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/glider.min.js" defer></script>
vendor: 1 bytes, line 17878
17878
17879<script src="https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/lz-string.min.js" defer></script>
17879
17880
17881<div id="freegifts-main-popup-container" class="freegifts-main-container sca-modal-fg"
17882     data-animation="slideInOutTop"></div>
17883<div id="sca-fg-notifications" class="sca-fg-notifications"></div>
17884
17885<div id="bogos-to-widget-icon-wrap" style="display:none"></div>
17886<div id="bogos-to-widget-iframe" style="visibility:hidden;opacity:0;position:fixed"></div>
17887
17888<div id="sca-fg-today-offer-widget"></div>
17889<div id="sca-fg-today-offer-iframe"></div>
17890
17891<div id="bogos-mix-match-main-collection-popup-container" class="sca-modal-fg"></div>
17892<div id="bogos-main-popup-product-detail-container" data-animation="slideInOutTop"></div>
17893<div id="bogos-main-popup-more-product-container" data-animation="slideInOutTop"></div>
17894
17895<div id="bogos-cart-discount-congrats-msg-wrap"></div>
17896
17897<script type="text/javascript" data-cmp-vendor="bogos" data-cmp-ab="0">
17898    if (typeof Shopify === "undefined") window.Shopify = {};
17899    Shopify.cartItems = [];
17900    Shopify.current_product = {};
17901    Shopify.current_collection = {};
17902    Shopify.products = {};
17903
17904    // current product or collection
17905    Shopify.current_product = {...null};
17906    
17907
17908    Shopify.current_collection = {...null};
17909
17910    window.SECOMAPP = window.SECOMAPP || {};
17911    SECOMAPP.fg_codes = [];
17912    SECOMAPP.activateOnlyOnePromoCode = false;
17913
17914    SECOMAPP.localization = [];SECOMAPP.localization.push({
17915        ...{"shop_locale":{"locale":"en","enabled":true,"primary":true,"published":true}},
17916        root_url: "/"
17917    });
17918    
17919    SECOMAPP.fgData = {...{"appearance":{"bundle":{"color":{"theme_color":"neutral","item_name_color":"#303030","title_text_color":"#303030","button_text_color":"#FFFFFF","bundle_price_color":"#005BD3","original_price_color":"#005BD3","description_text_color":"#616161","button_background_color":"#303030","widget_background_color":"#F3F3F3","item_card_background_color":"#FFFFFF","shipping_discount_background":"#DEE6FF","shipping_discount_text_color":"#2332D5"},"others":{"hidden_brand_mark":false},"content":{"button_text":"Add bundle to cart","show_description":true,"total_price_text":"Total bundle price","shipping_icon_path":"images\/shipping-icons\/shipping-icon-1.png","select_variant_text":"Select variant","show_discount_each_item":true,"show_discount_on_button":true,"shopify_shipping_icon_path":"shipping-icon-1.png"}},"gift_icon":{"product_page":{"gift_icon":{"size":"100","status":true},"gift_thumbnail":{"status":true,"number_text":"gift items included","border_color":"#8A8A8A","show_multiple":"together","countdown_text":"Expiring in","use_old_version":false,"offer_name_color":"#000000","show_number_gift":true,"countdown_time_color":"#000000","show_countdown_timer":true}},"gift_icon_path":"images\/fg-icons\/fg-icon-red.png","collection_page":{"size":"50","status":false},"shopify_gift_icon_path":"fg-icon-red.png","enable_for_all_conditions":true},"mix_match":{"color":{"theme_color":"neutral","item_name_color":"#303030","title_text_color":"#303030","button_text_color":"#FFFFFF","bundle_price_color":"#303030","original_price_color":"#B5B5B5","description_text_color":"#616161","button_background_color":"#303030","widget_background_color":"#F3F3F3","default_label_text_color":"#4F4700","success_label_text_color":"#29845A","item_card_background_color":"#FFFFFF","shipping_discount_background":"#DEE6FF","shipping_discount_text_color":"#2332D5","default_label_background_color":"#FFF8DB","success_label_background_color":"#CDFEE1"},"content":{"tier_style":"label","button_text":"Add bundle to cart","out_stock_text":"Out of stock!","mix_item_header":"Mix item {{itemIndex}}","show_description":true,"total_price_text":"Total bundle price","shipping_icon_path":"images\/shipping-icons\/shipping-icon-1.png","select_product_text":"Choose from {{number}} product(s)","select_variant_title":"Variant","select_collection_text":"Choose from {{number}} collection(s)","show_discount_each_item":true,"show_discount_on_button":true,"shopify_shipping_icon_path":"shipping-icon-1.png"}},"fbt_upsell":{"color":{"item_name":"#303030","item_price":"#303030","theme_color":"neutral","widget_title":"#303030","checkbox_color":"#303030","widget_subtitle":"#303030","atc_button_color":"#303030","item_price_after":"#303030","item_price_before":"#808080","total_price_after":"#303030","widget_background":"#F6F6F6","total_price_before":"#616161","cheapest_text_color":"#FFFFFF","atc_button_text_color":"#FFFFFF","current_item_tag_text":"#303030","current_item_tag_color":"#D1D1D1","cheapest_highlight_color":"#FFAA00","shipping_discount_background":"#DEE6FF","shipping_discount_text_color":"#2332D5"},"content":{"button_text":"Add selected items","free_item_text":"Free 1 item","total_price_text":"Total price","shipping_icon_path":"images\/shipping-icons\/shipping-icon-1.png","shopify_shipping_icon_path":"shipping-icon-1.png"},"general":{"widget_layout":"classic","maximum_display":3,"show_discount_amount":true,"show_discount_each_item":true}},"bundle_page":{"color":{"theme_color":"neutral","step_text_color":"#303030","atc_button_color":"#303030","step_title_color":"#303030","cart_button_color":"#303030","page_heading_color":"#303030","product_title_color":"#303030","required_text_color":"#2332D5","variant_title_color":"#616161","original_price_color":"#808080","side_bar_title_color":"#303030","step_highlight_color":"#303030","atc_button_text_color":"#FFFFFF","cart_button_text_color":"#FFFFFF","discounted_price_color":"#303030","page_sub_heading_color":"#303030","step_description_color":"#616161","default_label_text_color":"#4F4700","success_label_text_color":"#29845A","side_bar_background_color":"#F3F3F3","side_bar_description_color":"#303030","shipping_discount_background":"#DEE6FF","shipping_discount_text_color":"#2332D5","default_step_background_color":"#F3F3F3","default_label_background_color":"#FFF8DB","success_label_background_color":"#CDFEE1"},"content":{"step_text":"Step {{index}}","tier_style":"progress","load_more_text":"Load more","out_stock_text":"Out of stock","read_more_text":"See more","step_icon_path":"images\/step-icons\/step-icon-1.png","atc_button_text":"Add to bundle","blank_step_text":"Add product to this step","cart_button_text":"Add bundle to cart","show_description":true,"total_price_text":"Total bundle price","summary_icon_path":"images\/summary-icons\/summary-icon-1.png","shipping_icon_path":"images\/shipping-icons\/shipping-icon-1.png","summary_title_text":"Your bundle","choose_variant_text":"Choose variant","maximum_quantity_text":"Maximum item reached","required_product_text":"{{number}} item(s) required","shopify_step_icon_path":"step-icon-1.png","summary_description_text":"Choose items from this page to make your own bundle","shopify_summary_icon_path":"summary-icon-1.png","shopify_shipping_icon_path":"shipping-icon-1.png"}},"gift_slider":{"color":{"add_to_cart_color":"#FFFFFF","offer_title_color":"#000000","product_title_color":"#000000","original_price_color":"#121212","variant_select_color":"#005BD3","add_to_cart_btn_color":"#218369","discounted_price_color":"#D2324C","gift_slider_title_color":"#121212","notify_add_gift_active_state_color":"#CDFEE1","notify_add_gift_normal_state_color":"#FFEF9D"},"others":{"gift_img_size":"\u0026width=480\u0026height=480","hidden_brand_mark":false,"disable_use_old_version":true},"general":{"running_text":null,"show_gift_type":"all_in_one","select_gift_btn":"Select variants","show_pagination":true,"use_old_version":false,"gift_popup_title":"Select your free gift!","show_product_title":true,"show_variant_title":true,"add_to_cart_btn_title":"Add to cart","number_product_slider":4,"show_gift_for_customer":"by_variants","enable_add_multiple_gifts":true,"number_product_slider_mobile":1.8}
17919,"pages_display":{"pages":["all"],"custom":[]},"notify_gift_can_add":{"enable":false,"number_gifts_added":"You have added {{number}} gift product(s)","number_gifts_can_be_added":"You can add {{number}} gift product(s)"},"notify_offer_available":{"text":"🎁 You have qualified for {{qualifiedOffers}} offer(s)!","enable":true},"disable_slider_checkbox":{"text":"Don't show this offer again","time":10,"enable":false}},"today_offer":{"widget_info":{"show_widget":false,"widget_title":"TODAY OFFER","widget_position":"bottom_right","widget_subtitle":"Claim these exclusive offers today","icon_widget_title":"Today offer","widget_icon_style":"icon"},"widget_color":{"offer_title_color":"#82868b","widget_title_color":"#5E5873","offer_default_color":"#ebe9f1","offer_success_color":"#69CE82","body_background_color":"#FFFFFF","widget_subtitle_color":"#b9b9c3","header_background_color":"#FFFFFF"},"widget_icon_path":"images\/widget-icons\/widget-icon-1.png","shopify_widget_icon_path":"widget-icon-1.png"},"cart_discount":{"color":{"widget":{"line_color":"#D0D0D0","theme_color":"blue","open_icon_color":"#616161","tier_text_color":"#303030","title_text_color":"#2332D5","active_icon_color":"#008000","excluded_tier_color":"#cccccc","widget_border_color":"#7B84E6","open_tier_text_color":"#303030","tier_background_color":"#FFFFFF","active_tier_text_color":"#008000","description_text_color":"#616161","widget_background_color":"#FFFFFF"},"congrats":{"theme_color":"blue","background_color":"#EEEFFB","title_text_color":"#2332D5","description_text_color":"#303030"}},"content":{"widget":{"icon":"https:\/\/d33a6lvgbd0fej.cloudfront.net\/bogos-images\/1772523961.png","divide_tiers":false,"widget_style":"style_1","discount_tier_style":"checklist","widget_border_radius":12},"congrats":{"title":"Congratulations!","position":"bottom_right","appear_for":5,"description":"You got {{discount_amount}} off!","border_radius":12}}},"product_add_on":{"color":{"theme_color":"neutral","checkbox_color":"#303030","card_border_color":"#888888","widget_background":"#F6F6F6","product_name_color":"#303030","variant_name_color":"#303030","widget_title_color":"#303030","see_more_text_color":"#808080","widget_border_color":"#FFFFFF","discount_price_color":"#303030","original_price_color":"#CCCCCC","card_background_color":"#F6F6F6","widget_subtitle_color":"#303030"},"content":{"title_align":"left","see_less_text":"See less","see_more_text":"See more","see_more_align":"left","number_cols_compact":1,"number_rows_compact":3,"number_cols_full_width":3,"number_rows_full_width":1},"general":{"card_style":"horizon","widget_style":"style_1","widget_radius":12,"product_img_size":80,"checkbox_position":"left_on_img","enable_img_radius":false}},"quantity_break":{"color":{"tag_color":"#F1F1F1","tier_price":"#303030","tier_title":"#303030","label_color":"#303030","theme_color":"neutral","bundle_price":"#303030","bundle_title":"#303030","section_title":"#303030","tag_text_color":"#303030","label_text_color":"#FFFFFF","tier_description":"#616161","button_text_color":"#FFFFFF","bundle_description":"#303030","button_check_color":"#8051FF","bundle_origin_price":"#B5B5B5","button_background_color":"#303030","widget_background_color":"#F3F3F3","item_card_background_color":"#FFFFFF","shipping_discount_background":"DEE6FF","shipping_discount_text_color":"#2332D5"},"content":{"button_text":"Add bundles to cart","show_description":true,"total_price_text":"Total price","shipping_icon_path":"images\/shipping-icons\/shipping-icon-1.png","select_variant_text":"Select variant","shopify_shipping_icon_path":"shipping-icon-1.png"}},"select_variant":{"type":"variant","color":{"active_tab_text":"#303030","default_tab_text":"#303030","active_tab_border":"#303030","active_tab_background":"#F0F0F0","active_item_background":"#F0F0F0","default_tab_background":"#F0F0F0"},"config":[],"configs":[]},"checkout_upsell":{"color":{"button_style":"primary","widget_price_color":"base","widget_background_color":"base"},"content":{"widget_message":"You may also like","widget_button_text":"Add to cart"},"general":{"widget_layout":"carousel","widget_position ":"left","widget_active_message":true,"widget_active_compare_at_price":true}},"volume_discount":{"table":{"color":{"row_color":"#FFFFFF","tag_color":"#F1F1F1","line_color":"#E0E0E0","theme_color":"neutral","widget_title":"#303030","row_odd_color":"#FFFFFF","widget_header":"#F3F3F3","row_even_color":"#F5F5F5","tag_text_color":"#303030","label_text_color":"#FFFFFF","tier_title_color":"#303030","widget_sub_title":"#303030","discount_text_color":"#303030","original_price_color":"#B5B5B5","discounted_price_color":"#303030","label_background_color":"#303030","tier_description_color":"#616161","shipping_discount_text_color":"#2332D5"},"hide_line":false,"body_style":"line","text_align":"left","discount_text":"{{discountAmount}} OFF","discount_show_as":"discount_text","show_description":true,"show_original_price":true},"content":{"button_text":"Add bundles to cart","total_price_text":"Total price","shipping_icon_path":"images\/shipping-icons\/shipping-icon-1.png","select_variant_text":"Select variant","shopify_shipping_icon_path":"shipping-icon-1.png"},"default":{"color":{"tag_color":"#F1F1F1","tier_price":"#303030","tier_title":"#303030","label_color":"#303030","theme_color":"neutral","bundle_price":"#303030","bundle_title":"#303030","section_title":"#303030","tag_text_color":"#303030","label_text_color":"#FFFFFF","tier_description":"#616161","button_text_color":"#FFFFFF","bundle_description":"#303030","button_check_color":"#8051FF","bundle_origin_price":"#B5B5B5","button_background_color":"#303030","widget_background_color":"#F3F3F3","item_card_background_color":"#FFFFFF","shipping_discount_background":"DEE6FF","shipping_discount_text_color":"#2332D5"},"show_description":true}},"cheapest_discount":{"color":{"theme_color":"neutral","see_more_color":"#303030","open_icon_color":"#4A4A4A","active_icon_color":"#303030","bullet_text_color":"#808080","widget_title_color":"#303030","product_price_color":"#303030","product_title_color":"#303030","variant_title_color":"#303030","widget_border_color":"#888888","open_tier_text_color":"#303030","button_add_text_color":"#ffffff","widget_subtitle_color":"#616161","active_tier_text_color":"#303030","tiers_background_color":"#F6F6F6","widget_background_color":"#ffffff","excluded_tier_text_color":"#CCCCCC","product_list_label_color":"#616161","button_add_background_color":"#303030"},"content":{"tier_style":"checklist","see_more_text":"See all","show_see_more":true,"number_products":4,"number_cols_mobile":2,"number_rows_mobile":2,"product_list_label":"Choose from these products to get discount","number_cols_desktop":4,"number_rows_desktop":2,"add_product_bt
17919n_text":"Add","show_add_product_btn":true}},"promotion_message":{"text_color":"#ffffff","background_color":"#D2324C","show_on_cart_page":true},"thanks_page_upsell":{"color":{"button_style":"primary","widget_price_color":"base","widget_background_color":"transparent"},"content":{"widget_message":"You may also like","widget_button_text":"Add to cart"},"general":{"widget_layout":"carousel","widget_position ":"left","widget_active_message":true,"widget_active_compare_at_price":true}},"bundle_product_page":{"color":{"theme_color":"neutral","quantity_color":"#303030","active_tab_text":"#303030","badge_text_color":"#303030","default_tab_text":"#303030","active_tab_border":"#303030","child_theme_color":"neutral","default_tab_border":"#FFFFFF","product_name_color":"#303030","section_name_color":"#303030","variant_name_color":"#616161","discount_price_color":"#303030","original_price_color":"#808080","section_border_color":"#D0D0D0","active_tab_background":"#F0F0F0","add_item_button_color":"#303030","size_list_label_color":"#303030","badge_background_color":"#FFBB4E","child_label_text_color":"#303030","default_tab_background":"#F0F0F0","total_price_text_color":"#616161","add_bundle_button_color":"#303030","product_card_background":"#F6F6F6","child_product_name_color":"#303030","child_variant_name_color":"#616161","child_widget_title_color":"#303030","child_widget_border_color":"#303030","add_item_button_text_color":"#FFFFFF","add_bundle_button_text_color":"#FFFFFF","child_label_background_color":"#E7E7E7","child_widget_background_color":"#F0F0F0","child_redirect_button_text_color":"#303030"},"content":{"child_label":"Includes in {{number}} bundles","cart_button_text":"Add bundle to cart","total_price_text":"Total bundle price","countdown_message":"Added {{amount_added}} items, {{amount_left}} to go","child_widget_style":"filled_background","show_countdown_on_button":true,"child_show_discount_label":true,"child_redirect_button_label":"Go to bundle","child_products_per_row_mobile":2,"child_products_per_row_desktop":4,"child_show_product_variant_name":true}}},"settings":{"gift_format":"same_as_original_products","auto_add_gift":true,"sale_channels":null,"sync_quantity":false,"barcode_format":"blank","fraud_protection":null,"cal_gift_discount":"current_price","gift_title_format":"gift","using_draft_order":false,"select_one_gift_price":false,"manual_input_inventory":false,"include_compare_at_price":false,"cart_and_checkout_validation":{"type":[],"offer":false,"value":{"max_gifts":1,"min_cart_value":1,"min_cart_quantity":1},"status":true,"condition":"and"},"fraud_protection_cancel_order":null,"other_original_product_detail":null,"compare_gift_price_with_product":false,"delete_gift_after_turn_off_offer":true,"not_show_gift_if_already_on_cart":false,"barcode":"blank","type_seo":"number_integer","translation":{"type":"by_bogos","integration_app":null},"is_new_title_icon":true,"ab_before_charge_v2":1,"mode_override_checkout":"default","notify_via_email":null,"admin_api_access_token":null,"publications":null},"storefront":{"access_token":"a7ee910aa0c5c77f9cfe221774012858","created_at":"2026-09-04T16:09:25Z"}}};
17920    
17921//liquid code to get customer history and customer tag
17922    
17923    
17924    SECOMAPP.current_template = "page";
17925    SECOMAPP.pathname = window.location.pathname;
17926    if (SECOMAPP.current_template === "404" && SECOMAPP.pathname?.includes("-sca_clone_freegift")) {
17927        window.location.replace(SECOMAPP.pathname.split("-sca_clone_freegift")[0]);
17928    } else if (SECOMAPP.current_template === "404" && SECOMAPP.pathname?.includes("/collections/sca_fg")) {
17929        window.location.replace(`${Shopify?.routes?.root ?? "/"}collections/all`);
17930    }
17931
17932    SECOMAPP.setCookie = function (e, t, o, n, r) {
17933        let i = new Date;
17934        i.setTime(i.getTime() + 24 * o * 36e5 + 60 * n * 1e3);
17935        let f = "expires=" + i.toUTCString();
17936        document.cookie = e + "=" + t + ";" + f + (r ? ";path=" + r : ";path=/");
17937    };
17938    SECOMAPP.deleteCookie = function (e, t) {
17939        document.cookie = e + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; " + (t ? ";path=" + t : ";path=/")
17940    };
17941    SECOMAPP.getCookie = function (e) {
17942        for (let t = e + "=", o = document.cookie.split(";"), n = 0; n < o.length; n++) {
17943            let r;
17944            for (r = o[n]; " " === r.charAt(0);) r = r.substring(1);
17945            if (0 === r.indexOf(t)) return r.substring(t.length, r.length)
17946        }
17947        return ""
17948    };
17949    SECOMAPP.getQueryString = function (key) {
17950        let e = {};
17951        let t = window.location.search.substring(1).split("&");
17952        let o = 0;
17953        for (; o < t.length; o++) {
17954            let n = t[o].split("=");
17955            if (void 0 === e[n[0]]) e[n[0]] = decodeURIComponent(n[1]);
17956            else if ("string" == typeof e[n[0]]) {
17957                e[n[0]] = [e[n[0]], decodeURIComponent(n[1])]
17958            } else e[n[0]].push(decodeURIComponent(n[1]))
17959        }
17960        return key ? e?.[key] : e;
17961    };
17962
17963    SECOMAPP.offer_codes = [
17964        {param: "freegifts_code", cookie: "sca_fg_codes"},
17965        {param: "bundles_code", cookie: "sca_bundle_codes"},
17966        {param: "upsells_code", cookie: "sca_upsell_codes"},
17967        {param: "discounts_code", cookie: "sca_discount_codes"},
17968    ];
17969    SECOMAPP.offer_codes.forEach(({param, cookie}) => {
17970        SECOMAPP.fg_codes = [];
17971        SECOMAPP.getCookie(cookie) && (SECOMAPP.fg_codes = JSON.parse(SECOMAPP.getCookie(cookie)));
17972        SECOMAPP.current_code = SECOMAPP.getQueryString(param);
17973        SECOMAPP.current_code && !SECOMAPP.fg_codes.includes(SECOMAPP.current_code)
17974        && (function () {
17975            SECOMAPP.activateOnlyOnePromoCode && (SECOMAPP.fg_codes = []);
17976            SECOMAPP.fg_codes.push(SECOMAPP.current_code);
17977            SECOMAPP.setCookie(cookie, JSON.stringify(SECOMAPP.fg_codes));
17978        })();
17979    });
17980
17981    SECOMAPP.customer = {};
17982    SECOMAPP.customer.orders = [];
17983    SECOMAPP.customer.freegifts = [];
17984    SECOMAPP.customer.freegifts_v2 = [];
17985    
17986    SECOMAPP.customer.email = "";
17987    SECOMAPP.customer.first_name = "";
17988    SECOMAPP.customer.last_name = "";
17989    SECOMAPP.customer.tags = Object.values({...null});
17990    SECOMAPP.customer.orders_count = "" - 0;
17991    SECOMAPP.customer.total_spent = "" - 0;
17992    SECOMAPP.customer.b2b = "" - 0;
17993    SECOMAPP.market = {
17994        id: "71082934579" - 0,
17995        handle: "us",
17996    };
17997    
17998
17999    // get class name config from settings_data.json
18000    if (!Shopify.scaHandleConfigValue) {
18001        Shopify.scaHandleConfigValue = {
18002            ...null,
18003            ...null
18004        };
18005    }
18006
18007    // add link proxy
18008    SECOMAPP.freegiftProxy = "/apps/secomapp_freegifts_get_order?ver=3.0";
18009    
18010    SECOMAPP.freegiftProxy = "/apps/secomapp_freegifts_get_order?ver=3.0";
18011    
18012    SECOMAPP.bogosCollectUrl = "https://collect.bogos.io/collect"
18013    SECOMAPP.bogosIntegrationUrl = "https://api.bogos.io/integrations"
18014
18015    // get shop locales
18016    SECOMAPP.shop_locales = Object.values({
18017        ...[{"shop_locale":{"locale":"en","enabled":true,"primary":true,"published":true}}]
18018    });
18019
18020    SECOMAPP.current_locale = { ...{"shop_locale":{"locale":"en","enabled":true,"primary":true,"published":true}} }
18021
18022    
18023    
18024    window.fgGiftIcon = "https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/fg-icon-red_small.png";
18025    window.fgWidgetIconsObj = {
18026        "widget-icon-1.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/widget-icon-1_small.png',
18027        "widget-icon-2.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/widget-icon-2_small.png',
18028        "widget-icon-3.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/widget-icon-3_small.png',
18029        "widget-icon-4.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/widget-icon-4_small.png',
18030        "widget-icon-5.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/widget-icon-5_small.png',
18031        "widget-icon-6.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/widget-icon-6_small.png',
18032        "widget-icon-7.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/widget-icon-7_small.png',
18033        "widget-icon-8.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/widget-icon-8_small.png'
18034    }
18035
18036    window.fgStepIconsObj = {
18037        "step-icon-1.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/step-icon-1_small.png',
18038        "step-icon-2.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/step-icon-2_small.png',
18039        "step-icon-3.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/step-icon-3_small.png',
18040        "step-icon-4.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/step-icon-4_small.png',
18041        "step-icon-5.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/step-icon-5_small.png',
18042        "step-icon-6.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/step-icon-6_small.png',
18043        "step-icon-7.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/step-icon-7_small.png',
18044    }
18045
18046    window.fgSummaryIconsObj = {
18047        "summary-icon-1.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/summary-icon-1_small.png',
18048        "summary-icon-2.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/summary-icon-2_small.png',
18049        "summary-icon-3.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/summary-icon-3_small.png',
18050        "summary-icon-4.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/summary-icon-4_small.png',
18051        "summary-icon-5.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/summary-icon-5_small.png',
18052        "summary-icon-6.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/summary-icon-6_small.png',
18053        "summary-icon-7.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/summary-icon-7_small.png',
18054        "summary-icon-8.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/summary-icon-8_small.png',
18055    }
18056
18057    window.fgShippingIconsObj = {
18058        "shipping-icon-1.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/shipping-icon-1_small.png',
18059        "shipping-icon-2.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/shipping-icon-2_small.png',
18060        "shipping-icon-3.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/shipping-icon-3_small.png',
18061        "shipping-icon-4.png": 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/shipping-icon-4_small.png',
18062    }
18063
18064    // variable from tools
18065    SECOMAPP.variables = {
18066        ...SECOMAPP.variables,
18067        ...null,
18068        ...{"web_pixel":true},
18069        shipping_product_img: 'https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/shipping_product_small.png'
18070    }
18071
18072    window.fgResource = {
18073        gift: {
18074            js: ["https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/gift.min.js"]
18075        },
18076        bundle: {
18077            js: ["https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/bundle.min.js"],
18078            css: ["https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/bogos.bundle.min.css"]
18079        },
18080        upsell: {
18081            js: ["https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/upsell.min.js"],
18082            css: ["https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/bogos.upsell.min.css"]
18083        },
18084        discount: {
18085            js: ["https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/discount.min.js"],
18086            css: ["https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/bogos.discount.min.css"]
18087        },
18088        "bundle-page": {
18089            js: ["https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/bundle-page.min.js"],
18090            css: ["https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/bogos.bundle-page.min.css"]
18091        },
18092        booster: {
18093            js: ["https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/booster.min.js"],
18094            css: ["https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/bogos.booster.min.css"]
18095        }
18096    }
18097</script>
18097
18098
18099<script defer src="https://cdn.bogos.io/c2VhdHRsZWNvZmZlZWdlYXIubXlzaG9waWZ5LmNvbQ==/freegifts_data_1788538855.min.js"></script>
18099
18100<div id="secomapp_freegifts_url" data-url="https://cdn.bogos.io/c2VhdHRsZWNvZmZlZWdlYXIubXlzaG9waWZ5LmNvbQ==/freegifts_data_1788538855.min.js"></div>
18101
18102
18103<div id="bogos-gift-script" data-url="https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/gift.min.js"></div> 
18104<div id="bogos-bundle-script" data-url="https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/bundle.min.js"></div>
18105<div id="bogos-upsell-script" data-url="https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/upsell.min.js"></div>
18106<div id="bogos-discount-script" data-url="https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/discount.min.js"></div>
18107<div id="bogos-bundle-page-script" data-url="https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/bundle-page.min.js"></div>
18108<div id="bogos-booster-script" data-url="https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/booster.min.js"></div>
18109<div id="bogos-booster-page-script" data-url="https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/booster-page.min.js"></div>
18110
18111
18112<div id="bogos-bundle-style" data-url="https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/bogos.bundle.min.css"></div>
18113<div id="bogos-upsell-style" data-url="https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/bogos.upsell.min.css"></div>
18114<div id="bogos-discount-style" data-url="https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/bogos.discount.min.css"></div>
18115<div id="bogos-bundle-page-style" data-url="https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/bogos.bundle-page.min.css"></div>
18116<div id="bogos-booster-style" data-url="https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/bogos.booster.min.css"></div>
18117<div id="bogos-booster-page-style" data-url="https://cdn.shopify.com/extensions/01a0f05b-c397-7b69-8f57-ce47e9cb2ee2/freegifts-232/assets/bogos.booster-page.min.css"></div>
18118<!-- END app snippet -->
18119
18120
18121<!-- BEGIN app snippet: search -->
18122
18123<!-- END app snippet -->
18124
18125
18126
18127</div><div id="shopify-block-AbmR4ZVhWZXJvS2NJQ__2786716548061469553" class="shopify-block shopify-app-block">
18128
18129<script>
18130</script>
18130
18131
18132 </div><div id="shopify-block-AaEZlZ2xkRExGM3F1K__10979705531712725373" class="shopify-block shopify-app-block">
18133
18134
18135
18136
18137<div id="tt-teaser-icons" style="display:none;">
18138  <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
18139    <symbol id="tt-teaser-star--empty" viewBox="0 0 24 24">
18140      <path d="M12 18l-6.4 3.88 1.73-7.33-5.66-4.93L9.09 9 12 2.09 14.91 9l7.42.64-5.63 5 1.72 7.34z" fill="none" xmlns="http://www.w3.org/2000/svg"></path>
18141    </symbol>
18142    <symbol id="tt-teaser-star--full" viewBox="0 0 24 24">
18143      <path d="M12 18.66l-7.44 4.35 1.98-8.16L0 9.36l8.62-.7L12 .99l3.38 7.67 8.62.7-6.54 5.49 1.98 8.16L12 18.66z" xmlns="http://www.w3.org/2000/svg"></path>
18144    </symbol>
18145    <symbol id="tt-teaser-star--half" viewBox="0 0 24 24">
18146      <path fill="currentColor" d="M12 2.09L9.09 9l-7.42.62 5.66 4.93-1.72 7.32 1.07-.65L12 17.97V2.09z" xmlns="http://www.w3.org/2000/svg"></path>
18147      <path d="M12 2.09L14.91 9l7.42.62-5.66 4.93 1.72 7.32-1.07-.65L12 17.97V2.09z"></path>
18148    </symbol>
18149  </svg>
18150</div>
18151<style>
18152  .tt-product-block .TTteaser {
18153    font-size: 12px;
18154    font-family: "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
18155  }
18156  .tt-product-block .TTteaser__rating {
18157    display: inline-block;
18158    vertical-align: middle;
18159    margin-right: 5px;
18160  }
18161  .tt-product-block .TTteaser__star svg {
18162    width: 16px;
18163    height: 16px;
18164  }
18165  .tt-product-block .TTteaser__icon--full {
18166    fill: #000;
18167  }
18168  .tt-product-block .TTteaser__icon--half {
18169    stroke: #000;
18170    fill: transparent;
18171    color: #000;
18172  }
18173  .tt-product-block .TTteaser__icon--empty {
18174    stroke: #000;
18175  }
18176  .tt-product-block .TTteaser__read-qa,
18177  .tt-product-block .TTteaser__read-comments,
18178  .tt-product-block .TTteaser__read-reviews,
18179  .tt-product-block .TTteaser__write-review {
18180    font-size: 12px;
18181    font-family: "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
18182    color: #000;
18183    text-decoration: underline;
18184  }
18185  .tt-product-block .TTteaser__write-review {
18186    border: none;
18187    text-decoration: underline;
18188    background: transparent;
18189    padding: 0;
18190    cursor: pointer;
18191  }
18192</style>
18193
18194
18195
18196<!-- BEGIN app snippet: tt-bootstrap-config -->
18196<script>
18197  window.__turnToBootstrapParams = {
18198    force_fallback: false,
18199    fallback: "page",
18200    editor_mode: false
18201  };
18202  (function() {
18203    const priorityMap = {
18204      "pdp-page": 100,
18205      "email-landing-page": 90,
18206      "all-reviews-page": 85,
18207      "seller-ratings-page": 80,
18208      "vc-pinboard-page": 75,
18209      "comments-pinboard-page": 70
18210    };
18211
18212    window.__turnToSyncPageIdToConfig = window.__turnToSyncPageIdToConfig || function() {
18213      if (window.__turnToResolvedPageId && window.turnToConfig) {
18214        window.turnToConfig.pageId = window.__turnToResolvedPageId;
18215      }
18216    };
18217
18218    function stickyPageId() {
18219      if (window.__turnToLastResolvedWidgetPageId) {
18220        return window.__turnToLastResolvedWidgetPageId;
18221      }
18222      try {
18223        return sessionStorage.getItem("__turnToLastResolvedWidgetPageId");
18224      } catch (e) {
18225        return null;
18226      }
18227    }
18228
18229    function saveStickyPageId(pageId) {
18230      if (!pageId) {
18231        return;
18232      }
18233      window.__turnToLastResolvedWidgetPageId = pageId;
18234      try {
18235        sessionStorage.setItem("__turnToLastResolvedWidgetPageId", pageId);
18236      } catch (e) {
18237        /* storage unavailable */
18238      }
18239    }
18240
18241    function collectDomPageIds() {
18242      const ids = [];
18243      document.querySelectorAll("[data-tt-widget-page-id]").forEach((el) => {
18244        const v = el.getAttribute("data-tt-widget-page-id");
18245        if (v) {
18246          ids.push(v.trim());
18247        }
18248      });
18249      return ids;
18250    }
18251
18252    function isEditorContext(params) {
18253      if (params && params.editor_mode) {
18254        return true;
18255      }
18256      try {
18257        if (document.documentElement && document.documentElement.classList.contains("shopify-design-mode")) {
18258          return true;
18259        }
18260        if (window.Shopify && (window.Shopify.designMode || window.Shopify.visualPreviewMode)) {
18261          return true;
18262        }
18263        const q = window.location && window.location.search;
18264        if (q && (q.indexOf("oseid=") !== -1 || q.indexOf("source=visualPreview") !== -1 || q.indexOf("preview_theme_id=") !== -1)) {
18265          return true;
18266        }
18267      } catch (e) {
18268        return false;
18269      }
18270      return false;
18271    }
18272
18273    const WIDGET_CONFIG_KEYS = ["gallery", "allReviews", "vcPinboard", "commentsPinboard", "topComments"];
18274    const WIDGET_MOUNT_CHECKS = [
18275      { key: "gallery", selector: "#tt-gallery-row" },
18276      { key: "allReviews", selector: "#tt-all-reviews" },
18277      { key: "vcPinboard", selector: "#tt-vc-pinboard-widget" },
18278      { key: "commentsPinboard", selector: "#tt-comments-pinboard-widget" },
18279      { key: "topComments", selector: ".tt-top-comment" }
18280    ];
18281    const STICKY_WIDGET_CONFIG_STORAGE_KEY = "__turnToLastMergedWidgetConfig";
18282
18283    function stickyWidgetConfigMap() {
18284      if (window.__turnToLastMergedWidgetConfig) {
18285        return window.__turnToLastMergedWidgetConfig;
18286      }
18287      try {
18288        const raw = sessionStorage.getItem(STICKY_WIDGET_CONFIG_STORAGE_KEY);
18289        return raw ? JSON.parse(raw) : {};
18290      } catch (e) {
18291        return {};
18292      }
18293    }
18294
18295    function saveStickyWidgetConfigMap(map) {
18296      window.__turnToLastMergedWidgetConfig = map;
18297      try {
18298        if (map && Object.keys(map).length > 0) {
18299          sessionStorage.setItem(STICKY_WIDGET_CONFIG_STORAGE_KEY, JSON.stringify(map));
18300        } else {
18301          sessionStorage.removeItem(STICKY_WIDGET_CONFIG_STORAGE_KEY);
18302        }
18303      } catch (e) {
18304        /* storage unavailable */
18305      }
18306    }
18307
18308    window.__turnToSyncWidgetConfigFromSticky = window.__turnToSyncWidgetConfigFromSticky || function() {
18309      if (!window.turnToConfig || !isEditorContext(window.__turnToBootstrapParams)) {
18310        return;
18311      }
18312      const sticky = stickyWidgetConfigMap();
18313      WIDGET_CONFIG_KEYS.forEach(function(k) {
18314        if (Object.prototype.hasOwnProperty.call(sticky, k)) {
18315          window.turnToConfig[k] = sticky[k];
18316        }
18317      });
18318    };
18319
18320    function applyWidgetConfigSnapshot(snapshot) {
18321      WIDGET_CONFIG_KEYS.forEach(function(k) {
18322        delete window.turnToConfig[k];
18323      });
18324      if (!snapshot) {
18325        return;
18326      }
18327      Object.keys(snapshot).forEach(function(k) {
18328        if (WIDGET_CONFIG_KEYS.indexOf(k) !== -1) {
18329          window.turnToConfig[k] = snapshot[k];
18330        }
18331      });
18332    }
18333
18334    function mergeWidgetConfigsFromDom() {
18335      const merged = {};
18336      document.querySelectorAll("[data-tt-widget-config]").forEach(function(el) {
18337        try {
18338          const cfg = JSON.parse(el.textContent);
18339          Object.keys(cfg).forEach(function(k) {
18340            merged[k] = cfg[k];
18341          });
18342        } catch (e) {
18343          /* invalid widget config JSON */
18344        }
18345      });
18346      return merged;
18347    }
18348
18349    function persistWidgetConfigToSticky() {
18350      const sticky = stickyWidgetConfigMap();
18351      WIDGET_CONFIG_KEYS.forEach(function(k) {
18352        if (window.turnToConfig[k] !== undefined) {
18353          sticky[k] = window.turnToConfig[k];
18354        }
18355      });
18356      saveStickyWidgetConfigMap(sticky);
18357    }
18358
18359    function mergeWidgetConfigsInEditor(merged) {
18360      WIDGET_CONFIG_KEYS.forEach(function(k) {
18361        if (Object.prototype.hasOwnProperty.call(merged, k)) {
18362          window.turnToConfig[k] = merged[k];
18363        }
18364      });
18365      persistWidgetConfigToSticky();
18366    }
18367
18368    function mergeWidgetConfigs() {
18369      if (!window.turnToConfig) {
18370        return;
18371      }
18372      const params = window.__turnToBootstrapParams;
18373      const editor = params && isEditorContext(params);
18374      const scripts = document.querySelectorAll("[data-tt-widget-config]");
18375
18376      if (scripts.length === 0) {
18377        if (!editor) {
18378          applyWidgetConfigSnapshot(null);
18379          saveStickyWidgetConfigMap({});
18380        }
18381        return;
18382      }
18383
18384      const merged = mergeWidgetConfigsFromDom();
18385      if (editor) {
18386        mergeWidgetConfigsInEditor(merged);
18387      } else {
18388        applyWidgetConfigSnapshot(merged);
18389        saveStickyWidgetConfigMap(merged);
18390      }
18391    }
18392
18393    function domHasWidgetConfigKey(key) {
18394      let found = false;
18395      document.querySelectorAll("[data-tt-widget-config]").forEach(function(el) {
18396        try {
18397          const cfg = JSON.parse(el.textContent);
18398          if (Object.prototype.hasOwnProperty.call(cfg, key)) {
18399            found = true;
18400          }
18401        } catch (e) {
18402          /* invalid widget config JSON */
18403        }
18404      });
18405      return found;
18406    }
18407
18408    function widgetConfigSettled() {
18409      if (!window.turnToConfig) {
18410        return false;
18411      }
18412      const editor = isEditorContext(window.__turnToBootstrapParams);
18413      if (editor && collectDomPageIds().length === 0 && document.querySelectorAll("[data-tt-widget-config]").length === 0) {
18414        return true;
18415      }
18416      for (const check of WIDGET_MOUNT_CHECKS) {
18417        if (!document.querySelector(check.selector)) {
18418          continue;
18419        }
18420        if (window.turnToConfig[check.key] !== undefined) {
18421          continue;
18422        }
18423        if (!domHasWidgetConfigKey(check.key)) {
18424          window.turnToConfig[check.key] = {};
18425          continue;
18426        }
18427        return false;
18428      }
18429      return true;
18430    }
18431
18432    function isReadyToLoadTurnToScript() {
18433      const params = window.__turnToBootstrapParams;
18434      if (!params || !window.__turnToResolvedPageId) {
18435        return false;
18436      }
18437      if (!widgetConfigSettled()) {
18438        return false;
18439      }
18440      if (params.force_fallback) {
18441        return true;
18442      }
18443      if (collectDomPageIds().length > 0) {
18444        return true;
18445      }
18446      return !isEditorContext(params);
18447    }
18448
18449    function stopWatching() {
18450      if (window.__turntoBootstrapObserver) {
18451        window.__turntoBootstrapObserver.disconnect();
18452        window.__turntoBootstrapObserver = null;
18453      }
18454    }
18455
18456    function startWatching() {
18457      if (window.__turntoBootstrapObserver || !document.body) {
18458        if (!document.body) {
18459          setTimeout(startWatching, 0);
18460        }
18461        return;
18462      }
18463      window.__turntoBootstrapObserver = new MutationObserver(function() {
18464        window.__turnToScheduleBootstrap();
18465      });
18466      window.__turntoBootstrapObserver.observe(document.body, {
18467        childList: true,
18468        subtree: true
18469      });
18470    }
18471
18472    window.__turnToResolvePageId = function() {
18473      const params = window.__turnToBootstrapParams;
18474      if (!params) {
18475        return true;
18476      }
18477      if (params.force_fallback) {
18478        window.__turnToResolvedPageId = params.fallback;
18479        return true;
18480      }
18481
18482      const registered = collectDomPageIds();
18483
18484      if (registered.length === 0) {
18485        if (isEditorContext(params)) {
18486          const sticky = stickyPageId() || (window.turnToConfig && window.turnToConfig.pageId);
18487          if (sticky) {
18488            saveStickyPageId(sticky);
18489            window.__turnToResolvedPageId = sticky;
18490          }
18491          return false;
18492        }
18493        window.__turnToResolvedPageId = params.fallback;
18494        return true;
18495      }
18496
18497      let best = registered[0];
18498      let bestPriority = priorityMap[best] || 0;
18499      for (const id of registered) {
18500        const idPriority = priorityMap[id] || 0;
18501        if (idPriority > bestPriority) {
18502          best = id;
18503          bestPriority = idPriority;
18504        }
18505      }
18506      saveStickyPageId(best);
18507      window.__turnToResolvedPageId = best;
18508      return true;
18509    };
18510
18511    function manageBootstrapWatching() {
18512      if (window.__turntoScriptLoaded || isReadyToLoadTurnToScript()) {
18513        stopWatching();
18514        return;
18515      }
18516      startWatching();
18517    }
18518
18519    function runBootstrap() {
18520      const settled = window.__turnToResolvePageId();
18521      window.__turnToSyncPageIdToConfig();
18522      mergeWidgetConfigs();
18523      window.__turnToSyncWidgetConfigFromSticky && window.__turnToSyncWidgetConfigFromSticky();
18524      manageBootstrapWatching();
18525      if (isReadyToLoadTurnToScript() && typeof window.__turnToLoadScriptOnce === "function") {
18526        window.__turnToLoadScriptOnce();
18527      }
18528      return settled;
18529    }
18530
18531    window.__turnToScheduleBootstrap = function() {
18532      if (window.__turnToBootstrapDebounceTimer) {
18533        clearTimeout(window.__turnToBootstrapDebounceTimer);
18534      }
18535      window.__turnToBootstrapDebounceTimer = setTimeout(function() {
18536        window.__turnToBootstrapDebounceTimer = null;
18537        runBootstrap();
18538      }, 50);
18539    };
18540
18541    if (!window.__turntoBootstrapHooksRegistered) {
18542      window.__turntoBootstrapHooksRegistered = true;
18543      const resync = function() {
18544        window.__turnToScheduleBootstrap();
18545      };
18546      document.addEventListener("shopify:section:load", resync);
18547      document.addEventListener("shopify:section:unload", function() {
18548        setTimeout(resync, 0);
18549      });
18550      if (document.readyState === "loading") {
18551        document.addEventListener("DOMContentLoaded", resync);
18552      }
18553      window.addEventListener("load", resync);
18554    }
18555
18556    window.__turnToScheduleBootstrap();
18557  })();
18558</script>
18558
18559<!-- END app snippet -->
18560
18561<script>
18562  (function bootstrapTurnToAppEmbed() {
18563    window.__turnToLoadScriptOnce = function() {
18564      if (window.__turntoScriptLoaded || !window.__turnToResolvedPageId) {
18565        return;
18566      }
18567      window.__turntoScriptLoaded = true;
18568      const script = document.createElement("script");
18569      script.src = "https://widgets.turnto.com/v5/widgets/FXvbEP9ZXZpRg6qsite/js/turnto.js";
18570      script.async = true;
18571      document.body.appendChild(script);
18572    };
18573
18574    if (window.__turntoAppEmbedInitialized) {
18575      window.__turnToScheduleBootstrap && window.__turnToScheduleBootstrap();
18576      window.__turnToSyncPageIdToConfig && window.__turnToSyncPageIdToConfig();
18577      window.__turnToSyncWidgetConfigFromSticky && window.__turnToSyncWidgetConfigFromSticky();
18578      return;
18579    }
18580    window.__turntoAppEmbedInitialized = true;
18581
18582    window.TurnToCmd=window.TurnToCmd||function(){(TurnToCmd.q=TurnToCmd.q||[]).push(arguments)};
18583    window.TurnToSKUSetup="PRODUCT";
18584
18585    window.turnToConfig = {
18586      locale: "en_US",
18587      
18588      
18589    };
18590
18591    window.__turnToScheduleBootstrap && window.__turnToScheduleBootstrap();
18592  })();
18593</script>
18593
18594
18595
18596
18597
18598</div><!-- Failed to render app block "1530068250781986104": app block path "shopify://apps/fbp-fast-bundle/blocks/fast_bundle/9e87fbe2-9041-4c23-acf5-322413994cef" does not exist --><div id="shopify-block-AOUhadktlbTJPcUMyU__5735339852805025236" class="shopify-block shopify-app-block">
18599
18600
18601
18602
18603
18604<script type="text/javascript">
18605  (() => {
18606    const pixleeApiKey = "AZEdZV1lT9zETRDMg2Lu";
18607    const pixleeAccountId = 1948;
18608    const pixleeAttributionWindow = Number.parseInt(30, 10);
18609    const pixleeWebPixelActive = true;
18610    const pixleeUseLegacyCartFallback = pixleeWebPixelActive === false;
18611    const pixleeRequireCookieConsent = false;
18612    const pixleeWidgetScriptSrc ='https://assets.pxlecdn.com/assets/pixlee_widget_1_0_0.js';
18613    const pixleeEventsScriptSrc ='https://assets.pixlee.com/assets/pixlee_events.js';
18614    const pixleeAnalyticsInboundUrl ='https://inbound-analytics.pixlee.com';
18615
18616    const attributionWindow = pixleeAttributionWindow > 0 ? pixleeAttributionWindow : 30;
18617
18618    const state = {
18619      widgetScriptId: 'pixlee_widget_script',
18620      eventsScriptId: 'pixlee_events_script',
18621      eventsLoaded: false,
18622      eventsLoadPromise: null,
18623      legacyCartTrackingStarted: false,
18624      cartSnapshotTimer: null,
18625      consentApi: null,
18626      duhRequestPromise: null
18627    };
18628
18629    const log = (type, ...args) => {
18630      if (typeof console !== 'undefined' && typeof console[type] === 'function') {
18631        console[type](...args);
18632      }
18633    };
18634
18635    const onReady = (fn) => {
18636      if (document.readyState === 'loading') {
18637        document.addEventListener('DOMContentLoaded', fn, { once: true });
18638      } else {
18639        fn();
18640      }
18641    };
18642
18643    const loadScript = (src, opts = {}) =>
18644      new Promise((resolve, reject) => {
18645        const script = document.createElement('script');
18646        script.src = src;
18647        script.async = opts.async !== false;
18648        if (opts.defer) script.defer = true;
18649        if (opts.id) script.id = opts.id;
18650        script.onload = resolve;
18651        script.onerror = (err) => reject(err || new Error('Failed to load script'));
18652        document.head.appendChild(script);
18653      });
18654
18655    const parsePixleeCookie = () => {
18656      const findCookie = (name, cookies) => {
18657        const row = cookies.find((entry) => entry.trim().startsWith(`${name}=`));
18658        if (!row) return null;
18659        const value = row.substring(row.indexOf('=') + 1);
18660        try {
18661          return JSON.parse(decodeURIComponent(decodeURIComponent(value)));
18662        } catch (err) {
18663          try {
18664            return JSON.parse(decodeURIComponent(value));
18665          } catch (nestedErr) {
18666            return null;
18667          }
18668        }
18669      };
18670
18671      const cookies = document.cookie.split(';');
18672      return (
18673        findCookie('pixlee_analytics_cookie', cookies) ||
18674        findCookie('pixlee_analytics_cookie_legacy', cookies)
18675      );
18676    };
18677
18678    const hasPixleeUserId = () => {
18679      const cookie = parsePixleeCookie();
18680      return cookie?.CURRENT_PIXLEE_USER_ID != null && cookie.CURRENT_PIXLEE_USER_ID !== '';
18681    };
18682
18683    const mergePixleeCookie = (updates) => {
18684      const existing = parsePixleeCookie() || {};
18685      const merged = { ...existing, ...updates };
18686      const encodedValue = encodeURIComponent(JSON.stringify(merged));
18687      const baseParts = [
18688        'path=/',
18689        `domain=${window.location.hostname.replace(/^www\./, '')}`
18690      ];
18691      if (attributionWindow > 0) {
18692        const date = new Date();
18693        date.setTime(date.getTime() + attributionWindow * 24 * 60 * 60 * 1000);
18694        baseParts.push(`expires=${date.toUTCString()}`);
18695      }
18696      document.cookie = `pixlee_analytics_cookie_legacy=${encodedValue}; ${baseParts.join('; ')}`;
18697      baseParts.push('SameSite=None; Secure');
18698      document.cookie = `pixlee_analytics_cookie=${encodedValue}; ${baseParts.join('; ')}`;
18699      return merged;
18700    };
18701
18702    // Fallback for shops explicitly recorded as not having an app web pixel.
18703    const checkChangeAndSendCart = () => {
18704      if (!pixleeUseLegacyCartFallback) {
18705        return;
18706      }
18707      if (window.Shopify?.checkout !== undefined) {
18708        return;
18709      }
18710
18711      const cookie = parsePixleeCookie();
18712      const uid = cookie?.CURRENT_PIXLEE_USER_ID;
18713      if (!uid) {
18714        log('warn', 'Legacy add-to-cart skipped: Pixlee user ID not available');
18715        return;
18716      }
18717
18718      const getCart = new XMLHttpRequest();
18719      getCart.open('GET', '/cart.json');
18720      getCart.send();
18721
18722      getCart.onreadystatechange = function() {
18723        if (getCart.readyState !== 4) {
18724          return;
18725        }
18726        if (getCart.status !== 200 && getCart.status !== 201) {
18727          log('warn', 'Legacy add-to-cart failed to load cart', getCart.status);
18728          return;
18729        }
18730
18731        try {
18732          const data = JSON.parse(getCart.responseText);
18733          let productIdsSum = 0;
18734          data.currency ||= window.ShopifyAnalytics?.meta?.currency || 'USD';
18735
18736          for (let i = 0; i < data.items.length; i++) {
18737            productIdsSum += data.items[i].id * data.items[i].quantity;
18738          }
18739
18740          const analyticsCookie = parsePixleeCookie() || {};
18741          const existingCartSig = analyticsCookie.pixlee_cart_sig;
18742          if (existingCartSig !== undefined && existingCartSig === productIdsSum) {
18743            return;
18744          }
18745
18746          data.uid = uid;
18747          data.shopify_domain = window.Shopify?.shop;
18748
18749          const sendCart = new XMLHttpRequest();
18750          sendCart.open('POST', `${pixleeAnalyticsInboundUrl}/events/shopifyCart`);
18751          sendCart.setRequestHeader('Content-Type', 'application/json');
18752          sendCart.send(JSON.stringify(data));
18753
18754          sendCart.onreadystatechange = function() {
18755            if (sendCart.readyState !== 4) {
18756              return;
18757            }
18758            if (sendCart.status === 200 || sendCart.status === 201) {
18759              mergePixleeCookie({ pixlee_cart_sig: productIdsSum });
18760            } else if (sendCart.status !== 0 && sendCart.status !== 403) {
18761              log('warn', 'Legacy add-to-cart failed to send cart', sendCart.status);
18762            }
18763          };
18764        } catch (err) {
18765          log('warn', 'Legacy add-to-cart failed to parse cart', err);
18766        }
18767      };
18768    };
18769
18770    const scheduleCartSnapshot = () => {
18771      if (state.cartSnapshotTimer) {
18772        clearTimeout(state.cartSnapshotTimer);
18773      }
18774      state.cartSnapshotTimer = setTimeout(() => {
18775        state.cartSnapshotTimer = null;
18776        checkChangeAndSendCart();
18777      }, 250);
18778    };
18779
18780    const isCartMutation = (url) => {
18781      try {
18782        const path = new URL(url, window.location.origin).pathname;
18783        return /^\/(?:[^/]+\/)?cart\/(?:add|change|update|clear)(?:\.js|\.json)?$/.test(path);
18784      } catch (_err) {
18785        return false;
18786      }
18787    };
18788
18789    const trackCartMutations = () => {
18790      if (state.legacyCartTrackingStarted || !pixleeUseLegacyCartFallback) {
18791        return;
18792      }
18793      state.legacyCartTrackingStarted = true;
18794
18795      const originalFetch = window.fetch;
18796      if (typeof originalFetch === 'function') {
18797        window.fetch = function(input, init) {
18798          const url = typeof input === 'string' ? input : input?.url;
18799          const requestIsCartMutation = isCartMutation(url);
18800          return originalFetch.call(this, input, init).then((response) => {
18801            if (requestIsCartMutation && response.ok) {
18802              scheduleCartSnapshot();
18803            }
18804            return response;
18805          });
18806        };
18807      }
18808
18809      const originalOpen = XMLHttpRequest.prototype.open;
18810      const originalSend = XMLHttpRequest.prototype.send;
18811      XMLHttpRequest.prototype.open = function(method, url, ...args) {
18812        this.pixleeCartMutation = method?.toUpperCase() !== 'GET' && isCartMutation(url);
18813        return originalOpen.call(this, method, url, ...args);
18814      };
18815      XMLHttpRequest.prototype.send = function(...args) {
18816        if (this.pixleeCartMutation) {
18817          this.addEventListener('loadend', () => {
18818            if (this.status >= 200 && this.status < 300) {
18819              scheduleCartSnapshot();
18820            }
18821          }, { once: true });
18822        }
18823        return originalSend.call(this, ...args);
18824      };
18825
18826      document.addEventListener('submit', (event) => {
18827        const action = event.target?.action;
18828        if (isCartMutation(action)) {
18829          scheduleCartSnapshot();
18830        }
18831      });
18832    };
18833
18834    const startLegacyCartTracking = async () => {
18835      trackCartMutations();
18836      if (await waitForPixleeUserId(10000)) {
18837        scheduleCartSnapshot();
18838      } else {
18839        log('warn', 'Legacy add-to-cart skipped: Pixlee user ID not available');
18840      }
18841    };
18842
18843    // Wait for CURRENT_PIXLEE_USER_ID (from pixlee_events.js / getDUH) before legacy cart fallback runs.
18844    const waitForPixleeUserId = (maxMs = 3000, intervalMs = 100) =>
18845      new Promise((resolve) => {
18846        if (hasPixleeUserId()) {
18847          resolve(true);
18848          return;
18849        }
18850
18851        const started = Date.now();
18852        const timer = setInterval(() => {
18853          if (hasPixleeUserId() || Date.now() - started >= maxMs) {
18854            clearInterval(timer);
18855            resolve(hasPixleeUserId());
18856          }
18857        }, intervalMs);
18858      });
18859
18860    const createPixleeConsentHelper = () => {
18861      if (window.PixleeAppConsent) {
18862        return window.PixleeAppConsent;
18863      }
18864
18865      let consentAllowed = false;
18866      let ready = false;
18867      const listeners = new Set();
18868
18869      const notify = () => {
18870        listeners.forEach((cb) => {
18871          try {
18872            cb(consentAllowed);
18873          } catch (err) {
18874            log('error', 'Pixlee consent callback failed:', err);
18875          }
18876        });
18877      };
18878
18879      const updateConsent = (allowed) => {
18880        const next = Boolean(allowed);
18881        if (ready && consentAllowed === next) {
18882          return;
18883        }
18884        consentAllowed = next;
18885        ready = true;
18886        notify();
18887      };
18888
18889      const evaluateConsent = () => {
18890        const cp = window?.Shopify?.customerPrivacy;
18891        let allowed = false;
18892
18893        if (cp) {
18894          const hasAnalytics = (consentObj) => {
18895            const v = consentObj?.analytics;
18896            return v === 'yes' || v === true || v === 'true';
18897          };
18898          const consentValues = [];
18899
18900          try {
18901            if (typeof cp.currentUserConsent === 'function') {
18902              consentValues.push(hasAnalytics(cp.currentUserConsent()));
18903            }
18904            if (typeof cp.currentVisitorConsent === 'function') {
18905              consentValues.push(hasAnalytics(cp.currentVisitorConsent()));
18906            }
18907          } catch (err) {
18908            log('warn', 'Unable to read Shopify consent status:', err);
18909          }
18910
18911          try {
18912            if (consentValues.length > 0) {
18913              allowed = consentValues.every(Boolean);
18914            } else if (typeof cp.userCanBeTracked === 'function') {
18915              allowed = !!cp.userCanBeTracked();
18916            }
18917          } catch (err) {
18918            log('warn', 'Unable to read Shopify user tracking status:', err);
18919          }
18920        }
18921
18922        updateConsent(allowed);
18923      };
18924
18925      const attachConsentEvents = () => {
18926        document.addEventListener('visitorConsentCollected', evaluateConsent);
18927        if (
18928          window.Shopify &&
18929          window.Shopify.customerPrivacy &&
18930          typeof window.Shopify.customerPrivacy.on === 'function'
18931        ) {
18932          window.Shopify.customerPrivacy.on('consent_changed', evaluateConsent);
18933        }
18934      };
18935
18936      const initShopifyConsent = () => {
18937        if (!window.Shopify || typeof window.Shopify.loadFeatures !== 'function') {
18938          if (document.readyState === 'loading') {
18939            document.addEventListener('DOMContentLoaded', initShopifyConsent, { once: true });
18940          }
18941          return;
18942        }
18943
18944        window.Shopify.loadFeatures(
18945          [
18946            {
18947              name: 'consent-tracking-api',
18948              version: '0.1'
18949            }
18950          ],
18951          function (error) {
18952            if (error) {
18953              log('error', 'Error loading Shopify consent-tracking-api:', error);
18954              return;
18955            }
18956
18957            attachConsentEvents();
18958            evaluateConsent();
18959          }
18960        );
18961      };
18962
18963      const onChange = (cb) => {
18964        if (typeof cb !== 'function') {
18965          return () => {};
18966        }
18967        listeners.add(cb);
18968        if (ready) {
18969          try {
18970            cb(consentAllowed);
18971          } catch (err) {
18972            log('error', 'Pixlee consent callback failed:', err);
18973          }
18974        }
18975        return () => listeners.delete(cb);
18976      };
18977
18978      const api = {
18979        getConsentAllowed: () => consentAllowed,
18980        onChange,
18981        isReady: () => ready,
18982        setConsentOverride: (allowed) => updateConsent(allowed)
18983      };
18984
18985      window.PixleeAppConsent = api;
18986      window.dispatchEvent(new CustomEvent('pixlee:app-consent-loaded', {
18987        detail: { api: window.PixleeAppConsent }
18988      }));
18989
18990      if (pixleeRequireCookieConsent) {
18991        initShopifyConsent();
18992      } else {
18993        updateConsent(true);
18994      }
18995
18996      return api;
18997    };
18998
18999    const unescapeHtml = (str) => {
19000      if (!str || typeof str !== 'string') return str;
19001      const el = document.createElement('textarea');
19002      el.innerHTML = str;
19003      return el.value;
19004    };
19005
19006    // Ensure valid widgetId (pg sequence integer)
19007    const toValidWidgetId = (v) => {
19008      if (v == null || v === '') return null;
19009
19010      const n = Number(v);
19011      if (!Number.isFinite(n)) return null;
19012      if (!Number.isInteger(n)) return null;
19013      if (!Number.isSafeInteger(n)) return null;
19014
19015      return n;
19016    };
19017
19018    // Determine widgetId based on JSON map and localization codes
19019    const resolveWidgetId = (node) => {
19020      // Normalize JSON by stripping all whitespace and using lowercase to minimize user input errors
19021      const raw = unescapeHtml(node.dataset.pixleeWidgetId)?.replace(/\s+/g, '').toLowerCase();
19022      if (!raw || raw === '') return null;
19023
19024      let parsed;
19025      try {
19026        parsed = JSON.parse(raw);
19027      } catch {
19028        return toValidWidgetId(raw);
19029      }
19030
19031      if (typeof parsed !== 'object' || parsed === null) {
19032        return toValidWidgetId(parsed);
19033      }
19034
19035      // Match normalized JSON keys
19036      const country = (node.dataset.pixleeCountry || 'default').trim().toLowerCase();
19037      const lang = (node.dataset.pixleeLanguage || 'default').trim().toLowerCase();
19038
19039      const localeMap = parsed[country] || parsed['default'];
19040      if (!localeMap || typeof localeMap !== 'object') return null;
19041
19042      const value =
19043              localeMap[lang] ??
19044              localeMap.default;
19045
19046      return toValidWidgetId(value);
19047    };
19048
19049    const bootstrapWidgets = () => {
19050      try {
19051        const widgets = document.querySelectorAll('[data-pixlee-widget]');
19052        if (!widgets.length) {
19053          return;
19054        }
19055
19056        window.PixleeAsyncInit = () => {
19057          Pixlee.init({ apiKey: pixleeApiKey });
19058
19059          const syncWidgetConsent = (allowed) => {
19060            if (!pixleeRequireCookieConsent) return;
19061            if (
19062              typeof Pixlee.acceptCookiePolicy !== 'function' ||
19063              typeof Pixlee.denyCookiePolicy !== 'function'
19064            ) {
19065              return;
19066            }
19067            if (allowed) {
19068              Pixlee.acceptCookiePolicy();
19069            } else {
19070              Pixlee.denyCookiePolicy();
19071            }
19072          };
19073
19074          if (state.consentApi && typeof state.consentApi.onChange === 'function') {
19075            state.consentApi.onChange(syncWidgetConsent);
19076            if (state.consentApi.isReady() && typeof state.consentApi.getConsentAllowed === 'function') {
19077              syncWidgetConsent(state.consentApi.getConsentAllowed());
19078            }
19079          }
19080
19081          widgets.forEach((node) => {
19082            const containerId = node.getAttribute('id');
19083            if (!containerId) {
19084              log('warn', 'Pixlee widget missing required attributes:', node);
19085              return;
19086            }
19087            const widgetId = resolveWidgetId(node);
19088            if (!widgetId) {
19089              log('warn', 'Pixlee widget invalid widget-id:', node.dataset.pixleeWidgetId);
19090              return;
19091            }
19092            const widgetType = node.dataset.pixleeWidgetType;
19093
19094            try {
19095              if (widgetType === 'product') {
19096                Pixlee.addProductWidget({
19097                  ecomm_platform: 'shopify',
19098                  widgetId,
19099                  accountId: pixleeAccountId,
19100                  containerId,
19101                  getCookieConsent: pixleeRequireCookieConsent
19102                });
19103              } else if (widgetType === 'collection') {
19104                const collectionId = node.dataset.pixleeCollectionId;
19105                if (collectionId) {
19106                  Pixlee.addCategoryWidget({
19107                    ecomm_platform: 'shopify',
19108                    widgetId,
19109                    nativeCategoryId: collectionId,
19110                    containerId,
19111                    getCookieConsent: pixleeRequireCookieConsent
19112                  });
19113                }
19114              } else {
19115                const simpleConfig = {
19116                  widgetId,
19117                  containerId,
19118                  getCookieConsent: pixleeRequireCookieConsent
19119                };
19120
19121                const fallbackAlbumId = node.dataset.pixleeFallbackAlbumId;
19122                const fallbackThreshold = node.dataset.pixleeFallbackThreshold;
19123
19124                if (fallbackAlbumId) {
19125                  simpleConfig.fallbackAlbumId = fallbackAlbumId;
19126                }
19127                if (fallbackThreshold) {
19128                  simpleConfig.fallbackThreshold = fallbackThreshold;
19129                }
19130
19131                Pixlee.addSimpleWidget(simpleConfig);
19132              }
19133            } catch (error) {
19134              log('error', 'Error initializing Pixlee widget:', error, node);
19135            }
19136          });
19137        };
19138
19139        if (!document.getElementById(state.widgetScriptId)) {
19140          loadScript(pixleeWidgetScriptSrc, { id: state.widgetScriptId }).catch((err) =>
19141            log('error', 'Failed to load Pixlee widget script:', err)
19142          );
19143        }
19144      } catch (error) {
19145        log('error', 'Error initializing Pixlee widgets:', error);
19146      }
19147    };
19148
19149    // Engagement (time on site / Sessions) analytics
19150    const setupEngagementAnalytics = () => {
19151      try {
19152        const loadEventsScript = () => {
19153          if (state.eventsLoaded) return state.eventsLoadPromise;
19154          if (state.eventsLoadPromise) return state.eventsLoadPromise;
19155          state.eventsLoadPromise = loadScript(pixleeEventsScriptSrc, {
19156            id: state.eventsScriptId,
19157            defer: true
19158          })
19159            .then(() => {
19160              if (typeof window.Pixlee_Analytics !== 'function') {
19161                throw new Error('Pixlee_Analytics unavailable after loading events script');
19162              }
19163              new window.Pixlee_Analytics(
19164                pixleeApiKey,
19165                attributionWindow
19166              );
19167              state.eventsLoaded = true;
19168              if (pixleeUseLegacyCartFallback) {
19169                startLegacyCartTracking();
19170              }
19171              return true;
19172            })
19173            .catch((err) => {
19174              state.eventsLoaded = false;
19175              state.eventsLoadPromise = null;
19176              throw err;
19177            });
19178          return state.eventsLoadPromise;
19179        };
19180
19181        const handleConsentChange = (allowed) => {
19182          const allowAnalytics = pixleeRequireCookieConsent ? !!allowed : true;
19183          if (!allowAnalytics) {
19184            return;
19185          }
19186
19187          loadEventsScript().catch((err) =>
19188            log('error', 'Failed to load Pixlee events script:', err)
19189          );
19190        };
19191
19192        if (state.consentApi && typeof state.consentApi.onChange === 'function') {
19193          state.consentApi.onChange(handleConsentChange);
19194          if (state.consentApi.isReady() && typeof state.consentApi.getConsentAllowed === 'function') {
19195            handleConsentChange(state.consentApi.getConsentAllowed());
19196          }
19197        } else if (!pixleeRequireCookieConsent) {
19198          handleConsentChange(true);
19199        } else {
19200          log('warn', 'Consent API unavailable; analytics blocked.');
19201        }
19202      } catch (error) {
19203        log('error', 'Error initializing Pixlee engagement analytics:', error);
19204      }
19205    };
19206
19207    onReady(() => {
19208      try {
19209        state.consentApi = createPixleeConsentHelper();
19210      } catch (error) {
19211        log('error', 'Failed to initialize Pixlee consent helper:', error);
19212      }
19213
19214      bootstrapWidgets();
19215      setupEngagementAnalytics();
19216    });
19217  })();
19218</script>
19218
19219</div>
19219<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
19219
19220</body>
19221</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.