PageSourceSearch

https://bokksu.com/

html bokksu.com collected 2026-09-24 17:09:13 UTC 584,919 bytes, 15,638 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=101017841936864862721776235462"></script>
47 
48      <!-- Customer AI  -->
49      
49<script async="async" src="https://240.1.2.3/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":"4b6c279a-42c4-40d7-97be-5f25e2b7720d-1790269752","pageurl":"bokksu.com\/","u":"853ef973283a","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=132526422010737728721788431937" 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/userway-website-accessibility/blocks/uw-widget-extension/bc2d8a34-1a37-451b-ab1a-271bc4e9daa7 -->
424
425
426
427
428<script type="text/javascript" async="" src="https://cdn.userway.org/widget.js?account=1QY30g7gXs&amp;platfAppInstalledSiteId=3872233&amp;shop=bokksu.com"></script>
428
429
430<!-- END app block --><!-- BEGIN app block: shopify://apps/gorgias-live-chat-helpdesk/blocks/gorgias/a66db725-7b96-4e3f-916e-6c8e6f87aaaa -->
431<script defer data-gorgias-loader-chat src="https://config.gorgias.chat/bundle-loader/shopify/snb-hashii.myshopify.com"></script>
431
432
433
434<script defer data-gorgias-loader-convert  src="https://content.9gtb.com/loader.js"></script>
434
435
436
437<script defer data-gorgias-loader-mailto-replace  src="https://config.gorgias.help/api/contact-forms/replace-mailto-script.js?shopName=snb-hashii"></script>
437
438
439
440<!-- END app block --><!-- BEGIN app block: shopify://apps/yotpo-product-reviews/blocks/settings/eb7dfd7d-db44-4334-bc49-c893b51b36cf -->
441
442
443  
443<script type="text/javascript" src="https://cdn-widgetsrepository.yotpo.com/v1/loader/4Kt06s6nDGIQ5QRkjcLrBcqBySp3M8NS1MLj32az?languageCode=en" async></script>
443
444
445
446
447  
448<!-- END app block --><!-- BEGIN app block: shopify://apps/maestra/blocks/maestra-embed/426c4c19-e366-44a7-a7e5-89fb1b642f46 -->
449<script>
450(function () {
451  window.maestra = window.maestra || function () {
452    window.maestra.queue.push(arguments);
453  };
454  window.maestra.queue = window.maestra.queue || [];
455  window.maestra('create', { endpointId: "bokksu.snb" });
456
457  
458  window.maestra('personalization.viewHomepage');
459  
460
461  var started = false;
462  function startTracker() {
463    if (started) return;
464    started = true;
465
466    if (typeof window.subscribe === 'function') {
467      window.subscribe("cart-update", function (event) {
468        if (event && event.cartData && typeof Shopify !== 'undefined'
469            && Shopify.analytics && typeof Shopify.analytics.publish === 'function') {
470          var priceCents = typeof event.cartData.final_price === 'number'
471            ? event.cartData.final_price
472            : (typeof event.cartData.price === 'number' ? event.cartData.price : undefined);
473          Shopify.analytics.publish("maestra_add_to_cart_internal", {
474            cartData: event.cartData,
475            productVariantId: String(event.cartData.variant_id || event.cartData.id || ''),
476            pricePerItem: priceCents === undefined ? undefined : priceCents / 100,
477            source: event.source || "unknown"
478          });
479        }
480      });
481    }
482
483    var s = document.createElement('script');
484    s.src = "https://api.maestra.io/scripts/v1/tracker.js";
485    s.async = true;
486    document.head.appendChild(s);
487  }
488
489  function analyticsAllowed() {
490    var privacy = window.Shopify && window.Shopify.customerPrivacy;
491    return !!privacy && typeof privacy.analyticsProcessingAllowed === 'function'
492      && privacy.analyticsProcessingAllowed();
493  }
494
495  document.addEventListener('visitorConsentCollected', function (ev) {
496    if (ev.detail && ev.detail.analyticsAllowed) startTracker();
497  });
498
499  if (!window.Shopify || typeof window.Shopify.loadFeatures !== 'function') {
500    startTracker();
501    return;
502  }
503
504  // Some CMPs write consent without visitorConsentCollected or load the privacy API after us.
505  var ticksLeft = 60;
506  var recheck = setInterval(function () {
507    if (!started && analyticsAllowed()) startTracker();
508    if (started || --ticksLeft <= 0) clearInterval(recheck);
509  }, 1000);
510
511  window.Shopify.loadFeatures(
512    [{ name: 'consent-tracking-api', version: '0.1' }],
513    function (error) {
514      if (!error && analyticsAllowed()) startTracker();
515    }
516  );
517})();
518</script>
518
519
520
521
522<!-- END app block --><!-- BEGIN app block: shopify://apps/onward/blocks/onward-protection-embed/b53f9cdb-2bd0-4ef4-be64-bb0b8b7f7dff -->
522<script type="text/javascript">
523  window.addEventListener('DOMContentLoaded', () => {
524  const onward = new OnwardSetup();
525  onward.addContainer('.cart__item-sub', {position: "beforebegin"});
526  onward.attachCheckoutButton('.checkout-btn-class button.cart__checkout', {
527    optOutSelector: '.cart__checkout-wrapper',
528    optOutPosition: 'afterend'
529  });
530});
531  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]","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","widget:checkout:qty_clamp"],"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,"orderEditingAllowAddProtection":true,"orderEditingAllowDiscountCodes":false,"orderEditingAllowUpsells":false,"orderEditingUpsellsCollectionId":null,"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"};
532  window.OnwardSettingsJson = Object.assign(
533    window.OnwardSettingsJson,
534    window.onwardSettingsOverrides ? window.onwardSettingsOverrides : {},
535    {
536      headlessClient: false,
537      onwardWidget: { policy_bundle: {"config":{"checkout_plus_button_order":"checkout_plus_first"},"policy_settings":{"checkout_plus_button_order":{"policies":[]}}} },
538      locale: {
539        currency_iso_code: "USD",
540        currency_rate: Shopify.currency?.rate || "1.0",
541        request_locale: Shopify?.locale || 'en'
542      }
543    }
544  );
545  Object.freeze(window.OnwardSettingsJson);
546  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"}}}};
547  Object.freeze(window.OnwardTranslationsJson);
548
549  
550
551  window.OnwardCustomer = { isB2b: null, tags: null };
552</script>
552
553
554<style id="onward-styles-sheet">
555  .cart-item:has(a[href*="/products/onward-package-protection"]),
556  .cart__item:has(a[href*="/products/onward-package-protection"]),
557  .upez--cart-item:has(a[href*="/products/onward-package-protection"]),
558  .upcart-product-item:has(a[href*="/products/onward-package-protection"]),
559  .rebuy-cart__flyout-item:has(a[href*="/products/onward-package-protection"]) {
560    display: none;
561  }
562
563  #onward-container section {
564  max-width: unset !important;
565}
566
567.cart__footer .onward-opt-out-link {
568  padding-bottom: 10px !important;
569}
570</style>
571
572
573<!-- END app block -->
573<script src="https://cdn.shopify.com/extensions/01a0b5e5-aa1c-7f8a-b804-75389ad6a12c/trakt-351/assets/onward.js" type="text/javascript" defer="defer"></script>
573
574<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
575<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 575
575
576<script>
577  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
578</script>
vendor: 1 bytes, line 578
578
579<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}
579).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: ["16072cab","8450a54b"],webPixelsConfigList: [{"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\"
579:\"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"},{"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"}
579,{"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":"7a47b06116c806e4367c27d301f4f458","type":"APP","apiClientId":3546795,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"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"},{"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"}
579,{"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":"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","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"138710351958","themePublished":"true","eventMetadataId":"407446a2-bf1f-4a19-aff7-12a4c06d9a8c","pageType":"home","shopId":"65962311766","storefrontBaseUrl":"https:\/\/bokksu.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"16072cab\", \"8450a54b\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
579<script>
580  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
581  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
582  window.ShopifyAnalytics.meta.currency = 'USD';
583  var meta = {"page":{"pageType":"home","requestId":"4b6c279a-42c4-40d7-97be-5f25e2b7720d-1790269752"}};
584  for (var attr in meta) {
585    window.ShopifyAnalytics.meta[attr] = meta[attr];
586  }
587</script>
vendor: 1 bytes, line 587
587
588<script class="analytics">
589  (function () {
590    var customDocumentWrite = function(content) {
591      var jquery = null;
592
593      if (window.jQuery) {
594        jquery = window.jQuery;
595      } else if (window.Checkout && window.Checkout.$) {
596        jquery = window.Checkout.$;
597      }
598
599      if (jquery) {
600        jquery('body').append(content);
601      }
602    };
603
604    var hasLoggedConversion = function(token) {
605      if (token) {
606        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
607      }
608      return false;
609    }
610
611    var setCookieIfConversion = function(token) {
612      if (token) {
613        var twoMonthsFromNow = new Date(Date.now());
614        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
615
616        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
617      }
618    }
619
620    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
621    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
622    if (trekkie.integrations) {
623      return;
624    }
625    trekkie.methods = [
626      'identify',
627      'page',
628      'ready',
629      'track',
630      'trackForm',
631      'trackLink'
632    ];
633    trekkie.factory = function(method) {
634      return function() {
635        var args = Array.prototype.slice.call(arguments);
636        args.unshift(method);
637        trekkie.push(args);
638        if (method == 'track' || method == 'page') {
639          try {
640            if (window.__TREKKIE_SHIM_QUEUE == null) {
641              window.__TREKKIE_SHIM_QUEUE = [];
642            }
643            window.__TREKKIE_SHIM_QUEUE.push({
644              from: 'trekkie-stub',
645              method: method,
646              args: args.slice(1)
647            });
648          } catch (e) {
649            // no-op
650          }
651        }
652        return trekkie;
653      };
654    };
655    for (var i = 0; i < trekkie.methods.length; i++) {
656      var key = trekkie.methods[i];
657      trekkie[key] = trekkie.factory(key);
658    }
659    trekkie.load = function(config) {
660      trekkie.config = config || {};
661      trekkie.config.initialDocumentCookie = document.cookie;
662      var first = document.getElementsByTagName('script')[0];
663var script = document.createElement('script');
664script.type = 'text/javascript';
665script.onerror = function(e) {
666  var scriptFallback = document.createElement('script');
667  scriptFallback.type = 'text/javascript';
668  scriptFallback.onerror = function(error) {
669          var Monorail = {
670      produce: function produce(monorailDomain, schemaId, payload) {
671        var currentMs = new Date().getTime();
672        var event = {
673          schema_id: schemaId,
674          payload: payload,
675          metadata: {
676            event_created_at_ms: currentMs,
677            event_sent_at_ms: currentMs
678          }
679        };
680        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
681      },
682      sendRequest: function sendRequest(endpointUrl, payload) {
683        // Try the sendBeacon API
684        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
685          var blobData = new window.Blob([payload], {
686            type: 'text/plain'
687          });
688
689          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
690            return true;
691          } // sendBeacon was not successful
692
693        } // XHR beacon
694
695        var xhr = new XMLHttpRequest();
696
697        try {
698          xhr.open('POST', endpointUrl);
699          xhr.setRequestHeader('Content-Type', 'text/plain');
700          xhr.send(payload);
701        } catch (e) {
702          console.log(e);
703        }
704
705        return false;
706      },
707      isIos12: function isIos12() {
708        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
709      }
710    };
711    Monorail.produce('monorail-edge.shopifysvc.com',
712      'trekkie_storefront_load_errors/1.1',
713      {shop_id: 65962311766,
714      theme_id: 138710351958,
715      app_name: "storefront",
716      context_url: window.location.href,
717      source_url: "//bokksu.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"});
718
719  };
720  scriptFallback.async = true;
721  scriptFallback.src = '//bokksu.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js';
722  first.parentNode.insertBefore(scriptFallback, first);
723};
724script.async = true;
725script.src = '//bokksu.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js';
726first.parentNode.insertBefore(script, first);
727
728    };
729    trekkie.load(
730      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":65962311766,"isMerchantRequest":null,"themeId":138710351958,"themeCityHash":"17855864791714387038","contentLanguage":"en","currency":"USD","eventMetadataId":"407446a2-bf1f-4a19-aff7-12a4c06d9a8c"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}}
731    );
732
733    var loaded = false;
734    trekkie.ready(function() {
735      if (loaded) return;
736      loaded = true;
737
738      window.ShopifyAnalytics.lib = window.trekkie;
739
740      var originalDocumentWrite = document.write;
741      document.write = customDocumentWrite;
742      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
743      document.write = originalDocumentWrite;
744
745      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
746      var token = match? match[1]: undefined;
747      if (!hasLoggedConversion(token)) {
748        setCookieIfConversion(token);
749        
750      }
751    });
752
753    window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"4b6c279a-42c4-40d7-97be-5f25e2b7720d-1790269752","shopifyEmitted":true});
754
755    var eventsListenerScript = document.createElement('script');
756    eventsListenerScript.async = true;
757    eventsListenerScript.src = "//bokksu.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
758    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
759})();</script>
vendor: 1 bytes, line 759
759
760<script
761  defer
762  src="https://bokksu.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js"
763  data-application="storefront-renderer"
764  data-shop-id="65962311766"
765  data-render-region="gcp-us-central1"
766  data-page-type="index"
767  data-theme-instance-id="138710351958"
768  data-theme-name="Expanse"
769  data-theme-version="4.3.4"
770  data-monorail-region="shop_domain"
771  data-resource-timing-sampling-rate="10"
772  data-shs="true"
773  data-shs-beacon="true"
774  data-shs-export-with-fetch="true"
775  data-shs-logs-sample-rate="1"
776  data-shs-beacon-endpoint="https://bokksu.com/api/collect"
777></script>
777
778<meta name="shopify-y" content="fe327322-27f0-48a2-b4d5-da8cc853f588" data-expiration="1821827352000"><meta name="shopify-s" content="ea199bf7-291c-4129-bad9-48672a4911fa" data-expiration="1790271552000"><meta name="new-cookie-storage-activated" content="t">
779</head>
780
781  <body
782    class="template-index 
783    sugoi-mart-menu 
784    
785    
786      bokksu-store 
787     
788    "
789    data-transitions="true"
790    data-button_style="round-slight"
791    data-edges=""
792    data-type_header_capitalize="false"
793    data-swatch_style="round"
794    data-grid-style="grey-square"
795    data-min-checkout = "27"
796    data-frozen-min-shipping = "99"
797    data-min-shipping = "149"
798    ><a href="#MainContent" class="skip-to-content">Skip to content</a>
799    <style>
800      .skip-to-content {
801        position: absolute;
802        left: -9999px;
803        top: auto;
804        width: 1px;
805        height: 1px;
806        overflow: hidden;
807        z-index: 10000;
808      }
809      .skip-to-content:focus,
810      .skip-to-content:focus-visible {
811        position: fixed;
812        top: 0;
813        left: 0;
814        width: auto;
815        height: auto;
816        padding: 1rem 1.25rem;
817        background: #111;
818        color: #fff;
819        font-weight: 600;
820        text-decoration: underline;
821        clip: auto;
822        outline: 3px solid #ffbf00;
823        outline-offset: 0;
824      }
825    </style>
826
827    
827<script>
828    window.dataLayer = window.dataLayer || [];
829
830    const dataLayerHelper = (function() {
831        
832            const storeAbbr = 'SNB';
833        
834
835        // Helper function to get a cookie by name
836        function getCookie(name) {
837            const value = "; " + document.cookie;
838            const parts = value.split("; " + name + "=");
839            if (parts.length == 2) return parts.pop().split(";").shift();
840        }
841
842        // Helper function to set a cookie
843        function setCookie(name, value, minutes) {
844            const d = new Date();
845            d.setTime(d.getTime() + (minutes*60*1000));
846            const expires = "expires=" + d.toUTCString();
847            document.cookie = name + "=" + value + ";" + expires + ";path=/";
848        }
849
850        // Function to get UTM parameters from the URL
851        function getUTM() {
852            const urlParams = new URLSearchParams(window.location.search);
853            return {
854                source: urlParams.get('utm_source') || null,
855                medium: urlParams.get('utm_medium') || null,
856                campaign: urlParams.get('utm_campaign') || null
857            };
858        }
859
860        // Check cookies for UTM values or set them if they don't exist
861        function getUTMParameters() {
862            const utmFromURL = getUTM();
863
864            if (utmFromURL.source && getCookie('utm_source') != utmFromURL.source) {
865                setCookie('utm_source', utmFromURL.source, 15);
866            }
867            
868            if (utmFromURL.medium && getCookie('utm_medium') != utmFromURL.medium) {
869                setCookie('utm_medium', utmFromURL.medium, 15);
870            }
871        
872            if (utmFromURL.campaign && getCookie('utm_campaign') != utmFromURL.campaign) {
873                setCookie('utm_campaign', utmFromURL.campaign, 15);
874            }
875        
876            const utmFromCookies = {
877                source: getCookie('utm_source') || null,
878                medium: getCookie('utm_medium') || null,
879                campaign: getCookie('utm_campaign') || null,
880                landing_page: window.location.href
881            };
882        
883            return utmFromCookies;
884        }
885        
886         // Check if the value is an integer and convert it to a float ex: 5990 => 59.90
887        function checkAndConvert(value) {           
888            if (Number.isInteger(value)) {
889                return value / 100;
890            } else {
891                return value;
892            }
893        }
894
895        function cartSubtotal(items) {
896            return items.reduce((total, item) => total + (item.price * item.quantity), 0);
897        }
898     
899        // Get cart items from the cart object
900        function getCartItems() {
901            
902            let cartItems = [
903                
904              ];
905            return cartItems;
906        }
907
908        // Get checkout items from the checkout object        
909        function getCheckoutItems() {
910            if(typeof Shopify !== 'undefined' && Shopify.Checkout){
911                let checkoutItems = [
912                    
913                ];
914                return checkoutItems;
915            }
916        }
917        
918        // Get only the fields we need from the cart items
919        function extractSelectedFields(cart) {            
920            return cart.map(item => {
921                return {
922                    variant_id: item.id,
923                    product_id: item.product_id,
924                    sku: item.sku,
925                    title: item.title,
926                    quantity: item.quantity,
927                    price: checkAndConvert(item.price),
928                    vendor: item.vendor,
929                    category: item.product_type
930                };
931            });
932        }
933
934        // Function to generate unique event_id
935        function generateEventId() {
936            const timestamp = Date.now(); // Current timestamp in milliseconds
937            const randomNum = Math.floor(Math.random() * 1000000); // Random number between 0 and 999999
938            return `${timestamp}_${randomNum}`;
939        }
940
941        /* Make item object */
942        const itemObject = async (itemData, quantity) => {
943            return {
944                product_id: itemData.product.id,
945                id: itemData.variant.id,
946                handle: itemData.product.handle,
947                quantity: quantity,
948                price: itemData.variant.price,
949                compare_price: itemData.variant.compare_at_price,
950                sku: itemData.variant.sku,                
951                image: itemData.product.images[0]?.src || '',
952                url: `/products/${itemData.product.handle}`,                
953                title: itemData.product.title
954            };
955        };
956
957        const sumQuantities = (items) => {
958            return items.reduce((total, item) => {
959                return total + (item.quantity || 0);
960            }, 0);
961        };
962        
963        async function fetchProductWithVariant(handle, variantId) {
964            try {
965                const response = await fetch(`/products/${handle}.json`);
966                const data = await response.json();
967                const product = data.product;
968                let variant = product.variants.find(variant => variant.id == variantId);
969                return { product, variant };
970            } catch (error) {
971                console.error('Error:', error);
972            }
973        }
974
975        async function fetchCartItems() {
976            // Create a delay function to wait for 2 seconds
977            function delay(ms) {
978                return new Promise(resolve => setTimeout(resolve, ms));
979            }
980
981            try {
982                // Wait for 2 seconds before fetching the cart data
983                await delay(2000);
984
985                const response = await fetch(`/cart.json`);
986                const data = await response.json();
987
988                // Filter out the item with sku 'ONWARDINS01'
989                const filteredItems = data.items.filter(item => item.sku !== 'ONWARDINS01');
990                
991                return filteredItems;
992            } catch (error) {
993                console.error('Error:', error);
994            }
995        }
996
997        function createEcommerceEntry(item, cartItems, quantityAdjustment = 0) {
998            return {
999                'items': [{
1000                    'item_id'         : item.product_id,
1001                    'item_variant'    : item.id,
1002                    'item_name'       : item.title,                    
1003                    'price'           : checkAndConvert(item.price),
1004                    'compare_price'   : checkAndConvert(item.compare_at_price),
1005                    'item_brand'      : storeAbbr,
1006                    'item_category'   : item.type,
1007                    'vendor'          : item.vendor,
1008                    'quantity'        : Number(item.quantity) + Number(quantityAdjustment),                    
1009                    'image_url'       : item.image,
1010                    'product_url'     : item.url,
1011                    'sku'             : item.sku,
1012                    'customer_id'     : null,
1013                    'customer_email'  : null,                                                
1014                }],
1015                'cart': {
1016                    'cart_items'      : extractSelectedFields(cartItems),
1017                    'cart_quantity'   : sumQuantities(cartItems),
1018                    'cart_subtotal'   : checkAndConvert(cartSubtotal(cartItems))      
1019                }
1020            };
1021        }                         
1022        return {
1023            userData: function () {
1024                // Customer data object
1025                let customerData = {
1026                    is_logged_in: false,
1027                    type: 'guest',
1028                    id: null,
1029                    email: null,
1030                    first_name: null,
1031                    last_name: null,
1032                    phone_number: null,
1033                    accepts_marketing: null,
1034                    total_spent: null,
1035                    orders_count: null,
1036                    default_address: null
1037                };
1038
1039                // Liquid code to get customer data if logged in
1040                
1041
1042                // Push the customer data to the dataLayer
1043                window.dataLayer.push({
1044                    'event': 'dl_user_data',
1045                    'user_data': customerData,
1046                    'marketing': getUTMParameters()
1047                });
1048            },                                    
1049            viewItem: function() {               
1050                // SKU ONWARDINS01 must be ignored         
1051                let ecommerce = {
1052                    'items': [{
1053                        'item_id'         : null,
1054                        'item_variant'    : null,
1055                        'item_name'       : null,                        
1056                        'price'           : "",
1057                        'item_brand'      : storeAbbr,
1058                        'item_category'   : null,                                             
1059                        'vendor'          : null,         
1060                        'image_url'       : 'https://bokksu.com/cdn/shopifycloud/storefront/assets/no-image-2048-a2addb12_grande.gif',
1061                        'product_url'     : '',
1062                        'sku'             : null                                                        
1063                    }],
1064                    'cart': { 
1065                        'cart_items'      : getCartItems(),
1066                        'cart_quantity'   : sumQuantities(getCartItems()),
1067                        'cart_subtotal'   : cartSubtotal(getCartItems()),
1068                    }
1069                };
1070                            
1071                dataLayer.push({
1072                    'pageType' : 'Product',
1073                    'event'    : 'dl_view_item',
1074                    'event_id': generateEventId(),
1075                     ecommerce
1076                });        
1077                    
1078            },
1079            viewCollection: function() {      
1080                                   
1081                let ecommerce = {
1082                    'collection': {
1083                        'id'              : null,
1084                        'handle'          : null,
1085                        'description'     : null,
1086                        'products_count'  : null,                                                                            
1087                        'products'  : [
1088                            
1089                        ],                                                    
1090                    },
1091                    'cart': { 
1092                        'cart_items'      : getCartItems(),
1093                        'cart_quantity'   : sumQuantities(getCartItems()),
1094                        'cart_subtotal'   : cartSubtotal(getCartItems()),
1095                    }
1096                };               
1097                dataLayer.push({
1098                    'pageType' : 'Collection',
1099                    'event'    : 'dl_view_item_list',
1100                    'event_id': generateEventId(),
1101                     ecommerce
1102                });            
1103            },
1104            addToCart: async function(handle, variantId, quantity, quantityAdjustment = 1) {
1105                this.userData();
1106                const itemData = await fetchProductWithVariant(handle, variantId);
1107                const currentCartItems = await fetchCartItems();
1108
1109                const item = await itemObject(itemData, quantity);
1110                
1111                // SKU ONWARDINS01 must be ignored
1112                if (item.sku == 'ONWARDINS01') {
1113                    return;
1114                }
1115
1116                const ecommerce = createEcommerceEntry(item, currentCartItems, quantityAdjustment);
1117                dataLayer.push({
1118                    'event': 'dl_add_to_cart',
1119                    'event_id': generateEventId(),
1120                    ecommerce
1121                });
1122            },
1123            removeFromCart: async function(handle, variantId, quantity, quantityAdjustment = -1) {
1124                this.userData();
1125                const itemData = await fetchProductWithVariant(handle, variantId);
1126                const currentCartItems = await fetchCartItems();
1127                const item = await itemObject(itemData, quantity);
1128
1129                // SKU ONWARDINS01 must be ignored
1130                if (item.sku == 'ONWARDINS01') {
1131                    return;
1132                }
1133
1134                const ecommerce = createEcommerceEntry(item, currentCartItems, quantityAdjustment);
1135                dataLayer.push({
1136                    'event': 'dl_remove_from_cart',
1137                    'event_id': generateEventId(),
1138                    ecommerce
1139                });
1140            },            
1141            checkout: function() {
1142                this.userData();
1143                if(typeof Shopify !== 'undefined' && Shopify.Checkout){
1144                    let ecommerce = {
1145                        'items': [{
1146                            'transaction_id': null,
1147                            'order_id': null,
1148                            'customer_id': null,
1149                            'affiliation': "Bokksu Snack Box",
1150                            'value': "",
1151                            'tax': "",
1152                            'shipping': "",
1153                            'subtotal': "",
1154                            'currency': null,
1155                            
1156                            'email': null,                                                      
1157                        }],
1158                        'cart': {
1159                            'cart_items': getCheckoutItems(),
1160                            'cart_quantity'   : sumQuantities(getCheckoutItems()),
1161                        }
1162                    };
1163            
1164                    if(Shopify.Checkout.step){ 
1165                        if(Shopify.Checkout.step.length > 0){
1166                            if (Shopify.Checkout.step === 'contact_information'){
1167                                dataLayer.push({
1168                                    'event'    :'dl_begin_checkout',
1169                                    'pageType' :'Customer Information',
1170                                    'step': 1,
1171                                    'event_id': generateEventId(),
1172                                    ecommerce
1173                                });
1174                            }else if (Shopify.Checkout.step === 'shipping_method'){
1175                                dataLayer.push({
1176                                    'event'    :'add_shipping_info',
1177                                    'pageType' :'Shipping Information',
1178                                    'event_id': generateEventId(),
1179                                    ecommerce
1180                                });
1181                            }else if( Shopify.Checkout.step === "payment_method" ){
1182                                dataLayer.push({
1183                                    'event'    :'add_payment_info',
1184                                    'event_id': generateEventId(),
1185                                    'pageType' :'Add Payment Info',
1186                                    ecommerce
1187                                });
1188                            }
1189                        }
1190                                    
1191                        if(Shopify.Checkout.page == "thank_you"){
1192                            dataLayer.push({
1193                            'pageType' :'Transaction',
1194                            'event_id': generateEventId(),
1195                            'event'    :'dl_purchase',
1196                            ecommerce
1197                            });
1198                        }               
1199                    }
1200                }
1201            },            
1202        };
1203    })();
1204
1205    /*
1206        EVENTS ADD TO CART, REMOVE FROM CART, PURCHASE, PDP PAGE VIEW, CHECKOUT
1207    */
1208
1209    /* User Data */
1210    dataLayerHelper.userData();
1211      
1212    /* PDP Page view*/
1213    
1214
1215    
1216
1217    /* Checkout Page view*/
1218    setTimeout(function() {
1219        if(typeof Shopify !== 'undefined' && Shopify.Checkout){        
1220            dataLayerHelper.checkout();
1221        }
1222    }, 2000);
1223    
1224    /* Add and Remove cart items (CART and PDP minus and plus)*/
1225    document.addEventListener('click', async function(event) {
1226        const button = event.target.closest('.js-qty__wrapper button');
1227        if (button) {
1228            const input = button.closest('.js-qty__wrapper').querySelector('input');
1229            if (input) {
1230                const handle = input.getAttribute('data-product-handle');
1231                const variantId = input.getAttribute('data-variant-id');
1232                
1233                if (button.classList.contains('js-qty__adjust--minus')) {
1234                    await dataLayerHelper.removeFromCart(handle, variantId, input.value, 0);
1235                } else if (button.classList.contains('js-qty__adjust--plus')) {            
1236                    await dataLayerHelper.addToCart(handle, variantId, input.value, 0);
1237                }
1238            }
1239        }
1240    });
1241    
1242    /* Add and Remove cart items (HOMEPAGE) */
1243    document.addEventListener('click', async function(event) {
1244        const target = event.target.closest('.qty-custom-plus, .qty-custom-minus, .quick_add_to_cart');
1245        if (!target) return;
1246
1247        const gridItem = target.closest('.grid-item');
1248        if (!gridItem) return;
1249
1250        const handle = gridItem.getAttribute('data-product-handle');
1251        const variantId = gridItem.getAttribute('data-variant-id'); 
1252
1253        const quantitySpan = gridItem.querySelector('.custom-qty');
1254        let quantity = 0;
1255        if (quantitySpan){
1256            quantity = parseInt(quantitySpan.textContent);       
1257        };
1258
1259        if (target.classList.contains('qty-custom-minus')) {
1260            await dataLayerHelper.removeFromCart(handle, variantId, quantity, -1);
1261        } else if (target.classList.contains('qty-custom-plus')) {
1262            await dataLayerHelper.addToCart(handle, variantId, quantity, 1);        
1263        } else if (target.classList.contains('quick_add_to_cart')) {
1264            await dataLayerHelper.addToCart(handle, variantId, 1, 0);
1265        }
1266    });
1267
1268    /* Add button cart (Customers Also Loved) & add button cart normal state (PDP)*/
1269    document.addEventListener('click', async function(event) {
1270        const button = event.target.closest('.shopify-reco-cart-add button, .pdp-atc');
1271        if (button) {                                   
1272            const handle = button.getAttribute('data-product-handle');
1273            const variantId = button.getAttribute('data-variant-id');
1274            await dataLayerHelper.addToCart(handle, variantId, 1, 0);
1275        }
1276    });   
1277
1278    /* Collection Single button and plus and minus using FS*/
1279    window.addEventListener('fs-custom-events-product-clicked', (e) => {
1280        if(e && e.detail && e.detail.id){
1281            const productId = e.detail.id                    
1282            const handle = e.detail.productURL.split('/').pop();
1283            const variantId = e.detail.s.split('::').pop();         
1284
1285            const shadow = document.querySelector('#fast-simon-serp-app') && document.querySelector('#fast-simon-serp-app').shadowRoot ? document.querySelector('#fast-simon-serp-app').shadowRoot:null;
1286            if(shadow){
1287                if(shadow.querySelector(`.fs-results-product-card[data-product-id="`+productId+`"]`)){
1288                const element = shadow.querySelector(`.fs-results-product-card[data-product-id="`+productId+`"]`);
1289                if(element.querySelector(".add-item-to-cart .qty-custom-minus")){                    
1290                    element.querySelector(".add-item-to-cart .qty-custom-minus").addEventListener("click", function () {
1291                        const quantitySpan = element.querySelector('.custom-qty');
1292                        let quantity = 0;
1293                        if (quantitySpan){
1294                            quantity = parseInt(quantitySpan.textContent);       
1295                        };
1296                        dataLayerHelper.addToCart(handle, variantId, quantity, -1);                     
1297                    });
1298                } 
1299
1300                if(element.querySelector(".add-item-to-cart .qty-custom-plus")){
1301                    element.querySelector(".add-item-to-cart .qty-custom-plus").addEventListener("click", function () {
1302                        const quantitySpan = element.querySelector('.custom-qty');
1303                        let quantity = 0;
1304                        if (quantitySpan){
1305                            quantity = parseInt(quantitySpan.textContent);       
1306                        };
1307                        dataLayerHelper.addToCart(handle, variantId, quantity, 1);                   
1308                    });
1309                }
1310                
1311                if(element.querySelector(".qty-custom-add")){
1312                    dataLayerHelper.addToCart(handle, variantId, 1, 0);
1313                }
1314                }
1315            }          
1316       }        
1317    });
1318</script>
1318             
1319
1320
1321      
1322    <!-- Google Tag Manager (noscript) -->
vendor: 77 bytes, lines 1322-1324
1322
1323    
1324    <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
1324GTM-PR4MBW
vendor: 84 bytes, lines 1324-1325
1324" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1325
1326<!-- End Google Tag Manager (noscript) -->
1327
1328    
1329      
1329<script type="text/javascript">
1330        window.setTimeout(function() { document.body.className += " loaded"; }, 25);
1331      </script>
1331
1332    
1333
1334    
1335 
1336 <style>
1337  :root {
1338    --sale-badge: #b73d09;
1339      --badge-best-seller: #b73d09;
1340      --badge-new: #b73d09;
1341      --brand_color_1: #b73d09;
1342      --cta_filled_static : #b73d09;
1343      --cta_outline_primary_static : #b73d09;
1344      --cta_outline_primary_hover : #b73d09;
1345      --quantity-selector-primary: #b73d09;
1346      --quantity-selector-secondary: #b73d09;
1347      --primary-color : #b73d09;
1348      --collection-primary-static : #b73d09;
1349      --collection-primary-static-hover : #b73d09;
1350      --colorTextSavings : #b73d09;
1351      --colorNav : #f4f6f1;
1352
1353  }
1354  .grid-product__price--savings{
1355    color: #b73d09;
1356  }
1357</style>
1358
1359
1360
1361
1362
1363
1364  
1365    <style> .Rise__widget { display:none !important } </style>
1366  
1367
1368    
1369    <div id="PageContainer" class="page-container">
1370      <div class="transition-body"><!-- BEGIN sections: header-group -->
1371<div id="shopify-section-sections--17749310636118__toolbar" class="shopify-section shopify-section-group-header-group toolbar-section">
1372
1373<div data-section-id="sections--17749310636118__toolbar" data-section-type="toolbar">
1374  <div class="toolbar">
1375    <div class="page-width">
1376      <div class="toolbar__content">
1376<script src="//bokksu.com/cdn/shop/t/3/assets/load-image-section.js?v=162969312039988435871751964575" defer="defer"></script>
1376
1377  <div class="toolbar__item toolbar__item--announcements">
1378    <div class="announcement-bar text-center">
1379      <div class="slideshow-wrapper">
1380        <button type="button" class="visually-hidden slideshow__pause" data-id="sections--17749310636118__toolbar" aria-label="Pause announcements" aria-pressed="false">
1381          <span class="slideshow__pause-stop" aria-hidden="true">
1382            <svg focusable="false" role="presentation" class="icon icon-pause" viewBox="0 0 10 13"><path d="M0 0h3v13H0zm7 0h3v13H7z" fill-rule="evenodd"/></svg>
1383          </span>
1384          <span class="slideshow__pause-play" aria-hidden="true">
1385            <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>
1386          </span>
1387        </button>
1388
1389        <div
1390          id="AnnouncementSlider"
1391          class="announcement-slider "
1392          role="region"
1393          aria-roledescription="carousel"
1394          aria-label="Announcements"
1395          data-block-count="1">
1396<div
1397                  id="AnnouncementSlide-announcement_a8DXCa"
1398                  class="slideshow__slide announcement-slider__slide"
1399                  role="group"
1400                  aria-roledescription="announcement"
1401                  aria-label="1 of 1"
1402                  data-index="0"
1403                >
1404                  <div class="announcement-slider__content"><div class="medium-up--hide" aria-hidden="true">
1405                        <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>
1406                      </div>
1407                      <div class="small--hide free-shiping">
1408                        <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>
1409                      </div></div>
1410                </div></div>
1411      </div>
1412    </div>
1413  </div>
1414
1415
1416<script>
1417  $(document).ready(function(){
1418    $('#AnnouncementSlider').removeAttr("tabindex")
1419  })
1420
1421  // a11y: keep off-screen announcement slides out of the keyboard tab order
1422  // WITHOUT using inert (which would kick screen-reader virtual focus when
1423  // the slide rotates). Use tabindex="-1" on focusable descendants instead.
1424  (function () {
1425    var slider = document.getElementById('AnnouncementSlider');
1426    if (!slider) return;
1427    var FOCUSABLE_SEL = 'a[href], button, input, select, textarea, iframe, [tabindex]';
1428
1429    function setSlideTabbable(slide, tabbable) {
1430      var focusables = slide.querySelectorAll(FOCUSABLE_SEL);
1431      for (var i = 0; i < focusables.length; i++) {
1432        var el = focusables[i];
1433        if (tabbable) {
1434          var orig = el.getAttribute('data-a11y-orig-tabindex');
1435          if (orig !== null && orig !== undefined) {
1436            if (orig === '__none__') el.removeAttribute('tabindex');
1437            else el.setAttribute('tabindex', orig);
1438            el.removeAttribute('data-a11y-orig-tabindex');
1439          } else {
1440            el.removeAttribute('tabindex');
1441          }
1442        } else {
1443          if (el.getAttribute('data-a11y-orig-tabindex') === null) {
1444            var existing = el.getAttribute('tabindex');
1445            el.setAttribute('data-a11y-orig-tabindex', existing === null ? '__none__' : existing);
1446          }
1447          el.setAttribute('tabindex', '-1');
1448        }
1449      }
1450    }
1451
1452    function normalizeDots() {
1453      // Remove dots from keyboard tab order and screen reader navigation.
1454      // Guard: only set if value differs to prevent MutationObserver loops.
1455      var dotsContainer = slider.parentNode && slider.parentNode.querySelector('.flickity-page-dots');
1456      if (dotsContainer && dotsContainer.getAttribute('aria-hidden') !== 'true') {
1457        dotsContainer.setAttribute('aria-hidden', 'true');
1458      }
1459      var dots = slider.querySelectorAll('.flickity-page-dots .dot');
1460      if (!dots.length && dotsContainer) dots = dotsContainer.querySelectorAll('.dot');
1461      for (var i = 0; i < dots.length; i++) {
1462        if (dots[i].getAttribute('tabindex') !== '-1') {
1463          dots[i].setAttribute('tabindex', '-1');
1464        }
1465        if (dots[i].getAttribute('aria-current') === 'step') {
1466          dots[i].setAttribute('aria-current', 'true');
1467        }
1468      }
1469    }
1470
1471    function applyState() {
1472      var slides = slider.querySelectorAll('.announcement-slider__slide');
1473      for (var i = 0; i < slides.length; i++) {
1474        var slide = slides[i];
1475        var isActive = slide.classList.contains('is-selected');
1476        setSlideTabbable(slide, isActive);
1477        if (isActive) {
1478          slide.removeAttribute('aria-hidden');
1479        } else if (!slide.contains(document.activeElement)) {
1480          slide.setAttribute('aria-hidden', 'true');
1481        }
1482      }
1483      normalizeDots();
1484    }
1485
1486    function init() {
1487      applyState();
1488      if (typeof MutationObserver !== 'function' || slider.dataset.a11ySlideObserved) return;
1489      slider.dataset.a11ySlideObserved = '1';
1490      var slides = slider.querySelectorAll('.announcement-slider__slide');
1491      var observer = new MutationObserver(function (mutations) {
1492        for (var i = 0; i < mutations.length; i++) {
1493          if (mutations[i].attributeName === 'class') {
1494            applyState();
1495            break;
1496          }
1497        }
1498      });
1499      for (var j = 0; j < slides.length; j++) {
1500        observer.observe(slides[j], { attributes: true, attributeFilter: ['class'] });
1501      }
1502      // Watch dot list for class changes only (slide rotation).
1503      // Do NOT watch aria-current or aria-label — we set those ourselves
1504      // and watching them causes infinite observer loops.
1505      var dotsContainer = slider.parentNode && slider.parentNode.querySelector('.flickity-page-dots');
1506      if (dotsContainer) {
1507        var dotObserver = new MutationObserver(function () {
1508          clearTimeout(slider._dotDebounce);
1509          slider._dotDebounce = setTimeout(normalizeDots, 50);
1510        });
1511        dotObserver.observe(dotsContainer, {
1512          subtree: true,
1513          attributes: true,
1514          attributeFilter: ['class']
1515        });
1516      }
1517    }
1518    if (document.readyState === 'loading') {
1519      document.addEventListener('DOMContentLoaded', init);
1520    } else {
1521      init();
1522    }
1523    setTimeout(init, 500);
1524
1525    // ------------------------------------------------------------------
1526    // WCAG 2.2.2: pause autoplay on keyboard focus, hover, and when the
1527    // user prefers reduced motion. Respect the explicit pause-button
1528    // click so we don't override the user's choice.
1529    // ------------------------------------------------------------------
1530    var getFlickity = function () {
1531      return (window.Flickity && typeof Flickity.data === 'function')
1532        ? Flickity.data(slider)
1533        : null;
1534    };
1535    var wrapper = slider.closest('.slideshow-wrapper');
1536    var userPaused = function () {
1537      var btn = wrapper && wrapper.querySelector('.slideshow__pause');
1538      return !!(btn && btn.classList.contains('is-paused'));
1539    };
1540    var reducedMotionPaused = false;
1541    var pauseAutoplay = function () {
1542      var fi = getFlickity();
1543      if (fi && typeof fi.pausePlayer === 'function') fi.pausePlayer();
1544    };
1545    var resumeAutoplay = function () {
1546      if (userPaused() || reducedMotionPaused) return;
1547      var fi = getFlickity();
1548      if (fi && typeof fi.unpausePlayer === 'function') fi.unpausePlayer();
1549    };
1550
1551    if (wrapper) {
1552      wrapper.addEventListener('focusin', pauseAutoplay);
1553      wrapper.addEventListener('focusout', function (e) {
1554        if (!wrapper.contains(e.relatedTarget)) resumeAutoplay();
1555      });
1556      wrapper.addEventListener('mouseenter', pauseAutoplay);
1557      wrapper.addEventListener('mouseleave', resumeAutoplay);
1558    }
1559
1560    if (window.matchMedia) {
1561      var rmQuery = window.matchMedia('(prefers-reduced-motion: reduce)');
1562      var applyReducedMotion = function () {
1563        reducedMotionPaused = rmQuery.matches;
1564        var fi = getFlickity();
1565        if (!fi) return;
1566        if (reducedMotionPaused) {
1567          if (typeof fi.stopPlayer === 'function') fi.stopPlayer();
1568          else if (typeof fi.pausePlayer === 'function') fi.pausePlayer();
1569        } else if (!userPaused()) {
1570          if (typeof fi.unpausePlayer === 'function') fi.unpausePlayer();
1571        }
1572      };
1573      var rmTries = 0;
1574      var rmPoll = setInterval(function () {
1575        if (getFlickity() || ++rmTries > 20) {
1576          clearInterval(rmPoll);
1577          if (getFlickity()) applyReducedMotion();
1578        }
1579      }, 250);
1580      if (typeof rmQuery.addEventListener === 'function') {
1581        rmQuery.addEventListener('change', applyReducedMotion);
1582      } else if (typeof rmQuery.addListener === 'function') {
1583        rmQuery.addListener(applyReducedMotion);
1584      }
1585    }
1586  })();
1587</script>
1587
1588</div>
1589    </div>
1590  </div>
1591</div>
1592
1593</div><div id="shopify-section-sections--17749310636118__header" class="shopify-section shopify-section-group-header-group header-section">
1594
1595 <style>
1596  .sugoi-mart-mob-menu .slide-nav__wrapper ul li a:hover,
1597  .sugoi-mart-mob-menu .slide-nav__wrapper ul li button:hover .slide-nav__link {
1598    background: none !important;
1599    color: #ffffff !important;
1600  }
1601 </style>
1602
1603
1604<style>
1605
1606.cart__item--subtotal {
1607    font-size: 14px;
1608    line-height: 1.2;
1609    margin: 0;
1610}
1611
1612.cart_savings {
1613    font-size: 16px;
1614    line-height: 1.3;
1615    margin-bottom: 10px !important;
1616    margin-top: 4px;
1617}
1618
1619div#onward-copy-line-2 {
1620    margin: 6px 0 0 0 !important;
1621    padding: 0;
1622}
1623
1624#onward-container section {
1625    padding: 4px 0 10px !important;
1626}
1627
1628.cart__footer .onward-opt-out-link {
1629    padding: 0 !important;
1630    margin: 6px 0 4px !important;
1631}
1632  
1633</style>
1634
1635
1636  <style>
1637  a.site-nav__link {
1638    padding-top: 24px !important;
1639    padding-bottom: 24px !important;
1640}
1641.site-header__logo{
1642      margin: 10px 0 !important;
1643  margin-right:26px !important;
1644}
1645.page-width--narrow {
1646    /* max-width: 700px; */
1647    max-width: var(--pageNarrow) !important;
1648}
1649
1650
1651
1652  /* New Is-light */
1653
1654.is-light-new.is-light .site-header__element {
1655background: #fff !important;
1656}
1657.is-light-new .site-header__element {
1658  background: var(--colorNav) !important;
1659}
1660
1661.is-light-new.is-light .site-header__logo .logo--has-inverted {
1662opacity: 1;
1663visibility: visible;
1664overflow: auto;
1665height: initial;
1666}
1667
1668.is-light-new.is-light .site-header__logo .logo--inverted {
1669opacity: 0;
1670visibility: hidden;
1671overflow: hidden;
1672height: 0;
1673}
1674
1675.is-light-new.is-light .site-nav__link,
1676.is-light-new.is-light .site-nav__link:hover {
1677color: #000;
1678}
1679
1680.header-wrapper--overlay.is-light-new.is-light:after {
1681display: none;
1682}
1683
1684  .header-layout .subscribe-btn {
1685    display: block;
1686    font-family: 'Montserrat', sans-serif !important;
1687    font-style: normal !important;
1688    font-weight: 500 !important;
1689    font-size: 14px !important;
1690    line-height: 18px !important;
1691    text-align: center !important;
1692    letter-spacing: 5px !important;
1693    text-transform: uppercase !important;
1694    cursor: pointer !important;
1695    height: 40px !important;
1696    padding: 11px 38px !important;
1697    border-radius: 12px !important;
1698  }
1699
1700.header-layout .un-fl-submenu-icon-arrow-dj{
1701  height: 3px;
1702  width: 3px;
1703}
1704.is-light-new .un-fl-submenu-icon-arrow-dj{
1705  border-color: #000 !important;
1706}
1707.hero__top-subtitle{
1708  font-family: 'Montserrat', sans-serif;
1709    text-transform: uppercase;
1710    letter-spacing: 2px !important;
1711    font-size: 12px !important;
1712    font-weight: 500 !important;
1713    line-height: 18px;
1714}
1715.un-fl-submenu-icon-arrow-dj 
1716{
1717  border-width: 0px 1px 1px 0px !important;
1718}
1719@media all and (max-width: 960px) {
1720  .header-layout .subscribe-btn , a.site-nav__link.site-nav__link--icon.AccountMobileIcone{
1721      display: none;
1722  }
1723  .header-item--logo{
1724      justify-content: center;
1725  }
1726
1727    .header-layout .un-fl-submenu-icon-arrow-dj {
1728      height: 3px;
1729      width: 3px;
1730    }
1731}
1732  @media all and (max-width: 960px) {
1733
1734    .header-layout .subscribe-btn,
1735    a.site-nav__link.site-nav__link--icon.AccountMobileIcone {
1736      display: none;
1737    }
1738
1739    .header-item--logo {
1740      justify-content: center;
1741    }
1742  }
1743
1744
1745
1746  .site-header__cart {
1747    padding: 0 !important;
1748  }
1749
1750  .cart__scrollable {
1751    margin-bottom: 230px !important;
1752    /* height: calc(100vh - 266px); */
1753  }
1754
1755  a.hero__top-subtitle.site-nav__link.site-nav__link--underline:not(.site-nav__link--has-dropdown)>i {
1756    display: none;
1757  }
1758 
1759
1760  @media all and (max-width: 850px) {
1761    .cart__scrollable {
1762      margin-bottom: 70px !important;
1763      /* height: calc(100vh - 170px); */
1764    }
1765
1766    .header-layout .subscribe-btn,
1767    a.site-nav__link.site-nav__link--icon.AccountMobileIcone {
1768      display: none;
1769    }
1770  }
1771
1772  /* New Css */
1773  @media only screen and (max-width:1200px) {
1774    .megamenu__col .megamenu__col-title {
1775      width: 50%;
1776    }
1777
1778    .megamenu__col {
1779      flex-wrap: wrap;
1780    }
1781
1782    .max-column-width {
1783      margin: auto;
1784      width: 400px !important;
1785    }
1786
1787    .Shop .megamenu__col {
1788      padding-right: 0 !important;
1789    }
1790
1791    .Shop .megamenu__col .megamenu__col-title,
1792    .About .megamenu__col .megamenu__col-title {
1793      width: 100%;
1794    }
1795    
1796    .sugoi-mart-menu  .slide-nav__wrapper ul li a , .slide-nav__wrapper ul li button .slide-nav__link {
1797      font-family: "Lato", sans-serif;
1798      font-weight: 400 !important;
1799      font-size: 15px !important;
1800      line-height: 140%;
1801      letter-spacing: 0.02em;
1802      text-transform: capitalize;
1803      color: #242426;
1804      border-radius: 8px;
1805      gap: 16px;
1806      transition: .3s linear
1807    }
1808    
1809  }
1810
1811  @media only screen and (min-width:1201px) {
1812    .max-column-width {
1813
1814      /* New CSS */
1815
1816      padding-top: 20px;
1817      word-break: break-word;
1818      width: 260px;
1819      font-weight: 400;
1820      font-size: 16px;
1821      line-height: 24px;
1822      text-align: center;
1823      letter-spacing: 1px;
1824      color: #000000;
1825      font-family: 'Lato';
1826
1827    }
1828  }
1829
1830
1831  .desktop-seprator {
1832    border-top: 1px solid rgb(189, 189, 189);
1833    margin-left: 5%;
1834    width: 191%;
1835  }
1836
1837  .desktop-seprator:last-of-type {
1838    padding-bottom: 25px
1839  }
1840
1841  .cart__item {
1842    align-items: center !important;
1843    padding: 10px 20px;
1844  }
1845
1846  span.subscription-items-final-price {
1847    font-weight: 800;
1848  }
1849
1850  .cart-open body {
1851    overflow: hidden !important;
1852  }
1853
1854  .cart__footer {
1855    bottom: 91px;
1856  }
1857
1858  .scrolled-body .cart__footer {
1859    bottom: 60px;
1860  }
1861
1862  span.market-items-final-price {
1863    font-weight: 800;
1864  }
1865
1866  .subscription-product-container .subscription-free-shipping-msg a {
1867    color: #000 !important;
1868  }
1869
1870  .listing-loved-products::-webkit-scrollbar-track {
1871    -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
1872    border-radius: 10px;
1873    background-color: #F5F5F5 !important;
1874  }
1875
1876  .listing-loved-products::-webkit-scrollbar {
1877    width: 6px;
1878    height: 6px;
1879    background-color: #F5F5F5 !important;
1880  }
1881
1882  .listing-loved-products::-webkit-scrollbar-thumb {
1883    border-radius: 10px;
1884    -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
1885    background-color: #BEBEBE !important;
1886  }
1887
1888  .header-version-2 .main-search-main{
1889    position: absolute;
1890    top: 40%;
1891    transform: translateY(-50%);
1892    right: 29px;
1893  }
1894  .header-version-2 .main-search-main svg path{
1895      fill: #000;
1896  }
1897  .header-version-2 .search__input-wrap {
1898    margin-top: 15px;
1899  }
1900  @media all and (max-width:1200px) {
1901    .cart__footer {
1902      bottom: 91px !important;
1903    }
1904
1905  }
1906  @media all and (max-width:576px) {
1907    .cart__footer {
1908      bottom: 57px !important;
1909    }
1910    .site-header__logo a {
1911      font-size: 29px !important;
1912    }
1913    .cart-open body {
1914    overflow: hidden !important;
1915  }
1916  .main-dualcart.subscription-product-container {
1917    margin-top: 13px;
1918}
1919
1920#HeaderWrapper .custom-page-width {
1921    max-width: 100%;
1922    padding: 0;
1923    position: relative;
1924}
1925}
1926  @media only screen and (max-width: 960px) {
1927    .mobile-nav-open .site-nav__link:not(.mobile-nav-trigger) {
1928        display: block;
1929    }
1930}
1931  @media only screen and (max-width: 768px) {
1932    .page-width.site-header__drawers {
1933    padding: 0 !important;
1934}
1935.header-item--logo {
1936        flex: 100 !important;
1937        justify-content: center !important;
1938}
1939}
1940body .cart-milestone .main-progress-bar-with-markups .floating-text-bottom * {
1941    font-family: 'Lato' !important;
1942    letter-spacing: 0.5px;
1943    text-align: center !important;
1944}
1945#note-wrap{
1946    margin-bottom: 6px;
1947}
1948a.site-nav__link {
1949    padding-top: 26px;
1950    padding-bottom: 26px;
1951}
1952
1953  
1954    .e-gift-heading-div{
1955    margin-bottom: 0 !important;
1956  }
1957    .GmAddedContainer{
1958      margin-bottom: 1.5rem;
1959    }
1960
1961
1962    
1963      .header-section {
1964           position: sticky !important;
1965    }
1966    
1967    
1968      .is-light .site-header__element{
1969        background: transparent !important;
1970      }
1971    
1972
1973  
1974  .GmAddedContainer{
1975  margin-bottom: 0;
1976  }
1977  #note-wrap{
1978  margin-bottom: 6px;
1979  }
1980.header-layout #search-icon-id {
1981    display: none;
1982  }
1983#announcement-banner-MKT #bannerBG , .subscribe-btn:before , .cart-link__bubble:before , #mbl-subscribe-overrides{
1984  background-color: #b73d09 !important;
1985}
1986.subscribe-btn {
1987    color: #b73d09 !important;
1988    border: 1px solid #b73d09 !important;
1989}
1990.cart-link__bubble-num , #mbl-subscribe-overrides{
1991color: #FFFFFF;
1992}
1993.cart__price:not(.cart__price--strikethrough){
1994 color: #b73d09;
1995}
1996
1997
1998/* header dropdown styles  */
1999
2000/* a11y: nav button triggers — reset browser button defaults to match <a> styling */
2001button.site-nav__link {
2002    -webkit-appearance: none;
2003    appearance: none;
2004    background: none;
2005    border: none;
2006    margin: 0;
2007    padding: 16px 20px;
2008    cursor: pointer;
2009    color: inherit;
2010    font-family: 'Montserrat', sans-serif !important;
2011    font-size: 12px !important;
2012    font-weight: 500 !important;
2013    letter-spacing: 2px !important;
2014    line-height: 18px;
2015    text-transform: uppercase;
2016    text-decoration: none;
2017    text-align: left;
2018    white-space: nowrap;
2019    display: inline-block;
2020    vertical-align: middle;
2021  }
2022  button.site-nav__link:focus-visible {
2023    outline: 2px solid currentColor;
2024    outline-offset: 2px;
2025    border-radius: 2px;
2026  }
2027  button.site-nav__link[aria-expanded="true"] .un-fl-submenu-icon-arrow-dj,
2028  button.site-nav__link[aria-expanded="true"] .dropdown-arrow {
2029    transform: rotate(225deg);
2030  }
2031.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
2032{
2033    background-color:#F6F4F1;
2034  }
2035   .header-version-2 .site-nav__dropdown *{
2036    color:#000000;
2037  }
2038  .header-version-2 .site-nav__dropdown .menu-shop-now{
2039    color:#b73d09 !important ;
2040  }
2041  /* Subscribe button: desktop only (above 961px). Beats jQuery .show() inline style. */
2042  @media (max-width: 961px) {
2043    #btn-subscribe-overrides {
2044      display: none !important;
2045    }
2046  }
2047
2048
2049</style>
2050
2051
2052  <style>
2053      .optimize-hidden{
2054        display: none !important;
2055      }
2056      .site-nav__link {
2057        font-size: 13px;
2058      }
2059      
2060        .site-nav__link {
2061          text-transform: uppercase;
2062          letter-spacing: 0.2em;
2063        }
2064      
2065
2066      
2067@media only screen and (max-width: 1100px) {
2068        .mob-cart-align {
2069          height: inherit !important;
2070          overflow: auto !important;
2071          background: #ffffff !important;
2072        }
2073        .empty-cart-main {
2074          padding-bottom: 0 !important;
2075        }
2076      }
2077  </style>
2078
2079  <div data-section-id="sections--17749310636118__header" data-section-type="header">
2080    <div
2081      id="HeaderWrapper"
2082      class=" header-version-2 header-wrapper header-wrapper--overlay is-light "
2083    >
2084      <header
2085        id="SiteHeader"
2086        class="site-header"
2087        data-sticky="true"
2088        data-overlay=" true "
2089      >
2090        <div class="site-header__element site-header__element--top">
2091          <div class="page-width custom-page-width">
2092            <div
2093              class="header-layout"
2094              data-layout="below"
2095              data-nav="beside"
2096              data-logo-align="left"
2097            >
2098              <button
2099                type="button"
2100                aria-controls="MobileNav"
2101                aria-expanded="false"
2102                aria-label="Site navigation"
2103                class="site-nav__link site-nav__link--icon mobile-nav-trigger optimize-hidden"
2104              >
2105                <svg
2106                  aria-hidden="true"
2107                  focusable="false"
2108                  role="presentation"
2109                  class="icon icon-hamburger"
2110                  viewBox="0 0 64 64"
2111                >
2112                  <path class="cls-1" d="M7 15h51"/><path class="cls-1" d="M7 32h43"/><path class="cls-1" d="M7 49h51"/>
2113                </svg>
2114                <span class="icon__fallback-text">Site navigation</span>
2115              </button><button
2116                type="button"
2117                aria-controls="MobileNav"
2118                aria-expanded="false"
2119                aria-label="Site navigation"
2120                class="site-nav__link site-nav__link--icon medium-up--hide mobile-nav-trigger"
2121              >
2122                <svg
2123                  aria-hidden="true"
2124                  focusable="false"
2125                  role="presentation"
2126                  class="icon icon-hamburger"
2127                  viewBox="0 0 64 64"
2128                >
2129                  <path class="cls-1" d="M7 15h51"/><path class="cls-1" d="M7 32h43"/><path class="cls-1" d="M7 49h51"/>
2130                </svg>
2131                <span class="icon__fallback-text">Site navigation</span>
2132              </button><div class="header-item header-item--logo"><style data-shopify>.header-item--logo,
2133      [data-layout="left-center"] .header-item--logo,
2134      [data-layout="left-center"] .header-item--icons {
2135        flex: 0 1 120px;
2136      }
2137  
2138      @media only screen and (min-width: 769px) {
2139        .header-item--logo,
2140        [data-layout="left-center"] .header-item--logo,
2141        [data-layout="left-center"] .header-item--icons {
2142          flex: 0 0 140px;
2143        }
2144      }
2145  
2146      .site-header__logo a {
2147        width: 120px;
2148      }
2149      .is-light .site-header__logo .logo--inverted {
2150        width: 120px;
2151      }
2152      @media only screen and (min-width: 769px) {
2153        .site-header__logo a {
2154          width: 140px;
2155        }
2156  
2157        .is-light .site-header__logo .logo--inverted {
2158          width: 140px;
2159        }
2160      }</style><div class="h1 site-header__logo" >
2161        <a
2162          href="/"
2163          aria-label="Bokksu — home"
2164          class="site-header__logo-link  logo--has-inverted">
2165  
2166          
2167
2168
2169
2170
2171
2172<image-element data-aos="image-fade-in">
2173
2174  
2175    
2176      
2177      <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">
2178    
2179  
2180
2181</image-element>
2182
2183
2184
2185
2186
2187<image-element data-aos="image-fade-in">
2188
2189  
2190    
2191      
2192      <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">
2193    
2194  
2195
2196</image-element>
2197
2198</a><a
2199            href="/"
2200            aria-label="Bokksu — home"
2201            class="site-header__logo-link logo--inverted">
2202            
2203
2204
2205
2206
2207
2208<image-element data-aos="image-fade-in">
2209
2210  
2211    
2212      
2213      <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;">
2214    
2215  
2216
2217</image-element>
2218
2219
2220
2221
2222
2223<image-element data-aos="image-fade-in">
2224
2225  
2226    
2227      
2228      <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;">
2229    
2230  
2231
2232</image-element>
2233
2234</a></div></div><div
2235                  class="header-item header-item--navigation original-element"
2236                ><nav aria-label="Main navigation">
2237<ul role="list" class="site-nav original-nav site-navigation site-navigation--beside small--hide"><li
2238      class="site-nav__item  site-nav__expanded-item site-nav--has-dropdown site-nav--is-megamenu "
2239      ><button
2240        type="button"
2241        style="margin-bottom:-1px"
2242        class="hero__top-subtitle site-nav__link site-nav__link--underline site-nav__link--has-dropdown site-nav__dropdown-toggle"
2243        aria-haspopup="true"
2244        aria-expanded="false"
2245      >
2246        Shop
2247        
2248          <i aria-hidden="true" class="un-fl-submenu-icon-arrow-dj"></i>
2249        
2250      </button><div class="site-nav__dropdown megamenu text-left">
2251          <div class="page-width">
2252            <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" >
2253                <div class="megamenu__col" ><div class="megamenu__col-title"  >
2254                    
2255
2256                              
2257                                   
2258                       
2259
2260
2261             <div  style="text-decoration:none" class="hero__top-subtitle site-nav__dropdown-link site-nav__dropdown-link--top-level" >
2262  Bokksu Snack Box
2263</div>
2264                    
2265
2266                 </div>
2267                    
2268                       <a  href="/products/classic-bokksu" class="site-nav__dropdown-link">
2269                        Subscribe 
2270                      </a>
2271                    
2272                       <a  href="/products/gift-classic-bokksu" class="site-nav__dropdown-link">
2273                        Gift 
2274                      </a>
2275                    
2276                       <a  href="/pages/past-themes" class="site-nav__dropdown-link">
2277                        Past Themes 
2278                      </a></div><div class="megamenu__col"><div class="megamenu__col-title"  >
2279                    
2280
2281                              
2282                                   
2283                       
2284
2285
2286             <div  style="text-decoration:none" class="hero__top-subtitle site-nav__dropdown-link site-nav__dropdown-link--top-level" >
2287  Bokksu Boutique
2288</div>
2289                    
2290
2291                 </div>
2292                    
2293                       <a  href="https://bokksuboutique.com" class="site-nav__dropdown-link">
2294                        Shop Boutique 
2295                      </a></div><div class="megamenu__col"><div class="megamenu__col-title"  >
2296                    
2297
2298                              
2299                                   
2300                       
2301
2302
2303             <div  style="text-decoration:none" class="hero__top-subtitle site-nav__dropdown-link site-nav__dropdown-link--top-level" >
2304  Gifts
2305</div>
2306                    
2307
2308                 </div>
2309                    
2310                       <a  href="/products/gift-card" class="site-nav__dropdown-link">
2311                        Gift Cards 
2312                      </a>
2313                    
2314                       <a  href="https://www.bokksuboutique.com/pages/corporate-gifts" class="site-nav__dropdown-link">
2315                        Corporate Gifts 
2316                      </a></div>
2317</div></div>
2318          </div>
2319        </div></li><li
2320      class="site-nav__item  About  site-nav__expanded-item site-nav--has-dropdown site-nav--is-megamenu "
2321      ><button
2322        type="button"
2323        style="margin-bottom:-1px"
2324        class="hero__top-subtitle site-nav__link site-nav__link--underline site-nav__link--has-dropdown site-nav__dropdown-toggle"
2325        aria-haspopup="true"
2326        aria-expanded="false"
2327      >
2328        About
2329        
2330          <i aria-hidden="true" class="un-fl-submenu-icon-arrow-dj"></i>
2331        
2332      </button><div class="site-nav__dropdown megamenu text-left">
2333          <div class="page-width">
2334            <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" >
2335                <div class="megamenu__col" ><div class="megamenu__col-title"  >
2336                    
2337
2338                              
2339                                   
2340                       
2341
2342
2343             <div  style="text-decoration:none" class="hero__top-subtitle site-nav__dropdown-link site-nav__dropdown-link--top-level" >
2344  About
2345</div>
2346                    
2347
2348                 </div>
2349                    
2350                       <a  href="/pages/about" class="site-nav__dropdown-link">
2351                        Our Story 
2352                      </a>
2353                    
2354                       <a  href="/pages/our-makers" class="site-nav__dropdown-link">
2355                        Our Makers 
2356                      </a>
2357                    
2358                       <a  href="/pages/snack-bites-documentary" class="site-nav__dropdown-link">
2359                        Maker's Documentary 
2360                      </a></div><div class="megamenu__col"><div class="megamenu__col-title"  >
2361                    
2362
2363                              
2364                                   
2365                       
2366
2367
2368             <div  style="text-decoration:none" class="hero__top-subtitle site-nav__dropdown-link site-nav__dropdown-link--top-level" >
2369  Support
2370</div>
2371                    
2372
2373                 </div>
2374                    
2375                       <a  href="/pages/faq" class="site-nav__dropdown-link">
2376                        FAQ 
2377                      </a>
2378                    
2379                       <a  href="/pages/contact-us" class="site-nav__dropdown-link">
2380                        Contact Us 
2381                      </a></div><div class="megamenu__col"><div class="megamenu__col-title"  >
2382                    
2383
2384                              
2385                                   
2386                       
2387
2388
2389             <div  style="text-decoration:none" class="hero__top-subtitle site-nav__dropdown-link site-nav__dropdown-link--top-level" >
2390  Information
2391</div>
2392                    
2393
2394                 </div>
2395                    
2396                       <a  href="/blogs/news" class="site-nav__dropdown-link">
2397                        Our Blog 
2398                      </a>
2399                    
2400                       <a  href="/pages/bokksu-offers-discounts-coupons" class="site-nav__dropdown-link">
2401                        Today's Offers 
2402                      </a>
2403                    
2404                       <a  href="/pages/community" class="site-nav__dropdown-link">
2405                        Community 
2406                      </a>
2407                    
2408                       <a  href="/pages/careers" class="site-nav__dropdown-link">
2409                        Careers 
2410                      </a>
2411                    
2412                       <a  href="/pages/rewards" class="site-nav__dropdown-link">
2413                        Rewards 
2414                      </a>
2415                    
2416                       <a  href="/pages/rewards" class="site-nav__dropdown-link">
2417                        Refer a Friend 
2418                      </a></div>
2419</div></div>
2420          </div>
2421        </div></li><li
2422      class="site-nav__item  site-nav__expanded-item site-nav--has-dropdown site-nav--is-megamenu "
2423      ><button
2424        type="button"
2425        style="margin-bottom:-1px"
2426        class="hero__top-subtitle site-nav__link site-nav__link--underline site-nav__link--has-dropdown site-nav__dropdown-toggle"
2427        aria-haspopup="true"
2428        aria-expanded="false"
2429      >
2430        Brands
2431        
2432          <i aria-hidden="true" class="un-fl-submenu-icon-arrow-dj"></i>
2433        
2434      </button><div class="site-nav__dropdown megamenu text-left">
2435          <div class="page-width">
2436            <div class="site-nav__dropdown-animate  "><div >
2437                <div class="megamenu__col"  style="display:flex;justify-content:space-around" ><div class="megamenu__col-title"  style="text-align:center">
2438                      
2439           <a style="pointer-events: none;" href="/" target="_blank" class="site-nav__dropdown-link site-nav__dropdown-link--top-level">
2440          
2441                      <img
2442            class="small--hide"
2443                      style="height:90px; width:100px"
2444            src="//bokksu.com/cdn/shop/files/BokksuSnackBox_Logo_Stacked_Filled_Orange_200x.png?v=1750968760"
2445            srcset="//bokksu.com/cdn/shop/files/BokksuSnackBox_Logo_Stacked_Filled_Orange_200x.png?v=1750968760 2x" alt="Bokksu Premium Snack Box">
2446                      <p class="max-column-width" style="color:grey"> Premium subscription box sourcing Japanese snacks from centuries-old family makers.</p>
2447            <a target="_blank" class="menu-shop-now" href="https://bokksu.com/products/classic-bokksu"> <div style=""></div>SHOP NOW</a>
2448 </a>
2449                      
2450
2451                              
2452                                   
2453                       
2454
2455                    
2456
2457                 </div><div class="megamenu__col-title"  style="text-align:center">
2458                    
2459
2460                             
2461                              <a  target="_blank" href="https://bokksuboutique.com" class="site-nav__dropdown-link site-nav__dropdown-link--top-level">
2462
2463                                <img
2464                                class="small--hide"
2465                                          style="height:90px; width:100px"
2466                                src="//bokksu.com/cdn/shop/files/BokksuBoutique_Logo_Stacked_Filled_Blue_200x.png?v=1750968708"
2467                                srcset="//bokksu.com/cdn/shop/files/BokksuBoutique_Logo_Stacked_Filled_Blue_200x.png?v=1750968708 2x" alt="Bokksu Snack Boutique">
2468                                          <p class="max-column-width"> Specialty and gourmet gifts for every occasion, all made and shipped from Japan. </p>
2469                              <a target="_blank" class="menu-shop-now" href="https://bokksuboutique.com/"><div style=""></div> SHOP NOW</a>
2470                    </a>
2471                         
2472                                   
2473                       
2474
2475                    
2476
2477                 </div><div class="megamenu__col-title"  style="text-align:center">
2478                    
2479
2480                              
2481                     
2482                      <a  href="https://bokksumarket.com" target="_blank" class="site-nav__dropdown-link site-nav__dropdown-link--top-level">
2483                        <img
2484                        class="small--hide"
2485                      style="height:90px; width:100px;"
2486                        src="//bokksu.com/cdn/shop/files/BokksuMarket_Logo_Stacked_Filled_Green_200x.png?v=1750968741"
2487                        srcset="//bokksu.com/cdn/shop/files/BokksuMarket_Logo_Stacked_Filled_Green_200x.png?v=1750968741 2x" alt="Bokksu Asian grocery market">
2488                        <p class="max-column-width"> Online Asian grocery store delivering pantry items, frozen foods, beverages, and more. </p>
2489                       <a target="_blank" class="menu-shop-now" href="https://bokksumarket.com"> <div style=""></div> SHOP NOW</a>
2490                        </a>
2491
2492                       
2493                       
2494
2495                    
2496
2497                 </div></div>
2498</div></div>
2499          </div>
2500        </div></li></ul>
2501</nav>
2502
2503
2504</div><div class="header-item header-item--icons">
2505                <div class="subscribe-button-wrapper optimize-hidden">
2506                  <a
2507                    href="/products/classic-bokksu"
2508                    id="subscribe-button"
2509                    class="btn-custom subscribe-btn custom-subscribe-button optim
2509ize-hidden cart-empty"
2510                    aria-labelledby="subscribe-button-label"
2511                    >SUBSCRIBE <span class="small--hide">NOW</span>
2512                    <span class="visually-hidden" id="subscribe-button-label">Subscribe now — Classic Bokksu Snack Box</span>
2513                  </a>
2514                </div><div class="site-nav">
2515  <div class="site-nav__icons">
2516    <a href="/search?q=&type=product" id="search-icon-id" class="site-nav__link site-nav__link--icon js-search-header js-no-transition">
2517      <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>
2518      <span class="icon__fallback-text">Search</span>
2519    </a>
2520        
2521            <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>          
2522        
2523<a class="site-nav__link site-nav__link--icon small--hide site-nav__link-v2" href="/account" aria-label="My account">
2524      <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>
2525      <span class="site-nav__icon-label small--hide icon__fallback-text" aria-hidden="true">
2526        Account
2527      </span>
2528    </a><button
2529      id="HeaderCartTrigger"
2530      aria-controls="HeaderCart"
2531      class="cart-items-new mini-cart site-nav__link site-nav__link-v2 site-nav__link--icon js-no-transition cart-empty"
2532      data-icon="cart"
2533      aria-label="Cart, 0 items"
2534    >
2535      <span class="cart-link">
2536          <svg class="icon jpc-cart-icon" xmlns="http://www.w3.org/2000/svg" width="27" height="26" viewBox="0 0 27 26" fill="none">
2537            <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"/>
2538            <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"/>
2539            <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"/>
2540            </svg>
2541            
2542<span class="cart-link__bubble" aria-hidden="true">
2543          <span class="cart-link__bubble-num">0</span>
2544        </span>
2545      </span>
2546      <span class="site-nav__icon-label small--hide icon__fallback-text" aria-hidden="true">
2547        Cart
2548      </span>
2549    </button>
2550
2551
2552      
2553  </div>
2554
2555  <div class="site-nav__close-cart">
2556    <button type="button" class="site-nav__link site-nav__link--icon js-close-header-cart" aria-label="Close shopping cart">
2557      <span>Close</span>
2558      <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>
2559    </button>
2560  </div>
2561  
2562</div>
2563</div>
2564            </div>
2565          </div>
2566
2567          <div class="site-header__search-container">
2568            <div class="page-width">
2569              <div class="site-header__search"><style>
2570  .predictive-overflow-hidden {
2571    /*overflow: hidden;*/
2572
2573    @media (--small) {
2574      overflow: auto;
2575    }
2576  }
2577
2578  predictive-search {
2579    display: flex;
2580    align-items: center;
2581    position: relative;
2582    width: 100%;
2583    max-width: 960px;
2584    margin: 0 auto;
2585
2586    &.is-active {
2587      flex: 99;
2588    }
2589
2590    &.is-active .predictive__screen {
2591      display: block;
2592      z-index: 3;
2593    }
2594
2595    &.is-active .btn--close-search {
2596      display: flex;
2597      align-items: center;
2598      justify-content: center;
2599    }
2600    &.is-active .btn--close-search1 {
2601      display: flex;
2602      align-items: center;
2603      justify-content: center;
2604    }
2605  }
2606
2607  [data-dark='true'] {
2608    & input {
2609      color: #fff !important;
2610    }
2611
2612    & .btn--search path {
2613      stroke: #fff !important;
2614    }
2615  }
2616
2617  [data-dark='false'] {
2618    & input {
2619      color: #000 !important;
2620    }
2621
2622    & .btn--search path {
2623      stroke: #000 !important;
2624    }
2625  }
2626
2627  .predictive__screen {
2628    position: fixed;
2629    width: 100vw;
2630    height: 100vh;
2631    top: 0;
2632    left: 0;
2633    background: rgba(0, 0, 0, 0.5);
2634    display: none;
2635  }
2636
2637  predictive-search form {
2638    display: flex;
2639    flex-wrap: wrap;
2640    z-index: 4;
2641    position: relative;
2642    width: 100%;
2643  }
2644
2645  .search__input-wrap {
2646    position: relative;
2647    flex: 5;
2648    transition: flex 0.3s ease-in-out;
2649  }
2650
2651  .search__input {
2652    background: var(--colorNavSearch, #fff);
2653    color: var(--color-body-text);
2654    flex: 1;
2655    width: 100%;
2656    border-radius: calc(var(--roundness, 0) * 2);
2657  }
2658
2659  .btn--search {
2660    position: absolute;
2661    top: 50%;
2662    transform: translateY(-50%);
2663    right: 15px;
2664
2665    & .icon {
2666      height: 25px;
2667      width: 25px;
2668    }
2669
2670    @media (--medium-up) {
2671      right: 10px;
2672    }
2673  }
2674
2675  .btn--close-search {
2676    display: none;
2677    flex: 30px 0 0;
2678    margin-left: 10px;
2679
2680    & .icon {
2681      height: 25px;
2682      width: 25px;
2683    }
2684
2685    & .icon path {
2686      stroke: var(--colorNavText) !important;
2687    }
2688  }
2689
2690  .btn--close-search1 {
2691    display: none;
2692    flex: 30px 0 0;
2693    margin-left: 10px;
2694
2695    & .icon {
2696      height: 25px;
2697      width: 25px;
2698    }
2699
2700    & .icon path {
2701      stroke: var(--colorNavText) !important;
2702    }
2703  }
2704
2705  .search__results {
2706    background: var(--color-body);
2707    color: var(--color-body-text);
2708    position: absolute;
2709    width: 100%;
2710    top: 100%;
2711    padding: 0;
2712    display: none;
2713    margin-top: 10px;
2714    container-type: inline-size;
2715    max-height: 80vh;
2716    overflow-y: auto;
2717
2718    @media (--small) {
2719      width: calc(100% + var(--pageWidthPadding, 17px) * 2);
2720      margin-left: calc(var(--pageWidthPadding, 17px) * -1);
2721      margin-right: calc(var(--pageWidthPadding, 17px) * -1);
2722      max-height: 75vh;
2723
2724      @nest .template-search .page-content & {
2725        max-height: 50vh;
2726      }
2727    }
2728  }
2729
2730  .results {
2731    padding: 0 20px 20px;
2732    display: block;
2733    width: 100%;
2734
2735    & ul {
2736      list-style: none;
2737      padding: 0;
2738      margin: 0;
2739    }
2740
2741    & li {
2742      transition: background 0.2s ease;
2743      margin-bottom: 0;
2744
2745      &:hover {
2746        background: rgba(0, 0, 0, 0.05);
2747      }
2748
2749      & a {
2750        display: flex;
2751        align-items: center;
2752      }
2753    }
2754  }
2755
2756  .results--queries {
2757    & span {
2758      font-weight: bolder;
2759    }
2760
2761    & mark {
2762      background-color: transparent;
2763      font-weight: normal;
2764    }
2765  }
2766
2767  .results--products span {
2768    margin-left: 10px;
2769  }
2770
2771  .results-products__image {
2772    width: 100%;
2773    min-width: 80px;
2774    max-width: 80px;
2775    height: 80px;
2776  }
2777
2778  .results-products__info {
2779    display: flex;
2780    flex-direction: column;
2781    font-size: 13px !important;
2782  }
2783
2784  .predictive-search-results {
2785    display: flex;
2786    flex-wrap: wrap;
2787    flex-direction: column;
2788    overflow-y: auto;
2789    padding: 40px 0 0;
2790
2791    & h3 {
2792      padding-bottom: 10px;
2793      border-bottom: 1px solid;
2794      border-color: var(--colorBorder);
2795      margin-bottom: 10px;
2796      font-family: 'Montserrat', sans-serif !important;
2797      font-size: 14px !important;
2798      font-weight: 600 !important;
2799      letter-spacing: 1px !important;
2800    }
2801  }
2802
2803  .predictive-search-results--none {
2804    padding-top: 20px;
2805  }
2806
2807  .predictive-search__no-results {
2808    display: block;
2809    width: 100%;
2810
2811    &:hover {
2812      opacity: 0.5;
2813    }
2814  }
2815
2816  .results__group-1 {
2817    flex: 100% 0 0;
2818
2819    & >
2819 div:not(.results--queries) {
2820      display: none;
2821    }
2822  }
2823
2824  .results__group-2 {
2825    flex: 100% 0 0;
2826  }
2827
2828  .results__search-btn {
2829    width: 100%;
2830    padding: 10px;
2831    transition: background-color 0.2s ease;
2832    border: 1px solid;
2833    border-color: var(--colorBorder);
2834
2835    &:hover {
2836      background-color: rgba(0, 0, 0, 0.05);
2837    }
2838  }
2839
2840  /* Containers
2841  ============================== */
2842
2843  @container (min-width: 800px) {
2844    .predictive-search-results {
2845      flex-direction: row;
2846      flex-wrap: nowrap;
2847    }
2848
2849    .results {
2850      padding: 0 40px 20px;
2851    }
2852
2853    .results__group-1 {
2854      flex: 1 0 0;
2855
2856      & div:not(.results--queries) {
2857        display: block;
2858      }
2859    }
2860
2861    .results__group-2 {
2862      flex: 2 0 0;
2863
2864      & > div:not(.results--products) {
2865        display: none;
2866      }
2867    }
2868
2869    .results__search-btn {
2870      text-align: left;
2871      padding: 10px 0 10px 40px;
2872    }
2873  }
2874
2875  /*
2876  .workaround {
2877    border-bottom: 1px solid var(--colorBorder);
2878  }
2879  */
2880</style><predictive-search
2881  data-context="header"
2882  data-enabled="false"
2883  data-dark="false"
2884><div class="predictive__screen" data-screen aria-hidden="true"></div>
2885  <form
2886    action="/search"
2887    method="get"
2888    role="search"
2889    id="search-form"
2890  >
2891    <label for="Search" class="hidden-label">Search</label>
2892    <div class="search__input-wrap align-new-search">
2893      <input
2894        class="search__input"
2895        id="Search"
2896        type="search"
2897        name="q"
2898        value=""
2899        role="combobox"
2900        aria-expanded="false"
2901        aria-owns="predictive-search-results"
2902        aria-controls="predictive-search-results"
2903        aria-haspopup="listbox"
2904        aria-autocomplete="list"
2905        autocorrect="off"
2906        autocomplete="off"
2907        autocapitalize="off"
2908        spellcheck="false"
2909        placeholder="Search premium Japanese products"
2910        tabindex="0"
2911      >
2912      <input
2913        name="options[prefix]"
2914        type="hidden"
2915        value="last"
2916      >
2917      <button class="search-icon-new 22" type="submit">
2918        <div class="main-search-main" aria-hidden="true">
2919          <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true" focusable="false">
2920            <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>
2921          </svg>
2922        </div>
2923        <span class="icon__fallback-text">Search</span>
2924      </button>
2925    </div><button type="button" class="btn--close-search btn--close-search1" aria-label="Close">
2926      <svg
2927        aria-hidden="true"
2928        focusable="false"
2929        role="presentation"
2930        class="icon icon-close"
2931        viewBox="0 0 64 64"
2932      >
2933        <defs>
2934          <style>
2935            .cls-1 {
2936              fill: none;
2937              stroke: #fff !important;
2938              stroke-miterlimit: 10;
2939              stroke-width: 2px
2940            }
2941          </style>
2942        </defs><path class="cls-1" d="M19 17.61l27.12 27.13m0-27.13L19 44.74" />
2943      </svg>
2944    </button>
2945    <div
2946      id="predictive-search"
2947      class="search__results"
2948      tabindex="-1"
2949    ></div>
2950  </form>
2951</predictive-search>
2952<script>
2953  $(document).ready(function () {
2954    if ('https://bokksu.com'.includes('bokksu.com') || 'https://bokksu.com'.includes('snb-hashii') ) {
2955      if ('index'.includes('product') && ''.includes('Box')) {
2956        $('#search-icon-id').css('display', 'none');
2957        $('#btn-subscribe-overrides').hide();
2958        $('#subscribe_btn_mob').css('display', 'none');
2959      } else if (
2960        'index'.includes('blog') ||
2961        'index'.includes('article') ||
2962        location.href.includes('type=article')
2963      ) {
2964        $('#search-type').attr('value', 'article');
2965        $('.search-type').attr('value', 'article');
2966        $('#search-icon-id').css('display', 'block');
2967        $('#search-icon-id').css('cursor', 'pointer');
2968        $('#TopSearched').hide();
2969      } else if (
2970        location.toString().includes('subscription') ||
2971        location.toString().endsWith('/products/classic-bokksu') ||
2972        location.toString().includes('/collections') ||
2973        location.toString().includes('/products')
2974      ) {
2975        $('#search-icon-id').css('display', 'block');
2976        $('#search-icon-id').css('cursor', 'pointer');
2977        $('#btn-subscribe-overrides').hide();
2978        $('.site-header__search-form').css('display', 'block');
2979        $('#subscribe_btn_mob').css('display', 'none');
2980      } else {
2981        window.innerWidth > 961 && $('#btn-subscribe-overrides').show();
2982        $('#search-icon-id').css('display', 'none');
2983        $('#search-icon-id').css('cursor', 'unset');
2984        $('.site-header__search-form').css('display', 'none');
2985        $('#subscribe_btn_mob').css('display', 'flex');
2986      }
2987    } else {
2988      if ('index'.includes('blog') || 'index'.includes('article')) {
2989        $('#search-type').attr('value', 'article');
2990        $('#TopSearched').hide();
2991      }
2992    }
2993  });
2994</script>
2994
2995<button type="button" class="text-link site-header__search-btn site-header__search-btn--cancel">
2996                  <span class="medium-up--hide">
2997                    <svg
2998                      aria-hidden="true"
2999                      focusable="false"
3000                      role="presentation"
3001                      class="icon icon-close"
3002                      viewBox="0 0 64 64"
3003                    >
3004                      <path d="m19 17.61 27.12 27.13m0-27.13L19 44.74" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:2px"/>
3005                    </svg>
3006                  </span>
3007                  <span class="small--hide">Cancel</span>
3008                </button>
3009              </div>
3010            </div>
3011          </div>
3012        </div><div class="page-width site-header__drawers">
3013          <div class="site-header__drawers-container">
3014            <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">
3015              <div class="mob-cart-align">
3016                <div class="align-main-cart-customer">
3017                  <div class="site-header__drawer-animate"><button
3018  type="button"
3019  class="cart-drawer__close js-close-header-cart visually-hidden"
3020  aria-label="Close shopping cart"
3021>
3022  Close shopping cart
3023</button>
3024<form
3025  action="/cart"
3026  method="post"
3027  novalidate
3028  data-location="header"
3029  class="cart__drawer-form customer-cart">
3030  <div class="cart__scrollable">
3031    <div data-products>
3032 
3033      <div></div>
3034    </div>
3035        
3036
3037    <!---cart notes here -->
3038        
3039
3040      <div class="cart-upsell" data-cart-upsell><div class="cart-upsell__container" role="group" aria-label="Premium packaging options">
3041    <h3 class="cart-upsell__heading">MAKE IT SPECIAL</h3>
3042    <p class="cart-upsell__subheading">Enhance your gift with premium packaging options</p>
3043    
3044    <div class="cart-upsell__cards-wrapper">
3045      <button type="button" class="cart-upsell__nav-button cart-upsell__nav-button--prev" aria-label="Previous product" style="display: none;">
3046        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
3047          <path d="M15 18l-6-6 6-6"/>
3048        </svg>
3049      </button><!-- Grid wrapper for all products -->
3050      <div class="cart-upsell__cards has-two-products" data-carousel><div class="cart-upsell__card-wrapper" data-product-id="7675567538262" data-variant-id="43471000862806">
3051          <div class="cart-upsell__card" aria-hidden="true">
3052            <div class="cart-upsell__card-header">
3053              <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">
3054</div>
3055              <div class="cart-upsell__card-text-wrapper">
3056                <h4 class="cart-upsell__card-title">Gift Wrapping + Card</h4>
3057                <p class="cart-upsell__card-description">Expert Japanese-style wrapping with personalized card.</p>
3058              </div>
3059            </div>
3060            <ul class="cart-upsell__card-features">
3061              <li class="feature-ribbon">Premium ribbon.</li>
3062              <li class="feature-card">Personalized card.</li>
3063            </ul>
3064          </div>
3065          <div class="cart-upsell__form" data-upsell-form data-has-gift-popup="true"
3066            data-variant-id="43471000862806"
3067            data-product-tags="hidden product,NOAPPDISC,personalized-card">
3068            
3068<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>
3068
3069            <button type="button" class="cart-upsell__card-button"
3070              data-variant-id="43471000862806"
3071              aria-label="Add gift wrapping and personalized card for $15.00">
3072              <span class="cart-upsell__button-icon" aria-hidden="true">+</span>
3073              <span class="cart-upsell__button-text">Add Gift Wrapping</span>
3074              <span class="cart-upsell__button-price">$15.00</span>
3075            </button>
3076          </div>
3077        </div><div class="cart-upsell__card-wrapper" data-product-id="7676028715094" data-variant-id="43472486301782">
3078          <div class="cart-upsell__card" aria-hidden="true">
3079            <div class="cart-upsell__card-header">
3080              <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">
3081</div>
3082              <div class="cart-upsell__card-text-wrapper">
3083                <h4 class="cart-upsell__card-title">Washi Box</h4>
3084                <p class="cart-upsell__card-description">Upgrade to elegant Japanese washi box packaging.</p>
3085              </div>
3086            </div>
3087            <ul class="cart-upsell__card-features">
3088              <li class="feature-premium">Premium presentation.</li>
3089              <li class="feature-special">Special packaging.</li>
3090            </ul>
3091          </div>
3092          <div class="cart-upsell__form" data-upsell-form data-has-gift-popup="false"
3093            data-variant-id="43472486301782"
3094            data-product-tags="hidden product,hide_btq_search,washi-box">
3095            <button type="button" class="cart-upsell__card-button"
3096              data-variant-id="43472486301782"
3097              aria-label="Upgrade to Washi Box for $20.00">
3098              <span class="cart-upsell__button-icon" aria-hidden="true">+</span>
3099              <span class="cart-upsell__button-text">Upgrade to Washi Box</span>
3100              <span class="cart-upsell__button-price">$20.00</span>
3101            </button>
3102          </div>
3103        </div></div>
3104      <button type="button" class="cart-upsell__nav-button cart-upsell__nav-button--next" aria-label="Next product" style="display: none;">
3105        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
3106          <path d="M9 18l6-6-6-6"/>
3107        </svg>
3108      </button>
3109    </div>
3110    
3111    <p class="cart-upsell__disclaimer">Gift wrapping paper design may vary.</p>
3112  </div></div>
3113
3114<script>
3115  document.addEventListener('DOMContentLoaded', function() {
3116    const cartItems = [];
3117    
3118    let hasUpsellProduct1 = false;
3119    let hasUpsellProduct2 = false;
3120    const upsellProductIds = [];
3121    
3122    
3123      upsellProductIds.push(7675567538262);
3124    
3125    
3126      upsellProductIds.push(7676028715094);
3127    
3128    
3129    for (let item of cartItems) {
3130      if (upsellProductIds.includes(item.product_id)) {
3131        
3132        if (item.product_id === 7675567538262) {
3133          hasUpsellProduct1 = true;
3134        }
3135        
3136        
3137        if (item.product_id === 7676028715094) {
3138          hasUpsellProduct2 = true;
3139        }
3140        
3141      }
3142    }
3143    
3144    if (!hasUpsellProduct1 && (null || null || null || null)) {
3145      fetch('/cart/update.js', {
3146        method: 'POST',
3147        headers: { 'Content-Type': 'application/json' },
3148        body: JSON.stringify({
3149          attributes: {
3150            'recepient': '',
3151            'sender': '',
3152            'gift_note': '',
3153            'gift_option': ''
3154          }
3155        })
3156      }).catch(function(err) {
3157        console.error('Failed to clear cart attributes:', err);
3158      });
3159    }
3160  });
3161</script>
3161
3162
3163<div id="gift-card-popup" class="gift-card-popup" style="display: none;">
3164  <div class="gift-card-popup__overlay"></div>
3165  <div class="gift-card-popup__content">
3166    <div class="gift-card-popup__header">
3167      <h3>Personalize Your Gift!</h3>
3168      <button type="button" class="gift-card-popup__close" aria-label="Close">&times;</button>
3169    </div>
3170    <div class="gift-card-popup__body">
3171      <p class="gift-card-popup__subtitle">Choose how you'd like to personalize your gift card</p>
3172
3173      <div class="gift-card-popup__options">
3174        <label class="gift-option-label">
3175          <input type="radio" name="gift_option" value="blank" class="gift-option-radio" checked>
3176          <div class="gift-option-content">
3177            <strong>Leave card blank</strong>
3178            <p>No message will be included</p>
3179          </div>
3180        </label>
3181
3182        <label class="gift-option-label">
3183          <input type="radio" name="gift_option" value="standard" class="gift-option-radio">
3184          <div class="gift-option-content">
3185            <strong>Include our standard message</strong>
3186            <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>
3187          </div>
3188        </label>
3189
3190        <label class="gift-option-label">
3191          <input type="radio" name="gift_option" value="custom" class="gift-option-radio">
3192          <div class="gift-option-content">
3193            <strong>Write a custom message</strong>
3194            <p>Add your personal touch with a custom message</p>
3195          </div>
3196        </label>
3197      </div>
3198
3199      <div id="custom-message-fields" class="custom-message-fields" style="display: none;">
3200        <div class="gift-card-popup__field">
3201          <label for="gift-card-to">To (Recipient Name) <span class="required">*</span></label>
3202          <input type="text" id="gift-card-to" name="gift-card-to" placeholder="Recipient's name" maxlength="100">
3203        </div>
3204        <div class="gift-card-popup__field">
3205          <label for="gift-card-message">Gift Message <span class="required">*</span></label>
3206          <textarea id="gift-card-message" name="gift-card-message" placeholder="Write your heartfelt message here..."
3207            rows="4" maxlength="200"></textarea>
3208          <div class="gift-card-popup__char-counter" id="gift-card-char-counter">0/200</div>
3209        </div>
3210        <div class="gift-card-popup__field">
3211          <label for="gift-card-from">From (Sender Name) <span class="required">*</span></label>
3212          <input type="text" id="gift-card-from" name="gift-card-from" placeholder="Your name" maxlength="100">
3213        </div>
3214      </div>
3215
3216      <div id="gift-card-preview" class="gift-card-preview" style="display: none;">
3217        <div class="gift-card-preview__card">
3218          <div class="gift-card-preview__content">
3219            <div class="gift-card-preview__to">
3220              <span class="gift-card-preview__value">To</span>
3221              <span class="gift-card-preview__value" id="previewRecipient">Recipient's name</span>
3222            </div>
3223            <div class="gift-card-preview__message" id="previewMessage">
3224              Your gift message will appear here...
3225            </div>
3226            <div class="gift-card-preview__from">
3227              <span class="gift-card-preview__value">From</span>
3228              <span class="gift-card-preview__value" id="previewSender">Your name</span>
3229            </div>
3230          </div>
3231        </div>
3232      </div>
3233    </div>
3234    <div class="gift-card-popup__footer">
3235      <button type="button" class="btn gift-card-popup__cancel">Cancel</button>
3236      <button type="button" class="btn gift-card-popup__save">Save</button>
3237    </div>
3238  </div>
3239</div>
3240
3241<style>
3242  .gift-card-popup__field input::placeholder {
3243    color: #101010 !important;
3244}
3245.gift-card-popup__footer {
3246  display: flex;
3247    gap: 10px;
3248    padding-bottom: 20px;
3249    justify-content: space-between;
3250    max-width: calc(100% - 53px);
3251    margin: auto;
3252}
3253  .cart-upsell {
3254    margin: 12px 0;
3255    background: #fff;
3256    border-radius: 16px;
3257    padding: 0;
3258    position: relative;
3259    max-width: initial !important;
3260    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
3261  }
3262
3263  .cart-upsell__container {
3264    padding: 16px;
3265  }
3266
3267  .cart-upsell__heading {
3268    margin: 0 0 6px;
3269    font-size: 1rem;
3270    color: #101010;
3271    text-align: left;
3272    letter-spacing: 0.5px;
3273    text-transform: uppercase;
3274    font-weight: 600;
3275  }
3276
3277  .cart-upsell__subheading {
3278    margin: 0 0 16px;
3279    font-size: 0.85rem;
3280    color: #606060;
3281    text-align: left;
3282    line-height: 1.5;
3283  }
3284
3285  .cart-upsell__cards-wrapper {
3286    position: relative;
3287    margin-bottom: 12px;
3288    width: 100%;
3289    overflow: visible;
3290  }
3291
3292
3293  .cart-upsell__cards {
3294    display: flex;
3295    overflow-x: auto;
3296    overflow-y: hidden;
3297    scroll-snap-type: x mandatory;
3298    gap: 12px;
3299    scrollbar-width: none; /* Firefox */
3300    -ms-overflow-style: none; /* IE and Edge */
3301    -webkit-overflow-scrolling: touch; /* iOS */
3302    scroll-behavior: smooth;
3303    touch-action: pan-x;
3304    width: 100%;
3305  }
3306
3307  .cart-upsell__cards::-webkit-scrollbar {
3308    display: none; /* Chrome, Safari, Opera */
3309  }
3310
3311  /* Desktop: Side by side for 2 products without scrolling */
3312  @media (min-width: 769px) {
3313    .cart-upsell__cards.has-two-products {
3314      display: flex;
3315      flex-direction: row;
3316      overflow-x: visible;
3317      overflow-y: visible;
3318      scroll-snap-type: none;
3319      gap: 12px;
3320    }
3321  }
3322
3323  .cart-upsell__card-wrapper {
3324    flex: 0 0 100%;
3325    scroll-snap-align: start;
3326    min-width: 0;
3327    box-sizing: border-box;
3328    display: flex;
3329    flex-direction: column;
3330    gap: 12px;
3331  }
3332
3333  /* Desktop: Each card takes 50% width to fit both in viewport */
3334  @media (min-width: 769px) {
3335    .cart-upsell__cards.has-two-products .cart-upsell__card-wrapper {
3336      flex: 1;
3337      min-width: 0;
3338      max-width: calc(50% - 6px);
3339    }
3340  }
3341
3342  .cart-upsell__card {
3343    background: #F5F5F5;
3344    border-radius: 12px;
3345    padding: 10px;
3346    display: flex;
3347    flex-direction: column;
3348    gap: 10px;
3349  }
3350
3351  .cart-upsell__card-header {
3352    display: flex;
3353    gap: 10px;
3354    align-items: flex-start;
3355  }
3356
3357  .cart-upsell__card-image-wrapper {
3358    width: 60px;
3359    height: 60px;
3360    border-radius: 8px;
3361    overflow: hidden;
3362    background: transparent;
3363    display: flex;
3364    align-items: center;
3365    justify-content: center;
3366    flex-shrink: 0;
3367  }
3368
3369  .cart-upsell__card-text-wrapper {
3370    display: flex;
3371    flex-direction: column;
3372    flex: 1;
3373    min-width: 0;
3374  }
3375
3376  .cart-upsell__form {
3377    width: 100%;
3378  }
3379
3380  .cart-upsell__card-image {
3381    width: 100%;
3382    height: 100%;
3383    object-fit: cover;
3384    border-radius: 8px;
3385    display: block;
3386    margin: 0;
3387    max-width: none;
3388  }
3389
3390  .cart-upsell__card-title {
3391    margin: 0 0 4px;
3392    font-size: 0.9rem;
3393    color: #101010;
3394    font-weight: 600;
3395    text-align: left;
3396    line-height: 1.3;
3397    letter-spacing: 1px !important;
3398  }
3399
3400  .cart-upsell__card-description {
3401    margin: 0;
3402    font-size: 0.75rem;
3403    color: #606060;
3404    line-height: 1.4;
3405    text-align: left;
3406  }
3407
3408  .cart-upsell__card-features {
3409    list-style: none;
3410    padding: 0;
3411    margin: 0;
3412    display: flex;
3413    flex-direction: column;
3414    width: 100%;
3415  }
3416
3417  .cart-upsell__card-features li {
3418    font-size: 0.75rem;
3419    color: #606060;
3420    line-height: 1.3;
3421    position: relative;
3422    padding-left: 24px;
3423    margin-bottom: 4px;
3424    display: flex;
3425    align-items: center;
3426  }
3427
3428  .cart-upsell__card-features li:last-child {
3429    margin-bottom: 0;
3430  }
3431
3432  .cart-upsell__card-features li::before {
3433    content: '';
3434    position: absolute;
3435    left: 0;
3436    width: 18px;
3437    height: 18px;
3438    background-size: contain;
3439    background-repeat: no-repeat;
3440    background-position: center;
3441  }
3442
3443  /* Individual icon styles */
3444  .cart-upsell__card-features .feature-wrapping::before {
3445    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>');
3446  }
3447
3448  .cart-upsell__card-features .feature-ribbon::before {
3449    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>');
3450  }
3451
3452  .cart-upsell__card-features .feature-card::before {
3453    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>');
3454  }
3455
3456  .cart-upsell__card-features .feature-box::before {
3457    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>');
3458  }
3459
3460  .cart-upsell__card-features .feature-premium::before {
3461    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>');
3462  }
3463
3464  .cart-upsell__card-features .feature-special::before {
3465    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>');
3466  }
3467
3468  .cart-upsell__card-button {
3469    width: 100%;
3470    background: transparent;
3471    border: 1px solid var(--cta_outline_primary_static);
3472    border-radius: 8px;
3473    padding: 10px 12px;
3474    font-size: 11px;
3475    font-weight: 600;
3476    color: var(--cta_outline_primary_static);
3477    cursor: pointer;
3478    transition: all 0.2s ease;
3479    display: flex;
3480    align-items: center;
3481    justify-content: space-between;
3482    font-family: var(--button_font_family, inherit);
3483    margin-top: auto;
3484    min-height: 44px;
3485    gap: initial;
3486    box-sizing: border-box;
3487  }
3488
3489  .cart-upsell__card-button:hover {
3490    background: var(--cta_outline_primary_static);
3491    color: #fff;
3492  }
3493
3494  .cart-upsell__card-button:focus {
3495    outline: 2px solid var(--cta_outline_primary_static);
3496    outline-offset: 2px;
3497  }
3498
3499  .cart-upsell__card-button .cart-upsell__button-icon {
3500    font-size: 0.9rem;
3501    font-weight: 400;
3502    margin-right: 4px;
3503  }
3504
3505  .cart-upsell__button-text {
3506    flex: 1;
3507    text-align: left;
3508  }
3509
3510  .cart-upsell__button-price {
3511    font-weight: 600;
3512  }
3513
3514  .cart-upsell__nav-button {
3515    position: absolute;
3516    top: 50%;
3517    transform: translateY(-50%);
3518    background: #fff;
3519    border: 1px solid #e1e1e1;
3520    border-radius: 50%;
3521    width: 40px;
3522    height: 40px;
3523    display: flex;
3524    align-items: center;
3525    justify-content: center;
3526    cursor: pointer;
3527    z-index: 2;
3528    transition: all 0.2s ease;
3529    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
3530    color: #101010;
3531  }
3532
3533  .cart-upsell__nav-button:hover:not(:disabled) {
3534    background: #f5f5f5;
3535    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
3536    transform: translateY(-50%) scale(1.05);
3537  }
3538
3539  .cart-upsell__nav-button:focus {
3540    outline: 2px solid var(--cta_outline_primary_static);
3541    outline-offset: 2px;
3542  }
3543
3544  .cart-upsell__nav-button:disabled {
3545    opacity: 0.3;
3546    cursor: not-allowed;
3547  }
3548
3549  .cart-upsell__nav-button--prev {
3550    left: 5px;
3551  }
3552
3553  .cart-upsell__nav-button--next {
3554    right: 5px;
3555  }
3556
3557  .cart-upsell__disclaimer {
3558    margin: 12px 0 0;
3559    font-size: 0.7rem;
3560    color: #606060;
3561    text-align: center;
3562    font-style: normal;
3563  }
3564
3565  .gift-card-popup {
3566    position: fixed;
3567    top: 0;
3568    left: 0;
3569    width: 100%;
3570    height: 100%;
3571    z-index: 999999;
3572    display: flex;
3573    align-items: center;
3574    justify-content: center;
3575    padding: 20px;
3576    box-sizing: border-box;
3577  }
3578
3579  .gift-card-popup__overlay {
3580    position: absolute;
3581    top: 0;
3582    left: 0;
3583    width: 100%;
3584    height: 100%;
3585    background: rgba(0, 0, 0, 0.5);
3586    backdrop-filter: blur(2px);
3587  }
3588
3589  .gift-card-popup__content {
3590    position: relative;
3591    background: #fff;
3592    border-radius: 12px;
3593    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
3594    max-width: 500px;
3595    width: 100%;
3596    max-height: 85vh;
3597    max-height: calc(100dvh - 40px);
3598    overflow-y: auto;
3599    animation: popup-slide-in 0.3s ease-out;
3600  }
3601
3602  @keyframes popup-slide-in {
3603    from {
3604      opacity: 0;
3605      transform: scale(0.9) translateY(-20px);
3606    }
3607
3608    to {
3609      opacity: 1;
3610      transform: scale(1) translateY(0);
3611    }
3612  }
3613
3614  .gift-card-popup__header {
3615    display: flex;
3616    justify-content: space-between;
3617    align-items: center;
3618    padding: 20px 24px;
3619    border-bottom: 1px solid #eee;
3620  }
3621
3622  .gift-card-popup__header h3 {
3623    margin: 0;
3624    font-size: 18px !important;
3625    font-weight: 600;
3626    color: #333;
3627  }
3628
3629  .gift-card-popup__close {
3630    background: none;
3631    border: none;
3632    font-size: 24px;
3633    color: #999;
3634    cursor: pointer;
3635    padding: 0;
3636    width: 30px;
3637    height: 30px;
3638    display: flex;
3639    align-items: center;
3640    justify-content: center;
3641    border-radius: 50%;
3642    transition: all 0.2s ease;
3643  }
3644
3645  .gift-card-popup__close:hover {
3646    background: #f5f5f5;
3647    color: #333;
3648  }
3649
3650  .gift-card-popup__body {
3651    padding: 24px;
3652  }
3653
3654  .gift-card-popup__subtitle {
3655    font-size: 14px;
3656    color: #6b7280;
3657    margin: 0 0 20px 0;
3658    line-height: 1.5;
3659  }
3660
3661  .gift-card-popup__options {
3662    margin-bottom: 20px;
3663    display: flex;
3664    flex-direction: column;
3665    gap: 12px;
3666  }
3667
3668  .gift-option-label {
3669    display: flex;
3670    align-items: flex-start;
3671    padding: 16px;
3672    border: 2px solid #e5e7eb;
3673    border-radius: 8px;
3674    cursor: pointer;
3675    transition: all 0.2s;
3676    background: #ffffff;
3677  }
3678
3679  .gift-option-label:hover {
3680    border-color: #d1d5db;
3681    background: #f9fafb;
3682  }
3683
3684  .gift-option-label:has(.gift-option-radio:checked) {
3685    border-color: var(--cta_outline_primary_static, #243846);
3686    background: rgba(36, 56, 70, 0.05);
3687  }
3688
3689  .gift-option-radio {
3690    margin-top: 2px;
3691    margin-right: 12px;
3692    flex-shrink: 0;
3693    width: 18px;
3694    height: 18px;
3695    cursor: pointer;
3696    accent-color: var(--cta_outline_primary_static, #243846);
3697  }
3698
3699  .gift-option-content {
3700    flex: 1;
3701  }
3702
3703  .gift-option-content strong {
3704    display: block;
3705    font-size: 15px;
3706    color: #1f2937;
3707    margin-bottom: 4px;
3708    font-weight: 600;
3709  }
3710
3711  .gift-option-content p {
3712    font-size: 13px;
3713    color: #6b7280;
3714    margin: 0;
3715    line-height: 1.5;
3716  }
3717
3718  .standard-message-preview {
3719    font-style: italic;
3720    padding: 8px 12px;
3721    background: #f3f4f6;
3722    border-radius: 6px;
3723    margin-top: 8px !important;
3724  }
3725
3726  .custom-message-fields {
3727    padding-top: 16px;
3728    border-top: 1px solid #e5e7eb;
3729    margin-top: 8px;
3730    display: none;
3731  }
3732
3733  .gift-card-popup__field {
3734    margin-bottom: 20px;
3735  }
3736
3737  .gift-card-popup__field:last-child {
3738    margin-bottom: 0;
3739  }
3740
3741  .gift-card-popup__field label {
3742    display: block;
3743    margin-bottom: 6px;
3744    font-weight: 500;
3745    color: #333;
3746    font-size: 0.95rem;
3747  }
3748
3749  .gift-card-popup__field label .required {
3750    color: #ef4444;
3751  }
3752
3753  .gift-card-popup__field input,
3754  .gift-card-popup__field textarea {
3755    width: 100%;
3756    padding: 12px 16px;
3757    border: 2px solid #e1e1e1;
3758    border-radius: 8px;
3759    font-size: 0.95rem;
3760    transition: border-color 0.2s ease;
3761    font-family: inherit;
3762    box-sizing: border-box;
3763  }
3764
3765  .gift-card-popup__char-counter {
3766    font-size: 0.8rem;
3767    color: #666;
3768    text-align: right;
3769    margin-top: 4px;
3770    transition: color 0.2s ease;
3771  }
3772
3773  .gift-card-popup__char-counter.warning {
3774    color: #ff8c00;
3775  }
3776
3777  .gift-card-popup__char-counter.error {
3778    color: #dc3545;
3779  }
3780
3781  .gift-card-popup__field input:focus,
3782  .gift-card-popup__field textarea:focus {
3783    outline: none;
3784    border-color: #101010;
3785  }
3786
3787  .gift-card-preview {
3788    margin-top: 24px;
3789    padding-top: 24px;
3790    border-top: 1px solid #e5e7eb;
3791    display: none;
3792    justify-content: center;
3793    width: 100%;
3794  }
3795
3796  .gift-card-preview__card {
3797    background: linear-gradient(135deg, #fefefe 0%, #f9fafb 100%);
3798    border: none;
3799    border-radius: 12px;
3800    padding: 32px 28px;
3801    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
3802    position: relative;
3803    font-family: 'Georgia', 'Times New Roman', serif;
3804    width: 100%;
3805    text-align: center;
3806  }
3807
3808  .gift-card-preview__content {
3809    position: relative;
3810    z-index: 1;
3811    display: flex;
3812    flex-direction: column;
3813    align-items: center;
3814  }
3815
3816  .gift-card-preview__to,
3817  .gift-card-preview__from {
3818    display: flex;
3819    align-items: center;
3820    gap: 8px;
3821    font-size: 16px;
3822  }
3823
3824  .gift-card-preview__value {
3825    color: #2d5016;
3826    font-weight: 500;
3827    font-style: italic;
3828  }
3829
3830  .gift-card-preview__value:empty::before {
3831    content: '...';
3832    color: #2d5016;
3833    font-style: normal;
3834    opacity: 0.6;
3835  }
3836
3837  .gift-card-preview__message {
3838    color: #2d5016;
3839    font-size: 15px;
3840    line-height: 1.8;
3841    white-space: pre-wrap;
3842    word-wrap: break-word;
3843    font-style: italic;
3844    margin: 8px 0;
3845  }
3846
3847  .gift-card-preview__message:empty::before {
3848    content: 'Your gift message will appear here...';
3849    color: #2d5016;
3850    font-style: normal;
3851    font-size: 14px;
3852    opacity: 0.6;
3853  }
3854
3855  .gift-card-preview__from {
3856    margin-top: auto;
3857    text-align: center;
3858    justify-content: center;
3859  }
3860
3861  .gift-card-popup__cancel {
3862    background: transparent;
3863    color: #495057;
3864    border: 1px solid #e1e1e1;
3865    padding: 10px 20px;
3866    font-size: 0.9rem;
3867    cursor: pointer;
3868    transition: all 0.2s ease;
3869    border-radius: 8px;
3870  }
3871
3872  .gift-card-popup__cancel:hover {
3873    background: #e9ecef;
3874    color: #495057;
3875  }
3876
3877  .gift-card-popup__save {
3878    background: var(--brand_color_1, #007bff);
3879    color: #fff;
3880    border: none;
3881    padding: 10px 20px;
3882    font-size: 0.9rem;
3883    cursor: pointer;
3884    transition: all 0.2s ease;
3885    border-radius: 8px;
3886  }
3887
3888  .gift-card-popup__save:hover {
3889    filter: brightness(0.95);
3890  }
3891
3892  .gift-card-popup__save:disabled {
3893    opacity: 0.6;
3894    cursor: not-allowed;
3895  }
3896
3897
3898  @media (min-width: 481px) and (max-width: 768px) {
3899    .cart-upsell__cards:not(.has-two-products) {
3900      flex-direction: column;
3901      overflow-x: visible;
3902      overflow-y: visible;
3903      scroll-snap-type: none;
3904      touch-action: auto;
3905    }
3906
3907    .cart-upsell__cards:not(.has-two-products) .cart-upsell__card {
3908      flex: 1 1 auto;
3909      width: 100%;
3910      scroll-snap-align: none;
3911    }
3912  }
3913
3914
3915  @media (max-width: 768px) {
3916    .cart-upsell__container {
3917      padding: 12px;
3918    }
3919
3920    .cart-upsell__heading {
3921      font-size: 0.95rem;
3922      margin-bottom: 6px;
3923    }
3924
3925    .cart-upsell__subheading {
3926      font-size: 0.75rem;
3927      margin-bottom: 12px;
3928    }
3929
3930    .cart-upsell__cards-wrapper {
3931      margin-bottom: 10px;
3932      overflow: visible;
3933    }
3934
3935    /* Two products on mobile - horizontal scroll */
3936    .cart-upsell__cards.has-two-products {
3937      display: flex;
3938      flex-direction: row;
3939      overflow-x: auto;
3940      overflow-y: hidden;
3941      scroll-snap-type: x mandatory;
3942      gap: 12px;
3943      scrollbar-width: none;
3944      -ms-overflow-style: none;
3945      -webkit-overflow-scrolling: touch;
3946      scroll-behavior: smooth;
3947      padding-bottom: 5px;
3948    }
3949
3950    .cart-upsell__cards.has-two-products::-webkit-scrollbar {
3951      display: none;
3952    }
3953
3954    .cart-upsell__cards.has-two-products .cart-upsell__card-wrapper {
3955      flex: 0 0 85%;
3956      scroll-snap-align: start;
3957      min-width: 0;
3958    }
3959
3960    /* Single product on mobile - vertical stack */
3961    .cart-upsell__cards:not(.has-two-products) {
3962      flex-direction: column;
3963      overflow-x: visible;
3964      overflow-y: visible;
3965      scroll-snap-type: none;
3966      gap: 10px;
3967      touch-action: auto;
3968    }
3969
3970    .cart-upsell__card {
3971      padding: 10px;
3972      flex: 1 1 auto;
3973      width: 100%;
3974      max-width: 100%;
3975      scroll-snap-align: none;
3976    }
3977
3978    .cart-upsell__card-header {
3979      gap: 8px;
3980    }
3981
3982    .cart-upsell__card-image-wrapper {
3983      width: 50px;
3984      height: 50px;
3985      flex-shrink: 0;
3986      background: transparent;
3987    }
3988
3989    .cart-upsell__card-image {
3990      width: 100%;
3991      height: 100%;
3992      object-fit: cover;
3993    }
3994
3995    .cart-upsell__card-title {
3996      font-size: 0.85rem;
3997      margin-bottom: 4px;
3998    }
3999
4000    .cart-upsell__card-description {
4001      font-size: 0.7rem;
4002      margin-bottom: 0;
4003    }
4004
4005    .cart-upsell__card-features {
4006      margin-bottom: 0;
4007    }
4008
4009    .cart-upsell__card-features li {
4010      font-size: 0.7rem;
4011      padding-left: 20px;
4012      margin-bottom: 5px;
4013    }
4014
4015    .cart-upsell__card-button {
4016      padding: 8px 12px;
4017      font-size: 0.75rem;
4018      min-height: 40px;
4019    }
4020
4021    .cart-upsell__nav-button {
4022      display: none;
4023      width: 36px;
4024      height: 36px;
4025    }
4026
4027    .cart-upsell__nav-button--prev {
4028      left: 5px;
4029    }
4030
4031    .cart-upsell__nav-button--next {
4032      right: 5px;
4033    }
4034
4035    .cart-upsell__disclaimer {
4036      font-size: 0.65rem;
4037      margin-top: 10px;
4038    }
4039  }
4040
4041  @media (min-width: 769px) {
4042    /* Desktop - both products side by side without scrolling */
4043    .cart-upsell__cards.has-two-products {
4044      display: flex;
4045      flex-direction: row;
4046      overflow-x: visible;
4047      overflow-y: visible;
4048      scroll-snap-type: none;
4049      gap: 12px;
4050      width: 100%;
4051    }
4052
4053    .cart-upsell__cards.has-two-products .cart-upsell__card-wrapper {
4054      flex: 1;
4055      min-width: 0;
4056      max-width: calc(50% - 6px);
4057    }
4058
4059    /* Single product on desktop - prevent scroll, clean layout */
4060    .cart-upsell__cards:not(.has-two-products) {
4061      display: flex;
4062      flex-direction: column;
4063      overflow-x: visible;
4064      overflow-y: visible;
4065      scroll-snap-type: none;
4066      gap: 12px;
4067      width: 100%;
4068    }
4069
4070    .cart-upsell__cards:not(.has-two-products) .cart-upsell__card-wrapper {
4071      width: 100%;
4072      max-width: 100%;
4073    }
4074
4075    /* Hide navigation buttons on desktop when no scrolling */
4076    .cart-upsell__nav-button {
4077      display: none;
4078    }
4079  }
4080
4081  @media (max-width: 768px) {
4082    .gift-card-popup__content {
4083      width: 95%;
4084    }
4085
4086    .gift-card-popup__header,
4087    .gift-card-popup__body,
4088    .gift-card-popup__footer {
4089      padding: 16px 20px;
4090    }
4091
4092    .gift-card-popup__footer {
4093      flex-direction: column-reverse;
4094    }
4095
4096    .gift-card-popup__cancel,
4097    .gift-card-popup__save {
4098      width: 100%;
4099      padding: 12px;
4100    }
4101
4102    .gift-card-preview__card {
4103      padding: 24px 20px;
4104    }
4105
4106    .gift-card-preview__message {
4107      font-size: 14px;
4108      line-height: 1.6;
4109      min-height: 60px;
4110    }
4111
4112    .gift-card-preview__to,
4113    .gift-card-preview__from {
4114      font-size: 14px;
4115    }
4116  }
4117</style>
4118
4119<script>
4120  (function() {
4121    'use strict';
4122
4123    // Configuration
4124    const CONFIG = {
4125      DEBOUNCE_DELAY: 150,
4126      INITIAL_CHECK_DELAY: 300,
4127      CART_UPDATE_DELAY: 400,
4128      MUTATION_DEBOUNCE: 300,
4129      VISIBILITY_CHECK_INTERVAL: 5000, // Reduced from 2000ms
4130      MAX_RETRY_ATTEMPTS: 3,
4131      RETRY_DELAY: 1000,
4132      CAROUSEL_SCROLL_DEBOUNCE: 100
4133    };
4134
4135    // Carousel state
4136    const carouselState = {
4137      carousel: null,
4138      prevButton: null,
4139      nextButton: null,
4140      isInitialized: false,
4141      updateButtons: null
4142    };
4143
4144    // Initialize carousel
4145    function initCarousel() {
4146      const carousel = document.querySelector('[data-carousel]');
4147      if (!carousel) return;
4148
4149      const isMobile = window.innerWidth <= 768;
4150      
4151      // On mobile, hide navigation buttons (touch scrolling is used)
4152      if (isMobile) {
4153        const prevButton = carousel.closest('.cart-upsell__cards-wrapper')?.querySelector('.cart-upsell__nav-button--prev');
4154        const nextButton = carousel.closest('.cart-upsell__cards-wrapper')?.querySelector('.cart-upsell__nav-button--next');
4155        if (prevButton) prevButton.style.display = 'none';
4156        if (nextButton) nextButton.style.display = 'none';
4157        // Still initialize for mobile to handle scroll events, but don't show buttons
4158      }
4159
4160      // Re-initialize if already initialized (for dynamic content)
4161      if (carouselState.isInitialized && carouselState.carousel === carousel) {
4162        if (carouselState.updateButtons) {
4163          setTimeout(() => carouselState.updateButtons(), 100);
4164        }
4165        return;
4166      }
4167
4168      carouselState.carousel = carousel;
4169      carouselState.prevButton = carousel.closest('.cart-upsell__cards-wrapper')?.querySelector('.cart-upsell__nav-button--prev');
4170      carouselState.nextButton = carousel.closest('.cart-upsell__cards-wrapper')?.querySelector('.cart-upsell__nav-button--next');
4171
4172      // Update button states
4173      function updateCarouselButtons() {
4174        if (!carouselState.carousel) return;
4175        
4176        const { scrollLeft, scrollWidth, clientWidth } = carouselState.carousel;
4177        const isAtStart = scrollLeft <= 10;
4178        const isAtEnd = scrollLeft >= scrollWidth - clientWidth - 10;
4179        const needsScrolling = scrollWidth > clientWidth;
4180        const isMobile = window.innerWidth <= 768;
4181
4182        // On mobile, hide buttons (touch scrolling is used)
4183        // On desktop, show buttons when scrolling is needed (disable when at start/end)
4184        if (carouselState.prevButton) {
4185          if (isMobile) {
4186            carouselState.prevButton.style.display = 'none';
4187          } else {
4188            carouselState.prevButton.disabled = isAtStart || !needsScrolling;
4189            carouselState.prevButton.style.display = (needsScrolling && !isAtStart) ? 'flex' : 'none';
4190          }
4191        }
4192        if (carouselState.nextButton) {
4193          if (isMobile) {
4194            carouselState.nextButton.style.display = 'none';
4195          } else {
4196            carouselState.nextButton.disabled = isAtEnd || !needsScrolling;
4197            carouselState.nextButton.style.display = (needsScrolling && !isAtEnd) ? 'flex' : 'none';
4198          }
4199        }
4200      }
4201
4202      // Store function reference for external access
4203      carouselState.updateButtons = updateCarouselButtons;
4204
4205      // Initialize button state
4206      updateCarouselButtons();
4207
4208      // Navigation handlers
4209      function scrollCarousel(direction) {
4210        if (!carouselState.carousel) return;
4211        
4212        const cardWidth = carouselState.carousel.querySelector('.cart-upsell__card')?.offsetWidth || 0;
4213        const gap = 12;
4214        const scrollAmount = cardWidth + gap;
4215        
4216        const currentScroll = carouselState.carousel.scrollLeft;
4217        const targetScroll = direction === 'next' 
4218          ? currentScroll + scrollAmount 
4219          : currentScroll - scrollAmount;
4220
4221        carouselState.carousel.scrollTo({
4222          left: targetScroll,
4223          behavior: 'smooth'
4224        });
4225      }
4226
4227      // Event listeners for navigation buttons
4228      if (carouselState.prevButton) {
4229        carouselState.prevButton.addEventListener('click', () => scrollCarousel('prev'));
4230      }
4231      if (carouselState.nextButton) {
4232        carouselState.nextButton.addEventListener('click', () => scrollCarousel('next'));
4233      }
4234
4235      // Update buttons on scroll (for touch scrolling)
4236      const debouncedUpdate = debounce(updateCarouselButtons, CONFIG.CAROUSEL_SCROLL_DEBOUNCE);
4237      carouselState.carousel.addEventListener('scroll', debouncedUpdate, { passive: true });
4238
4239      // Update on resize
4240      let resizeTimeout;
4241      window.addEventListener('resize', () => {
4242        clearTimeout(resizeTimeout);
4243        resizeTimeout = setTimeout(() => {
4244          const isMobile = window.innerWidth <= 768;
4245          if (isMobile) {
4246            // Hide buttons on mobile
4247            if (carouselState.prevButton) carouselState.prevButton.style.display = 'none';
4248            if (carouselState.nextButton) carouselState.nextButton.style.display = 'none';
4249          } else {
4250            // Re-initialize carousel on desktop and update button visibility
4251            if (carouselState.updateButtons) {
4252              updateCarouselButtons();
4253            }
4254          }
4255        }, 250);
4256      }, { passive: true });
4257
4258      // Keyboard navigation
4259      carouselState.carousel.addEventListener('keydown', (e) => {
4260        if (e.key === 'ArrowLeft' && carouselState.prevButton && !carouselState.prevButton.disabled) {
4261          e.preventDefault();
4262          scrollCarousel('prev');
4263        } else if (e.key === 'ArrowRight' && carouselState.nextButton && !carouselState.nextButton.disabled) {
4264          e.preventDefault();
4265          scrollCarousel('next');
4266        }
4267      });
4268
4269      carouselState.isInitialized = true;
4270    }
4271
4272    // State management
4273    const state = {
4274      currentGiftCardData: null,
4275      lastCartState: null,
4276      checkTimeout: null,
4277      mutationTimeout: null,
4278      isFetching: false,
4279      isInitialized: false,
4280      retryCount: 0,
4281      visibilityCheckInterval: null,
4282      cartCache: null,
4283      cacheTimestamp: 0,
4284      CACHE_DURATION: 500 // Cache cart data for 500ms
4285    };
4286
4287    // Product IDs from Liquid
4288    const UPSELL_PRODUCT_ID_1 = 7675567538262;
4289    const UPSELL_PRODUCT_ID_2 = 7676028715094;
4290
4291    // Utility: Debounced function executor
4292    function debounce(func, wait) {
4293      let timeout;
4294      return function executedFunction(...args) {
4295        const later = () => {
4296          clearTimeout(timeout);
4297          func(...args);
4298        };
4299        clearTimeout(timeout);
4300        timeout = setTimeout(later, wait);
4301      };
4302    }
4303
4304    // Utility: Safe element query
4305    function safeQuerySelector(selector, context = document) {
4306      try {
4307        return context.querySelector(selector);
4308      } catch (error) {
4309        console.error('Invalid selector:', selector, error);
4310        return null;
4311      }
4312    }
4313
4314    // Utility: Get cached cart or fetch new
4315    function getCartData() {
4316      const now = Date.now();
4317
4318      // Return cached data if still valid
4319      if (state.cartCache && (now - state.cacheTimestamp) < state.CACHE_DURATION) {
4320        return Promise.resolve(state.cartCache);
4321      }
4322
4323      // Prevent concurrent fetches
4324      if (state.isFetching) {
4325        return new Promise((resolve) => {
4326          const checkInterval = setInterval(() => {
4327            if (!state.isFetching && state.cartCache) {
4328              clearInterval(checkInterval);
4329              resolve(state.cartCache);
4330            }
4331          }, 50);
4332
4333          // Timeout after 2 seconds
4334          setTimeout(() => {
4335            clearInterval(checkInterval);
4336            resolve(null);
4337          }, 2000);
4338        });
4339      }
4340
4341      state.isFetching = true;
4342
4343      return fetch('/cart.js', {
4344        method: 'GET',
4345        headers: {
4346          'Content-Type': 'application/json',
4347          'X-Requested-With': 'XMLHttpRequest'
4348        },
4349        credentials: 'same-origin'
4350      })
4351        .then(response => {
4352          if (!response.ok) {
4353            throw new Error('Cart fetch failed: ' + response.status);
4354          }
4355          return response.json();
4356        })
4357        .then(cart => {
4358          state.cartCache = cart;
4359          state.cacheTimestamp = Date.now();
4360          state.retryCount = 0;
4361          return cart;
4362        })
4363        .catch(error => {
4364          console.error('Failed to fetch cart:', error);
4365
4366          // Retry logic
4367          if (state.retryCount < CONFIG.MAX_RETRY_ATTEMPTS) {
4368            state.retryCount++;
4369            return new Promise(resolve => {
4370              setTimeout(() => {
4371                resolve(getCartData());
4372              }, CONFIG.RETRY_DELAY * state.retryCount);
4373            });
4374          }
4375
4376          return null;
4377        })
4378        .finally(() => {
4379          state.isFetching = false;
4380        });
4381    }
4382
4383    // Invalidate cache when cart changes
4384    function invalidateCartCache() {
4385      state.cartCache = null;
4386      state.cacheTimestamp = 0;
4387    }
4388
4389    // Gift card popup functions
4390
4391    // Session storage functions for gift data persistence
4392    function getGiftDataKey(productId) {
4393      return 'giftMessageData_' + (productId || UPSELL_PRODUCT_ID_1 || 'default');
4394    }
4395
4396    function loadSavedGiftData(productId) {
4397      try {
4398        if (typeof Storage === 'undefined') {
4399          return null;
4400        }
4401        const key = getGiftDataKey(productId);
4402        const savedData = sessionStorage.getItem(key);
4403        if (savedData) {
4404          return JSON.parse(savedData);
4405        }
4406      } catch (error) {
4407        console.error('Error loading saved gift data:', error);
4408      }
4409      return null;
4410    }
4411
4412    function saveGiftData(sender, recipient, giftMessage, productId) {
4413      try {
4414        if (typeof Storage === 'undefined') {
4415          return;
4416        }
4417        const key = getGiftDataKey(productId);
4418        const data = {
4419          sender: sender,
4420          recipient: recipient,
4421          gift_note: giftMessage,
4422          timestamp: Date.now()
4423        };
4424        sessionStorage.setItem(key, JSON.stringify(data));
4425      } catch (error) {
4426        console.error('Error saving gift data:', error);
4427      }
4428    }
4429
4430    function clearSavedGiftData(productId) {
4431      try {
4432        if (typeof Storage === 'undefined') {
4433          return;
4434        }
4435        const key = getGiftDataKey(productId);
4436        sessionStorage.removeItem(key);
4437      } catch (error) {
4438        console.error('Error clearing gift data:', error);
4439      }
4440    }
4441
4442    function updateGiftPreview() {
4443      try {
4444        const toField = document.getElementById('gift-card-to');
4445        const fromField = document.getElementById('gift-card-from');
4446        const messageField = document.getElementById('gift-card-message');
4447        const previewRecipient = document.getElementById('previewRecipient');
4448        const previewSender = document.getElementById('previewSender');
4449        const previewMessage = document.getElementById('previewMessage');
4450        const previewSection = document.getElementById('gift-card-preview');
4451
4452        if (!toField || !fromField || !messageField || !previewRecipient || !previewSender || !previewMessage || !previewSection) {
4453          return;
4454        }
4455
4456        const recipient = toField.value.trim();
4457        const sender = fromField.value.trim();
4458        const message = messageField.value.trim();
4459
4460        previewRecipient.textContent = recipient || 'Recipient\'s name';
4461        previewSender.textContent = sender || 'Your name';
4462        previewMessage.textContent = message || 'Your gift message will appear here...';
4463
4464        // Only show preview when custom option is selected
4465        const selectedOption = document.querySelector('.gift-option-radio:checked');
4466        if (selectedOption && selectedOption.value === 'custom') {
4467          previewSection.style.display = 'flex';
4468        } else {
4469          previewSection.style.display = 'none';
4470        }
4471      } catch (error) {
4472        console.error('Error updating gift preview:', error);
4473      }
4474    }
4475
4476    // Toggle custom fields visibility based on radio selection
4477    function toggleCustomFields() {
4478      const customMessageFields = document.getElementById('custom-message-fields');
4479      const previewSection = document.getElementById('gift-card-preview');
4480      const selectedOption = document.querySelector('.gift-option-radio:checked');
4481
4482      if (!customMessageFields) return;
4483
4484      if (selectedOption && selectedOption.value === 'custom') {
4485        customMessageFields.style.display = 'block';
4486        if (previewSection) {
4487          previewSection.style.display = 'flex';
4488        }
4489        // Make fields required
4490        const toField = document.getElementById('gift-card-to');
4491        const fromField = document.getElementById('gift-card-from');
4492        const messageField = document.getElementById('gift-card-message');
4493        if (toField) toField.required = true;
4494        if (fromField) fromField.required = true;
4495        if (messageField) messageField.required = true;
4496        updateGiftPreview();
4497      } else {
4498        customMessageFields.style.display = 'none';
4499        if (previewSection) {
4500          previewSection.style.display = 'none';
4501        }
4502        // Remove required attribute
4503        const toField = document.getElementById('gift-card-to');
4504        const fromField = document.getElementById('gift-card-from');
4505        const messageField = document.getElementById('gift-card-message');
4506        if (toField) toField.required = false;
4507        if (fromField) fromField.required = false;
4508        if (messageField) messageField.required = false;
4509      }
4510    }
4511
4512    function showGiftCardPopup(variantId, btn, productData) {
4513      state.currentGiftCardData = { variantId, btn, productData };
4514      const popup = document.getElementById('gift-card-popup');
4515      if (popup) {
4516        popup.style.display = 'flex';
4517        document.body.style.overflow = 'hidden';
4518
4519        // Load saved data from session storage
4520        const savedData = loadSavedGiftData(productData?.id);
4521        if (savedData) {
4522          // Populate custom message fields
4523          const toField = document.getElementById('gift-card-to');
4524          const fromField = document.getElementById('gift-card-from');
4525          const messageField = document.getElementById('gift-card-message');
4526          const charCounter = document.getElementById('gift-card-char-counter');
4527
4528          if (toField) toField.value = savedData.recipient || '';
4529          if (fromField) fromField.value = savedData.sender || '';
4530          if (messageField) messageField.value = savedData.gift_note || '';
4531
4532          if (charCounter && savedData.gift_note) {
4533            charCounter.textContent = `${savedData.gift_note.length} / 200`;
4534          }
4535
4536          // Select custom option if data exists
4537          const customOption = popup.querySelector('.gift-option-radio[value="custom"]');
4538          if (customOption) {
4539            customOption.checked = true;
4540            toggleCustomFields();
4541          }
4542        } else {
4543          // Select blank option by default
4544          const blankOption = popup.querySelector('.gift-option-radio[value="blank"]');
4545          if (blankOption) {
4546            blankOption.checked = true;
4547            toggleCustomFields();
4548          }
4549        }
4550
4551        requestAnimationFrame(() => {
4552          updateGiftPreview();
4553          // Focus on first empty field if custom is selected
4554          const selectedOption = popup.querySelector('.gift-option-radio:checked');
4555          if (selectedOption && selectedOption.value === 'custom') {
4556            const toField = document.getElementById('gift-card-to');
4557            const messageField = document.getElementById('gift-card-message');
4558            const fromField = document.getElementById('gift-card-from');
4559
4560            if (toField && !toField.value) {
4561              toField.focus();
4562            } else if (messageField && !messageField.value) {
4563              messageField.focus();
4564            } else if (fromField && !fromField.value) {
4565              fromField.focus();
4566            } else if (toField) {
4567              toField.focus();
4568              toField.select();
4569            }
4570          }
4571        });
4572      }
4573    }
4574
4575    function hideGiftCardPopup() {
4576      const popup = document.getElementById('gift-card-popup');
4577      if (popup) {
4578        // Save current form values to session storage before closing (only if custom option)
4579        const selectedOption = popup.querySelector('.gift-option-radio:checked');
4580        if (selectedOption && selectedOption.value === 'custom') {
4581          const toField = document.getElementById('gift-card-to');
4582          const fromField = document.getElementById('gift-card-from');
4583          const messageField = document.getElementById('gift-card-message');
4584
4585          const sender = fromField ? fromField.value.trim() : '';
4586          const recipient = toField ? toField.value.trim() : '';
4587          const giftMessage = messageField ? messageField.value.trim() : '';
4588
4589          // Only save if at least one field has value
4590          if (sender || recipient || giftMessage) {
4591            const productId = state.currentGiftCardData?.productData?.id;
4592            saveGiftData(sender, recipient, giftMessage, productId);
4593          }
4594        }
4595
4596        popup.style.display = 'none';
4597        document.body.style.overflow = '';
4598
4599        // Reset form fields
4600        const inputs = popup.querySelectorAll('input:not([type="radio"]), textarea');
4601        inputs.forEach(input => input.value = '');
4602
4603        // Reset to blank option
4604        const blankOption = popup.querySelector('.gift-option-radio[value="blank"]');
4605        if (blankOption) {
4606          blankOption.checked = true;
4607          toggleCustomFields();
4608        }
4609
4610        const charCounter = document.getElementById('gift-card-char-counter');
4611        if (charCounter) {
4612          charCounter.textContent = '0/200';
4613          charCounter.className = 'gift-card-popup__char-counter';
4614        }
4615
4616        const saveBtn = popup.querySelector('.gift-card-popup__save');
4617        if (saveBtn) {
4618          saveBtn.disabled = false;
4619          saveBtn.textContent = 'Save';
4620        }
4621
4622        updateGiftPreview();
4623      }
4624      state.currentGiftCardData = null;
4625    }
4626
4627    // Main widget check function
4628    function checkAndToggleUpsellWidget() {
4629      if (state.checkTimeout) {
4630        clearTimeout(state.checkTimeout);
4631      }
4632      state.checkTimeout = setTimeout(performCheck, CONFIG.DEBOUNCE_DELAY);
4633    }
4634
4635    function performCheck() {
4636      const upsellWidget = safeQuerySelector('[data-cart-upsell]');
4637      if (!upsellWidget) {
4638        return;
4639      }
4640
4641      getCartData()
4642        .then(cart => {
4643          if (!cart) {
4644            console.warn('Cart data unavailable, skipping widget update');
4645            return;
4646          }
4647
4648          const hasUpsellProduct1 = UPSELL_PRODUCT_ID_1 ?
4649            cart.items.some(item => item.product_id === UPSELL_PRODUCT_ID_1) : false;
4650          const hasUpsellProduct2 = UPSELL_PRODUCT_ID_2 ?
4651            cart.items.some(item => item.product_id === UPSELL_PRODUCT_ID_2) : false;
4652
4653          // Skip if state hasn't changed
4654          const currentState = `${hasUpsellProduct1}-${hasUpsellProduct2}-${cart.items.length}`;
4655          if (state.lastCartState === currentState) {
4656            return;
4657          }
4658          state.lastCartState = currentState;
4659
4660          // Check for qualifying products
4661          const hasQualifyingProducts = cart.items.some(item => {
4662            if (UPSELL_PRODUCT_ID_1 && item.product_id === UPSELL_PRODUCT_ID_1) return false;
4663            if (UPSELL_PRODUCT_ID_2 && item.product_id === UPSELL_PRODUCT_ID_2) return false;
4664            const sku = item.sku || '';
4665            return sku.includes('CBS') || sku.includes('CBG');
4666          });
4667
4668          // Remove upsell items if no qualifying products
4669          if ((hasUpsellProduct1 || hasUpsellProduct2) && !hasQualifyingProducts) {
4670            removeUpsellProducts(cart, hasUpsellProduct1, hasUpsellProduct2);
4671            return;
4672          }
4673
4674          // Update card visibility
4675          updateCardVisibility(upsellWidget, hasUpsellProduct1, hasUpsellProduct2);
4676        })
4677        .catch(err => {
4678          console.error('Error in performCheck:', err);
4679        });
4680    }
4681
4682    function removeUpsellProducts(cart, hasProduct1, hasProduct2) {
4683      const removePromises = [];
4684
4685      if (hasProduct1) {
4686        const item1 = cart.items.find(item => item.product_id === UPSELL_PRODUCT_ID_1);
4687        if (item1 && window.theme?.cart?.changeItem) {
4688          removePromises.push(
4689            window.theme.cart.changeItem(item1.key, 0)
4690              .catch(err => console.error('Failed to remove upsell item 1:', err))
4691          );
4692        }
4693      }
4694
4695      if (hasProduct2) {
4696        const item2 = cart.items.find(item => item.product_id === UPSELL_PRODUCT_ID_2);
4697        if (item2 && window.theme?.cart?.changeItem) {
4698          removePromises.push(
4699            window.theme.cart.changeItem(item2.key, 0)
4700              .catch(err => console.error('Failed to remove upsell item 2:', err))
4701          );
4702        }
4703      }
4704
4705      if (removePromises.length > 0) {
4706        Promise.all(removePromises).then(() => {
4707          invalidateCartCache();
4708          document.dispatchEvent(new CustomEvent('cart:build'));
4709          document.dispatchEvent(new CustomEvent('cart:updated'));
4710        });
4711      }
4712    }
4713
4714    function updateCardVisibility(upsellWidget, hasUpsellProduct1, hasUpsellProduct2) {
4715      // Find cards in grid layout
4716      const card1 = UPSELL_PRODUCT_ID_1 ?
4717        safeQuerySelector(`.cart-upsell__cards [data-product-id="${UPSELL_PRODUCT_ID_1}"]`, upsellWidget) : null;
4718      const card2 = UPSELL_PRODUCT_ID_2 ?
4719        safeQuerySelector(`.cart-upsell__cards [data-product-id="${UPSELL_PRODUCT_ID_2}"]`, upsellWidget) : null;
4720
4721      // Count visible products
4722      const card1Visible = !hasUpsellProduct1 && (UPSELL_PRODUCT_ID_1 !== null);
4723      const card2Visible = !hasUpsellProduct2 && (UPSELL_PRODUCT_ID_2 !== null);
4724      const visibleCount = (card1Visible ? 1 : 0) + (card2Visible ? 1 : 0);
4725
4726      // Hide entire widget if both products are in cart
4727      if (hasUpsellProduct1 && hasUpsellProduct2) {
4728        upsellWidget.style.display = 'none';
4729        return;
4730      }
4731
4732      // Update individual card visibility
4733      if (card1) {
4734        card1.style.display = hasUpsellProduct1 ? 'none' : 'block';
4735      }
4736      if (card2) {
4737        card2.style.display = hasUpsellProduct2 ? 'none' : 'block';
4738      }
4739
4740      // Show widget if at least one product is visible
4741      if (visibleCount > 0) {
4742        upsellWidget.style.display = 'block';
4743
4744        // Update grid visibility
4745        const gridContainer = safeQuerySelector('.cart-upsell__cards', upsellWidget);
4746        if (gridContainer) {
4747          gridContainer.style.display = '';
4748        }
4749      } else {
4750        // Hide widget if no products are visible
4751        upsellWidget.style.display = 'none';
4752      }
4753
4754      // Update carousel after visibility changes
4755      if (upsellWidget.style.display !== 'none' && carouselState.carousel && carouselState.updateButtons) {
4756        requestAnimationFrame(() => {
4757          carouselState.updateButtons();
4758        });
4759      }
4760    }
4761
4762    function addVariantToCart(variantId, btn, giftCardPersonalization = null) {
4763      if (!variantId) return;
4764
4765      const btnElement = btn;
4766      if (btnElement) {
4767        btnElement.classList.add('btn--loading');
4768        btnElement.disabled = true;
4769      }
4770
4771      const cartData = {
4772        id: parseInt(variantId, 10),
4773        quantity: 1
4774      };
4775
4776      fetch('/cart/add.js', {
4777        method: 'POST',
4778        headers: {
4779          'Content-Type': 'application/json',
4780          'X-Requested-With': 'XMLHttpRequest'
4781        },
4782        body: JSON.stringify(cartData),
4783        credentials: 'same-origin'
4784      })
4785        .then(response => {
4786          if (!response.ok) {
4787            throw new Error('Add to cart failed: ' + response.status);
4788          }
4789          return response.json();
4790        })
4791        .then(data => {
4792          if (giftCardPersonalization) {
4793            const cartAttributes = {
4794              'recepient': giftCardPersonalization.to || '',
4795              'sender': giftCardPersonalization.from || '',
4796              'gift_note': giftCardPersonalization.message || '',
4797              'gift_option': giftCardPersonalization.option || 'custom'
4798            };
4799
4800            return fetch('/cart/update.js', {
4801              method: 'POST',
4802              headers: {
4803                'Content-Type': 'application/json',
4804                'X-Requested-With': 'XMLHttpRequest'
4805              },
4806              body: JSON.stringify({ attributes: cartAttributes }),
4807              credentials: 'same-origin'
4808            }).then(res => ({ response: res, productData: data }));
4809          }
4810
4811          return { response: { ok: true }, productData: data };
4812        })
4813        .then(({ response, productData }) => {
4814          if (!response.ok) {
4815            throw new Error('Cart attribute update failed');
4816          }
4817
4818          invalidateCartCache();
4819
4820          document.dispatchEvent(new CustomEvent('cart:build'));
4821          document.dispatchEvent(new CustomEvent('ajaxProduct:added', {
4822            detail: { product: productData }
4823          }));
4824
4825          setTimeout(() => {
4826            state.lastCartState = null;
4827            checkAndToggleUpsellWidget();
4828          }, CONFIG.CART_UPDATE_DELAY);
4829
4830          if (giftCardPersonalization) {
4831            hideGiftCardPopup();
4832          }
4833        })
4834        .catch(err => {
4835          console.error('Upsell add-to-cart error:', err);
4836          alert('Failed to add item to cart. Please try again.');
4837        })
4838        .finally(() => {
4839          if (btnElement) {
4840            btnElement.classList.remove('btn--loading');
4841            btnElement.disabled = false;
4842          }
4843        });
4844    }
4845
4846    // Event handlers
4847    function handleUpsellButtonClick(e) {
4848      const btn = e.target.closest('.cart-upsell__card-button');
4849      if (!btn) return;
4850
4851      e.preventDefault();
4852      e.stopPropagation();
4853
4854      const container = btn.closest('[data-upsell-form]');
4855      const variantId = btn.getAttribute('data-variant-id') ||
4856        (container && container.getAttribute('data-variant-id'));
4857
4858      if (!variantId) {
4859        console.error('No variant ID found');
4860        return;
4861      }
4862
4863      const hasGiftPopup = container && container.getAttribute('data-has-gift-popup') === 'true';
4864
4865      if (hasGiftPopup) {
4866        try {
4867          const productJsonElement = container.querySelector('[data-product-json]');
4868
4869          if (!productJsonElement) {
4870            console.error('No product JSON element found');
4871            addVariantToCart(variantId, btn);
4872            return;
4873          }
4874
4875          const productData = JSON.parse(productJsonElement.textContent);
4876          showGiftCardPopup(variantId, btn, productData);
4877        } catch (error) {
4878          console.error('Error parsing product data:', error);
4879          addVariantToCart(variantId, btn);
4880        }
4881      } else {
4882        addVariantToCart(variantId, btn);
4883      }
4884    }
4885
4886    function handlePopupClick(e) {
4887      const popup = document.getElementById('gift-card-popup');
4888      if (!popup || popup.style.display === 'none') return;
4889
4890      if (e.target.classList.contains('gift-card-popup__overlay') ||
4891          e.target.classList.contains('gift-card-popup__close') ||
4892          e.target.classList.contains('gift-card-popup__cancel')) {
4893        hideGiftCardPopup();
4894        return;
4895      }
4896
4897      if (e.target.classList.contains('gift-card-popup__save')) {
4898        if (!state.currentGiftCardData) return;
4899
4900        const saveBtn = e.target;
4901        const selectedOption = document.querySelector('.gift-option-radio:checked');
4902
4903        if (!selectedOption) {
4904          alert('Please select a gift option.');
4905          return;
4906        }
4907
4908        const giftOption = selectedOption.value;
4909        let personalization = null;
4910
4911        if (giftOption === 'blank') {
4912          // No personalization needed, send empty attributes
4913          personalization = {
4914            option: 'blank',
4915            to: '',
4916            from: '',
4917            message: ''
4918          };
4919        } else if (giftOption === 'standard') {
4920          // Use standard message
4921          personalization = {
4922            option: 'standard',
4923            to: '',
4924            from: '',
4925            message: 'Enjoy this selection of Japanese snacks & products, a little treat from Japan to make your day special. Have a great day!'
4926          };
4927        } else if (giftOption === 'custom') {
4928          // Get custom message fields
4929          const toField = document.getElementById('gift-card-to');
4930          const fromField = document.getElementById('gift-card-from');
4931          const messageField = document.getElementById('gift-card-message');
4932
4933          const to = toField ? toField.value.trim() : '';
4934          const from = fromField ? fromField.value.trim() : '';
4935          const message = messageField ? messageField.value.trim() : '';
4936
4937          // Validate all fields are filled for custom option
4938          if (!to || !from || !message) {
4939            alert('Please fill in all required fields for your custom message.');
4940            return;
4941          }
4942
4943          personalization = {
4944            option: 'custom',
4945            to: to,
4946            from: from,
4947            message: message
4948          };
4949
4950          // Save custom message to session storage
4951          const productId = state.currentGiftCardData?.productData?.id;
4952          saveGiftData(from, to, message, productId);
4953        }
4954
4955        saveBtn.disabled = true;
4956        saveBtn.textContent = 'Saving...';
4957
4958        addVariantToCart(
4959          state.currentGiftCardData.variantId,
4960          state.currentGiftCardData.btn,
4961          personalization
4962        );
4963      }
4964    }
4965
4966    function handleKeydown(e) {
4967      const popup = document.getElementById('gift-card-popup');
4968      if (!popup || popup.style.display === 'none') return;
4969
4970      if (e.key === 'Escape') {
4971        hideGiftCardPopup();
4972      } else if (e.key === 'Enter' && e.target.tagName !== 'TEXTAREA') {
4973        const saveBtn = popup.querySelector('.gift-card-popup__save');
4974        if (saveBtn) {
4975          e.preventDefault();
4976          saveBtn.click();
4977        }
4978      }
4979    }
4980
4981    function handleInput(e) {
4982      if (e.target.id === 'gift-card-message') {
4983        const textarea = e.target;
4984        const charCounter = document.getElementById('gift-card-char-counter');
4985        if (charCounter) {
4986          const currentLength = textarea.value.length;
4987          const maxLength = 200;
4988
4989          charCounter.textContent = `${currentLength}/${maxLength}`;
4990          charCounter.className = 'gift-card-popup__char-counter';
4991
4992          if (currentLength >= maxLength) {
4993            charCounter.classList.add('error');
4994          } else if (currentLength >= 180) {
4995            charCounter.classList.add('warning');
4996          }
4997        }
4998        updateGiftPreview();
4999      } else if (e.target.id === 'gift-card-to' || e.target.id === 'gift-card-from') {
5000        updateGiftPreview();
5001      }
5002    }
5003
5004    // Optimized cart interaction handler
5005    const debouncedCartCheck = debounce(() => {
5006      invalidateCartCache();
5007      state.lastCartState = null;
5008      checkAndToggleUpsellWidget();
5009    }, 400);
5010
5011    function handleCartInteraction(e) {
5012      if (e.target.closest('[data-cart-remove]') ||
5013          e.target.closest('[data-cart-quantity]') ||
5014          e.target.closest('.cart__qty-button') ||
5015          (e.target.type === 'number' &&
5016           (e.target.closest('[data-cart-item]') || e.target.closest('.cart__item')))) {
5017        debouncedCartCheck();
5018      }
5019    }
5020
5021    // Setup watchers
5022    function setupCartWatchers() {
5023      // Single consolidated event listener
5024      const cartEvents = ['cart:build', 'cart:updated', 'cart:change', 'ajaxProduct:added', 'cart:refresh'];
5025      const eventHandler = debounce(() => {
5026        invalidateCartCache();
5027        state.lastCartState = null;
5028        checkAndToggleUpsellWidget();
5029      }, CONFIG.DEBOUNCE_DELAY);
5030
5031      cartEvents.forEach(eventName => {
5032        document.addEventListener(eventName, eventHandler, { passive: true });
5033      });
5034
5035      // Optimized MutationObserver
5036      const cartContainer = safeQuerySelector('.cart__items') ||
5037                           safeQuerySelector('[data-cart-items]') ||
5038                           safeQuerySelector('.cart-drawer') ||
5039                           safeQuerySelector('.cart');
5040
5041      if (cartContainer) {
5042        const debouncedMutationCheck = debounce(() => {
5043          invalidateCartCache();
5044          state.lastCartState = null;
5045          checkAndToggleUpsellWidget();
5046        }, CONFIG.MUTATION_DEBOUNCE);
5047
5048        const observer = new MutationObserver(mutations => {
5049          const hasRelevantChanges = mutations.some(mutation =>
5050            mutation.type === 'childList' &&
5051            (mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0)
5052          );
5053
5054          if (hasRelevantChanges) {
5055            debouncedMutationCheck();
5056          }
5057        });
5058
5059        observer.observe(cartContainer, {
5060          childList: true,
5061          subtree: true
5062        });
5063      }
5064
5065      // Visibility change check (only when tab is visible)
5066      if (typeof document.hidden !== 'undefined') {
5067        document.addEventListener('visibilitychange', () => {
5068          if (!document.hidden) {
5069            invalidateCartCache();
5070            checkAndToggleUpsellWidget();
5071          }
5072        }, { passive: true });
5073      }
5074
5075      // Reduced interval for periodic checks
5076      state.visibilityCheckInterval = setInterval(() => {
5077        if (!document.hidden) {
5078          checkAndToggleUpsellWidget();
5079        }
5080      }, CONFIG.VISIBILITY_CHECK_INTERVAL);
5081    }
5082
5083    // Initialize
5084    function init() {
5085      if (state.isInitialized) return;
5086      state.isInitialized = true;
5087
5088      // Setup all event listeners
5089      document.addEventListener('click', handleUpsellButtonClick);
5090      document.addEventListener('click', handlePopupClick);
5091      document.addEventListener('click', handleCartInteraction);
5092      document.addEventListener('keydown', handleKeydown);
5093      document.addEventListener('input', handleInput, { passive: true });
5094
5095      // Setup gift option radio button listeners
5096      const giftOptions = document.querySelectorAll('.gift-option-radio');
5097      giftOptions.forEach(option => {
5098        option.addEventListener('change', toggleCustomFields);
5099      });
5100
5101      // Initial check and setup watchers
5102      setTimeout(() => {
5103        checkAndToggleUpsellWidget();
5104        setupCartWatchers();
5105        initCarousel();
5106      }, CONFIG.INITIAL_CHECK_DELAY);
5107
5108      // Also initialize carousel when widget becomes visible
5109      const observer = new MutationObserver(() => {
5110        const upsellWidget = safeQuerySelector('[data-cart-upsell]');
5111        if (upsellWidget && upsellWidget.style.display !== 'none' && !carouselState.isInitialized) {
5112          setTimeout(initCarousel, 100);
5113        }
5114      });
5115
5116      const upsellWidget = safeQuerySelector('[data-cart-upsell]');
5117      if (upsellWidget) {
5118        observer.observe(upsellWidget, {
5119          attributes: true,
5120          attributeFilter: ['style']
5121        });
5122      }
5123    }
5124
5125    // Start when DOM is ready
5126    if (document.readyState === 'loading') {
5127      document.addEventListener('DOMContentLoaded', init);
5128    } else {
5129      init();
5130    }
5131
5132    // Cleanup on page unload
5133    window.addEventListener('beforeunload', () => {
5134      if (state.visibilityCheckInterval) {
5135        clearInterval(state.visibilityCheckInterval);
5136      }
5137      if (state.checkTimeout) {
5138        clearTimeout(state.checkTimeout);
5139      }
5140    });
5141  })();
5142</script>
5142
5143
5144    
5145
5146    
5147    
5148<div class="main-new-reviews-align" role="region" aria-roledescription="carousel" aria-label="Customer reviews">
5149    <div class="swiper mySwiper">
5150        <div class="swiper-wrapper">
5151
5152    
5153<div
5154                class="swiper-slide"
5155                role="group"
5156                aria-roledescription="slide"
5157                aria-label="Review 1 of 5"
5158            >
5159                <div class="main-cart-review-align">
5160                    <span class="visually-hidden">Rated 5 out of 5 stars.</span>
5161                    <div class="cart__reviews-stars" aria-hidden="true">
5162
5163                         <div class="star-icon">
5164                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5165                                <defs>
5166                                    <linearGradient id="halfWhite">
5167                                        <stop offset="100%" stop-color="#b73d09"></stop>
5168                                    </linearGradient>
5169                                </defs>
5170                                <path
5171                                    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"
5172                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5173                            </svg>
5174                    </div>
5175                    
5176                    
5177                    
5178                         <div class="star-icon">
5179                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5180                                <defs>
5181                                    <linearGradient id="halfWhite">
5182                                        <stop offset="100%" stop-color="#b73d09"></stop>
5183                                    </linearGradient>
5184                                </defs>
5185                                <path
5186                                    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"
5187                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5188                            </svg>
5189                    </div>
5190                    
5191                    
5192                    
5193                         <div class="star-icon">
5194                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5195                                <defs>
5196                                    <linearGradient id="halfWhite">
5197                                        <stop offset="100%" stop-color="#b73d09"></stop>
5198                                    </linearGradient>
5199                                </defs>
5200                                <path
5201                                    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"
5202                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5203                            </svg>
5204                    </div>
5205                    
5206                    
5207                    
5208                         <div class="star-icon">
5209                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5210                                <defs>
5211                                    <linearGradient id="halfWhite">
5212                                        <stop offset="100%" stop-color="#b73d09"></stop>
5213                                    </linearGradient>
5214                                </defs>
5215                                <path
5216                                    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"
5217                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5218                            </svg>
5219                    </div>
5220                    
5221                    
5222                    
5223                         <div class="star-icon">
5224                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5225                                <defs>
5226                                    <linearGradient id="halfWhite">
5227                                        <stop offset="100%" stop-color="#b73d09"></stop>
5228                                    </linearGradient>
5229                                </defs>
5230                                <path
5231                                    d="M9 14.118L14.562 17.475L13.086 11.
5231148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5232                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5233                            </svg>
5234                    </div>
5235                    
5236                    
5237                    
5238                    
5239                    
5240                
5241                    
5242                
5243                    
5244                
5245                    
5246                
5247                    
5248                
5249            </div>
5250            <div class="cart__reviews-text"
5251                data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_text">
5252                <p>
5253                    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!
5254                </p>
5255            </div>
5256            <div class="cart_reviews-author-buyer">
5257                <span class="cart__reviews-author"
5258                    data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_author">Alena Z.</span>
5259                <span class="verified-buyer"
5260                    data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_title">Verified Buyer</span>
5261            </div>
5262        </div>
5263    </div>
5264    
5265    
5266<div
5267                class="swiper-slide"
5268                role="group"
5269                aria-roledescription="slide"
5270                aria-label="Review 2 of 5"
5271            >
5272                <div class="main-cart-review-align">
5273                    <span class="visually-hidden">Rated 5 out of 5 stars.</span>
5274                    <div class="cart__reviews-stars" aria-hidden="true">
5275
5276                         <div class="star-icon">
5277                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5278                                <defs>
5279                                    <linearGradient id="halfWhite">
5280                                        <stop offset="100%" stop-color="#b73d09"></stop>
5281                                    </linearGradient>
5282                                </defs>
5283                                <path
5284                                    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"
5285                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5286                            </svg>
5287                    </div>
5288                    
5289                    
5290                    
5291                         <div class="star-icon">
5292                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5293                                <defs>
5294                                    <linearGradient id="halfWhite">
5295                                        <stop offset="100%" stop-color="#b73d09"></stop>
5296                                    </linearGradient>
5297                                </defs>
5298                                <path
5299                                    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"
5300                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5301                            </svg>
5302                    </div>
5303                    
5304                    
5305                    
5306                         <div class="star-icon">
5307                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5308                                <defs>
5309                                    <linearGradient id="halfWhite">
5310                                        <stop offset="100%" stop-color="#b73d09"></stop>
5311                                    </linearGradient>
5312                                </defs>
5313                                <path
5314                                    d="M9 14.118L14.562 17.475L13.086 11.
5314148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5315                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5316                            </svg>
5317                    </div>
5318                    
5319                    
5320                    
5321                         <div class="star-icon">
5322                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5323                                <defs>
5324                                    <linearGradient id="halfWhite">
5325                                        <stop offset="100%" stop-color="#b73d09"></stop>
5326                                    </linearGradient>
5327                                </defs>
5328                                <path
5329                                    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"
5330                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5331                            </svg>
5332                    </div>
5333                    
5334                    
5335                    
5336                         <div class="star-icon">
5337                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5338                                <defs>
5339                                    <linearGradient id="halfWhite">
5340                                        <stop offset="100%" stop-color="#b73d09"></stop>
5341                                    </linearGradient>
5342                                </defs>
5343                                <path
5344                                    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"
5345                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5346                            </svg>
5347                    </div>
5348                    
5349                    
5350                    
5351                    
5352                    
5353                
5354                    
5355                
5356                    
5357                
5358                    
5359                
5360                    
5361                
5362            </div>
5363            <div class="cart__reviews-text"
5364                data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_text">
5365                <p>
5366                    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!
5367                </p>
5368            </div>
5369            <div class="cart_reviews-author-buyer">
5370                <span class="cart__reviews-author"
5371                    data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_author">Maribet U.</span>
5372                <span class="verified-buyer"
5373                    data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_title">Verified Buyer</span>
5374            </div>
5375        </div>
5376    </div>
5377    
5378    
5379<div
5380                class="swiper-slide"
5381                role="group"
5382                aria-roledescription="slide"
5383                aria-label="Review 3 of 5"
5384            >
5385                <div class="main-cart-review-align">
5386                    <span class="visually-hidden">Rated 5 out of 5 stars.</span>
5387                    <div class="cart__reviews-stars" aria-hidden="true">
5388
5389                         <div class="star-icon">
5390                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5391                                <defs>
5392                                    <linearGradient id="halfWhite">
5393                                        <stop offset="100%" stop-color="#b73d09"></stop>
5394                                    </linearGradient>
5395                                </defs>
5396                                <path
5397                                    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"
5398                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5399                            </svg>
5400                    </div>
5401                    
5402                    
5403                    
5404                         <div class="star-icon">
5405                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5406                                <defs>
5407                                    <linearGradient id="halfWhite">
5408                                        <stop offset="100%" stop-color="#b73d09"></stop>
5409                                    </linearGradient>
5410                                </defs>
5411                                <path
5412                                    d="M9 14.118L14.562 17.475L13.086 11.
5412148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5413                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5414                            </svg>
5415                    </div>
5416                    
5417                    
5418                    
5419                         <div class="star-icon">
5420                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5421                                <defs>
5422                                    <linearGradient id="halfWhite">
5423                                        <stop offset="100%" stop-color="#b73d09"></stop>
5424                                    </linearGradient>
5425                                </defs>
5426                                <path
5427                                    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"
5428                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5429                            </svg>
5430                    </div>
5431                    
5432                    
5433                    
5434                         <div class="star-icon">
5435                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5436                                <defs>
5437                                    <linearGradient id="halfWhite">
5438                                        <stop offset="100%" stop-color="#b73d09"></stop>
5439                                    </linearGradient>
5440                                </defs>
5441                                <path
5442                                    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"
5443                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5444                            </svg>
5445                    </div>
5446                    
5447                    
5448                    
5449                         <div class="star-icon">
5450                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5451                                <defs>
5452                                    <linearGradient id="halfWhite">
5453                                        <stop offset="100%" stop-color="#b73d09"></stop>
5454                                    </linearGradient>
5455                                </defs>
5456                                <path
5457                                    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"
5458                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5459                            </svg>
5460                    </div>
5461                    
5462                    
5463                    
5464                    
5465                    
5466                
5467                    
5468                
5469                    
5470                
5471                    
5472                
5473                    
5474                
5475            </div>
5476            <div class="cart__reviews-text"
5477                data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_text">
5478                <p>
5479                    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.
5480                </p>
5481            </div>
5482            <div class="cart_reviews-author-buyer">
5483                <span class="cart__reviews-author"
5484                    data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_author">Ross F.</span>
5485                <span class="verified-buyer"
5486                    data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_title">Verified Buyer</span>
5487            </div>
5488        </div>
5489    </div>
5490    
5491    
5492<div
5493                class="swiper-slide"
5494                role="group"
5495                aria-roledescription="slide"
5496                aria-label="Review 4 of 5"
5497            >
5498                <div class="main-cart-review-align">
5499                    <span class="visually-hidden">Rated 5 out of 5 stars.</span>
5500                    <div class="cart__reviews-stars" aria-hidden="true">
5501
5502                         <div class="star-icon">
5503                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5504                                <defs>
5505                                    <linearGradient id="halfWhite">
5506                                        <stop offset="100%" stop-color="#b73d09"></stop>
5507                                    </linearGradient>
5508                                </defs>
5509                                <path
5510                                    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"
5511                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5512                            </svg>
5513                    </div>
5514                    
5515                    
5516                    
5517                         <div class="star-icon">
5518                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5519                                <defs>
5520                                    <linearGradient id="halfWhite">
5521                                        <stop offset="100%" stop-color="#b73d09"></stop>
5522                                    </linearGradient>
5523                                </defs>
5524                                <path
5525                                    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"
5526                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5527                            </svg>
5528                    </div>
5529                    
5530                    
5531                    
5532                         <div class="star-icon">
5533                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5534                                <defs>
5535                                    <linearGradient id="halfWhite">
5536                                        <stop offset="100%" stop-color="#b73d09"></stop>
5537                                    </linearGradient>
5538                                </defs>
5539                                <path
5540                                    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"
5541                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5542                            </svg>
5543                    </div>
5544                    
5545                    
5546                    
5547                         <div class="star-icon">
5548                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5549                                <defs>
5550                                    <linearGradient id="halfWhite">
5551                                        <stop offset="100%" stop-color="#b73d09"></stop>
5552                                    </linearGradient>
5553                                </defs>
5554                                <path
5555                                    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"
5556                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5557                            </svg>
5558                    </div>
5559                    
5560                    
5561                    
5562                         <div class="star-icon">
5563                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5564                                <defs>
5565                                    <linearGradient id="halfWhite">
5566                                        <stop offset="100%" stop-color="#b73d09"></stop>
5567                                    </linearGradient>
5568                                </defs>
5569                                <path
5570                                    d="M9 14.118L14.562 17.475L13.086 11.
5570148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5571                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5572                            </svg>
5573                    </div>
5574                    
5575                    
5576                    
5577                    
5578                    
5579                
5580                    
5581                
5582                    
5583                
5584                    
5585                
5586                    
5587                
5588            </div>
5589            <div class="cart__reviews-text"
5590                data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_text">
5591                <p>
5592                    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!
5593                </p>
5594            </div>
5595            <div class="cart_reviews-author-buyer">
5596                <span class="cart__reviews-author"
5597                    data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_author">Gabriel A.</span>
5598                <span class="verified-buyer"
5599                    data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_title">Verified Buyer</span>
5600            </div>
5601        </div>
5602    </div>
5603    
5604    
5605<div
5606                class="swiper-slide"
5607                role="group"
5608                aria-roledescription="slide"
5609                aria-label="Review 5 of 5"
5610            >
5611                <div class="main-cart-review-align">
5612                    <span class="visually-hidden">Rated 5 out of 5 stars.</span>
5613                    <div class="cart__reviews-stars" aria-hidden="true">
5614
5615                         <div class="star-icon">
5616                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5617                                <defs>
5618                                    <linearGradient id="halfWhite">
5619                                        <stop offset="100%" stop-color="#b73d09"></stop>
5620                                    </linearGradient>
5621                                </defs>
5622                                <path
5623                                    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"
5624                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5625                            </svg>
5626                    </div>
5627                    
5628                    
5629                    
5630                         <div class="star-icon">
5631                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5632                                <defs>
5633                                    <linearGradient id="halfWhite">
5634                                        <stop offset="100%" stop-color="#b73d09"></stop>
5635                                    </linearGradient>
5636                                </defs>
5637                                <path
5638                                    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"
5639                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5640                            </svg>
5641                    </div>
5642                    
5643                    
5644                    
5645                         <div class="star-icon">
5646                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5647                                <defs>
5648                                    <linearGradient id="halfWhite">
5649                                        <stop offset="100%" stop-color="#b73d09"></stop>
5650                                    </linearGradient>
5651                                </defs>
5652                                <path
5653                                    d="M9 14.118L14.562 17.475L13.086 11.
5653148L18 6.891L11.529 6.342L9 0.375L6.471 6.342L0 6.891L4.914 11.148L3.438 17.475L9 14.118Z"
5654                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5655                            </svg>
5656                    </div>
5657                    
5658                    
5659                    
5660                         <div class="star-icon">
5661                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5662                                <defs>
5663                                    <linearGradient id="halfWhite">
5664                                        <stop offset="100%" stop-color="#b73d09"></stop>
5665                                    </linearGradient>
5666                                </defs>
5667                                <path
5668                                    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"
5669                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5670                            </svg>
5671                    </div>
5672                    
5673                    
5674                    
5675                         <div class="star-icon">
5676                            <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" width="15" height="15">
5677                                <defs>
5678                                    <linearGradient id="halfWhite">
5679                                        <stop offset="100%" stop-color="#b73d09"></stop>
5680                                    </linearGradient>
5681                                </defs>
5682                                <path
5683                                    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"
5684                                    stroke="#b73d09" fill="url(#halfWhite)"></path>
5685                            </svg>
5686                    </div>
5687                    
5688                    
5689                    
5690                    
5691                    
5692                
5693                    
5694                
5695                    
5696                
5697                    
5698                
5699                    
5700                
5701            </div>
5702            <div class="cart__reviews-text"
5703                data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_text">
5704                <p>
5705                    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!
5706                </p>
5707            </div>
5708            <div class="cart_reviews-author-buyer">
5709                <span class="cart__reviews-author"
5710                    data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_author">Amethyst B.</span>
5711                <span class="verified-buyer"
5712                    data-live-text-setting="section.sections--16543358058694__header.block.review_nQLNTK.review_title">Verified Buyer</span>
5713            </div>
5714        </div>
5715    </div>
5716    
5717    
5718</div>
5719<div class="swiper-pagination"></div>
5720</div>
5721</div>
5722<!-- Initialize Swiper -->
5723<script>
5724    var swiperReviews = new Swiper(".mySwiper", {
5725        slidesPerView: 1.2,
5726        spaceBetween: 14,
5727        initialSlide: 1,
5728        loop: true,
5729        centeredSlides: true,
5730        pagination: {
5731            el: ".swiper-pagination",
5732            clickable: true,
5733        },
5734        on: {
5735            init: function () {
5736                if (this.slides.length <= 2) {
5737                    this.params.loop = false; // Disable loop mode if there are only 2 slides
5738                }
5739                syncReviewsA11y(this);
5740                labelReviewsPagination(this);
5741            },
5742            slideChange: function () {
5743                syncReviewsA11y(this);
5744            }
5745        }
5746    });
5747
5748    // a11y: APG — hide non-active slides from AT. Loop-safe (value-guarded).
5749    function syncReviewsA11y(swiper) {
5750        var slides = swiper.el.querySelectorAll('.swiper-slide');
5751        for (var i = 0; i < slides.length; i++) {
5752            var isActive = slides[i].classList.contains('swiper-slide-active');
5753            var target = isActive ? 'false' : 'true';
5754            if (slides[i].getAttribute('aria-hidden') !== target) {
5755                slides[i].setAttribute('aria-hidden', target);
5756            }
5757            // Hide duplicates (loop clones) from AT always — original slide carries the label
5758            if (slides[i].classList.contains('swiper-slide-duplicate')) {
5759                if (slides[i].getAttribute('aria-hidden') !== 'true') {
5760                    slides[i].setAttribute('aria-hidden', 'true');
5761                }
5762            }
5763        }
5764    }
5765    function labelReviewsPagination(swiper) {
5766        setTimeout(function () {
5767            var bullets = swiper.el.querySelectorAll('.swiper-pagination-bullet');
5768            for (var i = 0; i < bullets.length; i++) {
5769                var label = 'Go to review ' + (i + 1);
5770                if (bullets[i].getAttribute('aria-label') !== label) {
5771                    bullets[i].setAttribute('aria-label', label);
5772                }
5773            }
5774        }, 100);
5775    }
5776</script>
5776
5777
5778<style>
5779    .main-cart-review-align {
5780        padding: 16px;
5781        background: #ffffff;
5782    }
5783
5784    .main-new-reviews-align {
5785        margin: 15px -20px;
5786    }
5787
5788    .main-new-reviews-align .mySwiper {
5789        padding-bottom: 40px;
5790    }
5791
5792    .cart_reviews-author-buyer {
5793        display: flex;
5794        align-items: center;
5795        gap: 6px;
5796    }
5797
5798    .cart__reviews-stars .star-icon svg {
5799        width: 16px;
5800        height: 16px;
5801        display: block;
5802    }
5803
5804    .cart__reviews-stars {
5805        display: flex;
5806        gap: 5px;
5807    }
5808
5809    .cart__reviews-author {
5810        font-family: 'Lato';
5811        font-size: 15px;
5812        font-weight: 600;
5813        line-height: 16.8px;
5814        letter-spacing: 0.15em;
5815        text-align: left;
5816        margin: 0 !important;
5817        color: #242426;
5818        text-transform: uppercase !important;
5819    }
5820
5821    .cart__reviews-text p {
5822        margin: 0 !important;
5823        min-height: 60px;
5824        display: -webkit-box;
5825        -webkit-line-clamp: 3;
5826        -webkit-box-orient: vertical;
5827        overflow: hidden;
5828    }
5829
5830    .cart__reviews-text {
5831        padding: 10px 0;
5832        color: #242426;
5833        font-family: Lato;
5834        font-size: 16px;
5835        font-weight: 400;
5836        line-height: 19.5px;
5837        letter-spacing: 0.02em;
5838        text-align: left;
5839        overflow: hidden;
5840        display: -webkit-box;
5841        -webkit-line-clamp: 3;
5842        -webkit-box-orient: horizontal;
5843    }
5844
5845    .verified-buyer {
5846        font-family: Lato;
5847        font-size: 14px;
5848        font-weight: 400;
5849        line-height: 18px;
5850        letter-spacing: 0.02em;
5851        text-align: left;
5852        color: #24242680;
5853    }
5854
5855    .mobile-dots {
5856        display: flex;
5857        align-items: center;
5858        justify-content: center;
5859    }
5860
5861    .mobile-dots button {
5862        background: none;
5863        border: none;
5864        display: inline-block;
5865        cursor: pointer;
5866    }
5867
5868    .mobile-arrows {
5869        margin-top: 32px;
5870        padding-bottom: 10px;
5871    }
5872
5873    .mini-cart-reviews {
5874        display: none !important;
5875    }
5876
5877    .mini-cart-reviews .button-circle {
5878        display: inline-block;
5879        width: 8px;
5880        height: 8px;
5881        border: 1px solid black;
5882        border-radius: 50%;
5883    }
5884
5885    .mini-cart-reviews .button-circle.active {
5886        background-color: black;
5887    }
5888
5889
5890    .mini-cart-reviews {
5891        padding-bottom: 34px;
5892    }
5893
5894    @media screen and (max-width: 767px) {
5895        .cart__reviews-text {
5896            font-size: 13px;
5897        }
5898
5899        .cart__reviews-author,
5900        .verified-buyer {
5901            font-size: 12px !important;
5902        }
5903
5904        .main-cart-review-align {
5905            padding: 16px;
5906            background: #ffffff;
5907        }
5908
5909        .cart__reviews-text p {
5910            -webkit-line-clamp: 3;
5911            min-height: 60px;
5912        }
5913    }
5914</style>
5915
5916
5917  </div>
5918
5919
5920  <div class="cart__footer">
5921    <div
5922      class="cart__item-sub cart__item-row cart__item--subtotal"
5923      id="focus-subtotal">
5924      <div id="subtotal-text">Subtotal</div>
5925      <div data-subtotal id="price-text">
5926        $0.00
5927      </div>
5928    </div>
5929    <input
5930      hidden
5931      id="total-price"
5932      value="0">
5933    <div data-discounts></div>
5934
5935
5936<div class="cart_savings  d-none  ">
5937<span> You Saved </span>
5938
5939<span class="cart_savings_amount  d-none  "> $0.00</span>
5940  </div>
5941
5942
5943    <div class="cart__item-row cart__checkout-wrapper payment-buttons">
5944      
5945        <div class="checkout-btn-class">
5946          <button
5947            type="submit"
5948            name="checkout"
5949            data-terms-required="false"
5950            class="btn btn-custom btn-orange-bg cart__checkout cart__checkout_enabled">
5951            Checkout 
5952          </button>
5953        </div>
5954      
5955      
5956    </div>
5957
5958    <div class="cart__item-row--footer text-center">
5959      <small class="shipping-at-checkout-text">Shipping, taxes and discounts calculated at checkout </small>
5960    </div>
5961  </div>
5962</form>
5963
5964
5965
5966
5967    <div class="empty-cart-main">
5968  <h2 class="empty-cart-title">your cart is empty</h2>
5969
5970  <div class="empty-cart-img">
5971    <svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewB
5971ox="0 0 200 200" fill="none" aria-hidden="true" focusable="false">
5972      <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"/>
5973      <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"/>
5974    </svg>
5975  </div><div class="subscribe-now-btn">
5976    <a class="btn btn-custom btn--full btn-height btn-orange-bg"
5977       href="https://www.bokksu.com/products/classic-bokksu">Subscribe Now</a>
5978  </div>
5979</div>
5980  <style>
5981    .subscribe-now-btn{
5982    margin-top: 40px;
5983  }
5984    .site-header__drawer-animate.is-empty {
5985      background: var(--colorWhite) !important;
5986    }
5987  .is-empty .empty-cart-main{
5988    display: flex;
5989  }
5990  .btn-height{
5991    height:48px !important;
5992    width: 320px !important;
5993  }
5994  .empty-cart-main{
5995    display: none;
5996    /* width: 600px; */
5997    padding-bottom: 0px;
5998    flex-direction: column;
5999    align-items: center;
6000    /* gap: 56px; */
6001    justify-content: center;
6002    background-color: white;
6003  }
6004  .empty-cart {
6005    padding-bottom: 0 !important;
6006  }
6007  .empty-cart-title{
6008    font-family: "Montserrat", sans-serif;
6009    font-size: 14px !important;
6010    font-style: normal;
6011    font-weight: 500;
6012    line-height: 18px!important;
6013    letter-spacing: 5px;
6014    text-transform: uppercase !important;
6015    margin-top: 56px;
6016    color: #828282;
6017    margin-bottom: 56px;
6018  }
6019
6020  .empty-cart-img{
6021    display: flex;
6022    width: 260px;
6023    height: 260px;
6024    justify-content: center;
6025    align-items: center;
6026    gap: 8px;
6027    background: #F4EEE5;
6028    border-radius: 50%;
6029  }
6030  .empty-cart-img svg {
6031    width: 160px;
6032    height: 160px;
6033  }
6034  p.f-shipping-text {
6035    text-align: center;
6036    font-family: Lato;
6037    font-size: 16px;
6038    font-style: normal;
6039    font-weight: 400;
6040    line-height: 24px;
6041    letter-spacing: 0.5px;
6042    margin-top: 32px;
6043    margin-bottom: 32px;
6044    color: #828282;
6045    visibility:hidden;
6046  }
6047
6048  .subscribe-now-btn .btn.btn-custom.btn-orange-bg{
6049  line-height: 22px !important;
6050  }
6051  
6052
6053
6054
6055  .gift-products-certificate-empty-cart {
6056    padding: 6px 10px;
6057  }
6058
6059
6060  .align-close-btn-main {
6061    flex: 1 1 auto;
6062    display: flex;
6063  }
6064
6065  @media screen and (min-width:850px) {
6066    .align-main-cart-customer.adjust-mob-cart.cart-empty{
6067
6068      display: block;
6069      width: 100%;
6070      overflow: scroll;
6071    }
6072    .site-header__drawer-animate.is-empty{
6073      width: 100% !important;
6074      overflow: auto;
6075      max-width: 100% !important
6076    }
6077    /* .empty-cart-main{
6078        padding-bottom: 3em;
6079    } */
6080    /* #HeaderCart{
6081      overflow: scroll;
6082    } */
6083  }
6084  @media screen and (max-width:849px) {
6085    .empty-cart-main{
6086        padding-bottom: 3em;
6087    }
6088  }
6089
6090  @media screen and (max-width: 680px) {
6091    .empty-cart-img {
6092      width: 240px;
6093      height: 240px;
6094    }
6095    .empty-cart-img svg {
6096      width: 150px;
6097      height: 150px;
6098    }
6099    .empty-cart-title {
6100      margin-top: 40px;
6101      margin-bottom: 40px;
6102    }
6103    .header-wrapper--compressed .empty-cart-title {
6104      margin-top: 54px;
6105      margin-bottom: 54px;
6106    }
6107    .empty-cart-main {
6108      padding-bottom: 3.33em;
6109    }
6110    .is-empty .empty-cart-main , .is-empty.site-header__drawer-animate , .empty-cart .align-main-cart-customer ,
6111    .align-main-cart-customer.adjust-mob-cart.empty-cart {
6112      height: 100% !important;
6113    }
6114    /* .mob-cart-align {
6115      height: 100vh !important;
6116    } */
6117    .empty-cart .empty-cart-main {
6118       justify-content: flex-start;
6119    }
6120  }
6121
6122  /* #HeaderCartTrigger.cart-empty{
6123    padding-bottom: 26px !important;
6124  } */
6125  .main-free-gift-empty-cart {
6126    padding: 20px 20px 0;
6127  }
6128
6129
6130  .is-empty .main-progress-bar-with-markups.main-bar-align {
6131    display: none;
6132  }
6133  
6134</style>
6135
6136
6137
6138
6139
6140
6141<div class="empty-cart-main-products d-none">
6142  <p class="empty-text">your cart is empty</p>
6143
6144  <div class="empty-cart-container">
6145    <h2 class="picks-text">popular picks</h2>
6146    <div id="empty-cart-rebuy-products"></div>
6147    <div class="discover-more-btn">
6148      <a class="btn btn-custom  btn-light-green-bg" href="https://www.bokksumarket.com/collections/all-products">discover more</a>
6149    </div>
6150  </div>
6151</div>
6152
6153<!-- <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> -->
6154<style>
6155    .main-dualcart.subscription-product-container + .gift-subscription-container {
6156    margin-top: 20px;
6157} 
6158  /* Empty Cart Design for Products Css starts */
6159  .cart_savings{
6160    display: flex;
6161    justify-content: space-between;
6162    margin-bottom: 20px;
6163  }
6164  .cart_savings span{
6165    color:#EC1C24;
6166    font-weight: 700;
6167  }
6168
6169  .is-empty .empty-cart-main-products {
6170    display: block
6171  }
6172  .empty-cart-main-products {
6173    padding: 0 40px 64px;
6174    display: none
6175  }
6176  .img-height {
6177    height: 56px
6178  }
6179  .empty-cart-rebuy-products {
6180    display: flex;
6181    flex-wrap: wrap;
6182    justify-content: end;
6183    line-height: 1.4;
6184    margin-top: 8px;
6185  }
6186  .free-gift-img img {
6187    width: 70px !important;
6188    height: 70px !important;
6189  }
6190  .free-gift-img {
6191    min-width: 70px !important;
6192    min-height: 70px !important;
6193  }
6194  .align-name-free-gift {
6195    margin-right: 10px;
6196  }
6197  .free-gift-titles {
6198    overflow: hidden;
6199    text-overflow: ellipsis;
6200    display: -webkit-box;
6201    -webkit-line-clamp: 2;
6202    -webkit-box-orient: vertical;
6203  }
6204  .gift-free-add-btn button {
6205    font-size: 14px !important;
6206    padding: 2px 14px !important;
6207  }
6208  .gift-products {
6209    padding: 10px 50px;
6210  }
6211
6212  .gwp-with-choice .gift-products {
6213    padding: 5px 20px;
6214  }
6215
6216
6217  .empty-cart-plus-icon {
6218    display: flex;
6219    width: 40px;
6220    height: 40px;
6221    padding: 14px 8px 8px;
6222    justify-content: center;
6223    align-items: center;
6224    gap: 8px;
6225    background: #6CA16E;
6226    color: white;
6227    border-radius: 24px;
6228    position: absolute;
6229    top: -12px;
6230    right: -12px;
6231  }
6232
6233  #super-scrip {
6234    top: -6.1px
6235  }
6236
6237
6238  .align-main-cart-customer.is-empty {
6239    padding-bottom: 0;
6240  }
6241
6242  .market-cart .cart__image img {
6243    position: initial !important;
6244  }
6245
6246  .align-name-free-gift-certificate {
6247    margin-left: 10px;
6248  }
6249
6250  .cart__item-details .onward-tracking-normal {
6251    min-width: 100% !important;
6252  }
6253
6254  @media only screen and (max-width:1430px) and(min-width: 850px) {
6255    .empty-cart-main-products {
6256      height: 75vh;
6257      overflow: auto;
6258      padding: 0 40px;
6259    }
6260    .empty-cart-main-products::-webkit-scrollbar {
6261      width: 1px;
6262    }
6263
6264  }
6265  @media only screen and (max-width: 850px) {
6266    .customer-loved.is-empty {
6267      display: none !important
6268    }
6269    .purchase-items.is-empty {
6270      display: none !important
6271    }
6272    .mob-cart-align {
6273      width: 100% !important
6274    }
6275    .align-main-cart-customer.is-empty {
6276      height: 80vh;
6277      overflow: auto; 
6278      justify-content: flex-end;
6279    }
6280    .align-main-cart-customer::-webkit-scrollbar {
6281      width: 1px;
6282    }
6283  }
6284  /* Empty Cart Design for Products Css Ends */
6285
6286
6287
6288  /* Empty Cart Design */
6289
6290  .empty-cart-text h4 {
6291    font-size: 16px;
6292    font-style: normal;
6293    font-weight: 400;
6294    line-height: 24px; /* 150% */
6295    letter-spacing: 0.5px;
6296    font-family: 'Lato';
6297    color: #828282;
6298    display: flex;
6299    padding: 8px;
6300    justify-content: center;
6301    align-items: center;
6302    gap: 8px;
6303    margin: 0;
6304  }
6305
6306  .title-pr-empty h3 {
6307    font-size: 32px;
6308    font-style: normal;
6309    font-weight: 400;
6310    line-height: 36px; /* 112.5% */
6311    text-transform: capitalize !important;
6312    margin-bottom: 24px;
6313    text-align: center;
6314    font-family: 'OrpheusPro';
6315  }
6316
6317  .product-img-empty-cart {
6318    display: flex;
6319    align-items: center;
6320    gap: 16px;
6321  }
6322
6323  .product-img-empty-cart p {
6324    font-size: 16px;
6325    font-style: normal;
6326    font-weight: 400;
6327    line-height: 24px; /* 150% */
6328    letter-spacing: 0.5px;
6329    /* font-family: 'Lato';
6330      opacity: 0.5; */
6331    margin: 0;
6332  }
6333
6334  .main-empty-pr {
6335    display: flex;
6336    align-items: center;
6337    justify-content: space-between;
6338    gap: 16px;
6339    padding: 16px;
6340    border-radius: 8px;
6341    background: #fff;
6342  }
6343
6344  .chevron-empty-cart img {
6345    display: block;
6346  }
6347
6348  .is-empty .empty-cart-design-main {
6349    display: block;
6350  }
6351
6352
6353  .empty-cart-design-main {
6354    padding: 18px 3em 10px;
6355    display: none;
6356  }
6357
6358  .listing-empty-cart {
6359    display: flex;
6360    flex-direction: column;
6361    gap: 24px;
6362    /* max-height: 27.5vh; */
6363    /* overflow: auto; */
6364  }
6365
6366
6367  .listing-empty-cart::-webkit-scrollbar-track {
6368    -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
6369    border-radius: 10px;
6370    background-color: #dbdbdb;
6371  }
6372
6373  .listing-empty-cart::-webkit-scrollbar {
6374    width: 6px;
6375    height: 6px;
6376    background-color: #dbdbdb;
6377  }
6378
6379  .listing-empty-cart::-webkit-scrollbar-thumb {
6380    border-radius: 10px;
6381    -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
6382    background-color: #7594ae;
6383  }
6384
6385
6386
6387  .main-empty-cart-btn a {
6388    width: 100%;
6389    border-radius: 12px;
6390    margin-top: 24px;
6391    background: var(--brand_color_1) !important;
6392    border-color: var(--brand_color_1) !important;
6393    font-size: 16px !important;
6394    line-height: 22px !important; /* 137.5% */
6395    letter-spacing: 5px !important;
6396    font-weight: 500;
6397  }
6398
6399  #empty-cart-btn:hover,
6400  #empty-cart-btn:active,
6401  #empty-cart-btn:focus {
6402    border-color: var(--brand_color_1) !important;
6403    color: var(--brand_color_1) !important;
6404  }
6405
6406
6407  .header-wrapper--compressed .site-header__drawer {
6408    top: 0;
6409  }
6410  /* Dual Cart */
6411  .align-title-minicart h3 {
6412    font-weight: 400;
6413    font-size: 31px !important;
6414    line-height: 38px;
6415    color: #000000;
6416    text-transform: initial !important;
6417    /* white-space: nowrap; */
6418    margin: 0;
6419    letter-spacing: initial;
6420  }
6421  .minicart-total-amount-section h4 {
6422    font-family: 'Lato' !important;
6423    font-style: normal;
6424    font-weight: 400;
6425    font-size: 16px;
6426    line-height: 25px;
6427    text-align: right;
6428    color: black;
6429    letter-spacing: initial;
6430    margin: 0;
6431    text-transform: initial;
6432  }
6433  .align-title-minicart {
6434    display: flex;
6435    justify-content: space-between;
6436    align-items: center;
6437  }
6438  .main-dualcart {
6439    background: #FFFFFF;
6440    border-radius: 12px;
6441  }
6442  .title-section-minicart {
6443    border-bottom: 2px solid #D2DED3;
6444    padding: 16px 16px 10px;
6445  }
6446  .align-products-dualcart .cart__item {
6447    padding: 14px 10px !important;
6448    margin: 0 20px !important;
6449    border-bottom: 2px solid #D2DED3 !important;
6450  }
6451  .align-products-dualcart .cart__item:last-child {
6452    border: none !important;
6453  }
6454  .align-heading-check {
6455    margin-top: 1.5em;
6456  }
6457  .cart__scrollable {
6458    margin-bottom: 0;
6459  }
6460  .free-shipping-progress, .free-gift-progress,
6461  .free-shipping-progress-frozen {
6462    height: 100%;
6463    background: var(--brand_color_1);
6464    /*     transition: width .3s; */
6465    border-radius: 10px;
6466    z-index: 0;
6467    position: relative;
6468  }
6469  .free-shipping-progress-subscription {
6470    height: 100%;
6471    background: var(--brand_color_1);
6472    transition: width 0.3s;
6473    border-radius: 10px;
6474    z-index: 0;
6475    position: relative;
6476  }
6477  .min-shipping-mark {
6478    position: absolute;
6479    top: 50%;
6480    transform: translateY(-50%);
6481    z-index: 10;
6482    height: 10px;
6483    width: 2px;
6484    background: #294f2e;
6485    display: none;
6486  }
6487  .free-shipping-bar::before {
6488    content: "";
6489    background: #00000026;
6490    position: absolute;
6491    left: 0;
6492    height: 6px;
6493    right: 100%;
6494    top: 50%;
6495    z-index: 0;
6496    transform: translateY(-50%);
6497    width: 100%;
6498    border-radius: 10px;
6499  }
6500  .free-shipping-bar {
6501    position: relative;
6502    height: 6px;
6503    /* overflow: hidden; */
6504  }
6505  .free-shipping-bar-mob-popup {
6506    margin-top: 8px;
6507  }
6508  .progress-bar-titles {
6509    margin-top: 20px;
6510  }
6511  .progress-bar-titles p {
6512    margin: 0;
6513  }
6514  .progress-bar-titles p:last-child {
6515    margin-top: 4px;
6516    margin-bottom: 4px;
6517  }
6518  .main-progress-bar {
6519    margin: 0 0 1em;
6520  }
6521  /* SHO-294: accent-edge success notice when a preorder unlocks free shipping */
6522  .main-progress-bar.is-preorder-freeship {
6523    display: flex;
6524    align-items: center;
6525    background: #ffffff;
6526    border: 1px solid #e3e3df;
6527    border-left: 3px solid #1d7a3f;
6528    border-radius: 6px;
6529    margin: 10px 0 12px;
6530    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
6531  }
6532  .main-progress-bar.is-preorder-freeship .progress-bar-titles {
6533    display: flex;
6534    align-items: center;
6535    gap: 8px;
6536    margin-top: 0;
6537    width: 100%;
6538  }
6539  .pill-congrats {
6540    display: none;
6541  }
6542  .main-progress-bar.is-preorder-freeship .pill-congrats {
6543    display: inline;
6544    font-size: 13px;
6545    font-weight: 700;
6546    color: #1d7a3f;
6547  }
6548  .main-progress-bar.is-preorder-freeship .progress-bar-titles > .pill-truck-icon {
6549    display: block;
6550    width: 16px;
6551    height: 16px;
6552    color: #1d7a3f;
6553    flex: 0 0 auto;
6554  }
6555  .main-progress-bar.is-preorder-freeship .progress-bar-titles > .free-shipping-text {
6556    display: inline;
6557    margin: 0;
6558    font-size: 13px;
6559    line-height: 1.35;
6560  }
6561  .main-progress-bar.is-preorder-freeship .align-floating-text-bottom {
6562    display: flex;
6563    align-items: center;
6564  }
6565  .main-progress-bar.is-preorder-freeship .floating-bottom-text-img {
6566    display: flex;
6567    flex: 0 0 auto;
6568    width: auto;
6569    height: auto;
6570    padding: 0;
6571    background: none;
6572    border: 0;
6573    border-radius: 0;
6574    box-shadow: none;
6575  }
6576  .pill-truck-icon {
6577    display: none;
6578  }
6579  .main-progress-bar.is-preorder-freeship .market-icon {
6580    display: none;
6581  }
6582  .main-progress-bar.is-preorder-freeship .pill-truck-icon {
6583    display: block;
6584    width: 16px;
6585    height: 16px;
6586    color: #1d7a3f;
6587  }
6588  .main-progress-bar.is-preorder-freeship .bar-heading {
6589    display: inline;
6590    margin: 0;
6591    font-size: 13px;
6592    font-weight: 700;
6593    color: #1d7a3f;
6594  }
6595  .main-progress-bar.is-preorder-freeship .free-shipping-text {
6596    display: inline;
6597    margin: 0 0 0 5px;
6598    font-size: 13px;
6599    line-height: 1.35;
6600  }
6601  .main-progress-bar.is-preorder-freeship .free-shipping-bar,
6602  .main-progress-bar.is-preorder-freeship .bar-heading-2,
6603  .main-progress-bar.is-preorder-freeship .free-shipping-text-for-gift {
6604    display: none;
6605  }
6606  .boutique-container-margin {
6607    margin-top: 24px;
6608  }
6609  .cart__scrollable .rebuy-product-media {
6610    width: 120px !important;
6611    height: 120px !important;
6612  }
6613  .cart__scrollable .rebuy-widget {
6614    padding-bottom: 0 !important;
6615    margin-left: 0 !important;
6616  }
6617
6618  /* Cart Alignment */
6619  .site-header__drawer-animate .cart__item-sub,
6620  .site-header__drawer-animate .cart__item {
6621    align-items: start;
6622  }
6623  .site-header__drawer-animate .cart__item-price-col {
6624    display: flex;
6625    align-items: center;
6626    justify-content: end;
6627    flex-wrap: wrap;
6628  }
6629  .grid-product__price--original.compare_at{
6630    padding-left:10px;
6631    font-size:18px
6632  }
6633  .site-header__drawer-animate small.cart__discount {
6634    width: 100%;
6635  }
6636  .cart__price--strikethrough {
6637    margin-right: 6px;
6638  }
6639  /* Cart Alignment End */
6640
6641  @media only screen and (min-width: 1024px) {
6642    .site-header__drawer-animate .cart__item-price-col {
6643      margin-left: 95px;
6644    }
6645  }
6646
6647  @media only screen and (max-width: 960px) {
6648    .site-header__drawer-animate,
6649    .site-header__drawer {
6650      min-width: 100%;
6651      max-width: 100%;
6652      width: 100%;
6653    }
6654    .shipping-at-checkout-text {
6655      font-size: 13px !important;
6656      letter-spacing: 0 !important;
6657    }
6658    .show-not-mob {
6659      display: none;
6660    }
6661    .grid-product__price--original.compare_at{
6662  
6663    font-size:16px
6664  }
6665  }
6666
6667  /* @media screen and (max-width: 850px) {
6668      .empty-cart-text h4 {
6669        height: 30vh;
6670      }
6671    } */
6672  @media only screen and (min-width: 850px) and(max-width:960px) {
6673    .empty-cart-design-main {
6674      height: 70vh;
6675      overflow: auto
6676    }
6677
6678    .empty-cart-design-main::-webkit-scrollbar {
6679      width: 1px;
6680    }
6681  }
6682  @media only screen and (max-width: 850px) {
6683    .customer-loved.is-empty {
6684      display: none;
6685    }
6686    .purchase-items.is-empty {
6687      display: none !important
6688    }
6689    .mob-cart-align::-webkit-scrollbar {
6690      width: 1px;
6691    }
6692    .mob-cart-align {
6693      width: 100%
6694    }
6695  }
6696  @media only screen and (max-width: 767px) {
6697    .site-header__drawer-animate {
6698      width: 100%;
6699      min-width: 100%;
6700    }
6701    .cart__scrollable {
6702      margin-bottom: 205px;
6703    }
6704    .empty-cart-main-products {
6705      padding: 0 40px;
6706    }
6707    .empty-cart-main-products .empty-text {
6708      margin-top: 0
6709    }
6710  }
6711  @media only screen and (max-width: 580px) {
6712    .cart__item-row {
6713  margin-bottom: 4px
6714}
6715
6716    .align-title-minicart h3 {
6717      font-size: 20px !important;
6718      line-height: 29px !important;
6719    }
6720    .minicart-total-amount-section h4 {
6721      font-size: 16px !important;
6722      line-height: 19px !important;
6723    }
6724    .progress-bar-titles p {
6725      /* padding: 0 0 4px; */
6726      font-size: 14px;
6727    }
6728    .align-products-dualcart .cart__item {
6729      margin: 0 10px !important;
6730    }
6731    .cart__image a {
6732      width: 70px;
6733      height: 70px
6734    }
6735    .site-header__cart .cart__image {
6736      flex: 0 0 76px;
6737    }
6738    .cart__item-name {
6739      margin-bottom: 4px;
6740    }
6741    .cart__scrollable .rebuy-product-block {
6742      flex-wrap: nowrap;
6743    }
6744    .cart__scrollable .rebuy-product-media {
6745      width: 80px !important;
6746      height: 80px !important;
6747    }
6748    .cart__scrollable .rebuy-product-actions {
6749      width: 50px !important;
6750    }
6751    .cart__scrollable button.rebuy-button svg {
6752      width: 36px;
6753      height: 36px;
6754      margin-top: 6px;
6755    }
6756    .cart__scrollable .rebuy-money.sale {
6757      font-size: 16px;
6758    }
6759    .cart__scrollable .rebuy-money.compare-at {
6760      font-size: 16px;
6761    }
6762    .cart__item-price-col {
6763      display: flex;
6764      flex-wrap: wrap;
6765      justify-content: end;
6766      line-height: 1.4;
6767      margin-top: 8px;
6768    }
6769    .free-gift-img img {
6770      width: 70px !important;
6771      height: 70px !important;
6772      object-fit: contain;
6773    }
6774    .free-gift-img {
6775      min-width: 70px !important;
6776      min-height: 70px !important;
6777    }
6778    .align-name-free-gift {
6779      margin-right: 10px;
6780    }
6781    .free-gift-titles {
6782      overflow: hidden;
6783      text-overflow: ellipsis;
6784      display: -webkit-box;
6785      -webkit-line-clamp: 2;
6786      -webkit-box-orient: vertical;
6787    }
6788    .gift-free-add-btn button {
6789      font-size: 14px !important;
6790      padding: 2px 14px !important;
6791    }
6792    .gift-products {
6793      padding: 10px 50px 10px 30px;
6794    }
6795  }
6796
6797  @media only screen and (max-width: 349px) {
6798    .cart__item-name {
6799      display: -webkit-box;
6800      -webkit-line-clamp: 3;
6801      -webkit-box-orient: vertical;
6802      overflow: hidden;
6803    }
6804    .cart__scrollable {
6805      margin-bottom: 230px;
6806    }
6807    .title-section-minicart {
6808      padding: 16px 12px 10px
6809    }
6810    .cart__item-details .cart__item-sub {
6811      display: flex;
6812      align-items: center;
6813      justify-content: space-between;
6814    }
6815    .floating-text-bottom p,
6816    #floating-frozen-shipping-text {
6817      text-align: left;
6818      font-weight: 400;
6819    }
6820  }
6821  .cart__items{
6822  display: flex;
6823  flex-direction: column;
6824}
6825.cart__items > * {
6826    order: 0;
6827}
6828
6829
6830  /* Free Gift Customization */
6831
6832  .free-gift-img {
6833    min-width: 100px;
6834    min-height: 100px;
6835  }
6836
6837  .free-gift-img img {
6838    width: 100px !important;
6839    height: 100px !important;
6840  }
6841
6842  .title-section-minicart-free-gifts {
6843    display: block !important;
6844  }
6845
6846  .free-gift-certificate-bar-btq .free-gift-certificate-text {
6847    font-size: 15px;
6848    line-height: 24px;
6849    text-align: center;
6850  }
6851
6852  .free-gift-certificate-progress {
6853    height: 100%;
6854    background: var(--brand_color_1);
6855    transition: width .3s;
6856    border-radius: 10px;
6857    z-index: 0;
6858    position: relative;
6859  }
6860
6861  .align-gift-prod {
6862    display: flex;
6863    align-items: center;
6864  }
6865
6866  .align-name-free-gift {
6867    max-width: 300px;
6868    margin-left: 10px;
6869  }
6870
6871  .gwp-with-choice .align-name-free-gift {
6872    max-width: 400px;
6873  }
6874
6875  .free-gift-titles a {
6876    text-align: left;
6877  }
6878
6879  .ajax-cart__price.price {
6880    display: flex;
6881  }
6882
6883  .free-gift-titles {
6884    color: #000000;
6885    text-align: left;
6886  }
6887
6888  .gift-products {
6889    display: flex;
6890    align-items: center;
6891    justify-content: space-between;
6892    padding: 10px 50px;
6893  }
6894
6895  .gift-free-add-btn button {
6896    font-size: 14px;
6897    text-transform: inherit;
6898    border-radius: 60px;
6899    letter-spacing: 1px;
6900    background: var(--brand_color_1);
6901    padding: 6px 20px !important;
6902    color: #fff !important;
6903  }
6904
6905  .main-slider-gift .swiper-button-next:after,
6906  .main-slider-gift .swiper-rtl .swiper-button-prev:after,
6907  .main-slider-gift .swiper-button-prev:after,
6908  .main-slider-gift .swiper-rtl .swiper-button-next:after {
6909    font-size: 16px;
6910    background: #var(--brand_color_1);;
6911    width: 30px;
6912    height: 32px;
6913    display: flex;
6914    align-items: center;
6915    justify-content: center;
6916    border-radius: 100px;
6917    padding: 0 16px;
6918    color: #fff;
6919  }
6920
6921  .money,
6922  .sale {
6923    margin-right: 4px;
6924  }
6925
6926  /* .section-minicart-products {
6927    margin-bottom: 20px;
6928  } */
6929
6930  .free-gift-certificate-amount-text {
6931    color: var(--sale-badge);
6932    font-weight: 700;
6933  }
6934
6935  span.cart_delete_close svg {
6936    width: 11px;
6937    height: 11px;
6938  }
6939
6940  .align-free-gift span.icon {
6941    width: 20px;
6942    height: 20px;
6943    background: rgba(10, 10, 10, 0.2);
6944    border-radius: 100px;
6945    display: flex;
6946    align-items: center;
6947    justify-content: center;
6948  }
6949
6950  span.cart_delete_close {
6951    width: 20px;
6952    height: 20px;
6953    display: block;
6954  }
6955
6956  .cart_delete_close span {
6957    display: flex;
6958    align-items: center;
6959    justify-content: center;
6960    border-radius: 100px;
6961    background: rgba(10, 10, 10, 0.2);
6962  }
6963
6964  .align-free-gift .swiper-button-next:after,
6965  .align-free-gift .swiper-button-prev:after {
6966    border: solid #fff;
6967    border-width: 0 2px 2px 0;
6968    display: inline-block !important;
6969    height: 8.5px !important;
6970    margin: auto !important;
6971    padding: 3px !important;
6972    border-radius: 0 !important;
6973    width: 8px !important;
6974    transform: rotate(-45deg) !important;
6975  }
6976
6977  .align-free-gift .swiper-button-next,
6978  .align-free-gift .swiper-button-prev {
6979    width: 32px !important;
6980    height: 32px !important;
6981    background: var(--brand_color_1);
6982    border-radius: 100px !important;
6983    transform: translateY(6px) !important;
6984  }
6985
6986  .align-free-gift .swiper-button-prev::after {
6987    transform: rotate(135deg) !important;
6988  }
6989
6990  .align-close-btn-main {
6991    flex: 1 1 auto;
6992    display: flex;
6993  }
6994
6995  .floating-bottom-text-img {
6996    min-height: 40px;
6997    min-width: 40px;
6998  }
6999    .floating-text-bottom p {
7000      text-align: left;
7001    }
7002
7003    #floating-frozen-shipping-text {
7004      text-align: left;
7005      font-weight: 400;
7006    }
7007
7008
7009
7010    /*  Progress header bar  */
7011
7012    .subtotal-div {
7013      display: flex;
7014      flex-direction: row;
7015      justify-content: space-between;
7016    }
7017
7018    .subtotal-div p {
7019      margin: 0
7020    }
7021
7022    .collection-checkout-btn {
7023      width: 100%;
7024      margin-top: 30px;
7025      background: #294f2e
7026    }
7027    /* #floating-frozen-shipping-text {
7028            color:#000000 !important;
7029          } */
7030    button[disabled] {
7031      opacity: 0.5;
7032      box-shadow: none
7033    }
7034    .bottom-checkout-txt {
7035      margin-top: 12px;
7036      color: #cbcbcb !important;
7037      font-size: 12px !important;
7038    }
7039    .align-floating-text-bottom {
7040      display: flex;
7041      align-items: start;
7042      margin-top: 10px;
7043      margin-bottom: 10px;
7044    }
7045 
7046    .floating-text-bottom h4 {
7047      color: var(--brand_color_1);
7048      font-weight: 700;
7049      line-height: 14px;
7050      text-align: left;
7051      /* font-family: "Neue Haas Unica" !important; */
7052      text-transform: initial;
7053      /* letter-spacing: 1px !important; */
7054      display: block;
7055      letter-spacing: 0;
7056      text-rendering: optimizeLegibility;
7057      -webkit-font-smoothing: antialiased;
7058      margin-bottom: 0 !important;
7059    }
7060
7061    .floating-text-bottom {
7062      margin-left: 16px;
7063    }
7064
7065    .floating-bottom-text-img {
7066      border: 1px solid #AEAEAE;
7067      border-radius: 8px;
7068      width: 40px;
7069      height: 40px;
7070      display: flex;
7071      align-items: center;
7072      justify-content: center;
7073    }
7074    button.collection-checkout-btn.button.button--add-to-cart {
7075      font-size: 14px !important;
7076    }
7077    #floating-frozen-checkout-btn .floating-checkout-btn {
7078      color: #ffffff;
7079      background-color: var(--cta_outline_primary_static);
7080      border-color: var(--cta_outline_primary_static);
7081
7082      width: 100%;
7083      font-size: 14px !important;
7084      margin-top: 12px;
7085      height: 52.5px;
7086    }
7087    /* .amount-text-color {
7088      color: #000000;
7089    } */
7090
7091    button[disabled] {
7092      opacity: 0.5;
7093      box-shadow: none
7094    }
7095    .bottom-checkout-txt {
7096      margin-top: 12px;
7097      color: #cbcbcb !important;
7098      font-size: 12px !important;
7099    }
7100    .align-floating-text-bottom {
7101      display: flex;
7102      align-items: start;
7103    }
7104
7105    .floating-text-bottom h4 {
7106      color: var(--brand_color_1);
7107      font-weight: 700;
7108      line-height: 14px;
7109      text-align: left;
7110
7111      text-transform: initial;
7112      /* letter-spacing: 1px !important; */
7113      display: block;
7114      letter-spacing: 0;
7115      text-rendering: optimizeLegibility;
7116      -webkit-font-smoothing: antialiased;
7117      margin-bottom: 0 !important;
7118    }
7119
7120    .floating-text-bottom {
7121      margin-left: 16px;
7122    }
7123
7124    .floating-bottom-text-img {
7125      border: 1px solid #AEAEAE;
7126      border-radius: 8px;
7127      width: 40px;
7128      height: 40px;
7129      display: flex;
7130      align-items: center;
7131      justify-content: center;
7132    }
7133    button.collection-checkout-btn.button.button--add-to-cart {
7134      font-size: 14px !important;
7135    }
7136    #floating-frozen-checkout-btn .floating-checkout-btn {
7137      color: #ffffff;
7138      background-color: var(--cta_outline_primary_static);
7139      border-color: var(--cta_outline_primary_static);
7140
7141      width: 100%;
7142      font-size: 14px !important;
7143      margin-top: 12px;
7144      height: 52.5px;
7145    }
7146    /* .amount-text-color {
7147            color: #000000;
7148          } */
7149          
7150
7151
7152
7153/* updated styles for free gift  */
7154.gift_wrapper {
7155    display: flex;
7156    position: absolute;
7157    top: -22px;
7158    width: 100%;
7159    justify-content: space-between;
7160    z-index: 1;
7161    background: transparent;
7162    flex-wrap: nowrap;
7163}
7164.gift_wrapper svg {
7165   height: 45px;
7166    width: 25px;
7167    min-width: 25px;
7168
7169}
7170.gift_wrapper > div {
7171    width: 100%;
7172    display: flex;
7173    align-items: center;
7174    margin-bottom: -4px;
7175    margin-left: -2px;
7176    margin-right: -1px;
7177}
7178.gift_wrapper > div span {
7179    content: '';
7180    background: var(--brand_color_1);
7181    width: 0;
7182    display: block;
7183    height: 6px;
7184    border-radius: 3px;
7185}
7186.main-progress-bar-with-markups  .free-shipping-bar {
7187    margin-top: 24px;
7188    margin-bottom: 24px;
7189}
7190.main-progress-bar-with-markups .progress-bar-titles{
7191  margin-top: 0;
7192}
7193.gift_wrapper svg.active > rect:first-child {
7194    fill: var(--brand_color_1);
7195}
7196.main-progress-bar-with-markups .floating-text-bottom svg * {
7197     stroke: var(--brand_color_1);
7198}
7199.gift_wrapper svg.active + div + svg:not(.active) rect:first-child, .gift_wrapper svg:nth-of-type(1):not(.active) rect:first-child {
7200  fill: var(--sale-badge);
7201  
7202  }
7203.main-progress-bar-with-markups .floating-text-bottom {
7204    width: 100%;
7205    text-align: center;
7206    margin-left: 0;
7207}
7208.main-progress-bar-with-markups .floating-text-bottom *{
7209    text-align: center !important;
7210}
7211.main-progress-bar-with-markups .floating-text-bottom p {
7212  color: #000000;
7213}
7214.main-progress-bar-with-markups  .floating-text-bottom h4 ,  .main-progress-bar-with-markups   .floating-text-bottom h4 *  {
7215  color: var(--brand_color_1) !important;
7216    }
7217.main-progress-bar-with-markups .floating-text-bottom p:empty {
7218    margin: 0;
7219}
7220.main-progress-bar-with-markups .floating-text-bottom p span{
7221  color: var(--sale-badge);
7222  font-weight: 700;
7223}
7224.main-progress-bar-with-markups .floating-text-bottom h4{
7225  display: flex;
7226  justify-content: center;
7227  align-items: center;
7228  text-transform: none;
7229  gap: 7px;
7230}
7231.main-progress-bar-with-markups .floating-text-bottom h4 svg {
7232    height: 17px;
7233    width: 17px;
7234}
7235.main-progress-bar-with-markups.main-bar-align {
7236    padding: 2px 16px;
7237    background: #FFFFFF;
7238    border-radius: 12px;
7239    margin-bottom: 20px;
7240    margin-top: 20px;
7241}
7242 .main-progress-bar-with-markups .free-shipping-progress{
7243    margin-left: 25px;
7244    margin-right: 23px;
7245    max-width: calc(100% - 48px);
7246    border-bottom-left-radius: 0;
7247    border-top-left-radius: 0;
7248} 
7249
7250.sugoi-mart-menu .main-progress-bar-with-markups .floating-text-bottom h4{
7251  font-family: 'Inter' !important;
7252}
7253
7254.is-empty .main-progress-bar-with-markups.main-bar-align {
7255    display: none;
7256}
7257
7258
7259.subscription-product-container .subscription-free-shipping-msg{
7260    text-align: center;
7261  }
7262  .cart-milestone  .progress-bar-titles{
7263    margin-top: 0 ;
7264  }
7265  .customer-loved.customer-loved-v1.hide-customer-also-loved, .purchase-items.past-purchase-order.hide-purchase-items {
7266    visibility: hidden !important;
7267    height: 0 !important;
7268    width: 0 !important;
7269    padding: 0 !important;
7270    min-width: 0 !important;
7271    max-width: 0 !important;
7272  }
7273  @media all and (max-width: 850px){
7274  .customer-loved.customer-loved-v1  .grid-product__price--savings  {
7275    position: static !important;
7276   }
7277  }
7278.frozen-product-cart-container{
7279  margin-top:20px;
7280}
7281/* updated free gift design section  */
7282
7283
7284  /* SHO-233 */
7285  .empty-cart-prices .strike-through-price {
7286    text-decoration: line-through;
7287    color: #aeaeae;
7288  }
7289
7290  </style>
7291
7292 
7292<script>
7293    var emptyCartRecoSeedId = null;
7294
7295    function emptyCartRecoCentsToParts(cents) {
7296      var n = (Number(cents) || 0) / 100;
7297      return n.toFixed(2).split('.');
7298    }
7299
7300    function emptyCartRecoFetchProducts(seedId) {
7301      if (typeof theme !== 'undefined' && theme && theme.ShopifyRecommendations && theme.ShopifyRecommendations.fetch) {
7302        return theme.ShopifyRecommendations.fetch(seedId, 10, 'related');
7303      }
7304      return fetch('/recommendations/products.json?product_id=' + encodeURIComponent(seedId) + '&limit=10&intent=related')
7305        .then(function (response) { return response.json(); })
7306        .then(function (json) {
7307          var list = json.products || [];
7308          return list.filter(function (p) {
7309            var tags = p.tags;
7310            if (!tags) return true;
7311            var arr = Array.isArray(tags) ? tags : String(tags).split(',').map(function (t) { return t.trim(); });
7312            var hasExcludeReco = arr.some(function (t) {
7313              var lo = String(t).toLowerCase();
7314              return lo === 'exclude_recommendations' || lo === 'exclude_rebuy';
7315            });
7316            return !hasExcludeReco;
7317          });
7318        });
7319    }
7320
7321    if (emptyCartRecoSeedId) {
7322      emptyCartRecoFetchProducts(emptyCartRecoSeedId)
7323        .then(function (products) {
7324          var output = '';
7325          var filteredProducts = (products || []).filter(function (product) {
7326            var v = product.variants && product.variants[0];
7327            if (!v) return false;
7328            var invOk = typeof v.inventory_quantity === 'number' ? v.inventory_quantity > 0 : v.available;
7329            return product.title.length <= 35 && invOk && product.title.indexOf('Discovery Pack') === -1;
7330          }).slice(0, 3);
7331
7332          for (var i = 0; i < filteredProducts.length; i++) {
7333            var product = filteredProducts[i];
7334            var v = product.variants[0];
7335            var imgSrc = product.featured_image || (product.images && product.images[0]) || '';
7336            if (String(imgSrc).indexOf('//') === 0) imgSrc = 'https:' + imgSrc;
7337            var alt = product.title || '';
7338            var dparts = emptyCartRecoCentsToParts(v.price);
7339            var superScriptedDiscountedPrice = dparts[0] + '<sup>' + dparts[1] + '</sup>';
7340            var superScriptedOriginalPrice = '';
7341            if (v.compare_at_price) {
7342              var cparts = emptyCartRecoCentsToParts(v.compare_at_price);
7343              superScriptedOriginalPrice = '$' + cparts[0] + '<sup id="super-scrip">' + cparts[1] + '</sup>';
7344            }
7345
7346            output += '<div class="img-text-container">' +
7347                '<img class="empty-cart-img" src="' + imgSrc + '&width=100" alt="' + alt.replace(/"/g, '&quot;') + '">' +
7348                '<div class="img-title-price">' +
7349                    '<h2 class="img-title">' + product.title + '</h2>' +
7350                    '<div class="empty-cart-prices">' +
7351                        
7352                        '<span class="strike-through-price">' + superScriptedOriginalPrice + '</span>' +
7353                        '<span class="discounted-price">$' + superScriptedDiscountedPrice + '</span>' +
7354                    '</div>' +
7355                '</div>' +
7356                '<div class="empty-cart-plus-icon">' +
7357                      '<button type="button" class="text-link quick-add-btn js-quick-add-btn" tabindex="-1" onclick="addToCartSection1(' +
7358          product.id + ',' + v.id + ')" data-id="' + v.id + '">' +
7359                        '<span class="cirle-btn">' +
7360                          '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">' +
7361                            '<path d="M12 5V19" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>' +
7362                            '<path d="M5 12H19" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>' +
7363                            '</svg>' +
7364                          '<span class="icon__fallback-text">Add to cart</span>' +
7365                        '</span>' +
7366                    '</button>' +
7367               '</div>' +
7368             '</div>';
7369          }
7370
7371          $('#empty-cart-reco-products').html(output);
7372          $('#empty-cart-reco-products').css({"display": "flex", "flex-direction": "column", "ga
7372p": "24px"});
7373        });
7374    }
7375  </script>
7375
7376  
7377<script>
7378  (function() {
7379    let cartGiftModal, cartGiftModalClose, cartGiftCancelBtn, cartGiftForm, cartGiftNote, cartGiftCharCount, cartGiftSubmitBtn;
7380    let currentUpsellButton = null;
7381    let isInitialized = false;
7382    
7383    function initializeModalElements() {
7384      /* SHO-265: drawer rebuilds replace the modal node — re-initialize when the cached one is detached */
7385      if (isInitialized && cartGiftModal && document.body.contains(cartGiftModal)) return true;
7386      isInitialized = false;
7387
7388      cartGiftModal = document.getElementById('cartGiftModal');
7389      if (!cartGiftModal) return false;
7390      
7391      cartGiftModalClose = cartGiftModal.querySelector('.cart-gift-modal-close');
7392      cartGiftCancelBtn = cartGiftModal.querySelector('.btn-cancel');
7393      cartGiftForm = document.getElementById('cartGiftMessageForm');
7394      cartGiftNote = document.getElementById('cartGiftNote');
7395      cartGiftCharCount = cartGiftModal.querySelector('.char-count');
7396      cartGiftSubmitBtn = cartGiftModal.querySelector('.btn-submit');
7397      
7398      if (cartGiftModalClose && cartGiftCancelBtn && cartGiftForm && cartGiftNote && cartGiftCharCount && cartGiftSubmitBtn) {
7399        setupEventListeners();
7400        isInitialized = true;
7401        return true;
7402      }
7403      return false;
7404    }
7405    
7406    function openCartGiftModal(button) {
7407      if (!initializeModalElements()) {
7408        console.error('Cart gift modal elements not found');
7409        return;
7410      }
7411      currentUpsellButton = button;
7412      cartGiftModal.style.display = 'flex';
7413      
7414      const savedData = loadCartGiftData();
7415      if (savedData) {
7416        document.getElementById('cartGiftSender').value = savedData.sender || '';
7417        document.getElementById('cartGiftRecipient').value = savedData.recipient || '';
7418        document.getElementById('cartGiftNote').value = savedData.gift_note || '';
7419        
7420        const length = savedData.gift_note ? savedData.gift_note.length : 0;
7421        cartGiftCharCount.textContent = `${length} / 200`;
7422      }
7423      
7424      setTimeout(() => {
7425        updateCartGiftPreview();
7426        
7427        const senderInput = document.getElementById('cartGiftSender');
7428        const recipientInput = document.getElementById('cartGiftRecipient');
7429        const noteInput = document.getElementById('cartGiftNote');
7430        
7431        if (!recipientInput.value) {
7432          recipientInput.focus();
7433        } else if (!noteInput.value) {
7434          noteInput.focus();
7435        } else if (!senderInput.value) {
7436          senderInput.focus();
7437        } else {
7438          recipientInput.focus();
7439          recipientInput.select();
7440        }
7441      }, 50);
7442    }
7443    
7444    function closeCartGiftModal() {
7445      if (!cartGiftModal) return;
7446      
7447      cartGiftModal.style.display = 'none';
7448      // document.body.classList.remove('cart-modal-open');
7449      // document.documentElement.classList.remove('cart-modal-open');
7450      
7451      const sender = document.getElementById('cartGiftSender').value.trim();
7452      const recipient = document.getElementById('cartGiftRecipient').value.trim();
7453      const giftMessage = document.getElementById('cartGiftNote').value.trim();
7454      
7455      if (sender || recipient || giftMessage) {
7456        saveCartGiftData(sender, recipient, giftMessage);
7457      }
7458      
7459      currentUpsellButton = null;
7460    }
7461    
7462    function loadCartGiftData() {
7463      try {
7464        const savedData = sessionStorage.getItem('cartGiftMessageData');
7465        if (savedData) {
7466          return JSON.parse(savedData);
7467        }
7468      } catch (error) {
7469        console.error('Error loading cart gift data:', error);
7470      }
7471      return null;
7472    }
7473    
7474    function saveCartGiftData(sender, recipient, giftMessage) {
7475      try {
7476        const data = {
7477          sender: sender,
7478          recipient: recipient,
7479          gift_note: giftMessage,
7480          timestamp: Date.now()
7481        };
7482        sessionStorage.setItem('cartGiftMessageData', JSON.stringify(data));
7483      } catch (error) {
7484        console.error('Error saving cart gift data:', error);
7485      }
7486    }
7487    
7488    function updateCartGiftPreview() {
7489      const senderInput = document.getElementById('cartGiftSender');
7490      const recipientInput = document.getElementById('cartGiftRecipient');
7491      const messageInput = document.getElementById('cartGiftNote');
7492      const previewSender = document.getElementById('cartPreviewSender');
7493      const previewRecipient = document.getElementById('cartPreviewRecipient');
7494      const previewMessage = document.getElementById('cartPreviewMessage');
7495      const previewSection = document.getElementById('cartGiftPreview');
7496      
7497      if (!senderInput || !recipientInput || !messageInput || !previewSender || !previewRecipient || !previewMessage || !previewSection) {
7498        return;
7499      }
7500      
7501      const sender = senderInput.value.trim();
7502      const recipient = recipientInput.value.trim();
7503      const message = messageInput.value.trim();
7504      
7505      previewRecipient.textContent = recipient || 'Recipient\'s name';
7506      previewSender.textContent = sender || 'Your name';
7507      previewMessage.textContent = message || 'Your gift message will appear here...';
7508      
7509      const selectedOption = document.querySelector('.cart-gift-option-radio:checked');
7510      if (selectedOption && selectedOption.value === 'custom') {
7511        previewSection.style.display = 'block';
7512      } else {
7513        previewSection.style.display = 'none';
7514      }
7515    }
7516    
7517    function setupEventListeners() {
7518      const cartSenderInput = document.getElementById('cartGiftSender');
7519      const cartRecipientInput = document.getElementById('cartGiftRecipient');
7520      
7521      if (cartGiftNote) {
7522        cartGiftNote.addEventListener('input', () => {
7523          const length = cartGiftNote.value.length;
7524          cartGiftCharCount.textContent = `${length} / 200`;
7525          updateCartGiftPreview();
7526        });
7527      }
7528      
7529      if (cartSenderInput) {
7530        cartSenderInput.addEventListener('input', updateCartGiftPreview);
7531        cartSenderInput.addEventListener('keyup', updateCartGiftPreview);
7532      }
7533      
7534      if (cartRecipientInput) {
7535        cartRecipientInput.addEventListener('input', updateCartGiftPreview);
7536        cartRecipientInput.addEventListener('keyup', updateCartGiftPreview);
7537      }
7538      
7539      const cartGiftOptions = document.querySelectorAll('.cart-gift-option-radio');
7540      const cartCustomMessageFields = document.getElementById('cartCustomMessageFields');
7541      
7542      function toggleCartCustomFields() {
7543        const selectedOption = document.querySelector('.cart-gift-option-radio:checked');
7544        if (selectedOption && selectedOption.value === 'custom') {
7545          cartCustomMessageFields.style.display = 'block';
7546          document.getElementById('cartGiftSender').required = true;
7547          document.getElementById('cartGiftRecipient').required = true;
7548          document.getElementById('cartGiftNote').required = true;
7549          updateCartGiftPreview();
7550        } else {
7551          cartCustomMessageFields.style.display = 'none';
7552          document.getElementById('cartGiftSender').required = false;
7553          document.getElementById('cartGiftRecipient').required = false;
7554          document.getElementById('cartGiftNote').required = false;
7555          const previewSection = document.getElementById('cartGiftPreview');
7556          if (previewSection) {
7557            previewSection.style.display = 'none';
7558          }
7559        }
7560      }
7561      
7562      cartGiftOptions.forEach(option => {
7563        option.addEventListener('change', toggleCartCustomFields);
7564      });
7565      
7566      // Initialize on load
7567      toggleCartCustomFields();
7568      
7569      cartGiftModalClose.addEventListener('click', (e) => {
7570        e.preventDefault();
7571        e.stopPropagation();
7572        closeCartGiftModal();
7573      });
7574      
7575      cartGiftCancelBtn.addEventListener('click', (e) => {
7576        e.preventDefault();
7577        e.stopPropagation();
7578        closeCartGiftModal();
7579      });
7580      
7581      cartGiftModal.addEventListener('click', (e) => {
7582        if (e.target === cartGiftModal) {
7583          e.preventDefault();
7584          e.stopPropagation();
7585          closeCartGiftModal();
7586        }
7587      });
7588      
7589      const modalContent = cartGiftModal.querySelector('.cart-gift-modal');
7590      if (modalContent) {
7591        modalContent.addEventListener('click', (e) => {
7592          e.stopPropagation();
7593        });
7594      }
7595      
7596      /* SHO-265: setupEventListeners re-runs after drawer rebuilds — bind the document-level listener only once */
7597      if (!window.__cartGiftEscBound) {
7598        window.__cartGiftEscBound = true;
7599        document.addEventListener('keydown', (e) => {
7600          if (e.key === 'Escape' && cartGiftModal && cartGiftModal.style.display === 'flex') {
7601            e.preventDefault();
7602            e.stopPropagation();
7603            closeCartGiftModal();
7604          }
7605        });
7606      }
7607
7608      cartGiftForm.addEventListener('submit', handleFormSubmit);
7609    }
7610    
7611    async function handleFormSubmit(e) {
7612      e.preventDefault();
7613      
7614      if (!currentUpsellButton) return;
7615      
7616      try {
7617        // Get selected gift option
7618        const selectedOption = document.querySelector('.cart-gift-option-radio:checked');
7619        if (!selectedOption) {
7620          alert('Please select a gift option.');
7621          return;
7622        }
7623        
7624        const giftOption = selectedOption.value;
7625        let sender = '';
7626        let recipient = '';
7627        let giftNote = '';
7628        
7629        // Handle different options
7630        if (giftOption === 'blank') {
7631          // Leave blank - no message
7632          sender = '';
7633          recipient = '';
7634          giftNote = '';
7635        } else if (giftOption === 'standard') {
7636          // Use standard message - no sender/recipient
7637          sender = '';
7638          recipient = '';
7639          giftNote = 'Enjoy this selection of Japanese snacks & products, a little treat from Japan to make your day special. Have a great day!';
7640        } else if (giftOption === 'custom') {
7641          // Get custom form data
7642          const formData = new FormData(cartGiftForm);
7643          sender = formData.get('sender').trim();
7644          recipient = formData.get('recipient').trim();
7645          giftNote = formData.get('gift_note').trim();
7646          
7647          // Validate custom fields
7648          if (!sender || !recipient || !giftNote) {
7649            alert('Please fill in all required fields for your custom message.');
7650            return;
7651          }
7652        }
7653        
7654        cartGiftSubmitBtn.disabled = true;
7655        cartGiftSubmitBtn.classList.add('loading');
7656        cartGiftSubmitBtn.textContent = '';
7657        
7658        const variantId = currentUpsellButton.getAttribute('data-upsell-variant-id');
7659        const productTitle = currentUpsellButton.getAttribute('data-upsell-product-title');
7660        
7661        const response = await fetch('/cart/add.js', {
7662          method: 'POST',
7663          headers: { 'Content-Type': 'application/json' },
7664          body: JSON.stringify({
7665            id: variantId,
7666            quantity: 1
7667          })
7668        });
7669        
7670        if (!response.ok) {
7671          throw new Error(`HTTP error! status: ${response.status}`);
7672        }
7673        
7674        const data = await response.json();
7675        
7676        // Only update attributes if not blank
7677          const attributes = {
7678            'sender': sender,
7679            'recepient': recipient,
7680            'gift_note': giftNote,
7681            'gift_option': giftOption
7682          };
7683          
7684          await fetch('/cart/update.js', {
7685            method: 'POST',
7686            headers: { 'Content-Type': 'application/json' },
7687            body: JSON.stringify({ attributes })
7688          });
7689        
7690        document.dispatchEvent(
7691          new CustomEvent("ajaxProduct:added", {
7692            detail: { product: data },
7693          })
7694        );
7695        
7696        const upsellContainer = currentUpsellButton.closest('.cart__item-upsell');
7697        if (upsellContainer) {
7698          upsellContainer.style.display = 'none';
7699        }
7700        
7701        // Save the gift data for future use (only for custom)
7702        if (giftOption === 'custom') {
7703          saveCartGiftData(sender, recipient, giftNote);
7704        }
7705        
7706        closeCartGiftModal();
7707        
7708        cartGiftSubmitBtn.disabled = false;
7709        cartGiftSubmitBtn.classList.remove('loading');
7710        cartGiftSubmitBtn.textContent = 'Add Gift to Cart';
7711        
7712        console.log(`${productTitle} added to cart successfully`);
7713        
7714      } catch (error) {
7715        console.error('Error adding upsell to cart:', error);
7716        alert('Failed to add gift to cart. Please try again.');
7717        
7718        cartGiftSubmitBtn.disabled = false;
7719        cartGiftSubmitBtn.classList.remove('loading');
7720        cartGiftSubmitBtn.textContent = 'Add Gift to Cart';
7721      }
7722    }
7723    
7724    /* BTQ-68: preorder (advent) items skip the modal — gift wrap + standard message added in one click, same as the LP */
7725    async function addUpsellDirect(button) {
7726      const variantId = button.getAttribute('data-upsell-variant-id');
7727      if (!variantId || button.disabled) return;
7728
7729      const textEl = button.querySelector('.cart__upsell-text');
7730      const originalText = textEl ? textEl.textContent : '';
7731      button.disabled = true;
7732      if (textEl) textEl.textContent = 'Adding…';
7733
7734      /* SHO-265: add gift wrap at the same quantity as the calendar it belongs to */
7735      const parentQty = parseInt(button.getAttribute('data-parent-qty'), 10) || 1;
7736
7737      try {
7738        const response = await fetch('/cart/add.js', {
7739          method: 'POST',
7740          headers: { 'Content-Type': 'application/json' },
7741          body: JSON.stringify({ id: variantId, quantity: parentQty })
7742        });
7743        if (!response.ok) {
7744          throw new Error(`HTTP error! status: ${response.status}`);
7745        }
7746        const data = await response.json();
7747
7748        await fetch('/cart/update.js', {
7749          method: 'POST',
7750          headers: { 'Content-Type': 'application/json' },
7751          body: JSON.stringify({
7752            attributes: {
7753              'sender': '',
7754              'recepient': '',
7755              'gift_note': 'Enjoy this selection of Japanese snacks & products, a little treat from Japan to make your day special.', /* SHO-254 */
7756              'gift_option': 'standard'
7757            }
7758          })
7759        });
7760
7761        document.dispatchEvent(
7762          new CustomEvent("ajaxProduct:added", {
7763            detail: { product: data },
7764          })
7765        );
7766
7767        const upsellContainer = button.closest('.cart__item-upsell');
7768        if (upsellContainer) {
7769          upsellContainer.style.display = 'none';
7770        }
7771      } catch (error) {
7772        console.error('Error adding upsell to cart:', error);
7773        button.disabled = false;
7774        if (textEl) textEl.textContent = originalText;
7775      }
7776    }
7777
7778    function addUpsellToCart(button) {
7779      if (button.getAttribute('data-standard-gift') === 'true') {
7780        addUpsellDirect(button);
7781        return;
7782      }
7783      openCartGiftModal(button);
7784    }
7785
7786    window.addUpsellToCart = addUpsellToCart;
7787
7788    /* SHO-265: keep gift wrap quantities in sync with their parent items.
7789       Pairing comes from data-sync-upsell-variant stamped on cart rows; a shared
7790       wrap targets the SUM of its parents' quantities. The wrap is only synced
7791       while it exists in the cart (never auto-added). */
7792    var giftSyncPairs = {};
7793    var giftSyncBusy = false;
7794
7795    function collectGiftSyncPairs() {
7796      document.querySelectorAll('.cart__item[data-sync-upsell-variant]').forEach(function (row) {
7797        var parentVariant = row.getAttribute('data-variant-id');
7798        var wrapVariant = row.getAttribute('data-sync-upsell-variant');
7799        if (parentVariant && wrapVariant) giftSyncPairs[String(parentVariant)] = String(wrapVariant);
7800      });
7801    }
7802
7803    async function syncGiftWrapQty() {
7804      if (giftSyncBusy) return;
7805      collectGiftSyncPairs();
7806      var parents = Object.keys(giftSyncPairs);
7807      if (!parents.length) return;
7808      giftSyncBusy = true;
7809      try {
7810        var cart = await fetch('/cart.js', { credentials: 'same-origin' }).then(function (r) { return r.json(); });
7811        var qtyByVariant = {};
7812        cart.items.forEach(function (item) { qtyByVariant[String(item.variant_id)] = item.quantity; });
7813
7814        /* target for each wrap = sum of the quantities of every known parent still in the cart */
7815        var wrapTargets = {};
7816        parents.forEach(function (parentVariant) {
7817          var wrapVariant = giftSyncPairs[parentVariant];
7818          if (qtyByVariant[wrapVariant] === undefined) return;
7819          wrapTargets[wrapVariant] = (wrapTargets[wrapVariant] || 0) + (qtyByVariant[parentVariant] || 0);
7820        });
7821
7822        var updates = {};
7823        var parentGone = false;
7824        Object.keys(wrapTargets).forEach(function (wrapVariant) {
7825          if (qtyByVariant[wrapVariant] !== wrapTargets[wrapVariant]) {
7826            updates[wrapVariant] = wrapTargets[wrapVariant];
7827            if (wrapTargets[wrapVariant] === 0) parentGone = true;
7828          }
7829        });
7830
7831        if (Object.keys(updates).length) {
7832          var payload = { updates: updates };
7833          if (parentGone) {
7834            payload.attributes = { 'sender': '', 'recepient': '', 'gift_note': '', 'gift_option': '' };
7835          }
7836          var updated = await fetch('/cart/update.js', {
7837            method: 'POST',
7838            headers: { 'Content-Type': 'application/json' },
7839            body: JSON.stringify(payload)
7840          }).then(function (r) { return r.json(); });
7841          document.dispatchEvent(new CustomEvent('ajaxProduct:added', { detail: { product: updated } }));
7842        }
7843      } catch (err) {
7844        console.error('Gift wrap quantity sync failed:', err);
7845      } finally {
7846        giftSyncBusy = false;
7847      }
7848    }
7849
7850    document.addEventListener('cart:updated', function () { syncGiftWrapQty(); });
7851    document.addEventListener('ajaxProduct:added', function () { syncGiftWrapQty(); });
7852
7853
7854    if (document.readyState === 'loading') {
7855      document.addEventListener('DOMContentLoaded', initializeModalElements);
7856    } else {
7857      initializeModalElements();
7858    }
7859    
7860    document.addEventListener('click', function(e) {
7861      if (e.target.matches('.cart__upsell-btn') || e.target.closest('.cart__upsell-btn')) {
7862        e.preventDefault();
7863        const button = e.target.matches('.cart__upsell-btn') ? e.target : e.target.closest('.cart__upsell-btn');
7864        if (button && button.getAttribute('data-upsell-variant-id')) {
7865          addUpsellToCart(button);
7866        }
7867        return;
7868      }
7869      
7870      if (e.target.matches('[data-cart-remove]') || e.target.closest('[data-cart-remove]')) {
7871      e.preventDefault();
7872      
7873      const button = e.target.matches('[data-cart-remove]') ? e.target : e.target.closest('[data-cart-remove]');
7874      const variantKey = button.getAttribute('data-variant-key');
7875      const lineIndex = button.getAttribute('data-line');
7876      const cartItem = button.closest('.cart__item');
7877      const itemTags = cartItem ? cartItem.getAttribute('data-tags') : '';
7878      const isGiftProduct = itemTags && itemTags.includes('personalized-card');
7879      
7880      button.disabled = true;
7881      button.textContent = 'Removing...';
7882      
7883      theme.cart.changeItem(variantKey, 0)
7884        .then(async function(cart) {
7885          if (isGiftProduct) {
7886            const hasOtherGiftProducts = cart.items.some(item => {
7887              return item.properties && 
7888                     item.product_title && 
7889                     (item.product_title.toLowerCase().includes('gift') || 
7890                      (item.tags && item.tags.includes('personalized-card')));
7891            });
7892            
7893            if (!hasOtherGiftProducts) {
7894              try {
7895                await fetch('/cart/update.js', {
7896                  method: 'POST',
7897                  headers: { 'Content-Type': 'application/json' },
7898                  body: JSON.stringify({ 
7899                    attributes: {
7900                      'recepient': '',
7901                      'sender': '',
7902                      'gift_note': '',
7903                      'gift_option': ''
7904                    }
7905                  })
7906                });
7907                
7908                sessionStorage.removeItem('cartGiftMessageData');
7909              } catch (err) {
7910                console.error('Failed to clear cart attributes:', err);
7911              }
7912            }
7913          }
7914          
7915          document.dispatchEvent(
7916            new CustomEvent("ajaxProduct:added", {
7917              detail: {product: cart},
7918            })
7919          );
7920          
7921          if (cartItem) {
7922            cartItem.remove();
7923          }
7924        })
7925        .catch(function(error) {
7926          console.error('Error removing item from cart:', error);
7927          button.disabled = false;
7928          button.textContent = 'Remove';
7929        });
7930      }
7931    });
7932    
7933  })();
7934</script>
7934</div>
7935                  <style>
7936    .customer-loved {
7937        min-width: 370px;
7938  background-color: var(--calSectionBg);
7939
7940        min-height: 100vh;
7941        z-index: 99;
7942        position: relative;
7943        padding: 24px 16px 0;
7944        max-width: 400px;
7945      z-index: 99999;
7946    }
7947
7948    [data-grid-style*=grey] .customer-loved .grid-product:after {
7949        background: transparent;
7950    }
7951
7952    .loved-pro-img img {
7953        width: 80px;
7954        height: 86px;
7955        object-fit: cover;
7956        display: block;
7957    }
7958
7959    .main-loved-pro {
7960        display: flex;
7961        align-items: center;
7962        background: #fff;
7963        border-radius: 12px;
7964        padding: 13px;
7965        position: relative;
7966        max-width: initial !important;
7967        margin: 14px 0px 0 10px;
7968    }
7969
7970    .main-loved-pro__link {
7971        display: flex;
7972        align-items: center;
7973        flex: 1;
7974        min-width: 0;
7975        text-decoration: none;
7976        color: inherit;
7977    }
7978
7979    .main-loved-pro__link:focus-visible {
7980        outline: 2px solid currentColor;
7981        outline-offset: 2px;
7982        border-radius: 8px;
7983    }
7984
7985    .loved-pro-img {
7986        min-width: 80px;
7987    }
7988
7989    .title-loved-pro p {
7990        /* font-family: 'lato' !important; */
7991        font-style: normal;
7992        font-weight: 400;
7993        font-size: 15px;
7994        line-height: 22px;
7995        color: #000000;
7996        text-transform: capitalize !important;
7997        margin-bottom: 0;
7998        letter-spacing: 1px;
7999        overflow: hidden;
8000        display: -webkit-box;
8001        -webkit-line-clamp: 2;
8002        -webkit-box-orient: vertical;
8003    }
8004
8005    .price-loved-pro {
8006        display: flex;
8007        align-items: center;
8008        margin-top: 4px;
8009    }
8010
8011    .price-loved-pro p {
8012        margin-bottom: 0;
8013    }
8014
8015    .price-loved-pro p:first-child {
8016        font-weight: 400;
8017        font-size: 16px;
8018        line-height: 24px;
8019        text-align: center;
8020        color: #B14224;
8021    }
8022
8023    .price-loved-pro p:nth-child(2) {
8024        font-weight: 400;
8025        font-size: 15px;
8026        line-height: 22px;
8027        text-align: center;
8028        color: #000000;
8029        margin-left: 5px;
8030        padding-left: 5px;
8031        border-left: 1px solid #BDBDBD;
8032    }
8033
8034    .price-loved-pro p:first-child span {
8035        color: #959494;
8036        text-decoration: line-through;
8037    }
8038
8039    .about-loved-pro {
8040        margin-left: 10px;
8041    }
8042
8043    .customer-loved-heading h3 {
8044        font-family: 'Orpheus Pro';
8045        font-style: normal;
8046        font-weight: 400 !important;
8047        font-size: 31px !important;
8048        line-height: 38px;
8049        color: #000000;
8050        letter-spacing: 0px;
8051        text-transform: capitalize !important;
8052        margin-bottom: 0px !important;
8053    }
8054    
8055
8056    .plus-icon-loved .btn--icon {
8057        width: 30px;
8058        height: 30px;
8059        display: flex;
8060        align-items: center;
8061        justify-content: center;
8062        background: var(--cta_filled_static);
8063        padding: 2px !important;
8064        transition: transform 0.1s ease-out;
8065    }
8066
8067    .plus-icon-loved .btn--icon:hover {
8068        transform: scale(1.15);
8069    }
8070
8071    .plus-icon-loved {
8072        position: absolute;
8073        top: -6px;
8074        left: -3px;
8075    }
8076
8077    .close-loved-pro {
8078        position: absolute;
8079        top: 26px;
8080        right: 14px;
8081        cursor: pointer;
8082    }
8083
8084    .close-loved-pro svg {
8085        width: 30px;
8086        height: 30px;
8087    }
8088
8089    .customer-loved.orient-add .listing-loved-products {
8090        display: none;
8091        width: 50px !important;
8092    }
8093
8094    .customer-loved.orient-add {
8095        width: 56px !important;
8096        padding: 10px;
8097        min-width: auto !important;
8098    }
8099
8100    .customer-loved.orient-add .customer-loved-heading h3 {
8101        writing-mode: vertical-rl;
8102        text-orientation: mixed;
8103    }
8104
8105    .customer-loved.orient-add .close-loved-pro {
8106        right: 20px;
8107        top: 30px;
8108    }
8109
8110    #chevron-main-loved,
8111    .customer-loved.orient-add .close-loved-pro svg {
8112        display: none;
8113    }
8114
8115    .customer-loved.orient-add #chevron-main-loved {
8116        display: block !important;
8117        transform: rotate(133deg);
8118    }
8119
8120    .customer-loved.orient-add .customer-loved-heading {
8121        padding-top: 10em;
8122    }
8123
8124    .un-fl-submenu-icon-arrow-dj {
8125        border: solid #000;
8126        border-width: 0 2px 2px 0;
8127        bottom: 0;
8128        display: inline-block;
8129        height: 10px;
8130        margin: auto;
8131        padding: 3px;
8132        /* position: absolute; */
8133        right: 10px;
8134        top: -3px;
8135        width: 10px;
8136        transform: rotate(45deg);
8137        -webkit-transform: rotate(45deg);
8138        margin-bottom: 3px !important;
8139    }
8140
8141    .plus-icon-loved button {
8142        padding: 0;
8143        border: none;
8144        background: transparent;
8145    }
8146
8147    .plus-icon-loved button span {
8148        border-radius: 100px;
8149        cursor: pointer;
8150    }
8151
8152    /*   .plus-icon-loved button span svg {
8153              filter: invert(1);
8154          } */
8155    #theme-ajax-cart.is-drawer {
8156        width: 50%;
8157    }
8158
8159    .align-cart-main-grocery {
8160        display: flex;
8161        flex-direction: row-reverse;
8162        /*     height: 100%; */
8163    }
8164
8165    /*   .align-customer-loved {
8166              position: relative;
8167            } */
8168    .listing-loved-products {
8169        max-height: calc(100vh - 172px);
8170        overflow-y: auto;
8171        padding-right: 10px;
8172        padding-bottom: 2em;
8173    }
8174
8175    .scrolled-body .listing-loved-products {
8176        max-height: calc(100vh - 130px);
8177    } 
8178
8179    .listing-loved-products::-webkit-scrollbar-track {
8180        -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
8181        border-radius: 10px;
8182        background-color: #dbdbdb;
8183    }
8184
8185    .listing-loved-products::-webkit-scrollbar {
8186        width: 6px;
8187        height: 6px;
8188        background-color: #dbdbdb;
8189    }
8190
8191    .listing-loved-products::-webkit-scrollbar-thumb {
8192        border-radius: 10px;
8193        -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
8194        background-color: #7594ae;
8195    }
8196
8197    .ajax-cart--drawer {
8198        box-shadow: 0 8px 8px rgb(10 10 10 / 10%);
8199        background: #fff;
8200    }
8201
8202    #theme-ajax-cart.is-drawer {
8203        width: auto;
8204        max-width: 1100px;
8205        background: transparent;
8206        box-shadow: none;
8207    }
8208
8209    .ajax-cart {
8210        min-width: 701px;
8211        max-width: 701px;
8212    }
8213
8214
8215    .align-main-cart-customer {
8216        display: flex;
8217        flex-direction: row-reverse;
8218        background: #f6f4f1;
8219        height: 100%;
8220    }
8221
8222    .cart__footer {
8223        right: 0;
8224      z-index: 999;
8225    }
8226
8227    .cart__scrollable {
8228        margin-bottom: 0px;
8229    }
8230   
8231
8232    .price-loved-pro p:nth-child(2) {
8233      display: none !important;
8234    }
8235
8236    .site-header__drawer-animate {
8237        transform: inherit !important;
8238    }
8239
8240    .cart__scrollable .rebuy-widget {
8241        display: none !important;
8242    }
8243
8244    .header-wrapper.header-wrapper--overlay.is-light.header-wrapper--compressed {
8245
8246    }
8247
8248    .header-wrapper.header-wrapper--overlay.is-light {
8249
8250    }
8251
8252    @media screen and (max-width: 1100px) {
8253        .customer-loved {
8254            width: 40% !important;
8255            min-width: auto !important;
8256            max-width: initial !important;
8257        }
8258
8259        .site-header__drawer-animate,
8260        .ajax-cart , .cart__footer {
8261            width: 60% !important;
8262            min-width: auto !important;
8263        }
8264
8265        .mob-cart-align.bg-color {
8266            background: var(--cartBGColor);
8267      }
8268        /*        .cart__footer {
8269             width: 100% !important;
8270           } */
8271        .site-header__drawer {
8272    /* 		padding-top: 95px; */
8273            background: transparent;
8274            box-shadow: none;
8275            width: 100%;
8276            max-width: initial;
8277        }
8278    }
8279
8280    @media screen and (max-width: 850px) {
8281
8282
8283        .site-header__drawer-animate,
8284        .ajax-cart,
8285        .cart__footer {
8286            width: 100% !important;
8287            max-width: 100% !important;
8288            min-width: auto !important;
8289        }
8290
8291        .customer-loved,
8292        .customer-loved.orient-add {
8293            width: 100% !important;
8294            /*        height: 235px; */
8295        }
8296
8297        .customer-loved {
8298            min-height: auto !important;
8299            height: 235px;
8300            z-index: 999;
8301            padding: 24px 0 0 !important;
8302        }
8303
8304        .customer-loved-heading h3 {
8305            font-size: 26px !important;
8306            text-align: center;
8307        }
8308
8309        .customer-loved.orient-add .customer-loved-heading {
8310            padding-top: 0;
8311        }
8312
8313        .customer-loved.orient-add .customer-loved-heading h3 {
8314            writing-mode: inherit;
8315            text-orientation: inherit;
8316        }
8317
8318        .main-loved-pro {
8319            display: block;
8320            background: #fff;
8321            text-align: center;
8322            width: 200px;
8323            padding: 10px 4px;
8324            min-width: 200px;
8325            flex: auto !important;
8326        }
8327
8328        .main-loved-pro__link {
8329            display: block;
8330            width: 100%;
8331        }
8332
8333        .loved-pro-img img {
8334            width: 60px;
8335            height: 60px;
8336            margin: auto;
8337        }
8338
8339        .about-loved-pro {
8340            margin: 0;
8341        }
8342
8343        .title-loved-pro p {
8344            font-size: 14px;
8345            display: -webkit-box;
8346            max-width: 400px;
8347            -webkit-line-clamp: 2;
8348            -webkit-box-orient: vertical;
8349            overflow: hidden;
8350            text-overflow: ellipsis;
8351            line-height: 1.4;
8352  /*         min-height: 39.19px;
8353          display: flex;
8354          align-items: center;
8355          justify-content: center; */
8356        }
8357
8358        .price-loved-pro {
8359            justify-content: center;
8360        }
8361
8362        .price-loved-pro p:nth-child(2) {
8363            margin-left: 4px;
8364            padding: 0;
8365            border: none;
8366        }
8367
8368        .customer-loved.orient-add .listing-loved-products {
8369            width: 100% !important;
8370            display: flex !important;
8371        }
8372
8373        .plus-icon-loved {
8374            left: auto;
8375            right: -6px;
8376        }
8377
8378        .listing-loved-products {
8379            display: flex;
8380            padding-bottom: 8px;
8381            max-height: initial !important;
8382        }
8383
8384        .close-loved-pro {
8385            display: none !important;
8386        }
8387
8388        .cart__scrollable {
8389            overflow: inherit;
8390            margin-bottom: 40px;
8391        }
8392        .SGM.header-wrapper.header-wrapper--compressed .cart__scrollable{
8393            margin-bottom:170px
8394        }
8395        .SGM.header-wrapper.header-wrapper--compressed .cart__scrollable.is-empty, .SGM.header-wrapper .cart__scrollable.is-empty{
8396            margin-bottom:0
8397        }
8398
8399      .mob-cart-align {
8400        height: inherit;
8401        overflow: auto;
8402            background: #f6f4f1;
8403      }
8404
8405        .align-main-cart-customer {
8406            flex-direction: column-reverse;
8407            height: auto;
8408            background: #f6f4f1;
8409            padding-bottom: 200px;
8410    /* 		justify-content: flex-end; */
8411        }
8412
8413      .header-wrapper--compressed .align-main-cart-customer {
8414            padding-bottom: 60px;
8415      }
8416        .SGM.header-wrapper--compressed .align-main-cart-customer.is-empty{
8417            height:auto;
8418        }
8419
8420        .site-header__cart .align-main-cart-customer .cart__drawer
8420-form {
8421            max-height: initial !important;
8422            display: block !important;
8423            padding-bottom: 40px;
8424        }
8425
8426        .body-scroll-content .site-header__cart .align-main-cart-customer .cart__drawer-form {
8427            padding-bottom: 130px !important;
8428        }
8429
8430        .site-header__drawer-animate {
8431            height: auto !important;
8432        }
8433
8434        .site-header__drawer-animate {
8435            transform: none !important;
8436        }
8437
8438        .cart__footer {
8439            /* bottom: 0 !important; */
8440            z-index: 99999;
8441        }
8442
8443        .align-main-cart-customer.adjust-mob-cart {
8444            justify-content: flex-end;
8445        }
8446
8447        .align-main-cart-customer.adjust-mob-cart .cart__scrollable ,.align-main-cart-customer.adjust-mob-cart .cart__footer {
8448            display: none !important;
8449        }
8450
8451        /*      .align-main-cart-customer .rebuy-minicart {
8452            display: none !important;
8453         } */
8454      html body[data-header="cro-header-navigations"] .site-header__cart.scrolled-body {
8455        top: 122px !important;
8456      }
8457
8458      html body[data-header="cro-header-navigations"] .scrolled-body .cart__footer {
8459        bottom: 122px !important;
8460      }
8461          html .sugoi-mart-store .align-main-cart-customer {
8462          flex-direction: column !important;
8463            padding-bottom: 0 !important;
8464      }
8465
8466      html .sugoi-mart-store.body-scroll-content .site-header__cart .align-main-cart-customer .cart__drawer-form,
8467      html .sugoi-mart-store .SGM.header-wrapper.header-wrapper--compressed .cart__scrollable,
8468      .sugoi-mart-store .header-wrapper--compressed .align-main-cart-customer {
8469        padding-bottom: 0 !important;
8470        margin-bottom: 0 !important;
8471      }
8472
8473      html .sugoi-mart-store .mob-cart-align {
8474            height: calc(100dvh - 365px) !important;
8475      }
8476
8477      .sugoi-mart-store .site-header__cart .align-main-cart-customer .cart__drawer-form {
8478          padding-bottom: 0 !important;
8479      }
8480      
8481      html .sugoi-mart-store.body-scroll-content .mob-cart-align.empty-cart,
8482      html .sugoi-mart-store .mob-cart-align.empty-cart {
8483          height: inherit !important;
8484      }
8485
8486      .sugoi-mart-store .cart__footer {
8487        min-height: 266px; 
8488      }
8489
8490          html .sugoi-mart-store.body-scroll-content .mob-cart-align {
8491          height: calc(100dvh - 322px) !important;
8492        }
8493
8494      html .sugoi-mart-store .align-main-cart-customer.is-empty {
8495        height: calc( 100dvh - 100px) !important;
8496          justify-content: space-between;
8497        overflow: auto;
8498      }
8499
8500      html .sugoi-mart-store.body-scroll-content .align-main-cart-customer.is-empty {
8501        overflow: auto;
8502          height: calc(100dvh - 64px) !important;
8503          justify-content: space-between;
8504      }
8505    }
8506</style>
8507
8508
8509
8510  
8510<script>
8511    $('.align-cart-main-grocery').addClass('remove-padding')
8512  </script>
8512
8513
8514<script>
8515  setTimeout(() => {
8516    bindQuickAdd()
8517  }, 5000);
8518
8519
8520  function bindQuickAdd() {
8521
8522    var prodGrid = document.querySelectorAll(".product-grid");
8523
8524            if (prodGrid.length) {
8525          for (let i = 0; i < prodGrid.length; i++) {
8526            var gridProducts = prodGrid[i].querySelectorAll(".grid-product");
8527
8528            if (gridProducts.length) {
8529              new theme.QuickAdd(prodGrid[i]);
8530              new theme.QuickShop(prodGrid[i]);
8531            }
8532          }
8533        }
8534  }
8535</script>
8535
8536
8537                </div>
8538              </div>
8539            </div>
8540
8541            <div
8542              class="site-header__drawer site-header__mobile-nav medium-up--hide"
8543              id="MobileNav"
8544              inert
8545              aria-hidden="true"
8546              style="    background-color: #F6F4F1;"
8547            >
8548              <div class="site-header__drawer-animate"><div class="slide-nav__wrapper" data-level="1">
8549  <div class="align-menu-main">
8550    <ul>
8551
8552       
8553      
8554      
8555      
8556      
8557<li>
8558          <div class="main-snack-boxes">
8559            <div class="title-menu-mobile nav-dropdown active-mob-menu">
8560              <p>Shop Snack Box Subscriptions</p>
8561              <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">
8562                  <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>
8563                </svg>
8564            </div>
8565            <div class="listing-dropdown-menus snack-boxes-main-mob active-mob-submenu-show"><a href="https://www.bokksu.com/products/classic-bokksu">
8566                  <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>
8567                  </div>
8568                </a></div>
8569          </div>
8570         </li><li>
8571              <div class="title-menu-mobile nav-dropdown  ">
8572                <p>Shop Gifts</p>
8573                <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">
8574                    <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>
8575                </svg>
8576              </div>
8577              <div class="listing-dropdown-menus ">
8578                <ul><li>
8579                   
8580                      <a href="/products/gift-classic-bokksu">Bokksu Snack Box</a>
8581                      
8582                    </li><li>
8583                   
8584                      <a href="/products/gift-card">Gift Cards</a>
8585                      
8586                    </li><li>
8587                   
8588                      <a href="https://www.bokksuboutique.com/pages/corporate-gifts">Corporate Gifts</a>
8589                      
8590                    </li></ul>
8591              </div>
8592            </li><hr>
8593         <li>
8594            <div class="title-menu-mobile nav-dropdown">
8595              <p>More from Bokksu</p>
8596              <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">
8597                  <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>
8598                </svg>
8599            </div>
8600            <div class="listing-dropdown-menus more-brands">
8601              <ul>           
8602                 <li>                 
8603                    <a href="https://bokksu.com/products/classic-bokksu">
8604                      <img src="//bokksu.com/cdn/shop/files/BokksuSnackBox_Logo_Stacked_Filled_Orange_200x.png?v=1750968760" alt="" role="presentation">
8605                      <p> Premium Japanese snack subscriptions. </p>
8606                    </a>
8607                  </li>
8608                  <li>
8609                    <a href="https://bokksuboutique.com/">
8610                      <img src="//bokksu.com/cdn/shop/files/BokksuBoutique_Logo_Stacked_Filled_Blue_200x.png?v=1750968708" alt="" role="presentation">
8611                      <p> Specialty and gourmet gifts only found in Japan.</p>
8612                    </a>
8613                  </li>
8614                  <li>
8615                    <a href="https://bokksumarket.com">
8616                      <img src="//bokksu.com/cdn/shop/files/BokksuMarket_Logo_Stacked_Filled_Green_200x.png?v=1750968741" alt="" role="presentation">
8617                      <p>Asian grocery essentials for cooking and eating.</p>
8618                    </a>
8619                </li>
8620                
8621              </ul>
8622            </div>
8623         </li><li>
8624          <div class="title-menu-mobile">
8625                <a href="https://www.bokksu.com/account/login?return_url=%2Faccount">
8626                  <p>Account</p>
8627                </a></div>
8628          </li><li>
8629              <div class="title-menu-mobile nav-dropdown  ">
8630                <p>About</p>
8631                <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">
8632                    <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>
8633                </svg>
8634              </div>
8635              <div class="listing-dropdown-menus ">
8636                <ul><li>
8637                   
8638                      <a href="/pages/about">Our Story</a>
8639                      
8640                    </li><li>
8641                   
8642                      <a href="/pages/our-makers">Our Makers</a>
8643                      
8644                    </li><li>
8645                   
8646                      <a href="/pages/snack-bites-documentary">Maker's Documentary</a>
8647                      
8648                    </li></ul>
8649              </div>
8650            </li><li>
8651              <div class="title-menu-mobile nav-dropdown  ">
8652                <p>Support</p>
8653                <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">
8654                    <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>
8655                </svg>
8656              </div>
8657              <div class="listing-dropdown-menus ">
8658                <ul><li>
8659                   
8660                      <a href="/pages/faq">FAQ</a>
8661                      
8662                    </li><li>
8663                   
8664                      <a href="/pages/contact-us">Contact Us</a>
8665                      
8666                    </li></ul>
8667              </div>
8668            </li><li>
8669              <div class="title-menu-mobile nav-dropdown  ">
8670                <p>Information</p>
8671                <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">
8672                    <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>
8673                </svg>
8674              </div>
8675              <div class="listing-dropdown-menus ">
8676                <ul><li>
8677                   
8678                      <a href="/blogs/news">Our Blog</a>
8679                      
8680                    </li><li>
8681                   
8682                      <a href="/pages/bokksu-offers-discounts-coupons">Today's Offers</a>
8683                      
8684                    </li><li>
8685                   
8686                      <a href="/pages/community">Community</a>
8687                      
8688                    </li><li>
8689                   
8690                      <a href="/pages/careers">Careers</a>
8691                      
8692                    </li><li>
8693                   
8694                      <a href="/pages/rewards">Rewards</a>
8695                      
8696                    </li><li>
8697                   
8698                      <a href="/pages/rewards">Refer a Friend</a>
8699                      
8700                    </li></ul>
8701              </div>
8702            </li><li>
8703          <div class="title-menu-mobile"><a href="/pages/past-themes">
8704                  <p>Past Themes</p>
8705                </a></div>
8706          </li></ul>
8707 </div>
8708  
8709<!--   <ul class="slide-nav"></ul> -->
8710
8711</div>
8712
8713<div id="subs-btn" class="original-element">
8714  
8715  <a href="https://bokksu.com/products/classic-bokksu" id="mbl-subscribe-overrides" class="btn btn-custom subscribe-btn-js original-element">Subscribe Now</a>   
8716   
8717</div>
8718
8719<!-- 
8720  <div style="margin-top:100px" id="subs-btn">
8721    <a href="/products/classic-bokksu" id="mbl-subscribe-overrides" class="btn btn-custom subscribe-btn-js"
8722      >SUBSCRIBE NOW</a
8723    >
8724  </div>
8725 -->
8726<script>
8727  if(window.location.href.includes('search')){
8728    $('#subs-btn').css('display','none')
8729  }else{
8730    $('#subs-btn').css('display','block')
8731  }
8732
8733  $('.title-menu-mobile.nav-dropdown').click(function() {
8734    $(this).toggleClass('active-mob-menu').parent().find('.listing-dropdown-menus').slideToggle(300);
8735  });
8736</script>
8736
8737
8738<style>
8739
8740@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');
8741
8742.align-menu-main ul {
8743  margin: 0;
8744  padding: 0;
8745}
8746
8747.align-menu-main ul li {
8748  list-style: none;
8749  margin-top: 0px;
8750  margin-bottom: 16px;
8751}
8752
8753.title-menu-mobile p {
8754  font-weight: 500;
8755  font-size: 13px;
8756  line-height: 140%;
8757  letter-spacing: 0.15em;
8758  text-transform: uppercase;
8759  color: #242426;
8760  margin-bottom: 0;
8761}
8762
8763.snack-box-mob img {
8764  width: 60px;
8765  height: 60px;
8766}
8767
8768.snack-box-mob h4 {
8769  font-weight: 400;
8770  font-size: 15px;
8771  line-height: 140%;
8772  letter-spacing: 0.05em;
8773  text-transform: capitalize;
8774  color: #242426;
8775  margin-left: 14px;
8776  margin-bottom: 0;
8777}
8778
8779.snack-box-mob {
8780  display: flex;
8781  align-items: center;
8782  margin-top: 14px;
8783}
8784
8785.title-menu-mobile.nav-dropdown {
8786  display: flex;
8787  align-items: center;
8788  justify-content: space-between;
8789}
8790
8791.title-menu-mobile.nav-dropdown svg {
8792  width: 10px;
8793  height: 10px;
8794  transform: rotate(90deg);
8795  transition: .3s linear;
8796}
8797
8798.title-menu-mobile.nav-dropdown.active-mob-menu svg {
8799  transform: rotate(-89deg);
8800}
8801
8802.nav-dropdown.active-mob-menu p {
8803  color: #B73D09;
8804}  
8805
8806.listing-dropdown-menus ul li a {
8807  font-weight: 400;
8808  font-size: 15px;
8809  line-height: 140%;
8810  letter-spacing: 0.02em;
8811  text-transform: capitalize;
8812  color: #242426;
8813}
8814
8815.listing-dropdown-menus {
8816  padding: 10px 10px 0 ;
8817  display: none;
8818}
8819.listing-dropdown-menus ul li:last-child {
8820  margin: 0;
8821}
8822
8823.listing-dropdown-menus ul li {
8824  margin-bottom: 8px;
8825}
8826
8827.listing-dropdown-menus.more-brands {
8828  padding: 10px 0;
8829}
8830
8831.listing-dropdown-menus.more-brands ul {
8832  grid-template-columns: repeat(2, minmax(0, 1fr));
8833  display: grid;
8834  grid-gap: 12px;
8835}
8836
8837.listing-dropdown-menus.more-brands ul li a img {
8838  width: 66px;
8839  margin: auto;
8840}
8841
8842.listing-dropdown-menus.more-brands ul li {
8843  text-align: center;
8844  margin: 0;
8845}
8846
8847.listing-dropdown-menus.more-brands ul li a p {
8848  font-weight: 400;
8849  font-size: 11px;
8850  line-height: 130%;
8851  text-align: center;
8852  letter-spacing: 0.02em;
8853  text-transform: initial;
8854  color: #242426;
8855  margin: 6px 0 0 0;
8856}
8857
8858.listing-dropdown-menus.more-brands ul li a {
8859  display: block;
8860  padding: 14px 10px;
8861  background: #F5F5F5;
8862  border-radius: 10px;
8863}
8864
8865.site-header__mobile-nav .site-header__drawer-animate , .site-header__mobile-nav.site-header__drawer {
8866  background: #fff !important;
8867}
8868
8869.site-header__mobile-nav.site-header__drawer {
8870  height: 100vh;
8871  overflow: auto !important;
8872  min-height: 100vh !important;
8873}
8874
8875.align-menu-main hr {
8876  margin: 16px 0px;
8877}
8878
8879  div#subs-btn {
8880    padding-bottom: 8em;
8881  }
8882
8883div#subs-btn p {
8884  font-weight: 400;
8885  font-size: 13px;
8886  line-height: 140%;
8887  letter-spacing: 0.02em;
8888  text-transform: capitalize;
8889  color: #242426;
8890  text-align: center;
8891  margin: 20px 0 30px;
8892}
8893
8894
8895
8896.supports-touch.lock-scroll body {
8897  overflow: initial !important;
8898}
8899
8900/* body.sticky-body {
8901  overflow: hidden;
8902  position: fixed;
8903} */
8904
8905.site-header__mobile-nav  .site-header__drawer-animate {
8906  width: 100% !important;
8907  transition: none !important;
8908}
8909
8910.active-mob-submenu-show {
8911  display: block;
8912}
8913  
8914/* .blur-body {
8915  background: initial !important;
8916  filter: none !important;
8917} */
8918
8919@media only screen and (max-width: 960px) {
8920  #mbl-subscribe-overrides {
8921    letter-spacing: 0.15em !important;
8922    font-weight: 700 !important;
8923    font-size: 13px !important;
8924    height: auto !important;
8925    padding: 17px 16px !important;
8926    border-radius: 10px !important;
8927  }
8928}
8929
8930@media screen and (max-width: 770px) {
8931  .mobile-nav-open body {
8932    overflow: hidden !important;
8933  }
8934}  
8935  
8936</style>
8937</div>
8938            </div>
8939          </div>
8940        </div></header>
8941    </div>
8942  </div>
8943
8944
8945
8946
8947
8948<script>
8949  $(document).ready(function () {
8950    $('.sale-announcement').on('click', function () {
8951    const link = $(this).data('link');
8952    if (link) {
8953      window.location.href = link;
8954    }
8955  });
8956    // Check if userway_buttons_wrapper is rendered
8957    function checkIfRendered() {
8958      if ($('.userway_buttons_wrapper').length > 0) {
8959        $('.transition-body').removeClass('transition-body');
8960        clearInterval(renderCheckInterval); // Stop checking once rendered
8961      }
8962    }
8963    // Check if rendered initially
8964    checkIfRendered();
8965    // Check periodically in case element is added dynamically
8966    let renderCheckInterval = setInterval(checkIfRendered, 1000);
8967  });
8968
8969  // Mobile Cart and Nav Opening Issue
8970  $('.show-on-mob').click(function () {
8971    $('body').toggleClass('no-scroll');
8972    $('.sticky-filters').toggleClass('d-none');
8973    if ($('html').hasClass('cart-open')) {
8974      $('.site-header__cart').removeClass('is-active is-cart-open');
8975      $('html').removeClass('cart-open');
8976    }
8977  });
8978  $('#HeaderCartTrigger').click(function () {
8979    if ($('.main-menu-new').hasClass('show-categories')) {
8980      $('.ctaegories-icon').removeClass('icon-change');
8981      $('.main-menu-new').removeClass('show-categories');
8982      $('body').removeClass('no-scroll');
8983    }
8984  });
8985  // End Mobile Nav and Cart Opening Issue
8986
8987  function isMobile() {
8988    const regex = /Mobi|Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i;
8989    return regex.test(navigator.userAgent);
8990  }
8991  $('#buttonid').click(function () {
8992    if ($(this).hasClass('icon-change')) {
8993      $(this).attr('aria-expanded', true);
8994      $(this).attr('aria-label', 'Close');
8995    } else {
8996      $(this).attr('aria-expanded', false);
8997      $(this).attr('aria-label', 'Menu');
8998    }
8999  });
9000
9001  $('#buttonid').on('keydown', function (event) {
9002    if (event.keyCode == 9 && $(this).hasClass('icon-change')) {
9003      setTimeout(function () {
9004        $('.all-menu-links .main-menu-item:first-child .new-menu-item .item-links').focus();
9005      }, 0);
9006    }
9007
9008    if (event.keyCode == 32) {
9009      if ($('#buttonid').hasClass('icon-change')) {
9010        $('#buttonid').attr('aria-expanded', true);
9011        $(this).attr('aria-label', 'Close');
9012      } else {
9013        $('#buttonid').attr('aria-expanded', false);
9014        $(this).attr('aria-label', 'Menu');
9015      }
9016    }
9017  });
9018
9019  $('#buttonid').on('focus', function (event) {
9020    if (event.keyCode != 9 && !event.shiftKey) {
9021      setTimeout(function () {
9022        $('.all-menu-links .main-menu-item:first-child .new-menu-item .item-links').focus();
9023      }, 2000);
9024    }
9025  });
9026
9027  $(document).keydown(function (event) {
9028    if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {
9029      event.preventDefault();
9030      //  readElementsInMain();
9031    }
9032  });
9033  $('.ctaegories-icon').click(function () {
9034    $(this).toggleClass('icon-change');
9035    $('.main-menu-new').toggleClass('show-categories');
9036    $('.all-menu-links .main-menu-item:first-child .new-menu-item #myLink').attr('tabindex', 0);
9037    $('.all-menu-links .main-menu-item:first-child .new-menu-item #myLink').focus();
9038  });
9039  $('.new-menu-item').click(function () {
9040    $(this).parent().toggleClass('rotate-icon').find('.listing-hovered-items').slideToggle();
9041  });
9042
9043  $(document).keydown(function (e) {
9044    if (e.keyCode == 9 && e.shiftKey) {
9045      if ($('.all-menu-links .main-menu-item:first-child .new-menu-item #myLink').is(':focus')) {
9046        $('#buttonid').attr('tabindex', 0);
9047        setTimeout(function () {
9048          $('#buttonid').focus();
9049        }, 0);
9050      }
9051    }
9052    if ($('#buttonid').is(':focus')) {
9053      if (e.keyCode == 9 && !e.shiftKey) {
9054        setTimeout(function () {
9055          $('.all-menu-links .main-menu-item:first-child .new-menu-item #myLink').focus();
9056        }, 0);
9057      }
9058    }
9059  });
9060  function handleMenuItem(event) {
9061    if (event.keyCode == 32 && $('.main-menu-item .new-menu-item .item-links').is(':focus')) {
9062      window.location = $('.main-menu-item .new-menu-item a:focus').attr('href');
9063      return false;
9064    }
9065
9066    if ((event.keyCode == 39 || event.keyCode == 37) && $('.main-menu-item .new-menu-item a').is(':focus')) {
9067      // $('.listing-hovered-items').hide();
9068    }
9069    if (event.keyCode == 39 && $('.all-menu-links .main-menu-item:last-child .new-menu-item a').is(':focus')) {
9070      //alert("hiii")
9071      setTimeout(function () {
9072        $('.total-reviews-new h4').focus();
9073      }, 1000);
9074    }
9075  }
9076
9077  // $('.main-menu-item .new-menu-item a').on('mouseover', function (event) {
9078  //     if(!isMobile() && zoom < 175.0){
9079  //       $('.listing-hovered-items').show();
9080  //     }
9081  // });
9082
9083  function handleMenusubitems(event) {
9084    if (event.keyCode == 32 && $('.main-menu-item .listing-hovered-items ul li a:focus')) {
9085      window.location = $('.main-menu-item .listing-hovered-items ul li a:focus').attr('href');
9086      return false;
9087    }
9088  }
9089
9090  $('.main-menu-item .new-menu-item').on('keydown', handleMenuItem);
9091  $('.main-menu-item .listing-hovered-items').on('keydown', handleMenusubitems);
9092  $('.mob-user-icon .dropdown-stores').on('keydown', handleMoreAbout);
9093  $('.shop-btn').on('keydown', handleShopBtn);
9094  $('.login-link').on('keydown', handleLoginLink);
9095
9096  $('.title-menu-mobile').click(function () {
9097    $(this).toggleClass('active-mob-menu').parent().find('.dropdown-stores').slideToggle();
9098  });
9099
9100  // $('.main-menu-item .new-menu-item .item-links').on('mouseover', function () {
9101  //     if(!isMobile() && zoom < 175.0){
9102  //   $('.listing-hovered-items').show();
9103  //     }
9104  // });
9105
9106  function handleMoreAbout(event) {
9107    if (event.keyCode == 32 && $('.dropdown-stores .listing-dropdown-menus ul li a:focus')) {
9108      window.location = $('.dropdown-stores .listing-dropdown-menus ul li a:focus').attr('href');
9109      return false;
9110    }
9111  }
9112
9113  function handleShopBtn(event) {
9114    if (event.keyCode == 32 && $('a:focus')) {
9115      window.location = $('a:focus').attr('href');
9116      return false;
9117    }
9118  }
9119  function handleLoginLink(event) {
9120    if (event.keyCode == 32) {
9121      window.location = $('.login-link a').attr('href');
9122      return false;
9123    }
9124  }
9125
9126  $('.title-menu-mobile').click(function () {
9127    $(this).toggleClass('active-mob-menu').parent().find('.dropdown-stores').slideToggle();
9128  });
9129
9130  const focusTrapDiv = document.getElementById('focus-menu-item');
9131  if (focusTrapDiv) {
9132    focusTrapDiv.addEventListener('keydown', function (event) {
9133      if (event.key === 'Tab') {
9134        const focusableElements = focusTrapDiv.querySelectorAll(
9135          'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
9136        );
9137        const firstFocusableElement = focusableElements[0];
9138        const lastFocusableElement = focusableElements[focusableElements.length - 1];
9139
9140        if (event.shiftKey) {
9141          if (document.activeElement === firstFocusableElement) {
9142            event.preventDefault();
9143            setTimeout(function () {
9144              $('#buttonid').focus();
9145            }, 0);
9146          }
9147        } else {
9148          if (document.activeElement === lastFocusableElement) {
9149            event.preventDefault();
9150            setTimeout(function () {
9151              $('#buttonid').focus();
9152            }, 0);
9153          }
9154        }
9155      }
9156    });
9157
9158    // v2 code
9159
9160    $.ajax({
9161      type: 'POST',
9162      data: { email: '' },
9163      url: 'https://bokksurecharge.herokuapp.com/index.php',
9164      success: function (data) {
9165        if (data.customers.length > 0) {
9166          let customer_id = data.customers[0].id;
9167          let billing_address1 = data.customers[0].billing_address1;
9168          $.ajax({
9169            type: 'POST',
9170            data: { customer_id: customer_id },
9171            url: 'https://bokksurecharge.herokuapp.com/menu-first-box.php',
9172            success: function (data2) {
9173              if (Number(data2) > 0) {
9174                $('#item-first-box').html('Upcoming Box');
9175                $('#item-first-box').attr('href', 'https://bokksu.com/pages/upcoming-box');
9176                $('.item-first-box-mobile').html('Upcoming Box');
9177                $('.item-first-box-mobile').attr('href', 'https://bokksu.com/account');
9178              }
9179            },
9180          });
9181        }
9182      },
9183    });
9184
9185    function resetScrollbarStylesForInjectedStyles() {
9186      $('style.pieeye-injected-style').each(function () {
9187        var styleContent = $(this).html();
9188        if (styleContent.includes('::-webkit-scrollbar')) {
9189          // Remove styles related to scrollbar
9190          var cleanedStyleContent = styleContent.replace(
9191            /(::-webkit-scrollbar|::-webkit-scrollbar-thumb|::-webkit-scrollbar-track)[^{]*\{[^}]*\}/g,
9192            ''
9193          );
9194          $(this).html(cleanedStyleContent);
9195        }
9196      });
9197    }
9198
9199    const observerCallback = function (mutationsList, observer) {
9200      mutationsList.forEach(function (mutation) {
9201        if (mutation.type === 'childList' && mutation.target.nodeName.toLowerCase() === 'head') {
9202          $(mutation.addedNodes).each(function () {
9203            if (
9204              this.nodeType === Node.ELEMENT_NODE &&
9205              this.tagName.toLowerCase() === 'style' &&
9206              $(this).hasClass('pieeye-injected-style')
9207            ) {
9208              resetScrollbarStylesForInjectedStyles();
9209            }
9210          });
9211        }
9212      });
9213    };
9214    const observer = new MutationObserver(observerCallback);
9215    observer.observe(document.head, { childList: true });
9216  }
9217</script>
9217
9218
9219<script>
9220  // a11y: keep mobile-nav-trigger buttons' aria-expanded state in sync with
9221  // the drawer open/closed state, and remove the drawer from the tab order
9222  // (inert + aria-hidden) when closed so keyboard users can't tab into
9223  // off-screen drawer links.
9224  (function () {
9225    function setExpanded(value) {
9226      var triggers = document.querySelectorAll('.mobile-nav-trigger');
9227      for (var i = 0; i < triggers.length; i++) {
9228        triggers[i].setAttribute('aria-expanded', value ? 'true' : 'false');
9229      }
9230      var drawer = document.getElementById('MobileNav');
9231      if (drawer) {
9232        if (value) {
9233          drawer.removeAttribute('inert');
9234          drawer.removeAttribute('aria-hidden');
9235        } else {
9236          drawer.setAttribute('inert', '');
9237          drawer.setAttribute('aria-hidden', 'true');
9238        }
9239      }
9240    }
9241    document.addEventListener('MobileNav:open', function () { setExpanded(true); });
9242    document.addEventListener('MobileNav:close', function () { setExpanded(false); });
9243
9244    // a11y: toggle cart drawer inert/aria-hidden based on open/closed state.
9245    // Cart uses 'is-active' or 'is-cart-open' class on #HeaderCart.
9246    var cartDrawer = document.getElementById('HeaderCart');
9247    if (cartDrawer && typeof MutationObserver === 'function') {
9248      function syncCartDrawer() {
9249        var isOpen = cartDrawer.classList.contains('is-active') || cartDrawer.classList.contains('is-cart-open');
9250        if (isOpen) {
9251          cartDrawer.removeAttribute('inert');
9252          cartDrawer.removeAttribute('aria-hidden');
9253          // Move focus to the close button so screen readers start inside the drawer.
9254          var closeBtn = cartDrawer.querySelector('.js-close-header-cart');
9255          if (closeBtn) setTimeout(function () { closeBtn.focus(); }, 100);
9256        } else {
9257          cartDrawer.setAttribute('inert', '');
9258          cartDrawer.setAttribute('aria-hidden', 'true');
9259        }
9260      }
9261      new MutationObserver(syncCartDrawer).observe(cartDrawer, {
9262        attributes: true,
9263        attributeFilter: ['class']
9264      });
9265
9266    // a11y: desktop nav dropdown keyboard support (disclosure pattern).
9267    // Nav items with submenus are single <button> elements (not <a> links).
9268    // The parent URL is available as "View all [title]" inside the dropdown.
9269    // Uses .onclick assignment (verified working with VoiceOver).
9270    (function () {
9271      var navItems = document.querySelectorAll('.site-nav--has-dropdown');
9272      if (!navItems.length) return;
9273
9274      navItems.forEach(function (li) {
9275        var toggle = li.querySelector('.site-nav__dropdown-toggle');
9276        var link = li.querySelector('.site-nav__link--has-dropdown');
9277        var dropdown = li.querySelector('.site-nav__dropdown, .megamenu');
9278        if (!toggle) return;
9279
9280        // Wire aria-controls
9281        if (dropdown) {
9282          var dropdownId = 'nav-dropdown-' + Math.random().toString(36).slice(2, 8);
9283          dropdown.setAttribute('id', dropdownId);
9284          toggle.setAttribute('aria-controls', dropdownId);
9285        }
9286
9287        // Use .onclick (not addEventListener) — matches the console test that worked.
9288        toggle.onclick = function (e) {
9289          e.preventDefault();
9290          e.stopPropagation();
9291          var wasOpen = li.classList.contains('is-focused');
9292          // Close all open dropdowns
9293          navItems.forEach(function (other) {
9294            if (other.classList.contains('is-focused')) {
9295              other.classList.remove('is-focused');
9296              var t = other.querySelector('.site-nav__dropdown-toggle');
9297              if (t) t.setAttribute('aria-expanded', 'false');
9298            }
9299          });
9300          if (!wasOpen) {
9301            li.classList.add('is-focused');
9302            toggle.setAttribute('aria-expanded', 'true');
9303          }
9304        };
9305
9306        // Close on focusout (focus leaves the entire <li> + dropdown).
9307        var closeTimeout;
9308        li.addEventListener('focusin', function () {
9309          clearTimeout(closeTimeout);
9310        });
9311        li.addEventListener('focusout', function () {
9312          closeTimeout = setTimeout(function () {
9313            if (!li.contains(document.activeElement)) {
9314              li.classList.remove('is-focused');
9315              toggle.setAttribute('aria-expanded', 'false');
9316            }
9317          }, 50);
9318        });
9319
9320        // Mouse: hover opens/closes (existing behavior preserved).
9321        li.addEventListener('mouseenter', function () {
9322          li.classList.add('is-focused');
9323          toggle.setAttribute('aria-expanded', 'true');
9324        });
9325        li.addEventListener('mouseleave', function () {
9326          if (!li.contains(document.activeElement)) {
9327            li.classList.remove('is-focused');
9328            toggle.setAttribute('aria-expanded', 'false');
9329          }
9330        });
9331
9332        // Escape: close dropdown, return focus to the toggle button.
9333        li.addEventListener('keydown', function (e) {
9334          if (e.key === 'Escape' && li.classList.contains('is-focused')) {
9335            e.stopPropagation();
9336            li.classList.remove('is-focused');
9337            toggle.setAttribute('aria-expanded', 'false');
9338            toggle.focus();
9339          }
9340        });
9341      });
9342    })();
9343
9344      // Escape key closes the cart drawer and returns focus to the cart trigger.
9345      document.addEventListener('keydown', function (e) {
9346        if (e.key === 'Escape' && (cartDrawer.classList.contains('is-active') || cartDrawer.classList.contains('is-cart-open'))) {
9347          var closeBtn = cartDrawer.querySelector('.js-close-header-cart');
9348          if (closeBtn) closeBtn.click();
9349          var cartTrigger = document.getElementById('HeaderCartTrigger');
9350          if (cartTrigger) setTimeout(function () { cartTrigger.focus(); }, 200);
9351        }
9352      });
9353    }
9354  })();
9355</script>
9355
9356
9357
9358</div><section id="shopify-section-sections--17749310636118__cart_milestone_TaEhjU" class="shopify-section shopify-section-group-header-group d-none">
9359
9360
9361
9362
9363
9364
9365
9366
9367
9368
9369
9370
9371
9372<span
9373  class="gwp-with-choice-section-title"
9374  data-section-title=""
9375  style="display: none;"
9376></span>
9377
9378
9379<!-- Dual Cart - Market Items Progress Bar -->
9380
9381
9382
9383
9384
9385
9386</section>
9387<!-- END sections: header-group --><!-- BEGIN sections: popup-group -->
9388
9389<!-- END sections: popup-group --><main class="main-content" id="MainContent" role="main">
9390          <div id="shopify-section-template--17749318303830__snb_hero_native_m3PCWY" class="shopify-section">
9391<style data-shopify>/* Desktop typography (641px+) – matches layout breakpoint ~640×937 */
9392    @media (min-width: 641px) {
9393      #shopify-section-template--17749318303830__snb_hero_native_m3PCWY .snb-hero-native__slide--slide_yUTnyh .snb-hero-native__preheader {
9394        color: #f8ffff;
9395        font-size: 16px;
9396        font-weight: 500;
9397        line-height: 0.8;
9398        letter-spacing: 0.2em;
9399        font-family: "Montserrat", sans-serif;
9400      }
9401      #shopify-section-template--17749318303830__snb_hero_native_m3PCWY .snb-hero-native__slide--slide_yUTnyh .hero__title {
9402        color: #f8ffff;
9403        font-size: 66px;
9404        font-weight: 500;
9405        line-height: 0.9;
9406        letter-spacing: 0em;
9407        font-family: var(--typeHeaderPrimary), var(--typeHeaderFallback);
9408      }
9409      #shopify-section-template--17749318303830__snb_hero_native_m3PCWY .snb-hero-native__slide--slide_yUTnyh .snb-hero-native__description {
9410        color: #f8ffff;
9411        font-size: 16px;
9412        font-weight: 400;
9413        line-height: 1.5;
9414        letter-spacing: 0em;
9415        font-family: var(--typeBasePrimary), var(--typeBaseFallback);
9416      }
9417      #shopify-section-template--17749318303830__snb_hero_native_m3PCWY .snb-hero-native__slide--slide_yUTnyh .snb-hero-native__cta {
9418        color: #ffffff;
9419        --snb-cta-bg: #ffffff;--snb-cta-border: #ffffff;
9420        --snb-cta-fill: #611f13;
9421        font-size: 14px;
9422        font-weight: 600;
9423        line-height: 1.2;
9424        letter-spacing: 0.1em;
9425        font-family: var(--typeBasePrimary), var(--typeBaseFallback);
9426      }
9427    }
9428    /* Mobile layout typography (≤640px) – matches screenshot 2 breakpoint */
9429    @media (max-width: 640px) {
9430      #shopify-section-template--17749318303830__snb_hero_native_m3PCWY .snb-hero-native__slide--slide_yUTnyh .snb-hero-native__preheader {
9431        color: #f8ffff;
9432        font-size: 12px;
9433        font-weight: 600;
9434        line-height: 0.8;
9435        letter-spacing: 0.1em;
9436        font-family: var(--typeBasePrimary), var(--typeBaseFallback);
9437      }
9438      #shopify-section-template--17749318303830__snb_hero_native_m3PCWY .snb-hero-native__slide--slide_yUTnyh .hero__title {
9439        color: #f8ffff;
9440        font-size: 34px !important;
9441        font-weight: 400;
9442        line-height: 1.6 !important;
9443        letter-spacing: 0em;
9444        font-family: var(--typeHeaderPrimary), var(--typeHeaderFallback);
9445      }
9446      #shopify-section-template--17749318303830__snb_hero_native_m3PCWY .snb-hero-native__slide--slide_yUTnyh .snb-hero-native__description {
9447        color: #f8ffff;
9448        font-size: 15px;
9449        font-weight: 400;
9450        line-height: 1.5;
9451        letter-spacing: 0em;
9452        font-family: var(--typeBasePrimary), var(--typeBaseFallback);
9453      }
9454      #shopify-section-template--17749318303830__snb_hero_native_m3PCWY .snb-hero-native__slide--slide_yUTnyh .snb-hero-native__cta {
9455        color: #ffffff;
9456        --snb-cta-bg: #ffffff;--snb-cta-border: #ffffff;
9457        --snb-cta-fill: #611f13;
9458        font-size: 13px;
9459        font-weight: 600;
9460        line-height: 1.4;
9461        letter-spacing: 0.1em;
9462        font-family: var(--typeBasePrimary), var(--typeBaseFallback);
9463      }
9464    }
9465    #shopify-section-template--17749318303830__snb_hero_native_m3PCWY .snb-hero-native__slide--slide_yUTnyh .snb-hero-native__cta:hover {
9466      color: #ffffff !important;
9467    }</style><style data-shopify>/* SNB Hero Native – base layout, carousel, content, CTA, controls (self-contained in section) */
9468  .snb-hero-native {
9469    position: relative;
9470    overflow: hidden;
9471    margin-bottom: 0;
9472    padding-bottom: 0;
9473    border-bottom: none !important;
9474    outline: none !important;
9475  }
9476  .index-section:has(.snb-hero-native) {
9477    margin-bottom: 0 !important;
9478    padding-bottom: 0 !important;
9479    border-bottom: none !important;
9480  }
9481  div:has(> .snb-hero-native) {
9482    margin-bottom: 0 !important;
9483    padding-bottom: 0 !important;
9484    border-bottom: none !important;
9485  }
9486  .main-content > div:has(.snb-hero-native) {
9487    margin-bottom: 0 !important;
9488    padding-bottom: 0 !important;
9489    border-bottom: none !important;
9490  }
9491  .main-content:has(> div:last-child .snb-hero-native) + div,
9492  .main-content:has(> div:last-child .snb-hero-native) + section {
9493    margin-top: 0 !important;
9494    padding-top: 0 !important;
9495    border-top: none !important;
9496  }
9497  .main-content:has(> div:last-child .snb-hero-native) + div .footer__section:first-child,
9498  .main-content:has(> div:last-child .snb-hero-native) + div .footer__section:first-of-type {
9499    border-top: none !important;
9500  }
9501  .main-content > div:has(.snb-hero-native) + * {
9502    margin-top: 0 !important;
9503    padding-top: 0 !important;
9504    border-top: none !important;
9505  }
9506  .snb-hero-native--utm-show-only {
9507    display: none;
9508  }
9509  /* Pre-Flickity: prevent vertical stacking / CLS */
9510  .snb-hero-native__slider:not(.flickity-enabled) {
9511    position: relative;
9512    overflow: hidden;
9513  }
9514  .snb-hero-native__slider:not(.flickity-enabled) .snb-hero-native__slide {
9515    display: none;
9516  }
9517  .snb-hero-native__slider:not(.flickity-enabled) .snb-hero-native__slide:first-child {
9518    display: block;
9519  }
9520
9521  .snb-hero-native__slider.flickity-enabled {
9522    overflow: visible;
9523  }
9524  .snb-hero-native__slider.flickity-enabled .flickity-viewport {
9525    width: 100%;
9526    height: 60vh;
9527    overflow: hidden;
9528  }
9529  @media (max-width: 640px) {
9530    .snb-hero-native__slider.flickity-enabled .flickity-viewport {
9531      height: 85vh;
9532    }
9533  }
9534  .snb-hero-native__slider.flickity-enabled .flickity-slider {
9535    display: flex;
9536    align-items: stretch;
9537  }
9538  .snb-hero-native__slider .snb-hero-native__slide {
9539    width: 100%;
9540    flex-shrink: 0;
9541  }
9542  .snb-hero-native__slide {
9543    position: relative;
9544    overflow: hidden;
9545    width: 100%;
9546    height: 60vh;
9547  }
9548  .snb-hero-native__slide--clickable {
9549    cursor: pointer;
9550  }
9551  .snb-hero-native__slide--clickable .snb-hero-native__cta,
9552  .snb-hero-native__slide--clickable .snb-hero-native__content {
9553    pointer-events: auto;
9554  }
9555  @media (max-width: 640px) {
9556    .snb-hero-native__slide {
9557      height: 85vh;
9558    }
9559  }
9560  @media (min-width: 961px) {
9561    .snb-hero-native__slide {
9562      max-height: 62vh;
9563    }
9564  }
9565  .snb-hero-native__bg {
9566    position: absolute;
9567    inset: 0;
9568    width: 100%;
9569    height: 100%;
9570    z-index: 0;
9571  }
9572  .snb-hero-native__bg .snb-hero-native__img {
9573    position: absolute;
9574    inset: 0;
9575    width: 100%;
9576    height: 100%;
9577    object-fit: cover;
9578    object-position: right center;
9579    display: block;
9580  }
9581  .snb-hero-native__bg .snb-hero-native__img--desktop {
9582    display: none;
9583  }
9584  .snb-hero-native__bg .snb-hero-native__img--mobile {
9585    display: block;
9586    object-position: center center;
9587  }
9588  @media (max-width: 640px) {
9589    .snb-hero-native__bg .snb-hero-native__img,
9590    .snb-hero-native__bg .snb-hero-native__img--mobile {
9591      object-position: center top;
9592    }
9593    .snb-hero-native__bg .snb-hero-native__video--native {
9594      object-position: center top;
9595    }
9596  }
9597  @media (min-width: 641px) {
9598    .snb-hero-native__bg .snb-hero-native__img--desktop {
9599      display: block;
9600    }
9601    .snb-hero-native__bg .snb-hero-native__img--mobile {
9602      display: none;
9603    }
9604    .snb-hero-native__bg .snb-hero-native__img,
9605    .snb-hero-native__bg .snb-hero-native__video--native {
9606      object-position: right center;
9607    }
9608  }
9609  .snb-hero-native__bg .snb-hero-native__video {
9610    position: absolute;
9611    inset: 0;
9612    width: 100%;
9613    height: 100%;
9614    border: none;
9615    pointer-events: none;
9616  }
9617  .snb-hero-native__bg .snb-hero-native__video--native {
9618    object-fit: cover;
9619    object-position: right center;
9620  }
9621  .snb-hero-native__video--desktop-only {
9622    display: none;
9623  }
9624  .snb-hero-native__video--mobile-only {
9625    display: block;
9626  }
9627  @media (min-width: 641px) {
9628    .snb-hero-native__video--desktop-only {
9629      display: block;
9630    }
9631    .snb-hero-native__video--mobile-only {
9632      display: none;
9633    }
9634  }
9635  .snb-hero-native__bg .snb-hero-native__video--youtube,
9636  .snb-hero-native__bg .snb-hero-native__video--vimeo {
9637    width: 100vw;
9638    height: 56.25vw;
9639    min-height: 100%;
9640    min-width: 177.78vh;
9641    left: 50%;
9642    top: 50%;
9643    transform: translate(-50%, -50%);
9644  }
9645  .snb-hero-native__content {
9646    position: absolute;
9647    z-index: 2;
9648    display: flex;
9649    box-sizing: border-box;
9650  }
9651  .snb-hero-native__content::before {
9652    display: none;
9653    content: none;
9654  }
9655  @media (max-width: 640px) {
9656    .snb-hero-native__content[data-mobile-overlay="true"]::before {
9657      content: '';
9658      display: block;
9659      position: absolute;
9660      inset: 0;
9661      background-color: var(--snb-hero-mob-overlay-bg, rgba(0,0,0,0.4));
9662      backdrop-filter: blur(var(--snb-hero-mob-overlay-blur, 0px));
9663      z-index: -1;
9664      pointer-events: none;
9665      border-radius: inherit;
9666    }
9667  }
9668  @media (min-width: 641px) {
9669    .snb-hero-native__content {
9670      inset: 0;
9671      display: flex;
9672      align-items: center;
9673      padding: 80px 20px 24px;
9674      transform: translateY(-20px);
9675    }
9676  }
9677  .snb-hero-native__content-inner {
9678    width: 100%;
9679    max-width: 100%;
9680    margin: 0;
9681    display: flex;
9682    flex-direction: column;
9683    gap: 0;
9684    box-sizing: border-box;
9685  }
9686  @media (min-width: 641px) {
9687    .snb-hero-native__content-inner {
9688      max-width: 600px;
9689      margin-left: 8%;
9690      margin-right: auto;
9691      text-align: left;
9692    }
9693  }
9694  @media (max-width: 640px) {
9695    .snb-hero-native__slide {
9696      min-height: 64vh;
9697      position: relative;
9698    }
9699    .snb-hero-native__bg {
9700      display: flex;
9701      align-items: flex-end;
9702      justify-content: center;
9703    }
9704    .snb-hero-native__img {
9705      object-fit: contain;
9706      object-position: center top;
9707      width: 100%;
9708      height: auto;
9709      max-height: 100%;
9710    }
9711    .snb-hero-native__content {
9712      position: absolute;
9713      left: 0;
9714      right: 0;
9715      bottom: 0;
9716      padding: 24px 20px 28px;
9717      display: flex;
9718      justify-content: center;
9719    }
9720    .snb-hero-native__content-inner {
9721      width: 100% !important;
9722      max-width: 100% !important;
9723      display: flex;
9724      flex-direction: column;
9725      align-items: center !important;
9726      text-align: center;
9727      gap: 8px;
9728    }
9729    .snb-hero-native__content-inner .snb-hero-native__preheader,
9730    .snb-hero-native__content-inner .hero__subtitle {
9731      margin-bottom: 0 !important;
9732    }
9733    .snb-hero-native__content-inner .hero__title,
9734    .snb-hero-native__content-inner h1,
9735    .snb-hero-native__content-inner h2 {
9736      margin-top: 0 !important;
9737      margin-bottom: 0 !important;
9738    }
9739    .snb-hero-native__content-inner .snb-hero-native__description,
9740    .snb-hero-native__content-inner p {
9741      margin-top: 0 !important;
9742      margin-bottom: 0 !important;
9743    }
9744    .snb-hero-native__content-inner .snb-hero-native__cta,
9745    .snb-hero-native__content-inner .btn {
9746      margin-top: 16px !important;
9747      margin-bottom: 0 !important;
9748    }
9749    .snb-hero-native__content-inner,
9750    .snb-hero-native__content-inner * {
9751      text-align: center !important;
9752    }
9753    .snb-hero-native__content-inner .snb-hero-native__preheader,
9754    .snb-hero-native__content-inner .hero__subtitle,
9755    .snb-hero-native__content-inner .eyebrow,
9756    .snb-hero-native__content-inner .hero__eyebrow,
9757    .snb-hero-native__content-inner .subheading {
9758      text-align: center !important;
9759      margin-left: auto !important;
9760      margin-right: auto !important;
9761    }
9762    .snb-hero-native__content-inner .btn,
9763    .snb-hero-native__content-inner a.btn,
9764    .snb-hero-native__content-inner .snb-hero-native__cta,
9765    .snb-hero-native__content .btn,
9766    .snb-hero-native__content .snb-hero-native__cta {
9767      display: inline-flex !important;
9768      justify-content: center !important;
9769      text-align: center !important;
9770      margin-left: auto !important;
9771      margin-right: auto !important;
9772    }
9773    .snb-hero-native .hero__title,
9774    .snb-hero-native h1,
9775    .snb-hero-native h2,
9776    .snb-hero-native__content-inner .hero__title,
9777    .snb-hero-native__content-inner h1,
9778    .snb-hero-native__content-inner h2 {
9779      text-align: center !important;
9780      align-self: center;
9781      margin-left: auto !important;
9782      margin-right: auto !important;
9783    }
9784    .snb-hero-native__content p,
9785    .snb-hero-native__content .snb-hero-native__description {
9786      text-align: center !important;
9787    }
9788    .snb-hero-native__content .btn,
9789    .snb-hero-native__content .snb-hero-native__cta {
9790      padding: 12px 24px;
9791      width: auto;
9792      max-width: calc(100vw - 40px);
9793      min-width: 0;
9794      display: inline-flex;
9795      justify-content: center;
9796      white-space: normal;
9797      word-break: break-word;
9798      box-sizing: border-box;
9799      letter-spacing: 3px !important;
9800      margin-bottom: 30px !important;
9801    }
9802  }
9803  .snb-hero-native__preheader {
9804    font-family: "Montserrat", sans-serif;
9805    text-transform: uppercase;
9806    color: #333333;
9807    letter-spacing: 0.08em;
9808    box-sizing: border-box;
9809    display: flex;
9810    flex-direction: column;
9811    flex-shrink: 0;
9812    position: relative;
9813    text-align: left;
9814    width: auto;
9815    height: auto;
9816    margin: 0 auto 6px 0;
9817  }
9818  @media (min-width: 641px) {
9819    .snb-hero-native__preheader {
9820      color: rgba(255, 255, 255, 1);
9821      font-size: 14px;
9822      letter-spacing: 5px;
9823      line-height: 18px;
9824      font-weight: 500;
9825      margin-bottom: 6px;
9826    }
9827  }
9828  .snb-hero-native .hero__title {
9829    font-family: var(--typeHeaderPrimary), var(--typeHeaderFallback), "Orpheus Pro", Georgia, serif;
9830    color: #333333;
9831    max-width: 100%;
9832    white-space: normal;
9833    line-break: normal;
9834    box-sizing: border-box;
9835    display: flex;
9836    flex-direction: column;
9837    flex-shrink: 0;
9838    position: relative;
9839    text-align: left;
9840    width: auto;
9841    height: auto;
9842    margin: 0 auto 1rem 0;
9843  }
9844  @media (min-width: 641px) {
9845    .snb-hero-native .hero__title {
9846      color: rgba(255, 255, 255, 1);
9847      font-size: 68px;
9848      letter-spacing: 0;
9849      line-height: 70px;
9850      font-weight: 200;
9851      margin-bottom: 12px;
9852      white-space: nowrap;
9853    }
9854  }
9855  @media (max-width: 640px) {
9856    .snb-hero-native .hero__title,
9857    .snb-hero-native h1,
9858    .snb-hero-native h2 {
9859      align-self: stretch;
9860      color: var(--new-brand-grobal-brand-colors-white-ffffff, #fff);
9861      font-style: normal;
9862    }
9863  }
9864  .snb-hero-native__description {
9865    font-family: var(--typeBasePrimary), var(--typeBaseFallback), "Montserrat", sans-serif;
9866    color: #333333;
9867    margin-bottom: 1.5rem;
9868    text-align: left;
9869    width: auto;
9870    height: auto;
9871    box-sizing: border-box;
9872  }
9873  @media (min-width: 641px) {
9874    .snb-hero-native__description {
9875      color: rgba(255, 255, 255, 1);
9876      font-size: 16px;
9877      letter-spacing: 0.5px;
9878      line-height: 24px;
9879      font-weight: 400;
9880      max-width: 509px;
9881      margin-bottom: 0;
9882    }
9883  }
9884  .snb-hero-native__description p {
9885    margin: 0 0 0.5em;
9886  }
9887  .snb-hero-native__cta {
9888    position: relative;
9889    display: inline-flex;
9890    align-items: center;
9891    justify-content: center;
9892    overflow: hidden;
9893    width: auto;
9894    min-width: 240px;
9895    padding: 12px 40px;
9896    box-sizing: border-box;
9897    border-radius: 12px;
9898    border: 1.5px solid var(--snb-cta-border, #fff);
9899    text-decoration: none;
9900    cursor: pointer;
9901    white-space: nowrap;
9902    appearance: none;
9903    text-align: center;
9904    flex-shrink: 0;
9905    margin: 0 auto 0 0;
9906    font-family: "Montserrat", sans-serif;
9907    font-size: 16px;
9908    letter-spacing: 4px;
9909    line-height: 22px;
9910    font-weight: 500;
9911    background-color: var(--snb-cta-bg, #fff) !important;
9912    color: #611f13 !important;
9913    transition: color 0.2s ease;
9914  }
9915  .snb-hero-native__cta:hover {
9916    color: #fff !important;
9917  }
9918  .snb-hero-native__cta::before {
9919    content: "";
9920    position: absolute;
9921    inset: 0;
9922    background-color: var(--snb-cta-fill, #611f13);
9923    transform: scaleX(0);
9924    transform-origin: left;
9925    transition: transform 0.2s ease;
9926    z-index: 0;
9927    border-radius: inherit;
9928  }
9929  .snb-hero-native__cta:hover::before {
9930    transform: scaleX(1);
9931  }
9932  .snb-hero-native__cta span {
9933    position: relative;
9934    z-index: 1;
9935  }
9936  @media (min-width: 641px) {
9937    .snb-hero-native__cta {
9938      margin-top: 25px;
9939    }
9940  }
9941  @media (max-width: 640px) {
9942    .snb-hero-native__cta {
9943      margin-top: 0;
9944    }
9945  }
9946  .snb-hero-native__placeholder {
9947    position: absolute;
9948    inset: 0;
9949    width: 100%;
9950    height: 100%;
9951    min-height: 280px;
9952    display: flex;
9953    align-items: center;
9954    justify-content: center;
9955    background: linear-gradient(135deg, #2c3e50 0%, #4a6fa5 100%);
9956    color: rgba(255, 255, 255, 0.6);
9957  }
9958  .snb-hero-native .flickity-prev-next-button {
9959    top: auto !important;
9960    bottom: 20px !important;
9961    width: 44px;
9962    height: 44px;
9963    transform: none !important;
9964    background-color: #fff;
9965    color: #414141;
9966    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
9967    border: none;
9968    transition: box-shadow 0.2s ease;
9969  }
9970  .snb-hero-native .flickity-prev-next-button:hover {
9971    transform: none !important;
9972    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
9973  }
9974  .snb-hero-native .flickity-prev-next-button:active {
9975    transform: none !important;
9976  }
9977  .snb-hero-native .flickity-previous {
9978    left: 20px;
9979    right: auto;
9980  }
9981  .snb-hero-native .flickity-next {
9982    right: 20px;
9983    left: auto;
9984  }
9985  /* Mobile: move arrows above content area to avoid CTA overlap */
9986  @media (max-width: 640px) {
9987    .snb-hero-native .flickity-prev-next-button {
9988      top: 50% !important;
9989      bottom: auto !important;
9990      transform: translateY(-50%) !important;
9991      width: 36px;
9992      height: 36px;
9993      background-color: rgba(255, 255, 255, 0.85);
9994      z-index: 3;
9995    }
9996    .snb-hero-native .flickity-prev-next-button:hover {
9997      transform: translateY(-50%) !important;
9998    }
9999    .snb-hero-native .flickity-previous {
10000      left: 8px;
10001    }
10002    .snb-hero-native .flickity-next {
10003      right: 8px;
10004    }
10005  }
10006  .snb-hero-native .flickity-button-icon {
10007    fill: #414141;
10008  }
10009  .snb-hero-native .flickity-page-dots {
10010    bottom: 20px;
10011    left: 50%;
10012    width: auto;
10013    transform: translateX(-50%);
10014    display: flex;
10015    align-items: center;
10016    justify-content: center;
10017    gap: 6px;
10018    padding: 6px 14px;
10019    background-color: #fff;
10020    border-radius: 999px;
10021    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
10022  }
10023  .snb-hero-native .flickity-page-dots .dot {
10024    width: 6px;
10025    height: 6px;
10026    margin: 0;
10027    border-radius: 50%;
10028    background-color: #C4C4C4;
10029    opacity: 1;
10030    vertical-align: middle;
10031  }
10032  .snb-hero-native .flickity-page-dots .dot:hover {
10033    opacity: 1;
10034    background-color: #a0a0a0;
10035  }
10036  .snb-hero-native .flickity-page-dots .dot.is-selected {
10037    width: 24px;
10038    height: 6px;
10039    border-radius: 3px;
10040    background-color: #2E513F;
10041  }
10042  .snb-hero-native__slide--clickable:focus-visible {
10043    outline: 2px solid #fff;
10044    outline-offset: -4px;
10045  }
10046  .snb-hero-native__cta:focus-visible {
10047    outline: 2px solid currentColor;
10048    outline-offset: 3px;
10049  }
10050  .snb-hero-native__pause-btn {
10051    position: absolute;
10052    bottom: 20px;
10053    right: 80px;
10054    z-index: 10;
10055    display: inline-flex;
10056    align-items: center;
10057    justify-content: center;
10058    width: 44px;
10059    height: 44px;
10060    background-color: #fff;
10061    color: #414141;
10062    border: none;
10063    border-radius: 50%;
10064    cursor: pointer;
10065    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
10066    padding: 0;
10067  }
10068  .snb-hero-native__pause-btn:focus-visible {
10069    outline: 2px solid #414141;
10070    outline-offset: 3px;
10071  }</style>
10072
10073  
10074  
10075  
10076  
10077  
10078
10079
10080
10081<section
10082  class="hero hero--large hero--centered snb-hero-native"
10083  data-section-id="template--17749318303830__snb_hero_native_m3PCWY"
10084  data-section-type="snb-hero-native"
10085  
10086  ><h1 class="visually-hidden">Discover JapanThrough Snacks</h1><div
10087    id="Slideshow-template--17749318303830__snb_hero_native_m3PCWY"
10088    class="snb-hero-native__slider loaded"
10089    role="region"
10090    aria-roledescription="carousel"
10091    aria-label="Hero slideshow"
10092    data-autoplay="false"
10093    data-speed="5000"
10094    data-arrows="true"
10095    data-dots="true">
10096    
10097
10098<div
10099        class="snb-hero-native__slide snb-hero-native__slide--slide_yUTnyh"
10100        role="group"
10101        aria-roledescription="slide"
10102        aria-labelledby="snb-hero-slide-label-template--17749318303830__snb_hero_native_m3PCWY-slide_yUTnyh"
10103        
10104        >
10105        <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>
10106        <div class="snb-hero-native__bg" aria-hidden="true" inert>
10107          
10108          
10109          
10110          
10111          
10112
10113          
10114
10115          
10116
10117          
10118            
10119            
10120            
10121              <img
10122                class="snb-hero-native__img snb-hero-native__img--desktop"
10123                src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_c6d233a7e05b49dbbb437504a8260346_a74a1b61-8103-4122-aa70-f662edd1a60b.jpg?v=1771973433&width=2000"
10124                srcset="
10125                  //bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_c6d233a7e05b49dbbb437504a8260346_a74a1b61-8103-4122-aa70-f662edd1a60b.jpg?v=1771973433&width=800 800w,
10126                  //bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_c6d233a7e05b49dbbb437504a8260346_a74a1b61-8103-4122-aa70-f662edd1a60b.jpg?v=1771973433&width=1200 1200w,
10127                  //bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_c6d233a7e05b49dbbb437504a8260346_a74a1b61-8103-4122-aa70-f662edd1a60b.jpg?v=1771973433&width=2000 2000w
10128                "
10129                sizes="100vw"
10130                alt="Discover JapanThrough Snacks"
10131                width="2000"
10132                height="800"
10133                loading="eager"
10134                  fetchpriority="high"
10135
10136              >
10137              
10138              <img
10139                class="snb-hero-native__img snb-hero-native__img--mobile"
10140                src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_27496cd0ce7a49f1a3a8742df6381083.webp?v=1772015507&width=800"
10141                srcset="
10142                  //bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_27496cd0ce7a49f1a3a8742df6381083.webp?v=1772015507&width=480 480w,
10143                  //bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_27496cd0ce7a49f1a3a8742df6381083.webp?v=1772015507&width=800 800w,
10144                  //bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_27496cd0ce7a49f1a3a8742df6381083.webp?v=1772015507&width=1200 1200w
10145                "
10146                sizes="100vw"
10147                alt="Discover JapanThrough Snacks"
10148                width="623"
10149                height="934"
10150                loading="eager"
10151                                  fetchpriority="high"
10152
10153              >
10154            
10155          
10156        </div><div class="snb-hero-native__content">
10157          <div class="snb-hero-native__content-inner">
10158            
10159            
10160              
10161              <h2 class="hero__title">Discover Japan<br/>Through Snacks<br></h2>
10162            
10163            
10164              <div class="snb-hero-native__description"><p>Authentic Japanese snacks delivered to you monthly from Japan.</p></div>
10165            
10166            
10167              <a href="#snack-box-subscription" class="snb-hero-native__cta btn" aria-label="Subscribe now — view subscription plans"><span>SUBSCRIBE NOW</span></a>
10168            
10169          </div>
10170        </div>
10171      </div>
10172    
10173  </div>
10174  <div class="visually-hidden" id="snb-hero-status-template--17749318303830__snb_hero_native_m3PCWY" aria-live="polite" aria-atomic="true"></div>
10175</section>
10176<script>
10177(function() {
10178  var sectionId = 'template--17749318303830__snb_hero_native_m3PCWY';
10179  var section = document.querySelector('[data-section-id="' + sectionId + '"][data-section-type="snb-hero-native"]');
10180  if (!section) return;
10181  var slideshow = document.getElementById('Slideshow-' + sectionId);
10182  if (!slideshow) return;
10183
10184  window._snbHeroNativeFlickity = window._snbHeroNativeFlickity || {};
10185
10186  function initSlider() {
10187    if (window._snbHeroNativeFlickity[sectionId]) return;
10188    var slides = slideshow.querySelectorAll('.snb-hero-native__slide');
10189    slideshow.classList.add('loaded');
10190    if (slides.length > 1 && typeof theme !== 'undefined' && theme.Slideshow) {
10191      var sliderArgs = {
10192        cellSelector: '.snb-hero-native__slide',
10193        prevNextButtons: true,
10194        pageDots: true,
10195        fade: false,
10196        setGallerySize: false,
10197        initialIndex: 0,
10198        wrapAround: true,
10199        autoPlay: (slideshow.dataset.autoplay === 'true' && !window.matchMedia('(prefers-reduced-motion: reduce)').matches) ? (parseInt(slideshow.dataset.speed, 10) || 5000) : false
10200      };
10201      window._snbHeroNativeFlickity[sectionId] = new theme.Slideshow(slideshow, sliderArgs);
10202    } else if (slides.length === 1) {
10203      slides[0].classList.add('is-selected');
10204    }
10205  }
10206
10207  function initPauseButton() {
10208    if (slideshow.dataset.autoplay !== 'true') return;
10209    var existing = section.querySelector('.snb-hero-native__pause-btn');
10210    if (existing) return;
10211    var pauseBtn = document.createElement('button');
10212    pauseBtn.type = 'button';
10213    pauseBtn.className = 'snb-hero-native__pause-btn';
10214    pauseBtn.setAttribute('aria-label', 'Pause slideshow');
10215    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>';
10216    // Insert as the first child of the slideshow so VoiceOver users
10217    // encounter it immediately when entering the carousel region,
10218    // before any slide content starts rotating under them.
10219    slideshow.insertBefore(pauseBtn, slideshow.firstChild);
10220    var isPaused = false;
10221    pauseBtn.addEventListener('click', function(e) {
10222      e.stopPropagation();
10223      var flk = window._snbHeroNativeFlickity[sectionId];
10224      if (flk) {
10225        if (isPaused) {
10226          if (typeof flk.play === 'function') flk.play();
10227          pauseBtn.setAttribute('aria-label', 'Pause slideshow');
10228          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>';
10229        } else {
10230          if (typeof flk.pause === 'function') flk.pause();
10231          pauseBtn.setAttribute('aria-label', 'Play slideshow');
10232          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>';
10233        }
10234        isPaused = !isPaused;
10235      }
10236    });
10237  }
10238
10239  // a11y: keep off-screen carousel slides out of the keyboard tab order
10240  // WITHOUT using inert (which would kick screen-reader virtual focus when
10241  // the slide rotates). Instead, set tabindex="-1" on focusable descendants
10242  // of inactive slides; restore on selection. Also pause autoplay while the
10243  // slideshow has focus so the user can read without rotation interruptions.
10244  var FOCUSABLE_SEL = 'a[href], button, input, select, textarea, iframe, [tabindex]';
10245
10246  function enforceSlideInert() {
10247    var slides = slideshow.querySelectorAll('.snb-hero-native__slide');
10248
10249    function setSlideTabbable(slide, tabbable) {
10250      var focusables = slide.querySelectorAll(FOCUSABLE_SEL);
10251      for (var i = 0; i < focusables.length; i++) {
10252        var el = focusables[i];
10253        if (tabbable) {
10254          var orig = el.getAttribute('data-a11y-orig-tabindex');
10255          if (orig !== null && orig !== undefined) {
10256            if (orig === '__none__') el.removeAttribute('tabindex');
10257            else el.setAttribute('tabindex', orig);
10258            el.removeAttribute('data-a11y-orig-tabindex');
10259          } else {
10260            el.removeAttribute('tabindex');
10261          }
10262        } else {
10263          if (el.getAttribute('data-a11y-orig-tabindex') === null) {
10264            var existing = el.getAttribute('tabindex');
10265            el.setAttribute('data-a11y-orig-tabindex', existing === null ? '__none__' : existing);
10266          }
10267          el.setAttribute('tabindex', '-1');
10268        }
10269      }
10270    }
10271
10272    function applyState() {
10273      // If no slide has is-selected yet (Flickity hasn't init'd), treat first as active.
10274      var hasSelected = false;
10275      for (var k = 0; k < slides.length; k++) {
10276        if (slides[k].classList.contains('is-selected')) { hasSelected = true; break; }
10277      }
10278
10279      for (var i = 0; i < slides.length; i++) {
10280        var slide = slides[i];
10281        var isActive = slide.classList.contains('is-selected') || (!hasSelected && i === 0);
10282        setSlideTabbable(slide, isActive);
10283        if (isActive) {
10284          slide.removeAttribute('aria-hidden');
10285        } else if (!slide.contains(document.activeElement)) {
10286          slide.setAttribute('aria-hidden', 'true');
10287        }
10288      }
10289    }
10290
10291    applyState();
10292
10293    if (typeof MutationObserver === 'function' && !slideshow.dataset.a11ySlideObserved) {
10294      slideshow.dataset.a11ySlideObserved = '1';
10295      var observer = new MutationObserver(function (mutations) {
10296        for (var i = 0; i < mutations.length; i++) {
10297          if (mutations[i].attributeName === 'class') {
10298            applyState();
10299            break;
10300          }
10301        }
10302      });
10303      for (var j = 0; j < slides.length; j++) {
10304        observer.observe(slides[j], { attributes: true, attributeFilter: ['class'] });
10305      }
10306    }
10307
10308    // Pause autoplay while the slideshow has keyboard or screen-reader focus.
10309    if (!slideshow.dataset.a11yFocusPause) {
10310      slideshow.dataset.a11yFocusPause = '1';
10311      var pausedByFocus = false;
10312      slideshow.addEventListener('focusin', function () {
10313        var flk = window._snbHeroNativeFlickity[sectionId];
10314        if (flk && typeof flk.pause === 'function') {
10315          flk.pause();
10316          pausedByFocus = true;
10317        }
10318      });
10319      slideshow.addEventListener('focusout', function (e) {
10320        // Only resume if focus actually leaves the slideshow.
10321        if (slideshow.contains(e.relatedTarget)) return;
10322        if (!pausedByFocus) return;
10323        pausedByFocus = false;
10324        var flk = window._snbHeroNativeFlickity[sectionId];
10325        if (flk && flk.args && flk.args.autoPlay && typeof flk.play === 'function') {
10326          flk.play();
10327        }
10328      });
10329    }
10330  }
10331
10332  // a11y: ensure Flickity-injected prev/next buttons AND page dots have
10333  // explicit aria-labels and survive third-party DOM rewrites
10334  // (e.g., UserWay overlay relabels them as "Current step").
10335  function enforcePrevNextLabels() {
10336    function applyLabels() {
10337      var prev = slideshow.querySelector('.flickity-button.flickity-previous, .flickity-prev-next-button.flickity-previous, .flickity-prev-next-button.previous');
10338      var next = slideshow.querySelector('.flickity-button.flickity-next, .flickity-prev-next-button.flickity-next, .flickity-prev-next-button.next');
10339      // Build contextual labels using the slide titles from the hidden label spans.
10340      var slides = slideshow.querySelectorAll('.snb-hero-native__slide');
10341      var currentIndex = 0;
10342      for (var si = 0; si < slides.length; si++) {
10343        if (slides[si].classList.contains('is-selected')) { currentIndex = si; break; }
10344      }
10345      var totalSlides = slides.length;
10346      function getSlideTitle(index) {
10347        if (!slides[index]) return '';
10348        var span = slides[index].querySelector('[id^="snb-hero-slide-label-"]');
10349        if (span) return span.textContent.replace(/^Slide \d+ of \d+:\s*/, '').trim();
10350        return 'slide ' + (index + 1);
10351      }
10352      var prevIndex = (currentIndex - 1 + totalSlides) % totalSlides;
10353      var nextIndex = (currentIndex + 1) % totalSlides;
10354      var prevLabel = 'Previous: ' + getSlideTitle(prevIndex);
10355      var nextLabel = 'Next: ' + getSlideTitle(nextIndex);
10356      if (prev && prev.getAttribute('aria-label') !== prevLabel) {
10357        prev.setAttribute('aria-label', prevLabel);
10358      }
10359      if (next && next.getAttribute('aria-label') !== nextLabel) {
10360        next.setAttribute('aria-label', nextLabel);
10361      }
10362      // Page dots — remove from keyboard tab order and screen reader navigation.
10363      // Users navigate slides via prev/next buttons; dots remain mouse/touch clickable.
10364      // Also normalizes aria-current="step" → "true" in case any AT still reaches them.
10365      var dotsContainer = slideshow.querySelector('.flickity-page-dots');
10366      if (dotsContainer && dotsContainer.getAttribute('aria-hidden') !== 'true') {
10367        dotsContainer.setAttribute('aria-hidden', 'true');
10368      }
10369      var dots = slideshow.querySelectorAll('.flickity-page-dots .dot');
10370      for (var i = 0; i < dots.length; i++) {
10371        if (dots[i].getAttribute('tabindex') !== '-1') {
10372          dots[i].setAttribute('tabindex', '-1');
10373        }
10374        if (dots[i].getAttribute('aria-current') === 'step') {
10375          dots[i].setAttribute('aria-current', 'true');
10376        }
10377      }
10378    }
10379    // Initial label pass only — the standalone script at the bottom of
10380    // this section handles ongoing observation. Do NOT add a MutationObserver
10381    // here — two observers on the same subtree setting the same attributes
10382    // causes an infinite loop that freezes the page.
10383    applyLabels();
10384    setTimeout(applyLabels, 200);
10385    setTimeout(applyLabels, 500);
10386  }
10387
10388  function destroySlider() {
10389    var flk = window._snbHeroNativeFlickity[sectionId];
10390    if (flk && typeof flk.destroy === 'function') {
10391      flk.destroy();
10392      delete window._snbHeroNativeFlickity[sectionId];
10393    }
10394  }
10395
10396  function onBlockSelect(evt) {
10397    if (evt.detail.sectionId !== sectionId) return;
10398    var slide = slideshow.querySelector('.snb-hero-native__slide--' + evt.detail.blockId);
10399    if (!slide) return;
10400    var slides = slideshow.querySelectorAll('.snb-hero-native__slide');
10401    var index = [].indexOf.call(slides, slide);
10402    var flk = window._snbHeroNativeFlickity[sectionId];
10403    if (flk && typeof flk.goToSlide === 'function') {
10404      flk.goToSlide(index);
10405      if (typeof flk.pause === 'function') flk.pause();
10406    }
10407  }
10408
10409  function onBlockDeselect(evt) {
10410    if (evt.detail.sectionId !== sectionId) return;
10411    var flk = window._snbHeroNativeFlickity[sectionId];
10412    if (flk && flk.args && flk.args.autoPlay && typeof flk.play === 'function') flk.play();
10413  }
10414
10415  function onSectionUnload(evt) {
10416    if (evt.detail.sectionId === sectionId) destroySlider();
10417  }
10418
10419  function getScrollOffset() {
10420    var scrollOffset = 0;
10421    if (typeof theme !== 'undefined' && theme.config && theme.config.stickyHeader) {
10422      var header = document.querySelector('#SiteHeader');
10423      if (header) {
10424        scrollOffset = header.offsetHeight;
10425      }
10426    }
10427    return scrollOffset;
10428  }
10429
10430  function smoothScrollTo(targetElement) {
10431    var scrollOffset = getScrollOffset();
10432    var targetPosition = targetElement.getBoundingClientRect().top + window.pageYOffset - scrollOffset;
10433    window.scrollTo({
10434      top: Math.max(0, targetPosition),
10435      behavior: 'smooth'
10436    });
10437  }
10438
10439  function initSmoothScroll() {
10440    var ctaButtons = section.querySelectorAll('.snb-hero-native__cta');
10441    ctaButtons.forEach(function(button) {
10442      var href = button.getAttribute('href');
10443      if (href && href.startsWith('#')) {
10444        button.addEventListener('click', function(e) {
10445          var targetId = href.substring(1);
10446          var targetElement = document.getElementById(targetId);
10447
10448          if (targetElement) {
10449            e.preventDefault();
10450            smoothScrollTo(targetElement);
10451          }
10452        });
10453      }
10454    });
10455  }
10456
10457  var slideLinksInitialized = false;
10458  var slideClickData = {};
10459  
10460  function handleSlideLink(slideLink, linkType) {
10461    // If it's an anchor link (#something), always scroll
10462    if (slideLink.startsWith('#')) {
10463      var targetId = slideLink.substring(1);
10464      var targetElement = document.getElementById(targetId);
10465
10466      if (targetElement) {
10467        smoothScrollTo(targetElement);
10468      }
10469    } else if (linkType === 'scroll') {
10470      var targetElement = document.getElementById(slideLink);
10471
10472      if (targetElement) {
10473        smoothScrollTo(targetElement);
10474      } else {
10475        window.location.href = slideLink;
10476      }
10477    } else {
10478      window.location.href = slideLink;
10479    }
10480  }
10481  
10482  function initSlideLinks() {
10483    if (slideLinksInitialized) return;
10484    if (!section || !slideshow) return;
10485
10486    var slides = section.querySelectorAll('.snb-hero-native__slide--clickable');
10487    if (slides.length === 0) return;
10488
10489    slideLinksInitialized = true;
10490
10491    // Keyboard support for clickable slides
10492    slides.forEach(function(slide) {
10493      slide.addEventListener('keydown', function(e) {
10494        if (e.key === 'Enter' || e.key === ' ') {
10495          e.preventDefault();
10496          var link = slide.getAttribute('data-slide-link');
10497          var type = slide.getAttribute('data-slide-link-type') || 'redirect';
10498          if (link) handleSlideLink(link, type);
10499        }
10500      });
10501    });
10502    
10503    // Track mouse/touch events to distinguish clicks from drags
10504    var mouseDownData = {};
10505    
10506    slideshow.addEventListener('mousedown', function(e) {
10507      var slide = e.target.closest('.snb-hero-native__slide--clickable');
10508      if (slide) {
10509        mouseDownData[slide] = {
10510          x: e.clientX,
10511          y: e.clientY,
10512          time: Date.now()
10513        };
10514      }
10515    }, true); // Use capture phase
10516    
10517    slideshow.addEventListener('touchstart', function(e) {
10518      var slide = e.target.closest('.snb-hero-native__slide--clickable');
10519      if (slide && e.touches.length > 0) {
10520        mouseDownData[slide] = {
10521          x: e.touches[0].clientX,
10522          y: e.touches[0].clientY,
10523          time: Date.now()
10524        };
10525      }
10526    }, true);
10527    
10528    // Handle touch events for mobile
10529    slideshow.addEventListener('touchend', function(e) {
10530      var slide = e.target.closest('.snb-hero-native__slide--clickable');
10531      if (!slide) return;
10532      
10533      var slideLink = slide.getAttribute('data-slide-link');
10534      var linkType = slide.getAttribute('data-slide-link-type') || 'redirect';
10535      
10536      if (!slideLink) return;
10537      
10538      // Check if this was a drag (not a tap)
10539      var clickInfo = mouseDownData[slide];
10540      if (clickInfo && e.changedTouches.length > 0) {
10541        var moveDistance = Math.sqrt(
10542          Math.pow(e.changedTouches[0].clientX - clickInfo.x, 2) + 
10543          Math.pow(e.changedTouches[0].clientY - clickInfo.y, 2)
10544        );
10545        var timeDiff = Date.now() - clickInfo.time;
10546        
10547        // If moved more than 10px or took more than 500ms, it's a drag
10548        if (moveDistance > 10 || timeDiff > 500) {
10549          delete mouseDownData[slide];
10550          return;
10551        }
10552        delete mouseDownData[slide];
10553      }
10554      
10555      // Only skip Flickity controls
10556      var clickedElement = e.target;
10557      if (clickedElement.closest('.flickity-button') || clickedElement.closest('.flickity-page-dots')) {
10558        return;
10559      }
10560      
10561      // Handle the slide link - work anywhere on slide
10562      e.preventDefault();
10563      e.stopPropagation();
10564      
10565      handleSlideLink(slideLink, linkType);
10566    }, true);
10567    
10568    // Handle desktop mouse clicks - use capture phase to catch before Flickity
10569    slideshow.addEventListener('click', function(e) {
10570      // Find the closest clickable slide
10571      var slide = e.target.closest('.snb-hero-native__slide--clickable');
10572      if (!slide) return;
10573      
10574      var slideLink = slide.getAttribute('data-slide-link');
10575      var linkType = slide.getAttribute('data-slide-link-type') || 'redirect';
10576      
10577      if (!slideLink) return;
10578      
10579      // Check if this was a drag (not a click)
10580      var clickInfo = mouseDownData[slide];
10581      if (clickInfo) {
10582        var moveDistance = Math.sqrt(
10583          Math.pow(e.clientX - clickInfo.x, 2) + 
10584          Math.pow(e.clientY - clickInfo.y, 2)
10585        );
10586        var timeDiff = Date.now() - clickInfo.time;
10587        
10588        // If moved more than 10px or took more than 500ms, it's a drag
10589        if (moveDistance > 10 || timeDiff > 500) {
10590          delete mouseDownData[slide];
10591          return;
10592        }
10593        delete mouseDownData[slide];
10594      }
10595      
10596      // Only skip Flickity controls
10597      var clickedElement = e.target;
10598      if (clickedElement.closest('.flickity-button') || clickedElement.closest('.flickity-page-dots')) {
10599        return;
10600      }
10601      
10602      // Handle the slide link - work anywhere on slide
10603      e.preventDefault();
10604      e.stopPropagation();
10605      
10606      handleSlideLink(slideLink, linkType);
10607    }, true); // Use capture phase to intercept before Flickity
10608    
10609    // Also attach directly to each slide as a fallback for desktop
10610    // Use mouseup instead of click to avoid Flickity interference
10611    slides.forEach(function(slide) {
10612      var slideLink = slide.getAttribute('data-slide-link');
10613      var linkType = slide.getAttribute('data-slide-link-type') || 'redirect';
10614      
10615      if (!slideLink) return;
10616      
10617      var slideMouseDown = null;
10618      var isDragging = false;
10619      
10620      slide.addEventListener('mousedown', function(e) {
10621        // Only skip Flickity controls
10622        if (e.target.closest('.flickity-button') || e.target.closest('.flickity-page-dots')) {
10623          return;
10624        }
10625        slideMouseDown = {
10626          x: e.clientX,
10627          y: e.clientY,
10628          time: Date.now()
10629        };
10630        isDragging = false;
10631      });
10632      
10633      slide.addEventListener('mousemove', function(e) {
10634        if (slideMouseDown) {
10635          var moveDistance = Math.sqrt(
10636            Math.pow(e.clientX - slideMouseDown.x, 2) + 
10637            Math.pow(e.clientY - slideMouseDown.y, 2)
10638          );
10639          if (moveDistance > 5) {
10640            isDragging = true;
10641          }
10642        }
10643      });
10644      
10645      slide.addEventListener('mouseup', function(e) {
10646        // Only skip Flickity controls
10647        if (e.target.closest('.flickity-button') || e.target.closest('.flickity-page-dots')) {
10648          slideMouseDown = null;
10649          isDragging = false;
10650          return;
10651        }
10652        
10653        if (!slideMouseDown || isDragging) {
10654          slideMouseDown = null;
10655          isDragging = false;
10656          return;
10657        }
10658        
10659        // Check if this was a drag
10660        var moveDistance = Math.sqrt(
10661          Math.pow(e.clientX - slideMouseDown.x, 2) + 
10662          Math.pow(e.clientY - slideMouseDown.y, 2)
10663        );
10664        var timeDiff = Date.now() - slideMouseDown.time;
10665        
10666        if (moveDistance > 10 || timeDiff > 500) {
10667          slideMouseDown = null;
10668          isDragging = false;
10669          return;
10670        }
10671        
10672        // Handle the slide link - work anywhere on slide
10673        e.preventDefault();
10674        e.stopPropagation();
10675        
10676        slideMouseDown = null;
10677        isDragging = false;
10678        
10679        handleSlideLink(slideLink, linkType);
10680      });
10681      
10682      // Also keep click handler as backup
10683      slide.addEventListener('click', function(e) {
10684        // Only skip Flickity controls
10685        if (e.target.closest('.flickity-button') || e.target.closest('.flickity-page-dots')) {
10686          return;
10687        }
10688        
10689        // Handle the slide link - work anywhere on slide
10690        e.preventDefault();
10691        e.stopPropagation();
10692        
10693        handleSlideLink(slideLink, linkType);
10694      });
10695    });
10696  }
10697
10698  if (document.readyState === 'loading') {
10699    document.addEventListener('DOMContentLoaded', function() {
10700      initSlider();
10701      initPauseButton();
10702      initSmoothScroll();
10703      initSlideLinks();
10704      enforcePrevNextLabels();
10705      enforceSlideInert();
10706    });
10707  } else {
10708    initSlider();
10709    initPauseButton();
10710    initSmoothScroll();
10711    initSlideLinks();
10712    enforcePrevNextLabels();
10713    enforceSlideInert();
10714  }
10715  document.addEventListener('shopify:section:load', function(evt) {
10716    if (evt.detail.sectionId === sectionId) {
10717      var container = document.querySelector('[data-section-id="' + sectionId + '"][data-section-type="snb-hero-native"]');
10718      if (container) {
10719        section = container;
10720        slideshow = document.getElementById('Slideshow-' + sectionId);
10721        slideLinksInitialized = false;
10722        if (slideshow) {
10723          initSlider();
10724          initPauseButton();
10725          initSmoothScroll();
10726          initSlideLinks();
10727          enforcePrevNextLabels();
10728          enforceSlideInert();
10729        }
10730      }
10731    }
10732  });
10733  document.addEventListener('shopify:block:select', onBlockSelect);
10734  document.addEventListener('shopify:block:deselect', onBlockDeselect);
10735  document.addEventListener('shopify:section:unload', onSectionUnload);
10736})();
10737</script>
10737
10738
10739
10740
10741<script>
10742// a11y: standalone hero prev/next + dots labeler.
10743// Runs independently of the main hero script because Flickity may be
10744// initialized by theme.js, not by initSlider().
10745(function () {
10746  var hero = document.querySelector('.snb-hero-native');
10747  if (!hero) return;
10748
10749  function applyHeroA11y() {
10750    var prev = hero.querySelector('.flickity-button.flickity-previous');
10751    var next = hero.querySelector('.flickity-button.flickity-next');
10752    if (!prev && !next) return false;
10753
10754    var slides = hero.querySelectorAll('.snb-hero-native__slide');
10755    var currentIndex = 0;
10756    for (var i = 0; i < slides.length; i++) {
10757      if (slides[i].classList.contains('is-selected')) { currentIndex = i; break; }
10758    }
10759    var total = slides.length;
10760
10761    function getTitle(index) {
10762      var slide = slides[index];
10763      if (!slide) return 'slide ' + (index + 1);
10764      var span = slide.querySelector('[id^="snb-hero-slide-label-"]');
10765      if (span) return span.textContent.replace(/^Slide \d+ of \d+:\s*/, '').trim();
10766      var h = slide.querySelector('h1, h2, .hero__title');
10767      if (h) return h.textContent.trim();
10768      return 'slide ' + (index + 1);
10769    }
10770
10771    var prevI = (currentIndex - 1 + total) % total;
10772    var nextI = (currentIndex + 1) % total;
10773    var prevLabel = 'Previous: ' + getTitle(prevI);
10774    var nextLabel = 'Next: ' + getTitle(nextI);
10775
10776    // Guard: only set if value differs — prevents MutationObserver infinite loop.
10777    if (prev && prev.getAttribute('aria-label') !== prevLabel) prev.setAttribute('aria-label', prevLabel);
10778    if (next && next.getAttribute('aria-label') !== nextLabel) next.setAttribute('aria-label', nextLabel);
10779
10780    // Hide dots from AT
10781    var dotsContainer = hero.querySelector('.flickity-page-dots');
10782    if (dotsContainer && dotsContainer.getAttribute('aria-hidden') !== 'true') dotsContainer.setAttribute('aria-hidden', 'true');
10783    hero.querySelectorAll('.flickity-page-dots .dot').forEach(function (d) {
10784      if (d.getAttribute('tabindex') !== '-1') d.setAttribute('tabindex', '-1');
10785      if (d.getAttribute('aria-current') === 'step') d.setAttribute('aria-current', 'true');
10786    });
10787
10788    return true;
10789  }
10790
10791  // Poll until buttons exist, then observe for slide changes.
10792  var attempts = 0;
10793  var poll = setInterval(function () {
10794    attempts++;
10795    if (applyHeroA11y() || attempts > 25) {
10796      clearInterval(poll);
10797      // Watch for slide changes (class-based) to update labels dynamically.
10798      // ONLY watch 'class' — NOT 'aria-label' or 'aria-current' — to prevent
10799      // infinite observer loops (setting an attribute re-triggers the observer).
10800      if (typeof MutationObserver === 'function') {
10801        new MutationObserver(function () {
10802          // Debounce to avoid rapid-fire during Flickity transitions.
10803          clearTimeout(hero._a11yDebounce);
10804          hero._a11yDebounce = setTimeout(applyHeroA11y, 50);
10805        }).observe(hero, {
10806          subtree: true,
10807          attributes: true,
10808          attributeFilter: ['class']
10809        });
10810      }
10811    }
10812  }, 200);
10813})();
10814</script>
10814
10815
10816</div><div id="shopify-section-template--17749318303830__snb_makers_rFLVy4" class="shopify-section">
10817<style data-shopify>#shopify-section-template--17749318303830__snb_makers_rFLVy4 {
10818		--snb-makers-bg: #f5f1ec;
10819		--snb-makers-text: #333333;
10820		--snb-makers-subtitle: #1b4b5a;
10821		--snb-makers-heading: #1b3a3a;
10822		--snb-makers-btn-bg: #b74b1a;
10823		--snb-makers-btn-text: #ffffff;
10824		--snb-makers-pt: 60px;
10825		--snb-makers-pb: 60px;
10826	}
10827
10828	.snb-makers {
10829		background-color: var(--snb-makers-bg);
10830		padding-top: var(--snb-makers-pt);
10831		padding-bottom: var(--snb-makers-pb);
10832		overflow: hidden;
10833	}
10834
10835	.snb-makers__grid {
10836		display: grid;
10837		grid-template-columns: 1fr;
10838		gap: 32px;
10839		align-items: center;
10840	}
10841
10842	.snb-makers__image-wrap {
10843		position: relative;
10844		width: 100%;
10845		overflow: hidden;
10846	}
10847
10848	.snb-makers__image-wrap img {
10849		display: block;
10850		width: 100%;
10851		height: auto;
10852		object-fit: cover;
10853		opacity: 0;
10854		transition: opacity 0.4s ease;
10855	}
10856
10857	.snb-makers__image-wrap img.is-loaded {
10858		opacity: 1;
10859	}
10860
10861	.snb-makers__content {
10862		text-align: center;
10863		padding: 0 20px;
10864	}
10865
10866	.snb-makers__subtitle {
10867		font-family: 'Montserrat', sans-serif;
10868		font-size: 14px;
10869		font-weight: 400;
10870		letter-spacing: 3px;
10871		text-transform: uppercase;
10872		color: var(--snb-makers-subtitle);
10873		margin: 0 0 12px;
10874	}
10875
10876	.snb-makers__heading {
10877		font-family: 'Orpheus Pro', serif;
10878		font-size: 32px;
10879		font-weight: 400;
10880		line-height: 1.2;
10881		color: var(--snb-makers-heading);
10882		margin: 0 0 16px;
10883	}
10884
10885	.snb-makers__description {
10886		font-family: 'Lato', sans-serif;
10887		font-size: 15px;
10888		font-weight: 400;
10889		line-height: 1.6;
10890		color: var(--snb-makers-text);
10891		margin: 0 0 24px;
10892		max-width: 480px;
10893		margin-left: auto;
10894		margin-right: auto;
10895	}
10896
10897	.snb-makers__btn {
10898		width: 100%;
10899		text-align: center;
10900		box-sizing: border-box;
10901	}
10902
10903	.snb-makers__btn:focus-visible {
10904		outline: 2px solid currentColor;
10905		outline-offset: 3px;
10906	}
10907
10908	.snb-makers__decorative {
10909		display: none;
10910	}
10911
10912	@media (min-width: 769px) {
10913		.snb-makers__grid {
10914			grid-template-columns: 1fr 1fr;
10915			gap: 60px;
10916			position: relative;
10917		}
10918
10919		
10920
10921		.snb-makers__content {
10922			text-align: left;
10923			padding: 40px 0;
10924			
10925				padding-right: 60px;
10926			
10927		}
10928
10929		.snb-makers__subtitle {
10930			font-size: 14px;
10931			letter-spacing: 4px;
10932			margin-bottom: 16px;
10933		}
10934
10935		.snb-makers__heading {
10936			font-size: 48px;
10937			margin-bottom: 20px;
10938		}
10939
10940		.snb-makers__description {
10941			font-size: 16px;
10942			margin-left: 0;
10943			margin-right: 0;
10944			margin-bottom: 32px;
10945			max-width: 520px;
10946		}
10947
10948		.snb-makers__btn {
10949			width: auto;
10950		}
10951
10952		.snb-makers__decorative {
10953			display: block;
10954			position: absolute;
10955			
10956				right: 20px;
10957			
10958			top: 50%;
10959			transform: translateY(-50%);
10960			width: auto;
10961			height: 280px;
10962			pointer-events: none;
10963		}
10964
10965		.snb-makers__decorative img {
10966			display: block;
10967			height: 100%;
10968			width: auto;
10969			object-fit: contain;
10970		}
10971	}
10972
10973	@media (min-width: 1200px) {
10974		.snb-makers__heading {
10975			font-size: 54px;
10976		}
10977
10978		.snb-makers__decorative {
10979			
10980				right: 40px;
10981			
10982			height: 320px;
10983		}
10984	}</style><section class="snb-makers" aria-labelledby="snb-makers-heading-template--17749318303830__snb_makers_rFLVy4">
10985	<div class="page-width">
10986		<div class="snb-makers__grid">
10987			<div class="snb-makers__image-wrap" aria-hidden="true"><img
10988						src="//bokksu.com/cdn/shop/files/our-makers.webp?v=1772818210&width=375"
10989						data-srcset="//bokksu.com/cdn/shop/files/our-makers.webp?v=1772818210&width=375 375w,
10990							//bokksu.com/cdn/shop/files/our-makers.webp?v=1772818210&width=550 550w,
10991							//bokksu.com/cdn/shop/files/our-makers.webp?v=1772818210&width=750 750w,
10992							//bokksu.com/cdn/shop/files/our-makers.webp?v=1772818210&width=1000 1000w,
10993							//bokksu.com/cdn/shop/files/our-makers.webp?v=1772818210&width=1200 1200w"
10994						data-src="//bokksu.com/cdn/shop/files/our-makers.webp?v=1772818210&width=750"
10995						sizes="(min-width: 769px) 50vw, 100vw"
10996						alt=""
10997						loading="lazy"
10998						width="1600"
10999						height="1067"
11000					></div>
11001
11002			<div class="snb-makers__content"><p class="snb-makers__subtitle" aria-hidden="true">WHAT MAKES US DIFFERENT</p>
11003					<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
11004							href="#snack-box-subscription"
11005							class="btn btn-custom btn-orange-bg snb-makers__btn"
11006							aria-label="Subscribe now — choose your plan"
11007						>
11008							SUBSCRIBE NOW
11009						</a></div><div class="snb-makers__decorative" aria-hidden="true">
11010					<img
11011						src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_532aa0c3cbe24c309cf3ccbcedf56119.webp?v=1772818349&width=200"
11012						alt=""
11013						loading="lazy"
11014						width="60"
11015						height="902"
11016					>
11017				</div></div>
11018	</div>
11019</section>
11020
11021<script>
11022(function() {
11023	var sectionId = 'template--17749318303830__snb_makers_rFLVy4';
11024	var sectionEl = document.getElementById('shopify-section-' + sectionId);
11025
11026	function loadImages() {
11027		if (!sectionEl) return;
11028		var imgs = sectionEl.querySelectorAll('img[data-src]');
11029		imgs.forEach(function(img) {
11030			img.onload = function() {
11031				img.classList.add('is-loaded');
11032			};
11033			if (img.dataset.srcset) {
11034				img.srcset = img.dataset.srcset;
11035				delete img.dataset.srcset;
11036			}
11037			img.src = img.dataset.src;
11038			delete img.dataset.src;
11039		});
11040	}
11041
11042	function lazyInit() {
11043		if (!sectionEl) {
11044			sectionEl = document.querySelector('.snb-makers');
11045		}
11046		if (!sectionEl) return;
11047
11048		if ('IntersectionObserver' in window) {
11049			var observer = new IntersectionObserver(function(entries) {
11050				entries.forEach(function(entry) {
11051					if (entry.isIntersecting) {
11052						observer.unobserve(entry.target);
11053						loadImages();
11054					}
11055				});
11056			}, { rootMargin: '200px 0px' });
11057			observer.observe(sectionEl);
11058		} else {
11059			loadImages();
11060		}
11061	}
11062
11063	if (document.readyState === 'loading') {
11064		document.addEventListener('DOMContentLoaded', lazyInit);
11065	} else {
11066		lazyInit();
11067	}
11068
11069	document.addEventListener('shopify:section:load', function(evt) {
11070		if (evt.detail.sectionId === sectionId) loadImages();
11071	});
11072})();
11073</script>
11073
11074
11075
11076</div><div id="shopify-section-template--17749318303830__snb_featured_by_native_JMt4K8" class="shopify-section">
11077<style data-shopify>#shopify-section-template--17749318303830__snb_featured_by_native_JMt4K8 {
11078		--snb-featured-bg: #5b1a1a;
11079		--snb-featured-heading: #ffffff;
11080		--snb-featured-pt: 32px;
11081		--snb-featured-pb: 28px;
11082	}
11083
11084	.snb-featured {
11085		background-color: var(--snb-featured-bg);
11086		padding-top: var(--snb-featured-pt);
11087		padding-bottom: var(--snb-featured-pb);
11088	}
11089
11090	.snb-featured__heading {
11091		font-family: 'Montserrat',sans-serif;
11092		font-size: 14px !important;
11093		font-weight: 400;
11094		letter-spacing: 4px;
11095		text-transform: uppercase;
11096		text-align: center;
11097		color: var(--snb-featured-heading);
11098		margin: 0 0 40px;
11099	}
11100
11101	.snb-featured__grid {
11102		display: flex;
11103		flex-wrap: nowrap;
11104		align-items: center;
11105		justify-content: flex-start;
11106		gap: 32px;
11107		max-width: 1500px;
11108		margin: 0 auto;
11109		overflow-x: auto;
11110		-webkit-overflow-scrolling: touch;
11111		scroll-snap-type: x proximity;
11112		scrollbar-width: none;
11113		-ms-overflow-style: none;
11114		padding-bottom: 4px;
11115	}
11116
11117	/* Center the row when it fits; scroll-from-start when it overflows.
11118	   `safe center` keeps the first items reachable instead of clipping them. */
11119	@media (min-width: 769px) {
11120		.snb-featured__grid {
11121			justify-content: safe center;
11122		}
11123	}
11124
11125	.snb-featured__grid:focus-visible {
11126		outline: 2px solid var(--snb-featured-heading);
11127		outline-offset: 4px;
11128	}
11129
11130	.snb-featured__grid::-webkit-scrollbar {
11131		display: none;
11132	}
11133
11134	.snb-featured__logo {
11135		display: flex;
11136		align-items: center;
11137		justify-content: center;
11138		flex: 0 0 auto;
11139		width: 140px;
11140		scroll-snap-align: center;
11141	}
11142
11143	.snb-featured__logo img {
11144		display: block;
11145		width: 100%;
11146		height: auto;
11147		object-fit: contain;
11148	}
11149
11150	.snb-featured__logo a {
11151		display: block;
11152		width: 100%;
11153	}
11154
11155	.snb-featured__logo a:focus-visible {
11156		outline: 2px solid currentColor;
11157		outline-offset: 3px;
11158	}
11159
11160	@media (min-width: 769px) {
11161		.snb-featured__heading {
11162			font-size: 14px;
11163			margin-bottom: 48px;
11164		}
11165
11166		.snb-featured__grid {
11167			gap: 48px;
11168		}
11169
11170		.snb-featured__logo {
11171			width: 170px;
11172		}
11173	}</style><section class="snb-featured" aria-labelledby="snb-featured-heading-template--17749318303830__snb_featured_by_native_JMt4K8">
11174	<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
11175									src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_cc41954196424ea7a0b755efa3ed1638.webp?v=1773073930&width=400"
11176									srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_cc41954196424ea7a0b755efa3ed1638.webp?v=1773073930&width=200 200w,
11177										//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_cc41954196424ea7a0b755efa3ed1638.webp?v=1773073930&width=400 400w"
11178									sizes="(min-width: 769px) 170px, 140px"
11179									alt="Bon Appétit"
11180									loading="lazy"
11181									width="1500"
11182									height="425"
11183								></div><div class="snb-featured__logo" ><img
11184									src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_53252330e59a4d3f8db09a7b287c4d6e.png?v=1773073930&width=400"
11185									srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_53252330e59a4d3f8db09a7b287c4d6e.png?v=1773073930&width=200 200w,
11186										//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_53252330e59a4d3f8db09a7b287c4d6e.png?v=1773073930&width=400 400w"
11187									sizes="(min-width: 769px) 170px, 140px"
11188									alt="Byrdie"
11189									loading="lazy"
11190									width="500"
11191									height="75"
11192								></div><div class="snb-featured__logo" ><img
11193									src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_dfd1685e1df94afbbfac8b86c0edf4b3.webp?v=1773073930&width=400"
11194									srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_dfd1685e1df94afbbfac8b86c0edf4b3.webp?v=1773073930&width=200 200w,
11195										//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_dfd1685e1df94afbbfac8b86c0edf4b3.webp?v=1773073930&width=400 400w"
11196									sizes="(min-width: 769px) 170px, 140px"
11197									alt="TechCrunch"
11198									loading="lazy"
11199									width="1500"
11200									height="425"
11201								></div><div class="snb-featured__logo" ><img
11202									src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_63c0288e3b9e46abb7b65d678083f20b.webp?v=1773073930&width=400"
11203									srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_63c0288e3b9e46abb7b65d678083f20b.webp?v=1773073930&width=200 200w,
11204										//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_63c0288e3b9e46abb7b65d678083f20b.webp?v=1773073930&width=400 400w"
11205									sizes="(min-width: 769px) 170px, 140px"
11206									alt="Fast Company"
11207									loading="lazy"
11208									width="1500"
11209									height="425"
11210								></div></div></div>
11211</section>
11212
11213
11214</div><div id="shopify-section-template--17749318303830__snb_how_it_works_native_Yx6xra" class="shopify-section">
11215<style data-shopify>#shopify-section-template--17749318303830__snb_how_it_works_native_Yx6xra {
11216		--snb-hiw-bg: #f0e6d3;
11217		--snb-hiw-heading: #1a1a1a;
11218		--snb-hiw-title: #1a1a1a;
11219		--snb-hiw-text: #4a4a4a;
11220		--snb-hiw-pt: 48px;
11221		--snb-hiw-pb: 48px;
11222	}
11223
11224	.snb-hiw {
11225		background-color: var(--snb-hiw-bg);
11226		padding-top: var(--snb-hiw-pt);
11227		padding-bottom: var(--snb-hiw-pb);
11228	}
11229
11230	.snb-hiw__heading {
11231		font-size: 48px;
11232		font-weight: 400;
11233		text-align: center;
11234		color: var(--snb-hiw-heading);
11235		margin: 0 0 32px;
11236	}
11237
11238	.snb-hiw__grid {
11239		display: grid;
11240		grid-template-columns: 1fr;
11241		gap: 40px;
11242		max-width: 1200px;
11243		margin: 0 auto;
11244		list-style: none;
11245		padding: 0;
11246	}
11247
11248	.snb-hiw__step {
11249		text-align: center;
11250	}
11251
11252	.snb-hiw__image {
11253		position: relative;
11254		width: 100%;
11255		overflow: hidden;
11256		margin-bottom: 20px;
11257	}
11258
11259	.snb-hiw__image img {
11260		display: block;
11261		width: 100%;
11262		height: auto;
11263		object-fit: cover;
11264	}
11265
11266	.snb-hiw__image img {
11267		opacity: 0;
11268		transition: opacity 0.4s ease;
11269	}
11270
11271	.snb-hiw__image img.is-loaded {
11272		opacity: 1;
11273	}
11274
11275	.snb-hiw__title {
11276		font-size:28px;
11277		font-weight: 400;
11278		letter-spacing: 2px;
11279		text-transform: uppercase;
11280		color: var(--snb-hiw-title);
11281		margin: 0 0 12px;
11282	}
11283
11284	.snb-hiw__description {
11285		font-size: 14px;
11286		font-weight: 400;
11287		line-height: 1.6;
11288		color: var(--snb-hiw-text);
11289		margin: 0 auto;
11290		max-width: 360px;
11291	}
11292
11293	@media (min-width: 769px) {
11294		.snb-hiw__heading {
11295			font-size: 36px;
11296			margin-bottom: 40px;
11297		}
11298
11299		.snb-hiw__grid {
11300			grid-template-columns: repeat(3, 1fr);
11301			gap: 32px;
11302		}
11303
11304		.snb-hiw__title {
11305			font-size: 18px;
11306			margin-bottom: 16px;
11307		}
11308
11309		.snb-hiw__description {
11310			font-size: 14px;
11311			max-width: none;
11312		}
11313	}
11314
11315	.snb-hiw__step:focus-visible {
11316		outline: 2px solid currentColor;
11317		outline-offset: 3px;
11318	}</style><section class="snb-hiw" aria-labelledby="snb-hiw-heading-template--17749318303830__snb_how_it_works_native_Yx6xra">
11319	<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">
11320								<img
11321									src="//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_003_1200x1200_b4714a3e-defc-4b77-99a4-cce78b278ed2.jpg?v=1780894490&width=400"
11322									data-src="//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_003_1200x1200_b4714a3e-defc-4b77-99a4-cce78b278ed2.jpg?v=1780894490&width=800"
11323									data-srcset="//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_003_1200x1200_b4714a3e-defc-4b77-99a4-cce78b278ed2.jpg?v=1780894490&width=400 400w,
11324										//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_003_1200x1200_b4714a3e-defc-4b77-99a4-cce78b278ed2.jpg?v=1780894490&width=600 600w,
11325										//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_003_1200x1200_b4714a3e-defc-4b77-99a4-cce78b278ed2.jpg?v=1780894490&width=800 800w"
11326									sizes="(min-width: 769px) 33vw, 100vw"
11327									alt=""
11328									loading="lazy"
11329									width="1200"
11330									height="1200"
11331								>
11332							</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">
11333								<img
11334									src="//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_002_1200x1200_1.jpg?v=1780894290&width=400"
11335									data-src="//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_002_1200x1200_1.jpg?v=1780894290&width=800"
11336									data-srcset="//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_002_1200x1200_1.jpg?v=1780894290&width=400 400w,
11337										//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_002_1200x1200_1.jpg?v=1780894290&width=600 600w,
11338										//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_002_1200x1200_1.jpg?v=1780894290&width=800 800w"
11339									sizes="(min-width: 769px) 33vw, 100vw"
11340									alt=""
11341									loading="lazy"
11342									width="1200"
11343									height="1200"
11344								>
11345							</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">
11346								<img
11347									src="//bokksu.com/cdn/shop/files/Bokksu_SnackBox_Box_Hero_012_Square_29da187b-7869-43b6-86af-0918585d9737.jpg?v=1780550901&width=400"
11348									data-src="//bokksu.com/cdn/shop/files/Bokksu_SnackBox_Box_Hero_012_Square_29da187b-7869-43b6-86af-0918585d9737.jpg?v=1780550901&width=800"
11349									data-srcset="//bokksu.com/cdn/shop/files/Bokksu_SnackBox_Box_Hero_012_Square_29da187b-7869-43b6-86af-0918585d9737.jpg?v=1780550901&width=400 400w,
11350										//bokksu.com/cdn/shop/files/Bokksu_SnackBox_Box_Hero_012_Square_29da187b-7869-43b6-86af-0918585d9737.jpg?v=1780550901&width=600 600w,
11351										//bokksu.com/cdn/shop/files/Bokksu_SnackBox_Box_Hero_012_Square_29da187b-7869-43b6-86af-0918585d9737.jpg?v=1780550901&width=800 800w"
11352									sizes="(min-width: 769px) 33vw, 100vw"
11353									alt=""
11354									loading="lazy"
11355									width="1200"
11356									height="1200"
11357								>
11358							</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>
11359</section>
11360
11361<script>
11362(function() {
11363	var sectionId = 'template--17749318303830__snb_how_it_works_native_Yx6xra';
11364	var sectionEl = document.getElementById('shopify-section-' + sectionId);
11365
11366	function loadImages() {
11367		if (!sectionEl) return;
11368		var imgs = sectionEl.querySelectorAll('img[data-src]');
11369		imgs.forEach(function(img) {
11370			img.onload = function() {
11371				img.classList.add('is-loaded');
11372			};
11373			if (img.dataset.srcset) {
11374				img.srcset = img.dataset.srcset;
11375				delete img.dataset.srcset;
11376			}
11377			img.src = img.dataset.src;
11378			delete img.dataset.src;
11379		});
11380	}
11381
11382	function lazyInit() {
11383		if (!sectionEl) {
11384			sectionEl = document.querySelector('.snb-hiw');
11385		}
11386		if (!sectionEl) return;
11387
11388		if ('IntersectionObserver' in window) {
11389			var observer = new IntersectionObserver(function(entries) {
11390				entries.forEach(function(entry) {
11391					if (entry.isIntersecting) {
11392						observer.unobserve(entry.target);
11393						loadImages();
11394					}
11395				});
11396			}, { rootMargin: '200px 0px' });
11397			observer.observe(sectionEl);
11398		} else {
11399			loadImages();
11400		}
11401	}
11402
11403	if (document.readyState === 'loading') {
11404		document.addEventListener('DOMContentLoaded', lazyInit);
11405	} else {
11406		lazyInit();
11407	}
11408
11409	document.addEventListener('shopify:section:load', function(evt) {
11410		if (evt.detail.sectionId === sectionId) loadImages();
11411	});
11412})();
11413</script>
11413
11414
11415
11416</div><div id="shopify-section-template--17749318303830__snb_first_box_native_iGia7U" class="shopify-section">
11417<style data-shopify>#shopify-section-template--17749318303830__snb_first_box_native_iGia7U {
11418		--snb-fb-bg: #faf5ee;
11419		--snb-fb-heading: #1a1a1a;
11420		--snb-fb-subheading: #000000;
11421		--snb-fb-title: #b73d09;
11422		--snb-fb-text: #4a4a4a;
11423		--snb-fb-btn-bg: #b73d09;
11424		--snb-fb-btn-text: #ffffff;
11425		--snb-fb-pt: 48px;
11426		--snb-fb-pb: 48px;
11427	}
11428
11429	.snb-fb {
11430		background-color: var(--snb-fb-bg);
11431		padding-top: var(--snb-fb-pt);
11432		padding-bottom: var(--snb-fb-pb);
11433	}
11434
11435	.snb-fb__layout {
11436		display: grid;
11437		grid-template-columns: 1fr;
11438		gap: 32px;
11439		align-items: center;
11440		margin: 0 auto;
11441	}
11442
11443	/* Carousel */
11444	.snb-fb__carousel-wrap {
11445		position: relative;
11446		width: 100%;
11447		padding: 0 36px;
11448		box-sizing: border-box;
11449	}
11450
11451	.snb-fb__carousel {
11452		width: 100%;
11453	}
11454
11455	.snb-fb__carousel:not(.flickity-enabled) {
11456		position: relative;
11457	}
11458
11459	.snb-fb__carousel:not(.flickity-enabled) .snb-fb__slide {
11460		display: none;
11461	}
11462
11463	.snb-fb__carousel:not(.flickity-enabled) .snb-fb__slide:first-child {
11464		display: block;
11465	}
11466
11467	.snb-fb__slide {
11468		width: 100%;
11469	}
11470
11471	.snb-fb__slide img {
11472		display: block;
11473		width: 100%;
11474		height: auto;
11475		object-fit: cover;
11476	}
11477
11478	#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-button {
11479		background: transparent;
11480		width: 40px;
11481		height: 40px;
11482		color: #1A1A1A;
11483	}
11484
11485	#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-button:hover {
11486		background: transparent;
11487		opacity: 0.7;
11488	}
11489
11490	#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-previous {
11491		left: -25px;
11492	}
11493
11494	#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-next {
11495		right: -32px;
11496	}
11497
11498	#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-button svg {
11499		width: 20px;
11500		height: 20px;
11501	}
11502
11503	#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-page-dots {
11504		position: relative;
11505		bottom: auto;
11506		margin-top: 16px;
11507	}
11508
11509	#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-page-dots .dot {
11510		width: 8px;
11511		height: 8px;
11512		background: rgba(0, 0, 0, 0.2);
11513	}
11514
11515	#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-page-dots .dot.is-selected {
11516		background: #1A1A1A;
11517	}
11518
11519	/* Content */
11520	.snb-fb__content {
11521		text-align: center;
11522		padding: 0 16px;
11523	}
11524
11525	.snb-fb__subheading {
11526		font-family: 'Montserrat', sans-serif;
11527		font-size: 14px;
11528		font-weight: 500;
11529		letter-spacing: 3px;
11530		text-transform: uppercase;
11531		line-height: 18px;
11532		color: var(--snb-fb-subheading);
11533		margin: 0 0 8px;
11534	}
11535
11536	.snb-fb__heading {
11537		font-family: 'Orpheus Pro', sans-serif;
11538		font-size: 32px;
11539		font-weight: 400;
11540		line-height: 36px;
11541		color: var(--snb-fb-heading);
11542		margin: 0 0 28px;
11543	}
11544
11545	/* Features grid */
11546	.snb-fb__features {
11547		display: grid;
11548		grid-template-columns: repeat(2, 1fr);
11549		gap: 24px 20px;
11550		margin-bottom: 32px;
11551		margin-left: 0px;
11552		list-style: none;
11553		padding: 0;
11554	}
11555
11556	.snb-fb__feature {
11557		display: flex;
11558		align-items: flex-start;
11559		gap: 10px;
11560		text-align: left;
11561	}
11562
11563	.snb-fb__feature-icon {
11564		flex-shrink: 0;
11565		width: 28px;
11566		height: 28px;
11567	}
11568
11569	.snb-fb__feature-icon img {
11570		display: block;
11571		width: 100%;
11572		height: 100%;
11573		object-fit: contain;
11574	}
11575
11576	.snb-fb__feature-icon svg {
11577		display: block;
11578		width: 100%;
11579		height: 100%;
11580	}
11581
11582	.snb-fb__feature-body {
11583		flex: 1;
11584		min-width: 0;
11585	}
11586
11587	.snb-fb__feature-title {
11588		font-family: 'Montserrat', sans-serif;
11589		font-size: 13px !important;
11590		font-weight: 600;
11591		letter-spacing: 1.5px;
11592		text-transform: uppercase;
11593		line-height: 18px;
11594		color: var(--snb-fb-title);
11595		margin: 0 0 4px;
11596	}
11597
11598	.snb-fb__feature-desc {
11599		font-family: 'Lato', sans-serif;
11600		font-size: 16px;
11601		font-weight: 400;
11602		line-height: 24px;
11603		color: var(--snb-fb-text);
11604		margin: 0;
11605	}
11606
11607	/* CTA */
11608	.snb-fb__btn {
11609		width: 100%;
11610		text-align: center;
11611		box-sizing: border-box;
11612	}
11613
11614	@media (min-width: 769px) {
11615		.snb-fb__layout {
11616			grid-template-columns: 2fr 3fr;
11617			gap: 48px;
11618		}
11619
11620		.snb-fb__carousel-wrap {
11621			padding: 0 48px;
11622		}
11623
11624		.snb-fb__content {
11625			text-align: left;
11626			padding: 0;
11627		}
11628
11629		#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-button.previous {
11630			left: -48px;
11631		}
11632
11633		#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-button.next {
11634			right: -48px;
11635		}
11636
11637		.snb-fb__heading {
11638			font-size: 44px;
11639			line-height: 50px;
11640			margin-bottom: 32px;
11641		}
11642
11643		.snb-fb__features {
11644			gap: 20px 32px;
11645			margin-bottom: 36px;
11646		}
11647
11648		.snb-fb__feature-icon {
11649			width: 32px;
11650			height: 32px;
11651		}
11652	}
11653
11654	.snb-fb__btn:focus-visible {
11655		outline: 2px solid currentColor;
11656		outline-offset: 3px;
11657	}
11658
11659	#shopify-section-template--17749318303830__snb_first_box_native_iGia7U .flickity-button:focus-visible {
11660		outline: 2px solid #1A1A1A;
11661		outline-offset: 2px;
11662	}</style><section class="snb-fb" aria-labelledby="snb-fb-heading-template--17749318303830__snb_first_box_native_iGia7U">
11663	<div class="page-width">
11664		<div class="snb-fb__layout"><div class="snb-fb__carousel-wrap"><div
11665						class="snb-fb__carousel"
11666						id="snb-fb-carousel-template--17749318303830__snb_first_box_native_iGia7U"
11667						data-section-id="template--17749318303830__snb_first_box_native_iGia7U"
11668						role="region"
11669						aria-roledescription="carousel"
11670						aria-label="Product images"
11671					><div
11672									class="snb-fb__slide"
11673									role="group"
11674									aria-roledescription="slide"
11675									aria-label="Image 1 of 3"
11676									
11677								><img
11678											src="//bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square_46adf27f-3374-4ec8-ab80-da4a31009a43.jpg?v=1777597091&width=900"
11679											srcset="//bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square_46adf27f-3374-4ec8-ab80-da4a31009a43.jpg?v=1777597091&width=450 450w,
11680												//bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square_46adf27f-3374-4ec8-ab80-da4a31009a43.jpg?v=1777597091&width=600 600w,
11681												//bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square_46adf27f-3374-4ec8-ab80-da4a31009a43.jpg?v=1777597091&width=900 900w"
11682											sizes="(min-width: 769px) 50vw, 100vw"
11683											alt="Product image"
11684											loading="lazy"
11685											width="1200"
11686											height="1200"
11687										></div><div
11688									class="snb-fb__slide"
11689									role="group"
11690									aria-roledescription="slide"
11691									aria-label="Image 2 of 3"
11692									
11693								><img
11694											src="//bokksu.com/cdn/shop/files/SNB_2505_SOJ_Revamp_2_HeroBanner_1200x1200_0c4e23f1-ad8b-4f96-b95f-0c408a416c1d.jpg?v=1777597122&width=900"
11695											srcset="//bokksu.com/cdn/shop/files/SNB_2505_SOJ_Revamp_2_HeroBanner_1200x1200_0c4e23f1-ad8b-4f96-b95f-0c408a416c1d.jpg?v=1777597122&width=450 450w,
11696												//bokksu.com/cdn/shop/files/SNB_2505_SOJ_Revamp_2_HeroBanner_1200x1200_0c4e23f1-ad8b-4f96-b95f-0c408a416c1d.jpg?v=1777597122&width=600 600w,
11697												//bokksu.com/cdn/shop/files/SNB_2505_SOJ_Revamp_2_HeroBanner_1200x1200_0c4e23f1-ad8b-4f96-b95f-0c408a416c1d.jpg?v=1777597122&width=900 900w"
11698											sizes="(min-width: 769px) 50vw, 100vw"
11699											alt="Product image"
11700											loading="lazy"
11701											width="1200"
11702											height="1200"
11703										></div><div
11704									class="snb-fb__slide"
11705									role="group"
11706									aria-roledescription="slide"
11707									aria-label="Image 3 of 3"
11708									
11709								><img
11710											src="//bokksu.com/cdn/shop/files/SNB2505_SOJ_GuideInHand_Mobile_cropped.jpg?v=1777597395&width=900"
11711											srcset="//bokksu.com/cdn/shop/files/SNB2505_SOJ_GuideInHand_Mobile_cropped.jpg?v=1777597395&width=450 450w,
11712												//bokksu.com/cdn/shop/files/SNB2505_SOJ_GuideInHand_Mobile_cropped.jpg?v=1777597395&width=600 600w,
11713												//bokksu.com/cdn/shop/files/SNB2505_SOJ_GuideInHand_Mobile_cropped.jpg?v=1777597395&width=900 900w"
11714											sizes="(min-width: 769px) 50vw, 100vw"
11715											alt="Product image"
11716											loading="lazy"
11717											width="1080"
11718											height="1080"
11719										></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">
11720											<img
11721												src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_e1542a7512de48219082c79e9f6a71ff.png?v=1773075940&width=64"
11722												srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_e1542a7512de48219082c79e9f6a71ff.png?v=1773075940&width=64 1x,
11723													//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_e1542a7512de48219082c79e9f6a71ff.png?v=1773075940&width=128 2x"
11724												alt=""
11725												loading="lazy"
11726												width="32"
11727												height="32"
11728											>
11729										</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>
11730								</li><li class="snb-fb__feature" ><div class="snb-fb__feature-icon" aria-hidden="true">
11731											<img
11732												src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_9e18894930904f09aced5f2e537d2dc1.png?v=1773075939&width=64"
11733												srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_9e18894930904f09aced5f2e537d2dc1.png?v=1773075939&width=64 1x,
11734													//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_9e18894930904f09aced5f2e537d2dc1.png?v=1773075939&width=128 2x"
11735												alt=""
11736												loading="lazy"
11737												width="32"
11738												height="32"
11739											>
11740										</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>
11741								</li><li class="snb-fb__feature" ><div class="snb-fb__feature-icon" aria-hidden="true">
11742											<img
11743												src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_458ad5c11169402888e82d8013c7321b.webp?v=1773075940&width=64"
11744												srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_458ad5c11169402888e82d8013c7321b.webp?v=1773075940&width=64 1x,
11745													//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_458ad5c11169402888e82d8013c7321b.webp?v=1773075940&width=128 2x"
11746												alt=""
11747												loading="lazy"
11748												width="32"
11749												height="32"
11750											>
11751										</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>
11752								</li><li class="snb-fb__feature" ><div class="snb-fb__feature-icon" aria-hidden="true">
11753											<img
11754												src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_2259f1e9bf674b948df9dd4471778025.webp?v=1773075940&width=64"
11755												srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_2259f1e9bf674b948df9dd4471778025.webp?v=1773075940&width=64 1x,
11756													//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_2259f1e9bf674b948df9dd4471778025.webp?v=1773075940&width=128 2x"
11757												alt=""
11758												loading="lazy"
11759												width="32"
11760												height="32"
11761											>
11762										</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>
11763								</li><li class="snb-fb__feature" ><div class="snb-fb__feature-icon" aria-hidden="true">
11764											<img
11765												src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_e871adf5b3244294b8d301f3b670a74d.webp?v=1773075939&width=64"
11766												srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_e871adf5b3244294b8d301f3b670a74d.webp?v=1773075939&width=64 1x,
11767													//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_e871adf5b3244294b8d301f3b670a74d.webp?v=1773075939&width=128 2x"
11768												alt=""
11769												loading="lazy"
11770												width="32"
11771												height="32"
11772											>
11773										</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>
11774								</li><li class="snb-fb__feature" ><div class="snb-fb__feature-icon" aria-hidden="true">
11775											<img
11776												src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_4cdfb0ebd4894b3e933e63cf122dc91c.webp?v=1773075940&width=64"
11777												srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_4cdfb0ebd4894b3e933e63cf122dc91c.webp?v=1773075940&width=64 1x,
11778													//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_4cdfb0ebd4894b3e933e63cf122dc91c.webp?v=1773075940&width=128 2x"
11779												alt=""
11780												loading="lazy"
11781												width="32"
11782												height="32"
11783											>
11784										</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>
11785								</li></ul><a
11786							class="btn btn-custom btn-orange-bg snb-fb__btn"
11787							href="#snack-box-subscription"
11788							aria-label="Subscribe now — view subscription plans"
11789						>
11790							SUBSCRIBE NOW
11791						</a></div>
11792		</div>
11793	</div>
11794</section>
11795
11796<script>
11797(function() {
11798	var sectionId = 'template--17749318303830__snb_first_box_native_iGia7U';
11799	var sectionEl = document.getElementById('shopify-section-' + sectionId);
11800
11801	function initCarousel() {
11802		var carousel = document.getElementById('snb-fb-carousel-' + sectionId);
11803		if (!carousel || carousel.dataset.flickityInit) return;
11804
11805		var slides = carousel.querySelectorAll('.snb-fb__slide');
11806		if (slides.length <= 1) return;
11807
11808		if (typeof theme !== 'undefined' && theme.Slideshow) {
11809			new theme.Slideshow(carousel, {
11810				prevNextButtons: true,
11811				pageDots: true,
11812				wrapAround: true,
11813				adaptiveHeight: true,
11814				autoPlay: false
11815			});
11816			carousel.dataset.flickityInit = 'true';
11817		} else if (typeof Flickity !== 'undefined') {
11818			new Flickity(carousel, {
11819				prevNextButtons: true,
11820				pageDots: true,
11821				wrapAround: true,
11822				adaptiveHeight: true,
11823				autoPlay: false
11824			});
11825			carousel.dataset.flickityInit = 'true';
11826		}
11827
11828		// a11y: APG pattern — hide inactive slides from AT so VoiceOver swipe reads only the current one.
11829		function updateActiveSlide() {
11830			var flk = (typeof Flickity !== 'undefined') ? Flickity.data(carousel) : null;
11831			if (!flk) return;
11832			var active = flk.selectedElements || (flk.selectedElement ? [flk.selectedElement] : []);
11833			var cells = carousel.querySelectorAll('.snb-fb__slide');
11834			for (var i = 0; i < cells.length; i++) {
11835				var isActive = false;
11836				for (var k = 0; k < active.length; k++) {
11837					if (active[k] === cells[i]) { isActive = true; break; }
11838				}
11839				var target = isActive ? 'false' : 'true';
11840				if (cells[i].getAttribute('aria-hidden') !== target) {
11841					cells[i].setAttribute('aria-hidden', target);
11842				}
11843			}
11844		}
11845		setTimeout(function () {
11846			updateActiveSlide();
11847			var flk = (typeof Flickity !== 'undefined') ? Flickity.data(carousel) : null;
11848			if (flk && !carousel.dataset.a11ySelectBound) {
11849				carousel.dataset.a11ySelectBound = '1';
11850				flk.on('select', updateActiveSlide);
11851			}
11852		}, 200);
11853
11854		// a11y: label prev/next buttons and dots. Normalize aria-current on dots.
11855		// Loop-safe: observer watches ONLY aria-current, and only sets when value !== target.
11856		setTimeout(function () {
11857			var prev = carousel.querySelector('.flickity-prev-next-button.flickity-previous, .flickity-prev-next-button.previous, .flickity-button.previous');
11858			var next = carousel.querySelector('.flickity-prev-next-button.flickity-next, .flickity-prev-next-button.next, .flickity-button.next');
11859			if (prev) prev.setAttribute('aria-label', 'Previous image');
11860			if (next) next.setAttribute('aria-label', 'Next image');
11861
11862			var dotsContainer = carousel.querySelector('.flickity-page-dots');
11863			if (!dotsContainer) return;
11864
11865			function normalizeDots() {
11866				var ds = dotsContainer.querySelectorAll('.dot');
11867				for (var i = 0; i < ds.length; i++) {
11868					var label = 'Go to image ' + (i + 1);
11869					if (ds[i].getAttribute('aria-label') !== label) {
11870						ds[i].setAttribute('aria-label', label);
11871					}
11872					if (ds[i].getAttribute('aria-current') === 'step') {
11873						ds[i].setAttribute('aria-current', 'true');
11874					}
11875				}
11876			}
11877			normalizeDots();
11878
11879			if (dotsContainer.dataset.a11yObserver) return;
11880			dotsContainer.dataset.a11yObserver = '1';
11881
11882			// rAF-batched + attributeFilter scoped to aria-current only → no loop.
11883			var scheduled = false;
11884			var obs = new MutationObserver(function () {
11885				if (scheduled) return;
11886				scheduled = true;
11887				requestAnimationFrame(function () {
11888					scheduled = false;
11889					normalizeDots();
11890				});
11891			});
11892			obs.observe(dotsContainer, { attributes: true, subtree: true, attributeFilter: ['aria-current'] });
11893		}, 200);
11894	}
11895
11896	function lazyInit() {
11897		if (!sectionEl) {
11898			sectionEl = document.querySelector('.snb-fb');
11899		}
11900		if (!sectionEl) return;
11901
11902		if ('IntersectionObserver' in window) {
11903			var observer = new IntersectionObserver(function(entries) {
11904				entries.forEach(function(entry) {
11905					if (entry.isIntersecting) {
11906						observer.unobserve(entry.target);
11907						initCarousel();
11908					}
11909				});
11910			}, { rootMargin: '200px 0px' });
11911			observer.observe(sectionEl);
11912		} else {
11913			initCarousel();
11914		}
11915	}
11916
11917	if (document.readyState === 'loading') {
11918		document.addEventListener('DOMContentLoaded', lazyInit);
11919	} else {
11920		lazyInit();
11921	}
11922
11923	document.addEventListener('shopify:section:load', function(evt) {
11924		if (evt.detail.sectionId === sectionId) initCarousel();
11925	});
11926})();
11927</script>
11927
11928
11929
11930</div><div id="shopify-section-template--17749318303830__snb_testimonial_native_G8GWGn" class="shopify-section index-section">
11931<style data-shopify>#shopify-section-template--17749318303830__snb_testimonial_native_G8GWGn {
11932		--snb-test-bg: #ffffff;
11933		--snb-test-quote: #3a3a3a;
11934		--snb-test-accent: #d94f00;
11935		--snb-test-name: #d94f00;
11936		--snb-test-star: #d94f00;
11937		--snb-test-pt: 40px;
11938		--snb-test-pb: 48px;
11939	}
11940
11941	.snb-test {
11942		background-color: var(--snb-test-bg);
11943		padding-top: var(--snb-test-pt);
11944		padding-bottom: var(--snb-test-pb);
11945				overflow: hidden;
11946
11947	}
11948
11949	.snb-test__layout {
11950		display: grid;
11951		grid-template-columns: 1fr;
11952		gap: 32px;
11953		align-items: center;
11954		max-width: 1200px;
11955		margin: 0 auto;
11956	}
11957
11958	/* Quote area */
11959	.snb-test__quote-area {
11960		text-align: center;
11961		padding: 0 16px;
11962	}
11963
11964	.snb-test__quote-icon {
11965		margin-bottom: 16px;
11966	}
11967
11968	.snb-test__quote-icon img {
11969		display: block;
11970		margin: 0 auto;
11971		width: 40px;
11972		height: auto;
11973	}
11974
11975	.snb-test__quote-text {
11976		font-family: 'Orpheus Pro', sans-serif;
11977		font-size: 24px;
11978		font-weight: 200;
11979		line-height: 28px;
11980		color: var(--snb-test-quote);
11981		margin: 0 0 20px;
11982		margin-left: auto;
11983		margin-right: auto;
11984	}
11985
11986	.snb-test__stars {
11987		display: flex;
11988		justify-content: center;
11989		margin-bottom: 16px;
11990	}
11991
11992	.snb-test__stars img {
11993		display: block;
11994		height: 24px;
11995		width: auto;
11996	}
11997
11998	.snb-test__author {
11999		font-family: 'Montserrat', sans-serif;
12000		font-size: 16px;
12001		font-weight: 600;
12002		letter-spacing: 2px;
12003		text-transform: uppercase;
12004		color: var(--snb-test-name);
12005		margin: 0;
12006	}
12007
12008	/* Testimonial carousel (multiple testimonials) */
12009	.snb-test__quote-carousel {
12010		overflow: hidden;
12011	}
12012
12013	.snb-test__quote-carousel:not(.flickity-enabled) {
12014		position: relative;
12015	}
12016
12017	.snb-test__quote-carousel:not(.flickity-enabled) .snb-test__testimonial-slide {
12018		display: none;
12019	}
12020
12021	.snb-test__quote-carousel:not(.flickity-enabled) .snb-test__testimonial-slide:first-child {
12022		display: block;
12023	}
12024
12025	.snb-test__testimonial-slide {
12026		width: 100%;
12027		text-align: center;
12028	}
12029
12030	/* Photo carousel */
12031	.snb-test__photos-wrap {
12032		position: relative;
12033		width: 100%;
12034		padding: 0 25px;
12035		box-sizing: border-box;
12036	}
12037
12038	.snb-test__photos {
12039		width: 100%;
12040		 /* overflow: hidden;  */
12041	}
12042
12043	.snb-test__photos:not(.flickity-enabled) {
12044		display: flex;
12045	}
12046
12047	.snb-test__photo-slide {
12048		padding: 0 4px;
12049		box-sizing: border-box;
12050		flex-shrink: 0;
12051		width: 100%;
12052	}
12053
12054	.snb-test__photo-slide img {
12055		display: block;
12056		width: 100%;
12057		height: auto;
12058		object-fit: cover;
12059	}
12060
12061	#shopify-section-template--17749318303830__snb_testimonial_native_G8GWGn .snb-test__photos-wrap .flickity-button {
12062		background: transparent;
12063		width: 40px;
12064		height: 40px;
12065		color: #1A1A1A;
12066	}
12067
12068	#shopify-section-template--17749318303830__snb_testimonial_native_G8GWGn .snb-test__photos-wrap .flickity-button:hover {
12069		background: transparent;
12070		opacity: 0.7;
12071	}
12072
12073	#shopify-section-template--17749318303830__snb_testimonial_native_G8GWGn .snb-test__photos-wrap .flickity-previous {
12074		left: -21px;
12075	}
12076
12077	#shopify-section-template--17749318303830__snb_testimonial_native_G8GWGn .snb-test__photos-wrap .flickity-next {
12078		right: -30px;
12079	}
12080
12081	#shopify-section-template--17749318303830__snb_testimonial_native_G8GWGn .snb-test__photos-wrap .flickity-button svg {
12082		width: 20px;
12083		height: 20px;
12084	}
12085
12086	#shopify-section-template--17749318303830__snb_testimonial_native_G8GWGn .snb-test__photos-wrap .flickity-page-dots {
12087		display: none;
12088	}
12089
12090	@media (min-width: 769px) {
12091		.snb-test__layout {
12092			gap: 36px;
12093		}
12094
12095		.snb-test__quote-area {
12096			padding: 0;
12097		}
12098
12099		.snb-test__quote-icon img {
12100			width: 56px;
12101		}
12102
12103		.snb-test__stars img {
12104			height: 28px;
12105		}
12106
12107		.snb-test__quote-text {
12108			font-size: 48px;
12109			line-height: 50px;
12110		}
12111
12112		.snb-test__photos-wrap {
12113			padding: 0 44px;
12114		}
12115
12116		#shopify-section-template--17749318303830__snb_testimonial_native_G8GWGn .snb-test__photos-wrap .flickity-prev-next-button.previous {
12117			left: -44px;
12118		}
12119
12120		#shopify-section-template--17749318303830__snb_testimonial_native_G8GWGn .snb-test__photos-wrap .flickity-prev-next-button.next {
12121			right: -44px;
12122		}
12123
12124		.snb-test__photos:not(.flickity-enabled) .snb-test__photo-slide {
12125			width: 20%;
12126		}
12127
12128		.snb-test__photo-slide {
12129			width: 20%;
12130			padding: 0 10px;
12131		}
12132	}
12133
12134	.snb-test__pause-btn {
12135		display: inline-flex;
12136		align-items: center;
12137		justify-content: center;
12138		background: transparent;
12139		border: 1px solid var(--snb-test-name);
12140		border-radius: 50%;
12141		width: 32px;
12142		height: 32px;
12143		cursor: pointer;
12144		color: var(--snb-test-name);
12145		margin-top: 16px;
12146		padding: 0;
12147	}
12148
12149	.snb-test__pause-btn:focus-visible {
12150		outline: 2px solid currentColor;
12151		outline-offset: 3px;
12152	}
12153
12154	.snb-test__quote-text {
12155		margin-block-start: 0;
12156		margin-block-end: 0;
12157		margin-inline-start: 0;
12158		margin-inline-end: 0;
12159		padding: 0;
12160	}
12161
12162	.snb-test__author {
12163		font-style: normal;
12164	}</style><section class="snb-test" aria-label="Customer testimonials">
12165	<div class="page-width">
12166		<div class="snb-test__layout"><div class="snb-test__quote-area"><div ><div class="snb-test__quote-icon" aria-hidden="true">
12167											<img src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_f006b88d6f6d46258077f4c9384b1a04.webp?v=1773121456&width=112" alt="" width="56" height="56" loading="lazy">
12168										</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">
12169										<img src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_ff4f6deb95cd4eb290a18a2f3da821ae.webp?v=1773121457&width=300" alt="" loading="lazy" aria-hidden="true">
12170									</div><cite class="snb-test__author">&ndash; Lucy Z</cite></div></div><div class="snb-test__photos-wrap">
12171					<div
12172						class="snb-test__photos"
12173						id="snb-test-photos-template--17749318303830__snb_testimonial_native_G8GWGn"
12174						data-section-id="template--17749318303830__snb_testimonial_native_G8GWGn"
12175						role="region"
12176						aria-roledescription="carousel"
12177						aria-label="Customer photos"
12178					><div
12179									class="snb-test__photo-slide"
12180									role="group"
12181									aria-roledescription="slide"
12182									aria-label="Photo 1 of 6"
12183									
12184								><img
12185											src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_ffdf56a405d940a480a53eee6941e07c.webp?v=1773077929&width=600"
12186											srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_ffdf56a405d940a480a53eee6941e07c.webp?v=1773077929&width=300 300w,
12187												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_ffdf56a405d940a480a53eee6941e07c.webp?v=1773077929&width=450 450w,
12188												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_ffdf56a405d940a480a53eee6941e07c.webp?v=1773077929&width=600 600w"
12189											sizes="(min-width: 769px) 200px, 100vw"
12190											alt="Customer photo"
12191											loading="lazy"
12192											width="450"
12193											height="450"
12194										></div><div
12195									class="snb-test__photo-slide"
12196									role="group"
12197									aria-roledescription="slide"
12198									aria-label="Photo 2 of 6"
12199									
12200								><img
12201											src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_950a18fde08540418bc01b2ebdeb4d12.webp?v=1773077974&width=600"
12202											srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_950a18fde08540418bc01b2ebdeb4d12.webp?v=1773077974&width=300 300w,
12203												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_950a18fde08540418bc01b2ebdeb4d12.webp?v=1773077974&width=450 450w,
12204												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_950a18fde08540418bc01b2ebdeb4d12.webp?v=1773077974&width=600 600w"
12205											sizes="(min-width: 769px) 200px, 100vw"
12206											alt="Customer photo"
12207											loading="lazy"
12208											width="450"
12209											height="450"
12210										></div><div
12211									class="snb-test__photo-slide"
12212									role="group"
12213									aria-roledescription="slide"
12214									aria-label="Photo 3 of 6"
12215									
12216								><img
12217											src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_71c99de7222b4ffaa5e7357cc4085931.webp?v=1773078021&width=600"
12218											srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_71c99de7222b4ffaa5e7357cc4085931.webp?v=1773078021&width=300 300w,
12219												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_71c99de7222b4ffaa5e7357cc4085931.webp?v=1773078021&width=450 450w,
12220												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_71c99de7222b4ffaa5e7357cc4085931.webp?v=1773078021&width=600 600w"
12221											sizes="(min-width: 769px) 200px, 100vw"
12222											alt="Customer photo"
12223											loading="lazy"
12224											width="1170"
12225											height="1170"
12226										></div><div
12227									class="snb-test__photo-slide"
12228									role="group"
12229									aria-roledescription="slide"
12230									aria-label="Photo 4 of 6"
12231									
12232								><img
12233											src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_a298e43d9bd74a31be815b37a727db0d.webp?v=1773078071&width=600"
12234											srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_a298e43d9bd74a31be815b37a727db0d.webp?v=1773078071&width=300 300w,
12235												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_a298e43d9bd74a31be815b37a727db0d.webp?v=1773078071&width=450 450w,
12236												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_a298e43d9bd74a31be815b37a727db0d.webp?v=1773078071&width=600 600w"
12237											sizes="(min-width: 769px) 200px, 100vw"
12238											alt="Customer photo"
12239											loading="lazy"
12240											width="1170"
12241											height="1170"
12242										></div><div
12243									class="snb-test__photo-slide"
12244									role="group"
12245									aria-roledescription="slide"
12246									aria-label="Photo 5 of 6"
12247									
12248								><img
12249											src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_9c37d63dea5e4016bee2c8462c79f2bc.webp?v=1773078122&width=600"
12250											srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_9c37d63dea5e4016bee2c8462c79f2bc.webp?v=1773078122&width=300 300w,
12251												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_9c37d63dea5e4016bee2c8462c79f2bc.webp?v=1773078122&width=450 450w,
12252												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_9c37d63dea5e4016bee2c8462c79f2bc.webp?v=1773078122&width=600 600w"
12253											sizes="(min-width: 769px) 200px, 100vw"
12254											alt="Customer photo"
12255											loading="lazy"
12256											width="1170"
12257											height="1170"
12258										></div><div
12259									class="snb-test__photo-slide"
12260									role="group"
12261									aria-roledescription="slide"
12262									aria-label="Photo 6 of 6"
12263									
12264								><img
12265											src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_f7e19e95c1c74179b65a3cdf6814aa13.webp?v=1773078305&width=600"
12266											srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_f7e19e95c1c74179b65a3cdf6814aa13.webp?v=1773078305&width=300 300w,
12267												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_f7e19e95c1c74179b65a3cdf6814aa13.webp?v=1773078305&width=450 450w,
12268												//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_f7e19e95c1c74179b65a3cdf6814aa13.webp?v=1773078305&width=600 600w"
12269											sizes="(min-width: 769px) 200px, 100vw"
12270											alt="Customer photo"
12271											loading="lazy"
12272											width="1170"
12273											height="1170"
12274										></div></div>
12275				</div></div>
12276	</div>
12277</section>
12278
12279<script>
12280(function() {
12281	var sectionId = 'template--17749318303830__snb_testimonial_native_G8GWGn';
12282	var sectionEl = document.getElementById('shopify-section-' + sectionId);
12283
12284	function initPhotoCarousel() {
12285		var photos = document.getElementById('snb-test-photos-' + sectionId);
12286		if (!photos || photos.dataset.flickityInit) return;
12287
12288		var slides = photos.querySelectorAll('.snb-test__photo-slide');
12289		if (slides.length <= 1) return;
12290
12291		if (typeof theme !== 'undefined' && theme.Slideshow) {
12292			new theme.Slideshow(photos, {
12293				prevNextButtons: true,
12294				pageDots: false,
12295				wrapAround: true,
12296				adaptiveHeight: false,
12297				autoPlay: false,
12298				cellAlign: 'left',
12299				contain: true,
12300				groupCells: true
12301			});
12302			photos.dataset.flickityInit = 'true';
12303		} else if (typeof Flickity !== 'undefined') {
12304			new Flickity(photos, {
12305				prevNextButtons: true,
12306				pageDots: false,
12307				wrapAround: true,
12308				adaptiveHeight: false,
12309				autoPlay: false,
12310				cellAlign: 'left',
12311				contain: true,
12312				groupCells: true
12313			});
12314			photos.dataset.flickityInit = 'true';
12315		}
12316
12317		// a11y: APG pattern — hide inactive slides, label prev/next.
12318		function updatePhotoSlides() {
12319			var flk = (typeof Flickity !== 'undefined') ? Flickity.data(photos) : null;
12320			if (!flk) return;
12321			var active = flk.selectedElements || (flk.selectedElement ? [flk.selectedElement] : []);
12322			var cells = photos.querySelectorAll('.snb-test__photo-slide');
12323			for (var i = 0; i < cells.length; i++) {
12324				var isActive = false;
12325				for (var k = 0; k < active.length; k++) {
12326					if (active[k] === cells[i]) { isActive = true; break; }
12327				}
12328				var target = isActive ? 'false' : 'true';
12329				if (cells[i].getAttribute('aria-hidden') !== target) {
12330					cells[i].setAttribute('aria-hidden', target);
12331				}
12332			}
12333		}
12334		setTimeout(function () {
12335			var prev = photos.querySelector('.flickity-prev-next-button.flickity-previous, .flickity-prev-next-button.previous, .flickity-button.previous');
12336			var next = photos.querySelector('.flickity-prev-next-button.flickity-next, .flickity-prev-next-button.next, .flickity-button.next');
12337			if (prev) prev.setAttribute('aria-label', 'Previous photo');
12338			if (next) next.setAttribute('aria-label', 'Next photo');
12339
12340			updatePhotoSlides();
12341			var flk = (typeof Flickity !== 'undefined') ? Flickity.data(photos) : null;
12342			if (flk && !photos.dataset.a11ySelectBound) {
12343				photos.dataset.a11ySelectBound = '1';
12344				flk.on('select', updatePhotoSlides);
12345			}
12346		}, 200);
12347	}
12348
12349	function initQuoteCarousel() {
12350		var quotes = document.getElementById('snb-test-quotes-' + sectionId);
12351		if (!quotes || quotes.dataset.flickityInit) return;
12352
12353		var slides = quotes.querySelectorAll('.snb-test__testimonial-slide');
12354		if (slides.length <= 1) return;
12355
12356		if (typeof Flickity !== 'undefined') {
12357			new Flickity(quotes, {
12358				prevNextButtons: false,
12359				pageDots: true,
12360				wrapAround: true,
12361				adaptiveHeight: true,
12362				autoPlay: 6000
12363			});
12364			quotes.dataset.flickityInit = 'true';
12365
12366			// a11y: APG — hide inactive quote slides
12367			function updateQuoteSlides() {
12368				var flk = Flickity.data(quotes);
12369				if (!flk) return;
12370				var active = flk.selectedElements || (flk.selectedElement ? [flk.selectedElement] : []);
12371				var cells = quotes.querySelectorAll('.snb-test__testimonial-slide');
12372				for (var i = 0; i < cells.length; i++) {
12373					var isActive = false;
12374					for (var k = 0; k < active.length; k++) {
12375						if (active[k] === cells[i]) { isActive = true; break; }
12376					}
12377					var target = isActive ? 'false' : 'true';
12378					if (cells[i].getAttribute('aria-hidden') !== target) {
12379						cells[i].setAttribute('aria-hidden', target);
12380					}
12381				}
12382			}
12383			setTimeout(function () {
12384				updateQuoteSlides();
12385				var f = Flickity.data(quotes);
12386				if (f && !quotes.dataset.a11ySelectBound) {
12387					quotes.dataset.a11ySelectBound = '1';
12388					f.on('select', updateQuoteSlides);
12389				}
12390			}, 200);
12391
12392			// a11y: label dots, normalize aria-current. Loop-safe: only watch aria-current, guarded 
12392setAttribute, rAF-batched.
12393			setTimeout(function () {
12394				var dotsContainer = quotes.querySelector('.flickity-page-dots');
12395				if (!dotsContainer) return;
12396
12397				function normalizeDots() {
12398					var ds = dotsContainer.querySelectorAll('.dot');
12399					for (var i = 0; i < ds.length; i++) {
12400						var label = 'Go to testimonial ' + (i + 1);
12401						if (ds[i].getAttribute('aria-label') !== label) {
12402							ds[i].setAttribute('aria-label', label);
12403						}
12404						if (ds[i].getAttribute('aria-current') === 'step') {
12405							ds[i].setAttribute('aria-current', 'true');
12406						}
12407					}
12408				}
12409				normalizeDots();
12410
12411				if (dotsContainer.dataset.a11yObserver) return;
12412				dotsContainer.dataset.a11yObserver = '1';
12413
12414				var scheduled = false;
12415				var obs = new MutationObserver(function () {
12416					if (scheduled) return;
12417					scheduled = true;
12418					requestAnimationFrame(function () {
12419						scheduled = false;
12420						normalizeDots();
12421					});
12422				});
12423				obs.observe(dotsContainer, { attributes: true, subtree: true, attributeFilter: ['aria-current'] });
12424			}, 200);
12425			// Add pause/play button for autoplay
12426			var pauseBtn = document.createElement('button');
12427			pauseBtn.type = 'button';
12428			pauseBtn.className = 'snb-test__pause-btn';
12429			pauseBtn.setAttribute('aria-label', 'Pause testimonials');
12430			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>';
12431			var quoteArea = quotes.closest('.snb-test__quote-area');
12432			if (quoteArea) quoteArea.appendChild(pauseBtn);
12433			var isPaused = false;
12434			pauseBtn.addEventListener('click', function() {
12435				var flk = Flickity.data(quotes);
12436				if (flk) {
12437					if (isPaused) {
12438						flk.playPlayer();
12439						pauseBtn.setAttribute('aria-label', 'Pause testimonials');
12440						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>';
12441					} else {
12442						flk.pausePlayer();
12443						pauseBtn.setAttribute('aria-label', 'Play testimonials');
12444						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>';
12445					}
12446					isPaused = !isPaused;
12447				}
12448			});
12449		}
12450	}
12451
12452	function init() {
12453		initPhotoCarousel();
12454		initQuoteCarousel();
12455	}
12456
12457	function lazyInit() {
12458		if (!sectionEl) {
12459			sectionEl = document.querySelector('.snb-test');
12460		}
12461		if (!sectionEl) return;
12462
12463		if ('IntersectionObserver' in window) {
12464			var observer = new IntersectionObserver(function(entries) {
12465				entries.forEach(function(entry) {
12466					if (entry.isIntersecting) {
12467						observer.unobserve(entry.target);
12468						init();
12469					}
12470				});
12471			}, { rootMargin: '200px 0px' });
12472			observer.observe(sectionEl);
12473		} else {
12474			init();
12475		}
12476	}
12477
12478	if (document.readyState === 'loading') {
12479		document.addEventListener('DOMContentLoaded', lazyInit);
12480	} else {
12481		lazyInit();
12482	}
12483
12484	document.addEventListener('shopify:section:load', function(evt) {
12485		if (evt.detail.sectionId === sectionId) init();
12486	});
12487})();
12488</script>
12488
12489
12490
12491</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 {
12492    --snb-pdp-ash: #1a1a1a;
12493    --snb-pdp-lantern: #b73d09;
12494    --snb-pdp-washi: #f6f4f1;
12495    --snb-pdp-persimmon: #b73d09;
12496    --snb-pdp-red-beans: #b73d09;
12497    --snb-pdp-white: #ffffff;
12498    --snb-pdp-border: #e8e8e1;
12499    --snb-pdp-badge: #602012;
12500    --snb-pdp-sale-bg: #b73d09;
12501    --snb-pdp-sale-color: #ffffff;
12502    --snb-pdp-radius: 8px;
12503  }
12504
12505  .snb-pdp {
12506    display: grid;
12507    grid-template-columns: 1fr;
12508    gap: 0;
12509    max-width: 1400px;
12510    margin: 0 auto;
12511    padding: 0;
12512    font-family: "Lato", sans-serif;
12513    color: var(--snb-pdp-ash);
12514    overflow: clip;
12515    box-sizing: border-box;
12516  }
12517
12518  @media (min-width: 769px) {
12519    .snb-pdp {
12520      grid-template-columns: 1fr 1fr;
12521      gap: 60px;
12522      align-items: start;
12523      padding: 0px 30px !importan;
12524    }
12525  }
12526
12527  .snb-pdp *,
12528  .snb-pdp *::before,
12529  .snb-pdp *::after {
12530    box-sizing: border-box;
12531  }
12532
12533  /* ── Gallery ── */
12534  .snb-pdp__gallery {
12535    display: flex;
12536    flex-direction: column;
12537    gap: 0;
12538    min-width: 0;
12539  }
12540
12541  @media (min-width: 769px) {
12542    .snb-pdp__gallery {
12543      flex-direction: row;
12544      gap: 15px;
12545      position: sticky;
12546      top: 20px;
12547      align-self: start;
12548    }
12549  }
12550
12551  /* ── Mobile Carousel ── */
12552  .snb-pdp__carousel {
12553    display: flex;
12554    overflow-x: auto;
12555    scroll-snap-type: x mandatory;
12556    -webkit-overflow-scrolling: touch;
12557    scrollbar-width: none;
12558  }
12559
12560  .snb-pdp__carousel::-webkit-scrollbar {
12561    display: none;
12562  }
12563
12564  @media (min-width: 769px) {
12565    .snb-pdp__carousel {
12566      display: none;
12567    }
12568  }
12569
12570  @keyframes snb-pdp-shimmer {
12571    0% { background-position: -400px 0; }
12572    100% { background-position: 400px 0; }
12573  }
12574
12575  .snb-pdp__carousel-slide {
12576    flex: 0 0 calc(100% / 1.2);
12577    scroll-snap-align: start;
12578    aspect-ratio: 390 / 353;
12579    overflow: hidden;
12580    background: linear-gradient(
12581      90deg,
12582      var(--snb-pdp-border) 0%,
12583      var(--snb-pdp-washi) 40%,
12584      var(--snb-pdp-border) 80%
12585    );
12586    background-size: 800px 100%;
12587    animation: snb-pdp-shimmer 1.5s infinite linear;
12588        margin-right: 8px;
12589  }
12590
12591  .snb-pdp__carousel-slide:has(img.snb-pdp--loaded) {
12592    animation: none;
12593    background: none;
12594  }
12595
12596  .snb-pdp__carousel-slide img {
12597    width: 100%;
12598    height: 100%;
12599    object-fit: cover;
12600    display: block;
12601    opacity: 0;
12602    transition: opacity 0.3s ease;
12603  }
12604
12605  .snb-pdp__carousel-slide img.snb-pdp--loaded {
12606    opacity: 1;
12607  }
12608
12609  .snb-pdp__dots {
12610    display: flex;
12611    justify-content: center;
12612    gap: 6px;
12613    padding: 12px 0;
12614  }
12615
12616  @media (min-width: 769px) {
12617    .snb-pdp__dots {
12618      display: none;
12619    }
12620  }
12621
12622  .snb-pdp__dot {
12623  width: 27px;
12624    height: 6px;
12625    border-radius: 6px;
12626    background: #fff;
12627    border: 1px solid #A53E23;
12628    padding: 0;
12629    cursor: pointer;
12630    transition: background 0.2s ease;
12631  }
12632
12633  .snb-pdp__dot--active {
12634    background: #A53E23;
12635  }
12636
12637  .snb-pdp__dot:focus-visible {
12638    outline: 2px solid var(--snb-pdp-lantern);
12639    outline-offset: 2px;
12640  }
12641
12642  /* ── Desktop Gallery (thumbs + main) ── */
12643  .snb-pdp__desktop-gallery {
12644    display: none;
12645  }
12646
12647  @media (min-width: 769px) {
12648    .snb-pdp__desktop-gallery {
12649      display: flex;
12650      gap: 15px;
12651      width: 100%;
12652    }
12653  }
12654
12655  .snb-pdp__thumbs {
12656    display: flex;
12657    flex-direction: column;
12658    gap: 12px;
12659    width: 80px;
12660    flex-shrink: 0;
12661    position: relative;
12662    overflow: hidden;
12663    max-height: 500px;
12664  }
12665
12666  .snb-pdp__thumbs-scroller {
12667    display: flex;
12668    flex-direction: column;
12669    gap: 12px;
12670    overflow-y: auto;
12671    scrollbar-width: none;
12672    max-height: 100%;
12673  }
12674
12675  .snb-pdp__thumbs-scroller::-webkit-scrollbar {
12676    display: none;
12677  }
12678
12679  .snb-pdp__thumb {
12680    width: 76px;
12681    height: 76px;
12682    border: 1px solid var(--snb-pdp-border);
12683    border-radius: 4px;
12684    overflow: hidden;
12685    cursor: pointer;
12686    flex-shrink: 0;
12687    background: var(--snb-pdp-white);
12688    padding: 0;
12689  }
12690
12691  .snb-pdp__thumb--active {
12692    border: 2px solid var(--snb-pdp-ash);
12693  }
12694
12695  .snb-pdp__thumb img {
12696    width: 100%;
12697    height: 100%;
12698    object-fit: cover;
12699    display: block;
12700  }
12701
12702  .snb-pdp__thumb-arrow {
12703    display: flex;
12704    align-items: center;
12705    justify-content: center;
12706    background: var(--snb-pdp-white);
12707    border: none;
12708    cursor: pointer;
12709    padding: 8px 0;
12710    width: 100%;
12711  }
12712
12713  .snb-pdp__thumb-arrow svg {
12714    width: 10px;
12715    height: 6px;
12716  }
12717
12718  .snb-pdp__main-image {
12719    flex: 1;
12720    min-width: 0;
12721    overflow: hidden;
12722    background: linear-gradient(
12723      90deg,
12724      var(--snb-pdp-border) 0%,
12725      var(--snb-pdp-washi) 40%,
12726      var(--snb-pdp-border) 80%
12727    );
12728    background-size: 800px 100%;
12729    animation: snb-pdp-shimmer 1.5s infinite linear;
12730    min-height: 300px;
12731  }
12732
12733  .snb-pdp__main-image:has(img.snb-pdp--loaded) {
12734    animation: none;
12735    background: var(--snb-pdp-washi);
12736    min-height: auto;
12737  }
12738
12739  @media (min-width: 769px) {
12740    .snb-pdp__main-image {
12741      max-height: 500px;
12742      border-radius: 4px;
12743      min-height: 400px;
12744    }
12745
12746    .snb-pdp__main-image:has(img.snb-pdp--loaded) {
12747      min-height: auto;
12748    }
12749  }
12750
12751  .snb-pdp__main-image img {
12752    width: 100%;
12753    height: 100%;
12754    object-fit: cover;
12755    display: block;
12756    opacity: 0;
12757    transition: opacity 0.3s ease;
12758  }
12759
12760  .snb-pdp__main-image img.snb-pdp--loaded {
12761    opacity: 1;
12762  }
12763
12764  /* ── Info column ── */
12765  .snb-pdp__info {
12766    display: flex;
12767    flex-direction: column;
12768    gap: 0;
12769    padding: 20px 20px 40px;
12770    min-width: 0;
12771  }
12772
12773
12774  /* ── Header ── */
12775  .snb-pdp__preheader {
12776    font-family: "Montserrat", sans-serif;
12777    font-weight: 500;
12778    font-size: 14px;
12779    letter-spacing: 5px;
12780    text-transform: uppercase;
12781    line-height: 18px;
12782    margin: 0 0 4px;
12783  }
12784
12785
12786  .snb-pdp__title {
12787    font-family: "Orpheus Pro", serif;
12788    font-weight: 400;
12789    font-size: 48px;
12790    line-height: 52px !important;
12791    margin: 0 0 20px;
12792    text-transform: capitalize;
12793    word-break: break-word;
12794  }
12795
12796  @media (min-width: 769px) {
12797      .snb-pdp__info {
12798      padding: 0;
12799    }
12800    
12801    .snb-pdp__title {
12802      font-size: 48px;
12803      line-height: 52px;
12804    }
12805  }
12806
12807  /* ── Rating ── */
12808  .snb-pdp__rating {
12809    display: flex;
12810    align-items: center;
12811    gap: 16px;
12812    margin-bottom: 8px;
12813  }
12814
12815  @media (min-width: 769px) {
12816    .snb-pdp__rating {
12817      margin-bottom: 24px;
12818    }
12819  }
12820
12821  .snb-pdp__stars {
12822    display: flex;
12823    gap: 4px;
12824  }
12825
12826  .snb-pdp__stars svg {
12827    width: 16px;
12828    height: 16px;
12829    fill: var(--snb-pdp-ash);
12830  }
12831
12832  .snb-pdp__rating-number {
12833    font-family: "Orpheus Pro", serif;
12834    font-size: 16px;
12835    line-height: 18px;
12836  }
12837
12838  .snb-pdp__review-count {
12839    font-family: "Orpheus Pro", serif;
12840    font-size: 16px;
12841    line-height: 18px;
12842    color: var(--snb-pdp-ash);
12843  }
12844
12845
12846  /* ── Sale Banner ── */
12847  .snb-pdp__sale-banner {
12848    background: var(--snb-pdp-sale-bg);
12849    color: var(--snb-pdp-sale-color);
12850    border-radius: var(--snb-pdp-radius);
12851    padding: 12px 6px;
12852    text-align: center;
12853    font-family: "Lato", sans-serif;
12854    font-size: 16px;
12855    line-height: 24px;
12856    letter-spacing: 0.5px;
12857    margin-bottom: 8px;
12858  }
12859   .snb-pdp__sale-banner p{
12860    margin: 0;
12861  }
12862
12863  .snb-pdp__sale-banner strong {
12864    font-family: "Lato", sans-serif;
12865    font-weight: 700;
12866  }
12867
12868  /* ── Plan Cards ── */
12869  .snb-pdp__plans {
12870    display: flex;
12871    flex-direction: column;
12872    gap: 8px;
12873    margin-bottom: 24px;
12874  }
12875
12876  .snb-pdp__plan {
12877    border: 1px solid var(--snb-pdp-ash);
12878    border-radius: var(--snb-pdp-radius);
12879    cursor: pointer;
12880    overflow: hidden;
12881    background: var(--snb-pdp-white);
12882    transition: border-color 0.2s ease;
12883    outline: none;
12884  }
12885
12886  .snb-pdp__plan:focus-visible {
12887    outline: 2px solid var(--snb-pdp-lantern);
12888    outline-offset: 2px;
12889  }
12890
12891  .snb-pdp__plan--active {
12892    border: 2px solid var(--snb-pdp-ash);
12893  }
12894
12895  .snb-pdp__plan-header {
12896    display: flex;
12897    align-items: center;
12898    justify-content: space-between;
12899    padding: 12px 24px;
12900    min-height: 64px;
12901    min-width: 0;
12902  }
12903
12904  .snb-pdp__plan--active .snb-pdp__plan-header {
12905    background: var(--snb-pdp-red-beans);
12906    border-color: var(--snb-pdp-red-beans);
12907    color: var(--snb-pdp-white);
12908    border-radius: 7px 7px 0 0;
12909  }
12910
12911  .snb-pdp__plan-left {
12912    display: flex;
12913    flex-direction: column;
12914    gap: 4px;
12915  }
12916
12917  @media (min-width: 1200px) {
12918    .snb-pdp__plan-left {
12919      flex-direction: row;
12920      align-items: center;
12921      gap: 16px;
12922    }
12923     
12924
12925  }
12926
12927  .snb-pdp__plan-badge {
12928    font-family: "Montserrat", sans-serif;
12929    font-weight: 500;
12930    font-size: 10px;
12931    text-transform: uppercase;
12932    line-height: 12px;
12933    order: -1;
12934  }
12935
12936  @media (min-width: 1200px) {
12937    .snb-pdp__plan-badge {
12938      order: 1;
12939      display: inline-flex;
12940      align-items: center;
12941      padding: 6px 12px;
12942      border-radius: 24px;
12943      background: var(--snb-pdp-lantern);
12944      color: var(--snb-pdp-white);
12945    }
12946  }
12947
12948  .snb-pdp__plan--active .snb-pdp__plan-badge {
12949    color: var(--snb-pdp-white);
12950  }
12951
12952  @media (min-width: 1200px) {
12953    .snb-pdp__plan--active .snb-pdp__plan-badge {
12954      background: var(--snb-pdp-badge);
12955    }
12956  }
12957
12958  .snb-pdp__plan:not(.snb-pdp__plan--active) .snb-pdp__plan-badge {
12959    color: var(--snb-pdp-persimmon);
12960  }
12961
12962  @media (min-width: 1200px) {
12963    .snb-pdp__plan:not(.snb-pdp__plan--active) .snb-pdp__plan-badge {
12964      color: var(--snb-pdp-white);
12965      background: var(--snb-pdp-lantern);
12966    }
12967  }
12968
12969  .snb-pdp__plan-name {
12970    font-family: "Orpheus Pro", serif;
12971    font-size: 20px;
12972    line-height: 24px;
12973    word-break: break-word;
12974  }
12975
12976  @media (min-width: 1200px) {
12977    .snb-pdp__plan-name {
12978      font-size: 28px;
12979      line-height: 28px;
12980    }
12981  }
12982
12983  .snb-pdp__plan-right {
12984    display: flex;
12985    flex-direction: column;
12986    align-items: flex-end;
12987    gap: 4px;
12988  }
12989
12990  @media (min-width: 1200px) {
12991    .snb-pdp__plan-right {
12992      flex-direction: row;
12993      align-items: center;
12994      gap: 12px;
12995    }
12996  }
12997
12998  .snb-pdp__plan-save {
12999    font-family: "Montserrat", sans-serif;
13000    font-weight: 500;
13001    font-size: 12px;
13002    text-transform: uppercase;
13003    color: var(--snb-pdp-persimmon);
13004    line-height: 12px;
13005  }
13006
13007  .snb-pdp__plan--active .snb-pdp__plan-save {
13008    color: var(--snb-pdp-white);
13009  }
13010
13011  .snb-pdp__plan-divider {
13012    display: none;
13013    width: 1px;
13014    height: 20px;
13015    background: var(--snb-pdp-border);
13016  }
13017
13018  @media (min-width: 1200px) {
13019    .snb-pdp__plan-divider {
13020      display: block;
13021    }
13022  }
13023
13024  .snb-pdp__plan--active .snb-pdp__plan-divider {
13025    background: rgba(255, 255, 255, 0.3);
13026  }
13027
13028  .snb-pdp__plan-price {
13029    font-family: "Orpheus Pro", serif;
13030    font-size: 20px;
13031    line-height: 24px;
13032  }
13033
13034  @media (min-width: 1200px) {
13035    .snb-pdp__plan-price {
13036      font-size: 28px;
13037      line-height: 28px;
13038    }
13039  }
13040
13041  /* ── Gift Promo ── */
13042  .snb-pdp__promo {
13043    display: none;
13044  }
13045
13046  .snb-pdp__plan--active .snb-pdp__promo {
13047    display: flex;
13048    flex-wrap: wrap;
13049    align-items: center;
13050    gap: 16px;
13051    padding: 16px;
13052    background: var(--snb-pdp-washi);
13053    border-radius: 0 0 7px 7px;
13054  }
13055
13056  @media (min-width: 769px) {
13057    .snb-pdp__promo {
13058      flex-wrap: nowrap;
13059      padding: 16px 24px;
13060    }
13061  }
13062
13063  .snb-pdp__promo-image {
13064    width: 48px;
13065    height: 48px;
13066    border-radius: 4px;
13067    overflow: hidden;
13068    flex-shrink: 0;
13069  }
13070
13071  @media (min-width: 769px) {
13072    .snb-pdp__promo-image {
13073      width: 64px;
13074      height: 64px;
13075    }
13076  }
13077
13078  .snb-pdp__promo-image img {
13079    width: 100%;
13080    height: 100%;
13081    object-fit: cover;
13082    display: block;
13083  }
13084
13085  .snb-pdp__promo-text {
13086    flex: 1;
13087    min-width: 0;
13088  }
13089
13090  .snb-pdp__promo-title {
13091    font-family: "Montserrat", sans-serif;
13092    font-weight: 500;
13093    font-size: 14px;
13094    letter-spacing: 1px;
13095    text-transform: uppercase;
13096    line-height: 16px;
13097    margin: 0 0 4px;
13098  }
13099
13100  @media (min-width: 769px) {
13101    .snb-pdp__promo-title {
13102      font-size: 16px;
13103    }
13104  }
13105
13106  .snb-pdp__promo-desc {
13107    font-size: 12px;
13108    line-height: 16px;
13109    margin: 0;
13110    color: var(--snb-pdp-ash);
13111  }
13112
13113  .snb-pdp__promo-code-btn {
13114    display: inline-flex;
13115    align-items: center;
13116    justify-content: center;
13117    gap: 8px;
13118    padding: 12px 16px;
13119    border: 1px solid var(--snb-pdp-ash);
13120    border-radius: 24px;
13121    background: transparent;
13122    cursor: pointer;
13123    font-family: "Montserrat", sans-serif;
13124    font-weight: 500;
13125    font-size: 12px;
13126    text-transform: uppercase;
13127    color: var(--snb-pdp-ash);
13128    line-height: 16px;
13129    transition: background 0.2s ease;
13130    width: 100%;
13131  }
13132
13133  @media (min-width: 769px) {
13134    .snb-pdp__promo-code-btn {
13135      width: auto;
13136      flex-shrink: 0;
13137    }
13138  }
13139
13140  .snb-pdp__promo-code-btn:hover {
13141    background: var(--snb-pdp-lantern);
13142    color: var(--snb-pdp-white);
13143  }
13144
13145  .snb-pdp__promo-code-btn:hover svg {
13146    stroke: var(--snb-pdp-white);
13147  }
13148
13149  .snb-pdp__promo-code-btn svg {
13150    width: 16px;
13151    height: 16px;
13152    stroke: var(--snb-pdp-ash);
13153    fill: none;
13154  }
13155
13156  /* ── Pricing + CTA ── */
13157  .snb-pdp__checkout {
13158    display: flex;
13159    flex-direction: column;
13160    gap: 8px;
13161    margin-bottom: 24px;
13162  }
13163
13164  @media (min-width: 1200px) {
13165    .snb-pdp__checkout {
13166      flex-direction: row;
13167      align-items: flex-start;
13168      justify-content: space-between;
13169      gap: 24px;
13170    }
13171  }
13172
13173  .snb-pdp__pricing {
13174    display: flex;
13175    flex-direction: row;
13176    align-items: flex-start;
13177    gap: 0;
13178    flex-wrap: wrap;
13179  }
13180
13181  @media (min-width: 1200px) {
13182    .snb-pdp__pricing {
13183      flex-direction: column;
13184    }
13185  }
13186
13187  .snb-pdp__pricing-left {
13188    display: flex;
13189    flex-direction: column;
13190    margin-right: 8px;
13191  }
13192
13193  @media (min-width: 1200px) {
13194    .snb-pdp__pricing-left {
13195      margin-right: 0;
13196    }
13197  }
13198
13199  .snb-pdp__pricing-label {
13200    font-family: "Montserrat", sans-serif;
13201    font-weight: 500;
13202    font-size: 12px;
13203    text-transform: uppercase;
13204    line-height: 12px;
13205  }
13206
13207  .snb-pdp__pricing-save {
13208    font-family: "Montserrat", sans-serif;
13209    font-weight: 500;
13210    font-size: 12px;
13211    text-transform: uppercase;
13212    line-height: 12px;
13213    color: var(--snb-pdp-persimmon);
13214    margin-top: 6px;
13215  }
13216
13217  @media (min-width: 1200px) {
13218    .snb-pdp__pricing-save {
13219      margin-top: 8px;
13220    }
13221  }
13222
13223  .snb-pdp__pricing-right {
13224    display: flex;
13225    flex-direction: column;
13226  }
13227
13228  .snb-pdp__pricing-row {
13229    display: flex;
13230    align-items: baseline;
13231    gap: 16px;
13232  }
13233
13234  .snb-pdp__price {
13235    font-family: "Orpheus Pro", serif;
13236    font-size: 28px;
13237    line-height: 32px;
13238    color: var(--snb-pdp-ash);
13239  }
13240
13241  @media (min-width: 1200px) {
13242    .snb-pdp__price {
13243      font-size: 32px;
13244    }
13245  }
13246
13247  .snb-pdp__compare-price {
13248    font-family: "Orpheus Pro", serif;
13249    font-size: 28px;
13250    line-height: 32px;
13251    color: var(--snb-pdp-persimmon);
13252    text-decoration: line-through;
13253  }
13254
13255  @media (min-width: 1200px) {
13256    .snb-pdp__compare-price {
13257      font-size: 32px;
13258    }
13259  }
13260
13261  .snb-pdp__billing-note {
13262    font-size: 16px;
13263    line-height: 24px;
13264    letter-spacing: 0.5px;
13265    margin-top: 0;
13266    text-align: right;
13267  }
13268
13269  @media (min-width: 1200px) {
13270    .snb-pdp__billing-note {
13271      text-align: left;
13272      margin-top: 0;
13273    }
13274  }
13275
13276  .snb-pdp__form {
13277    width: 100%;
13278  }
13279
13280  @media (min-width: 1200px) {
13281    .snb-pdp__form {
13282      flex: 1;
13283text-align:end;
13284    }
13285      .snb-pdp__cta {
13286    height: 76px;
13287  }
13288
13289  }
13290
13291  .snb-pdp__cta {
13292    text-align: center;
13293  }
13294
13295  .snb-pdp__cta[disabled] {
13296    opacity: 0.5;
13297    cursor: not-allowed;
13298  }
13299
13300  /* ── Divider ── */
13301  .snb-pdp__divider {
13302    border: none;
13303    border-top: 1px solid var(--snb-pdp-border);
13304    margin: 0 0 12px;
13305  }
13306.snb-pdp__disclaimer {
13307  padding-bottom: 12px;
13308  text-align: center;
13309  font-size: 13px
13310}
13311  /* ── USP List ── */
13312  .snb-pdp__usps {
13313    display: flex;
13314    flex-direction: column;
13315    gap: 10px;
13316    margin-bottom: 40px;
13317    content-visibility: auto;
13318    contain-intrinsic-size: auto 200px;
13319  }
13320
13321  .snb-pdp__usp {
13322    display: flex;
13323    align-items: center;
13324    gap: 10px;
13325  }
13326
13327  .snb-pdp__usp-icon {
13328    width: 25px;
13329    height: 25px;
13330    flex-shrink: 0;
13331  }
13332
13333  .snb-pdp__usp-icon img {
13334    width: 100%;
13335    height: 100%;
13336    object-fit: contain;
13337    display: block;
13338  }
13339
13340  .snb-pdp__usp-text {
13341    font-size: 16px;
13342    line-height: 24px;
13343    letter-spacing: 0.5px;
13344  }
13345
13346  /* ── Description ── */
13347  .snb-pdp__description {
13348    display: flex;
13349    flex-direction: column;
13350    gap: 24px;
13351    margin-bottom: 40px;
13352    content-visibility: auto;
13353    contain-intrinsic-size: auto 150px;
13354  }
13355
13356  .snb-pdp__description-heading {
13357    font-family: "Orpheus Pro", serif;
13358    font-weight: 500;
13359    font-size: 24px;
13360    line-height: 30px;
13361    margin: 0;
13362  }
13363
13364  @media (min-width: 769px) {
13365    .snb-pdp__description-heading {
13366      font-size: 28px;
13367    }
13368  }
13369
13370  .snb-pdp__description-text {
13371    font-size: 16px;
13372    line-height: 24px;
13373    letter-spacing: 0.5px;
13374  }
13375
13376  .snb-pdp__description-text p {
13377    margin: 0 0 12px;
13378  }
13379
13380  .snb-pdp__description-text p:last-child {
13381    margin-bottom: 0;
13382  }
13383
13384  /* ── Collapsible Details ── */
13385  .snb-pdp__details-toggle {
13386    display: flex;
13387    align-items: center;
13388    justify-content: space-between;
13389    width: 100%;
13390    padding: 0;
13391    background: none;
13392    border: none;
13393    cursor: pointer;
13394    font-family: "Lato", sans-serif;
13395    font-weight: 600;
13396    font-size: 18px;
13397    letter-spacing: 1px;
13398    line-height: 22px;
13399    color: var(--snb-pdp-ash);
13400    text-align: left;
13401  }
13402
13403  .snb-pdp__details-toggle:focus-visible {
13404    outline: 2px solid var(--snb-pdp-ash);
13405    outline-offset: 4px;
13406    border-radius: 2px;
13407  }
13408
13409  .snb-pdp__details-icon {
13410    width: 12px;
13411    height: 12px;
13412    transition: transform 0.3s ease;
13413    flex-shrink: 0;
13414  }
13415
13416  .snb-pdp__details[open] .snb-pdp__details-icon {
13417    transform: rotate(180deg);
13418  }
13419
13420  .snb-pdp__details-content {
13421    padding-top: 16px;
13422    font-size: 16px;
13423    line-height: 24px;
13424    letter-spacing: 0.5px;
13425  }
13426
13427  .snb-pdp__details-content p {
13428    margin: 0 0 12px;
13429  }
13430
13431  .snb-pdp__details-content p:last-child {
13432    margin-bottom: 0;
13433  }</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
13434        class="snb-pdp__carousel"
13435        data-snb-carousel
13436        role="region"
13437        aria-roledescription="carousel"
13438        aria-label="Product gallery"
13439      ><div
13440              class="snb-pdp__carousel-slide"
13441              role="group"
13442              aria-roledescription="slide"
13443              aria-label="Image 1 of 10"
13444              aria-hidden="false"
13445              
13446            >
13447              <img
13448                src="//bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square.jpg?v=1777541638&width=800"
13449                srcset="//bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square.jpg?v=1777541638&width=400 400w,
13450                  //bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square.jpg?v=1777541638&width=600 600w,
13451                  //bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square.jpg?v=1777541638&width=800 800w"
13452                sizes="(min-width: 769px) 50vw, 85vw"
13453                loading="lazy"
13454                alt="Bokksu Snack Box Subscription"
13455                width="1200"
13456                height="1200"
13457              >
13458            </div><div
13459              class="snb-pdp__carousel-slide"
13460              role="group"
13461              aria-roledescription="slide"
13462              aria-label="Image 2 of 10"
13463              aria-hidden="true"
13464              
13465            >
13466              <img
13467                src="//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_001_Fullcrop_HiRes.jpg?v=1780550983&width=800"
13468                srcset="//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_001_Fullcrop_HiRes.jpg?v=1780550983&width=400 400w,
13469                  //bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_001_Fullcrop_HiRes.jpg?v=1780550983&width=600 600w,
13470                  //bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_001_Fullcrop_HiRes.jpg?v=1780550983&width=800 800w"
13471                sizes="(min-width: 769px) 50vw, 85vw"
13472                loading="lazy"
13473                alt="Bokksu Snack Box Subscription"
13474                width="3178"
13475                height="2224"
13476              >
13477            </div><div
13478              class="snb-pdp__carousel-slide"
13479              role="group"
13480              aria-roledescription="slide"
13481              aria-label="Image 3 of 10"
13482              aria-hidden="true"
13483              
13484            >
13485              <img
13486                src="//bokksu.com/cdn/shop/files/SNB_2505_SOJ_Revamp_HeroBanner_03_1200x1500_2.jpg?v=1780551296&width=800"
13487                srcset="//bokksu.com/cdn/shop/files/SNB_2505_SOJ_Revamp_HeroBanner_03_1200x1500_2.jpg?v=1780551296&width=400 400w,
13488                  //bokksu.com/cdn/shop/files/SNB_2505_SOJ_Revamp_HeroBanner_03_1200x1500_2.jpg?v=1780551296&width=600 600w,
13489                  //bokksu.com/cdn/shop/files/SNB_2505_SOJ_Revamp_HeroBanner_03_1200x1500_2.jpg?v=1780551296&width=800 800w"
13490                sizes="(min-width: 769px) 50vw, 85vw"
13491                loading="lazy"
13492                alt="Bokksu Snack Box Subscription"
13493                width="1200"
13494                height="1500"
13495              >
13496            </div><div
13497              class="snb-pdp__carousel-slide"
13498              role="group"
13499              aria-roledescription="slide"
13500              aria-label="Image 4 of 10"
13501              aria-hidden="true"
13502              
13503            >
13504              <img
13505                src="//bokksu.com/cdn/shop/files/SNB2608_MemoriesofSummer_HeroBanner_780x800_b5940a7b-3814-4069-a6c9-8de5f1104d21.jpg?v=1788502617&width=800"
13506                srcset="//bokksu.com/cdn/shop/files/SNB2608_MemoriesofSummer_HeroBanner_780x800_b5940a7b-3814-4069-a6c9-8de5f1104d21.jpg?v=1788502617&width=400 400w,
13507                  //bokksu.com/cdn/shop/files/SNB2608_MemoriesofSummer_HeroBanner_780x800_b5940a7b-3814-4069-a6c9-8de5f1104d21.jpg?v=1788502617&width=600 600w,
13508                  //bokksu.com/cdn/shop/files/SNB2608_MemoriesofSummer_HeroBanner_780x800_b5940a7b-3814-4069-a6c9-8de5f1104d21.jpg?v=1788502617&width=800 800w"
13509                sizes="(min-width: 769px) 50vw, 85vw"
13510                loading="lazy"
13511                alt="Bokksu Snack Box Subscription"
13512                width="780"
13513                height="800"
13514              >
13515            </div><div
13516              class="snb-pdp__carousel-slide"
13517              role="group"
13518              aria-roledescription="slide"
13519              aria-label="Image 5 of 10"
13520              aria-hidden="true"
13521              
13522            >
13523              <img
13524                src="//bokksu.com/cdn/shop/files/SNB2607_BambooWishesofTanabata_Hero_2000x2000_01.jpg?v=1785902687&width=800"
13525                srcset="//bokksu.com/cdn/shop/files/SNB2607_BambooWishesofTanabata_Hero_2000x2000_01.jpg?v=1785902687&width=400 400w,
13526                  //bokksu.com/cdn/shop/files/SNB2607_BambooWishesofTanabata_Hero_2000x2000_01.jpg?v=1785902687&width=600 600w,
13527                  //bokksu.com/cdn/shop/files/SNB2607_BambooWishesofTanabata_Hero_2000x2000_01.jpg?v=1785902687&width=800 800w"
13528                sizes="(min-width: 769px) 50vw, 85vw"
13529                loading="lazy"
13530                alt="Bokksu Snack Box Subscription"
13531                width="2000"
13532                height="2000"
13533              >
13534            </div><div
13535              class="snb-pdp__carousel-slide"
13536              role="group"
13537              aria-roledescription="slide"
13538              aria-label="Image 6 of 10"
13539              aria-hidden="true"
13540              
13541            >
13542              <img
13543                src="//bokksu.com/cdn/shop/files/Angled-Hero-Mobile_02168747-e2a4-410d-ba69-f4cd66e540bd.png?v=1789715827&width=800"
13544                srcset="//bokksu.com/cdn/shop/files/Angled-Hero-Mobile_02168747-e2a4-410d-ba69-f4cd66e540bd.png?v=1789715827&width=400 400w,
13545                  //bokksu.com/cdn/shop/files/Angled-Hero-Mobile_02168747-e2a4-410d-ba69-f4cd66e540bd.png?v=1789715827&width=600 600w,
13546                  //bokksu.com/cdn/shop/files/Angled-Hero-Mobile_02168747-e2a4-410d-ba69-f4cd66e540bd.png?v=1789715827&width=800 800w"
13547                sizes="(min-width: 769px) 50vw, 85vw"
13548                loading="lazy"
13549                alt="Bokksu Snack Box Subscription"
13550                width="1080"
13551                height="1080"
13552              >
13553            </div><div
13554              class="snb-pdp__carousel-slide"
13555              role="group"
13556              aria-roledescription="slide"
13557              aria-label="Image 7 of 10"
13558              aria-hidden="true"
13559              
13560            >
13561              <img
13562                src="//bokksu.com/cdn/shop/files/Overhead-Hero-_mobile-Header_fcd713ce-6049-4f8
135626-9f85-dc3a854162ae.png?v=1778043728&width=800"
13563                srcset="//bokksu.com/cdn/shop/files/Overhead-Hero-_mobile-Header_fcd713ce-6049-4f86-9f85-dc3a854162ae.png?v=1778043728&width=400 400w,
13564                  //bokksu.com/cdn/shop/files/Overhead-Hero-_mobile-Header_fcd713ce-6049-4f86-9f85-dc3a854162ae.png?v=1778043728&width=600 600w,
13565                  //bokksu.com/cdn/shop/files/Overhead-Hero-_mobile-Header_fcd713ce-6049-4f86-9f85-dc3a854162ae.png?v=1778043728&width=800 800w"
13566                sizes="(min-width: 769px) 50vw, 85vw"
13567                loading="lazy"
13568                alt="Bokksu Snack Box Subscription"
13569                width="1080"
13570                height="1080"
13571              >
13572            </div><div
13573              class="snb-pdp__carousel-slide"
13574              role="group"
13575              aria-roledescription="slide"
13576              aria-label="Image 8 of 10"
13577              aria-hidden="true"
13578              
13579            >
13580              <img
13581                src="//bokksu.com/cdn/shop/files/page2.jpg?v=1778043607&width=800"
13582                srcset="//bokksu.com/cdn/shop/files/page2.jpg?v=177804360
135827&width=400 400w,
13583                  //bokksu.com/cdn/shop/files/page2.jpg?v=1778043607&width=600 600w,
13584                  //bokksu.com/cdn/shop/files/page2.jpg?v=1778043607&width=800 800w"
13585                sizes="(min-width: 769px) 50vw, 85vw"
13586                loading="lazy"
13587                alt="Bokksu Snack Box Subscription"
13588                width="1000"
13589                height="1000"
13590              >
13591            </div><div
13592              class="snb-pdp__carousel-slide"
13593              role="group"
13594              aria-roledescription="slide"
13595              aria-label="Image 9 of 10"
13596              aria-hidden="true"
13597              
13598            >
13599              <img
13600                src="//bokksu.com/cdn/shop/files/2603-Sakura-Silk-Lounge-2000x2000-SNB_efd4e2d2-a8d5-416e-aa7f-cf270f76acf6.jpg?v=1777541673&width=800"
13601                srcset="//bokksu.com/cdn/shop/files/2603-Sakura-Silk-Lounge-2000x2000-SNB_efd4e2d2-a8d5-416e-aa7f-cf270f76acf6.jpg?v=1777541673&width=400 400w,
13602                  //bokksu.com/cdn/shop/files/2603-Sakura-Silk-Lounge-2000x2000-SNB_efd4e2d2-a8d5-416e-aa7f-cf270f76acf6.jpg?v=1777541673&width=600 600w,
13603                  //bokksu.com/cdn/shop/files/2603-Sakura-Silk-Lounge-2000x2000-SNB_efd4e2d2-a8d5-416e-aa7f-cf270f76acf6.jpg?v=1777541673&width=800 800w"
13604                sizes="(min-width: 769px) 50vw, 85vw"
13605                loading="lazy"
13606                alt="Bokksu Snack Box Subscription"
13607                width="2000"
13608                height="2000"
13609              >
13610            </div><div
13611              class="snb-pdp__carousel-slide"
13612              role="group"
13613              aria-roledescription="slide"
13614              aria-label="Image 10 of 10"
13615              aria-hidden="true"
13616              
13617            >
13618              <img
13619                src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_e780380fb0b949f1a5879de775e58643_8b4e7e54-7888-4c42-aa6b-e7246ecf436e.webp?v=1777541706&width=800"
13620                srcset="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_e780380fb0b949f1a5879de775e58643_8b4e7e54-7888-4c42-aa6b-e7246ecf436e.webp?v=1777541706&width=400 400w,
13621                  //bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_e780380fb0b949f1a5879de775e58643_8b4e7e54-7888-4c42-aa6b-e7246ecf436e.webp?v=1777541706&width=600 600w,
13622                  //bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_e780380fb0b949f1a5879de775e58643_8b4e7e54-7888-4c42-aa6b-e7246ecf436e.webp?v=1777541706&width=800 800w"
13623                sizes="(min-width: 769px) 50vw, 85vw"
13624                loading="lazy"
13625                alt="Bokksu Snack Box Subscription"
13626                width="1200"
13627                height="1200"
13628              >
13629            </div></div><div class="snb-pdp__dots" data-snb-dots role="group" aria-label="Gallery pagination"><button
13630                type="button"
13631                class="snb-pdp__dot snb-pdp__dot--active"
13632                data-snb-dot="0"
13633                aria-label="Go to image 1"
13634                aria-current="true"
13635              ></button><button
13636                type="button"
13637                class="snb-pdp__dot"
13638                data-snb-dot="1"
13639                aria-label="Go to image 2"
13640                
13641              ></button><button
13642                type="button"
13643                class="snb-pdp__dot"
13644                data-snb-dot="2"
13645                aria-label="Go to image 3"
13646                
13647              ></button><button
13648                type="button"
13649                class="snb-pdp__dot"
13650                data-snb-dot="3"
13651                aria-label="Go to image 4"
13652                
13653              ></button><button
13654                type="button"
13655                class="snb-pdp__dot"
13656                data-snb-dot="4"
13657                aria-label="Go to image 5"
13658                
13659              ></button><button
13660                type="button"
13661                class="snb-pdp__dot"
13662                data-snb-dot="5"
13663                aria-label="Go to image 6"
13664                
13665              ></button><button
13666                type="button"
13667                class="snb-pdp__dot"
13668                data-snb-dot="6"
13669                aria-label="Go to image 7"
13670                
13671              ></button><button
13672                type="button"
13673                class="snb-pdp__dot"
13674                data-snb-dot="7"
13675                aria-label="Go to image 8"
13676                
13677              ></button><button
13678                type="button"
13679                class="snb-pdp__dot"
13680                data-snb-dot="8"
13681                aria-label="Go to image 9"
13682                
13683              ></button><button
13684                type="button"
13685                class="snb-pdp__dot"
13686                data-snb-dot="9"
13687                aria-label="Go to image 10"
13688                
13689              ></button></div><div class="snb-pdp__desktop-gallery"><div class="snb-pdp__thumbs" role="group" aria-label="Image thumbnails">
13690            <div class="snb-pdp__thumbs-scroller" data-snb-thumbs><button
13691                    type="button"
13692                    class="snb-pdp__thumb snb-pdp__thumb--active"
13693                    data-snb-thumb
13694                    data-index="0"
13695                    data-img-src="//bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square.jpg?v=1777541638&width=1200"
13696                    data-img-alt="Bokksu Snack Box Subscription"
13697                    aria-label="View image 1 of 10"
13698                    aria-current="true"
13699                    
13700                  >
13701                    <img
13702                      src="//bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square.jpg?v=1777541638&width=160"
13703                      loading="lazy"
13704                      alt=""
13705                      width="76"
13706                      height="76"
13707                    >
13708                  </button><button
13709                    type="button"
13710                    class="snb-pdp__thumb"
13711                    data-snb-thumb
13712                    data-index="1"
13713                    data-img-src="//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_001_Fullcrop_HiRes.jpg?v=1780550983&width=1200"
13714                    data-img-alt="Bokksu Snack Box Subscription"
13715                    aria-label="View image 2 of 10"
13716                    
13717                    
13718                  >
13719                    <img
13720                      src="//bokksu.com/cdn/shop/files/SeasonsOfJapan_Box_Hero_001_Fullcrop_HiRes.jpg?v=1780550983&width=160"
13721                      loading="lazy"
13722                      alt=""
13723                      width="76"
13724                      height="76"
13725                    >
13726                  </button><button
13727                    type="button"
13728                    class="snb-pdp__thumb"
13729                    data-snb-thumb
13730                    data-index="2"
13731                    data-img-src="//bokksu.com/cdn/shop/files/SNB_2505_SOJ_Revamp_HeroBanner_03_1200x1500_2.jpg?v=1780551296&width=1200"
13732                    data-img-alt="Bokksu Snack Box Subscription"
13733                    aria-label="View image 3 of 10"
13734                    
13735                    
13736                  >
13737                    <img
13738                      src="//bokksu.com/cdn/shop/files/SNB_2505_SOJ_Revamp_HeroBanner_03_1200x1500_2.jpg?v=1780551296&width=160"
13739                      loading="lazy"
13740                      alt=""
13741                      width="76"
13742                      height="76"
13743                    >
13744                  </button><button
13745                    type="button"
13746                    class="snb-pdp__thumb"
13747                    data-snb-thumb
13748                    data-index="3"
13749                    data-img-src="//bokksu.com/cdn/shop/files/SNB2608_MemoriesofSummer_HeroBanner_780x800_b5940a7b-3814-4069-a6c9-8de5f1104d21.jpg?v=1788502617&width=1200"
13750                    data-img-alt="Bokksu Snack Box Subscription"
13751                    aria-label="View image 4 of 10"
13752                    
13753                    
13754                  >
13755                    <img
13756                      src="//bokksu.com/cdn/shop/files/SNB2608_MemoriesofSummer_HeroBanner_780x800_b5940a7b-3814-4069-a6c9-8de5f1104d21.jpg?v=1788502617&width=160"
13757                      loading="lazy"
13758                      alt=""
13759                      width="76"
13760                      height="76"
13761                    >
13762                  </button><button
13763                    type="button"
13764                    class="snb-pdp__thumb"
13765                    data-snb-thumb
13766                    data-index="4"
13767                    data-img-src="//bokksu.com/cdn/shop/files/SNB2607_BambooWishesofTanabata_Hero_2000x2000_01.jpg?v=1785902687&width=1200"
13768                    data-img-alt="Bokksu Snack Box Subscription"
13769                    aria-label="View image 5 of 10"
13770                    
13771                    
13772                  >
13773                    <img
13774                      src="//bokksu.com/cdn/shop/files/SNB2607_BambooWishesofTanabata_Hero_2000x2000_01.jpg?v=1785902687&width=160"
13775                      loading="lazy"
13776                      alt=""
13777                      width="76"
13778                      height="76"
13779                    >
13780                  </button><button
13781                    type="button"
13782                    class="snb-pdp__thumb"
13783                    data-snb-thumb
13784                    data-index="5"
13785                    data-img-src="//bokksu.com/cdn/shop/files/Angled-Hero-Mobile_02168747-e2a4-410d-ba69-f4cd66e540bd.png?v=1789715827&width=1200"
13786                    data-img-alt="Bokksu Snack Box Subscription"
13787                    aria-label="View image 6 of 10"
13788                    
13789                    
13790                  >
13791                    <img
13792                      src="//bokksu.com/cdn/shop/files/Angled-Hero-Mobile_02168747-e2a4-410d-ba69-f4cd66e540bd.png?v=1789715827&width=160"
13793                      loading="lazy"
13794                      alt=""
13795                      width="76"
13796                      height="76"
13797                    >
13798                  </button><button
13799                    type="button"
13800                    class="snb-pdp__thumb"
13801                    data-snb-thumb
13802                    data-index="6"
13803                    data-img-src="//bokksu.com/cdn/shop/files/Overhead-Hero-_mobile-Header_fcd713ce-6049-4f8
138036-9f85-dc3a854162ae.png?v=1778043728&width=1200"
13804                    data-img-alt="Bokksu Snack Box Subscription"
13805                    aria-label="View image 7 of 10"
13806                    
13807                    
13808                  >
13809                    <img
13810                      src="//bokksu.com/cdn/shop/files/Overhead-Hero-_mobile-Header_fcd713ce-6049-4f86-9f85-dc3a854162ae.png?v=1778043728&width=160"
13811                      loading="lazy"
13812                      alt=""
13813                      width="76"
13814                      height="76"
13815                    >
13816                  </button><button
13817                    type="button"
13818                    class="snb-pdp__thumb"
13819                    data-snb-thumb
13820                    data-index="7"
13821                    data-img-src="//bokksu.com/cdn/shop/files/page2.jpg?v=1778043607&width=1200"
13822                    data-img-alt="Bokksu Snack Box Subscription"
13823                    aria-label="View image 8 of 10"
13824                    
13825                    
13826                  >
13827                    <img
13828                      src="//bokksu.com/cdn/shop/files/page2.jpg?v=177804360
138287&width=160"
13829                      loading="lazy"
13830                      alt=""
13831                      width="76"
13832                      height="76"
13833                    >
13834                  </button><button
13835                    type="button"
13836                    class="snb-pdp__thumb"
13837                    data-snb-thumb
13838                    data-index="8"
13839                    data-img-src="//bokksu.com/cdn/shop/files/2603-Sakura-Silk-Lounge-2000x2000-SNB_efd4e2d2-a8d5-416e-aa7f-cf270f76acf6.jpg?v=1777541673&width=1200"
13840                    data-img-alt="Bokksu Snack Box Subscription"
13841                    aria-label="View image 9 of 10"
13842                    
13843                    
13844                  >
13845                    <img
13846                      src="//bokksu.com/cdn/shop/files/2603-Sakura-Silk-Lounge-2000x2000-SNB_efd4e2d2-a8d5-416e-aa7f-cf270f76acf6.jpg?v=1777541673&width=160"
13847                      loading="lazy"
13848                      alt=""
13849                      width="76"
13850                      height="76"
13851                    >
13852                  </button><button
13853                    type="button"
13854                    class="snb-pdp__thumb"
13855                    data-snb-thumb
13856                    data-index="9"
13857                    data-img-src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_e780380fb0b949f1a5879de775e58643_8b4e7e54-7888-4c42-aa6b-e7246ecf436e.webp?v=1777541706&width=1200"
13858                    data-img-alt="Bokksu Snack Box Subscription"
13859                    aria-label="View image 10 of 10"
13860                    
13861                    
13862                  >
13863                    <img
13864                      src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_e780380fb0b949f1a5879de775e58643_8b4e7e54-7888-4c42-aa6b-e7246ecf436e.webp?v=1777541706&width=160"
13865                      loading="lazy"
13866                      alt=""
13867                      width="76"
13868                      height="76"
13869                    >
13870                  </button></div><button type="button" class="snb-pdp__thumb-arrow" data-snb-thumb-next aria-label="Scroll thumbnails down">
13871                <svg viewBox="0 0 10 6" fill="none" aria-hidden="true">
13872                  <path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
13873                </svg>
13874              </button></div><div class="snb-pdp__main-image" data-snb-main-image><img
13875                src="//bokksu.com/cdn/shop/files/SNB_Seasons_Hero_Overhead_Square.jpg?v=1777541638&width=1200"
13876                loading="lazy"
13877                alt="Bokksu Snack Box Subscription"
13878                width="1200"
13879                height="1200"
13880              ></div>
13881      </div></div><div class="snb-pdp__info">
13882    <p class="snb-pdp__preheader">Choose your plan</p>
13883     
13884          
13885<h2 class="snb-pdp__title">Snack Box Subscription</h2>
13886<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
13887              class="snb-pdp__plan"
13888              data-snb-plan
13889              role="radio"
13890              tabindex="-1"
13891              aria-checked="false"aria-label="12 Months, Best Value, $32.99 per month, Save $84. Includes gifts with purchase: PLUS 1 Genji Pie (2 pc) and 2 CACAOCAT Chocolate Dark."
13892              data-base-label="12 Months, Best Value, $32.99 per month, Save $84"
13893              data-promo-label="Promotion: gifts with purchase, PLUS 1 Genji Pie (2 pc) and 2 CACAOCAT Chocolate Dark."
13894              data-variant-id="42939935326294"
13895              data-selling-plan-id="2094104662"
13896              data-price="$395.88"
13897              data-compare-price="$479.88"
13898              data-save-text="Save $84"
13899              data-billing-note="Billed annually, cancel anytime."
13900              
13901            >
13902              <div class="snb-pdp__plan-header">
13903                <div class="snb-pdp__plan-left">
13904                  <span class="snb-pdp__plan-name">12 Months</span><span class="snb-pdp__plan-badge">Best Value</span></div>
13905                <div class="snb-pdp__plan-right"><span class="snb-pdp__plan-save">Save $84</span>
13906                    <span class="snb-pdp__plan-divider" aria-hidden="true"></span><span class="snb-pdp__plan-price" aria-hidden="true">$32.99/mo</span>
13907                  <span class="visually-hidden">$32.99 per month</span>
13908                </div>
13909              </div><div class="snb-pdp__promo" data-snb-promo><div class="snb-pdp__promo-image">
13910                      <img
13911                        src="//bokksu.com/cdn/shop/files/bokksu_feb26_16_CACAOCAT_Chocolate_Dark_b.jpg?v=1776857270&width=128"
13912                        loading="lazy"
13913                        alt="gifts with purchase"
13914                        width="64"
13915                        height="64"
13916                      >
13917                    </div><div class="snb-pdp__promo-text">
13918                    <p class="snb-pdp__promo-title">gifts with purchase</p><p class="snb-pdp__promo-desc">PLUS 1 Genji Pie (2 pc) and 2 CACAOCAT Chocolate Dark.</p></div></div></div><div
13919              class="snb-pdp__plan snb-pdp__plan--active"
13920              data-snb-plan
13921              role="radio"
13922              tabindex="0"
13923              aria-checked="true"aria-label="6 Months, POPULAR, $33.99 per month, Save $36. Includes gifts with purchase: PLUS 1 Genji Pie (2 pc) and 2 CACAOCAT Chocolate Dark."
13924              data-base-label="6 Months, POPULAR, $33.99 per month, Save $36"
13925              data-promo-label="Promotion: gifts with purchase, PLUS 1 Genji Pie (2 pc) and 2 CACAOCAT Chocolate Dark."
13926              data-variant-id="42939934900310"
13927              data-selling-plan-id="2093940822"
13928              data-price="$203.94"
13929              data-compare-price="$239.94"
13930              data-save-text="Save $36"
13931              data-billing-note="Billed every 6 months, cancel anytime."
13932              
13933            >
13934              <div class="snb-pdp__plan-header">
13935                <div class="snb-pdp__plan-left">
13936                  <span class="snb-pdp__plan-name">6 Months</span><span class="snb-pdp__plan-badge">POPULAR</span></div>
13937                <div class="snb-pdp__plan-right"><span class="snb-pdp__plan-save">Save $36</span>
13938                    <span class="snb-pdp__plan-divider" aria-hidden="true"></span><span class="snb-pdp__plan-price" aria-hidden="true">$33.99/mo</span>
13939                  <span class="visually-hidden">$33.99 per month</span>
13940                </div>
13941              </div><div class="snb-pdp__promo" data-snb-promo><div class="snb-pdp__promo-image">
13942                      <img
13943                        src="//bokksu.com/cdn/shop/files/bokksu_feb26_12_Genji_Pie_b.jpg?v=1776857036&width=128"
13944                        loading="lazy"
13945                        alt="gifts with purchase"
13946                        width="64"
13947                        height="64"
13948                      >
13949                    </div><div class="snb-pdp__promo-text">
13950                    <p class="snb-pdp__promo-title">gifts with purchase</p><p class="snb-pdp__promo-desc">PLUS 1 Genji Pie (2 pc) and 2 CACAOCAT Chocolate Dark.</p></div></div></div><div
13951              class="snb-pdp__plan"
13952              data-snb-plan
13953              role="radio"
13954              tabindex="-1"
13955              aria-checked="false"aria-label="3 Months, $35.99 per month, Save $12. Includes gifts with purchase: PLUS 1 Genji Pie (2 pc) and 2 CACAOCAT Chocolate Dark."
13956              data-base-label="3 Months, $35.99 per month, Save $12"
13957              data-promo-label="Promotion: gifts with purchase, PLUS 1 Genji Pie (2 pc) and 2 CACAOCAT Chocolate Dark."
13958              data-variant-id="42939930902614"
13959              data-selling-plan-id="2093842518"
13960              data-price="$107.97"
13961              data-compare-price="$119.97"
13962              data-save-text="Save $12"
13963              data-billing-note="Billed every 3 months, cancel anytime."
13964              
13965            >
13966              <div class="snb-pdp__plan-header">
13967                <div class="snb-pdp__plan-left">
13968                  <span class="snb-pdp__plan-name">3 Months</span></div>
13969                <div class="snb-pdp__plan-right"><span class="snb-pdp__plan-save">Save $12</span>
13970                    <span class="snb-pdp__plan-divider" aria-hidden="true"></span><span class="snb-pdp__plan-price" aria-hidden="true">$35.99/mo</span>
13971                  <span class="visually-hidden">$35.99 per month</span>
13972                </div>
13973              </div><div class="snb-pdp__promo" data-snb-promo><div class="snb-pdp__promo-image">
13974                      <img
13975                        src="//bokksu.com/cdn/shop/files/bokksu_feb26_11_Genji_Pie_a.jpg?v=1776857024&width=128"
13976                        loading="lazy"
13977                        alt="gifts with purchase"
13978                        width="64"
13979                        height="64"
13980                      >
13981                    </div><div class="snb-pdp__promo-text">
13982                    <p class="snb-pdp__promo-title">gifts with purchase</p><p class="snb-pdp__promo-desc">PLUS 1 Genji Pie (2 pc) and 2 CACAOCAT Chocolate Dark.</p></div></div></div><div
13983              class="snb-pdp__plan"
13984              data-snb-plan
13985              role="radio"
13986              tabindex="-1"
13987              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."
13988              data-base-label="1 Month, $39.99 per month"
13989              data-promo-label="Promotion: gifts with purchase, Upgrade to a 3, 6, or 12-month plan to receive exclusive gifts."
13990              data-variant-id="42939935850582"
13991              data-selling-plan-id="2093514838"
13992              data-price="$39.99"
13993              data-compare-price=""
13994              data-save-text=""
13995              data-billing-note="Billed monthly, cancel anytime."
13996              
13997            >
13998              <div class="snb-pdp__plan-header">
13999                <div class="snb-pdp__plan-left">
14000                  <span class="snb-pdp__plan-name">1 Month</span></div>
14001                <div class="snb-pdp__plan-right"><span class="snb-pdp__plan-price" aria-hidden="true">$39.99/mo</span>
14002                  <span class="visually-hidden">$39.99 per month</span>
14003                </div>
14004              </div><div class="snb-pdp__promo" data-snb-promo><div class="snb-pdp__promo-image">
14005                      <img
14006                        src="//bokksu.com/cdn/shop/files/ChatGPT-2511_Xmas_Wrapping_3.png?v=1778486027&width=128"
14007                        loading="lazy"
14008                        alt="gifts with purchase"
14009                        width="64"
14010                        height="64"
14011                      >
14012                    </div><div class="snb-pdp__promo-text">
14013                    <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__checkout">
14014      <div class="snb-pdp__pricing">
14015        <div class="snb-pdp__pricing-left">
14016          <span class="snb-pdp__pricing-label">Total:</span>
14017          <span class="snb-pdp__pricing-save" data-snb-pricing-save>
14018            Save $36
14019          </span>
14020        </div>
14021        <div class="snb-pdp__pricing-right">
14022          <div class="snb-pdp__pricing-row">
14023            <span class="snb-pdp__price" data-snb-total-price>
14024              $203.94
14025            </span>
14026            <span class="snb-pdp__compare-price" data-snb-compare-price>
14027              $239.94
14028            </span>
14029          </div>
14030          <span class="snb-pdp__billing-note" data-snb-billing-note>
14031            Billed every 6 months, cancel anytime.
14032          </span>
14033        </div>
14034      </div>
14035
14036      <div class="snb-pdp__form">
14037        <button
14038          type="button"
14039          class="btn btn-custom btn-orange-bg snb-pdp__cta"
14040          data-snb-add-to-cart
14041          aria-busy="false"
14042          
14043        >
14044          Select this Plan
14045        </button>
14046        <div class="visually-hidden" data-snb-status aria-live="polite" aria-atomic="true"></div>
14047      </div>
14048    </div><hr class="snb-pdp__divider">
14049<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">
14050                <img
14051                  src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_ab9fda4723b448e6854df90186c75da0.png?v=1773117736&width=50"
14052                  loading="lazy"
14053                  alt=""
14054                  width="25"
14055                  height="25"
14056                >
14057              </div><span class="snb-pdp__usp-text">20+ Japan-exclusive snacks</span>
14058          </div><div class="snb-pdp__usp" ><div class="snb-pdp__usp-icon">
14059                <img
14060                  src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_fe8ec12a8ae547f39c71e48c
14060d2191849.png?v=1773117801&width=50"
14061                  loading="lazy"
14062                  alt=""
14063                  width="25"
14064                  height="25"
14065                >
14066              </div><span class="snb-pdp__usp-text">20 to 24-page Culture Guide</span>
14067          </div><div class="snb-pdp__usp" ><div class="snb-pdp__usp-icon">
14068                <img
14069                  src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_b30ec418f2d3472bb3ad400b0d6b69ad.png?v=1773117735&width=50"
14070                  loading="lazy"
14071                  alt=""
14072                  width="25"
14073                  height="25"
14074                >
14075              </div><span class="snb-pdp__usp-text">New themed curation every month</span>
14076          </div><div class="snb-pdp__usp" ><div class="snb-pdp__usp-icon">
14077                <img
14078                  src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_d4b28eded79a47828bae28b497f49244.png?v=1773117736&width=50"
14079                  loading="lazy"
14080                  alt=""
14081                  width="25"
14082                  height="25"
14083                >
14084              </div><span class="snb-pdp__usp-text">Support Japanese family businesses</span>
14085          </div><div class="snb-pdp__usp" ><div class="snb-pdp__usp-icon">
14086                <img
14087                  src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_38de99aead68404aa5c8fc91b1d74d8d.png?v=1773117736&width=50"
14088                  loading="lazy"
14089                  alt=""
14090                  width="25"
14091                  height="25"
14092                >
14093              </div><span class="snb-pdp__usp-text">Great balance of sweet & savory flavors</span>
14094          </div><div class="snb-pdp__usp" ><div class="snb-pdp__usp-icon">
14095                <img
14096                  src="//bokksu.com/cdn/shop/files/assets_81be4429d33e40d388a5b4ad887fc3f3_d4b28eded79a47828bae28b497f49244_1.png?v=1773117736&width=50"
14097                  loading="lazy"
14098                  alt=""
14099                  width="25"
14100                  height="25"
14101                >
14102              </div><span class="snb-pdp__usp-text">Limited-Time Bonus: Special Gifts added to your new Subscription (3M/6M/12M)</span>
14103          </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 <strong>20–22 Japanese snacks, sweets, and a tea</strong>, expertly curated in celebration of Japan's four seasons. You’ll also find a <strong>24-page Culture Guide </strong>detailing each product’s origin, flavor notes, and common allergens.</li><li>New 3-, 6-, and 12-month subscribers will receive 1 Genji Pie (2 pc) and 2 CACAOCAT Chocolate Dark.</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 <a href="mailto:[email protected]">[email protected]</a>.</li></ul></div></div></div>
14104</section>
14105
14106<script>
14107  (function() {
14108    var section = document.querySelector('[data-section-id="template--17749318303830__snb_subs_panel_3rfYyF"]')
14109    if (!section) return
14110
14111    function initSection() {
14112      var plans = section.querySelectorAll('[data-snb-plan]')
14113      var totalPrice = section.querySelector('[data-snb-total-price]')
14114      var comparePrice = section.querySelector('[data-snb-compare-price]')
14115      var pricingSave = section.querySelector('[data-snb-pricing-save]')
14116      var billingNote = section.querySelector('[data-snb-billing-note]')
14117      var addToCartBtn = section.querySelector('[data-snb-add-to-cart]')
14118      var statusRegion = section.querySelector('[data-snb-status]')
14119      var activePromoWrap = section.querySelector('[data-snb-active-promo]')
14120      var activePromoText = section.querySelector('[data-snb-active-promo-text]')
14121      var activePromoCopy = section.querySelector('[data-snb-active-promo-copy]')
14122      var activePromoCodeText = section.querySelector('[data-snb-active-promo-code-text]')
14123      var thumbs = section.querySelectorAll('[data-snb-thumb]')
14124      var mainImage = section.querySelector('[data-snb-main-image]')
14125      var thumbNextBtn = section.querySelector('[data-snb-thumb-next]')
14126      var thumbScroller = section.querySelector('[data-snb-thumbs]')
14127
14128      // Lazy load fade-in
14129      function handleImageLoad(img) {
14130        if (img.complete && img.naturalWidth > 0) {
14131          img.classList.add('snb-pdp--loaded')
14132        } else {
14133          img.addEventListener('load', function() {
14134            img.classList.add('snb-pdp--loaded')
14135          })
14136        }
14137      }
14138
14139      section.querySelectorAll('.snb-pdp__carousel-slide img, .snb-pdp__main-image img').forEach(handleImageLoad)
14140
14141    // Track active plan variant + selling plan
14142    var activePlan = {
14143      variantId: '',
14144      sellingPlanId: ''
14145    }
14146
14147    function setActivePlan(planEl) {
14148      activePlan.variantId = planEl.getAttribute('data-variant-id') || ''
14149      activePlan.sellingPlanId = planEl.getAttribute('data-selling-plan-id') || ''
14150    }
14151
14152    function selectPlan(plan) {
14153      plans.forEach(function(p) {
14154        p.classList.remove('snb-pdp__plan--active')
14155        p.setAttribute('aria-checked', 'false')
14156        p.setAttribute('tabindex', '-1')
14157        /* Reset to base label (no promo) for unselected plans */
14158        var baseLabel = p.getAttribute('data-base-label')
14159        if (baseLabel) p.setAttribute('aria-label', baseLabel)
14160      })
14161      plan.classList.add('snb-pdp__plan--active')
14162      plan.setAttribute('aria-checked', 'true')
14163      plan.setAttribute('tabindex', '0')
14164      /* Add promo to aria-label only for the selected plan */
14165      var baseLabel = plan.getAttribute('data-base-label') || ''
14166      var promoLabel = plan.getAttribute('data-promo-label') || ''
14167      plan.setAttribute('aria-label', promoLabel ? baseLabel + ', ' + promoLabel : baseLabel)
14168      plan.focus()
14169      setActivePlan(plan)
14170
14171      var price = plan.getAttribute('data-price')
14172      var compare = plan.getAttribute('data-compare-price')
14173      var save = plan.getAttribute('data-save-text')
14174      var note = plan.getAttribute('data-billing-note')
14175
14176      if (totalPrice && price) totalPrice.textContent = price
14177      if (comparePrice) {
14178        comparePrice.textContent = compare || ''
14179        comparePrice.style.display = compare ? '' : 'none'
14180      }
14181      if (pricingSave) {
14182        pricingSave.textContent = save || ''
14183        pricingSave.style.display = save ? '' : 'none'
14184      }
14185      if (billingNote && note) billingNote.textContent = note
14186
14187      /* Update accessible promo section outside radiogroup */
14188      var promo = plan.querySelector('[data-snb-promo]')
14189      if (promo && activePromoWrap) {
14190        var promoTitle = promo.querySelector('.snb-pdp__promo-title')
14191        var promoDesc = promo.querySelector('.snb-pdp__promo-desc')
14192        var promoCodeBtn = plan.querySelector('[data-snb-copy-code]')
14193        var promoMsg = ''
14194        if (promoTitle) promoMsg += promoTitle.textContent
14195        if (promoDesc) promoMsg += '. ' + promoDesc.textContent
14196        if (activePromoText) activePromoText.textContent = promoMsg
14197        activePromoWrap.style.display = ''
14198        if (promoCodeBtn && activePromoCopy) {
14199          var code = promoCodeBtn.getAttribute('data-snb-copy-code')
14200          activePromoCopy.setAttribute('aria-label', 'Copy discount code ' + code)
14201          activePromoCopy.setAttribute('data-snb-copy-code', code)
14202          if (activePromoCodeText) activePromoCodeText.textContent = code
14203          activePromoCopy.style.display = ''
14204        } else if (activePromoCopy) {
14205          activePromoCopy.style.display = 'none'
14206        }
14207      } else if (activePromoWrap) {
14208        activePromoWrap.style.display = 'none'
14209      }
14210    }
14211
14212    // Init from first active plan — add promo to its label
14213    var firstActive = section.querySelector('.snb-pdp__plan--active')
14214    if (firstActive) {
14215      setActivePlan(firstActive)
14216      var baseLabel = firstActive.getAttribute('data-base-label') || ''
14217      var promoLabel = firstActive.getAttribute('data-promo-label') || ''
14218      if (promoLabel) firstActive.setAttribute('aria-label', baseLabel + ', ' + promoLabel)
14219      /* Also populate the accessible promo area */
14220      var promo = firstActive.querySelector('[data-snb-promo]')
14221      if (promo && activePromoWrap) {
14222        var pt = promo.querySelector('.snb-pdp__promo-title')
14223        var pd = promo.querySelector('.snb-pdp__promo-desc')
14224        var pc = firstActive.querySelector('[data-snb-copy-code]')
14225        if (pt && activePromoText) activePromoText.textContent = pt.textContent + (pd ? '. ' + pd.textContent : '')
14226        activePromoWrap.style.display = ''
14227        if (pc && activePromoCopy) {
14228          var code = pc.getAttribute('data-snb-copy-code')
14229          activePromoCopy.setAttribute('aria-label', 'Copy discount code ' + code)
14230          activePromoCopy.setAttribute('data-snb-copy-code', code)
14231          if (activePromoCodeText) activePromoCodeText.textContent = code
14232          activePromoCopy.style.display = ''
14233        }
14234      }
14235    }
14236
14237    // Plan selection — click
14238    plans.forEach(function(plan) {
14239      plan.addEventListener('click', function() {
14240        selectPlan(plan)
14241      })
14242    })
14243
14244    // Plan selection — keyboard (arrow keys + space/enter for radiogroup)
14245    var plansContainer = section.querySelector('[data-snb-plans]')
14246    if (plansContainer) {
14247      plansContainer.addEventListener('keydown', function(e) {
14248        var planArray = Array.prototype.slice.call(plans)
14249        var currentIndex = planArray.indexOf(document.activeElement)
14250        if (currentIndex === -1) return
14251
14252        var nextIndex = -1
14253        if (e.key === 'ArrowDown' || e.key === 'ArrowRight') {
14254          e.preventDefault()
14255          nextIndex = (currentIndex + 1) % planArray.length
14256        } else if (e.key === 'ArrowUp' || e.key === 'ArrowLeft') {
14257          e.preventDefault()
14258          nextIndex = (currentIndex - 1 + planArray.length) % planArray.length
14259        } else if (e.key === ' ' || e.key === 'Enter') {
14260          e.preventDefault()
14261          selectPlan(planArray[currentIndex])
14262          return
14263        }
14264
14265        if (nextIndex !== -1) {
14266          selectPlan(planArray[nextIndex])
14267        }
14268      })
14269    }
14270
14271    // Announce status to screen readers
14272    function announceStatus(message) {
14273      if (statusRegion) statusRegion.textContent = message
14274    }
14275
14276    // AJAX Add to Cart
14277    if (addToCartBtn) {
14278      addToCartBtn.addEventListener('click', function() {
14279        if (addToCartBtn.disabled) return
14280        if (!activePlan.variantId) return
14281
14282        var originalText = addToCartBtn.textContent
14283        addToCartBtn.disabled = true
14284        addToCartBtn.setAttribute('aria-busy', 'true')
14285        addToCartBtn.textContent = 'Adding...'
14286        announceStatus('Adding item to cart')
14287
14288        var body = {
14289          items: [{
14290            id: parseInt(activePlan.variantId, 10),
14291            quantity: 1
14292          }]
14293        }
14294
14295        if (activePlan.sellingPlanId) {
14296          body.items[0].selling_plan = parseInt(activePlan.sellingPlanId, 10)
14297        }
14298
14299        fetch('/cart/add.js', {
14300          method: 'POST',
14301          body: JSON.stringify(body),
14302          credentials: 'same-origin',
14303          headers: {
14304            'Content-Type': 'application/json'
14305          }
14306        })
14307          .then(function(response) {
14308            return response.json()
14309          })
14310          .then(function(data) {
14311            if (data.status && data.status === 422) {
14312              var errMsg = data.description || 'Error adding to cart'
14313              addToCartBtn.textContent = errMsg
14314              announceStatus(errMsg)
14315              addToCartBtn.setAttribute('aria-busy', 'false')
14316              setTimeout(function() {
14317                addToCartBtn.textContent = originalText
14318                addToCartBtn.disabled = false
14319              }, 3000)
14320              return
14321            }
14322
14323            addToCartBtn.textContent = 'Added!'
14324            addToCartBtn.setAttribute('aria-busy', 'false')
14325            announceStatus('Item added to cart')
14326
14327            // Dispatch theme event to open cart drawer
14328            document.dispatchEvent(
14329              new CustomEvent('ajaxProduct:added', {
14330                detail: { product: data, addToCartBtn: addToCartBtn }
14331              })
14332            )
14333
14334            setTimeout(function() {
14335              addToCartBtn.textContent = originalText
14336              addToCartBtn.disabled = false
14337            }, 2000)
14338          })
14339          .catch(function() {
14340            addToCartBtn.textContent = 'Error - try again'
14341            addToCartBtn.setAttribute('aria-busy', 'false')
14342            announceStatus('Error adding to cart, please try again')
14343            setTimeout(function() {
14344              addToCartBtn.textContent = originalText
14345              addToCartBtn.disabled = false
14346            }, 3000)
14347          })
14348      })
14349    }
14350
14351    // Mobile carousel with dots
14352    var carousel = section.querySelector('[data-snb-carousel]')
14353    var dots = section.querySelectorAll('[data-snb-dot]')
14354    var carouselSlides = carousel ? carousel.querySelectorAll('.snb-pdp__carousel-slide') : []
14355    var scrollTimer = null
14356
14357    // a11y: APG — sync aria-hidden on slides + aria-current on dots with scroll position.
14358    // Loop-safe: value guards on each setAttribute, so MutationObservers on parents don't thrash.
14359    function syncCarouselA11y(activeIndex) {
14360      for (var i = 0; i < carouselSlides.length; i++) {
14361        var ariaTarget = i === activeIndex ? 'false' : 'true'
14362        if (carouselSlides[i].getAttribute('aria-hidden') !== ariaTarget) {
14363          carouselSlides[i].setAttribute('aria-hidden', ariaTarget)
14364        }
14365      }
14366      dots.forEach(function(d, i) {
14367        var isActive = i === activeIndex
14368        d.classList.toggle('snb-pdp__dot--active', isActive)
14369        if (isActive) {
14370          if (d.getAttribute('aria-current') !== 'true') d.setAttribute('aria-current', 'true')
14371        } else if (d.hasAttribute('aria-current')) {
14372          d.removeAttribute('aria-current')
14373        }
14374      })
14375    }
14376
14377    if (carousel && dots.length > 0) {
14378      carousel.addEventListener('scroll', function() {
14379        if (scrollTimer) clearTimeout(scrollTimer)
14380        scrollTimer = setTimeout(function() {
14381          var slideWidth = carousel.firstElementChild
14382            ? carousel.firstElementChild.offsetWidth
14383            : 1
14384          var activeIndex = Math.round(carousel.scrollLeft / slideWidth)
14385          syncCarouselA11y(activeIndex)
14386        }, 50)
14387      })
14388
14389      dots.forEach(function(dot) {
14390        dot.addEventListener('click', function() {
14391          var index = parseInt(dot.getAttribute('data-snb-dot'), 10)
14392          var slideWidth = carousel.firstElementChild
14393            ? carousel.firstElementChild.offsetWidth
14394            : 0
14395          carousel.scrollTo({ left: slideWidth * index, behavior: 'smooth' })
14396        })
14397      })
14398    }
14399
14400    // Desktop thumbnail gallery
14401    var useCustomImages = true
14402    thumbs.forEach(function(thumb) {
14403      thumb.addEventListener('click', function() {
14404        var index = parseInt(thumb.getAttribute('data-index'), 10)
14405        thumbs.forEach(function(t) {
14406          t.classList.remove('snb-pdp__thumb--active')
14407          if (t.hasAttribute('aria-current')) t.removeAttribute('aria-current')
14408        })
14409        thumb.classList.add('snb-pdp__thumb--active')
14410        thumb.setAttribute('aria-current', 'true')
14411
14412        if (mainImage) {
14413          var img = mainImage.querySelector('img')
14414          if (img) {
14415            img.classList.remove('snb-pdp--loaded')
14416            if (useCustomImages && thumb.hasAttribute('data-img-src')) {
14417              img.src = thumb.getAttribute('data-img-src')
14418              img.alt = thumb.getAttribute('data-img-alt') || ''
14419            } else {
14420              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","width":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}]
14421              if (media[index]) {
14422                var src = media[index].src || media[index].preview_image.src
14423                img.src = src.replace(/(\.[a-z]+)\?/, '$1?width=1200&')
14424                img.alt = media[index].alt || 'Bokksu Snack Box Subscription'
14425              }
14426            }
14427            handleImageLoad(img)
14428          }
14429        }
14430      })
14431    })
14432
14433    // Thumb scroll
14434    if (thumbNextBtn && thumbScroller) {
14435      thumbNextBtn.addEventListener('click', function() {
14436        thumbScroller.scrollBy({ top: 95, behavior: 'smooth' })
14437      })
14438    }
14439
14440    // Copy promo code (event delegation for dynamic buttons)
14441    section.addEventListener('click', function(e) {
14442      var btn = e.target.closest('[data-snb-copy-code]')
14443      if (!btn) return
14444      e.stopPropagation()
14445      var code = btn.getAttribute('data-snb-copy-code')
14446      if (navigator.clipboard) {
14447        navigator.clipboard.writeText(code)
14448        var span = btn.querySelector('span')
14449        if (span) {
14450          var original = span.textContent
14451          span.textContent = 'Copied!'
14452          announceStatus('Discount code ' + code + ' copied to clipboard')
14453          setTimeout(function() { span.textContent = original }, 2000)
14454        }
14455      }
14456    })
14457    } // end initSection
14458
14459    initSection()
14460  })()
14461</script>
14461
14462</div>
14463        </main><!-- BEGIN sections: footer-group -->
14464<div id="shopify-section-sections--17749310603350__footer" class="shopify-section shopify-section-group-footer-group">
14465
14466
14467<div class="footer__section footer__section--border">
14468      <div class="page-width">
14469        <div class="footer__newsletter"><div class="footer__subscribe rte rte--nomargin footer-subscribe-text">
14470              <p>Sign up & get $5 off your first order + exclusive deals!</p>
14471            </div></div>
14472      </div>
14473    </div>
14474<footer class="site-footer bokksu-footer" data-section-id="sections--17749310603350__footer" data-section-type="footer-section" role="contentinfo">
14475    <div id="FooterMenus" class="footer__section footer__section--menus">
14476      <div class="page-width">
14477        <div class="footer__blocks">
14478            
14479            <div
14480              
14481              class="footer__block block__contact"
14482              data-type="contact"
14483            >
14484  <div class="footer__mobile-section-without-border SocialAndLogo">
14485    <div class="footer__blocks--mobile SocialAndLogo">
14486      <div class="footer__block--mobile ">
14487        <div class="footer__title">
14488          <img
14489            width="60px"
14490            src="https://cdn.shopify.com/s/files/1/0715/7101/3829/files/BokksuBrand_Logo_LanternMark_Outline_White.png?v=1749809784?format=webp&width=100"
14491            alt="Bokksu Premium Snack Boxes"
14492          >
14493        </div>
14494  
14495        <ul class="footer__menu footer__menu--underline"></ul>
14496      </div><div class="footer__block--mobile footer-block-mobile-social">
14497          
14498  <ul class="no-bullets social-icons footer__social" aria-label="Social media links"><li>
14499        <a target="_blank" rel="noopener" href="https://instagram.com/bokksu" title="Bokksu Snack Box on Instagram">
14500          <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>
14501          <span class="icon__fallback-text">Instagram</span>
14502        </a>
14503      </li><li>
14504        <a target="_blank" rel="noopener" href="https://www.facebook.com/bokksu" title="Bokksu Snack Box on Facebook">
14505          <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>
14506          <span class="icon__fallback-text">Facebook</span>
14507        </a>
14508      </li><li>
14509        <a target="_blank" rel="noopener" href="https://www.youtube.com/@Bokksu" title="Bokksu Snack Box on YouTube">
14510          <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>
14511          <span class="icon__fallback-text">YouTube</span>
14512        </a>
14513      </li><li>
14514        <a target="_blank" rel="noopener" href="https://www.tiktok.com/@bokksu" title="Bokksu Snack Box on TikTok">
14515          <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>
14516          <span class="icon__fallback-text">TikTok</span>
14517        </a>
14518      </li></ul>
14519
14520  
14521
14522        </div></div>
14523  </div>
14524  <style>
14525    .SocialAndLogo {
14526      display: flex;
14527      flex-direction: column;
14528      justify-content: space-between;
14529      height: 100%;
14530    }
14531  </style>
14532
14533  
14534</div>
14535            
14536            <div
14537              
14538              class="footer__block block__menu"
14539              data-type="menu"
14540            >
14541<nav aria-label="Brands">
14542    <div class="footer__title hero__top-subtitle footer-margin-bottom" id="footer-menu-title-footer-0">
14543      Brands
14544    </div>
14545
14546    <ul role="list" class="footer__menu"><li>
14547          <a href="https://bokksuboutique.com">Bokksu Boutique</a>
14548        </li><li>
14549          <a href="https://bokksumarket.com">Bokksu Market</a>
14550        </li></ul>
14551  </nav>
14552<style>
14553  .footer__menu .pieeye-links {
14554    display: inline-block;
14555    padding: 4px 0;
14556    max-width: 170px;
14557  }
14558
14559  .footer__menu .pieeye-links:hover {
14560    text-decoration: underline;
14561  }
14562
14563  .site-footer .pieeye-links {
14564    color: #ffffff;
14565    color: var(--colorFooterText);
14566  }
14567</style>
14568</div>
14569            
14570            <div
14571              
14572              class="footer__block block__menu"
14573              data-type="menu"
14574            >
14575<nav aria-label="INFORMATION">
14576    <div class="footer__title hero__top-subtitle footer-margin-bottom" id="footer-menu-title-8e428145-e5f4-4b31-8787-fb5edbc644fc">
14577      INFORMATION
14578    </div>
14579
14580    <ul role="list" class="footer__menu"><li>
14581          <a href="/pages/about">About Us</a>
14582        </li><li>
14583          <a href="/pages/bokksu-offers-discounts-coupons">Today's Offers</a>
14584        </li><li>
14585          <a href="/pages/rewards">Refer a Friend</a>
14586        </li><li>
14587          <a href="https://bokksuboutique.com/pages/corporate-gifts">Corporate Gifts</a>
14588        </li><li>
14589          <a href="/pages/rewards">Rewards</a>
14590        </li><li>
14591          <a href="/blogs/news">Blog</a>
14592        </li><li>
14593          <a href="/pages/careers">Careers</a>
14594        </li></ul>
14595  </nav>
14596<style>
14597  .footer__menu .pieeye-links {
14598    display: inline-block;
14599    padding: 4px 0;
14600    max-width: 170px;
14601  }
14602
14603  .footer__menu .pieeye-links:hover {
14604    text-decoration: underline;
14605  }
14606
14607  .site-footer .pieeye-links {
14608    color: #ffffff;
14609    color: var(--colorFooterText);
14610  }
14611</style>
14612</div>
14613            
14614            <div
14615              
14616              class="footer__block block__menu"
14617              data-type="menu"
14618            >
14619<nav aria-label="Support">
14620    <div class="footer__title hero__top-subtitle footer-margin-bottom" id="footer-menu-title-05398a65-6873-4bd2-8114-894b394283c4">
14621      Support
14622    </div>
14623
14624    <ul role="list" class="footer__menu"><li>
14625          <a href="/pages/contact-us">Contact Us</a>
14626        </li><li>
14627          <a href="/pages/community">Community</a>
14628        </li><li>
14629          <a href="/pages/privacy-policy-with-ccpa">Privacy Policy</a>
14630        </li><li>
14631          <a href="/pages/terms-conditions">Terms</a>
14632        </li><li>
14633          <a href="/pages/faq">FAQ</a>
14634        </li><li>
14635          <a href="/pages/accessibility-statement">Accessibility Statement</a>
14636        </li></ul>
14637  </nav><div class="footer__block--mobile footer-block-mobile-support-social">
14638      
14639  <ul class="no-bullets social-icons footer__social" aria-label="Social media links"><li>
14640        <a target="_blank" rel="noopener" href="https://instagram.com/bokksu" title="Bokksu Snack Box on Instagram">
14641          <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-.
14641075 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>
14642          <span class="icon__fallback-text">Instagram</span>
14643        </a>
14644      </li><li>
14645        <a target="_blank" rel="noopener" href="https://www.facebook.com/bokksu" title="Bokksu Snack Box on Facebook">
14646          <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>
14647          <span class="icon__fallback-text">Facebook</span>
14648        </a>
14649      </li><li>
14650        <a target="_blank" rel="noopener" href="https://www.youtube.com/@Bokksu" title="Bokksu Snack Box on YouTube">
14651          <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>
14652          <span class="icon__fallback-text">YouTube</span>
14653        </a>
14654      </li><li>
14655        <a target="_blank" rel="noopener" href="https://www.tiktok.com/@bokksu" title="Bokksu Snack Box on TikTok">
14656          <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>
14657          <span class="icon__fallback-text">TikTok</span>
14658        </a>
14659      </li></ul>
14660
14661  
14662
14663    </div>
14664<style>
14665  .footer__menu .pieeye-links {
14666    display: inline-block;
14667    padding: 4px 0;
14668    max-width: 170px;
14669  }
14670
14671  .footer__menu .pieeye-links:hover {
14672    text-decoration: underline;
14673  }
14674
14675  .site-footer .pieeye-links {
14676    color: #ffffff;
14677    color: var(--colorFooterText);
14678  }
14679</style>
14680</div>
14681            
14682            <div
14683              
14684              class="footer__block block__payment"
14685              data-type="payment"
14686            >
14687
14688<div class="footer__mobile-section PayementAndKlaviyo">
14689    <!--
14690      <div>
14691        <div class="footer__title KlaviyoMailinTitle">join our mailing list</div>
14692        <div class="KlaviyoMailinSubTitle">sign up to get exclusive offers,the latest snack trends, and more!</div>
14693        <div class="klaviyo-form-JZT2sH"></div>
14694      </div>
14695    -->
14696    <div class="footer__blocks--mobile">
14697      <div class="main_contact_footer"></div><div class="footer__block--mobile">
14698            <div class="footer__title accept-payments">
14699              We accept
14700            </div>
14701            <ul class="inline-list payment-icons"><li class="icon--payment">
14702                  <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-.
1470203.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>
14703
14704                </li><li class="icon--payment">
14705                  <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>
14706
14707                </li><li class="icon--payment">
14708                  <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 
147081.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>
14709
14710                </li><li class="icon--payment">
14711                  <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>
14712                </li><li class="icon--payment">
14713                  <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>
14714                </li><li class="icon--payment">
14715                  <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.
1471506zM23.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>
14716
14717                </li><li class="icon--payment">
14718                  <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>
14719
14720                </li><li class="icon--payment">
14721                  <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 
147210-.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>
14722                </li><li class="icon--payment">
14723                  <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>
14724
14725                </li><li class="icon--payment">
14726                  <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 
1472616.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>
14727
14728                </li></ul>
14729          </div></div>
14730  </div>
14731  
14732  <div id="main_popup" aria-hidden="true" inert>
14733    <div class="popup_align">
14734      <div class="popup_close">
14735        <img src="//bokksu.com/cdn/shop/t/3/assets/close.svg?v=88995623347698921431751964582" class="img-block" alt="close">
14736      </div>
14737      <div class="popup_header">
14738        <img src="//bokksu.com/cdn/shop/t/3/assets/logo.svg?v=117790338284208930901751964576" class="img-block" alt="logo">
14739      </div>
14740      <div class="popup_about">
14741        <p class="h3">Text us</p>
14742        <p>
14743          By signing up via text, you agree to receive recurring automated promotional and personalized marketing text
14744          messages (e.g. cart reminders) from Bokksu at the cell number used when signing up. Consent is not a condition
14745          of any purchase. Reply HELP for help and STOP to cancel. Msg frequency varies. Msg & data rates may apply. View
14746          <a href="http://attn.tv/bokksu/terms.html" aria-label="SMS terms and conditions">Terms</a> &
14747          <a href="https://attnl.tv/p/pCu" aria-label="SMS privacy policy">Privacy Policy</a>.
14748        </p>
14749        <p>
14750          Our text for support service is available for the US. We are here to assist with general FAQ and questions, but
14751          for any issues related to your account, cancellation, refunds, orders and account updates, please create a
14752          support ticket at https://bokksu.com/pages/contact-us.
14753        </p>
14754      </div>
14755      <div class="contact_popup">
14756        <a href="sms:20126?&body=Hello" aria-label="Text HELLO to 20126 for support and offers">
14757          <p class="h4">
14758            Text HELLO to 20126 for support <br>
14759            & to get offers via text.
14760          </p>
14761          <div class="contact_img">
14762            <img src="//bokksu.com/cdn/shop/t/3/assets/phone.svg?v=66969348285319116291751964578" class="img-block" alt="phone">
14763          </div>
14764        </a>
14765      </div>
14766    </div>
14767  </div>
14768  
14769  <div class="overlay_popup_custom"></div>
14770  
14771  <style>
14772    .PayementAndKlaviyo {
14773      display: flex;
14774      flex-direction: column;
14775      justify-content: space-between;
14776      height: 100%;
14777    }
14778    .shop-address{
14779      color:  #FFF;
14780font-family: Lato;
14781font-size: 12px;
14782font-style: normal;
14783font-weight: 400;
14784line-height: 125%; 
14785    }
14786  </style>
14787
14788  
14789</div></div>
14790      </div>
14791    </div>
14792  
14793    <div class="footer__section">
14794      <div class="page-width text-center small--text-left">
14795        <nav class="footer__base-links" aria-label="Legal and policies"><span>
14796              &copy; 2026
14797Bokksu Inc.
14798</span><a href="https://bokksuboutique.com">Bokksu Boutique</a><a href="https://bokksumarket.com">Bokksu Market</a></nav>
14799      </div>
14800    </div>
14801  </footer>
14802  
14803  
14804  
14805  
14806  
14807  
14808  
14808<script type="application/ld+json">
14809  {
14810   "@context": "https://schema.org",
14811   "@type": "Organization",
14812   "name": "Bokksu",
14813   "legalName" : "Bokksu",
14814   "url": "https://www.bokksu.com/",
14815   "logo": "https://cdn.shopify.com/s/files/1/1083/2612/files/BokksuSnackBox_Logo_Horizontal_Filled_Orange_140x.png?v=1665613822",
14816   "sameAs": [
14817   "https://www.instagram.com/bokksu/", 
14818   "https://www.facebook.com/bokksu",
14819  "https://www.youtube.com/@Bokksu",
14820  "https://www.tiktok.com/@bokksu" 
14821  ],  
14822   "contactPoint": {
14823   "@type": "ContactPoint",
14824   "contactType": "customer support",
14825   "telephone": "Service Phone Number", // Please fill in the service phone number
14826   "email": "[email protected]" // Please confirm your contact email
14827   }, 
14828   "potentialAction": {
14829      "@type": "SearchAction",
14830      "target": "https://www.bokksu.com/search/node?keys={search_term_string}",
14831      "query-input": "required name=search_term_string"
14832    }
14833  }
14834  </script>
14834
14835  
14836  
14837
14838  <style>
14839
14840
14841@media only screen and (max-width:960px) {
14842.footer-promotions .grid__item {
14843  margin-bottom: 32px
14844}
14845
14846.footer-promotions .grid__item:last-child {
14847  margin-bottom: 0;
14848}
14849}
14850
14851.footer-promotion {
14852width: 100%;
14853text-align: center;
14854padding: 22px;
14855border-radius: var(--roundness);
14856overflow: hidden
14857}
14858
14859@media only screen and (min-width:961px) {
14860
14861.footer-promotion {
14862  padding: 30px
14863}
14864}
14865
14866.footer-promotion .scheme-image {
14867border-radius: calc(var(--roundness) + 2px);
14868}
14869
14870.footer-promotion[class*=color-scheme-]:not(.color-scheme-none) .btn {
14871border: 0;
14872}
14873
14874.footer__grid-image {
14875display: block;
14876text-align: center;
14877margin-bottom: 17px
14878}
14879
14880@media only screen and (min-width:961px) {
14881
14882.footer__grid-image {
14883  margin-bottom: 20px
14884}
14885}
14886
14887.footer__grid-image img {
14888display: block;
14889}
14890
14891.site-footer {
14892font-size: var(--typeBaseSize);
14893background-color: #3f1107
14894;
14895background-color: var(--colorFooter);
14896color: #ffffff
14897;
14898color: var(--colorFooterText)
14899}
14900
14901.site-footer a {
14902color: #ffffff
14903;
14904color: var(--colorFooterText);
14905}
14906
14907.site-footer .faux-select {
14908font-size: calc(var(--typeBaseSize) - 1px);
14909min-width: 120px;
14910}
14911
14912.footer__section {
14913padding: 30px 0;
14914border-top: 1px solid;
14915border-top-color: #e8e8e1
14916;
14917border-top-color: var(--colorBorder);
14918background-color: var(--colorFooter);
14919
14920}
14921
14922.bokksu-store .footer__section {
14923  border-top-color: transparent; 
14924}
14925
14926.site-footer .footer__section {
14927border-top-color: #f2eee7
14928;
14929border-top-color: var(--colorFooterBorder)
14930}
14931
14932@media only screen and (min-width:961px) {
14933.footer__section--menus {
14934  padding-top: 50px;
14935}
14936}
14937
14938@media only screen and (max-width:960px) {
14939.footer__mobile-section {
14940  margin-top: 20px;
14941  margin-left: -40px;
14942  margin-left: calc(var(--pageWidthPadding)*-1);
14943  margin-right: -40px;
14944  margin-right: calc(var(--pageWidthPadding)*-1);
14945  padding: 20px var(--pageWidthPadding) 0;
14946  border-top: 1px solid;
14947  border-top-color: #f2eee7
14948  ;
14949  border-top-color: var(--colorFooterBorder);
14950}
14951
14952.footer__mobile-section-without-border {
14953  margin-left: -40px;
14954  margin-left: calc(var(--pageWidthPadding)*-1);
14955  margin-right: -40px;
14956  margin-right: calc(var(--pageWidthPadding)*-1);
14957  padding: 0 35px 53px;
14958}
14959}
14960
14961.footer__title {
14962margin-bottom: 15px;
14963font-weight: 700;
14964font-size: var(--typeBaseSize);
14965}
14966   .bokksu-footer .footer__title img {
14967      width: 60px !important;
14968      height: 100% !important;
14969    }
14970
14971@media only screen and (max-width:960px) {
14972  .footer__block--mobile .accept-payments{
14973    margin-top: 5px; 
14974    }
14975  }
14976
14977@media only screen and (min-width:961px) {
14978  .footer__block--mobile .accept-payments{
14979    margin-top: -5px; 
14980    }
14981  }
14982
14983.footer__subscribe {
14984font-weight: 700;
14985font-size: calc(var(--typeBaseSize) + 2px);
14986color: #fff;
14987}
14988
14989.footer__menu {
14990margin: 0 0 20px;
14991padding: 0;
14992list-style: none
14993}
14994
14995/* Footer Desktop */
14996@media (min-width: 768px) {
14997  .footer_left {
14998    flex: 40%;
14999  }
15000  /* .footer_right {
15001    flex: 60%;
15002  } */
15003  .footer__menu a {
15004    display: inline-block;
15005    padding: 4px 0;
15006    max-width: 170px;
15007    }
15008    .footer__block.block__contact {
15009      margin-right: 1.5em;
15010      max-width: 160px !important;
15011  }
15012      .footer__block.block__menu {
15013  
15014      max-width: 190px !important;
15015  }
15016}
15017
15018/* Footer Mobile */
15019@media (max-width: 767px) {
15020  .footer_wrapper {
15021    flex-direction: column;
15022  }
15023  
15024  .footer_left, .footer_right {
15025    flex: 100%;
15026  }
15027}
15028
15029@media only screen and (max-width:960px) {
15030
15031.footer__menu {
15032  margin-bottom: 0
15033}
15034}
15035
15036.footer__menu li {
15037margin: 0;
15038}
15039
15040.footer__menu a {
15041display: inline-block;
15042padding: 4px 0;
15043max-width: 170px;
15044}
15045.footer__menu a:hover {
15046text-decoration: underline;
15047
15048}
15049
15050.footer__menu .icon {
15051margin-right: 10px
15052}
15053
15054[dir=rtl] .footer__menu .icon {
15055margin-right: 0;
15056margin-left: 10px
15057}
15058
15059.footer__menu--underline a {
15060text-decoration: underline;
15061text-underline-offset: 2px;
15062}
15063
15064.footer__newsletter {
15065display: flex;
15066justify-content: center;
15067align-items: center;
15068padding: 0 20px
15069}
15070
15071.footer__newsletter > * {
15072padding: 0 20px;
15073}
15074
15075.footer__newsletter .newsletter__input-group {
15076margin-bottom: 0;
15077}
15078
15079@media only screen and (max-width:960px) {
15080
15081.footer__newsletter {
15082  flex-wrap: wrap;
15083  text-align: center;
15084  justify-content: center;
15085  padding: 0;
15086}
15087
15088.footer__newsletter > * {
15089  padding: 0;
15090}
15091
15092.footer__newsletter .newsletter__input-group {
15093  max-width: none
15094}
15095
15096.footer__newsletter .newsletter__input-group .btn {
15097  min-width: auto;
15098}
15099
15100.footer__newsletter form {
15101  width: 100%;
15102  margin: 20px auto 0;
15103}
15104}
15105
15106.footer__blocks {
15107display: flex;
15108flex-wrap: wrap;
15109justify-content: center;
15110}
15111
15112.footer__block {
15113flex: 0 1 25%;
15114}
15115.footer__block.block__contact {
15116    margin-right: 1.5em;
15117    max-width: unset;
15118}
15119    .footer__block.block__menu {
15120
15121    max-width: unset ;
15122}
15123 .footer__block.block__payment {
15124    max-width: 420px !important;
15125}
15126
15127  .footer__base-links{
15128      display:block !important;
15129  }
15130    .weblayer--box-subscription-sms-email-signup {
15131    display: flex;
15132   justify-content: normal !important;
15133}
15134    .input-group .newsletter-subscription-field {
15135    padding-left: 10px !important;
15136    border-radius: 12px !important;
15137    min-width: 379px !important;
15138    background: #fff !important;
15139    }
15140@media only screen and (max-width:960px) {
15141.footer__blocks--mobile {
15142  display: flex;
15143  flex-wrap: wrap;
15144}
15145
15146.footer__block,
15147.footer__block--mobile {
15148  max-width: none;
15149  flex: 1 1 50%;
15150}
15151
15152.footer__block[data-type=contact],
15153.footer__block[data-type=payment] {
15154  flex: 1 0 100%;
15155}
15156}
15157
15158.footer__social {
15159margin: 0
15160}
15161
15162form + .footer__social {
15163margin-top: 30px
15164}
15165
15166.footer__social li {
15167display: inline-block;
15168margin: 0 15px 15px 0;
15169}
15170
15171.footer__social a {
15172display: block;
15173}
15174
15175.footer__social .icon {
15176width: 21px;
15177height: 21px
15178}
15179
15180.footer__social .icon.icon--wide {
15181width: 40px;
15182}
15183
15184.payment-icons {
15185-webkit-user-select: none;
15186user-select: none;
15187cursor: default;
15188margin-bottom: 20px
15189}
15190
15191@media only screen and (max-width:960px) {
15192
15193.payment-icons {
15194  margin-bottom: 0
15195}
15196}
15197
15198.payment-icons li {
15199cursor: default;
15200margin: 0 8px 4px 0;
15201}
15202
15203.footer__base-links {
15204font-size: 13px
15205}
15206
15207.footer__base-links a,
15208.footer__base-links span {
15209display: inline-block;
15210padding: 2px 20px 2px 0;
15211}
15212
15213.footer__base-links a {
15214text-underline-offset: 2px;
15215}
15216.footer__base-links a:hover {
15217text-decoration: underline;
15218}
15219.errors,
15220.note {
15221border-radius: 0;
15222padding: 6px 12px;
15223margin-bottom: 15px;
15224border: 1px solid transparent;
15225text-align: left
15226}
15227
15228.errors ol,
15229.errors ul,
15230.note ol,
15231.note ul {
15232margin-top: 0;
15233margin-bottom: 0;
15234}
15235
15236.errors li:last-child,
15237.note li:last-child {
15238margin-bottom: 0;
15239}
15240
15241.errors p,
15242.note p {
15243margin-bottom: 0;
15244}
15245
15246.note {
15247border-color: #e8e8e1
15248;
15249border-color: var(--colorBorder);
15250}
15251
15252.errors ul {
15253list-style: disc outside;
15254margin-left: 20px;
15255}
15256
15257.note--success {
15258color: #56ad6a;
15259border-width: 0;
15260/* margin-top:15px; */
15261margin-bottom: 0;
15262}
15263
15264.note-contact {
15265color: #56ad6a !important;
15266padding: 24px 0 !important;
15267}
15268
15269.note--success a {
15270color: #56ad6a;
15271text-decoration: underline
15272}
15273
15274.note--success a:hover {
15275text-decoration: none;
15276}
15277
15278.errors,
15279.form-error {
15280color: #d02e2e;
15281}
15282.errors li::marker {
15283color: #d02e2e;
15284}
15285
15286.errors a,
15287.form-error a {
15288color: #d02e2e;
15289text-decoration: underline
15290}
15291
15292.errors a:hover,
15293.form-error a:hover {
15294text-decoration: none;
15295}
15296
15297.pagination {
15298margin: 60px 0;
15299text-align: center
15300}
15301
15302.pagination > span {
15303display: inline-block;
15304vertical-align: middle;
15305line-height: 1;
15306}
15307
15308.pagination a {
15309display: inline-block;
15310}
15311
15312.pagination .page.current,
15313.pagination a:not(.btn) {
15314padding: 8px 12px;
15315}
15316
15317.pagination .page.current {
15318opacity: 0.3;
15319}
15320
15321.pagination .btn {
15322transition: transform 0.15s ease-out
15323}
15324
15325.pagination .btn:hover {
15326transform: scale(1.08);
15327}
15328
15329.pagination .btn .icon {
15330width: 13px;
15331height: 13px;
15332}
15333
15334.rte:after {
15335content: "";
15336display: table;
15337clear: both;
15338}
15339
15340.rte {
15341margin-bottom: 7.5px
15342}
15343
15344@media only screen and (min-width:961px) {
15345
15346.rte {
15347  margin-bottom: 15px
15348}
15349}
15350
15351.rte:last-child {
15352margin-bottom: 0;
15353}
15354
15355.rte + .rte {
15356margin-top: 30px;
15357}
15358
15359.rte ol,
15360.rte p,
15361.rte table,
15362.rte ul {
15363margin-bottom: 15px
15364}
15365  </style>
15366  
15367
15368</div>
15369<!-- END sections: footer-group --></div>
15370    </div><div id="VideoModal" class="modal">
15371  <div class="modal__inner">
15372    <div class="modal__centered page-width text-center">
15373      <div class="modal__centered-content">
15374        <div class="video-wrapper video-wrapper--modal">
15375          <div id="VideoHolder"></div>
15376        </div>
15377      </div>
15378    </div>
15379
15380    <button type="button" class="btn btn--circle btn--icon modal__close js-modal-close">
15381      <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>
15382      <span class="icon__fallback-text">"Close (esc)"</span>
15383    </button>
15384  </div>
15385</div>
15386<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
15387  <div class="pswp__bg"></div>
15388  <div class="pswp__scroll-wrap">
15389    <div class="pswp__container">
15390      <div class="pswp__item"></div>
15391      <div class="pswp__item"></div>
15392      <div class="pswp__item"></div>
15393    </div>
15394
15395    <div class="pswp__ui pswp__ui--hidden">
15396      <button class="btn btn--secondary btn--circle pswp__button pswp__button--arrow--left" title="Previous">
15397        <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>
15398      </button>
15399
15400      <button class="btn btn--secondary btn--circle btn--large pswp__button pswp__button--close" title="Close (esc)">
15401        <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>
15402      </button>
15403
15404      <button class="btn btn--secondary btn--circle pswp__button pswp__button--arrow--right" title="Next">
15405        <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>
15406      </button>
15407    </div>
15408  </div>
15409</div>
15410<div id="QuickAddModal" class="modal modal--square quick-add-modal quick-shop-modal-focus" tabindex="0">
15411  <div class="modal__inner product-temp">
15412    <div class="modal__centered">
15413      <div class="modal__centered-content">
15414        <div id="QuickAddHolder"></div>
15415      </div>
15416
15417      <button type="button" class="btn btn--circle btn--icon modal__close js-modal-close">
15418        <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 64 64">
15419          <path d="m19 17.61 27.12 27.13m0-27.13L19 44.74" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:2px"/>
15420        </svg>
15421        <span class="icon__fallback-text">"Close (esc)"</span>
15422      </button>
15423    </div>
15424  </div>
15425</div>
15426<tool-tip data-tool-tip="">
15427  <div class="tool-tip__inner" data-tool-tip-inner>
15428    <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>
15429    <div data-tool-tip-title>Bokksu | Authentic Japanese Snack &amp; Candy Subscription Box</div>
15430    <div class="tool-tip__content" data-tool-tip-content>
15431    </div>
15432  </div>
15433</tool-tip>
15434<div id="ProductModals"></div>
15435        
15436        
15437        
15438    
15439    
15440     
15440<script> let showFreeGiftSwiper = true </script>
15440
15441     
15442    <!-- Free Gift Customizations -->
15443    <span id="free-gift-1-amount" style="display: none;">
15444      150
15445    </span>
15446    <span id="free-gift-2-amount" style="display: none;">
15447      
15448    </span>
15449    <span id="selected-gift-1-product" style="display: none;"> free-folder-set-free-gift-with-all-boutique-orders-while-supplies-last </span>
15450    <span id="selected-gift-2-product" style="display: none;">  </span>
15451
15452    
15453    
15454      <span id="selected-gift-1-product-inventory-quantity" style="display: none;">  </span>
15455    
15456
15457    
15458    
15459      <span id="selected-gift-2-product-inventory-quantity" style="display: none;">  </span>
15460    
15461
15462    <div style="display: none;">
15463      
15464      
15465      
15466        <span class="selected_gift_collection_name" style="display: none;"></span>
15467      
15468    </div>
15469
15470    
15471    <span id="free-gift-certificate-feature-with-4-tiers" style="display: none;"> Off </span>
15472    <span id="selected-free-gift-certificate-product" style="display: none;"> complimentary-bokksu-snack-box-seasons-of-japan-on-orders-above-200 </span>
15473    <span id="free-gift-certificate-tier-1-amount" style="display: none;">  </span>
15474    <span id="free-gift-certificate-tier-2-amount" style="display: none;">  </span>
15475    <span id="free-gift-certificate-tier-3-amount" style="display: none;">  </span>
15476    <span id="free-gift-certificate-tier-4-amount" style="display: none;">  </span>
15477    <span id="free-gift-certificate-message" style="display: none;">  </span>
15478    <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>
15479    
15480
15481
15482    
15482<script src="//bokksu.com/cdn/shop/t/3/assets/recently-viewed.js?v=164611006926442500801751964576" defer="defer"></script>
15482
15483    
15483<script src="//bokksu.com/cdn/shop/t/3/assets/collection.js?v=61855754316230853941751964575" defer="defer"></script>
15483
15484    
15485    
15486    
15487<script>
15488    var initGorgiasChatPromise = (window.GorgiasChat) ? window.GorgiasChat.init() : new Promise(function (resolve) { window.addEventListener('gorgias-widget-loaded', function () { resolve();})});
15489    initGorgiasChatPromise.then(async () => {
15490        // SHO-319: privacyPolicyDisclaimer renders HTML; the intro text keys escape it
15491        GorgiasChat.updateTexts({
15492        "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."
15493        })
15494        GorgiasChat.hidePoweredBy(true)
15495    })
15496</script>
15496
15497    
15498
15499    
15500
15501    
15502
15503    
15503<script id="sg-js-global-vars">
15504      sgGlobalVars = 
15505          {};
15506        
15507
15508      if(sgGlobalVars) {
15509          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};
15510          sgGlobalVars.currentProduct = null;
15511          sgGlobalVars.isAdmin = `false`;
15512      }
15513    </script>
15513
15514    
15514<script>
15515      // Event to run when size optimization is required
15516      const optimizeSize = () => {
15517          // Push the event to the data layer
15518          dataLayer.push({'event': 'optimize.size'});
15519      }
15520  
15521      // Event listener for window resize
15522      window.addEventListener('resize', () => {
15523          if (window.innerWidth <= 960) {
15524              optimizeSize();
15525          }
15526      });
15527  
15528      // Also check at least once at the start
15529      if (window.innerWidth <= 960) {
15530          optimizeSize();
15531      }
15532    </script>
15532
15533
15534    
15534<script src="//bokksu.com/cdn/shop/t/3/assets/interact.js?v=176245359230577931561751964578" defer="true"></script>
15534
15535
15536    
15537
15538
15539  
15540    
15540<script async src="https://js.adsrvr.org/up_loader.3.0.0.js"></script>
15540
15541    
15541<script>
15542        window.ttdConversionEventsLayer = window.ttdConversionEventsLayer || [];
15543        function ttdConversionEvents() {
15544            window.ttdConversionEventsLayer.push(arguments);
15545        }
15546        
15547        ttdConversionEvents("init", {
15548            advertiserId: "4aipb3q",
15549            pixelIds: ["fnzha9m"]
15550        });
15551
15552        ttdConversionEvents("event", {
15553           advertiserId: "4aipb3q",
15554           pixelIds: ["fnzha9m"]
15555       });
15556    </script>
15556
15557
15558<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>
15559<div id="shopify-block-AMXlNNXM5SWtGZ0cxR__17151115064775110295" class="shopify-block shopify-app-block"><style data-recharge-theme='{"has_theme_customization": true, "design_mode": false }'>
15560  .recharge-theme {
15561    /* App */
15562    --recharge-app-background: #FFFFFF;
15563    --recharge-app-container: 1200px;
15564    --recharge-app-vertical-padding: 32px;
15565
15566    /* Brand colors */
15567    
15568--recharge-color-brand: #467C99;
15569
15570    /* Tints */
15571    --recharge-color-brand-120: #38637a;
15572    --recharge-color-brand-20: #6b96ad;
15573    --recharge-color-brand-40: #90b0c2;
15574    --recharge-color-brand-60: #b5cbd6;
15575    --recharge-color-brand-75: #d1dee6;
15576    --recharge-color-brand-85: #e3ebf0;
15577
15578    /* Neutral */
15579    --recharge-color-neutral: hsl(201, 35%, 7%);
15580    --recharge-color-neutral-80: hsl(201, 7%, 25%);
15581    --recharge-color-neutral-70: hsl(201, 5%, 35%);
15582    --recharge-color-neutral-40: hsl(201, 3%, 63%);
15583    --recharge-color-neutral-10: hsl(201, 2%, 91%);
15584    
15585
15586    /* Links */
15587    --recharge-button-secondary: #467C99;
15588    --recharge-button-secondary-120: #38637a;
15589    --recharge-button-secondary-60: #90b0c2;
15590
15591    /* Images */
15592    --recharge-images-ratio: 1;
15593
15594    /* Cards */
15595    
15596    --recharge-cards-background: #F6F4F1;
15597    
15598
15599    
15600    --recharge-cards-border-color: RGBA(0,0,0,0);
15601    
15602
15603    /* Fonts */
15604    --recharge-typography-scale: 16px;
15605    --recharge-typography-size-1: calc(3 * var(--recharge-typography-scale));
15606    --recharge-typography-size-2: calc(2.25 * var(--recharge-typography-scale));
15607    --recharge-typography-size-3: calc(1.625 * var(--recharge-typography-scale));
15608    --recharge-typography-size-4: calc(1.25 * var(--recharge-typography-scale));
15609    --recharge-typography-size-5: calc(1 * var(--recharge-typography-scale));
15610    --recharge-typography-size-6: calc(.875 * var(--recharge-typography-scale));
15611
15612    /** Text **/
15613    --recharge-typography-light: #FFFFFF;
15614    --recharge-typography-primary: var(--recharge-color-neutral);
15615    --recharge-typography-secondary: var(--recharge-color-neutral-70);
15616
15617    /* Corners */
15618    --recharge-corners-radius: 8px;
15619
15620    --recharge-button-border-radius: 8px;
15621    
15622
15623    /* Views */
15624    
15625    --recharge-views-background: #FFFFFF;
15626    
15627
15628    /* Buttons */
15629    --recharge-button-font-family: inherit;
15630    --recharge-button-brand: var(--recharge-color-brand);
15631    --recharge-button-color: #FFFFFF;
15632  }
15633</style>
15634
15635</div>
15635<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
15635
15636</body>
15637</html>
15638

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.