PageSourceSearch

https://bokksu.com/

html bokksu.com collected 2026-10-02 02:32:00 UTC 615,435 bytes, 16,496 lines download raw bytes

1<!doctype html>
2<html class="no-js" lang="en" dir="ltr">
3  <head Bokksu Snack Box>
4        
5
6    <meta charset="utf-8">
7    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
8    <meta name="viewport" content="width=device-width,initial-scale=1">
9    <meta name="theme-color" content="#b73d09">
10    
11<link rel="shortcut icon" href="//bokksu.com/cdn/shop/files/BokksuBrand_Logo_LanternMark_Filled_Orange_Favicon_32x32.png?v=1750968716" type="image/png">
12    
13
14
15
16    <!-- Matomo -->
17    
17<script>
18    var _paq = window._paq = window._paq || [];
19    /* tracker methods like "setCustomDimension" should be called before "trackPageView" */    
20    _paq.push(['enableLinkTracking']);
21    (function() {
22      var u="https://bokksu.matomo.cloud/";
23      _paq.push(['setTrackerUrl', u+'matomo.php']);
24      _paq.push(['setSiteId', '1']);
25      var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
26      g.async=true; g.src='https://cdn.matomo.cloud/bokksu.matomo.cloud/matomo.js'; s.parentNode.insertBefore(g,s);
27    })();
28
29    
30
31    
32    _paq.push(['trackPageView']);
33    </script>
33 
34
35    <!-- Google Tag Manager -->
36
37    
37<script>
vendor: 343 bytes, lines 37-41
37(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
38    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
39    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
40    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
41    })(window,document,'script','dataLayer','
41GTM-PR4MBW
vendor: 3 bytes, line 41
41');
41</script>
41    
42
43<!-- End Google Tag Manager -->
44
45    
46      <!-- SNB -->
47      
47<script src="//bokksu.com/cdn/shop/t/3/assets/snb-to-btq.js?v=159687078308774293821790847703"></script>
47 
48      <!-- Customer AI  -->
49      
49<script async="async" src="https://mm-uxrv.com/js/mm_74ba8d4f-b92a-477c-9c5d-23eeb3ad6a9d-89989348.js"></script>
49
50
51      <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300..900;1,300..900&family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap">
52 
53    
54    
55    <link rel="stylesheet" href="//bokksu.com/cdn/shop/t/3/assets/sgm-nav.css?v=114528966866125961761783372325">
56
57
58    <link rel="canonical" href="https://bokksu.com/">    
59    <link rel="preconnect" href="https://cdn.shopify.com" crossorigin>
60    <link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin >
61    <link rel="dns-prefetch" href="https://productreviews.shopifycdn.com">
62    <link rel="dns-prefetch" href="https://ajax.googleapis.com">
63    <link rel="dns-prefetch" href="https://maps.googleapis.com">
64    <link rel="dns-prefetch" href="https://maps.gstatic.com">
65
66    
66<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
66
67    
67<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/cdn.min.js"></script>
67
68    
68<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js" integrity="sha512-aVKKRRi/Q/YV+4mjoKBsE4x3H+BkegoM/em46NNlCqNTmUYADjBbeNefNxYV7giUp0VxICtqdrbqU7iVaeZNXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
68
69        <!-- redirect to SNB for blogs/articles -->
70
71    
72
73<title>Bokksu | Authentic Japanese Snack &amp; Candy Subscription Box
74&ndash; Bokksu Snack Box
75</title>
76
77<span id="free-shipping-text-msg"  style="display:none">Get To Free Shipping</span><meta name="description" content="Experience Japan every month with Bokksu. Get 20-22 artisanal Japanese snacks, candies, and tea pairings delivered worldwide from Japan. Curated around a seasonal theme and sourced from centuries-old family snack makers. Start your journey today!"><meta property="og:site_name" content="Bokksu Snack Box">
78  <meta property="og:url" content="https://bokksu.com/">
79  <meta property="og:title" content="Bokksu | Authentic Japanese Snack &amp; Candy Subscription Box">
80  <meta property="og:type" content="website">
81  <meta property="og:description" content="Experience Japan every month with Bokksu. Get 20-22 artisanal Japanese snacks, candies, and tea pairings delivered worldwide from Japan. Curated around a seasonal theme and sourced from centuries-old family snack makers. Start your journey today!"><meta property="og:image" content="http://bokksu.com/cdn/shop/files/SNB_Compressed.jpg?v=1778135917">
82    <meta property="og:image:secure_url" content="https://bokksu.com/cdn/shop/files/SNB_Compressed.jpg?v=1778135917">
83    <meta property="og:image:width" content="3500">
84    <meta property="og:image:height" content="2289"><meta name="twitter:site" content="@">
85  <meta name="twitter:card" content="summary_large_image">
86  <meta name="twitter:title" content="Bokksu | Authentic Japanese Snack &amp; Candy Subscription Box">
87  <meta name="twitter:description" content="Experience Japan every month with Bokksu. Get 20-22 artisanal Japanese snacks, candies, and tea pairings delivered worldwide from Japan. Curated around a seasonal theme and sourced from centuries-old family snack makers. Start your journey today!">
88<!-- Link Swiper's CSS -->
89    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.css"><style data-shopify>@font-face {
90  font-family: "Libre Baskerville";
91  font-weight: 400;
92  font-style: normal;
93  font-display: swap;
94  src: url("//bokksu.com/cdn/fonts/libre_baskerville/librebaskerville_n4.2ec9ee517e3ce28d5f1e6c6e75efd8a97e59c189.woff2") format("woff2"),
95       url("//bokksu.com/cdn/fonts/libre_baskerville/librebaskerville_n4.323789551b85098885c8eccedfb1bd8f25f56007.woff") format("woff");
96}
97
98  @font-face {
99  font-family: Lato;
100  font-weight: 400;
101  font-style: normal;
102  font-display: swap;
103  src: url("//bokksu.com/cdn/fonts/lato/lato_n4.c3b93d431f0091c8be23185e15c9d1fee1e971c5.woff2") format("woff2"),
104       url("//bokksu.com/cdn/fonts/lato/lato_n4.d5c00c781efb195594fd2fd4ad04f7882949e327.woff") format("woff");
105}
106
107  @font-face {
108  font-family: "Libre Baskerville";
109  font-weight: 400;
110  font-style: normal;
111  font-display: swap;
112  src: url("//bokksu.com/cdn/fonts/libre_baskerville/librebaskerville_n4.2ec9ee517e3ce28d5f1e6c6e75efd8a97e59c189.woff2") format("woff2"),
113       url("//bokksu.com/cdn/fonts/libre_baskerville/librebaskerville_n4.323789551b85098885c8eccedfb1bd8f25f56007.woff") format("woff");
114}
115
116
117  @font-face {
118  font-family: Lato;
119  font-weight: 600;
120  font-style: normal;
121  font-display: swap;
122  src: url("//bokksu.com/cdn/fonts/lato/lato_n6.38d0e3b23b74a60f769c51d1df73fac96c580d59.woff2") format("woff2"),
123       url("//bokksu.com/cdn/fonts/lato/lato_n6.3365366161bdcc36a3f97cfbb23954d8c4bf4079.woff") format("woff");
124}
125
126  @font-face {
127  font-family: Lato;
128  font-weight: 400;
129  font-style: italic;
130  font-display: swap;
131  src: url("//bokksu.com/cdn/fonts/lato/lato_i4.09c847adc47c2fefc3368f2e241a3712168bc4b6.woff2") format("woff2"),
132       url("//bokksu.com/cdn/fonts/lato/lato_i4.3c7d9eb6c1b0a2bf62d892c3ee4582b016d0f30c.woff") format("woff");
133}
134
135  @font-face {
136  font-family: Lato;
137  font-weight: 600;
138  font-style: italic;
139  font-display: swap;
140  src: url("//bokksu.com/cdn/fonts/lato/lato_i6.ab357ee5069e0603c2899b31e2b8ae84c4a42a48.woff2") format("woff2"),
141       url("//bokksu.com/cdn/fonts/lato/lato_i6.3164fed79d7d987c1390528781c7c2f59ac7a746.woff") format("woff");
142}
143
144</style><link href="//bokksu.com/cdn/shop/t/3/assets/theme.css?v=183985942248182236951788960735" rel="stylesheet" type="text/css" media="all" />
145
146    <link href="//bokksu.com/cdn/shop/t/3/assets/next.css?v=183791828887486889451751964632" rel="stylesheet" type="text/css" media="all" />
147    
148
149
150
151
152<style data-shopify>:root {
153   /* --typeHeaderPrimary: "Libre Baskerville";  */
154    /* --typeHeaderPrimary: 'OrpheusPro'; */
155    --typeHeaderFallback: serif;
156    --typeHeaderSize: 36px;
157    --typeHeaderWeight: 400;
158    --typeHeaderLineHeight: 72px;
159    --typeCommLineHeight: 52px;
160    --typeSubLineHeight: 18px;
161    --typeHeaderSpacing: 0.0em;
162
163    --typeBasePrimary:Lato;
164    --typeBaseFallback:sans-serif;
165    --typeBaseSize: 16px;
166    --typeBaseWeight: 400;
167    --typeBaseSpacing: 0.025em;
168    --typeBaseLineHeight: 24px;
169
170    --colorSmallImageBg: #ffffff;
171    --colorSmallImageBgDark: #f7f7f7;
172    --colorLargeImageBg: #f6f4f1;
173    --colorLargeImageBgLight: #ffffff;
174
175    --iconWeight: 3px;
176    --iconLinecaps: miter;
177
178    
179      --buttonRadius: 3px;
180      --btnPadding: 11px 25px;
181    
182
183    
184      --roundness: 0;
185    
186
187    
188      --gridThickness: 0;
189    
190
191    --productTileMargin: 10%;
192    --collectionTileMargin: 17%;
193
194    --swatchSize: 40px;
195  }
196
197  @media screen and (max-width: 768px) {
198    :root {
199      --typeBaseSize: 14px;
200
201      
202        --roundness: 0;
203        --btnPadding: 9px 17px;
204      
205    }
206  }</style>
207    
208    
209
210
211    
211<script>
212      document.documentElement.className = document.documentElement.className.replace('no-js', 'js');
213
214      window.theme = window.theme || {};
215      theme.routes = {
216        home: "/",
217        collections: "/collections",
218        cart: "/cart.js",
219        cartPage: "/cart",
220        cartAdd: "/cart/add.js",
221        cartChange: "/cart/change.js",
222        search: "/search",
223        predictiveSearch: "/search/suggest"
224      };
225
226      theme.strings = {
227        soldOut: "Sold Out",
228        unavailable: "Unavailable",
229        inStockLabel: "In stock, ready to ship",
230        oneStockLabel: "Low stock - [count] item left",
231        otherStockLabel: "Low stock - [count] items left",
232        willNotShipUntil: "Ready to ship [date]",
233        willBeInStockAfter: "Back in stock [date]",
234        waitingForStock: "Inventory on the way",
235        savePrice: "[saved_amount] OFF",
236        cartEmpty: "Your cart is currently empty, please take a look at our collection page for delicious snack to add.",
237        cartTermsConfirmation: "You must agree with the terms and conditions of sales to check out",
238        searchCollections: "Collections:",
239        searchPages: "Pages:",
240        searchArticles: "Articles:",
241        maxQuantity: "You can only have [quantity] of [title] in your cart."
242      };
243      theme.settings = {
244        cartType: "dropdown",
245        isCustomerTemplate:false,
246        moneyFormat: "${{amount}}",
247        saveType: "percent",
248        productImageSize: "square",
249        productImageCover: true,
250        predictiveSearch: false,
251        predictiveSearchType: "product",
252        superScriptSetting: false,
253        superScriptPrice: false,
254        quickView: true,
255        quickAdd: true,
256        localization: false,
257        start_date: '2023-07-12',
258        end_date: '2023-08-31',
259        preorderMessage: "Pre-order items cannot be combined in your purchase with other items that can be shipped immediately. To pre-order, place a separate order with only the Advent Calendar in your cart and we'll notify you when it ships!",
260        
261        themeName: 'Expanse',
262        themeVersion: "4.3.4",
263        yotpoWidgetId:  "538556"  ,
264        disableRebuyCartUpsell: false,
265        recommendationsSeedProductId: null,
266               
267        
268        
269
270        updateSearchPlaceholder: false,
271
272      };
273    </script>
273
274    
275    
276    
277    
278      
279    
280    
280<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
280<meta name="facebook-domain-verification" content="jmyuquzr8qhoaf584vmc4eyyebc3hu">
281<meta name="google-site-verification" content="4bwFafLnBpXr3oygCv2-FgNAwFJZdWXe2XMSb6dlO5A">
282<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/65962311766/digital_wallets/dialog">
283<meta id="in-context-paypal-metadata" data-shop-id="65962311766" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD">
284<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
284<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=3364847702"></script>
284
285<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
286<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=3364847702&shop_id=65962311766" crossorigin="anonymous"></script>
vendor: 1 bytes, line 286
286
287<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":65962311766,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/65962311766","merchantName":"Bokksu Snack Box","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Bokksu Snack Box","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 287
287
288<script id="shopify-features" type="application/json">{"accessToken":"39b47d28f3c2bdd75cf49e228521f3ba","betas":["rich-media-storefront-analytics"],"domain":"bokksu.com","predictiveSearch":true,"shopId":65962311766,"locale":"en"}</script>
vendor: 1 bytes, line 288
288
289<script>var Shopify = Shopify || {};
290Shopify.shop = "snb-hashii.myshopify.com";
291Shopify.locale = "en";
292Shopify.currency = {"active":"USD","rate":"1.0"};
293Shopify.country = "US";
294Shopify.theme = {"name":"Expanse-Marketplace-Theme\/live-SNB","id":138710351958,"schema_name":"Expanse","schema_version":"4.3.4","theme_store_id":null,"role":"main"};
295Shopify.theme.handle = "null";
296Shopify.theme.style = {"id":null,"handle":null};
297Shopify.cdnHost = "bokksu.com/cdn";
298Shopify.routes = Shopify.routes || {};
299Shopify.routes.root = "/";
300Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
301Shopify.SignInWithShop = Shopify.SignInWithShop || {};
302Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
303Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 303
303
304<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 304
304
305<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 305
305
306<script>
307  window.ShopifyPay = window.ShopifyPay || {};
308  window.ShopifyPay.apiHost = "shop.app\/pay";
309  window.ShopifyPay.redirectState = null;
310</script>
vendor: 1 bytes, line 310
310
311<script>
312  window.Shopify = window.Shopify || {};
313  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
314  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
315  window.Shopify.SignInWithShop.eligible = true;
316</script>
vendor: 1 bytes, line 316
316
317<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
vendor: 1 bytes, line 317
317
318<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 318
318
319<script type="module">
320  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
321
322  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
323
324</script>
vendor: 1 bytes, line 324
324
325<script>
326  window.Shopify = window.Shopify || {};
327  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
328  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"]};
329</script>
vendor: 1 bytes, line 329
329
330<script>(function() {
331  var isLoaded = false;
332  function asyncLoad() {
333    if (isLoaded) return;
334    isLoaded = true;
335    var urls = ["https:\/\/str.rise-ai.com\/?shop=snb-hashii.myshopify.com","https:\/\/strn.rise-ai.com\/?shop=snb-hashii.myshopify.com","https:\/\/cdn.cookie.pii.ai\/scripts\/1\/ws\/09493852-4958-40f8-b0bc-22c803c690ab\/domain\/3140314c-2677-4720-851e-595df7c2a345\/shopify-loadscript-3140314c-2677-4720-851e-595df7c2a345.js?shop=snb-hashii.myshopify.com"];
336    for (var i = 0; i < urls.length; i++) {
337      var s = document.createElement('script');
338      s.type = 'text/javascript';
339      s.async = true;
340      s.src = urls[i];
341      var x = document.getElementsByTagName('script')[0];
342      x.parentNode.insertBefore(s, x);
343    }
344  };
345  if(window.attachEvent) {
346    window.attachEvent('onload', asyncLoad);
347  } else {
348    window.addEventListener('load', asyncLoad, false);
349  }
350})();</script>
vendor: 1 bytes, line 350
350
351<script id="__st">var __st={"a":65962311766,"offset":-14400,"reqid":"811c4a41-97bb-4560-8a48-f315fd3886fb-1790908320","pageurl":"bokksu.com\/","u":"7d6b0e9da75f","p":"home"};</script>
vendor: 1 bytes, line 351
351
352<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 352
352
353<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 353
353
354<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//bokksu.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 354
354
355<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 = "//bokksu.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>
355<script crossorigin="anonymous" defer="defer" src="//bokksu.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 355
355
356<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 356
356
357<script>
358  window.Shopify = window.Shopify || {};
359  window.Shopify.MCP = window.Shopify.MCP || {};
360  window.Shopify.MCP.enabled = true;
361  window.Shopify.MCP.shop = "snb-hashii.myshopify.com";
362  window.Shopify.MCP.mcpEndpoint = "https:\/\/bokksu.com\/api\/mcp";
363  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"]}}];
364</script>
vendor: 1 bytes, line 364
364
365<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("\/\/bokksu.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})();
366</script>
vendor: 1 bytes, line 366
366
367<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://bokksu.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
368</script>
vendor: 1 bytes, line 368
368
369<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
370  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);
371</script>
vendor: 1 bytes, line 371
371
372<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})}}));
373</script>
373
374<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://bokksu.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
375<style id="shopify-accelerated-checkout-cart">
376        #shopify-buyer-consent {
377  margin-top: 1em;
378  display: inline-block;
379  width: 100%;
380}
381
382#shopify-buyer-consent.hidden {
383  display: none;
384}
385
386#shopify-subscription-policy-button {
387  background: none;
388  border: none;
389  padding: 0;
390  text-decoration: underline;
391  font-size: inherit;
392  cursor: pointer;
393}
394
395#shopify-subscription-policy-button::before {
396  box-shadow: none;
397}
398
399      </style>
400
401<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
401
402
403      
404    
405    
406
407    <!-- Swiper JS -->
408    
408<script src="https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.js"></script>
408
409
410    
410<script src="//bokksu.com/cdn/shop/t/3/assets/vendor-scripts-v2.js?v=28795867768355101311751964579" defer="defer"></script>
410
411    
411<script src="//bokksu.com/cdn/shop/t/3/assets/theme.js?v=1013930297215615261790666043" defer="defer"></script>
411
412    
412<script src="//bokksu.com/cdn/shop/t/3/assets/next.js?v=131372909002363781041751964575" defer="defer"></script>
412
413    
414    
415    
416    
417
418    
419
420
421
422    
423<!-- BEGIN app block: shopify://apps/yotpo-product-reviews/blocks/settings/eb7dfd7d-db44-4334-bc49-c893b51b36cf -->
424
425
426  
426<script type="text/javascript" src="https://cdn-widgetsrepository.yotpo.com/v1/loader/4Kt06s6nDGIQ5QRkjcLrBcqBySp3M8NS1MLj32az?languageCode=en" async></script>
426
427
428
429
430  
431<!-- END app block --><!-- BEGIN app block: shopify://apps/variant/blocks/app-embed/019abb68-84fa-7db8-b83d-93e100047882 -->
432<!-- BEGIN app snippet: variant-antiflicker -->
433
434
435
436
437<!-- END app snippet -->
438<!-- BEGIN app snippet: variant-engine-loader --><link rel="preconnect" href="https://cdn.growthbook.io">
439<link rel="preconnect" href="https://brain.variantnow.com">
440<link rel="preconnect" href="https://storage.googleapis.com">
441<link rel="preload" href="https://cdn.jsdelivr.net/npm/@growthbook/[email protected]/dist/bundles/index.min.js" as="script">
442
443<script src="https://cdn.variantnow.com/sdk/shops/cdbd5ec0-567c-4cb8-9f4a-f43846425a0e.js"></script>
vendor: 1 bytes, line 443
443
444<script>
445(function () {
446var config = window.__VARIANT_CONFIG;
447function fail(message) {
448  window.__VARIANT_CONFIG = undefined;
449  throw new Error('[Variant] ' + message);
450}
451if (!config) fail('shop config failed to load');
452if (!config.shopId) fail('shop config is missing required field: shopId');
453if (!config.sdkKey) fail('shop config is missing required field: sdkKey');
454if (config.runnerMode !== 'blocking' && config.runnerMode !== 'async') {
455  fail('shop config is missing required field: runnerMode');
456}
457if (!Array.isArray(config.redirectExperiments)) {
458  fail('shop config is missing required field: redirectExperiments');
459}
460if (!window.__VARIANT_INITIAL_URL) {
461  window.__VARIANT_INITIAL_URL = {
462    pathname: window.location.pathname,
463    search: window.location.search
464  };
465}
466config.shopify = {
467    country: "US",
468    pageType: "index",
469    templateSuffix: null,
470    handle: null,
471    productCollections: [],
472    customerId: "",
473    shop: "bokksu.com",
474    cartItemCount: 0
475};
476config.hosts = {
477    sdk: "https:\/\/sdk.variantnow.com",
478    brain: "https:\/\/brain.variantnow.com",
479    pixel: "https:\/\/storage.googleapis.com\/variant_scripts",
480    analytics: ""
481};
482config.pixelTransport = 'shopify';
483if (window.__VARIANT_BOOT) window.__VARIANT_BOOT();
484})();
485</script>
vendor: 1 bytes, line 485
485
486<script src="https://cdn.variantnow.com/sdk/v1/variant.js"></script>
486
487<!-- END app snippet -->
488<!-- BEGIN app snippet: variant-chat-widget -->
489<link rel="preconnect" href="https://chat.variantnow.com">
490
491<script
492  src="https://chat.variantnow.com/chat.js"
493  data-account-id="cdbd5ec0-567c-4cb8-9f4a-f43846425a0e"
494  defer
495></script>
495
496<!-- END app snippet -->
497
498
499<!-- END app block --><!-- BEGIN app block: shopify://apps/gorgias-live-chat-helpdesk/blocks/gorgias/a66db725-7b96-4e3f-916e-6c8e6f87aaaa -->
500<script defer data-gorgias-loader-chat src="https://config.gorgias.chat/bundle-loader/shopify/snb-hashii.myshopify.com"></script>
500
501
502
503<script defer data-gorgias-loader-convert  src="https://content.9gtb.com/loader.js"></script>
503
504
505
506<script defer data-gorgias-loader-mailto-replace  src="https://config.gorgias.help/api/contact-forms/replace-mailto-script.js?shopName=snb-hashii"></script>
506
507
508
509<!-- END app block --><!-- BEGIN app block: shopify://apps/maestra/blocks/maestra-embed/426c4c19-e366-44a7-a7e5-89fb1b642f46 -->
510<script>
511(function () {
512  window.maestra = window.maestra || function () {
513    window.maestra.queue.push(arguments);
514  };
515  window.maestra.queue = window.maestra.queue || [];
516  window.maestra('create', { endpointId: "bokksu.snb" });
517
518  
519  window.maestra('personalization.viewHomepage');
520  
521
522  var started = false;
523  function startTracker() {
524    if (started) return;
525    started = true;
526
527    if (typeof window.subscribe === 'function') {
528      window.subscribe("cart-update", function (event) {
529        if (event && event.cartData && typeof Shopify !== 'undefined'
530            && Shopify.analytics && typeof Shopify.analytics.publish === 'function') {
531          var priceCents = typeof event.cartData.final_price === 'number'
532            ? event.cartData.final_price
533            : (typeof event.cartData.price === 'number' ? event.cartData.price : undefined);
534          Shopify.analytics.publish("maestra_add_to_cart_internal", {
535            cartData: event.cartData,
536            productVariantId: String(event.cartData.variant_id || event.cartData.id || ''),
537            pricePerItem: priceCents === undefined ? undefined : priceCents / 100,
538            source: event.source || "unknown"
539          });
540        }
541      });
542    }
543
544    var s = document.createElement('script');
545    s.src = "https://api.maestra.io/scripts/v1/tracker.js";
546    s.async = true;
547    document.head.appendChild(s);
548  }
549
550  function analyticsAllowed() {
551    var privacy = window.Shopify && window.Shopify.customerPrivacy;
552    return !!privacy && typeof privacy.analyticsProcessingAllowed === 'function'
553      && privacy.analyticsProcessingAllowed();
554  }
555
556  document.addEventListener('visitorConsentCollected', function (ev) {
557    if (ev.detail && ev.detail.analyticsAllowed) startTracker();
558  });
559
560  if (!window.Shopify || typeof window.Shopify.loadFeatures !== 'function') {
561    startTracker();
562    return;
563  }
564
565  // Some CMPs write consent without visitorConsentCollected or load the privacy API after us.
566  var ticksLeft = 60;
567  var recheck = setInterval(function () {
568    if (!started && analyticsAllowed()) startTracker();
569    if (started || --ticksLeft <= 0) clearInterval(recheck);
570  }, 1000);
571
572  window.Shopify.loadFeatures(
573    [{ name: 'consent-tracking-api', version: '0.1' }],
574    function (error) {
575      if (!error && analyticsAllowed()) startTracker();
576    }
577  );
578})();
579</script>
579
580
581
582
583<!-- END app block --><!-- BEGIN app block: shopify://apps/userway-website-accessibility/blocks/uw-widget-extension/bc2d8a34-1a37-451b-ab1a-271bc4e9daa7 -->
584
585
586
587
588<script type="text/javascript" async="" src="https://cdn.userway.org/widget.js?account=1QY30g7gXs&amp;platfAppInstalledSiteId=3872233&amp;shop=bokksu.com"></script>
588
589
590<!-- END app block --><!-- BEGIN app block: shopify://apps/onward/blocks/onward-protection-embed/b53f9cdb-2bd0-4ef4-be64-bb0b8b7f7dff -->
590<script type="text/javascript">
591  window.addEventListener('DOMContentLoaded', () => {
592  const onward = new OnwardSetup();
593  onward.addContainer('.cart__item-sub', {position: "beforebegin"});
594  onward.attachCheckoutButton('.checkout-btn-class button.cart__checkout', {
595    optOutSelector: '.cart__checkout-wrapper',
596    optOutPosition: 'afterend'
597  });
598});
599  window.OnwardSettingsJson = {"selectedByDefault":true,"shopEnabled":true,"insuranceFeePercentage":"4.0","carbonOffsetPriceCents":1,"carbonOffsetsEnabled":true,"flatRateReturnEnabled":false,"returnsAppEnabled":false,"thirdPartyReturnsPortalUrl":null,"customerSponsoredReturnLabel":false,"returnPolicyUrl":null,"exchangesEnabled":false,"shopName":"Bokksu Snack Box: Authentic Japanese Snacks \u0026 Candy Subscription Box","shopId":563,"shopCurrencyCode":"USD","shopSupportContact":"[email protected]","shopSupportFormUrl":null,"shopBanner":"https:\/\/proxy.useonward.com\/public\/brandings\/563\/banner?ts=1758324062","minimumInsurableCartAmountCents":0,"minimumInsurancePriceCents":null,"minimumInsurancePriceVariantId":null,"maximumInsurancePriceCents":null,"maximumInsurancePriceVariantId":null,"insuranceFallback":"do_not_insure","excludePriceInSubtotalDisplay":true,"oneLine":false,"autoRemoveInsuranceFromCart":true,"poweredByEnabled":false,"inlinePoweredByEnabled":false,"disclaimerEnabled":false,"showSubscriptionWording":true,"moneyFormat":null,"checkoutButtonSelector":null,"themePrimaryColor":null,"ctaTextColor":null,"backgroundColor":"","copyLine1":"Bokksu Protection+","copyLine2":"Get 10% CashBack, Delivery Protection, 90-day Guarantee \u0026 $10 Donation Gift.","checkoutPlusCopyLine1":"Bokksu Checkout+","checkoutPlusCopyLine2":"Get 10% CashBack, Delivery Protection, 90-day Guarantee \u0026 $10 Donation Gift.","checkoutPlusEnabled":true,"checkoutPlusVariant":"checkout","checkoutPlusButtonLabel":"Checkout+ | {{subtotal_with_onward}}","checkoutPlusOptOutLabel":"continue without Checkout+","checkoutPlusOptOutContainerSelector":"","disclaimerText":"*By deselecting shipping protection, Bokksu Snack Box: Authentic Japanese Snacks \u0026 Candy Subscription Box is not liable for damaged, or stolen items","rewardsEnabled":true,"rewardsPercentage":"10.0","cashbackName":"CashBack","cashbackIssueImmediately":false,"nativeSubscriptionsEnabled":false,"cartItemCountSelector":".cart-link__bubble-num","cartSubtotalSelector":".cart__item-sub #price-text","productGuaranteesEnabled":true,"productGuaranteeDays":90,"walletsEnabled":false,"category":"Food \u0026 Drink","featuresEnabled":["widget:checkout:multi_product_debug"],"isDev":false,"modalEnabledCards":{"freeReturns":true,"returnsAndExchanges":true,"protect":true,"carbonOffsets":true,"rewards":true,"productGuarantees":true,"prioritySupport":true,"donation":true,"disclaimer":true},"shoppersUrl":"","checkoutExtensionHidden":false,"checkoutOneLine":false,"legacyAutoInsertCheckoutPlus":false,"deferredProtectionEnabled":false,"orderEditingEnabled":false,"orderEditingDeadlineMinutes":30,"orderEditingAddInsuranceCopyLine1":"Onward Checkout+","orderEditingAddInsuranceCopyLine2":null,"orderEditingAllowAddressEdits":true,"orderEditingAllowQuantityChanges":true,"orderEditingAllowedQuantityChanges":"all","orderEditingAllowAddProtection":true,"orderEditingAllowDiscountCodes":false,"orderEditingAllowUpsells":false,"orderEditingUpsellsCollectionId":null,"orderEditingUpsellsOfferSource":"smart_recommendations","orderEditingUpsellsDiscountPercentage":0,"subtotalLabel":"","subtotalLabelSelector":"","poweredByLogoColor":"black","hideForB2bCustomers":false,"attachToApplePay":false,"onwardLineitemProperties":{},"inspiredDonationsEnabled":true,"includeFullyDiscountedItemsInPremium":false,"insuranceProductImageUrl":"https:\/\/cdn.shopify.com\/s\/files\/1\/0659\/6231\/1766\/files\/onward-product-image-bokksu_5466e089-db0d-4343-9eb5-55c1fe414f5b.png?v=1751004837"};
600  window.OnwardSettingsJson = Object.assign(
601    window.OnwardSettingsJson,
602    window.onwardSettingsOverrides ? window.onwardSettingsOverrides : {},
603    {
604      headlessClient: false,
605      onwardWidget: { policy_bundle: {"config":{"checkout_plus_button_order":"checkout_plus_f
605irst"},"policy_settings":{"checkout_plus_button_order":{"policies":[]}}} },
606      locale: {
607        currency_iso_code: "USD",
608        currency_rate: Shopify.currency?.rate || "1.0",
609        request_locale: Shopify?.locale || 'en'
610      }
611    }
612  );
613  Object.freeze(window.OnwardSettingsJson);
614  window.OnwardTranslationsJson = {"en":{"modal":{"headline":"Checkout with benefits.","subheadline":"Shop with confidence – your purchase is getting an upgrade.","rewardsDisclaimer":{"text":"*{{cashbackName}} code emailed 30 days after purchase."},"rewards":{"heading":"Earn {{rewardsPercentage}}% {{cashbackName}}","text":"Get {{rewardsPercentage}}% back to be used on future purchases.*"},"protect":{"heading":"Shipping Protection","text":"From theft, loss, damage, \u0026 more - Onward has you covered."},"extendedWarranties":{"heading":"Product Protection","text":"From failure due to normal wear and tear and defects after the manufacturer's warranty expires."},"carbonOffsets":{"heading":"Carbon Neutral","text":"We'll offset the CO2 emissions of this shipment."},"productGuarantees":{"heading":"Satisfaction Guarantee","text":"If you have any quality issues within {{days}} days, we'll make it right."},"returnsAndExchanges":{"heading":"Free Returns \u0026 Exchanges","text":"Free return shipping on all US orders for returns \u0026 exchanges."},"freeReturns":{"heading":"Free Returns","text":"Free return shipping on all US orders."},"subscriptions":{"text":"Checkout+ will be added to recurring subscription orders and may be cancelled at anytime."},"prioritySupport":{"heading":"Priority Support","text":"Skip the line and get expedited customer support."},"donation":{"heading":"$10 Charitable Gift","text":"Make an impact with a donation to a cause of your choice."},"footer":{"legalPrefix":"By purchasing Checkout+, you agree and have read the","termsLabel":"Terms","and":"and","privacyLabel":"Privacy","returnPolicyNotice":"Exceptions apply. Please see the {{returnPolicyLink}} for more details.","returnPolicyLinkLabel":"return policy","poweredBy":"Powered by"}}}};
615  Object.freeze(window.OnwardTranslationsJson);
616
617  
618
619  window.OnwardCustomer = { isB2b: null, tags: null };
620</script>
620
621
622<style id="onward-styles-sheet">
623  .cart-item:has(a[href*="/products/onward-package-protection"]),
624  .cart__item:has(a[href*="/products/onward-package-protection"]),
625  .upez--cart-item:has(a[href*="/products/onward-package-protection"]),
626  .upcart-product-item:has(a[href*="/products/onward-package-protection"]),
627  .rebuy-cart__flyout-item:has(a[href*="/products/onward-package-protection"]) {
628    display: none;
629  }
630
631  #onward-container section {
632  max-width: unset !important;
633}
634
635.cart__footer .onward-opt-out-link {
636  padding-bottom: 10px !important;
637}
638</style>
639
640
641<!-- END app block -->
641<script src="https://cdn.shopify.com/extensions/01a0f884-4d26-788c-98bd-f9f532a12be3/trakt-359/assets/onward.js" type="text/javascript" defer="defer"></script>
641
642<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
643<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: 65962311766,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "index"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 643
643
644<script>
645  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
646</script>
vendor: 1 bytes, line 646
646
647<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}
647).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: 65962311766,storefrontBaseUrl: "https://bokksu.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://bokksu.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2755002454","configuration":"{\"shop_id\":\"cdbd5ec0-567c-4cb8-9f4a-f43846425a0e\",\"api_key\":\"8925106c-39dc-4d2e-9dcd-a17a0dc1682d\",\"batch\":\"false\",\"debug\":\"false\",\"batch_size\":\"10\",\"batch_timeout\":\"1000\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"e8d8f449ab471574ebe60d464d6125bb","type":"APP","apiClientId":298951540737,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
647,"dataSharingState":"unrestricted"},{"id":"2335637590","configuration":"{\"dummy\": \"shopify-requires-a-setting\", \"mparticleKey\": \"us2-c1e547c7c9a0624aa2a0f7ac73b0e563\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"00483b24138d67a073f1731751addbf7","type":"APP","apiClientId":5517037,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2078474326","configuration":"{\"ti\":\"295024041\",\"endpoint\":\"https:\/\/bat.bing.com\/action\/0\",\"tagIds\":\"[\\\"-1\\\"]\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"58a904981d2724b937c16718aa2f1aee","type":"APP","apiClientId":2997493,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2063007830","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-CV5R39K3NR\\\",\\\"AW-881230929\\\",\\\"GT-MJP89594\\\",\\\"GT-PZ6C6CBV\\\",\\\"G-GX8QL9NMMB\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-CV5R39K3NR\\\",\\\"AW-881230929\\\/2-smCLP53JwcENGImqQD\\\",\\\"MC-CXBBNG265S\\\",\\\"G-GX8QL9NMMB\\\"]},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-CV5R39K3NR\\\",\\\"AW-881230929\\\/JfoPCKf53JwcENGImqQD\\\",\\\"MC-CXBBNG265S\\\",\\\"G-GX8QL9NMMB\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-CV5R39K3NR\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-CV5R39K3NR\\\",\\\"AW-881230929\\\/_H-4CLD53JwcENGImqQD\\\",\\\"MC-63KXP9DLVJ\\\",\\\"MC-CXBBNG265S\\\",\\\"G-GX8QL9NMMB\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-CV5R39K3NR\\\",\\\"AW-881230929\\\/8yb2CKT53JwcENGImqQD\\\",\\\"MC-63KXP9DLVJ\\\",\\\"MC-CXBBNG265S\\\",\\\"G-GX8QL9NMMB\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-CV5R39K3NR\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-CV5R39K3NR\\\",\\\"AW-881230929\\\/oqavCK353JwcENGImqQD\\\",\\\"MC-63KXP9DLVJ\\\",\\\"MC-CXBBNG265S\\\",\\\"G-GX8QL9NMMB\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-CV5R39K3NR\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-CV5R39K3NR\\\",\\\"AW-881230929\\\/bqGpCLb53JwcENGImqQD\\\",\\\"MC-CXBBNG265S\\\",\\\"G-GX8QL9NMMB\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-CV5R39K3NR\\\",\\\"AW-881230929\\\/H1pACKr53JwcENGImqQD\\\",\\\"MC-CXBBNG265S\\\",\\\"G-GX8QL9NMMB\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-CV5R39K3NR\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"2011299926","configuration":"{\"accountID\": \"0kNB\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"6a53245b38dbdd172c1cf147630a90fd","type":"APP","apiClientId":200342863873,"privacyPurposes":["ANALYTICS"],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1957134422","configuration":"{\"accountID\":\"[email protected]\",\"endpointId\":\"bokksu.snb\",\"externalProductSystemId\":\"snb\",\"customerId\":\"snbShopifyCustomerIdNew\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7b097de7be0f46c8046b89b76a42b640","type":"APP","apiClientId":264145960961,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"}
647,{"id":"1561526358","configuration":"{\"clickstreamId\":\"7abec9be-eb55-40b7-a879-eaa69774e2e6\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"dce0ba162d2ca66f441eebf2b9a98ca0","type":"APP","apiClientId":44186959873,"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":"1279688790","configuration":"{\"vibePixelId\":\"vxI3m8\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"72859894ec8aa8d5e0246c40aaed9466","type":"APP","apiClientId":132266098689,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1279656022","configuration":"{\"pixelId\":\"5d591ff0-c39c-4835-b43e-645ad89df229\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c119f01612c13b62ab52809eb08154bb","type":"APP","apiClientId":2556259,"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":"1279557718","configuration":"{\"pixelCode\":\"C9LB23RC77UEMUC6OV00\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"22e92c2ad45662f435e4801458fb78cc","type":"APP","apiClientId":4383523,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1276444758","configuration":"{\"pixel_id\":\"1717073378784411\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"1273725014","configuration":"{\"campaignID\":\"17070\",\"externalExecutionURL\":\"https:\/\/engine.saasler.com\/api\/v1\/webhook_executions\/d62680ec699e313d056a49573f2288eb\"}","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":"1212186710","configuration":"{\"store_id\":\"209808\",\"environment\":\"prod\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"10c4f173702937db6fa4bf871600cafd","type":"APP","apiClientId":294517,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"121012310","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Maestra"},{"id":"121045078","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"Matomo"},{"id":"127959126","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"Customers.AI Pixel"}
647,{"id":"129040470","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"4","type":"CUSTOM","privacyPurposes":[],"name":"InnovidXP - Action Pixel"},{"id":"140673110","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"Yelp Pixel"},{"id":"143392854","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"Google Ads"},{"id":"145653846","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"Microsoft UET Tag"},{"id":"166068310","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"OpenAI Ads Conversions"},{"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":"Bokksu Snack Box","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"snb-hashii.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/bokksu.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"7626382999638","handle":"classic-bokksu","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42939935850582","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10320567992406","handle":"artisan-coffee-pairing","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"50541659979862","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7675567538262","handle":"gift-wrap","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43471000862806","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7676028715094","handle":"washi-box","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43472486301782","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://bokksu.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"138710351958","themePublished":"true","eventMetadataId":"3b4368be-e67b-4f24-b871-12627ca90273","pageType":"home","shopId":"65962311766","storefrontBaseUrl":"https:\/\/bokksu.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>
647<script>
648  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
649  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
650  window.ShopifyAnalytics.meta.currency = 'USD';
651  var meta = {"page":{"pageType":"home","requestId":"811c4a41-97bb-4560-8a48-f315fd3886fb-1790908320"}};
652  for (var attr in meta) {
653    window.ShopifyAnalytics.meta[attr] = meta[attr];
654  }
655</script>
vendor: 1 bytes, line 655
655
656<script class="analytics">
657  (function () {
658    var customDocumentWrite = function(content) {
659      var jquery = null;
660
661      if (window.jQuery) {
662        jquery = window.jQuery;
663      } else if (window.Checkout && window.Checkout.$) {
664        jquery = window.Checkout.$;
665      }
666
667      if (jquery) {
668        jquery('body').append(content);
669      }
670    };
671
672    var hasLoggedConversion = function(token) {
673      if (token) {
674        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
675      }
676      return false;
677    }
678
679    var setCookieIfConversion = function(token) {
680      if (token) {
681        var twoMonthsFromNow = new Date(Date.now());
682        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
683
684        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
685      }
686    }
687
688    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
689    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
690    if (trekkie.integrations) {
691      return;
692    }
693    trekkie.methods = [
694      'identify',
695      'page',
696      'ready',
697      'track',
698      'trackForm',
699      'trackLink'
700    ];
701    trekkie.factory = function(method) {
702      return function() {
703        var args = Array.prototype.slice.call(arguments);
704        args.unshift(method);
705        trekkie.push(args);
706        if (method == 'track' || method == 'page') {
707          var pageUrl;
708          try {
709            pageUrl = window.location.href;
710          } catch (e) {}
711          var pageReferrer;
712          try {
713            pageReferrer = document.referrer;
714          } catch (e) {}
715          try {
716            if (window.__TREKKIE_SHIM_QUEUE == null) {
717              window.__TREKKIE_SHIM_QUEUE = [];
718            }
719            window.__TREKKIE_SHIM_QUEUE.push({
720              from: 'trekkie-stub',
721              method: method,
722              args: args.slice(1),
723              pageContext: {
724                url: pageUrl,
725                referrer: pageReferrer
726              }
727            });
728          } catch (e) {
729            // no-op
730          }
731        }
732        return trekkie;
733      };
734    };
735    for (var i = 0; i < trekkie.methods.length; i++) {
736      var key = trekkie.methods[i];
737      trekkie[key] = trekkie.factory(key);
738    }
739    trekkie.load = function(config) {
740      trekkie.config = config || {};
741      trekkie.config.initialDocumentCookie = document.cookie;
742      var first = document.getElementsByTagName('script')[0];
743var script = document.createElement('script');
744script.type = 'text/javascript';
745script.onerror = function(e) {
746  var scriptFallback = document.createElement('script');
747  scriptFallback.type = 'text/javascript';
748  scriptFallback.onerror = function(error) {
749          var Monorail = {
750      produce: function produce(monorailDomain, schemaId, payload) {
751        var currentMs = new Date().getTime();
752        var event = {
753          schema_id: schemaId,
754          payload: payload,
755          metadata: {
756            event_created_at_ms: currentMs,
757            event_sent_at_ms: currentMs
758          }
759        };
760        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
761      },
762      sendRequest: function sendRequest(endpointUrl, payload) {
763        // Try the sendBeacon API
764        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
765          var blobData = new window.Blob([payload], {
766            type: 'text/plain'
767          });
768
769          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
770            return true;
771          } // sendBeacon was not successful
772
773        } // XHR beacon
774
775        var xhr = new XMLHttpRequest();
776
777        try {
778          xhr.open('POST', endpointUrl);
779          xhr.setRequestHeader('Content-Type', 'text/plain');
780          xhr.send(payload);
781        } catch (e) {
782          console.log(e);
783        }
784
785        return false;
786      },
787      isIos12: function isIos12() {
788        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
789      }
790    };
791    Monorail.produce('monorail-edge.shopifysvc.com',
792      'trekkie_storefront_load_errors/1.1',
793      {shop_id: 65962311766,
794      theme_id: 138710351958,
795      app_name: "storefront",
796      context_url: window.location.href,
797      source_url: "//bokksu.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"});
798
799  };
800  scriptFallback.async = true;
801  scriptFallback.src = '//bokksu.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js';
802  first.parentNode.insertBefore(scriptFallback, first);
803};
804script.async = true;
805script.src = '//bokksu.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js';
806first.parentNode.insertBefore(script, first);
807
808    };
809    trekkie.load(
810      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":65962311766,"isMerchantRequest":null,"themeId":138710351958,"themeCityHash":"1088565011724270943","contentLanguage":"en","currency":"USD","eventMetadataId":"3b4368be-e67b-4f24-b871-12627ca90273"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}}
811    );
812
813    var loaded = false;
814    trekkie.ready(function() {
815      if (loaded) return;
816      loaded = true;
817
818      window.ShopifyAnalytics.lib = window.trekkie;
819
820      var originalDocumentWrite = document.write;
821      document.write = customDocumentWrite;
822      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
823      document.write = originalDocumentWrite;
824
825      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
826      var token = match? match[1]: undefined;
827      if (!hasLoggedConversion(token)) {
828        setCookieIfConversion(token);
829        
830      }
831    });
832
833    window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"811c4a41-97bb-4560-8a48-f315fd3886fb-1790908320","shopifyEmitted":true});
834
835    var eventsListenerScript = document.createElement('script');
836    eventsListenerScript.async = true;
837    eventsListenerScript.src = "//bokksu.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
838    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
839})();</script>
vendor: 1 bytes, line 839
839
840<script
841  defer
842  src="https://bokksu.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js"
843  data-application="storefront-renderer"
844  data-shop-id="65962311766"
845  data-render-region="gcp-us-central1"
846  data-page-type="index"
847  data-theme-instance-id="138710351958"
848  data-theme-name="Expanse"
849  data-theme-version="4.3.4"
850  data-monorail-region="shop_domain"
851  data-resource-timing-sampling-rate="10"
852  data-shs="true"
853  data-shs-beacon="true"
854  data-shs-export-with-fetch="true"
855  data-shs-logs-sample-rate="1"
856  data-shs-beacon-endpoint="https://bokksu.com/api/collect"
857></script>
857
858<meta name="shopify-y" content="ebcbd2fe-0b72-4fbb-8621-db62dfe3fcd2" data-expiration="1822465920000"><meta name="shopify-s" content="c4ba585f-3127-4743-9f27-5570131ae8f0" data-expiration="1790910120000"><meta name="new-cookie-storage-activated" content="t">
859</head>
860
861  <body
862    class="template-index 
863    sugoi-mart-menu 
864    
865    
866      bokksu-store 
867     
868    "
869    data-transitions="true"
870    data-button_style="round-slight"
871    data-edges=""
872    data-type_header_capitalize="false"
873    data-swatch_style="round"
874    data-grid-style="grey-square"
875    data-min-checkout = "27"
876    data-frozen-min-shipping = "99"
877    data-min-shipping = "149"
878    ><a href="#MainContent" class="skip-to-content">Skip to content</a>
879    <style>
880      .skip-to-content {
881        position: absolute;
882        left: -9999px;
883        top: auto;
884        width: 1px;
885        height: 1px;
886        overflow: hidden;
887        z-index: 10000;
888      }
889      .skip-to-content:focus,
890      .skip-to-content:focus-visible {
891        position: fixed;
892        top: 0;
893        left: 0;
894        width: auto;
895        height: auto;
896        padding: 1rem 1.25rem;
897        background: #111;
898        color: #fff;
899        font-weight: 600;
900        text-decoration: underline;
901        clip: auto;
902        outline: 3px solid #ffbf00;
903        outline-offset: 0;
904      }
905    </style>
906
907    
907<script>
908    window.dataLayer = window.dataLayer || [];
909
910    const dataLayerHelper = (function() {
911        
912            const storeAbbr = 'SNB';
913        
914
915        // Helper function to get a cookie by name
916        function getCookie(name) {
917            const value = "; " + document.cookie;
918            const parts = value.split("; " + name + "=");
919            if (parts.length == 2) return parts.pop().split(";").shift();
920        }
921
922        // Helper function to set a cookie
923        function setCookie(name, value, minutes) {
924            const d = new Date();
925            d.setTime(d.getTime() + (minutes*60*1000));
926            const expires = "expires=" + d.toUTCString();
927            document.cookie = name + "=" + value + ";" + expires + ";path=/";
928        }
929
930        // Function to get UTM parameters from the URL
931        function getUTM() {
932            const urlParams = new URLSearchParams(window.location.search);
933            return {
934                source: urlParams.get('utm_source') || null,
935                medium: urlParams.get('utm_medium') || null,
936                campaign: urlParams.get('utm_campaign') || null
937            };
938        }
939
940        // Check cookies for UTM values or set them if they don't exist
941        function getUTMParameters() {
942            const utmFromURL = getUTM();
943
944            if (utmFromURL.source && getCookie('utm_source') != utmFromURL.source) {
945                setCookie('utm_source', utmFromURL.source, 15);
946            }
947            
948            if (utmFromURL.medium && getCookie('utm_medium') != utmFromURL.medium) {
949                setCookie('utm_medium', utmFromURL.medium, 15);
950            }
951        
952            if (utmFromURL.campaign && getCookie('utm_campaign') != utmFromURL.campaign) {
953                setCookie('utm_campaign', utmFromURL.campaign, 15);
954            }
955        
956            const utmFromCookies = {
957                source: getCookie('utm_source') || null,
958                medium: getCookie('utm_medium') || null,
959                campaign: getCookie('utm_campaign') || null,
960                landing_page: window.location.href
961            };
962        
963            return utmFromCookies;
964        }
965        
966         // Check if the value is an integer and convert it to a float ex: 5990 => 59.90
967        function checkAndConvert(value) {           
968            if (Number.isInteger(value)) {
969                return value / 100;
970            } else {
971                return value;
972            }
973        }
974
975        function cartSubtotal(items) {
976            return items.reduce((total, item) => total + (item.price * item.quantity), 0);
977        }
978     
979        // Get cart items from the cart object
980        function getCartItems() {
981            
982            let cartItems = [
983                
984              ];
985            return cartItems;
986        }
987
988        // Get checkout items from the checkout object        
989        function getCheckoutItems() {
990            if(typeof Shopify !== 'undefined' && Shopify.Checkout){
991                let checkoutItems = [
992                    
993                ];
994                return checkoutItems;
995            }
996        }
997        
998        // Get only the fields we need from the cart items
999        function extractSelectedFields(cart) {            
1000            return cart.map(item => {
1001                return {
1002                    variant_id: item.id,
1003                    product_id: item.product_id,
1004                    sku: item.sku,
1005                    title: item.title,
1006                    quantity: item.quantity,
1007                    price: checkAndConvert(item.price),
1008                    vendor: item.vendor,
1009                    category: item.product_type
1010                };
1011            });
1012        }
1013
1014        // Function to generate unique event_id
1015        function generateEventId() {
1016            const timestamp = Date.now(); // Current timestamp in milliseconds
1017            const randomNum = Math.floor(Math.random() * 1000000); // Random number between 0 and 999999
1018            return `${timestamp}_${randomNum}`;
1019        }
1020
1021        /* Make item object */
1022        const itemObject = async (itemData, quantity) => {
1023            return {
1024                product_id: itemData.product.id,
1025                id: itemData.variant.id,
1026                handle: itemData.product.handle,
1027                quantity: quantity,
1028                price: itemData.variant.price,
1029                compare_price: itemData.variant.compare_at_price,
1030                sku: itemData.variant.sku,                
1031                image: itemData.product.images[0]?.src || '',
1032                url: `/products/${itemData.product.handle}`,                
1033                title: itemData.product.title
1034            };
1035        };
1036
1037        const sumQuantities = (items) => {
1038            return items.reduce((total, item) => {
1039                return total + (item.quantity || 0);
1040            }, 0);
1041        };
1042        
1043        async function fetchProductWithVariant(handle, variantId) {
1044            try {
1045                const response = await fetch(`/products/${handle}.json`);
1046                const data = await response.json();
1047                const product = data.product;
1048                let variant = product.variants.find(variant => variant.id == variantId);
1049                return { product, variant };
1050            } catch (error) {
1051                console.error('Error:', error);
1052            }
1053        }
1054
1055        async function fetchCartItems() {
1056            // Create a delay function to wait for 2 seconds
1057            function delay(ms) {
1058                return new Promise(resolve => setTimeout(resolve, ms));
1059            }
1060
1061            try {
1062                // Wait for 2 seconds before fetching the cart data
1063                await delay(2000);
1064
1065                const response = await fetch(`/cart.json`);
1066                const data = await response.json();
1067
1068                // Filter out the item with sku 'ONWARDINS01'
1069                const filteredItems = data.items.filter(item => item.sku !== 'ONWARDINS01');
1070                
1071                return filteredItems;
1072            } catch (error) {
1073                console.error('Error:', error);
1074            }
1075        }
1076
1077        function createEcommerceEntry(item, cartItems, quantityAdjustment = 0) {
1078            return {
1079                'items': [{
1080                    'item_id'         : item.product_id,
1081                    'item_variant'    : item.id,
1082                    'item_name'       : item.title,                    
1083                    'price'           : checkAndConvert(item.price),
1084                    'compare_price'   : checkAndConvert(item.compare_at_price),
1085                    'item_brand'      : storeAbbr,
1086                    'item_category'   : item.type,
1087                    'vendor'          : item.vendor,
1088                    'quantity'        : Number(item.quantity) + Number(quantityAdjustment),                    
1089                    'image_url'       : item.image,
1090                    'product_url'     : item.url,
1091                    'sku'             : item.sku,
1092                    'customer_id'     : null,
1093                    'customer_email'  : null,                                                
1094                }],
1095                'cart': {
1096                    'cart_items'      : extractSelectedFields(cartItems),
1097                    'cart_quantity'   : sumQuantities(cartItems),
1098                    'cart_subtotal'   : checkAndConvert(cartSubtotal(cartItems))      
1099                }
1100            };
1101        }                         
1102        return {
1103            userData: function () {
1104                // Customer data object
1105                let customerData = {
1106                    is_logged_in: false,
1107                    type: 'guest',
1108                    id: null,
1109                    email: null,
1110                    first_name: null,
1111                    last_name: null,
1112                    phone_number: null,
1113                    accepts_marketing: null,
1114                    total_spent: null,
1115                    orders_count: null,
1116                    default_address: null
1117                };
1118
1119                // Liquid code to get customer data if logged in
1120                
1121
1122                // Push the customer data to the dataLayer
1123                window.dataLayer.push({
1124                    'event': 'dl_user_data',
1125                    'user_data': customerData,
1126                    'marketing': getUTMParameters()
1127                });
1128            },                                    
1129            viewItem: function() {               
1130                // SKU ONWARDINS01 must be ignored         
1131                let ecommerce = {
1132                    'items': [{
1133                        'item_id'         : null,
1134                        'item_variant'    : null,
1135                        'item_name'       : null,                        
1136                        'price'           : "",
1137                        'item_brand'      : storeAbbr,
1138                        'item_category'   : null,                                             
1139                        'vendor'          : null,         
1140                        'image_url'       : 'https://bokksu.com/cdn/shopifycloud/storefront/assets/no-image-2048-a2addb12_grande.gif',
1141                        'product_url'     : '',
1142                        'sku'             : null                                                        
1143                    }],
1144                    'cart': { 
1145                        'cart_items'      : getCartItems(),
1146                        'cart_quantity'   : sumQuantities(getCartItems()),
1147                        'cart_subtotal'   : cartSubtotal(getCartItems()),
1148                    }
1149                };
1150                            
1151                dataLayer.push({
1152                    'pageType' : 'Product',
1153                    'event'    : 'dl_view_item',
1154                    'event_id': generateEventId(),
1155                     ecommerce
1156                });        
1157                    
1158            },
1159            viewCollection: function() {      
1160                                   
1161                let ecommerce = {
1162                    'collection': {
1163                        'id'              : null,
1164                        'handle'          : null,
1165                        'description'     : null,
1166                        'products_count'  : null,                                                                            
1167                        'products'  : [
1168                            
1169                        ],                                                    
1170                    },
1171                    'cart': { 
1172                        'cart_items'      : getCartItems(),
1173                        'cart_quantity'   : sumQuantities(getCartItems()),
1174                        'cart_subtotal'   : cartSubtotal(getCartItems()),
1175                    }
1176                };               
1177                dataLayer.push({
1178                    'pageType' : 'Collection',
1179                    'event'    : 'dl_view_item_list',
1180                    'event_id': generateEventId(),
1181                     ecommerce
1182                });            
1183            },
1184            addToCart: async function(handle, variantId, quantity, quantityAdjustment = 1) {
1185                this.userData();
1186                const itemData = await fetchProductWithVariant(handle, variantId);
1187                const currentCartItems = await fetchCartItems();
1188
1189                const item = await itemObject(itemData, quantity);
1190                
1191                // SKU ONWARDINS01 must be ignored
1192                if (item.sku == 'ONWARDINS01') {
1193                    return;
1194                }
1195
1196                const ecommerce = createEcommerceEntry(item, currentCartItems, quantityAdjustment);
1197                dataLayer.push({
1198                    'event': 'dl_add_to_cart',
1199                    'event_id': generateEventId(),
1200                    ecommerce
1201                });
1202            },
1203            removeFromCart: async function(handle, variantId, quantity, quantityAdjustment = -1) {
1204                this.userData();
1205                const itemData = await fetchProductWithVariant(handle, variantId);
1206                const currentCartItems = await fetchCartItems();
1207                const item = await itemObject(itemData, quantity);
1208
1209                // SKU ONWARDINS01 must be ignored
1210                if (item.sku == 'ONWARDINS01') {
1211                    return;
1212                }
1213
1214                const ecommerce = createEcommerceEntry(item, currentCartItems, quantityAdjustment);
1215                dataLayer.push({
1216                    'event': 'dl_remove_from_cart',
1217                    'event_id': generateEventId(),
1218                    ecommerce
1219                });
1220            },            
1221            checkout: function() {
1222                this.userData();
1223                if(typeof Shopify !== 'undefined' && Shopify.Checkout){
1224                    let ecommerce = {
1225                        'items': [{
1226                            'transaction_id': null,
1227                            'order_id': null,
1228                            'customer_id': null,
1229                            'affiliation': "Bokksu Snack Box",
1230                            'value': "",
1231                            'tax': "",
1232                            'shipping': "",
1233                            'subtotal': "",
1234                            'currency': null,
1235                            
1236                            'email': null,                                                      
1237                        }],
1238                        'cart': {
1239                            'cart_items': getCheckoutItems(),
1240                            'cart_quantity'   : sumQuantities(getCheckoutItems()),
1241                        }
1242                    };
1243            
1244                    if(Shopify.Checkout.step){ 
1245                        if(Shopify.Checkout.step.length > 0){
1246                            if (Shopify.Checkout.step === 'contact_information'){
1247                                dataLayer.push({
1248                                    'event'    :'dl_begin_checkout',
1249                                    'pageType' :'Customer Information',
1250                                    'step': 1,
1251                                    'event_id': generateEventId(),
1252                                    ecommerce
1253                                });
1254                            }else if (Shopify.Checkout.step === 'shipping_method'){
1255                                dataLayer.push({
1256                                    'event'    :'add_shipping_info',
1257                                    'pageType' :'Shipping Information',
1258                                    'event_id': generateEventId(),
1259                                    ecommerce
1260                                });
1261                            }else if( Shopify.Checkout.step === "payment_method" ){
1262                                dataLayer.push({
1263                                    'event'    :'add_payment_info',
1264                                    'event_id': generateEventId(),
1265                                    'pageType' :'Add Payment Info',
1266                                    ecommerce
1267                                });
1268                            }
1269                        }
1270                                    
1271                        if(Shopify.Checkout.page == "thank_you"){
1272                            dataLayer.push({
1273                            'pageType' :'Transaction',
1274                            'event_id': generateEventId(),
1275                            'event'    :'dl_purchase',
1276                            ecommerce
1277                            });
1278                        }               
1279                    }
1280                }
1281            },            
1282        };
1283    })();
1284
1285    /*
1286        EVENTS ADD TO CART, REMOVE FROM CART, PURCHASE, PDP PAGE VIEW, CHECKOUT
1287    */
1288
1289    /* User Data */
1290    dataLayerHelper.userData();
1291      
1292    /* PDP Page view*/
1293    
1294
1295    
1296
1297    /* Checkout Page view*/
1298    setTimeout(function() {
1299        if(typeof Shopify !== 'undefined' && Shopify.Checkout){        
1300            dataLayerHelper.checkout();
1301        }
1302    }, 2000);
1303    
1304    /* Add and Remove cart items (CART and PDP minus and plus)*/
1305    document.addEventListener('click', async function(event) {
1306        const button = event.target.closest('.js-qty__wrapper button');
1307        if (button) {
1308            const input = button.closest('.js-qty__wrapper').querySelector('input');
1309            if (input) {
1310                const handle = input.getAttribute('data-product-handle');
1311                const variantId = input.getAttribute('data-variant-id');
1312                
1313                if (button.classList.contains('js-qty__adjust--minus')) {
1314                    await dataLayerHelper.removeFromCart(handle, variantId, input.value, 0);
1315                } else if (button.classList.contains('js-qty__adjust--plus')) {            
1316                    await dataLayerHelper.addToCart(handle, variantId, input.value, 0);
1317                }
1318            }
1319        }
1320    });
1321    
1322    /* Add and Remove cart items (HOMEPAGE) */
1323    document.addEventListener('click', async function(event) {
1324        const target = event.target.closest('.qty-custom-plus, .qty-custom-minus, .quick_add_to_cart');
1325        if (!target) return;
1326
1327        const gridItem = target.closest('.grid-item');
1328        if (!gridItem) return;
1329
1330        const handle = gridItem.getAttribute('data-product-handle');
1331        const variantId = gridItem.getAttribute('data-variant-id'); 
1332
1333        const quantitySpan = gridItem.querySelector('.custom-qty');
1334        let quantity = 0;
1335        if (quantitySpan){
1336            quantity = parseInt(quantitySpan.textContent);       
1337        };
1338
1339        if (target.classList.contains('qty-custom-minus')) {
1340            await dataLayerHelper.removeFromCart(handle, variantId, quantity, -1);
1341        } else if (target.classList.contains('qty-custom-plus')) {
1342            await dataLayerHelper.addToCart(handle, variantId, quantity, 1);        
1343        } else if (target.classList.contains('quick_add_to_cart')) {
1344            await dataLayerHelper.addToCart(handle, variantId, 1, 0);
1345        }
1346    });
1347
1348    /* Add button cart (Customers Also Loved) & add button cart normal state (PDP)*/
1349    document.addEventListener('click', async function(event) {
1350        const button = event.target.closest('.shopify-reco-cart-add button, .pdp-atc');
1351        if (button) {                                   
1352            const handle = button.getAttribute('data-product-handle');
1353            const variantId = button.getAttribute('data-variant-id');
1354            await dataLayerHelper.addToCart(handle, variantId, 1, 0);
1355        }
1356    });   
1357
1358    /* Collection Single button and plus and minus using FS*/
1359    window.addEventListener('fs-custom-events-product-clicked', (e) => {
1360        if(e && e.detail && e.detail.id){
1361            const productId = e.detail.id                    
1362            const handle = e.detail.productURL.split('/').pop();
1363            const variantId = e.detail.s.split('::').pop();         
1364
1365            const shadow = document.querySelector('#fast-simon-serp-app') && document.querySelector('#fast-simon-serp-app').shadowRoot ? document.querySelector('#fast-simon-serp-app').shadowRoot:null;
1366            if(shadow){
1367                if(shadow.querySelector(`.fs-results-product-card[data-product-id="`+productId+`"]`)){
1368                const element = shadow.querySelector(`.fs-results-product-card[data-product-id="`+productId+`"]`);
1369                if(element.querySelector(".add-item-to-cart .qty-custom-minus")){                    
1370                    element.querySelector(".add-item-to-cart .qty-custom-minus").addEventListener("click", function () {
1371                        const quantitySpan = element.querySelector('.custom-qty');
1372                        let quantity = 0;
1373                        if (quantitySpan){
1374                            quantity = parseInt(quantitySpan.textContent);       
1375                        };
1376                        dataLayerHelper.addToCart(handle, variantId, quantity, -1);                     
1377                    });
1378                } 
1379
1380                if(element.querySelector(".add-item-to-cart .qty-custom-plus")){
1381                    element.querySelector(".add-item-to-cart .qty-custom-plus").addEventListener("click", function () {
1382                        const quantitySpan = element.querySelector('.custom-qty');
1383                        let quantity = 0;
1384                        if (quantitySpan){
1385                            quantity = parseInt(quantitySpan.textContent);       
1386                        };
1387                        dataLayerHelper.addToCart(handle, variantId, quantity, 1);                   
1388                    });
1389                }
1390                
1391                if(element.querySelector(".qty-custom-add")){
1392                    dataLayerHelper.addToCart(handle, variantId, 1, 0);
1393                }
1394                }
1395            }          
1396       }        
1397    });
1398</script>
1398             
1399
1400
1401      
1402    <!-- Google Tag Manager (noscript) -->
vendor: 77 bytes, lines 1402-1404
1402
1403    
1404    <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
1404GTM-PR4MBW
vendor: 84 bytes, lines 1404-1405
1404" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1405
1406<!-- End Google Tag Manager (noscript) -->
1407
1408    
1409      
1409<script type="text/javascript">
1410        window.setTimeout(function() { document.body.className += " loaded"; }, 25);
1411      </script>
1411
1412    
1413
1414    
1415 
1416 <style>
1417  :root {
1418    --sale-badge: #b73d09;
1419      --badge-best-seller: #b73d09;
1420      --badge-new: #b73d09;
1421      --brand_color_1: #b73d09;
1422      --cta_filled_static : #b73d09;
1423      --cta_outline_primary_static : #b73d09;
1424      --cta_outline_primary_hover : #b73d09;
1425      --quantity-selector-primary: #b73d09;
1426      --quantity-selector-secondary: #b73d09;
1427      --primary-color : #b73d09;
1428      --collection-primary-static : #b73d09;
1429      --collection-primary-static-hover : #b73d09;
1430      --colorTextSavings : #b73d09;
1431      --colorNav : #f4f6f1;
1432
1433  }
1434  .grid-product__price--savings{
1435    color: #b73d09;
1436  }
1437</style>
1438
1439
1440
1441
1442
1443
1444  
1445    <style> .Rise__widget { display:none !important } </style>
1446  
1447
1448    
1449    <div id="PageContainer" class="page-container">
1450      <div class="transition-body"><!-- BEGIN sections: header-group -->
1451<div id="shopify-section-sections--17749310636118__toolbar" class="shopify-section shopify-section-group-header-group toolbar-section">
1452
1453<div data-section-id="sections--17749310636118__toolbar" data-section-type="toolbar">
1454  <div class="toolbar">
1455    <div class="page-width">
1456      <div class="toolbar__content">
1456<script src="//bokksu.com/cdn/shop/t/3/assets/load-image-section.js?v=162969312039988435871751964575" defer="defer"></script>
1456
1457  <div class="toolbar__item toolbar__item--announcements">
1458    <div class="announcement-bar text-center">
1459      <div class="slideshow-wrapper">
1460        <button type="button" class="visually-hidden slideshow__pause" data-id="sections--17749310636118__toolbar" aria-label="Pause announcements" aria-pressed="false">
1461          <span class="slideshow__pause-stop" aria-hidden="true">
1462            <svg focusable="false" role="presentation" class="icon icon-pause" viewBox="0 0 10 13"><path d="M0 0h3v13H0zm7 0h3v13H7z" fill-rule="evenodd"/></svg>
1463          </span>
1464          <span class="slideshow__pause-play" aria-hidden="true">
1465            <svg focusable="false" role="presentation" class="icon icon-play" viewBox="18.24 17.35 24.52 28.3"><path fill="#323232" d="M22.1 19.151v25.5l20.4-13.489-20.4-12.011z"/></svg>
1466          </span>
1467        </button>
1468
1469        <div
1470          id="AnnouncementSlider"
1471          class="announcement-slider "
1472          role="region"
1473          aria-roledescription="carousel"
1474          aria-label="Announcements"
1475          data-block-count="1">
1476<div
1477                  id="AnnouncementSlide-announcement_a8DXCa"
1478                  class="slideshow__slide announcement-slider__slide"
1479                  role="group"
1480                  aria-roledescription="announcement"
1481                  aria-label="1 of 1"
1482                  data-index="0"
1483                >
1484                  <div class="announcement-slider__content"><div class="medium-up--hide" aria-hidden="true">
1485                        <p>Rare extras when you subscribe for 3, 6, or 12 months! <a href="https://bokksu.com/products/classic-bokksu" target="_blank" title="https://bokksu.com/products/classic-bokksu"><span style="text-decoration:underline">Find Out More</span></a></p>
1486                      </div>
1487                      <div class="small--hide free-shiping">
1488                        <p>Rare extras when you subscribe for 3, 6, or 12 months! <a href="https://bokksu.com/products/classic-bokksu" target="_blank" title="https://bokksu.com/products/classic-bokksu"><span style="text-decoration:underline">Find Out More</span></a></p>
1489                      </div></div>
1490                </div></div>
1491      </div>
1492    </div>
1493  </div>
1494
1495
1496<script>
1497  $(document).ready(function(){
1498    $('#AnnouncementSlider').removeAttr("tabindex")
1499  })
1500
1501  // a11y: keep off-screen announcement slides out of the keyboard tab order
1502  // WITHOUT using inert (which would kick screen-reader virtual focus when
1503  // the slide rotates). Use tabindex="-1" on focusable descendants instead.
1504  (function () {
1505    var slider = document.getElementById('AnnouncementSlider');
1506    if (!slider) return;
1507    var FOCUSABLE_SEL = 'a[href], button, input, select, textarea, iframe, [tabindex]';
1508
1509    function setSlideTabbable(slide, tabbable) {
1510      var focusables = slide.querySelectorAll(FOCUSABLE_SEL);
1511      for (var i = 0; i < focusables.length; i++) {
1512        var el = focusables[i];
1513        if (tabbable) {
1514          var orig = el.getAttribute('data-a11y-orig-tabindex');
1515          if (orig !== null && orig !== undefined) {
1516            if (orig === '__none__') el.removeAttribute('tabindex');
1517            else el.setAttribute('tabindex', orig);
1518            el.removeAttribute('data-a11y-orig-tabindex');
1519          } else {
1520            el.removeAttribute('tabindex');
1521          }
1522        } else {
1523          if (el.getAttribute('data-a11y-orig-tabindex') === null) {
1524            var existing = el.getAttribute('tabindex');
1525            el.setAttribute('data-a11y-orig-tabindex', existing === null ? '__none__' : existing);
1526          }
1527          el.setAttribute('tabindex', '-1');
1528        }
1529      }
1530    }
1531
1532    function normalizeDots() {
1533      // Remove dots from keyboard tab order and screen reader navigation.
1534      // Guard: only set if value differs to prevent MutationObserver loops.
1535      var dotsContainer = slider.parentNode && slider.parentNode.querySelector('.flickity-page-dots');
1536      if (dotsContainer && dotsContainer.getAttribute('aria-hidden') !== 'true') {
1537        dotsContainer.setAttribute('aria-hidden', 'true');
1538      }
1539      var dots = slider.querySelectorAll('.flickity-page-dots .dot');
1540      if (!dots.length && dotsContainer) dots = dotsContainer.querySelectorAll('.dot');
1541      for (var i = 0; i < dots.length; i++) {
1542        if (dots[i].getAttribute('tabindex') !== '-1') {
1543          dots[i].setAttribute('tabindex', '-1');
1544        }
1545        if (dots[i].getAttribute('aria-current') === 'step') {
1546          dots[i].setAttribute('aria-current', 'true');
1547        }
1548      }
1549    }
1550
1551    function applyState() {
1552      var slides = slider.querySelectorAll('.announcement-slider__slide');
1553      for (var i = 0; i < slides.length; i++) {
1554        var slide = slides[i];
1555        var isActive = slide.classList.contains('is-selected');
1556        setSlideTabbable(slide, isActive);
1557        if (isActive) {
1558          slide.removeAttribute('aria-hidden');
1559        } else if (!slide.contains(document.activeElement)) {
1560          slide.setAttribute('aria-hidden', 'true');
1561        }
1562      }
1563      normalizeDots();
1564    }
1565
1566    function init() {
1567      applyState();
1568      if (typeof MutationObserver !== 'function' || slider.dataset.a11ySlideObserved) return;
1569      slider.dataset.a11ySlideObserved = '1';
1570      var slides = slider.querySelectorAll('.announcement-slider__slide');
1571      var observer = new MutationObserver(function (mutations) {
1572        for (var i = 0; i < mutations.length; i++) {
1573          if (mutations[i].attributeName === 'class') {
1574            applyState();
1575            break;
1576          }
1577        }
1578      });
1579      for (var j = 0; j < slides.length; j++) {
1580        observer.observe(slides[j], { attributes: true, attributeFilter: ['class'] });
1581      }
1582      // Watch dot list for class changes only (slide rotation).
1583      // Do NOT watch aria-current or aria-label — we set those ourselves
1584      // and watching them causes infinite observer loops.
1585      var dotsContainer = slider.parentNode && slider.parentNode.querySelector('.flickity-page-dots');
1586      if (dotsContainer) {
1587        var dotObserver = new MutationObserver(function () {
1588          clearTimeout(slider._dotDebounce);
1589          slider._dotDebounce = setTimeout(normalizeDots, 50);
1590        });
1591        dotObserver.observe(dotsContainer, {
1592          subtree: true,
1593          attributes: true,
1594          attributeFilter: ['class']
1595        });
1596      }
1597    }
1598    if (document.readyState === 'loading') {
1599      document.addEventListener('DOMContentLoaded', init);
1600    } else {
1601      init();
1602    }
1603    setTimeout(init, 500);
1604
1605    // ------------------------------------------------------------------
1606    // WCAG 2.2.2: pause autoplay on keyboard focus, hover, and when the
1607    // user prefers reduced motion. Respect the explicit pause-button
1608    // click so we don't override the user's choice.
1609    // ------------------------------------------------------------------
1610    var getFlickity = function () {
1611      return (window.Flickity && typeof Flickity.data === 'function')
1612        ? Flickity.data(slider)
1613        : null;
1614    };
1615    var wrapper = slider.closest('.slideshow-wrapper');
1616    var userPaused = function () {
1617      var btn = wrapper && wrapper.querySelector('.slideshow__pause');
1618      return !!(btn && btn.classList.contains('is-paused'));
1619    };
1620    var reducedMotionPaused = false;
1621    var pauseAutoplay = function () {
1622      var fi = getFlickity();
1623      if (fi && typeof fi.pausePlayer === 'function') fi.pausePlayer();
1624    };
1625    var resumeAutoplay = function () {
1626      if (userPaused() || reducedMotionPaused) return;
1627      var fi = getFlickity();
1628      if (fi && typeof fi.unpausePlayer === 'function') fi.unpausePlayer();
1629    };
1630
1631    if (wrapper) {
1632      wrapper.addEventListener('focusin', pauseAutoplay);
1633      wrapper.addEventListener('focusout', function (e) {
1634        if (!wrapper.contains(e.relatedTarget)) resumeAutoplay();
1635      });
1636      wrapper.addEventListener('mouseenter', pauseAutoplay);
1637      wrapper.addEventListener('mouseleave', resumeAutoplay);
1638    }
1639
1640    if (window.matchMedia) {
1641      var rmQuery = window.matchMedia('(prefers-reduced-motion: reduce)');
1642      var applyReducedMotion = function () {
1643        reducedMotionPaused = rmQuery.matches;
1644        var fi = getFlickity();
1645        if (!fi) return;
1646        if (reducedMotionPaused) {
1647          if (typeof fi.stopPlayer === 'function') fi.stopPlayer();
1648          else if (typeof fi.pausePlayer === 'function') fi.pausePlayer();
1649        } else if (!userPaused()) {
1650          if (typeof fi.unpausePlayer === 'function') fi.unpausePlayer();
1651        }
1652      };
1653      var rmTries = 0;
1654      var rmPoll = setInterval(function () {
1655        if (getFlickity() || ++rmTries > 20) {
1656          clearInterval(rmPoll);
1657          if (getFlickity()) applyReducedMotion();
1658        }
1659      }, 250);
1660      if (typeof rmQuery.addEventListener === 'function') {
1661        rmQuery.addEventListener('change', applyReducedMotion);
1662      } else if (typeof rmQuery.addListener === 'function') {
1663        rmQuery.addListener(applyReducedMotion);
1664      }
1665    }
1666  })();
1667</script>
1667
1668</div>
1669    </div>
1670  </div>
1671</div>
1672
1673</div><div id="shopify-section-sections--17749310636118__header" class="shopify-section shopify-section-group-header-group header-section">
1674
1675 <style>
1676  .sugoi-mart-mob-menu .slide-nav__wrapper ul li a:hover,
1677  .sugoi-mart-mob-menu .slide-nav__wrapper ul li button:hover .slide-nav__link {
1678    background: none !important;
1679    color: #ffffff !important;
1680  }
1681 </style>
1682
1683
1684<style>
1685
1686.cart__item--subtotal {
1687    font-size: 14px;
1688    line-height: 1.2;
1689    margin: 0;
1690}
1691
1692.cart_savings {
1693    font-size: 16px;
1694    line-height: 1.3;
1695    margin-bottom: 10px !important;
1696    margin-top: 4px;
1697}
1698
1699div#onward-copy-line-2 {
1700    margin: 6px 0 0 0 !important;
1701    padding: 0;
1702}
1703
1704#onward-container section {
1705    padding: 4px 0 10px !important;
1706}
1707
1708.cart__footer .onward-opt-out-link {
1709    padding: 0 !important;
1710    margin: 6px 0 4px !important;
1711}
1712  
1713</style>
1714
1715
1716  <style>
1717  a.site-nav__link {
1718    padding-top: 24px !important;
1719    padding-bottom: 24px !important;
1720}
1721.site-header__logo{
1722      margin: 10px 0 !important;
1723  margin-right:26px !important;
1724}
1725.page-width--narrow {
1726    /* max-width: 700px; */
1727    max-width: var(--pageNarrow) !important;
1728}
1729
1730
1731
1732  /* New Is-light */
1733
1734.is-light-new.is-light .site-header__element {
1735background: #fff !important;
1736}
1737.is-light-new .site-header__element {
1738  background: var(--colorNav) !important;
1739}
1740
1741.is-light-new.is-light .site-header__logo .logo--has-inverted {
1742opacity: 1;
1743visibility: visible;
1744overflow: auto;
1745height: initial;
1746}
1747
1748.is-light-new.is-light .site-header__logo .logo--inverted {
1749opacity: 0;
1750visibility: hidden;
1751overflow: hidden;
1752height: 0;
1753}
1754
1755.is-light-new.is-light .site-nav__link,
1756.is-light-new.is-light .site-nav__link:hover {
1757color: #000;
1758}
1759
1760.header-wrapper--overlay.is-light-new.is-light:after {
1761display: none;
1762}
1763
1764  .header-layout .subscribe-btn {
1765    display: block;
1766    font-family: 'Montserrat', sans-serif !important;
1767    font-style: normal !important;
1768    font-weight: 500 !important;
1769    font-size: 14px !important;
1770    line-height: 18px !important;
1771    text-align: center !important;
1772    letter-spacing: 5px !important;
1773    text-transform: uppercase !important;
1774    cursor: pointer !important;
1775    height: 40px !important;
1776    padding: 11px 38px !important;
1777    border-radius: 12px !important;
1778  }
1779
1780.header-layout .un-fl-submenu-icon-arrow-dj{
1781  height: 3px;
1782  width: 3px;
1783}
1784.is-light-new .un-fl-submenu-icon-arrow-dj{
1785  border-color: #000 !important;
1786}
1787.hero__top-subtitle{
1788  font-family: 'Montserrat', sans-serif;
1789    text-transform: uppercase;
1790    letter-spacing: 2px !important;
1791    font-size: 12px !important;
1792    font-weight: 500 !important;
1793    line-height: 18px;
1794}
1795.un-fl-submenu-icon-arrow-dj 
1796{
1797  border-width: 0px 1px 1px 0px !important;
1798}
1799@media all and (max-width: 960px) {
1800  .header-layout .subscribe-btn , a.site-nav__link.site-nav__link--icon.AccountMobileIcone{
1801      display: none;
1802  }
1803  .header-item--logo{
1804      justify-content: center;
1805  }
1806
1807    .header-layout .un-fl-submenu-icon-arrow-dj {
1808      height: 3px;
1809      width: 3px;
1810    }
1811}
1812  @media all and (max-width: 960px) {
1813
1814    .header-layout .subscribe-btn,
1815    a.site-nav__link.site-nav__link--icon.AccountMobileIcone {
1816      display: none;
1817    }
1818
1819    .header-item--logo {
1820      justify-content: center;
1821    }
1822  }
1823
1824
1825
1826  .site-header__cart {
1827    padding: 0 !important;
1828  }
1829
1830  .cart__scrollable {
1831    margin-bottom: 230px !important;
1832    /* height: calc(100vh - 266px); */
1833  }
1834
1835  a.hero__top-subtitle.site-nav__link.site-nav__link--underline:not(.site-nav__link--has-dropdown)>i {
1836    display: none;
1837  }
1838 
1839
1840  @media all and (max-width: 850px) {
1841    .cart__scrollable {
1842      margin-bottom: 70px !important;
1843      /* height: calc(100vh - 170px); */
1844    }
1845
1846    .header-layout .subscribe-btn,
1847    a.site-nav__link.site-nav__link--icon.AccountMobileIcone {
1848      display: none;
1849    }
1850  }
1851
1852  /* New Css */
1853  @media only screen and (max-width:1200px) {
1854    .megamenu__col .megamenu__col-title {
1855      width: 50%;
1856    }
1857
1858    .megamenu__col {
1859      flex-wrap: wrap;
1860    }
1861
1862    .max-column-width {
1863      margin: auto;
1864      width: 400px !important;
1865    }
1866
1867    .Shop .megamenu__col {
1868      padding-right: 0 !important;
1869    }
1870
1871    .Shop .megamenu__col .megamenu__col-title,
1872    .About .megamenu__col .megamenu__col-title {
1873      width: 100%;
1874    }
1875    
1876    .sugoi-mart-menu  .slide-nav__wrapper ul li a , .slide-nav__wrapper ul li button .slide-nav__link {
1877      font-family: "Lato", sans-serif;
1878      font-weight: 400 !important;
1879      font-size: 15px !important;
1880      line-height: 140%;
1881      letter-spacing: 0.02em;
1882      text-transform: capitalize;
1883      color: #242426;
1884      border-radius: 8px;
1885      gap: 16px;
1886      transition: .3s linear
1887    }
1888    
1889  }
1890
1891  @media only screen and (min-width:1201px) {
1892    .max-column-width {
1893
1894      /* New CSS */
1895
1896      padding-top: 20px;
1897      word-break: break-word;
1898      width: 260px;
1899      font-weight: 400;
1900      font-size: 16px;
1901      line-height: 24px;
1902      text-align: center;
1903      letter-spacing: 1px;
1904      color: #000000;
1905      font-family: 'Lato';
1906
1907    }
1908  }
1909
1910
1911  .desktop-seprator {
1912    border-top: 1px solid rgb(189, 189, 189);
1913    margin-left: 5%;
1914    width: 191%;
1915  }
1916
1917  .desktop-seprator:last-of-type {
1918    padding-bottom: 25px
1919  }
1920
1921  .cart__item {
1922    align-items: center !important;
1923    padding: 10px 20px;
1924  }
1925
1926  span.subscription-items-final-price {
1927    font-weight: 800;
1928  }
1929
1930  .cart-open body {
1931    overflow: hidden !important;
1932  }
1933
1934  .cart__footer {
1935    bottom: 91px;
1936  }
1937
1938  .scrolled-body .cart__footer {
1939    bottom: 60px;
1940  }
1941
1942  span.market-items-final-price {
1943    font-weight: 800;
1944  }
1945
1946  .subscription-product-container .subscription-free-shipping-msg a {
1947    color: #000 !important;
1948  }
1949
1950  .listing-loved-products::-webkit-scrollbar-track {
1951    -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
1952    border-radius: 10px;
1953    background-color: #F5F5F5 !important;
1954  }
1955
1956  .listing-loved-products::-webkit-scrollbar {
1957    width: 6px;
1958    height: 6px;
1959    background-color: #F5F5F5 !important;
1960  }
1961
1962  .listing-loved-products::-webkit-scrollbar-thumb {
1963    border-radius: 10px;
1964    -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
1965    background-color: #BEBEBE !important;
1966  }
1967
1968  .header-version-2 .main-search-main{
1969    position: absolute;
1970    top: 40%;
1971    transform: translateY(-50%);
1972    right: 29px;
1973  }
1974  .header-version-2 .main-search-main svg path{
1975      fill: #000;
1976  }
1977  .header-version-2 .search__input-wrap {
1978    margin-top: 15px;
1979  }
1980  @media all and (max-width:1200px) {
1981    .cart__footer {
1982      bottom: 91px !important;
1983    }
1984
1985  }
1986  @media all and (max-width:576px) {
1987    .cart__footer {
1988      bottom: 57px !important;
1989    }
1990    .site-header__logo a {
1991      font-size: 29px !important;
1992    }
1993    .cart-open body {
1994    overflow: hidden !important;
1995  }
1996  .main-dualcart.subscription-product-container {
1997    margin-top: 13px;
1998}
1999
2000#HeaderWrapper .custom-page-width {
2001    max-width: 100%;
2002    padding: 0;
2003    position: relative;
2004}
2005}
2006  @media only screen and (max-width: 960px) {
2007    .mobile-nav-open .site-nav__link:not(.mobile-nav-trigger) {
2008        display: block;
2009    }
2010}
2011  @media only screen and (max-width: 768px) {
2012    .page-width.site-header__drawers {
2013    padding: 0 !important;
2014}
2015.header-item--logo {
2016        flex: 100 !important;
2017        justify-content: center !important;
2018}
2019}
2020body .cart-milestone .main-progress-bar-with-markups .floating-text-bottom * {
2021    font-family: 'Lato' !important;
2022    letter-spacing: 0.5px;
2023    text-align: center !important;
2024}
2025#note-wrap{
2026    margin-bottom: 6px;
2027}
2028a.site-nav__link {
2029    padding-top: 26px;
2030    padding-bottom: 26px;
2031}
2032
2033  
2034    .e-gift-heading-div{
2035    margin-bottom: 0 !important;
2036  }
2037    .GmAddedContainer{
2038      margin-bottom: 1.5rem;
2039    }
2040
2041
2042    
2043      .header-section {
2044           position: sticky !important;
2045    }
2046    
2047    
2048      .is-light .site-header__element{
2049        background: transparent !important;
2050      }
2051    
2052
2053  
2054  .GmAddedContainer{
2055  margin-bottom: 0;
2056  }
2057  #note-wrap{
2058  margin-bottom: 6px;
2059  }
2060.header-layout #search-icon-id {
2061    display: none;
2062  }
2063#announcement-banner-MKT #bannerBG , .subscribe-btn:before , .cart-link__bubble:before , #mbl-subscribe-overrides{
2064  background-color: #b73d09 !important;
2065}
2066.subscribe-btn {
2067    color: #b73d09 !important;
2068    border: 1px solid #b73d09 !important;
2069}
2070.cart-link__bubble-num , #mbl-subscribe-overrides{
2071color: #FFFFFF;
2072}
2073.cart__price:not(.cart__price--strikethrough){
2074 color: #b73d09;
2075}
2076
2077
2078/* header dropdown styles  */
2079
2080/* a11y: nav button triggers — reset browser button defaults to match <a> styling */
2081button.site-nav__link {
2082    -webkit-appearance: none;
2083    appearance: none;
2084    background: none;
2085    border: none;
2086    margin: 0;
2087    padding: 16px 20px;
2088    cursor: pointer;
2089    color: inherit;
2090    font-family: 'Montserrat', sans-serif !important;
2091    font-size: 12px !important;
2092    font-weight: 500 !important;
2093    letter-spacing: 2px !important;
2094    line-height: 18px;
2095    text-transform: uppercase;
2096    text-decoration: none;
2097    text-align: left;
2098    white-space: nowrap;
2099    display: inline-block;
2100    vertical-align: middle;
2101  }
2102  button.site-nav__link:focus-visible {
2103    outline: 2px solid currentColor;
2104    outline-offset: 2px;
2105    border-radius: 2px;
2106  }
2107  button.site-nav__link[aria-expanded="true"] .un-fl-submenu-icon-arrow-dj,
2108  button.site-nav__link[aria-expanded="true"] .dropdown-arrow {
2109    transform: rotate(225deg);
2110  }
2111.header-version-2 .site-nav__dropdown ,  .header-version-2 .site-nav--has-dropdown.is-focused > a, .header-version-2 .site-nav--has-dropdown:hover > a, .header-version-2 .site-nav--has-dropdown.is-focused > a svg path, .header-version-2 .site-nav--has-dropdown:hover > a svg path
2112{
2113    background-color:#F6F4F1;
2114  }
2115   .header-version-2 .site-nav__dropdown *{
2116    color:#000000;
2117  }
2118  .header-version-2 .site-nav__dropdown .menu-shop-now{
2119    color:#b73d09 !important ;
2120  }
2121  /* Subscribe button: desktop only (above 961px). Beats jQuery .show() inline style. */
2122  @media (max-width: 961px) {
2123    #btn-subscribe-overrides {
2124      display: none !important;
2125    }
2126  }
2127
2128
2129</style>
2130
2131
2132  <style>
2133      .optimize-hidden{
2134        display: none !important;
2135      }
2136      .site-nav__link {
2137        font-size: 13px;
2138      }
2139      
2140        .site-nav__link {
2141          text-transform: uppercase;
2142          letter-spacing: 0.2em;
2143        }
2144      
2145
2146      
2147@media only screen and (max-width: 1100px) {
2148        .mob-cart-align {
2149          height: inherit !important;
2150          overflow: auto !important;
2151          background: #ffffff !important;
2152        }
2153        .empty-cart-main {
2154          padding-bottom: 0 !important;
2155        }
2156      }
2157  </style>
2158
2159  <div data-section-id="sections--17749310636118__header" data-section-type="header">
2160    <div
2161      id="HeaderWrapper"
2162      class=" header-version-2 header-wrapper header-wrapper--overlay is-light "
2163    >
2164      <header
2165        id="SiteHeader"
2166        class="site-header"
2167        data-sticky="true"
2168        data-overlay=" true "
2169      >
2170        <div class="site-header__element site-header__element--top">
2171          <div class="page-width custom-page-width">
2172            <div
2173              class="header-layout"
2174              data-layout="below"
2175              data-nav="beside"
2176              data-logo-align="left"
2177            >
2178              <button
2179                type="button"
2180                aria-controls="MobileNav"
2181                aria-expanded="false"
2182                aria-label="Site navigation"
2183                class="site-nav__link site-nav__link--icon mobile-nav-trigger optimize-hidden"
2184              >
2185                <svg
2186                  aria-hidden="true"
2187                  focusable="false"
2188                  role="presentation"
2189                  class="icon icon-hamburger"
2190                  viewBox="0 0 64 64"
2191                >
2192                  <path class="cls-1" d="M7 15h51"/><path class="cls-1" d="M7 32h43"/><path class="cls-1" d="M7 49h51"/>
2193                </svg>
2194                <span class="icon__fallback-text">Site navigation</span>
2195              </button><button
2196                type="button"
2197                aria-controls="MobileNav"
2198                aria-expanded="false"
2199                aria-label="Site navigation"
2200                class="site-nav__link site-nav__link--icon medium-up--hide mobile-nav-trigger"
2201              >
2202                <svg
2203                  aria-hidden="true"
2204                  focusable="false"
2205                  role="presentation"
2206                  class="icon icon-hamburger"
2207                  viewBox="0 0 64 64"
2208                >
2209                  <path class="cls-1" d="M7 15h51"/><path class="cls-1" d="M7 32h43"/><path class="cls-1" d="M7 49h51"/>
2210                </svg>
2211                <span class="icon__fallback-text">Site navigation</span>
2212              </button><div class="header-item header-item--logo"><style data-shopify>.header-item--logo,
2213      [data-layout="left-center"] .header-item--logo,
2214      [data-layout="left-center"] .header-item--icons {
2215        flex: 0 1 120px;
2216      }
2217  
2218      @media only screen and (min-width: 769px) {
2219        .header-item--logo,
2220        [data-layout="left-center"] .header-item--logo,
2221        [data-layout="left-center"] .header-item--icons {
2222          flex: 0 0 140px;
2223        }
2224      }
2225  
2226      .site-header__logo a {
2227        width: 120px;
2228      }
2229      .is-light .site-header__logo .logo--inverted {
2230        width: 120px;
2231      }
2232      @media only screen and (min-width: 769px) {
2233        .site-header__logo a {
2234          width: 140px;
2235        }
2236  
2237        .is-light .site-header__logo .logo--inverted {
2238          width: 140px;
2239        }
2240      }</style><div class="h1 site-header__logo" >
2241        <a
2242          href="/"
2243          aria-label="Bokksu — home"
2244          class="site-header__logo-link  logo--has-inverted">
2245  
2246          
2247
2248
2249
2250
2251
2252<image-element data-aos="image-fade-in">
2253
2254  
2255    
2256      
2257      <img src="//bokksu.com/cdn/shop/files/BokksuSnackBox_Logo_Horizontal_Filled_Orange.png?v=1750968753&amp;width=280" alt="" srcset="//bokksu.com/cdn/shop/files/BokksuSnackBox_Logo_Horizontal_Filled_Orange.png?v=1750968753&amp;width=140 140w, //bokksu.com/cdn/shop/files/BokksuSnackBox_Logo_Horizontal_Filled_Orange.png?v=1750968753&amp;width=280 280w" width="140" height="49.46666666666667" loading="eager" class="small--hide image-element" fetchpriority="high" sizes="100vw" style="max-height: 49.46666666666667px;max-width: 140px;object-fit:contain">
2258    
2259  
2260
2261</image-element>
2262
2263
2264
2265
2266
2267<image-element data-aos="image-fade-in">
2268
2269  
2270    
2271      
2272      <img src="//bokksu.com/cdn/shop/files/BokksuSnackBox_Logo_Horizontal_Filled_Orange.png?v=1750968753&amp;width=240" alt="" srcset="//bokksu.com/cdn/shop/files/BokksuSnackBox_Logo_Horizontal_Filled_Orange.png?v=1750968753&amp;width=120 120w, //bokksu.com/cdn/shop/files/BokksuSnackBox_Logo_Horizontal_Filled_Orange.png?v=1750968753&amp;width=240 240w" width="120" height="42.4" loading="eager" class="medium-up--hide image-element" fetchpriority="high" sizes="120px" style="max-height: 42.4px;max-width: 120px;object-fit:contain">
2273    
2274  
2275
2276</image-element>
2277
2278</a><a
2279            href="/"
2280            aria-label="Bokksu — home"
2281            class="site-header__logo-link logo--inverted">
2282            
2283
2284
2285
2286
2287
2288<image-element data-aos="image-fade-in">
2289
2290  
2291    
2292      
2293      <img src="//bokksu.com/cdn/shop/files/BokksuSnackBox_Logo_Horizontal_Filled_White.png?v=1750968756&amp;width=280" alt="" srcset="//bokksu.com/cdn/shop/files/BokksuSnackBox_Logo_Horizontal_Filled_White.png?v=1750968756&amp;width=140 140w, //bokksu.com/cdn/shop/files/BokksuSnackBox_Logo_Horizontal_Filled_White.png?v=1750968756&amp;width=280 280w" width="140" height="49.46666666666667" loading="eager" class="small--hide image-element" fetchpriority="high" sizes="140px" style="max-height: 49.46666666666667px;max-width: 140px;">
2294    
2295  
2296
2297</image-element>
2298
2299
2300
2301
2302
2303<image-element data-aos="image-fade-in">
2304
2305  
2306    
2307      
2308      <img src="//bokksu.com/cdn/shop/files/BokksuSnackBox_Logo_Horizontal_Filled_White.png?v=1750968756&amp;width=240" alt="" srcset="//bokksu.com/cdn/shop/files/BokksuSnackBox_Logo_Horizontal_Filled_White.png?v=1750968756&amp;width=120 120w, //bokksu.com/cdn/shop/files/BokksuSnackBox_Logo_Horizontal_Filled_White.png?v=1750968756&amp;width=240 240w" width="120" height="42.4" loading="eager" class="medium-up--hide image-element" fetchpriority="high" sizes="120px" style="max-height: 42.4px;max-width: 120px;">
2309    
2310  
2311
2312</image-element>
2313
2314</a></div></div><div
2315                  class="header-item header-item--navigation original-element"
2316                ><nav aria-label="Main navigation">
2317<ul role="list" class="site-nav original-nav site-navigation site-navigation--beside small--hide"><li
2318      class="site-nav__item  site-nav__expanded-item site-nav--has-dropdown site-nav--is-megamenu "
2319      ><button
2320        type="button"
2321        style="margin-bottom:-1px"
2322        class="hero__top-subtitle site-nav__link site-nav__link--underline site-nav__link--has-dropdown site-nav__dropdown-toggle"
2323        aria-haspopup="true"
2324        aria-expanded="false"
2325      >
2326        Shop
2327        
2328          <i aria-hidden="true" class="un-fl-submenu-icon-arrow-dj"></i>
2329        
2330      </button><div class="site-nav__dropdown megamenu text-left">
2331          <div class="page-width">
2332            <div class="site-nav__dropdown-animate  megamenu__wrapper"><a href="#" class="site-nav__dropdown-link site-nav__dropdown-link--view-all visually-hidden">View all Shop</a><div class= "megamenu__cols" >
2333                <div class="megamenu__col" ><div class="megamenu__col-title"  >
2334                    
2335
2336                              
2337                                   
2338                       
2339
2340
2341             <div  style="text-decoration:none" class="hero__top-subtitle site-nav__dropdown-link site-nav__dropdown-link--top-level" >
2342  Bokksu Snack Box
2343</div>
2344                    
2345
2346                 </div>
2347                    
2348                       <a  href="/products/classic-bokksu" class="site-nav__dropdown-link">
2349                        Subscribe 
2350                      </a>
2351                    
2352                       <a  href="/products/gift-classic-bokksu" class="site-nav__dropdown-link">
2353                        Gift 
2354                      </a>
2355                    
2356                       <a  href="/pages/past-themes" class="site-nav__dropdown-link">
2357                        Past Themes 
2358                      </a></div><div class="megamenu__col"><div class="megamenu__col-title"  >
2359                    
2360
2361                              
2362                                   
2363                       
2364
2365
2366             <div  style="text-decoration:none" class="hero__top-subtitle site-nav__dropdown-link site-nav__dropdown-link--top-level" >
2367  Bokksu Boutique
2368</div>
2369                    
2370
2371                 </div>
2372                    
2373                       <a  href="https://bokksuboutique.com" class="site-nav__dropdown-link">
2374                        Shop Boutique 
2375                      </a></div><div class="megamenu__col"><div class="megamenu__col-title"  >
2376                    
2377
2378                              
2379                                   
2380                       
2381
2382
2383             <div  style="text-decoration:none" class="hero__top-subtitle site-nav__dropdown-link site-nav__dropdown-link--top-level" >
2384  Gifts
2385</div>
2386                    
2387
2388                 </div>
2389                    
2390                       <a  href="/products/gift-card" class="site-nav__dropdown-link">
2391                        Gift Cards 
2392                      </a>
2393                    
2394                       <a  href="https://www.bokksuboutique.com/pages/corporate-gifts" class="site-nav__dropdown-link">
2395                        Corporate Gifts 
2396                      </a></div>
2397</div></div>
2398          </div>
2399        </div></li><li
2400      class="site-nav__item  About  site-nav__expanded-item site-nav--has-dropdown site-nav--is-megamenu "
2401      ><button
2402        type="button"
2403        style="margin-bottom:-1px"
2404        class="hero__top-subtitle site-nav__link site-nav__link--underline site-nav__link--has-dropdown site-nav__dropdown-toggle"
2405        aria-haspopup="true"
2406        aria-expanded="false"
2407      >
2408        About
2409        
2410          <i aria-hidden="true" class="un-fl-submenu-icon-arrow-dj"></i>
2411        
2412      </button><div class="site-nav__dropdown megamenu text-left">
2413          <div class="page-width">
2414            <div class="site-nav__dropdown-animate  megamenu__wrapper"><a href="#" class="site-nav__dropdown-link site-nav__dropdown-link--view-all visually-hidden">View all About</a><div class= "megamenu__cols" >
2415                <div class="megamenu__col" ><div class="megamenu__col-title"  >
2416                    
2417
2418                              
2419                                   
2420                       
2421
2422
2423             <div  style="text-decoration:none" class="hero__top-subtitle site-nav__dropdown-link site-nav__dropdown-link--top-level" >
2424  About
2425</div>
2426                    
2427
2428                 </div>
2429                    
2430                       <a  href="/pages/about" class="site-nav__dropdown-link">
2431                        Our Story 
2432                      </a>
2433                    
2434                       <a  href="/pages/our-makers" class="site-nav__dropdown-link">
2435                        Our Makers 
2436                      </a>
2437                    
2438                       <a  href="/pages/snack-bites-documentary" class="site-nav__dropdown-link">
2439                        Maker's Documentary 
2440                      </a></div><div class="megamenu__col"><div class="megamenu__col-title"  >
2441                    
2442
2443                              
2444                                   
2445                       
2446
2447
2448             <div  style="text-decoration:none" class="hero__top-subtitle site-nav__dropdown-link site-nav__dropdown-link--top-level" >
2449  Support
2450</div>
2451                    
2452
2453                 </div>
2454                    
2455                       <a  href="/pages/faq" class="site-nav__dropdown-link">
2456                        FAQ 
2457                      </a>
2458                    
2459                       <a  href="/pages/contact-us" class="site-nav__dropdown-link">
2460                        Contact Us 
2461                      </a></div><div class="megamenu__col"><div class="megamenu__col-title"  >
2462                    
2463
2464                              
2465                                   
2466                       
2467
2468
2469             <div  style="text-decoration:none" class="hero__top-subtitle site-nav__dropdown-link site-nav__dropdown-link--top-level" >
2470  Information
2471</div>
2472                    
2473
2474                 </div>
2475                    
2476                       <a  href="/blogs/news" class="site-nav__dropdown-link">
2477                        Our Blog 
2478                      </a>
2479                    
2480                       <a  href="/pages/bokksu-offers-discounts-coupons" class="site-nav__dropdown-link">
2481                        Today's Offers 
2482                      </a>
2483                    
2484                       <a  href="/pages/community" class="site-nav__dropdown-link">
2485                        Community 
2486                      </a>
2487                    
2488                       <a  href="/pages/careers" class="site-nav__dropdown-link">
2489                        Careers 
2490                      </a>
2491                    
2492                       <a  href="/pages/rewards" class="site-nav__dropdown-link">
2493                        Rewards 
2494                      </a>
2495                    
2496                       <a  href="/pages/rewards" class="site-nav__dropdown-link">
2497                        Refer a Friend 
2498                      </a></div>
2499</div></div>
2500          </div>
2501        </div></li><li
2502      class="site-nav__item  site-nav__expanded-item site-nav--has-dropdown site-nav--is-megamenu "
2503      ><button
2504        type="button"
2505        style="margin-bottom:-1px"
2506        class="hero__top-subtitle site-nav__link site-nav__link--underline site-nav__link--has-dropdown site-nav__dropdown-toggle"
2507        aria-haspopup="true"
2508        aria-expanded="false"
2509      >
2510        Brands
2511        
2512          <i aria-hidden="true" class="un-fl-submenu-icon-arrow-dj"></i>
2513        
2514      </button><div class="site-nav__dropdown megamenu text-left">
2515          <div class="page-width">
2516            <div class="site-nav__dropdown-animate  "><div >
2517                <div class="megamenu__col"  style="display:flex;justify-content:space-around" ><div class="megamenu__col-title"  style="text-align:center">
2518                      
2519           <a style="pointer-events: none;" href="/" target="_blank" class="site-nav__dropdown-link site-nav__dropdown-link--top-level">
2520          
2521                      <img
2522            class="small--hide"
2523                      style="height:90px; width:100px"
2524            src="//bokksu.com/cdn/shop/files/BokksuSnackBox_Logo_Stacked_Filled_Orange_200x.png?v=1750968760"
2525            srcset="//bokksu.com/cdn/shop/files/BokksuSnackBox_Logo_Stacked_Filled_Orange_200x.png?v=1750968760 2x" alt="Bokksu Premium Snack Box">
2526                      <p class="max-column-width" style="color:grey"> Premium subscription box sourcing Japanese snacks from centuries-old family makers.</p>
2527            <a target="_blank" class="menu-shop-now" href="https://bokksu.com/products/classic-bokksu"> <div style=""></div>SHOP NOW</a>
2528 </a>
2529                      
2530
2531                              
2532                                   
2533                       
2534
2535                    
2536
2537                 </div><div class="megamenu__col-title"  style="text-align:center">
2538                    
2539
2540                             
2541                              <a  target="_blank" href="https://bokksuboutique.com" class="site-nav__dropdown-link site-nav__dropdown-link--top-level">
2542
2543                                <img
2544                                class="small--hide"
2545                                          style="height:90px; width:100px"
2546                                src="//bokksu.com/cdn/shop/files/BokksuBoutique_Logo_Stacked_Filled_Blue_200x.png?v=1750968708"
2547                                srcset="//bokksu.com/cdn/shop/files/BokksuBoutique_Logo_Stacked_Filled_Blue_200x.png?v=1750968708 2x" alt="Bokksu Snack Boutique">
2548                                          <p class="max-column-width"> Specialty and gourmet gifts for every occasion, all made and shipped from Japan. </p>
2549                              <a target="_blank" class="menu-shop-now" href="https://bokksuboutique.com/"><div style=""></div> SHOP NOW</a>
2550                    </a>
2551                         
2552                                   
2553                       
2554
2555                    
2556
2557                 </div><div class="megamenu__col-title"  style="text-align:center">
2558                    
2559
2560                              
2561                     
2562                      <a  href="https://bokksumarket.com" target="_blank" class="site-nav__dropdown-link site-nav__dropdown-link--top-level">
2563                        <img
2564                        class="small--hide"
2565                      style="height:90px; width:100px;"
2566                        src="//bokksu.com/cdn/shop/files/BokksuMarket_Logo_Stacked_Filled_Green_200x.png?v=1750968741"
2567                        srcset="//bokksu.com/cdn/shop/files/BokksuMarket_Logo_Stacked_Filled_Green_200x.png?v=1750968741 2x" alt="Bokksu Asian grocery market">
2568                        <p class="max-column-width"> Online Asian grocery store delivering pantry items, frozen foods, beverages, and more. </p>
2569                       <a target="_blank" class="menu-shop-now" href="https://bokksumarket.com"> <div style=""></div> SHOP NOW</a>
2570                        </a>
2571
2572                       
2573                       
2574
2575                    
2576
2577                 </div></div>
2578</div></div>
2579          </div>
2580        </div></li></ul>
2581</nav>
2582
2583
2584</div><div class="header-item header-item--icons">
2585                <div class="subscribe-button-wrapper optimize-hidden">
2586                  <a
2587                    href="/products/classic-bokksu"
2588                    id="subscribe-button"
2589                    class="btn-custom subscribe-btn custom-subscribe-button optim
2589ize-hidden cart-empty"
2590                    aria-labelledby="subscribe-button-label"
2591                    >SUBSCRIBE <span class="small--hide">NOW</span>
2592                    <span class="visually-hidden" id="subscribe-button-label">Subscribe now — Classic Bokksu Snack Box</span>
2593                  </a>
2594                </div><div class="site-nav">
2595  <div class="site-nav__icons">
2596    <a href="/search?q=&type=product" id="search-icon-id" class="site-nav__link site-nav__link--icon js-search-header js-no-transition">
2597      <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-search" viewBox="0 0 64 64"><defs><style>.cls-1{fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:2px}</style></defs><path class="cls-1" d="M47.16 28.58A18.58 18.58 0 1 1 28.58 10a18.58 18.58 0 0 1 18.58 18.58zM54 54L41.94 42"/></svg>
2598      <span class="icon__fallback-text">Search</span>
2599    </a>
2600        
2601            <a href="/products/classic-bokksu" id="btn-subscribe-overrides" class="btn-custom subscribe-btn original-element" aria-label="Subscribe now — Bokksu Snack Box">Subscribe Now</a>          
2602        
2603<a class="site-nav__link site-nav__link--icon small--hide site-nav__link-v2" href="/account" aria-label="My account">
2604      <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-user" viewBox="0 0 64 64"><defs><style>.cls-1{fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:2px}</style></defs><path class="cls-1" d="M35 39.84v-2.53c3.3-1.91 6-6.66 6-11.42 0-7.63 0-13.82-9-13.82s-9 6.19-9 13.82c0 4.76 2.7 9.51 6 11.42v2.53c-10.18.85-18 6-18 12.16h42c0-6.19-7.82-11.31-18-12.16z"/></svg>
2605      <span class="site-nav__icon-label small--hide icon__fallback-text" aria-hidden="true">
2606        Account
2607      </span>
2608    </a><button
2609      id="HeaderCartTrigger"
2610      aria-controls="HeaderCart"
2611      class="cart-items-new mini-cart site-nav__link site-nav__link-v2 site-nav__link--icon js-no-transition cart-empty"
2612      data-icon="cart"
2613      aria-label="Cart, 0 items"
2614    >
2615      <span class="cart-link">
2616          <svg class="icon jpc-cart-icon" xmlns="http://www.w3.org/2000/svg" width="27" height="26" viewBox="0 0 27 26" fill="none">
2617            <path d="M10.1429 25.0005C10.774 25.0005 11.2857 24.4889 11.2857 23.8577C11.2857 23.2265 10.774 22.7148 10.1429 22.7148C9.51167 22.7148 9 23.2265 9 23.8577C9 24.4889 9.51167 25.0005 10.1429 25.0005Z" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
2618            <path d="M22.7132 25.0005C23.3443 25.0005 23.856 24.4889 23.856 23.8577C23.856 23.2265 23.3443 22.7148 22.7132 22.7148C22.082 22.7148 21.5703 23.2265 21.5703 23.8577C21.5703 24.4889 22.082 25.0005 22.7132 25.0005Z" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
2619            <path d="M1 1H5.57141L8.63425 16.3028C8.73876 16.829 9.025 17.3016 9.44287 17.638C9.86074 17.9744 10.3836 18.1531 10.92 18.1428H22.0285C22.5648 18.1531 23.0877 17.9744 23.5056 17.638C23.9234 17.3016 24.2097 16.829 24.3142 16.3028L26.1427 6.71426H6.71426" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
2620            </svg>
2621            
2622<span class="cart-link__bubble" aria-hidden="true">
2623          <span class="cart-link__bubble-num">0</span>
2624        </span>
2625      </span>
2626      <span class="site-nav__icon-label small--hide icon__fallback-text" aria-hidden="true">
2627        Cart
2628      </span>
2629    </button>
2630
2631
2632      
2633  </div>
2634
2635  <div class="site-nav__close-cart">
2636    <button type="button" class="site-nav__link site-nav__link--icon js-close-header-cart" aria-label="Close shopping cart">
2637      <span>Close</span>
2638      <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 64 64"><path d="m19 17.61 27.12 27.13m0-27.13L19 44.74" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:2px"/></svg>
2639    </button>
2640  </div>
2641  
2642</div>
2643</div>
2644            </div>
2645          </div>
2646
2647          <div class="site-header__search-container">
2648            <div class="page-width">
2649              <div class="site-header__search"><style>
2650  .predictive-overflow-hidden {
2651    /*overflow: hidden;*/
2652
2653    @media (--small) {
2654      overflow: auto;
2655    }
2656  }
2657
2658  predictive-search {
2659    display: flex;
2660    align-items: center;
2661    position: relative;
2662    width: 100%;
2663    max-width: 960px;
2664    margin: 0 auto;
2665
2666    &.is-active {
2667      flex: 99;
2668    }
2669
2670    &.is-active .predictive__screen {
2671      display: block;
2672      z-index: 3;
2673    }
2674
2675    &.is-active .btn--close-search {
2676      display: flex;
2677      align-items: center;
2678      justify-content: center;
2679    }
2680    &.is-active .btn--close-search1 {
2681      display: flex;
2682      align-items: center;
2683      justify-content: center;
2684    }
2685  }
2686
2687  [data-dark='true'] {
2688    & input {
2689      color: #fff !important;
2690    }
2691
2692    & .btn--search path {
2693      stroke: #fff !important;
2694    }
2695  }
2696
2697  [data-dark='false'] {
2698    & input {
2699      color: #000 !important;
2700    }
2701
2702    & .btn--search path {
2703      stroke: #000 !important;
2704    }
2705  }
2706
2707  .predictive__screen {
2708    position: fixed;
2709    width: 100vw;
2710    height: 100vh;
2711    top: 0;
2712    left: 0;
2713    background: rgba(0, 0, 0, 0.5);
2714    display: none;
2715  }
2716
2717  predictive-search form {
2718    display: flex;
2719    flex-wrap: wrap;
2720    z-index: 4;
2721    position: relative;
2722    width: 100%;
2723  }
2724
2725  .search__input-wrap {
2726    position: relative;
2727    flex: 5;
2728    transition: flex 0.3s ease-in-out;
2729  }
2730
2731  .search__input {
2732    background: var(--colorNavSearch, #fff);
2733    color: var(--color-body-text);
2734    flex: 1;
2735    width: 100%;
2736    border-radius: calc(var(--roundness, 0) * 2);
2737  }
2738
2739  .btn--search {
2740    position: absolute;
2741    top: 50%;
2742    transform: translateY(-50%);
2743    right: 15px;
2744
2745    & .icon {
2746      height: 25px;
2747      width: 25px;
2748    }
2749
2750    @media (--medium-up) {
2751      right: 10px;
2752    }
2753  }
2754
2755  .btn--close-search {
2756    display: none;
2757    flex: 30px 0 0;
2758    margin-left: 10px;
2759
2760    & .icon {
2761      height: 25px;
2762      width: 25px;
2763    }
2764
2765    & .icon path {
2766      stroke: var(--colorNavText) !important;
2767    }
2768  }
2769
2770  .btn--close-search1 {
2771    display: none;
2772    flex: 30px 0 0;
2773    margin-left: 10px;
2774
2775    & .icon {
2776      height: 25px;
2777      width: 25px;
2778    }
2779
2780    & .icon path {
2781      stroke: var(--colorNavText) !important;
2782    }
2783  }
2784
2785  .search__results {
2786    background: var(--color-body);
2787    color: var(--color-body-text);
2788    position: absolute;
2789    width: 100%;
2790    top: 100%;
2791    padding: 0;
2792    display: none;
2793    margin-top: 10px;
2794    container-type: inline-size;
2795    max-height: 80vh;
2796    overflow-y: auto;
2797
2798    @media (--small) {
2799      width: calc(100% + var(--pageWidthPadding, 17px) * 2);
2800      margin-left: calc(var(--pageWidthPadding, 17px) * -1);
2801      margin-right: calc(var(--pageWidthPadding, 17px) * -1);
2802      max-height: 75vh;
2803
2804      @nest .template-search .page-content & {
2805        max-height: 50vh;
2806      }
2807    }
2808  }
2809
2810  .results {
2811    padding: 0 20px 20px;
2812    display: block;
2813    width: 100%;
2814
2815    & ul {
2816      list-style: none;
2817      padding: 0;
2818      margin: 0;
2819    }
2820
2821    & li {
2822      transition: background 0.2s ease;
2823      margin-bottom: 0;
2824
2825      &:hover {
2826        background: rgba(0, 0, 0, 0.05);
2827      }
2828
2829      & a {
2830        display: flex;
2831        align-items: center;
2832      }
2833    }
2834  }
2835
2836  .results--queries {
2837    & span {
2838      font-weight: bolder;
2839    }
2840
2841    & mark {
2842      background-color: transparent;
2843      font-weight: normal;
2844    }
2845  }
2846
2847  .results--products span {
2848    margin-left: 10px;
2849  }
2850
2851  .results-products__image {
2852    width: 100%;
2853    min-width: 80px;
2854    max-width: 80px;
2855    height: 80px;
2856  }
2857
2858  .results-products__info {
2859    display: flex;
2860    flex-direction: column;
2861    font-size: 13px !important;
2862  }
2863
2864  .predictive-search-results {
2865    display: flex;
2866    flex-wrap: wrap;
2867    flex-direction: column;
2868    overflow-y: auto;
2869    padding: 40px 0 0;
2870
2871    & h3 {
2872      padding-bottom: 10px;
2873      border-bottom: 1px solid;
2874      border-color: var(--colorBorder);
2875      margin-bottom: 10px;
2876      font-family: 'Montserrat', sans-serif !important;
2877      font-size: 14px !important;
2878      font-weight: 600 !important;
2879      letter-spacing: 1px !important;
2880    }
2881  }
2882
2883  .predictive-search-results--none {
2884    padding-top: 20px;
2885  }
2886
2887  .predictive-search__no-results {
2888    display: block;
2889    width: 100%;
2890
2891    &:hover {
2892      opacity: 0.5;
2893    }
2894  }
2895
2896  .results__group-1 {
2897    flex: 100% 0 0;
2898
2899    & >
2899 div:not(.results--queries) {
2900      display: none;
2901    }
2902  }
2903
2904  .results__group-2 {
2905    flex: 100% 0 0;
2906  }
2907
2908  .results__search-btn {
2909    width: 100%;
2910    padding: 10px;
2911    transition: background-color 0.2s ease;
2912    border: 1px solid;
2913    border-color: var(--colorBorder);
2914
2915    &:hover {
2916      background-color: rgba(0, 0, 0, 0.05);
2917    }
2918  }
2919
2920  /* Containers
2921  ============================== */
2922
2923  @container (min-width: 800px) {
2924    .predictive-search-results {
2925      flex-direction: row;
2926      flex-wrap: nowrap;
2927    }
2928
2929    .results {
2930      padding: 0 40px 20px;
2931    }
2932
2933    .results__group-1 {
2934      flex: 1 0 0;
2935
2936      & div:not(.results--queries) {
2937        display: block;
2938      }
2939    }
2940
2941    .results__group-2 {
2942      flex: 2 0 0;
2943
2944      & > div:not(.results--products) {
2945        display: none;
2946      }
2947    }
2948
2949    .results__search-btn {
2950      text-align: left;
2951      padding: 10px 0 10px 40px;
2952    }
2953  }
2954
2955  /*
2956  .workaround {
2957    border-bottom: 1px solid var(--colorBorder);
2958  }
2959  */
2960</style><predictive-search
2961  data-context="header"
2962  data-enabled="false"
2963  data-dark="false"
2964><div class="predictive__screen" data-screen aria-hidden="true"></div>
2965  <form
2966    action="/search"
2967    method="get"
2968    role="search"
2969    id="search-form"
2970  >
2971    <label for="Search" class="hidden-label">Search</label>
2972    <div class="search__input-wrap align-new-search">
2973      <input
2974        class="search__input"
2975        id="Search"
2976        type="search"
2977        name="q"
2978        value=""
2979        role="combobox"
2980        aria-expanded="false"
2981        aria-owns="predictive-search-results"
2982        aria-controls="predictive-search-results"
2983        aria-haspopup="listbox"
2984        aria-autocomplete="list"
2985        autocorrect="off"
2986        autocomplete="off"
2987        autocapitalize="off"
2988        spellcheck="false"
2989        placeholder="Search premium Japanese products"
2990        tabindex="0"
2991      >
2992      <input
2993        name="options[prefix]"
2994        type="hidden"
2995        value="last"
2996      >
2997      <button class="search-icon-new 22" type="submit">
2998        <div class="main-search-main" aria-hidden="true">
2999          <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true" focusable="false">
3000            <path d="M17.8139 17.3055L13.7149 13.2084C15.0687 11.88 15.861 10.0826 15.9283 8.18709C15.9957 6.29158 15.333 4.44251 14.0769 3.02131C12.8209 1.60011 11.0673 0.715191 9.17785 0.54909C7.28843 0.38299 5.40733 0.94838 3.92257 2.12863C2.43782 3.30888 1.46267 5.01396 1.19828 6.89215C0.933893 8.77034 1.40043 10.6784 2.50167 12.2226C3.6029 13.7669 5.25482 14.8296 7.11667 15.1916C8.97851 15.5535 10.9083 15.1871 12.5079 14.1679L16.7297 18.3897L17.8139 17.3055ZM2.68642 7.9561C2.68642 6.79964 3.02935 5.66914 3.67185 4.70758C4.31435 3.74601 5.22755 2.99656 6.29599 2.554C7.36442 2.11144 8.5401 1.99565 9.67434 2.22126C10.8086 2.44688 11.8505 3.00377 12.6682 3.82151C13.4859 4.63926 14.0428 5.68113 14.2685 6.81537C14.4941 7.94962 14.3783 9.12529 13.9357 10.1937C13.4932 11.2622 12.7437 12.1754 11.7821 12.8179C10.8206 13.4604 9.69008 13.8033 8.53361 13.8033C6.98346 13.8013 5.49739 13.1846 4.40126 12.0885C3.30514 10.9923 2.68845 9.50625 2.68642 7.9561Z" fill="white"></path>
3001          </svg>
3002        </div>
3003        <span class="icon__fallback-text">Search</span>
3004      </button>
3005    </div><button type="button" class="btn--close-search btn--close-search1" aria-label="Close">
3006      <svg
3007        aria-hidden="true"
3008        focusable="false"
3009        role="presentation"
3010        class="icon icon-close"
3011        viewBox="0 0 64 64"
3012      >
3013        <defs>
3014          <style>
3015            .cls-1 {
3016              fill: none;
3017              stroke: #fff !important;
3018              stroke-miterlimit: 10;
3019              stroke-width: 2px
3020            }
3021          </style>
3022        </defs><path class="cls-1" d="M19 17.61l27.12 27.13m0-27.13L19 44.74" />
3023      </svg>
3024    </button>
3025    <div
3026      id="predictive-search"
3027      class="search__results"
3028      tabindex="-1"
3029    ></div>
3030  </form>
3031</predictive-search>
3032<script>
3033  $(document).ready(function () {
3034    if ('https://bokksu.com'.includes('bokksu.com') || 'https://bokksu.com'.includes('snb-hashii') ) {
3035      if ('index'.includes('product') && ''.includes('Box')) {
3036        $('#search-icon-id').css('display', 'none');
3037        $('#btn-subscribe-overrides').hide();
3038        $('#subscribe_btn_mob').css('display', 'none');
3039      } else if (
3040        'index'.includes('blog') ||
3041        'index'.includes('article') ||
3042        location.href.includes('type=article')
3043      ) {
3044        $('#search-type').attr('value', 'article');
3045        $('.search-type').attr('value', 'article');
3046        $('#search-icon-id').css('display', 'block');
3047        $('#search-icon-id').css('cursor', 'pointer');
3048        $('#TopSearched').hide();
3049      } else if (
3050        location.toString().includes('subscription') ||
3051        location.toString().endsWith('/products/classic-bokksu') ||
3052        location.toString().includes('/collections') ||
3053        location.toString().includes('/products')
3054      ) {
3055        $('#search-icon-id').css('display', 'block');
3056        $('#search-icon-id').css('cursor', 'pointer');
3057        $('#btn-subscribe-overrides').hide();
3058        $('.site-header__search-form').css('display', 'block');
3059        $('#subscribe_btn_mob').css('display', 'none');
3060      } else {
3061        window.innerWidth > 961 && $('#btn-subscribe-overrides').show();
3062        $('#search-icon-id').css('display', 'none');
3063        $('#search-icon-id').css('cursor', 'unset');
3064        $('.site-header__search-form').css('display', 'none');
3065        $('#subscribe_btn_mob').css('display', 'flex');
3066      }
3067    } else {
3068      if ('index'.includes('blog') || 'index'.includes('article')) {
3069        $('#search-type').attr('value', 'article');
3070        $('#TopSearched').hide();
3071      }
3072    }
3073  });
3074</script>
3074
3075<button type="button" class="text-link site-header__search-btn site-header__search-btn--cancel">
3076                  <span class="medium-up--hide">
3077                    <svg
3078                      aria-hidden="true"
3079                      focusable="false"
3080                      role="presentation"
3081                      class="icon icon-close"
3082                      viewBox="0 0 64 64"
3083                    >
3084                      <path d="m19 17.61 27.12 27.13m0-27.13L19 44.74" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:2px"/>
3085                    </svg>
3086                  </span>
3087                  <span class="small--hide">Cancel</span>
3088                </button>
3089              </div>
3090            </div>
3091          </div>
3092        </div><div class="page-width site-header__drawers">
3093          <div class="site-header__drawers-container">
3094            <div class="site-header__drawer site-header__cart snb-header-cart " id="HeaderCart" role="dialog" aria-modal="true" aria-label="Shopping cart" inert aria-hidden="true">
3095              <div class="mob-cart-align">
3096                <div class="align-main-cart-customer">
3097                  <div class="site-header__drawer-animate"><button
3098  type="button"
3099  class="cart-drawer__close js-close-header-cart visually-hidden"
3100  aria-label="Close shopping cart"
3101>
3102  Close shopping cart
3103</button>
3104<form
3105  action="/cart"
3106  method="post"
3107  novalidate
3108  data-location="header"
3109  class="cart__drawer-form customer-cart">
3110  <div class="cart__scrollable">
3111    <div data-products>
3112 
3113      <div></div>
3114    </div>
3115        
3116
3117    <!---cart notes here -->
3118        
3119
3120      <div class="cart-upsell" data-cart-upsell><div class="cart-upsell__container" role="group" aria-label="Premium packaging options">
3121    <h3 class="cart-upsell__heading">MAKE IT SPECIAL</h3>
3122    <p class="cart-upsell__subheading">Enhance your gift with premium packaging options</p>
3123    
3124    <div class="cart-upsell__cards-wrapper">
3125      <button type="button" class="cart-upsell__nav-button cart-upsell__nav-button--prev" aria-label="Previous product" style="display: none;">
3126        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
3127          <path d="M15 18l-6-6 6-6"/>
3128        </svg>
3129      </button><!-- Grid wrapper for all products -->
3130      <div class="cart-upsell__cards has-two-products" data-carousel><div class="cart-upsell__card-wrapper" data-product-id="7675567538262" data-variant-id="43471000862806">
3131          <div class="cart-upsell__card" aria-hidden="true">
3132            <div class="cart-upsell__card-header">
3133              <div class="cart-upsell__card-image-wrapper"><img src="//bokksu.com/cdn/shop/files/ChatGPT-2511_Xmas_Wrapping_3.png?v=1778486027&amp;width=200" alt="Gift Wrap with Personalized Card" srcset="//bokksu.com/cdn/shop/files/ChatGPT-2511_Xmas_Wrapping_3.png?v=1778486027&amp;width=200 200w" width="200" height="133" loading="lazy" class="cart-upsell__card-image">
3134</div>
3135              <div class="cart-upsell__card-text-wrapper">
3136                <h4 class="cart-upsell__card-title">Gift Wrapping + Card</h4>
3137                <p class="cart-upsell__card-description">Expert Japanese-style wrapping with personalized card.</p>
3138              </div>
3139            </div>
3140            <ul class="cart-upsell__card-features">
3141              <li class="feature-ribbon">Premium ribbon.</li>
3142              <li class="feature-card">Personalized card.</li>
3143            </ul>
3144          </div>
3145          <div class="cart-upsell__form" data-upsell-form data-has-gift-popup="true"
3146            data-variant-id="43471000862806"
3147            data-product-tags="hidden product,NOAPPDISC,personalized-card">
3148            
3148<script type="application/json" data-product-json>{"id":7675567538262,"title":"Gift Wrap with Personalized Card","handle":"gift-wrap","description":"\u003cp\u003e\u003c\/p\u003e","published_at":"2025-12-26T17:31:40-05:00","created_at":"2025-10-15T04:24:09-04:00","vendor":"Bokksu","type":"Packing Material","tags":["hidden product","NOAPPDISC","personalized-card"],"price":1500,"price_min":1500,"price_max":1500,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":43471000862806,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"GIFT-WRAP-CARD","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Gift Wrap with Personalized Card","public_title":null,"options":["Default Title"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"725065727","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/bokksu.com\/cdn\/shop\/files\/ChatGPT-2511_Xmas_Wrapping_3.png?v=1778486027","\/\/bokksu.com\/cdn\/shop\/files\/ChatGPT-2511_Xmas_Wrapping_4.png?v=1778486036","\/\/bokksu.com\/cdn\/shop\/files\/ChatGPT-2511_Xmas_Wrapping_2.png?v=1778486046","\/\/bokksu.com\/cdn\/shop\/files\/ChatGPT-2511_Xmas_Wrapping.png?v=1778486042"],"featured_image":"\/\/bokksu.com\/cdn\/shop\/files\/ChatGPT-2511_Xmas_Wrapping_3.png?v=1778486027","options":["Title"],"media":[{"alt":null,"id":28810454990934,"position":1,"preview_image":{"aspect_ratio":1.508,"height":1021,"width":1540,"src":"\/\/bokksu.com\/cdn\/shop\/files\/ChatGPT-2511_Xmas_Wrapping_3.png?v=1778486027"},"aspect_ratio":1.508,"height":1021,"media_type":"image","src":"\/\/bokksu.com\/cdn\/shop\/files\/ChatGPT-2511_Xmas_Wrapping_3.png?v=1778486027","width":1540},{"alt":null,"id":28810457088086,"position":2,"preview_image":{"aspect_ratio":1.5,"height":1024,"width":1536,"src":"\/\/bokksu.com\/cdn\/shop\/files\/ChatGPT-2511_Xmas_Wrapping_4.png?v=1778486036"},"aspect_ratio":1.5,"height":1024,"media_type":"image","src":"\/\/bokksu.com\/cdn\/shop\/files\/ChatGPT-2511_Xmas_Wrapping_4.png?v=1778486036","width":1536},{"alt":null,"id":28810458464342,"position":3,"preview_image":{"aspect_ratio":1.5,"height":1024,"width":1536,"src":"\/\/bokksu.com\/cdn\/shop\/files\/ChatGPT-2511_Xmas_Wrapping_2.png?v=1778486046"},"aspect_ratio":1.5,"height":1024,"media_type":"image","src":"\/\/bokksu.com\/cdn\/shop\/files\/ChatGPT-2511_Xmas_Wrapping_2.png?v=1778486046","width":1536},{"alt":null,"id":28810457972822,"position":4,"preview_image":{"aspect_ratio":1.333,"height":1086,"width":1448,"src":"\/\/bokksu.com\/cdn\/shop\/files\/ChatGPT-2511_Xmas_Wrapping.png?v=1778486042"},"aspect_ratio":1.333,"height":1086,"media_type":"image","src":"\/\/bokksu.com\/cdn\/shop\/files\/ChatGPT-2511_Xmas_Wrapping.png?v=1778486042","width":1448}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003e\u003c\/p\u003e"}</script>
3148
3149            <button type="button" class="cart-upsell__card-button"
3150              data-variant-id="43471000862806"
3151              aria-label="Add gift wrapping and personalized card for $15.00">
3152              <span class="cart-upsell__button-icon" aria-hidden="true">+</span>
3153              <span class="cart-upsell__button-text">Add Gift Wrapping</span>
3154              <span class="cart-upsell__button-price">$15.00</span>
3155            </button>
3156          </div>
3157        </div><div class="cart-upsell__card-wrapper" data-product-id="7676028715094" data-variant-id="43472486301782">
3158          <div class="cart-upsell__card" aria-hidden="true">
3159            <div class="cart-upsell__card-header">
3160              <div class="cart-upsell__card-image-wrapper"><img src="//bokksu.com/cdn/shop/files/SNB_2511_HolidayGWP_HeroBanner_710x730_Overhead_02_d208511e-0860-48e4-9f84-9cc2dc30889f.jpg?v=1770136547&amp;width=200" alt="Japanese Washi Box" srcset="//bokksu.com/cdn/shop/files/SNB_2511_HolidayGWP_HeroBanner_710x730_Overhead_02_d208511e-0860-48e4-9f84-9cc2dc30889f.jpg?v=1770136547&amp;width=200 200w" width="200" height="206" loading="lazy" class="cart-upsell__card-image">
3161</div>
3162              <div class="cart-upsell__card-text-wrapper">
3163                <h4 class="cart-upsell__card-title">Washi Box</h4>
3164                <p class="cart-upsell__card-description">Upgrade to elegant Japanese washi box packaging.</p>
3165              </div>
3166            </div>
3167            <ul class="cart-upsell__card-features">
3168              <li class="feature-premium">Premium presentation.</li>
3169              <li class="feature-special">Special packaging.</li>
3170            </ul>
3171          </div>
3172          <div class="cart-upsell__form" data-upsell-form data-has-gift-popup="false"
3173            data-variant-id="43472486301782"
3174            data-product-tags="hidden product,hide_btq_search,washi-box">
3175            <button type="button" class="cart-upsell__card-button"
3176              data-variant-id="43472486301782"
3177              aria-label="Upgrade to Washi Box for $20.00">
3178              <span class="cart-upsell__button-icon" aria-hidden="true">+</span>
3179              <span class="cart-upsell__button-text">Upgrade to Washi Box</span>
3180              <span class="cart-upsell__button-price">$20.00</span>
3181            </button>
3182          </div>
3183        </div></div>
3184      <button type="button" class="cart-upsell__nav-button cart-upsell__nav-button--next" aria-label="Next product" style="display: none;">
3185        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
3186          <path d="M9 18l6-6-6-6"/>
3187        </svg>
3188      </button>
3189    </div>
3190    
3191    <p class="cart-upsell__disclaimer">Gift wrapping paper design may vary.</p>
3192  </div></div>
3193
3194<script>
3195  document.addEventListener('DOMContentLoaded', function() {
3196    const cartItems = [];
3197    
3198    let hasUpsellProduct1 = false;
3199    let hasUpsellProduct2 = false;
3200    const upsellProductIds = [];
3201    
3202    
3203      upsellProductIds.push(7675567538262);
3204    
3205    
3206      upsellProductIds.push(7676028715094);
3207    
3208    
3209    for (let item of cartItems) {
3210      if (upsellProductIds.includes(item.product_id)) {
3211        
3212        if (item.product_id === 7675567538262) {
3213          hasUpsellProduct1 = true;
3214        }
3215        
3216        
3217        if (item.product_id === 7676028715094) {
3218          hasUpsellProduct2 = true;
3219        }
3220        
3221      }
3222    }
3223    
3224    if (!hasUpsellProduct1 && (null || null || null || null)) {
3225      fetch('/cart/update.js', {
3226        method: 'POST',
3227        headers: { 'Content-Type': 'application/json' },
3228        body: JSON.stringify({
3229          attributes: {
3230            'recepient': '',
3231            'sender': '',
3232            'gift_note': '',
3233            'gift_option': ''
3234          }
3235        })
3236      }).catch(function(err) {
3237        console.error('Failed to clear cart attributes:', err);
3238      });
3239    }
3240  });
3241</script>
3241
3242
3243<div id="gift-card-popup" class="gift-card-popup" style="display: none;">
3244  <div class="gift-card-popup__overlay"></div>
3245  <div class="gift-card-popup__content">
3246    <div class="gift-card-popup__header">
3247      <h3>Personalize Your Gift!</h3>
3248      <button type="button" class="gift-card-popup__close" aria-label="Close">&times;</button>
3249    </div>
3250    <div class="gift-card-popup__body">
3251      <p class="gift-card-popup__subtitle">Choose how you'd like to personalize your gift card</p>
3252
3253      <div class="gift-card-popup__options">
3254        <label class="gift-option-label">
3255          <input type="radio" name="gift_option" value="blank" class="gift-option-radio" checked>
3256          <div class="gift-option-content">
3257            <strong>Leave card blank</strong>
3258            <p>No message will be included</p>
3259          </div>
3260        </label>
3261
3262        <label class="gift-option-label">
3263          <input type="radio" name="gift_option" value="standard" class="gift-option-radio">
3264          <div class="gift-option-content">
3265            <strong>Include our standard message</strong>
3266            <p class="standard-message-preview">Enjoy this selection of Japanese snacks & products, a little treat from Japan to make your day special. Have a great day!</p>
3267          </div>
3268        </label>
3269
3270        <label class="gift-option-label">
3271          <input type="radio" name="gift_option" value="custom" class="gift-option-radio">
3272          <div class="gift-option-content">
3273            <strong>Write a custom message</strong>
3274            <p>Add your personal touch with a custom message</p>
3275          </div>
3276        </label>
3277      </div>
3278
3279      <div id="custom-message-fields" class="custom-message-fields" style="display: none;">
3280        <div class="gift-card-popup__field">
3281          <label for="gift-card-to">To (Recipient Name) <span class="required">*</span></label>
3282          <input type="text" id="gift-card-to" name="gift-card-to" placeholder="Recipient's name" maxlength="100">
3283        </div>
3284        <div class="gift-card-popup__field">
3285          <label for="gift-card-message">Gift Message <span class="required">*</span></label>
3286          <textarea id="gift-card-message" name="gift-card-message" placeholder="Write your heartfelt message here..."
3287            rows="4" maxlength="200"></textarea>
3288          <div class="gift-card-popup__char-counter" id="gift-card-char-counter">0/200</div>
3289        </div>
3290        <div class="gift-card-popup__field">
3291          <label for="gift-card-from">From (Sender Name) <span class="required">*</span></label>
3292          <input type="text" id="gift-card-from" name="gift-card-from" placeholder="Your name" maxlength="100">
3293        </div>
3294      </div>
3295
3296      <div id="gift-card-preview" class="gift-card-preview" style="display: none;">
3297        <div class="gift-card-preview__card">
3298          <div class="gift-card-preview__content">
3299            <div class="gift-card-preview__to">
3300              <span class="gift-card-preview__value">To</span>
3301              <span class="gift-card-preview__value" id="previewRecipient">Recipient's name</span>
3302            </div>
3303            <div class="gift-card-preview__message" id="previewMessage">
3304              Your gift message will appear here...
3305            </div>
3306            <div class="gift-card-preview__from">
3307              <span class="gift-card-preview__value">From</span>
3308              <span class="gift-card-preview__value" id="previewSender">Your name</span>
3309            </div>
3310          </div>
3311        </div>
3312      </div>
3313    </div>
3314    <div class="gift-card-popup__footer">
3315      <button type="button" class="btn gift-card-popup__cancel">Cancel</button>
3316      <button type="button" class="btn gift-card-popup__save">Save</button>
3317    </div>
3318  </div>
3319</div>
3320
3321<style>
3322  .gift-card-popup__field input::placeholder {
3323    color: #101010 !important;
3324}
3325.gift-card-popup__footer {
3326  display: flex;
3327    gap: 10px;
3328    padding-bottom: 20px;
3329    justify-content: space-between;
3330    max-width: calc(100% - 53px);
3331    margin: auto;
3332}
3333  .cart-upsell {
3334    margin: 12px 0;
3335    background: #fff;
3336    border-radius: 16px;
3337    padding: 0;
3338    position: relative;
3339    max-width: initial !important;
3340    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
3341  }
3342
3343  .cart-upsell__container {
3344    padding: 16px;
3345  }
3346
3347  .cart-upsell__heading {
3348    margin: 0 0 6px;
3349    font-size: 1rem;
3350    color: #101010;
3351    text-align: left;
3352    letter-spacing: 0.5px;
3353    text-transform: uppercase;
3354    font-weight: 600;
3355  }
3356
3357  .cart-upsell__subheading {
3358    margin: 0 0 16px;
3359    font-size: 0.85rem;
3360    color: #606060;
3361    text-align: left;
3362    line-height: 1.5;
3363  }
3364
3365  .cart-upsell__cards-wrapper {
3366    position: relative;
3367    margin-bottom: 12px;
3368    width: 100%;
3369    overflow: visible;
3370  }
3371
3372
3373  .cart-upsell__cards {
3374    display: flex;
3375    overflow-x: auto;
3376    overflow-y: hidden;
3377    scroll-snap-type: x mandatory;
3378    gap: 12px;
3379    scrollbar-width: none; /* Firefox */
3380    -ms-overflow-style: none; /* IE and Edge */
3381    -webkit-overflow-scrolling: touch; /* iOS */
3382    scroll-behavior: smooth;
3383    touch-action: pan-x;
3384    width: 100%;
3385  }
3386
3387  .cart-upsell__cards::-webkit-scrollbar {
3388    display: none; /* Chrome, Safari, Opera */
3389  }
3390
3391  /* Desktop: Side by side for 2 products without scrolling */
3392  @media (min-width: 769px) {
3393    .cart-upsell__cards.has-two-products {
3394      display: flex;
3395      flex-direction: row;
3396      overflow-x: visible;
3397      overflow-y: visible;
3398      scroll-snap-type: none;
3399      gap: 12px;
3400    }
3401  }
3402
3403  .cart-upsell__card-wrapper {
3404    flex: 0 0 100%;
3405    scroll-snap-align: start;
3406    min-width: 0;
3407    box-sizing: border-box;
3408    display: flex;
3409    flex-direction: column;
3410    gap: 12px;
3411  }
3412
3413  /* Desktop: Each card takes 50% width to fit both in viewport */
3414  @media (min-width: 769px) {
3415    .cart-upsell__cards.has-two-products .cart-upsell__card-wrapper {
3416      flex: 1;
3417      min-width: 0;
3418      max-width: calc(50% - 6px);
3419    }
3420  }
3421
3422  .cart-upsell__card {
3423    background: #F5F5F5;
3424    border-radius: 12px;
3425    padding: 10px;
3426    display: flex;
3427    flex-direction: column;
3428    gap: 10px;
3429  }
3430
3431  .cart-upsell__card-header {
3432    display: flex;
3433    gap: 10px;
3434    align-items: flex-start;
3435  }
3436
3437  .cart-upsell__card-image-wrapper {
3438    width: 60px;
3439    height: 60px;
3440    border-radius: 8px;
3441    overflow: hidden;
3442    background: transparent;
3443    display: flex;
3444    align-items: center;
3445    justify-content: center;
3446    flex-shrink: 0;
3447  }
3448
3449  .cart-upsell__card-text-wrapper {
3450    display: flex;
3451    flex-direction: column;
3452    flex: 1;
3453    min-width: 0;
3454  }
3455
3456  .cart-upsell__form {
3457    width: 100%;
3458  }
3459
3460  .cart-upsell__card-image {
3461    width: 100%;
3462    height: 100%;
3463    object-fit: cover;
3464    border-radius: 8px;
3465    display: block;
3466    margin: 0;
3467    max-width: none;
3468  }
3469
3470  .cart-upsell__card-title {
3471    margin: 0 0 4px;
3472    font-size: 0.9rem;
3473    color: #101010;
3474    font-weight: 600;
3475    text-align: left;
3476    line-height: 1.3;
3477    letter-spacing: 1px !important;
3478  }
3479
3480  .cart-upsell__card-description {
3481    margin: 0;
3482    font-size: 0.75rem;
3483    color: #606060;
3484    line-height: 1.4;
3485    text-align: left;
3486  }
3487
3488  .cart-upsell__card-features {
3489    list-style: none;
3490    padding: 0;
3491    margin: 0;
3492    display: flex;
3493    flex-direction: column;
3494    width: 100%;
3495  }
3496
3497  .cart-upsell__card-features li {
3498    font-size: 0.75rem;
3499    color: #606060;
3500    line-height: 1.3;
3501    position: relative;
3502    padding-left: 24px;
3503    margin-bottom: 4px;
3504    display: flex;
3505    align-items: center;
3506  }
3507
3508  .cart-upsell__card-features li:last-child {
3509    margin-bottom: 0;
3510  }
3511
3512  .cart-upsell__card-features li::before {
3513    content: '';
3514    position: absolute;
3515    left: 0;
3516    width: 18px;
3517    height: 18px;
3518    background-size: contain;
3519    background-repeat: no-repeat;
3520    background-position: center;
3521  }
3522
3523  /* Individual icon styles */
3524  .cart-upsell__card-features .feature-wrapping::before {
3525    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z"></path><path d="m3.3 7 8.7 5 8.7-5"></path><path d="M12 22V12"></path></svg>');
3526  }
3527
3528  .cart-upsell__card-features .feature-ribbon::before {
3529    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17.75 9.01c-.52 2.08-1.83 3.64-3.18 5.49l-2.6 3.54-2.97 4-3.5-2.54 3.85-4.97c-1.86-2.61-2.8-3.77-3.16-5.44"></path><path d="M17.75 9.01A7 7 0 0 0 6.2 9.1C6.06 8.5 6 7.82 6 7c0-3.5 2.83-5 5.98-5C15.24 2 18 3.5 18 7c0 .73-.09 1.4-.25 2.01Z"></path><path d="m9.35 14.53 2.64-3.31"></path><path d="m11.97 18.04 2.99 4 3.54-2.54-3.93-5"></path><path d="M14 8c0 1-1 2-2.01 3.22C11 10 10 9 10 8a2 2 0 1 1 4 0"></path></svg>');
3530  }
3531
3532  .cart-upsell__card-features .feature-card::before {
3533    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"></path></svg>');
3534  }
3535
3536  .cart-upsell__card-features .feature-box::before {
3537    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z"></path><path d="m3.3 7 8.7 5 8.7-5"></path><path d="M12 22V12"></path></svg>');
3538  }
3539
3540  .cart-upsell__card-features .feature-premium::before {
3541    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2L2 7l10 5 10-5-10-5z"></path><path d="M2 17l10 5 10-5"></path><path d="M2 12l10 5 10-5"></path></svg>');
3542  }
3543
3544  .cart-upsell__card-features .feature-special::before {
3545    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon></svg>');
3546  }
3547
3548  .cart-upsell__card-button {
3549    width: 100%;
3550    background: transparent;
3551    border: 1px solid var(--cta_outline_primary_static);
3552    border-radius: 8px;
3553    padding: 10px 12px;
3554    font-size: 11px;
3555    font-weight: 600;
3556    color: var(--cta_outline_primary_static);
3557    cursor: pointer;
3558    transition: all 0.2s ease;
3559    display: flex;
3560    align-items: center;
3561    justify-content: space-between;
3562    font-family: var(--button_font_family, inherit);
3563    margin-top: auto;
3564    min-height: 44px;
3565    gap: initial;
3566    box-sizing: border-box;
3567  }
3568
3569  .cart-upsell__card-button:hover {
3570    background: var(--cta_outline_primary_static);
3571    color: #fff;
3572  }
3573
3574  .cart-upsell__card-button:focus {
3575    outline: 2px solid var(--cta_outline_primary_static);
3576    outline-offset: 2px;
3577  }
3578
3579  .cart-upsell__card-button .cart-upsell__button-icon {
3580    font-size: 0.9rem;
3581    font-weight: 400;
3582    margin-right: 4px;
3583  }
3584
3585  .cart-upsell__button-text {
3586    flex: 1;
3587    text-align: left;
3588  }
3589
3590  .cart-upsell__button-price {
3591    font-weight: 600;
3592  }
3593
3594  .cart-upsell__nav-button {
3595    position: absolute;
3596    top: 50%;
3597    transform: translateY(-50%);
3598    background: #fff;
3599    border: 1px solid #e1e1e1;
3600    border-radius: 50%;
3601    width: 40px;
3602    height: 40px;
3603    display: flex;
3604    align-items: center;
3605    justify-content: center;
3606    cursor: pointer;
3607    z-index: 2;
3608    transition: all 0.2s ease;
3609    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
3610    color: #101010;
3611  }
3612
3613  .cart-upsell__nav-button:hover:not(:disabled) {
3614    background: #f5f5f5;
3615    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
3616    transform: translateY(-50%) scale(1.05);
3617  }
3618
3619  .cart-upsell__nav-button:focus {
3620    outline: 2px solid var(--cta_outline_primary_static);
3621    outline-offset: 2px;
3622  }
3623
3624  .cart-upsell__nav-button:disabled {
3625    opacity: 0.3;
3626    cursor: not-allowed;
3627  }
3628
3629  .cart-upsell__nav-button--prev {
3630    left: 5px;
3631  }
3632
3633  .cart-upsell__nav-button--next {
3634    right: 5px;
3635  }
3636
3637  .cart-upsell__disclaimer {
3638    margin: 12px 0 0;
3639    font-size: 0.7rem;
3640    color: #606060;
3641    text-align: center;
3642    font-style: normal;
3643  }
3644
3645  .gift-card-popup {
3646    position: fixed;
3647    top: 0;
3648    left: 0;
3649    width: 100%;
3650    height: 100%;
3651    z-index: 999999;
3652    display: flex;
3653    align-items: center;
3654    justify-content: center;
3655    padding: 20px;
3656    box-sizing: border-box;
3657  }
3658
3659  .gift-card-popup__overlay {
3660    position: absolute;
3661    top: 0;
3662    left: 0;
3663    width: 100%;
3664    height: 100%;
3665    background: rgba(0, 0, 0, 0.5);
3666    backdrop-filter: blur(2px);
3667  }
3668
3669  .gift-card-popup__content {
3670    position: relative;
3671    background: #fff;
3672    border-radius: 12px;
3673    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
3674    max-width: 500px;
3675    width: 100%;
3676    max-height: 85vh;
3677    max-height: calc(100dvh - 40px);
3678    overflow-y: auto;
3679    animation: popup-slide-in 0.3s ease-out;
3680  }
3681
3682  @keyframes popup-slide-in {
3683    from {
3684      opacity: 0;
3685      transform: scale(0.9) translateY(-20px);
3686    }
3687
3688    to {
3689      opacity: 1;
3690      transform: scale(1) translateY(0);
3691    }
3692  }
3693
3694  .gift-card-popup__header {
3695    display: flex;
3696    justify-content: space-between;
3697    align-items: center;
3698    padding: 20px 24px;
3699    border-bottom: 1px solid #eee;
3700  }
3701
3702  .gift-card-popup__header h3 {
3703    margin: 0;
3704    font-size: 18px !important;
3705    font-weight: 600;
3706    color: #333;
3707  }
3708
3709  .gift-card-popup__close {
3710    background: none;
3711    border: none;
3712    font-size: 24px;
3713    color: #999;
3714    cursor: pointer;
3715    padding: 0;
3716    width: 30px;
3717    height: 30px;
3718    display: flex;
3719    align-items: center;
3720    justify-content: center;
3721    border-radius: 50%;
3722    transition: all 0.2s ease;
3723  }
3724
3725  .gift-card-popup__close:hover {
3726    background: #f5f5f5;
3727    color: #333;
3728  }
3729
3730  .gift-card-popup__body {
3731    padding: 24px;
3732  }
3733
3734  .gift-card-popup__subtitle {
3735    font-size: 14px;
3736    color: #6b7280;
3737    margin: 0 0 20px 0;
3738    line-height: 1.5;
3739  }
3740
3741  .gift-card-popup__options {
3742    margin-bottom: 20px;
3743    display: flex;
3744    flex-direction: column;
3745    gap: 12px;
3746  }
3747
3748  .gift-option-label {
3749    display: flex;
3750    align-items: flex-start;
3751    padding: 16px;
3752    border: 2px solid #e5e7eb;
3753    border-radius: 8px;
3754    cursor: pointer;
3755    transition: all 0.2s;
3756    background: #ffffff;
3757  }
3758
3759  .gift-option-label:hover {
3760    border-color: #d1d5db;
3761    background: #f9fafb;
3762  }
3763
3764  .gift-option-label:has(.gift-option-radio:checked) {
3765    border-color: var(--cta_outline_primary_static, #243846);
3766    background: rgba(36, 56, 70, 0.05);
3767  }
3768
3769  .gift-option-radio {
3770    margin-top: 2px;
3771    margin-right: 12px;
3772    flex-shrink: 0;
3773    width: 18px;
3774    height: 18px;
3775    cursor: pointer;
3776    accent-color: var(--cta_outline_primary_static, #243846);
3777  }
3778
3779  .gift-option-content {
3780    flex: 1;
3781  }
3782
3783  .gift-option-content strong {
3784    display: block;
3785    font-size: 15px;
3786    color: #1f2937;
3787    margin-bottom: 4px;
3788    font-weight: 600;
3789  }
3790
3791  .gift-option-content p {
3792    font-size: 13px;
3793    color: #6b7280;
3794    margin: 0;
3795    line-height: 1.5;
3796  }
3797
3798  .standard-message-preview {
3799    font-style: italic;
3800    padding: 8px 12px;
3801    background: #f3f4f6;
3802    border-radius: 6px;
3803    margin-top: 8px !important;
3804  }
3805
3806  .custom-message-fields {
3807    padding-top: 16px;
3808    border-top: 1px solid #e5e7eb;
3809    margin-top: 8px;
3810    display: none;
3811  }
3812
3813  .gift-card-popup__field {
3814    margin-bottom: 20px;
3815  }
3816
3817  .gift-card-popup__field:last-child {
3818    margin-bottom: 0;
3819  }
3820
3821  .gift-card-popup__field label {
3822    display: block;
3823    margin-bottom: 6px;
3824    font-weight: 500;
3825    color: #333;
3826    font-size: 0.95rem;
3827  }
3828
3829  .gift-card-popup__field label .required {
3830    color: #ef4444;
3831  }
3832
3833  .gift-card-popup__field input,
3834  .gift-card-popup__field textarea {
3835    width: 100%;
3836    padding: 12px 16px;
3837    border: 2px solid #e1e1e1;
3838    border-radius: 8px;
3839    font-size: 0.95rem;
3840    transition: border-color 0.2s ease;
3841    font-family: inherit;
3842    box-sizing: border-box;
3843  }
3844
3845  .gift-card-popup__char-counter {
3846    font-size: 0.8rem;
3847    color: #666;
3848    text-align: right;
3849    margin-top: 4px;
3850    transition: color 0.2s ease;
3851  }
3852
3853  .gift-card-popup__char-counter.warning {
3854    color: #ff8c00;
3855  }
3856
3857  .gift-card-popup__char-counter.error {
3858    color: #dc3545;
3859  }
3860
3861  .gift-card-popup__field input:focus,
3862  .gift-card-popup__field textarea:focus {
3863    outline: none;
3864    border-color: #101010;
3865  }
3866
3867  .gift-card-preview {
3868    margin-top: 24px;
3869    padding-top: 24px;
3870    border-top: 1px solid #e5e7eb;
3871    display: none;
3872    justify-content: center;
3873    width: 100%;
3874  }
3875
3876  .gift-card-preview__card {
3877    background: linear-gradient(135deg, #fefefe 0%, #f9fafb 100%);
3878    border: none;
3879    border-radius: 12px;
3880    padding: 32px 28px;
3881    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
3882    position: relative;
3883    font-family: 'Georgia', 'Times New Roman', serif;
3884    width: 100%;
3885    text-align: center;
3886  }
3887
3888  .gift-card-preview__content {
3889    position: relative;
3890    z-index: 1;
3891    display: flex;
3892    flex-direction: column;
3893    align-items: center;
3894  }
3895
3896  .gift-card-preview__to,
3897  .gift-card-preview__from {
3898    display: flex;
3899    align-items: center;
3900    gap: 8px;
3901    font-size: 16px;
3902  }
3903
3904  .gift-card-preview__value {
3905    color: #2d5016;
3906    font-weight: 500;
3907    font-style: italic;
3908  }
3909
3910  .gift-card-preview__value:empty::before {
3911    content: '...';
3912    color: #2d5016;
3913    font-style: normal;
3914    opacity: 0.6;
3915  }
3916
3917  .gift-card-preview__message {
3918    color: #2d5016;
3919    font-size: 15px;
3920    line-height: 1.8;
3921    white-space: pre-wrap;
3922    word-wrap: break-word;
3923    font-style: italic;
3924    margin: 8px 0;
3925  }
3926
3927  .gift-card-preview__message:empty::before {
3928    content: 'Your gift message will appear here...';
3929    color: #2d5016;
3930    font-style: normal;
3931    font-size: 14px;
3932    opacity: 0.6;
3933  }
3934
3935  .gift-card-preview__from {
3936    margin-top: auto;
3937    text-align: center;
3938    justify-content: center;
3939  }
3940
3941  .gift-card-popup__cancel {
3942    background: transparent;
3943    color: #495057;
3944    border: 1px solid #e1e1e1;
3945    padding: 10px 20px;
3946    font-size: 0.9rem;
3947    cursor: pointer;
3948    transition: all 0.2s ease;
3949    border-radius: 8px;
3950  }
3951
3952  .gift-card-popup__cancel:hover {
3953    background: #e9ecef;
3954    color: #495057;
3955  }
3956
3957  .gift-card-popup__save {
3958    background: var(--brand_color_1, #007bff);
3959    color: #fff;
3960    border: none;
3961    padding: 10px 20px;
3962    font-size: 0.9rem;
3963    cursor: pointer;
3964    transition: all 0.2s ease;
3965    border-radius: 8px;
3966  }
3967
3968  .gift-card-popup__save:hover {
3969    filter: brightness(0.95);
3970  }
3971
3972  .gift-card-popup__save:disabled {
3973    opacity: 0.6;
3974    cursor: not-allowed;
3975  }
3976
3977
3978  @media (min-width: 481px) and (max-width: 768px) {
3979    .cart-upsell__cards:not(.has-two-products) {
3980      flex-direction: column;
3981      overflow-x: visible;
3982      overflow-y: visible;
3983      scroll-snap-type: none;
3984      touch-action: auto;
3985    }
3986
3987    .cart-upsell__cards:not(.has-two-products) .cart-upsell__card {
3988      flex: 1 1 auto;
3989      width: 100%;
3990      scroll-snap-align: none;
3991    }
3992  }
3993
3994
3995  @media (max-width: 768px) {
3996    .cart-upsell__container {
3997      padding: 12px;
3998    }
3999
4000    .cart-upsell__heading {
4001      font-size: 0.95rem;
4002      margin-bottom: 6px;
4003    }
4004
4005    .cart-upsell__subheading {
4006      font-size: 0.75rem;
4007      margin-bottom: 12px;
4008    }
4009
4010    .cart-upsell__cards-wrapper {
4011      margin-bottom: 10px;
4012      overflow: visible;
4013    }
4014
4015    /* Two products on mobile - horizontal scroll */
4016    .cart-upsell__cards.has-two-products {
4017      display: flex;
4018      flex-direction: row;
4019      overflow-x: auto;
4020      overflow-y: hidden;
4021      scroll-snap-type: x mandatory;
4022      gap: 12px;
4023      scrollbar-width: none;
4024      -ms-overflow-style: none;
4025      -webkit-overflow-scrolling: touch;
4026      scroll-behavior: smooth;
4027      padding-bottom: 5px;
4028    }
4029
4030    .cart-upsell__cards.has-two-products::-webkit-scrollbar {
4031      display: none;
4032    }
4033
4034    .cart-upsell__cards.has-two-products .cart-upsell__card-wrapper {
4035      flex: 0 0 85%;
4036      scroll-snap-align: start;
4037      min-width: 0;
4038    }
4039
4040    /* Single product on mobile - vertical stack */
4041    .cart-upsell__cards:not(.has-two-products) {
4042      flex-direction: column;
4043      overflow-x: visible;
4044      overflow-y: visible;
4045      scroll-snap-type: none;
4046      gap: 10px;
4047      touch-action: auto;
4048    }
4049
4050    .cart-upsell__card {
4051      padding: 10px;
4052      flex: 1 1 auto;
4053      width: 100%;
4054      max-width: 100%;
4055      scroll-snap-align: none;
4056    }
4057
4058    .cart-upsell__card-header {
4059      gap: 8px;
4060    }
4061
4062    .cart-upsell__card-image-wrapper {
4063      width: 50px;
4064      height: 50px;
4065      flex-shrink: 0;
4066      background: transparent;
4067    }
4068
4069    .cart-upsell__card-image {
4070      width: 100%;
4071      height: 100%;
4072      object-fit: cover;
4073    }
4074
4075    .cart-upsell__card-title {
4076      font-size: 0.85rem;
4077      margin-bottom: 4px;
4078    }
4079
4080    .cart-upsell__card-description {
4081      font-size: 0.7rem;
4082      margin-bottom: 0;
4083    }
4084
4085    .cart-upsell__card-features {
4086      margin-bottom: 0;
4087    }
4088
4089    .cart-upsell__card-features li {
4090      font-size: 0.7rem;
4091      padding-left: 20px;
4092      margin-bottom: 5px;
4093    }
4094
4095    .cart-upsell__card-button {
4096      padding: 8px 12px;
4097      font-size: 0.75rem;
4098      min-height: 40px;
4099    }
4100
4101    .cart-upsell__nav-button {
4102      display: none;
4103      width: 36px;
4104      height: 36px;
4105    }
4106
4107    .cart-upsell__nav-button--prev {
4108      left: 5px;
4109    }
4110
4111    .cart-upsell__nav-button--next {
4112      right: 5px;
4113    }
4114
4115    .cart-upsell__disclaimer {
4116      font-size: 0.65rem;
4117      margin-top: 10px;
4118    }
4119  }
4120
4121  @media (min-width: 769px) {
4122    /* Desktop - both products side by side without scrolling */
4123    .cart-upsell__cards.has-two-products {
4124      display: flex;
4125      flex-direction: row;
4126      overflow-x: visible;
4127      overflow-y: visible;
4128      scroll-snap-type: none;
4129      gap: 12px;
4130      width: 100%;
4131    }
4132
4133    .cart-upsell__cards.has-two-products .cart-upsell__card-wrapper {
4134      flex: 1;
4135      min-width: 0;
4136      max-width: calc(50% - 6px);
4137    }
4138
4139    /* Single product on desktop - prevent scroll, clean layout */
4140    .cart-upsell__cards:not(.has-two-products) {
4141      display: flex;
4142      flex-direction: column;
4143      overflow-x: visible;
4144      overflow-y: visible;
4145      scroll-snap-type: none;
4146      gap: 12px;
4147      width: 100%;
4148    }
4149
4150    .cart-upsell__cards:not(.has-two-products) .cart-upsell__card-wrapper {
4151      width: 100%;
4152      max-width: 100%;
4153    }
4154
4155    /* Hide navigation buttons on desktop when no scrolling */
4156    .cart-upsell__nav-button {
4157      display: none;
4158    }
4159  }
4160
4161  @media (max-width: 768px) {
4162    .gift-card-popup__content {
4163      width: 95%;
4164    }
4165
4166    .gift-card-popup__header,
4167    .gift-card-popup__body,
4168    .gift-card-popup__footer {
4169      padding: 16px 20px;
4170    }
4171
4172    .gift-card-popup__footer {
4173      flex-direction: column-reverse;
4174    }
4175
4176    .gift-card-popup__cancel,
4177    .gift-card-popup__save {
4178      width: 100%;
4179      padding: 12px;
4180    }
4181
4182    .gift-card-preview__card {
4183      padding: 24px 20px;
4184    }
4185
4186    .gift-card-preview__message {
4187      font-size: 14px;
4188      line-height: 1.6;
4189      min-height: 60px;
4190    }
4191
4192    .gift-card-preview__to,
4193    .gift-card-preview__from {
4194      font-size: 14px;
4195    }
4196  }
4197</style>
4198
4199<script>
4200  (function() {
4201    'use strict';
4202
4203    // Configuration
4204    const CONFIG = {
4205      DEBOUNCE_DELAY: 150,
4206      INITIAL_CHECK_DELAY: 300,
4207      CART_UPDATE_DELAY: 400,
4208      MUTATION_DEBOUNCE: 300,
4209      VISIBILITY_CHECK_INTERVAL: 5000, // Reduced from 2000ms
4210      MAX_RETRY_ATTEMPTS: 3,
4211      RETRY_DELAY: 1000,
4212      CAROUSEL_SCROLL_DEBOUNCE: 100
4213    };
4214
4215    // Carousel state
4216    const carouselState = {
4217      carousel: null,
4218      prevButton: null,
4219      nextButton: null,
4220      isInitialized: false,
4221      updateButtons: null
4222    };
4223
4224    // Initialize carousel
4225    function initCarousel() {
4226      const carousel = document.querySelector('[data-carousel]');
4227      if (!carousel) return;
4228
4229      const isMobile = window.innerWidth <= 768;
4230      
4231      // On mobile, hide navigation buttons (touch scrolling is used)
4232      if (isMobile) {
4233        const prevButton = carousel.closest('.cart-upsell__cards-wrapper')?.querySelector('.cart-upsell__nav-button--prev');
4234        const nextButton = carousel.closest('.cart-upsell__cards-wrapper')?.querySelector('.cart-upsell__nav-button--next');
4235        if (prevButton) prevButton.style.display = 'none';
4236        if (nextButton) nextButton.style.display = 'none';
4237        // Still initialize for mobile to handle scroll events, but don't show buttons
4238      }
4239
4240      // Re-initialize if already initialized (for dynamic content)
4241      if (carouselState.isInitialized && carouselState.carousel === carousel) {
4242        if (carouselState.updateButtons) {
4243          setTimeout(() => carouselState.updateButtons(), 100);
4244        }
4245        return;
4246      }
4247
4248      carouselState.carousel = carousel;
4249      carouselState.prevButton = carousel.closest('.cart-upsell__cards-wrapper')?.querySelector('.cart-upsell__nav-button--prev');
4250      carouselState.nextButton = carousel.closest('.cart-upsell__cards-wrapper')?.querySelector('.cart-upsell__nav-button--next');
4251
4252      // Update button states
4253      function updateCarouselButtons() {
4254        if (!carouselState.carousel) return;
4255        
4256        const { scrollLeft, scrollWidth, clientWidth } = carouselState.carousel;
4257        const isAtStart = scrollLeft <= 10;
4258        const isAtEnd = scrollLeft >= scrollWidth - clientWidth - 10;
4259        const needsScrolling = scrollWidth > clientWidth;
4260        const isMobile = window.innerWidth <= 768;
4261
4262        // On mobile, hide buttons (touch scrolling is used)
4263        // On desktop, show buttons when scrolling is needed (disable when at start/end)
4264        if (carouselState.prevButton) {
4265          if (isMobile) {
4266            carouselState.prevButton.style.display = 'none';
4267          } else {
4268            carouselState.prevButton.disabled = isAtStart || !needsScrolling;
4269            carouselState.prevButton.style.display = (needsScrolling && !isAtStart) ? 'flex' : 'none';
4270          }
4271        }
4272        if (carouselState.nextButton) {
4273          if (isMobile) {
4274            carouselState.nextButton.style.display = 'none';
4275          } else {
4276            carouselState.nextButton.disabled = isAtEnd || !needsScrolling;
4277            carouselState.nextButton.style.display = (needsScrolling && !isAtEnd) ? 'flex' : 'none';
4278          }
4279        }
4280      }
4281
4282      // Store function reference for external access
4283      carouselState.updateButtons = updateCarouselButtons;
4284
4285      // Initialize button state
4286      updateCarouselButtons();
4287
4288      // Navigation handlers
4289      function scrollCarousel(direction) {
4290        if (!carouselState.carousel) return;
4291        
4292        const cardWidth = carouselState.carousel.querySelector('.cart-upsell__card')?.offsetWidth || 0;
4293        const gap = 12;
4294        const scrollAmount = cardWidth + gap;
4295        
4296        const currentScroll = carouselState.carousel.scrollLeft;
4297        const targetScroll = direction === 'next' 
4298          ? currentScroll + scrollAmount 
4299          : currentScroll - scrollAmount;
4300
4301        carouselState.carousel.scrollTo({
4302          left: targetScroll,
4303          behavior: 'smooth'
4304        });
4305      }
4306
4307      // Event listeners for navigation buttons
4308      if (carouselState.prevButton) {
4309        carouselState.prevButton.addEventListener('click', () => scrollCarousel('prev'));
4310      }
4311      if (carouselState.nextButton) {
4312        carouselState.nextButton.addEventListener('click', () => scrollCarousel('next'));
4313      }
4314
4315      // Update buttons on scroll (for touch scrolling)
4316      const debouncedUpdate = debounce(updateCarouselButtons, CONFIG.CAROUSEL_SCROLL_DEBOUNCE);
4317      carouselState.carousel.addEventListener('scroll', debouncedUpdate, { passive: true });
4318
4319      // Update on resize
4320      let resizeTimeout;
4321      window.addEventListener('resize', () => {
4322        clearTimeout(resizeTimeout);
4323        resizeTimeout = setTimeout(() => {
4324          const isMobile = window.innerWidth <= 768;
4325          if (isMobile) {
4326            // Hide buttons on mobile
4327            if (carouselState.prevButton) carouselState.prevButton.style.display = 'none';
4328            if (carouselState.nextButton) carouselState.nextButton.style.display = 'none';
4329          } else {
4330            // Re-initialize carousel on desktop and update button visibility
4331            if (carouselState.updateButtons) {
4332              updateCarouselButtons();
4333            }
4334          }
4335        }, 250);
4336      }, { passive: true });
4337
4338      // Keyboard navigation
4339      carouselState.carousel.addEventListener('keydown', (e) => {
4340        if (e.key === 'ArrowLeft' && carouselState.prevButton && !carouselState.prevButton.disabled) {
4341          e.preventDefault();
4342          scrollCarousel('prev');
4343        } else if (e.key === 'ArrowRight' && carouselState.nextButton && !carouselState.nextButton.disabled) {
4344          e.preventDefault();
4345          scrollCarousel('next');
4346        }
4347      });
4348
4349      carouselState.isInitialized = true;
4350    }
4351
4352    // State management
4353    const state = {
4354      currentGiftCardData: null,
4355      lastCartState: null,
4356      checkTimeout: null,
4357      mutationTimeout: null,
4358      isFetching: false,
4359      isInitialized: false,
4360      retryCount: 0,
4361      visibilityCheckInterval: null,
4362      cartCache: null,
4363      cacheTimestamp: 0,
4364      CACHE_DURATION: 500 // Cache cart data for 500ms
4365    };
4366
4367    // Product IDs from Liquid
4368    const UPSELL_PRODUCT_ID_1 = 7675567538262;
4369    const UPSELL_PRODUCT_ID_2 = 7676028715094;
4370
4371    // Utility: Debounced function executor
4372    function debounce(func, wait) {
4373      let timeout;
4374      return function executedFunction(...args) {
4375        const later = () => {
4376          clearTimeout(timeout);
4377          func(...args);
4378        };
4379        clearTimeout(timeout);
4380        timeout = setTimeout(later, wait);
4381      };
4382    }
4383
4384    // Utility: Safe element query
4385    function safeQuerySelector(selector, context = document) {
4386      try {
4387        return context.querySelector(selector);
4388      } catch (error) {
4389        console.error('Invalid selector:', selector, error);
4390        return null;
4391      }
4392    }
4393
4394    // Utility: Get cached cart or fetch new
4395    function getCartData() {
4396      const now = Date.now();
4397
4398      // Return cached data if still valid
4399      if (state.cartCache && (now - state.cacheTimestamp) < state.CACHE_DURATION) {
4400        return Promise.resolve(state.cartCache);
4401      }
4402
4403      // Prevent concurrent fetches
4404      if (state.isFetching) {
4405        return new Promise((resolve) => {
4406          const checkInterval = setInterval(() => {
4407            if (!state.isFetching && state.cartCache) {
4408              clearInterval(checkInterval);
4409              resolve(state.cartCache);
4410            }
4411          }, 50);
4412
4413          // Timeout after 2 seconds
4414          setTimeout(() => {
4415            clearInterval(checkInterval);
4416            resolve(null);
4417          }, 2000);
4418        });
4419      }
4420
4421      state.isFetching = true;
4422
4423      return fetch('/cart.js', {
4424        method: 'GET',
4425        headers: {
4426          'Content-Type': 'application/json',
4427          'X-Requested-With': 'XMLHttpRequest'
4428        },
4429        credentials: 'same-origin'
4430      })
4431        .then(response => {
4432          if (!response.ok) {
4433            throw new Error('Cart fetch failed: ' + response.status);
4434          }
4435          return response.json();
4436        })
4437        .then(cart => {
4438          state.cartCache = cart;
4439          state.cacheTimestamp = Date.now();
4440          state.retryCount = 0;
4441          return cart;
4442        })
4443        .catch(error => {
4444          console.error('Failed to fetch cart:', error);
4445
4446          // Retry logic
4447          if (state.retryCount < CONFIG.MAX_RETRY_ATTEMPTS) {
4448            state.retryCount++;
4449            return new Promise(resolve => {
4450              setTimeout(() => {
4451                resolve(getCartData());
4452              }, CONFIG.RETRY_DELAY * state.retryCount);
4453            });
4454          }
4455
4456          return null;
4457        })
4458        .finally(() => {
4459          state.isFetching = false;
4460        });
4461    }
4462
4463    // Invalidate cache when cart changes
4464    function invalidateCartCache() {
4465      state.cartCache = null;
4466      state.cacheTimestamp = 0;
4467    }
4468
4469    // Gift card popup functions
4470
4471    // Session storage functions for gift data persistence
4472    function getGiftDataKey(productId) {
4473      return 'giftMessageData_' + (productId || UPSELL_PRODUCT_ID_1 || 'default');
4474    }
4475
4476    function loadSavedGiftData(productId) {
4477      try {
4478        if (typeof Storage === 'undefined') {
4479          return null;
4480        }
4481        const key = getGiftDataKey(productId);
4482        const savedData = sessionStorage.getItem(key);
4483        if (savedData) {
4484          return JSON.parse(savedData);
4485        }
4486      } catch (error) {
4487        console.error('Error loading saved gift data:', error);
4488      }
4489      return null;
4490    }
4491
4492    function saveGiftData(sender, recipient, giftMessage, productId) {
4493      try {
4494        if (typeof Storage === 'undefined') {
4495          return;
4496        }
4497        const key = getGiftDataKey(productId);
4498        const data = {
4499          sender: sender,
4500          recipient: recipient,
4501          gift_note: giftMessage,
4502          timestamp: Date.now()
4503        };
4504        sessionStorage.setItem(key, JSON.stringify(data));
4505      } catch (error) {
4506        console.error('Error saving gift data:', error);
4507      }
4508    }
4509
4510    function clearSavedGiftData(productId) {
4511      try {
4512        if (typeof Storage === 'undefined') {
4513          return;
4514        }
4515        const key = getGiftDataKey(productId);
4516        sessionStorage.removeItem(key);
4517      } catch (error) {
4518        console.error('Error clearing gift data:', error);
4519      }
4520    }
4521
4522    function updateGiftPreview() {
4523      try {
4524        const toField = document.getElementById('gift-card-to');
4525        const fromField = document.getElementById('gift-card-from');
4526        const messageField = document.getElementById('gift-card-message');
4527        const previewRecipient = document.getElementById('previewRecipient');
4528        const previewSender = document.getElementById('previewSender');
4529        const previewMessage = document.getElementById('previewMessage');
4530        const previewSection = document.getElementById('gift-card-preview');
4531
4532        if (!toField || !fromField || !messageField || !previewRecipient || !previewSender || !previewMessage || !previewSection) {
4533          return;
4534        }
4535
4536        const recipient = toField.value.trim();
4537        const sender = fromField.value.trim();
4538        const message = messageField.value.trim();
4539
4540        previewRecipient.textContent = recipient || 'Recipient\'s name';
4541        previewSender.textContent = sender || 'Your name';
4542        previewMessage.textContent = message || 'Your gift message will appear here...';
4543
4544        // Only show preview when custom option is selected
4545        const selectedOption = document.querySelector('.gift-option-radio:checked');
4546        if (selectedOption && selectedOption.value === 'custom') {
4547          previewSection.style.display = 'flex';
4548        } else {
4549          previewSection.style.display = 'none';
4550        }
4551      } catch (error) {
4552        console.error('Error updating gift preview:', error);
4553      }
4554    }
4555
4556    // Toggle custom fields visibility based on radio selection
4557    function toggleCustomFields() {
4558      const customMessageFields = document.getElementById('custom-message-fields');
4559      const previewSection = document.getElementById('gift-card-preview');
4560      const selectedOption = document.querySelector('.gift-option-radio:checked');
4561
4562      if (!customMessageFields) return;
4563
4564      if (selectedOption && selectedOption.value === 'custom') {
4565        customMessageFields.style.display = 'block';
4566        if (previewSection) {
4567          previewSection.style.display = 'flex';
4568        }
4569        // Make fields required
4570        const toField = document.getElementById('gift-card-to');
4571        const fromField = document.getElementById('gift-card-from');
4572        const messageField = document.getElementById('gift-card-message');
4573        if (toField) toField.required = true;
4574        if (fromField) fromField.required = true;
4575        if (messageField) messageField.required = true;
4576        updateGiftPreview();
4577      } else {
4578        customMessageFields.style.display = 'none';
4579        if (previewSection) {
4580          previewSection.style.display = 'none';
4581        }
4582        // Remove required attribute
4583        const toField = document.getElementById('gift-card-to');
4584        const fromField = document.getElementById('gift-card-from');
4585        const messageField = document.getElementById('gift-card-message');
4586        if (toField) toField.required = false;
4587        if (fromField) fromField.required = false;
4588        if (messageField) messageField.required = false;
4589      }
4590    }
4591
4592    function showGiftCardPopup(variantId, btn, productData) {
4593      state.currentGiftCardData = { variantId, btn, productData };
4594      const popup = document.getElementById('gift-card-popup');
4595      if (popup) {
4596        popup.style.display = 'flex';
4597        document.body.style.overflow = 'hidden';
4598
4599        // Load saved data from session storage
4600        const savedData = loadSavedGiftData(productData?.id);
4601        if (savedData) {
4602          // Populate custom message fields
4603          const toField = document.getElementById('gift-card-to');
4604          const fromField = document.getElementById('gift-card-from');
4605          const messageField = document.getElementById('gift-card-message');
4606          const charCounter = document.getElementById('gift-card-char-counter');
4607
4608          if (toField) toField.value = savedData.recipient || '';
4609          if (fromField) fromField.value = savedData.sender || '';
4610          if (messageField) messageField.value = savedData.gift_note || '';
4611
4612          if (charCounter && savedData.gift_note) {
4613            charCounter.textContent = `${savedData.gift_note.length} / 200`;
4614          }
4615
4616          // Select custom option if data exists
4617          const customOption = popup.querySelector('.gift-option-radio[value="custom"]');
4618          if (customOption) {
4619            customOption.checked = true;
4620            toggleCustomFields();
4621          }
4622        } else {
4623          // Select blank option by default
4624          const blankOption = popup.querySelector('.gift-option-radio[value="blank"]');
4625          if (blankOption) {
4626            blankOption.checked = true;
4627            toggleCustomFields();
4628          }
4629        }
4630
4631        requestAnimationFrame(() => {
4632          updateGiftPreview();
4633          // Focus on first empty field if custom is selected
4634          const selectedOption = popup.querySelector('.gift-option-radio:checked');
4635          if (selectedOption && selectedOption.value === 'custom') {
4636            const toField = document.getElementById('gift-card-to');
4637            const messageField = document.getElementById('gift-card-message');
4638            const fromField = document.getElementById('gift-card-from');
4639
4640            if (toField && !toField.value) {
4641              toField.focus();
4642            } else if (messageField && !messageField.value) {
4643              messageField.focus();
4644            } else if (fromField && !fromField.value) {
4645              fromField.focus();
4646            } else if (toField) {
4647              toField.focus();
4648              toField.select();
4649            }
4650          }
4651        });
4652      }
4653    }
4654
4655    function hideGiftCardPopup() {
4656      const popup = document.getElementById('gift-card-popup');
4657      if (popup) {
4658        // Save current form values to session storage before closing (only if custom option)
4659        const selectedOption = popup.querySelector('.gift-option-radio:checked');
4660        if (selectedOption && selectedOption.value === 'custom') {
4661          const toField = document.getElementById('gift-card-to');
4662          const fromField = document.getElementById('gift-card-from');
4663          const messageField = document.getElementById('gift-card-message');
4664
4665          const sender = fromField ? fromField.value.trim() : '';
4666          const recipient = toField ? toField.value.trim() : '';
4667          const giftMessage = messageField ? messageField.value.trim() : '';
4668
4669          // Only save if at least one field has value
4670          if (sender || recipient || giftMessage) {
4671            const productId = state.currentGiftCardData?.productData?.id;
4672            saveGiftData(sender, recipient, giftMessage, productId);
4673          }
4674        }
4675
4676        popup.style.display = 'none';
4677        document.body.style.overflow = '';
4678
4679        // Reset form fields
4680        const inputs = popup.querySelectorAll('input:not([type="radio"]), textarea');
4681        inputs.forEach(input => input.value = '');
4682
4683        // Reset to blank option
4684        const blankOption = popup.querySelector('.gift-option-radio[value="blank"]');
4685        if (blankOption) {
4686          blankOption.checked = true;
4687          toggleCustomFields();
4688        }
4689
4690        const charCounter = document.getElementById('gift-card-char-counter');
4691        if (charCounter) {
4692          charCounter.textContent = '0/200';
4693          charCounter.className = 'gift-card-popup__char-counter';
4694        }
4695
4696        const saveBtn = popup.querySelector('.gift-card-popup__save');
4697        if (saveBtn) {
4698          saveBtn.disabled = false;
4699          saveBtn.textContent = 'Save';
4700        }
4701
4702        updateGiftPreview();
4703      }
4704      state.currentGiftCardData = null;
4705    }
4706
4707    // Main widget check function
4708    function checkAndToggleUpsellWidget() {
4709      if (state.checkTimeout) {
4710        clearTimeout(state.checkTimeout);
4711      }
4712      state.checkTimeout = setTimeout(performCheck, CONFIG.DEBOUNCE_DELAY);
4713    }
4714
4715    function performCheck() {
4716      const upsellWidget = safeQuerySelector('[data-cart-upsell]');
4717      if (!upsellWidget) {
4718        return;
4719      }
4720
4721      getCartData()
4722        .then(cart => {
4723          if (!cart) {
4724            console.warn('Cart data unavailable, skipping widget update');
4725            return;
4726          }
4727
4728          const hasUpsellProduct1 = UPSELL_PRODUCT_ID_1 ?
4729            cart.items.some(item => item.product_id === UPSELL_PRODUCT_ID_1) : false;
4730          const hasUpsellProduct2 = UPSELL_PRODUCT_ID_2 ?
4731            cart.items.some(item => item.product_id === UPSELL_PRODUCT_ID_2) : false;
4732
4733          // Skip if state hasn't changed
4734          const currentState = `${hasUpsellProduct1}-${hasUpsellProduct2}-${cart.items.length}`;
4735          if (state.lastCartState === currentState) {
4736            return;
4737          }
4738          state.lastCartState = currentState;
4739
4740          // Check for qualifying products
4741          const hasQualifyingProducts = cart.items.some(item => {
4742            if (UPSELL_PRODUCT_ID_1 && item.product_id === UPSELL_PRODUCT_ID_1) return false;
4743            if (UPSELL_PRODUCT_ID_2 && item.product_id === UPSELL_PRODUCT_ID_2) return false;
4744            const sku = item.sku || '';
4745            return sku.includes('CBS') || sku.includes('CBG');
4746          });
4747
4748          // Remove upsell items if no qualifying products
4749          if ((hasUpsellProduct1 || hasUpsellProduct2) && !hasQualifyingProducts) {
4750            removeUpsellProducts(cart, hasUpsellProduct1, hasUpsellProduct2);
4751            return;
4752          }
4753
4754          // Update card visibility
4755          updateCardVisibility(upsellWidget, hasUpsellProduct1, hasUpsellProduct2);
4756        })
4757        .catch(err => {
4758          console.error('Error in performCheck:', err);
4759        });
4760    }
4761
4762    function removeUpsellProducts(cart, hasProduct1, hasProduct2) {
4763      const removePromises = [];
4764
4765      if (hasProduct1) {
4766        const item1 = cart.items.find(item => item.product_id === UPSELL_PRODUCT_ID_1);
4767        if (item1 && window.theme?.cart?.changeItem) {
4768          removePromises.push(
4769            window.theme.cart.changeItem(item1.key, 0)
4770              .catch(err => console.error('Failed to remove upsell item 1:', err))
4771          );
4772        }
4773      }
4774
4775      if (hasProduct2) {
4776        const item2 = cart.items.find(item => item.product_id === UPSELL_PRODUCT_ID_2);
4777        if (item2 && window.theme?.cart?.changeItem) {
4778          removePromises.push(
4779            window.theme.cart.changeItem(item2.key, 0)
4780              .catch(err => console.error('Failed to remove upsell item 2:', err))
4781          );
4782        }
4783      }
4784
4785      if (removePromises.length > 0) {
4786        Promise.all(removePromises).then(() => {
4787          invalidateCartCache();
4788          document.dispatchEvent(new CustomEvent('cart:build'));
4789          document.dispatchEvent(new CustomEvent('cart:updated'));
4790        });
4791      }
4792    }
4793
4794    function updateCardVisibility(upsellWidget, hasUpsellProduct1, hasUpsellProduct2) {
4795      // Find cards in grid layout
4796      const card1 = UPSELL_PRODUCT_ID_1 ?
4797        safeQuerySelector(`.cart-upsell__cards [data-product-id="${UPSELL_PRODUCT_ID_1}"]`, upsellWidget) : null;
4798      const card2 = UPSELL_PRODUCT_ID_2 ?
4799        safeQuerySelector(`.cart-upsell__cards [data-product-id="${UPSELL_PRODUCT_ID_2}"]`, upsellWidget) : null;
4800
4801      // Count visible products
4802      const card1Visible = !hasUpsellProduct1 && (UPSELL_PRODUCT_ID_1 !== null);
4803      const card2Visible = !hasUpsellProduct2 && (UPSELL_PRODUCT_ID_2 !== null);
4804      const visibleCount = (card1Visible ? 1 : 0) + (card2Visible ? 1 : 0);
4805
4806      // Hide entire widget if both products are in cart
4807      if (hasUpsellProduct1 && hasUpsellProduct2) {
4808        upsellWidget.style.display = 'none';
4809        return;
4810      }
4811
4812      // Update individual card visibility
4813      if (card1) {
4814        card1.style.display = hasUpsellProduct1 ? 'none' : 'block';
4815      }
4816      if (card2) {
4817        card2.style.display = hasUpsellProduct2 ? 'none' : 'block';
4818      }
4819
4820      // Show widget if at least one product is visible
4821      if (visibleCount > 0) {
4822        upsellWidget.style.display = 'block';
4823
4824        // Update grid visibility
4825        const gridContainer = safeQuerySelector('.cart-upsell__cards', upsellWidget);
4826        if (gridContainer) {
4827          gridContainer.style.display = '';
4828        }
4829      } else {
4830        // Hide widget if no products are visible
4831        upsellWidget.style.display = 'none';
4832      }
4833
4834      // Update carousel after visibility changes
4835      if (upsellWidget.style.display !== 'none' && carouselState.carousel && carouselState.updateButtons) {
4836        requestAnimationFrame(() => {
4837          carouselState.updateButtons();
4838        });
4839      }
4840    }
4841
4842    function addVariantToCart(variantId, btn, giftCardPersonalization = null) {
4843      if (!variantId) return;
4844
4845      const btnElement = btn;
4846      if (btnElement) {
4847        btnElement.classList.add('btn--loading');
4848        btnElement.disabled = true;
4849      }
4850
4851      const cartData = {
4852        id: parseInt(variantId, 10),
4853        quantity: 1
4854      };
4855
4856      fetch('/cart/add.js', {
4857        method: 'POST',
4858        headers: {
4859          'Content-Type': 'application/json',
4860          'X-Requested-With': 'XMLHttpRequest'
4861        },
4862        body: JSON.stringify(cartData),
4863        credentials: 'same-origin'
4864      })
4865        .then(response => {
4866          if (!response.ok) {
4867            throw new Error('Add to cart failed: ' + response.status);
4868          }
4869          return response.json();
4870        })
4871        .then(data => {
4872          if (giftCardPersonalization) {
4873            const cartAttributes = {
4874              'recepient': giftCardPersonalization.to || '',
4875              'sender': giftCardPersonalization.from || '',
4876              'gift_note': giftCardPersonalization.message || '',
4877              'gift_option': giftCardPersonalization.option || 'custom'
4878            };
4879
4880            return fetch('/cart/update.js', {
4881              method: 'POST',
4882              headers: {
4883                'Content-Type': 'application/json',
4884                'X-Requested-With': 'XMLHttpRequest'
4885              },
4886              body: JSON.stringify({ attributes: cartAttributes }),
4887              credentials: 'same-origin'
4888            }).then(res => ({ response: res, productData: data }));
4889          }
4890
4891          return { response: { ok: true }, productData: data };
4892        })
4893        .then(({ response, productData }) => {
4894          if (!response.ok) {
4895            throw new Error('Cart attribute update failed');
4896          }
4897
4898          invalidateCartCache();
4899
4900          document.dispatchEvent(new CustomEvent('cart:build'));
4901          document.dispatchEvent(new CustomEvent('ajaxProduct:added', {
4902            detail: { product: productData }
4903          }));
4904
4905          setTimeout(() => {
4906            state.lastCartState = null;
4907            checkAndToggleUpsellWidget();
4908          }, CONFIG.CART_UPDATE_DELAY);
4909
4910          if (giftCardPersonalization) {
4911            hideGiftCardPopup();
4912          }
4913        })
4914        .catch(err => {
4915          console.error('Upsell add-to-cart error:', err);
4916          alert('Failed to add item to cart. Please try again.');
4917        })
4918        .finally(() => {
4919          if (btnElement) {
4920            btnElement.classList.remove('btn--loading');
4921            btnElement.disabled = false;
4922          }
4923        });
4924    }
4925
4926    // Event handlers
4927    function handleUpsellButtonClick(e) {
4928      const btn = e.target.closest('.cart-upsell__card-button');
4929      if (!btn) return;
4930
4931      e.preventDefault();
4932      e.stopPropagation();
4933
4934      const container = btn.closest('[data-upsell-form]');
4935      const variantId = btn.getAttribute('data-variant-id') ||
4936        (container && container.getAttribute('data-variant-id'));
4937
4938      if (!variantId) {
4939        console.error('No variant ID found');
4940        return;
4941      }
4942
4943      const hasGiftPopup = container && container.getAttribute('data-has-gift-popup') === 'true';
4944
4945      if (hasGiftPopup) {
4946        try {
4947          const productJsonElement = container.querySelector('[data-product-json]');
4948
4949          if (!productJsonElement) {
4950            console.error('No product JSON element found');
4951            addVariantToCart(variantId, btn);
4952            return;
4953          }
4954
4955          const productData = JSON.parse(productJsonElement.textContent);
4956          showGiftCardPopup(variantId, btn, productData);
4957        } catch (error) {
4958          console.error('Error parsing product data:', error);
4959          addVariantToCart(variantId, btn);
4960        }
4961      } else {
4962        addVariantToCart(variantId, btn);
4963      }
4964    }
4965
4966    function handlePopupClick(e) {
4967      const popup = document.getElementById('gift-card-popup');
4968      if (!popup || popup.style.display === 'none') return;
4969
4970      if (e.target.classList.contains('gift-card-popup__overlay') ||
4971          e.target.classList.contains('gift-card-popup__close') ||
4972          e.target.classList.contains('gift-card-popup__cancel')) {
4973        hideGiftCardPopup();
4974        return;
4975      }
4976
4977      if (e.target.classList.contains('gift-card-popup__save')) {
4978        if (!state.currentGiftCardData) return;
4979
4980        const saveBtn = e.target;
4981        const selectedOption = document.querySelector('.gift-option-radio:checked');
4982
4983        if (!selectedOption) {
4984          alert('Please select a gift option.');
4985          return;
4986        }
4987
4988        const giftOption = selectedOption.value;
4989        let personalization = null;
4990
4991        if (giftOption === 'blank') {
4992          // No personalization needed, send empty attributes
4993          personalization = {
4994            option: 'blank',
4995            to: '',
4996            from: '',
4997            message: ''
4998          };
4999        } else if (giftOption === 'standard') {
5000          // Use standard message
5001          personalization = {
5002            option: 'standard',
5003            to: '',
5004            from: '',
5005            message: 'Enjoy this selection of Japanese snacks & products, a little treat from Japan to make your day special. Have a great day!'
5006          };
5007        } else if (giftOption === 'custom') {
5008          // Get custom message fields
5009          const toField = document.getElementById('gift-card-to');
5010          const fromField = document.getElementById('gift-card-from');
5011          const messageField = document.getElementById('gift-card-message');
5012
5013          const to = toField ? toField.value.trim() : '';
5014          const from = fromField ? fromField.value.trim() : '';
5015          const message = messageField ? messageField.value.trim() : '';
5016
5017          // Validate all fields are filled for custom option
5018          if (!to || !from || !message) {
5019            alert('Please fill in all required fields for your custom message.');
5020            return;
5021          }
5022
5023          personalization = {
5024            option: 'custom',
5025            to: to,
5026            from: from,
5027            message: message
5028          };
5029
5030          // Save custom message to session storage
5031          const productId = state.currentGiftCardData?.productData?.id;
5032          saveGiftData(from, to, message, productId);
5033        }
5034
5035        saveBtn.disabled = true;
5036        saveBtn.textContent = 'Saving...';
5037
5038        addVariantToCart(
5039          state.currentGiftCardData.variantId,
5040          state.currentGiftCardData.btn,
5041          personalization
5042        );
5043      }
5044    }
5045
5046    function handleKeydown(e) {
5047      const popup = document.getElementById('gift-card-popup');
5048      if (!popup || popup.style.display === 'none') return;
5049
5050      if (e.key === 'Escape') {
5051        hideGiftCardPopup();
5052      } else if (e.key === 'Enter' && e.target.tagName !== 'TEXTAREA') {
5053        const saveBtn = popup.querySelector('.gift-card-popup__save');
5054        if (saveBtn) {
5055          e.preventDefault();
5056          saveBtn.click();
5057        }
5058      }
5059    }
5060
5061    function handleInput(e) {
5062      if (e.target.id === 'gift-card-message') {
5063        const textarea = e.target;
5064        const charCounter = document.getElementById('gift-card-char-counter');
5065        if (charCounter) {
5066          const currentLength = textarea.value.length;
5067          const maxLength = 200;
5068
5069          charCounter.textContent = `${currentLength}/${maxLength}`;
5070          charCounter.className = 'gift-card-popup__char-counter';
5071
5072          if (currentLength >= maxLength) {
5073            charCounter.classList.add('error');
5074          } else if (currentLength >= 180) {
5075            charCounter.classList.add('warning');
5076          }
5077        }
5078        updateGiftPreview();
5079      } else if (e.target.id === 'gift-card-to' || e.target.id === 'gift-card-from') {
5080        updateGiftPreview();
5081      }
5082    }
5083
5084    // Optimized cart interaction handler
5085    const debouncedCartCheck = debounce(() => {
5086      invalidateCartCache();
5087      state.lastCartState = null;
5088      checkAndToggleUpsellWidget();
5089    }, 400);
5090
5091    function handleCartInteraction(e) {
5092      if (e.target.closest('[data-cart-remove]') ||
5093          e.target.closest('[data-cart-quantity]') ||
5094          e.target.closest('.cart__qty-button') ||
5095          (e.target.type === 'number' &&
5096           (e.target.closest('[data-cart-item]') || e.target.closest('.cart__item')))) {
5097        debouncedCartCheck();
5098      }
5099    }
5100
5101    // Setup watchers
5102    function setupCartWatchers() {
5103      // Single consolidated event listener
5104      const cartEvents = ['cart:build', 'cart:updated', 'cart:change', 'ajaxProduct:added', 'cart:refresh'];
5105      const eventHandler = debounce(() => {
5106        invalidateCartCache();
5107        state.lastCartState = null;
5108        checkAndToggleUpsellWidget();
5109      }, CONFIG.DEBOUNCE_DELAY);
5110
5111      cartEvents.forEach(eventName => {
5112        document.addEventListener(eventName, eventHandler, { passive: true });
5113      });
5114
5115      // Optimized MutationObserver
5116      const cartContainer = safeQuerySelector('.cart__items') ||
5117                           safeQuerySelector('[data-cart-items]') ||
5118                           safeQuerySelector('.cart-drawer') ||
5119                           safeQuerySelector('.cart');
5120
5121      if (cartContainer) {
5122        const debouncedMutationCheck = debounce(() => {
5123          invalidateCartCache();
5124          state.lastCartState = null;
5125          checkAndToggleUpsellWidget();
5126        }, CONFIG.MUTATION_DEBOUNCE);
5127
5128        const observer = new MutationObserver(mutations => {
5129          const hasRelevantChanges = mutations.some(mutation =>
5130            mutation.type === 'childList' &&
5131            (mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0)
5132          );
5133
5134          if (hasRelevantChanges) {
5135            debouncedMutationCheck();
5136          }
5137        });
5138
5139        observer.observe(cartContainer, {
5140          childList: true,
5141          subtree: true
5142        });
5143      }
5144
5145      // Visibility change check (only when tab is visible)
5146      if (typeof document.hidden !== 'undefined') {
5147        document.addEventListener('visibilitychange', () => {
5148          if (!document.hidden) {
5149            invalidateCartCache();
5150            checkAndToggleUpsellWidget();
5151          }
5152        }, { passive: true });
5153      }
5154
5155      // Reduced interval for periodic checks
5156      state.visibilityCheckInterval = setInterval(() => {
5157        if (!document.hidden) {
5158          checkAndToggleUpsellWidget();
5159        }
5160      }, CONFIG.VISIBILITY_CHECK_INTERVAL);
5161    }
5162
5163    // Initialize
5164    function init() {
5165      if (state.isInitialized) return;
5166      state.isInitialized = true;
5167
5168      // Setup all event listeners
5169      document.addEventListener('click', handleUpsellButtonClick);
5170      document.addEventListener('click', handlePopupClick);
5171      document.addEventListener('click', handleCartInteraction);
5172      document.addEventListener('keydown', handleKeydown);
5173      document.addEventListener('input', handleInput, { passive: true });
5174
5175      // Setup gift option radio button listeners
5176      const giftOptions = document.querySelectorAll('.gift-option-radio');
5177      giftOptions.forEach(option => {
5178        option.addEventListener('change', toggleCustomFields);
5179      });
5180
5181      // Initial check and setup watchers
5182      setTimeout(() => {
5183        checkAndToggleUpsellWidget();
5184        setupCartWatchers();
5185        initCarousel();
5186      }, CONFIG.INITIAL_CHECK_DELAY);
5187
5188      // Also initialize carousel when widget becomes visible
5189      const observer = new MutationObserver(() => {
5190        const upsellWidget = safeQuerySelector('[data-cart-upsell]');
5191        if (upsellWidget && upsellWidget.style.display !== 'none' && !carouselState.isInitialized) {
5192          setTimeout(initCarousel, 100);
5193        }
5194      });
5195
5196      const upsellWidget = safeQuerySelector('[data-cart-upsell]');
5197      if (upsellWidget) {
5198        observer.observe(upsellWidget, {
5199          attributes: true,
5200          attributeFilter: ['style']
5201        });
5202      }
5203    }
5204
5205    // Start when DOM is ready
5206    if (document.readyState === 'loading') {
5207      document.addEventListener('DOMContentLoaded', init);
5208    } else {
5209      init();
5210    }
5211
5212    // Cleanup on page unload
5213    window.addEventListener('beforeunload', () => {
5214      if (state.visibilityCheckInterval) {
5215        clearInterval(state.visibilityCheckInterval);
5216      }
5217      if (state.checkTimeout) {
5218        clearTimeout(state.checkTimeout);
5219      }
5220    });
5221  })();
5222</script>
5222
5223
5224    
5225
5226    
5227    
5228<div class="main-new-reviews-align" role="region" aria-roledescription="carousel" aria-label="Customer reviews">
5229    <div class="swiper mySwiper">
5230        <div class="swiper-wrapper">
5231
5232    
5233<div
5234                class="swiper-slide"
5235                role="group"
5236                aria-roledescription="slide"
5237                aria-label="Review 1 of 5"
5238            >
5239                <div class="main-cart-review-align">
5240                    <span class="visually-hidden">Rated 5 out of 5 stars.</span>
5241                    <div class="cart__reviews-stars" aria-hidden="true">
5242
5243                         <div class="star-icon">
5244                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5245                                <defs>
5246                                    <linearGradient id="halfWhite">
5247                                        <stop offset="100%" stop-color="#b73d09"></stop>
5248                                    </linearGradient>
5249                                </defs>
5250                                <path
5251                                    d="M9 14.118L14.562 17.475L13.086 11.148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5252                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5253                            </svg>
5254                    </div>
5255                    
5256                    
5257                    
5258                         <div class="star-icon">
5259                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5260                                <defs>
5261                                    <linearGradient id="halfWhite">
5262                                        <stop offset="100%" stop-color="#b73d09"></stop>
5263                                    </linearGradient>
5264                                </defs>
5265                                <path
5266                                    d="M9 14.118L14.562 17.475L13.086 11.148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5267                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5268                            </svg>
5269                    </div>
5270                    
5271                    
5272                    
5273                         <div class="star-icon">
5274                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5275                                <defs>
5276                                    <linearGradient id="halfWhite">
5277                                        <stop offset="100%" stop-color="#b73d09"></stop>
5278                                    </linearGradient>
5279                                </defs>
5280                                <path
5281                                    d="M9 14.118L14.562 17.475L13.086 11.148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5282                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5283                            </svg>
5284                    </div>
5285                    
5286                    
5287                    
5288                         <div class="star-icon">
5289                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5290                                <defs>
5291                                    <linearGradient id="halfWhite">
5292                                        <stop offset="100%" stop-color="#b73d09"></stop>
5293                                    </linearGradient>
5294                                </defs>
5295                                <path
5296                                    d="M9 14.118L14.562 17.475L13.086 11.148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5297                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5298                            </svg>
5299                    </div>
5300                    
5301                    
5302                    
5303                         <div class="star-icon">
5304                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5305                                <defs>
5306                                    <linearGradient id="halfWhite">
5307                                        <stop offset="100%" stop-color="#b73d09"></stop>
5308                                    </linearGradient>
5309                                </defs>
5310                                <path
5311                                    d="M9 14.118L14.562 17.475L13.086 11.
5311148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5312                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5313                            </svg>
5314                    </div>
5315                    
5316                    
5317                    
5318                    
5319                    
5320                
5321                    
5322                
5323                    
5324                
5325                    
5326                
5327                    
5328                
5329            </div>
5330            <div class="cart__reviews-text"
5331                data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_text">
5332                <p>
5333                    The entire experience from ordering to following along on the shipping route and any interactions I had with you have been just great! Not to mention that the products are different to our palette making them exotic and very tasty!
5334                </p>
5335            </div>
5336            <div class="cart_reviews-author-buyer">
5337                <span class="cart__reviews-author"
5338                    data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_author">Alena Z.</span>
5339                <span class="verified-buyer"
5340                    data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_title">Verified Buyer</span>
5341            </div>
5342        </div>
5343    </div>
5344    
5345    
5346<div
5347                class="swiper-slide"
5348                role="group"
5349                aria-roledescription="slide"
5350                aria-label="Review 2 of 5"
5351            >
5352                <div class="main-cart-review-align">
5353                    <span class="visually-hidden">Rated 5 out of 5 stars.</span>
5354                    <div class="cart__reviews-stars" aria-hidden="true">
5355
5356                         <div class="star-icon">
5357                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5358                                <defs>
5359                                    <linearGradient id="halfWhite">
5360                                        <stop offset="100%" stop-color="#b73d09"></stop>
5361                                    </linearGradient>
5362                                </defs>
5363                                <path
5364                                    d="M9 14.118L14.562 17.475L13.086 11.148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5365                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5366                            </svg>
5367                    </div>
5368                    
5369                    
5370                    
5371                         <div class="star-icon">
5372                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5373                                <defs>
5374                                    <linearGradient id="halfWhite">
5375                                        <stop offset="100%" stop-color="#b73d09"></stop>
5376                                    </linearGradient>
5377                                </defs>
5378                                <path
5379                                    d="M9 14.118L14.562 17.475L13.086 11.148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5380                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5381                            </svg>
5382                    </div>
5383                    
5384                    
5385                    
5386                         <div class="star-icon">
5387                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5388                                <defs>
5389                                    <linearGradient id="halfWhite">
5390                                        <stop offset="100%" stop-color="#b73d09"></stop>
5391                                    </linearGradient>
5392                                </defs>
5393                                <path
5394                                    d="M9 14.118L14.562 17.475L13.086 11.
5394148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5395                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5396                            </svg>
5397                    </div>
5398                    
5399                    
5400                    
5401                         <div class="star-icon">
5402                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5403                                <defs>
5404                                    <linearGradient id="halfWhite">
5405                                        <stop offset="100%" stop-color="#b73d09"></stop>
5406                                    </linearGradient>
5407                                </defs>
5408                                <path
5409                                    d="M9 14.118L14.562 17.475L13.086 11.148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5410                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5411                            </svg>
5412                    </div>
5413                    
5414                    
5415                    
5416                         <div class="star-icon">
5417                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5418                                <defs>
5419                                    <linearGradient id="halfWhite">
5420                                        <stop offset="100%" stop-color="#b73d09"></stop>
5421                                    </linearGradient>
5422                                </defs>
5423                                <path
5424                                    d="M9 14.118L14.562 17.475L13.086 11.148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5425                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5426                            </svg>
5427                    </div>
5428                    
5429                    
5430                    
5431                    
5432                    
5433                
5434                    
5435                
5436                    
5437                
5438                    
5439                
5440                    
5441                
5442            </div>
5443            <div class="cart__reviews-text"
5444                data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_text">
5445                <p>
5446                    What a pretty box. The packaging of all the goodies was excellent. The brochure was a joy to handle and read. I’m gifting it to my son and wife when I visit them!
5447                </p>
5448            </div>
5449            <div class="cart_reviews-author-buyer">
5450                <span class="cart__reviews-author"
5451                    data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_author">Maribet U.</span>
5452                <span class="verified-buyer"
5453                    data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_title">Verified Buyer</span>
5454            </div>
5455        </div>
5456    </div>
5457    
5458    
5459<div
5460                class="swiper-slide"
5461                role="group"
5462                aria-roledescription="slide"
5463                aria-label="Review 3 of 5"
5464            >
5465                <div class="main-cart-review-align">
5466                    <span class="visually-hidden">Rated 5 out of 5 stars.</span>
5467                    <div class="cart__reviews-stars" aria-hidden="true">
5468
5469                         <div class="star-icon">
5470                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5471                                <defs>
5472                                    <linearGradient id="halfWhite">
5473                                        <stop offset="100%" stop-color="#b73d09"></stop>
5474                                    </linearGradient>
5475                                </defs>
5476                                <path
5477                                    d="M9 14.118L14.562 17.475L13.086 11.148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5478                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5479                            </svg>
5480                    </div>
5481                    
5482                    
5483                    
5484                         <div class="star-icon">
5485                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5486                                <defs>
5487                                    <linearGradient id="halfWhite">
5488                                        <stop offset="100%" stop-color="#b73d09"></stop>
5489                                    </linearGradient>
5490                                </defs>
5491                                <path
5492                                    d="M9 14.118L14.562 17.475L13.086 11.
5492148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5493                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5494                            </svg>
5495                    </div>
5496                    
5497                    
5498                    
5499                         <div class="star-icon">
5500                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5501                                <defs>
5502                                    <linearGradient id="halfWhite">
5503                                        <stop offset="100%" stop-color="#b73d09"></stop>
5504                                    </linearGradient>
5505                                </defs>
5506                                <path
5507                                    d="M9 14.118L14.562 17.475L13.086 11.148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5508                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5509                            </svg>
5510                    </div>
5511                    
5512                    
5513                    
5514                         <div class="star-icon">
5515                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5516                                <defs>
5517                                    <linearGradient id="halfWhite">
5518                                        <stop offset="100%" stop-color="#b73d09"></stop>
5519                                    </linearGradient>
5520                                </defs>
5521                                <path
5522                                    d="M9 14.118L14.562 17.475L13.086 11.148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5523                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5524                            </svg>
5525                    </div>
5526                    
5527                    
5528                    
5529                         <div class="star-icon">
5530                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5531                                <defs>
5532                                    <linearGradient id="halfWhite">
5533                                        <stop offset="100%" stop-color="#b73d09"></stop>
5534                                    </linearGradient>
5535                                </defs>
5536                                <path
5537                                    d="M9 14.118L14.562 17.475L13.086 11.148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5538                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5539                            </svg>
5540                    </div>
5541                    
5542                    
5543                    
5544                    
5545                    
5546                
5547                    
5548                
5549                    
5550                
5551                    
5552                
5553                    
5554                
5555            </div>
5556            <div class="cart__reviews-text"
5557                data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_text">
5558                <p>
5559                    Excellent range of sweet and savoury with familiar and unique flavours. The box provides insight into Japan and its small family businesses delivered in a reasonable time to my small town.
5560                </p>
5561            </div>
5562            <div class="cart_reviews-author-buyer">
5563                <span class="cart__reviews-author"
5564                    data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_author">Ross F.</span>
5565                <span class="verified-buyer"
5566                    data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_title">Verified Buyer</span>
5567            </div>
5568        </div>
5569    </div>
5570    
5571    
5572<div
5573                class="swiper-slide"
5574                role="group"
5575                aria-roledescription="slide"
5576                aria-label="Review 4 of 5"
5577            >
5578                <div class="main-cart-review-align">
5579                    <span class="visually-hidden">Rated 5 out of 5 stars.</span>
5580                    <div class="cart__reviews-stars" aria-hidden="true">
5581
5582                         <div class="star-icon">
5583                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5584                                <defs>
5585                                    <linearGradient id="halfWhite">
5586                                        <stop offset="100%" stop-color="#b73d09"></stop>
5587                                    </linearGradient>
5588                                </defs>
5589                                <path
5590                                    d="M9 14.118L14.562 17.475L13.086 11.148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5591                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5592                            </svg>
5593                    </div>
5594                    
5595                    
5596                    
5597                         <div class="star-icon">
5598                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5599                                <defs>
5600                                    <linearGradient id="halfWhite">
5601                                        <stop offset="100%" stop-color="#b73d09"></stop>
5602                                    </linearGradient>
5603                                </defs>
5604                                <path
5605                                    d="M9 14.118L14.562 17.475L13.086 11.148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5606                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5607                            </svg>
5608                    </div>
5609                    
5610                    
5611                    
5612                         <div class="star-icon">
5613                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5614                                <defs>
5615                                    <linearGradient id="halfWhite">
5616                                        <stop offset="100%" stop-color="#b73d09"></stop>
5617                                    </linearGradient>
5618                                </defs>
5619                                <path
5620                                    d="M9 14.118L14.562 17.475L13.086 11.148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5621                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5622                            </svg>
5623                    </div>
5624                    
5625                    
5626                    
5627                         <div class="star-icon">
5628                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5629                                <defs>
5630                                    <linearGradient id="halfWhite">
5631                                        <stop offset="100%" stop-color="#b73d09"></stop>
5632                                    </linearGradient>
5633                                </defs>
5634                                <path
5635                                    d="M9 14.118L14.562 17.475L13.086 11.148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5636                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5637                            </svg>
5638                    </div>
5639                    
5640                    
5641                    
5642                         <div class="star-icon">
5643                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5644                                <defs>
5645                                    <linearGradient id="halfWhite">
5646                                        <stop offset="100%" stop-color="#b73d09"></stop>
5647                                    </linearGradient>
5648                                </defs>
5649                                <path
5650                                    d="M9 14.118L14.562 17.475L13.086 11.
5650148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5651                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5652                            </svg>
5653                    </div>
5654                    
5655                    
5656                    
5657                    
5658                    
5659                
5660                    
5661                
5662                    
5663                
5664                    
5665                
5666                    
5667                
5668            </div>
5669            <div class="cart__reviews-text"
5670                data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_text">
5671                <p>
5672                    This subscription box is AMAZING! Everything from the way it’s packed to the quality and the taste! It’s a fun way to experience authentic Japanese snack food without going to Japan!
5673                </p>
5674            </div>
5675            <div class="cart_reviews-author-buyer">
5676                <span class="cart__reviews-author"
5677                    data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_author">Gabriel A.</span>
5678                <span class="verified-buyer"
5679                    data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_title">Verified Buyer</span>
5680            </div>
5681        </div>
5682    </div>
5683    
5684    
5685<div
5686                class="swiper-slide"
5687                role="group"
5688                aria-roledescription="slide"
5689                aria-label="Review 5 of 5"
5690            >
5691                <div class="main-cart-review-align">
5692                    <span class="visually-hidden">Rated 5 out of 5 stars.</span>
5693                    <div class="cart__reviews-stars" aria-hidden="true">
5694
5695                         <div class="star-icon">
5696                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5697                                <defs>
5698                                    <linearGradient id="halfWhite">
5699                                        <stop offset="100%" stop-color="#b73d09"></stop>
5700                                    </linearGradient>
5701                                </defs>
5702                                <path
5703                                    d="M9 14.118L14.562 17.475L13.086 11.148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5704                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5705                            </svg>
5706                    </div>
5707                    
5708                    
5709                    
5710                         <div class="star-icon">
5711                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5712                                <defs>
5713                                    <linearGradient id="halfWhite">
5714                                        <stop offset="100%" stop-color="#b73d09"></stop>
5715                                    </linearGradient>
5716                                </defs>
5717                                <path
5718                                    d="M9 14.118L14.562 17.475L13.086 11.148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5719                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5720                            </svg>
5721                    </div>
5722                    
5723                    
5724                    
5725                         <div class="star-icon">
5726                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5727                                <defs>
5728                                    <linearGradient id="halfWhite">
5729                                        <stop offset="100%" stop-color="#b73d09"></stop>
5730                                    </linearGradient>
5731                                </defs>
5732                                <path
5733                                    d="M9 14.118L14.562 17.475L13.086 11.
5733148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5734                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5735                            </svg>
5736                    </div>
5737                    
5738                    
5739                    
5740                         <div class="star-icon">
5741                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5742                                <defs>
5743                                    <linearGradient id="halfWhite">
5744                                        <stop offset="100%" stop-color="#b73d09"></stop>
5745                                    </linearGradient>
5746                                </defs>
5747                                <path
5748                                    d="M9 14.118L14.562 17.475L13.086 11.148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5749                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5750                            </svg>
5751                    </div>
5752                    
5753                    
5754                    
5755                         <div class="star-icon">
5756                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5757                                <defs>
5758                                    <linearGradient id="halfWhite">
5759                                        <stop offset="100%" stop-color="#b73d09"></stop>
5760                                    </linearGradient>
5761                                </defs>
5762                                <path
5763                                    d="M9 14.118L14.562 17.475L13.086 11.148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5764                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5765                            </svg>
5766                    </div>
5767                    
5768                    
5769                    
5770                    
5771                    
5772                
5773                    
5774                
5775                    
5776                
5777                    
5778                
5779                    
5780                
5781            </div>
5782            <div class="cart__reviews-text"
5783                data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_text">
5784                <p>
5785                    I’ve subscribed to different snack crates over the years and Bokksu blows them all away! I always look forward to it arriving every month and the quality of snacks is outstanding. You can tell these snacks are made fresh and with love!
5786                </p>
5787            </div>
5788            <div class="cart_reviews-author-buyer">
5789                <span class="cart__reviews-author"
5790                    data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_author">Amethyst B.</span>
5791                <span class="verified-buyer"
5792                    data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_title">Verified Buyer</span>
5793            </div>
5794        </div>
5795    </div>
5796    
5797    
5798</div>
5799<div class="swiper-pagination"></div>
5800</div>
5801</div>
5802<!-- Initialize Swiper -->
5803<script>
5804    var swiperReviews = new Swiper(".mySwiper", {
5805        slidesPerView: 1.2,
5806        spaceBetween: 14,
5807        initialSlide: 1,
5808        loop: true,
5809        centeredSlides: true,
5810        pagination: {
5811            el: ".swiper-pagination",
5812            clickable: true,
5813        },
5814        on: {
5815            init: function () {
5816                if (this.slides.length <= 2) {
5817                    this.params.loop = false; // Disable loop mode if there are only 2 slides
5818                }
5819                syncReviewsA11y(this);
5820                labelReviewsPagination(this);
5821            },
5822            slideChange: function () {
5823                syncReviewsA11y(this);
5824            }
5825        }
5826    });
5827
5828    // a11y: APG — hide non-active slides from AT. Loop-safe (value-guarded).
5829    function syncReviewsA11y(swiper) {
5830        var slides = swiper.el.querySelectorAll('.swiper-slide');
5831        for (var i = 0; i < slides.length; i++) {
5832            var isActive = slides[i].classList.contains('swiper-slide-active');
5833            var target = isActive ? 'false' : 'true';
5834            if (slides[i].getAttribute('aria-hidden') !== target) {
5835                slides[i].setAttribute('aria-hidden', target);
5836            }
5837            // Hide duplicates (loop clones) from AT always — original slide carries the label
5838            if (slides[i].classList.contains('swiper-slide-duplicate')) {
5839                if (slides[i].getAttribute('aria-hidden') !== 'true') {
5840                    slides[i].setAttribute('aria-hidden', 'true');
5841                }
5842            }
5843        }
5844    }
5845    function labelReviewsPagination(swiper) {
5846        setTimeout(function () {
5847            var bullets = swiper.el.querySelectorAll('.swiper-pagination-bullet');
5848            for (var i = 0; i < bullets.length; i++) {
5849                var label = 'Go to review ' + (i + 1);
5850                if (bullets[i].getAttribute('aria-label') !== label) {
5851                    bullets[i].setAttribute('aria-label', label);
5852                }
5853            }
5854        }, 100);
5855    }
5856</script>
5856
5857
5858<style>
5859    .main-cart-review-align {
5860        padding: 16px;
5861        background: #ffffff;
5862    }
5863
5864    .main-new-reviews-align {
5865        margin: 15px -20px;
5866    }
5867
5868    .main-new-reviews-align .mySwiper {
5869        padding-bottom: 40px;
5870    }
5871
5872    .cart_reviews-author-buyer {
5873        display: flex;
5874        align-items: center;
5875        gap: 6px;
5876    }
5877
5878    .cart__reviews-stars .star-icon svg {
5879        width: 16px;
5880        height: 16px;
5881        display: block;
5882    }
5883
5884    .cart__reviews-stars {
5885        display: flex;
5886        gap: 5px;
5887    }
5888
5889    .cart__reviews-author {
5890        font-family: 'Lato';
5891        font-size: 15px;
5892        font-weight: 600;
5893        line-height: 16.8px;
5894        letter-spacing: 0.15em;
5895        text-align: left;
5896        margin: 0 !important;
5897        color: #242426;
5898        text-transform: uppercase !important;
5899    }
5900
5901    .cart__reviews-text p {
5902        margin: 0 !important;
5903        min-height: 60px;
5904        display: -webkit-box;
5905        -webkit-line-clamp: 3;
5906        -webkit-box-orient: vertical;
5907        overflow: hidden;
5908    }
5909
5910    .cart__reviews-text {
5911        padding: 10px 0;
5912        color: #242426;
5913        font-family: Lato;
5914        font-size: 16px;
5915        font-weight: 400;
5916        line-height: 19.5px;
5917        letter-spacing: 0.02em;
5918        text-align: left;
5919        overflow: hidden;
5920        display: -webkit-box;
5921        -webkit-line-clamp: 3;
5922        -webkit-box-orient: horizontal;
5923    }
5924
5925    .verified-buyer {
5926        font-family: Lato;
5927        font-size: 14px;
5928        font-weight: 400;
5929        line-height: 18px;
5930        letter-spacing: 0.02em;
5931        text-align: left;
5932        color: #24242680;
5933    }
5934
5935    .mobile-dots {
5936        display: flex;
5937        align-items: center;
5938        justify-content: center;
5939    }
5940
5941    .mobile-dots button {
5942        background: none;
5943        border: none;
5944        display: inline-block;
5945        cursor: pointer;
5946    }
5947
5948    .mobile-arrows {
5949        margin-top: 32px;
5950        padding-bottom: 10px;
5951    }
5952
5953    .mini-cart-reviews {
5954        display: none !important;
5955    }
5956
5957    .mini-cart-reviews .button-circle {
5958        display: inline-block;
5959        width: 8px;
5960        height: 8px;
5961        border: 1px solid black;
5962        border-radius: 50%;
5963    }
5964
5965    .mini-cart-reviews .button-circle.active {
5966        background-color: black;
5967    }
5968
5969
5970    .mini-cart-reviews {
5971        padding-bottom: 34px;
5972    }
5973
5974    @media screen and (max-width: 767px) {
5975        .cart__reviews-text {
5976            font-size: 13px;
5977        }
5978
5979        .cart__reviews-author,
5980        .verified-buyer {
5981            font-size: 12px !important;
5982        }
5983
5984        .main-cart-review-align {
5985            padding: 16px;
5986            background: #ffffff;
5987        }
5988
5989        .cart__reviews-text p {
5990            -webkit-line-clamp: 3;
5991            min-height: 60px;
5992        }
5993    }
5994</style>
5995
5996
5997  </div>
5998
5999
6000  <div class="cart__footer">
6001    <div
6002      class="cart__item-sub cart__item-row cart__item--subtotal"
6003      id="focus-subtotal">
6004      <div id="subtotal-text">Subtotal</div>
6005      <div data-subtotal id="price-text">
6006        $0.00
6007      </div>
6008    </div>
6009    <input
6010      hidden
6011      id="total-price"
6012      value="0">
6013    <div data-discounts></div>
6014
6015
6016<div class="cart_savings  d-none  ">
6017<span> You Saved </span>
6018
6019<span class="cart_savings_amount  d-none  "> $0.00</span>
6020  </div>
6021
6022
6023    <div class="cart__item-row cart__checkout-wrapper payment-buttons">
6024      
6025        <div class="checkout-btn-class">
6026          <button
6027            type="submit"
6028            name="checkout"
6029            data-terms-required="false"
6030            class="btn btn-custom btn-orange-bg cart__checkout cart__checkout_enabled">
6031            Checkout 
6032          </button>
6033        </div>
6034      
6035      
6036    </div>
6037
6038    <div class="cart__item-row--footer text-center">
6039      <small class="shipping-at-checkout-text">Shipping, taxes and discounts calculated at checkout </small>
6040    </div>
6041  </div>
6042</form>
6043
6044
6045
6046
6047    <div class="empty-cart-main">
6048  <h2 class="empty-cart-title">your cart is empty</h2>
6049
6050  <div class="empty-cart-img">
6051    <svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewB
6051ox="0 0 200 200" fill="none" aria-hidden="true" focusable="false">
6052      <path d="M179.733 16.8L87.0667 15.3333C86.4 15.3333 85.8667 15.8 85.7333 16.4L74 31.5333C73.5333 32.1333 73.6667 32.9333 74.2667 33.4C74.8667 33.8667 75.6667 33.7333 76.1333 33.1333L86.0667 20.3333L92.3333 53.8L67.8667 41.4C67.5333 41.2 67.1333 41.2 66.8 41.3333C66.4667 41.4667 66.2 41.7333 66 42.0667L42.2667 98C42 98.6667 42.2667 99.4 42.9333 99.7333L67.9333 111.867L29.4 125C28.7333 125.267 28.3333 126 28.6 126.667C28.8667 127.333 29.6 127.733 30.2667 127.467L71.6 113.333L164.2 120.067L122.8 138.467L99.6 136.733C98.8667 136.667 98.2 137.2 98.2 137.933C98.1333 138.667 98.6667 139.333 99.4 139.333L122.933 141.067H123C123.2 141.067 123.4 141 123.533 140.933L165.267 122.4C165.533 122.267 165.733 122.067 165.867 121.867L165.533 158.533L124.2 180.933L124.6 143.2C124.6 142.467 124 141.867 123.267 141.867C122.533 141.867 121.933 142.467 121.933 143.2L121.533 183.2C121.533 183.667 121.8 184.133 122.2 184.333C122.4 184.467 122.667 184.533 122.867 184.533C123.067 184.533 123.333 184.467 123.533 184.4L167.533 160.533C167.933 160.333 168.2 159.867 168.2 159.4L168.6 119.133L183.867 57.4L184 56.6667L184.067 56.4667C184.133 56.2667 184.067 56 184 55.8L180.867 18.8C181 18.6 181.067 18.4 181.067 18.1333C181.067 17.4 180.467 16.8 179.733 16.8ZM134.8 103.867L160.8 117.2L73.3333 110.867L95.0667 57.6L140.467 58.2667C141.2 58.2667 141.8 57.6667 141.8 56.9333C141.8 56.2 141.2 55.6 140.467 55.6L95.2 54.9333L88.3333 18L176.467 19.4L156.133 40.8667C155.6 41.4 155.667 42.2667 156.2 42.7333C156.733 43.2667 157.6 43.2 158.067 42.6667L178.4 21.2L181.2 54.3333L154.333 46.6667C153.667 46.4667 152.933 46.8667 152.733 47.5333L149.667 56.5333L134.133 102.333C133.933 102.933 134.2 103.6 134.8 103.867ZM67.9333 44.4L92.4667 56.8667L70.7333 110.267L45.2667 97.8667L67.9333 44.4ZM166.333 117.067L137 102.067L152.133 57.4L154.8 49.6L181.133 57.2L166.333 117.067Z" fill="#B73D09"/>
6053      <path d="M18.2 131.533C17.9333 131.8 17.8 132.133 17.8 132.533L17.3333 176.4C17.3333 177.133 17.8667 177.667 18.6 177.733C19.4667 177.8 105.733 183.267 110 183.533H110.067C110.8 183.533 111.333 183 111.4 182.267C111.467 181.533 110.867 180.933 110.133 180.867C106.2 180.667 30.7333 175.867 20 175.133L20.4667 133.933L87.7333 139.133C88.4667 139.2 89.1333 138.667 89.1333 137.933C89.2 137.2 88.6667 136.533 87.9333 136.533L19.2 131.267C18.8 131.2 18.4667 131.333 18.2 131.533Z" fill="#B73D09"/>
6054    </svg>
6055  </div><div class="subscribe-now-btn">
6056    <a class="btn btn-custom btn--full btn-height btn-orange-bg"
6057       href="https://www.bokksu.com/products/classic-bokksu">Subscribe Now</a>
6058  </div>
6059</div>
6060  <style>
6061    .subscribe-now-btn{
6062    margin-top: 40px;
6063  }
6064    .site-header__drawer-animate.is-empty {
6065      background: var(--colorWhite) !important;
6066    }
6067  .is-empty .empty-cart-main{
6068    display: flex;
6069  }
6070  .btn-height{
6071    height:48px !important;
6072    width: 320px !important;
6073  }
6074  .empty-cart-main{
6075    display: none;
6076    /* width: 600px; */
6077    padding-bottom: 0px;
6078    flex-direction: column;
6079    align-items: center;
6080    /* gap: 56px; */
6081    justify-content: center;
6082    background-color: white;
6083  }
6084  .empty-cart {
6085    padding-bottom: 0 !important;
6086  }
6087  .empty-cart-title{
6088    font-family: "Montserrat", sans-serif;
6089    font-size: 14px !important;
6090    font-style: normal;
6091    font-weight: 500;
6092    line-height: 18px!important;
6093    letter-spacing: 5px;
6094    text-transform: uppercase !important;
6095    margin-top: 56px;
6096    color: #828282;
6097    margin-bottom: 56px;
6098  }
6099
6100  .empty-cart-img{
6101    display: flex;
6102    width: 260px;
6103    height: 260px;
6104    justify-content: center;
6105    align-items: center;
6106    gap: 8px;
6107    background: #F4EEE5;
6108    border-radius: 50%;
6109  }
6110  .empty-cart-img svg {
6111    width: 160px;
6112    height: 160px;
6113  }
6114  p.f-shipping-text {
6115    text-align: center;
6116    font-family: Lato;
6117    font-size: 16px;
6118    font-style: normal;
6119    font-weight: 400;
6120    line-height: 24px;
6121    letter-spacing: 0.5px;
6122    margin-top: 32px;
6123    margin-bottom: 32px;
6124    color: #828282;
6125    visibility:hidden;
6126  }
6127
6128  .subscribe-now-btn .btn.btn-custom.btn-orange-bg{
6129  line-height: 22px !important;
6130  }
6131  
6132
6133
6134
6135  .gift-products-certificate-empty-cart {
6136    padding: 6px 10px;
6137  }
6138
6139
6140  .align-close-btn-main {
6141    flex: 1 1 auto;
6142    display: flex;
6143  }
6144
6145  @media screen and (min-width:850px) {
6146    .align-main-cart-customer.adjust-mob-cart.cart-empty{
6147
6148      display: block;
6149      width: 100%;
6150      overflow: scroll;
6151    }
6152    .site-header__drawer-animate.is-empty{
6153      width: 100% !important;
6154      overflow: auto;
6155      max-width: 100% !important
6156    }
6157    /* .empty-cart-main{
6158        padding-bottom: 3em;
6159    } */
6160    /* #HeaderCart{
6161      overflow: scroll;
6162    } */
6163  }
6164  @media screen and (max-width:849px) {
6165    .empty-cart-main{
6166        padding-bottom: 3em;
6167    }
6168  }
6169
6170  @media screen and (max-width: 680px) {
6171    .empty-cart-img {
6172      width: 240px;
6173      height: 240px;
6174    }
6175    .empty-cart-img svg {
6176      width: 150px;
6177      height: 150px;
6178    }
6179    .empty-cart-title {
6180      margin-top: 40px;
6181      margin-bottom: 40px;
6182    }
6183    .header-wrapper--compressed .empty-cart-title {
6184      margin-top: 54px;
6185      margin-bottom: 54px;
6186    }
6187    .empty-cart-main {
6188      padding-bottom: 3.33em;
6189    }
6190    .is-empty .empty-cart-main , .is-empty.site-header__drawer-animate , .empty-cart .align-main-cart-customer ,
6191    .align-main-cart-customer.adjust-mob-cart.empty-cart {
6192      height: 100% !important;
6193    }
6194    /* .mob-cart-align {
6195      height: 100vh !important;
6196    } */
6197    .empty-cart .empty-cart-main {
6198       justify-content: flex-start;
6199    }
6200  }
6201
6202  /* #HeaderCartTrigger.cart-empty{
6203    padding-bottom: 26px !important;
6204  } */
6205  .main-free-gift-empty-cart {
6206    padding: 20px 20px 0;
6207  }
6208
6209
6210  .is-empty .main-progress-bar-with-markups.main-bar-align {
6211    display: none;
6212  }
6213  
6214</style>
6215
6216
6217
6218
6219
6220
6221<div class="empty-cart-main-products d-none">
6222  <p class="empty-text">your cart is empty</p>
6223
6224  <div class="empty-cart-container">
6225    <h2 class="picks-text">popular picks</h2>
6226    <div id="empty-cart-rebuy-products"></div>
6227    <div class="discover-more-btn">
6228      <a class="btn btn-custom  btn-light-green-bg" href="https://www.bokksumarket.com/collections/all-products">discover more</a>
6229    </div>
6230  </div>
6231</div>
6232
6233<!-- <div class="site-header__cart-empty" tabindex="0">Your cart is currently empty, please take a look at our collection page for delicious snack to add.</div> -->
6234<style>
6235    .main-dualcart.subscription-product-container + .gift-subscription-container {
6236    margin-top: 20px;
6237} 
6238  /* Empty Cart Design for Products Css starts */
6239  .cart_savings{
6240    display: flex;
6241    justify-content: space-between;
6242    margin-bottom: 20px;
6243  }
6244  .cart_savings span{
6245    color:#EC1C24;
6246    font-weight: 700;
6247  }
6248
6249  .is-empty .empty-cart-main-products {
6250    display: block
6251  }
6252  .empty-cart-main-products {
6253    padding: 0 40px 64px;
6254    display: none
6255  }
6256  .img-height {
6257    height: 56px
6258  }
6259  .empty-cart-rebuy-products {
6260    display: flex;
6261    flex-wrap: wrap;
6262    justify-content: end;
6263    line-height: 1.4;
6264    margin-top: 8px;
6265  }
6266  .free-gift-img img {
6267    width: 70px !important;
6268    height: 70px !important;
6269  }
6270  .free-gift-img {
6271    min-width: 70px !important;
6272    min-height: 70px !important;
6273  }
6274  .align-name-free-gift {
6275    margin-right: 10px;
6276  }
6277  .free-gift-titles {
6278    overflow: hidden;
6279    text-overflow: ellipsis;
6280    display: -webkit-box;
6281    -webkit-line-clamp: 2;
6282    -webkit-box-orient: vertical;
6283  }
6284  .gift-free-add-btn button {
6285    font-size: 14px !important;
6286    padding: 2px 14px !important;
6287  }
6288  .gift-products {
6289    padding: 10px 50px;
6290  }
6291
6292  .gwp-with-choice .gift-products {
6293    padding: 5px 20px;
6294  }
6295
6296
6297  .empty-cart-plus-icon {
6298    display: flex;
6299    width: 40px;
6300    height: 40px;
6301    padding: 14px 8px 8px;
6302    justify-content: center;
6303    align-items: center;
6304    gap: 8px;
6305    background: #6CA16E;
6306    color: white;
6307    border-radius: 24px;
6308    position: absolute;
6309    top: -12px;
6310    right: -12px;
6311  }
6312
6313  #super-scrip {
6314    top: -6.1px
6315  }
6316
6317
6318  .align-main-cart-customer.is-empty {
6319    padding-bottom: 0;
6320  }
6321
6322  .market-cart .cart__image img {
6323    position: initial !important;
6324  }
6325
6326  .align-name-free-gift-certificate {
6327    margin-left: 10px;
6328  }
6329
6330  .cart__item-details .onward-tracking-normal {
6331    min-width: 100% !important;
6332  }
6333
6334  @media only screen and (max-width:1430px) and(min-width: 850px) {
6335    .empty-cart-main-products {
6336      height: 75vh;
6337      overflow: auto;
6338      padding: 0 40px;
6339    }
6340    .empty-cart-main-products::-webkit-scrollbar {
6341      width: 1px;
6342    }
6343
6344  }
6345  @media only screen and (max-width: 850px) {
6346    .customer-loved.is-empty {
6347      display: none !important
6348    }
6349    .purchase-items.is-empty {
6350      display: none !important
6351    }
6352    .mob-cart-align {
6353      width: 100% !important
6354    }
6355    .align-main-cart-customer.is-empty {
6356      height: 80vh;
6357      overflow: auto; 
6358      justify-content: flex-end;
6359    }
6360    .align-main-cart-customer::-webkit-scrollbar {
6361      width: 1px;
6362    }
6363  }
6364  /* Empty Cart Design for Products Css Ends */
6365
6366
6367
6368  /* Empty Cart Design */
6369
6370  .empty-cart-text h4 {
6371    font-size: 16px;
6372    font-style: normal;
6373    font-weight: 400;
6374    line-height: 24px; /* 150% */
6375    letter-spacing: 0.5px;
6376    font-family: 'Lato';
6377    color: #828282;
6378    display: flex;
6379    padding: 8px;
6380    justify-content: center;
6381    align-items: center;
6382    gap: 8px;
6383    margin: 0;
6384  }
6385
6386  .title-pr-empty h3 {
6387    font-size: 32px;
6388    font-style: normal;
6389    font-weight: 400;
6390    line-height: 36px; /* 112.5% */
6391    text-transform: capitalize !important;
6392    margin-bottom: 24px;
6393    text-align: center;
6394    font-family: 'OrpheusPro';
6395  }
6396
6397  .product-img-empty-cart {
6398    display: flex;
6399    align-items: center;
6400    gap: 16px;
6401  }
6402
6403  .product-img-empty-cart p {
6404    font-size: 16px;
6405    font-style: normal;
6406    font-weight: 400;
6407    line-height: 24px; /* 150% */
6408    letter-spacing: 0.5px;
6409    /* font-family: 'Lato';
6410      opacity: 0.5; */
6411    margin: 0;
6412  }
6413
6414  .main-empty-pr {
6415    display: flex;
6416    align-items: center;
6417    justify-content: space-between;
6418    gap: 16px;
6419    padding: 16px;
6420    border-radius: 8px;
6421    background: #fff;
6422  }
6423
6424  .chevron-empty-cart img {
6425    display: block;
6426  }
6427
6428  .is-empty .empty-cart-design-main {
6429    display: block;
6430  }
6431
6432
6433  .empty-cart-design-main {
6434    padding: 18px 3em 10px;
6435    display: none;
6436  }
6437
6438  .listing-empty-cart {
6439    display: flex;
6440    flex-direction: column;
6441    gap: 24px;
6442    /* max-height: 27.5vh; */
6443    /* overflow: auto; */
6444  }
6445
6446
6447  .listing-empty-cart::-webkit-scrollbar-track {
6448    -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
6449    border-radius: 10px;
6450    background-color: #dbdbdb;
6451  }
6452
6453  .listing-empty-cart::-webkit-scrollbar {
6454    width: 6px;
6455    height: 6px;
6456    background-color: #dbdbdb;
6457  }
6458
6459  .listing-empty-cart::-webkit-scrollbar-thumb {
6460    border-radius: 10px;
6461    -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
6462    background-color: #7594ae;
6463  }
6464
6465
6466
6467  .main-empty-cart-btn a {
6468    width: 100%;
6469    border-radius: 12px;
6470    margin-top: 24px;
6471    background: var(--brand_color_1) !important;
6472    border-color: var(--brand_color_1) !important;
6473    font-size: 16px !important;
6474    line-height: 22px !important; /* 137.5% */
6475    letter-spacing: 5px !important;
6476    font-weight: 500;
6477  }
6478
6479  #empty-cart-btn:hover,
6480  #empty-cart-btn:active,
6481  #empty-cart-btn:focus {
6482    border-color: var(--brand_color_1) !important;
6483    color: var(--brand_color_1) !important;
6484  }
6485
6486
6487  .header-wrapper--compressed .site-header__drawer {
6488    top: 0;
6489  }
6490  /* Dual Cart */
6491  .align-title-minicart h3 {
6492    font-weight: 400;
6493    font-size: 31px !important;
6494    line-height: 38px;
6495    color: #000000;
6496    text-transform: initial !important;
6497    /* white-space: nowrap; */
6498    margin: 0;
6499    letter-spacing: initial;
6500  }
6501  .minicart-total-amount-section h4 {
6502    font-family: 'Lato' !important;
6503    font-style: normal;
6504    font-weight: 400;
6505    font-size: 16px;
6506    line-height: 25px;
6507    text-align: right;
6508    color: black;
6509    letter-spacing: initial;
6510    margin: 0;
6511    text-transform: initial;
6512  }
6513  .align-title-minicart {
6514    display: flex;
6515    justify-content: space-between;
6516    align-items: center;
6517  }
6518  .main-dualcart {
6519    background: #FFFFFF;
6520    border-radius: 12px;
6521  }
6522  .title-section-minicart {
6523    border-bottom: 2px solid #D2DED3;
6524    padding: 16px 16px 10px;
6525  }
6526  .align-products-dualcart .cart__item {
6527    padding: 14px 10px !important;
6528    margin: 0 20px !important;
6529    border-bottom: 2px solid #D2DED3 !important;
6530  }
6531  .align-products-dualcart .cart__item:last-child {
6532    border: none !important;
6533  }
6534  .align-heading-check {
6535    margin-top: 1.5em;
6536  }
6537  .cart__scrollable {
6538    margin-bottom: 0;
6539  }
6540  .free-shipping-progress, .free-gift-progress,
6541  .free-shipping-progress-frozen {
6542    height: 100%;
6543    background: var(--brand_color_1);
6544    /*     transition: width .3s; */
6545    border-radius: 10px;
6546    z-index: 0;
6547    position: relative;
6548  }
6549  .free-shipping-progress-subscription {
6550    height: 100%;
6551    background: var(--brand_color_1);
6552    transition: width 0.3s;
6553    border-radius: 10px;
6554    z-index: 0;
6555    position: relative;
6556  }
6557  .min-shipping-mark {
6558    position: absolute;
6559    top: 50%;
6560    transform: translateY(-50%);
6561    z-index: 10;
6562    height: 10px;
6563    width: 2px;
6564    background: #294f2e;
6565    display: none;
6566  }
6567  .free-shipping-bar::before {
6568    content: "";
6569    background: #00000026;
6570    position: absolute;
6571    left: 0;
6572    height: 6px;
6573    right: 100%;
6574    top: 50%;
6575    z-index: 0;
6576    transform: translateY(-50%);
6577    width: 100%;
6578    border-radius: 10px;
6579  }
6580  .free-shipping-bar {
6581    position: relative;
6582    height: 6px;
6583    /* overflow: hidden; */
6584  }
6585  .free-shipping-bar-mob-popup {
6586    margin-top: 8px;
6587  }
6588  .progress-bar-titles {
6589    margin-top: 20px;
6590  }
6591  .progress-bar-titles p {
6592    margin: 0;
6593  }
6594  .progress-bar-titles p:last-child {
6595    margin-top: 4px;
6596    margin-bottom: 4px;
6597  }
6598  .main-progress-bar {
6599    margin: 0 0 1em;
6600  }
6601  /* SHO-294: accent-edge success notice when a preorder unlocks free shipping */
6602  .main-progress-bar.is-preorder-freeship {
6603    display: flex;
6604    align-items: center;
6605    background: #ffffff;
6606    border: 1px solid #e3e3df;
6607    border-left: 3px solid #1d7a3f;
6608    border-radius: 6px;
6609    margin: 10px 0 12px;
6610    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
6611  }
6612  .main-progress-bar.is-preorder-freeship .progress-bar-titles {
6613    display: flex;
6614    align-items: center;
6615    gap: 8px;
6616    margin-top: 0;
6617    width: 100%;
6618  }
6619  .pill-congrats {
6620    display: none;
6621  }
6622  .main-progress-bar.is-preorder-freeship .pill-congrats {
6623    display: inline;
6624    font-size: 13px;
6625    font-weight: 700;
6626    color: #1d7a3f;
6627  }
6628  .main-progress-bar.is-preorder-freeship .progress-bar-titles > .pill-truck-icon {
6629    display: block;
6630    width: 16px;
6631    height: 16px;
6632    color: #1d7a3f;
6633    flex: 0 0 auto;
6634  }
6635  .main-progress-bar.is-preorder-freeship .progress-bar-titles > .free-shipping-text {
6636    display: inline;
6637    margin: 0;
6638    font-size: 13px;
6639    line-height: 1.35;
6640  }
6641  .main-progress-bar.is-preorder-freeship .align-floating-text-bottom {
6642    display: flex;
6643    align-items: center;
6644  }
6645  .main-progress-bar.is-preorder-freeship .floating-bottom-text-img {
6646    display: flex;
6647    flex: 0 0 auto;
6648    width: auto;
6649    height: auto;
6650    padding: 0;
6651    background: none;
6652    border: 0;
6653    border-radius: 0;
6654    box-shadow: none;
6655  }
6656  .pill-truck-icon {
6657    display: none;
6658  }
6659  .main-progress-bar.is-preorder-freeship .market-icon {
6660    display: none;
6661  }
6662  .main-progress-bar.is-preorder-freeship .pill-truck-icon {
6663    display: block;
6664    width: 16px;
6665    height: 16px;
6666    color: #1d7a3f;
6667  }
6668  .main-progress-bar.is-preorder-freeship .bar-heading {
6669    display: inline;
6670    margin: 0;
6671    font-size: 13px;
6672    font-weight: 700;
6673    color: #1d7a3f;
6674  }
6675  .main-progress-bar.is-preorder-freeship .free-shipping-text {
6676    display: inline;
6677    margin: 0 0 0 5px;
6678    font-size: 13px;
6679    line-height: 1.35;
6680  }
6681  .main-progress-bar.is-preorder-freeship .free-shipping-bar,
6682  .main-progress-bar.is-preorder-freeship .bar-heading-2,
6683  .main-progress-bar.is-preorder-freeship .free-shipping-text-for-gift {
6684    display: none;
6685  }
6686  .boutique-container-margin {
6687    margin-top: 24px;
6688  }
6689  .cart__scrollable .rebuy-product-media {
6690    width: 120px !important;
6691    height: 120px !important;
6692  }
6693  .cart__scrollable .rebuy-widget {
6694    padding-bottom: 0 !important;
6695    margin-left: 0 !important;
6696  }
6697
6698  /* Cart Alignment */
6699  .site-header__drawer-animate .cart__item-sub,
6700  .site-header__drawer-animate .cart__item {
6701    align-items: start;
6702  }
6703  .site-header__drawer-animate .cart__item-price-col {
6704    display: flex;
6705    align-items: center;
6706    justify-content: end;
6707    flex-wrap: wrap;
6708  }
6709  .grid-product__price--original.compare_at{
6710    padding-left:10px;
6711    font-size:18px
6712  }
6713  .site-header__drawer-animate small.cart__discount {
6714    width: 100%;
6715  }
6716  .cart__price--strikethrough {
6717    margin-right: 6px;
6718  }
6719  /* Cart Alignment End */
6720
6721  @media only screen and (min-width: 1024px) {
6722    .site-header__drawer-animate .cart__item-price-col {
6723      margin-left: 95px;
6724    }
6725  }
6726
6727  @media only screen and (max-width: 960px) {
6728    .site-header__drawer-animate,
6729    .site-header__drawer {
6730      min-width: 100%;
6731      max-width: 100%;
6732      width: 100%;
6733    }
6734    .shipping-at-checkout-text {
6735      font-size: 13px !important;
6736      letter-spacing: 0 !important;
6737    }
6738    .show-not-mob {
6739      display: none;
6740    }
6741    .grid-product__price--original.compare_at{
6742  
6743    font-size:16px
6744  }
6745  }
6746
6747  /* @media screen and (max-width: 850px) {
6748      .empty-cart-text h4 {
6749        height: 30vh;
6750      }
6751    } */
6752  @media only screen and (min-width: 850px) and(max-width:960px) {
6753    .empty-cart-design-main {
6754      height: 70vh;
6755      overflow: auto
6756    }
6757
6758    .empty-cart-design-main::-webkit-scrollbar {
6759      width: 1px;
6760    }
6761  }
6762  @media only screen and (max-width: 850px) {
6763    .customer-loved.is-empty {
6764      display: none;
6765    }
6766    .purchase-items.is-empty {
6767      display: none !important
6768    }
6769    .mob-cart-align::-webkit-scrollbar {
6770      width: 1px;
6771    }
6772    .mob-cart-align {
6773      width: 100%
6774    }
6775  }
6776  @media only screen and (max-width: 767px) {
6777    .site-header__drawer-animate {
6778      width: 100%;
6779      min-width: 100%;
6780    }
6781    .cart__scrollable {
6782      margin-bottom: 205px;
6783    }
6784    .empty-cart-main-products {
6785      padding: 0 40px;
6786    }
6787    .empty-cart-main-products .empty-text {
6788      margin-top: 0
6789    }
6790  }
6791  @media only screen and (max-width: 580px) {
6792    .cart__item-row {
6793  margin-bottom: 4px
6794}
6795
6796    .align-title-minicart h3 {
6797      font-size: 20px !important;
6798      line-height: 29px !important;
6799    }
6800    .minicart-total-amount-section h4 {
6801      font-size: 16px !important;
6802      line-height: 19px !important;
6803    }
6804    .progress-bar-titles p {
6805      /* padding: 0 0 4px; */
6806      font-size: 14px;
6807    }
6808    .align-products-dualcart .cart__item {
6809      margin: 0 10px !important;
6810    }
6811    .cart__image a {
6812      width: 70px;
6813      height: 70px
6814    }
6815    .site-header__cart .cart__image {
6816      flex: 0 0 76px;
6817    }
6818    .cart__item-name {
6819      margin-bottom: 4px;
6820    }
6821    .cart__scrollable .rebuy-product-block {
6822      flex-wrap: nowrap;
6823    }
6824    .cart__scrollable .rebuy-product-media {
6825      width: 80px !important;
6826      height: 80px !important;
6827    }
6828    .cart__scrollable .rebuy-product-actions {
6829      width: 50px !important;
6830    }
6831    .cart__scrollable button.rebuy-button svg {
6832      width: 36px;
6833      height: 36px;
6834      margin-top: 6px;
6835    }
6836    .cart__scrollable .rebuy-money.sale {
6837      font-size: 16px;
6838    }
6839    .cart__scrollable .rebuy-money.compare-at {
6840      font-size: 16px;
6841    }
6842    .cart__item-price-col {
6843      display: flex;
6844      flex-wrap: wrap;
6845      justify-content: end;
6846      line-height: 1.4;
6847      margin-top: 8px;
6848    }
6849    .free-gift-img img {
6850      width: 70px !important;
6851      height: 70px !important;
6852      object-fit: contain;
6853    }
6854    .free-gift-img {
6855      min-width: 70px !important;
6856      min-height: 70px !important;
6857    }
6858    .align-name-free-gift {
6859      margin-right: 10px;
6860    }
6861    .free-gift-titles {
6862      overflow: hidden;
6863      text-overflow: ellipsis;
6864      display: -webkit-box;
6865      -webkit-line-clamp: 2;
6866      -webkit-box-orient: vertical;
6867    }
6868    .gift-free-add-btn button {
6869      font-size: 14px !important;
6870      padding: 2px 14px !important;
6871    }
6872    .gift-products {
6873      padding: 10px 50px 10px 30px;
6874    }
6875  }
6876
6877  @media only screen and (max-width: 349px) {
6878    .cart__item-name {
6879      display: -webkit-box;
6880      -webkit-line-clamp: 3;
6881      -webkit-box-orient: vertical;
6882      overflow: hidden;
6883    }
6884    .cart__scrollable {
6885      margin-bottom: 230px;
6886    }
6887    .title-section-minicart {
6888      padding: 16px 12px 10px
6889    }
6890    .cart__item-details .cart__item-sub {
6891      display: flex;
6892      align-items: center;
6893      justify-content: space-between;
6894    }
6895    .floating-text-bottom p,
6896    #floating-frozen-shipping-text {
6897      text-align: left;
6898      font-weight: 400;
6899    }
6900  }
6901  .cart__items{
6902  display: flex;
6903  flex-direction: column;
6904}
6905.cart__items > * {
6906    order: 0;
6907}
6908
6909
6910  /* Free Gift Customization */
6911
6912  .free-gift-img {
6913    min-width: 100px;
6914    min-height: 100px;
6915  }
6916
6917  .free-gift-img img {
6918    width: 100px !important;
6919    height: 100px !important;
6920  }
6921
6922  .title-section-minicart-free-gifts {
6923    display: block !important;
6924  }
6925
6926  .free-gift-certificate-bar-btq .free-gift-certificate-text {
6927    font-size: 15px;
6928    line-height: 24px;
6929    text-align: center;
6930  }
6931
6932  .free-gift-certificate-progress {
6933    height: 100%;
6934    background: var(--brand_color_1);
6935    transition: width .3s;
6936    border-radius: 10px;
6937    z-index: 0;
6938    position: relative;
6939  }
6940
6941  .align-gift-prod {
6942    display: flex;
6943    align-items: center;
6944  }
6945
6946  .align-name-free-gift {
6947    max-width: 300px;
6948    margin-left: 10px;
6949  }
6950
6951  .gwp-with-choice .align-name-free-gift {
6952    max-width: 400px;
6953  }
6954
6955  .free-gift-titles a {
6956    text-align: left;
6957  }
6958
6959  .ajax-cart__price.price {
6960    display: flex;
6961  }
6962
6963  .free-gift-titles {
6964    color: #000000;
6965    text-align: left;
6966  }
6967
6968  .gift-products {
6969    display: flex;
6970    align-items: center;
6971    justify-content: space-between;
6972    padding: 10px 50px;
6973  }
6974
6975  .gift-free-add-btn button {
6976    font-size: 14px;
6977    text-transform: inherit;
6978    border-radius: 60px;
6979    letter-spacing: 1px;
6980    background: var(--brand_color_1);
6981    padding: 6px 20px !important;
6982    color: #fff !important;
6983  }
6984
6985  .main-slider-gift .swiper-button-next:after,
6986  .main-slider-gift .swiper-rtl .swiper-button-prev:after,
6987  .main-slider-gift .swiper-button-prev:after,
6988  .main-slider-gift .swiper-rtl .swiper-button-next:after {
6989    font-size: 16px;
6990    background: #var(--brand_color_1);;
6991    width: 30px;
6992    height: 32px;
6993    display: flex;
6994    align-items: center;
6995    justify-content: center;
6996    border-radius: 100px;
6997    padding: 0 16px;
6998    color: #fff;
6999  }
7000
7001  .money,
7002  .sale {
7003    margin-right: 4px;
7004  }
7005
7006  /* .section-minicart-products {
7007    margin-bottom: 20px;
7008  } */
7009
7010  .free-gift-certificate-amount-text {
7011    color: var(--sale-badge);
7012    font-weight: 700;
7013  }
7014
7015  span.cart_delete_close svg {
7016    width: 11px;
7017    height: 11px;
7018  }
7019
7020  .align-free-gift span.icon {
7021    width: 20px;
7022    height: 20px;
7023    background: rgba(10, 10, 10, 0.2);
7024    border-radius: 100px;
7025    display: flex;
7026    align-items: center;
7027    justify-content: center;
7028  }
7029
7030  span.cart_delete_close {
7031    width: 20px;
7032    height: 20px;
7033    display: block;
7034  }
7035
7036  .cart_delete_close span {
7037    display: flex;
7038    align-items: center;
7039    justify-content: center;
7040    border-radius: 100px;
7041    background: rgba(10, 10, 10, 0.2);
7042  }
7043
7044  .align-free-gift .swiper-button-next:after,
7045  .align-free-gift .swiper-button-prev:after {
7046    border: solid #fff;
7047    border-width: 0 2px 2px 0;
7048    display: inline-block !important;
7049    height: 8.5px !important;
7050    margin: auto !important;
7051    padding: 3px !important;
7052    border-radius: 0 !important;
7053    width: 8px !important;
7054    transform: rotate(-45deg) !important;
7055  }
7056
7057  .align-free-gift .swiper-button-next,
7058  .align-free-gift .swiper-button-prev {
7059    width: 32px !important;
7060    height: 32px !important;
7061    background: var(--brand_color_1);
7062    border-radius: 100px !important;
7063    transform: translateY(6px) !important;
7064  }
7065
7066  .align-free-gift .swiper-button-prev::after {
7067    transform: rotate(135deg) !important;
7068  }
7069
7070  .align-close-btn-main {
7071    flex: 1 1 auto;
7072    display: flex;
7073  }
7074
7075  .floating-bottom-text-img {
7076    min-height: 40px;
7077    min-width: 40px;
7078  }
7079    .floating-text-bottom p {
7080      text-align: left;
7081    }
7082
7083    #floating-frozen-shipping-text {
7084      text-align: left;
7085      font-weight: 400;
7086    }
7087
7088
7089
7090    /*  Progress header bar  */
7091
7092    .subtotal-div {
7093      display: flex;
7094      flex-direction: row;
7095      justify-content: space-between;
7096    }
7097
7098    .subtotal-div p {
7099      margin: 0
7100    }
7101
7102    .collection-checkout-btn {
7103      width: 100%;
7104      margin-top: 30px;
7105      background: #294f2e
7106    }
7107    /* #floating-frozen-shipping-text {
7108            color:#000000 !important;
7109          } */
7110    button[disabled] {
7111      opacity: 0.5;
7112      box-shadow: none
7113    }
7114    .bottom-checkout-txt {
7115      margin-top: 12px;
7116      color: #cbcbcb !important;
7117      font-size: 12px !important;
7118    }
7119    .align-floating-text-bottom {
7120      display: flex;
7121      align-items: start;
7122      margin-top: 10px;
7123      margin-bottom: 10px;
7124    }
7125 
7126    .floating-text-bottom h4 {
7127      color: var(--brand_color_1);
7128      font-weight: 700;
7129      line-height: 14px;
7130      text-align: left;
7131      /* font-family: "Neue Haas Unica" !important; */
7132      text-transform: initial;
7133      /* letter-spacing: 1px !important; */
7134      display: block;
7135      letter-spacing: 0;
7136      text-rendering: optimizeLegibility;
7137      -webkit-font-smoothing: antialiased;
7138      margin-bottom: 0 !important;
7139    }
7140
7141    .floating-text-bottom {
7142      margin-left: 16px;
7143    }
7144
7145    .floating-bottom-text-img {
7146      border: 1px solid #AEAEAE;
7147      border-radius: 8px;
7148      width: 40px;
7149      height: 40px;
7150      display: flex;
7151      align-items: center;
7152      justify-content: center;
7153    }
7154    button.collection-checkout-btn.button.button--add-to-cart {
7155      font-size: 14px !important;
7156    }
7157    #floating-frozen-checkout-btn .floating-checkout-btn {
7158      color: #ffffff;
7159      background-color: var(--cta_outline_primary_static);
7160      border-color: var(--cta_outline_primary_static);
7161
7162      width: 100%;
7163      font-size: 14px !important;
7164      margin-top: 12px;
7165      height: 52.5px;
7166    }
7167    /* .amount-text-color {
7168      color: #000000;
7169    } */
7170
7171    button[disabled] {
7172      opacity: 0.5;
7173      box-shadow: none
7174    }
7175    .bottom-checkout-txt {
7176      margin-top: 12px;
7177      color: #cbcbcb !important;
7178      font-size: 12px !important;
7179    }
7180    .align-floating-text-bottom {
7181      display: flex;
7182      align-items: start;
7183    }
7184
7185    .floating-text-bottom h4 {
7186      color: var(--brand_color_1);
7187      font-weight: 700;
7188      line-height: 14px;
7189      text-align: left;
7190
7191      text-transform: initial;
7192      /* letter-spacing: 1px !important; */
7193      display: block;
7194      letter-spacing: 0;
7195      text-rendering: optimizeLegibility;
7196      -webkit-font-smoothing: antialiased;
7197      margin-bottom: 0 !important;
7198    }
7199
7200    .floating-text-bottom {
7201      margin-left: 16px;
7202    }
7203
7204    .floating-bottom-text-img {
7205      border: 1px solid #AEAEAE;
7206      border-radius: 8px;
7207      width: 40px;
7208      height: 40px;
7209      display: flex;
7210      align-items: center;
7211      justify-content: center;
7212    }
7213    button.collection-checkout-btn.button.button--add-to-cart {
7214      font-size: 14px !important;
7215    }
7216    #floating-frozen-checkout-btn .floating-checkout-btn {
7217      color: #ffffff;
7218      background-color: var(--cta_outline_primary_static);
7219      border-color: var(--cta_outline_primary_static);
7220
7221      width: 100%;
7222      font-size: 14px !important;
7223      margin-top: 12px;
7224      height: 52.5px;
7225    }
7226    /* .amount-text-color {
7227            color: #000000;
7228          } */
7229          
7230
7231
7232
7233/* updated styles for free gift  */
7234.gift_wrapper {
7235    display: flex;
7236    position: absolute;
7237    top: -22px;
7238    width: 100%;
7239    justify-content: space-between;
7240    z-index: 1;
7241    background: transparent;
7242    flex-wrap: nowrap;
7243}
7244.gift_wrapper svg {
7245   height: 45px;
7246    width: 25px;
7247    min-width: 25px;
7248
7249}
7250.gift_wrapper > div {
7251    width: 100%;
7252    display: flex;
7253    align-items: center;
7254    margin-bottom: -4px;
7255    margin-left: -2px;
7256    margin-right: -1px;
7257}
7258.gift_wrapper > div span {
7259    content: '';
7260    background: var(--brand_color_1);
7261    width: 0;
7262    display: block;
7263    height: 6px;
7264    border-radius: 3px;
7265}
7266.main-progress-bar-with-markups  .free-shipping-bar {
7267    margin-top: 24px;
7268    margin-bottom: 24px;
7269}
7270.main-progress-bar-with-markups .progress-bar-titles{
7271  margin-top: 0;
7272}
7273.gift_wrapper svg.active > rect:first-child {
7274    fill: var(--brand_color_1);
7275}
7276.main-progress-bar-with-markups .floating-text-bottom svg * {
7277     stroke: var(--brand_color_1);
7278}
7279.gift_wrapper svg.active + div + svg:not(.active) rect:first-child, .gift_wrapper svg:nth-of-type(1):not(.active) rect:first-child {
7280  fill: var(--sale-badge);
7281  
7282  }
7283.main-progress-bar-with-markups .floating-text-bottom {
7284    width: 100%;
7285    text-align: center;
7286    margin-left: 0;
7287}
7288.main-progress-bar-with-markups .floating-text-bottom *{
7289    text-align: center !important;
7290}
7291.main-progress-bar-with-markups .floating-text-bottom p {
7292  color: #000000;
7293}
7294.main-progress-bar-with-markups  .floating-text-bottom h4 ,  .main-progress-bar-with-markups   .floating-text-bottom h4 *  {
7295  color: var(--brand_color_1) !important;
7296    }
7297.main-progress-bar-with-markups .floating-text-bottom p:empty {
7298    margin: 0;
7299}
7300.main-progress-bar-with-markups .floating-text-bottom p span{
7301  color: var(--sale-badge);
7302  font-weight: 700;
7303}
7304.main-progress-bar-with-markups .floating-text-bottom h4{
7305  display: flex;
7306  justify-content: center;
7307  align-items: center;
7308  text-transform: none;
7309  gap: 7px;
7310}
7311.main-progress-bar-with-markups .floating-text-bottom h4 svg {
7312    height: 17px;
7313    width: 17px;
7314}
7315.main-progress-bar-with-markups.main-bar-align {
7316    padding: 2px 16px;
7317    background: #FFFFFF;
7318    border-radius: 12px;
7319    margin-bottom: 20px;
7320    margin-top: 20px;
7321}
7322 .main-progress-bar-with-markups .free-shipping-progress{
7323    margin-left: 25px;
7324    margin-right: 23px;
7325    max-width: calc(100% - 48px);
7326    border-bottom-left-radius: 0;
7327    border-top-left-radius: 0;
7328} 
7329
7330.sugoi-mart-menu .main-progress-bar-with-markups .floating-text-bottom h4{
7331  font-family: 'Inter' !important;
7332}
7333
7334.is-empty .main-progress-bar-with-markups.main-bar-align {
7335    display: none;
7336}
7337
7338
7339.subscription-product-container .subscription-free-shipping-msg{
7340    text-align: center;
7341  }
7342  .cart-milestone  .progress-bar-titles{
7343    margin-top: 0 ;
7344  }
7345  .customer-loved.customer-loved-v1.hide-customer-also-loved, .purchase-items.past-purchase-order.hide-purchase-items {
7346    visibility: hidden !important;
7347    height: 0 !important;
7348    width: 0 !important;
7349    padding: 0 !important;
7350    min-width: 0 !important;
7351    max-width: 0 !important;
7352  }
7353  @media all and (max-width: 850px){
7354  .customer-loved.customer-loved-v1  .grid-product__price--savings  {
7355    position: static !important;
7356   }
7357  }
7358.frozen-product-cart-container{
7359  margin-top:20px;
7360}
7361/* updated free gift design section  */
7362
7363
7364  /* SHO-233 */
7365  .empty-cart-prices .strike-through-price {
7366    text-decoration: line-through;
7367    color: #aeaeae;
7368  }
7369
7370  </style>
7371
7372 
7372<script>
7373    var emptyCartRecoSeedId = null;
7374
7375    function emptyCartRecoCentsToParts(cents) {
7376      var n = (Number(cents) || 0) / 100;
7377      return n.toFixed(2).split('.');
7378    }
7379
7380    function emptyCartRecoFetchProducts(seedId) {
7381      if (typeof theme !== 'undefined' && theme && theme.ShopifyRecommendations && theme.ShopifyRecommendations.fetch) {
7382        return theme.ShopifyRecommendations.fetch(seedId, 10, 'related');
7383      }
7384      return fetch('/recommendations/products.json?product_id=' + encodeURIComponent(seedId) + '&limit=10&intent=related')
7385        .then(function (response) { return response.json(); })
7386        .then(function (json) {
7387          var list = json.products || [];
7388          return list.filter(function (p) {
7389            var tags = p.tags;
7390            if (!tags) return true;
7391            var arr = Array.isArray(tags) ? tags : String(tags).split(',').map(function (t) { return t.trim(); });
7392            var hasExcludeReco = arr.some(function (t) {
7393              var lo = String(t).toLowerCase();
7394              return lo === 'exclude_recommendations' || lo === 'exclude_rebuy';
7395            });
7396            return !hasExcludeReco;
7397          });
7398        });
7399    }
7400
7401    if (emptyCartRecoSeedId) {
7402      emptyCartRecoFetchProducts(emptyCartRecoSeedId)
7403        .then(function (products) {
7404          var output = '';
7405          var filteredProducts = (products || []).filter(function (product) {
7406            var v = product.variants && product.variants[0];
7407            if (!v) return false;
7408            var invOk = typeof v.inventory_quantity === 'number' ? v.inventory_quantity > 0 : v.available;
7409            return product.title.length <= 35 && invOk && product.title.indexOf('Discovery Pack') === -1;
7410          }).slice(0, 3);
7411
7412          for (var i = 0; i < filteredProducts.length; i++) {
7413            var product = filteredProducts[i];
7414            var v = product.variants[0];
7415            var imgSrc = product.featured_image || (product.images && product.images[0]) || '';
7416            if (String(imgSrc).indexOf('//') === 0) imgSrc = 'https:' + imgSrc;
7417            var alt = product.title || '';
7418            var dparts = emptyCartRecoCentsToParts(v.price);
7419            var superScriptedDiscountedPrice = dparts[0] + '<sup>' + dparts[1] + '</sup>';
7420            var superScriptedOriginalPrice = '';
7421            if (v.compare_at_price) {
7422              var cparts = emptyCartRecoCentsToParts(v.compare_at_price);
7423              superScriptedOriginalPrice = '$' + cparts[0] + '<sup id="super-scrip">' + cparts[1] + '</sup>';
7424            }
7425
7426            output += '<div class="img-text-container">' +
7427                '<img class="empty-cart-img" src="' + imgSrc + '&width=100" alt="' + alt.replace(/"/g, '&quot;') + '">' +
7428                '<div class="img-title-price">' +
7429                    '<h2 class="img-title">' + product.title + '</h2>' +
7430                    '<div class="empty-cart-prices">' +
7431                        
7432                        '<span class="strike-through-price">' + superScriptedOriginalPrice + '</span>' +
7433                        '<span class="discounted-price">$' + superScriptedDiscountedPrice + '</span>' +
7434                    '</div>' +
7435                '</div>' +
7436                '<div class="empty-cart-plus-icon">' +
7437                      '<button type="button" class="text-link quick-add-btn js-quick-add-btn" tabindex="-1" onclick="addToCartSection1(' +
7438          product.id + ',' + v.id + ')" data-id="' + v.id + '">' +
7439                        '<span class="cirle-btn">' +
7440                          '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">' +
7441                            '<path d="M12 5V19" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>' +
7442                            '<path d="M5 12H19" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>' +
7443                            '</svg>' +
7444                          '<span class="icon__fallback-text">Add to cart</span>' +
7445                        '</span>' +
7446                    '</button>' +
7447               '</div>' +
7448             '</div>';
7449          }
7450
7451          $('#empty-cart-reco-products').html(output);
7452          $('#empty-cart-reco-products').css({"display": "flex", "flex-direction": "column", "ga
7452p": "24px"});
7453        });
7454    }
7455  </script>
7455
7456  
7457<script>
7458  (function() {
7459    let cartGiftModal, cartGiftModalClose, cartGiftCancelBtn, cartGiftForm, cartGiftNote, cartGiftCharCount, cartGiftSubmitBtn;
7460    let currentUpsellButton = null;
7461    let isInitialized = false;
7462    
7463    function initializeModalElements() {
7464      /* SHO-265: drawer rebuilds replace the modal node — re-initialize when the cached one is detached */
7465      if (isInitialized && cartGiftModal && document.body.contains(cartGiftModal)) return true;
7466      isInitialized = false;
7467
7468      cartGiftModal = document.getElementById('cartGiftModal');
7469      if (!cartGiftModal) return false;
7470      
7471      cartGiftModalClose = cartGiftModal.querySelector('.cart-gift-modal-close');
7472      cartGiftCancelBtn = cartGiftModal.querySelector('.btn-cancel');
7473      cartGiftForm = document.getElementById('cartGiftMessageForm');
7474      cartGiftNote = document.getElementById('cartGiftNote');
7475      cartGiftCharCount = cartGiftModal.querySelector('.char-count');
7476      cartGiftSubmitBtn = cartGiftModal.querySelector('.btn-submit');
7477      
7478      if (cartGiftModalClose && cartGiftCancelBtn && cartGiftForm && cartGiftNote && cartGiftCharCount && cartGiftSubmitBtn) {
7479        setupEventListeners();
7480        isInitialized = true;
7481        return true;
7482      }
7483      return false;
7484    }
7485    
7486    function openCartGiftModal(button) {
7487      if (!initializeModalElements()) {
7488        console.error('Cart gift modal elements not found');
7489        return;
7490      }
7491      currentUpsellButton = button;
7492      cartGiftModal.style.display = 'flex';
7493      
7494      const savedData = loadCartGiftData();
7495      if (savedData) {
7496        document.getElementById('cartGiftSender').value = savedData.sender || '';
7497        document.getElementById('cartGiftRecipient').value = savedData.recipient || '';
7498        document.getElementById('cartGiftNote').value = savedData.gift_note || '';
7499        
7500        const length = savedData.gift_note ? savedData.gift_note.length : 0;
7501        cartGiftCharCount.textContent = `${length} / 200`;
7502      }
7503      
7504      setTimeout(() => {
7505        updateCartGiftPreview();
7506        
7507        const senderInput = document.getElementById('cartGiftSender');
7508        const recipientInput = document.getElementById('cartGiftRecipient');
7509        const noteInput = document.getElementById('cartGiftNote');
7510        
7511        if (!recipientInput.value) {
7512          recipientInput.focus();
7513        } else if (!noteInput.value) {
7514          noteInput.focus();
7515        } else if (!senderInput.value) {
7516          senderInput.focus();
7517        } else {
7518          recipientInput.focus();
7519          recipientInput.select();
7520        }
7521      }, 50);
7522    }
7523    
7524    function closeCartGiftModal() {
7525      if (!cartGiftModal) return;
7526      
7527      cartGiftModal.style.display = 'none';
7528      // document.body.classList.remove('cart-modal-open');
7529      // document.documentElement.classList.remove('cart-modal-open');
7530      
7531      const sender = document.getElementById('cartGiftSender').value.trim();
7532      const recipient = document.getElementById('cartGiftRecipient').value.trim();
7533      const giftMessage = document.getElementById('cartGiftNote').value.trim();
7534      
7535      if (sender || recipient || giftMessage) {
7536        saveCartGiftData(sender, recipient, giftMessage);
7537      }
7538      
7539      currentUpsellButton = null;
7540    }
7541    
7542    function loadCartGiftData() {
7543      try {
7544        const savedData = sessionStorage.getItem('cartGiftMessageData');
7545        if (savedData) {
7546          return JSON.parse(savedData);
7547        }
7548      } catch (error) {
7549        console.error('Error loading cart gift data:', error);
7550      }
7551      return null;
7552    }
7553    
7554    function saveCartGiftData(sender, recipient, giftMessage) {
7555      try {
7556        const data = {
7557          sender: sender,
7558          recipient: recipient,
7559          gift_note: giftMessage,
7560          timestamp: Date.now()
7561        };
7562        sessionStorage.setItem('cartGiftMessageData', JSON.stringify(data));
7563      } catch (error) {
7564        console.error('Error saving cart gift data:', error);
7565      }
7566    }
7567    
7568    function updateCartGiftPreview() {
7569      const senderInput = document.getElementById('cartGiftSender');
7570      const recipientInput = document.getElementById('cartGiftRecipient');
7571      const messageInput = document.getElementById('cartGiftNote');
7572      const previewSender = document.getElementById('cartPreviewSender');
7573      const previewRecipient = document.getElementById('cartPreviewRecipient');
7574      const previewMessage = document.getElementById('cartPreviewMessage');
7575      const previewSection = document.getElementById('cartGiftPreview');
7576      
7577      if (!senderInput || !recipientInput || !messageInput || !previewSender || !previewRecipient || !previewMessage || !previewSection) {
7578        return;
7579      }
7580      
7581      const sender = senderInput.value.trim();
7582      const recipient = recipientInput.value.trim();
7583      const message = messageInput.value.trim();
7584      
7585      previewRecipient.textContent = recipient || 'Recipient\'s name';
7586      previewSender.textContent = sender || 'Your name';
7587      previewMessage.textContent = message || 'Your gift message will appear here...';
7588      
7589      const selectedOption = document.querySelector('.cart-gift-option-radio:checked');
7590      if (selectedOption && selectedOption.value === 'custom') {
7591        previewSection.style.display = 'block';
7592      } else {
7593        previewSection.style.display = 'none';
7594      }
7595    }
7596    
7597    function setupEventListeners() {
7598      const cartSenderInput = document.getElementById('cartGiftSender');
7599      const cartRecipientInput = document.getElementById('cartGiftRecipient');
7600      
7601      if (cartGiftNote) {
7602        cartGiftNote.addEventListener('input', () => {
7603          const length = cartGiftNote.value.length;
7604          cartGiftCharCount.textContent = `${length} / 200`;
7605          updateCartGiftPreview();
7606        });
7607      }
7608      
7609      if (cartSenderInput) {
7610        cartSenderInput.addEventListener('input', updateCartGiftPreview);
7611        cartSenderInput.addEventListener('keyup', updateCartGiftPreview);
7612      }
7613      
7614      if (cartRecipientInput) {
7615        cartRecipientInput.addEventListener('input', updateCartGiftPreview);
7616        cartRecipientInput.addEventListener('keyup', updateCartGiftPreview);
7617      }
7618      
7619      const cartGiftOptions = document.querySelectorAll('.cart-gift-option-radio');
7620      const cartCustomMessageFields = document.getElementById('cartCustomMessageFields');
7621      
7622      function toggleCartCustomFields() {
7623        const selectedOption = document.querySelector('.cart-gift-option-radio:checked');
7624        if (selectedOption && selectedOption.value === 'custom') {
7625          cartCustomMessageFields.style.display = 'block';
7626          document.getElementById('cartGiftSender').required = true;
7627          document.getElementById('cartGiftRecipient').required = true;
7628          document.getElementById('cartGiftNote').required = true;
7629          updateCartGiftPreview();
7630        } else {
7631          cartCustomMessageFields.style.display = 'none';
7632          document.getElementById('cartGiftSender').required = false;
7633          document.getElementById('cartGiftRecipient').required = false;
7634          document.getElementById('cartGiftNote').required = false;
7635          const previewSection = document.getElementById('cartGiftPreview');
7636          if (previewSection) {
7637            previewSection.style.display = 'none';
7638          }
7639        }
7640      }
7641      
7642      cartGiftOptions.forEach(option => {
7643        option.addEventListener('change', toggleCartCustomFields);
7644      });
7645      
7646      // Initialize on load
7647      toggleCartCustomFields();
7648      
7649      cartGiftModalClose.addEventListener('click', (e) => {
7650        e.preventDefault();
7651        e.stopPropagation();
7652        closeCartGiftModal();
7653      });
7654      
7655      cartGiftCancelBtn.addEventListener('click', (e) => {
7656        e.preventDefault();
7657        e.stopPropagation();
7658        closeCartGiftModal();
7659      });
7660      
7661      cartGiftModal.addEventListener('click', (e) => {
7662        if (e.target === cartGiftModal) {
7663          e.preventDefault();
7664          e.stopPropagation();
7665          closeCartGiftModal();
7666        }
7667      });
7668      
7669      const modalContent = cartGiftModal.querySelector('.cart-gift-modal');
7670      if (modalContent) {
7671        modalContent.addEventListener('click', (e) => {
7672          e.stopPropagation();
7673        });
7674      }
7675      
7676      /* SHO-265: setupEventListeners re-runs after drawer rebuilds — bind the document-level listener only once */
7677      if (!window.__cartGiftEscBound) {
7678        window.__cartGiftEscBound = true;
7679        document.addEventListener('keydown', (e) => {
7680          if (e.key === 'Escape' && cartGiftModal && cartGiftModal.style.display === 'flex') {
7681            e.preventDefault();
7682            e.stopPropagation();
7683            closeCartGiftModal();
7684          }
7685        });
7686      }
7687
7688      cartGiftForm.addEventListener('submit', handleFormSubmit);
7689    }
7690    
7691    async function handleFormSubmit(e) {
7692      e.preventDefault();
7693      
7694      if (!currentUpsellButton) return;
7695      
7696      try {
7697        // Get selected gift option
7698        const selectedOption = document.querySelector('.cart-gift-option-radio:checked');
7699        if (!selectedOption) {
7700          alert('Please select a gift option.');
7701          return;
7702        }
7703        
7704        const giftOption = selectedOption.value;
7705        let sender = '';
7706        let recipient = '';
7707        let giftNote = '';
7708        
7709        // Handle different options
7710        if (giftOption === 'blank') {
7711          // Leave blank - no message
7712          sender = '';
7713          recipient = '';
7714          giftNote = '';
7715        } else if (giftOption === 'standard') {
7716          // Use standard message - no sender/recipient
7717          sender = '';
7718          recipient = '';
7719          giftNote = 'Enjoy this selection of Japanese snacks & products, a little treat from Japan to make your day special. Have a great day!';
7720        } else if (giftOption === 'custom') {
7721          // Get custom form data
7722          const formData = new FormData(cartGiftForm);
7723          sender = formData.get('sender').trim();
7724          recipient = formData.get('recipient').trim();
7725          giftNote = formData.get('gift_note').trim();
7726          
7727          // Validate custom fields
7728          if (!sender || !recipient || !giftNote) {
7729            alert('Please fill in all required fields for your custom message.');
7730            return;
7731          }
7732        }
7733        
7734        cartGiftSubmitBtn.disabled = true;
7735        cartGiftSubmitBtn.classList.add('loading');
7736        cartGiftSubmitBtn.textContent = '';
7737        
7738        const variantId = currentUpsellButton.getAttribute('data-upsell-variant-id');
7739        const productTitle = currentUpsellButton.getAttribute('data-upsell-product-title');
7740        
7741        const response = await fetch('/cart/add.js', {
7742          method: 'POST',
7743          headers: { 'Content-Type': 'application/json' },
7744          body: JSON.stringify({
7745            id: variantId,
7746            quantity: 1
7747          })
7748        });
7749        
7750        if (!response.ok) {
7751          throw new Error(`HTTP error! status: ${response.status}`);
7752        }
7753        
7754        const data = await response.json();
7755        
7756        // Only update attributes if not blank
7757          const attributes = {
7758            'sender': sender,
7759            'recepient': recipient,
7760            'gift_note': giftNote,
7761            'gift_option': giftOption
7762          };
7763          
7764          await fetch('/cart/update.js', {
7765            method: 'POST',
7766            headers: { 'Content-Type': 'application/json' },
7767            body: JSON.stringify({ attributes })
7768          });
7769        
7770        document.dispatchEvent(
7771          new CustomEvent("ajaxProduct:added", {
7772            detail: { product: data },
7773          })
7774        );
7775        
7776        const upsellContainer = currentUpsellButton.closest('.cart__item-upsell');
7777        if (upsellContainer) {
7778          upsellContainer.style.display = 'none';
7779        }
7780        
7781        // Save the gift data for future use (only for custom)
7782        if (giftOption === 'custom') {
7783          saveCartGiftData(sender, recipient, giftNote);
7784        }
7785        
7786        closeCartGiftModal();
7787        
7788        cartGiftSubmitBtn.disabled = false;
7789        cartGiftSubmitBtn.classList.remove('loading');
7790        cartGiftSubmitBtn.textContent = 'Add Gift to Cart';
7791        
7792        console.log(`${productTitle} added to cart successfully`);
7793        
7794      } catch (error) {
7795        console.error('Error adding upsell to cart:', error);
7796        alert('Failed to add gift to cart. Please try again.');
7797        
7798        cartGiftSubmitBtn.disabled = false;
7799        cartGiftSubmitBtn.classList.remove('loading');
7800        cartGiftSubmitBtn.textContent = 'Add Gift to Cart';
7801      }
7802    }
7803    
7804    /* BTQ-68: preorder (advent) items skip the modal — gift wrap + standard message added in one click, same as the LP */
7805    async function addUpsellDirect(button) {
7806      const variantId = button.getAttribute('data-upsell-variant-id');
7807      if (!variantId || button.disabled) return;
7808
7809      const textEl = button.querySelector('.cart__upsell-text');
7810      const originalText = textEl ? textEl.textContent : '';
7811      button.disabled = true;
7812      if (textEl) textEl.textContent = 'Adding…';
7813
7814      /* SHO-265: add gift wrap at the same quantity as the calendar it belongs to */
7815      const parentQty = parseInt(button.getAttribute('data-parent-qty'), 10) || 1;
7816
7817      try {
7818        const response = await fetch('/cart/add.js', {
7819          method: 'POST',
7820          headers: { 'Content-Type': 'application/json' },
7821          body: JSON.stringify({ id: variantId, quantity: parentQty })
7822        });
7823        if (!response.ok) {
7824          throw new Error(`HTTP error! status: ${response.status}`);
7825        }
7826        const data = await response.json();
7827
7828        await fetch('/cart/update.js', {
7829          method: 'POST',
7830          headers: { 'Content-Type': 'application/json' },
7831          body: JSON.stringify({
7832            attributes: {
7833              'sender': '',
7834              'recepient': '',
7835              'gift_note': 'Enjoy this selection of Japanese snacks & products, a little treat from Japan to make your day special.', /* SHO-254 */
7836              'gift_option': 'standard'
7837            }
7838          })
7839        });
7840
7841        document.dispatchEvent(
7842          new CustomEvent("ajaxProduct:added", {
7843            detail: { product: data },
7844          })
7845        );
7846
7847        const upsellContainer = button.closest('.cart__item-upsell');
7848        if (upsellContainer) {
7849          upsellContainer.style.display = 'none';
7850        }
7851      } catch (error) {
7852        console.error('Error adding upsell to cart:', error);
7853        button.disabled = false;
7854        if (textEl) textEl.textContent = originalText;
7855      }
7856    }
7857
7858    function addUpsellToCart(button) {
7859      if (button.getAttribute('data-standard-gift') === 'true') {
7860        addUpsellDirect(button);
7861        return;
7862      }
7863      openCartGiftModal(button);
7864    }
7865
7866    window.addUpsellToCart = addUpsellToCart;
7867
7868    /* SHO-265: keep gift wrap quantities in sync with their parent items.
7869       Pairing comes from data-sync-upsell-variant stamped on cart rows; a shared
7870       wrap targets the SUM of its parents' quantities. The wrap is only synced
7871       while it exists in the cart (never auto-added). */
7872    var giftSyncPairs = {};
7873    var giftSyncBusy = false;
7874
7875    function collectGiftSyncPairs() {
7876      document.querySelectorAll('.cart__item[data-sync-upsell-variant]').forEach(function (row) {
7877        var parentVariant = row.getAttribute('data-variant-id');
7878        var wrapVariant = row.getAttribute('data-sync-upsell-variant');
7879        if (parentVariant && wrapVariant) giftSyncPairs[String(parentVariant)] = String(wrapVariant);
7880      });
7881    }
7882
7883    async function syncGiftWrapQty() {
7884      if (giftSyncBusy) return;
7885      collectGiftSyncPairs();
7886      var parents = Object.keys(giftSyncPairs);
7887      if (!parents.length) return;
7888      giftSyncBusy = true;
7889      try {
7890        var cart = await fetch('/cart.js', { credentials: 'same-origin' }).then(function (r) { return r.json(); });
7891        var qtyByVariant = {};
7892        cart.items.forEach(function (item) { qtyByVariant[String(item.variant_id)] = item.quantity; });
7893
7894        /* target for each wrap = sum of the quantities of every known parent still in the cart */
7895        var wrapTargets = {};
7896        parents.forEach(function (parentVariant) {
7897          var wrapVariant = giftSyncPairs[parentVariant];
7898          if (qtyByVariant[wrapVariant] === undefined) return;
7899          wrapTargets[wrapVariant] = (wrapTargets[wrapVariant] || 0) + (qtyByVariant[parentVariant] || 0);
7900        });
7901
7902        var updates = {};
7903        var parentGone = false;
7904        Object.keys(wrapTargets).forEach(function (wrapVariant) {
7905          if (qtyByVariant[wrapVariant] !== wrapTargets[wrapVariant]) {
7906            updates[wrapVariant] = wrapTargets[wrapVariant];
7907            if (wrapTargets[wrapVariant] === 0) parentGone = true;
7908          }
7909        });
7910        /* SGM-714: keep the gift message while another calendar's wrap is still in the cart */
7911        var wrapRemains = Object.keys(wrapTargets).some(function (wrapVariant) { return wrapTargets[wrapVariant] > 0; });
7912        if (wrapRemains) parentGone = false;
7913
7914        if (Object.keys(updates).length) {
7915          var payload = { updates: updates };
7916          if (parentGone) {
7917            payload.attributes = { 'sender': '', 'recepient': '', 'gift_note': '', 'gift_option': '' };
7918          }
7919          var updated = await fetch('/cart/update.js', {
7920            method: 'POST',
7921            headers: { 'Content-Type': 'application/json' },
7922            body: JSON.stringify(payload)
7923          }).then(function (r) { return r.json(); });
7924          document.dispatchEvent(new CustomEvent('ajaxProduct:added', { detail: { product: updated } }));
7925        }
7926      } catch (err) {
7927        console.error('Gift wrap quantity sync failed:', err);
7928      } finally {
7929        giftSyncBusy = false;
7930      }
7931    }
7932
7933    document.addEventListener('cart:updated', function () { syncGiftWrapQty(); });
7934    document.addEventListener('ajaxProduct:added', function () { syncGiftWrapQty(); });
7935    /* SGM-714: learn pairs from the initial render so a parent removed before any sync still drops its wrap */
7936    collectGiftSyncPairs();
7937
7938    if (document.readyState === 'loading') {
7939      document.addEventListener('DOMContentLoaded', initializeModalElements);
7940    } else {
7941      initializeModalElements();
7942    }
7943    
7944    document.addEventListener('click', function(e) {
7945      if (e.target.matches('.cart__upsell-btn') || e.target.closest('.cart__upsell-btn')) {
7946        e.preventDefault();
7947        const button = e.target.matches('.cart__upsell-btn') ? e.target : e.target.closest('.cart__upsell-btn');
7948        if (button && button.getAttribute('data-upsell-variant-id')) {
7949          addUpsellToCart(button);
7950        }
7951        return;
7952      }
7953      
7954      if (e.target.matches('[data-cart-remove]') || e.target.closest('[data-cart-remove]')) {
7955      e.preventDefault();
7956      
7957      const button = e.target.matches('[data-cart-remove]') ? e.target : e.target.closest('[data-cart-remove]');
7958      const variantKey = button.getAttribute('data-variant-key');
7959      const lineIndex = button.getAttribute('data-line');
7960      const cartItem = button.closest('.cart__item');
7961      const itemTags = cartItem ? cartItem.getAttribute('data-tags') : '';
7962      const isGiftProduct = itemTags && itemTags.includes('personalized-card');
7963      
7964      button.disabled = true;
7965      button.textContent = 'Removing...';
7966      
7967      theme.cart.changeItem(variantKey, 0)
7968        .then(async function(cart) {
7969          if (isGiftProduct) {
7970            const hasOtherGiftProducts = cart.items.some(item => {
7971              return item.properties && 
7972                     item.product_title && 
7973                     (item.product_title.toLowerCase().includes('gift') || 
7974                      (item.tags && item.tags.includes('personalized-card')));
7975            });
7976            
7977            if (!hasOtherGiftProducts) {
7978              try {
7979                await fetch('/cart/update.js', {
7980                  method: 'POST',
7981                  headers: { 'Content-Type': 'application/json' },
7982                  body: JSON.stringify({ 
7983                    attributes: {
7984                      'recepient': '',
7985                      'sender': '',
7986                      'gift_note': '',
7987                      'gift_option': ''
7988                    }
7989                  })
7990                });
7991                
7992                sessionStorage.removeItem('cartGiftMessageData');
7993              } catch (err) {
7994                console.error('Failed to clear cart attributes:', err);
7995              }
7996            }
7997          }
7998          
7999          document.dispatchEvent(
8000            new CustomEvent("ajaxProduct:added", {
8001              detail: {product: cart},
8002            })
8003          );
8004          
8005          if (cartItem) {
8006            cartItem.remove();
8007          }
8008        })
8009        .catch(function(error) {
8010          console.error('Error removing item from cart:', error);
8011          button.disabled = false;
8012          button.textContent = 'Remove';
8013        });
8014      }
8015    });
8016    
8017  })();
8018</script>
8018</div>
8019                  <style>
8020    .customer-loved {
8021        min-width: 370px;
8022  background-color: var(--calSectionBg);
8023
8024        min-height: 100vh;
8025        z-index: 99;
8026        position: relative;
8027        padding: 24px 16px 0;
8028        max-width: 400px;
8029      z-index: 99999;
8030    }
8031
8032    [data-grid-style*=grey] .customer-loved .grid-product:after {
8033        background: transparent;
8034    }
8035
8036    .loved-pro-img img {
8037        width: 80px;
8038        height: 86px;
8039        object-fit: cover;
8040        display: block;
8041    }
8042
8043    .main-loved-pro {
8044        display: flex;
8045        align-items: center;
8046        background: #fff;
8047        border-radius: 12px;
8048        padding: 13px;
8049        position: relative;
8050        max-width: initial !important;
8051        margin: 14px 0px 0 10px;
8052    }
8053
8054    .main-loved-pro__link {
8055        display: flex;
8056        align-items: center;
8057        flex: 1;
8058        min-width: 0;
8059        text-decoration: none;
8060        color: inherit;
8061    }
8062
8063    .main-loved-pro__link:focus-visible {
8064        outline: 2px solid currentColor;
8065        outline-offset: 2px;
8066        border-radius: 8px;
8067    }
8068
8069    .loved-pro-img {
8070        min-width: 80px;
8071    }
8072
8073    .title-loved-pro p {
8074        /* font-family: 'lato' !important; */
8075        font-style: normal;
8076        font-weight: 400;
8077        font-size: 15px;
8078        line-height: 22px;
8079        color: #000000;
8080        text-transform: capitalize !important;
8081        margin-bottom: 0;
8082        letter-spacing: 1px;
8083        overflow: hidden;
8084        display: -webkit-box;
8085        -webkit-line-clamp: 2;
8086        -webkit-box-orient: vertical;
8087    }
8088
8089    .price-loved-pro {
8090        display: flex;
8091        align-items: center;
8092        margin-top: 4px;
8093    }
8094
8095    .price-loved-pro p {
8096        margin-bottom: 0;
8097    }
8098
8099    .price-loved-pro p:first-child {
8100        font-weight: 400;
8101        font-size: 16px;
8102        line-height: 24px;
8103        text-align: center;
8104        color: #B14224;
8105    }
8106
8107    .price-loved-pro p:nth-child(2) {
8108        font-weight: 400;
8109        font-size: 15px;
8110        line-height: 22px;
8111        text-align: center;
8112        color: #000000;
8113        margin-left: 5px;
8114        padding-left: 5px;
8115        border-left: 1px solid #BDBDBD;
8116    }
8117
8118    .price-loved-pro p:first-child span {
8119        color: #959494;
8120        text-decoration: line-through;
8121    }
8122
8123    .about-loved-pro {
8124        margin-left: 10px;
8125    }
8126
8127    .customer-loved-heading h3 {
8128        font-family: 'Orpheus Pro';
8129        font-style: normal;
8130        font-weight: 400 !important;
8131        font-size: 31px !important;
8132        line-height: 38px;
8133        color: #000000;
8134        letter-spacing: 0px;
8135        text-transform: capitalize !important;
8136        margin-bottom: 0px !important;
8137    }
8138    
8139
8140    .plus-icon-loved .btn--icon {
8141        width: 30px;
8142        height: 30px;
8143        display: flex;
8144        align-items: center;
8145        justify-content: center;
8146        background: var(--cta_filled_static);
8147        padding: 2px !important;
8148        transition: transform 0.1s ease-out;
8149    }
8150
8151    .plus-icon-loved .btn--icon:hover {
8152        transform: scale(1.15);
8153    }
8154
8155    .plus-icon-loved {
8156        position: absolute;
8157        top: -6px;
8158        left: -3px;
8159    }
8160
8161    .close-loved-pro {
8162        position: absolute;
8163        top: 26px;
8164        right: 14px;
8165        cursor: pointer;
8166    }
8167
8168    .close-loved-pro svg {
8169        width: 30px;
8170        height: 30px;
8171    }
8172
8173    .customer-loved.orient-add .listing-loved-products {
8174        display: none;
8175        width: 50px !important;
8176    }
8177
8178    .customer-loved.orient-add {
8179        width: 56px !important;
8180        padding: 10px;
8181        min-width: auto !important;
8182    }
8183
8184    .customer-loved.orient-add .customer-loved-heading h3 {
8185        writing-mode: vertical-rl;
8186        text-orientation: mixed;
8187    }
8188
8189    .customer-loved.orient-add .close-loved-pro {
8190        right: 20px;
8191        top: 30px;
8192    }
8193
8194    #chevron-main-loved,
8195    .customer-loved.orient-add .close-loved-pro svg {
8196        display: none;
8197    }
8198
8199    .customer-loved.orient-add #chevron-main-loved {
8200        display: block !important;
8201        transform: rotate(133deg);
8202    }
8203
8204    .customer-loved.orient-add .customer-loved-heading {
8205        padding-top: 10em;
8206    }
8207
8208    .un-fl-submenu-icon-arrow-dj {
8209        border: solid #000;
8210        border-width: 0 2px 2px 0;
8211        bottom: 0;
8212        display: inline-block;
8213        height: 10px;
8214        margin: auto;
8215        padding: 3px;
8216        /* position: absolute; */
8217        right: 10px;
8218        top: -3px;
8219        width: 10px;
8220        transform: rotate(45deg);
8221        -webkit-transform: rotate(45deg);
8222        margin-bottom: 3px !important;
8223    }
8224
8225    .plus-icon-loved button {
8226        padding: 0;
8227        border: none;
8228        background: transparent;
8229    }
8230
8231    .plus-icon-loved button span {
8232        border-radius: 100px;
8233        cursor: pointer;
8234    }
8235
8236    /*   .plus-icon-loved button span svg {
8237              filter: invert(1);
8238          } */
8239    #theme-ajax-cart.is-drawer {
8240        width: 50%;
8241    }
8242
8243    .align-cart-main-grocery {
8244        display: flex;
8245        flex-direction: row-reverse;
8246        /*     height: 100%; */
8247    }
8248
8249    /*   .align-customer-loved {
8250              position: relative;
8251            } */
8252    .listing-loved-products {
8253        max-height: calc(100vh - 172px);
8254        overflow-y: auto;
8255        padding-right: 10px;
8256        padding-bottom: 2em;
8257    }
8258
8259    .scrolled-body .listing-loved-products {
8260        max-height: calc(100vh - 130px);
8261    } 
8262
8263    .listing-loved-products::-webkit-scrollbar-track {
8264        -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
8265        border-radius: 10px;
8266        background-color: #dbdbdb;
8267    }
8268
8269    .listing-loved-products::-webkit-scrollbar {
8270        width: 6px;
8271        height: 6px;
8272        background-color: #dbdbdb;
8273    }
8274
8275    .listing-loved-products::-webkit-scrollbar-thumb {
8276        border-radius: 10px;
8277        -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
8278        background-color: #7594ae;
8279    }
8280
8281    .ajax-cart--drawer {
8282        box-shadow: 0 8px 8px rgb(10 10 10 / 10%);
8283        background: #fff;
8284    }
8285
8286    #theme-ajax-cart.is-drawer {
8287        width: auto;
8288        max-width: 1100px;
8289        background: transparent;
8290        box-shadow: none;
8291    }
8292
8293    .ajax-cart {
8294        min-width: 701px;
8295        max-width: 701px;
8296    }
8297
8298
8299    .align-main-cart-customer {
8300        display: flex;
8301        flex-direction: row-reverse;
8302        background: #f6f4f1;
8303        height: 100%;
8304    }
8305
8306    .cart__footer {
8307        right: 0;
8308      z-index: 999;
8309    }
8310
8311    .cart__scrollable {
8312        margin-bottom: 0px;
8313    }
8314   
8315
8316    .price-loved-pro p:nth-child(2) {
8317      display: none !important;
8318    }
8319
8320    .site-header__drawer-animate {
8321        transform: inherit !important;
8322    }
8323
8324    .cart__scrollable .rebuy-widget {
8325        display: none !important;
8326    }
8327
8328    .header-wrapper.header-wrapper--overlay.is-light.header-wrapper--compressed {
8329
8330    }
8331
8332    .header-wrapper.header-wrapper--overlay.is-light {
8333
8334    }
8335
8336    @media screen and (max-width: 1100px) {
8337        .customer-loved {
8338            width: 40% !important;
8339            min-width: auto !important;
8340            max-width: initial !important;
8341        }
8342
8343        .site-header__drawer-animate,
8344        .ajax-cart , .cart__footer {
8345            width: 60% !important;
8346            min-width: auto !important;
8347        }
8348
8349        .mob-cart-align.bg-color {
8350            background: var(--cartBGColor);
8351      }
8352        /*        .cart__footer {
8353             width: 100% !important;
8354           } */
8355        .site-header__drawer {
8356    /* 		padding-top: 95px; */
8357            background: transparent;
8358            box-shadow: none;
8359            width: 100%;
8360            max-width: initial;
8361        }
8362    }
8363
8364    @media screen and (max-width: 850px) {
8365
8366
8367        .site-header__drawer-animate,
8368        .ajax-cart,
8369        .cart__footer {
8370            width: 100% !important;
8371            max-width: 100% !important;
8372            min-width: auto !important;
8373        }
8374
8375        .customer-loved,
8376        .customer-loved.orient-add {
8377            width: 100% !important;
8378            /*        height: 235px; */
8379        }
8380
8381        .customer-loved {
8382            min-height: auto !important;
8383            height: 235px;
8384            z-index: 999;
8385            padding: 24px 0 0 !important;
8386        }
8387
8388        .customer-loved-heading h3 {
8389            font-size: 26px !important;
8390            text-align: center;
8391        }
8392
8393        .customer-loved.orient-add .customer-loved-heading {
8394            padding-top: 0;
8395        }
8396
8397        .customer-loved.orient-add .customer-loved-heading h3 {
8398            writing-mode: inherit;
8399            text-orientation: inherit;
8400        }
8401
8402        .main-loved-pro {
8403            display: block;
8404            background: #fff;
8405            text-align: center;
8406            width: 200px;
8407            padding: 10px 4px;
8408            min-width: 200px;
8409            flex: auto !important;
8410        }
8411
8412        .main-loved-pro__link {
8413            display: block;
8414            width: 100%;
8415        }
8416
8417        .loved-pro-img img {
8418            width: 60px;
8419            height: 60px;
8420            margin: auto;
8421        }
8422
8423        .about-loved-pro {
8424            margin: 0;
8425        }
8426
8427        .title-loved-pro p {
8428            font-size: 14px;
8429            display: -webkit-box;
8430            max-width: 400px;
8431            -webkit-line-clamp: 2;
8432            -webkit-box-orient: vertical;
8433            overflow: hidden;
8434            text-overflow: ellipsis;
8435            line-height: 1.4;
8436  /*         min-height: 39.19px;
8437          display: flex;
8438          align-items: center;
8439          justify-content: center; */
8440        }
8441
8442        .price-loved-pro {
8443            justify-content: center;
8444        }
8445
8446        .price-loved-pro p:nth-child(2) {
8447            margin-left: 4px;
8448            padding: 0;
8449            border: none;
8450        }
8451
8452        .customer-loved.orient-add .listing-loved-products {
8453            width: 100% !important;
8454            display: flex !important;
8455        }
8456
8457        .plus-icon-loved {
8458            left: auto;
8459            right: -6px;
8460        }
8461
8462        .listing-loved-products {
8463            display: flex;
8464            padding-bottom: 8px;
8465            max-height: initial !important;
8466        }
8467
8468        .close-loved-pro {
8469            display: none !important;
8470        }
8471
8472        .cart__scrollable {
8473            overflow: inherit;
8474            margin-bottom: 40px;
8475        }
8476        .SGM.header-wrapper.header-wrapper--compressed .cart__scrollable{
8477            margin-bottom:170px
8478        }
8479        .SGM.header-wrapper.header-wrapper--compressed .cart__scrollable.is-empty, .SGM.header-wrapper .cart__scrollable.is-empty{
8480            margin-bottom:0
8481        }
8482
8483      .mob-cart-align {
8484        height: inherit;
8485        overflow: auto;
8486            background: #f6f4f1;
8487      }
8488
8489        .align-main-cart-customer {
8490            flex-direction: column-reverse;
8491            height: auto;
8492            background: #f6f4f1;
8493            padding-bottom: 200px;
8494    /* 		justify-content: flex-end; */
8495        }
8496
8497      .header-wrapper--compressed .align-main-cart-customer {
8498            padding-bottom: 60px;
8499      }
8500        .SGM.header-wrapper--compressed .align-main-cart-customer.is-empty{
8501            height:auto;
8502        }
8503
8504        .site-header__cart .align-main-cart-customer .cart__drawer
8504-form {
8505            max-height: initial !important;
8506            display: block !important;
8507            padding-bottom: 40px;
8508        }
8509
8510        .body-scroll-content .site-header__cart .align-main-cart-customer .cart__drawer-form {
8511            padding-bottom: 130px !important;
8512        }
8513
8514        .site-header__drawer-animate {
8515            height: auto !important;
8516        }
8517
8518        .site-header__drawer-animate {
8519            transform: none !important;
8520        }
8521
8522        .cart__footer {
8523            /* bottom: 0 !important; */
8524            z-index: 99999;
8525        }
8526
8527        .align-main-cart-customer.adjust-mob-cart {
8528            justify-content: flex-end;
8529        }
8530
8531        .align-main-cart-customer.adjust-mob-cart .cart__scrollable ,.align-main-cart-customer.adjust-mob-cart .cart__footer {
8532            display: none !important;
8533        }
8534
8535        /*      .align-main-cart-customer .rebuy-minicart {
8536            display: none !important;
8537         } */
8538      html body[data-header="cro-header-navigations"] .site-header__cart.scrolled-body {
8539        top: 122px !important;
8540      }
8541
8542      html body[data-header="cro-header-navigations"] .scrolled-body .cart__footer {
8543        bottom: 122px !important;
8544      }
8545          html .sugoi-mart-store .align-main-cart-customer {
8546          flex-direction: column !important;
8547            padding-bottom: 0 !important;
8548      }
8549
8550      html .sugoi-mart-store.body-scroll-content .site-header__cart .align-main-cart-customer .cart__drawer-form,
8551      html .sugoi-mart-store .SGM.header-wrapper.header-wrapper--compressed .cart__scrollable,
8552      .sugoi-mart-store .header-wrapper--compressed .align-main-cart-customer {
8553        padding-bottom: 0 !important;
8554        margin-bottom: 0 !important;
8555      }
8556
8557      html .sugoi-mart-store .mob-cart-align {
8558            height: calc(100dvh - 365px) !important;
8559      }
8560
8561      .sugoi-mart-store .site-header__cart .align-main-cart-customer .cart__drawer-form {
8562          padding-bottom: 0 !important;
8563      }
8564      
8565      html .sugoi-mart-store.body-scroll-content .mob-cart-align.empty-cart,
8566      html .sugoi-mart-store .mob-cart-align.empty-cart {
8567          height: inherit !important;
8568      }
8569
8570      .sugoi-mart-store .cart__footer {
8571        min-height: 266px; 
8572      }
8573
8574          html .sugoi-mart-store.body-scroll-content .mob-cart-align {
8575          height: calc(100dvh - 322px) !important;
8576        }
8577
8578      html .sugoi-mart-store .align-main-cart-customer.is-empty {
8579        height: calc( 100dvh - 100px) !important;
8580          justify-content: space-between;
8581        overflow: auto;
8582      }
8583
8584      html .sugoi-mart-store.body-scroll-content .align-main-cart-customer.is-empty {
8585        overflow: auto;
8586          height: calc(100dvh - 64px) !important;
8587          justify-content: space-between;
8588      }
8589    }
8590</style>
8591
8592
8593
8594  
8594<script>
8595    $('.align-cart-main-grocery').addClass('remove-padding')
8596  </script>
8596
8597
8598<script>
8599  setTimeout(() => {
8600    bindQuickAdd()
8601  }, 5000);
8602
8603
8604  function bindQuickAdd() {
8605
8606    var prodGrid = document.querySelectorAll(".product-grid");
8607
8608            if (prodGrid.length) {
8609          for (let i = 0; i < prodGrid.length; i++) {
8610            var gridProducts = prodGrid[i].querySelectorAll(".grid-product");
8611
8612            if (gridProducts.length) {
8613              new theme.QuickAdd(prodGrid[i]);
8614              new theme.QuickShop(prodGrid[i]);
8615            }
8616          }
8617        }
8618  }
8619</script>
8619
8620
8621                </div>
8622              </div>
8623            </div>
8624
8625            <div
8626              class="site-header__drawer site-header__mobile-nav medium-up--hide"
8627              id="MobileNav"
8628              inert
8629              aria-hidden="true"
8630              style="    background-color: #F6F4F1;"
8631            >
8632              <div class="site-header__drawer-animate"><div class="slide-nav__wrapper" data-level="1">
8633  <div class="align-menu-main">
8634    <ul>
8635
8636       
8637      
8638      
8639      
8640      
8641<li>
8642          <div class="main-snack-boxes">
8643            <div class="title-menu-mobile nav-dropdown active-mob-menu">
8644              <p>Shop Snack Box Subscriptions</p>
8645              <svg aria-hidden="true" focusable="false" role="presentation" data-child="teir-1-Shop Snack Box Subscriptions" class="icon icon-chevron-right" viewBox="0 0 284.49 498.98">
8646                  <path d="M35 498.98a35 35 0 0 1-24.75-59.75l189.74-189.74L10.25 59.75a35.002 35.002 0 0 1 49.5-49.5l214.49 214.49a35 35 0 0 1 0 49.5L59.75 488.73A34.89 34.89 0 0 1 35 498.98z"></path>
8647                </svg>
8648            </div>
8649            <div class="listing-dropdown-menus snack-boxes-main-mob active-mob-submenu-show"><a href="https://www.bokksu.com/products/classic-bokksu">
8650                  <div class="snack-box-mob"><img src="//bokksu.com/cdn/shop/files/snack-box-subscription-nav_685018c7-f98c-407e-9f6f-54e324289c37_200x.png?v=1751000847" alt="" role="presentation"><h4>Bokksu Snack Box</h4>
8651                  </div>
8652                </a></div>
8653          </div>
8654         </li><li>
8655              <div class="title-menu-mobile nav-dropdown  ">
8656                <p>Shop Gifts</p>
8657                <svg aria-hidden="true" focusable="false" role="presentation" data-child="teir-1-Shop Gifts" class="icon icon-chevron-right" viewBox="0 0 284.49 498.98">
8658                    <path d="M35 498.98a35 35 0 0 1-24.75-59.75l189.74-189.74L10.25 59.75a35.002 35.002 0 0 1 49.5-49.5l214.49 214.49a35 35 0 0 1 0 49.5L59.75 488.73A34.89 34.89 0 0 1 35 498.98z"></path>
8659                </svg>
8660              </div>
8661              <div class="listing-dropdown-menus ">
8662                <ul><li>
8663                   
8664                      <a href="/products/gift-classic-bokksu">Bokksu Snack Box</a>
8665                      
8666                    </li><li>
8667                   
8668                      <a href="/products/gift-card">Gift Cards</a>
8669                      
8670                    </li><li>
8671                   
8672                      <a href="https://www.bokksuboutique.com/pages/corporate-gifts">Corporate Gifts</a>
8673                      
8674                    </li></ul>
8675              </div>
8676            </li><hr>
8677         <li>
8678            <div class="title-menu-mobile nav-dropdown">
8679              <p>More from Bokksu</p>
8680              <svg aria-hidden="true" focusable="false" role="presentation" data-child="teir-1-More from Bokksu" class="icon icon-chevron-right" viewBox="0 0 284.49 498.98">
8681                  <path d="M35 498.98a35 35 0 0 1-24.75-59.75l189.74-189.74L10.25 59.75a35.002 35.002 0 0 1 49.5-49.5l214.49 214.49a35 35 0 0 1 0 49.5L59.75 488.73A34.89 34.89 0 0 1 35 498.98z"></path>
8682                </svg>
8683            </div>
8684            <div class="listing-dropdown-menus more-brands">
8685              <ul>           
8686                 <li>                 
8687                    <a href="https://bokksu.com/products/classic-bokksu">
8688                      <img src="//bokksu.com/cdn/shop/files/BokksuSnackBox_Logo_Stacked_Filled_Orange_200x.png?v=1750968760" alt="" role="presentation">
8689                      <p> Premium Japanese snack subscriptions. </p>
8690                    </a>
8691                  </li>
8692                  <li>
8693                    <a href="https://bokksuboutique.com/">
8694                      <img src="//bokksu.com/cdn/shop/files/BokksuBoutique_Logo_Stacked_Filled_Blue_200x.png?v=1750968708" alt="" role="presentation">
8695                      <p> Specialty and gourmet gifts only found in Japan.</p>
8696                    </a>
8697                  </li>
8698                  <li>
8699                    <a href="https://bokksumarket.com">
8700                      <img src="//bokksu.com/cdn/shop/files/BokksuMarket_Logo_Stacked_Filled_Green_200x.png?v=1750968741" alt="" role="presentation">
8701                      <p>Asian grocery essentials for cooking and eating.</p>
8702                    </a>
8703                </li>
8704                
8705              </ul>
8706            </div>
8707         </li><li>
8708          <div class="title-menu-mobile">
8709                <a href="https://www.bokksu.com/account/login?return_url=%2Faccount">
8710                  <p>Account</p>
8711                </a></div>
8712          </li><li>
8713              <div class="title-menu-mobile nav-dropdown  ">
8714                <p>About</p>
8715                <svg aria-hidden="true" focusable="false" role="presentation" data-child="teir-1-About" class="icon icon-chevron-right" viewBox="0 0 284.49 498.98">
8716                    <path d="M35 498.98a35 35 0 0 1-24.75-59.75l189.74-189.74L10.25 59.75a35.002 35.002 0 0 1 49.5-49.5l214.49 214.49a35 35 0 0 1 0 49.5L59.75 488.73A34.89 34.89 0 0 1 35 498.98z"></path>
8717                </svg>
8718              </div>
8719              <div class="listing-dropdown-menus ">
8720                <ul><li>
8721                   
8722                      <a href="/pages/about">Our Story</a>
8723                      
8724                    </li><li>
8725                   
8726                      <a href="/pages/our-makers">Our Makers</a>
8727                      
8728                    </li><li>
8729                   
8730                      <a href="/pages/snack-bites-documentary">Maker's Documentary</a>
8731                      
8732                    </li></ul>
8733              </div>
8734            </li><li>
8735              <div class="title-menu-mobile nav-dropdown  ">
8736                <p>Support</p>
8737                <svg aria-hidden="true" focusable="false" role="presentation" data-child="teir-1-Support" class="icon icon-chevron-right" viewBox="0 0 284.49 498.98">
8738                    <path d="M35 498.98a35 35 0 0 1-24.75-59.75l189.74-189.74L10.25 59.75a35.002 35.002 0 0 1 49.5-49.5l214.49 214.49a35 35 0 0 1 0 49.5L59.75 488.73A34.89 34.89 0 0 1 35 498.98z"></path>
8739                </svg>
8740              </div>
8741              <div class="listing-dropdown-menus ">
8742                <ul><li>
8743                   
8744                      <a href="/pages/faq">FAQ</a>
8745                      
8746                    </li><li>
8747                   
8748                      <a href="/pages/contact-us">Contact Us</a>
8749                      
8750                    </li></ul>
8751              </div>
8752            </li><li>
8753              <div class="title-menu-mobile nav-dropdown  ">
8754                <p>Information</p>
8755                <svg aria-hidden="true" focusable="false" role="presentation" data-child="teir-1-Information" class="icon icon-chevron-right" viewBox="0 0 284.49 498.98">
8756                    <path d="M35 498.98a35 35 0 0 1-24.75-59.75l189.74-189.74L10.25 59.75a35.002 35.002 0 0 1 49.5-49.5l214.49 214.49a35 35 0 0 1 0 49.5L59.75 488.73A34.89 34.89 0 0 1 35 498.98z"></path>
8757                </svg>
8758              </div>
8759              <div class="listing-dropdown-menus ">
8760                <ul><li>
8761                   
8762                      <a href="/blogs/news">Our Blog</a>
8763                      
8764                    </li><li>
8765                   
8766                      <a href="/pages/bokksu-offers-discounts-coupons">Today's Offers</a>
8767                      
8768                    </li><li>
8769                   
8770                      <a href="/pages/community">Community</a>
8771                      
8772                    </li><li>
8773                   
8774                      <a href="/pages/careers">Careers</a>
8775                      
8776                    </li><li>
8777                   
8778                      <a href="/pages/rewards">Rewards</a>
8779                      
8780                    </li><li>
8781                   
8782                      <a href="/pages/rewards">Refer a Friend</a>
8783                      
8784                    </li></ul>
8785              </div>
8786            </li><li>
8787          <div class="title-menu-mobile"><a href="/pages/past-themes">
8788                  <p>Past Themes</p>
8789                </a></div>
8790          </li></ul>
8791 </div>
8792  
8793<!--   <ul class="slide-nav"></ul> -->
8794
8795</div>
8796
8797<div id="subs-btn" class="original-element">
8798  
8799  <a href="https://bokksu.com/products/classic-bokksu" id="mbl-subscribe-overrides" class="btn btn-custom subscribe-btn-js original-element">Subscribe Now</a>   
8800   
8801</div>
8802
8803<!-- 
8804  <div style="margin-top:100px" id="subs-btn">
8805    <a href="/products/classic-bokksu" id="mbl-subscribe-overrides" class="btn btn-custom subscribe-btn-js"
8806      >SUBSCRIBE NOW</a
8807    >
8808  </div>
8809 -->
8810<script>
8811  if(window.location.href.includes('search')){
8812    $('#subs-btn').css('display','none')
8813  }else{
8814    $('#subs-btn').css('display','block')
8815  }
8816
8817  $('.title-menu-mobile.nav-dropdown').click(function() {
8818    $(this).toggleClass('active-mob-menu').parent().find('.listing-dropdown-menus').slideToggle(300);
8819  });
8820</script>
8820
8821
8822<style>
8823
8824@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700&display=swap');
8825
8826.align-menu-main ul {
8827  margin: 0;
8828  padding: 0;
8829}
8830
8831.align-menu-main ul li {
8832  list-style: none;
8833  margin-top: 0px;
8834  margin-bottom: 16px;
8835}
8836
8837.title-menu-mobile p {
8838  font-weight: 500;
8839  font-size: 13px;
8840  line-height: 140%;
8841  letter-spacing: 0.15em;
8842  text-transform: uppercase;
8843  color: #242426;
8844  margin-bottom: 0;
8845}
8846
8847.snack-box-mob img {
8848  width: 60px;
8849  height: 60px;
8850}
8851
8852.snack-box-mob h4 {
8853  font-weight: 400;
8854  font-size: 15px;
8855  line-height: 140%;
8856  letter-spacing: 0.05em;
8857  text-transform: capitalize;
8858  color: #242426;
8859  margin-left: 14px;
8860  margin-bottom: 0;
8861}
8862
8863.snack-box-mob {
8864  display: flex;
8865  align-items: center;
8866  margin-top: 14px;
8867}
8868
8869.title-menu-mobile.nav-dropdown {
8870  display: flex;
8871  align-items: center;
8872  justify-content: space-between;
8873}
8874
8875.title-menu-mobile.nav-dropdown svg {
8876  width: 10px;
8877  height: 10px;
8878  transform: rotate(90deg);
8879  transition: .3s linear;
8880}
8881
8882.title-menu-mobile.nav-dropdown.active-mob-menu svg {
8883  transform: rotate(-89deg);
8884}
8885
8886.nav-dropdown.active-mob-menu p {
8887  color: #B73D09;
8888}  
8889
8890.listing-dropdown-menus ul li a {
8891  font-weight: 400;
8892  font-size: 15px;
8893  line-height: 140%;
8894  letter-spacing: 0.02em;
8895  text-transform: capitalize;
8896  color: #242426;
8897}
8898
8899.listing-dropdown-menus {
8900  padding: 10px 10px 0 ;
8901  display: none;
8902}
8903.listing-dropdown-menus ul li:last-child {
8904  margin: 0;
8905}
8906
8907.listing-dropdown-menus ul li {
8908  margin-bottom: 8px;
8909}
8910
8911.listing-dropdown-menus.more-brands {
8912  padding: 10px 0;
8913}
8914
8915.listing-dropdown-menus.more-brands ul {
8916  grid-template-columns: repeat(2, minmax(0, 1fr));
8917  display: grid;
8918  grid-gap: 12px;
8919}
8920
8921.listing-dropdown-menus.more-brands ul li a img {
8922  width: 66px;
8923  margin: auto;
8924}
8925
8926.listing-dropdown-menus.more-brands ul li {
8927  text-align: center;
8928  margin: 0;
8929}
8930
8931.listing-dropdown-menus.more-brands ul li a p {
8932  font-weight: 400;
8933  font-size: 11px;
8934  line-height: 130%;
8935  text-align: center;
8936  letter-spacing: 0.02em;
8937  text-transform: initial;
8938  color: #242426;
8939  margin: 6px 0 0 0;
8940}
8941
8942.listing-dropdown-menus.more-brands ul li a {
8943  display: block;
8944  padding: 14px 10px;
8945  background: #F5F5F5;
8946  border-radius: 10px;
8947}
8948
8949.site-header__mobile-nav .site-header__drawer-animate , .site-header__mobile-nav.site-header__drawer {
8950  background: #fff !important;
8951}
8952
8953.site-header__mobile-nav.site-header__drawer {
8954  height: 100vh;
8955  overflow: auto !important;
8956  min-height: 100vh !important;
8957}
8958
8959.align-menu-main hr {
8960  margin: 16px 0px;
8961}
8962
8963  div#subs-btn {
8964    padding-bottom: 8em;
8965  }
8966
8967div#subs-btn p {
8968  font-weight: 400;
8969  font-size: 13px;
8970  line-height: 140%;
8971  letter-spacing: 0.02em;
8972  text-transform: capitalize;
8973  color: #242426;
8974  text-align: center;
8975  margin: 20px 0 30px;
8976}
8977
8978
8979
8980.supports-touch.lock-scroll body {
8981  overflow: initial !important;
8982}
8983
8984/* body.sticky-body {
8985  overflow: hidden;
8986  position: fixed;
8987} */
8988
8989.site-header__mobile-nav  .site-header__drawer-animate {
8990  width: 100% !important;
8991  transition: none !important;
8992}
8993
8994.active-mob-submenu-show {
8995  display: block;
8996}
8997  
8998/* .blur-body {
8999  background: initial !important;
9000  filter: none !important;
9001} */
9002
9003@media only screen and (max-width: 960px) {
9004  #mbl-subscribe-overrides {
9005    letter-spacing: 0.15em !important;
9006    font-weight: 700 !important;
9007    font-size: 13px !important;
9008    height: auto !important;
9009    padding: 17px 16px !important;
9010    border-radius: 10px !important;
9011  }
9012}
9013
9014@media screen and (max-width: 770px) {
9015  .mobile-nav-open body {
9016    overflow: hidden !important;
9017  }
9018}  
9019  
9020</style>
9021</div>
9022            </div>
9023          </div>
9024        </div></header>
9025    </div>
9026  </div>
9027
9028
9029
9030
9031
9032<script>
9033  $(document).ready(function () {
9034    $('.sale-announcement').on('click', function () {
9035    const link = $(this).data('link');
9036    if (link) {
9037      window.location.href = link;
9038    }
9039  });
9040    // Check if userway_buttons_wrapper is rendered
9041    function checkIfRendered() {
9042      if ($('.userway_buttons_wrapper').length > 0) {
9043        $('.transition-body').removeClass('transition-body');
9044        clearInterval(renderCheckInterval); // Stop checking once rendered
9045      }
9046    }
9047    // Check if rendered initially
9048    checkIfRendered();
9049    // Check periodically in case element is added dynamically
9050    let renderCheckInterval = setInterval(checkIfRendered, 1000);
9051  });
9052
9053  // Mobile Cart and Nav Opening Issue
9054  $('.show-on-mob').click(function () {
9055    $('body').toggleClass('no-scroll');
9056    $('.sticky-filters').toggleClass('d-none');
9057    if ($('html').hasClass('cart-open')) {
9058      $('.site-header__cart').removeClass('is-active is-cart-open');
9059      $('html').removeClass('cart-open');
9060    }
9061  });
9062  $('#HeaderCartTrigger').click(function () {
9063    if ($('.main-menu-new').hasClass('show-categories')) {
9064      $('.ctaegories-icon').removeClass('icon-change');
9065      $('.main-menu-new').removeClass('show-categories');
9066      $('body').removeClass('no-scroll');
9067    }
9068  });
9069  // End Mobile Nav and Cart Opening Issue
9070
9071  function isMobile() {
9072    const regex = /Mobi|Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i;
9073    return regex.test(navigator.userAgent);
9074  }
9075  $('#buttonid').click(function () {
9076    if ($(this).hasClass('icon-change')) {
9077      $(this).attr('aria-expanded', true);
9078      $(this).attr('aria-label', 'Close');
9079    } else {
9080      $(this).attr('aria-expanded', false);
9081      $(this).attr('aria-label', 'Menu');
9082    }
9083  });
9084
9085  $('#buttonid').on('keydown', function (event) {
9086    if (event.keyCode == 9 && $(this).hasClass('icon-change')) {
9087      setTimeout(function () {
9088        $('.all-menu-links .main-menu-item:first-child .new-menu-item .item-links').focus();
9089      }, 0);
9090    }
9091
9092    if (event.keyCode == 32) {
9093      if ($('#buttonid').hasClass('icon-change')) {
9094        $('#buttonid').attr('aria-expanded', true);
9095        $(this).attr('aria-label', 'Close');
9096      } else {
9097        $('#buttonid').attr('aria-expanded', false);
9098        $(this).attr('aria-label', 'Menu');
9099      }
9100    }
9101  });
9102
9103  $('#buttonid').on('focus', function (event) {
9104    if (event.keyCode != 9 && !event.shiftKey) {
9105      setTimeout(function () {
9106        $('.all-menu-links .main-menu-item:first-child .new-menu-item .item-links').focus();
9107      }, 2000);
9108    }
9109  });
9110
9111  $(document).keydown(function (event) {
9112    if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {
9113      event.preventDefault();
9114      //  readElementsInMain();
9115    }
9116  });
9117  $('.ctaegories-icon').click(function () {
9118    $(this).toggleClass('icon-change');
9119    $('.main-menu-new').toggleClass('show-categories');
9120    $('.all-menu-links .main-menu-item:first-child .new-menu-item #myLink').attr('tabindex', 0);
9121    $('.all-menu-links .main-menu-item:first-child .new-menu-item #myLink').focus();
9122  });
9123  $('.new-menu-item').click(function () {
9124    $(this).parent().toggleClass('rotate-icon').find('.listing-hovered-items').slideToggle();
9125  });
9126
9127  $(document).keydown(function (e) {
9128    if (e.keyCode == 9 && e.shiftKey) {
9129      if ($('.all-menu-links .main-menu-item:first-child .new-menu-item #myLink').is(':focus')) {
9130        $('#buttonid').attr('tabindex', 0);
9131        setTimeout(function () {
9132          $('#buttonid').focus();
9133        }, 0);
9134      }
9135    }
9136    if ($('#buttonid').is(':focus')) {
9137      if (e.keyCode == 9 && !e.shiftKey) {
9138        setTimeout(function () {
9139          $('.all-menu-links .main-menu-item:first-child .new-menu-item #myLink').focus();
9140        }, 0);
9141      }
9142    }
9143  });
9144  function handleMenuItem(event) {
9145    if (event.keyCode == 32 && $('.main-menu-item .new-menu-item .item-links').is(':focus')) {
9146      window.location = $('.main-menu-item .new-menu-item a:focus').attr('href');
9147      return false;
9148    }
9149
9150    if ((event.keyCode == 39 || event.keyCode == 37) && $('.main-menu-item .new-menu-item a').is(':focus')) {
9151      // $('.listing-hovered-items').hide();
9152    }
9153    if (event.keyCode == 39 && $('.all-menu-links .main-menu-item:last-child .new-menu-item a').is(':focus')) {
9154      //alert("hiii")
9155      setTimeout(function () {
9156        $('.total-reviews-new h4').focus();
9157      }, 1000);
9158    }
9159  }
9160
9161  // $('.main-menu-item .new-menu-item a').on('mouseover', function (event) {
9162  //     if(!isMobile() && zoom < 175.0){
9163  //       $('.listing-hovered-items').show();
9164  //     }
9165  // });
9166
9167  function handleMenusubitems(event) {
9168    if (event.keyCode == 32 && $('.main-menu-item .listing-hovered-items ul li a:focus')) {
9169      window.location = $('.main-menu-item .listing-hovered-items ul li a:focus').attr('href');
9170      return false;
9171    }
9172  }
9173
9174  $('.main-menu-item .new-menu-item').on('keydown', handleMenuItem);
9175  $('.main-menu-item .listing-hovered-items').on('keydown', handleMenusubitems);
9176  $('.mob-user-icon .dropdown-stores').on('keydown', handleMoreAbout);
9177  $('.shop-btn').on('keydown', handleShopBtn);
9178  $('.login-link').on('keydown', handleLoginLink);
9179
9180  $('.title-menu-mobile').click(function () {
9181    $(this).toggleClass('active-mob-menu').parent().find('.dropdown-stores').slideToggle();
9182  });
9183
9184  // $('.main-menu-item .new-menu-item .item-links').on('mouseover', function () {
9185  //     if(!isMobile() && zoom < 175.0){
9186  //   $('.listing-hovered-items').show();
9187  //     }
9188  // });
9189
9190  function handleMoreAbout(event) {
9191    if (event.keyCode == 32 && $('.dropdown-stores .listing-dropdown-menus ul li a:focus')) {
9192      window.location = $('.dropdown-stores .listing-dropdown-menus ul li a:focus').attr('href');
9193      return false;
9194    }
9195  }
9196
9197  function handleShopBtn(event) {
9198    if (event.keyCode == 32 && $('a:focus')) {
9199      window.location = $('a:focus').attr('href');
9200      return false;
9201    }
9202  }
9203  function handleLoginLink(event) {
9204    if (event.keyCode == 32) {
9205      window.location = $('.login-link a').attr('href');
9206      return false;
9207    }
9208  }
9209
9210  $('.title-menu-mobile').click(function () {
9211    $(this).toggleClass('active-mob-menu').parent().find('.dropdown-stores').slideToggle();
9212  });
9213
9214  const focusTrapDiv = document.getElementById('focus-menu-item');
9215  if (focusTrapDiv) {
9216    focusTrapDiv.addEventListener('keydown', function (event) {
9217      if (event.key === 'Tab') {
9218        const focusableElements = focusTrapDiv.querySelectorAll(
9219          'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
9220        );
9221        const firstFocusableElement = focusableElements[0];
9222        const lastFocusableElement = focusableElements[focusableElements.length - 1];
9223
9224        if (event.shiftKey) {
9225          if (document.activeElement === firstFocusableElement) {
9226            event.preventDefault();
9227            setTimeout(function () {
9228              $('#buttonid').focus();
9229            }, 0);
9230          }
9231        } else {
9232          if (document.activeElement === lastFocusableElement) {
9233            event.preventDefault();
9234            setTimeout(function () {
9235              $('#buttonid').focus();
9236            }, 0);
9237          }
9238        }
9239      }
9240    });
9241
9242    // v2 code
9243
9244    $.ajax({
9245      type: 'POST',
9246      data: { email: '' },
9247      url: 'https://bokksurecharge.herokuapp.com/index.php',
9248      success: function (data) {
9249        if (data.customers.length > 0) {
9250          let customer_id = data.customers[0].id;
9251          let billing_address1 = data.customers[0].billing_address1;
9252          $.ajax({
9253            type: 'POST',
9254            data: { customer_id: customer_id },
9255            url: 'https://bokksurecharge.herokuapp.com/menu-first-box.php',
9256            success: function (data2) {
9257              if (Number(data2) > 0) {
9258                $('#item-first-box').html('Upcoming Box');
9259                $('#item-first-box').attr('href', 'https://bokksu.com/pages/upcoming-box');
9260                $('.item-first-box-mobile').html('Upcoming Box');
9261                $('.item-first-box-mobile').attr('href', 'https://bokksu.com/account');
9262              }
9263            },
9264          });
9265        }
9266      },
9267    });
9268
9269    function resetScrollbarStylesForInjectedStyles() {
9270      $('style.pieeye-injected-style').each(function () {
9271        var styleContent = $(this).html();
9272        if (styleContent.includes('::-webkit-scrollbar')) {
9273          // Remove styles related to scrollbar
9274          var cleanedStyleContent = styleContent.replace(
9275            /(::-webkit-scrollbar|::-webkit-scrollbar-thumb|::-webkit-scrollbar-track)[^{]*\{[^}]*\}/g,
9276            ''
9277          );
9278          $(this).html(cleanedStyleContent);
9279        }
9280      });
9281    }
9282
9283    const observerCallback = function (mutationsList, observer) {
9284      mutationsList.forEach(function (mutation) {
9285        if (mutation.type === 'childList' && mutation.target.nodeName.toLowerCase() === 'head') {
9286          $(mutation.addedNodes).each(function () {
9287            if (
9288              this.nodeType === Node.ELEMENT_NODE &&
9289              this.tagName.toLowerCase() === 'style' &&
9290              $(this).hasClass('pieeye-injected-style')
9291            ) {
9292              resetScrollbarStylesForInjectedStyles();
9293            }
9294          });
9295        }
9296      });
9297    };
9298    const observer = new MutationObserver(observerCallback);
9299    observer.observe(document.head, { childList: true });
9300  }
9301</script>
9301
9302
9303<script>
9304  // a11y: keep mobile-nav-trigger buttons' aria-expanded state in sync with
9305  // the drawer open/closed state, and remove the drawer from the tab order
9306  // (inert + aria-hidden) when closed so keyboard users can't tab into
9307  // off-screen drawer links.
9308  (function () {
9309    function setExpanded(value) {
9310      var triggers = document.querySelectorAll('.mobile-nav-trigger');
9311      for (var i = 0; i < triggers.length; i++) {
9312        triggers[i].setAttribute('aria-expanded', value ? 'true' : 'false');
9313      }
9314      var drawer = document.getElementById('MobileNav');
9315      if (drawer) {
9316        if (value) {
9317          drawer.removeAttribute('inert');
9318          drawer.removeAttribute('aria-hidden');
9319        } else {
9320          drawer.setAttribute('inert', '');
9321          drawer.setAttribute('aria-hidden', 'true');
9322        }
9323      }
9324    }
9325    document.addEventListener('MobileNav:open', function () { setExpanded(true); });
9326    document.addEventListener('MobileNav:close', function () { setExpanded(false); });
9327
9328    // a11y: toggle cart drawer inert/aria-hidden based on open/closed state.
9329    // Cart uses 'is-active' or 'is-cart-open' class on #HeaderCart.
9330    var cartDrawer = document.getElementById('HeaderCart');
9331    if (cartDrawer && typeof MutationObserver === 'function') {
9332      function syncCartDrawer() {
9333        var isOpen = cartDrawer.classList.contains('is-active') || cartDrawer.classList.contains('is-cart-open');
9334        if (isOpen) {
9335          cartDrawer.removeAttribute('inert');
9336          cartDrawer.removeAttribute('aria-hidden');
9337          // Move focus to the close button so screen readers start inside the drawer.
9338          var closeBtn = cartDrawer.querySelector('.js-close-header-cart');
9339          if (closeBtn) setTimeout(function () { closeBtn.focus(); }, 100);
9340        } else {
9341          cartDrawer.setAttribute('inert', '');
9342          cartDrawer.setAttribute('aria-hidden', 'true');
9343        }
9344      }
9345      new MutationObserver(syncCartDrawer).observe(cartDrawer, {
9346        attributes: true,
9347        attributeFilter: ['class']
9348      });
9349
9350    // a11y: desktop nav dropdown keyboard support (disclosure pattern).
9351    // Nav items with submenus are single <button> elements (not <a> links).
9352    // The parent URL is available as "View all [title]" inside the dropdown.
9353    // Uses .onclick assignment (verified working with VoiceOver).
9354    (function () {
9355      var navItems = document.querySelectorAll('.site-nav--has-dropdown');
9356      if (!navItems.length) return;
9357
9358      navItems.forEach(function (li) {
9359        var toggle = li.querySelector('.site-nav__dropdown-toggle');
9360        var link = li.querySelector('.site-nav__link--has-dropdown');
9361        var dropdown = li.querySelector('.site-nav__dropdown, .megamenu');
9362        if (!toggle) return;
9363
9364        // Wire aria-controls
9365        if (dropdown) {
9366          var dropdownId = 'nav-dropdown-' + Math.random().toString(36).slice(2, 8);
9367          dropdown.setAttribute('id', dropdownId);
9368          toggle.setAttribute('aria-controls', dropdownId);
9369        }
9370
9371        // Use .onclick (not addEventListener) — matches the console test that worked.
9372        toggle.onclick = function (e) {
9373          e.preventDefault();
9374          e.stopPropagation();
9375          var wasOpen = li.classList.contains('is-focused');
9376          // Close all open dropdowns
9377          navItems.forEach(function (other) {
9378            if (other.classList.contains('is-focused')) {
9379              other.classList.remove('is-focused');
9380              var t = other.querySelector('.site-nav__dropdown-toggle');
9381              if (t) t.setAttribute('aria-expanded', 'false');
9382            }
9383          });
9384          if (!wasOpen) {
9385            li.classList.add('is-focused');
9386            toggle.setAttribute('aria-expanded', 'true');
9387          }
9388        };
9389
9390        // Close on focusout (focus leaves the entire <li> + dropdown).
9391        var closeTimeout;
9392        li.addEventListener('focusin', function () {
9393          clearTimeout(closeTimeout);
9394        });
9395        li.addEventListener('focusout', function () {
9396          closeTimeout = setTimeout(function () {
9397            if (!li.contains(document.activeElement)) {
9398              li.classList.remove('is-focused');
9399              toggle.setAttribute('aria-expanded', 'false');
9400            }
9401          }, 50);
9402        });
9403
9404        // Mouse: hover opens/closes (existing behavior preserved).
9405        li.addEventListener('mouseenter', function () {
9406          li.classList.add('is-focused');
9407          toggle.setAttribute('aria-expanded', 'true');
9408        });
9409        li.addEventListener('mouseleave', function () {
9410          if (!li.contains(document.activeElement)) {
9411            li.classList.remove('is-focused');
9412            toggle.setAttribute('aria-expanded', 'false');
9413          }
9414        });
9415
9416        // Escape: close dropdown, return focus to the toggle button.
9417        li.addEventListener('keydown', function (e) {
9418          if (e.key === 'Escape' && li.classList.contains('is-focused')) {
9419            e.stopPropagation();
9420            li.classList.remove('is-focused');
9421            toggle.setAttribute('aria-expanded', 'false');
9422            toggle.focus();
9423          }
9424        });
9425      });
9426    })();
9427
9428      // Escape key closes the cart drawer and returns focus to the cart trigger.
9429      document.addEventListener('keydown', function (e) {
9430        if (e.key === 'Escape' && (cartDrawer.classList.contains('is-active') || cartDrawer.classList.contains('is-cart-open'))) {
9431          var closeBtn = cartDrawer.querySelector('.js-close-header-cart');
9432          if (closeBtn) closeBtn.click();
9433          var cartTrigger = document.getElementById('HeaderCartTrigger');
9434          if (cartTrigger) setTimeout(function () { cartTrigger.focus(); }, 200);
9435        }
9436      });
9437    }
9438  })();
9439</script>
9439
9440
9441
9442</div><section id="shopify-section-sections--17749310636118__cart_milestone_TaEhjU" class="shopify-section shopify-section-group-header-group d-none">
9443
9444
9445
9446
9447
9448
9449
9450
9451
9452
9453
9454
9455
9456<span
9457  class="gwp-with-choice-section-title"
9458  data-section-title=""
9459  style="display: none;"
9460></span>
9461
9462
9463<!-- Dual Cart - Market Items Progress Bar -->
9464
9465
9466
9467
9468
9469
9470</section>
9471<!-- END sections: header-group --><!-- BEGIN sections: popup-group -->
9472
9473<!-- END sections: popup-group --><main class="main-content" id="MainContent" role="main">
9474          <div id="shopify-section-template--17749318303830__snb_hero_native_m3PCWY" class="shopify-section">
9475<style data-shopify>/* Desktop typography (641px+) – matches layout breakpoint ~640×937 */
9476    @media (min-width: 641px) {
9477      #shopify-section-template--17749318303830__snb_hero_native_m3PCWY .snb-hero-native__slide--slide_yUTnyh .snb-hero-native__preheader {
9478        color: #f8ffff;
9479        font-size: 16px;
9480        font-weight: 500;
9481        line-height: 0.8;
9482        letter-spacing: 0.2em;
9483        font-family: "Montserrat", sans-serif;
9484      }
9485      #shopify-section-template--17749318303830__snb_hero_native_m3PCWY .snb-hero-native__slide--slide_yUTnyh .hero__title {
9486        color: #f8ffff;
9487        font-size: 66px;
9488        font-weight: 500;
9489        line-height: 0.9;
9490        letter-spacing: 0em;
9491        font-family: var(--typeHeaderPrimary), var(--typeHeaderFallback);
9492      }
9493      #shopify-section-template--17749318303830__snb_hero_native_m3PCWY .snb-hero-native__slide--slide_yUTnyh .snb-hero-native__description {
9494        color: #f8ffff;
9495        font-size: 16px;
9496        font-weight: 400;
9497        line-height: 1.5;
9498        letter-spacing: 0em;
9499        font-family: var(--typeBasePrimary), var(--typeBaseFallback);
9500      }
9501      #shopify-section-template--17749318303830__snb_hero_native_m3PCWY .snb-hero-native__slide--slide_yUTnyh .snb-hero-native__cta {
9502        color: #ffffff;
9503        --snb-cta-bg: #ffffff;--snb-cta-border: #ffffff;
9504        --snb-cta-fill: #611f13;
9505        font-size: 14px;
9506        font-weight: 600;
9507        line-height: 1.2;
9508        letter-spacing: 0.1em;
9509        font-family: var(--typeBasePrimary), var(--typeBaseFallback);
9510      }
9511    }
9512    /* Mobile layout typography (≤640px) – matches screenshot 2 breakpoint */
9513    @media (max-width: 640px) {
9514      #shopify-section-template--17749318303830__snb_hero_native_m3PCWY .snb-hero-native__slide--slide_yUTnyh .snb-hero-native__preheader {
9515        color: #f8ffff;
9516        font-size: 12px;
9517        font-weight: 600;
9518        line-height: 0.8;
9519        letter-spacing: 0.1em;
9520        font-family: var(--typeBasePrimary), var(--typeBaseFallback);
9521      }
9522      #shopify-section-template--17749318303830__snb_hero_native_m3PCWY .snb-hero-native__slide--slide_yUTnyh .hero__title {
9523        color: #f8ffff;
9524        font-size: 34px !important;
9525        font-weight: 400;
9526        line-height: 1.6 !important;
9527        letter-spacing: 0em;
9528        font-family: var(--typeHeaderPrimary), var(--typeHeaderFallback);
9529      }
9530      #shopify-section-template--17749318303830__snb_hero_native_m3PCWY .snb-hero-native__slide--slide_yUTnyh .snb-hero-native__description {
9531        color: #f8ffff;
9532        font-size: 15px;
9533        font-weight: 400;
9534        line-height: 1.5;
9535        letter-spacing: 0em;
9536        font-family: var(--typeBasePrimary), var(--typeBaseFallback);
9537      }
9538      #shopify-section-template--17749318303830__snb_hero_native_m3PCWY .snb-hero-native__slide--slide_yUTnyh .snb-hero-native__cta {
9539        color: #ffffff;
9540        --snb-cta-bg: #ffffff;--snb-cta-border: #ffffff;
9541        --snb-cta-fill: #611f13;
9542        font-size: 13px;
9543        font-weight: 600;
9544        line-height: 1.4;
9545        letter-spacing: 0.1em;
9546        font-family: var(--typeBasePrimary), var(--typeBaseFallback);
9547      }
9548    }
9549    #shopify-section-template--17749318303830__snb_hero_native_m3PCWY .snb-hero-native__slide--slide_yUTnyh .snb-hero-native__cta:hover {
9550      color: #ffffff !important;
9551    }</style><style data-shopify>/* SNB Hero Native – base layout, carousel, content, CTA, controls (self-contained in section) */
9552  .snb-hero-native {
9553    position: relative;
9554    overflow: hidden;
9555    margin-bottom: 0;
9556    padding-bottom: 0;
9557    border-bottom: none !important;
9558    outline: none !important;
9559  }
9560  .index-section:has(.snb-hero-native) {
9561    margin-bottom: 0 !important;
9562    padding-bottom: 0 !important;
9563    border-bottom: none !important;
9564  }
9565  div:has(> .snb-hero-native) {
9566    margin-bottom: 0 !important;
9567    padding-bottom: 0 !important;
9568    border-bottom: none !important;
9569  }
9570  .main-content > div:has(.snb-hero-native) {
9571    margin-bottom: 0 !important;
9572    padding-bottom: 0 !important;
9573    border-bottom: none !important;
9574  }
9575  .main-content:has(> div:last-child .snb-hero-native) + div,
9576  .main-content:has(> div:last-child .snb-hero-native) + section {
9577    margin-top: 0 !important;
9578    padding-top: 0 !important;
9579    border-top: none !important;
9580  }
9581  .main-content:has(> div:last-child .snb-hero-native) + div .footer__section:first-child,
9582  .main-content:has(> div:last-child .snb-hero-native) + div .footer__section:first-of-type {
9583    border-top: none !important;
9584  }
9585  .main-content > div:has(.snb-hero-native) + * {
9586    margin-top: 0 !important;
9587    padding-top: 0 !important;
9588    border-top: none !important;
9589  }
9590  .snb-hero-native--utm-show-only {
9591    display: none;
9592  }
9593  /* Pre-Flickity: prevent vertical stacking / CLS */
9594  .snb-hero-native__slider:not(.flickity-enabled) {
9595    position: relative;
9596    overflow: hidden;
9597  }
9598  .snb-hero-native__slider:not(.flickity-enabled) .snb-hero-native__slide {
9599    display: none;
9600  }
9601  .snb-hero-native__slider:not(.flickity-enabled) .snb-hero-native__slide:first-child {
9602    display: block;
9603  }
9604
9605  .snb-hero-native__slider.flickity-enabled {
9606    overflow: visible;
9607  }
9608  .snb-hero-native__slider.flickity-enabled .flickity-viewport {
9609    width: 100%;
9610    height: 60vh;
9611    overflow: hidden;
9612  }
9613  @media (max-width: 640px) {
9614    .snb-hero-native__slider.flickity-enabled .flickity-viewport {
9615      height: 85vh;
9616    }
9617  }
9618  .snb-hero-native__slider.flickity-enabled .flickity-slider {
9619    display: flex;
9620    align-items: stretch;
9621  }
9622  .snb-hero-native__slider .snb-hero-native__slide {
9623    width: 100%;
9624    flex-shrink: 0;
9625  }
9626  .snb-hero-native__slide {
9627    position: relative;
9628    overflow: hidden;
9629    width: 100%;
9630    height: 60vh;
9631  }
9632  .snb-hero-native__slide--clickable {
9633    cursor: pointer;
9634  }
9635  .snb-hero-native__slide--clickable .snb-hero-native__cta,
9636  .snb-hero-native__slide--clickable .snb-hero-native__content {
9637    pointer-events: auto;
9638  }
9639  @media (max-width: 640px) {
9640    .snb-hero-native__slide {
9641      height: 85vh;
9642    }
9643  }
9644  @media (min-width: 961px) {
9645    .snb-hero-native__slide {
9646      max-height: 62vh;
9647    }
9648  }
9649  .snb-hero-native__bg {
9650    position: absolute;
9651    inset: 0;
9652    width: 100%;
9653    height: 100%;
9654    z-index: 0;
9655  }
9656  .snb-hero-native__bg .snb-hero-native__img {
9657    position: absolute;
9658    inset: 0;
9659    width: 100%;
9660    height: 100%;
9661    object-fit: cover;
9662    object-position: right center;
9663    display: block;
9664  }
9665  .snb-hero-native__bg .snb-hero-native__img--desktop {
9666    display: none;
9667  }
9668  .snb-hero-native__bg .snb-hero-native__img--mobile {
9669    display: block;
9670    object-position: center center;
9671  }
9672  @media (max-width: 640px) {
9673    .snb-hero-native__bg .snb-hero-native__img,
9674    .snb-hero-native__bg .snb-hero-native__img--mobile {
9675      object-position: center top;
9676    }
9677    .snb-hero-native__bg .snb-hero-native__video--native {
9678      object-position: center top;
9679    }
9680  }
9681  @media (min-width: 641px) {
9682    .snb-hero-native__bg .snb-hero-native__img--desktop {
9683      display: block;
9684    }
9685    .snb-hero-native__bg .snb-hero-native__img--mobile {
9686      display: none;
9687    }
9688    .snb-hero-native__bg .snb-hero-native__img,
9689    .snb-hero-native__bg .snb-hero-native__video--native {
9690      object-position: right center;
9691    }
9692  }
9693  .snb-hero-native__bg .snb-hero-native__video {
9694    position: absolute;
9695    inset: 0;
9696    width: 100%;
9697    height: 100%;
9698    border: none;
9699    pointer-events: none;
9700  }
9701  .snb-hero-native__bg .snb-hero-native__video--native {
9702    object-fit: cover;
9703    object-position: right center;
9704  }
9705  .snb-hero-native__video--desktop-only {
9706    display: none;
9707  }
9708  .snb-hero-native__video--mobile-only {
9709    display: block;
9710  }
9711  @media (min-width: 641px) {
9712    .snb-hero-native__video--desktop-only {
9713      display: block;
9714    }
9715    .snb-hero-native__video--mobile-only {
9716      display: none;
9717    }
9718  }
9719  .snb-hero-native__bg .snb-hero-native__video--youtube,
9720  .snb-hero-native__bg .snb-hero-native__video--vimeo {
9721    width: 100vw;
9722    height: 56.25vw;
9723    min-height: 100%;
9724    min-width: 177.78vh;
9725    left: 50%;
9726    top: 50%;
9727    transform: translate(-50%, -50%);
9728  }
9729  .snb-hero-native__content {
9730    position: absolute;
9731    z-index: 2;
9732    display: flex;
9733    box-sizing: border-box;
9734  }
9735  .snb-hero-native__content::before {
9736    display: none;
9737    content: none;
9738  }
9739  @media (max-width: 640px) {
9740    .snb-hero-native__content[data-mobile-overlay="true"]::before {
9741      content: '';
9742      display: block;
9743      position: absolute;
9744      inset: 0;
9745      background-color: var(--snb-hero-mob-overlay-bg, rgba(0,0,0,0.4));
9746      backdrop-filter: blur(var(--snb-hero-mob-overlay-blur, 0px));
9747      z-index: -1;
9748      pointer-events: none;
9749      border-radius: inherit;
9750    }
9751  }
9752  @media (min-width: 641px) {
9753    .snb-hero-native__content {
9754      inset: 0;
9755      display: flex;
9756      align-items: center;
9757      padding: 80px 20px 24px;
9758      transform: translateY(-20px);
9759    }
9760  }
9761  .snb-hero-native__content-inner {
9762    width: 100%;
9763    max-width: 100%;
9764    margin: 0;
9765    display: flex;
9766    flex-direction: column;
9767    gap: 0;
9768    box-sizing: border-box;
9769  }
9770  @media (min-width: 641px) {
9771    .snb-hero-native__content-inner {
9772      max-width: 600px;
9773      margin-left: 8%;
9774      margin-right: auto;
9775      text-align: left;
9776    }
9777  }
9778  @media (max-width: 640px) {
9779    .snb-hero-native__slide {
9780      min-height: 64vh;
9781      position: relative;
9782    }
9783    .snb-hero-native__bg {
9784      display: flex;
9785      align-items: flex-end;
9786      justify-content: center;
9787    }
9788    .snb-hero-native__img {
9789      object-fit: contain;
9790      object-position: center top;
9791      width: 100%;
9792      height: auto;
9793      max-height: 100%;
9794    }
9795    .snb-hero-native__content {
9796      position: absolute;
9797      left: 0;
9798      right: 0;
9799      bottom: 0;
9800      padding: 24px 20px 28px;
9801      display: flex;
9802      justify-content: center;
9803    }
9804    .snb-hero-native__content-inner {
9805      width: 100% !important;
9806      max-width: 100% !important;
9807      display: flex;
9808      flex-direction: column;
9809      align-items: center !important;
9810      text-align: center;
9811      gap: 8px;
9812    }
9813    .snb-hero-native__content-inner .snb-hero-native__preheader,
9814    .snb-hero-native__content-inner .hero__subtitle {
9815      margin-bottom: 0 !important;
9816    }
9817    .snb-hero-native__content-inner .hero__title,
9818    .snb-hero-native__content-inner h1,
9819    .snb-hero-native__content-inner h2 {
9820      margin-top: 0 !important;
9821      margin-bottom: 0 !important;
9822    }
9823    .snb-hero-native__content-inner .snb-hero-native__description,
9824    .snb-hero-native__content-inner p {
9825      margin-top: 0 !important;
9826      margin-bottom: 0 !important;
9827    }
9828    .snb-hero-native__content-inner .snb-hero-native__cta,
9829    .snb-hero-native__content-inner .btn {
9830      margin-top: 16px !important;
9831      margin-bottom: 0 !important;
9832    }
9833    .snb-hero-native__content-inner,
9834    .snb-hero-native__content-inner * {
9835      text-align: center !important;
9836    }
9837    .snb-hero-native__content-inner .snb-hero-native__preheader,
9838    .snb-hero-native__content-inner .hero__subtitle,
9839    .snb-hero-native__content-inner .eyebrow,
9840    .snb-hero-native__content-inner .hero__eyebrow,
9841    .snb-hero-native__content-inner .subheading {
9842      text-align: center !important;
9843      margin-left: auto !important;
9844      margin-right: auto !important;
9845    }
9846    .snb-hero-native__content-inner .btn,
9847    .snb-hero-native__content-inner a.btn,
9848    .snb-hero-native__content-inner .snb-hero-native__cta,
9849    .snb-hero-native__content .btn,
9850    .snb-hero-native__content .snb-hero-native__cta {
9851      display: inline-flex !important;
9852      justify-content: center !important;
9853      text-align: center !important;
9854      margin-left: auto !important;
9855      margin-right: auto !important;
9856    }
9857    .snb-hero-native .hero__title,
9858    .snb-hero-native h1,
9859    .snb-hero-native h2,
9860    .snb-hero-native__content-inner .hero__title,
9861    .snb-hero-native__content-inner h1,
9862    .snb-hero-native__content-inner h2 {
9863      text-align: center !important;
9864      align-self: center;
9865      margin-left: auto !important;
9866      margin-right: auto !important;
9867    }
9868    .snb-hero-native__content p,
9869    .snb-hero-native__content .snb-hero-native__description {
9870      text-align: center !important;
9871    }
9872    .snb-hero-native__content .btn,
9873    .snb-hero-native__content .snb-hero-native__cta {
9874      padding: 12px 24px;
9875      width: auto;
9876      max-width: calc(100vw - 40px);
9877      min-width: 0;
9878      display: inline-flex;
9879      justify-content: center;
9880      white-space: normal;
9881      word-break: break-word;
9882      box-sizing: border-box;
9883      letter-spacing: 3px !important;
9884      margin-bottom: 30px !important;
9885    }
9886  }
9887  .snb-hero-native__preheader {
9888    font-family: "Montserrat", sans-serif;
9889    text-transform: uppercase;
9890    color: #333333;
9891    letter-spacing: 0.08em;
9892    box-sizing: border-box;
9893    display: flex;
9894    flex-direction: column;
9895    flex-shrink: 0;
9896    position: relative;
9897    text-align: left;
9898    width: auto;
9899    height: auto;
9900    margin: 0 auto 6px 0;
9901  }
9902  @media (min-width: 641px) {
9903    .snb-hero-native__preheader {
9904      color: rgba(255, 255, 255, 1);
9905      font-size: 14px;
9906      letter-spacing: 5px;
9907      line-height: 18px;
9908      font-weight: 500;
9909      margin-bottom: 6px;
9910    }
9911  }
9912  .snb-hero-native .hero__title {
9913    font-family: var(--typeHeaderPrimary), var(--typeHeaderFallback), "Orpheus Pro", Georgia, serif;
9914    color: #333333;
9915    max-width: 100%;
9916    white-space: normal;
9917    line-break: normal;
9918    box-sizing: border-box;
9919    display: flex;
9920    flex-direction: column;
9921    flex-shrink: 0;
9922    position: relative;
9923    text-align: left;
9924    width: auto;
9925    height: auto;
9926    margin: 0 auto 1rem 0;
9927  }
9928  @media (min-width: 641px) {
9929    .snb-hero-native .hero__title {
9930      color: rgba(255, 255, 255, 1);
9931      font-size: 68px;
9932      letter-spacing: 0;
9933      line-height: 70px;
9934      font-weight: 200;
9935      margin-bottom: 12px;
9936      white-space: nowrap;
9937    }
9938  }
9939  @media (max-width: 640px) {
9940    .snb-hero-native .hero__title,
9941    .snb-hero-native h1,
9942    .snb-hero-native h2 {
9943      align-self: stretch;
9944      color: var(--new-brand-grobal-brand-colors-white-ffffff, #fff);
9945      font-style: normal;
9946    }
9947  }
9948  .snb-hero-native__description {
9949    font-family: var(--typeBasePrimary), var(--typeBaseFallback), "Montserrat", sans-serif;
9950    color: #333333;
9951    margin-bottom: 1.5rem;
9952    text-align: left;
9953    width: auto;
9954    height: auto;
9955    box-sizing: border-box;
9956  }
9957  @media (min-width: 641px) {
9958    .snb-hero-native__description {
9959      color: rgba(255, 255, 255, 1);
9960      font-size: 16px;
9961      letter-spacing: 0.5px;
9962      line-height: 24px;
9963      font-weight: 400;
9964      max-width: 509px;
9965      margin-bottom: 0;
9966    }
9967  }
9968  .snb-hero-native__description p {
9969    margin: 0 0 0.5em;
9970  }
9971  .snb-hero-native__cta {
9972    position: relative;
9973    display: inline-flex;
9974    align-items: center;
9975    justify-content: center;
9976    overflow: hidden;
9977    width: auto;
9978    min-width: 240px;
9979    padding: 12px 40px;
9980    box-sizing: border-box;
9981    border-radius: 12px;
9982    border: 1.5px solid var(--snb-cta-border, #fff);
9983    text-decoration: none;
9984    cursor: pointer;
9985    white-space: nowrap;
9986    appearance: none;
9987    text-align: center;
9988    flex-shrink: 0;
9989    margin: 0 auto 0 0;
9990    font-family: "Montserrat", sans-serif;
9991    font-size: 16px;
9992    letter-spacing: 4px;
9993    line-height: 22px;
9994    font-weight: 500;
9995    background-color: var(--snb-cta-bg, #fff) !important;
9996    color: #611f13 !important;
9997    transition: color 0.2s ease;
9998  }
9999  .snb-hero-native__cta:hover {
10000    color: #fff !important;
10001  }
10002  .snb-hero-native__cta::before {
10003    content: "";
10004    position: absolute;
10005    inset: 0;
10006    background-color: var(--snb-cta-fill, #611f13);
10007    transform: scaleX(0);
10008    transform-origin: left;
10009    transition: transform 0.2s ease;
10010    z-index: 0;
10011    border-radius: inherit;
10012  }
10013  .snb-hero-native__cta:hover::before {
10014    transform: scaleX(1);
10015  }
10016  .snb-hero-native__cta span {
10017    position: relative;
10018    z-index: 1;
10019  }
10020  @media (min-width: 641px) {
10021    .snb-hero-native__cta {
10022      margin-top: 25px;
10023    }
10024  }
10025  @media (max-width: 640px) {
10026    .snb-hero-native__cta {
10027      margin-top: 0;
10028    }
10029  }
10030  .snb-hero-native__placeholder {
10031    position: absolute;
10032    inset: 0;
10033    width: 100%;
10034    height: 100%;
10035    min-height: 280px;
10036    display: flex;
10037    align-items: center;
10038    justify-content: center;
10039    background: linear-gradient(135deg, #2c3e50 0%, #4a6fa5 100%);
10040    color: rgba(255, 255, 255, 0.6);
10041  }
10042  .snb-hero-native .flickity-prev-next-button {
10043    top: auto !important;
10044    bottom: 20px !important;
10045    width: 44px;
10046    height: 44px;
10047    transform: none !important;
10048    background-color: #fff;
10049    color: #414141;
10050    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
10051    border: none;
10052    transition: box-shadow 0.2s ease;
10053  }
10054  .snb-hero-native .flickity-prev-next-button:hover {
10055    transform: none !important;
10056    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
10057  }
10058  .snb-hero-native .flickity-prev-next-button:active {
10059    transform: none !important;
10060  }
10061  .snb-hero-native .flickity-previous {
10062    left: 20px;
10063    right: auto;
10064  }
10065  .snb-hero-native .flickity-next {
10066    right: 20px;
10067    left: auto;
10068  }
10069  /* Mobile: move arrows above content area to avoid CTA overlap */
10070  @media (max-width: 640px) {
10071    .snb-hero-native .flickity-prev-next-button {
10072      top: 50% !important;
10073      bottom: auto !important;
10074      transform: translateY(-50%) !important;
10075      width: 36px;
10076      height: 36px;
10077      background-color: rgba(255, 255, 255, 0.85);
10078      z-index: 3;
10079    }
10080    .snb-hero-native .flickity-prev-next-button:hover {
10081      transform: translateY(-50%) !important;
10082    }
10083    .snb-hero-native .flickity-previous {
10084      left: 8px;
10085    }
10086    .snb-hero-native .flickity-next {
10087      right: 8px;
10088    }
10089  }
10090  .snb-hero-native .flickity-button-icon {
10091    fill: #414141;
10092  }
10093  .snb-hero-native .flickity-page-dots {
10094    bottom: 20px;
10095    left: 50%;
10096    width: auto;
10097    transform: translateX(-50%);
10098    display: flex;
10099    align-items: center;
10100    justify-content: center;
10101    gap: 6px;
10102    padding: 6px 14px;
10103    background-color: #fff;
10104    border-radius: 999px;
10105    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
10106  }
10107  .snb-hero-native .flickity-page-dots .dot {
10108    width: 6px;
10109    height: 6px;
10110    margin: 0;
10111    border-radius: 50%;
10112    background-color: #C4C4C4;
10113    opacity: 1;
10114    vertical-align: middle;
10115  }
10116  .snb-hero-native .flickity-page-dots .dot:hover {
10117    opacity: 1;
10118    background-color: #a0a0a0;
10119  }
10120  .snb-hero-native .flickity-page-dots .dot.is-selected {
10121    width: 24px;
10122    height: 6px;
10123    border-radius: 3px;
10124    background-color: #2E513F;
10125  }
10126  .snb-hero-native__slide--clickable:focus-visible {
10127    outline: 2px solid #fff;
10128    outline-offset: -4px;
10129  }
10130  .snb-hero-native__cta:focus-visible {
10131    outline: 2px solid currentColor;
10132    outline-offset: 3px;
10133  }
10134  .snb-hero-native__pause-btn {
10135    position: absolute;
10136    bottom: 20px;
10137    right: 80px;
10138    z-index: 10;
10139    display: inline-flex;
10140    align-items: center;
10141    justify-content: center;
10142    width: 44px;
10143    height: 44px;
10144    background-color: #fff;
10145    color: #414141;
10146    border: none;
10147    border-radius: 50%;
10148    cursor: pointer;
10149    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
10150    padding: 0;
10151  }
10152  .snb-hero-native__pause-btn:focus-visible {
10153    outline: 2px solid #414141;
10154    outline-offset: 3px;
10155  }</style>
10156
10157  
10158  
10159  
10160  
10161  
10162
10163
10164
10165<section
10166  class="hero hero--large hero--centered snb-hero-native"
10167  data-section-id="template--17749318303830__snb_hero_native_m3PCWY"
10168  data-section-type="snb-hero-native"
10169  
10170  ><h1 class="visually-hidden">Discover JapanThrough Snacks</h1><div
10171    id="Slideshow-template--17749318303830__snb_hero_native_m3PCWY"
10172    class="snb-hero-native__slider loaded"
10173    role="region"
10174    aria-roledescription="carousel"
10175    aria-label="Hero slideshow"
10176    data-autoplay="false"
10177    data-speed="5000"
10178    data-arrows="true"
10179    data-dots="true">
10180    
10181
10182<div
10183        class="snb-hero-native__slide snb-hero-native__slide--slide_yUTnyh"
10184        role="group"
10185        aria-roledescription="slide"
10186        aria-labelledby="snb-hero-slide-label-template--17749318303830__snb_hero_native_m3PCWY-slide_yUTnyh"
10187        
10188        >
10189        <span class="visually-hidden" id="snb-hero-slide-label-template--17749318303830__snb_hero_native_m3PCWY-slide_yUTnyh">Slide 1 of 1: Discover JapanThrough Snacks</span>
10190        <div class="snb-hero-native__bg" aria-hidden="true" inert>
10191          
10192          
10193          
10194          
10195          
10196
10197          
10198
10199          
10200
10201          
10202            
10203            
10204            
10205              <img
10206                class="snb-hero-native__img snb-hero-native__img--desktop"
10207                src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_c6d233a7e05b49dbbb437504a8260346_a74a1b61-8103-4122-aa70-f662edd1a60b.jpg?v=1771973433&width=2000"
10208                srcset="
10209                  //bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_c6d233a7e05b49dbbb437504a8260346_a74a1b61-8103-4122-aa70-f662edd1a60b.jpg?v=1771973433&width=800 800w,
10210                  //bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_c6d233a7e05b49dbbb437504a8260346_a74a1b61-8103-4122-aa70-f662edd1a60b.jpg?v=1771973433&width=1200 1200w,
10211                  //bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_c6d233a7e05b49dbbb437504a8260346_a74a1b61-8103-4122-aa70-f662edd1a60b.jpg?v=1771973433&width=2000 2000w
10212                "
10213                sizes="100vw"
10214                alt="Discover JapanThrough Snacks"
10215                width="2000"
10216                height="800"
10217                loading="eager"
10218                  fetchpriority="high"
10219
10220              >
10221              
10222              <img
10223                class="snb-hero-native__img snb-hero-native__img--mobile"
10224                src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_27496cd0ce7a49f1a3a8742df6381083.webp?v=1772015507&width=800"
10225                srcset="
10226                  //bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_27496cd0ce7a49f1a3a8742df6381083.webp?v=1772015507&width=480 480w,
10227                  //bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_27496cd0ce7a49f1a3a8742df6381083.webp?v=1772015507&width=800 800w,
10228                  //bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_27496cd0ce7a49f1a3a8742df6381083.webp?v=1772015507&width=1200 1200w
10229                "
10230                sizes="100vw"
10231                alt="Discover JapanThrough Snacks"
10232                width="623"
10233                height="934"
10234                loading="eager"
10235                                  fetchpriority="high"
10236
10237              >
10238            
10239          
10240        </div><div class="snb-hero-native__content">
10241          <div class="snb-hero-native__content-inner">
10242            
10243            
10244              
10245              <h2 class="hero__title">Discover Japan<br/>Through Snacks<br></h2>
10246            
10247            
10248              <div class="snb-hero-native__description"><p>Authentic Japanese snacks delivered to you monthly from Japan.</p></div>
10249            
10250            
10251              <a href="#snack-box-subscription" class="snb-hero-native__cta btn" aria-label="Subscribe now — view subscription plans"><span>SUBSCRIBE NOW</span></a>
10252            
10253          </div>
10254        </div>
10255      </div>
10256    
10257  </div>
10258  <div class="visually-hidden" id="snb-hero-status-template--17749318303830__snb_hero_native_m3PCWY" aria-live="polite" aria-atomic="true"></div>
10259</section>
10260<script>
10261(function() {
10262  var sectionId = 'template--17749318303830__snb_hero_native_m3PCWY';
10263  var section = document.querySelector('[data-section-id="' + sectionId + '"][data-section-type="snb-hero-native"]');
10264  if (!section) return;
10265  var slideshow = document.getElementById('Slideshow-' + sectionId);
10266  if (!slideshow) return;
10267
10268  window._snbHeroNativeFlickity = window._snbHeroNativeFlickity || {};
10269
10270  function initSlider() {
10271    if (window._snbHeroNativeFlickity[sectionId]) return;
10272    var slides = slideshow.querySelectorAll('.snb-hero-native__slide');
10273    slideshow.classList.add('loaded');
10274    if (slides.length > 1 && typeof theme !== 'undefined' && theme.Slideshow) {
10275      var sliderArgs = {
10276        cellSelector: '.snb-hero-native__slide',
10277        prevNextButtons: true,
10278        pageDots: true,
10279        fade: false,
10280        setGallerySize: false,
10281        initialIndex: 0,
10282        wrapAround: true,
10283        autoPlay: (slideshow.dataset.autoplay === 'true' && !window.matchMedia('(prefers-reduced-motion: reduce)').matches) ? (parseInt(slideshow.dataset.speed, 10) || 5000) : false
10284      };
10285      window._snbHeroNativeFlickity[sectionId] = new theme.Slideshow(slideshow, sliderArgs);
10286    } else if (slides.length === 1) {
10287      slides[0].classList.add('is-selected');
10288    }
10289  }
10290
10291  function initPauseButton() {
10292    if (slideshow.dataset.autoplay !== 'true') return;
10293    var existing = section.querySelector('.snb-hero-native__pause-btn');
10294    if (existing) return;
10295    var pauseBtn = document.createElement('button');
10296    pauseBtn.type = 'button';
10297    pauseBtn.className = 'snb-hero-native__pause-btn';
10298    pauseBtn.setAttribute('aria-label', 'Pause slideshow');
10299    pauseBtn.innerHTML = '<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><rect x="3" y="2" width="4" height="12"/><rect x="9" y="2" width="4" height="12"/></svg>';
10300    // Insert as the first child of the slideshow so VoiceOver users
10301    // encounter it immediately when entering the carousel region,
10302    // before any slide content starts rotating under them.
10303    slideshow.insertBefore(pauseBtn, slideshow.firstChild);
10304    var isPaused = false;
10305    pauseBtn.addEventListener('click', function(e) {
10306      e.stopPropagation();
10307      var flk = window._snbHeroNativeFlickity[sectionId];
10308      if (flk) {
10309        if (isPaused) {
10310          if (typeof flk.play === 'function') flk.play();
10311          pauseBtn.setAttribute('aria-label', 'Pause slideshow');
10312          pauseBtn.innerHTML = '<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><rect x="3" y="2" width="4" height="12"/><rect x="9" y="2" width="4" height="12"/></svg>';
10313        } else {
10314          if (typeof flk.pause === 'function') flk.pause();
10315          pauseBtn.setAttribute('aria-label', 'Play slideshow');
10316          pauseBtn.innerHTML = '<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M4 2l10 6-10 6z"/></svg>';
10317        }
10318        isPaused = !isPaused;
10319      }
10320    });
10321  }
10322
10323  // a11y: keep off-screen carousel slides out of the keyboard tab order
10324  // WITHOUT using inert (which would kick screen-reader virtual focus when
10325  // the slide rotates). Instead, set tabindex="-1" on focusable descendants
10326  // of inactive slides; restore on selection. Also pause autoplay while the
10327  // slideshow has focus so the user can read without rotation interruptions.
10328  var FOCUSABLE_SEL = 'a[href], button, input, select, textarea, iframe, [tabindex]';
10329
10330  function enforceSlideInert() {
10331    var slides = slideshow.querySelectorAll('.snb-hero-native__slide');
10332
10333    function setSlideTabbable(slide, tabbable) {
10334      var focusables = slide.querySelectorAll(FOCUSABLE_SEL);
10335      for (var i = 0; i < focusables.length; i++) {
10336        var el = focusables[i];
10337        if (tabbable) {
10338          var orig = el.getAttribute('data-a11y-orig-tabindex');
10339          if (orig !== null && orig !== undefined) {
10340            if (orig === '__none__') el.removeAttribute('tabindex');
10341            else el.setAttribute('tabindex', orig);
10342            el.removeAttribute('data-a11y-orig-tabindex');
10343          } else {
10344            el.removeAttribute('tabindex');
10345          }
10346        } else {
10347          if (el.getAttribute('data-a11y-orig-tabindex') === null) {
10348            var existing = el.getAttribute('tabindex');
10349            el.setAttribute('data-a11y-orig-tabindex', existing === null ? '__none__' : existing);
10350          }
10351          el.setAttribute('tabindex', '-1');
10352        }
10353      }
10354    }
10355
10356    function applyState() {
10357      // If no slide has is-selected yet (Flickity hasn't init'd), treat first as active.
10358      var hasSelected = false;
10359      for (var k = 0; k < slides.length; k++) {
10360        if (slides[k].classList.contains('is-selected')) { hasSelected = true; break; }
10361      }
10362
10363      for (var i = 0; i < slides.length; i++) {
10364        var slide = slides[i];
10365        var isActive = slide.classList.contains('is-selected') || (!hasSelected && i === 0);
10366        setSlideTabbable(slide, isActive);
10367        if (isActive) {
10368          slide.removeAttribute('aria-hidden');
10369        } else if (!slide.contains(document.activeElement)) {
10370          slide.setAttribute('aria-hidden', 'true');
10371        }
10372      }
10373    }
10374
10375    applyState();
10376
10377    if (typeof MutationObserver === 'function' && !slideshow.dataset.a11ySlideObserved) {
10378      slideshow.dataset.a11ySlideObserved = '1';
10379      var observer = new MutationObserver(function (mutations) {
10380        for (var i = 0; i < mutations.length; i++) {
10381          if (mutations[i].attributeName === 'class') {
10382            applyState();
10383            break;
10384          }
10385        }
10386      });
10387      for (var j = 0; j < slides.length; j++) {
10388        observer.observe(slides[j], { attributes: true, attributeFilter: ['class'] });
10389      }
10390    }
10391
10392    // Pause autoplay while the slideshow has keyboard or screen-reader focus.
10393    if (!slideshow.dataset.a11yFocusPause) {
10394      slideshow.dataset.a11yFocusPause = '1';
10395      var pausedByFocus = false;
10396      slideshow.addEventListener('focusin', function () {
10397        var flk = window._snbHeroNativeFlickity[sectionId];
10398        if (flk && typeof flk.pause === 'function') {
10399          flk.pause();
10400          pausedByFocus = true;
10401        }
10402      });
10403      slideshow.addEventListener('focusout', function (e) {
10404        // Only resume if focus actually leaves the slideshow.
10405        if (slideshow.contains(e.relatedTarget)) return;
10406        if (!pausedByFocus) return;
10407        pausedByFocus = false;
10408        var flk = window._snbHeroNativeFlickity[sectionId];
10409        if (flk && flk.args && flk.args.autoPlay && typeof flk.play === 'function') {
10410          flk.play();
10411        }
10412      });
10413    }
10414  }
10415
10416  // a11y: ensure Flickity-injected prev/next buttons AND page dots have
10417  // explicit aria-labels and survive third-party DOM rewrites
10418  // (e.g., UserWay overlay relabels them as "Current step").
10419  function enforcePrevNextLabels() {
10420    function applyLabels() {
10421      var prev = slideshow.querySelector('.flickity-button.flickity-previous, .flickity-prev-next-button.flickity-previous, .flickity-prev-next-button.previous');
10422      var next = slideshow.querySelector('.flickity-button.flickity-next, .flickity-prev-next-button.flickity-next, .flickity-prev-next-button.next');
10423      // Build contextual labels using the slide titles from the hidden label spans.
10424      var slides = slideshow.querySelectorAll('.snb-hero-native__slide');
10425      var currentIndex = 0;
10426      for (var si = 0; si < slides.length; si++) {
10427        if (slides[si].classList.contains('is-selected')) { currentIndex = si; break; }
10428      }
10429      var totalSlides = slides.length;
10430      function getSlideTitle(index) {
10431        if (!slides[index]) return '';
10432        var span = slides[index].querySelector('[id^="snb-hero-slide-label-"]');
10433        if (span) return span.textContent.replace(/^Slide \d+ of \d+:\s*/, '').trim();
10434        return 'slide ' + (index + 1);
10435      }
10436      var prevIndex = (currentIndex - 1 + totalSlides) % totalSlides;
10437      var nextIndex = (currentIndex + 1) % totalSlides;
10438      var prevLabel = 'Previous: ' + getSlideTitle(prevIndex);
10439      var nextLabel = 'Next: ' + getSlideTitle(nextIndex);
10440      if (prev && prev.getAttribute('aria-label') !== prevLabel) {
10441        prev.setAttribute('aria-label', prevLabel);
10442      }
10443      if (next && next.getAttribute('aria-label') !== nextLabel) {
10444        next.setAttribute('aria-label', nextLabel);
10445      }
10446      // Page dots — remove from keyboard tab order and screen reader navigation.
10447      // Users navigate slides via prev/next buttons; dots remain mouse/touch clickable.
10448      // Also normalizes aria-current="step" → "true" in case any AT still reaches them.
10449      var dotsContainer = slideshow.querySelector('.flickity-page-dots');
10450      if (dotsContainer && dotsContainer.getAttribute('aria-hidden') !== 'true') {
10451        dotsContainer.setAttribute('aria-hidden', 'true');
10452      }
10453      var dots = slideshow.querySelectorAll('.flickity-page-dots .dot');
10454      for (var i = 0; i < dots.length; i++) {
10455        if (dots[i].getAttribute('tabindex') !== '-1') {
10456          dots[i].setAttribute('tabindex', '-1');
10457        }
10458        if (dots[i].getAttribute('aria-current') === 'step') {
10459          dots[i].setAttribute('aria-current', 'true');
10460        }
10461      }
10462    }
10463    // Initial label pass only — the standalone script at the bottom of
10464    // this section handles ongoing observation. Do NOT add a MutationObserver
10465    // here — two observers on the same subtree setting the same attributes
10466    // causes an infinite loop that freezes the page.
10467    applyLabels();
10468    setTimeout(applyLabels, 200);
10469    setTimeout(applyLabels, 500);
10470  }
10471
10472  function destroySlider() {
10473    var flk = window._snbHeroNativeFlickity[sectionId];
10474    if (flk && typeof flk.destroy === 'function') {
10475      flk.destroy();
10476      delete window._snbHeroNativeFlickity[sectionId];
10477    }
10478  }
10479
10480  function onBlockSelect(evt) {
10481    if (evt.detail.sectionId !== sectionId) return;
10482    var slide = slideshow.querySelector('.snb-hero-native__slide--' + evt.detail.blockId);
10483    if (!slide) return;
10484    var slides = slideshow.querySelectorAll('.snb-hero-native__slide');
10485    var index = [].indexOf.call(slides, slide);
10486    var flk = window._snbHeroNativeFlickity[sectionId];
10487    if (flk && typeof flk.goToSlide === 'function') {
10488      flk.goToSlide(index);
10489      if (typeof flk.pause === 'function') flk.pause();
10490    }
10491  }
10492
10493  function onBlockDeselect(evt) {
10494    if (evt.detail.sectionId !== sectionId) return;
10495    var flk = window._snbHeroNativeFlickity[sectionId];
10496    if (flk && flk.args && flk.args.autoPlay && typeof flk.play === 'function') flk.play();
10497  }
10498
10499  function onSectionUnload(evt) {
10500    if (evt.detail.sectionId === sectionId) destroySlider();
10501  }
10502
10503  function getScrollOffset() {
10504    var scrollOffset = 0;
10505    if (typeof theme !== 'undefined' && theme.config && theme.config.stickyHeader) {
10506      var header = document.querySelector('#SiteHeader');
10507      if (header) {
10508        scrollOffset = header.offsetHeight;
10509      }
10510    }
10511    return scrollOffset;
10512  }
10513
10514  function smoothScrollTo(targetElement) {
10515    var scrollOffset = getScrollOffset();
10516    var targetPosition = targetElement.getBoundingClientRect().top + window.pageYOffset - scrollOffset;
10517    window.scrollTo({
10518      top: Math.max(0, targetPosition),
10519      behavior: 'smooth'
10520    });
10521  }
10522
10523  function initSmoothScroll() {
10524    var ctaButtons = section.querySelectorAll('.snb-hero-native__cta');
10525    ctaButtons.forEach(function(button) {
10526      var href = button.getAttribute('href');
10527      if (href && href.startsWith('#')) {
10528        button.addEventListener('click', function(e) {
10529          var targetId = href.substring(1);
10530          var targetElement = document.getElementById(targetId);
10531
10532          if (targetElement) {
10533            e.preventDefault();
10534            smoothScrollTo(targetElement);
10535          }
10536        });
10537      }
10538    });
10539  }
10540
10541  var slideLinksInitialized = false;
10542  var slideClickData = {};
10543  
10544  function handleSlideLink(slideLink, linkType) {
10545    // If it's an anchor link (#something), always scroll
10546    if (slideLink.startsWith('#')) {
10547      var targetId = slideLink.substring(1);
10548      var targetElement = document.getElementById(targetId);
10549
10550      if (targetElement) {
10551        smoothScrollTo(targetElement);
10552      }
10553    } else if (linkType === 'scroll') {
10554      var targetElement = document.getElementById(slideLink);
10555
10556      if (targetElement) {
10557        smoothScrollTo(targetElement);
10558      } else {
10559        window.location.href = slideLink;
10560      }
10561    } else {
10562      window.location.href = slideLink;
10563    }
10564  }
10565  
10566  function initSlideLinks() {
10567    if (slideLinksInitialized) return;
10568    if (!section || !slideshow) return;
10569
10570    var slides = section.querySelectorAll('.snb-hero-native__slide--clickable');
10571    if (slides.length === 0) return;
10572
10573    slideLinksInitialized = true;
10574
10575    // Keyboard support for clickable slides
10576    slides.forEach(function(slide) {
10577      slide.addEventListener('keydown', function(e) {
10578        if (e.key === 'Enter' || e.key === ' ') {
10579          e.preventDefault();
10580          var link = slide.getAttribute('data-slide-link');
10581          var type = slide.getAttribute('data-slide-link-type') || 'redirect';
10582          if (link) handleSlideLink(link, type);
10583        }
10584      });
10585    });
10586    
10587    // Track mouse/touch events to distinguish clicks from drags
10588    var mouseDownData = {};
10589    
10590    slideshow.addEventListener('mousedown', function(e) {
10591      var slide = e.target.closest('.snb-hero-native__slide--clickable');
10592      if (slide) {
10593        mouseDownData[slide] = {
10594          x: e.clientX,
10595          y: e.clientY,
10596          time: Date.now()
10597        };
10598      }
10599    }, true); // Use capture phase
10600    
10601    slideshow.addEventListener('touchstart', function(e) {
10602      var slide = e.target.closest('.snb-hero-native__slide--clickable');
10603      if (slide && e.touches.length > 0) {
10604        mouseDownData[slide] = {
10605          x: e.touches[0].clientX,
10606          y: e.touches[0].clientY,
10607          time: Date.now()
10608        };
10609      }
10610    }, true);
10611    
10612    // Handle touch events for mobile
10613    slideshow.addEventListener('touchend', function(e) {
10614      var slide = e.target.closest('.snb-hero-native__slide--clickable');
10615      if (!slide) return;
10616      
10617      var slideLink = slide.getAttribute('data-slide-link');
10618      var linkType = slide.getAttribute('data-slide-link-type') || 'redirect';
10619      
10620      if (!slideLink) return;
10621      
10622      // Check if this was a drag (not a tap)
10623      var clickInfo = mouseDownData[slide];
10624      if (clickInfo && e.changedTouches.length > 0) {
10625        var moveDistance = Math.sqrt(
10626          Math.pow(e.changedTouches[0].clientX - clickInfo.x, 2) + 
10627          Math.pow(e.changedTouches[0].clientY - clickInfo.y, 2)
10628        );
10629        var timeDiff = Date.now() - clickInfo.time;
10630        
10631        // If moved more than 10px or took more than 500ms, it's a drag
10632        if (moveDistance > 10 || timeDiff > 500) {
10633          delete mouseDownData[slide];
10634          return;
10635        }
10636        delete mouseDownData[slide];
10637      }
10638      
10639      // Only skip Flickity controls
10640      var clickedElement = e.target;
10641      if (clickedElement.closest('.flickity-button') || clickedElement.closest('.flickity-page-dots')) {
10642        return;
10643      }
10644      
10645      // Handle the slide link - work anywhere on slide
10646      e.preventDefault();
10647      e.stopPropagation();
10648      
10649      handleSlideLink(slideLink, linkType);
10650    }, true);
10651    
10652    // Handle desktop mouse clicks - use capture phase to catch before Flickity
10653    slideshow.addEventListener('click', function(e) {
10654      // Find the closest clickable slide
10655      var slide = e.target.closest('.snb-hero-native__slide--clickable');
10656      if (!slide) return;
10657      
10658      var slideLink = slide.getAttribute('data-slide-link');
10659      var linkType = slide.getAttribute('data-slide-link-type') || 'redirect';
10660      
10661      if (!slideLink) return;
10662      
10663      // Check if this was a drag (not a click)
10664      var clickInfo = mouseDownData[slide];
10665      if (clickInfo) {
10666        var moveDistance = Math.sqrt(
10667          Math.pow(e.clientX - clickInfo.x, 2) + 
10668          Math.pow(e.clientY - clickInfo.y, 2)
10669        );
10670        var timeDiff = Date.now() - clickInfo.time;
10671        
10672        // If moved more than 10px or took more than 500ms, it's a drag
10673        if (moveDistance > 10 || timeDiff > 500) {
10674          delete mouseDownData[slide];
10675          return;
10676        }
10677        delete mouseDownData[slide];
10678      }
10679      
10680      // Only skip Flickity controls
10681      var clickedElement = e.target;
10682      if (clickedElement.closest('.flickity-button') || clickedElement.closest('.flickity-page-dots')) {
10683        return;
10684      }
10685      
10686      // Handle the slide link - work anywhere on slide
10687      e.preventDefault();
10688      e.stopPropagation();
10689      
10690      handleSlideLink(slideLink, linkType);
10691    }, true); // Use capture phase to intercept before Flickity
10692    
10693    // Also attach directly to each slide as a fallback for desktop
10694    // Use mouseup instead of click to avoid Flickity interference
10695    slides.forEach(function(slide) {
10696      var slideLink = slide.getAttribute('data-slide-link');
10697      var linkType = slide.getAttribute('data-slide-link-type') || 'redirect';
10698      
10699      if (!slideLink) return;
10700      
10701      var slideMouseDown = null;
10702      var isDragging = false;
10703      
10704      slide.addEventListener('mousedown', function(e) {
10705        // Only skip Flickity controls
10706        if (e.target.closest('.flickity-button') || e.target.closest('.flickity-page-dots')) {
10707          return;
10708        }
10709        slideMouseDown = {
10710          x: e.clientX,
10711          y: e.clientY,
10712          time: Date.now()
10713        };
10714        isDragging = false;
10715      });
10716      
10717      slide.addEventListener('mousemove', function(e) {
10718        if (slideMouseDown) {
10719          var moveDistance = Math.sqrt(
10720            Math.pow(e.clientX - slideMouseDown.x, 2) + 
10721            Math.pow(e.clientY - slideMouseDown.y, 2)
10722          );
10723          if (moveDistance > 5) {
10724            isDragging = true;
10725          }
10726        }
10727      });
10728      
10729      slide.addEventListener('mouseup', function(e) {
10730        // Only skip Flickity controls
10731        if (e.target.closest('.flickity-button') || e.target.closest('.flickity-page-dots')) {
10732          slideMouseDown = null;
10733          isDragging = false;
10734          return;
10735        }
10736        
10737        if (!slideMouseDown || isDragging) {
10738          slideMouseDown = null;
10739          isDragging = false;
10740          return;
10741        }
10742        
10743        // Check if this was a drag
10744        var moveDistance = Math.sqrt(
10745          Math.pow(e.clientX - slideMouseDown.x, 2) + 
10746          Math.pow(e.clientY - slideMouseDown.y, 2)
10747        );
10748        var timeDiff = Date.now() - slideMouseDown.time;
10749        
10750        if (moveDistance > 10 || timeDiff > 500) {
10751          slideMouseDown = null;
10752          isDragging = false;
10753          return;
10754        }
10755        
10756        // Handle the slide link - work anywhere on slide
10757        e.preventDefault();
10758        e.stopPropagation();
10759        
10760        slideMouseDown = null;
10761        isDragging = false;
10762        
10763        handleSlideLink(slideLink, linkType);
10764      });
10765      
10766      // Also keep click handler as backup
10767      slide.addEventListener('click', function(e) {
10768        // Only skip Flickity controls
10769        if (e.target.closest('.flickity-button') || e.target.closest('.flickity-page-dots')) {
10770          return;
10771        }
10772        
10773        // Handle the slide link - work anywhere on slide
10774        e.preventDefault();
10775        e.stopPropagation();
10776        
10777        handleSlideLink(slideLink, linkType);
10778      });
10779    });
10780  }
10781
10782  if (document.readyState === 'loading') {
10783    document.addEventListener('DOMContentLoaded', function() {
10784      initSlider();
10785      initPauseButton();
10786      initSmoothScroll();
10787      initSlideLinks();
10788      enforcePrevNextLabels();
10789      enforceSlideInert();
10790    });
10791  } else {
10792    initSlider();
10793    initPauseButton();
10794    initSmoothScroll();
10795    initSlideLinks();
10796    enforcePrevNextLabels();
10797    enforceSlideInert();
10798  }
10799  document.addEventListener('shopify:section:load', function(evt) {
10800    if (evt.detail.sectionId === sectionId) {
10801      var container = document.querySelector('[data-section-id="' + sectionId + '"][data-section-type="snb-hero-native"]');
10802      if (container) {
10803        section = container;
10804        slideshow = document.getElementById('Slideshow-' + sectionId);
10805        slideLinksInitialized = false;
10806        if (slideshow) {
10807          initSlider();
10808          initPauseButton();
10809          initSmoothScroll();
10810          initSlideLinks();
10811          enforcePrevNextLabels();
10812          enforceSlideInert();
10813        }
10814      }
10815    }
10816  });
10817  document.addEventListener('shopify:block:select', onBlockSelect);
10818  document.addEventListener('shopify:block:deselect', onBlockDeselect);
10819  document.addEventListener('shopify:section:unload', onSectionUnload);
10820})();
10821</script>
10821
10822
10823
10824
10825<script>
10826// a11y: standalone hero prev/next + dots labeler.
10827// Runs independently of the main hero script because Flickity may be
10828// initialized by theme.js, not by initSlider().
10829(function () {
10830  var hero = document.querySelector('.snb-hero-native');
10831  if (!hero) return;
10832
10833  function applyHeroA11y() {
10834    var prev = hero.querySelector('.flickity-button.flickity-previous');
10835    var next = hero.querySelector('.flickity-button.flickity-next');
10836    if (!prev && !next) return false;
10837
10838    var slides = hero.querySelectorAll('.snb-hero-native__slide');
10839    var currentIndex = 0;
10840    for (var i = 0; i < slides.length; i++) {
10841      if (slides[i].classList.contains('is-selected')) { currentIndex = i; break; }
10842    }
10843    var total = slides.length;
10844
10845    function getTitle(index) {
10846      var slide = slides[index];
10847      if (!slide) return 'slide ' + (index + 1);
10848      var span = slide.querySelector('[id^="snb-hero-slide-label-"]');
10849      if (span) return span.textContent.replace(/^Slide \d+ of \d+:\s*/, '').trim();
10850      var h = slide.querySelector('h1, h2, .hero__title');
10851      if (h) return h.textContent.trim();
10852      return 'slide ' + (index + 1);
10853    }
10854
10855    var prevI = (currentIndex - 1 + total) % total;
10856    var nextI = (currentIndex + 1) % total;
10857    var prevLabel = 'Previous: ' + getTitle(prevI);
10858    var nextLabel = 'Next: ' + getTitle(nextI);
10859
10860    // Guard: only set if value differs — prevents MutationObserver infinite loop.
10861    if (prev && prev.getAttribute('aria-label') !== prevLabel) prev.setAttribute('aria-label', prevLabel);
10862    if (next && next.getAttribute('aria-label') !== nextLabel) next.setAttribute('aria-label', nextLabel);
10863
10864    // Hide dots from AT
10865    var dotsContainer = hero.querySelector('.flickity-page-dots');
10866    if (dotsContainer && dotsContainer.getAttribute('aria-hidden') !== 'true') dotsContainer.setAttribute('aria-hidden', 'true');
10867    hero.querySelectorAll('.flickity-page-dots .dot').forEach(function (d) {
10868      if (d.getAttribute('tabindex') !== '-1') d.setAttribute('tabindex', '-1');
10869      if (d.getAttribute('aria-current') === 'step') d.setAttribute('aria-current', 'true');
10870    });
10871
10872    return true;
10873  }
10874
10875  // Poll until buttons exist, then observe for slide changes.
10876  var attempts = 0;
10877  var poll = setInterval(function () {
10878    attempts++;
10879    if (applyHeroA11y() || attempts > 25) {
10880      clearInterval(poll);
10881      // Watch for slide changes (class-based) to update labels dynamically.
10882      // ONLY watch 'class' — NOT 'aria-label' or 'aria-current' — to prevent
10883      // infinite observer loops (setting an attribute re-triggers the observer).
10884      if (typeof MutationObserver === 'function') {
10885        new MutationObserver(function () {
10886          // Debounce to avoid rapid-fire during Flickity transitions.
10887          clearTimeout(hero._a11yDebounce);
10888          hero._a11yDebounce = setTimeout(applyHeroA11y, 50);
10889        }).observe(hero, {
10890          subtree: true,
10891          attributes: true,
10892          attributeFilter: ['class']
10893        });
10894      }
10895    }
10896  }, 200);
10897})();
10898</script>
10898
10899
10900</div><div id="shopify-section-template--17749318303830__snb_makers_rFLVy4" class="shopify-section">
10901<style data-shopify>#shopify-section-template--17749318303830__snb_makers_rFLVy4 {
10902		--snb-makers-bg: #f5f1ec;
10903		--snb-makers-text: #333333;
10904		--snb-makers-subtitle: #1b4b5a;
10905		--snb-makers-heading: #1b3a3a;
10906		--snb-makers-btn-bg: #b74b1a;
10907		--snb-makers-btn-text: #ffffff;
10908		--snb-makers-pt: 60px;
10909		--snb-makers-pb: 60px;
10910	}
10911
10912	.snb-makers {
10913		background-color: var(--snb-makers-bg);
10914		padding-top: var(--snb-makers-pt);
10915		padding-bottom: var(--snb-makers-pb);
10916		overflow: hidden;
10917	}
10918
10919	.snb-makers__grid {
10920		display: grid;
10921		grid-template-columns: 1fr;
10922		gap: 32px;
10923		align-items: center;
10924	}
10925
10926	.snb-makers__image-wrap {
10927		position: relative;
10928		width: 100%;
10929		overflow: hidden;
10930	}
10931
10932	.snb-makers__image-wrap img {
10933		display: block;
10934		width: 100%;
10935		height: auto;
10936		object-fit: cover;
10937		opacity: 0;
10938		transition: opacity 0.4s ease;
10939	}
10940
10941	.snb-makers__image-wrap img.is-loaded {
10942		opacity: 1;
10943	}
10944
10945	.snb-makers__content {
10946		text-align: center;
10947		padding: 0 20px;
10948	}
10949
10950	.snb-makers__subtitle {
10951		font-family: 'Montserrat', sans-serif;
10952		font-size: 14px;
10953		font-weight: 400;
10954		letter-spacing: 3px;
10955		text-transform: uppercase;
10956		color: var(--snb-makers-subtitle);
10957		margin: 0 0 12px;
10958	}
10959
10960	.snb-makers__heading {
10961		font-family: 'Orpheus Pro', serif;
10962		font-size: 32px;
10963		font-weight: 400;
10964		line-height: 1.2;
10965		color: var(--snb-makers-heading);
10966		margin: 0 0 16px;
10967	}
10968
10969	.snb-makers__description {
10970		font-family: 'Lato', sans-serif;
10971		font-size: 15px;
10972		font-weight: 400;
10973		line-height: 1.6;
10974		color: var(--snb-makers-text);
10975		margin: 0 0 24px;
10976		max-width: 480px;
10977		margin-left: auto;
10978		margin-right: auto;
10979	}
10980
10981	.snb-makers__btn {
10982		width: 100%;
10983		text-align: center;
10984		box-sizing: border-box;
10985	}
10986
10987	.snb-makers__btn:focus-visible {
10988		outline: 2px solid currentColor;
10989		outline-offset: 3px;
10990	}
10991
10992	.snb-makers__decorative {
10993		display: none;
10994	}
10995
10996	@media (min-width: 769px) {
10997		.snb-makers__grid {
10998			grid-template-columns: 1fr 1fr;
10999			gap: 60px;
11000			position: relative;
11001		}
11002
11003		
11004
11005		.snb-makers__content {
11006			text-align: left;
11007			padding: 40px 0;
11008			
11009				padding-right: 60px;
11010			
11011		}
11012
11013		.snb-makers__subtitle {
11014			font-size: 14px;
11015			letter-spacing: 4px;
11016			margin-bottom: 16px;
11017		}
11018
11019		.snb-makers__heading {
11020			font-size: 48px;
11021			margin-bottom: 20px;
11022		}
11023
11024		.snb-makers__description {
11025			font-size: 16px;
11026			margin-left: 0;
11027			margin-right: 0;
11028			margin-bottom: 32px;
11029			max-width: 520px;
11030		}
11031
11032		.snb-makers__btn {
11033			width: auto;
11034		}
11035
11036		.snb-makers__decorative {
11037			display: block;
11038			position: absolute;
11039			
11040				right: 20px;
11041			
11042			top: 50%;
11043			transform: translateY(-50%);
11044			width: auto;
11045			height: 280px;
11046			pointer-events: none;
11047		}
11048
11049		.snb-makers__decorative img {
11050			display: block;
11051			height: 100%;
11052			width: auto;
11053			object-fit: contain;
11054		}
11055	}
11056
11057	@media (min-width: 1200px) {
11058		.snb-makers__heading {
11059			font-size: 54px;
11060		}
11061
11062		.snb-makers__decorative {
11063			
11064				right: 40px;
11065			
11066			height: 320px;
11067		}
11068	}</style><section class="snb-makers" aria-labelledby="snb-makers-heading-template--17749318303830__snb_makers_rFLVy4">
11069	<div class="page-width">
11070		<div class="snb-makers__grid">
11071			<div class="snb-makers__image-wrap" aria-hidden="true"><img
11072						src="//bokksu.com/cdn/shop/files/our-makers.webp?v=1772818210&width=375"
11073						data-srcset="//bokksu.com/cdn/shop/files/our-makers.webp?v=1772818210&width=375 375w,
11074							//bokksu.com/cdn/shop/files/our-makers.webp?v=1772818210&width=550 550w,
11075							//bokksu.com/cdn/shop/files/our-makers.webp?v=1772818210&width=750 750w,
11076							//bokksu.com/cdn/shop/files/our-makers.webp?v=1772818210&width=1000 1000w,
11077							//bokksu.com/cdn/shop/files/our-makers.webp?v=1772818210&width=1200 1200w"
11078						data-src="//bokksu.com/cdn/shop/files/our-makers.webp?v=1772818210&width=750"
11079						sizes="(min-width: 769px) 50vw, 100vw"
11080						alt=""
11081						loading="lazy"
11082						width="1600"
11083						height="1067"
11084					></div>
11085
11086			<div class="snb-makers__content"><p class="snb-makers__subtitle" aria-hidden="true">WHAT MAKES US DIFFERENT</p>
11087					<p class="visually-hidden">What makes us different</p><h2 class="snb-makers__heading" id="snb-makers-heading-template--17749318303830__snb_makers_rFLVy4">Our Commitment to Craft & Culture!</h2><div class="snb-makers__description"><p>With a Bokksu subscription, enjoy a Japanese snack box while supporting small family-run businesses in Japan and preserving their traditions.</p></div><a
11088							href="#snack-box-subscription"
11089							class="btn btn-custom btn-orange-bg snb-makers__btn"
11090							aria-label="Subscribe now — choose your plan"
11091						>
11092							SUBSCRIBE NOW
11093						</a></div><div class="snb-makers__decorative" aria-hidden="true">
11094					<img
11095						src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_532aa0c3cbe24c309cf3ccbcedf56119.webp?v=1772818349&width=200"
11096						alt=""
11097						loading="lazy"
11098						width="60"
11099						height="902"
11100					>
11101				</div></div>
11102	</div>
11103</section>
11104
11105<script>
11106(function() {
11107	var sectionId = 'template--17749318303830__snb_makers_rFLVy4';
11108	var sectionEl = document.getElementById('shopify-section-' + sectionId);
11109
11110	function loadImages() {
11111		if (!sectionEl) return;
11112		var imgs = sectionEl.querySelectorAll('img[data-src]');
11113		imgs.forEach(function(img) {
11114			img.onload = function() {
11115				img.classList.add('is-loaded');
11116			};
11117			if (img.dataset.srcset) {
11118				img.srcset = img.dataset.srcset;
11119				delete img.dataset.srcset;
11120			}
11121			img.src = img.dataset.src;
11122			delete img.dataset.src;
11123		});
11124	}
11125
11126	function lazyInit() {
11127		if (!sectionEl) {
11128			sectionEl = document.querySelector('.snb-makers');
11129		}
11130		if (!sectionEl) return;
11131
11132		if ('IntersectionObserver' in window) {
11133			var observer = new IntersectionObserver(function(entries) {
11134				entries.forEach(function(entry) {
11135					if (entry.isIntersecting) {
11136						observer.unobserve(entry.target);
11137						loadImages();
11138					}
11139				});
11140			}, { rootMargin: '200px 0px' });
11141			observer.observe(sectionEl);
11142		} else {
11143			loadImages();
11144		}
11145	}
11146
11147	if (document.readyState === 'loading') {
11148		document.addEventListener('DOMContentLoaded', lazyInit);
11149	} else {
11150		lazyInit();
11151	}
11152
11153	document.addEventListener('shopify:section:load', function(evt) {
11154		if (evt.detail.sectionId === sectionId) loadImages();
11155	});
11156})();
11157</script>
11157
11158
11159
11160</div><div id="shopify-section-template--17749318303830__snb_featured_by_native_JMt4K8" class="shopify-section">
11161<style data-shopify>#shopify-section-template--17749318303830__snb_featured_by_native_JMt4K8 {
11162		--snb-featured-bg: #5b1a1a;
11163		--snb-featured-heading: #ffffff;
11164		--snb-featured-pt: 32px;
11165		--snb-featured-pb: 28px;
11166	}
11167
11168	.snb-featured {
11169		background-color: var(--snb-featured-bg);
11170		padding-top: var(--snb-featured-pt);
11171		padding-bottom: var(--snb-featured-pb);
11172	}
11173
11174	.snb-featured__heading {
11175		font-family: 'Montserrat',sans-serif;
11176		font-size: 14px !important;
11177		font-weight: 400;
11178		letter-spacing: 4px;
11179		text-transform: uppercase;
11180		text-align: center;
11181		color: var(--snb-featured-heading);
11182		margin: 0 0 40px;
11183	}
11184
11185	.snb-featured__grid {
11186		display: flex;
11187		flex-wrap: nowrap;
11188		align-items: center;
11189		justify-content: flex-start;
11190		gap: 32px;
11191		max-width: 1500px;
11192		margin: 0 auto;
11193		overflow-x: auto;
11194		-webkit-overflow-scrolling: touch;
11195		scroll-snap-type: x proximity;
11196		scrollbar-width: none;
11197		-ms-overflow-style: none;
11198		padding-bottom: 4px;
11199	}
11200
11201	/* Center the row when it fits; scroll-from-start when it overflows.
11202	   `safe center` keeps the first items reachable instead of clipping them. */
11203	@media (min-width: 769px) {
11204		.snb-featured__grid {
11205			justify-content: safe center;
11206		}
11207	}
11208
11209	.snb-featured__grid:focus-visible {
11210		outline: 2px solid var(--snb-featured-heading);
11211		outline-offset: 4px;
11212	}
11213
11214	.snb-featured__grid::-webkit-scrollbar {
11215		display: none;
11216	}
11217
11218	.snb-featured__logo {
11219		display: flex;
11220		align-items: center;
11221		justify-content: center;
11222		flex: 0 0 auto;
11223		width: 140px;
11224		scroll-snap-align: center;
11225	}
11226
11227	.snb-featured__logo img {
11228		display: block;
11229		width: 100%;
11230		height: auto;
11231		object-fit: contain;
11232	}
11233
11234	.snb-featured__logo a {
11235		display: block;
11236		width: 100%;
11237	}
11238
11239	.snb-featured__logo a:focus-visible {
11240		outline: 2px solid currentColor;
11241		outline-offset: 3px;
11242	}
11243
11244	@media (min-width: 769px) {
11245		.snb-featured__heading {
11246			font-size: 14px;
11247			margin-bottom: 48px;
11248		}
11249
11250		.snb-featured__grid {
11251			gap: 48px;
11252		}
11253
11254		.snb-featured__logo {
11255			width: 170px;
11256		}
11257	}</style><section class="snb-featured" aria-labelledby="snb-featured-heading-template--17749318303830__snb_featured_by_native_JMt4K8">
11258	<div class="page-width"><h2 class="snb-featured__heading" id="snb-featured-heading-template--17749318303830__snb_featured_by_native_JMt4K8">FEATURED BY</h2><div class="snb-featured__grid" role="region" aria-label="FEATURED BY" tabindex="0"><div class="snb-featured__logo" ><img
11259									src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_cc41954196424ea7a0b755efa3ed1638.webp?v=1773073930&width=400"
11260									srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_cc41954196424ea7a0b755efa3ed1638.webp?v=1773073930&width=200 200w,
11261										//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_cc41954196424ea7a0b755efa3ed1638.webp?v=1773073930&width=400 400w"
11262									sizes="(min-width: 769px) 170px, 140px"
11263									alt="Bon Appétit"
11264									loading="lazy"
11265									width="1500"
11266									height="425"
11267								></div><div class="snb-featured__logo" ><img
11268									src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_53252330e59a4d3f8db09a7b287c4d6e.png?v=1773073930&width=400"
11269									srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_53252330e59a4d3f8db09a7b287c4d6e.png?v=1773073930&width=200 200w,
11270										//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_53252330e59a4d3f8db09a7b287c4d6e.png?v=1773073930&width=400 400w"
11271									sizes="(min-width: 769px) 170px, 140px"
11272									alt="Byrdie"
11273									loading="lazy"
11274									width="500"
11275									height="75"
11276								></div><div class="snb-featured__logo" ><img
11277									src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_dfd1685e1df94afbbfac8b86c0edf4b3.webp?v=1773073930&width=400"
11278									srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_dfd1685e1df94afbbfac8b86c0edf4b3.webp?v=1773073930&width=200 200w,
11279										//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_dfd1685e1df94afbbfac8b86c0edf4b3.webp?v=1773073930&width=400 400w"
11280									sizes="(min-width: 769px) 170px, 140px"
11281									alt="TechCrunch"
11282									loading="lazy"
11283									width="1500"
11284									height="425"
11285								></div><div class="snb-featured__logo" ><img
11286									src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_63c0288e3b9e46abb7b65d678083f20b.webp?v=1773073930&width=400"
11287									srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_63c0288e3b9e46abb7b65d678083f20b.webp?v=1773073930&width=200 200w,
11288										//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_63c0288e3b9e46abb7b65d678083f20b.webp?v=1773073930&width=400 400w"
11289									sizes="(min-width: 769px) 170px, 140px"
11290									alt="Fast Company"
11291									loading="lazy"
11292									width="1500"
11293									height="425"
11294								></div></div></div>
11295</section>
11296
11297
11298</div><div id="shopify-section-template--17749318303830__snb_how_it_works_native_Yx6xra" class="shopify-section">
11299<style data-shopify>#shopify-section-template--17749318303830__snb_how_it_works_native_Yx6xra {
11300		--snb-hiw-bg: #f0e6d3;
11301		--snb-hiw-heading: #1a1a1a;
11302		--snb-hiw-title: #1a1a1a;
11303		--snb-hiw-text: #4a4a4a;
11304		--snb-hiw-pt: 48px;
11305		--snb-hiw-pb: 48px;
11306	}
11307
11308	.snb-hiw {
11309		background-color: var(--snb-hiw-bg);
11310		padding-top: var(--snb-hiw-pt);
11311		padding-bottom: var(--snb-hiw-pb);
11312	}
11313
11314	.snb-hiw__heading {
11315		font-size: 48px;
11316		font-weight: 400;
11317		text-align: center;
11318		color: var(--snb-hiw-heading);
11319		margin: 0 0 32px;
11320	}
11321
11322	.snb-hiw__grid {
11323		display: grid;
11324		grid-template-columns: 1fr;
11325		gap: 40px;
11326		max-width: 1200px;
11327		margin: 0 auto;
11328		list-style: none;
11329		padding: 0;
11330	}
11331
11332	.snb-hiw__step {
11333		text-align: center;
11334	}
11335
11336	.snb-hiw__image {
11337		position: relative;
11338		width: 100%;
11339		overflow: hidden;
11340		margin-bottom: 20px;
11341	}
11342
11343	.snb-hiw__image img {
11344		display: block;
11345		width: 100%;
11346		height: auto;
11347		object-fit: cover;
11348	}
11349
11350	.snb-hiw__image img {
11351		opacity: 0;
11352		transition: opacity 0.4s ease;
11353	}
11354
11355	.snb-hiw__image img.is-loaded {
11356		opacity: 1;
11357	}
11358
11359	.snb-hiw__title {
11360		font-size:28px;
11361		font-weight: 400;
11362		letter-spacing: 2px;
11363		text-transform: uppercase;
11364		color: var(--snb-hiw-title);
11365		margin: 0 0 12px;
11366	}
11367
11368	.snb-hiw__description {
11369		font-size: 14px;
11370		font-weight: 400;
11371		line-height: 1.6;
11372		color: var(--snb-hiw-text);
11373		margin: 0 auto;
11374		max-width: 360px;
11375	}
11376
11377	@media (min-width: 769px) {
11378		.snb-hiw__heading {
11379			font-size: 36px;
11380			margin-bottom: 40px;
11381		}
11382
11383		.snb-hiw__grid {
11384			grid-template-columns: repeat(3, 1fr);
11385			gap: 32px;
11386		}
11387
11388		.snb-hiw__title {
11389			font-size: 18px;
11390			margin-bottom: 16px;
11391		}
11392
11393		.snb-hiw__description {
11394			font-size: 14px;
11395			max-width: none;
11396		}
11397	}
11398
11399	.snb-hiw__step:focus-visible {
11400		outline: 2px solid currentColor;
11401		outline-offset: 3px;
11402	}</style><section class="snb-hiw" aria-labelledby="snb-hiw-heading-template--17749318303830__snb_how_it_works_native_Yx6xra">
11403	<div class="page-width"><h2 class="snb-hiw__heading" id="snb-hiw-heading-template--17749318303830__snb_how_it_works_native_Yx6xra">How it works</h2><ol class="snb-hiw__grid"><li class="snb-hiw__step" ><div class="snb-hiw__image" aria-hidden="true">
11404								<img
11405									src="//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_003_1200x1200_b4714a3e-defc-4b77-99a4-cce78b278ed2.jpg?v=1780894490&width=400"
11406									data-src="//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_003_1200x1200_b4714a3e-defc-4b77-99a4-cce78b278ed2.jpg?v=1780894490&width=800"
11407									data-srcset="//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_003_1200x1200_b4714a3e-defc-4b77-99a4-cce78b278ed2.jpg?v=1780894490&width=400 400w,
11408										//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_003_1200x1200_b4714a3e-defc-4b77-99a4-cce78b278ed2.jpg?v=1780894490&width=600 600w,
11409										//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_003_1200x1200_b4714a3e-defc-4b77-99a4-cce78b278ed2.jpg?v=1780894490&width=800 800w"
11410									sizes="(min-width: 769px) 33vw, 100vw"
11411									alt=""
11412									loading="lazy"
11413									width="1200"
11414									height="1200"
11415								>
11416							</div><h3 class="snb-hiw__title">SUBSCRIBE</h3><p class="snb-hiw__description">and get a snack box delivered monthly filled with authentic treats like cakes, mochi, chips, tea, and more!</p></li><li class="snb-hiw__step" ><div class="snb-hiw__image" aria-hidden="true">
11417								<img
11418									src="//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_002_1200x1200_1.jpg?v=1780894290&width=400"
11419									data-src="//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_002_1200x1200_1.jpg?v=1780894290&width=800"
11420									data-srcset="//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_002_1200x1200_1.jpg?v=1780894290&width=400 400w,
11421										//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_002_1200x1200_1.jpg?v=1780894290&width=600 600w,
11422										//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_002_1200x1200_1.jpg?v=1780894290&width=800 800w"
11423									sizes="(min-width: 769px) 33vw, 100vw"
11424									alt=""
11425									loading="lazy"
11426									width="1200"
11427									height="1200"
11428								>
11429							</div><h3 class="snb-hiw__title">RECEIVE</h3><p class="snb-hiw__description">your first snack box and rare extra snacks when you join with a 3-, 6-, or 12-month plan.</p></li><li class="snb-hiw__step" ><div class="snb-hiw__image" aria-hidden="true">
11430								<img
11431									src="//bokksu.com/cdn/shop/files/Bokksu_SnackBox_Box_Hero_012_Square_29da187b-7869-43b6-86af-0918585d9737.jpg?v=1780550901&width=400"
11432									data-src="//bokksu.com/cdn/shop/files/Bokksu_SnackBox_Box_Hero_012_Square_29da187b-7869-43b6-86af-0918585d9737.jpg?v=1780550901&width=800"
11433									data-srcset="//bokksu.com/cdn/shop/files/Bokksu_SnackBox_Box_Hero_012_Square_29da187b-7869-43b6-86af-0918585d9737.jpg?v=1780550901&width=400 400w,
11434										//bokksu.com/cdn/shop/files/Bokksu_SnackBox_Box_Hero_012_Square_29da187b-7869-43b6-86af-0918585d9737.jpg?v=1780550901&width=600 600w,
11435										//bokksu.com/cdn/shop/files/Bokksu_SnackBox_Box_Hero_012_Square_29da187b-7869-43b6-86af-0918585d9737.jpg?v=1780550901&width=800 800w"
11436									sizes="(min-width: 769px) 33vw, 100vw"
11437									alt=""
11438									loading="lazy"
11439									width="1200"
11440									height="1200"
11441								>
11442							</div><h3 class="snb-hiw__title">EXPERIENCE</h3><p class="snb-hiw__description">a new journey each month through Japan’s regional snacks, seasonal stories, and cultural celebrations.</p></li></ol></div>
11443</section>
11444
11445<script>
11446(function() {
11447	var sectionId = 'template--17749318303830__snb_how_it_works_native_Yx6xra';
11448	var sectionEl = document.getElementById('shopify-section-' + sectionId);
11449
11450	function loadImages() {
11451		if (!sectionEl) return;
11452		var imgs = sectionEl.querySelectorAll('img[data-src]');
11453		imgs.forEach(function(img) {
11454			img.onload = function() {
11455				img.classList.add('is-loaded');
11456			};
11457			if (img.dataset.srcset) {
11458				img.srcset = img.dataset.srcset;
11459				delete img.dataset.srcset;
11460			}
11461			img.src = img.dataset.src;
11462			delete img.dataset.src;
11463		});
11464	}
11465
11466	function lazyInit() {
11467		if (!sectionEl) {
11468			sectionEl = document.querySelector('.snb-hiw');
11469		}
11470		if (!sectionEl) return;
11471
11472		if ('IntersectionObserver' in window) {
11473			var observer = new IntersectionObserver(function(entries) {
11474				entries.forEach(function(entry) {
11475					if (entry.isIntersecting) {
11476						observer.unobserve(entry.target);
11477						loadImages();
11478					}
11479				});
11480			}, { rootMargin: '200px 0px' });
11481			observer.observe(sectionEl);
11482		} else {
11483			loadImages();
11484		}
11485	}
11486
11487	if (document.readyState === 'loading') {
11488		document.addEventListener('DOMContentLoaded', lazyInit);
11489	} else {
11490		lazyInit();
11491	}
11492
11493	document.addEventListener('shopify:section:load', function(evt) {
11494		if (evt.detail.sectionId === sectionId) loadImages();
11495	});
11496})();
11497</script>
11497
11498
11499
11500</div><div id="shopify-section-template--17749318303830__snb_first_box_native_iGia7U" class="shopify-section">
11501<style data-shopify>#shopify-section-template--17749318303830__snb_first_box_native_iGia7U {
11502		--snb-fb-bg: #faf5ee;
11503		--snb-fb-heading: #1a1a1a;
11504		--snb-fb-subheading: #000000;
11505		--snb-fb-title: #b73d09;
11506		--snb-fb-text: #4a4a4a;
11507		--snb-fb-btn-bg: #b73d09;
11508		--snb-fb-btn-text: #ffffff;
11509		--snb-fb-pt: 48px;
11510		--snb-fb-pb: 48px;
11511	}
11512
11513	.snb-fb {
11514		background-color: var(--snb-fb-bg);
11515		padding-top: var(--snb-fb-pt);
11516		padding-bottom: var(--snb-fb-pb);
11517	}
11518
11519	.snb-fb__layout {
11520		display: grid;
11521		grid-template-columns: 1fr;
11522		gap: 32px;
11523		align-items: center;
11524		margin: 0 auto;
11525	}
11526
11527	/* Carousel */
11528	.snb-fb__carousel-wrap {
11529		position: relative;
11530		width: 100%;
11531		padding: 0 36px;
11532		box-sizing: border-box;
11533	}
11534
11535	.snb-fb__carousel {
11536		width: 100%;
11537	}
11538
11539	.snb-fb__carousel:not(.flickity-enabled) {
11540		position: relative;
11541	}
11542
11543	.snb-fb__carousel:not(.flickity-enabled) .snb-fb__slide {
11544		display: none;
11545	}
11546
11547	.snb-fb__carousel:not(.flickity-enabled) .snb-fb__slide:first-child {
11548		display: block;
11549	}
11550
11551	.snb-fb__slide {
11552		width: 100%;
11553	}
11554
11555	.snb-fb__slide img {
11556		display: block;
11557		width: 100%;
11558		height: auto;
11559		object-fit: cover;
11560	}
11561
11562	#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-button {
11563		background: transparent;
11564		width: 40px;
11565		height: 40px;
11566		color: #1A1A1A;
11567	}
11568
11569	#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-button:hover {
11570		background: transparent;
11571		opacity: 0.7;
11572	}
11573
11574	#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-previous {
11575		left: -25px;
11576	}
11577
11578	#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-next {
11579		right: -32px;
11580	}
11581
11582	#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-button svg {
11583		width: 20px;
11584		height: 20px;
11585	}
11586
11587	#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-page-dots {
11588		position: relative;
11589		bottom: auto;
11590		margin-top: 16px;
11591	}
11592
11593	#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-page-dots .dot {
11594		width: 8px;
11595		height: 8px;
11596		background: rgba(0, 0, 0, 0.2);
11597	}
11598
11599	#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-page-dots .dot.is-selected {
11600		background: #1A1A1A;
11601	}
11602
11603	/* Content */
11604	.snb-fb__content {
11605		text-align: center;
11606		padding: 0 16px;
11607	}
11608
11609	.snb-fb__subheading {
11610		font-family: 'Montserrat', sans-serif;
11611		font-size: 14px;
11612		font-weight: 500;
11613		letter-spacing: 3px;
11614		text-transform: uppercase;
11615		line-height: 18px;
11616		color: var(--snb-fb-subheading);
11617		margin: 0 0 8px;
11618	}
11619
11620	.snb-fb__heading {
11621		font-family: 'Orpheus Pro', sans-serif;
11622		font-size: 32px;
11623		font-weight: 400;
11624		line-height: 36px;
11625		color: var(--snb-fb-heading);
11626		margin: 0 0 28px;
11627	}
11628
11629	/* Features grid */
11630	.snb-fb__features {
11631		display: grid;
11632		grid-template-columns: repeat(2, 1fr);
11633		gap: 24px 20px;
11634		margin-bottom: 32px;
11635		margin-left: 0px;
11636		list-style: none;
11637		padding: 0;
11638	}
11639
11640	.snb-fb__feature {
11641		display: flex;
11642		align-items: flex-start;
11643		gap: 10px;
11644		text-align: left;
11645	}
11646
11647	.snb-fb__feature-icon {
11648		flex-shrink: 0;
11649		width: 28px;
11650		height: 28px;
11651	}
11652
11653	.snb-fb__feature-icon img {
11654		display: block;
11655		width: 100%;
11656		height: 100%;
11657		object-fit: contain;
11658	}
11659
11660	.snb-fb__feature-icon svg {
11661		display: block;
11662		width: 100%;
11663		height: 100%;
11664	}
11665
11666	.snb-fb__feature-body {
11667		flex: 1;
11668		min-width: 0;
11669	}
11670
11671	.snb-fb__feature-title {
11672		font-family: 'Montserrat', sans-serif;
11673		font-size: 13px !important;
11674		font-weight: 600;
11675		letter-spacing: 1.5px;
11676		text-transform: uppercase;
11677		line-height: 18px;
11678		color: var(--snb-fb-title);
11679		margin: 0 0 4px;
11680	}
11681
11682	.snb-fb__feature-desc {
11683		font-family: 'Lato', sans-serif;
11684		font-size: 16px;
11685		font-weight: 400;
11686		line-height: 24px;
11687		color: var(--snb-fb-text);
11688		margin: 0;
11689	}
11690
11691	/* CTA */
11692	.snb-fb__btn {
11693		width: 100%;
11694		text-align: center;
11695		box-sizing: border-box;
11696	}
11697
11698	@media (min-width: 769px) {
11699		.snb-fb__layout {
11700			grid-template-columns: 2fr 3fr;
11701			gap: 48px;
11702		}
11703
11704		.snb-fb__carousel-wrap {
11705			padding: 0 48px;
11706		}
11707
11708		.snb-fb__content {
11709			text-align: left;
11710			padding: 0;
11711		}
11712
11713		#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-button.previous {
11714			left: -48px;
11715		}
11716
11717		#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-button.next {
11718			right: -48px;
11719		}
11720
11721		.snb-fb__heading {
11722			font-size: 44px;
11723			line-height: 50px;
11724			margin-bottom: 32px;
11725		}
11726
11727		.snb-fb__features {
11728			gap: 20px 32px;
11729			margin-bottom: 36px;
11730		}
11731
11732		.snb-fb__feature-icon {
11733			width: 32px;
11734			height: 32px;
11735		}
11736	}
11737
11738	.snb-fb__btn:focus-visible {
11739		outline: 2px solid currentColor;
11740		outline-offset: 3px;
11741	}
11742
11743	#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-button:focus-visible {
11744		outline: 2px solid #1A1A1A;
11745		outline-offset: 2px;
11746	}</style><section class="snb-fb" aria-labelledby="snb-fb-heading-template--17749318303830__snb_first_box_native_iGia7U">
11747	<div class="page-width">
11748		<div class="snb-fb__layout"><div class="snb-fb__carousel-wrap"><div
11749						class="snb-fb__carousel"
11750						id="snb-fb-carousel-template--17749318303830__snb_first_box_native_iGia7U"
11751						data-section-id="template--17749318303830__snb_first_box_native_iGia7U"
11752						role="region"
11753						aria-roledescription="carousel"
11754						aria-label="Product images"
11755					><div
11756									class="snb-fb__slide"
11757									role="group"
11758									aria-roledescription="slide"
11759									aria-label="Image 1 of 3"
11760									
11761								><img
11762											src="//bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square_46adf27f-3374-4ec8-ab80-da4a31009a43.jpg?v=1777597091&width=900"
11763											srcset="//bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square_46adf27f-3374-4ec8-ab80-da4a31009a43.jpg?v=1777597091&width=450 450w,
11764												//bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square_46adf27f-3374-4ec8-ab80-da4a31009a43.jpg?v=1777597091&width=600 600w,
11765												//bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square_46adf27f-3374-4ec8-ab80-da4a31009a43.jpg?v=1777597091&width=900 900w"
11766											sizes="(min-width: 769px) 50vw, 100vw"
11767											alt="Product image"
11768											loading="lazy"
11769											width="1200"
11770											height="1200"
11771										></div><div
11772									class="snb-fb__slide"
11773									role="group"
11774									aria-roledescription="slide"
11775									aria-label="Image 2 of 3"
11776									
11777								><img
11778											src="//bokksu.com/cdn/shop/files/SNB_2505_SOJ_Revamp_2_HeroBanner_1200x1200_0c4e23f1-ad8b-4f96-b95f-0c408a416c1d.jpg?v=1777597122&width=900"
11779											srcset="//bokksu.com/cdn/shop/files/SNB_2505_SOJ_Revamp_2_HeroBanner_1200x1200_0c4e23f1-ad8b-4f96-b95f-0c408a416c1d.jpg?v=1777597122&width=450 450w,
11780												//bokksu.com/cdn/shop/files/SNB_2505_SOJ_Revamp_2_HeroBanner_1200x1200_0c4e23f1-ad8b-4f96-b95f-0c408a416c1d.jpg?v=1777597122&width=600 600w,
11781												//bokksu.com/cdn/shop/files/SNB_2505_SOJ_Revamp_2_HeroBanner_1200x1200_0c4e23f1-ad8b-4f96-b95f-0c408a416c1d.jpg?v=1777597122&width=900 900w"
11782											sizes="(min-width: 769px) 50vw, 100vw"
11783											alt="Product image"
11784											loading="lazy"
11785											width="1200"
11786											height="1200"
11787										></div><div
11788									class="snb-fb__slide"
11789									role="group"
11790									aria-roledescription="slide"
11791									aria-label="Image 3 of 3"
11792									
11793								><img
11794											src="//bokksu.com/cdn/shop/files/SNB2505_SOJ_GuideInHand_Mobile_cropped.jpg?v=1777597395&width=900"
11795											srcset="//bokksu.com/cdn/shop/files/SNB2505_SOJ_GuideInHand_Mobile_cropped.jpg?v=1777597395&width=450 450w,
11796												//bokksu.com/cdn/shop/files/SNB2505_SOJ_GuideInHand_Mobile_cropped.jpg?v=1777597395&width=600 600w,
11797												//bokksu.com/cdn/shop/files/SNB2505_SOJ_GuideInHand_Mobile_cropped.jpg?v=1777597395&width=900 900w"
11798											sizes="(min-width: 769px) 50vw, 100vw"
11799											alt="Product image"
11800											loading="lazy"
11801											width="1080"
11802											height="1080"
11803										></div></div></div><div class="snb-fb__content"><p class="snb-fb__subheading">YOUR FIRST BOKKSU INCLUDES:</p><h2 class="snb-fb__heading" id="snb-fb-heading-template--17749318303830__snb_first_box_native_iGia7U">22 Japanese snacks, candies, & tea!</h2><ul class="snb-fb__features"><li class="snb-fb__feature" ><div class="snb-fb__feature-icon" aria-hidden="true">
11804											<img
11805												src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_e1542a7512de48219082c79e9f6a71ff.png?v=1773075940&width=64"
11806												srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_e1542a7512de48219082c79e9f6a71ff.png?v=1773075940&width=64 1x,
11807													//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_e1542a7512de48219082c79e9f6a71ff.png?v=1773075940&width=128 2x"
11808												alt=""
11809												loading="lazy"
11810												width="32"
11811												height="32"
11812											>
11813										</div><div class="snb-fb__feature-body"><h3 class="snb-fb__feature-title">Gift-with-purchase</h3><p class="snb-fb__feature-desc">3, 6, 12 month subscribers receive special gifts.</p></div>
11814								</li><li class="snb-fb__feature" ><div class="snb-fb__feature-icon" aria-hidden="true">
11815											<img
11816												src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_9e18894930904f09aced5f2e537d2dc1.png?v=1773075939&width=64"
11817												srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_9e18894930904f09aced5f2e537d2dc1.png?v=1773075939&width=64 1x,
11818													//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_9e18894930904f09aced5f2e537d2dc1.png?v=1773075939&width=128 2x"
11819												alt=""
11820												loading="lazy"
11821												width="32"
11822												height="32"
11823											>
11824										</div><div class="snb-fb__feature-body"><h3 class="snb-fb__feature-title">Authentic Treats</h3><p class="snb-fb__feature-desc">Mochi, senbei, cakes, cookies, chips, & more</p></div>
11825								</li><li class="snb-fb__feature" ><div class="snb-fb__feature-icon" aria-hidden="true">
11826											<img
11827												src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_458ad5c11169402888e82d8013c7321b.webp?v=1773075940&width=64"
11828												srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_458ad5c11169402888e82d8013c7321b.webp?v=1773075940&width=64 1x,
11829													//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_458ad5c11169402888e82d8013c7321b.webp?v=1773075940&width=128 2x"
11830												alt=""
11831												loading="lazy"
11832												width="32"
11833												height="32"
11834											>
11835										</div><div class="snb-fb__feature-body"><h3 class="snb-fb__feature-title">Tea Pairing</h3><p class="snb-fb__feature-desc">New tea each month, from matcha to hojicha</p></div>
11836								</li><li class="snb-fb__feature" ><div class="snb-fb__feature-icon" aria-hidden="true">
11837											<img
11838												src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_2259f1e9bf674b948df9dd4471778025.webp?v=1773075940&width=64"
11839												srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_2259f1e9bf674b948df9dd4471778025.webp?v=1773075940&width=64 1x,
11840													//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_2259f1e9bf674b948df9dd4471778025.webp?v=1773075940&width=128 2x"
11841												alt=""
11842												loading="lazy"
11843												width="32"
11844												height="32"
11845											>
11846										</div><div class="snb-fb__feature-body"><h3 class="snb-fb__feature-title">Sweet & Savory</h3><p class="snb-fb__feature-desc">A mix of authentic flavors for every palate</p></div>
11847								</li><li class="snb-fb__feature" ><div class="snb-fb__feature-icon" aria-hidden="true">
11848											<img
11849												src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_e871adf5b3244294b8d301f3b670a74d.webp?v=1773075939&width=64"
11850												srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_e871adf5b3244294b8d301f3b670a74d.webp?v=1773075939&width=64 1x,
11851													//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_e871adf5b3244294b8d301f3b670a74d.webp?v=1773075939&width=128 2x"
11852												alt=""
11853												loading="lazy"
11854												width="32"
11855												height="32"
11856											>
11857										</div><div class="snb-fb__feature-body"><h3 class="snb-fb__feature-title">22-24 Page Guide</h3><p class="snb-fb__feature-desc">Snack origins, allergen info, and more!</p></div>
11858								</li><li class="snb-fb__feature" ><div class="snb-fb__feature-icon" aria-hidden="true">
11859											<img
11860												src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_4cdfb0ebd4894b3e933e63cf122dc91c.webp?v=1773075940&width=64"
11861												srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_4cdfb0ebd4894b3e933e63cf122dc91c.webp?v=1773075940&width=64 1x,
11862													//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_4cdfb0ebd4894b3e933e63cf122dc91c.webp?v=1773075940&width=128 2x"
11863												alt=""
11864												loading="lazy"
11865												width="32"
11866												height="32"
11867											>
11868										</div><div class="snb-fb__feature-body"><h3 class="snb-fb__feature-title">Bokksu Exclusives</h3><p class="snb-fb__feature-desc">Made by local makers only for Bokksu!</p></div>
11869								</li></ul><a
11870							class="btn btn-custom btn-orange-bg snb-fb__btn"
11871							href="#snack-box-subscription"
11872							aria-label="Subscribe now — view subscription plans"
11873						>
11874							SUBSCRIBE NOW
11875						</a></div>
11876		</div>
11877	</div>
11878</section>
11879
11880<script>
11881(function() {
11882	var sectionId = 'template--17749318303830__snb_first_box_native_iGia7U';
11883	var sectionEl = document.getElementById('shopify-section-' + sectionId);
11884
11885	function initCarousel() {
11886		var carousel = document.getElementById('snb-fb-carousel-' + sectionId);
11887		if (!carousel || carousel.dataset.flickityInit) return;
11888
11889		var slides = carousel.querySelectorAll('.snb-fb__slide');
11890		if (slides.length <= 1) return;
11891
11892		if (typeof theme !== 'undefined' && theme.Slideshow) {
11893			new theme.Slideshow(carousel, {
11894				prevNextButtons: true,
11895				pageDots: true,
11896				wrapAround: true,
11897				adaptiveHeight: true,
11898				autoPlay: false
11899			});
11900			carousel.dataset.flickityInit = 'true';
11901		} else if (typeof Flickity !== 'undefined') {
11902			new Flickity(carousel, {
11903				prevNextButtons: true,
11904				pageDots: true,
11905				wrapAround: true,
11906				adaptiveHeight: true,
11907				autoPlay: false
11908			});
11909			carousel.dataset.flickityInit = 'true';
11910		}
11911
11912		// a11y: APG pattern — hide inactive slides from AT so VoiceOver swipe reads only the current one.
11913		function updateActiveSlide() {
11914			var flk = (typeof Flickity !== 'undefined') ? Flickity.data(carousel) : null;
11915			if (!flk) return;
11916			var active = flk.selectedElements || (flk.selectedElement ? [flk.selectedElement] : []);
11917			var cells = carousel.querySelectorAll('.snb-fb__slide');
11918			for (var i = 0; i < cells.length; i++) {
11919				var isActive = false;
11920				for (var k = 0; k < active.length; k++) {
11921					if (active[k] === cells[i]) { isActive = true; break; }
11922				}
11923				var target = isActive ? 'false' : 'true';
11924				if (cells[i].getAttribute('aria-hidden') !== target) {
11925					cells[i].setAttribute('aria-hidden', target);
11926				}
11927			}
11928		}
11929		setTimeout(function () {
11930			updateActiveSlide();
11931			var flk = (typeof Flickity !== 'undefined') ? Flickity.data(carousel) : null;
11932			if (flk && !carousel.dataset.a11ySelectBound) {
11933				carousel.dataset.a11ySelectBound = '1';
11934				flk.on('select', updateActiveSlide);
11935			}
11936		}, 200);
11937
11938		// a11y: label prev/next buttons and dots. Normalize aria-current on dots.
11939		// Loop-safe: observer watches ONLY aria-current, and only sets when value !== target.
11940		setTimeout(function () {
11941			var prev = carousel.querySelector('.flickity-prev-next-button.flickity-previous, .flickity-prev-next-button.previous, .flickity-button.previous');
11942			var next = carousel.querySelector('.flickity-prev-next-button.flickity-next, .flickity-prev-next-button.next, .flickity-button.next');
11943			if (prev) prev.setAttribute('aria-label', 'Previous image');
11944			if (next) next.setAttribute('aria-label', 'Next image');
11945
11946			var dotsContainer = carousel.querySelector('.flickity-page-dots');
11947			if (!dotsContainer) return;
11948
11949			function normalizeDots() {
11950				var ds = dotsContainer.querySelectorAll('.dot');
11951				for (var i = 0; i < ds.length; i++) {
11952					var label = 'Go to image ' + (i + 1);
11953					if (ds[i].getAttribute('aria-label') !== label) {
11954						ds[i].setAttribute('aria-label', label);
11955					}
11956					if (ds[i].getAttribute('aria-current') === 'step') {
11957						ds[i].setAttribute('aria-current', 'true');
11958					}
11959				}
11960			}
11961			normalizeDots();
11962
11963			if (dotsContainer.dataset.a11yObserver) return;
11964			dotsContainer.dataset.a11yObserver = '1';
11965
11966			// rAF-batched + attributeFilter scoped to aria-current only → no loop.
11967			var scheduled = false;
11968			var obs = new MutationObserver(function () {
11969				if (scheduled) return;
11970				scheduled = true;
11971				requestAnimationFrame(function () {
11972					scheduled = false;
11973					normalizeDots();
11974				});
11975			});
11976			obs.observe(dotsContainer, { attributes: true, subtree: true, attributeFilter: ['aria-current'] });
11977		}, 200);
11978	}
11979
11980	function lazyInit() {
11981		if (!sectionEl) {
11982			sectionEl = document.querySelector('.snb-fb');
11983		}
11984		if (!sectionEl) return;
11985
11986		if ('IntersectionObserver' in window) {
11987			var observer = new IntersectionObserver(function(entries) {
11988				entries.forEach(function(entry) {
11989					if (entry.isIntersecting) {
11990						observer.unobserve(entry.target);
11991						initCarousel();
11992					}
11993				});
11994			}, { rootMargin: '200px 0px' });
11995			observer.observe(sectionEl);
11996		} else {
11997			initCarousel();
11998		}
11999	}
12000
12001	if (document.readyState === 'loading') {
12002		document.addEventListener('DOMContentLoaded', lazyInit);
12003	} else {
12004		lazyInit();
12005	}
12006
12007	document.addEventListener('shopify:section:load', function(evt) {
12008		if (evt.detail.sectionId === sectionId) initCarousel();
12009	});
12010})();
12011</script>
12011
12012
12013
12014</div><div id="shopify-section-template--17749318303830__snb_testimonial_native_G8GWGn" class="shopify-section index-section">
12015<style data-shopify>#shopify-section-template--17749318303830__snb_testimonial_native_G8GWGn {
12016		--snb-test-bg: #ffffff;
12017		--snb-test-quote: #3a3a3a;
12018		--snb-test-accent: #d94f00;
12019		--snb-test-name: #d94f00;
12020		--snb-test-star: #d94f00;
12021		--snb-test-pt: 40px;
12022		--snb-test-pb: 48px;
12023	}
12024
12025	.snb-test {
12026		background-color: var(--snb-test-bg);
12027		padding-top: var(--snb-test-pt);
12028		padding-bottom: var(--snb-test-pb);
12029				overflow: hidden;
12030
12031	}
12032
12033	.snb-test__layout {
12034		display: grid;
12035		grid-template-columns: 1fr;
12036		gap: 32px;
12037		align-items: center;
12038		max-width: 1200px;
12039		margin: 0 auto;
12040	}
12041
12042	/* Quote area */
12043	.snb-test__quote-area {
12044		text-align: center;
12045		padding: 0 16px;
12046	}
12047
12048	.snb-test__quote-icon {
12049		margin-bottom: 16px;
12050	}
12051
12052	.snb-test__quote-icon img {
12053		display: block;
12054		margin: 0 auto;
12055		width: 40px;
12056		height: auto;
12057	}
12058
12059	.snb-test__quote-text {
12060		font-family: 'Orpheus Pro', sans-serif;
12061		font-size: 24px;
12062		font-weight: 200;
12063		line-height: 28px;
12064		color: var(--snb-test-quote);
12065		margin: 0 0 20px;
12066		margin-left: auto;
12067		margin-right: auto;
12068	}
12069
12070	.snb-test__stars {
12071		display: flex;
12072		justify-content: center;
12073		margin-bottom: 16px;
12074	}
12075
12076	.snb-test__stars img {
12077		display: block;
12078		height: 24px;
12079		width: auto;
12080	}
12081
12082	.snb-test__author {
12083		font-family: 'Montserrat', sans-serif;
12084		font-size: 16px;
12085		font-weight: 600;
12086		letter-spacing: 2px;
12087		text-transform: uppercase;
12088		color: var(--snb-test-name);
12089		margin: 0;
12090	}
12091
12092	/* Testimonial carousel (multiple testimonials) */
12093	.snb-test__quote-carousel {
12094		overflow: hidden;
12095	}
12096
12097	.snb-test__quote-carousel:not(.flickity-enabled) {
12098		position: relative;
12099	}
12100
12101	.snb-test__quote-carousel:not(.flickity-enabled) .snb-test__testimonial-slide {
12102		display: none;
12103	}
12104
12105	.snb-test__quote-carousel:not(.flickity-enabled) .snb-test__testimonial-slide:first-child {
12106		display: block;
12107	}
12108
12109	.snb-test__testimonial-slide {
12110		width: 100%;
12111		text-align: center;
12112	}
12113
12114	/* Photo carousel */
12115	.snb-test__photos-wrap {
12116		position: relative;
12117		width: 100%;
12118		padding: 0 25px;
12119		box-sizing: border-box;
12120	}
12121
12122	.snb-test__photos {
12123		width: 100%;
12124		 /* overflow: hidden;  */
12125	}
12126
12127	.snb-test__photos:not(.flickity-enabled) {
12128		display: flex;
12129	}
12130
12131	.snb-test__photo-slide {
12132		padding: 0 4px;
12133		box-sizing: border-box;
12134		flex-shrink: 0;
12135		width: 100%;
12136	}
12137
12138	.snb-test__photo-slide img {
12139		display: block;
12140		width: 100%;
12141		height: auto;
12142		object-fit: cover;
12143	}
12144
12145	#shopify-section-template--17749318303830__snb_testimonial_native_G8GWGn .snb-test__photos-wrap .flickity-button {
12146		background: transparent;
12147		width: 40px;
12148		height: 40px;
12149		color: #1A1A1A;
12150	}
12151
12152	#shopify-section-template--17749318303830__snb_testimonial_native_G8GWGn .snb-test__photos-wrap .flickity-button:hover {
12153		background: transparent;
12154		opacity: 0.7;
12155	}
12156
12157	#shopify-section-template--17749318303830__snb_testimonial_native_G8GWGn .snb-test__photos-wrap .flickity-previous {
12158		left: -21px;
12159	}
12160
12161	#shopify-section-template--17749318303830__snb_testimonial_native_G8GWGn .snb-test__photos-wrap .flickity-next {
12162		right: -30px;
12163	}
12164
12165	#shopify-section-template--17749318303830__snb_testimonial_native_G8GWGn .snb-test__photos-wrap .flickity-button svg {
12166		width: 20px;
12167		height: 20px;
12168	}
12169
12170	#shopify-section-template--17749318303830__snb_testimonial_native_G8GWGn .snb-test__photos-wrap .flickity-page-dots {
12171		display: none;
12172	}
12173
12174	@media (min-width: 769px) {
12175		.snb-test__layout {
12176			gap: 36px;
12177		}
12178
12179		.snb-test__quote-area {
12180			padding: 0;
12181		}
12182
12183		.snb-test__quote-icon img {
12184			width: 56px;
12185		}
12186
12187		.snb-test__stars img {
12188			height: 28px;
12189		}
12190
12191		.snb-test__quote-text {
12192			font-size: 48px;
12193			line-height: 50px;
12194		}
12195
12196		.snb-test__photos-wrap {
12197			padding: 0 44px;
12198		}
12199
12200		#shopify-section-template--17749318303830__snb_testimonial_native_G8GWGn .snb-test__photos-wrap .flickity-prev-next-button.previous {
12201			left: -44px;
12202		}
12203
12204		#shopify-section-template--17749318303830__snb_testimonial_native_G8GWGn .snb-test__photos-wrap .flickity-prev-next-button.next {
12205			right: -44px;
12206		}
12207
12208		.snb-test__photos:not(.flickity-enabled) .snb-test__photo-slide {
12209			width: 20%;
12210		}
12211
12212		.snb-test__photo-slide {
12213			width: 20%;
12214			padding: 0 10px;
12215		}
12216	}
12217
12218	.snb-test__pause-btn {
12219		display: inline-flex;
12220		align-items: center;
12221		justify-content: center;
12222		background: transparent;
12223		border: 1px solid var(--snb-test-name);
12224		border-radius: 50%;
12225		width: 32px;
12226		height: 32px;
12227		cursor: pointer;
12228		color: var(--snb-test-name);
12229		margin-top: 16px;
12230		padding: 0;
12231	}
12232
12233	.snb-test__pause-btn:focus-visible {
12234		outline: 2px solid currentColor;
12235		outline-offset: 3px;
12236	}
12237
12238	.snb-test__quote-text {
12239		margin-block-start: 0;
12240		margin-block-end: 0;
12241		margin-inline-start: 0;
12242		margin-inline-end: 0;
12243		padding: 0;
12244	}
12245
12246	.snb-test__author {
12247		font-style: normal;
12248	}</style><section class="snb-test" aria-label="Customer testimonials">
12249	<div class="page-width">
12250		<div class="snb-test__layout"><div class="snb-test__quote-area"><div ><div class="snb-test__quote-icon" aria-hidden="true">
12251											<img src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_f006b88d6f6d46258077f4c9384b1a04.webp?v=1773121456&width=112" alt="" width="56" height="56" loading="lazy">
12252										</div><blockquote class="snb-test__quote-text">I am always excited to receive my Bokksu every month. The snacks are unique, yummy, and would make an awesome gift too!</blockquote><div class="snb-test__stars" role="img" aria-label="Rated 5 out of 5 stars">
12253										<img src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_ff4f6deb95cd4eb290a18a2f3da821ae.webp?v=1773121457&width=300" alt="" loading="lazy" aria-hidden="true">
12254									</div><cite class="snb-test__author">&ndash; Lucy Z</cite></div></div><div class="snb-test__photos-wrap">
12255					<div
12256						class="snb-test__photos"
12257						id="snb-test-photos-template--17749318303830__snb_testimonial_native_G8GWGn"
12258						data-section-id="template--17749318303830__snb_testimonial_native_G8GWGn"
12259						role="region"
12260						aria-roledescription="carousel"
12261						aria-label="Customer photos"
12262					><div
12263									class="snb-test__photo-slide"
12264									role="group"
12265									aria-roledescription="slide"
12266									aria-label="Photo 1 of 6"
12267									
12268								><img
12269											src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_ffdf56a405d940a480a53eee6941e07c.webp?v=1773077929&width=600"
12270											srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_ffdf56a405d940a480a53eee6941e07c.webp?v=1773077929&width=300 300w,
12271												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_ffdf56a405d940a480a53eee6941e07c.webp?v=1773077929&width=450 450w,
12272												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_ffdf56a405d940a480a53eee6941e07c.webp?v=1773077929&width=600 600w"
12273											sizes="(min-width: 769px) 200px, 100vw"
12274											alt="Customer photo"
12275											loading="lazy"
12276											width="450"
12277											height="450"
12278										></div><div
12279									class="snb-test__photo-slide"
12280									role="group"
12281									aria-roledescription="slide"
12282									aria-label="Photo 2 of 6"
12283									
12284								><img
12285											src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_950a18fde08540418bc01b2ebdeb4d12.webp?v=1773077974&width=600"
12286											srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_950a18fde08540418bc01b2ebdeb4d12.webp?v=1773077974&width=300 300w,
12287												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_950a18fde08540418bc01b2ebdeb4d12.webp?v=1773077974&width=450 450w,
12288												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_950a18fde08540418bc01b2ebdeb4d12.webp?v=1773077974&width=600 600w"
12289											sizes="(min-width: 769px) 200px, 100vw"
12290											alt="Customer photo"
12291											loading="lazy"
12292											width="450"
12293											height="450"
12294										></div><div
12295									class="snb-test__photo-slide"
12296									role="group"
12297									aria-roledescription="slide"
12298									aria-label="Photo 3 of 6"
12299									
12300								><img
12301											src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_71c99de7222b4ffaa5e7357cc4085931.webp?v=1773078021&width=600"
12302											srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_71c99de7222b4ffaa5e7357cc4085931.webp?v=1773078021&width=300 300w,
12303												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_71c99de7222b4ffaa5e7357cc4085931.webp?v=1773078021&width=450 450w,
12304												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_71c99de7222b4ffaa5e7357cc4085931.webp?v=1773078021&width=600 600w"
12305											sizes="(min-width: 769px) 200px, 100vw"
12306											alt="Customer photo"
12307											loading="lazy"
12308											width="1170"
12309											height="1170"
12310										></div><div
12311									class="snb-test__photo-slide"
12312									role="group"
12313									aria-roledescription="slide"
12314									aria-label="Photo 4 of 6"
12315									
12316								><img
12317											src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_a298e43d9bd74a31be815b37a727db0d.webp?v=1773078071&width=600"
12318											srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_a298e43d9bd74a31be815b37a727db0d.webp?v=1773078071&width=300 300w,
12319												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_a298e43d9bd74a31be815b37a727db0d.webp?v=1773078071&width=450 450w,
12320												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_a298e43d9bd74a31be815b37a727db0d.webp?v=1773078071&width=600 600w"
12321											sizes="(min-width: 769px) 200px, 100vw"
12322											alt="Customer photo"
12323											loading="lazy"
12324											width="1170"
12325											height="1170"
12326										></div><div
12327									class="snb-test__photo-slide"
12328									role="group"
12329									aria-roledescription="slide"
12330									aria-label="Photo 5 of 6"
12331									
12332								><img
12333											src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_9c37d63dea5e4016bee2c8462c79f2bc.webp?v=1773078122&width=600"
12334											srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_9c37d63dea5e4016bee2c8462c79f2bc.webp?v=1773078122&width=300 300w,
12335												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_9c37d63dea5e4016bee2c8462c79f2bc.webp?v=1773078122&width=450 450w,
12336												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_9c37d63dea5e4016bee2c8462c79f2bc.webp?v=1773078122&width=600 600w"
12337											sizes="(min-width: 769px) 200px, 100vw"
12338											alt="Customer photo"
12339											loading="lazy"
12340											width="1170"
12341											height="1170"
12342										></div><div
12343									class="snb-test__photo-slide"
12344									role="group"
12345									aria-roledescription="slide"
12346									aria-label="Photo 6 of 6"
12347									
12348								><img
12349											src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_f7e19e95c1c74179b65a3cdf6814aa13.webp?v=1773078305&width=600"
12350											srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_f7e19e95c1c74179b65a3cdf6814aa13.webp?v=1773078305&width=300 300w,
12351												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_f7e19e95c1c74179b65a3cdf6814aa13.webp?v=1773078305&width=450 450w,
12352												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_f7e19e95c1c74179b65a3cdf6814aa13.webp?v=1773078305&width=600 600w"
12353											sizes="(min-width: 769px) 200px, 100vw"
12354											alt="Customer photo"
12355											loading="lazy"
12356											width="1170"
12357											height="1170"
12358										></div></div>
12359				</div></div>
12360	</div>
12361</section>
12362
12363<script>
12364(function() {
12365	var sectionId = 'template--17749318303830__snb_testimonial_native_G8GWGn';
12366	var sectionEl = document.getElementById('shopify-section-' + sectionId);
12367
12368	function initPhotoCarousel() {
12369		var photos = document.getElementById('snb-test-photos-' + sectionId);
12370		if (!photos || photos.dataset.flickityInit) return;
12371
12372		var slides = photos.querySelectorAll('.snb-test__photo-slide');
12373		if (slides.length <= 1) return;
12374
12375		if (typeof theme !== 'undefined' && theme.Slideshow) {
12376			new theme.Slideshow(photos, {
12377				prevNextButtons: true,
12378				pageDots: false,
12379				wrapAround: true,
12380				adaptiveHeight: false,
12381				autoPlay: false,
12382				cellAlign: 'left',
12383				contain: true,
12384				groupCells: true
12385			});
12386			photos.dataset.flickityInit = 'true';
12387		} else if (typeof Flickity !== 'undefined') {
12388			new Flickity(photos, {
12389				prevNextButtons: true,
12390				pageDots: false,
12391				wrapAround: true,
12392				adaptiveHeight: false,
12393				autoPlay: false,
12394				cellAlign: 'left',
12395				contain: true,
12396				groupCells: true
12397			});
12398			photos.dataset.flickityInit = 'true';
12399		}
12400
12401		// a11y: APG pattern — hide inactive slides, label prev/next.
12402		function updatePhotoSlides() {
12403			var flk = (typeof Flickity !== 'undefined') ? Flickity.data(photos) : null;
12404			if (!flk) return;
12405			var active = flk.selectedElements || (flk.selectedElement ? [flk.selectedElement] : []);
12406			var cells = photos.querySelectorAll('.snb-test__photo-slide');
12407			for (var i = 0; i < cells.length; i++) {
12408				var isActive = false;
12409				for (var k = 0; k < active.length; k++) {
12410					if (active[k] === cells[i]) { isActive = true; break; }
12411				}
12412				var target = isActive ? 'false' : 'true';
12413				if (cells[i].getAttribute('aria-hidden') !== target) {
12414					cells[i].setAttribute('aria-hidden', target);
12415				}
12416			}
12417		}
12418		setTimeout(function () {
12419			var prev = photos.querySelector('.flickity-prev-next-button.flickity-previous, .flickity-prev-next-button.previous, .flickity-button.previous');
12420			var next = photos.querySelector('.flickity-prev-next-button.flickity-next, .flickity-prev-next-button.next, .flickity-button.next');
12421			if (prev) prev.setAttribute('aria-label', 'Previous photo');
12422			if (next) next.setAttribute('aria-label', 'Next photo');
12423
12424			updatePhotoSlides();
12425			var flk = (typeof Flickity !== 'undefined') ? Flickity.data(photos) : null;
12426			if (flk && !photos.dataset.a11ySelectBound) {
12427				photos.dataset.a11ySelectBound = '1';
12428				flk.on('select', updatePhotoSlides);
12429			}
12430		}, 200);
12431	}
12432
12433	function initQuoteCarousel() {
12434		var quotes = document.getElementById('snb-test-quotes-' + sectionId);
12435		if (!quotes || quotes.dataset.flickityInit) return;
12436
12437		var slides = quotes.querySelectorAll('.snb-test__testimonial-slide');
12438		if (slides.length <= 1) return;
12439
12440		if (typeof Flickity !== 'undefined') {
12441			new Flickity(quotes, {
12442				prevNextButtons: false,
12443				pageDots: true,
12444				wrapAround: true,
12445				adaptiveHeight: true,
12446				autoPlay: 6000
12447			});
12448			quotes.dataset.flickityInit = 'true';
12449
12450			// a11y: APG — hide inactive quote slides
12451			function updateQuoteSlides() {
12452				var flk = Flickity.data(quotes);
12453				if (!flk) return;
12454				var active = flk.selectedElements || (flk.selectedElement ? [flk.selectedElement] : []);
12455				var cells = quotes.querySelectorAll('.snb-test__testimonial-slide');
12456				for (var i = 0; i < cells.length; i++) {
12457					var isActive = false;
12458					for (var k = 0; k < active.length; k++) {
12459						if (active[k] === cells[i]) { isActive = true; break; }
12460					}
12461					var target = isActive ? 'false' : 'true';
12462					if (cells[i].getAttribute('aria-hidden') !== target) {
12463						cells[i].setAttribute('aria-hidden', target);
12464					}
12465				}
12466			}
12467			setTimeout(function () {
12468				updateQuoteSlides();
12469				var f = Flickity.data(quotes);
12470				if (f && !quotes.dataset.a11ySelectBound) {
12471					quotes.dataset.a11ySelectBound = '1';
12472					f.on('select', updateQuoteSlides);
12473				}
12474			}, 200);
12475
12476			// a11y: label dots, normalize aria-current. Loop-safe: only watch aria-current, guarded 
12476setAttribute, rAF-batched.
12477			setTimeout(function () {
12478				var dotsContainer = quotes.querySelector('.flickity-page-dots');
12479				if (!dotsContainer) return;
12480
12481				function normalizeDots() {
12482					var ds = dotsContainer.querySelectorAll('.dot');
12483					for (var i = 0; i < ds.length; i++) {
12484						var label = 'Go to testimonial ' + (i + 1);
12485						if (ds[i].getAttribute('aria-label') !== label) {
12486							ds[i].setAttribute('aria-label', label);
12487						}
12488						if (ds[i].getAttribute('aria-current') === 'step') {
12489							ds[i].setAttribute('aria-current', 'true');
12490						}
12491					}
12492				}
12493				normalizeDots();
12494
12495				if (dotsContainer.dataset.a11yObserver) return;
12496				dotsContainer.dataset.a11yObserver = '1';
12497
12498				var scheduled = false;
12499				var obs = new MutationObserver(function () {
12500					if (scheduled) return;
12501					scheduled = true;
12502					requestAnimationFrame(function () {
12503						scheduled = false;
12504						normalizeDots();
12505					});
12506				});
12507				obs.observe(dotsContainer, { attributes: true, subtree: true, attributeFilter: ['aria-current'] });
12508			}, 200);
12509			// Add pause/play button for autoplay
12510			var pauseBtn = document.createElement('button');
12511			pauseBtn.type = 'button';
12512			pauseBtn.className = 'snb-test__pause-btn';
12513			pauseBtn.setAttribute('aria-label', 'Pause testimonials');
12514			pauseBtn.innerHTML = '<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><rect x="3" y="2" width="4" height="12"/><rect x="9" y="2" width="4" height="12"/></svg>';
12515			var quoteArea = quotes.closest('.snb-test__quote-area');
12516			if (quoteArea) quoteArea.appendChild(pauseBtn);
12517			var isPaused = false;
12518			pauseBtn.addEventListener('click', function() {
12519				var flk = Flickity.data(quotes);
12520				if (flk) {
12521					if (isPaused) {
12522						flk.playPlayer();
12523						pauseBtn.setAttribute('aria-label', 'Pause testimonials');
12524						pauseBtn.innerHTML = '<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><rect x="3" y="2" width="4" height="12"/><rect x="9" y="2" width="4" height="12"/></svg>';
12525					} else {
12526						flk.pausePlayer();
12527						pauseBtn.setAttribute('aria-label', 'Play testimonials');
12528						pauseBtn.innerHTML = '<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M4 2l10 6-10 6z"/></svg>';
12529					}
12530					isPaused = !isPaused;
12531				}
12532			});
12533		}
12534	}
12535
12536	function init() {
12537		initPhotoCarousel();
12538		initQuoteCarousel();
12539	}
12540
12541	function lazyInit() {
12542		if (!sectionEl) {
12543			sectionEl = document.querySelector('.snb-test');
12544		}
12545		if (!sectionEl) return;
12546
12547		if ('IntersectionObserver' in window) {
12548			var observer = new IntersectionObserver(function(entries) {
12549				entries.forEach(function(entry) {
12550					if (entry.isIntersecting) {
12551						observer.unobserve(entry.target);
12552						init();
12553					}
12554				});
12555			}, { rootMargin: '200px 0px' });
12556			observer.observe(sectionEl);
12557		} else {
12558			init();
12559		}
12560	}
12561
12562	if (document.readyState === 'loading') {
12563		document.addEventListener('DOMContentLoaded', lazyInit);
12564	} else {
12565		lazyInit();
12566	}
12567
12568	document.addEventListener('shopify:section:load', function(evt) {
12569		if (evt.detail.sectionId === sectionId) init();
12570	});
12571})();
12572</script>
12572
12573
12574
12575</div><div id="shopify-section-template--17749318303830__snb_subs_panel_3rfYyF" class="shopify-section snb-pdp-section index-section"><style data-shopify>#shopify-section-template--17749318303830__snb_subs_panel_3rfYyF {
12576    --snb-pdp-ash: #1a1a1a;
12577    --snb-pdp-lantern: #b73d09;
12578    --snb-pdp-washi: #f6f4f1;
12579    --snb-pdp-persimmon: #b73d09;
12580    --snb-pdp-red-beans: #b73d09;
12581    --snb-pdp-white: #ffffff;
12582    --snb-pdp-border: #e8e8e1;
12583    --snb-pdp-badge: #602012;
12584    --snb-pdp-sale-bg: #b73d09;
12585    --snb-pdp-sale-color: #ffffff;
12586    --snb-pdp-radius: 8px;
12587  }
12588
12589  .snb-pdp {
12590    display: grid;
12591    grid-template-columns: 1fr;
12592    gap: 0;
12593    max-width: 1400px;
12594    margin: 0 auto;
12595    padding: 0;
12596    font-family: "Lato", sans-serif;
12597    color: var(--snb-pdp-ash);
12598    overflow: clip;
12599    box-sizing: border-box;
12600  }
12601
12602  @media (min-width: 769px) {
12603    .snb-pdp {
12604      grid-template-columns: 1fr 1fr;
12605      gap: 60px;
12606      align-items: start;
12607      padding: 0px 30px !importan;
12608    }
12609  }
12610
12611  .snb-pdp *,
12612  .snb-pdp *::before,
12613  .snb-pdp *::after {
12614    box-sizing: border-box;
12615  }
12616
12617  /* ── Gallery ── */
12618  .snb-pdp__gallery {
12619    display: flex;
12620    flex-direction: column;
12621    gap: 0;
12622    min-width: 0;
12623  }
12624
12625  @media (min-width: 769px) {
12626    .snb-pdp__gallery {
12627      flex-direction: row;
12628      gap: 15px;
12629      position: sticky;
12630      top: 20px;
12631      align-self: start;
12632    }
12633  }
12634
12635  /* ── Mobile Carousel ── */
12636  .snb-pdp__carousel {
12637    display: flex;
12638    overflow-x: auto;
12639    scroll-snap-type: x mandatory;
12640    -webkit-overflow-scrolling: touch;
12641    scrollbar-width: none;
12642  }
12643
12644  .snb-pdp__carousel::-webkit-scrollbar {
12645    display: none;
12646  }
12647
12648  @media (min-width: 769px) {
12649    .snb-pdp__carousel {
12650      display: none;
12651    }
12652  }
12653
12654  @keyframes snb-pdp-shimmer {
12655    0% { background-position: -400px 0; }
12656    100% { background-position: 400px 0; }
12657  }
12658
12659  .snb-pdp__carousel-slide {
12660    flex: 0 0 calc(100% / 1.2);
12661    scroll-snap-align: start;
12662    aspect-ratio: 390 / 353;
12663    overflow: hidden;
12664    background: linear-gradient(
12665      90deg,
12666      var(--snb-pdp-border) 0%,
12667      var(--snb-pdp-washi) 40%,
12668      var(--snb-pdp-border) 80%
12669    );
12670    background-size: 800px 100%;
12671    animation: snb-pdp-shimmer 1.5s infinite linear;
12672        margin-right: 8px;
12673  }
12674
12675  .snb-pdp__carousel-slide:has(img.snb-pdp--loaded) {
12676    animation: none;
12677    background: none;
12678  }
12679
12680  .snb-pdp__carousel-slide img {
12681    width: 100%;
12682    height: 100%;
12683    object-fit: cover;
12684    display: block;
12685    opacity: 0;
12686    transition: opacity 0.3s ease;
12687  }
12688
12689  .snb-pdp__carousel-slide img.snb-pdp--loaded {
12690    opacity: 1;
12691  }
12692
12693  .snb-pdp__dots {
12694    display: flex;
12695    justify-content: center;
12696    gap: 6px;
12697    padding: 12px 0;
12698  }
12699
12700  @media (min-width: 769px) {
12701    .snb-pdp__dots {
12702      display: none;
12703    }
12704  }
12705
12706  .snb-pdp__dot {
12707  width: 27px;
12708    height: 6px;
12709    border-radius: 6px;
12710    background: #fff;
12711    border: 1px solid #A53E23;
12712    padding: 0;
12713    cursor: pointer;
12714    transition: background 0.2s ease;
12715  }
12716
12717  .snb-pdp__dot--active {
12718    background: #A53E23;
12719  }
12720
12721  .snb-pdp__dot:focus-visible {
12722    outline: 2px solid var(--snb-pdp-lantern);
12723    outline-offset: 2px;
12724  }
12725
12726  /* ── Desktop Gallery (thumbs + main) ── */
12727  .snb-pdp__desktop-gallery {
12728    display: none;
12729  }
12730
12731  @media (min-width: 769px) {
12732    .snb-pdp__desktop-gallery {
12733      display: flex;
12734      gap: 15px;
12735      width: 100%;
12736    }
12737  }
12738
12739  .snb-pdp__thumbs {
12740    display: flex;
12741    flex-direction: column;
12742    gap: 12px;
12743    width: 80px;
12744    flex-shrink: 0;
12745    position: relative;
12746    overflow: hidden;
12747    max-height: 500px;
12748  }
12749
12750  .snb-pdp__thumbs-scroller {
12751    display: flex;
12752    flex-direction: column;
12753    gap: 12px;
12754    overflow-y: auto;
12755    scrollbar-width: none;
12756    max-height: 100%;
12757  }
12758
12759  .snb-pdp__thumbs-scroller::-webkit-scrollbar {
12760    display: none;
12761  }
12762
12763  .snb-pdp__thumb {
12764    width: 76px;
12765    height: 76px;
12766    border: 1px solid var(--snb-pdp-border);
12767    border-radius: 4px;
12768    overflow: hidden;
12769    cursor: pointer;
12770    flex-shrink: 0;
12771    background: var(--snb-pdp-white);
12772    padding: 0;
12773  }
12774
12775  .snb-pdp__thumb--active {
12776    border: 2px solid var(--snb-pdp-ash);
12777  }
12778
12779  .snb-pdp__thumb img {
12780    width: 100%;
12781    height: 100%;
12782    object-fit: cover;
12783    display: block;
12784  }
12785
12786  .snb-pdp__thumb-arrow {
12787    display: flex;
12788    align-items: center;
12789    justify-content: center;
12790    background: var(--snb-pdp-white);
12791    border: none;
12792    cursor: pointer;
12793    padding: 8px 0;
12794    width: 100%;
12795  }
12796
12797  .snb-pdp__thumb-arrow svg {
12798    width: 10px;
12799    height: 6px;
12800  }
12801
12802  .snb-pdp__main-image {
12803    flex: 1;
12804    min-width: 0;
12805    overflow: hidden;
12806    background: linear-gradient(
12807      90deg,
12808      var(--snb-pdp-border) 0%,
12809      var(--snb-pdp-washi) 40%,
12810      var(--snb-pdp-border) 80%
12811    );
12812    background-size: 800px 100%;
12813    animation: snb-pdp-shimmer 1.5s infinite linear;
12814    min-height: 300px;
12815  }
12816
12817  .snb-pdp__main-image:has(img.snb-pdp--loaded) {
12818    animation: none;
12819    background: var(--snb-pdp-washi);
12820    min-height: auto;
12821  }
12822
12823  @media (min-width: 769px) {
12824    .snb-pdp__main-image {
12825      max-height: 500px;
12826      border-radius: 4px;
12827      min-height: 400px;
12828    }
12829
12830    .snb-pdp__main-image:has(img.snb-pdp--loaded) {
12831      min-height: auto;
12832    }
12833  }
12834
12835  .snb-pdp__main-image img {
12836    width: 100%;
12837    height: 100%;
12838    object-fit: cover;
12839    display: block;
12840    opacity: 0;
12841    transition: opacity 0.3s ease;
12842  }
12843
12844  .snb-pdp__main-image img.snb-pdp--loaded {
12845    opacity: 1;
12846  }
12847
12848  /* ── Info column ── */
12849  .snb-pdp__info {
12850    display: flex;
12851    flex-direction: column;
12852    gap: 0;
12853    padding: 20px 20px 40px;
12854    min-width: 0;
12855  }
12856
12857
12858  /* ── Header ── */
12859  .snb-pdp__preheader {
12860    font-family: "Montserrat", sans-serif;
12861    font-weight: 500;
12862    font-size: 14px;
12863    letter-spacing: 5px;
12864    text-transform: uppercase;
12865    line-height: 18px;
12866    margin: 0 0 4px;
12867  }
12868
12869
12870  .snb-pdp__title {
12871    font-family: "Orpheus Pro", serif;
12872    font-weight: 400;
12873    font-size: 48px !important;
12874    line-height: 52px !important;
12875    margin: 0 0 20px;
12876    text-transform: capitalize;
12877    word-break: break-word;
12878  }
12879
12880  @media (min-width: 769px) {
12881      .snb-pdp__info {
12882      padding: 0;
12883    }
12884    
12885    .snb-pdp__title {
12886      font-size: 48px;
12887      line-height: 52px;
12888    }
12889  }
12890
12891  /* ── Rating ── */
12892  .snb-pdp__rating {
12893    display: flex;
12894    align-items: center;
12895    gap: 16px;
12896    margin-bottom: 8px;
12897  }
12898
12899  @media (min-width: 769px) {
12900    .snb-pdp__rating {
12901      margin-bottom: 24px;
12902    }
12903  }
12904
12905  .snb-pdp__stars {
12906    display: flex;
12907    gap: 4px;
12908  }
12909
12910  .snb-pdp__stars svg {
12911    width: 16px;
12912    height: 16px;
12913    fill: var(--snb-pdp-ash);
12914  }
12915
12916  .snb-pdp__rating-number {
12917    font-family: "Orpheus Pro", serif;
12918    font-size: 16px;
12919    line-height: 18px;
12920  }
12921
12922  .snb-pdp__review-count {
12923    font-family: "Orpheus Pro", serif;
12924    font-size: 16px;
12925    line-height: 18px;
12926    color: var(--snb-pdp-ash);
12927  }
12928
12929
12930  /* ── Sale Banner ── */
12931  .snb-pdp__sale-banner {
12932    background: var(--snb-pdp-sale-bg);
12933    color: var(--snb-pdp-sale-color);
12934    border-radius: var(--snb-pdp-radius);
12935    padding: 12px 6px;
12936    text-align: center;
12937    font-family: "Lato", sans-serif;
12938    font-size: 16px;
12939    line-height: 24px;
12940    letter-spacing: 0.5px;
12941    margin-bottom: 8px;
12942  }
12943   .snb-pdp__sale-banner p{
12944    margin: 0;
12945  }
12946
12947  .snb-pdp__sale-banner strong {
12948    font-family: "Lato", sans-serif;
12949    font-weight: 700;
12950  }
12951
12952  /* ── Plan Cards ── */
12953  .snb-pdp__plans {
12954    display: flex;
12955    flex-direction: column;
12956    gap: 8px;
12957    margin-bottom: 24px;
12958  }
12959
12960  .snb-pdp__plan {
12961    border: 1px solid var(--snb-pdp-ash);
12962    border-radius: var(--snb-pdp-radius);
12963    cursor: pointer;
12964    overflow: hidden;
12965    background: var(--snb-pdp-white);
12966    transition: border-color 0.2s ease;
12967    outline: none;
12968  }
12969
12970  .snb-pdp__plan:focus-visible {
12971    outline: 2px solid var(--snb-pdp-lantern);
12972    outline-offset: 2px;
12973  }
12974
12975  .snb-pdp__plan--active {
12976    border: 2px solid var(--snb-pdp-ash);
12977  }
12978
12979  .snb-pdp__plan-header {
12980    display: flex;
12981    align-items: center;
12982    justify-content: space-between;
12983    padding: 12px 24px;
12984    min-height: 64px;
12985    min-width: 0;
12986  }
12987
12988  .snb-pdp__plan--active .snb-pdp__plan-header {
12989    background: var(--snb-pdp-red-beans);
12990    border-color: var(--snb-pdp-red-beans);
12991    color: var(--snb-pdp-white);
12992    border-radius: 7px 7px 0 0;
12993  }
12994
12995  .snb-pdp__plan-left {
12996    display: flex;
12997    flex-direction: column;
12998    gap: 4px;
12999  }
13000
13001  @media (min-width: 1200px) {
13002    .snb-pdp__plan-left {
13003      flex-direction: row;
13004      align-items: center;
13005      gap: 16px;
13006    }
13007     
13008
13009  }
13010
13011  .snb-pdp__plan-badge {
13012    font-family: "Montserrat", sans-serif;
13013    font-weight: 500;
13014    font-size: 10px;
13015    text-transform: uppercase;
13016    line-height: 12px;
13017    order: -1;
13018  }
13019
13020  @media (min-width: 1200px) {
13021    .snb-pdp__plan-badge {
13022      order: 1;
13023      display: inline-flex;
13024      align-items: center;
13025      padding: 6px 12px;
13026      border-radius: 24px;
13027      background: var(--snb-pdp-lantern);
13028      color: var(--snb-pdp-white);
13029    }
13030  }
13031
13032  .snb-pdp__plan--active .snb-pdp__plan-badge {
13033    color: var(--snb-pdp-white);
13034  }
13035
13036  @media (min-width: 1200px) {
13037    .snb-pdp__plan--active .snb-pdp__plan-badge {
13038      background: var(--snb-pdp-badge);
13039    }
13040  }
13041
13042  .snb-pdp__plan:not(.snb-pdp__plan--active) .snb-pdp__plan-badge {
13043    color: var(--snb-pdp-persimmon);
13044  }
13045
13046  @media (min-width: 1200px) {
13047    .snb-pdp__plan:not(.snb-pdp__plan--active) .snb-pdp__plan-badge {
13048      color: var(--snb-pdp-white);
13049      background: var(--snb-pdp-lantern);
13050    }
13051  }
13052
13053  .snb-pdp__plan-name {
13054    font-family: "Orpheus Pro", serif;
13055    font-size: 20px;
13056    line-height: 24px;
13057    word-break: break-word;
13058  }
13059
13060  @media (min-width: 1200px) {
13061    .snb-pdp__plan-name {
13062      font-size: 28px;
13063      line-height: 28px;
13064    }
13065  }
13066
13067  .snb-pdp__plan-right {
13068    display: flex;
13069    flex-direction: column;
13070    align-items: flex-end;
13071    gap: 4px;
13072  }
13073
13074  @media (min-width: 1200px) {
13075    .snb-pdp__plan-right {
13076      flex-direction: row;
13077      align-items: center;
13078      gap: 12px;
13079    }
13080  }
13081
13082  .snb-pdp__plan-save {
13083    font-family: "Montserrat", sans-serif;
13084    font-weight: 500;
13085    font-size: 12px;
13086    text-transform: uppercase;
13087    color: var(--snb-pdp-persimmon);
13088    line-height: 12px;
13089  }
13090
13091  .snb-pdp__plan--active .snb-pdp__plan-save {
13092    color: var(--snb-pdp-white);
13093  }
13094
13095  .snb-pdp__plan-divider {
13096    display: none;
13097    width: 1px;
13098    height: 20px;
13099    background: var(--snb-pdp-border);
13100  }
13101
13102  @media (min-width: 1200px) {
13103    .snb-pdp__plan-divider {
13104      display: block;
13105    }
13106  }
13107
13108  .snb-pdp__plan--active .snb-pdp__plan-divider {
13109    background: rgba(255, 255, 255, 0.3);
13110  }
13111
13112  .snb-pdp__plan-price {
13113    font-family: "Orpheus Pro", serif;
13114    font-size: 20px;
13115    line-height: 24px;
13116  }
13117
13118  @media (min-width: 1200px) {
13119    .snb-pdp__plan-price {
13120      font-size: 28px;
13121      line-height: 28px;
13122    }
13123  }
13124
13125  /* ── Gift Promo ── */
13126  .snb-pdp__promo {
13127    display: none;
13128  }
13129
13130  .snb-pdp__plan--active .snb-pdp__promo {
13131    display: flex;
13132    flex-wrap: wrap;
13133    align-items: center;
13134    gap: 16px;
13135    padding: 16px;
13136    background: var(--snb-pdp-washi);
13137    border-radius: 0 0 7px 7px;
13138  }
13139
13140  @media (min-width: 769px) {
13141    .snb-pdp__promo {
13142      flex-wrap: nowrap;
13143      padding: 16px 24px;
13144    }
13145  }
13146
13147  .snb-pdp__promo-image {
13148    width: 48px;
13149    height: 48px;
13150    border-radius: 4px;
13151    overflow: hidden;
13152    flex-shrink: 0;
13153  }
13154
13155  @media (min-width: 769px) {
13156    .snb-pdp__promo-image {
13157      width: 64px;
13158      height: 64px;
13159    }
13160  }
13161
13162  .snb-pdp__promo-image img {
13163    width: 100%;
13164    height: 100%;
13165    object-fit: cover;
13166    display: block;
13167  }
13168
13169  .snb-pdp__promo-text {
13170    flex: 1;
13171    min-width: 0;
13172  }
13173
13174  .snb-pdp__promo-title {
13175    font-family: "Montserrat", sans-serif;
13176    font-weight: 500;
13177    font-size: 14px;
13178    letter-spacing: 1px;
13179    text-transform: uppercase;
13180    line-height: 16px;
13181    margin: 0 0 4px;
13182  }
13183
13184  @media (min-width: 769px) {
13185    .snb-pdp__promo-title {
13186      font-size: 16px;
13187    }
13188  }
13189
13190  .snb-pdp__promo-desc {
13191    font-size: 12px;
13192    line-height: 16px;
13193    margin: 0;
13194    color: var(--snb-pdp-ash);
13195  }
13196
13197  .snb-pdp__promo-code-btn {
13198    display: inline-flex;
13199    align-items: center;
13200    justify-content: center;
13201    gap: 8px;
13202    padding: 12px 16px;
13203    border: 1px solid var(--snb-pdp-ash);
13204    border-radius: 24px;
13205    background: transparent;
13206    cursor: pointer;
13207    font-family: "Montserrat", sans-serif;
13208    font-weight: 500;
13209    font-size: 12px;
13210    text-transform: uppercase;
13211    color: var(--snb-pdp-ash);
13212    line-height: 16px;
13213    transition: background 0.2s ease;
13214    width: 100%;
13215  }
13216
13217  @media (min-width: 769px) {
13218    .snb-pdp__promo-code-btn {
13219      width: auto;
13220      flex-shrink: 0;
13221    }
13222  }
13223
13224  .snb-pdp__promo-code-btn:hover {
13225    background: var(--snb-pdp-lantern);
13226    color: var(--snb-pdp-white);
13227  }
13228
13229  .snb-pdp__promo-code-btn:hover svg {
13230    stroke: var(--snb-pdp-white);
13231  }
13232
13233  .snb-pdp__promo-code-btn svg {
13234    width: 16px;
13235    height: 16px;
13236    stroke: var(--snb-pdp-ash);
13237    fill: none;
13238  }
13239
13240  /* ── Add-on pairings (SHO-325) ── */
13241  .snb-pdp__addons {
13242    display: flex;
13243    flex-direction: column;
13244    gap: 8px;
13245    margin: -8px 0 24px;
13246  }
13247
13248  /* whole card is the hit area (label overlay); checkbox sits in the top-right corner */
13249  .snb-pdp__addon {
13250    position: relative;
13251    display: grid;
13252    grid-template-columns: auto minmax(0, 1fr) auto;
13253    grid-template-areas:
13254      "image eyebrow check"
13255      "image title   price"
13256      "desc  desc    desc";
13257    align-items: center;
13258    column-gap: 12px;
13259    row-gap: 2px;
13260    padding: 14px 14px 14px 16px;
13261    margin: 0;
13262    border: 1px solid var(--snb-pdp-border);
13263    border-radius: var(--snb-pdp-radius);
13264    background: var(--snb-pdp-washi);
13265    color: var(--snb-pdp-ash);
13266    cursor: pointer;
13267    transition: border-color 0.2s ease, background 0.2s ease;
13268  }
13269
13270  .snb-pdp__addon--no-image {
13271    grid-template-columns: minmax(0, 1fr) auto;
13272    grid-template-areas:
13273      "eyebrow check"
13274      "title   price"
13275      "desc    desc";
13276  }
13277
13278  .snb-pdp__addon-hit {
13279    position: absolute;
13280    inset: 0;
13281    z-index: 1;
13282    margin: 0;
13283    border-radius: inherit;
13284    cursor: pointer;
13285  }
13286
13287  .snb-pdp__addon-image {
13288    grid-area: image;
13289    align-self: start;
13290    width: 56px;
13291    height: 56px;
13292    border-radius: 4px;
13293    overflow: hidden;
13294  }
13295
13296  .snb-pdp__addon-image img {
13297    width: 100%;
13298    height: 100%;
13299    object-fit: cover;
13300    display: block;
13301  }
13302
13303  .snb-pdp__addon-eyebrow {
13304    grid-area: eyebrow;
13305    font-family: "Montserrat", sans-serif;
13306    font-weight: 500;
13307    font-size: 11px;
13308    letter-spacing: 1px;
13309    text-transform: uppercase;
13310    line-height: 14px;
13311    color: var(--snb-pdp-persimmon);
13312  }
13313
13314  .snb-pdp__addon-title {
13315    grid-area: title;
13316    display: flex;
13317    align-items: flex-start;
13318    gap: 6px;
13319    min-width: 0;
13320    font-family: "Montserrat", sans-serif;
13321    font-weight: 500;
13322    font-size: 14px;
13323    line-height: 18px;
13324  }
13325
13326  .snb-pdp__addon-price {
13327    grid-area: price;
13328    justify-self: end;
13329    align-self: start;
13330    display: flex;
13331    flex-direction: column;
13332    align-items: flex-end;
13333    font-family: "Orpheus Pro", serif;
13334    font-size: 18px;
13335    line-height: 22px;
13336    white-space: nowrap;
13337  }
13338
13339  .snb-pdp__addon-price-note {
13340    font-family: "Lato", sans-serif;
13341    font-size: 10px;
13342    line-height: 12px;
13343    letter-spacing: 0.3px;
13344    opacity: 0.75;
13345    margin-top: 2px;
13346  }
13347
13348  .snb-pdp__addon-desc {
13349    grid-area: desc;
13350    margin-top: 6px;
13351    font-size: 12px;
13352    line-height: 16px;
13353  }
13354
13355  .snb-pdp__addon-learn {
13356    position: relative;
13357    z-index: 2;
13358    -webkit-appearance: none;
13359    appearance: none;
13360    display: inline;
13361    padding: 0;
13362    border: 0;
13363    background: none;
13364    font: inherit;
13365    color: var(--snb-pdp-ash);
13366    text-decoration: underline;
13367    text-underline-offset: 2px;
13368    cursor: pointer;
13369  }
13370
13371  .snb-pdp__addon-learn:hover {
13372    color: var(--snb-pdp-lantern);
13373  }
13374
13375  .snb-pdp__addon-learn:focus-visible {
13376    outline: 2px solid var(--snb-pdp-lantern);
13377    outline-offset: 2px;
13378  }
13379
13380  .snb-pdp__addon-check {
13381    grid-area: check;
13382    align-self: start;
13383    justify-self: end;
13384    pointer-events: none;
13385    display: inline-flex;
13386    align-items: center;
13387    justify-content: center;
13388    width: 20px;
13389    height: 20px;
13390    border: 1.5px solid var(--snb-pdp-ash);
13391    border-radius: 4px;
13392    background: var(--snb-pdp-white);
13393    transition: background 0.2s ease, border-color 0.2s ease;
13394  }
13395
13396  .snb-pdp__addon-check svg {
13397    width: 12px;
13398    height: 12px;
13399    stroke: var(--snb-pdp-white);
13400    fill: none;
13401    opacity: 0;
13402  }
13403
13404  .snb-pdp__addon--checked .snb-pdp__addon-check {
13405    background: var(--snb-pdp-lantern);
13406    border-color: var(--snb-pdp-lantern);
13407  }
13408
13409  .snb-pdp__addon--checked .snb-pdp__addon-check svg {
13410    opacity: 1;
13411  }
13412
13413  /* info button rides above the label overlay so it opens the modal instead of toggling */
13414  .snb-pdp__addon-info {
13415    position: relative;
13416    z-index: 2;
13417    display: inline-flex;
13418    align-items: center;
13419    justify-content: center;
13420    width: 24px;
13421    height: 24px;
13422    margin: -3px 0;
13423    flex-shrink: 0;
13424    padding: 0;
13425    border: none;
13426    border-radius: 50%;
13427    background: transparent;
13428    color: var(--snb-pdp-ash);
13429    cursor: pointer;
13430    transition: background 0.2s ease, color 0.2s ease;
13431  }
13432
13433  .snb-pdp__addon-info svg {
13434    width: 18px;
13435    height: 18px;
13436    stroke: currentColor;
13437    fill: none;
13438  }
13439
13440  .snb-pdp__addon-info:hover {
13441    background: var(--snb-pdp-white);
13442    color: var(--snb-pdp-lantern);
13443  }
13444
13445  .snb-pdp__addon-info:focus-visible {
13446    outline: 2px solid var(--snb-pdp-lantern);
13447    outline-offset: 2px;
13448  }
13449
13450  .snb-pdp__addon:hover,
13451  .snb-pdp__addon--checked {
13452    border-color: var(--snb-pdp-ash);
13453  }
13454
13455  .snb-pdp__addon--checked {
13456    background: var(--snb-pdp-white);
13457  }
13458
13459  .snb-pdp__addon:focus-within {
13460    outline: 2px solid var(--snb-pdp-lantern);
13461    outline-offset: 2px;
13462  }
13463
13464  .snb-pdp__addon--placeholder {
13465    display: flex;
13466    justify-content: center;
13467    font-size: 12px;
13468    cursor: default;
13469  }
13470
13471  /* desktop: large image left, price stacked under the corner checkbox */
13472  @media (min-width: 769px) {
13473    .snb-pdp__addon {
13474      grid-template-columns: auto minmax(0, 1fr) auto;
13475      grid-template-areas:
13476        "image eyebrow check"
13477        "image title   price"
13478        "image desc    price";
13479      column-gap: 16px;
13480      padding: 12px 16px;
13481    }
13482
13483    .snb-pdp__addon--no-image {
13484      grid-template-columns: minmax(0, 1fr) auto;
13485      grid-template-areas:
13486        "eyebrow check"
13487        "title   price"
13488        "desc    price";
13489    }
13490
13491    .snb-pdp__addon-image {
13492      align-self: center;
13493      width: 72px;
13494      height: 72px;
13495    }
13496
13497    .snb-pdp__addon-price {
13498      justify-self: end;
13499      align-self: center;
13500      font-size: 20px;
13501      line-height: 24px;
13502    }
13503
13504    .snb-pdp__addon-desc {
13505      margin-top: 0;
13506    }
13507  }
13508
13509  /* Add-on details modal (SHO-325) — cloned to <body>, so it carries its own tokens */
13510  .snb-pdp-modal {
13511    --snb-pdp-modal-bg: #f6f4f1;
13512    --snb-pdp-modal-text: #1a1a1a;
13513    --snb-pdp-modal-accent: #b73d09;
13514    --snb-pdp-modal-surface: #ffffff;
13515    --snb-pdp-modal-border: #e8e8e1;
13516    position: fixed;
13517    inset: 0;
13518    z-index: 10000;
13519    display: flex;
13520    align-items: center;
13521    justify-content: center;
13522    padding: 16px;
13523    opacity: 0;
13524    visibility: hidden;
13525    transition: opacity 0.25s ease, visibility 0.25s ease;
13526    font-family: "Lato", sans-serif;
13527    color: var(--snb-pdp-modal-text);
13528    box-sizing: border-box;
13529  }
13530
13531  .snb-pdp-modal *,
13532  .snb-pdp-modal *::before,
13533  .snb-pdp-modal *::after {
13534    box-sizing: border-box;
13535  }
13536
13537  .snb-pdp-modal--open {
13538    opacity: 1;
13539    visibility: visible;
13540  }
13541
13542  .snb-pdp-modal__backdrop {
13543    position: absolute;
13544    inset: 0;
13545    background: rgba(0, 0, 0, 0.6);
13546    cursor: pointer;
13547  }
13548
13549  .snb-pdp-modal__box {
13550    position: relative;
13551    z-index: 1;
13552    display: flex;
13553    flex-direction: column;
13554    width: 100%;
13555    max-width: 1100px;
13556    max-height: 92vh;
13557    overflow-y: auto;
13558    background: var(--snb-pdp-modal-bg);
13559    border-radius: 8px;
13560  }
13561
13562  @media (min-width: 769px) {
13563    .snb-pdp-modal__box {
13564      flex-direction: row;
13565      max-height: 85vh;
13566      overflow: hidden;
13567    }
13568  }
13569
13570  .snb-pdp-modal__close {
13571    position: absolute;
13572    top: 12px;
13573    right: 12px;
13574    z-index: 3;
13575    width: 40px;
13576    height: 40px;
13577    display: inline-flex;
13578    align-items: center;
13579    justify-content: center;
13580    padding: 0;
13581    border: none;
13582    border-radius: 50%;
13583    background: var(--snb-pdp-modal-bg);
13584    color: var(--snb-pdp-modal-text);
13585    cursor: pointer;
13586  }
13587
13588  @media (min-width: 769px) {
13589    .snb-pdp-modal__close {
13590      top: 28px;
13591      right: 28px;
13592      background: transparent;
13593    }
13594  }
13595
13596  .snb-pdp-modal__close svg {
13597    width: 22px;
13598    height: 22px;
13599    stroke: currentColor;
13600    fill: none;
13601  }
13602
13603  .snb-pdp-modal__close:focus-visible,
13604  .snb-pdp-modal__thumb:focus-visible {
13605    outline: 2px solid var(--snb-pdp-modal-accent);
13606    outline-offset: 2px;
13607  }
13608
13609  .snb-pdp-modal__media {
13610    position: relative;
13611    width: 100%;
13612    aspect-ratio: 4 / 3;
13613    flex-shrink: 0;
13614    overflow: hidden;
13615    background: var(--snb-pdp-modal-surface);
13616  }
13617
13618  @media (min-width: 769px) {
13619    .snb-pdp-modal__media {
13620      flex: 0 0 50%;
13621      max-width: 50%;
13622      aspect-ratio: auto;
13623      min-height: 560px;
13624    }
13625  }
13626
13627  .snb-pdp-modal__slide {
13628    position: absolute;
13629    inset: 0;
13630    opacity: 0;
13631    transition: opacity 0.3s ease;
13632  }
13633
13634  .snb-pdp-modal__slide--active {
13635    opacity: 1;
13636  }
13637
13638  .snb-pdp-modal__slide img {
13639    width: 100%;
13640    height: 100%;
13641    object-fit: cover;
13642    display: block;
13643  }
13644
13645  .snb-pdp-modal__thumbs {
13646    position: absolute;
13647    right: 12px;
13648    bottom: 12px;
13649    display: flex;
13650    flex-direction: row;
13651    gap: 8px;
13652    z-index: 2;
13653  }
13654
13655  @media (min-width: 769px) {
13656    .snb-pdp-modal__thumbs {
13657      right: 40px;
13658      bottom: 40px;
13659      flex-direction: column;
13660    }
13661  }
13662
13663  .snb-pdp-modal__thumb {
13664    width: 64px;
13665    height: 64px;
13666    padding: 0;
13667    border: 2px solid transparent;
13668    border-radius: 4px;
13669    overflow: hidden;
13670    background: var(--snb-pdp-modal-surface);
13671    cursor: pointer;
13672    opacity: 0.85;
13673    transition: opacity 0.2s ease, border-color 0.2s ease;
13674  }
13675
13676  @media (min-width: 769px) {
13677    .snb-pdp-modal__thumb {
13678      width: 96px;
13679      height: 96px;
13680    }
13681  }
13682
13683  .snb-pdp-modal__thumb img {
13684    width: 100%;
13685    height: 100%;
13686    object-fit: cover;
13687    display: block;
13688  }
13689
13690  .snb-pdp-modal__thumb:hover,
13691  .snb-pdp-modal__thumb--active {
13692    opacity: 1;
13693    border-color: var(--snb-pdp-modal-surface);
13694  }
13695
13696  .snb-pdp-modal__content {
13697    flex: 1;
13698    min-width: 0;
13699    padding: 28px 20px 32px;
13700  }
13701
13702  @media (min-width: 769px) {
13703    .snb-pdp-modal__content {
13704      padding: 120px 60px 60px;
13705      overflow-y: auto;
13706    }
13707  }
13708
13709  .snb-pdp-modal__eyebrow {
13710    font-family: "Montserrat", sans-serif;
13711    font-weight: 500;
13712    font-size: 13px;
13713    letter-spacing: 2px;
13714    text-transform: uppercase;
13715    line-height: 16px;
13716    color: var(--snb-pdp-modal-accent);
13717    margin: 0 0 16px;
13718  }
13719
13720  .snb-pdp-modal__title {
13721    font-family: "Orpheus Pro", serif;
13722    font-weight: 400;
13723    font-size: 36px;
13724    line-height: 1.1;
13725    margin: 0 0 20px;
13726    color: var(--snb-pdp-modal-text);
13727  }
13728
13729  @media (min-width: 769px) {
13730    .snb-pdp-modal__title {
13731      font-size: 52px;
13732    }
13733  }
13734
13735  .snb-pdp-modal__desc {
13736    font-size: 16px;
13737    line-height: 1.75;
13738    margin: 0 0 32px;
13739  }
13740
13741  .snb-pdp-modal__desc p {
13742    margin: 0 0 8px;
13743  }
13744
13745  .snb-pdp-modal__desc p:last-child {
13746    margin-bottom: 0;
13747  }
13748
13749  .snb-pdp-modal__meta {
13750    display: flex;
13751    flex-wrap: wrap;
13752    margin: 0;
13753    padding: 24px 12px;
13754    background: var(--snb-pdp-modal-surface);
13755    border-radius: 8px;
13756  }
13757
13758  .snb-pdp-modal__meta-item {
13759    flex: 1 1 0;
13760    min-width: 120px;
13761    text-align: center;
13762    padding: 4px 12px;
13763  }
13764
13765  .snb-pdp-modal__meta-item + .snb-pdp-modal__meta-item {
13766    border-left: 1px solid var(--snb-pdp-modal-border);
13767  }
13768
13769  .snb-pdp-modal__meta dt {
13770    font-family: "Montserrat", sans-serif;
13771    font-weight: 500;
13772    font-size: 11px;
13773    letter-spacing: 1.5px;
13774    text-transform: uppercase;
13775    line-height: 14px;
13776    margin: 0 0 8px;
13777  }
13778
13779  .snb-pdp-modal__meta dd {
13780    font-family: "Orpheus Pro", serif;
13781    font-size: 22px;
13782    line-height: 1.2;
13783    margin: 0;
13784  }
13785
13786  @media (min-width: 769px) {
13787    .snb-pdp-modal__meta dd {
13788      font-size: 28px;
13789    }
13790  }
13791
13792  /* ── Pricing + CTA ── */
13793  .snb-pdp__checkout {
13794    display: flex;
13795    flex-direction: column;
13796    gap: 8px;
13797    margin-bottom: 24px;
13798  }
13799
13800  @media (min-width: 1200px) {
13801    .snb-pdp__checkout {
13802      flex-direction: row;
13803      align-items: flex-start;
13804      justify-content: space-between;
13805      gap: 24px;
13806    }
13807  }
13808
13809  .snb-pdp__pricing {
13810    display: flex;
13811    flex-direction: row;
13812    align-items: flex-start;
13813    gap: 0;
13814    flex-wrap: wrap;
13815  }
13816
13817  @media (min-width: 1200px) {
13818    .snb-pdp__pricing {
13819      flex-direction: column;
13820    }
13821  }
13822
13823  .snb-pdp__pricing-left {
13824    display: flex;
13825    flex-direction: column;
13826    margin-right: 8px;
13827  }
13828
13829  @media (min-width: 1200px) {
13830    .snb-pdp__pricing-left {
13831      margin-right: 0;
13832    }
13833  }
13834
13835  .snb-pdp__pricing-label {
13836    font-family: "Montserrat", sans-serif;
13837    font-weight: 500;
13838    font-size: 12px;
13839    text-transform: uppercase;
13840    line-height: 12px;
13841  }
13842
13843  .snb-pdp__pricing-save {
13844    font-family: "Montserrat", sans-serif;
13845    font-weight: 500;
13846    font-size: 12px;
13847    text-transform: uppercase;
13848    line-height: 12px;
13849    color: var(--snb-pdp-persimmon);
13850    margin-top: 6px;
13851  }
13852
13853  @media (min-width: 1200px) {
13854    .snb-pdp__pricing-save {
13855      margin-top: 8px;
13856    }
13857  }
13858
13859  .snb-pdp__pricing-right {
13860    display: flex;
13861    flex-direction: column;
13862  }
13863
13864  .snb-pdp__pricing-row {
13865    display: flex;
13866    align-items: baseline;
13867    gap: 16px;
13868  }
13869
13870  .snb-pdp__price {
13871    font-family: "Orpheus Pro", serif;
13872    font-size: 28px;
13873    line-height: 32px;
13874    color: var(--snb-pdp-ash);
13875  }
13876
13877  @media (min-width: 1200px) {
13878    .snb-pdp__price {
13879      font-size: 32px;
13880    }
13881  }
13882
13883  .snb-pdp__compare-price {
13884    font-family: "Orpheus Pro", serif;
13885    font-size: 28px;
13886    line-height: 32px;
13887    color: var(--snb-pdp-persimmon);
13888    text-decoration: line-through;
13889  }
13890
13891  @media (min-width: 1200px) {
13892    .snb-pdp__compare-price {
13893      font-size: 32px;
13894    }
13895  }
13896
13897  .snb-pdp__billing-note {
13898    font-size: 16px;
13899    line-height: 24px;
13900    letter-spacing: 0.5px;
13901    margin-top: 0;
13902    text-align: right;
13903  }
13904
13905  @media (min-width: 1200px) {
13906    .snb-pdp__billing-note {
13907      text-align: left;
13908      margin-top: 0;
13909    }
13910  }
13911
13912  .snb-pdp__form {
13913    width: 100%;
13914  }
13915
13916  @media (min-width: 1200px) {
13917    .snb-pdp__form {
13918      flex: 1;
13919text-align:end;
13920    }
13921      .snb-pdp__cta {
13922    height: 76px;
13923  }
13924
13925  }
13926
13927  .snb-pdp__cta {
13928    text-align: center;
13929  }
13930
13931  .snb-pdp__cta[disabled] {
13932    opacity: 0.5;
13933    cursor: not-allowed;
13934  }
13935
13936  /* ── Divider ── */
13937  .snb-pdp__divider {
13938    border: none;
13939    border-top: 1px solid var(--snb-pdp-border);
13940    margin: 0 0 12px;
13941  }
13942.snb-pdp__disclaimer {
13943  padding-bottom: 12px;
13944  text-align: center;
13945  font-size: 13px
13946}
13947  /* ── USP List ── */
13948  .snb-pdp__usps {
13949    display: flex;
13950    flex-direction: column;
13951    gap: 10px;
13952    margin-bottom: 40px;
13953    content-visibility: auto;
13954    contain-intrinsic-size: auto 200px;
13955  }
13956
13957  .snb-pdp__usp {
13958    display: flex;
13959    align-items: center;
13960    gap: 10px;
13961  }
13962
13963  .snb-pdp__usp-icon {
13964    width: 25px;
13965    height: 25px;
13966    flex-shrink: 0;
13967  }
13968
13969  .snb-pdp__usp-icon img {
13970    width: 100%;
13971    height: 100%;
13972    object-fit: contain;
13973    display: block;
13974  }
13975
13976  .snb-pdp__usp-text {
13977    font-size: 16px;
13978    line-height: 24px;
13979    letter-spacing: 0.5px;
13980  }
13981
13982  /* ── Description ── */
13983  .snb-pdp__description {
13984    display: flex;
13985    flex-direction: column;
13986    gap: 24px;
13987    margin-bottom: 40px;
13988    content-visibility: auto;
13989    contain-intrinsic-size: auto 150px;
13990  }
13991
13992  .snb-pdp__description-heading {
13993    font-family: "Orpheus Pro", serif;
13994    font-weight: 500;
13995    font-size: 24px;
13996    line-height: 30px;
13997    margin: 0;
13998  }
13999
14000  @media (min-width: 769px) {
14001    .snb-pdp__description-heading {
14002      font-size: 28px;
14003    }
14004  }
14005
14006  .snb-pdp__description-text {
14007    font-size: 16px;
14008    line-height: 24px;
14009    letter-spacing: 0.5px;
14010  }
14011
14012  .snb-pdp__description-text p {
14013    margin: 0 0 12px;
14014  }
14015
14016  .snb-pdp__description-text p:last-child {
14017    margin-bottom: 0;
14018  }
14019
14020  /* ── Collapsible Details ── */
14021  .snb-pdp__details-toggle {
14022    display: flex;
14023    align-items: center;
14024    justify-content: space-between;
14025    width: 100%;
14026    padding: 0;
14027    background: none;
14028    border: none;
14029    cursor: pointer;
14030    font-family: "Lato", sans-serif;
14031    font-weight: 600;
14032    font-size: 18px;
14033    letter-spacing: 1px;
14034    line-height: 22px;
14035    color: var(--snb-pdp-ash);
14036    text-align: left;
14037  }
14038
14039  .snb-pdp__details-toggle:focus-visible {
14040    outline: 2px solid var(--snb-pdp-ash);
14041    outline-offset: 4px;
14042    border-radius: 2px;
14043  }
14044
14045  .snb-pdp__details-icon {
14046    width: 12px;
14047    height: 12px;
14048    transition: transform 0.3s ease;
14049    flex-shrink: 0;
14050  }
14051
14052  .snb-pdp__details[open] .snb-pdp__details-icon {
14053    transform: rotate(180deg);
14054  }
14055
14056  .snb-pdp__details-content {
14057    padding-top: 16px;
14058    font-size: 16px;
14059    line-height: 24px;
14060    letter-spacing: 0.5px;
14061  }
14062
14063  .snb-pdp__details-content p {
14064    margin: 0 0 12px;
14065  }
14066
14067  .snb-pdp__details-content p:last-child {
14068    margin-bottom: 0;
14069  }</style><section id="snack-box-subscription" class="snb-pdp page-width" data-section-id="template--17749318303830__snb_subs_panel_3rfYyF" data-section-type="snb-pdp-subscription"><div class="snb-pdp__gallery"><div
14070        class="snb-pdp__carousel"
14071        data-snb-carousel
14072        aria-hidden="true"
14073        inert
14074      ><div
14075              class="snb-pdp__carousel-slide"
14076              role="group"
14077              aria-roledescription="slide"
14078              aria-label="Image 1 of 10"
14079              
14080            >
14081              <img
14082                src="//bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square.jpg?v=1777541638&width=800"
14083                srcset="//bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square.jpg?v=1777541638&width=400 400w,
14084                  //bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square.jpg?v=1777541638&width=600 600w,
14085                  //bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square.jpg?v=1777541638&width=800 800w"
14086                sizes="(min-width: 769px) 50vw, 85vw"
14087                loading="lazy"
14088                alt="Bokksu Snack Box Subscription"
14089                width="1200"
14090                height="1200"
14091              >
14092            </div><div
14093              class="snb-pdp__carousel-slide"
14094              role="group"
14095              aria-roledescription="slide"
14096              aria-label="Image 2 of 10"
14097              
14098            >
14099              <img
14100                src="//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_001_Fullcrop_HiRes.jpg?v=1780550983&width=800"
14101                srcset="//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_001_Fullcrop_HiRes.jpg?v=1780550983&width=400 400w,
14102                  //bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_001_Fullcrop_HiRes.jpg?v=1780550983&width=600 600w,
14103                  //bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_001_Fullcrop_HiRes.jpg?v=1780550983&width=800 800w"
14104                sizes="(min-width: 769px) 50vw, 85vw"
14105                loading="lazy"
14106                alt="Bokksu Snack Box Subscription"
14107                width="3178"
14108                height="2224"
14109              >
14110            </div><div
14111              class="snb-pdp__carousel-slide"
14112              role="group"
14113              aria-roledescription="slide"
14114              aria-label="Image 3 of 10"
14115              
14116            >
14117              <img
14118                src="//bokksu.com/cdn/shop/files/SNB_2505_SOJ_Revamp_HeroBanner_03_1200x1500_2.jpg?v=1780551296&width=800"
14119                srcset="//bokksu.com/cdn/shop/files/SNB_2505_SOJ_Revamp_HeroBanner_03_1200x1500_2.jpg?v=1780551296&width=400 400w,
14120                  //bokksu.com/cdn/shop/files/SNB_2505_SOJ_Revamp_HeroBanner_03_1200x1500_2.jpg?v=1780551296&width=600 600w,
14121                  //bokksu.com/cdn/shop/files/SNB_2505_SOJ_Revamp_HeroBanner_03_1200x1500_2.jpg?v=1780551296&width=800 800w"
14122                sizes="(min-width: 769px) 50vw, 85vw"
14123                loading="lazy"
14124                alt="Bokksu Snack Box Subscription"
14125                width="1200"
14126                height="1500"
14127              >
14128            </div><div
14129              class="snb-pdp__carousel-slide"
14130              role="group"
14131              aria-roledescription="slide"
14132              aria-label="Image 4 of 10"
14133              
14134            >
14135              <img
14136                src="//bokksu.com/cdn/shop/files/Overhead-Hero-_mobile-Header_fda752fd-1f0a-4fd3-961e-121d89bcd850.png?v=1790830789&width=800"
14137                srcset="//bokksu.com/cdn/shop/files/Overhead-Hero-_mobile-Header_fda752fd-1f0a-4fd3-961e-121d89bcd850.png?v=1790830789&width=400 400w,
14138                  //bokksu.com/cdn/shop/files/Overhead-Hero-_mobile-Header_fda752fd-1f0a-4fd3-961e-121d89bcd850.png?v=1790830789&width=600 600w,
14139                  //bokksu.com/cdn/shop/files/Overhead-Hero-_mobile-Header_fda752fd-1f0a-4fd3-961e-121d89bcd850.png?v=1790830789&width=800 800w"
14140                sizes="(min-width: 769px) 50vw, 85vw"
14141                loading="lazy"
14142                alt="Bokksu Snack Box Subscription"
14143                width="1080"
14144                height="1080"
14145              >
14146            </div><div
14147              class="snb-pdp__carousel-slide"
14148              role="group"
14149              aria-roledescription="slide"
14150              aria-label="Image 5 of 10"
14151              
14152            >
14153              <img
14154                src="//bokksu.com/cdn/shop/files/SNB2608_MemoriesofSummer_HeroBanner_780x800_b5940a7b-3814-4069-a6c9-8de5f1104d21.jpg?v=1788502617&width=800"
14155                srcset="//bokksu.com/cdn/shop/files/SNB2608_MemoriesofSummer_HeroBanner_780x800_b5940a7b-3814-4069-a6c9-8de5f1104d21.jpg?v=1788502617&width=400 400w,
14156                  //bokksu.com/cdn/shop/files/SNB2608_MemoriesofSummer_HeroBanner_780x800_b5940a7b-3814-4069-a6c9-8de5f1104d21.jpg?v=1788502617&width=600 600w,
14157                  //bokksu.com/cdn/shop/files/SNB2608_MemoriesofSummer_HeroBanner_780x800_b5940a7b-3814-4069-a6c9-8de5f1104d21.jpg?v=1788502617&width=800 800w"
14158                sizes="(min-width: 769px) 50vw, 85vw"
14159                loading="lazy"
14160                alt="Bokksu Snack Box Subscription"
14161                width="780"
14162                height="800"
14163              >
14164            </div><div
14165              class="snb-pdp__carousel-slide"
14166              role="group"
14167              aria-roledescription="slide"
14168              aria-label="Image 6 of 10"
14169              
14170            >
14171              <img
14172                src="//bokksu.com/cdn/shop/files/SNB2607_BambooWishesofTanabata_Hero_2000x2000_01.jpg?v=1785902687&width=800"
14173                srcset="//bokksu.com/cdn/shop/files/SNB2607_BambooWishesofTanabata_Hero_2000x2000_01.jpg?v=1785902687&width=400 400w,
14174                  //bokksu.com/cdn/shop/files/SNB2607_BambooWishesofTanabata_Hero_2000x2000_01.jpg?v=1785902687&width=600 600w,
14175                  //bokksu.com/cdn/shop/files/SNB2607_BambooWishesofTanabata_Hero_2000x2000_01.jpg?v=1785902687&width=800 800w"
14176                sizes="(min-width: 769px) 50vw, 85vw"
14177                loading="lazy"
14178                alt="Bokksu Snack Box Subscription"
14179                width="2000"
14180                height="2000"
14181              >
14182            </div><div
14183              class="snb-pdp__carousel-slide"
14184              role="group"
14185              aria-roledescription="slide"
14186              aria-label="Image 7 of 10"
14187              
14188            >
14189              <img
14190                src="//bokksu.com/cdn/shop/files/Angled-Hero-Mobile_02168747-e2a4-410d-ba69-f4cd66e540bd.png?v=1789715827&width=800"
14191                srcset="//bokksu.com/cdn/shop/files/Angled-Hero-Mobile_02168747-e2a4-410d-ba69-f4cd66e540bd.png?v=1789715827&width=400 400w,
14192                  //bokksu.com/cdn/shop/files/Angled-Hero-Mobile_02168747-e2a4-410d-ba69-f4cd66e540bd.png?v=1789715827&width=600 600w,
14193                  //bokksu.com/cdn/shop/files/Angled-Hero-Mobile_02168747-e2a4-410d-ba69-f4cd66e540bd.png?v=1789715827&width=800 800w"
14194                sizes="(min-width: 769px) 50vw, 85vw"
14195                loading="lazy"
14196                alt="Bokksu Snack Box Subscription"
14197                width="1080"
14198                height="1080"
14199              >
14200            </div><div
14201              class="snb-pdp__carousel-slide"
14202              role="group"
14203              aria-roledescription="slide"
14204              aria-label="Image 8 of 10"
14205              
14206            >
14207              <img
14208                src="//bokksu.com/cdn/shop/files/Overhead-Hero-_mobile-Header_fcd713ce-6049-4f8
142086-9f85-dc3a854162ae.png?v=1778043728&width=800"
14209                srcset="//bokksu.com/cdn/shop/files/Overhead-Hero-_mobile-Header_fcd713ce-6049-4f86-9f85-dc3a854162ae.png?v=1778043728&width=400 400w,
14210                  //bokksu.com/cdn/shop/files/Overhead-Hero-_mobile-Header_fcd713ce-6049-4f86-9f85-dc3a854162ae.png?v=1778043728&width=600 600w,
14211                  //bokksu.com/cdn/shop/files/Overhead-Hero-_mobile-Header_fcd713ce-6049-4f86-9f85-dc3a854162ae.png?v=1778043728&width=800 800w"
14212                sizes="(min-width: 769px) 50vw, 85vw"
14213                loading="lazy"
14214                alt="Bokksu Snack Box Subscription"
14215                width="1080"
14216                height="1080"
14217              >
14218            </div><div
14219              class="snb-pdp__carousel-slide"
14220              role="group"
14221              aria-roledescription="slide"
14222              aria-label="Image 9 of 10"
14223              
14224            >
14225              <img
14226                src="//bokksu.com/cdn/shop/files/page2.jpg?v=1778043607&width=800"
14227                srcset="//bokksu.com/cdn/shop/files/page2.jpg?v=177804360
142277&width=400 400w,
14228                  //bokksu.com/cdn/shop/files/page2.jpg?v=1778043607&width=600 600w,
14229                  //bokksu.com/cdn/shop/files/page2.jpg?v=1778043607&width=800 800w"
14230                sizes="(min-width: 769px) 50vw, 85vw"
14231                loading="lazy"
14232                alt="Bokksu Snack Box Subscription"
14233                width="1000"
14234                height="1000"
14235              >
14236            </div><div
14237              class="snb-pdp__carousel-slide"
14238              role="group"
14239              aria-roledescription="slide"
14240              aria-label="Image 10 of 10"
14241              
14242            >
14243              <img
14244                src="//bokksu.com/cdn/shop/files/2603-Sakura-Silk-Lounge-2000x2000-SNB_efd4e2d2-a8d5-416e-aa7f-cf270f76acf6.jpg?v=1777541673&width=800"
14245                srcset="//bokksu.com/cdn/shop/files/2603-Sakura-Silk-Lounge-2000x2000-SNB_efd4e2d2-a8d5-416e-aa7f-cf270f76acf6.jpg?v=1777541673&width=400 400w,
14246                  //bokksu.com/cdn/shop/files/2603-Sakura-Silk-Lounge-2000x2000-SNB_efd4e2d2-a8d5-416e-aa7f-cf270f76acf6.jpg?v=1777541673&width=600 600w,
14247                  //bokksu.com/cdn/shop/files/2603-Sakura-Silk-Lounge-2000x2000-SNB_efd4e2d2-a8d5-416e-aa7f-cf270f76acf6.jpg?v=1777541673&width=800 800w"
14248                sizes="(min-width: 769px) 50vw, 85vw"
14249                loading="lazy"
14250                alt="Bokksu Snack Box Subscription"
14251                width="2000"
14252                height="2000"
14253              >
14254            </div></div><div class="snb-pdp__dots" data-snb-dots aria-hidden="true"><button
14255                type="button"
14256                role="tab"
14257                class="snb-pdp__dot snb-pdp__dot--active"
14258                data-snb-dot="0"
14259                aria-label="Go to image 1"
14260                aria-selected="true"
14261              ></button><button
14262                type="button"
14263                role="tab"
14264                class="snb-pdp__dot"
14265                data-snb-dot="1"
14266                aria-label="Go to image 2"
14267                aria-selected="false"
14268              ></button><button
14269                type="button"
14270                role="tab"
14271                class="snb-pdp__dot"
14272                data-snb-dot="2"
14273                aria-label="Go to image 3"
14274                aria-selected="false"
14275              ></button><button
14276                type="button"
14277                role="tab"
14278                class="snb-pdp__dot"
14279                data-snb-dot="3"
14280                aria-label="Go to image 4"
14281                aria-selected="false"
14282              ></button><button
14283                type="button"
14284                role="tab"
14285                class="snb-pdp__dot"
14286                data-snb-dot="4"
14287                aria-label="Go to image 5"
14288                aria-selected="false"
14289              ></button><button
14290                type="button"
14291                role="tab"
14292                class="snb-pdp__dot"
14293                data-snb-dot="5"
14294                aria-label="Go to image 6"
14295                aria-selected="false"
14296              ></button><button
14297                type="button"
14298                role="tab"
14299                class="snb-pdp__dot"
14300                data-snb-dot="6"
14301                aria-label="Go to image 7"
14302                aria-selected="false"
14303              ></button><button
14304                type="button"
14305                role="tab"
14306                class="snb-pdp__dot"
14307                data-snb-dot="7"
14308                aria-label="Go to image 8"
14309                aria-selected="false"
14310              ></button><button
14311                type="button"
14312                role="tab"
14313                class="snb-pdp__dot"
14314                data-snb-dot="8"
14315                aria-label="Go to image 9"
14316                aria-selected="false"
14317              ></button><button
14318                type="button"
14319                role="tab"
14320                class="snb-pdp__dot"
14321                data-snb-dot="9"
14322                aria-label="Go to image 10"
14323                aria-selected="false"
14324              ></button></div><div class="snb-pdp__desktop-gallery"><div class="snb-pdp__thumbs" aria-hidden="true" inert>
14325            <div class="snb-pdp__thumbs-scroller" data-snb-thumbs><button
14326                    type="button"
14327                    class="snb-pdp__thumb snb-pdp__thumb--active"
14328                    data-snb-thumb
14329                    data-index="0"
14330                    data-img-src="//bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square.jpg?v=1777541638&width=1200"
14331                    data-img-alt="Bokksu Snack Box Subscription"
14332                    tabindex="-1"
14333                    
14334                  >
14335                    <img
14336                      src="//bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square.jpg?v=1777541638&width=160"
14337                      loading="lazy"
14338                      alt=""
14339                      width="76"
14340                      height="76"
14341                    >
14342                  </button><button
14343                    type="button"
14344                    class="snb-pdp__thumb"
14345                    data-snb-thumb
14346                    data-index="1"
14347                    data-img-src="//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_001_Fullcrop_HiRes.jpg?v=1780550983&width=1200"
14348                    data-img-alt="Bokksu Snack Box Subscription"
14349                    tabindex="-1"
14350                    
14351                  >
14352                    <img
14353                      src="//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_001_Fullcrop_HiRes.jpg?v=1780550983&width=160"
14354                      loading="lazy"
14355                      alt=""
14356                      width="76"
14357                      height="76"
14358                    >
14359                  </button><button
14360                    type="button"
14361                    class="snb-pdp__thumb"
14362                    data-snb-thumb
14363                    data-index="2"
14364                    data-img-src="//bokksu.com/cdn/shop/files/SNB_2505_SOJ_Revamp_HeroBanner_03_1200x1500_2.jpg?v=1780551296&width=1200"
14365                    data-img-alt="Bokksu Snack Box Subscription"
14366                    tabindex="-1"
14367                    
14368                  >
14369                    <img
14370                      src="//bokksu.com/cdn/shop/files/SNB_2505_SOJ_Revamp_HeroBanner_03_1200x1500_2.jpg?v=1780551296&width=160"
14371                      loading="lazy"
14372                      alt=""
14373                      width="76"
14374                      height="76"
14375                    >
14376                  </button><button
14377                    type="button"
14378                    class="snb-pdp__thumb"
14379                    data-snb-thumb
14380                    data-index="3"
14381                    data-img-src="//bokksu.com/cdn/shop/files/Overhead-Hero-_mobile-Header_fda752fd-1f0a-4fd3-961e-121d89bcd850.png?v=1790830789&width=1200"
14382                    data-img-alt="Bokksu Snack Box Subscription"
14383                    tabindex="-1"
14384                    
14385                  >
14386                    <img
14387                      src="//bokksu.com/cdn/shop/files/Overhead-Hero-_mobile-Header_fda752fd-1f0a-4fd3-961e-121d89bcd850.png?v=1790830789&width=160"
14388                      loading="lazy"
14389                      alt=""
14390                      width="76"
14391                      height="76"
14392                    >
14393                  </button><button
14394                    type="button"
14395                    class="snb-pdp__thumb"
14396                    data-snb-thumb
14397                    data-index="4"
14398                    data-img-src="//bokksu.com/cdn/shop/files/SNB2608_MemoriesofSummer_HeroBanner_780x800_b5940a7b-3814-4069-a6c9-8de5f1104d21.jpg?v=1788502617&width=1200"
14399                    data-img-alt="Bokksu Snack Box Subscription"
14400                    tabindex="-1"
14401                    
14402                  >
14403                    <img
14404                      src="//bokksu.com/cdn/shop/files/SNB2608_MemoriesofSummer_HeroBanner_780x800_b5940a7b-3814-4069-a6c9-8de5f1104d21.jpg?v=1788502617&width=160"
14405                      loading="lazy"
14406                      alt=""
14407                      width="76"
14408                      height="76"
14409                    >
14410                  </button><button
14411                    type="button"
14412                    class="snb-pdp__thumb"
14413                    data-snb-thumb
14414                    data-index="5"
14415                    data-img-src="//bokksu.com/cdn/shop/files/SNB2607_BambooWishesofTanabata_Hero_2000x2000_01.jpg?v=1785902687&width=1200"
14416                    data-img-alt="Bokksu Snack Box Subscription"
14417                    tabindex="-1"
14418                    
14419                  >
14420                    <img
14421                      src="//bokksu.com/cdn/shop/files/SNB2607_BambooWishesofTanabata_Hero_2000x2000_01.jpg?v=1785902687&width=160"
14422                      loading="lazy"
14423                      alt=""
14424                      width="76"
14425                      height="76"
14426                    >
14427                  </button><button
14428                    type="button"
14429                    class="snb-pdp__thumb"
14430                    data-snb-thumb
14431                    data-index="6"
14432                    data-img-src="//bokksu.com/cdn/shop/files/Angled-Hero-Mobile_02168747-e2a4-410d-ba69-f4cd66e540bd.png?v=1789715827&width=1200"
14433                    data-img-alt="Bokksu Snack Box Subscription"
14434                    tabindex="-1"
14435                    
14436                  >
14437                    <img
14438                      src="//bokksu.com/cdn/shop/files/Angled-Hero-Mobile_02168747-e2a4-410d-ba69-f4cd66e540bd.png?v=1789715827&width=160"
14439                      loading="lazy"
14440                      alt=""
14441                      width="76"
14442                      height="76"
14443                    >
14444                  </button><button
14445                    type="button"
14446                    class="snb-pdp__thumb"
14447                    data-snb-thumb
14448                    data-index="7"
14449                    data-img-src="//bokksu.com/cdn/shop/files/Overhead-Hero-_mobile-Header_fcd713ce-6049-4f8
144496-9f85-dc3a854162ae.png?v=1778043728&width=1200"
14450                    data-img-alt="Bokksu Snack Box Subscription"
14451                    tabindex="-1"
14452                    
14453                  >
14454                    <img
14455                      src="//bokksu.com/cdn/shop/files/Overhead-Hero-_mobile-Header_fcd713ce-6049-4f86-9f85-dc3a854162ae.png?v=1778043728&width=160"
14456                      loading="lazy"
14457                      alt=""
14458                      width="76"
14459                      height="76"
14460                    >
14461                  </button><button
14462                    type="button"
14463                    class="snb-pdp__thumb"
14464                    data-snb-thumb
14465                    data-index="8"
14466                    data-img-src="//bokksu.com/cdn/shop/files/page2.jpg?v=1778043607&width=1200"
14467                    data-img-alt="Bokksu Snack Box Subscription"
14468                    tabindex="-1"
14469                    
14470                  >
14471                    <img
14472                      src="//bokksu.com/cdn/shop/files/page2.jpg?v=177804360
144727&width=160"
14473                      loading="lazy"
14474                      alt=""
14475                      width="76"
14476                      height="76"
14477                    >
14478                  </button><button
14479                    type="button"
14480                    class="snb-pdp__thumb"
14481                    data-snb-thumb
14482                    data-index="9"
14483                    data-img-src="//bokksu.com/cdn/shop/files/2603-Sakura-Silk-Lounge-2000x2000-SNB_efd4e2d2-a8d5-416e-aa7f-cf270f76acf6.jpg?v=1777541673&width=1200"
14484                    data-img-alt="Bokksu Snack Box Subscription"
14485                    tabindex="-1"
14486                    
14487                  >
14488                    <img
14489                      src="//bokksu.com/cdn/shop/files/2603-Sakura-Silk-Lounge-2000x2000-SNB_efd4e2d2-a8d5-416e-aa7f-cf270f76acf6.jpg?v=1777541673&width=160"
14490                      loading="lazy"
14491                      alt=""
14492                      width="76"
14493                      height="76"
14494                    >
14495                  </button></div><button type="button" class="snb-pdp__thumb-arrow" data-snb-thumb-next tabindex="-1">
14496                <svg viewBox="0 0 10 6" fill="none" aria-hidden="true">
14497                  <path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
14498                </svg>
14499              </button></div><div class="snb-pdp__main-image" data-snb-main-image><img
14500                src="//bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square.jpg?v=1777541638&width=1200"
14501                loading="lazy"
14502                alt="Bokksu Snack Box Subscription"
14503                width="1200"
14504                height="1200"
14505              ></div>
14506      </div></div><div class="snb-pdp__info">
14507    <p class="snb-pdp__preheader">Choose your plan</p>
14508     
14509          
14510<h2 class="snb-pdp__title">Snack Box Subscription</h2>
14511<div class="snb-pdp__sale-banner"><p>Free gift snacks with 3-, 6-, or 12-month subscriptions!</p></div><div class="snb-pdp__plans" data-snb-plans role="radiogroup" aria-label="Subscription plan length"><div
14512              class="snb-pdp__plan"
14513              data-snb-plan
14514              role="radio"
14515              tabindex="-1"
14516              aria-checked="false"aria-label="12 Months, Best Value, $32.99 per month, Save $84. Includes gifts with purchase: PLUS Grilled Hokkaido Corn: Soy sauce flavor (2 pc) and CACAOCAT Chocolate Dark (2 pc)"
14517              data-base-label="12 Months, Best Value, $32.99 per month, Save $84"
14518              data-promo-label="Promotion: gifts with purchase, PLUS Grilled Hokkaido Corn: Soy sauce flavor (2 pc) and CACAOCAT Chocolate Dark (2 pc)"
14519              data-variant-id="42939935326294"
14520              data-selling-plan-id="2094104662"
14521              data-price="$395.88"
14522              data-compare-price="$479.88"
14523              data-save-text="Save $84"
14524              data-billing-note="Billed annually, cancel anytime."
14525              
14526            >
14527              <div class="snb-pdp__plan-header">
14528                <div class="snb-pdp__plan-left">
14529                  <span class="snb-pdp__plan-name">12 Months</span><span class="snb-pdp__plan-badge">Best Value</span></div>
14530                <div class="snb-pdp__plan-right"><span class="snb-pdp__plan-save">Save $84</span>
14531                    <span class="snb-pdp__plan-divider" aria-hidden="true"></span><span class="snb-pdp__plan-price" aria-hidden="true">$32.99/mo</span>
14532                  <span class="visually-hidden">$32.99 per month</span>
14533                </div>
14534              </div><div class="snb-pdp__promo" data-snb-promo><div class="snb-pdp__promo-image">
14535                      <img
14536                        src="//bokksu.com/cdn/shop/files/bokksu_feb26_15_CACAOCAT_Chocolate_Dark_a.jpg?v=1776857270&width=128"
14537                        loading="lazy"
14538                        alt="gifts with purchase"
14539                        width="64"
14540                        height="64"
14541                      >
14542                    </div><div class="snb-pdp__promo-text">
14543                    <p class="snb-pdp__promo-title">gifts with purchase</p><p class="snb-pdp__promo-desc">PLUS Grilled Hokkaido Corn: Soy sauce flavor (2 pc) and CACAOCAT Chocolate Dark (2 pc)</p></div></div></div><div
14544              class="snb-pdp__plan snb-pdp__plan--active"
14545              data-snb-plan
14546              role="radio"
14547              tabindex="0"
14548              aria-checked="true"aria-label="6 Months, POPULAR, $33.99 per month, Save $36. Includes gifts with purchase: PLUS  Grilled Hokkaido Corn: Soy sauce flavor (2 pc) and CACAOCAT Chocolate Dark (2 pc)"
14549              data-base-label="6 Months, POPULAR, $33.99 per month, Save $36"
14550              data-promo-label="Promotion: gifts with purchase, PLUS  Grilled Hokkaido Corn: Soy sauce flavor (2 pc) and CACAOCAT Chocolate Dark (2 pc)"
14551              data-variant-id="42939934900310"
14552              data-selling-plan-id="2093940822"
14553              data-price="$203.94"
14554              data-compare-price="$239.94"
14555              data-save-text="Save $36"
14556              data-billing-note="Billed every 6 months, cancel anytime."
14557              
14558            >
14559              <div class="snb-pdp__plan-header">
14560                <div class="snb-pdp__plan-left">
14561                  <span class="snb-pdp__plan-name">6 Months</span><span class="snb-pdp__plan-badge">POPULAR</span></div>
14562                <div class="snb-pdp__plan-right"><span class="snb-pdp__plan-save">Save $36</span>
14563                    <span class="snb-pdp__plan-divider" aria-hidden="true"></span><span class="snb-pdp__plan-price" aria-hidden="true">$33.99/mo</span>
14564                  <span class="visually-hidden">$33.99 per month</span>
14565                </div>
14566              </div><div class="snb-pdp__promo" data-snb-promo><div class="snb-pdp__promo-image">
14567                      <img
14568                        src="//bokksu.com/cdn/shop/files/GrilledHokkaidoCornSoysauceflavor_SM2065_00_2000x2000_77c800a9-6316-42e9-a3be-d99018b72fd7.jpg?v=1790831608&width=128"
14569                        loading="lazy"
14570                        alt="gifts with purchase"
14571                        width="64"
14572                        height="64"
14573                      >
14574                    </div><div class="snb-pdp__promo-text">
14575                    <p class="snb-pdp__promo-title">gifts with purchase</p><p class="snb-pdp__promo-desc">PLUS  Grilled Hokkaido Corn: Soy sauce flavor (2 pc) and CACAOCAT Chocolate Dark (2 pc)</p></div></div></div><div
14576              class="snb-pdp__plan"
14577              data-snb-plan
14578              role="radio"
14579              tabindex="-1"
14580              aria-checked="false"aria-label="3 Months, $35.99 per month, Save $12. Includes gifts with purchase: PLUS Grilled Hokkaido Corn: Soy sauce flavor (2 pc) and CACAOCAT Chocolate Dark (2 pc)"
14581              data-base-label="3 Months, $35.99 per month, Save $12"
14582              data-promo-label="Promotion: gifts with purchase, PLUS Grilled Hokkaido Corn: Soy sauce flavor (2 pc) and CACAOCAT Chocolate Dark (2 pc)"
14583              data-variant-id="42939930902614"
14584              data-selling-plan-id="2093842518"
14585              data-price="$107.97"
14586              data-compare-price="$119.97"
14587              data-save-text="Save $12"
14588              data-billing-note="Billed every 3 months, cancel anytime."
14589              
14590            >
14591              <div class="snb-pdp__plan-header">
14592                <div class="snb-pdp__plan-left">
14593                  <span class="snb-pdp__plan-name">3 Months</span></div>
14594                <div class="snb-pdp__plan-right"><span class="snb-pdp__plan-save">Save $12</span>
14595                    <span class="snb-pdp__plan-divider" aria-hidden="true"></span><span class="snb-pdp__plan-price" aria-hidden="true">$35.99/mo</span>
14596                  <span class="visually-hidden">$35.99 per month</span>
14597                </div>
14598              </div><div class="snb-pdp__promo" data-snb-promo><div class="snb-pdp__promo-image">
14599                      <img
14600                        src="//bokksu.com/cdn/shop/files/CACAOCATChocolateDark_00_2000x2000_8e62fa50-4da1-4cb0-8dfa-6d4a0088eabb.jpg?v=1782884927&width=128"
14601                        loading="lazy"
14602                        alt="gifts with purchase"
14603                        width="64"
14604                        height="64"
14605                      >
14606                    </div><div class="snb-pdp__promo-text">
14607                    <p class="snb-pdp__promo-title">gifts with purchase</p><p class="snb-pdp__promo-desc">PLUS Grilled Hokkaido Corn: Soy sauce flavor (2 pc) and CACAOCAT Chocolate Dark (2 pc)</p></div></div></div><div
14608              class="snb-pdp__plan"
14609              data-snb-plan
14610              role="radio"
14611              tabindex="-1"
14612              aria-checked="false"aria-label="1 Month, $39.99 per month. Includes gifts with purchase: Upgrade to a 3, 6, or 12-month plan to receive exclusive gifts."
14613              data-base-label="1 Month, $39.99 per month"
14614              data-promo-label="Promotion: gifts with purchase, Upgrade to a 3, 6, or 12-month plan to receive exclusive gifts."
14615              data-variant-id="42939935850582"
14616              data-selling-plan-id="2093514838"
14617              data-price="$39.99"
14618              data-compare-price=""
14619              data-save-text=""
14620              data-billing-note="Billed monthly, cancel anytime."
14621              
14622            >
14623              <div class="snb-pdp__plan-header">
14624                <div class="snb-pdp__plan-left">
14625                  <span class="snb-pdp__plan-name">1 Month</span></div>
14626                <div class="snb-pdp__plan-right"><span class="snb-pdp__plan-price" aria-hidden="true">$39.99/mo</span>
14627                  <span class="visually-hidden">$39.99 per month</span>
14628                </div>
14629              </div><div class="snb-pdp__promo" data-snb-promo><div class="snb-pdp__promo-image">
14630                      <img
14631                        src="//bokksu.com/cdn/shop/files/ChatGPT-2511_Xmas_Wrapping_3.png?v=1778486027&width=128"
14632                        loading="lazy"
14633                        alt="gifts with purchase"
14634                        width="64"
14635                        height="64"
14636                      >
14637                    </div><div class="snb-pdp__promo-text">
14638                    <p class="snb-pdp__promo-title">gifts with purchase</p><p class="snb-pdp__promo-desc">Upgrade to a 3, 6, or 12-month plan to receive exclusive gifts.</p></div></div></div></div><div class="snb-pdp__addons" data-snb-addons><div
14639              class="snb-pdp__addon"
14640              data-snb-addon
14641              
14642            ><label class="snb-pdp__addon-hit">
14643                <input
14644                  type="checkbox"
14645                  class="visually-hidden"
14646                  data-snb-addon-input
14647                  data-variant-id="50541659979862"
14648                  data-price-cents="1000"
14649                  data-addon-title="Artisan Coffee Pairing"
14650                  aria-label="Add Artisan Coffee Pairing for $10.00, one-time add-on"
14651                  
14652                >
14653              </label><span class="snb-pdp__addon-image" aria-hidden="true">
14654                  <img
14655                    src="//bokksu.com/cdn/shop/files/SNB26108399-edit.jpg?v=1790675934&width=144"
14656                    loading="lazy"
14657                    alt=""
14658                    width="72"
14659                    height="72"
14660                  >
14661                </span><span class="snb-pdp__addon-eyebrow"><b>HAND-PICKED FOR YOUR SNACKS</b></span><span class="snb-pdp__addon-title">
14662                <button
14663                  type="button"
14664                  class="snb-pdp__addon-info"
14665                  data-snb-addon-info="snb-addon-modal-addon_C7MpMU"
14666                  aria-haspopup="dialog"
14667                  aria-label="More about Artisan Coffee Pairing"
14668                >
14669                  <svg viewBox="0 0 20 20" aria-hidden="true" stroke-width="1.5" stroke-linecap="round">
14670                    <circle cx="10" cy="10" r="8.25"/>
14671                    <path d="M10 9v5"/>
14672                    <circle cx="10" cy="6.25" r="0.4" fill="currentColor"/>
14673                  </svg>
14674                </button>
14675                <span>Artisan Coffee Pairing</span>
14676              </span><span class="snb-pdp__addon-desc"><i>Ships with your first box · </i> <button type="button" class="snb-pdp__addon-learn" data-snb-addon-info="snb-addon-modal-addon_C7MpMU" aria-haspopup="dialog"><i>Learn more</i></button></span><span class="snb-pdp__addon-price" aria-hidden="true">
14677                +$10.00
14678<span class="snb-pdp__addon-price-note">one-time add-on</span></span>
14679              <span class="snb-pdp__addon-check" aria-hidden="true">
14680                <svg viewBox="0 0 12 12" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 6.5L4.5 9L10 3"/></svg>
14681              </span>
14682            </div><template data-snb-addon-modal="snb-addon-modal-addon_C7MpMU">
14683              <div class="snb-pdp-modal" role="dialog" aria-modal="true" aria-labelledby="snb-addon-modal-addon_C7MpMU-title">
14684                <div class="snb-pdp-modal__backdrop" data-snb-modal-close></div>
14685                <div class="snb-pdp-modal__box">
14686                  <button type="button" class="snb-pdp-modal__close" data-snb-modal-close aria-label="Close">
14687                    <svg viewBox="0 0 20 20" aria-hidden="true" stroke-width="1.5" stroke-linecap="round"><path d="M15 5L5 15M5 5l10 10"/></svg>
14688                  </button>
14689                  <div class="snb-pdp-modal__media"><div class="snb-pdp-modal__slide snb-pdp-modal__slide--active" data-snb-modal-slide="0">
14690                        <img src="//bokksu.com/cdn/shop/files/SNB26108399-edit.jpg?v=1790675934&width=1200" alt="Artisan Coffee Pairing" loading="lazy" width="1200" height="1200">
14691                      </div><div class="snb-pdp-modal__slide" data-snb-modal-slide="1">
14692                        <img src="//bokksu.com/cdn/shop/files/SNB26108413_db9f5199-6d51-4eba-8f0c-b72dbdc2253b.jpg?v=1790581651&width=1200" alt="Artisan Coffee Pairing" loading="lazy" width="1200" height="1200">
14693                      </div><div class="snb-pdp-modal__slide" data-snb-modal-slide="2">
14694                        <img src="//bokksu.com/cdn/shop/files/SNB26108396-edit.jpg?v=1790675980&width=1200" alt="Artisan Coffee Pairing" loading="lazy" width="1200" height="1200">
14695                      </div><div class="snb-pdp-modal__slide" data-snb-modal-slide="3">
14696                        <img src="//bokksu.com/cdn/shop/files/SNB26108411_5defec55-b362-4bbd-8121-6b5dcce13d5e.jpg?v=1790581650&width=1200" alt="Artisan Coffee Pairing" loading="lazy" width="1200" height="1200">
14697                      </div><div class="snb-pdp-modal__thumbs" role="tablist" aria-label="Product images"><button type="button" class="snb-pdp-modal__thumb snb-pdp-modal__thumb--active" role="tab" aria-selected="true" data-snb-modal-thumb="0" aria-label="Image 1">
14698                            <img src="//bokksu.com/cdn/shop/files/SNB26108399-edit.jpg?v=1790675934&width=200" alt="" loading="lazy" width="96" height="96">
14699                          </button><button type="button" class="snb-pdp-modal__thumb" role="tab" aria-selected="false" data-snb-modal-thumb="1" aria-label="Image 2">
14700                            <img src="//bokksu.com/cdn/shop/files/SNB26108413_db9f5199-6d51-4eba-8f0c-b72dbdc2253b.jpg?v=1790581651&width=200" alt="" loading="lazy" width="96" height="96">
14701                          </button><button type="button" class="snb-pdp-modal__thumb" role="tab" aria-selected="false" data-snb-modal-thumb="2" aria-label="Image 3">
14702                            <img src="//bokksu.com/cdn/shop/files/SNB26108396-edit.jpg?v=1790675980&width=200" alt="" loading="lazy" width="96" height="96">
14703                          </button><button type="button" class="snb-pdp-modal__thumb" role="tab" aria-selected="false" data-snb-modal-thumb="3" aria-label="Image 4">
14704                            <img src="//bokksu.com/cdn/shop/files/SNB26108411_5defec55-b362-4bbd-8121-6b5dcce13d5e.jpg?v=1790581650&width=200" alt="" loading="lazy" width="96" height="96">
14705                          </button></div></div>
14706                  <div class="snb-pdp-modal__content"><p class="snb-pdp-modal__eyebrow"><b>HAND-PICKED FOR YOUR SNACKS</b></p><h2 class="snb-pdp-modal__title" id="snb-addon-modal-addon_C7MpMU-title">Artisan Coffee Pairing</h2><div class="snb-pdp-modal__desc"><p><span style="color: rgb(0, 0, 0);">Bring a little Japanese coffee culture to your Bokksu Snack Box.</span></p>
14707<p><span style="color: rgb(0, 0, 0);">Our Artisan Coffee Pairing brings you three single-serve pour-overs of Calm Orange, a specialty coffee from Japanese roaster Lambda Coffee Club. Each one comes in an origami-like pour-over format designed to unfold right over your mug. There's no grinder or coffee machine needed. All you need is hot water, a cup, and a moment of peace with a delicious Japanese coffee.</span></p>
14708<p><span style="color: rgb(0, 0, 0);">The roaster and flavor are named up front, so you know exactly what you're brewing.</span></p>
14709<p><span style="color: rgb(0, 0, 0);"><strong>What's Included</strong></span></p>
14710<ul>
14711<li style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 0);">3 single-serve pour-overs of Calm Orange (the same coffee in each
14711)</span></li>
14712<li style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 0);">Fold-out pour-over format</span></li>
14713<li style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 0);">Roaster and flavor notes</span></li>
14714<li style="color: rgb(0, 0, 0);">
14715<span style="color: rgb(0, 0, 0);">Packed inside your Snack Box, so everything arrives together</span><br>
14716</li>
14717</ul>
14718<p><span style="color: rgb(0, 0, 0);"><strong>Why Add Coffee?</strong></span></p>
14719<p><span style="color: rgb(0, 0, 0);">We wanted to bring a new ritual to your Bokksu Snack Box. Turn your next delivery into a small coffee break or a slower start to your morning, with something new to brew, taste, and discover.</span></p>
14720<p><span style="color: rgb(0, 0, 0);"><strong>Japanese Coffee, Prepared with Japanese Simplicity</strong></span></p>
14721<p><span style="color: rgb(0, 0, 0);">The single-serve pour-over unfolds directly over your mug. All you need is hot water and a cup, with no special equipment required.</span></p>
14722<p><span style="color: rgb(0, 0, 0);"><strong>Know What You're Drinking</strong></span></p>
14723<p><span style="color: rgb(0, 0, 0);">Like all our curations, we tell you the story behind each cup: who roasted it, what's in the blend, and how it tastes.</span></p>
14724<p><span style="color: rgb(0, 0, 0);"><strong>Calm Orange</strong> <em>A Moment of Calm in Every Cup</em></span></p>
14725<p><span style="color: rgb(0, 0, 0);">Bright, orange-like aromas meet delicate chamomile notes and a smooth, chocolatey richness. This medium-dark roast blends beans from Peru and Tanzania for a cup that's bright, smooth, and well balanced. Rich and satisfying, yet pleasantly fresh, Calm Orange is the kind of coffee you'll find yourself reaching for again and again. It's a comforting blend made to bring a little calm to your everyday afternoon.</span></p>
14726<ul>
14727<li style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 0);">Flavor Notes: Orange / Chamomile / Chocolate</span></li>
14728<li style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 0);">Origin: Peru / Tanzania</span></li>
14729<li style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 0);">Roast: Medium Dark</span></li>
14730<li style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 0);">Roaster: Lambda Coffee Club, Japan</span></li>
14731<li style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 0);">Format: Single-serve pour-over bag, 3 per pack</span></li>
14732</ul>
14733<p><span style="color: rgb(0, 0, 0);"><strong>How to Brew</strong></span></p>
14734<ol>
14735<li data-list="ordered" style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 0);">Tear open the pack and unfold the pour-over.</span></li>
14736<li data-list="ordered" style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 0);">Hook it over the rim of your mug.</span></li>
14737<li data-list="ordered" style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 0);">Slowly pour hot water over the grounds, following the guide on the pack.</span></li>
14738<li data-list="ordered" style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 0);">Lift it out and enjoy.</span></li>
14739</ol>
14740<p><span style="color: rgb(0, 0, 0);"><strong>How It Works</strong></span></p>
14741<ul>
14742<li style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 0);">This is a one-time add-on, not a subscription. You'll only receive it if you add it.</span></li>
14743<li style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 0);">New subscribers: add it at checkout and it arrives in your first box.</span></li>
14744<li style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 0);">Current subscribers: add it from your account and it ships in your next box.</span></li>
14745<li style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 0);">Limited release, available while supplies last.</span></li>
14746</ul>
14747<p><span style="color: rgb(0, 0, 0);"><strong>Add Coffee to Your <a href="https://bokksu.com/products/classic-bokksu" rel="noopener noreferrer" style="color: rgb(0, 0, 0);" target="_blank">Bokksu Snack Box.</a></strong></span></p></div></div>
14748                </div>
14749              </div>
14750            </template></div><div class="snb-pdp__checkout">
14751      <div class="snb-pdp__pricing">
14752        <div class="snb-pdp__pricing-left">
14753          <span class="snb-pdp__pricing-label">Total:</span>
14754          <span class="snb-pdp__pricing-save" data-snb-pricing-save>
14755            Save $36
14756          </span>
14757        </div>
14758        <div class="snb-pdp__pricing-right">
14759          <div class="snb-pdp__pricing-row">
14760            <span class="snb-pdp__price" data-snb-total-price>
14761              $203.94
14762            </span>
14763            <span class="snb-pdp__compare-price" data-snb-compare-price>
14764              $239.94
14765            </span>
14766          </div>
14767          <span class="snb-pdp__billing-note" data-snb-billing-note>
14768            Billed every 6 months, cancel anytime.
14769          </span>
14770        </div>
14771      </div>
14772
14773      <div class="snb-pdp__form">
14774        <button
14775          type="button"
14776          class="btn btn-custom btn-orange-bg snb-pdp__cta"
14777          data-snb-add-to-cart
14778          aria-busy="false"
14779          
14780        >
14781          Select this Plan
14782        </button>
14783        <div class="visually-hidden" data-snb-status aria-live="polite" aria-atomic="true"></div>
14784      </div>
14785    </div><hr class="snb-pdp__divider">
14786<span class="snb-pdp__disclaimer">Total plus shipping fee calculated at checkout. All prices in USD </span><div class="snb-pdp__usps"><div class="snb-pdp__usp" ><div class="snb-pdp__usp-icon">
14787                <img
14788                  src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_ab9fda4723b448e6854df90186c75da0.png?v=1773117736&width=50"
14789                  loading="lazy"
14790                  alt=""
14791                  width="25"
14792                  height="25"
14793                >
14794              </div><span class="snb-pdp__usp-text">20+ Japan-exclusive snacks</span>
14795          </div><div class="snb-pdp__usp" ><div class="snb-pdp__usp-icon">
14796                <img
14797                  src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_fe8ec12a8ae547f39c71e48cd2191849.png?v=1773117801&width=50"
14798                  loading="lazy"
14799                  alt=""
14800                  width="25"
14801                  height="25"
14802                >
14803              </div><span class="snb-pdp__usp-text">20 to 24-page Culture Guide</span>
14804          </div><div class="snb-pdp__usp" ><div class="snb-pdp__usp-icon">
14805                <img
14806                  src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_b30ec418f2d3472bb3ad400b0d6b69ad.png?v=1773117735&width=50"
14807                  loading="lazy"
14808                  alt=""
14809                  width="25"
14810                  height="25"
14811                >
14812              </div><span class="snb-pdp__usp-text">New themed curation every month</span>
14813          </div><div class="snb-pdp__usp" ><div class="snb-pdp__usp-icon">
14814                <img
14815                  src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_d4b28eded79a47828bae28b497f49244.png?v=1773117736&width=50"
14816                  loading="lazy"
14817                  alt=""
14818                  width="25"
14819                  height="25"
14820                >
14821              </div><span class="snb-pdp__usp-text">Support Japanese family businesses</span>
14822          </div><div class="snb-pdp__usp" ><div class="snb-pdp__usp-icon">
14823                <img
14824                  src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_38de99aead68404aa5c8fc91b1d74d8d.png?v=1773117736&width=50"
14825                  loading="lazy"
14826                  alt=""
14827                  width="25"
14828                  height="25"
14829                >
14830              </div><span class="snb-pdp__usp-text">Great balance of sweet & savory flavors</span>
14831          </div><div class="snb-pdp__usp" ><div class="snb-pdp__usp-icon">
14832                <img
14833                  src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_d4b28eded79a47828bae28b497f49244_1.png?v=1773117736&width=50"
14834                  loading="lazy"
14835                  alt=""
14836                  width="25"
14837                  height="25"
14838                >
14839              </div><span class="snb-pdp__usp-text">Limited-Time Bonus: Special Gifts added to your new Subscription (3M/6M/12M)</span>
14840          </div></div><div class="snb-pdp__description"><h2 class="snb-pdp__description-heading">Experience Japan From Home</h2><div class="snb-pdp__description-text"><p>Bokksu delivers to your door the experience of tasting authentic Japanese snacks, candies, and teas sourced directly from centuries-old family makers. Every box you purchase supports these family-run business in Japan and helps keep their traditions alive.</p><p>Details:</p><ul><li><strong>All new subscribers</strong>, will receive our Seasons of Japan box.</li><li>The box includes&nbsp;<strong>20–22 Japanese snacks, sweets, and a tea</strong>, expertly curated in celebration of Japan's four seasons. You’ll also find a&nbsp;<strong>24-page Culture Guide&nbsp;</strong>detailing each product’s origin, flavor notes, and common allergens.</li><li>New 3-, 6-, and 12-month subscribers will receive Grilled Hokkaido Corn: Soy sauce flavor (2 pc) and CACAOCAT Chocolate Dark (2 pc).</li><li>Current 1-month subscribers may upgrade their plan and current 3-, 6-, and annual subscribers may extend their plan to receive free exclusive gifts by contacting&nbsp;<a href="mailto:[email protected]">[email protected]</a>.</li></ul></div></div></div>
14841</section>
14842
14843<script>
14844  (function() {
14845    var section = document.querySelector('[data-section-id="template--17749318303830__snb_subs_panel_3rfYyF"]')
14846    if (!section) return
14847
14848    function initSection() {
14849      var plans = section.querySelectorAll('[data-snb-plan]')
14850      var totalPrice = section.querySelector('[data-snb-total-price]')
14851      var comparePrice = section.querySelector('[data-snb-compare-price]')
14852      var pricingSave = section.querySelector('[data-snb-pricing-save]')
14853      var billingNote = section.querySelector('[data-snb-billing-note]')
14854      var addToCartBtn = section.querySelector('[data-snb-add-to-cart]')
14855      var statusRegion = section.querySelector('[data-snb-status]')
14856      var activePromoWrap = section.querySelector('[data-snb-active-promo]')
14857      var activePromoText = section.querySelector('[data-snb-active-promo-text]')
14858      var activePromoCopy = section.querySelector('[data-snb-active-promo-copy]')
14859      var activePromoCodeText = section.querySelector('[data-snb-active-promo-code-text]')
14860      var thumbs = section.querySelectorAll('[data-snb-thumb]')
14861      var mainImage = section.querySelector('[data-snb-main-image]')
14862      var thumbNextBtn = section.querySelector('[data-snb-thumb-next]')
14863      var thumbScroller = section.querySelector('[data-snb-thumbs]')
14864
14865      // Lazy load fade-in
14866      function handleImageLoad(img) {
14867        if (img.complete && img.naturalWidth > 0) {
14868          img.classList.add('snb-pdp--loaded')
14869        } else {
14870          img.addEventListener('load', function() {
14871            img.classList.add('snb-pdp--loaded')
14872          })
14873        }
14874      }
14875
14876      section.querySelectorAll('.snb-pdp__carousel-slide img, .snb-pdp__main-image img').forEach(handleImageLoad)
14877
14878    // Track active plan variant + selling plan
14879    var activePlan = {
14880      variantId: '',
14881      sellingPlanId: ''
14882    }
14883
14884    function setActivePlan(planEl) {
14885      activePlan.variantId = planEl.getAttribute('data-variant-id') || ''
14886      activePlan.sellingPlanId = planEl.getAttribute('data-selling-plan-id') || ''
14887    }
14888
14889    // SHO-325: add-on pairings ride along with the selected plan
14890    var addonInputs = section.querySelectorAll('[data-snb-addon-input]')
14891    var planPriceText = totalPrice ? totalPrice.textContent.trim() : ''
14892
14893    function checkedAddons() {
14894      var out = []
14895      addonInputs.forEach(function(input) {
14896        var id = parseInt(input.getAttribute('data-variant-id'), 10)
14897        if (input.checked && id) out.push(input)
14898      })
14899      return out
14900    }
14901
14902    function renderTotal() {
14903      if (!totalPrice || !planPriceText) return
14904      var extraCents = 0
14905      checkedAddons().forEach(function(input) {
14906        extraCents += parseInt(input.getAttribute('data-price-cents'), 10) || 0
14907      })
14908      if (!extraCents) {
14909        totalPrice.textContent = planPriceText
14910        return
14911      }
14912      var base = parseFloat(planPriceText.replace(/[^0-9.]/g, ''))
14913      if (isNaN(base)) return
14914      var prefix = (planPriceText.match(/^[^0-9]*/) || [''])[0]
14915      totalPrice.textContent = prefix + (base + extraCents / 100).toFixed(2)
14916    }
14917
14918    addonInputs.forEach(function(input) {
14919      input.addEventListener('change', function() {
14920        var card = input.closest('[data-snb-addon]')
14921        if (card) card.classList.toggle('snb-pdp__addon--checked', input.checked)
14922        renderTotal()
14923        var title = input.getAttribute('data-addon-title') || 'Add-on'
14924        announceStatus(input.checked ? title + ' added to your order' : title + ' removed from your order')
14925      })
14926    })
14927
14928    renderTotal()
14929
14930    // SHO-325: add-on details modal (template cloned to <body> so section stacking can't clip it)
14931    var modalHost = null
14932    var openModal = null
14933    var modalTrigger = null
14934
14935    function trapFocus(e, modal) {
14936      var focusable = modal.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')
14937      if (!focusable.length) return
14938      var first = focusable[0]
14939      var last = focusable[focusable.length - 1]
14940      if (e.shiftKey && document.activeElement === first) {
14941        e.preventDefault()
14942        last.focus()
14943      } else if (!e.shiftKey && document.activeElement === last) {
14944        e.preventDefault()
14945        first.focus()
14946      }
14947    }
14948
14949    function closeAddonModal() {
14950      if (!openModal) return
14951      var modal = openModal
14952      openModal = null
14953      modal.classList.remove('snb-pdp-modal--open')
14954      document.body.style.overflow = ''
14955      setTimeout(function() {
14956        if (modal.parentNode) modal.parentNode.removeChild(modal)
14957      }, 250)
14958      if (modalTrigger) modalTrigger.focus()
14959      modalTrigger = null
14960    }
14961
14962    function showModalSlide(modal, index) {
14963      modal.querySelectorAll('[data-snb-modal-slide]').forEach(function(slide) {
14964        slide.classList.toggle('snb-pdp-modal__slide--active', slide.getAttribute('data-snb-modal-slide') === String(index))
14965      })
14966      modal.querySelectorAll('[data-snb-modal-thumb]').forEach(function(thumb) {
14967        var active = thumb.getAttribute('data-snb-modal-thumb') === String(index)
14968        thumb.classList.toggle('snb-pdp-modal__thumb--active', active)
14969        thumb.setAttribute('aria-selected', active ? 'true' : 'false')
14970      })
14971    }
14972
14973    function openAddonModal(id, trigger) {
14974      var template = section.querySelector('template[data-snb-addon-modal="' + id + '"]')
14975      if (!template) return
14976      closeAddonModal()
14977      if (!modalHost) {
14978        modalHost = document.createElement('div')
14979        modalHost.setAttribute('data-snb-modal-host', '')
14980        document.body.appendChild(modalHost)
14981      }
14982      modalHost.innerHTML = ''
14983      modalHost.appendChild(template.content.cloneNode(true))
14984      var modal = modalHost.firstElementChild
14985      if (!modal) return
14986      openModal = modal
14987      modalTrigger = trigger
14988      document.body.style.overflow = 'hidden'
14989
14990      modal.addEventListener('click', function(e) {
14991        if (e.target.closest('[data-snb-modal-close]')) {
14992          closeAddonModal()
14993          return
14994        }
14995        var thumb = e.target.closest('[data-snb-modal-thumb]')
14996        if (thumb) showModalSlide(modal, thumb.getAttribute('data-snb-modal-thumb'))
14997      })
14998      modal.addEventListener('keydown', function(e) {
14999        if (e.key === 'Escape') {
15000          e.preventDefault()
15001          closeAddonModal()
15002        } else if (e.key === 'Tab') {
15003          trapFocus(e, modal)
15004        }
15005      })
15006
15007      requestAnimationFrame(function() {
15008        modal.classList.add('snb-pdp-modal--open')
15009        var closeBtn = modal.querySelector('.snb-pdp-modal__close')
15010        if (closeBtn) closeBtn.focus()
15011      })
15012    }
15013
15014    section.addEventListener('click', function(e) {
15015      var btn = e.target.closest('[data-snb-addon-info]')
15016      if (!btn) return
15017      e.preventDefault()
15018      openAddonModal(btn.getAttribute('data-snb-addon-info'), btn)
15019    })
15020
15021    function selectPlan(plan) {
15022      plans.forEach(function(p) {
15023        p.classList.remove('snb-pdp__plan--active')
15024        p.setAttribute('aria-checked', 'false')
15025        p.setAttribute('tabindex', '-1')
15026        /* Reset to base label (no promo) for unselected plans */
15027        var baseLabel = p.getAttribute('data-base-label')
15028        if (baseLabel) p.setAttribute('aria-label', baseLabel)
15029      })
15030      plan.classList.add('snb-pdp__plan--active')
15031      plan.setAttribute('aria-checked', 'true')
15032      plan.setAttribute('tabindex', '0')
15033      /* Add promo to aria-label only for the selected plan */
15034      var baseLabel = plan.getAttribute('data-base-label') || ''
15035      var promoLabel = plan.getAttribute('data-promo-label') || ''
15036      plan.setAttribute('aria-label', promoLabel ? baseLabel + ', ' + promoLabel : baseLabel)
15037      plan.focus()
15038      setActivePlan(plan)
15039
15040      var price = plan.getAttribute('data-price')
15041      var compare = plan.getAttribute('data-compare-price')
15042      var save = plan.getAttribute('data-save-text')
15043      var note = plan.getAttribute('data-billing-note')
15044
15045      if (totalPrice && price) {
15046        planPriceText = price
15047        renderTotal()
15048      }
15049      if (comparePrice) {
15050        comparePrice.textContent = compare || ''
15051        comparePrice.style.display = compare ? '' : 'none'
15052      }
15053      if (pricingSave) {
15054        pricingSave.textContent = save || ''
15055        pricingSave.style.display = save ? '' : 'none'
15056      }
15057      if (billingNote && note) billingNote.textContent = note
15058
15059      /* Update accessible promo section outside radiogroup */
15060      var promo = plan.querySelector('[data-snb-promo]')
15061      if (promo && activePromoWrap) {
15062        var promoTitle = promo.querySelector('.snb-pdp__promo-title')
15063        var promoDesc = promo.querySelector('.snb-pdp__promo-desc')
15064        var promoCodeBtn = plan.querySelector('[data-snb-copy-code]')
15065        var promoMsg = ''
15066        if (promoTitle) promoMsg += promoTitle.textContent
15067        if (promoDesc) promoMsg += '. ' + promoDesc.textContent
15068        if (activePromoText) activePromoText.textContent = promoMsg
15069        activePromoWrap.style.display = ''
15070        if (promoCodeBtn && activePromoCopy) {
15071          var code = promoCodeBtn.getAttribute('data-snb-copy-code')
15072          activePromoCopy.setAttribute('aria-label', 'Copy discount code ' + code)
15073          activePromoCopy.setAttribute('data-snb-copy-code', code)
15074          if (activePromoCodeText) activePromoCodeText.textContent = code
15075          activePromoCopy.style.display = ''
15076        } else if (activePromoCopy) {
15077          activePromoCopy.style.display = 'none'
15078        }
15079      } else if (activePromoWrap) {
15080        activePromoWrap.style.display = 'none'
15081      }
15082    }
15083
15084    // Init from first active plan — add promo to its label
15085    var firstActive = section.querySelector('.snb-pdp__plan--active')
15086    if (firstActive) {
15087      setActivePlan(firstActive)
15088      var baseLabel = firstActive.getAttribute('data-base-label') || ''
15089      var promoLabel = firstActive.getAttribute('data-promo-label') || ''
15090      if (promoLabel) firstActive.setAttribute('aria-label', baseLabel + ', ' + promoLabel)
15091      /* Also populate the accessible promo area */
15092      var promo = firstActive.querySelector('[data-snb-promo]')
15093      if (promo && activePromoWrap) {
15094        var pt = promo.querySelector('.snb-pdp__promo-title')
15095        var pd = promo.querySelector('.snb-pdp__promo-desc')
15096        var pc = firstActive.querySelector('[data-snb-copy-code]')
15097        if (pt && activePromoText) activePromoText.textContent = pt.textContent + (pd ? '. ' + pd.textContent : '')
15098        activePromoWrap.style.display = ''
15099        if (pc && activePromoCopy) {
15100          var code = pc.getAttribute('data-snb-copy-code')
15101          activePromoCopy.setAttribute('aria-label', 'Copy discount code ' + code)
15102          activePromoCopy.setAttribute('data-snb-copy-code', code)
15103          if (activePromoCodeText) activePromoCodeText.textContent = code
15104          activePromoCopy.style.display = ''
15105        }
15106      }
15107    }
15108
15109    // Plan selection — click
15110    plans.forEach(function(plan) {
15111      plan.addEventListener('click', function() {
15112        selectPlan(plan)
15113      })
15114    })
15115
15116    // Plan selection — keyboard (arrow keys + space/enter for radiogroup)
15117    var plansContainer = section.querySelector('[data-snb-plans]')
15118    if (plansContainer) {
15119      plansContainer.addEventListener('keydown', function(e) {
15120        var planArray = Array.prototype.slice.call(plans)
15121        var currentIndex = planArray.indexOf(document.activeElement)
15122        if (currentIndex === -1) return
15123
15124        var nextIndex = -1
15125        if (e.key === 'ArrowDown' || e.key === 'ArrowRight') {
15126          e.preventDefault()
15127          nextIndex = (currentIndex + 1) % planArray.length
15128        } else if (e.key === 'ArrowUp' || e.key === 'ArrowLeft') {
15129          e.preventDefault()
15130          nextIndex = (currentIndex - 1 + planArray.length) % planArray.length
15131        } else if (e.key === ' ' || e.key === 'Enter') {
15132          e.preventDefault()
15133          selectPlan(planArray[currentIndex])
15134          return
15135        }
15136
15137        if (nextIndex !== -1) {
15138          selectPlan(planArray[nextIndex])
15139        }
15140      })
15141    }
15142
15143    // Announce status to screen readers
15144    function announceStatus(message) {
15145      if (statusRegion) statusRegion.textContent = message
15146    }
15147
15148    // AJAX Add to Cart
15149    if (addToCartBtn) {
15150      addToCartBtn.addEventListener('click', function() {
15151        if (addToCartBtn.disabled) return
15152        if (!activePlan.variantId) return
15153
15154        var originalText = addToCartBtn.textContent
15155        addToCartBtn.disabled = true
15156        addToCartBtn.setAttribute('aria-busy', 'true')
15157        addToCartBtn.textContent = 'Adding...'
15158        announceStatus('Adding item to cart')
15159
15160        var body = {
15161          items: [{
15162            id: parseInt(activePlan.variantId, 10),
15163            quantity: 1
15164          }]
15165        }
15166
15167        if (activePlan.sellingPlanId) {
15168          body.items[0].selling_plan = parseInt(activePlan.sellingPlanId, 10)
15169        }
15170
15171        // SHO-325: add-ons only ever enter the cart in the same request as the plan
15172        checkedAddons().forEach(function(input) {
15173          body.items.push({
15174            id: parseInt(input.getAttribute('data-variant-id'), 10),
15175            quantity: 1
15176          })
15177        })
15178
15179        fetch('/cart/add.js', {
15180          method: 'POST',
15181          body: JSON.stringify(body),
15182          credentials: 'same-origin',
15183          headers: {
15184            'Content-Type': 'application/json'
15185          }
15186        })
15187          .then(function(response) {
15188            return response.json()
15189          })
15190          .then(function(data) {
15191            if (data.status && data.status === 422) {
15192              var errMsg = data.description || 'Error adding to cart'
15193              addToCartBtn.textContent = errMsg
15194              announceStatus(errMsg)
15195              addToCartBtn.setAttribute('aria-busy', 'false')
15196              setTimeout(function() {
15197                addToCartBtn.textContent = originalText
15198                addToCartBtn.disabled = false
15199              }, 3000)
15200              return
15201            }
15202
15203            addToCartBtn.textContent = 'Added!'
15204            addToCartBtn.setAttribute('aria-busy', 'false')
15205            announceStatus(body.items.length > 1 ? 'Items added to cart' : 'Item added to cart')
15206
15207            // Dispatch theme event to open cart drawer
15208            document.dispatchEvent(
15209              new CustomEvent('ajaxProduct:added', {
15210                detail: { product: data, addToCartBtn: addToCartBtn }
15211              })
15212            )
15213
15214            setTimeout(function() {
15215              addToCartBtn.textContent = originalText
15216              addToCartBtn.disabled = false
15217            }, 2000)
15218          })
15219          .catch(function() {
15220            addToCartBtn.textContent = 'Error - try again'
15221            addToCartBtn.setAttribute('aria-busy', 'false')
15222            announceStatus('Error adding to cart, please try again')
15223            setTimeout(function() {
15224              addToCartBtn.textContent = originalText
15225              addToCartBtn.disabled = false
15226            }, 3000)
15227          })
15228      })
15229    }
15230
15231    // Mobile carousel with dots
15232    var carousel = section.querySelector('[data-snb-carousel]')
15233    var dots = section.querySelectorAll('[data-snb-dot]')
15234    var scrollTimer = null
15235
15236    if (carousel && dots.length > 0) {
15237      carousel.addEventListener('scroll', function() {
15238        if (scrollTimer) clearTimeout(scrollTimer)
15239        scrollTimer = setTimeout(function() {
15240          var slideWidth = carousel.firstElementChild
15241            ? carousel.firstElementChild.offsetWidth
15242            : 1
15243          var activeIndex = Math.round(carousel.scrollLeft / slideWidth)
15244          dots.forEach(function(d, i) {
15245            d.classList.toggle('snb-pdp__dot--active', i === activeIndex)
15246            d.setAttribute('aria-selected', i === activeIndex ? 'true' : 'false')
15247          })
15248        }, 50)
15249      })
15250
15251      dots.forEach(function(dot) {
15252        dot.addEventListener('click', function() {
15253          var index = parseInt(dot.getAttribute('data-snb-dot'), 10)
15254          var slideWidth = carousel.firstElementChild
15255            ? carousel.firstElementChild.offsetWidth
15256            : 0
15257          carousel.scrollTo({ left: slideWidth * index, behavior: 'smooth' })
15258        })
15259      })
15260    }
15261
15262    // Desktop thumbnail gallery
15263    var useCustomImages = true
15264    thumbs.forEach(function(thumb) {
15265      thumb.addEventListener('click', function() {
15266        var index = parseInt(thumb.getAttribute('data-index'), 10)
15267        thumbs.forEach(function(t) { t.classList.remove('snb-pdp__thumb--active') })
15268        thumb.classList.add('snb-pdp__thumb--active')
15269
15270        if (mainImage) {
15271          var img = mainImage.querySelector('img')
15272          if (img) {
15273            img.classList.remove('snb-pdp--loaded')
15274            if (useCustomImages && thumb.hasAttribute('data-img-src')) {
15275              img.src = thumb.getAttribute('data-img-src')
15276              img.alt = thumb.getAttribute('data-img-alt') || ''
15277            } else {
15278              var media = [{"alt":null,"id":26901055242326,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1200,"width":1200,"src":"\/\/bokksu.com\/cdn\/shop\/files\/BokksuSnackBox_OnTan_de3cef1c-71c2-4173-bcaf-1c138eabfe3f.jpg?v=1751004849"},"aspect_ratio":1.0,"height":1200,"media_type":"image","src":"\/\/bokksu.com\/cdn\/shop\/files\/BokksuSnackBox_OnTan_de3cef1c-71c2-4173-bcaf-1c138eabfe3f.jpg?v=1751004849","width":1200},{"alt":null,"id":26901092171862,"position":2,"preview_image":{"aspect_ratio":1.0,"height":1200,"width":1200,"src":"\/\/bokksu.com\/cdn\/shop\/files\/Bokksu_SnackBox_Box_Hero_012_Square_9cd71666-ba05-4ff8-a592-0e8536cc2a66.jpg?v=1751004848"},"aspect_ratio":1.0,"height":1200,"media_type":"image","src":"\/\/bokksu.com\/cdn\/shop\/files\/Bokksu_SnackBox_Box_Hero_012_Square_9cd71666-ba05-4ff8-a592-0e8536cc2a66.jpg?v=1751004848","width":1200},{"alt":null,"id":26901086928982,"position":3,"preview_image":{"aspect_ratio":1.0,"height":1200,"width":1200,"src":"\/\/bokksu.com\/cdn\/shop\/files\/Bokksu_SnackBox_Box_Hero_001_Square_320abcd0-7c60-4c01-a47e-22a2bd6da15a.jpg?v=1751004852"},"aspect_ratio":1.0,"height":1200,"media_type":"image","src":"\/\/bokksu.com\/cdn\/shop\/files\/Bokksu_SnackBox_Box_Hero_001_Square_320abcd0-7c60-4c01-a47e-22a2bd6da15a.jpg?v=1751004852","
15278width":1200},{"alt":null,"id":26901110521942,"position":4,"preview_image":{"aspect_ratio":1.0,"height":1200,"width":1200,"src":"\/\/bokksu.com\/cdn\/shop\/files\/Bokksu_SnackBox_Lifestyle_4_Square_59beb8fe-9490-45c4-8e12-bb1b742918e1.jpg?v=1751004854"},"aspect_ratio":1.0,"height":1200,"media_type":"image","src":"\/\/bokksu.com\/cdn\/shop\/files\/Bokksu_SnackBox_Lifestyle_4_Square_59beb8fe-9490-45c4-8e12-bb1b742918e1.jpg?v=1751004854","width":1200},{"alt":null,"id":26901104525398,"position":5,"preview_image":{"aspect_ratio":1.0,"height":1200,"width":1200,"src":"\/\/bokksu.com\/cdn\/shop\/files\/Bokksu_SnackBox_Lifestyle_17_Square2_9a30e8d3-90ad-45a6-ba36-d855bd57a60a.jpg?v=1751004854"},"aspect_ratio":1.0,"height":1200,"media_type":"image","src":"\/\/bokksu.com\/cdn\/shop\/files\/Bokksu_SnackBox_Lifestyle_17_Square2_9a30e8d3-90ad-45a6-ba36-d855bd57a60a.jpg?v=1751004854","width":1200},{"alt":null,"id":26901099937878,"position":6,"preview_image":{"aspect_ratio":1.0,"height":1200,"width":1200,"src":"\/\/bokksu.com\/cdn\/shop\/files\/Bokksu_SnackBox_Lifestyle_11_Square_7d407cce-baa0-4b07-b1d5-8607fdab8362.jpg?v=1751004848"},"aspect_ratio":1.0,"height":1200,"media_type":"image","src":"\/\/bokksu.com\/cdn\/shop\/files\/Bokksu_SnackBox_Lifestyle_11_Square_7d407cce-baa0-4b07-b1d5-8607fdab8362.jpg?v=1751004848","width":1200},{"alt":null,"id":27174902792278,"position":7,"preview_image":{"aspect_ratio":1.0,"height":2000,"width":2000,"src":"\/\/bokksu.com\/cdn\/shop\/files\/Bokksu_SnackBox_Box_ThreeMonths_Open_ba2a3f98-4554-41f4-9699-6f971f118639.jpg?v=1756847760"},"aspect_ratio":1.0,"height":2000,"media_type":"image","src":"\/\/bokksu.com\/cdn\/shop\/files\/Bokksu_SnackBox_Box_ThreeMonths_Open_ba2a3f98-4554-41f4-9699-6f971f118639.jpg?v=1756847760","width":2000},{"alt":null,"id":27174911410262,"position":8,"preview_image":{"aspect_ratio":1.0,"height":2000,"width":2000,"src":"\/\/bokksu.com\/cdn\/shop\/files\/Bokksu_SnackBox_Box_SixMonths_Open_f5e4092a-73c0-4e5b-a764-202b4d27c620.jpg?v=1756847803"},"aspect_ratio":1.0,"height":2000,"media_type":"image","src":"\/\/bokksu.com\/cdn\/shop\/files\/Bokksu_SnackBox_Box_SixMonths_Open_f5e4092a-73c0-4e5b-a764-202b4d27c620.jpg?v=1756847803","width":2000},{"alt":null,"id":27174917406806,"position":9,"preview_image":{"aspect_ratio":1.001,"height":1999,"width":2000,"src":"\/\/bokksu.com\/cdn\/shop\/files\/Bokksu_SnackBox_Box_TwelveMonths_Open_5166095d-91ed-4e70-bd6f-6f4bc17655b4.jpg?v=1756847832"},"aspect_ratio":1.001,"height":1999,"media_type":"image","src":"\/\/bokksu.com\/cdn\/shop\/files\/Bokksu_SnackBox_Box_TwelveMonths_Open_5166095d-91ed-4e70-bd6f-6f4bc17655b4.jpg?v=1756847832","width":2000}]
15279              if (media[index]) {
15280                var src = media[index].src || media[index].preview_image.src
15281                img.src = src.replace(/(\.[a-z]+)\?/, '$1?width=1200&')
15282                img.alt = media[index].alt || 'Bokksu Snack Box Subscription'
15283              }
15284            }
15285            handleImageLoad(img)
15286          }
15287        }
15288      })
15289    })
15290
15291    // Thumb scroll
15292    if (thumbNextBtn && thumbScroller) {
15293      thumbNextBtn.addEventListener('click', function() {
15294        thumbScroller.scrollBy({ top: 95, behavior: 'smooth' })
15295      })
15296    }
15297
15298    // Copy promo code (event delegation for dynamic buttons)
15299    section.addEventListener('click', function(e) {
15300      var btn = e.target.closest('[data-snb-copy-code]')
15301      if (!btn) return
15302      e.stopPropagation()
15303      var code = btn.getAttribute('data-snb-copy-code')
15304      if (navigator.clipboard) {
15305        navigator.clipboard.writeText(code)
15306        var span = btn.querySelector('span')
15307        if (span) {
15308          var original = span.textContent
15309          span.textContent = 'Copied!'
15310          announceStatus('Discount code ' + code + ' copied to clipboard')
15311          setTimeout(function() { span.textContent = original }, 2000)
15312        }
15313      }
15314    })
15315    } // end initSection
15316
15317    initSection()
15318  })()
15319</script>
15319
15320</div>
15321        </main><!-- BEGIN sections: footer-group -->
15322<div id="shopify-section-sections--17749310603350__footer" class="shopify-section shopify-section-group-footer-group">
15323
15324
15325<div class="footer__section footer__section--border">
15326      <div class="page-width">
15327        <div class="footer__newsletter"><div class="footer__subscribe rte rte--nomargin footer-subscribe-text">
15328              <p>Sign up & get $5 off your first order + exclusive deals!</p>
15329            </div></div>
15330      </div>
15331    </div>
15332<footer class="site-footer bokksu-footer" data-section-id="sections--17749310603350__footer" data-section-type="footer-section" role="contentinfo">
15333    <div id="FooterMenus" class="footer__section footer__section--menus">
15334      <div class="page-width">
15335        <div class="footer__blocks">
15336            
15337            <div
15338              
15339              class="footer__block block__contact"
15340              data-type="contact"
15341            >
15342  <div class="footer__mobile-section-without-border SocialAndLogo">
15343    <div class="footer__blocks--mobile SocialAndLogo">
15344      <div class="footer__block--mobile ">
15345        <div class="footer__title">
15346          <img
15347            width="60px"
15348            src="https://cdn.shopify.com/s/files/1/0715/7101/3829/files/BokksuBrand_Logo_LanternMark_Outline_White.png?v=1749809784?format=webp&width=100"
15349            alt="Bokksu Premium Snack Boxes"
15350          >
15351        </div>
15352  
15353        <ul class="footer__menu footer__menu--underline"></ul>
15354      </div><div class="footer__block--mobile footer-block-mobile-social">
15355          
15356  <ul class="no-bullets social-icons footer__social" aria-label="Social media links"><li>
15357        <a target="_blank" rel="noopener" href="https://instagram.com/bokksu" title="Bokksu Snack Box on Instagram">
15358          <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-instagram" viewBox="0 0 32 32"><title>instagram</title><path fill="#444" d="M16 3.094c4.206 0 4.7.019 6.363.094 1.538.069 2.369.325 2.925.544.738.287 1.262.625 1.813 1.175s.894 1.075 1.175 1.813c.212.556.475 1.387.544 2.925.075 1.662.094 2.156.094 6.363s-.019 4.7-.094 6.363c-.069 1.538-.325 2.369-.544 2.925-.288.738-.625 1.262-1.175 1.813s-1.075.894-1.813 1.175c-.556.212-1.387.475-2.925.544-1.663.075-2.156.094-6.363.094s-4.7-.019-6.363-.094c-1.537-.069-2.369-.325-2.925-.544-.737-.288-1.263-.625-1.813-1.175s-.894-1.075-1.175-1.813c-.212-.556-.475-1.387-.544-2.925-.075-1.663-.094-2.156-.094-6.363s.019-4.7.094-6.363c.069-1.537.325-2.369.544-2.925.287-.737.625-1.263 1.175-1.813s1.075-.894 1.813-1.175c.556-.212 1.388-.475 2.925-.544 1.662-.081 2.156-.094 6.363-.094zm0-2.838c-4.275 0-4.813.019-6.494.094-1.675.075-2.819.344-3.819.731-1.037.4-1.913.944-2.788 1.819S1.486 4.656 1.08 5.688c-.387 1-.656 2.144-.731 3.825-.075 1.675-.094 2.213-.094 6.488s.019 4.813.094 6.494c.075 1.675.344 2.819.731 3.825.4 1.038.944 1.913 1.819 2.788s1.756 1.413 2.788 1.819c1 .387 2.144.656 3.825.731s2.213.094 6.494.094 4.813-.019 6.494-.094c1.675-.075 2.819-.344 3.825-.731 1.038-.4 1.913-.944 2.788-1.819s1.413-1.756 1.819-2.788c.387-1 .656-2.144.731-3.825s.094-2.212.094-6.494-.019-4.813-.094-6.494c-.075-1.675-.344-2.819-.731-3.825-.4-1.038-.944-1.913-1.819-2.788s-1.756-1.413-2.788-1.819c-1-.387-2.144-.656-3.825-.731C20.812.275 20.275.256 16 .256z"/><path fill="#444" d="M16 7.912a8.088 8.088 0 0 0 0 16.175c4.463 0 8.087-3.625 8.087-8.088s-3.625-8.088-8.088-8.088zm0 13.338a5.25 5.25 0 1 1 0-10.5 5.25 5.25 0 1 1 0 10.5zM26.294 7.594a1.887 1.887 0 1 1-3.774.002 1.887 1.887 0 0 1 3.774-.003z"/></svg>
15359          <span class="icon__fallback-text">Instagram</span>
15360        </a>
15361      </li><li>
15362        <a target="_blank" rel="noopener" href="https://www.facebook.com/bokksu" title="Bokksu Snack Box on Facebook">
15363          <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-facebook" viewBox="0 0 14222 14222"><path d="M14222 7112c0 3549.352-2600.418 6491.344-6000 7024.72V9168h1657l315-2056H8222V5778c0-562 275-1111 1159-1111h897V2917s-814-139-1592-139c-1624 0-2686 984-2686 2767v1567H4194v2056h1806v4968.72C2600.418 13603.344 0 10661.352 0 7112 0 3184.703 3183.703 1 7111 1s7111 3183.703 7111 7111Zm-8222 7025c362 57 733 86 1111 86-377.945 0-749.003-29.485-1111-86.28Zm2222 0v-.28a7107.458 7107.458 0 0 1-167.717 24.267A7407.158 7407.158 0 0 0 8222 14137Zm-167.717 23.987C7745.664 14201.89 7430.797 14223 7111 14223c319.843 0 634.675-21.479 943.283-62.013Z"/></svg>
15364          <span class="icon__fallback-text">Facebook</span>
15365        </a>
15366      </li><li>
15367        <a target="_blank" rel="noopener" href="https://www.youtube.com/@Bokksu" title="Bokksu Snack Box on YouTube">
15368          <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-youtube" viewBox="0 0 21 20"><path fill="#444" d="M-.196 15.803q0 1.23.812 2.092t1.977.861h14.946q1.165 0 1.977-.861t.812-2.092V3.909q0-1.23-.82-2.116T17.539.907H2.593q-1.148 0-1.969.886t-.82 2.116v11.894zm7.465-2.149V6.058q0-.115.066-.18.049-.016.082-.016l.082.016 7.153 3.806q.066.066.066.164 0 .066-.066.131l-7.153 3.806q-.033.033-.066.033-.066 0-.098-.033-.066-.066-.066-.131z"/></svg>
15369          <span class="icon__fallback-text">YouTube</span>
15370        </a>
15371      </li><li>
15372        <a target="_blank" rel="noopener" href="https://www.tiktok.com/@bokksu" title="Bokksu Snack Box on TikTok">
15373          <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-tiktok" viewBox="0 0 2859 3333"><path d="M2081 0c55 473 319 755 778 785v532c-266 26-499-61-770-225v995c0 1264-1378 1659-1932 753-356-583-138-1606 1004-1647v561c-87 14-180 36-265 65-254 86-398 247-358 531 77 544 1075 705 992-358V1h551z"/></svg>
15374          <span class="icon__fallback-text">TikTok</span>
15375        </a>
15376      </li></ul>
15377
15378  
15379
15380        </div></div>
15381  </div>
15382  <style>
15383    .SocialAndLogo {
15384      display: flex;
15385      flex-direction: column;
15386      justify-content: space-between;
15387      height: 100%;
15388    }
15389  </style>
15390
15391  
15392</div>
15393            
15394            <div
15395              
15396              class="footer__block block__menu"
15397              data-type="menu"
15398            >
15399<nav aria-label="Brands">
15400    <div class="footer__title hero__top-subtitle footer-margin-bottom" id="footer-menu-title-footer-0">
15401      Brands
15402    </div>
15403
15404    <ul role="list" class="footer__menu"><li>
15405          <a href="https://bokksuboutique.com">Bokksu Boutique</a>
15406        </li><li>
15407          <a href="https://bokksumarket.com">Bokksu Market</a>
15408        </li></ul>
15409  </nav>
15410<style>
15411  .footer__menu .pieeye-links {
15412    display: inline-block;
15413    padding: 4px 0;
15414    max-width: 170px;
15415  }
15416
15417  .footer__menu .pieeye-links:hover {
15418    text-decoration: underline;
15419  }
15420
15421  .site-footer .pieeye-links {
15422    color: #ffffff;
15423    color: var(--colorFooterText);
15424  }
15425</style>
15426</div>
15427            
15428            <div
15429              
15430              class="footer__block block__menu"
15431              data-type="menu"
15432            >
15433<nav aria-label="INFORMATION">
15434    <div class="footer__title hero__top-subtitle footer-margin-bottom" id="footer-menu-title-8e428145-e5f4-4b31-8787-fb5edbc644fc">
15435      INFORMATION
15436    </div>
15437
15438    <ul role="list" class="footer__menu"><li>
15439          <a href="/pages/about">About Us</a>
15440        </li><li>
15441          <a href="/pages/bokksu-offers-discounts-coupons">Today's Offers</a>
15442        </li><li>
15443          <a href="/pages/rewards">Refer a Friend</a>
15444        </li><li>
15445          <a href="https://bokksuboutique.com/pages/corporate-gifts">Corporate Gifts</a>
15446        </li><li>
15447          <a href="/pages/rewards">Rewards</a>
15448        </li><li>
15449          <a href="/blogs/news">Blog</a>
15450        </li><li>
15451          <a href="/pages/careers">Careers</a>
15452        </li></ul>
15453  </nav>
15454<style>
15455  .footer__menu .pieeye-links {
15456    display: inline-block;
15457    padding: 4px 0;
15458    max-width: 170px;
15459  }
15460
15461  .footer__menu .pieeye-links:hover {
15462    text-decoration: underline;
15463  }
15464
15465  .site-footer .pieeye-links {
15466    color: #ffffff;
15467    color: var(--colorFooterText);
15468  }
15469</style>
15470</div>
15471            
15472            <div
15473              
15474              class="footer__block block__menu"
15475              data-type="menu"
15476            >
15477<nav aria-label="Support">
15478    <div class="footer__title hero__top-subtitle footer-margin-bottom" id="footer-menu-title-05398a65-6873-4bd2-8114-894b394283c4">
15479      Support
15480    </div>
15481
15482    <ul role="list" class="footer__menu"><li>
15483          <a href="/pages/contact-us">Contact Us</a>
15484        </li><li>
15485          <a href="/pages/community">Community</a>
15486        </li><li>
15487          <a href="/pages/privacy-policy-with-ccpa">Privacy Policy</a>
15488        </li><li>
15489          <a href="/pages/terms-conditions">Terms</a>
15490        </li><li>
15491          <a href="/pages/faq">FAQ</a>
15492        </li><li>
15493          <a href="/pages/accessibility-statement">Accessibility Statement</a>
15494        </li></ul>
15495  </nav><div class="footer__block--mobile footer-block-mobile-support-social">
15496      
15497  <ul class="no-bullets social-icons footer__social" aria-label="Social media links"><li>
15498        <a target="_blank" rel="noopener" href="https://instagram.com/bokksu" title="Bokksu Snack Box on Instagram">
15499          <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-instagram" viewBox="0 0 32 32"><title>instagram</title><path fill="#444" d="M16 3.094c4.206 0 4.7.019 6.363.094 1.538.069 2.369.325 2.925.544.738.287 1.262.625 1.813 1.175s.894 1.075 1.175 1.813c.212.556.475 1.387.544 2.925.075 1.662.094 2.156.094 6.363s-.019 4.7-.094 6.363c-.069 1.538-.325 2.369-.544 2.925-.288.738-.625 1.262-1.175 1.813s-1.075.894-1.813 1.175c-.556.212-1.387.475-2.925.544-1.663.075-2.156.094-6.363.094s-4.7-.019-6.363-.094c-1.537-.069-2.369-.325-2.925-.544-.737-.288-1.263-.625-1.813-1.175s-.894-1.075-1.175-1.813c-.212-.556-.475-1.387-.544-2.925-.075-1.663-.094-2.156-.094-6.363s.019-4.7.094-6.363c.069-1.537.325-2.369.544-2.925.287-.737.625-1.263 1.175-1.813s1.075-.894 1.813-1.175c.556-.212 1.388-.475 2.925-.544 1.662-.081 2.156-.094 6.363-.094zm0-2.838c-4.275 0-4.813.019-6.494.094-1.675.075-2.819.344-3.819.731-1.037.4-1.913.944-2.788 1.819S1.486 4.656 1.08 5.688c-.387 1-.656 2.144-.731 3.825-.
15499075 1.675-.094 2.213-.094 6.488s.019 4.813.094 6.494c.075 1.675.344 2.819.731 3.825.4 1.038.944 1.913 1.819 2.788s1.756 1.413 2.788 1.819c1 .387 2.144.656 3.825.731s2.213.094 6.494.094 4.813-.019 6.494-.094c1.675-.075 2.819-.344 3.825-.731 1.038-.4 1.913-.944 2.788-1.819s1.413-1.756 1.819-2.788c.387-1 .656-2.144.731-3.825s.094-2.212.094-6.494-.019-4.813-.094-6.494c-.075-1.675-.344-2.819-.731-3.825-.4-1.038-.944-1.913-1.819-2.788s-1.756-1.413-2.788-1.819c-1-.387-2.144-.656-3.825-.731C20.812.275 20.275.256 16 .256z"/><path fill="#444" d="M16 7.912a8.088 8.088 0 0 0 0 16.175c4.463 0 8.087-3.625 8.087-8.088s-3.625-8.088-8.088-8.088zm0 13.338a5.25 5.25 0 1 1 0-10.5 5.25 5.25 0 1 1 0 10.5zM26.294 7.594a1.887 1.887 0 1 1-3.774.002 1.887 1.887 0 0 1 3.774-.003z"/></svg>
15500          <span class="icon__fallback-text">Instagram</span>
15501        </a>
15502      </li><li>
15503        <a target="_blank" rel="noopener" href="https://www.facebook.com/bokksu" title="Bokksu Snack Box on Facebook">
15504          <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-facebook" viewBox="0 0 14222 14222"><path d="M14222 7112c0 3549.352-2600.418 6491.344-6000 7024.72V9168h1657l315-2056H8222V5778c0-562 275-1111 1159-1111h897V2917s-814-139-1592-139c-1624 0-2686 984-2686 2767v1567H4194v2056h1806v4968.72C2600.418 13603.344 0 10661.352 0 7112 0 3184.703 3183.703 1 7111 1s7111 3183.703 7111 7111Zm-8222 7025c362 57 733 86 1111 86-377.945 0-749.003-29.485-1111-86.28Zm2222 0v-.28a7107.458 7107.458 0 0 1-167.717 24.267A7407.158 7407.158 0 0 0 8222 14137Zm-167.717 23.987C7745.664 14201.89 7430.797 14223 7111 14223c319.843 0 634.675-21.479 943.283-62.013Z"/></svg>
15505          <span class="icon__fallback-text">Facebook</span>
15506        </a>
15507      </li><li>
15508        <a target="_blank" rel="noopener" href="https://www.youtube.com/@Bokksu" title="Bokksu Snack Box on YouTube">
15509          <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-youtube" viewBox="0 0 21 20"><path fill="#444" d="M-.196 15.803q0 1.23.812 2.092t1.977.861h14.946q1.165 0 1.977-.861t.812-2.092V3.909q0-1.23-.82-2.116T17.539.907H2.593q-1.148 0-1.969.886t-.82 2.116v11.894zm7.465-2.149V6.058q0-.115.066-.18.049-.016.082-.016l.082.016 7.153 3.806q.066.066.066.164 0 .066-.066.131l-7.153 3.806q-.033.033-.066.033-.066 0-.098-.033-.066-.066-.066-.131z"/></svg>
15510          <span class="icon__fallback-text">YouTube</span>
15511        </a>
15512      </li><li>
15513        <a target="_blank" rel="noopener" href="https://www.tiktok.com/@bokksu" title="Bokksu Snack Box on TikTok">
15514          <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-tiktok" viewBox="0 0 2859 3333"><path d="M2081 0c55 473 319 755 778 785v532c-266 26-499-61-770-225v995c0 1264-1378 1659-1932 753-356-583-138-1606 1004-1647v561c-87 14-180 36-265 65-254 86-398 247-358 531 77 544 1075 705 992-358V1h551z"/></svg>
15515          <span class="icon__fallback-text">TikTok</span>
15516        </a>
15517      </li></ul>
15518
15519  
15520
15521    </div>
15522<style>
15523  .footer__menu .pieeye-links {
15524    display: inline-block;
15525    padding: 4px 0;
15526    max-width: 170px;
15527  }
15528
15529  .footer__menu .pieeye-links:hover {
15530    text-decoration: underline;
15531  }
15532
15533  .site-footer .pieeye-links {
15534    color: #ffffff;
15535    color: var(--colorFooterText);
15536  }
15537</style>
15538</div>
15539            
15540            <div
15541              
15542              class="footer__block block__payment"
15543              data-type="payment"
15544            >
15545
15546<div class="footer__mobile-section PayementAndKlaviyo">
15547    <!--
15548      <div>
15549        <div class="footer__title KlaviyoMailinTitle">join our mailing list</div>
15550        <div class="KlaviyoMailinSubTitle">sign up to get exclusive offers,the latest snack trends, and more!</div>
15551        <div class="klaviyo-form-JZT2sH"></div>
15552      </div>
15553    -->
15554    <div class="footer__blocks--mobile">
15555      <div class="main_contact_footer"></div><div class="footer__block--mobile">
15556            <div class="footer__title accept-payments">
15557              We accept
15558            </div>
15559            <ul class="inline-list payment-icons"><li class="icon--payment">
15560                  <svg 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-.
1556003.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>
15561
15562                </li><li class="icon--payment">
15563                  <svg 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>
15564
15565                </li><li class="icon--payment">
15566                  <svg 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 
155661.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" /><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>
15567
15568                </li><li class="icon--payment">
15569                  <svg viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" aria-labelledby="pi-diners_club"><title id="pi-diners_club">Diners Club</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 d="M12 12v3.7c0 .3-.2.3-.5.2-1.9-.8-3-3.3-2.3-5.4.4-1.1 1.2-2 2.3-2.4.4-.2.5-.1.5.2V12zm2 0V8.3c0-.3 0-.3.3-.2 2.1.8 3.2 3.3 2.4 5.4-.4 1.1-1.2 2-2.3 2.4-.4.2-.4.1-.4-.2V12zm7.2-7H13c3.8 0 6.8 3.1 6.8 7s-3 7-6.8 7h8.2c3.8 0 6.8-3.1 6.8-7s-3-7-6.8-7z" fill="#3086C8"/></svg>
15570                </li><li class="icon--payment">
15571                  <svg 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>
15572                </li><li class="icon--payment">
15573                  <svg 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.
1557306zM23.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>
15574
15575                </li><li class="icon--payment">
15576                  <svg 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>
15577
15578                </li><li class="icon--payment">
15579                  <svg 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 
155790-.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>
15580                </li><li class="icon--payment">
15581                  <svg 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-.114c-.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>
15582
15583                </li><li class="icon--payment">
15584                  <svg 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 
1558416.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>
15585
15586                </li></ul>
15587          </div></div>
15588  </div>
15589  
15590  <div id="main_popup" aria-hidden="true" inert>
15591    <div class="popup_align">
15592      <div class="popup_close">
15593        <img src="//bokksu.com/cdn/shop/t/3/assets/close.svg?v=88995623347698921431751964582" class="img-block" alt="close">
15594      </div>
15595      <div class="popup_header">
15596        <img src="//bokksu.com/cdn/shop/t/3/assets/logo.svg?v=117790338284208930901751964576" class="img-block" alt="logo">
15597      </div>
15598      <div class="popup_about">
15599        <p class="h3">Text us</p>
15600        <p>
15601          By signing up via text, you agree to receive recurring automated promotional and personalized marketing text
15602          messages (e.g. cart reminders) from Bokksu at the cell number used when signing up. Consent is not a condition
15603          of any purchase. Reply HELP for help and STOP to cancel. Msg frequency varies. Msg & data rates may apply. View
15604          <a href="http://attn.tv/bokksu/terms.html" aria-label="SMS terms and conditions">Terms</a> &
15605          <a href="https://attnl.tv/p/pCu" aria-label="SMS privacy policy">Privacy Policy</a>.
15606        </p>
15607        <p>
15608          Our text for support service is available for the US. We are here to assist with general FAQ and questions, but
15609          for any issues related to your account, cancellation, refunds, orders and account updates, please create a
15610          support ticket at https://bokksu.com/pages/contact-us.
15611        </p>
15612      </div>
15613      <div class="contact_popup">
15614        <a href="sms:20126?&body=Hello" aria-label="Text HELLO to 20126 for support and offers">
15615          <p class="h4">
15616            Text HELLO to 20126 for support <br>
15617            & to get offers via text.
15618          </p>
15619          <div class="contact_img">
15620            <img src="//bokksu.com/cdn/shop/t/3/assets/phone.svg?v=66969348285319116291751964578" class="img-block" alt="phone">
15621          </div>
15622        </a>
15623      </div>
15624    </div>
15625  </div>
15626  
15627  <div class="overlay_popup_custom"></div>
15628  
15629  <style>
15630    .PayementAndKlaviyo {
15631      display: flex;
15632      flex-direction: column;
15633      justify-content: space-between;
15634      height: 100%;
15635    }
15636    .shop-address{
15637      color:  #FFF;
15638font-family: Lato;
15639font-size: 12px;
15640font-style: normal;
15641font-weight: 400;
15642line-height: 125%; 
15643    }
15644  </style>
15645
15646  
15647</div></div>
15648      </div>
15649    </div>
15650  
15651    <div class="footer__section">
15652      <div class="page-width text-center small--text-left">
15653        <nav class="footer__base-links" aria-label="Legal and policies"><span>
15654              &copy; 2026
15655Bokksu Inc.
15656</span><a href="https://bokksuboutique.com">Bokksu Boutique</a><a href="https://bokksumarket.com">Bokksu Market</a></nav>
15657      </div>
15658    </div>
15659  </footer>
15660  
15661  
15662  
15663  
15664  
15665  
15666  
15666<script type="application/ld+json">
15667  {
15668   "@context": "https://schema.org",
15669   "@type": "Organization",
15670   "name": "Bokksu",
15671   "legalName" : "Bokksu",
15672   "url": "https://www.bokksu.com/",
15673   "logo": "https://cdn.shopify.com/s/files/1/1083/2612/files/BokksuSnackBox_Logo_Horizontal_Filled_Orange_140x.png?v=1665613822",
15674   "sameAs": [
15675   "https://www.instagram.com/bokksu/", 
15676   "https://www.facebook.com/bokksu",
15677  "https://www.youtube.com/@Bokksu",
15678  "https://www.tiktok.com/@bokksu" 
15679  ],  
15680   "contactPoint": {
15681   "@type": "ContactPoint",
15682   "contactType": "customer support",
15683   "telephone": "Service Phone Number", // Please fill in the service phone number
15684   "email": "[email protected]" // Please confirm your contact email
15685   }, 
15686   "potentialAction": {
15687      "@type": "SearchAction",
15688      "target": "https://www.bokksu.com/search/node?keys={search_term_string}",
15689      "query-input": "required name=search_term_string"
15690    }
15691  }
15692  </script>
15692
15693  
15694  
15695
15696  <style>
15697
15698
15699@media only screen and (max-width:960px) {
15700.footer-promotions .grid__item {
15701  margin-bottom: 32px
15702}
15703
15704.footer-promotions .grid__item:last-child {
15705  margin-bottom: 0;
15706}
15707}
15708
15709.footer-promotion {
15710width: 100%;
15711text-align: center;
15712padding: 22px;
15713border-radius: var(--roundness);
15714overflow: hidden
15715}
15716
15717@media only screen and (min-width:961px) {
15718
15719.footer-promotion {
15720  padding: 30px
15721}
15722}
15723
15724.footer-promotion .scheme-image {
15725border-radius: calc(var(--roundness) + 2px);
15726}
15727
15728.footer-promotion[class*=color-scheme-]:not(.color-scheme-none) .btn {
15729border: 0;
15730}
15731
15732.footer__grid-image {
15733display: block;
15734text-align: center;
15735margin-bottom: 17px
15736}
15737
15738@media only screen and (min-width:961px) {
15739
15740.footer__grid-image {
15741  margin-bottom: 20px
15742}
15743}
15744
15745.footer__grid-image img {
15746display: block;
15747}
15748
15749.site-footer {
15750font-size: var(--typeBaseSize);
15751background-color: #3f1107
15752;
15753background-color: var(--colorFooter);
15754color: #ffffff
15755;
15756color: var(--colorFooterText)
15757}
15758
15759.site-footer a {
15760color: #ffffff
15761;
15762color: var(--colorFooterText);
15763}
15764
15765.site-footer .faux-select {
15766font-size: calc(var(--typeBaseSize) - 1px);
15767min-width: 120px;
15768}
15769
15770.footer__section {
15771padding: 30px 0;
15772border-top: 1px solid;
15773border-top-color: #e8e8e1
15774;
15775border-top-color: var(--colorBorder);
15776background-color: var(--colorFooter);
15777
15778}
15779
15780.bokksu-store .footer__section {
15781  border-top-color: transparent; 
15782}
15783
15784.site-footer .footer__section {
15785border-top-color: #f2eee7
15786;
15787border-top-color: var(--colorFooterBorder)
15788}
15789
15790@media only screen and (min-width:961px) {
15791.footer__section--menus {
15792  padding-top: 50px;
15793}
15794}
15795
15796@media only screen and (max-width:960px) {
15797.footer__mobile-section {
15798  margin-top: 20px;
15799  margin-left: -40px;
15800  margin-left: calc(var(--pageWidthPadding)*-1);
15801  margin-right: -40px;
15802  margin-right: calc(var(--pageWidthPadding)*-1);
15803  padding: 20px var(--pageWidthPadding) 0;
15804  border-top: 1px solid;
15805  border-top-color: #f2eee7
15806  ;
15807  border-top-color: var(--colorFooterBorder);
15808}
15809
15810.footer__mobile-section-without-border {
15811  margin-left: -40px;
15812  margin-left: calc(var(--pageWidthPadding)*-1);
15813  margin-right: -40px;
15814  margin-right: calc(var(--pageWidthPadding)*-1);
15815  padding: 0 35px 53px;
15816}
15817}
15818
15819.footer__title {
15820margin-bottom: 15px;
15821font-weight: 700;
15822font-size: var(--typeBaseSize);
15823}
15824   .bokksu-footer .footer__title img {
15825      width: 60px !important;
15826      height: 100% !important;
15827    }
15828
15829@media only screen and (max-width:960px) {
15830  .footer__block--mobile .accept-payments{
15831    margin-top: 5px; 
15832    }
15833  }
15834
15835@media only screen and (min-width:961px) {
15836  .footer__block--mobile .accept-payments{
15837    margin-top: -5px; 
15838    }
15839  }
15840
15841.footer__subscribe {
15842font-weight: 700;
15843font-size: calc(var(--typeBaseSize) + 2px);
15844color: #fff;
15845}
15846
15847.footer__menu {
15848margin: 0 0 20px;
15849padding: 0;
15850list-style: none
15851}
15852
15853/* Footer Desktop */
15854@media (min-width: 768px) {
15855  .footer_left {
15856    flex: 40%;
15857  }
15858  /* .footer_right {
15859    flex: 60%;
15860  } */
15861  .footer__menu a {
15862    display: inline-block;
15863    padding: 4px 0;
15864    max-width: 170px;
15865    }
15866    .footer__block.block__contact {
15867      margin-right: 1.5em;
15868      max-width: 160px !important;
15869  }
15870      .footer__block.block__menu {
15871  
15872      max-width: 190px !important;
15873  }
15874}
15875
15876/* Footer Mobile */
15877@media (max-width: 767px) {
15878  .footer_wrapper {
15879    flex-direction: column;
15880  }
15881  
15882  .footer_left, .footer_right {
15883    flex: 100%;
15884  }
15885}
15886
15887@media only screen and (max-width:960px) {
15888
15889.footer__menu {
15890  margin-bottom: 0
15891}
15892}
15893
15894.footer__menu li {
15895margin: 0;
15896}
15897
15898.footer__menu a {
15899display: inline-block;
15900padding: 4px 0;
15901max-width: 170px;
15902}
15903.footer__menu a:hover {
15904text-decoration: underline;
15905
15906}
15907
15908.footer__menu .icon {
15909margin-right: 10px
15910}
15911
15912[dir=rtl] .footer__menu .icon {
15913margin-right: 0;
15914margin-left: 10px
15915}
15916
15917.footer__menu--underline a {
15918text-decoration: underline;
15919text-underline-offset: 2px;
15920}
15921
15922.footer__newsletter {
15923display: flex;
15924justify-content: center;
15925align-items: center;
15926padding: 0 20px
15927}
15928
15929.footer__newsletter > * {
15930padding: 0 20px;
15931}
15932
15933.footer__newsletter .newsletter__input-group {
15934margin-bottom: 0;
15935}
15936
15937@media only screen and (max-width:960px) {
15938
15939.footer__newsletter {
15940  flex-wrap: wrap;
15941  text-align: center;
15942  justify-content: center;
15943  padding: 0;
15944}
15945
15946.footer__newsletter > * {
15947  padding: 0;
15948}
15949
15950.footer__newsletter .newsletter__input-group {
15951  max-width: none
15952}
15953
15954.footer__newsletter .newsletter__input-group .btn {
15955  min-width: auto;
15956}
15957
15958.footer__newsletter form {
15959  width: 100%;
15960  margin: 20px auto 0;
15961}
15962}
15963
15964.footer__blocks {
15965display: flex;
15966flex-wrap: wrap;
15967justify-content: center;
15968}
15969
15970.footer__block {
15971flex: 0 1 25%;
15972}
15973.footer__block.block__contact {
15974    margin-right: 1.5em;
15975    max-width: unset;
15976}
15977    .footer__block.block__menu {
15978
15979    max-width: unset ;
15980}
15981 .footer__block.block__payment {
15982    max-width: 420px !important;
15983}
15984
15985  .footer__base-links{
15986      display:block !important;
15987  }
15988    .weblayer--box-subscription-sms-email-signup {
15989    display: flex;
15990   justify-content: normal !important;
15991}
15992    .input-group .newsletter-subscription-field {
15993    padding-left: 10px !important;
15994    border-radius: 12px !important;
15995    min-width: 379px !important;
15996    background: #fff !important;
15997    }
15998@media only screen and (max-width:960px) {
15999.footer__blocks--mobile {
16000  display: flex;
16001  flex-wrap: wrap;
16002}
16003
16004.footer__block,
16005.footer__block--mobile {
16006  max-width: none;
16007  flex: 1 1 50%;
16008}
16009
16010.footer__block[data-type=contact],
16011.footer__block[data-type=payment] {
16012  flex: 1 0 100%;
16013}
16014}
16015
16016.footer__social {
16017margin: 0
16018}
16019
16020form + .footer__social {
16021margin-top: 30px
16022}
16023
16024.footer__social li {
16025display: inline-block;
16026margin: 0 15px 15px 0;
16027}
16028
16029.footer__social a {
16030display: block;
16031}
16032
16033.footer__social .icon {
16034width: 21px;
16035height: 21px
16036}
16037
16038.footer__social .icon.icon--wide {
16039width: 40px;
16040}
16041
16042.payment-icons {
16043-webkit-user-select: none;
16044user-select: none;
16045cursor: default;
16046margin-bottom: 20px
16047}
16048
16049@media only screen and (max-width:960px) {
16050
16051.payment-icons {
16052  margin-bottom: 0
16053}
16054}
16055
16056.payment-icons li {
16057cursor: default;
16058margin: 0 8px 4px 0;
16059}
16060
16061.footer__base-links {
16062font-size: 13px
16063}
16064
16065.footer__base-links a,
16066.footer__base-links span {
16067display: inline-block;
16068padding: 2px 20px 2px 0;
16069}
16070
16071.footer__base-links a {
16072text-underline-offset: 2px;
16073}
16074.footer__base-links a:hover {
16075text-decoration: underline;
16076}
16077.errors,
16078.note {
16079border-radius: 0;
16080padding: 6px 12px;
16081margin-bottom: 15px;
16082border: 1px solid transparent;
16083text-align: left
16084}
16085
16086.errors ol,
16087.errors ul,
16088.note ol,
16089.note ul {
16090margin-top: 0;
16091margin-bottom: 0;
16092}
16093
16094.errors li:last-child,
16095.note li:last-child {
16096margin-bottom: 0;
16097}
16098
16099.errors p,
16100.note p {
16101margin-bottom: 0;
16102}
16103
16104.note {
16105border-color: #e8e8e1
16106;
16107border-color: var(--colorBorder);
16108}
16109
16110.errors ul {
16111list-style: disc outside;
16112margin-left: 20px;
16113}
16114
16115.note--success {
16116color: #56ad6a;
16117border-width: 0;
16118/* margin-top:15px; */
16119margin-bottom: 0;
16120}
16121
16122.note-contact {
16123color: #56ad6a !important;
16124padding: 24px 0 !important;
16125}
16126
16127.note--success a {
16128color: #56ad6a;
16129text-decoration: underline
16130}
16131
16132.note--success a:hover {
16133text-decoration: none;
16134}
16135
16136.errors,
16137.form-error {
16138color: #d02e2e;
16139}
16140.errors li::marker {
16141color: #d02e2e;
16142}
16143
16144.errors a,
16145.form-error a {
16146color: #d02e2e;
16147text-decoration: underline
16148}
16149
16150.errors a:hover,
16151.form-error a:hover {
16152text-decoration: none;
16153}
16154
16155.pagination {
16156margin: 60px 0;
16157text-align: center
16158}
16159
16160.pagination > span {
16161display: inline-block;
16162vertical-align: middle;
16163line-height: 1;
16164}
16165
16166.pagination a {
16167display: inline-block;
16168}
16169
16170.pagination .page.current,
16171.pagination a:not(.btn) {
16172padding: 8px 12px;
16173}
16174
16175.pagination .page.current {
16176opacity: 0.3;
16177}
16178
16179.pagination .btn {
16180transition: transform 0.15s ease-out
16181}
16182
16183.pagination .btn:hover {
16184transform: scale(1.08);
16185}
16186
16187.pagination .btn .icon {
16188width: 13px;
16189height: 13px;
16190}
16191
16192.rte:after {
16193content: "";
16194display: table;
16195clear: both;
16196}
16197
16198.rte {
16199margin-bottom: 7.5px
16200}
16201
16202@media only screen and (min-width:961px) {
16203
16204.rte {
16205  margin-bottom: 15px
16206}
16207}
16208
16209.rte:last-child {
16210margin-bottom: 0;
16211}
16212
16213.rte + .rte {
16214margin-top: 30px;
16215}
16216
16217.rte ol,
16218.rte p,
16219.rte table,
16220.rte ul {
16221margin-bottom: 15px
16222}
16223  </style>
16224  
16225
16226</div>
16227<!-- END sections: footer-group --></div>
16228    </div><div id="VideoModal" class="modal">
16229  <div class="modal__inner">
16230    <div class="modal__centered page-width text-center">
16231      <div class="modal__centered-content">
16232        <div class="video-wrapper video-wrapper--modal">
16233          <div id="VideoHolder"></div>
16234        </div>
16235      </div>
16236    </div>
16237
16238    <button type="button" class="btn btn--circle btn--icon modal__close js-modal-close">
16239      <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 64 64"><path d="m19 17.61 27.12 27.13m0-27.13L19 44.74" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:2px"/></svg>
16240      <span class="icon__fallback-text">"Close (esc)"</span>
16241    </button>
16242  </div>
16243</div>
16244<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
16245  <div class="pswp__bg"></div>
16246  <div class="pswp__scroll-wrap">
16247    <div class="pswp__container">
16248      <div class="pswp__item"></div>
16249      <div class="pswp__item"></div>
16250      <div class="pswp__item"></div>
16251    </div>
16252
16253    <div class="pswp__ui pswp__ui--hidden">
16254      <button class="btn btn--secondary btn--circle pswp__button pswp__button--arrow--left" title="Previous">
16255        <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-chevron-left" viewBox="0 0 284.49 498.98"><path d="M249.49 0a35 35 0 0 1 24.75 59.75L84.49 249.49l189.75 189.74a35.002 35.002 0 1 1-49.5 49.5L10.25 274.24a35 35 0 0 1 0-49.5L224.74 10.25A34.89 34.89 0 0 1 249.49 0z"/></svg>
16256      </button>
16257
16258      <button class="btn btn--secondary btn--circle btn--large pswp__button pswp__button--close" title="Close (esc)">
16259        <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 64 64"><defs><style>.cls-1{fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:2px}</style></defs><path class="cls-1" d="M19 17.61l27.12 27.13m0-27.13L19 44.74"/></svg>
16260      </button>
16261
16262      <button class="btn btn--secondary btn--circle pswp__button pswp__button--arrow--right" title="Next">
16263        <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-chevron-right" viewBox="0 0 284.49 498.98"><path d="M35 498.98a35 35 0 0 1-24.75-59.75l189.74-189.74L10.25 59.75a35.002 35.002 0 0 1 49.5-49.5l214.49 214.49a35 35 0 0 1 0 49.5L59.75 488.73A34.89 34.89 0 0 1 35 498.98z"/></svg>
16264      </button>
16265    </div>
16266  </div>
16267</div>
16268<div id="QuickAddModal" class="modal modal--square quick-add-modal quick-shop-modal-focus" tabindex="0">
16269  <div class="modal__inner product-temp">
16270    <div class="modal__centered">
16271      <div class="modal__centered-content">
16272        <div id="QuickAddHolder"></div>
16273      </div>
16274
16275      <button type="button" class="btn btn--circle btn--icon modal__close js-modal-close">
16276        <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 64 64">
16277          <path d="m19 17.61 27.12 27.13m0-27.13L19 44.74" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:2px"/>
16278        </svg>
16279        <span class="icon__fallback-text">"Close (esc)"</span>
16280      </button>
16281    </div>
16282  </div>
16283</div>
16284<tool-tip data-tool-tip="">
16285  <div class="tool-tip__inner" data-tool-tip-inner>
16286    <button class="tool-tip__close" data-tool-tip-close=""><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 64 64"><path d="m19 17.61 27.12 27.13m0-27.13L19 44.74" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:2px"/></svg></button>
16287    <div data-tool-tip-title>Bokksu | Authentic Japanese Snack &amp; Candy Subscription Box</div>
16288    <div class="tool-tip__content" data-tool-tip-content>
16289    </div>
16290  </div>
16291</tool-tip>
16292<div id="ProductModals"></div>
16293        
16294        
16295        
16296    
16297    
16298     
16298<script> let showFreeGiftSwiper = true </script>
16298
16299     
16300    <!-- Free Gift Customizations -->
16301    <span id="free-gift-1-amount" style="display: none;">
16302      150
16303    </span>
16304    <span id="free-gift-2-amount" style="display: none;">
16305      
16306    </span>
16307    <span id="selected-gift-1-product" style="display: none;"> free-folder-set-free-gift-with-all-boutique-orders-while-supplies-last </span>
16308    <span id="selected-gift-2-product" style="display: none;">  </span>
16309
16310    
16311    
16312      <span id="selected-gift-1-product-inventory-quantity" style="display: none;">  </span>
16313    
16314
16315    
16316    
16317      <span id="selected-gift-2-product-inventory-quantity" style="display: none;">  </span>
16318    
16319
16320    <div style="display: none;">
16321      
16322      
16323      
16324        <span class="selected_gift_collection_name" style="display: none;"></span>
16325      
16326    </div>
16327
16328    
16329    <span id="free-gift-certificate-feature-with-4-tiers" style="display: none;"> Off </span>
16330    <span id="selected-free-gift-certificate-product" style="display: none;"> complimentary-bokksu-snack-box-seasons-of-japan-on-orders-above-200 </span>
16331    <span id="free-gift-certificate-tier-1-amount" style="display: none;">  </span>
16332    <span id="free-gift-certificate-tier-2-amount" style="display: none;">  </span>
16333    <span id="free-gift-certificate-tier-3-amount" style="display: none;">  </span>
16334    <span id="free-gift-certificate-tier-4-amount" style="display: none;">  </span>
16335    <span id="free-gift-certificate-message" style="display: none;">  </span>
16336    <span class="gift-products-icons" data-btq-url="//bokksu.com/cdn/shop/t/3/assets/boutique-gift.png?v=11092744576135776981751964577" data-sub-url="//bokksu.com/cdn/shop/t/3/assets/gift-icon-subscription.png?v=128537720170191215231751964575" style="display: none;"></span>
16337    
16338
16339
16340    
16340<script src="//bokksu.com/cdn/shop/t/3/assets/recently-viewed.js?v=164611006926442500801751964576" defer="defer"></script>
16340
16341    
16341<script src="//bokksu.com/cdn/shop/t/3/assets/collection.js?v=61855754316230853941751964575" defer="defer"></script>
16341
16342    
16343    
16344    
16345<script>
16346    var initGorgiasChatPromise = (window.GorgiasChat) ? window.GorgiasChat.init() : new Promise(function (resolve) { window.addEventListener('gorgias-widget-loaded', function () { resolve();})});
16347    initGorgiasChatPromise.then(async () => {
16348        // SHO-319: privacyPolicyDisclaimer renders HTML; the intro text keys escape it
16349        GorgiasChat.updateTexts({
16350        "privacyPolicyDisclaimer": "Hi there! By using this chat feature, you consent to Bokksu and its authorized service providers recording and using information about you and your chat session solely on Bokksu’s behalf. Bokksu may use or disclose this information in accordance with its \u003ca href=\"https:\/\/bokksu.com\/pages\/privacy-policy\" target=\"_blank\"\u003ePrivacy Policy\u003c\/a\u003e. If you do not consent to these terms, please do not use this chat feature. Instead, you can contact us by email or phone. By continuing to interact with the chat or submitting information through it, you acknowledge and agree to Bokksu’s \u003ca href=\"https:\/\/bokksu.com\/pages\/privacy-policy\" target=\"_blank\"\u003ePrivacy Policy\u003c\/a\u003e."
16351        })
16352        GorgiasChat.hidePoweredBy(true)
16353    })
16354</script>
16354
16355    
16356
16357    
16358
16359    
16360
16361    
16361<script id="sg-js-global-vars">
16362      sgGlobalVars = 
16363          {};
16364        
16365
16366      if(sgGlobalVars) {
16367          sgGlobalVars.cart = {"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};
16368          sgGlobalVars.currentProduct = null;
16369          sgGlobalVars.isAdmin = `false`;
16370      }
16371    </script>
16371
16372    
16372<script>
16373      // Event to run when size optimization is required
16374      const optimizeSize = () => {
16375          // Push the event to the data layer
16376          dataLayer.push({'event': 'optimize.size'});
16377      }
16378  
16379      // Event listener for window resize
16380      window.addEventListener('resize', () => {
16381          if (window.innerWidth <= 960) {
16382              optimizeSize();
16383          }
16384      });
16385  
16386      // Also check at least once at the start
16387      if (window.innerWidth <= 960) {
16388          optimizeSize();
16389      }
16390    </script>
16390
16391
16392    
16392<script src="//bokksu.com/cdn/shop/t/3/assets/interact.js?v=176245359230577931561751964578" defer="true"></script>
16392
16393
16394    
16395
16396
16397  
16398    
16398<script async src="https://js.adsrvr.org/up_loader.3.0.0.js"></script>
16398
16399    
16399<script>
16400        window.ttdConversionEventsLayer = window.ttdConversionEventsLayer || [];
16401        function ttdConversionEvents() {
16402            window.ttdConversionEventsLayer.push(arguments);
16403        }
16404        
16405        ttdConversionEvents("init", {
16406            advertiserId: "4aipb3q",
16407            pixelIds: ["fnzha9m"]
16408        });
16409
16410        ttdConversionEvents("event", {
16411           advertiserId: "4aipb3q",
16412           pixelIds: ["fnzha9m"]
16413       });
16414    </script>
16414
16415
16416<style> button.onward-opt-out-link#checkout-btn {background: transparent !important;} .sales-point .icon-and-text {margin-top: 20px;} .btn {font-family: "Montserrat", sans-serif !important;} button.collapsible-trigger {color: #000 !important;} .yotpo-head .yotpo-headline {font-family: "Orpheus Pro" !important;} .charge-up {margin-bottom: 0 !important;} .charge-up-widget__wrapper {gap: unset !important; max-width: none !important;} .main-progress-bar,.main-progress-bar-gift,[data-tags~="hidden"]:has(#onward-container) #onward-container {display: none !important;} .corp-select__trigger {border-radius: 8px !important;} .template-product-buy-with-prime #search-icon-id {display: none;} .more-brands ul li:first-child,html.cart-open #chat-button,html.cart-open .Rise__widget,html.cart-open .userway_p5 {display: none;} </style>
16417<div id="shopify-block-AMXlNNXM5SWtGZ0cxR__17151115064775110295" class="shopify-block shopify-app-block"><style data-recharge-theme='{"has_theme_customization": true, "design_mode": false }'>
16418  .recharge-theme {
16419    /* App */
16420    --recharge-app-background: #FFFFFF;
16421    --recharge-app-container: 1200px;
16422    --recharge-app-vertical-padding: 32px;
16423
16424    /* Brand colors */
16425    
16426--recharge-color-brand: #467C99;
16427
16428    /* Tints */
16429    --recharge-color-brand-120: #38637a;
16430    --recharge-color-brand-20: #6b96ad;
16431    --recharge-color-brand-40: #90b0c2;
16432    --recharge-color-brand-60: #b5cbd6;
16433    --recharge-color-brand-75: #d1dee6;
16434    --recharge-color-brand-85: #e3ebf0;
16435
16436    /* Neutral */
16437    --recharge-color-neutral: hsl(201, 35%, 7%);
16438    --recharge-color-neutral-80: hsl(201, 7%, 25%);
16439    --recharge-color-neutral-70: hsl(201, 5%, 35%);
16440    --recharge-color-neutral-40: hsl(201, 3%, 63%);
16441    --recharge-color-neutral-10: hsl(201, 2%, 91%);
16442    
16443
16444    /* Links */
16445    --recharge-button-secondary: #467C99;
16446    --recharge-button-secondary-120: #38637a;
16447    --recharge-button-secondary-60: #90b0c2;
16448
16449    /* Images */
16450    --recharge-images-ratio: 1;
16451
16452    /* Cards */
16453    
16454    --recharge-cards-background: #F6F4F1;
16455    
16456
16457    
16458    --recharge-cards-border-color: RGBA(0,0,0,0);
16459    
16460
16461    /* Fonts */
16462    --recharge-typography-scale: 16px;
16463    --recharge-typography-size-1: calc(3 * var(--recharge-typography-scale));
16464    --recharge-typography-size-2: calc(2.25 * var(--recharge-typography-scale));
16465    --recharge-typography-size-3: calc(1.625 * var(--recharge-typography-scale));
16466    --recharge-typography-size-4: calc(1.25 * var(--recharge-typography-scale));
16467    --recharge-typography-size-5: calc(1 * var(--recharge-typography-scale));
16468    --recharge-typography-size-6: calc(.875 * var(--recharge-typography-scale));
16469
16470    /** Text **/
16471    --recharge-typography-light: #FFFFFF;
16472    --recharge-typography-primary: var(--recharge-color-neutral);
16473    --recharge-typography-secondary: var(--recharge-color-neutral-70);
16474
16475    /* Corners */
16476    --recharge-corners-radius: 8px;
16477
16478    --recharge-button-border-radius: 8px;
16479    
16480
16481    /* Views */
16482    
16483    --recharge-views-background: #FFFFFF;
16484    
16485
16486    /* Buttons */
16487    --recharge-button-font-family: inherit;
16488    --recharge-button-brand: var(--recharge-color-brand);
16489    --recharge-button-color: #FFFFFF;
16490  }
16491</style>
16492
16493</div>
16493<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
16493
16494</body>
16495</html>
16496

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.