1<!doctype html> 2<!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]--> 3<!--[if IE 7]><html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]--> 4<!--[if IE 8]><html class="no-js lt-ie9" lang="en"> <![endif]--> 5<!--[if IE 9 ]><html class="ie9 no-js"> <![endif]--> 6<!--[if (gt IE 9)|!(IE)]><!--> <html class="no-js"> <!--<![endif]--> 7<head> 8<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 8-9
8 9<script async src="https://www.googletagmanager.com/gtag/js?id=
9AW-11361713588
vendor: 13 bytes, lines 9-10
9"> 10</script>
11<script> 12
vendor: 134 bytes, lines 12-16
12window.dataLayer = window.dataLayer || []; 13 function gtag(){dataLayer.push(arguments);} 14 gtag('js', new Date()); 15 16 gtag('config', '
16AW-11361713588
vendor: 4 bytes, line 16
16');
17</script>
17 18 <!-- ========================== Pipeline Theme ============================ --> 19 <meta charset="utf-8"> 20 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 21 22 23 <link rel="shortcut icon" href="//hapasushi.com/cdn/shop/t/3/assets/favicon.png?v=125204124477217012491476483442" type="image/png" /> 24 25 26 <!-- Title and description ================================================ --> 27 <title> 28 Hapa Sushi | Japanese Dining in the Boulder Denver Area 29 </title> 30 31 32 <meta name="description" content="Sushi, Poke, Orgasm Roll, Ahi, Sashimi, Nigiri, Sushi Roll, Udon, Miso Soup"> 33 34 35 <!-- Product meta ========================================================= --> 36 <!-- /snippets/social-meta-tags.liquid --> 37 38 39 <meta property="og:type" content="website"> 40 <meta property="og:title" content="Hapa Sushi | Japanese Dining in the Boulder Denver Area"> 41 42 <meta property="og:image" content="http://hapasushi.com/cdn/shop/t/3/assets/logo.png?v=83924648988205310581476483441"> 43 <meta property="og:image:secure_url" content="https://hapasushi.com/cdn/shop/t/3/assets/logo.png?v=83924648988205310581476483441"> 44 45 46 47 <meta property="og:description" content="Sushi, Poke, Orgasm Roll, Ahi, Sashimi, Nigiri, Sushi Roll, Udon, Miso Soup"> 48 49 <meta property="og:url" content="https://hapasushi.com/"> 50 <meta property="og:site_name" content="Hapa Sushi"> 51 52 53 54 55 56 57 <meta name="twitter:site" content="HapaSushi"> 58 59 60 61 <!-- Helpers ============================================================== --> 62 <link rel="canonical" href="https://hapasushi.com/"> 63 <meta name="viewport" content="width=device-width,initial-scale=1"> 64 <meta name="theme-color" content="#000000"> 65 66 67 <!-- Ajaxify Cart Plugin ================================================== --> 68 <link href="//hapasushi.com/cdn/shop/t/3/assets/ajaxify.scss.css?v=66583706006898287961712258922" rel="stylesheet" type="text/css" media="all" /> 69 70 71 <!-- CSS ================================================================== --> 72 <link href="https://fonts.googleapis.com/css?family=Work+Sans|Orbitron" rel="stylesheet"> 73 <link href="//hapasushi.com/cdn/shop/t/3/assets/featherlight.css?v=143089961765653751091476486581" rel="stylesheet" type="text/css" media="all" /> 74 <link href="//hapasushi.com/cdn/shop/t/3/assets/style.scss.css?v=133924286288291325251712258922" rel="stylesheet" type="text/css" media="all" /> 75 76 <!-- Header hook for plugins ============================================== --> 77
77<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
77<meta name="google-site-verification" content="GOZG_UgakG4qQxF5z8W14-P04NQ93Zh6lGf-ba0bvKs"> 78<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15400729/digital_wallets/dialog"> 79<meta id="in-context-paypal-metadata" data-shop-id="15400729" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 80<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
80<script async="async" src="/checkouts/internal/preloads.js?locale=en-US"></script>
vendor: 1 bytes, line 80
80
81<script id="shopify-features" type="application/json">{"accessToken":"8d626c30b6516dedb66ba9aea1738bc8","betas":["rich-media-storefront-analytics"],"domain":"hapasushi.com","predictiveSearch":true,"shopId":15400729,"locale":"en"}</script>
vendor: 1 bytes, line 81
81
82<script>var Shopify = Shopify || {}; 83Shopify.shop = "hapa-sushi.myshopify.com"; 84Shopify.locale = "en"; 85Shopify.currency = {"active":"USD","rate":"1.0"}; 86Shopify.country = "US"; 87Shopify.theme = {"name":"Hapa Sushi 2016","id":165702788,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"}; 88Shopify.theme.handle = "null"; 89Shopify.theme.style = {"id":null,"handle":null}; 90Shopify.cdnHost = "hapasushi.com/cdn"; 91Shopify.routes = Shopify.routes || {}; 92Shopify.routes.root = "/"; 93Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 94Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 95Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 96Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 96
96
97<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 97
97
98<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 98
98
99<script> 100 window.Shopify = window.Shopify || {}; 101 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 102 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 103 window.Shopify.SignInWithShop.eligible = true; 104</script>
vendor: 1 bytes, line 104
104
105<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
vendor: 1 bytes, line 105
105
106<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 106
106
107<script type="module"> 108 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 109 110 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 111 112</script>
vendor: 1 bytes, line 112
112
113<script> 114 window.Shopify = window.Shopify || {}; 115 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 116 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"]}; 117</script>
vendor: 1 bytes, line 117
117
118<script>(function() { 119 var isLoaded = false; 120 function asyncLoad() { 121 if (isLoaded) return; 122 isLoaded = true; 123 var urls = ["https:\/\/storage.googleapis.com\/pdf-uploader-v2.appspot.com\/hapa-sushi\/script\/script17f9eab8cf5.js?shop=hapa-sushi.myshopify.com","https:\/\/app.adoric-om.com\/adoric.js?key=63ba451e85fcdfbbaa123ca83dca4696\u0026shop=hapa-sushi.myshopify.com","\/\/shopify.privy.com\/widget.js?shop=hapa-sushi.myshopify.com","https:\/\/s3.amazonaws.com\/pixelpop\/usercontent\/scripts\/553602bb-24d2-4429-80f5-f0e707147fab\/pixelpop.js?shop=hapa-sushi.myshopify.com"]; 124 for (var i = 0; i < urls.length; i++) { 125 var s = document.createElement('script'); 126 s.type = 'text/javascript'; 127 s.async = true; 128 s.src = urls[i]; 129 var x = document.getElementsByTagName('script')[0]; 130 x.parentNode.insertBefore(s, x); 131 } 132 }; 133 if(window.attachEvent) { 134 window.attachEvent('onload', asyncLoad); 135 } else { 136 window.addEventListener('load', asyncLoad, false); 137 } 138})();</script>
vendor: 1 bytes, line 138
138
139<script id="__st">var __st={"a":15400729,"offset":-21600,"reqid":"de279656-ef16-43e0-8adb-8c58fc61bc9e-1791065404","pageurl":"hapasushi.com\/","u":"ba1714733c47","p":"home"};</script>
vendor: 1 bytes, line 139
139
140<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 140
140
141<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 141
141
142<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//hapasushi.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 142
142
143<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 = "//hapasushi.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>
143<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 143
143
144<script> 145 window.Shopify = window.Shopify || {}; 146 window.Shopify.MCP = window.Shopify.MCP || {}; 147 window.Shopify.MCP.enabled = true; 148 window.Shopify.MCP.shop = "hapa-sushi.myshopify.com"; 149 window.Shopify.MCP.mcpEndpoint = "https:\/\/hapasushi.com\/api\/mcp"; 150 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"]}}]; 151</script>
vendor: 1 bytes, line 151
151
152<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("\/\/hapasushi.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 153</script>
vendor: 1 bytes, line 153
153
154<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://hapasushi.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 155</script>
vendor: 1 bytes, line 155
155
156<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 157 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); 158</script>
vendor: 1 bytes, line 158
158
159<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})}})); 160</script>
160 161<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://hapasushi.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 162<style id="shopify-accelerated-checkout-cart"> 163 #shopify-buyer-consent { 164 margin-top: 1em; 165 display: inline-block; 166 width: 100%; 167} 168 169#shopify-buyer-consent.hidden { 170 display: none; 171} 172 173#shopify-subscription-policy-button { 174 background: none; 175 border: none; 176 padding: 0; 177 text-decoration: underline; 178 font-size: inherit; 179 cursor: pointer; 180} 181 182#shopify-subscription-policy-button::before { 183 box-shadow: none; 184} 185 186 </style> 187
188<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
188 189 190 <!-- /snippets/oldIE-js.liquid --> 191 192 193<!--[if lt IE 9]>
194<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
vendor: 1 bytes, line 194
194
195<script src="//hapasushi.com/cdn/shop/t/3/assets/respond.min.js?v=52248677837542619231476481445" type="text/javascript"></script>
vendor: 1 bytes, line 195
195
196<script src="//hapasushi.com/cdn/shop/t/3/assets/background_size_emu.js?v=20512233629963367491476481440" type="text/javascript"></script>
196 197<link href="//hapasushi.com/cdn/shop/t/3/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 198<link href="//hapasushi.com/search?q=ba8d6a8c6b6e20ef1b3e020251ebb7b3" id="respond-redirect" rel="respond-redirect" />
199<script src="//hapasushi.com/search?q=ba8d6a8c6b6e20ef1b3e020251ebb7b3" type="text/javascript"></script>
199 200<![endif]--> 201 202 203 204
204<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript"></script>
204 205
205<script src="//hapasushi.com/cdn/shop/t/3/assets/modernizr.min.js?v=137617515274177302221476481444" type="text/javascript"></script>
205 206 207 <!-- Slick Slider Plugin ================================================= --> 208
208<script src="//hapasushi.com/cdn/shop/t/3/assets/slick.min.js?v=171369436777625618661476481445" type="text/javascript"></script>
208 209
209<script src="//hapasushi.com/cdn/shop/t/3/assets/parallax.min.js?v=108472328082999985101476481444" type="text/javascript"></script>
209 210 211 212 <!-- Instagram Plugin ==================================================== --> 213 214
214<script src="//hapasushi.com/cdn/shop/t/3/assets/instafeed.js?v=114964710496723769721476481443" type="text/javascript"></script>
214 215 216 217 218 219 220 <!-- /snippets/fonts.liquid -->
221<script src="//ajax.googleapis.com/ajax/libs/webfont/1/webfont.js"></script>
vendor: 1 bytes, line 221
221
222<script type="text/javascript"> 223 WebFont.load({ 224 google: { 225 families: 226 227 228 ["PT+Mono:400,400italic,700,700italic:latin"] 229 }, 230 timeout: 5000 231 }); 232</script>
232 233
233<script src="https://cf.chownowcdn.com/latest/static/integrations/ordering-modal.min.js" data-chownow-company-id="9231"></script>
233 234 <meta name="google-site-verification" content="BGNGkRxr6pW4F485O1dW37CwJntNA4-g-K7FlnROU74" /> 235 236
236<script src="//webchat.getguestfriend.com/bower_components/webcomponentsjs/webcomponents-lite.js"></script>
236 <link rel="import" href="//webchat.getguestfriend.com/chat-widget.html">
236<script> var chat; HTMLImports.whenReady(function () { chat = initChatWidget({ appKey: "U2FsdGVkX1/RlIQjslg3lkDb744ZaFFp8leEobapBWRBftNSR1pFWLELFaL4ObjjlgUVmZIffmND3n2hCKL+SKq3lI1ZghMrped8hiuH5XBu6hUciYBp6y0wnndQcTEi" }); chat.style.zIndex = 9999; chat.style.display = "block"; }); </script>
236 237<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
238<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: 15400729,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 238
238
239<script> 240 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 241</script>
vendor: 1 bytes, line 241
241
242<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}
242).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: 15400729,storefrontBaseUrl: "https://hapasushi.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://hapasushi.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"261095459","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-K7W6V12FJB\\\"],\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"G-K7W6V12FJB\\\"},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"G-K7W6V12FJB\\\"},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-K7W6V12FJB\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":\\\"G-K7W6V12FJB\\\"},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-K7W6V12FJB\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":\\\"G-K7W6V12FJB\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":\\\"G-K7W6V12FJB\\\"},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-K7W6V12FJB\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"G-K7W6V12FJB\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"G-K7W6V12FJB\\\"},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-K7W6V12FJB\\\"}],\\\"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":"33390627","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["MARKETING"],"name":"Meta pixel (migrated)"},{"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":"Hapa Sushi","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"hapa-sushi.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/h
242apasushi.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://hapasushi.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"165702788","themePublished":"true","eventMetadataId":"f76d4030-1f3a-489f-855c-b2ad77936efd","pageType":"home","shopId":"15400729","storefrontBaseUrl":"https:\/\/hapasushi.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
242<script> 243 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 244 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 245 window.ShopifyAnalytics.meta.currency = 'USD'; 246 var meta = {"page":{"pageType":"home","requestId":"de279656-ef16-43e0-8adb-8c58fc61bc9e-1791065404"}}; 247 for (var attr in meta) { 248 window.ShopifyAnalytics.meta[attr] = meta[attr]; 249 } 250</script>
vendor: 1 bytes, line 250
250
251<script class="analytics"> 252 (function () { 253 var customDocumentWrite = function(content) { 254 var jquery = null; 255 256 if (window.jQuery) { 257 jquery = window.jQuery; 258 } else if (window.Checkout && window.Checkout.$) { 259 jquery = window.Checkout.$; 260 } 261 262 if (jquery) { 263 jquery('body').append(content); 264 } 265 }; 266 267 var hasLoggedConversion = function(token) { 268 if (token) { 269 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 270 } 271 return false; 272 } 273 274 var setCookieIfConversion = function(token) { 275 if (token) { 276 var twoMonthsFromNow = new Date(Date.now()); 277 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 278 279 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 280 } 281 } 282 283 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 284 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 285 if (trekkie.integrations) { 286 return; 287 } 288 trekkie.methods = [ 289 'identify', 290 'page', 291 'ready', 292 'track', 293 'trackForm', 294 'trackLink' 295 ]; 296 trekkie.factory = function(method) { 297 return function() { 298 var args = Array.prototype.slice.call(arguments); 299 args.unshift(method); 300 trekkie.push(args); 301 if (method == 'track' || method == 'page') { 302 var pageUrl; 303 try { 304 pageUrl = window.location.href; 305 } catch (e) {} 306 var pageReferrer; 307 try { 308 pageReferrer = document.referrer; 309 } catch (e) {} 310 try { 311 if (window.__TREKKIE_SHIM_QUEUE == null) { 312 window.__TREKKIE_SHIM_QUEUE = []; 313 } 314 window.__TREKKIE_SHIM_QUEUE.push({ 315 from: 'trekkie-stub', 316 method: method, 317 args: args.slice(1), 318 pageContext: { 319 url: pageUrl, 320 referrer: pageReferrer 321 } 322 }); 323 } catch (e) { 324 // no-op 325 } 326 } 327 return trekkie; 328 }; 329 }; 330 for (var i = 0; i < trekkie.methods.length; i++) { 331 var key = trekkie.methods[i]; 332 trekkie[key] = trekkie.factory(key); 333 } 334 trekkie.load = function(config) { 335 trekkie.config = config || {}; 336 trekkie.config.initialDocumentCookie = document.cookie; 337 var first = document.getElementsByTagName('script')[0]; 338var script = document.createElement('script'); 339script.type = 'text/javascript'; 340script.onerror = function(e) { 341 var scriptFallback = document.createElement('script'); 342 scriptFallback.type = 'text/javascript'; 343 scriptFallback.onerror = function(error) { 344 var Monorail = { 345 produce: function produce(monorailDomain, schemaId, payload) { 346 var currentMs = new Date().getTime(); 347 var event = { 348 schema_id: schemaId, 349 payload: payload, 350 metadata: { 351 event_created_at_ms: currentMs, 352 event_sent_at_ms: currentMs 353 } 354 }; 355 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 356 }, 357 sendRequest: function sendRequest(endpointUrl, payload) { 358 // Try the sendBeacon API 359 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 360 var blobData = new window.Blob([payload], { 361 type: 'text/plain' 362 }); 363 364 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 365 return true; 366 } // sendBeacon was not successful 367 368 } // XHR beacon 369 370 var xhr = new XMLHttpRequest(); 371 372 try { 373 xhr.open('POST', endpointUrl); 374 xhr.setRequestHeader('Content-Type', 'text/plain'); 375 xhr.send(payload); 376 } catch (e) { 377 console.log(e); 378 } 379 380 return false; 381 }, 382 isIos12: function isIos12() { 383 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 384 } 385 }; 386 Monorail.produce('monorail-edge.shopifysvc.com', 387 'trekkie_storefront_load_errors/1.1',
388 {shop_id: 15400729, 389 theme_id: 165702788, 390 app_name: "storefront", 391 context_url: window.location.href, 392 source_url: "//hapasushi.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 393 394 }; 395 scriptFallback.async = true; 396 scriptFallback.src = '//hapasushi.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 397 first.parentNode.insertBefore(scriptFallback, first); 398}; 399script.async = true; 400script.src = '//hapasushi.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 401first.parentNode.insertBefore(script, first); 402 403 }; 404 trekkie.load( 405 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":15400729,"isMerchantRequest":null,"themeId":165702788,"themeCityHash":"1230789958560023956","contentLanguage":"en","currency":"USD","eventMetadataId":"f76d4030-1f3a-489f-855c-b2ad77936efd"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} 406 ); 407 408 var loaded = false; 409 trekkie.ready(function() { 410 if (loaded) return; 411 loaded = true; 412 413 window.ShopifyAnalytics.lib = window.trekkie; 414 415 var originalDocumentWrite = document.write; 416 document.write = customDocumentWrite; 417 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 418 document.write = originalDocumentWrite; 419 420 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 421 var token = match? match[1]: undefined; 422 if (!hasLoggedConversion(token)) { 423 setCookieIfConversion(token); 424 425 } 426 }); 427 428 window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"de279656-ef16-43e0-8adb-8c58fc61bc9e-1791065404","shopifyEmitted":true}); 429 430 var eventsListenerScript = document.createElement('script'); 431 eventsListenerScript.async = true; 432 eventsListenerScript.src = "//hapasushi.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 433 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 434})();</script>
434 435
435<script> 436 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 437 window.ga = function ga() { 438 (window.ga.q = window.ga.q || []).push(arguments); 439 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 440 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 441 } 442 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 443 }; 444 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 445 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 446 } 447 } 448</script>
vendor: 1 bytes, line 448
448
449<script 450 defer 451 src="https://hapasushi.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 452 data-application="storefront-renderer" 453 data-shop-id="15400729" 454 data-render-region="gcp-us-central1" 455 data-page-type="index" 456 data-theme-instance-id="165702788" 457 data-theme-name="" 458 data-theme-version="" 459 data-monorail-region="shop_domain" 460 data-resource-timing-sampling-rate="10" 461 data-shs="true" 462 data-shs-beacon="true" 463 data-shs-export-with-fetch="true" 464 data-shs-logs-sample-rate="1" 465 data-shs-beacon-endpoint="https://hapasushi.com/api/collect" 466></script>
466 467<meta name="shopify-y" content="40dee971-798a-4c24-be3f-bc873c031f24" data-expiration="1822623004000"><meta name="shopify-s" content="fabc1cd3-ccc0-4fd4-8da3-b4dbc620d948" data-expiration="1791067204000"><meta name="new-cookie-storage-activated" content="t"> 468</head> 469 470<body id="hapa-sushi-japanese-dining-in-the-boulder-denver-area" class="template-index" > 471<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, line 471
471 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
471GTM-KQ7T5VN
vendor: 83 bytes, line 471
471" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
471<!-- End Google Tag Manager (noscript) --> 472 <div class="header__wrapper"> 473 474 475 476 <header class="site-header" role="banner"> 477 <div class="wrapper"> 478 <div class="nav--desktop"> 479 <div class="mobile-wrapper"> 480 481 <div class="header-cart__wrapper"> 482 <a href="/cart" class="CartToggle header-cart"></a> 483 <span class="header-cart__bubble cartCount hidden-count"></span> 484 </div> 485 486 <div class="logo-wrapper logo-wrapper--image"> 487 488 <h1 class="h4 header-logo" itemscope itemtype="http://schema.org/Organization"> 489 490 491 <a href="/" itemprop="url"> 492 <img src="//hapasushi.com/cdn/shop/t/3/assets/logo.png?v=83924648988205310581476483441" alt="Hapa Sushi" itemprop="logo" class="logo-image" onerror='this.style.display = "none"'/> 493 </a> 494 495 496 </h1> 497 498 </div> 499 <a href class="menuToggle header-hamburger"></a> 500</div> 501<div class="header-menu nav-wrapper"> 502 503 <ul class="main-menu accessibleNav"> 504 505 506 507 508 509 510 511 512 513 514 515 516 <li class="child main-menu--active kids-0"> 517 <a href="/" class="nav-link">Home</a> 518 519 </li> 520 521 522 523 524 525 526 527 528 529 530 531 532 533 <li class="parent kids-4"> 534 <a href="#" class="nav-link">Locations</a> 535 536 <a href="#" class="nav-carat"><span class="plus">+</span><span class="minus">-</span></a> 537 <div class="main-menu-dropdown"> 538 <ul> 539 540 541 542 543 544 545 546 547 548 549 550 551 552 <li class="child kids-0"> 553 <a href="/pages/pearl-street-in-boulder" class="nav-link">Pearl Street</a> 554 555 </li> 556 557 558 559 560 561 562 563 564 565 566 567 568 569 <li class="child kids-0"> 570 <a href="/pages/cherry-creek" class="nav-link">Cherry Creek</a> 571 572 </li> 573 574 575 576 577 578 579 580 581 582 583 584 585 586 <li class="child kids-0"> 587 <a href="/pages/landmark-at-greenwood-village" class="nav-link">Landmark</a> 588 589 </li> 590 591 592 593 594 595 596 597 598 599 600 601 602 603 <li class="child kids-0"> 604 <a href="/pages/lodo" class="nav-link">LoDo</a> 605 606 </li> 607 608 609 610 611 </ul> 612 </div> 613 614 </li> 615 616 617 618 619 620 621 622 623 624 625 626 627 628 <li class="parent kids-9"> 629 <a href="#" class="nav-link">Menus</a> 630 631 <a href="#" class="nav-carat"><span class="plus">+</span><span class="minus">-</span></a> 632 <div class="main-menu-dropdown"> 633 <ul> 634 635 636 637 638 639 640 641 642 643 644 645 646 647 <li class="child kids-0"> 648 <a href="https://cdn.shopify.com/s/files/1/1540/0729/files/HH_Hard_Menu_022326_1.pdf?v=1776097690" class="nav-link">Happy Hour</a> 649 650 </li> 651 652 653 654 655 656 657 658 659 660 661 662 663 664 <li class="child kids-0"> 665 <a href="https://cdn.shopify.com/s/files/1/1540/0729/files/Hapa_Lunch_Menu_020226.pdf?v=1772038341" class="nav-link">Lunch</a> 666 667 </li> 668 669 670 671 672 673 674 675 676 677 678 679 680 681 <li class="child kids-0"> 682 <a href="https://cdn.shopify.com/s/files/1/1540/0729/files/Hapa_Dinner_020226.pdf?v=1772038341" class="nav-link">Dinner</a> 683 684 </li> 685 686 687 688 689 690 691 692 693 694 695 696 697 698 <li class="child kids-0"> 699 <a href="https://cdn.shopify.com/s/files/1/1540/0729/files/GF_Lunch_Dinner_020226.pdf?v=1772038341" class="nav-link">Gluten Free</a> 700 701 </li> 702 703 704 705 706 707 708 709 710 711 712 713 714 715 <li class="child kids-0"> 716 <a href="https://cdn.shopify.com/s/files/1/1540/0729/files/HH_GF_Hard_Menu_022426.pdf?v=1772038341" class="nav-link">Gluten Free Happy Hour</a> 717 718 </li> 719 720 721 722 723 724 725 726 727 728 729 730 731 732 <li class="child kids-0"> 733 <a href="https://cdn.shopify.com/s/files/1/1540/0729/files/Kids_Menu_090924.pdf?v=1726076387" class="nav-link">Kids Menu</a> 734 735 </li> 736 737 738 739 740 741 742 743 744 745 746 747 748 749 <li class="child kids-0"> 750 <a href="https://cdn.shopify.com/s/files/1/1540/0729/files/Catering_Menu_September_2024_Logo_d2ca3d5e-3326-4d3a-a3cb-0c08fd193d60.pdf?v=1727380000" class="nav-link">Catering + Platter Menu</a> 751 752 </li> 753 754 755 756 757 758 759 760 761 762 763 764 765 766 <li class="child kids-0"> 767 <a href="https://cdn.shopify.com/s/files/1/1540/0729/files/Liquor_Menu_070524_2.pdf?v=1725993200" class="nav-link">Drinks</a> 768 769 </li> 770 771 772 773 774 775 776 777 778 779 780 781 782 783 <li class="child kids-0"> 784 <a href="https://cdn.shopify.com/s/files/1/1540/0729/files/Dessert_33125.pdf?v=1746709460" class="nav-link">Dessert Menu</a> 785 786 </li> 787 788 789 790 791 </ul> 792 </div> 793 794 </li> 795 796 797 798 799 800 801 802 803 804 805 806 807 808 <li class="parent kids-4"> 809 <a href="#" class="nav-link">Reservations</a> 810 811 <a href="#" class="nav-carat"><span class="plus">+</span><span class="minus">-</span></a> 812 <div class="main-menu-dropdown"> 813 <ul> 814 815 816 817 818 819 820 821 822 823 824 825 826 827 <li class="child kids-0"> 828 <a href="https://www.opentable.com/hapa-sushi-grill-and-sake-bar-pearl-st-reservations-boulder?restref=47158&lang=en" class="nav-link">
828Pearl Street</a> 829 830 </li> 831 832 833 834 835 836 837 838 839 840 841 842 843 844 <li class="child kids-0"> 845 <a href="https://www.opentable.com/hapa-sushi-grill-and-sake-bar-landmark-in-reservations-greenwood-village?restref=25816&lang=en" class="nav-link">Landmark</a> 846 847 </li> 848 849 850 851 852 853 854 855 856 857 858 859 860 861 <li class="child kids-0"> 862 <a href="https://www.opentable.com/hapa-sushi-grill-and-sake-bar-lodo-reservations-denver?restref=94621&lang=en" class="nav-link">LoDo</a> 863 864 </li> 865 866 867 868 869 870 871 872 873 874 875 876 877 878 <li class="child kids-0"> 879 <a href="https://www.opentable.com/restref/client/?restref=30343&lang=en-US&ot_source=Restaurant%20website&corrid=6381bb85-8316-4d68-bcb0-3f13bab278cd" class="nav-link">Cherry Creek</a> 880 881 </li> 882 883 884 885 886 </ul> 887 </div> 888 889 </li> 890 891 892 893 894 895 896 897 898 899 900 901 902 903 <li class="child kids-0"> 904 <a href="/pages/order-online" class="nav-link">Order Online</a> 905 906 </li> 907 908 909 910 911 912 913 914 915 916 917 918 919 920 <li class="child kids-0"> 921 <a href="/pages/delivery" class="nav-link">Delivery</a> 922 923 </li> 924 925 926 927 928 929 930 931 932 933 934 935 936 937 <li class="child kids-0"> 938 <a href="/pages/catering" class="nav-link">Catering</a> 939 940 </li> 941 942 943 944 945 946 947 948 949 950 951 952 953 954 <li class="parent kids-2"> 955 <a href="#" class="nav-link">Gift Cards + Contact</a> 956 957 <a href="#" class="nav-carat"><span class="plus">+</span><span class="minus">-</span></a> 958 <div class="main-menu-dropdown"> 959 <ul> 960 961 962 963 964 965 966 967 968 969 970 971 972 973 <li class="child kids-0"> 974 <a href="/pages/gift-cards" class="nav-link">Gift Cards</a> 975 976 </li> 977 978 979 980 981 982 983 984 985 986 987 988 989 990 <li class="child kids-0"> 991 <a href="/pages/contact-us" class="nav-link">Contact</a> 992 993 </li> 994 995 996 997 998 </ul> 999 </div> 1000 1001 </li> 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 <li class="child kids-0"> 1016 <a href="/blogs/menus/careers" class="nav-link">Careers</a> 1017 1018 </li> 1019 1020 1021 1022 1023 <li class="cart-text-link"> 1024 <a href="/cart" class="CartToggle"> 1025 Cart 1026 <span class="cartCost hidden-count ">(<span class="money">$0.00</span>)</span> 1027 </a> 1028 </li> 1029 1030 </ul> 1031</div> 1032 1033 </div> 1034 <div class="nav--mobile"> 1035 <div class="mobile-wrapper"> 1036 1037 <div class="header-cart__wrapper"> 1038 <a href="/cart" class="CartToggle header-cart"></a> 1039 <span class="header-cart__bubble cartCount hidden-count"></span> 1040 </div> 1041 1042 <div class="logo-wrapper logo-wrapper--image"> 1043 1044 <h1 class="h4 header-logo" itemscope itemtype="http://schema.org/Organization"> 1045 1046 1047 <a href="/" itemprop="url"> 1048 <img src="//hapasushi.com/cdn/shop/t/3/assets/logo.png?v=83924648988205310581476483441" alt="Hapa Sushi" itemprop="logo" class="logo-image" onerror='this.style.display = "none"'/> 1049 </a> 1050 1051 1052 </h1> 1053 1054 </div> 1055 <a href class="menuToggle header-hamburger"></a> 1056</div> 1057<div class="header-menu nav-wrapper"> 1058 1059 <ul class="main-menu accessibleNav"> 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 <li class="child main-menu--active kids-0"> 1073 <a href="/" class="nav-link">Home</a> 1074 1075 </li> 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 <li class="parent kids-4"> 1090 <a href="#" class="nav-link">Locations</a> 1091 1092 <a href="#" class="nav-carat"><span class="plus">+</span><span class="minus">-</span></a> 1093 <div class="main-menu-dropdown"> 1094 <ul> 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 <li class="child kids-0"> 1109 <a href="/pages/pearl-street-in-boulder" class="nav-link">Pearl Street</a> 1110 1111 </li> 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 <li class="child kids-0"> 1126 <a href="/pages/cherry-creek" class="nav-link">Cherry Creek</a> 1127 1128 </li> 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 <li class="child kids-0"> 1143 <a href="/pages/landmark-at-greenwood-village" class="nav-link">Landmark</a> 1144 1145 </li> 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 <li class="child kids-0"> 1160 <a href="/pages/lodo" class="nav-link">LoDo</a> 1161 1162 </li> 1163 1164 1165 1166 1167 </ul> 1168 </div> 1169 1170 </li> 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 <li class="parent kids-9"> 1185 <a href="#" class="nav-link">Menus</a> 1186 1187 <a href="#" class="nav-carat"><span class="plus">+</span><span class="minus">-</span></a> 1188 <div class="main-menu-dropdown"> 1189 <ul> 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 <li class="child kids-0"> 1204 <a href="https://cdn.shopify.com/s/files/1/1540/0729/files/HH_Hard_Menu_022326_1.pdf?v=1776097690" class="nav-link">Happy Hour</a> 1205 1206 </li> 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 <li class="child kids-0"> 1221 <a href="https://cdn.shopify.com/s/files/1/1540/0729/files/Hapa_Lunch_Menu_020226.pdf?v=1772038341" class="nav-link">Lunch</a> 1222 1223 </li> 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 <li class="child kids-0"> 1238 <a href="https://cdn.shopify.com/s/files/1/1540/0729/files/Hapa_Dinner_020226.pdf?v=1772038341" class="nav-link">Dinner</a> 1239 1240 </li> 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 <li class="child kids-0"> 1255 <a href="https://cdn.shopify.com/s/files/1/1540/0729/files/GF_Lunc
1255h_Dinner_020226.pdf?v=1772038341" class="nav-link">Gluten Free</a> 1256 1257 </li> 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 <li class="child kids-0"> 1272 <a href="https://cdn.shopify.com/s/files/1/1540/0729/files/HH_GF_Hard_Menu_022426.pdf?v=1772038341" class="nav-link">Gluten Free Happy Hour</a> 1273 1274 </li> 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 <li class="child kids-0"> 1289 <a href="https://cdn.shopify.com/s/files/1/1540/0729/files/Kids_Menu_090924.pdf?v=1726076387" class="nav-link">Kids Menu</a> 1290 1291 </li> 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 <li class="child kids-0"> 1306 <a href="https://cdn.shopify.com/s/files/1/1540/0729/files/Catering_Menu_September_2024_Logo_d2ca3d5e-3326-4d3a-a3cb-0c08fd193d60.pdf?v=1727380000" class="nav-link">Catering + Platter Menu</a> 1307 1308 </li> 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 <li class="child kids-0"> 1323 <a href="https://cdn.shopify.com/s/files/1/1540/0729/files/Liquor_Menu_070524_2.pdf?v=1725993200" class="nav-link">Drinks</a> 1324 1325 </li> 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 <li class="child kids-0"> 1340 <a href="https://cdn.shopify.com/s/files/1/1540/0729/files/Dessert_33125.pdf?v=1746709460" class="nav-link">Dessert Menu</a> 1341 1342 </li> 1343 1344 1345 1346 1347 </ul> 1348 </div> 1349 1350 </li> 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 <li class="parent kids-4"> 1365 <a href="#" class="nav-link">Reservations</a> 1366 1367 <a href="#" class="nav-carat"><span class="plus">+</span><span class="minus">-</span></a> 1368 <div class="main-menu-dropdown"> 1369 <ul> 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 <li class="child kids-0"> 1384 <a href="https://www.opentable.com/hapa-sushi-grill-and-sake-bar-pearl-st-reservations-boulder?restref=47158&lang=en" class="nav-link">Pearl Street</a> 1385 1386 </li> 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 <li class="child kids-0"> 1401 <a href="https://www.opentable.com/hapa-sushi-grill-and-sake-bar-landmark-in-reservations-greenwood-village?restref=25816&lang=en" class="nav-link">Landmark</a> 1402 1403 </li> 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 <li class="child kids-0"> 1418 <a href="https://www.opentable.com/hapa-sushi-grill-and-sake-bar-lodo-reservations-denver?restref=94621&lang=en" class="nav-link">LoDo</a> 1419 1420 </li> 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 <li class="child kids-0"> 1435 <a href="https://www.opentable.com/restref/client/?restref=30343&lang=en-US&ot_source=Restaurant%20website&corrid=638
14351bb85-8316-4d68-bcb0-3f13bab278cd" class="nav-link">Cherry Creek</a> 1436 1437 </li> 1438 1439 1440 1441 1442 </ul> 1443 </div> 1444 1445 </li> 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 <li class="child kids-0"> 1460 <a href="/pages/order-online" class="nav-link">Order Online</a> 1461 1462 </li> 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 <li class="child kids-0"> 1477 <a href="/pages/delivery" class="nav-link">Delivery</a> 1478 1479 </li> 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 <li class="child kids-0"> 1494 <a href="/pages/catering" class="nav-link">Catering</a> 1495 1496 </li> 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 <li class="parent kids-2"> 1511 <a href="#" class="nav-link">Gift Cards + Contact</a> 1512 1513 <a href="#" class="nav-carat"><span class="plus">+</span><span class="minus">-</span></a> 1514 <div class="main-menu-dropdown"> 1515 <ul> 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 <li class="child kids-0"> 1530 <a href="/pages/gift-cards" class="nav-link">Gift Cards</a> 1531 1532 </li> 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 <li class="child kids-0"> 1547 <a href="/pages/contact-us" class="nav-link">Contact</a> 1548 1549 </li> 1550 1551 1552 1553 1554 </ul> 1555 </div> 1556 1557 </li> 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 <li class="child kids-0"> 1572 <a href="/blogs/menus/careers" class="nav-link">Careers</a> 1573 1574 </li> 1575 1576 1577 1578 1579 <li class="cart-text-link"> 1580 <a href="/cart" class="CartToggle"> 1581 Cart 1582 <span class="cartCost hidden-count ">(<span class="money">$0.00</span>)</span> 1583 </a> 1584 </li> 1585 1586 </ul> 1587</div> 1588 1589 </div> 1590 </div> 1591 </header> 1592 </div> 1593 1594 <main class="main-content" role="main"> 1595 1596 <div class="homepage-image preventOverflow homepageHero use_screen_two_thirds homepage--white"> 1597 1598 <div class="content--centered"> 1599 <div class="text-center preventOverflowContent"> 1600 1601 <h1 class="title--flex">Eat.</h1> 1602 1603 <a class="btn btn--large btn--splash btn--square uppercase" href="https://hapasushi.namer.alohaonlineordering.com/Engage.aspx?#/engage/ordering/menu/">Order Pickup</a> 1604 <a class="btn btn--large btn--splash btn--square uppercase" href="https://order.online/business/hapa-sushi-grill--sake-bar-16790">Order Delivery</a> 1605 1606 </div> 1607 </div> 1608 1609 <div class="image-overlay image-overlay-20"></div> 1610 1611 1612 1613</div> 1614 1615
1616<script> 1617 $('.homepageHero').parallax({ 1618 imageSrc: '//hapasushi.com/cdn/shop/t/3/assets/homepage_hero_image.jpg?v=20695569816738157411476483594', 1619 parallax: 'scroll', 1620 bleed: '55' 1621 }); 1622</script>
1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633<div class="homepage-page homepage--dark"> 1634 <div class="wrapper"> 1635 <div class="grid"> 1636 <div class="grid__item large--five-sixths push--large--one-twelfth"> 1637 <h4 class="home__subtitle">The most delicious Japanese + Hawaiian food fusion</h4> 1638 <div class="rte homepage-page__content"><p>"Hapa" is derived from the Hawaiian term that describes a harmonious blend of Asian & American cultures.</p> 1639<p>Thus, our menu is based on traditional Japanese cooking fundamentals which are then amplified, muted, or mixed with influences from many different styles of cooking until they are something completely new: they're Hapa.</p></div> 1640 </div> 1641 </div> 1642 </div> 1643</div> 1644 1645 1646 1647 1648 1649 1650 1651 1652 <div class="homepage-gallery"> 1653 1654 <div class="gallery-image "> 1655 <a href="//hapasushi.com/cdn/shop/articles/CA1_0904F_2000x2000.jpg?v=1476493456" class="gallery" > 1656 <img src="//hapasushi.com/cdn/shop/articles/CA1_0904F_1000x750_crop_center.jpg?v=1476493456" alt="" /> 1657 </a> 1658 </div> 1659 1660 <div class="gallery-image "> 1661 <a href="//hapasushi.com/cdn/shop/articles/CA1_1099F_2000x2000.jpg?v=1476493250" class="gallery" > 1662 <img src="//hapasushi.com/cdn/shop/articles/CA1_1099F_1000x750_crop_center.jpg?v=1476493250" alt="" /> 1663 </a> 1664 </div> 1665 1666 <div class="gallery-image "> 1667 <a href="//hapasushi.com/cdn/shop/articles/AOO24karat_2000x2000.jpg?v=1763149167" class="gallery" > 1668 <img src="//hapasushi.com/cdn/shop/articles/AOO24karat_1000x750_crop_center.jpg?v=1763149167" alt="" /> 1669 </a> 1670 </div> 1671 1672 <div class="gallery-image large"> 1673 <a href="//hapasushi.com/cdn/shop/articles/AOOKaraagesliders_2000x2000.jpg?v=1763148825" class="gallery" > 1674 <img src="//hapasushi.com/cdn/shop/articles/AOOKaraagesliders_1000x750_crop_center.jpg?v=1763148825" alt="" /> 1675 </a> 1676 </div> 1677 1678 <div class="gallery-image large"> 1679 <a href="//hapasushi.com/cdn/shop/articles/AOOTrufflemaguro_2000x2000.jpg?v=1763148725" class="gallery" > 1680 <img src="//hapasushi.com/cdn/shop/articles/AOOTrufflemaguro_1000x750_crop_center.jpg?v=1763148725" alt="" /> 1681 </a> 1682 </div> 1683 1684 </div> 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 </main> 1695 1696 <footer class="site-footer-wrapper" role="contentinfo"> 1697 1698 <a href="/" itemprop="url" class="footer-logo" id="footerLogo" style="opacity:0;"> 1699 <img src="//hapasushi.com/cdn/shop/t/3/assets/footer.png?v=134463997497147732061477355038" alt="Hapa Sushi" itemprop="logo" id="footerLogoImg"/> 1700 </a> 1701 1702 <div class="wrapper site-footer"> 1703 <div class="grid-uniform"> 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 <div class="grid__item large--one-half push--large--one-quarter"> 1714 <h5 class="uppercase">Locations </h5> 1715 <hr class="hr--underline"> 1716 <ul class="footer-quicklinks"> 1717 1718 <li><a href="/pages/pearl-street-in-boulder">Pearl Street</a></li> 1719 1720 <li><a href="/pages/cherry-creek">Cherry Creek</a></li> 1721 1722 <li><a href="/pages/landmark-at-greenwood-village">Landmark</a></li> 1723 1724 <li><a href="/pages/lodo">LoDo</a></li> 1725 1726 </ul> 1727 </div> 1728 1729 1730 1731 1732 1733 </div> 1734 1735 <div class="grid footer-secondary-wrapper"> 1736 <ul class="footer-secondary grid__item inline-list"> 1737 <li><a href="/">© Hapa Sushi 2026</a></li> 1738 1739 <li><a href="https://cdn.shopify.com/s/files/1/1540/0729/files/HH_Hard_Menu_022326_1.pdf?v=1776097690">Happy Hour</a></li> 1740 1741 <li><a href="https://cdn.shopify.com/s/files/1/1540/0729/files/Hapa_Lunch_Menu_020226.pdf?v=1772038341">Lunch</a></li> 1742 1743 <li><a href="https://cdn.shopify.com/s/files/1/1540/0729/files/Hapa_Dinner_020226.pdf?v=1772038341">Dinner</a></li> 1744 1745 <li><a href="https://cdn.shopify.com/s/files/1/1540/0729/files/GF_Lunch_Dinner_020226.pdf?v=1772038341">Gluten Free</a></li> 1746 1747 <li><a href="https://cdn.shopify.com/s/files/1/1540/0729/files/HH_GF_Hard_Menu_022426.pdf?v=1772038341">Gluten Free Happy Hour</a></li> 1748 1749 <li><a href="https://cdn.shopify.com/s/files/1/1540/0729/files/Kids_Menu_090924.pdf?v=1726076387">Kids Menu</a></li> 1750 1751 <li><a href="https://cdn.shopify.com/s/files/1/1540/0729/files/Catering_Menu_September_2024_Logo_d2ca3d5e-3326-4d3a-a3cb-0c08fd193d60.pdf?v=1727380000">Catering + Platter Menu</a></li> 1752 1753 <li><a href="https://cdn.shopify.com/s/files/1/1540/0729/files/Liquor_Menu_070524_2.pdf?v=1725993200">Drinks</a></li> 1754 1755 <li><a href="https://cdn.shopify.com/s/files/1/1540/0729/files/Dessert_33125.pdf?v=1746709460">Dessert Menu</a></li> 1756 1757 1758 </ul> 1759 1760 1761 <ul class="footer-payment payment-icons grid__item inline-list"> 1762 1763 <li>
1764 <span class="icon-fallback-text"> 1765 <span class="icon icon-paypal" aria-hidden="true"></span> 1766 <span class="fallback-text">paypal</span> 1767 </span> 1768 </li> 1769 1770 </ul> 1771 1772 1773 1774 <ul class="footer-social social-icons grid__item inline-list"> 1775 1776 <li> 1777 <a class="icon-fallback-text" href="https://twitter.com/HapaSushi" title="Hapa Sushi on Twitter" target="_blank"> 1778 <span class="icon icon-twitter" aria-hidden="true"></span> 1779 <span class="fallback-text">Twitter</span> 1780 </a> 1781 </li> 1782 1783 1784 <li> 1785 <a class="icon-fallback-text" href="https://www.facebook.com/hapasushi/" title="Hapa Sushi on Facebook" target="_blank"> 1786 <span class="icon icon-facebook" aria-hidden="true"></span> 1787 <span class="fallback-text">Facebook</span> 1788 </a> 1789 </li> 1790 1791 1792 <li> 1793 <a class="icon-fallback-text" href="https://www.instagram.com/hapasushi/" title="Hapa Sushi on Instagram" target="_blank"> 1794 <span class="icon icon-instagram" aria-hidden="true"></span> 1795 <span class="fallback-text">Instagram</span> 1796 </a> 1797 </li> 1798 1799 1800 1801 1802 1803 1804 </ul> 1805 1806 </div> 1807 </div> 1808 </footer> 1809 1810
1810<script src="//hapasushi.com/cdn/shop/t/3/assets/fastclick.min.js?v=29723458539410922371476481442" type="text/javascript"></script>
1810 1811
1811<script src="//hapasushi.com/cdn/shop/t/3/assets/shop.js?v=24237613074594798361477353437" type="text/javascript"></script>
1811 1812
1812<script src="//hapasushi.com/cdn/shop/t/3/assets/featherlight.js?v=99075308828580375161476486593" type="text/javascript"></script>
1812 1813
1813<script src="//hapasushi.com/cdn/shop/t/3/assets/featherlight.gallery.min.js?v=179145104452648193331476487067" type="text/javascript"></script>
1813 1814 1815
1815<script> 1816 $('a.gallery').featherlightGallery({ 1817 openSpeed: 300 1818 }); 1819 1820 1821 </script>
1821 1822 1823 1824 1825
1825<script src="//hapasushi.com/cdn/shop/t/3/assets/handlebars.min.js?v=79044469952368397291476481442" type="text/javascript"></script>
1825 1826 <!-- /snippets/ajax-cart-template.liquid --> 1827 1828
1828<script id="CartTemplate" type="text/template"> 1829 1830 <form action="/cart" method="post" novalidate> 1831 <div class="ajaxcart__inner"> 1832 {{#items}} 1833 <div class="ajaxcart__product"> 1834 <div class="ajaxcart__row" data-id="{{id}}"> 1835 <div class="grid"> 1836 <div class="grid__item large--two-thirds"> 1837 <div class="grid"> 1838 <div class="grid__item one-quarter"> 1839 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a> 1840 </div> 1841 <div class="grid__item three-quarters"> 1842 <a href="{{url}}" class="h4">{{name}}</a> 1843 {{#if variantion }} 1844 <p>{{variation}}</p> 1845 {{/if}} 1846 </div> 1847 </div> 1848 </div> 1849 <div class="grid__item large--one-third"> 1850 <div class="grid"> 1851 <div class="grid__item one-third"> 1852 <div class="ajaxcart__qty"> 1853 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{id}}" data-qty="{{itemMinus}}">−</button> 1854 <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{id}}" aria-label="quantity" pattern="[0-9]*"> 1855 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{id}}" data-qty="{{itemAdd}}">+</button> 1856 </div> 1857 </div> 1858 <div class="grid__item one-third text-center"> 1859 <p>{{price}}</p> 1860 </div> 1861 <div class="grid__item one-third text-right"> 1862 <p> 1863 <small><a href="/cart/change?id={{id}}&quantity=0" class="ajaxcart__remove" data-id="{{id}}">Remove</a></small> 1864 </p> 1865 </div> 1866 </div> 1867 </div> 1868 </div> 1869 </div> 1870 </div> 1871 {{/items}} 1872 </div> 1873 <div class="ajaxcart__row text-right medium-down--text-center"> 1874 <span class="h3">Subtotal {{totalPrice}}</span> 1875 <input type="submit" class="{{btnClass}}" name="checkout" value="Check Out"> 1876 </div> 1877 </form> 1878 1879 </script>
1879 1880
1880<script id="DrawerTemplate" type="text/template"> 1881 1882 <div id="AjaxifyDrawer" class="ajaxcart ajaxcart--drawer"> 1883 <div id="AjaxifyCart" class="ajaxcart__content {{wrapperClass}}"></div> 1884 </div> 1885 1886 </script>
1886 1887
1887<script id="ModalTemplate" type="text/template"> 1888 1889 <div id="AjaxifyModal" class="ajaxcart ajaxcart--modal"> 1890 <div id="AjaxifyCart" class="ajaxcart__content"></div> 1891 </div> 1892 1893 </script>
1893 1894
1894<script id="AjaxifyQty" type="text/template"> 1895 1896 <div class="ajaxcart__qty"> 1897 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{id}}" data-qty="{{itemMinus}}">−</button> 1898 <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{id}}" aria-label="quantity" pattern="[0-9]*"> 1899 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{id}}" data-qty="{{itemAdd}}">+</button> 1900 </div> 1901 1902 </script>
1902 1903
1903<script id="JsQty" type="text/template"> 1904 1905 <div class="js-qty"> 1906 <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{id}}" data-qty="{{itemMinus}}">−</button> 1907 <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{id}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}" data-submit="{{submit}}"> 1908 <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{id}}" data-qty="{{itemAdd}}">+</button> 1909 </div> 1910 1911 </script>
1911 1912 1913
1913<script src="//hapasushi.com/cdn/shop/t/3/assets/ajaxify.js?v=30145939585197181101480812085" type="text/javascript"></script>
1913 1914
1914<script> 1915 jQuery(document).ready(function(){ 1916 var oldBrowser = $( "html" ).hasClass( "lt-ie9" ); 1917 if(!oldBrowser) { 1918 ajaxifyShopify.init({ 1919 method: 'modal', 1920 wrapperClass: 'wrapper', 1921 formSelector: '#AddToCartForm', 1922 addToCartSelector: '#AddToCart', 1923 cartCountSelector: '.cartCount', 1924 cartCostSelector: '.cartCost', 1925 toggleCartButton: '.CartToggle', 1926 useCartTemplate: true, 1927 btnClass: 'btn', 1928 moneyFormat: "${{amount}}", 1929 disableAjaxCart: false, 1930 enableQtySelectors: true, 1931 prependDrawerTo: 'body', 1932 onToggleCallback: function(){ 1933 jQuery('body').trigger('ajaxCart.afterCartLoad') 1934 } 1935 }); 1936 } 1937 }); 1938 </script>
1938 1939 1940<div id="shopify-block-AYjNLSHk4TmJUV2VSW__2783554875815837874" class="shopify-block shopify-app-block"> 1941 <!-- BEGIN app snippet: app-data --> 1942<!-- BEGIN app snippet: widget-boot -->
1942<script> 1943 (function () { 1944 // Headless / DOM-rebuild storefronts (e.g. Helium builder) re-render the whole 1945 // document after hydration, wiping both this injected loader script and the 1946 // widget nodes it mounts â the widget silently disappears. This closure survives 1947 // such rebuilds (it lives in JS memory even after its own script node is removed), 1948 // so it re-injects the loader whenever the widget vanishes after having mounted. 1949 if (window.__seaA11yLoaderHealer) return; 1950 window.__seaA11yLoaderHealer = true; 1951 1952 var LOADER_BASE = 'https://cdn-accessibility.avada.io/scripttag'; 1953 var LOADER_FILE = 'sea-accessibility-loader.min.js'; 1954 // Every id/class the loader or main bundle renders when the widget is present. 1955 var WIDGET_SELECTORS = [ 1956 '#Sea-Accessibility__LoaderButton', 1957 '#Sea-Accessibility__button', 1958 '#Sea-Accessibility__ButtonWidget--Inline', 1959 '#SEA_ACCESSIBILITY_WidgetIconContainer', 1960 '.Sea-Accessibility__Loader' 1961 ]; 1962 var MAX_REHEALS = 20; // safety cap so a hostile theme can never loop forever 1963 1964 function widgetPresent() { 1965 for (var i = 0; i < WIDGET_SELECTORS.length; i++) { 1966 if (document.querySelector(WIDGET_SELECTORS[i])) return true; 1967 } 1968 return false; 1969 } 1970 1971 function loaderScriptPresent() { 1972 var scripts = document.getElementsByTagName('script'); 1973 for (var i = 0; i < scripts.length; i++) { 1974 if (scripts[i].src && scripts[i].src.indexOf('sea-accessibility-loader') !== -1) return true; 1975 } 1976 return false; 1977 } 1978 1979 // SEC-P4 H1 follow-up (SB-17345): the loader stays a fixed filename (it's embedded 1980 // here by literal name), so it can't be pinned by content-hash like the main bundle. 1981 // Instead we fetch its sha384 from a manifest that ships in the very same scripttag 1982 // build/deploy as the loader bundle itself, so the two can never drift apart the way 1983 // a hash hardcoded into this Liquid template could (this template and the scripttag 1984 // bundle deploy on separate, unsynchronized pipelines). 1985 var loaderManifest = null; // {file, integrity} once fetched; stays null forever on failure 1986 var manifestFetchStarted = false; 1987 1988 function fetchLoaderManifest(onDone) { 1989 if (loaderManifest || manifestFetchStarted) return onDone(); 1990 manifestFetchStarted = true; 1991 var done = false; 1992 function finish() { 1993 if (done) return; 1994 done = true; 1995 onDone(); 1996 } 1997 try { 1998 var xhr = new XMLHttpRequest(); 1999 xhr.open('GET', LOADER_BASE + '/loader-sri-manifest.json?v=' + Date.now(), true); 2000 xhr.timeout = 3000; 2001 xhr.onload = function () { 2002 try { 2003 if (xhr.status >= 200 && xhr.status < 300) { 2004 var manifest = JSON.parse(xhr.responseText); 2005 if (manifest && manifest.file && manifest.integrity) loaderManifest = manifest; 2006 } 2007 } catch (e) {} 2008 finish(); 2009 }; 2010 xhr.onerror = finish; 2011 xhr.ontimeout = finish; 2012 xhr.send(); 2013 } catch (e) { 2014 finish(); 2015 } 2016 } 2017 2018 function injectLoader() { 2019 // Fail-open by design: a manifest fetch hiccup (network flake, ad blocker on the 2020 // XHR, CDN blip) must never take the whole accessibility widget down. Worst case 2021 // we load the loader unpinned, same as before this fix. 2022 fetchLoaderManifest(function () { 2023 var s = document.createElement('script'); 2024 if (loaderManifest) { 2025 s.src = LOADER_BASE + '/' + loaderManifest.file + '?v=' + Date.now(); 2026 s.integrity = loaderManifest.integrity; 2027 s.crossOrigin = 'anonymous'; 2028 } else { 2029 s.src = LOADER_BASE + '/' + LOADER_FILE + '?v=' + Date.now(); 2030 } 2031 s.defer = true; 2032 (document.head || document.documentElement).appendChild(s); 2033 }); 2034 } 2035 2036 injectLoader(); 2037 2038 // Only reheal once the widget has actually mounted and then disappeared: this 2039 // avoids re-injecting on stores where the widget is legitimately absent 2040 // (country-hidden, inline target missing) or where a script optimiser merely 2041 // strips executed
2041<script> tags without touching the widget. 2042 var everMounted = false; 2043 var reheals = 0; 2044 var rehealing = false; 2045 2046 function check() { 2047 if (widgetPresent()) { 2048 everMounted = true; 2049 return; 2050 } 2051 if (!everMounted || rehealing || reheals >= MAX_REHEALS) return; 2052 // Widget gone. The loader
2052<script> being gone too is the DOM-rebuild signal. 2053 if (loaderScriptPresent()) return; 2054 rehealing = true; 2055 reheals++; 2056 injectLoader(); 2057 // Give the freshly injected loader a beat to mount before re-arming. 2058 setTimeout(function () { rehealing = false; }, 1000); 2059 } 2060 2061 if (typeof MutationObserver !== 'undefined') { 2062 var start = function () { 2063 try { 2064 new MutationObserver(check).observe(document.documentElement, { 2065 childList: true, 2066 subtree: true 2067 }); 2068 } catch (e) {} 2069 }; 2070 if (document.body) start(); 2071 else document.addEventListener('DOMContentLoaded', start); 2072 } 2073 })(); 2074</script>
2074 2075<!-- END app snippet --> 2076 2077 2078 2079 2080 <link href='https://fonts.cdnfonts.com/css/noto-serif-gurmukhi' rel='stylesheet'> 2081 <link href='https://fonts.cdnfonts.com/css/open-dyslexic' rel='stylesheet'> 2082 <style> 2083 @font-face { 2084 font-family: 'Sea-Accessibility-Open-Dyslexic'; 2085 font-style: normal; 2086 font-weight: 400; 2087 font-display: swap; 2088 src: url('https://fonts.cdnfonts.com/s/29616/open-dyslexic.woff') format('woff'); 2089 } 2090 2091 @font-face { 2092 font-family: 'Sea-Accessibility'; 2093 font-style: normal; 2094 font-weight: 400; 2095 font-display: swap; 2096 src: url('https://fonts.cdnfonts.com/s/107479/NotoSerifGurmukhi[wght].woff') format('woff'); 2097 } 2098 2099 @font-face { 2100 font-family: 'Sea-Accessibility'; 2101 font-style: normal; 2102 font-weight: 700; 2103 font-display: swap; 2104 src: url('https://fonts.cdnfonts.com/s/107479/NotoSerifGurmukhi[wght].woff') format('woff'); 2105 } 2106 </style> 2107
2108<script> 2109 try { 2110 const [dataMetafields = {}] = [ 2111 {"appStatus":true,"removeBrandingForNewShop":false,"disabledToggleClassAtModeReaderView":false,"showCloseButton":false,"redetectOnLocaleChange":false,"menuSetting":{"allowResizeContent":true,"allowChangeLanguage":true,"allowAccessibilityProfiles":true,"enableShowHideWidget":true,"allowResetAdjustment":true,"enableStatementLink":true,"enableContrast":true,"enableSaturation":true,"enableHighlightLinks":true,"enableTextSize":true,"enableTextAlignment":true,"enableLetterSpacing":true,"enableLineSpacing":true,"enableFont":true,"enableTextMagnifier":true,"enableMuteSound":true,"enableHideImages":true,"enableStopAnimations":true,"enableReaderView":true,"enableReadingGuide":true,"enablePageStructure":true,"enableBWCursor":true,"enableTextToSpeech":true,"enableAutoAltText":true,"statementLink":"https:\/\/hapa-sushi.myshopify.com\/pages\/accessibility-statement","shopId":"hwAAR5YsbuMaqaRwmMhI","createdAt":"2026-07-29T17:15:22.353Z","id":"UaDrI6Se6WQhoxprzPBL"},"widgetSetting":{"preset":"mono","footerTitle":"Powered by Avada","detectLanguage":["browser-language"],"position":"left","mobileRatio":"full-screen","buttonPosition":"bottom","buttonIcon":"pajamas","buttonSize":"small","textFont":"inherit","serveFontViaCDN":false,"defaultLanguage":"en-US","customCSS":"","headerTitle":"","countryVisibility":"all","countryList":[],"brandPrimaryColor":"#272D36","brandSecondaryColor":"#272D36","brandBgColor":"#F5F5F5","titleSectionTextColor":"#272D36","titleSectionBgColor":"#FFFFFF","resetButtonTextColor":"#FFFFFF","resetButtonBgColor":"#272D36","hideButtonTextColor":"#B50700","shopId":"hwAAR5YsbuMaqaRwmMhI","createdAt":"2026-07-29T17:15:22.622Z","inlineTextLocalized":{"en-US":"Accessibility","en-GB":"Accessibility","fr":"Accessibilité","de":"Barrierefreiheit","it":"Accessibilità ","es":"Accesibilidad","el":"Î ÏοÏβαÏιμÏÏηÏα","pt-PT":"Acessibilidade","pt-BR":"Acessibilidade","cs":"PÅÃstupnost","da":"Tilgængelighed","nl":"Toegankelijkheid","fi":"Esteettömyys","sv":"Tillgänglighet","no":"Tilgjengelighet","pl":"DostÄpnoÅÄ","vi":"Trợ nÄng","ja":"ã¢ã¯ã»ã·ããªãã£","ko":"ì ê·¼ì±","zh-CN":"æ éç¢","zh-TW":"ç¡éç¤","th":"à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸","tr":"EriÅilebilirlik","ru":"ÐоÑÑÑпноÑÑÑ","he":"× ××ש×ת","hi":"सà¥à¤²à¤à¤¤à¤¾","id":"Aksesibilitas","et":"Ligipääsetavus","ro":"Accesibilitate","lt":"Prieinamumas","ar":"Ø¥Ù ÙØ§ÙÙØ© اÙÙØµÙÙ"},"inlineTextMode":"worldwide","id":"BgOGp6etlgePgTiwq0t1"},"translations":{},"shopId":"hwAAR5YsbuMaqaRwmMhI","lastUpdated":"2026-07-29T17:25:48.580Z"}, 2112 ]; 2113 const isBlock = false; 2114 const isV2Shop = false; 2115 const initData = () => ({ 2116 ...dataMetafields, 2117 isBlock, 2118 isV2Shop, 2119 template: "index", 2120 }); 2121 2122 if (!window.SEA_ACCESSIBILITY) { 2123 window.SEA_ACCESSIBILITY = initData(); 2124 } 2125 window.SEA_ACCESSIBILITY = {...window.SEA_ACCESSIBILITY, ...initData()}; 2126 2127 } catch (e) { 2128 console.error('Error assigning sea accessibility variable', e); 2129 } 2130</script>
2130 2131<!-- BEGIN app snippet: widget-boot -->
2131<script> 2132 (function () { 2133 // Headless / DOM-rebuild storefronts (e.g. Helium builder) re-render the whole 2134 // document after hydration, wiping both this injected loader script and the 2135 // widget nodes it mounts â the widget silently disappears. This closure survives 2136 // such rebuilds (it lives in JS memory even after its own script node is removed), 2137 // so it re-injects the loader whenever the widget vanishes after having mounted. 2138 if (window.__seaA11yLoaderHealer) return; 2139 window.__seaA11yLoaderHealer = true; 2140 2141 var LOADER_BASE = 'https://cdn-accessibility.avada.io/scripttag'; 2142 var LOADER_FILE = 'sea-accessibility-loader.min.js'; 2143 // Every id/class the loader or main bundle renders when the widget is present. 2144 var WIDGET_SELECTORS = [ 2145 '#Sea-Accessibility__LoaderButton', 2146 '#Sea-Accessibility__button', 2147 '#Sea-Accessibility__ButtonWidget--Inline', 2148 '#SEA_ACCESSIBILITY_WidgetIconContainer', 2149 '.Sea-Accessibility__Loader' 2150 ]; 2151 var MAX_REHEALS = 20; // safety cap so a hostile theme can never loop forever 2152 2153 function widgetPresent() { 2154 for (var i = 0; i < WIDGET_SELECTORS.length; i++) { 2155 if (document.querySelector(WIDGET_SELECTORS[i])) return true; 2156 } 2157 return false; 2158 } 2159 2160 function loaderScriptPresent() { 2161 var scripts = document.getElementsByTagName('script'); 2162 for (var i = 0; i < scripts.length; i++) { 2163 if (scripts[i].src && scripts[i].src.indexOf('sea-accessibility-loader') !== -1) return true; 2164 } 2165 return false; 2166 } 2167 2168 // SEC-P4 H1 follow-up (SB-17345): the loader stays a fixed filename (it's embedded 2169 // here by literal name), so it can't be pinned by content-hash like the main bundle. 2170 // Instead we fetch its sha384 from a manifest that ships in the very same scripttag 2171 // build/deploy as the loader bundle itself, so the two can never drift apart the way 2172 // a hash hardcoded into this Liquid template could (this template and the scripttag 2173 // bundle deploy on separate, unsynchronized pipelines). 2174 var loaderManifest = null; // {file, integrity} once fetched; stays null forever on failure 2175 var manifestFetchStarted = false; 2176 2177 function fetchLoaderManifest(onDone) { 2178 if (loaderManifest || manifestFetchStarted) return onDone(); 2179 manifestFetchStarted = true; 2180 var done = false; 2181 function finish() { 2182 if (done) return; 2183 done = true; 2184 onDone(); 2185 } 2186 try { 2187 var xhr = new XMLHttpRequest(); 2188 xhr.open('GET', LOADER_BASE + '/loader-sri-manifest.json?v=' + Date.now(), true); 2189 xhr.timeout = 3000; 2190 xhr.onload = function () { 2191 try { 2192 if (xhr.status >= 200 && xhr.status < 300) { 2193 var manifest = JSON.parse(xhr.responseText); 2194 if (manifest && manifest.file && manifest.integrity) loaderManifest = manifest; 2195 } 2196 } catch (e) {} 2197 finish(); 2198 }; 2199 xhr.onerror = finish; 2200 xhr.ontimeout = finish; 2201 xhr.send(); 2202 } catch (e) { 2203 finish(); 2204 } 2205 } 2206 2207 function injectLoader() { 2208 // Fail-open by design: a manifest fetch hiccup (network flake, ad blocker on the 2209 // XHR, CDN blip) must never take the whole accessibility widget down. Worst case 2210 // we load the loader unpinned, same as before this fix. 2211 fetchLoaderManifest(function () { 2212 var s = document.createElement('script'); 2213 if (loaderManifest) { 2214 s.src = LOADER_BASE + '/' + loaderManifest.file + '?v=' + Date.now(); 2215 s.integrity = loaderManifest.integrity; 2216 s.crossOrigin = 'anonymous'; 2217 } else { 2218 s.src = LOADER_BASE + '/' + LOADER_FILE + '?v=' + Date.now(); 2219 } 2220 s.defer = true; 2221 (document.head || document.documentElement).appendChild(s); 2222 }); 2223 } 2224 2225 injectLoader(); 2226 2227 // Only reheal once the widget has actually mounted and then disappeared: this 2228 // avoids re-injecting on stores where the widget is legitimately absent 2229 // (country-hidden, inline target missing) or where a script optimiser merely 2230 // strips executed
2230<script> tags without touching the widget. 2231 var everMounted = false; 2232 var reheals = 0; 2233 var rehealing = false; 2234 2235 function check() { 2236 if (widgetPresent()) { 2237 everMounted = true; 2238 return; 2239 } 2240 if (!everMounted || rehealing || reheals >= MAX_REHEALS) return; 2241 // Widget gone. The loader
2241<script> being gone too is the DOM-rebuild signal. 2242 if (loaderScriptPresent()) return; 2243 rehealing = true; 2244 reheals++; 2245 injectLoader(); 2246 // Give the freshly injected loader a beat to mount before re-arming. 2247 setTimeout(function () { rehealing = false; }, 1000); 2248 } 2249 2250 if (typeof MutationObserver !== 'undefined') { 2251 var start = function () { 2252 try { 2253 new MutationObserver(check).observe(document.documentElement, { 2254 childList: true, 2255 subtree: true 2256 }); 2257 } catch (e) {} 2258 }; 2259 if (document.body) start(); 2260 else document.addEventListener('DOMContentLoaded', start); 2261 } 2262 })(); 2263</script>
2263 2264<!-- END app snippet --> 2265 2266<style id="sea-custom-css"></style> 2267 2268<!-- END app snippet --> 2269 2270 2271 2272</div>
2272<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
2272 2273</body> 2274</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.