1<!doctype html><html 2 class="no-js" 3 lang="en" 4 5> 6 <head> 7 <meta charset="utf-8"> 8 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 9 <meta name="viewport" content="width=device-width,initial-scale=1"> 10 <meta name="theme-color" content=""> 11 <!-- HIROIA-MARKER: v2026-05-22-hreflang-deploy --> 12 <link rel="canonical" href="https://www.hiroia.com/collections/all-products"><link rel="alternate" hreflang="en" href="https://www.hiroia.com/collections/all-products" /> 13 <link rel="alternate" hreflang="ja" href="https://www.hiroia.com/ja/collections/all-products" /> 14 <link rel="alternate" hreflang="zh-TW" href="https://hiroia.com.tw/collections/all-products" /> 15 <link rel="alternate" hreflang="x-default" href="https://www.hiroia.com/collections/all-products" /> 16 17 <!-- è¼å ¥Google Fonts --> 18 <link rel="preconnect" href="https://fonts.googleapis.com"> 19 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 20 <link 21 href=" 22 https://fonts.googleapis.com/css2? 23 family=Playfair+Display:wght@400;700& 24 family=Libre+Baskerville:wght@400;700& 25 family=Cormorant+Garamond:wght@400;700& 26 display=swap 27 " 28 rel="stylesheet" 29 > 30 <!-- è¼å ¥åé« --> 31 <style> 32 @font-face { 33 font-family: 'Linotype Didot Std'; 34 src: url('//www.hiroia.com/cdn/shop/t/143/assets/DIDOTLH-ROMAN.OTF?v=27079004613681493401788398023') format('opentype'); 35 font-weight: normal; 36 font-style: normal; 37 font-display: swap; 38 } 39 </style><link rel="preconnect" href="https://cdn.shopify.com" crossorigin> 40 <title> 41 All Products 42 – Hiroia</title> 43 <style> 44 @font-face { 45 font-family: 'Futura'; 46 src: url('//www.hiroia.com/cdn/shop/t/143/assets/futura.ttf?v=14226') format('truetype'); 47 font-weight: normal; 48 font-style: normal; 49 font-display: swap; 50 } 51 @font-face { 52 font-family: 'Futura Bk BT'; 53 src: url('//www.hiroia.com/cdn/shop/t/143/assets/futura-bk-bt.ttf?v=14226') format('truetype'); 54 font-weight: normal; 55 font-style: normal; 56 font-display: swap; 57 } 58 </style> 59 60 61 <!-- æ·»å noindex æª¢æ¥ --> 62 63 <!-- noindex 檢æ¥çµæ --> 64 65 66 67<meta property="og:site_name" content="Hiroia"> 68<meta property="og:url" content="https://www.hiroia.com/collections/all-products"> 69<meta property="og:title" content="All Products"> 70<meta property="og:type" content="product.group"> 71<meta property="og:description" content="Smart coffee equipment for every brew. Hiroia's automatic pour over machines, precision scales & grinders bring café-quality coffee home. Shop Hikaru, Samantha & EDGE."><meta property="og:image" content="http://www.hiroia.com/cdn/shop/files/Hikaru_Black_Photo1.1_3e43b0a5-cb5b-4479-8e3a-0e6e40369738.webp?v=1734573200"> 72 <meta property="og:image:secure_url" content="https://www.hiroia.com/cdn/shop/files/Hikaru_Black_Photo1.1_3e43b0a5-cb5b-4479-8e3a-0e6e40369738.webp?v=1734573200"> 73 <meta property="og:image:width" content="3840"> 74 <meta property="og:image:height" content="2194"><meta name="twitter:card" content="summary_large_image"> 75<meta name="twitter:title" content="All Products"> 76<meta name="twitter:description" content="Smart coffee equipment for every brew. Hiroia's automatic pour over machines, precision scales & grinders bring café-quality coffee home. Shop Hikaru, Samantha & EDGE."> 77 78
78<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
78<meta name="facebook-domain-verification" content="plfjs8vjen80c6g487ivfyyorwuy6s"> 79<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/61371220129/digital_wallets/dialog"> 80<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="alternate" type="application/atom+xml" title="Feed" href="/collections/all-products.atom" /> 81<link rel="alternate" hreflang="x-default" href="https://www.hiroia.com/collections/all-products"> 82<link rel="alternate" hreflang="en" href="https://www.hiroia.com/collections/all-products"> 83<link rel="alternate" hreflang="ja" href="https://www.hiroia.com/ja/collections/all-products"> 84<link rel="alternate" type="application/json+oembed" href="https://www.hiroia.com/collections/all-products.oembed">
85<script async="async" src="/checkouts/internal/preloads.js?locale=en-US"></script>
vendor: 1 bytes, line 85
85
86<script id="shopify-features" type="application/json">{"accessToken":"dd9cbfe8ebcab58078fc1acfc3a1a0f0","betas":["rich-media-storefront-analytics"],"domain":"www.hiroia.com","predictiveSearch":true,"shopId":61371220129,"locale":"en"}</script>
vendor: 1 bytes, line 86
86
87<script>var Shopify = Shopify || {}; 88Shopify.shop = "newhiroia.myshopify.com"; 89Shopify.locale = "en"; 90Shopify.currency = {"active":"USD","rate":"1.0"}; 91Shopify.country = "US"; 92Shopify.theme = {"name":"ella641\/2026çVerC7-92","id":153337036961,"schema_name":"Ella","schema_version":"6.4.1","theme_store_id":null,"role":"main"}; 93Shopify.theme.handle = "null"; 94Shopify.theme.style = {"id":null,"handle":null}; 95Shopify.cdnHost = "www.hiroia.com/cdn"; 96Shopify.routes = Shopify.routes || {}; 97Shopify.routes.root = "/"; 98Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 99Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 100Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 101Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 101
101
102<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 102
102
103<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 103
103
104<script> 105 window.Shopify = window.Shopify || {}; 106 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 107 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 108 window.Shopify.SignInWithShop.eligible = true; 109</script>
vendor: 1 bytes, line 109
109
110<script id="shop-js-analytics" type="application/json">{"pageType":"collection"}</script>
vendor: 1 bytes, line 110
110
111<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 111
111
112<script type="module"> 113 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 114 115 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 116 117</script>
vendor: 1 bytes, line 117
117
118<script> 119 window.Shopify = window.Shopify || {}; 120 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 121 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"]}; 122</script>
vendor: 1 bytes, line 122
122
123<script>(function() { 124 var isLoaded = false; 125 function asyncLoad() { 126 if (isLoaded) return; 127 isLoaded = true; 128 var urls = ["\/\/www.powr.io\/powr.js?powr-token=newhiroia.myshopify.com\u0026external-type=shopify\u0026shop=newhiroia.myshopify.com","https:\/\/cdn.nfcube.com\/instafeed-224fb95b109e74b18c579026d4f6d67c.js?shop=newhiroia.myshopify.com","\/\/cdn.shopify.com\/proxy\/f0fcafb1f8ae85f1e10d38aff71b80c759d51d122234f70f9a1b1a392e8229eb\/app.akocommerce.com\/store\/script.js?shop=newhiroia.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","\/\/www.powr.io\/powr.js?powr-token=newhiroia.myshopify.com\u0026external-type=shopify\u0026shop=newhiroia.myshopify.com"]; 129 for (var i = 0; i < urls.length; i++) { 130 var s = document.createElement('script'); 131 s.type = 'text/javascript'; 132 s.async = true; 133 s.src = urls[i]; 134 var x = document.getElementsByTagName('script')[0]; 135 x.parentNode.insertBefore(s, x); 136 } 137 }; 138 if(window.attachEvent) { 139 window.attachEvent('onload', asyncLoad); 140 } else { 141 window.addEventListener('load', asyncLoad, false); 142 } 143})();</script>
vendor: 1 bytes, line 143
143
144<script id="__st">var __st={"a":61371220129,"offset":28800,"reqid":"eccc1e4b-5ab3-4974-bd40-2d1ae1601501-1790304974","pageurl":"www.hiroia.com\/collections\/all-products","u":"d2128b5d2192","p":"collection","rtyp":"collection","rid":288567165089};</script>
vendor: 1 bytes, line 144
144
145<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 145
145
146<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 146
146
147<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.hiroia.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 147
147
148<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//www.hiroia.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>
148<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 148
148
149<script> 150 window.Shopify = window.Shopify || {}; 151 window.Shopify.MCP = window.Shopify.MCP || {}; 152 window.Shopify.MCP.enabled = true; 153 window.Shopify.MCP.shop = "newhiroia.myshopify.com"; 154 window.Shopify.MCP.mcpEndpoint = "https:\/\/www.hiroia.com\/api\/mcp"; 155 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"]}}]; 156</script>
vendor: 1 bytes, line 156
156
157<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/www.hiroia.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 158</script>
vendor: 1 bytes, line 158
158
159<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://www.hiroia.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 160</script>
vendor: 1 bytes, line 160
160
161<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 162 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); 163</script>
vendor: 1 bytes, line 163
163
164<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})}})); 165</script>
vendor: 1 bytes, line 165
165
166<script id="sections-script" data-sections="header" defer="defer" src="//www.hiroia.com/cdn/shop/t/143/compiled_assets/scripts.js?v=71295552761534174691788398174"></script>
vendor: 1 bytes, line 166
166
167<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
167 168 169 <style> 170 �@import url('https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,500,500i,600,600i,700,700i,800,800i&display=swap'); 171 172 173 174 175 176 177 178 :root { 179 /* Settings Body */ 180 181 --font-body-family: Open Sans; 182 183 --font-body-size: 16px; 184 --font-body-weight: 400; 185 --body-line-height: 22px; 186 --body-letter-spacing: .02em; 187 188 /* Settings Heading */ 189 190 --font-heading-family: Open Sans; 191 192 --font-heading-size: 13px; 193 --font-heading-weight: 700; 194 --font-heading-style: normal; 195 --heading-line-height: 24px; 196 --heading-letter-spacing: .05em; 197 --heading-text-transform: uppercase; 198 --heading-border-height: 2px; 199 200 /* Settings Navigation */ 201 /* Menu Lv1 */ 202 203 --font-menu-lv1-family: Open Sans; 204 205 --font-menu-lv1-size: 14px; 206 --font-menu-lv1-weight: 700; 207 --menu-lv1-line-height: 22px; 208 --menu-lv1-letter-spacing: .05em; 209 --menu-lv1-text-transform: uppercase; 210 211 /* Menu Lv2 */ 212 213 --font-menu-lv2-family: Open Sans; 214 215 --font-menu-lv2-size: 15px; 216 --font-menu-lv2-weight: 400; 217 --menu-lv2-line-height: 22px; 218 --menu-lv2-letter-spacing: .02em; 219 --menu-lv2-text-transform: capitalize; 220 221 /* Menu Lv3 */ 222 223 --font-menu-lv3-family: Open Sans; 224 225 --font-menu-lv3-size: 12px; 226 --font-menu-lv3-weight: 400; 227 --menu-lv3-line-height: 22px; 228 --menu-lv3-letter-spacing: .02em; 229 --menu-lv3-text-transform: capitalize; 230 231 /* Mega Menu Lv2 */ 232 233 --font-mega-menu-lv2-family: Open Sans; 234 235 --font-mega-menu-lv2-size: 12px; 236 --font-mega-menu-lv2-weight: 600; 237 --font-mega-menu-lv2-style: normal; 238 --mega-menu-lv2-line-height: 22px; 239 --mega-menu-lv2-letter-spacing: .02em; 240 --mega-menu-lv2-text-transform: uppercase; 241 242 /* Mega Menu Lv3 */ 243 244 --font-mega-menu-lv3-family: Open Sans; 245 246 --font-mega-menu-lv3-size: 12px; 247 --font-mega-menu-lv3-weight: 400; 248 --mega-menu-lv3-line-height: 22px; 249 --mega-menu-lv3-letter-spacing: .02em; 250 --mega-menu-lv3-text-transform: capitalize; 251 252 /* Product Card Title */--product-title-font: Open Sans;--product-title-font-size : 12px; 253 --product-title-font-weight : 400; 254 --product-title-line-height: 22px; 255 --product-title-letter-spacing: .02em; 256 --product-title-line-text : full; 257 --product-title-text-transform : capitalize; 258 --product-title-margin-bottom: 10px; 259 260 /* Product Card Vendor */--product-vendor-font: Open Sans;--product-vendor-font-size : 12px; 261 --product-vendor-font-weight : 400; 262 --product-vendor-font-style : oblique; 263 --product-vendor-line-height: 22px; 264 --product-vendor-letter-spacing: .02em; 265 --product-vendor-text-transform : uppercase; 266 --product-vendor-margin-bottom: 0px; 267 268 /* Product Card Price */--product-price-font: Open Sans;--product-price-font-size : 14px; 269 --product-price-font-weight : 600; 270 --product-price-line-height: 22px; 271 --product-price-letter-spacing: .02em; 272 --product-price-margin-top: 0px; 273 --product-price-margin-bottom: 13px; 274 275 /* Product Card Badge */--badge-font: Open Sans;--badge-font-size : 12px; 276 --badge-font-weight : 400; 277 --badge-text-transform : capitalize; 278 --badge-letter-spacing: .02em; 279 --badge-line-height: 20px; 280 --badge-border-radius: 0px; 281 --badge-padding-top: 0px; 282 --badge-padding-bottom: 0px; 283 --badge-padding-left-right: 8px; 284 --badge-postion-top: 0px; 285 --badge-postion-left-right: 0px; 286 287 /* Product Quickview */ 288 --product-quickview-font-size : 12px; 289 --product-quickview-line-height: 23px; 290 --product-quickview-border-radius: 1px; 291 --product-quickview-padding-top: 0px; 292 --product-quickview-padding-bottom: 0px; 293 --product-quickview-padding-left-right: 7px; 294 --product-quickview-sold-out-product: #e95144;
294--product-quickview-box-shadow: none;/* Blog Card Tile */--blog-title-font: Open Sans;--blog-title-font-size : 20px; 295 --blog-title-font-weight : 700; 296 --blog-title-line-height: 29px; 297 --blog-title-letter-spacing: .09em; 298 --blog-title-text-transform : uppercase; 299 300 /* Blog Card Info (Date, Author) */--blog-info-font: Open Sans;--blog-info-font-size : 14px; 301 --blog-info-font-weight : 400; 302 --blog-info-line-height: 20px; 303 --blog-info-letter-spacing: .02em; 304 --blog-info-text-transform : uppercase; 305 306 /* Button 1 */--btn-1-font-family: Open Sans;--btn-1-font-size: 14px; 307 --btn-1-font-weight: 700; 308 --btn-1-text-transform: uppercase; 309 --btn-1-line-height: 22px; 310 --btn-1-letter-spacing: .05em; 311 --btn-1-text-align: center; 312 --btn-1-border-radius: 0px; 313 --btn-1-border-width: 1px; 314 --btn-1-border-style: solid; 315 --btn-1-padding-top: 10px; 316 --btn-1-padding-bottom: 10px; 317 --btn-1-horizontal-length: 0px; 318 --btn-1-vertical-length: 0px; 319 --btn-1-blur-radius: 0px; 320 --btn-1-spread: 0px; 321 322 323 324 --btn-1-all-bg-opacity-hover: rgba(0, 0, 0, 0.5); 325 326 327 --btn-1-inset: ; 328 329 330 /* Button 2 */--btn-2-font-family: Open Sans;--btn-2-font-size: 18px; 331 --btn-2-font-weight: 700; 332 --btn-2-text-transform: uppercase; 333 --btn-2-line-height: 23px; 334 --btn-2-letter-spacing: .05em; 335 --btn-2-text-align: right; 336 --btn-2-border-radius: 6px; 337 --btn-2-border-width: 1px; 338 --btn-2-border-style: solid; 339 --btn-2-padding-top: 20px; 340 --btn-2-padding-bottom: 20px; 341 --btn-2-horizontal-length: 4px; 342 --btn-2-vertical-length: 4px; 343 --btn-2-blur-radius: 7px; 344 --btn-2-spread: 0px; 345 346 347 --btn-2-all-bg-opacity: rgba(25, 145, 226, 0.5); 348 349 350 --btn-2-all-bg-opacity-hover: rgba(0, 0, 0, 0.5); 351 352 353 --btn-2-inset: ; 354 355 356 /* Button 3 */--btn-3-font-family: Open Sans;--btn-3-font-size: 14px; 357 --btn-3-font-weight: 700; 358 --btn-3-text-transform: uppercase; 359 --btn-3-line-height: 22px; 360 --btn-3-letter-spacing: .05em; 361 --btn-3-text-align: center; 362 --btn-3-border-radius: 0px; 363 --btn-3-border-width: 1px; 364 --btn-3-border-style: solid; 365 --btn-3-padding-top: 10px; 366 --btn-3-padding-bottom: 10px; 367 --btn-3-horizontal-length: 0px; 368 --btn-3-vertical-length: 0px; 369 --btn-3-blur-radius: 0px; 370 --btn-3-spread: 0px; 371 372 373 --btn-3-all-bg-opacity: rgba(0, 0, 0, 0.1); 374 375 376 --btn-3-all-bg-opacity-hover: rgba(0, 0, 0, 0.1); 377 378 379 380 --btn-3-inset: ; 381 382 383 /* Footer Heading */--footer-heading-font-family: Open Sans;--footer-heading-font-size : 15px; 384 --footer-heading-font-weight : 600; 385 --footer-heading-line-height : 22px; 386 --footer-heading-letter-spacing : .05em; 387 --footer-heading-text-transform : uppercase; 388 389 /* Footer Link */--footer-link-font-family: Open Sans;--footer-link-font-size : 12px; 390 --footer-link-font-weight : 400; 391 --footer-link-line-height : 28px; 392 --footer-link-letter-spacing : .02em; 393 --footer-link-text-transform : capitalize; 394 395 /* Page Title */ 396 397 --font-page-title-family: Open Sans; 398 399 --font-page-title-size: 20px; 400 --font-page-title-weight: 700; 401 --font-page-title-style: normal; 402 --page-title-line-height: 20px; 403 --page-title-letter-spacing: .05em; 404 --page-title-text-transform: uppercase; 405 406 /* Font Product Tab Title */ 407 --font-tab-type-1: Open Sans; 408 --font-tab-type-2: Open Sans; 409 410 /* Text Size */ 411 --text-size-font-size : 10px;
412 --text-size-font-weight : 400; 413 --text-size-line-height : 22px; 414 --text-size-letter-spacing : 0; 415 --text-size-text-transform : uppercase; 416 --text-size-color : #787878; 417 418 /* Font Weight */ 419 --font-weight-normal: 400; 420 --font-weight-medium: 500; 421 --font-weight-semibold: 600; 422 --font-weight-bold: 700; 423 --font-weight-bolder: 800; 424 --font-weight-black: 900; 425 426 /* Radio Button */ 427 --form-label-checkbox-before-bg: #fff; 428 --form-label-checkbox-before-border: #cecece; 429 --form-label-checkbox-before-bg-checked: #000; 430 431 /* Conatiner */ 432 --header-custom-width-container: 1600px; 433 --body-custom-width-container: 1600px; 434 --footer-custom-width-container: 1600px; 435 436 /* Layout Boxed */ 437 --color-background-layout-boxed: #f8f8f8;/* Arrow */ 438 --position-horizontal-slick-arrow: 0; 439 440 /* General Color*/ 441 --color-text: #232323; 442 --color-text2: #969696; 443 --color-global: #232323; 444 --color-white: #FFFFFF; 445 --color-grey: #868686; 446 --color-black: #202020; 447 --color-base-text-rgb: 35, 35, 35; 448 --color-base-text2-rgb: 150, 150, 150; 449 --color-background: #ffffff; 450 --color-background-rgb: 255, 255, 255; 451 --color-background-overylay: rgba(255, 255, 255, 0.9); 452 --color-base-accent-text: ; 453 --color-base-accent-1: ; 454 --color-base-accent-2: ; 455 --color-link: #232323; 456 --color-link-hover: #232323; 457 --color-error: #D93333; 458 --color-error-bg: #FCEEEE; 459 --color-success: #5A5A5A; 460 --color-success-bg: #DFF0D8; 461 --color-info: #202020; 462 --color-info-bg: #FFF2DD; 463 --color-link-underline: rgba(35, 35, 35, 0.5); 464 465 --color-breadcrumb: #999999; 466 --colors-breadcrumb-hover: #232323; 467 --colors-breadcrumb-active: #999999; 468 469 --border-global: #e6e6e6; 470 --bg-global: #fafafa; 471 472 --bg-planceholder: #fafafa; 473 474 --color-warning: #fff; 475 --bg-warning: #e0b252; 476 477 --color-background-10 : #e9e9e9; 478 --color-background-20 : #d3d3d3; 479 --color-background-30 : #bdbdbd; 480 --color-background-50 : #919191; 481 --color-background-global : #919191; 482 483 /* Arrow Color */ 484 --arrow-color: #323232; 485 --arrow-background-color: #fff; 486 --arrow-border-color: #ccc; 487 --arrow-color-hover: #323232; 488 --arrow-background-color-hover: #f8f8f8; 489 --arrow-border-color-hover: #f8f8f8; 490 491 --arrow-width: 35px; 492 --arrow-height: 35px; 493 --arrow-size: px; 494 --arrow-size-icon: 17px; 495 --arrow-border-radius: 50%; 496 --arrow-border-width: 1px; 497 498 /* Pagination Color */ 499 --pagination-item-color: #3c3c3c; 500 --pagination-item-color-active: #3c3c3c; 501 --pagination-item-bg-color: 502 #fff; 503 --pagination-item-bg-color-active: #fff; 504 --pagination-item-border-color: #fff; 505 --pagination-item-border-color-active: #ffffff; 506 507 --pagination-arrow-color: #3c3c3c; 508 --pagination-arrow-color-active: #3c3c3c; 509 --pagination-arrow-bg-color: #fff; 510 --pagination-arrow-bg-color-active: #fff; 511 --pagination-arrow-border-color: #fff; 512 --pagination-arrow-border-color-active: #fff; 513 514 /* Dots Color */ 515 --dots-color: transparent; 516 --dots-border-color: #323232; 517 --dots-color-active: #323232; 518 --dots-border-color-active: #323232; 519 --dots-style2-background-opacity: #00000050; 520 --dots-width: 12px; 521 --dots-height: 12px; 522 523 /* Button Color */ 524 --btn-1-color: #FFFFFF; 525 --btn-1-bg: #232323; 526 --btn-1-border: #232323; 527 --btn-1-color-hover: #232323; 528 --btn-1-bg-hover: #ffffff; 529 --btn-1-border-hover: #232323; 530 531 --btn-2-color: #232323; 532 --btn-2-bg: #FFFFFF; 533 --btn-2-border: #727272; 534 --btn-2-color-hover: #FFFFFF; 535 --btn-2-bg-hover: #232323; 536 --btn-2-border-hover: #232323; 537 538 --btn-3-color: #FFFFFF; 539 --btn-3-bg: #e9514b; 540 --btn-3-border: #e9514b; 541 --btn-3-color-hover: #ffffff; 542 --btn-3-bg-hover: #e9514b; 543 --btn-3-border-hover: #e9514b; 544 545 --anchor-transition: all ease .3s; 546 --bg-white: #ffffff; 547 --bg-black: #000000; 548 --bg-grey: #808080; 549 --icon: var(--color-text); 550 --text-cart: #3c3c3c; 551 --duration-short: 100ms; 552 --duration-default: 350ms; 553 --duration-long: 500ms; 554 555 --form-input-bg: #ffffff; 556 --form-input-border: #c7c7c7; 557 --form-input-color: #232323;; 558 --form-input-placeholder: #868686; 559 --form-label: #232323; 560 561 --new-badge-color: #232323; 562 --new-badge-bg: #FFFFFF; 563 --sale-badge-color: #ffffff; 564 --sale-badge-bg: #e95144; 565 --sold-out-badge-color: #ffffff; 566 --sold-out-badge-bg: #c1c1c1; 567 --custom-badge-color: #ffffff; 568 --custom-badge-bg: #ffbb49; 569 --bundle-badge-color: #ffffff; 570 --bundle-badge-bg: #232323; 571 572 --product-title-color : #232323; 573 --product-title-color-hover : #232323; 574 --product-vendor-color : #969696; 575 --product-price-color : #232323; 576 --product-sale-price-color : #e95144; 577 --product-compare-price-color : #969696; 578 --product-review-full-color : #000000; 579 --product-review-empty-color : #A4A4A4; 580 --product-swatch-border : #cbcbcb; 581 --product-swatch-border-active : #232323; 582 --product-swatch-width : 40px; 583 --product-swatch-height : 40px; 584 --product-swatch-border-radius : 0px; 585 --product-swatch-color-width : 40px; 586 --product-swatch-color-height : 40px; 587 --product-swatch-color-border-radius : 20px; 588 --product-wishlist-color : #000000; 589 --product-wishlist-bg : #ffffff; 590 --product-wishlist-border : transparent; 591 --product-wishlist-color-added : #ffffff; 592 --product-wishlist-bg-added : #000000; 593 --product-wishlist-border-added : transparent; 594 --product-compare-color : #000000; 595 --product-compare-bg : #FFFFFF; 596 --product-compare-color-added : #D12442; 597 --product-compare-bg-added : #FFFFFF; 598 --product-hot-stock-text-color : #d62828; 599 --product-quick-view-color : #000000; 600 --product-cart-image-fit : cover; 601 --product-title-variant-font-size: 41px; 602 603 604 --product-quick-view-bg : #FFFFFF; 605 606 --product-quick-view-bg-above-button: rgba(255, 255, 255, 0.7); 607 --product-quick-view-color-hover : #FFFFFF; 608 --product-quick-view-bg-hover : #000000; 609 610 --product-action-color : #232323; 611 --product-action-bg : #ffffff; 612 --product-action-border : #000000; 613 --product-action-color-hover : #FFFFFF; 614 --product-action-bg-hover : #232323; 615 --product-action-border-hover : #232323; 616 617 /* Multilevel Category Filter */ 618 --color-label-multiLevel-categories: #232323; 619 --bg-label-multiLevel-categories: #fff; 620 --color-button-multiLevel-categories: #fff; 621 --bg-button-multiLevel-categories: #ff8b21; 622 --border-button-multiLevel-categories: transparent; 623 --hover-color-button-multiLevel-categories: #fff; 624 --hover-bg-button-multiLevel-categories: #ff8b21; 625 626 --w-product-swatch-custom: 30px; 627 --h-product-swatch-custom: 30px; 628 --w-product-swatch-custom-mb: 20px; 629 --h-product-swatch-custom-mb: 20px; 630 --font-size-product-swatch-more: 12px; 631 632 --swatch-border : #cbcbcb; 633 --swatch-border-active : #232323; 634 635 --variant-size: #232323; 636 --variant-size-border: #e7e7e7; 637 --variant-size-bg: #ffffff; 638 --variant-size-hover: #ffffff; 639 --variant-size-border-hover: #232323; 640 --variant-size-bg-hover: #232323; 641 642 --variant-bg : #ffffff; 643 --variant-color : #232323; 644 --variant-bg-active : #ffffff; 645 --variant-color-active : #232323; 646 647 /* Font Size Text Social */ 648 --fontsize-text-social: 12px; 649 650 /* Sidebar Animation */ 651 --page-content-distance: 64px; 652 --sidebar-content-distance: 40px; 653 --button-transition-ease: cubic-bezier(.25,.46,.45,.94); 654 655 /* Loading Spinner Color */ 656 --spinner-top-color: #fc0; 657 --spinner-right-color: #4dd4c6; 658 --spinner-bottom-color: #f00; 659 --spinner-left-color: #f6f6f6; 660 } 661</style> 662 663 <link href="//www.hiroia.com/cdn/shop/t/143/assets/base.css?v=45647627681792439841788397936" rel="stylesheet" type="text/css" media="all" /> 664 665 666 <!-- 客製åå½çª --> 667 668 669 <!-- 客製åæå¡ç»å ¥icon --> 670 671 <link href="//www.hiroia.com/cdn/shop/t/143/assets/customer-avatar-login.css?v=68474356300712135401788398020" rel="stylesheet" type="text/css" media="all" /> 672 673
673<script> 674 document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 675 </script>
675 676 677 <!-- footer客製å --> 678 <link href="//www.hiroia.com/cdn/shop/t/143/assets/footer-custom.css?v=183351635153584671751788398029" rel="stylesheet" type="text/css" media="all" /> 679 680 <!-- èªå夿·ç¶åé é¢è©²ä½¿ç¨åªä¸åèªç³»çç©å®¶é«é©é£çµ --> 681
681<script async src="//www.hiroia.com/cdn/shop/t/143/assets/blog-menu-lang-fix.js?v=51457237018078436921788397937"></script>
681 682 683 <!-- ææ©é¨è½æ ¼é¸å®å®¢è£½å --> 684
684<script async src="//www.hiroia.com/cdn/shop/t/143/assets/custom-mobile-menu-blog.js?v=179779012303578506891788398017"></script>
684 685 686 <!-- é¨è½æ ¼é¸å®å®¢è£½å --> 687
687<script async src="//www.hiroia.com/cdn/shop/t/143/assets/custom-blog-menu.js?v=45235540386973989161788398016"></script>
687 688 689 690 691 692 <meta name="google-site-verification" content="XCvivG1XdLMybRiU_Lm_Xnum8hCiWVka5RBXRMZNv4A"> 693 <!-- BEGIN app block: shopify://apps/inbox/blocks/chat/841fc607-4181-4ad1-842d-e24d7f8bad6b --><link rel='modulepreload' href='https://cdn.shopify.com/storefront/web-components/chat.js' crossorigin fetchpriority='low'> 694
695<script id='shopify-chat-app-embed-data' type='application/json'> 696 { 697 "settings": { 698 "invertActivatorColors": true, 699 "greetingMessage": "Hello! Thank you for your interest in Hiroia products. Please reply your inquiry and we will do our best to reply to you right away. Have a nice day!", 700 "showFeaturedProducts": true, 701 "featuredProducts": [], 702 "horizontalPosition": "bottom_right", 703 "icon": "chat_bubble", 704 "buttonLabel": "" 705 } 706 } 707</script>
707 708 709<style data-shopify> 710 711 712 /* Shadow DOM content does not prevent theme-wide :empty rules from matching the host. */ 713 shopify-chat:defined:empty { 714 display: grid; 715 } 716 717 :root { 718 --shopify-chat-bg-color: #FFFFFF; 719 --shopify-chat-text-color: #000000; 720 --shopify-chat-accent-bg-color: #000000; 721 --shopify-chat-accent-text-color: #FFFFFF; 722 --shopify-chat-activator-offset: 20px; 723 724 725 726 --shopify-chat-activator-font-size: 16px; 727 --shopify-chat-border-radius: 16px; 728 } 729 730 731</style> 732
733<script src='https://cdn.shopify.com/storefront/web-components/chat.js' type='module' crossorigin fetchpriority='low' async></script>
733 734 735 736<!-- END app block --><!-- BEGIN app block: shopify://apps/microsoft-clarity/blocks/clarity_js/31c3d126-8116-4b4a-8ba1-baeda7c4aeea -->
737<script type="text/javascript"> 738 (function (c, l, a, r, i, t, y) { 739 c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments); }; 740 t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i + "?ref=shopify"; 741 y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y); 742 743 c.Shopify.loadFeatures([{ name: "consent-tracking-api", version: "0.1" }], error => { 744 if (error) { 745 console.error("Error loading Shopify features:", error); 746 return; 747 } 748 749 c[a]('consentv2', { 750 ad_Storage: c.Shopify.customerPrivacy.marketingAllowed() ? "granted" : "denied", 751 analytics_Storage: c.Shopify.customerPrivacy.analyticsProcessingAllowed() ? "granted" : "denied", 752 source: 101, 753 }); 754 }); 755 756 l.addEventListener("visitorConsentCollected", function (e) { 757 c[a]('consentv2', { 758 ad_Storage: e.detail.marketingAllowed ? "granted" : "denied", 759 analytics_Storage: e.detail.analyticsAllowed ? "granted" : "denied", 760 source: 101, 761 }); 762 }); 763 })(window, document, "clarity", "script", "w0oqf057g5"); 764</script>
764 765 766 767 768<!-- END app block --><!-- BEGIN app block: shopify://apps/bucks/blocks/app-embed/4f0a9b06-9da4-4a49-b378-2de9d23a3af3 -->
769<script> 770 window.bucksCC = window.bucksCC || {}; 771 window.bucksCC.metaConfig = {}; 772 window.bucksCC.reConvert = function() {}; 773 "function" != typeof Object.assign && (Object.assign = function(n) { 774 if (null == n) 775 throw new TypeError("Cannot convert undefined or null to object"); 776 777 778 779 780 for (var r = Object(n), t = 1; t < arguments.length; t++) { 781 var e = arguments[t]; 782 if (null != e) 783 for (var o in e) 784 e.hasOwnProperty(o) && (r[o] = e[o]) 785 } 786 return r 787 }); 788 789const bucks_validateJson = json => { 790 let checkedJson; 791 try { 792 checkedJson = JSON.parse(json); 793 } catch (error) { } 794 return checkedJson; 795}; 796 797 const bucks_encodedData = "JTdCJTIyaWQlMjIlM0ElMjI2Njg2NDRhZGIxNjI3ZTlhN2U3Mzc1MzQlMjIlMkMlMjJzaG9wJTIyJTNBJTIybmV3aGlyb2lhLm15c2hvcGlmeS5jb20lMjIlMkMlMjJhY3RpdmUlMjIlM0FmYWxzZSUyQyUyMmluc3RhbnRMb2FkZXIlMjIlM0FmYWxzZSUyQyUyMnVzZXJDdXJyZW5jeSUyMiUzQSUyMiUyMiUyQyUyMmF1dG9Td2l0Y2hDdXJyZW5jeUxvY2F0aW9uQmFzZWQlMjIlM0F0cnVlJTJDJTIyYXV0b1N3aXRjaE9ubHlUb1ByZWZlcnJlZEN1cnJlbmN5JTIyJTNBZmFsc2UlMkMlMjJtb25leVdpdGhDdXJyZW5jeUZvcm1hdCUyMiUzQXRydWUlMkMlMjJzaG93Q3VycmVuY3lDb2Rlc09ubHklMjIlM0FmYWxzZSUyQyUyMmRpc3BsYXlQb3NpdGlvbiUyMiUzQSUyMmJvdHRvbV9sZWZ0JTIyJTJDJTIyZGlzcGxheVBvc2l0aW9uVHlwZSUyMiUzQSUyMmZsb2F0aW5nJTIyJTJDJTIyY3VzdG9tUG9zaXRpb24lMjIlM0ElMjJoZWFkZXIlMjBhJTVCaHJlZiolM0QlNUMlMjIlMkZjYXJ0JTVDJTIyJTVEJTIyJTJDJTIycG9zaXRpb25QbGFjZW1lbnQlMjIlM0ElMjJhZnRlciUyMiUyQyUyMm1vYmlsZURpc3BsYXlQb3NpdGlvbiUyMiUzQSUyMmJvdHRvbV9sZWZ0JTIyJTJDJTIybW9iaWxlRGlzcGxheVBvc2l0aW9uVHlwZSUyMiUzQSUyMmZsb2F0aW5nJTIyJTJDJTIybW9iaWxlQ3VzdG9tUG9zaXRpb24lMjIlM0ElMjIlMjIlMkMlMjJtb2JpbGVQb3NpdGlvblBsYWNlbWVudCUyMiUzQSUyMmFmdGVyJTIyJTJDJTIyYm9yZGVyU3R5bGUlMjIlM0ElMjJib3hTaGFkb3clMjIlMkMlMjJzaG93SW5EZXNrdG9wJTIyJTNBdHJ1ZSUyQyUyMnNob3dJbk1vYmlsZURldmljZSUyMiUzQXRydWUlMkMlMjJjdXN0b21PcHRpb25zUGxhY2VtZW50JTIyJTNBZmFsc2UlMkMlMjJvcHRpb25zUGxhY2VtZW50VHlwZSUyMiUzQSUyMmxlZnRfdXB3YXJkcyUyMiUyQyUyMmN1c3RvbU9wdGlvbnNQbGFjZW1lbnRNb2JpbGUlMjIlM0FmYWxzZSUyQyUyMm9wdGlvbnNQbGFjZW1lbnRUeXBlTW9iaWxlJTIyJTNBJTIybGVmdF91cHdhcmRzJTIyJTJDJTIyc2hvd09yaWdpbmFsUHJpY2VPbk1vdXNlSG92ZXIlMjIlM0FmYWxzZSUyQyUyMmNhcnROb3RpZmljYXRpb25TdGF0dXMlMjIlM0FmYWxzZSUyQyUyMmNhcnROb3RpZmljYXRpb25NZXNzYWdlJTIyJTNBJTIyV2UlMjBwcm9jZXNzJTIwYWxsJTIwb3JkZXJzJTIwaW4lMjAlN0JTVE9SRV9DVVJSRU5DWSU3RCUyMGFuZCUyMHlvdSUyMHdpbGwlMjBiZSUyMGNoZWNrb3V0JTIwdXNpbmclMjB0aGUlMjBtb3N0JTIwY3VycmVudCUyMGV4Y2hhbmdlJTIwcmF0ZXMuJTIyJTJDJTIyY2FydE5vdGlmaWNhdGlvblRleHRDb2xvciUyMiUzQSUyMnJnYmEoMzAlMkMzMCUyQzMwJTJDMSklMjIlMkMlMjJjYXJ0Tm90aWZpY2F0aW9uQmFja2dyb3VuZENvbG9yJTIyJTNBJTIycmdiYSgyNTElMkMyNDUlMkMyNDUlMkMxKSUyMiUyQyUyMnJvdW5kUHJpY2VTdGF0dXMlMjIlM0FudWxsJTJDJTIycm91bmRpbmdEZWNpbWFsJTIyJTNBMC45OSUyQyUyMnByaWNlUm91bmRpbmdUeXBlJTIyJTNBJTIybm9uZSUyMiUyQyUyMmRlZmF1bHRDdXJyZW5jeVJvdW5kaW5nJTIyJTNBZmFsc2UlMkMlMjJ0aGVtZVR5cGUlMjIlM0ElMjJkZWZhdWx0JTIyJTJDJTIyYmFja2dyb3VuZENvbG9yJTIyJTNBJTIycmdiYSgyNTUlMkMyNTUlMkMyNTUlMkMxKSUyMiUyQyUyMnRleHRDb2xvciUyMiUzQSUyMnJnYmEoMzAlMkMzMCUyQzMwJTJDMSklMjIlMkMlMjJob3ZlckNvbG9yJTIyJTNBJTIycmdiYSgyNTUlMkMyNTUlMkMyNTUlMkMxKSUyMiUyQyUyMmRhcmtNb2RlJTIyJTNBdHJ1ZSUyQyUyMmZsYWdTdHlsZSUyMiUzQSUyMm1vZGVybiUyMiUyQyUyMmZsYWdUaGVtZSUyMiUzQSUyMmZsYXQlMjIlMkMlMjJmbGFnRGlzcGxheU9wdGlvbiUyMiUzQSUyMnNob3dGbGFnQW5kQ3VycmVuY3klMjIlMkMlMjJ0cmlnZ2VyJTIyJTNBJTIyJTIyJTJDJTIyd2F0Y2hVcmxzJTIyJTNBJTIyJTIyJTJDJTIyYXBwRW1iZWRTdGF0dXMlMjIlM0ElMjJmYWxzZSUyMiUyQyUyMmV4cGVydFNldHRpbmdzJTIyJTNBJTIyJTdCJTVDJTIyY3NzJTVDJTIyJTNBJTVDJTIyJTVDJTIyJTdEJTIyJTJDJTIyY3VzdG9tU2VsZWN0b3JzJTIyJTNBJTIyJTIyJTJDJTIybWFya2V0U3RhdHVzJTIyJTNBZmFsc2UlMkMlMjJzZWxlY3RlZEN1cnJlbmNpZXMlMjIlM0ElMjIlNUIlN0IlNUMlMjJVU0QlNUMlMjIlM0ElNUMlMjJVUyUyMERvbGxhciUyMChVU0QpJTVDJTIyJTdEJTJDJTdCJTVDJTIyRVVSJTVDJTIyJTNBJTVDJTIyRXVybyUyMChFVVIpJTVDJTIyJTdEJTJDJTdCJTVDJTIyR0JQJTVDJTIyJTNBJTVDJTIyQnJpdGlzaCUyMFBvdW5kJTIwKEdCUCklNUMlMjIlN0QlMkMlN0IlNUMlMjJDQUQlNUMlMjIlM0ElNUMlMjJDYW5hZGlhbiUyMERvbGxhciUyMChDQUQpJTVDJTIyJTdEJTJDJTdCJTVDJTIyVFdEJTVDJTIyJTNBJTVDJTIyTmV3JTIwVGFpd2FuJTIwRG9sbGFyJTIwKFRXRCklNUMlMjIlN0QlNUQlMjIlN0Q="; 798 799 const bucks_myshopifyDomain = "www.hiroia.com"; 800
801 const decodedURI = atob(bucks_encodedData); 802 const bucks_decodedString = decodeURIComponent(decodedURI); 803 804 805 const bucks_parsedData = bucks_validateJson(bucks_decodedString) || {}; 806 Object.assign(window.bucksCC.metaConfig, { 807 808 ... bucks_parsedData, 809 money_format: "${{amount}}", 810 money_with_currency_format: "${{amount}} USD", 811 userCurrency: "USD" 812 813 }); 814 window.bucksCC.reConvert = function() {}; 815 window.bucksCC.themeAppExtension = true; 816 window.bucksCC.metaConfig.multiCurrencies = []; 817 window.bucksCC.localization = {}; 818 819 820 821 window.bucksCC.localization.availableCountries = ["AF","AX","AL","DZ","AD","AO","AI","AG","AR","AM","AW","AC","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BR","IO","VG","BN","BG","BF","BI","KH","CM","CA","CV","BQ","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CW","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","SZ","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GT","GG","GN","GW","GY","HT","HN","HK","HU","IS","IN","ID","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","XK","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MG","MW","MY","MV","ML","MT","MQ","MR","MU","YT","MX","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MK","NO","OM","PK","PS","PA","PG","PY","PE","PH","PN","PL","PT","QA","RE","RO","RU","RW","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","KR","SS","ES","LK","BL","SH","KN","LC","MF","PM","VC","SD","SR","SJ","SE","CH","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TA","TN","TR","TM","TC","TV","UM","UG","UA","AE","GB","US","UY","UZ","VU","VA","VE","VN","WF","EH","YE","ZM","ZW"]; 822 window.bucksCC.localization.availableLanguages = ["en","ja"]; 823 824 825 window.bucksCC.metaConfig.multiCurrencies = "USD".split(',') || ''; 826 window.bucksCC.metaConfig.cartCurrency = "USD" || ''; 827 828 if ((((window || {}).bucksCC || {}).metaConfig || {}).instantLoader) { 829 self.fetch || (self.fetch = function(e, n) { 830 return n = n || {}, 831 new Promise(function(t, s) { 832 var r = new XMLHttpRequest, 833 o = [], 834 u = [], 835 i = {}, 836 a = function() { 837 return { 838 ok: 2 == (r.status / 100 | 0), 839 statusText: r.statusText, 840 status: r.status, 841 url: r.responseURL, 842 text: function() { 843 return Promise.resolve(r.responseText) 844 }, 845 json: function() { 846 return Promise.resolve(JSON.parse(r.responseText)) 847 }, 848 blob: function() { 849 return Promise.resolve(new Blob([r.response])) 850 }, 851 clone: a, 852 headers: { 853 keys: function() { 854 return o 855 }, 856 entries: function() { 857 return u 858 }, 859 get: function(e) { 860 return i[e.toLowerCase()] 861 }, 862 has: function(e) { 863 return e.toLowerCase() in i 864 } 865 } 866 } 867 }; 868 for (var c in r.open(n.method || "get", e, !0), r.onload = function() { 869 r.getAllResponseHeaders().replace(/^(.*?):[^S\n]*([sS]*?)$/gm, function(e, n, t) { 870 o.push(n = n.toLowerCase()), 871 u.push([n, t]), 872 i[n] = i[n] 873 ? i[n] + "," + t 874 : t 875 }), 876 t(a()) 877 }, 878 r.onerror = s, 879 r.withCredentials = "include" == n.credentials, 880 n.headers) 881 r.setRequestHeader(c, n.headers[c]); 882 r.send(n.body || null) 883 }) 884 }); 885 !function() { 886 function t(t) { 887 const e = document.createElement("style"); 888 e.innerText = t, 889 document.head.appendChild(e) 890 } 891 function e(t) { 892 const e = document.createElement("script"); 893 e.type = "text/javascript", 894 e.text = t, 895 document.head.appendChild(e), 896 console.log("%cBUCKSCC: Instant Loader Activated â¡ï¸", "background: #1c64f6; color: #fff; font-size: 12px; font-weight:bold; padding: 5px 10px; border-radius: 3px") 897 } 898 let n = sessionStorage.getItem("bucksccHash"); 899 ( 900 n = n 901 ? JSON.parse(n) 902 : null 903 ) 904 ? e(n)
905 : fetch(`https://${bucks_myshopifyDomain}/apps/buckscc/sdk.min.js`, {mode: "no-cors"}).then(function(t) { 906 return t.text() 907 }).then(function(t) { 908 if ((t || "").length > 100) { 909 const o = JSON.stringify(t); 910 sessionStorage.setItem("bucksccHash", o), 911 n = t, 912 e(t) 913 } 914 }) 915 }(); 916 } 917 918 const themeAppExLoadEvent = new Event("BUCKSCC_THEME-APP-EXTENSION_LOADED", { bubbles: true, cancelable: false }); 919 920 // Dispatch the custom event on the window 921 window.dispatchEvent(themeAppExLoadEvent); 922 923</script>
923<!-- END app block --><!-- BEGIN app block: shopify://apps/nabu-redirect-manager/blocks/script-block/1ec76215-4f32-4e94-950a-ce6073ea1b48 --> 924
925<script> 926 (function() { 927 const storageKeyMap = { 928 redirectChain: 'ADNABU_REDIRECT_CHAIN', 929 redirectLog: 'ADNABU_REDIRECT_LOG', 930 debugMode: 'ADNABU_REDIRECT_DEBUG_MODE', 931 sessionId: 'ADNABU_REDIRECT_MANAGER_SESSION_ID', 932 } 933 934 // Storage access can throw (Safari with site data blocked, sandboxed frames); 935 // an unguarded throw here would abort the whole script tag, geo runtime included. 936 // The area is passed by name because even reading window.localStorage throws in 937 // sandboxed frames â it must be dereferenced inside the try. 938 function safeStorageGet(area, key) { 939 try { 940 return window[area].getItem(key); 941 } catch (error) { 942 return null; 943 } 944 } 945 946 function safeStorageSet(area, key, value) { 947 try { 948 window[area].setItem(key, value); 949 return true; 950 } catch (error) { 951 return false; 952 } 953 } 954 955 function safeStorageRemove(area, key) { 956 try { 957 window[area].removeItem(key); 958 } catch (error) { 959 // Storage is blocked; there is nothing to remove 960 } 961 } 962 963 const redirectConfig = { 964 mappings: [], 965 apiEndpoint: "https://nabu-seo.adnabu.com/flux", 966 shopId: "newhiroia.myshopify.com", 967 debugMode: safeStorageGet('localStorage', storageKeyMap.debugMode) || false, 968 }; 969 970 // Utility functions 971 function log(message, data = null) { 972 if (redirectConfig.debugMode) { 973 console.log('[Nabu Redirect Manager]', message, data); 974 } 975 } 976 977 function generateUUID() { 978 return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { 979 var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); 980 return v.toString(16); 981 }); 982 } 983 984 // Session ID management functions 985 function getSessionId() { 986 let sessionId = safeStorageGet('sessionStorage', storageKeyMap.sessionId); 987 if (!sessionId) { 988 sessionId = generateUUID(); 989 safeStorageSet('sessionStorage', storageKeyMap.sessionId, sessionId); 990 log('New session ID generated', sessionId); 991 } 992 return sessionId; 993 } 994 995 function clearSessionId() { 996 safeStorageRemove('sessionStorage', storageKeyMap.sessionId); 997 log('Session ID cleared'); 998 } 999 1000 function sendLogs(endpoint, logData) { 1001 if (!endpoint || !logData) return; 1002 1003 // Use sendBeacon for better reliability, especially during page unload/redirect 1004 if (navigator.sendBeacon) { 1005 const blob = new Blob([JSON.stringify(logData)], { type: 'application/json' }); 1006 const success = navigator.sendBeacon(endpoint, blob); 1007 if (success) { 1008 log('Log sent successfully via sendBeacon'); 1009 safeStorageRemove('localStorage', storageKeyMap.redirectLog); 1010 } else { 1011 log('Failed to send log via sendBeacon'); 1012 } 1013 } else { 1014 // Fallback to XMLHttpRequest for older browsers 1015 var xhr = new XMLHttpRequest(); 1016 xhr.open("POST", endpoint, true); 1017 xhr.setRequestHeader("Content-Type", "application/json"); 1018 xhr.onreadystatechange = function() { 1019 if (xhr.readyState === 4) { 1020 if (xhr.status === 200) { 1021 log('Log sent successfully via XHR fallback'); 1022 safeStorageRemove('localStorage', storageKeyMap.redirectLog); 1023 } else { 1024 log('Failed to send log via XHR fallback', xhr.status); 1025 } 1026 } 1027 }; 1028 xhr.send(JSON.stringify(logData)); 1029 } 1030 } 1031 1032 function containsValidDomain(url) { 1033 const regex = /^(https?:\/\/)?(www\.)?([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}/; 1034 return regex.test(url); 1035 } 1036 1037 function patternMatchesPath(pattern, path, caseInsensitive) { 1038 // Used when there is no query in the pattern 1039 let regex; 1040 const isRegexPattern = pattern.startsWith('^'); 1041 1042 if (isRegexPattern) { 1043 regex = new RegExp(pattern, caseInsensitive ? 'i' : ''); 1044 } else { 1045 // Convert wildcard pattern to regex - make wildcards capturing groups 1046 const regexPattern = '^' + pattern.replace(/\$([0-9]+)/g, '([^/]+)').replace(/\*/g, '(.*)') + '/?$'; 1047 regex = new RegExp(regexPattern, caseInsensitive ? 'i' : ''); 1048 } 1049 return path.match(regex); 1050 } 1051 1052 function patternMatchesPathWithQuery(pattern, path, caseInsensitive) { 1053 const isRegexPattern = pattern.startsWith('^'); 1054 1055 if (isRegexPattern) { 1056 const regex = new RegExp(pattern, caseInsensitive ? 'i' : ''); 1057 return path.match(regex); 1058 } 1059 1060 // Split pattern and path into base path and query parts 1061 const [patternBase, patternQuery] = pattern.split('?'); 1062 const [pathBase, pathQuery] = path.split('?'); 1063 1064 // Check base path match first 1065 const baseRegex = '^' + patternBase 1066 .replace(/[.+^{}()|[\]\\]/g, '\\$&') // Escape special regex chars 1067 .replace(/\$([0-9]+)/g, '([^/]+)') // Handle $1, $2, etc. placeholders 1068 .replace(/\*/g, '(.*)') + '/?$'; // Handle wildcards as capturing groups 1069 1070 const baseMatch = pathBase.match(new RegExp(baseRegex, caseInsensitive ? 'i' : '')); 1071 if (!baseMatch) { 1072 return null; 1073 } 1074 1075 // If no query in pattern, but query in path, still match base path 1076 if (!patternQuery) { 1077 return baseMatch; 1078 } 1079 1080 // If pattern has query but path doesn't, no match 1081 if (!pathQuery) { 1082 return null; 1083 } 1084 1085 // Parse query parameters from both pattern and path 1086 function parseQueryParams(queryString) { 1087 const params = {}; 1088 if (!queryString) return params; 1089 1090 queryString.split('&').forEach(param => { 1091 const [key, value] = param.split('='); 1092 if (key) { 1093 params[decodeURIComponent(key)] = value ? decodeURIComponent(value) : ''; 1094 } 1095 }); 1096 return params; 1097 } 1098 1099 const patternParams = parseQueryParams(patternQuery); 1100 const pathParams = parseQueryParams(pathQuery); 1101 1102 // Check if all pattern query parameters match 1103 for (const [key, patternValue] of Object.entries(patternParams)) { 1104 const pathValue = pathParams[key]; 1105 1106 // If key doesn't exist in path, no match 1107 if (pathValue === undefined) { 1108 return null; 1109 } 1110 1111 // Create regex for the parameter value (handle wildcards and placeholders) 1112 let valueRegex = '^' + patternValue 1113 .replace(/[.+^{}()|[\]\\]/g, '\\$&') // Escape special regex chars 1114 .replace(/\$([0-9]+)/g, '(.+)') // Handle $1, $2, etc. placeholders 1115 .replace(/\*/g, '(.*)') + '$'; // Handle wildcards as capturing groups 1116 1117 const valueMatch = pathValue.match(new RegExp(valueRegex, caseInsensitive ? 'i' : '')); 1118 if (!valueMatch) { 1119 return null; 1120 } 1121 1122 // Merge any captured groups from query parameter matches 1123 if (valueMatch.length > 1) { 1124 baseMatch.push(...valueMatch.slice(1)); 1125 } 1126 } 1127 1128 return baseMatch; 1129 } 1130 1131 function smartPatternMatch(pattern, path, caseInsensitive) { 1132 // Check if either pattern or path contains query parameters 1133 const patternHasQuery = pattern.includes('?'); 1134 const pathHasQuery = path.includes('?'); 1135 1136 // If either has query parameters, use the query-aware function 1137 if (patternHasQuery || pathHasQuery) { 1138 return patternMatchesPathWithQuery(pattern, path, caseInsensitive); 1139 } 1140 1141 // Otherwise, use the simpler function 1142 return patternMatchesPath(pattern, path, caseInsensitive); 1143 } 1144 1145 function getEventType(pattern) { 1146 // Determine event type based on whether pattern starts with ^ 1147 return pattern.startsWith('^') ? 'REGEX_REDIRECT' : 'WILDCARD_REDIRECT'; 1148 } 1149 1150 function parseQueryParams(queryString) { 1151 const params = {}; 1152 if (!queryString) return params; 1153 1154 queryString.split('&').forEach(param => { 1155 const [key, value] = param.split('='); 1156 if (key) { 1157 params[decodeURIComponent(key)] = value ? decodeURIComponent(value) : ''; 1158 } 1159 }); 1160 return params; 1161 } 1162 1163 function buildQueryString(params) { 1164 const queryParts = []; 1165 for (const [key, value] of Object.entries(params)) { 1166 if (value === '') { 1167 queryParts.push(encodeURIComponent(key)); 1168 } else { 1169 queryParts.push(encodeURIComponent(key) + '=' + encodeURIComponent(value)); 1170 } 1171 } 1172 return queryParts.join('&'); 1173 } 1174 1175 function handleRedirect(path, target, match) { 1176 // First, handle $n pattern replacements 1177 const usedGroups = new Set(); 1178 target = target.replace(/\$(\d+)/g, function(_, groupIndex) { 1179 const index = parseInt(groupIndex); 1180 usedGroups.add(index); 1181 return match[index] || ''; 1182 }); 1183 1184 // Then handle wildcard (*) replacements with remaining capture groups 1185 let wildcardGroupIndex = 1; 1186 target = target.replace(/\*/g, function() { 1187 // Find next unused capture group 1188 while (usedGroups.has(wildcardGroupIndex) && wildcardGroupIndex < match.length) { 1189 wildcardGroupIndex++; 1190 } 1191 const replacement = match[wildcardGroupIndex] || ''; 1192 wildcardGroupIndex++; 1193 return replacement; 1194 }); 1195 1196 // Now handle query parameter merging 1197 const [currentPathBase, currentQuery] = path.split('?'); 1198 const [targetBase, targetQuery] = target.split('?'); 1199 1200 // If no query parameters in current path, return target as is 1201 if (!currentQuery) { 1202 return target; 1203 } 1204
1205 const currentParams = parseQueryParams(currentQuery); 1206 const targetParams = parseQueryParams(targetQuery); 1207 1208 // Merge parameters with target taking precedence (target overrides current) 1209 const mergedParams = { ...currentParams, ...targetParams }; 1210 1211 // Build final target with merged query parameters 1212 const mergedQuery = buildQueryString(mergedParams); 1213 return targetBase + (mergedQuery ? '?' + mergedQuery : ''); 1214 } 1215 1216 function isPageNotFound() { 1217 // Multiple ways to detect 404 pages 1218 return document.title.toLowerCase().includes('404') || 1219 document.title.toLowerCase().includes('not found') || 1220 window.location.pathname.includes('404') || 1221 document.body.classList.contains('template-404') || 1222 document.querySelector('.template-404') !== null; 1223 } 1224 1225 function getRedirectChain() { 1226 const chainData = safeStorageGet('sessionStorage', storageKeyMap.redirectChain); 1227 if (!chainData) { 1228 return { urls: [], count: 0, sessionId: getSessionId() }; 1229 } 1230 try { 1231 const chain = JSON.parse(chainData); 1232 // Ensure we use the persistent session ID 1233 chain.sessionId = getSessionId(); 1234 return chain; 1235 } catch (e) { 1236 log('Error parsing redirect chain, resetting', e); 1237 return { urls: [], count: 0, sessionId: getSessionId() }; 1238 } 1239 } 1240 1241 function updateRedirectChain(url) { 1242 const chain = getRedirectChain(); 1243 chain.urls.push(url); 1244 chain.count++; 1245 safeStorageSet('sessionStorage', storageKeyMap.redirectChain, JSON.stringify(chain)); 1246 return chain; 1247 } 1248 1249 function clearRedirectChain() { 1250 safeStorageRemove('sessionStorage', storageKeyMap.redirectChain); 1251 } 1252 1253 function isCircularRedirect(targetUrl, chain) { 1254 // Check if we've already visited this URL in the current chain 1255 return chain.urls.includes(targetUrl); 1256 } 1257 1258 function hasExceededRedirectLimit(chain) { 1259 const MAX_REDIRECTS = 5; 1260 return chain.count >= MAX_REDIRECTS; 1261 } 1262 1263 function getSanitizedCurrentPath() { 1264 let currentPath = window.location.pathname; 1265 1266 // Remove trailing slash from currentPath (except for root path) 1267 if (currentPath.length > 1 && currentPath.endsWith('/')) { 1268 currentPath = currentPath.slice(0, -1); 1269 } 1270 1271 return currentPath; 1272 } 1273 1274 function handle404Redirects() { 1275 const currentPath = getSanitizedCurrentPath(); 1276 const queryParams = window.location.search; 1277 const fullPath = currentPath + queryParams; 1278 const currentUrl = window.location.origin + fullPath; 1279 const locationHref = window.location.href; 1280 1281 // Get current redirect chain 1282 const redirectChain = getRedirectChain(); 1283 1284 // Create log entry 1285 let redirectLog = { 1286 'from_url': fullPath, 1287 'from_path': currentPath, 1288 'full_path': locationHref, 1289 'session_id': redirectChain.sessionId, 1290 'referrer': document.referrer, 1291 'timestamp': Date.now() / 1000, 1292 'shop_id': redirectConfig.shopId, 1293 'user_agent': navigator.userAgent, 1294 'market_country_code': Shopify.country, 1295 'market_locale': Shopify.locale, 1296 }; 1297 1298 log('Checking for redirects', { 1299 path: fullPath, 1300 is404: isPageNotFound(), 1301 redirectChain: redirectChain 1302 }); 1303 1304 // Only process redirects if this is a 404 page 1305 if (isPageNotFound() && redirectConfig.mappings && Array.isArray(redirectConfig.mappings)) { 1306 log('Processing 404 redirects'); 1307 1308 // Check if we've exceeded the redirect limit 1309 if (hasExceededRedirectLimit(redirectChain)) { 1310 log('Redirect limit exceeded, breaking chain', redirectChain); 1311 redirectLog['event_type'] = "CIRCULAR_REDIRECT_DETECTED"; 1312 redirectLog['redirect_id'] = null; 1313 redirectLog['matched_regex'] = null; 1314 redirectLog['to_url'] = null; 1315 redirectLog['error'] = 'redirect_limit_exceeded'; 1316 redirectLog['success'] = false;
1317 sendLogs(redirectConfig.apiEndpoint, redirectLog); 1318 clearRedirectChain(); 1319 return; 1320 } 1321 1322 // Iterate through redirect mappings 1323 for (const mapping of redirectConfig.mappings) { 1324 const pattern = mapping.pattern; 1325 if (!pattern) continue; 1326 const redirectId = mapping.redirect_id; 1327 const caseInsensitive = mapping.case_insensitive || false; 1328 const match = smartPatternMatch(pattern, fullPath, caseInsensitive); 1329 1330 if (match) { 1331 log('Pattern matched', {pattern, match}); 1332 let target = mapping.target; 1333 target = handleRedirect(fullPath, target, match); 1334 1335 // Handle external vs internal redirects 1336 let targetUrl = target; 1337 if (containsValidDomain(target)) { 1338 if (!/^https?:\/\//i.test(target)) { 1339 targetUrl = 'https://' + target; 1340 } 1341 } else { 1342 // Internal redirect - construct full URL 1343 targetUrl = window.location.origin + (target.startsWith('/') ? target : '/' + target); 1344 } 1345 1346 // Check for circular redirect 1347 if (isCircularRedirect(targetUrl, redirectChain)) { 1348 log('Circular redirect detected', { 1349 current: currentUrl, 1350 target: targetUrl, 1351 chain: redirectChain.urls 1352 }); 1353 redirectLog['event_type'] = getEventType(pattern); 1354 redirectLog['error'] = 'circular_redirect_detected'; 1355 redirectLog['to_url'] = targetUrl; 1356 redirectLog['redirect_id'] = redirectId; 1357 redirectLog['matched_regex'] = pattern; 1358 redirectLog['success'] = false; 1359 sendLogs(redirectConfig.apiEndpoint, redirectLog); 1360 clearRedirectChain(); 1361 return; 1362 } 1363 1364 // Update redirect chain before redirecting 1365 updateRedirectChain(currentUrl); 1366 1367 // Add target to log 1368 redirectLog['event_type'] = getEventType(pattern); 1369 redirectLog['redirect_id'] = redirectId; 1370 redirectLog['to_url'] = targetUrl; 1371 redirectLog['matched_regex'] = pattern; 1372 redirectLog['success'] = true; 1373 1374 1375 safeStorageSet('localStorage', storageKeyMap.redirectLog, JSON.stringify(redirectLog)); 1376 sendLogs(redirectConfig.apiEndpoint, redirectLog); 1377 1378 log('Redirecting to', targetUrl); 1379 1380 // Perform redirect 1381 window.location.replace(targetUrl); 1382 return; 1383 } 1384 } 1385 } 1386 1387 // No redirect found - log the 404 1388 if (isPageNotFound()) { 1389 redirectLog['event_type'] = "404_NO_REDIRECT"; 1390 redirectLog['to_url'] = null; 1391 redirectLog['redirect_id'] = null; 1392 redirectLog['matched_regex'] = null; 1393 redirectLog['success'] = false; 1394 sendLogs(redirectConfig.apiEndpoint, redirectLog); 1395 clearRedirectChain(); 1396 log('No redirect found, logging 404'); 1397 } 1398 } 1399 1400 function checkForSuccessfulRedirect() { 1401 // Check if there's a redirect log in localStorage (indicates successful redirect) 1402 const redirectLog = safeStorageGet('localStorage', storageKeyM
1402ap.redirectLog); 1403 if (redirectLog && !isPageNotFound()) { 1404 log('Successful redirect detected, sending completion log'); 1405 sendLogs(redirectConfig.apiEndpoint, JSON.parse(redirectLog)); 1406 1407 // Clear redirect chain on successful landing 1408 clearRedirectChain(); 1409 log('Redirect chain cleared after successful landing'); 1410 } 1411 } 1412 1413 // Initialize based on page type 1414 function init() { 1415 log('Redirect Manager initialized', redirectConfig); 1416 1417 // Run redirect logic immediately 1418 if (isPageNotFound()) { 1419 // Handle 404 redirects 1420 handle404Redirects(); 1421 } else { 1422 // Check for successful redirects 1423 checkForSuccessfulRedirect(); 1424 1425 // If we're on a valid page and there's no redirect log, 1426 // clear any stale redirect chains (manual navigation) 1427 const redirectLog = safeStorageGet('localStorage', storageKeyMap.redirectLog); 1428 if (!redirectLog) { 1429 const chain = getRedirectChain(); 1430 if (chain.count > 0) { 1431 log('Clearing stale redirect chain due to manual navigation'); 1432 clearRedirectChain(); 1433 } 1434 } 1435 } 1436 } 1437 1438 // Run when DOM is ready 1439 if (document.readyState === 'loading') { 1440 document.addEventListener('DOMContentLoaded', init); 1441 } else { 1442 init(); 1443 } 1444 1445 // Expose configuration update function for dynamic updates 1446 window.updateRedirectConfig = function(newConfig) { 1447 Object.assign(redirectConfig, newConfig); 1448 log('Configuration updated', redirectConfig); 1449 }; 1450 1451 // Expose redirect chain debugging functions 1452 window.getRedirectChainInfo = function() { 1453 return getRedirectChain(); 1454 }; 1455 1456 window.clearRedirectChainDebug = function() { 1457 clearRedirectChain(); 1458 log('Redirect chain cleared manually'); 1459 }; 1460 1461 window.enableRedirectDebugMode = function() { 1462 safeStorageSet('localStorage', storageKeyMap.debugMode, 'true'); 1463 redirectConfig.debugMode = true; 1464 log('Debug mode enabled'); 1465 }; 1466 1467 window.disableRedirectDebugMode = function() { 1468 safeStorageRemove('localStorage', storageKeyMap.debugMode); 1469 redirectConfig.debugMode = false; 1470 log('Debug mode disabled'); 1471 }; 1472 1473 window.getAdNabuRedirectManagerSessionId = function() { 1474 return getSessionId(); 1475 }; 1476 1477 window.clearAdNabuRedirectManagerSessionId = function() { 1478 clearSessionId(); 1479 log('Session ID cleared manually'); 1480 }; 1481})(); 1482</script>
1482 1483
1484<script> 1485/* ADNABU_GEO_START */ 1486(function() { 1487 const STORAGE_KEYS = { 1488 handled: 'ADNABU_GEO_REDIRECT_HANDLED', 1489 sessionId: 'ADNABU_REDIRECT_MANAGER_SESSION_ID', 1490 debug: 'ADNABU_REDIRECT_DEBUG_MODE', 1491 detectedCountry: 'ADNABU_GEO_DETECTED_COUNTRY', 1492 detectionAttempted: 'ADNABU_GEO_DETECTION_ATTEMPTED', 1493 }; 1494 // The extra replace keeps merchant copy from breaking out of this script tag: a literal 1495 // closing tag would end it early, and an opening comment plus script tag flips the HTML 1496 // tokenizer into its double-escaped state. 1497 // Escaping every '<' (it only ever appears inside JSON strings) covers both and stays valid JS. 1498 const config = null; 1499 // Fallback only â localization.country.iso_code reflects the current market context, 1500 // not the visitor's IP country; browsing_context_suggestions.json is the primary source. 1501 const visitorCountryFromLiquid = "US"; 1502 const apiEndpoint = 'https://nabu-seo.adnabu.com/flux'; 1503 const shopId = 'newhiroia.myshopify.com'; 1504 1505 // Storage access throws in Safari with site data blocked and in sandboxed frames, which 1506 // would otherwise kill the whole runtime â reads fall back to null, writes become no-ops. 1507 function storageGet(area, key) { 1508 try { return window[area].getItem(key); } catch (_e) { return null; } 1509 } 1510 function storageSet(area, key, value) { 1511 try { window[area].setItem(key, value); } catch (_e) {} 1512 } 1513 1514 const debug = storageGet('localStorage', STORAGE_KEYS.debug) === 'true'; 1515 1516 // Shopify's routes.root ends with a slash, but a theme overriding Shopify.routes 1517 // without one would silently produce paths like '/frlocalization' 1518 function getRoutesRoot() { 1519 const root = (window.Shopify && window.Shopify.routes && window.Shopify.routes.root) || '/'; 1520 return root.replace(/\/*$/, '/'); 1521 } 1522 1523 let detectedCountryCache = storageGet('sessionStorage', STORAGE_KEYS.detectedCountry) || null; 1524 // A miss (blocked endpoint, no country in the response, fetch failure) leaves detectedCountry 1525 // unset, so remember that detection ran to avoid refetching the endpoint on every pageview 1526 let detectionAttempted = storageGet('sessionStorage', STORAGE_KEYS.detectionAttempted) === '1'; 1527 1528 async function warmUpCountryDetection() { 1529 if (detectedCountryCache || detectionAttempted) return; 1530 try { 1531 const res = await fetch(getRoutesRoot() + 'browsing_context_suggestions.json?country[enabled]=true', {cache: 'no-store'}); 1532 if (!res.ok) return; 1533 const data = await res.json(); 1534 const country = data && data.detected_values && data.detected_values.country && data.detected_values.country.handle; 1535 if (country) { 1536 // Shopify's handle casing isn't guaranteed; market country_codes are uppercase 1537 detectedCountryCache = String(country).toUpperCase(); 1538 storageSet('sessionStorage', STORAGE_KEYS.detectedCountry, detectedCountryCache); 1539 } 1540 } catch (_e) { 1541 } finally { 1542 detectionAttempted = true; 1543 storageSet('sessionStorage', STORAGE_KEYS.detectionAttempted, '1'); 1544 } 1545 } 1546 1547 function detectVisitorCountry() { 1548 return detectedCountryCache 1549 || visitorCountryFromLiquid 1550 || (window.Shopify && Shopify.country) 1551 || null; 1552 } 1553 1554 // Prefer the visitor's detected country when the market covers it; otherwise fall back 1555 // to the market's primary country code. With region_detection off the visitor's location 1556 // must not influence anything, so the detected country is ignored entirely. 1557 function pickDisplayCountry(market) { 1558 const visitor = config.region_detection !== false ? detectVisitorCountry() : null; 1559 const codes = (market && market.country_codes) || []; 1560 if (visitor && codes.indexOf(visitor) !== -1) return visitor; 1561 // Visitor's country isn't in the target market (e.g. a no-market country routed to the 1562 // fallback market): prefer the merchant's chosen fallback country over the market's 1563 // first country, which is otherwise arbitrary for a multi-country market 1564 if (config.fallback_country && codes.indexOf(config.fallback_country) !== -1) return config.fallback_country; 1565 return codes[0] || config.fallback_country || visitor || null; 1566 } 1567 1568 function log() { 1569 if (debug) console.log.apply(console, ['[Nabu Geo Redirect]'].concat([].slice.call(arguments))); 1570 } 1571 1572 // Accept a boolean true or the string "true" so a metafield written as a string 1573 // doesn't silently disable the feature 1574 if (!config || (config.enabled !== true && config.enabled !== 'true')) { 1575 log('Disabled or config missing', config); 1576 return; 1577 } 1578 if (storageGet('sessionStorage', STORAGE_KEYS.handled) === '1') { 1579 log('Already handled this session'); 1580 return; 1581 } 1582 1583 function uuid() { 1584 return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { 1585 const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8); 1586 return v.toString(16); 1587 }); 1588 } 1589 1590 function getSessionId() { 1591 let id = storageGet('sessionStorage', STORAGE_KEYS.sessionId); 1592 if (!id) { 1593 id = uuid(); 1594 storageSet('sessionStorage', STORAGE_KEYS.sessionId, id); 1595 } 1596 return id; 1597 } 1598 1599 function sendEvent(eventType, extra) { 1600 const payload = Object.assign({ 1601 event_type: eventType, 1602 shop_id: shopId, 1603 session_id: getSessionId(), 1604 timestamp: Date.now() / 1000, 1605 visitor_country_code: config.region_detection !== false ? detectVisitorCountry() : null, 1606 visitor_locale: (window.Shopify && Shopify.locale) || null, 1607 // market_* mirrors the 404 event schema â the current market context, not the visitor's IP country 1608 market_country_code: (window.Shopify && Shopify.country) || null, 1609 market_locale: (window.Shopify && Shopify.locale) || null, 1610 user_agent: navigator.userAgent, 1611 }, extra || {}); 1612 try { 1613 if (navigator.sendBeacon) { 1614 navigator.sendBeacon(apiEndpoint, new Blob([JSON.stringify(payload)], {type: 'application/json'})); 1615 } else { 1616 const xhr = new XMLHttpRequest(); 1617 xhr.open('POST', apiEndpoint, true); 1618 xhr.setRequestHeader('Content-Type', 'application/json'); 1619 xhr.send(JSON.stringify(payload)); 1620 } 1621 } catch (e) { 1622 log('sendEvent failed', e); 1623 } 1624 } 1625 1626 // Returns whether the marker actually persisted â with storage blocked the guard at the 1627 // top of the IIFE never trips, and AUTO mode must not redirect without that brake. 1628 function markHandled() { 1629 storageSet('sessionStorage', STORAGE_KEYS.handled, '1'); 1630 return storageGet('sessionStorage', STORAGE_KEYS.handled) === '1'; 1631 } 1632 1633 // return_to must be locale-root-relative; a locale-prefixed path would pin the old language. 1634 // The locale home page has no trailing slash ('/fr' with root '/fr/'), so compare without it. 1635 function toLocaleRootRelative(returnTo) { 1636 let returnPath = returnTo || '/'; 1637 const rootNoSlash = getRoutesRoot().replace(/\/+$/, ''); 1638 if (rootNoSlash && returnPath.indexOf(rootNoSlash) === 0) { 1639 const rest = returnPath.slice(rootNoSlash.length); 1640 if (rest === '') returnPath = '/'; 1641 else if (rest.charAt(0) === '/') returnPath = rest; 1642 } 1643 // Collapse leading slashes, backslashes and control chars: '//evil.example/x', 1644 // '/\evil.example/x' and control-char-prefixed forms all normalize to a 1645 // protocol-relative URL in browsers, not a path 1646 return '/' + returnPath.replace(/^[/\\\x00-\x1f]+/, ''); 1647 } 1648 1649 // Submit Shopify's localization form so Shopify updates country/market/currency and 1650 // redirects to the locale-aware URL; self-built market URLs are brittle. 1651 function switchCountry(countryCode, returnTo, localeCode) { 1652 const form = document.createElement('form'); 1653 form.method = 'POST'; 1654 form.action = getRoutesRoot() + 'localization'; 1655 form.hidden = true; 1656 const fields = [ 1657 ['_method', 'PUT'], 1658 ['country_code', countryCode || ''], 1659 ['return_to', toLocaleRootRelative(returnTo) + (window.location.search || '')], 1660 ]; 1661 if (localeCode) fields.push(['locale_code', localeCode]); 1662 for (const pair of fields) { 1663 const input = document.createElement('input'); 1664 input.type = 'hidden'; 1665 input.name = pair[0]; 1666 input.value = pair[1]; 1667 form.appendChild(input); 1668 } 1669 document.body.appendChild(form); 1670 form.submit(); 1671 } 1672 1673 function findTargetMarket() {
1674 // With region_detection off, skip the country lookup and go straight to fallback 1675 if (config.region_detection !== false) { 1676 const byCountry = marketForCountry(detectVisitorCountry()); 1677 if (byCountry) return byCountry; 1678 } 1679 if (config.fallback_market_id) { 1680 const byId = (config.markets || []).find(function(m) { return m.shopify_id === config.fallback_market_id; }); 1681 if (byId) return byId; 1682 } 1683 return marketForCountry(config.fallback_country); 1684 } 1685 1686 // Auto-detect (no saved default_language) maps the visitor's browser language(s) to a locale the 1687 // market publishes: an exact locale match wins, then a base-language match (e.g. fr-FR -> fr). 1688 function detectBrowserLocale(locales) { 1689 if (!locales || !locales.length) return null; 1690 const nav = window.navigator || {}; 1691 const prefs = (nav.languages && nav.languages.length) ? nav.languages : (nav.language ? [nav.language] : []); 1692 for (let i = 0; i < prefs.length; i++) { 1693 const pref = String(prefs[i]).toLowerCase(); 1694 const base = pref.split('-')[0]; 1695 const exact = locales.find(function(l) { return String(l).toLowerCase() === pref; }); 1696 if (exact) return exact; 1697 const baseMatch = locales.find(function(l) { return String(l).toLowerCase().split('-')[0] === base; }); 1698 if (baseMatch) return baseMatch; 1699 } 1700 return null; 1701 } 1702 1703 // Prefer the shop-wide default_language URL when the market supports it, then the visitor's 1704 // browser language, then the market's own locales, then primary_url (which can point at the 1705 // shop root on partially-configured shops). 1706 function pickMarketUrl(market) { 1707 if (!market) return null; 1708 const localeUrls = market.locale_urls || {}; 1709 const globalDefault = config.default_language; 1710 if (globalDefault && localeUrls[globalDefault]) return localeUrls[globalDefault]; 1711 const detected = detectBrowserLocale(market.locales || []); 1712 if (detected && localeUrls[detected]) return localeUrls[detected]; 1713 const marketDefault = (market.locales && market.locales[0]) || null; 1714 if (marketDefault && localeUrls[marketDefault]) return localeUrls[marketDefault]; 1715 const anyLocaleUrl = Object.values(localeUrls)[0]; 1716 if (anyLocaleUrl) return anyLocaleUrl; 1717 return market.primary_url || null; 1718 } 1719 1720 // Analytics to_url should be where the visitor actually lands â the market URL joined 1721 // with the return path and query string, matching what switchCountry submits as return_to 1722 function buildDestinationUrl(market, returnTo) { 1723 const base = pickMarketUrl(market); 1724 if (!base) return null; 1725 return base.replace(/\/+$/, '') + toLocaleRootRelative(returnTo) + (window.location.search || ''); 1726 } 1727 1728 function marketPathFromUrl(url) { 1729 try { 1730 const path = new URL(url).pathname.replace(/\/+$/, ''); 1731 return path || '/'; 1732 } catch (_e) { return null; } 1733 } 1734 1735 function isSameOrigin(url) { 1736 try { return new URL(url).origin.toLowerCase() === window.location.origin.toLowerCase(); } 1737 catch (_e) { return false; } 1738 } 1739 1740 // Detect the market the visitor is currently browsing by matching subfolder prefixes 1741 function findVisitorMarketPath() { 1742 const markets = config.markets || []; 1743 const visitorPath = window.location.pathname.replace(/\/+$/, '') || '/'; 1744 const sorted = markets.slice().sort(function(a, b) { 1745 return (marketPathFromUrl(b.primary_url) || '').length - (marketPathFromUrl(a.primary_url) || '').length; 1746 }); 1747 for (const m of sorted) { 1748 // A market on another domain can share a subfolder with a locale prefix on this 1749 // one, so only same-origin markets can claim the current path. 1750 if (!isSameOrigin(m.primary_url)) continue; 1751 const mp = marketPathFromUrl(m.primary_url); 1752 if (!mp) continue; 1753 if (mp === '/') return '/'; 1754 if (visitorPath === mp || visitorPath.startsWith(mp + '/')) return mp; 1755 } 1756 return null; 1757 } 1758 1759 // Compare against the market's primary_url on both sides â pickMarketUrl() prefers a 1760 // locale URL whose path prefix differs from the primary one, which would flag visitors 1761 // already in the right market as needing a switch. 1762 function isAlreadyInMarket(market, targetUrl) { 1763 const referenceUrl = (market && market.primary_url) || targetUrl; 1764 if (!isSameOrigin(referenceUrl)) return false;
1765 // Markets can share one domain with no subfolder (the context then comes from the 1766 // buyer's localization cookie), so the URL alone can't prove the market â the 1767 // current context country must also be covered by the target market. 1768 if (visitorCountryFromLiquid && market 1769 && (market.country_codes || []).indexOf(visitorCountryFromLiquid) === -1) { 1770 return false; 1771 } 1772 // Without a primary_url there is no path to anchor a comparison â same origin plus 1773 // a covered context country is the strongest signal left. 1774 if (!market || !market.primary_url) return true; 1775 return findVisitorMarketPath() === marketPathFromUrl(referenceUrl); 1776 } 1777 1778 // Display names resolve in the storefront's locale and are memoized â Intl.DisplayNames 1779 // construction is expensive and countryName() runs inside the dropdown sort comparator. 1780 const displayNameResolvers = {}; 1781 const displayNameCaches = {region: {}, language: {}}; 1782 1783 function resolveDisplayName(type, locale, code) { 1784 const resolverKey = type + ':' + locale; 1785 if (!(resolverKey in displayNameResolvers)) { 1786 try { displayNameResolvers[resolverKey] = new Intl.DisplayNames([locale], {type: type}); } 1787 catch (_e) { displayNameResolvers[resolverKey] = null; } 1788 } 1789 const resolver = displayNameResolvers[resolverKey]; 1790 if (!resolver) return code; 1791 try { return resolver.of(code) || code; } 1792 catch (_e) { return code; } 1793 } 1794 1795 function countryName(code) { 1796 if (!code) return ''; 1797 const locale = (window.Shopify && Shopify.locale) || 'en'; 1798 const cache = displayNameCaches.region; 1799 if (cache[code] === undefined) cache[code] = resolveDisplayName('region', locale, code); 1800 return cache[code]; 1801 } 1802 1803 // SVG flag from flagcdn.com â same source as the admin preview; emoji flags don't render on Windows 1804 function flagImgMarkup(countryCode) { 1805 if (!countryCode || !/^[A-Za-z]{2}$/.test(countryCode)) return ''; 1806 const cc = String(countryCode).toLowerCase(); 1807 // onerror removes the img so a CSP-blocked or unreachable CDN never shows a broken icon 1808 return '<img src="https://flagcdn.com/' + cc + '.svg" alt="" width="16" height="12" ' 1809 + 'referrerpolicy="no-referrer" loading="lazy" onerror="this.remove()" ' 1810 + 'style="display:inline-block;vertical-align:middle;object-fit:cover;" />'; 1811 } 1812 1813 function languageName(code) { 1814 if (!code) return ''; 1815 const cache = displayNameCaches.language; 1816 if (cache[code] === undefined) cache[code] = resolveDisplayName('language', code, code); 1817 return cache[code]; 1818 } 1819 1820 function substituteTokens(template, replacements) { 1821 if (typeof template !== 'string' || !template) return ''; 1822 return template 1823 .replace(/\{country\}/g, replacements.country || '') 1824 .replace(/\{language\}/g, replacements.language || '') 1825 .replace(/\{currency\}/g, replacements.currency || ''); 1826 } 1827 1828 // Injects the flag SVG before the country name; all template segments are escaped 1829 function renderHeaderHtml(template, replacements, flagHtml) { 1830 if (typeof template !== 'string' || !template) return ''; 1831 const parts = template.split('{country}'); 1832 const substituteNonCountry = function(segment) { 1833 return substituteTokens(segment, Object.assign({}, replacements, {country: ''})); 1834 }; 1835 const before = escapeHtml(substituteNonCountry(parts[0])); 1836 if (parts.length === 1) return before; 1837 const country = escapeHtml(replacements.country || ''); 1838 // Later {country} occurrences render the plain name â the flag only decorates the first 1839 const after = escapeHtml(substituteTokens(parts.slice(1).join('{country}'), replacements)); 1840 return before + flagHtml + (flagHtml ? ' ' : '') + country + after; 1841 } 1842 1843 function escapeHtml(str) { 1844 return String(str == null ? '' : str) 1845 .replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>') 1846 .replace(/"/g, '"').replace(/'/g, '''); 1847 } 1848 1849 function marketForCountry(code) { 1850 return (config.markets || []).find(function(m) { 1851 return (m.country_codes || []).indexOf(code) !== -1; 1852 }) || null; 1853 } 1854 1855 function collectMarketCountryCodes() { 1856 const codes = [];
1857 (config.markets || []).forEach(function(m) { 1858 (m.country_codes || []).forEach(function(code) { 1859 if (code && codes.indexOf(code) === -1) codes.push(code); 1860 }); 1861 }); 1862 return codes.sort(function(a, b) { return countryName(a).localeCompare(countryName(b)); }); 1863 } 1864 1865 function localesForCountry(code, fallbackMarket) { 1866 const market = marketForCountry(code) || fallbackMarket; 1867 const locales = (market && market.locales) || []; 1868 if (locales.length) return locales; 1869 return config.shop_primary_locale ? [config.shop_primary_locale] : []; 1870 } 1871 1872 function preferredLocaleFor(market) { 1873 if (config.default_language) return config.default_language; 1874 const locales = (market && market.locales) || []; 1875 return detectBrowserLocale(locales) 1876 || locales[0] 1877 || config.shop_primary_locale || ''; 1878 } 1879 1880 // Detected/default value first (and preselected); the rest keep their order 1881 function orderedWithFirst(list, first) { 1882 if (!first || list.indexOf(first) === -1) return list; 1883 return [first].concat(list.filter(function(item) { return item !== first; })); 1884 } 1885 1886 function selectOptionsMarkup(values, labelFor) { 1887 return values.map(function(value, index) { 1888 return '<option value="' + escapeHtml(value) + '"' + (index === 0 ? ' selected' : '') + '>' 1889 + escapeHtml(labelFor(value)) + '</option>'; 1890 }).join(''); 1891 } 1892 1893 function selectFieldMarkup(id, label, attribute, optionsHtml) { 1894 // label for + matching id ties the visible caption to the select, so voice-control 1895 // users can target it (an aria-label alone is invisible and not voice-addressable) 1896 return [ 1897 '<div>', 1898 '<label for="' + id + '" style="display:block;margin:0 0 4px;font-size:11px;color:#6b7280;">' + escapeHtml(label) + '</label>', 1899 '<select id="' + id + '" ' + attribute + ' style="width:100%;background:#fff;border:1px solid #dfe3e8;border-radius:6px;padding:4px 0;font-size:12px;color:#111827;">' + optionsHtml + '</select>', 1900 '</div>', 1901 ].join(''); 1902 } 1903 1904 function renderModal(market, targetUrl) { 1905 const modalCopy = config.modal_copy || {}; 1906 const allCountryCodes = collectMarketCountryCodes(); 1907 const picked = pickDisplayCountry(market); 1908 // The header/CTA must describe the same country the dropdown preselects, so a pick 1909 // no market covers (empty country_codes + uncovered fallback) falls back to the list 1910 const countryCode = allCountryCodes.indexOf(picked) !== -1 ? picked : (allCountryCodes[0] || picked); 1911 const preferredLanguage = preferredLocaleFor(market); 1912 const languageOptions = orderedWithFirst(localesForCountry(countryCode, market), preferredLanguage); 1913 // {language} copy must name the option the dropdown actually preselects â a 1914 // default_language the target market doesn't publish is dropped from the list 1915 const languageCode = languageOptions[0] || preferredLanguage; 1916 const flagHtml = flagImgMarkup(countryCode); 1917 const replacements = { 1918 country: countryName(countryCode) || market.name || '', 1919 language: languageName(languageCode), 1920 currency: (marketForCountry(countryCode) || market).currency_code || '', 1921 }; 1922 // Hex-only guard: cta_color lands in a style attribute, so reject arbitrary CSS 1923 const ctaColor = /^#[0-9a-fA-F]{3,8}$/.test(modalCopy.cta_color || '') ? modalCopy.cta_color : '#1F1F1F'; 1924 const headerTemplate = modalCopy.header || 'It looks like you are shopping from {country}'; 1925 const descriptionTemplate = modalCopy.description || 'Visit our {country} store for {currency} pricing.'; 1926 const ctaTemplate = modalCopy.cta_label || 'Continue to {country} store'; 1927 const countryOptions = orderedWithFirst(allCountryCodes, countryCode); 1928 1929 const overlay = document.createElement('div'); 1930 overlay.setAttribute('data-adnabu-geo-modal', ''); 1931 overlay.style.cssText = 'position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(15,15,15,0.32);z-index:2147483646;display:flex;align-items:center;justify-content:center;font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif;'; 1932 overlay.innerHTML = [ 1933 '<div role="dialog" aria-modal="true" data-adnabu-geo-dialog aria-label="' + escapeHtml(substituteTokens(headerTemplate, replacements)) + '" style="background:#fff;border-radius:14px;box-shadow:0 12px 32px rgba(0,0,0,0.18);padding:20px;max-width:340px;width:calc(100% - 40px);">', 1934 '<div style="display:flex;justify-content:space-between;align-items:flex-start;gap:12px;">', 1935 '<p data-adnabu-geo-header aria-live="polite" style="margin:0;font-size:15px;font-weight:500;line-height:1.35;">' + renderHeaderHtml(headerTemplate, replacements, flagHtml) + '</p>', 1936 '<button type="button" aria-label="Close" data-adnabu-geo-dismiss style="background:transparent;border:none;padding:0;cursor:pointer;color:#5c6a7a;font-size:20px;line-height:1;">Ã</button>', 1937 '</div>', 1938 '<p data-adnabu-geo-description aria-live="polite" style="margin:12px 0 0;font-size:13px;color:#374151;line-height:1.4;">' + escapeHtml(substituteTokens(descriptionTemplate, replacements)) + '</p>', 1939 '<div style="display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px;">', 1940 selectFieldMarkup('adnabu-geo-country-select', modalCopy.country_field_label || 'Country', 'data-adnabu-geo-country', selectOptionsMarkup(countryOptions, countryName)), 1941 selectFieldMarkup('adnabu-geo-language-select', modalCopy.language_field_label || 'Language', 'data-adnabu-geo-language', selectOptionsMarkup(languageOptions, languageName)), 1942 '</div>', 1943 '<button type="button" data-adnabu-geo-accept style="margin-top:16px;width:100%;background:' + escapeHtml(ctaColor) + ';color:#fff;border:none;border-radius:8px;padding:10px 14px;font-weight:600;font-size:13px;
1943cursor:pointer;">', 1944 escapeHtml(substituteTokens(ctaTemplate, replacements)), 1945 '</button>', 1946 '</div>', 1947 ].join(''); 1948 1949 const previouslyFocused = document.activeElement; 1950 const previousBodyOverflow = document.body.style.overflow; 1951 // Lock background scroll so the page doesn't scroll behind the overlay on mobile 1952 document.body.style.overflow = 'hidden'; 1953 document.body.appendChild(overlay); 1954 1955 const dialogElement = overlay.querySelector('[data-adnabu-geo-dialog]'); 1956 const headerElement = overlay.querySelector('[data-adnabu-geo-header]'); 1957 const descriptionElement = overlay.querySelector('[data-adnabu-geo-description]'); 1958 const countrySelect = overlay.querySelector('[data-adnabu-geo-country]'); 1959 const languageSelect = overlay.querySelector('[data-adnabu-geo-language]'); 1960 const acceptButton = overlay.querySelector('[data-adnabu-geo-accept]'); 1961 1962 // All templated copy tracks the current selection, not just the CTA â a modal that 1963 // still says "Shopping from France?" above a "Continue to Germany store" button lies 1964 function updateModalCopy() { 1965 const chosenCountry = countrySelect.value || countryCode; 1966 const chosenMarket = marketForCountry(chosenCountry) || market; 1967 const chosen = { 1968 country: countryName(chosenCountry) || chosenMarket.name || '', 1969 language: languageName(languageSelect.value || languageCode), 1970 currency: chosenMarket.currency_code || '', 1971 }; 1972 headerElement.innerHTML = renderHeaderHtml(headerTemplate, chosen, flagImgMarkup(chosenCountry)); 1973 descriptionElement.textContent = substituteTokens(descriptionTemplate, chosen); 1974 acceptButton.textContent = substituteTokens(ctaTemplate, chosen); 1975 dialogElement.setAttribute('aria-label', substituteTokens(headerTemplate, chosen)); 1976 } 1977 1978 function handleKeydown(e) { 1979 if (e.key === 'Escape') { dismiss(); return; } 1980 if (e.key !== 'Tab') return; 1981 // Keep Tab cycling inside the dialog while it is open 1982 const focusables = overlay.querySelectorAll('select, button'); 1983 const first = focusables[0]; 1984 const last = focusables[focusables.length - 1]; 1985 if (e.shiftKey && document.activeElement === first) { e.preventDefault(); last.focus(); } 1986 else if (!e.shiftKey && document.activeElement === last) { e.preventDefault(); first.focus(); } 1987 } 1988 function dismiss() { 1989 sendEvent('GEO_MODAL_DISMISSED', {target_country_code: countryCode, target_market_id: market.shopify_id}); 1990 document.removeEventListener('keydown', handleKeydown); 1991 document.body.style.overflow = previousBodyOverflow; 1992 overlay.remove(); 1993 if (previouslyFocused && typeof previouslyFocused.focus === 'function') previouslyFocused.focus(); 1994 } 1995 function accept() { 1996 // Guard against double submission â the first click already navigates 1997 if (acceptButton.disabled) return; 1998 acceptButton.disabled = true; 1999 document.removeEventListener('keydown', handleKeydown); 2000 document.body.style.overflow = previousBodyOverflow; 2001 const chosenCountry = countrySelect.value || countryCode; 2002 const chosenMarket = marketForCountry(chosenCountry) || market; 2003 sendEvent('GEO_MODAL_ACCEPTED', { 2004 target_country_code: chosenCountry, target_market_id: chosenMarket.shopify_id, 2005 to_url: buildDestinationUrl(chosenMarket, window.location.pathname) || targetUrl, 2006 }); 2007 switchCountry(chosenCountry, window.location.pathname, languageSelect.value || languageCode); 2008 } 2009 countrySelect.addEventListener('change', function() { 2010 // Same preference order as the initial render, so toggling a country away and 2011 // back preselects the same language 2012 const chosenMarket = marketForCountry(countrySelect.value) || market; 2013 const locales = orderedWithFirst(localesForCountry(countrySelect.value, market), preferredLocaleFor(c
2013hosenMarket)); 2014 languageSelect.innerHTML = selectOptionsMarkup(locales, languageName); 2015 updateModalCopy(); 2016 }); 2017 languageSelect.addEventListener('change', updateModalCopy); 2018 overlay.querySelector('[data-adnabu-geo-dismiss]').addEventListener('click', dismiss); 2019 acceptButton.addEventListener('click', accept); 2020 overlay.addEventListener('click', function(e) { if (e.target === overlay) dismiss(); }); 2021 document.addEventListener('keydown', handleKeydown); 2022 // Emitted only after a successful render + wiring, so a throw above (caught in run()) 2023 // never counts an impression for a modal the visitor can't see 2024 sendEvent('GEO_MODAL_SHOWN', {target_country_code: countryCode, target_market_id: market.shopify_id}); 2025 countrySelect.focus({preventScroll: true}); 2026 } 2027 2028 // Best-effort bot exclusion: JS-rendering crawlers (Googlebot, Bingbot) keep their bot UA 2029 // while rendering, and navigator.webdriver catches headless automation. 2030 // Redirecting crawlers by IP breaks indexing of localized markets, so bots get neither 2031 // redirects nor modals â and never reach sendEvent, keeping analytics human-only. 2032 function isBot() { 2033 if (navigator.webdriver) return true; 2034 return /bot|crawler|spider|crawling|slurp|lighthouse|headless|bingpreview|facebookexternalhit|whatsapp|telegram|pinterest|semrush|ahrefs|screaming frog/i 2035 .test(navigator.userAgent); 2036 } 2037 2038 const botDetected = isBot(); 2039 2040 async function run() { 2041 if (botDetected) { 2042 log('Bot or automation detected; skipping geo handling'); 2043 return; 2044 } 2045 await countryDetectionReady; 2046 const targetMarket = findTargetMarket(); 2047 if (!targetMarket) { 2048 log('No target market found for visitor country', detectVisitorCountry()); 2049 return; 2050 } 2051 const targetUrl = pickMarketUrl(targetMarket); 2052 if (!targetUrl) { 2053 log('No URL resolved for target market', targetMarket); 2054 return; 2055 } 2056 if (isAlreadyInMarket(targetMarket, targetUrl)) { 2057 log('Visitor already in target market origin', targetUrl); 2058 return; 2059 } 2060 if (config.mode === 'AUTO') { 2061 // Submit only a country the target market covers, so the reported market and 2062 // the market Shopify resolves can't diverge 2063 const targetCountries = targetMarket.country_codes || []; 2064 const picked = pickDisplayCountry(targetMarket); 2065 const submitCountry = targetCountries.indexOf(picked) !== -1 ? picked : targetCountries[0]; 2066 if (!submitCountry) { 2067 log('Target market has no country to submit; skipping AUTO redirect'); 2068 return; 2069 } 2070 // No persisted marker means no brake against reload loops â storage-blocked 2071 // visitors usually block the localization cookie too, so the switch won't stick 2072 if (!markHandled()) { 2073 log('Session marker not persisted; skipping AUTO redirect'); 2074 return; 2075 } 2076 sendEvent('GEO_AUTO_REDIRECTED', { 2077 target_country_code: submitCountry, target_market_id: targetMarket.shopify_id, 2078 to_url: buildDestinationUrl(targetMarket, window.location.pathname) || targetUrl, 2079 }); 2080 // Honor default_language when the target market publishes it, matching pickMarketUrl's choice 2081 const autoLocale = config.default_language 2082 && (targetMarket.locales || []).indexOf(config.default_language) !== -1 2083 ? config.default_language : null; 2084 switchCountry(submitCountry, window.location.pathname, autoLocale); 2085 return; 2086 } 2087 if (config.mode !== 'MODAL') { 2088 log('Unknown redirection mode; skipping', config.mode); 2089 return; 2090 } 2091 // Mark handled only after a successful render â a throw partway would otherwise cost 2092 // the visitor the modal for the whole session and leave a dead overlay on the page 2093 try { 2094 renderModal(targetMarket, targetUrl); 2095 } catch (renderError) { 2096 const partialOverlay = document.querySelector('[data-adnabu-geo-modal]'); 2097 if (partialOverlay) partialOverlay.remove(); 2098 log('Modal render failed', renderError); 2099 return; 2100 } 2101 markHandled(); 2102 } 2103 2104 // Detection starts at script evaluation (this block targets head) so the network round 2105 // trip overlaps document parsing instead of delaying the redirect past DOMContentLoaded. 2106 // With region_detection off the visitor is never geolocated â no lookup, no cache. 2107 const countryDetectionReady = !botDetected && config.region_detection !== false 2108 ? warmUpCountryDetection() : Promise.resolve(); 2109 2110 // async run() would otherwise surface storage/network failures as unhandled rejections 2111 function startGeo() { 2112 run().catch(function(e) { log('Geo run failed', e); }); 2113 } 2114 if (document.readyState === 'loading') { 2115 document.addEventListener('DOMContentLoaded', startGeo); 2116 } else { 2117 startGeo(); 2118 } 2119})(); 2120/* ADNABU_GEO_END */ 2121</script>
2121 2122 2123 2124<!-- END app block -->
2124<script src="https://cdn.shopify.com/extensions/019dbe41-333e-7edd-a4ce-2128c404ca9a/bucks-currency-converter-29/assets/widgetLoader.js" type="text/javascript" defer="defer"></script>
2124 2125<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
2126<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: 61371220129,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "collection"};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 2126
2126
2127<script> 2128 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 2129</script>
vendor: 1 bytes, line 2129
2129
2130<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}
2130).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: 61371220129,storefrontBaseUrl: "https://www.hiroia.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.hiroia.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"1999208609","configuration":"{\"projectId\":\"w0oqf057g5\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d8a2bb2ccbb513dc8e8b6937f4b8033e","type":"APP","apiClientId":240074326017,"privacyPurposes":[],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]}
2130,"dataSharingState":"unrestricted"},{"id":"1995833505","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-QCPXWHT2Q9\\\"],\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"G-QCPXWHT2Q9\\\"},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"G-QCPXWHT2Q9\\\"},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-QCPXWHT2Q9\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":\\\"G-QCPXWHT2Q9\\\"},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-QCPXWHT2Q9\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":\\\"G-QCPXWHT2Q9\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":\\\"G-QCPXWHT2Q9\\\"},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-QCPXWHT2Q9\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"G-QCPXWHT2Q9\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"G-QCPXWHT2Q9\\\"},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-QCPXWHT2Q9\\\"}],\\\"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":"209813665","configuration":"{\"pixel_id\":\"3649016155329755\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"120750241","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS"],"name":"Google Analytics tag (migrated)"}
2130,{"id":"163086497","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"3","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"GTM --- Checkout Tracking"},{"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":"Hiroia","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"newhiroia.myshopify.com","countryCode":"TW","storefrontUrl":"https:\/\/www.hiroia.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"7826735038625","handle":"hikaru","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44757671444641","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7394124628129","handle":"jimmy","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42010202570913","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7688290304161","handle":"jimmy-protective-pad","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42981575098529","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8405526577313","handle":"edge-mini-grinder","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45687785029793","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8324594073761","handle":"edge","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45282650488993","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7394128855201","handle":"samantha","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45551219540129","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8510114529441","handle":"go50-titanium-grinder","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46350772830369","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7656566882465","handle":"samantha-ii","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42885863964833","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://www.hiroia.com/cdn","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"153337036961","themePublished":"true","eventMetadataId":"e2b498f8-bce4-4c57-a953-0d0e1fd00be4","pageType":"collection","resourceId":"288567165089","shopId":"61371220129","storefrontBaseUrl":"https:\/\/www.hiroia.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","publish":"custom","events":"[[\"page_viewed\",{}],[\"collection_viewed\",{\"collection\":{\"id\":\"288567165089\",\"title\":\"All Products\",\"productVariants\":[{\"price\":{\"amount\":799.0,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"Hikaru\",\"vendor\":\"Hiroia\",\"id\":\"7826735038625\",\"untranslatedTitle\":\"Hikaru\",\"url\":\"\/products\/hikaru\",\"type\":\"\"},\"id\":\"44757671444641\",\"image\":{\"src\":\"\/\/www.hiroia.com\/cdn\/shop\/files\/2df759361d8d047ec9d39e30f8472fa921c25f66.png?v=1752188436\"},\"sku\":\"\",\"title\":\"110V - US \/ White\",\"untranslatedTitle\":\"110V - US \/ White\"},{\"price\":{\"amount\":179.0,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"Jimmy\",\"vendor\":\"Hiroia\",\"id\":\"7394124628129\",\"untranslatedTitle\":\"Jimmy\",\"url\":\"\/products\/jimmy\",\"type\":\"Coffee Maker \u0026 Espresso Machine Accessories\"},\"id\":\"42010202570913\",\"image\":{\"src\":\"\/\/www.hiroia.com\/cdn\/shop\/files\/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c.png?v=1752188684\"},\"sku\":\"0\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"},{\"price\":{\"amount\":212.0,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"Jimmy with Protective Pad bundle\",\"vendor\":\"Hiroia\",\"id\":\"7688290304161\",\"untranslatedTitle\":\"Jimmy with Protective Pad bundle\",\"url\":\"\/products\/jimmy-protective-pad\",\"type\":\"秤éè¨é
ä»¶\"},\"id\":\"42981575098529\",\"image\":{\"src\":\"\/\/www.hiroia.com\/cdn\/shop\/files\/f3f24461faaf1ceffae2b7fad427560cc72f7dd1.png?v=1752188367\"},\"sku\":\"\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"},{\"price\":{\"amount\":179.0,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"EDGE Mini+\",\"vendor\":\"Hiroia\",\"id\":\"8405526577313\",\"untranslatedTitle\":\"EDGE Mini+\",\"url\":\"\/products\/edge-mini-grinder\",\"type\":\"\"},\"id\":\"45687785029793\",\"image\":{\"src\":\"\/\/www.hiroia.com\/cdn\/shop\/files\/image8.png?v=1770011925\"},\"sku\":null,\"title\":\"Black\",\"untranslatedTitle\":\"Black\"},{\"price\":{\"amount\":349.0,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"EDGE Titanium\",\"vendor\":\"Hiroia\",\"id\":\"8324594073761\",\"untranslatedTitle\":\"EDGE Titanium\",\"url\":\"\/products\/edge\",\"type\":\"\"}
2130,\"id\":\"45282650488993\",\"image\":{\"src\":\"\/\/www.hiroia.com\/cdn\/shop\/files\/1_e57f4c72-cd81-494b-95b2-28e573b33e29.jpg?v=1761190593\"},\"sku\":null,\"title\":\"US \/ White\",\"untranslatedTitle\":\"US \/ White\"},{\"price\":{\"amount\":799.0,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"Samantha\",\"vendor\":\"Hiroia\",\"id\":\"7394128855201\",\"untranslatedTitle\":\"Samantha\",\"url\":\"\/products\/samantha\",\"type\":\"Coffee Maker \u0026 Espresso Machine Accessories\"},\"id\":\"45551219540129\",\"image\":{\"src\":\"\/\/www.hiroia.com\/cdn\/shop\/files\/017792487aa2f9fa852750afd19aaf8f537fee51.png?v=1752188523\"},\"sku\":\"0-1\",\"title\":\"220V - EU\",\"untranslatedTitle\":\"220V - EU\"},{\"price\":{\"amount\":369.0,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"GO50 Titanium Grinder\",\"vendor\":\"Hiroia\",\"id\":\"8510114529441\",\"untranslatedTitle\":\"GO50 Titanium Grinder\",\"url\":\"\/products\/go50-titanium-grinder\",\"type\":\"Barista Accessory\"},\"id\":\"46350772830369\",\"image\":{\"src\":\"\/\/www.hiroia.com\/cdn\/shop\/files\/Go50_Image6.webp?v=1778041540\"},\"sku\":null,\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"},{\"price\":{\"amount\":1599.0,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"Samantha II\",\"vendor\":\"Hiroia\",\"id\":\"7656566882465\",\"untranslatedTitle\":\"Samantha II\",\"url\":\"\/products\/samantha-ii\",\"type\":\"\"},\"id\":\"42885863964833\",\"image\":{\"src\":\"\/\/www.hiroia.com\/cdn\/shop\/files\/fecf1c9766533302ddd51dd74f99976341dd194b.png?v=1752457116\"},\"sku\":\"\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}]}}]]"});})();</script>
2130<script> 2131 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 2132 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 2133 window.ShopifyAnalytics.meta.currency = 'USD'; 2134 var meta = {"products":[{"id":7826735038625,"gid":"gid:\/\/shopify\/Product\/7826735038625","vendor":"Hiroia","type":"","handle":"hikaru","variants":[{"id":44757671444641,"price":79900,"name":"Hikaru - 110V - US \/ White","public_title":"110V - US \/ White","sku":""},{"id":45025169572001,"price":79900,"name":"Hikaru - 110V - US \/ Black","public_title":"110V - US \/ Black","sku":null},{"id":43651533799585,"price":79900,"name":"Hikaru - 110V - TW \/ White","public_title":"110V - TW \/ White","sku":""},{"id":45025169539233,"price":79900,"name":"Hikaru - 110V - TW \/ Black","public_title":"110V - TW \/ Black","sku":null},{"id":44765540122785,"price":79900,"name":"Hikaru - 220V - EU \/ White","public_title":"220V - EU \/ White","sku":""},{"id":45025169604769,"price":79900,"name":"Hikaru - 220V - EU \/ Black","public_title":"220V - EU \/ Black","sku":null},{"id":44757671739553,"price":79900,"name":"Hikaru - 220V - UK \/ White","public_title":"220V - UK \/ White","sku":""},{"id":45025169637537,"price":79900,"name":"Hikaru - 220V - UK \/ Black","public_title":"220V - UK \/ Black","sku":null}],"remote":false},{"id":7394124628129,"gid":"gid:\/\/shopify\/Product\/7394124628129","vendor":"Hiroia","type":"Coffee Maker \u0026 Espresso Machine Accessories","handle":"jimmy","variants":[{"id":42010202570913,"price":17900,"name":"Jimmy","public_title":null,"sku":"0"}],"remote":false},{"id":7688290304161,"gid":"gid:\/\/shopify\/Product\/7688290304161","vendor":"Hiroia","type":"秤éè¨é ä»¶","handle":"jimmy-protective-pad","variants":[{"id":42981575098529,"price":21200,"name":"Jimmy with Protective Pad bundle","public_title":null,"sku":""}],"remote":false},{"id":8405526577313,"gid":"gid:\/\/shopify\/Product\/8405526577313","vendor":"Hiroia","type":"","handle":"edge-mini-grinder","variants":[{"id":45687785029793,"price":17900,"name":"EDGE Mini+ - Black","public_title":"Black","sku":null},{"id":45687785062561,"price":17900,"name":"EDGE Mini+ - White","public_title":"White","sku":null}],"remote":false},{"id":8324594073761,"gid":"gid:\/\/shopify\/Product\/8324594073761","vendor":"Hiroia","type":"","handle":"edge","variants":[{"id":45282650488993,"price":34900,"name":"EDGE Titanium - US \/ White","public_title":"US \/ White","sku":null},{"id":45295901507745,"price":34900,"name":"EDGE Titanium - US \/ Black","public_title":"US \/ Black","sku":null},{"id":45234579439777,"price":34900,"name":"EDGE Titanium - EU \/ White","public_title":"EU \/ White","sku":null},{"id":45295901540513,"price":34900,"name":"EDGE Titanium - EU \/ Black","public_title":"EU \/ Black","sku":null},{"id":45282650554529,"price":34900,"name":"EDGE Titanium - UK \/ White","public_title":"UK \/ White","sku":null},{"id":45295901573281,"price":34900,"name":"EDGE Titanium - UK \/ Black","public_title":"UK \/ Black","sku":null}],"remote":false},{"id":7394128855201,"gid":"gid:\/\/shopify\/Product\/7394128855201","vendor":"Hiroia","type":"Coffee Maker \u0026 Espresso Machine Accessories","handle":"samantha","variants":[{"id":45551219540129,"price":79900,"name":"Samantha - 220V - EU","public_title":"220V - EU","sku":"0-1"},{"id":45551219572897,"price":79900,"name":"Samantha - 220V - CN","public_title":"220V - CN","sku":"0-2"}],"remote":false},{"id":8510114529441,"gid":"gid:\/\/shopify\/Product\/8510114529441","vendor":"Hiroia","type":"Barista Accessory","handle":"go50-titanium-grinder","variants":[{"id":46350772830369,"price":36900,"name":"GO50 Titanium Grinder","public_title":null,"sku":null}],"remote":false},{"id":7656566882465,"gid":"gid:\/\/shopify\/Product\/7656566882465","vendor":"Hiroia","type":"","handle":"samantha-ii","variants":[{"id":42885863964833,"price":159900,"name":"Samantha II","public_title":null,"sku":""}],"remote":false}],"page":{"pageType":"collection","resourceType":"collection","resourceId":288567165089,"requestId":"eccc1e4b-5ab3-4974-bd40-2d1ae1601501-1790304974"}}; 2135 for (var attr in meta) { 2136 window.ShopifyAnalytics.meta[attr] = meta[attr]; 2137 } 2138</script>
vendor: 1 bytes, line 2138
2138
2139<script class="analytics"> 2140 (function () { 2141 var customDocumentWrite = function(content) { 2142 var jquery = null; 2143 2144 if (window.jQuery) { 2145 jquery = window.jQuery; 2146 } else if (window.Checkout && window.Checkout.$) { 2147 jquery = window.Checkout.$; 2148 } 2149 2150 if (jquery) { 2151 jquery('body').append(content); 2152 } 2153 }; 2154 2155 var hasLoggedConversion = function(token) { 2156 if (token) { 2157 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 2158 } 2159 return false; 2160 } 2161 2162 var setCookieIfConversion = function(token) { 2163 if (token) { 2164 var twoMonthsFromNow = new Date(Date.now()); 2165 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 2166 2167 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 2168 } 2169 } 2170 2171 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 2172 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 2173 if (trekkie.integrations) { 2174 return; 2175 } 2176 trekkie.methods = [ 2177 'identify', 2178 'page', 2179 'ready', 2180 'track', 2181 'trackForm', 2182 'trackLink' 2183 ]; 2184 trekkie.factory = function(method) { 2185 return function() { 2186 var args = Array.prototype.slice.call(arguments); 2187 args.unshift(method); 2188 trekkie.push(args); 2189 if (method == 'track' || method == 'page') { 2190 var pageUrl; 2191 try { 2192 pageUrl = window.location.href; 2193 } catch (e) {} 2194 var pageReferrer; 2195 try { 2196 pageReferrer = document.referrer; 2197 } catch (e) {} 2198 try { 2199 if (window.__TREKKIE_SHIM_QUEUE == null) { 2200 window.__TREKKIE_SHIM_QUEUE = []; 2201 } 2202 window.__TREKKIE_SHIM_QUEUE.push({ 2203 from: 'trekkie-stub', 2204 method: method, 2205 args: args.slice(1), 2206 pageContext: { 2207 url: pageUrl, 2208 referrer: pageReferrer 2209 } 2210 }); 2211 } catch (e) { 2212 // no-op 2213 } 2214 } 2215 return trekkie; 2216 }; 2217 }; 2218 for (var i = 0; i < trekkie.methods.length; i++) { 2219 var key = trekkie.methods[i]; 2220 trekkie[key] = trekkie.factory(key); 2221 } 2222 trekkie.load = function(config) { 2223 trekkie.config = config || {}; 2224 trekkie.config.initialDocumentCookie = document.cookie; 2225 var first = document.getElementsByTagName('script')[0]; 2226var script = document.createElement('script'); 2227script.type = 'text/javascript'; 2228script.onerror = function(e) { 2229 var scriptFallback = document.createElement('script'); 2230 scriptFallback.type = 'text/javascript'; 2231 scriptFallback.onerror = function(error) { 2232 var Monorail = { 2233 produce: function produce(monorailDomain, schemaId, payload) { 2234 var currentMs = new Date().getTime(); 2235 var event = { 2236 schema_id: schemaId, 2237 payload: payload, 2238 metadata: { 2239 event_created_at_ms: currentMs, 2240 event_sent_at_ms: currentMs 2241 } 2242 }; 2243 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 2244 }, 2245 sendRequest: function sendRequest(endpointUrl, payload) { 2246 // Try the sendBeacon API 2247 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 2248 var blobData = new window.Blob([payload], { 2249 type: 'text/plain' 2250 }); 2251 2252 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 2253 return true; 2254 } // sendBeacon was not successful 2255 2256 } // XHR beacon 2257 2258 var xhr = new XMLHttpRequest(); 2259 2260 try { 2261 xhr.open('POST', endpointUrl); 2262 xhr.setRequestHeader('Content-Type', 'text/plain'); 2263 xhr.send(payload); 2264 } catch (e) { 2265 console.log(e); 2266 } 2267 2268 return false; 2269 }, 2270 isIos12: function isIos12() { 2271 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 2272 } 2273 }; 2274 Monorail.produce('monorail-edge.shopifysvc.com', 2275 'trekkie_storefront_load_errors/1.1', 2276 {shop_id: 61371220129, 2277 theme_id: 153337036961, 2278 app_name: "storefront", 2279 context_url: window.location.href, 2280 source_url: "//www.hiroia.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"}); 2281 2282 }; 2283 scriptFallback.async = true; 2284 scriptFallback.src = '//www.hiroia.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 2285 first.parentNode.insertBefore(scriptFallback, first); 2286}; 2287script.async = true; 2288script.src = '//www.hiroia.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 2289first.parentNode.insertBefore(script, first); 2290 2291 }; 2292 trekkie.load( 2293 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":61371220129,"isMerchantRequest":null,"themeId":153337036961,"themeCityHash":"16158150247101202553","contentLanguage":"en","currency":"USD","eventMetadataId":"e2b498f8-bce4-4c57-a953-0d0e1fd00be4"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 2294 ); 2295 2296 var loaded = false;
2297 trekkie.ready(function() { 2298 if (loaded) return; 2299 loaded = true; 2300 2301 window.ShopifyAnalytics.lib = window.trekkie; 2302 2303 var originalDocumentWrite = document.write; 2304 document.write = customDocumentWrite; 2305 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 2306 document.write = originalDocumentWrite; 2307 2308 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 2309 var token = match? match[1]: undefined; 2310 if (!hasLoggedConversion(token)) { 2311 setCookieIfConversion(token); 2312 window.ShopifyAnalytics.lib.track("Viewed Product Category",{"currency":"USD","category":"Collection: all-products","collectionName":"all-products","collectionId":288567165089,"nonInteraction":true},undefined,undefined,{"shopifyEmitted":true}); 2313 } 2314 }); 2315 2316 window.ShopifyAnalytics.lib.page(null,{"pageType":"collection","resourceType":"collection","resourceId":288567165089,"requestId":"eccc1e4b-5ab3-4974-bd40-2d1ae1601501-1790304974","shopifyEmitted":true}); 2317 2318 var eventsListenerScript = document.createElement('script'); 2319 eventsListenerScript.async = true; 2320 eventsListenerScript.src = "//www.hiroia.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 2321 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 2322})();</script>
2322 2323
2323<script> 2324 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 2325 window.ga = function ga() { 2326 (window.ga.q = window.ga.q || []).push(arguments); 2327 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 2328 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 2329 } 2330 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."); 2331 }; 2332 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 2333 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 2334 } 2335 } 2336</script>
vendor: 1 bytes, line 2336
2336
2337<script 2338 defer 2339 src="https://www.hiroia.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 2340 data-application="storefront-renderer" 2341 data-shop-id="61371220129" 2342 data-render-region="gcp-us-central1" 2343 data-page-type="collection" 2344 data-theme-instance-id="153337036961" 2345 data-theme-name="Ella" 2346 data-theme-version="6.4.1" 2347 data-monorail-region="shop_domain" 2348 data-resource-timing-sampling-rate="10" 2349 data-shs="true" 2350 data-shs-beacon="true" 2351 data-shs-export-with-fetch="true" 2352 data-shs-logs-sample-rate="1" 2353 data-shs-beacon-endpoint="https://www.hiroia.com/api/collect" 2354></script>
vendor: 1 bytes, line 2354
2354
2355<script id="shopify-chat-page-data" type="application/json">{"greetingMessage":"Welcome to Hiroia. How can I help?","customerServiceEmail":"[email protected]","onlineStorePasswordProtected":false,"translations":[{"key":"agent_chat.panel.open_chat","value":"Open chat"},{"key":"agent_chat.panel.ask_anything","value":"Ask anything"},{"key":"agent_chat.panel.title","value":"Storekick"},{"key":"agent_chat.panel.unread_replies","value":"Unread replies"},{"key":"agent_chat.panel.back_to_chat","value":"Back to chat"},{"key":"agent_chat.panel.see_history","value":"See chat history"},{"key":"agent_chat.panel.new_chat","value":"Create a new chat"},{"key":"agent_chat.panel.close","value":"Close chat"},{"key":"agent_chat.panel.undock","value":"Undock chat"},{"key":"agent_chat.panel.dock","value":"Dock chat"},{"key":"agent_chat.panel.expand","value":"Expand chat"},{"key":"agent_chat.panel.contract","value":"Contract chat"},{"key":"agent_chat.panel.jump_to_latest","value":"Jump to latest"},{"key":"agent_chat.panel.loading_chat","value":"Loading chat"},{"key":"agent_chat.input.label","value":"Type your message"},{"key":"agent_chat.input.placeholder","value":"Ask anything..."},{"key":"agent_chat.input.send","value":"Send"},{"key":"agent_chat.input.stop","value":"Stop generating"},{"key":"agent_chat.thinking","value":"Thinking..."},{"key":"agent_chat.first_response_delayed","value":"Agent is taking longer to respondâ¦"},{"key":"agent_chat.searching","value":"Searching..."},{"key":"agent_chat.message.sent_timestamp","value":"Sent · {{time}}"},{"key":"agent_chat.message.automated_label","value":"Automated"},{"key":"agent_chat.message.automated_timestamp","value":"Automated · {{time}}"},{"key":"agent_chat.liveAgentHandoff","value":"Someone from our team will be with you shortly"},{"key":"agent_chat.human_handoff.action","value":"Chat with our team"},{"key":"agent_chat.human_handoff.request","value":"Iâd like to talk to someone from your team"},{"key":"agent_chat.human_handoff.ai_assistant","value":"AI assistant"},{"key":"agent_chat.greeting.default","value":"Hi there!"},{"key":"agent_chat.greeting.with_name","value":"Hi {{name}}!"},{"key":"agent_chat.greeting.welcome","value":"You can ask questions about shopping, sizing\/dimensions, shipping, returns, or order status."},{"key":"agent_chat.greeting.welcome_back","value":"Welcome back to %{shop_name}! How can I help?"},{"key":"agent_chat.greeting.welcome_back_no_shop","value":"Welcome back! How can I help?"},{"key":"agent_chat.greeting.welcome_to_shop","value":"Welcome to %{shop_name}. How can I help?"},{"key":"agent_chat.greeting.generic","value":"How can I help?"},{"key":"agent_chat.disclaimer.text","value":"This chat is powered by AI from Shopify and may make mistakes. Your messages are visible to {{shop_name}}. See"},{"key":"agent_chat.disclaimer.text_human","value":"Your messages are visible to {{shop_name}} and to Shopify for the provision and improvement of the services. See"},{"key":"agent_chat.disclaimer.link_text","value":"privacy policy"},{"key":"agent_chat.error.response_unavailable","value":"Response unavailable"},{"key":"agent_chat.error.generic","value":"Something went wrong."},{"key":"agent_chat.error.response_failed","value":"Couldnât load this message"},{"key":"agent_chat.error.message_send_failed","value":"Your message couldnât be sent"},{"key":"agent_chat.error.attachment_upload_failed","value":"Your attachment didnât upload"},{"key":"agent_chat.error.first_response_stalled","value":"Agent couldnât respond"},{"key":"agent_chat.error.try_again","value":"Try again"},{"key":"agent_chat.error.unavailable","value":"Chat isn't available right now - try again later"},{"key":"agent_chat.error.usage_limit","value":"Message limit reached â try again later or email us at {{email}}"},{"key":"agent_chat.error.usage_limit_no_email","value":"Message limit reached â try again later"},{"key":"agent_chat.error.cost_quota_unhandled","value":"Chat isnât available right nowâemail us at {{email}}"},{"key":"agent_chat.error.cost_quota_unhandled_no_email","value":"Chat isnât available right now"},{"key":"agent_chat.error.cost_quota_handover","value":"AI assistant isnât available right now â our team will reply shortly"},{"key":"agent_chat.history.heading","value":"Chat history"},{"key":"agent_chat.history.loading","value":"Loading conversation history"},{"key":"agent_chat.history.aria_label","value":"Conversation history"},{"key":"agent_chat.history.no_conversations","value":"No conversations"},{"key":"agent_chat.history.conversation.one","value":"conversation"},{"key":"agent_chat.history.conversation.other","value":"conversations"},{"key":"agent_chat.history.error_message","value":"Something went wrong."},{"key":"agent_chat.history.try_again","value":"Try again"},{"key":"agent_chat.history.no_past","value":"No past conversations"},{"key":"agent_chat.history.start_new","value":"Start a new chat"},{"key":"agent_chat.history.untitled","value":"Untitled conversation"},{"key":"agent_chat.history.resume","value":"Resume: {{title}}"},{"key":"agent_chat.history.resume_with_time","value":"Resume: {{title}}, {{time}}"},{"key":"agent_chat.history.delete","value":"Delete conversation: {{title}}"},{"key":"agent_chat.history.delete_failed","value":"Could not delete conversation"},{"key":"agent_chat.feedback.group_label","value":"Message feedback"},{"key":"agent_chat.feedback.thumbs_up","value":"Thumbs up"},{"key":"agent_chat.feedback.thumbs_down","value":"Thumbs down"},{"key":"agent_chat.feedback.add_comment","value":"Add comment"},{"key":"agent_chat.feedback.thanks","value":"Thanks for your feedback"},{"key":"agent_chat.feedback.placeholder_up","value":"Tell us what went well"},{"key":"agent_chat.feedback.placeholder_down","value":"Tell us what could have been better"},{"key":"agent_chat.feedback.comment_label","value":"Feedback comment"},{"key":"agent_chat.feedback.cancel","value":"Cancel"},{"key":"agent_chat.feedback.submit","value":"Submit"},{"key":"agent_chat.feedback.character_count","value":"{{current}}\/{{max}}"},{"key":"agent_chat.feedback.character_limit_reached","value":"Maximum length reached. Feedback is limited to {{max}} characters."},{"key":"agent_chat.buyer_profile.button.open","value":"Buyer Profile"},{"key":"agent_chat.buyer_profile.title","value":"Buyer Profile"},{"key":"agent_chat.buyer_profile.empty","value":"No buyer profile available."},{"key":"agent_chat.buyer_profile.close","value":"Close"},{"key":"agent_chat.suggestions.empty_state_label","value":"Suggested questions"},{"key":"agent_chat.suggestions.quick_reply_label","value":"Suggested replies"},{"key":"agent_chat.auth.sign_in_to_continue","value":"Sign in to continue"},{"key":"agent_chat.auth.sign_in","value":"Sign in"},{"key":"agent_chat.auth.skip_and_chat","value":"Skip and start chatting"},{"key":"agent_chat.auth.pre_chat_title","value":"Sign in to personalize and save your chats"},{"key":"agent_chat.auth.pre_chat_subtitle","value":"Sign in or create an account"},{"key":"agent_chat.auth.staff_chat_required_title","value":"Don't miss a reply"},{"key":"agent_chat.auth.staff_chat_required_subtitle","value":"Sign in to chat with our team. We'll email you if you leave the chat."},{"key":"agent_chat.auth.share_disclaimer","value":"By continuing, Shop will share your name and email with this store. See their {{terms_link}} and {{privacy_link}}"},{"key":"agent_chat.auth.terms_link","value":"terms"},{"key":"agent_chat.auth.privacy_link","value":"privacy policy"},{"key":"agent_chat.auth.declined_pre_chat","value":"I canât connect you with the store unless you sign in."},{"key":"agent_chat.reply_by_email.continuation_prompt","value":"If you leave the chat, weâll email you when thereâs a reply."},{"key":"agent_chat.reply_by_email.sign_in_prompt","value":"Sign in to get emailed when thereâs a reply."},{"key":"agent_chat.order_lookup.track_order","value":"Track my order"},{"key":"agent_chat.order_lookup.track_another_order","value":"Track another order"},{"key":"agent_chat.order_lookup.new_conversation","value":"New conversation"},{"key":"agent_chat.order_lookup.follow_up_label","value":"Order lookup actions"},{"key":"agent_chat.order_lookup.enter_order_information","value":"Enter order information"},{"key":"agent_chat.order_lookup.prompt","value":"To see your order status, please provide your order details."},{"key":"agent_chat.order_lookup.form_title","value":"Track my order"},{"key":"agent_chat.order_lookup.form_subtitle","value":"Please provide your information."},{"key":"agent_chat.order_lookup.order_number_label","value":"Order number"},{"key":"agent_chat.order_lookup.email_label","value":"Email address"},{"key":"agent_chat.order_lookup.submit","value":"Track my order"},{"key":"agent_chat.order_lookup.cancel","value":"Cancel"},{"key":"agent_chat.order_lookup.invalid_order_number","value":"Please enter a valid order number with only numbers and letters, no spaces (e.g. 1006)."},{"key":"agent_chat.order_lookup.invalid_order_number_whitespace","value":"Please enter a valid order number with only numbers and letters, no spaces (e.g. 1006)."},{"key":"agent_chat.order_lookup.invalid_email","value":"Please enter a valid email address"},{"key":"agent_chat.order_lookup.generic_error","value":"There was a problem looking up your order. Please try again."},{"key":"agent_chat.order_lookup.rate_limited_error","value":"Too many attempts. Try again later."},{"key":"agent_chat.order_lookup.locked_composer_status","value":"Order lookup is in progress. Start a new conversation to ask something else."},{"key":"agent_chat.legacy_contact.form_title","value":"Before we get started"},{"key":"agent_chat.legacy_contact.form_subtitle","value":"Please provide your information so we can reply to you if you leave the chat."},{"key":"agent_chat.legacy_contact.first_name_label","value":"First name"},{"key":"agent_chat.legacy_contact.last_name_label","value":"Last name"},{"key":"agent_chat.legacy_contact.email_label","value":"Email"},{"key":"agent_chat.legacy_contact.marketing_opt_in","value":"Email me with news and offers"},{"key":"agent_chat.legacy_contact.submit","value":"Start chat"},{"key":"agent_chat.legacy_contact.cancel","value":"Cancel"}
2355,{"key":"agent_chat.legacy_contact.invalid_first_name","value":"Enter a valid first name."},{"key":"agent_chat.legacy_contact.invalid_last_name","value":"Enter a valid last name."},{"key":"agent_chat.legacy_contact.invalid_email","value":"Enter a valid email address."},{"key":"agent_chat.legacy_contact.invalid_email_length","value":"Email address is too long."},{"key":"agent_chat.legacy_contact.generic_error","value":"Something went wrong."},{"key":"agent_chat.legacy_contact.rate_limited_error","value":"Too many attempts. Try again later."},{"key":"agent_chat.discountCard.useDiscount","value":"Use discount"},{"key":"agent_chat.discountCard.discountApplicationContext","value":"Applies automatically at checkout"},{"key":"agent_chat.cart.checkout","value":"Checkout"},{"key":"agent_chat.product.add_to_cart","value":"Add to cart"},{"key":"agent_chat.product.view_details","value":"View details"},{"key":"agent_chat.product.out_of_stock","value":"Out of stock"},{"key":"agent_chat.product.compare_suggestions","value":"Compare suggestions"},{"key":"agent_chat.product.hide_suggestions","value":"Hide suggestions"},{"key":"agent_chat.product.sold_out","value":"Sold out"},{"key":"agent_chat.order.item.one","value":"item"},{"key":"agent_chat.order.item.other","value":"items"},{"key":"agent_chat.order.less_items.one","value":"- hide {{count}} item"},{"key":"agent_chat.order.less_items.other","value":"- hide {{count}} items"},{"key":"agent_chat.order.more_items.one","value":"+ {{count}} more item"},{"key":"agent_chat.order.more_items.other","value":"+ {{count}} more items"},{"key":"agent_chat.order.view_order","value":"View order {{orderId}}"},{"key":"agent_chat.order.track_shipment","value":"Track shipment"},{"key":"agent_chat.order.of_total","value":"{{index}} of {{total}}"},{"key":"agent_chat.order.label","value":"Order {{number}}"},{"key":"agent_chat.order.count.one","value":"{{count}} Order"},{"key":"agent_chat.order.count.other","value":"{{count}} Orders"},{"key":"agent_chat.order.ordered_on","value":"Ordered {{date}}"},{"key":"agent_chat.order.select","value":"Select order {{number}}"},{"key":"agent_chat.return.heading","value":"Select items to return"},{"key":"agent_chat.return.toggle_item","value":"Select {{name}}"},{"key":"agent_chat.return.select_item_non_returnable","value":"{{name}}, not returnable"},{"key":"agent_chat.return.quantity_label","value":"Return quantity"},{"key":"agent_chat.return.reason_label","value":"Reason for return"},{"key":"agent_chat.return.reason_placeholder","value":"Select a reason"},{"key":"agent_chat.return.confirm","value":"Request return"},{"key":"agent_chat.return.confirmed","value":"Return requested"},{"key":"agent_chat.return.reason.size_too_small","value":"Size too small"},{"key":"agent_chat.return.reason.size_too_large","value":"Size too large"},{"key":"agent_chat.return.reason.unwanted","value":"Unwanted"},{"key":"agent_chat.return.reason.not_as_described","value":"Not as described"},{"key":"agent_chat.return.reason.wrong_item","value":"Wrong item"},{"key":"agent_chat.return.reason.defective","value":"Defective"},{"key":"agent_chat.return.reason.style","value":"Style"},{"key":"agent_chat.return.reason.color","value":"Color"},{"key":"agent_chat.return.reason.other_reason","value":"Other"},{"key":"agent_chat.scroll.previous","value":"Previous"},{"key":"agent_chat.scroll.next","value":"Next"}]}</script>
vendor: 1 bytes, line 2355
2355
2356<script id="shopify-customer-account-data" type="application/json">{"customer":null,"shop":{"id":"61371220129","customerAccountTranslations":[{"key":"account_menu.signed_out_state.sheet_title","value":"Sign in or create account"},{"key":"account_menu.signed_out_state.section_divider","value":"More ways to sign in"},{"key":"account_menu.signed_out_state.alternate_divider","value":"OR"},{"key":"account_menu.signed_out_state.email_field_label","value":"Email"},{"key":"account_menu.signed_out_state.orders_button","value":"Orders"},{"key":"account_menu.signed_out_state.profile_button","value":"Profile"},{"key":"account_menu.signed_out_state.shop_login_button","value":"Sign in with Shop"},{"key":"account_menu.signed_out_state.continue_with_google","value":"Continue with Google"},{"key":"account_menu.signed_out_state.continue_with_facebook","value":"Continue with Facebook"},{"key":"account_menu.signed_out_state.marketing_consent_label","value":"Email me with news and offers"},{"key":"account_menu.signed_in_state.greeting_with_name","value":"Hi, {{first_name}}"},{"key":"account_menu.signed_in_state.greeting_without_name","value":"Account"},{"key":"account_menu.signed_in_state.orders_button","value":"Orders"},{"key":"account_menu.signed_in_state.profile_button","value":"Profile"},{"key":"account_menu.location_picker.sheet_title","value":"Locations"},{"key":"account_menu.location_picker.search_field_placeholder","value":"Search"},{"key":"account_menu.aria_labels.close_menu","value":"Close menu"},{"key":"account_menu.aria_labels.back_to_main_menu","value":"Back to main menu from {{title}}"},{"key":"account_menu.aria_labels.open_submenu","value":"{{title}}, opens submenu"},{"key":"account_menu.aria_labels.loading_menu","value":"Loading menu"},{"key":"account_menu.aria_labels.account","value":"Account"},{"key":"account_menu.aria_labels.sign_in_with_email","value":"Sign in with email"},{"key":"account_menu.aria_labels.sign_in","value":"Sign in"}],"socialLoginProviders":[{"handle":"Shop"}],"legacyCustomerAccounts":false,"signInLinksVisible":true,"b2bEnabled":false,"marketingConsentSigninEnabled":true,"marketingConsentPreselected":true},"visitor":{"country":"US","language":"en"}}</script>
2356 2357<meta name="shopify-y" content="52ac5ce9-d489-44df-bd4a-f5e09930b042" data-expiration="1821862574000"><meta name="shopify-s" content="b6a071b0-5284-4d24-ac65-564f4219eb50" data-expiration="1790306774000"><meta name="new-cookie-storage-activated" content="t"> 2358</head><body class="template-collection product-card-layout-01 banner-animation-1 enable_button_disable_arrows enable_text_color_title hide_compare_homepage quick_shop_option_2 show_image_loading show_effect_close"> 2359 <div class="body-content-wrapper"> 2360 <link href="//www.hiroia.com/cdn/shop/t/143/assets/animated.css?v=125184897263678043851788397935" rel="stylesheet" type="text/css" media="all" /> 2361<link href="//www.hiroia.com/cdn/shop/t/143/assets/component-card.css?v=29958916815108789441788397953" rel="stylesheet" type="text/css" media="all" /> 2362<link href="//www.hiroia.com/cdn/shop/t/143/assets/component-loading-overlay.css?v=170491267859233445071788397978" rel="stylesheet" type="text/css" media="all" /> 2363<link href="//www.hiroia.com/cdn/shop/t/143/assets/component-loading-banner.css?v=149191268642343354681788397977" rel="stylesheet" type="text/css" media="all" /> 2364<link href="//www.hiroia.com/cdn/shop/t/143/assets/component-quick-cart.css?v=69937667527110853341788397996" rel="stylesheet" type="text/css" media="all" /> 2365<link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/vendor.css?v=164616260963476715651788398076" media="print" onload="this.media='all'"> 2366<noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/vendor.css?v=164616260963476715651788398076" rel="stylesheet" type="text/css" media="all" /></noscript> 2367 2368 2369<link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-product-form.css?v=78655431092073622881788397991" media="print" onload="this.media='all'"> 2370 <link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-review.css?v=100129706126506303331788398000" media="print" onload="this.media='all'"> 2371 <link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-price.css?v=139205013722916111901788397989" media="print" onload="this.media='all'"> 2372 <link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-badge.css?v=20633729062276667811788397945" media="print" onload="this.media='all'"> 2373 <link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-rte.css?v=74468535300400368301788398001" media="print" onload="this.media='all'"> 2374 <link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-share.css?v=151802252019812543761788398004" media="print" onload="this.media='all'"><link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-newsletter.css?v=54058530822278129331788397985" media="print" onload="this.media='all'"> 2375<link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-slider.css?v=19377730659263747931788398006" media="print" onload="this.media='all'"> 2376<link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-list-social.css?v=102044711114163579551788397976" media="print" onload="this.media='all'"><noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-product-form.css?v=78655431092073622881788397991" rel="stylesheet" type="text/css" media="all" /></noscript> 2377 <noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-review.css?v=100129706126506303331788398000" rel="stylesheet" type="text/css" media="all" /></noscript> 2378 <noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-price.css?v=139205013722916111901788397989" rel="stylesheet" type="text/css" media="all" /></noscript> 2379 <noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-badge.css?v=20633729062276667811788397945" rel="stylesheet" type="text/css" media="all" /></noscript> 2380 <noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-rte.css?v=74468535300400368301788398001" rel="stylesheet" type="text/css" media="all" /></noscript> 2381 <noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-share.css?v=151802252019812543761788398004" rel="stylesheet" type="text/css" media="all" /></noscript><noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-newsletter.css?v=54058530822278129331788397985" rel="stylesheet" type="text/css" media="all" /></noscript> 2382<noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-slider.css?v=19377730659263747931788398006" rel="stylesheet" type="text/css" media="all" /></noscript> 2383<noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-list-social.css?v=102044711114163579551788397976" rel="stylesheet" type="text/css" media="all" /></noscript> 2384
2384<script src="//www.hiroia.com/cdn/shop/t/143/assets/vendor.js?v=167308307333113337551788398077" type="text/javascript"></script>
vendor: 1 bytes, line 2384
2384
2385<script src="//www.hiroia.com/cdn/shop/t/143/assets/global.js?v=178851783244996131421788398032" type="text/javascript"></script>
vendor: 1 bytes, line 2385
2385
2386<script src="//www.hiroia.com/cdn/shop/t/143/assets/lazysizes.min.js?v=122719776364282065531788398057" type="text/javascript"></script>
2386 2387 2388
2389<script> 2390 window.lazySizesConfig = window.lazySizesConfig || {}; 2391 lazySizesConfig.loadMode = 1; 2392 window.lazySizesConfig.init = false; 2393 lazySizes.init(); 2394 2395 window.rtl_slick = false; 2396 window.mobile_menu = 'default'; 2397 window.money_format = '${{amount}}'; 2398 window.shop_currency = 'USD'; 2399 window.show_multiple_currencies = false; 2400 window.routes = { 2401 root: '', 2402 cart: '/cart', 2403 cart_add_url: '/cart/add', 2404 cart_change_url: '/cart/change', 2405 cart_update_url: '/cart/update', 2406 collection_all: '/collections/all', 2407 predictive_search_url: '/search/suggest', 2408 search_url: '/search' 2409 }; 2410 window.button_load_more = { 2411 default: `Show more`, 2412 loading: `Loading...`, 2413 view_all: `View All Collection`, 2414 no_more: `No More Product` 2415 }; 2416 window.after_add_to_cart = { 2417 type: 'quick_cart', 2418 message: `is added to your shopping cart.` 2419 }; 2420 window.quick_shop = { 2421 show: true, 2422 see_details: `View Full Details`, 2423 }; 2424 window.quick_cart = { 2425 show: false 2426 }; 2427 window.cartStrings = { 2428 error: `There was an error while updating your cart. Please try again.`, 2429 quantityError: `You can only add [quantity] of this item to your cart.`, 2430 addProductOutQuantity: `You can only add [maxQuantity] of this product to your cart`, 2431 addProductOutQuantity2: `The quantity of this product is insufficient.`, 2432 cartErrorMessage: `Translation missing: en.sections.cart.cart_quantity_error_prefix`, 2433 soldoutText: `sold out`, 2434 alreadyText: `all`, 2435 }; 2436 window.variantStrings = { 2437 addToCart: `Add to cart`, 2438 addingToCart: `Adding to cart...`, 2439 addedToCart: `Added to cart`, 2440 submit: `Submit`, 2441 soldOut: `Sold out`, 2442 unavailable: `Unavailable`, 2443 soldOut_message: `This variant is sold out!`, 2444 unavailable_message: `This variant is unavailable!`, 2445 addToCart_message: `You must select at least one products to add!`, 2446 select: `Select Options`, 2447 preOrder: `Pre-Order`, 2448 add: `Add` 2449 }; 2450 window.inventory_text = { 2451 hotStock: `Hurry up! only [inventory] left`, 2452 hotStock2: `Please hurry! Only [inventory] left in stock`, 2453 warningQuantity: `Maximum quantity: [inventory]`, 2454 inStock: `In Stock`, 2455 outOfStock: `Out Of Stock`, 2456 manyInStock: `Many In Stock`, 2457 show_options: `Show Variants`, 2458 hide_options: `Hide Variants`, 2459 adding : `Adding`, 2460 thank_you : `Thank You`, 2461 add_more : `Add More`, 2462 cart_feedback : `Added` 2463 }; 2464 2465 2466 window.notify_me = { 2467 show: false 2468 }; 2469 2470 2471 window.compare = { 2472 show: false, 2473 add: `Add To Compare`, 2474 added: `Added To Compare`, 2475 message: `You must select at least two products to compare!` 2476 }; 2477 window.wishlist = { 2478 show: false, 2479 add: `Add to wishlist`, 2480 added: `Added to wishlist`, 2481 empty: `No product is added to your wishlist`, 2482 continue_shopping: `Continue Shopping` 2483 }; 2484 window.pagination = { 2485 style: 1, 2486 next: `Next`, 2487 prev: `Prev` 2488 } 2489 window.review = { 2490 show: false, 2491 show_quick_view: false 2492 }; 2493 window.countdown = { 2494 text: `Limited-Time Offers, End in:`, 2495 day: `D`, 2496 hour: `H`, 2497 min: `M`, 2498 sec: `S`, 2499 day_2: `Days`, 2500 hour_2: `Hours`, 2501 min_2: `Mins`, 2502 sec_2: `Secs`, 2503 days: `Days`, 2504 hours: `Hours`, 2505 mins: `Mins`, 2506 secs: `Secs`, 2507 d: `d`, 2508 h: `h`, 2509 m: `m`, 2510 s: `s` 2511 }; 2512 window.customer_view = { 2513 text: `[number] customers are viewing this product` 2514 }; 2515 2516 2517 window.arrows = { 2518 icon_next: `<button type="button" class="slick-next" aria-label="Next"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M 7.75 1.34375 L 6.25 2.65625 L 14.65625 12 L 6.25 21.34375 L 7.75 22.65625 L 16.75 12.65625 L 17.34375 12 L 16.75 11.34375 Z"></path></svg></button>`, 2519 icon_prev: `<button type="button" class="slick-prev" aria-label="Previous"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2519<path d="M 7.75 1.34375 L 6.25 2.65625 L 14.65625 12 L 6.25 21.34375 L 7.75 22.65625 L 16.75 12.65625 L 17.34375 12 L 16.75 11.34375 Z"></path></svg></button>` 2520 } 2521 2522 2523 window.dynamic_browser_title = { 2524 show: true, 2525 text: 'Hiroia Coffee' 2526 }; 2527 2528 window.show_more_btn_text = { 2529 show_more: `Show More`, 2530 show_less: `Show Less`, 2531 show_all: `Show All`, 2532 }; 2533 2534 function getCookie(cname) { 2535 let name = cname + "="; 2536 let decodedCookie = decodeURIComponent(document.cookie); 2537 let ca = decodedCookie.split(';'); 2538 for(let i = 0; i <ca.length; i++) { 2539 let c = ca[i]; 2540 while (c.charAt(0) == ' ') { 2541 c = c.substring(1); 2542 } 2543 if (c.indexOf(name) == 0) { 2544 return c.substring(name.length, c.length); 2545 } 2546 } 2547 return ""; 2548 } 2549 2550 const cookieAnnouncemenClosed = getCookie('announcement'); 2551 window.announcementClosed = cookieAnnouncemenClosed === 'closed' 2552</script>
2552 2553 <a class="skip-to-content-link button visually-hidden" href="#MainContent"> 2554 Skip to content 2555 </a> 2556 2557 <div id="shopify-section-announcement-bar" class="shopify-section"><div class="announcement-bar" role="region" aria-label="Announcement" style="opacity: 0; visibility: hidden;"> 2558
2558<script> 2559 if (window.announcementClosed) { 2560 document.querySelector('.announcement-bar').remove(); 2561 } 2562 </script>
2562 2563 <div class="container layout--slider"> 2564 <div class="row" ><div class="announcement-bar__message text-center" id="fb1aae13-a3b7-4820-b495-6091176e7231" 2565 style="--button-color-style: #232323; 2566 --button-border-style: #ffffff; 2567 --button-background-style: #ffffff"> 2568 <p>FREE SHIPPING ON ALL ORDERS OVER $200 USD !</p> 2569 </div></div> 2570 2571 2572 </div> 2573 </div> 2574 2575 <style type="text/css"> 2576 .announcement-bar { 2577 padding-top: 0px; 2578 padding-bottom: 0px; 2579 2580 background: #232323; 2581 2582 } 2583 2584 .banner-animation-1 .announcement-bar { 2585 transition: opacity 250ms ease-in; 2586 } 2587 2588 @keyframes SlideLeft { 2589 0% { 2590 transform: translate3d(0,0,0); 2591 } 2592 2593 100% { 2594 transform: translate3d(-100%,0,0); 2595 } 2596 } 2597 2598 .announcement-bar .layout--scroll { 2599 max-width: 100%; 2600 padding-left: 0; 2601 padding-right: 0; 2602 overflow: hidden; 2603 text-align: right; 2604 } 2605 2606 .header-full-width #shopify-section-announcement-bar .announcement-bar .layout--scroll { 2607 padding-left: 0; 2608 padding-right: 0; 2609 } 2610 2611 .announcement-bar .layout--scroll .row { 2612 display: inline-block; 2613 text-align: left; 2614 white-space: nowrap; 2615 } 2616 2617 .announcement-bar__item-scroll { 2618 display: inline-block; 2619 animation: SlideLeft s infinite linear; 2620 } 2621 2622 .announcement-bar .layout--scroll:hover .announcement-bar__item-scroll, 2623 .announcement-bar .layout--scroll:focus .announcement-bar__item-scroll { 2624 animation-play-state: paused; 2625 } 2626 2627 .announcement-bar .layout--scroll .announcement-bar__message { 2628 width: auto; 2629 vertical-align: middle; 2630 } 2631 2632 .announcement-bar .layout--scroll .announcement-bar__message .message, .announcement-bar .layout--scroll .announcement-bar__message p { 2633 padding: 5px 12.5px; 2634 } 2635 2636 .announcement-bar .announcement-bar__message svg { 2637 display: inline-block; 2638 vertical-align: middle; 2639 width: 16px; 2640 height: 16px; 2641 } 2642 2643 .announcement-bar .layout--scroll .announcement-bar__message .underline { 2644 text-decoration: underline; 2645 text-decoration-thickness: 1px; 2646 text-underline-offset: 4px; 2647 } 2648 2649 .announcement-bar__message, .announcement-bar__message .message, .announcement-bar__message a, .announcement-bar__message p, .top-mesage-countdown { 2650 color: #ffffff; 2651 font-size: 12px; 2652 font-style: normal; 2653 font-weight: 500; 2654 2655 letter-spacing: 0; 2656 2657 } 2658 2659 .announcement-bar .announcement-close.hasCountDown { 2660 width: 21px; 2661 height: 21px; 2662 } 2663 2664 .announcement-bar .announcement-close svg { 2665 fill: #ffffff; 2666 } 2667 2668 .announcement-bar .announcement-countdown .clock-item{ 2669 color: var(--countdown-text-color); 2670 border: 1px solid var(--countdown-text-border); 2671 background-color: var(--countdown-text-background); 2672 } 2673 2674 .announcement-bar .announcement-countdown .clock-item:before{ 2675 color: #ffffff; 2676 } 2677 2678 2679 2680 .announcement-bar .layout--slider .announcement-bar__message{ 2681 display: none; 2682 } 2683 2684 .announcement-bar .layout--slider .announcement-bar__message:first-child{ 2685 display: inline-block; 2686 } 2687 2688 .announcement-bar .slick-slider .announcement-bar__message{ 2689 display: inline-block; 2690 } 2691 2692 @media (max-width: 1400px){ 2693 2694 } 2695 2696 @media (max-width: 1199px){ 2697 2698 } 2699 2700 @media (max-width: 1024px){ 2701 .announcement-bar .announcement-countdown+.announcement-close{ 2702 top: 20%; 2703 } 2704 2705 .announcement-bar__message .message.font-size-mb { 2706 font-size: calc(12px - 2px); 2707 } 2708 } 2709 2710 @media (max-width: 551px){ 2711 2712 2713 2714 2715 .announcement-bar__message .message.font-size-mb { 2716 font-size: calc(12px - 4px); 2717 } 2718 } 2719 2720 </style> 2721 2722 2723</div> 2724<div id="shopify-section-header" class="shopify-section"><link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-list-menu.css?v=179060022243118608441788397975" media="all" onload="this.media='all'"> 2725<link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-search.css?v=84546637373254493441788398002" media="all" onload="this.media='all'"> 2726<link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-menu-drawer.css?v=129825298568141628341788397982" media="all" onload="this.media='all'"> 2727<link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-megamenu.css?v=135995261329381923121788397982" media="all" onload="this.media='all'"> 2728<link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-menu-mobile.css?v=111834151877538828191788397983" media="all" onload="this.media='all'"> 2729 2730<!-- 客製åheader css --> 2731<link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/header-custom.css?v=76438166221359507611788398051" media="all" onload="this.media='all'"> 2732 2733<noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-list-menu.css?v=179060022243118608441788397975" rel="stylesheet" type="text/css" media="all" /></noscript> 2734<noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-search.css?v=84546637373254493441788398002" rel="stylesheet" type="text/css" media="all" /></noscript> 2735<noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-menu-drawer.css?v=129825298568141628341788397982" rel="stylesheet" type="text/css" media="all" /></noscript> 2736<noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-megamenu.css?v=135995261329381923121788397982" rel="stylesheet" type="text/css" media="all" /></noscript> 2737<noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-menu-mobile.css?v=111834151877538828191788397983" rel="stylesheet" type="text/css" media="all" /></noscript> 2738 2739<style>.header-top{ 2740 display: none; 2741 2742 background: #ffffff; 2743 2744 } 2745 2746 .search_details .search-modal__form { 2747 background-color: #fafafa; 2748 border-bottom: 1px solid #e7e7e7; 2749 } 2750 2751 .search_details .search-modal__form .search__input { 2752 color: #323232; 2753 } 2754 2755 .search_details .search-modal__form ::-webkit-input-placeholder { 2756 color: #323232; 2757 } 2758 2759 .search_details .search-modal__form ::-moz-placeholder { 2760 color: #323232; 2761 } 2762 2763 .search_details .search-modal__form :-ms-input-placeholder { 2764 color: #323232; 2765 } 2766 2767 .search_details .search-modal__form :-moz-placeholder { 2768 color: #323232; 2769 } 2770 2771 .search_details .search-modal__form .search__button { 2772 color: #323232; 2773 } 2774 2775 .header-top--right .free-shipping-text { 2776 color: #232323; 2777 } 2778 2779 .halo-top-language .text, .halo-top-currency .text, .halo-top-language .text
2779+svg, .halo-top-currency .text+svg { 2780 color: #232323; 2781 } 2782 2783 .halo-currency .currency-menu .dropdown-item .text:before { 2784 background: #232323; 2785 } 2786 2787 .dropdown-language .localization-form .disclosure__link.disclosure__link--active, 2788 .dropdown-language .localization-form .disclosure__link:hover { 2789 color: #232323; 2790 } 2791 2792 .header-top-right-group .customer-service-text, .header-top-right-group .customer-service-text a{ 2793 color: #323232; 2794 } 2795 2796 .cart-text, .customer-links, .wishlist-text, .customer-links a { 2797 color: #323232; 2798 } 2799 2800 .header__icon--cart .cart-count-bubble, .bottom-bar--list .cart-count-bubble { 2801 background-color: #ffe5e8; 2802 color: #323232; 2803 } 2804 2805 .header-bottom{ 2806 display: none; 2807 2808 background: #ffffff; 2809 2810 } 2811 2812 .nazbrandsLink .link{ 2813 color: #000000; 2814 } 2815 2816 2817 .header__icon .icon{ 2818 fill: #323232; 2819 } 2820 2821 2822 2823 .header-mobile{ 2824 background-color: #ffffff; 2825 } 2826 2827 .header-mobile .header__icon .icon{ 2828 fill: #000000; 2829 } 2830 2831 2832 .header-mobile .header__heading .h2{ 2833 font-size: calc(var(--font-body-size) + 4px); 2834 font-weight: var(--font-weight-bold); 2835 color: #000000; 2836 } 2837 2838 .mobileMenu-toggle__Icon, 2839 .mobileMenu-toggle__Icon::before, 2840 .mobileMenu-toggle__Icon::after{ 2841 background-color: #000000; 2842 } 2843 2844 .menu-drawer__close-button{ 2845 font-size: px; 2846 font-weight: ; 2847 color: #030303; 2848 text-transform: ; 2849 } 2850 2851 .menu-lv-1__action{ 2852 color: #030303; 2853 } 2854 2855 .menu-lv-2__action{ 2856 color: #232323; 2857 } 2858 2859 .menu-lv-3__action{ 2860 color: #3c3c3c; 2861 } 2862 2863 .menu-lv-item.menu-lv-1:hover > a > .text { 2864 border-bottom: 1px solid #ffffff; 2865 } 2866 2867 .menu-lv-item.menu-lv-2:hover > a > .text{ 2868 border-bottom: 1px solid #232323; 2869 } 2870 2871 .menu-lv-item.menu-lv-3:hover > a > .text,.site-nav-link:hover .text{ 2872 border-bottom: 1px solid #3c3c3c; 2873 } 2874 2875 .site-nav-title, .site-nav-title a, .menu-dropdown__block--title, .azbrandsTable .link{ 2876 color: #232323; 2877 } 2878 2879 .site-nav-link{ 2880 color: #3c3c3c; 2881 } 2882 2883 .fixed-right .header__icon .icon{ 2884 color: #030303; 2885 fill: #030303; 2886 }.menu-lv-1 .label.new-label, 2887 .menu-drawer__menu-item .label.new-label{ 2888 color: #ffffff; 2889 background: #06bfe2; 2890 } 2891 2892 .menu-lv-1 .label.new-label:before{ 2893 border-bottom-color: #06bfe2; 2894 } 2895 2896 .menu-drawer__menu-item .label.new-label:before{ 2897 border-right-color: #06bfe2; 2898 } 2899 2900 .menu-lv-1 .label.sale-label, 2901 .menu-drawer__menu-item .label.sale-label{ 2902 color: #ffffff; 2903 background: #ef6454; 2904 } 2905 2906 .menu-lv-1 .label.sale-label:before{ 2907 border-bottom-color: #ef6454; 2908 } 2909 2910 .menu-drawer__menu-item .label.sale-label:before{ 2911 border-right-color: #ef6454; 2912 } 2913 2914 .menu-lv-1 .label.hot-label, 2915 .menu-drawer__menu-item .label.hot-label{ 2916 color: #ffffff; 2917 background: #ffbb49; 2918 } 2919 2920 .menu-lv-1 .label.hot-label:before{ 2921 border-bottom-color: #ffbb49; 2922 } 2923 2924 .menu-drawer__menu-item .label.hot-label:before{ 2925 border-right-color: #ffbb49; 2926 }.menu--mobile-lv-1__action > .icon{ 2927 fill: #030303; 2928 } 2929 2930 2931 .menu-dropdown__text a.active-sale { 2932 color: #d12442; 2933 } 2934 .menu-sale > .menu-lv-1__action, 2935 .menu-sale > details > .menu--mobile-lv-1__action, 2936 .menu-sale > .menu-lv-2__action, 2937 .menu-sale > .menu-lv-3__action, 2938 .menu-sale > details > .menu--mobile-lv-2__action, 2939 .menu-sale > .menu--mobile-lv-3__action, 2940 .active-sale > .site-nav-link, 2941 .active-sale.site-nav-title{ 2942 color: #d12442!important; 2943 } 2944 2945 .menu-sale:hover > .menu-lv-1__action .text, 2946 .menu-sale:hover > details > .menu--mobile-lv-1__action .text, 2947 .menu-sale:hover > .menu-lv-2__action .text, 2948 .menu-sale:hover > .menu-lv-3__action .text, 2949 .menu-sale:hover > details > .menu--mobile-lv-2__action .text, 2950 .menu-sale:hover > .menu--mobile-lv-3__action .text, 2951 .active-sale:hover > .site-nav-link .text, 2952 .active-sale.site-nav-title:hover .text{ 2953 border-bottom: 1px solid #d12442!important; 2954 } 2955 2956 .menu-sale > .menu--mobile-lv-1__action > .icon{ 2957 fill: #d12442!important; 2958 } 2959 2960 2961 /*.header .menu-lv-item.has-megamenu .menu-dropdown{ 2962 display: none; 2963 }*/ 2964 2965 @media screen and (max-width: 1024px) { 2966 2967 .site-nav-mobile .menu-lv-1__action{ 2968 color: #000000; 2969 } 2970 .site-nav-mobile .menu-lv-2__action, .site-nav-mobile .site-nav-title, .site-nav-mobile .site-nav-title a{ 2971 color: #000000; 2972 } 2973 .site-nav-mobile .menu-lv-3__action, .site-nav-mobile .site-nav-link{ 2974 color: #000000; 2975 } 2976 .menu-lv-item.menu-lv-1:hover > a > .text,.menu-lv-item.menu-lv-2:hover > a > .text,.menu-lv-item.menu-lv-3:hover > a > .text{ 2977 border-bottom: 0; 2978 } 2979 } 2980 2981 @media screen and (min-width: 1025px) { 2982 .header-top, 2983 .header-bottom{ 2984 display: block; 2985 } 2986 2987 .header-mobile { 2988 display: none; 2989 } 2990 2991 .header-top--right{ 2992 width: calc(100% - (150px)); 2993 } 2994 2995 .header-top--left{ 2996 width: 150px; 2997 } 2998 2999 .header__heading .h2{ 3000 font-size: 30px; 3001 font-weight: 400; 3002 3003 color: #ffffff; 3004 3005 } 3006 3007 3008 3009 .menu-lv-1:hover .menu-lv-1__action{ 3010 color: #ffffff; 3011 } 3012 3013 .menu-lv-2:hover .menu-lv-2__action{ 3014 color: #232323; 3015 } 3016 3017 .menu-lv-3:hover .menu-lv-3__action{ 3018 color: #3c3c3c; 3019 } 3020 3021 .site-nav-title:hover, .site-nav-title a:hover,.menu-dropdown__block--title:hover{ 3022 color: #232323; 3023 } 3024 3025 .site-nav-link:hover{ 3026 color: #3c3c3c; 3027 } 3028 3029 .megamenu_style_4 .site-nav-banner, 3030 .megamenu_style_4 .site-nav-banner:before, 3031 .megamenu_style_4 .site-nav-banner:after, 3032 .megamenu_style_5 .site-nav-banner, 3033 .megamenu_style_5 .site-nav-banner:before, 3034 .megamenu_style_5 .site-nav-banner:after{ 3035 background-color: #f8f8f8; 3036 } 3037 3038 .header .has-megamenu .menu-dropdown{ 3039 background-color: ; 3040 } 3041 3042 .quickSearchResults .card-swatch .swatch-label{ 3043 width: 24px; 3044 height: 24px; 3045 } 3046 3047 .quickSearchResults .card-swatch .number-showmore{ 3048 width: 24px; 3049 height: 24px;
3050 line-height: 26px; 3051 } 3052 3053 .quickSearchResults .card-swatch .number-showmore span.text-number { 3054 top: 0px; 3055 } 3056 } 3057</style> 3058
3059<script src="//www.hiroia.com/cdn/shop/t/143/assets/details-disclosure.js?v=93212506302784624691788398022" defer="defer"></script>
3059 3060 3061<sticky-header class="header-wrapper" data-hide-on-scroll=false> 3062 <header class="header header-01 header--has-menu" style="--icon-mobile-spacing: 10px;"> 3063 <div class="header-top"> 3064 <div class="container"> 3065 <div class="header-top--wrapper"> 3066 <div class="header-top--left header__logo text-left clearfix"><div class="header__heading"><a href="/" class="header__heading-link focus-inset"><img srcset="//www.hiroia.com/cdn/shop/files/Hiroia_logo_Final-08_edited_150x.png?v=1654135916 1x, //www.hiroia.com/cdn/shop/files/[email protected]?v=1654135916 2x" 3067 src="//www.hiroia.com/cdn/shop/files/Hiroia_logo_Final-08_edited_150x.png?v=1654135916" 3068 loading="lazy" 3069 class="header__heading-logo" 3070 alt="Hiroia" 3071 width="150" 3072 height="50.33653846153847"></a></div></div> 3073 <div class="header-top--right header__icons text-right clearfix"> 3074 <div class="header-top-right-group header-language_currency"> 3075 3076 <div class="top-language-currency"> 3077 3078 <div class="halo-top-language"> 3079 <div class="disclosure"> 3080 3081 3082 <button type="button" class="disclosure__button dropdown-toggle localization-form__select localization-selector link link--text caption-large" aria-controls="HeaderLanguageList" aria-describedby="HeaderLanguageLabel"> 3083 <span class="icon"> 3084 3085 </span> 3086 <span class="text text-language"> 3087 English 3088 </span> 3089 3090 <svg xmlns="http://www.w3.org/2000/svg" id="Capa_1" enable-background="new 0 0 551.13 551.13" height="512" viewBox="0 0 551.13 551.13" width="512"><path d="m275.565 361.679-223.897-223.896h-51.668l275.565 275.565 275.565-275.565h-51.668z"/></svg> 3091 3092 </button> 3093 </div> 3094 3095 <div class="dropdown-language"> 3096 3097 <div class="halo-language"> 3098 <link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/disclosure.css?v=39954821399009248211788398024" media="all" onload="this.media='all'"> 3099 <noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/disclosure.css?v=39954821399009248211788398024" rel="stylesheet" type="text/css" media="all" /></noscript><localization-form> 3100 <div class="no-js-hidden"> 3101 <div class="disclosure"> 3102 <p class="title" id="HeaderLanguageLabel">Language</p> 3103 <ul id="HeaderLanguageList" role="list" class="disclosure__list list-unstyled custom-scrollbar"> 3104 3105 <li class="disclosure__item" tabindex="-1"> 3106 <a 3107 class="link link--text disclosure__link cross-domain-lang-link disclosure__link--active focus-inset" 3108 href="https://www.hiroia.com/collections/all-products" 3109 hreflang="en" 3110 lang="en" 3111 data-value="en" 3112 data-lang-code="en" 3113 data-base-href="https://www.hiroia.com/collections/all-products" 3114 aria-current="true"> 3115 <span class="icon"></span> 3116 <span class="text">English</span> 3117 </a> 3118 </li> 3119 3120 <li class="disclosure__item" tabindex="-1"> 3121 <a 3122 class="link link--text disclosure__link cross-domain-lang-link focus-inset" 3123 href="https://www.hiroia.com/ja/collections/all-products" 3124 hreflang="ja" 3125 lang="ja" 3126 data-value="ja" 3127 data-lang-code="ja" 3128 data-base-href="https://www.hiroia.com/ja/collections/all-products" 3129 > 3130 <span class="icon"></span> 3131 <span class="text">æ¥æ¬èª</span> 3132 </a> 3133 </li> 3134 3135 <li class="disclosure__item" tabindex="-1"> 3136 <a 3137 class="link link--text disclosure__link cross-domain-lang-link focus-inset" 3138 href="https://hiroia.com.tw/collections/all-products" 3139 hreflang="zh-TW" 3140 lang="zh-TW" 3141 data-value="zh-TW" 3142 data-lang-code="zh-TW" 3143 data-base-href="https://hiroia.com.tw/collections/all-products">
3144 <span class="icon"></span> 3145 <span class="text">ç¹é«ä¸æ</span> 3146 </a> 3147 </li> 3148 3149 </ul> 3150 </div> 3151 </div> 3152 </localization-form> 3153 3154
3154<script> 3155 // Decorate cross-domain language links with current query string + hash, 3156 // so utm params, variant selections, etc. carry across. 3157 (function () { 3158 var qs = window.location.search || ''; 3159 var hash = window.location.hash || ''; 3160 if (!qs && !hash) return; 3161 var links = document.querySelectorAll('.cross-domain-lang-link'); 3162 for (var i = 0; i < links.length; i++) { 3163 var base = links[i].getAttribute('data-base-href') || links[i].getAttribute('href'); 3164 links[i].setAttribute('href', base + qs + hash); 3165 } 3166 })(); 3167 </script>
3167 3168 3169
3169<script src="//www.hiroia.com/cdn/shop/t/143/assets/halo-languages.js?v=115902088612076064991788398036" defer="defer"></script>
3169 3170</div> 3171 3172 3173 </div> 3174 3175</div> 3176 3177 3178 </div> 3179 3180 3181 3182 3183 </div> 3184 3185 3186 <div class="header__iconItem header__group"><a href="/cart" class="header__icon header__icon--cart link link--text focus-inset" id="cart-icon-bubble"> 3187 <svg viewBox="0 0 30 30" class="icon icon-cart" enable-background="new 0 0 30 30"> 3188 <g> 3189 <g> 3190 <path d="M20,6V5c0-2.761-2.239-5-5-5s-5,2.239-5,5v1H4v24h22V6H20z M12,5c0-1.657,1.343-3,3-3s3,1.343,3,3v1h-6V5z M24,28H6V8h4v3 h2V8h6v3h2V8h4V28z"></path> 3191 </g> 3192 </g> 3193</svg> 3194 <span class="cart-text">Shopping Cart</span> 3195 <div class="cart-count-bubble"><span class="text" aria-hidden="true" data-cart-count>0</span><span class="visually-hidden">0 items</span> 3196 </div> 3197 </a><div class="customer-links"> 3198 3199 3200 <a class="header__link--account" id="customer_login_link" href="https://www.hiroia.com/customer_authentication/redirect?locale=en®ion_country=US" > 3201 Sign In 3202 </a> 3203 3204 3205 </div></div> 3206 3207 </div> 3208 </div> 3209 </div> 3210 </div> 3211 <div class="header-bottom"> 3212 3213 <div class="header__logo header__logo_fixed fixed-left"> 3214 <div class="header__heading"> 3215 <a href="/" class="header__heading-link focus-inset"></a> 3216 </div> 3217 </div> 3218 3219 <div class="main-menu fixed-center"> 3220 <div class="container"> 3221 <div class="header-bottom--wrapper" id="HeaderNavigation"><nav class="header__inline-menu" data-navigation role="navigation"> 3222 <div class="menu-heading-mobile halo-sidebar-header"> 3223 <span class="title">Menu</span> 3224 <button type="button" class="halo-sidebar-close" data-menu-close-sidebar aria-label="Close"> 3225 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 3226 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 3227</svg> 3228 Close 3229 </button> 3230</div> 3231 3232<ul class="list-menu list-menu--inline text-left" role="list"><li class="menu-lv-item menu-lv-1 text-left no-megamenu dropdown "><a class="menu-lv-1__action header__menu-item list-menu__item link focus-inset menu_mobile_link" href="/collections/all-products"> 3233 <span class="text"> 3234 Brewers 3235 </span> 3236 <span class="icon-dropdown" data-toggle-menu-mb=""> 3237 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret"> 3238 <path d="M 7.75 1.34375 L 6.25 2.65625 L 14.65625 12 L 6.25 21.34375 L 7.75 22.65625 L 16.75 12.65625 L 17.34375 12 L 16.75 11.34375 Z"></path> 3239</svg> 3240 </span></a> 3241 <ul class="header__submenu list-menu list-menu--disclosure list-menu--disclosure-1 caption-large motion-reduce" role="list" > 3242 <div class="nav-title-mobile text-center"> 3243 <span class="icon-dropdown"> 3244 <svg aria-hidden="true" focusable="false" data-prefix="fal" data-icon="long-arrow-left" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" class="icon-arrow-nav">
3244<path fill="currentColor" d="M136.97 380.485l7.071-7.07c4.686-4.686 4.686-12.284 0-16.971L60.113 273H436c6.627 0 12-5.373 12-12v-10c0-6.627-5.373-12-12-12H60.113l83.928-83.444c4.686-4.686 4.686-12.284 0-16.971l-7.071-7.07c-4.686-4.686-12.284-4.686-16.97 0l-116.485 116c-4.686 4.686-4.686 12.284 0 16.971l116.485 116c4.686 4.686 12.284 4.686 16.97-.001z" class=""></path></svg> 3245 </span> 3246 Brewers 3247 </div> 3248 <li class="menu-lv-item menu-lv-2 text-left navigation_all_mobile"> 3249 <a href="/collections/all-products" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3250 <span class="text"> 3251 Go to Brewers 3252 </span> 3253 </a> 3254 </li> 3255 <li class="menu-lv-item menu-lv-2 text-left menu-lv-blink"><a href="/products/hikaru" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3256 <span class="text"> 3257 Hikaru Brewer 3258 </span></a></li> 3259 <li class="menu-lv-item menu-lv-2 text-left menu-lv-blink"><a href="/products/samantha" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3260 <span class="text"> 3261 Samantha Brewer 3262 </span></a></li> 3263 <li class="menu-lv-item menu-lv-2 text-left menu-lv-blink"><a href="/products/samantha-ii" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3264 <span class="text"> 3265 Samantha II Brewer 3266 </span></a></li></ul></li> 3267<li class="menu-lv-item menu-lv-1 text-left no-megamenu dropdown "><a class="menu-lv-1__action header__menu-item list-menu__item link focus-inset menu_mobile_link" href="/collections/all-products"> 3268 <span class="text"> 3269 Scale 3270 </span> 3271 <span class="icon-dropdown" data-toggle-menu-mb=""> 3272 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret"> 3273 <path d="M 7.75 1.34375 L 6.25 2.65625 L 14.65625 12 L 6.25 21.34375 L 7.75 22.65625 L 16.75 12.65625 L 17.34375 12 L 16.75 11.34375 Z"></path> 3274</svg> 3275 </span></a> 3276 <ul class="header__submenu list-menu list-menu--disclosure list-menu--disclosure-1 caption-large motion-reduce" role="list" > 3277 <div class="nav-title-mobile text-center"> 3278 <span class="icon-dropdown"> 3279 <svg aria-hidden="true" focusable="false" data-prefix="fal" data-icon="long-arrow-left" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" class="icon-arrow-nav"><path fill="currentColor" d="M136.97 380.485l7.071-7.07c4.686-4.686 4.686-12.284 0-16.971L60.113 273H436c6.627 0 12-5.373 12-12v-10c0-6.627-5.373-12-12-12H60.113l83.928-83.444c4.686-4.686 4.686-12.284 0-16.971l-7.071-7.07c-4.686-4.686-12.284-4.686-16.97 0l-116.485 116c-4.686 4.686-4.686 12.284 0 16.971l116.485 116c4.686 4.686 12.284 4.686 16.97-.001z" class=""></path></svg> 3280 </span> 3281 Scale 3282 </div> 3283 <li class="menu-lv-item menu-lv-2 text-left navigation_all_mobile"> 3284 <a href="/collections/all-products" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3285 <span class="text"> 3286 Go to Scale 3287 </span> 3288 </a> 3289 </li> 3290 <li class="menu-lv-item menu-lv-2 text-left menu-lv-blink"><a href="/products/jimmy" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large">
3291 <span class="text"> 3292 Jimmy Coffee Scale 3293 </span></a></li> 3294 <li class="menu-lv-item menu-lv-2 text-left menu-lv-blink"><a href="/products/jimmy-protective-pad" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3295 <span class="text"> 3296 Jimmy with Protective Pad Bundle 3297 </span></a></li></ul></li> 3298<li class="menu-lv-item menu-lv-1 text-left no-megamenu dropdown "><a class="menu-lv-1__action header__menu-item list-menu__item link focus-inset menu_mobile_link" href="/collections/all-products"> 3299 <span class="text"> 3300 Grinders 3301 </span> 3302 <span class="icon-dropdown" data-toggle-menu-mb=""> 3303 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret"> 3304 <path d="M 7.75 1.34375 L 6.25 2.65625 L 14.65625 12 L 6.25 21.34375 L 7.75 22.65625 L 16.75 12.65625 L 17.34375 12 L 16.75 11.34375 Z"></path> 3305</svg> 3306 </span></a> 3307 <ul class="header__submenu list-menu list-menu--disclosure list-menu--disclosure-1 caption-large motion-reduce" role="list" > 3308 <div class="nav-title-mobile text-center"> 3309 <span class="icon-dropdown"> 3310 <svg aria-hidden="true" focusable="false" data-prefix="fal" data-icon="long-arrow-left" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" class="icon-arrow-nav"><path fill="currentColor" d="M136.97 380.485l7.071-7.07c4.686-4.686 4.686-12.284 0-16.971L60.113 273H436c6.627 0 12-5.373 12-12v-10c0-6.627-5.373-12-12-12H60.113l83.928-83.444c4.686-4.686 4.686-12.284 0-16.971l-7.071-7.07c-4.686-4.686-12.284-4.686-16.97 0l-116.485 116c-4.686 4.686-4.686 12.284 0 16.971l116.485 116c4.686 4.686 12.284 4.686 16.97-.001z" class=""></path></svg> 3311 </span> 3312 Grinders 3313 </div> 3314 <li class="menu-lv-item menu-lv-2 text-left navigation_all_mobile"> 3315 <a href="/collections/all-products" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3316 <span class="text"> 3317 Go to Grinders 3318 </span> 3319 </a> 3320 </li> 3321 <li class="menu-lv-item menu-lv-2 text-left menu-lv-blink"><a href="/products/edge" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3322 <span class="text"> 3323 EDGE Titanium Grinder 3324 </span></a></li> 3325 <li class="menu-lv-item menu-lv-2 text-left menu-lv-blink"><a href="/products/edge-mini-grinder" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3326 <span class="text"> 3327 EDGE Mini+ Grinder 3328 </span></a></li> 3329 <li class="menu-lv-item menu-lv-2 text-left menu-lv-blink"><a href="/products/go50-titanium-grinder" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3330 <span class="text"> 3331 GO50 Titanium Grinder 3332 </span></a></li></ul></li> 3333<li class="menu-lv-item menu-lv-1 text-left no-megamenu dropdown "><a class="menu-lv-1__action header__menu-item list-menu__item link focus-inset menu_mobile_link" href="/collections/all-products"> 3334 <span class="text"> 3335 Accessories 3336 </span> 3337 <span class="icon-dropdown" data-toggle-menu-mb=""> 3338 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret"> 3339 <path d="M 7.75 1.34375 L 6.25 2.65625 L 14.65625 12 L 6.25 21.34375 L 7.75 22.65625 L 16.75 12.65625 L 17.34375 12 L 16.75 11.34375 Z"></path> 3340</svg> 3341 </span></a> 3342 <ul class="header__submenu list-menu list-menu--disclosure list-menu--disclosure-1 caption-large motion-reduce" role="list" > 3343 <div class="nav-title-mobile text-center">
3344 <span class="icon-dropdown"> 3345 <svg aria-hidden="true" focusable="false" data-prefix="fal" data-icon="long-arrow-left" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" class="icon-arrow-nav"><path fill="currentColor" d="M136.97 380.485l7.071-7.07c4.686-4.686 4.686-12.284 0-16.971L60.113 273H436c6.627 0 12-5.373 12-12v-10c0-6.627-5.373-12-12-12H60.113l83.928-83.444c4.686-4.686 4.686-12.284 0-16.971l-7.071-7.07c-4.686-4.686-12.284-4.686-16.97 0l-116.485 116c-4.686 4.686-4.686 12.284 0 16.971l116.485 116c4.686 4.686 12.284 4.686 16.97-.001z" class=""></path></svg> 3346 </span> 3347 Accessories 3348 </div> 3349 <li class="menu-lv-item menu-lv-2 text-left navigation_all_mobile"> 3350 <a href="/collections/all-products" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3351 <span class="text"> 3352 Go to Accessories 3353 </span> 3354 </a> 3355 </li> 3356 <li class="menu-lv-item menu-lv-2 text-left menu-lv-blink"><a href="/products/coffee-grind-size-card" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3357 <span class="text"> 3358 Coffee grind size card 3359 </span></a></li> 3360 <li class="menu-lv-item menu-lv-2 text-left menu-lv-blink"><a href="/products/protective-pad" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3361 <span class="text"> 3362 Jimmy Protective Pad 3363 </span></a></li> 3364 <li class="menu-lv-item menu-lv-2 text-left menu-lv-blink"><a href="/products/100g-calibration-weight" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3365 <span class="text"> 3366 100g Calibration Weight 3367 </span></a></li> 3368 <li class="menu-lv-item menu-lv-2 text-left dropdown menu-lv-blink"><div class="site-nav-list-dropdown"> 3369 <a class="menu-lv-2__action header__menu-item link link--text list-menu__item focus-inset caption-large menu_mobile_link_2 has-icon" href="/pages/ceramicware"> 3370 <span class="text"> 3371 Ceramic Ware 3372 </span> 3373 <span class="icon-dropdown" data-toggle-menu-mb=""> 3374 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret"> 3375 <path d="M 7.75 1.34375 L 6.25 2.65625 L 14.65625 12 L 6.25 21.34375 L 7.75 22.65625 L 16.75 12.65625 L 17.34375 12 L 16.75 11.34375 Z"></path> 3376</svg> 3377 </span></a> 3378 <ul class="header__submenu list-menu--disclosure list-menu--disclosure-2 list-menu motion-reduce"> 3379 <div class="nav-title-mobile text-center"> 3380 <span class="icon-dropdown"> 3381 <svg aria-hidden="true" focusable="false" data-prefix="fal" data-icon="long-arrow-left" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" class="icon-arrow-nav"><path fill="currentColor" d="M136.97 380.485l7.071-7.07c4.686-4.686 4.686-12.284 0-16.971L60.113 273H436c6.627 0 12-5.373 12-12v-10c0-6.627-5.373-12-12-12H60.113l83.928-83.444c4.686-4.686 4.686-12.284 0-16.971l-7.071-7.07c-4.686-4.686-12.284-4.686-16.97 0l-116.485 116c-4.686 4.686-4.686 12.284 0 16.971l116.485 116c4.686 4.686 12.284 4.686 16.97-.001z" class=""></path></svg> 3382 </span> 3383 Accessories 3384 </div> 3385 <li class="menu-lv-item menu-lv-3 text-left navigation_all_mobile"> 3386 <a href="/pages/ceramicware" class="menu-lv-3__action header__menu-item list-menu__item link link--text focus-inset caption-large"}>
3387 <span class="text"> 3388 Go to Ceramic Ware 3389 </span> 3390 </a> 3391 </li> 3392 <li class="menu-lv-item menu-lv-3 text-left"> 3393 <a href="/products/aurli-2024-wbrc-competition-cup" class="menu-lv-3__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3394 <span class="text"> 3395 Aurli | 2024 WBrC Competition Cup 3396 </span></a> 3397 </li> 3398 <li class="menu-lv-item menu-lv-3 text-left"> 3399 <a href="/products/auril-trapezoidal-bottom-server" class="menu-lv-3__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3400 <span class="text"> 3401 Aurli | Trapezoidal Bottom Server 3402 </span></a> 3403 </li> 3404 <li class="menu-lv-item menu-lv-3 text-left"> 3405 <a href="/products/aurli-u70-dripper" class="menu-lv-3__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3406 <span class="text"> 3407 Aurli | U70 Dripper 3408 </span></a> 3409 </li></ul> 3410 </div></li></ul></li> 3411<li class="menu-lv-item menu-lv-1 text-left no-megamenu dropdown "><a class="menu-lv-1__action header__menu-item list-menu__item link focus-inset menu_mobile_link" href="#"> 3412 <span class="text"> 3413 Global Partners 3414 </span> 3415 <span class="icon-dropdown" data-toggle-menu-mb=""> 3416 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret"> 3417 <path d="M 7.75 1.34375 L 6.25 2.65625 L 14.65625 12 L 6.25 21.34375 L 7.75 22.65625 L 16.75 12.65625 L 17.34375 12 L 16.75 11.34375 Z"></path> 3418</svg> 3419 </span></a> 3420 <ul class="header__submenu list-menu list-menu--disclosure list-menu--disclosure-1 caption-large motion-reduce" role="list" > 3421 <div class="nav-title-mobile text-center"> 3422 <span class="icon-dropdown"> 3423 <svg aria-hidden="true" focusable="false" data-prefix="fal" data-icon="long-arrow-left" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" class="icon-arrow-nav"><path fill="currentColor" d="M136.97 380.485l7.071-7.07c4.686-4.686 4.686-12.284 0-16.971L60.113 273H436c6.627 0 12-5.373 12-12v-10c0-6.627-5.373-12-12-12H60.113l83.928-83.444c4.686-4.686 4.686-12.284 0-16.971l-7.071-7.07c-4.686-4.686-12.284-4.686-16.97 0l-116.485 116c-4.686 4.686-4.686 12.284 0 16.971l116.485 116c4.686 4.686 12.284 4.686 16.97-.001z" class=""></path></svg> 3424 </span> 3425 Global Partners 3426 </div> 3427 <li class="menu-lv-item menu-lv-2 text-left navigation_all_mobile"> 3428 <a href="#" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3429 <span class="text"> 3430 Go to Global Partners 3431 </span> 3432 </a> 3433 </li> 3434 <li class="menu-lv-item menu-lv-2 text-left menu-lv-blink"><a href="/pages/resellers" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3435 <span class="text"> 3436 International dealers 3437 </span></a></li> 3438 <li class="menu-lv-item menu-lv-2 text-left menu-lv-blink"><a href="/pages/discovery-of-hikaru" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large">
3439 <span class="text"> 3440 Coffee shop 3441 </span></a></li></ul></li> 3442<li class="menu-lv-item menu-lv-1 text-left no-megamenu "><a href="/blogs/blog" class="menu-lv-1__action header__menu-item header__menu-item list-menu__item link link--text focus-inset"> 3443 <span class="text">News & Events</span></a></li> 3444<li class="menu-lv-item menu-lv-1 text-left no-megamenu dropdown "><a class="menu-lv-1__action header__menu-item list-menu__item link focus-inset menu_mobile_link" href="#"> 3445 <span class="text"> 3446 Customer Service 3447 </span> 3448 <span class="icon-dropdown" data-toggle-menu-mb=""> 3449 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret"> 3450 <path d="M 7.75 1.34375 L 6.25 2.65625 L 14.65625 12 L 6.25 21.34375 L 7.75 22.65625 L 16.75 12.65625 L 17.34375 12 L 16.75 11.34375 Z"></path> 3451</svg> 3452 </span></a> 3453 <ul class="header__submenu list-menu list-menu--disclosure list-menu--disclosure-1 caption-large motion-reduce" role="list" > 3454 <div class="nav-title-mobile text-center"> 3455 <span class="icon-dropdown"> 3456 <svg aria-hidden="true" focusable="false" data-prefix="fal" data-icon="long-arrow-left" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" class="icon-arrow-nav"><path fill="currentColor" d="M136.97 380.485l7.071-7.07c4.686-4.686 4.686-12.284 0-16.971L60.113 273H436c6.627 0 12-5.373 12-12v-10c0-6.627-5.373-12-12-12H60.113l83.928-83.444c4.686-4.686 4.686-12.284 0-16.971l-7.071-7.07c-4.686-4.686-12.284-4.686-16.97 0l-116.485 116c-4.686 4.686-4.686 12.284 0 16.971l116.485 116c4.686 4.686 12.284 4.686 16.97-.001z" class=""></path></svg> 3457 </span> 3458 Customer Service 3459 </div> 3460 <li class="menu-lv-item menu-lv-2 text-left navigation_all_mobile"> 3461 <a href="#" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3462 <span class="text"> 3463 Go to Customer Service 3464 </span> 3465 </a> 3466 </li> 3467 <li class="menu-lv-item menu-lv-2 text-left menu-lv-blink"><a href="/pages/customer-service-faq" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3468 <span class="text"> 3469 Frequently Asked Questions 3470 </span></a></li> 3471 <li class="menu-lv-item menu-lv-2 text-left menu-lv-blink"><a href="/pages/user-manual" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3472 <span class="text"> 3473 User Manual 3474 </span></a></li> 3475 <li class="menu-lv-item menu-lv-2 text-left menu-lv-blink"><a href="/pages/contact-us" class="menu-lv-2__action header__menu-item list-menu__item link link--text focus-inset caption-large"> 3476 <span class="text"> 3477 Contact Us 3478 </span></a></li></ul></li> 3479<li class="menu-lv-item menu-lv-1 text-left no-megamenu "><a href="/pages/about-us" class="menu-lv-1__action header__menu-item header__menu-item list-menu__item link link--text focus-inset"> 3480 <span class="text">About Us</span></a></li> 3481</ul> 3482 </nav></div> 3483 </div> 3484 </div> 3485 3486 <div class="fixed-right"> 3487 3488 3489 <a href="/cart" class="header__icon header__icon--cart link link--text focus-inset" id="cart-icon-bubble"> 3490 <svg viewBox="0 0 30 30" class="icon icon-cart" enable-background="new 0 0 30 30"> 3491 <g> 3492 <g> 3493 <path d="M20,6V5c0-2.761-2.239-5-5-5s-5,2.239-5,5v1H4v24h22V6H20z M12,5c0-1.657,1.343-3,3-3s3,1.343,3,3v1h-6V5z M24,28H6V8h4v3 h2V8h6v3h2V8h4V28z"></path> 3494 </g> 3495 </g> 3496</svg>
3497 <span class="visually-hidden">Cart</span> 3498 <div class="cart-count-bubble"><span class="text" aria-hidden="true" data-cart-count>0</span><span class="visually-hidden">0 items</span> 3499 </div> 3500 </a> 3501 3502 </div> 3503 3504 </div> 3505 3506<div class="header-mobile mobile-header-1"> 3507 <div class="container"> 3508 <div class="header-mobile--wrapper"> 3509 <div class="header-mobile--item header-mobile--left"> 3510 <div class="header-mobile--icon item__mobile--hamburger"> 3511 <a class="mobileMenu-toggle" href="/collections/all" data-mobile-menu aria-label="menu"> 3512 <span class="mobileMenu-toggle__Icon"></span> 3513 </a> 3514 </div><div class="header-mobile--icon"></div></div><div class="header-mobile--item header-mobile--center"> 3515 <div class="header-mobile--icon"> 3516 <a href="/" class="header__heading-link focus-inset"><img srcset="//www.hiroia.com/cdn/shop/files/Hiroia_logo_Final-08_edited_95x.png?v=1654135916 1x, //www.hiroia.com/cdn/shop/files/[email protected]?v=1654135916 2x" src="//www.hiroia.com/cdn/shop/files/Hiroia_logo_Final-08_edited_95x.png?v=1654135916" loading="lazy" class="header__heading-logo" alt="Hiroia" style="--width-logo-mb: 95px;"></a> 3517 3518 </div> 3519 </div><div class="header-mobile--item header-mobile--right"><div class="header-mobile--icon"> 3520 <a href="https://www.hiroia.com/customer_authentication/redirect?locale=en®ion_country=US" class="header__icon header__icon--account link link--text focus-inset"> 3521 3522 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" aria-hidden="true" focusable="false" role="presentation" class="icon icon-account"><path d="M 16 3 C 8.832031 3 3 8.832031 3 16 C 3 23.167969 8.832031 29 16 29 C 23.167969 29 29 23.167969 29 16 C 29 8.832031 23.167969 3 16 3 Z M 16 5 C 22.085938 5 27 9.914063 27 16 C 27 22.085938 22.085938 27 16 27 C 9.914063 27 5 22.085938 5 16 C 5 9.914063 9.914063 5 16 5 Z M 16 8 C 13.25 8 11 10.25 11 13 C 11 14.515625 11.707031 15.863281 12.78125 16.78125 C 10.53125 17.949219 9 20.300781 9 23 L 11 23 C 11 20.226563 13.226563 18 16 18 C 18.773438 18 21 20.226563 21 23 L 23 23 C 23 20.300781 21.46875 17.949219 19.21875 16.78125 C 20.292969 15.863281 21 14.515625 21 13 C 21 10.25 18.75 8 16 8 Z M 16 10 C 17.667969 10 19 11.332031 19 13 C 19 14.667969 17.667969 16 16 16 C 14.332031 16 13 14.667969 13 13 C 13 11.332031 14.332031 10 16 10 Z"/></svg> 3523 3524 <span class="visually-hidden">Log in</span> 3525 </a></div><div class="header-mobile--icon"> 3526 <a href="/cart" class="header__icon header__icon--cart link link--text focus-inset" id="cart-icon-bubble"> 3527 3528 <svg viewBox="0 0 30 30" class="icon icon-cart" enable-background="new 0 0 30 30"> 3529 <g> 3530 <g> 3531 <path d="M20,6V5c0-2.761-2.239-5-5-5s-5,2.239-5,5v1H4v24h22V6H20z M12,5c0-1.657,1.343-3,3-3s3,1.343,3,3v1h-6V5z M24,28H6V8h4v3 h2V8h6v3h2V8h4V28z"></path> 3532 </g> 3533 </g> 3534</svg> 3535 3536 <span class="visually-hidden">Cart</span> 3537 <div class="cart-count-bubble"><span class="text" aria-hidden="true" data-cart-count>0</span><span class="visually-hidden">0 items</span> 3538 </div> 3539 </a> 3540 </div></div> 3541 </div> 3542 </div> 3543</div> 3544 </header> 3545</sticky-header> 3546 3547 3548
3549<script type="application/ld+json"> 3550 { 3551 "@context": "http://schema.org", 3552 "@type": "Organization", 3553 "name": "Hiroia", 3554 3555 3556 "logo": "https:\/\/www.hiroia.com\/cdn\/shop\/files\/Hiroia_logo_Final-08_edited_1040x.png?v=1654135916", 3557 3558 "sameAs": [ 3559 "", 3560 "https:\/\/www.facebook.com\/hiroia.fun", 3561 "", 3562 "https:\/\/www.instagram.com\/hiroia_official\/", 3563 "", 3564 "", 3565 "https:\/\/www.youtube.com\/channel\/UCN7RYHOEcrsB-Fo0qwmJLIw", 3566 "" 3567 ], 3568 "url": "https:\/\/www.hiroia.com" 3569 } 3570</script>
3570 3571 3572<style> #shopify-section-header .disclosure__link .text {white-space: nowrap;} #shopify-section-header /* éå°ç¹å®çµæ§ç¦ç¨é»æè¡çº */ /* .menu-lv-item.no-megamenu.dropdown > .menu-lv-1__action {pointer-events: none;} */.menu-lv-2__action.header__menu-item.link[href*="#"] {pointer-events: none;} #shopify-section-header .halo-top-language .text {white-space: nowrap;} #shopify-section-header .list-menu--disclosure {width: 24rem;} @media (min-width: 1025px) {#shopify-section-header .list-menu.text-left {display: flex; justify-content: center; }} @media (min-width: 1310px) {#shopify-section-header .header__logo {margin-left: 60px; padding-left: 0; }} </style></div> 3573 3574
3574<script src='//cdn.shopify.com/s/javascripts/currencies.js' defer="defer"></script>
3574 3575
3575<script src="//www.hiroia.com/cdn/shop/t/143/assets/jquery.currencies.min.js?v=3594019602694323471788398055" defer="defer"></script>
3575 3576
3576<script type="text/javascript"> 3577 let shopCurrency="USD" 3578 </script>
3578 3579 3580 3581 3582 <!-- 客製åShop Now æ¸æµ®æ¢ --> 3583 3584 3585 3586 3587 3588 3589 3590 <main id="MainContent" class="wrapper-body content-for-layout focus-none" role="main" tabindex="-1"> 3591 <section id="shopify-section-template--21422639317153__custom_liquid_FA7e6R" class="shopify-section spaced-section"><!-- è ååæå°èª - æå ¥å¨ halo-block-header ä¹å¾ --> 3592<div class="product-filter-navigation"> 3593 <style> 3594 .product-filter-navigation { 3595 display: flex; 3596 gap: 12px; 3597 margin-top: 60px; 3598 margin-left: 60px; 3599 flex-wrap: wrap; 3600 justify-content: flex-start; 3601 } 3602 3603 .filter-pill { 3604 padding: 12px 24px; 3605 border-radius: 25px; 3606 text-decoration: none; 3607 font-size: 14px; 3608 font-weight: 500; 3609 transition: all 0.3s ease; 3610 white-space: nowrap; 3611 display: inline-block; 3612 cursor: pointer; 3613 border: 1px solid #ddd; 3614 background-color: white; 3615 color: #333; 3616 } 3617 3618 .filter-pill.active { 3619 background-color: #333; 3620 color: white; 3621 border-color: #333; 3622 } 3623 3624 .filter-pill:hover { 3625 transform: translateY(-1px); 3626 box-shadow: 0 2px 8px rgba(0,0,0,0.1); 3627 } 3628 3629 .filter-pill:not(.active):hover { 3630 border-color: #999; 3631 } 3632 3633 /* ç¢åé±èåç« */ 3634 .product { 3635 transition: opacity 0.3s ease, transform 0.3s ease; 3636 } 3637 3638 .product.hidden { 3639 display: none !important; 3640 } 3641 3642 .products-grid { 3643 position: relative; 3644 } 3645 </style> 3646 3647 <button class="filter-pill active" data-filter="all" data-text-key="all"> 3648 å ¨é¨ç¢å 3649 </button> 3650 3651 <button class="filter-pill" data-filter="devices" data-text-key="devices"> 3652 Hiroia æ©å 3653 </button> 3654 3655 <button class="filter-pill" data-filter="special" data-text-key="special" style="display:none"> 3656 ééæ©å 3657 </button> 3658 3659 <button class="filter-pill" data-filter="accessories" data-text-key="accessories"> 3660 é ä»¶ 3661 </button> 3662</div> 3663
3664<script> 3665document.addEventListener('DOMContentLoaded', function() { 3666 // å¤èªè¨æåå°ç §è¡¨ 3667 const translations = { 3668 'zh-TW': { 3669 all: 'å ¨é¨ç¢å', 3670 devices: 'Hiroia æ©å', 3671 special: 'ééæ©å', 3672 accessories: 'é ä»¶' 3673 }, 3674 'zh-CN': { 3675 all: 'å ¨é¨äº§å', 3676 devices: 'Hiroia æºå', 3677 special: 'ééæºå', 3678 accessories: 'é ä»¶' 3679 }, 3680 'en': { 3681 all: 'All Products', 3682 devices: 'Hiroia Devices', 3683 special: 'Special Editions', 3684 accessories: 'Accessories' 3685 }, 3686 'ja': { 3687 all: 'å ¨åå', 3688 devices: 'Hiroia ããã¤ã¹', 3689 special: 'éå®ç', 3690 accessories: 'ã¢ã¯ã»ãµãªã¼' 3691 }, 3692 'ko': { 3693 all: '모ë ì í', 3694 devices: 'Hiroia 기기', 3695 special: 'íì í', 3696 accessories: 'ì¡ì¸ì리' 3697 } 3698 }; 3699 3700 // 檢測網é èªè¨ 3701 function detectLanguage() { 3702 // 1. æª¢æ¥ HTML lang å±¬æ§ 3703 const htmlLang = document.documentElement.lang || document.documentElement.getAttribute('lang'); 3704 if (htmlLang && translations[htmlLang]) { 3705 return htmlLang; 3706 } 3707 3708 // 2. 檢æ¥é é¢å §å®¹ä¸ç主è¦èªè¨ 3709 const sampleTexts = []; 3710 document.querySelectorAll('.halo-block-header .title .text, .card-title .text').forEach(el => { 3711 const text = el.textContent?.trim(); 3712 if (text) sampleTexts.push(text); 3713 }); 3714 3715 const combinedText = sampleTexts.join(' '); 3716 3717 // ç°¡å®çèªè¨æª¢æ¸¬é輯 3718 if (/[\u4e00-\u9fff]/.test(combinedText)) { 3719 // å å«ä¸æå符 3720 if (/[ç£æ¥æ©å¨è¨å]/.test(combinedText)) { 3721 return 'zh-TW'; // ç¹é«ä¸æ 3722 } else { 3723 return 'zh-CN'; // ç°¡é«ä¸æ 3724 } 3725 } else if (/[\u3040-\u309f\u30a0-\u30ff]/.test(combinedText)) { 3726 return 'ja'; // æ¥æ 3727 } else if (/[\uac00-\ud7af]/.test(combinedText)) { 3728 return 'ko'; // éæ 3729 } 3730 3731 // 3. 檢æ¥ç覽å¨èªè¨è¨ç½® 3732 const browserLang = navigator.language || navigator.languages[0]; 3733 if (browserLang) { 3734 const langCode = browserLang.split('-')[0]; 3735 if (translations[langCode]) return langCode; 3736 if (translations[browserLang]) return browserLang; 3737 } 3738 3739 // 4. é è¨çºè±æ 3740 return 'en'; 3741 } 3742 3743 // æ´æ°æéæå 3744 function updateButtonTexts(language) { 3745 const buttons = document.querySelectorAll('.filter-pill[data-text-key]'); 3746 const texts = translations[language] || translations['en']; 3747 3748 buttons.forEach(button => { 3749 const textKey = button.getAttribute('data-text-key'); 3750 if (texts[textKey]) { 3751 button.textContent = texts[textKey]; 3752 } 3753 }); 3754 } 3755 3756 // çºç¢åæ·»å å顿¨è 3757 function categorizeProducts() { 3758 const products = document.querySelectorAll('.product-item'); 3759 console.log('æ¾å°ç¢åæ¸é:', products.length); 3760 3761 products.forEach(product => { 3762 const productId = product.dataset.productId || ''; 3763 const title = product.querySelector('.card-title .text')?.textContent || ''; 3764 const productElement = product.closest('.product'); 3765 const section = product.closest('.container-1770'); 3766 const sectionTitle = section?.querySelector('.halo-block-header .title .text')?.textContent?.toLowerCase() || ''; 3767 3768 console.log('ç¢åID:', productId, 'æ¨é¡:', title, 'æå¨åå¡:', sectionTitle); 3769 3770 // ç¹æ®èçï¼Hikaru (Black) æ¸é¡çºéå®ç 3771 if (productId === '8174799290529') { 3772 productElement.classList.add('category-special'); 3773 console.log('åé¡çº special (Hikaru Black):', title); 3774 } 3775 // æç¢ºæå®Hiroiaæ©åç¢åï¼å å«Jimmyï¼ 3776 else if (productId === '7826735038625' || // Hikaru (White) 3777 productId === '7394124628129' || // Jimmy 3778 productId === '7394128855201' || // Samantha 3779 productId === '7656566882465' || // Samantha II 3780 sectionTitle.includes('hiroia') || sectionTitle.includes('products') || 3781 (!sectionTitle.includes('accessories') && !sectionTitle.includes('é ä»¶') && 3782 !sectionTitle.includes('ã¢ã¯ã»ãµãªã¼') && !sectionTitle.includes('ì¡ì¸ì리'))) { 3783 productElement.classList.add('category-devices'); 3784 console.log('åé¡çº devices:', title); 3785 } 3786 // é ä»¶åå¡ç¢å 3787 else { 3788 productElement.classList.add('category-accessories'); 3789 console.log('åé¡çº accessories:', title); 3790 } 3791 }); 3792 } 3793 3794 // 篩é¸åè½ 3795 function filterProducts(category) { 3796 const products = document.querySelectorAll('.product'); 3797 const productSections = document.querySelectorAll('.container-1770'); 3798
3799 console.log('篩é¸é¡å¥:', category); 3800 console.log('æ¾å°å塿¸é:', productSections.length); 3801 3802 if (category === 'all') { 3803 // 顯示ææç¢åååå¡ 3804 products.forEach(product => { 3805 product.classList.remove('hidden'); 3806 }); 3807 productSections.forEach(section => { 3808 section.style.display = 'block'; 3809 }); 3810 } else if (category === 'accessories') { 3811 // å é±èææç¢å 3812 products.forEach(product => { 3813 product.classList.add('hidden'); 3814 }); 3815 3816 // åªé¡¯ç¤ºé ä»¶åå¡ 3817 productSections.forEach(section => { 3818 const sectionTitle = section.querySelector('.halo-block-header .title .text')?.textContent?.toLowerCase() || ''; 3819 console.log('檢æ¥å塿¨é¡:', sectionTitle); 3820 3821 if (sectionTitle.includes('accessories') || sectionTitle.includes('é ä»¶') || sectionTitle.includes('ã¢ã¯ã»ãµãªã¼') || sectionTitle.includes('ì¡ì¸ì리')) { 3822 section.style.display = 'block'; 3823 // 顯示é ä»¶åå¡ä¸çææç¢å 3824 section.querySelectorAll('.product').forEach(product => { 3825 product.classList.remove('hidden'); 3826 }); 3827 console.log('顯示é ä»¶åå¡'); 3828 } else { 3829 section.style.display = 'none'; 3830 console.log('é±èæ©ååå¡'); 3831 } 3832 }); 3833 } else { 3834 // devices æ special 3835 // å é±èææç¢å 3836 products.forEach(product => { 3837 product.classList.add('hidden'); 3838 }); 3839 3840 productSections.forEach(section => { 3841 const sectionTitle = section.querySelector('.halo-block-header .title .text')?.textContent?.toLowerCase() || ''; 3842 console.log('檢æ¥å塿¨é¡:', sectionTitle); 3843 3844 if (sectionTitle.includes('accessories') || sectionTitle.includes('é ä»¶') || sectionTitle.includes('ã¢ã¯ã»ãµãªã¼') || sectionTitle.includes('ì¡ì¸ì리')) { 3845 section.style.display = 'none'; 3846 console.log('é±èé ä»¶åå¡'); 3847 } else { 3848 section.style.display = 'block'; 3849 console.log('顯示æ©ååå¡'); 3850 3851 // 卿©ååå¡ä¸ç¯©é¸ç¢å 3852 const sectionProducts = section.querySelectorAll('.product'); 3853 console.log('æ©ååå¡ä¸çç¢åæ¸é:', sectionProducts.length); 3854 3855 sectionProducts.forEach(product => { 3856 const hasCategory = product.classList.contains(`category-${category}`); 3857 console.log('ç¢åå顿ª¢æ¥:', `category-${category}`, 'çµæ:', hasCategory); 3858 3859 if (hasCategory) { 3860 product.classList.remove('hidden'); 3861 console.log('顯示ç¢å'); 3862 } else { 3863 product.classList.add('hidden'); 3864 console.log('é±èç¢å'); 3865 } 3866 }); 3867 } 3868 }); 3869 } 3870 } 3871 3872 // åå§å 3873 const detectedLanguage = detectLanguage(); 3874 updateButtonTexts(detectedLanguage); 3875 categorizeProducts(); 3876 3877 // ç¶å®åæäºä»¶ 3878 const filterPills = document.querySelectorAll('.filter-pill'); 3879 3880 filterPills.forEach(pill => { 3881 pill.addEventListener('click', function() { 3882 // ç§»é¤ææ active çæ 3883 filterPills.forEach(p => p.classList.remove('active')); 3884 3885 // æ·»å ç¶å active çæ 3886 this.classList.add('active'); 3887 3888 // å·è¡ç¯©é¸ 3889 const filterCategory = this.dataset.filter; 3890 filterProducts(filterCategory); 3891 }); 3892 }); 3893}); 3894</script>
3894 3895 3896 3897 3898 3899</section><div id="shopify-section-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c" class="shopify-section sections-product-tab"><style> 3900 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c {--font-tab: var(--font-tab-type-1);} 3901 3902 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .halo-block-header .title { 3903 color: #232323; 3904 font-size: 16px; 3905 3906 margin-bottom: 12px; 3907 3908 } 3909 3910 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .halo-block-header .title:before { 3911 background-color: #232323; 3912 3913 } 3914 3915 3916 3917 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .list-product-tabs { 3918 margin-bottom: 24px; 3919 } 3920 3921 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .list-product-tabs a { 3922 font-family: var(--font-tab); 3923 color: #232323; 3924 font-size: 14px; 3925 font-weight: 700; 3926 line-height: 20px; 3927 border-radius: 3px; 3928 3929 background: #faf9f7; 3930 3931 3932 } 3933 3934 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .list-product-tabs a.active { 3935 3936 color: #232323; 3937 background: #faf9f7; 3938 font-weight: 700; 3939 } 3940 3941 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .list-product-tabs li { 3942 color: #232323; 3943 font-size: 14px; 3944 line-height: 20px; 3945 right: -19.0px; 3946 margin: 0 12.0px; 3947 } 3948 3949 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .list-product-tabs li.separation { 3950 color: ; 3951 min-width: 1px; 3952 } 3953 3954 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .list-product-tabs.list-tab__style_2 li a.active:before { 3955 border-bottom-color: #faf9f7; 3956 } 3957 3958 /* Start: Scroll Layout */ 3959 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .products-flex { 3960 display: flex; 3961 flex-direction: row; 3962 flex-wrap: nowrap; 3963 user-select: none; 3964 padding-bottom: 45px; 3965 overflow: auto; 3966 gap: 30px; 3967 padding-right: 60px; 3968 } 3969 3970 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .halo-product-block .products-flex .product { 3971 flex-shrink: 0; 3972 flex-grow: 0; 3973 padding: 0; 3974 } 3975 3976 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .halo-block-content.is-scroll { 3977 overflow: hidden; 3978 } 3979 3980 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .products-flex::-webkit-scrollbar {
3981 height: var(--scrollbar-height, 3px); 3982 cursor: pointer; 3983 } 3984 3985 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .products-flex::-webkit-scrollbar-track { 3986 background: var(--scrollbar-track-color, #dadada); 3987 } 3988 3989 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .products-flex::-webkit-scrollbar-thumb { 3990 background: var(--scrollbar-thumb-color, #000); 3991 } 3992 3993 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .products-flex::-webkit-scrollbar-thumb:hover { 3994 background: var(--scrollbar-thumb-hover-color, #333); 3995 } 3996 3997 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .products-flex.active .product { 3998 pointer-events: none; 3999 } 4000 4001 /* End: Scroll Layout */ 4002 4003 @media (min-width: 1200px) { 4004 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c { 4005 padding-top: 50px; 4006 padding-bottom: 50px; 4007 } 4008 4009 } 4010 4011 @media (min-width: 1025px) { 4012 4013 4014 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .list-product-tabs li:not(.separation) { 4015 min-width: 5px; 4016 } 4017 4018 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .list-product-tabs a:hover { 4019 color: #232323; 4020 background-color: #faf9f7; 4021 font-weight: 700; 4022 } 4023 } 4024 4025 @media (min-width: 768px) and (max-width: 1199px) { 4026 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c { 4027 padding-top: 50px; 4028 padding-bottom: 50px; 4029 } 4030 4031 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .list-product-tabs { 4032 margin-bottom: 8px; 4033 } 4034 } 4035 4036 @media (min-width: 768px) { 4037 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .halo-product-block .products-flex .product { 4038 4039 flex-basis: calc(100% / var(--count)); 4040 width: calc(100% / var(--count)); 4041 4042 } 4043 } 4044 4045 @media (max-width: 1024px) { 4046 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .products-flex { 4047 --count: 2!important; 4048 gap: 15px; 4049 } 4050 4051 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .products-flex .product { 4052 padding: 0 7px; 4053 } 4054 4055 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .products-flex { 4056 scroll-snap-type: x mandatory; 4057 padding-bottom: 0; 4058 } 4059 4060 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .halo-product-block .products-flex .product { 4061 scroll-snap-align: start; 4062 } 4063 } 4064 4065 @media (max-width: 767px) { 4066 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c { 4067 padding-top: 50px; 4068 padding-bottom: 50px; 4069 } 4070 4071 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .list-product-tabs a { 4072 font-size: 14px !important; 4073 line-height: 93px; 4074 } 4075 4076 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .halo-block-header .title { 4077 font-size: 16px; 4078 } 4079 4080 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .halo-block-top { 4081 border: 0; 4082 } 4083 4084 .list-product-tabs.list-tab__style_2 li a.active:before { 4085 display: none !important; 4086 } 4087 4088 .product-tab-block .list-product-tabs.list-tab__style_2 li a { 4089 margin: 0; 4090 } 4091 4092 .section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .products-flex .product { 4093 4094 flex-basis: calc(100% / var(--count)); 4095 width: calc(100% / var(--count)); 4096 4097 } 4098 } 4099 4100 @media (max-width: 551px){ 4101 4102 } 4103</style> 4104 4105<product-tabs-section> 4106 <div class="product-tab-block product-block section-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c" > 4107 <div class="halo-block halo-product-block" id="halo-product-block-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c" data-product-tab-block data-limit="8" data-layout="grid" sectionId="template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c" 4108 > 4109 <div class="container-1770"><div class="halo-block-header text-center"> 4110 <h3 class="title">
4111 <span class="text">Hiroia Products</span> 4112 </h3> 4113 </div><div class="halo-block-content "><ul class="list-product-tabs list-tab__style_1 enable_scroll_tab disable-srollbar"> 4114 4115 <li> 4116 <a href="javascript:void(0)" data-target="#product-tab-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c-7a49cb9b-4e6a-4892-aa72-afa40ea733e0" data-product-tabTop data-href="/collections/all?view=ajax_product_block" class="tab-links active"> 4117 4118 </a> 4119 </li> 4120 4121 </ul><div class="product-tabs-content"> 4122 4123 4124 <div class="tab-content active " data-product-TabContent id="product-tab-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c-7a49cb9b-4e6a-4892-aa72-afa40ea733e0" ><div class="products-grid products-load column-5" data-products-to-show="8"><div class="product"> 4125 4126 4127<div class="product-item" data-product-id="7826735038625" data-json-product='{"id": 7826735038625,"handle": "hikaru","media": null,"variants": [{"id":44757671444641,"title":"110V - US \/ White","option1":"110V - US","option2":"White","option3":null,"sku":"","requires_shipping":true,"taxable":false,"featured_image":{"id":41609066774689,"product_id":7826735038625,"position":1,"created_at":"2025-07-11T06:59:24+08:00","updated_at":"2025-07-11T07:00:36+08:00","alt":null,"width":4000,"height":4000,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/2df759361d8d047ec9d39e30f8472fa921c25f66.png?v=1752188436","variant_ids":[43651533799585,44757671444641,44757671739553,44765540122785]},"available":true,"name":"Hikaru - 110V - US \/ White","public_title":"110V - US \/ White","options":["110V - US","White"],"price":79900,"weight":9500,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":34636628132001,"position":1,"preview_image":{"aspect_ratio":1.0,"height":4000,"width":4000,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/2df759361d8d047ec9d39e30f8472fa921c25f66.png?v=1752188436"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":45025169572001,"title":"110V - US \/ Black","option1":"110V - US","option2":"Black","option3":null,"sku":null,"requires_shipping":true,"taxable":false,"featured_image":{"id":41609066741921,"product_id":7826735038625,"position":7,"created_at":"2025-07-11T06:59:23+08:00","updated_at":"2025-07-11T06:59:51+08:00","alt":null,"width":4000,"height":4000,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/7e1f8febb8b3175eaf604d310f9f8437a049d2e9.png?v=1752188391","variant_ids":[45025169539233,45025169572001,45025169604769,45025169637537]},"available":false,"name":"Hikaru - 110V - US \/ Black","public_title":"110V - US \/ Black","options":["110V - US","Black"],"price":79900,"weight":9500,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":34636628099233,"position":7,"preview_image":{"aspect_ratio":1.0,"height":4000,"width":4000,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/7e1f8febb8b3175eaf604d310f9f8437a049d2e9.png?v=1752188391"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":43651533799585,"title":"110V - TW \/ White","option1":"110V - TW","option2":"White","option3":null,"sku":"","requires_shipping":true,"taxable":false,"featured_image":{"id":41609066774689,"product_id":7826735038625,"position":1,"created_at":"2025-07-11T06:59:24+08:00","updated_at":"2025-07-11T07:00:36+08:00","alt":null,"width":4000,"height":4000,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/2df759361d8d047ec9d39e30f8472fa921c25f66.png?v=1752188436","variant_ids":[43651533799585,44757671444641,44757671739553,44765540122785]},"available":true,"name":"Hikaru - 110V - TW \/ White","public_title":"110V - TW \/ White","options":["110V - TW","White"],"price":79900,"weight":9500,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":34636628132001,"position":1,"preview_image":{"aspect_ratio":1.0,"height":4000,"width":4000,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/2df759361d8d047ec9d39e30f8472fa921c25f66.png?v=1752188436"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":45025169539233,"title":"110V - TW \/ Black","option1":"110V - TW","option2":"Black","option3":null,"sku":null,"requires_shipping":true,"taxable":false,"featured_image":{"id":41609066741921,"product_id":7826735038625,"position":7,"created_at":"2025-07-11T06:59:23+08:00","updated_at":"2025-07-11T06:59:51+08:00","alt":null,"width":4000,"height":4000,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/7e1f8febb8b3175eaf604d310f9f8437a049d2e9.png?v=1752188391","variant_ids":[45025169539233,45025169572001,45025169604769,45025169637537]},"available":false,"name":"Hikaru - 110V - TW \/ Black","public_title":"110V - TW \/ Black","options":["110V - TW","Black"],"price":79900,"weight":9500,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":34636628099233,"position":7,"preview_image":{"aspect_ratio":1.0,"height":4000,"width":4000,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/7e1f8febb8b3175eaf604d310f9f8437a049d2e9.png?v=1752188391"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":44765540122785,"title":"220V - EU \/ White","option1":"220V - EU","option2":"White","option3":null,"sku":"","requires_shipping":true,"taxable":false,"featured_image":{"id":41609066774689,"product_id":7826735038625,"position":1,"created_at":"2025-07-11T06:59:24+08:00","updated_at":"2025-07-11T07:00:36+08:00","alt":null,"width":4000,"height":4000,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/2df759361d8d047ec9d39e30f8472fa921c25f66.png?v=1752188436","variant_ids":[43651533799585,44757671444641,44757671739553,44765540122785]},"available":true,"name":"Hikaru - 220V - EU \/ White","public_title":"220V - EU \/ White","options":["220V - EU","White"],"price":79900,"weight":9500,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":34636628132001,"position":1,"preview_image":{"aspect_ratio":1.0,"height":4000,"width":4000,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/2df759361d8d047ec9d39e30f8472fa921c25f66.png?v=1752188436"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":45025169604769,"title":"220V - EU \/ Black","option1":"220V - EU","option2":"Black","option3":null,"sku":null,"requires_shipping":true,"taxable":false,"featured_image":{"id":41609066741921,"product_id":7826735038625,"position":7,"created_at":"2025-07-11T06:59:23+08:00","updated_at":"2025-07-11T06:59:51+08:00","alt":null,"width":4000,"height":4000,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/7e1f8febb8b3175eaf604d310f9f8437a049d2e9.png?v=1752188391","variant_ids":[45025169539233,45025169572001,45025169604769,45025169637537]},"available":true,"name":"Hikaru - 220V - EU \/ Black","public_title":"220V - EU \/ Black","options":["220V - EU","Black"],"price":79900,"weight":9500,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":34636628099233,"position":7,"preview_image":{"aspect_ratio":1.0,"height":4000,"width":4000,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/7e1f8febb8b3175eaf604d310f9f8437a049d2e9.png?v=1752188391"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":44757671739553,"title":"220V - UK \/ White","option1":"220V - UK","option2":"White","option3":null,"sku":"","requires_shipping":true,"taxable":false,"featured_image":{"id":41609066774689,"product_id":7826735038625,"position":1,"created_at":"2025-07-11T06:59:24+08:00","updated_at":"2025-07-11T07:00:36+08:00","alt":null,"width":4000,"height":4000,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/2df759361d8d047ec9d39e30f8472fa921c25f66.png?v=1752188436","variant_ids":[43651533799585,44757671444641,44757671739553,44765540122785]},"available":true,"name":"Hikaru - 220V - UK \/ White","public_title":"220V - UK \/ White","options":["220V - UK","White"],"price":79900,"weight":9500,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":34636628132001,"position":1,"preview_image":{"aspect_ratio":1.0,"height":4000,"width":4000,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/2df759361d8d047ec9d39e30f8472fa921c25f66.png?v=1752188436"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":45025169637537,"title":"220V - UK \/ Black","option1":"220V - UK","option2":"Black","option3":null,"sku":null,"requires_shipping":true,"taxable":false,"featured_image":{"id":41609066741921,"product_id":7826735038625,"position":7,"created_at":"2025-07-11T06:59:23+08:00","updated_at":"2025-07-11T06:59:51+08:00","alt":null,"width":4000,"height":4000,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/7e1f8febb8b3175eaf604d310f9f8437a049d2e9.png?v=1752188391","variant_ids":[45025169539233,45025169572001,45025169604769,45025169637537]},"available":true,"name":"Hikaru - 220V - UK \/ Black","public_title":"220V - UK \/ Black","options":["220V - UK","Black"],"price":79900,"weight":9500,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":34636628099233,"position":7,"preview_image":{"aspect_ratio":1.0,"height":4000,"width":4000,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/7e1f8febb8b3175eaf604d310f9f8437a049d2e9.png?v=1752188391"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}]}'> 4128 <div class="card"> 4129 <div class="card-product"> 4130 <div class="card-product__wrapper"><div class="card__badge badge-left halo-productBadges halo-productBadges--left date-67387476 date1-779" data-new-badge-number="30"></div> 4131<a class="card-media card-media--adapt media--hover-effect media--loading-effect " 4132 href="/products/hikaru" 4133 4134 4135 style="padding-bottom: 100.0%;" 4136 4137 4138 > 4139 4140 <img data-srcset="//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_165x.png?v=1752188436 165w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_170x.png?v=1752188436 170w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_185x.png?v=1752188436 185w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_198x.png?v=1752188436 198w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_210x.png?v=1752188436 210w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_220x.png?v=1752188436 220w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_245x.png?v=1752188436 245w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_270x.png?v=1752188436 270w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_290x.png?v=1752188436 290w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_320x.png?v=1752188436 320w,//www.hiroia.com/cdn/shop/files/2df
4140759361d8d047ec9d39e30f8472fa921c25f66_355x.png?v=1752188436 355w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_360x.png?v=1752188436 360w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_370x.png?v=1752188436 370w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_420x.png?v=1752188436 420w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_430x.png?v=1752188436 430w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_460x.png?v=1752188436 460w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_470x.png?v=1752188436 470w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_510x.png?v=1752188436 510w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_523x.png?v=1752188436 523w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_533x.png?v=1752188436 533w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_534x.png?v=1752188436 534w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_570x.png?v=1752188436 570w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_640x.png?v=1752188436 640w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_665x.png?v=1752188436 665w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_670x.png?v=1752188436 670w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_720x.png?v=1752188436 720w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_775x.png?v=1752188436 775w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_785x.png?v=1752188436 785w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_870x.png?v=1752188436 870w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_930x.png?v=1752188436 930w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_935x.png?v=1752188436 935w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_940x.png?v=1752188436 940w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_1066x.png?v=1752188436 1066w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_1160x.png?v=1752188436 1160w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_1170x.png?v=1752188436 1170w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_1270x.png?v=1752188436 1270w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_1370x.png?v=1752188436 1370w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_1570x.png?v=1752188436 1570w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_1770x.png?v=1752188436 1770w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_1850x.png?v=1752188436 1850w,//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_1880x.png?v=1752188436 1880w" 4141 4142sizes="(min-width: 1100px) 4000px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
4143alt="Hikaru" 4144size="4000" 4145loading="lazy" 4146class="motion-reduce lazyload" 4147 /> 4148 � 4149 <img data-srcset="//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_165x.jpg?v=1752188436 165w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_170x.jpg?v=1752188436 170w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_185x.jpg?v=1752188436 185w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_198x.jpg?v=1752188436 198w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_210x.jpg?v=1752188436 210w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_220x.jpg?v=1752188436 220w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_245x.jpg?v=1752188436 245w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_270x.jpg?v=1752188436 270w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_290x.jpg?v=1752188436 290w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_320x.jpg?v=1752188436 320w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_355x.jpg?v=1752188436 355w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_360x.jpg?v=1752188436 360w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_370x.jpg?v=1752188436 370w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_420x.jpg?v=1752188436 420w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_430x.jpg?v=1752188436 430w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_460x.jpg?v=1752188436 460w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_470x.jpg?v=1752188436 470w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_510x.jpg?v=1752188436 510w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_523x.jpg?v=1752188436 523w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_533x.jpg?v=1752188436 533w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_534x.jpg?v=1752188436 534w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_570x.jpg?v=1752188436 570w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_640x.jpg?v=1752188436 640w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_665x.jpg?v=1752188436 665w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_670x.jpg?v=1752188436 670w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_720x.jpg?v=1752188436 720w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_775x.jpg?v=1752188436 775w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_785x.jpg?v=1752188436 785w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_870x.jpg?v=1752188436 870w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_930x.jpg?v=1752188436 930w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_935x.jpg?v=1752188436 935w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_940x.jpg?v=1752188436 940w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_1066x.jpg?v=1752188436 1066w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_1160x.jpg?v=1752188436 1160w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_1170x.jpg?v=1752188436 1170w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_1270x.jpg?v=1752188436 1270w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_1370x.jpg?v=1752188436 1370w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_1570x.jpg?v=1752188436 1570w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_1770x.jpg?v=1752188436 1770w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_1850x.jpg?v=1752188436 1850w,//www.hiroia.com/cdn/shop/files/01_8580c1e5-91c0-4132-ad07-34d1af91d5d1_1880x.jpg?v=1752188436 1880w" 4150 4151sizes="(min-width: 1100px) 2837px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
4152alt="Hikaru" 4153size="2837" 4154loading="lazy" 4155class="motion-reduce lazyload" 4156 /> 4157 �<span class="data-lazy-loading"></span>�<div class="media-loading" data-title="Ella">Ella</div> 4158 </a><div class="card-product__group group-right"><div class="card-product__group-item card-quickview card-quickviewIcon"> 4159 <a class="quickview-icon" href="javascript:void(0)" data-product-id="7826735038625" data-open-quick-view-popup data-product-handle="hikaru"> 4160 <span class="visually-hidden">Quick View</span> 4161 <span class="text"> 4162 Quick View 4163 </span> 4164 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 511.999 511.999" aria-hidden="true" focusable="false" role="presentation" class="icon icon-eyes"> 4165<path d="M508.745,246.041c-4.574-6.257-113.557-153.206-252.748-153.206S7.818,239.784,3.249,246.035 4166 c-4.332,5.936-4.332,13.987,0,19.923c4.569,6.257,113.557,153.206,252.748,153.206s248.174-146.95,252.748-153.201 4167 C513.083,260.028,513.083,251.971,508.745,246.041z M255.997,385.406c-102.529,0-191.33-97.533-217.617-129.418 4168 c26.253-31.913,114.868-129.395,217.617-129.395c102.524,0,191.319,97.516,217.617,129.418 4169 C447.361,287.923,358.746,385.406,255.997,385.406z"></path> 4170 <path d="M255.997,154.725c-55.842,0-101.275,45.433-101.275,101.275s45.433,101.275,101.275,101.275 4171 s101.275-45.433,101.275-101.275S311.839,154.725,255.997,154.725z M255.997,323.516c-37.23,0-67.516-30.287-67.516-67.516 4172 s30.287-67.516,67.516-67.516s67.516,30.287,67.516,67.516S293.227,323.516,255.997,323.516z"></path> 4173</svg> 4174 </a> 4175 </div></div> 4176<div class="card-action"> 4177 <form action="/cart/add" method="post" class="variants" id="form-7826735038625-" data-product-id="7826735038625" enctype="multipart/form-data"><a class="button button-ATC" href="/products/hikaru" data-quickshop-popup data-product-handle="hikaru"> 4178 4179 Quick Add 4180 4181 </a></form><div class="variants-popup custom-scrollbar"> 4182 4183
4183<script> 4184 window.quick_view_inven_array_7826735038625 = { 4185 4186 '44757671444641': '46', 4187 4188 '45025169572001': '0', 4189 4190 '43651533799585': '46', 4191 4192 '45025169539233': '0', 4193 4194 '44765540122785': '47', 4195 4196 '45025169604769': '46', 4197 4198 '44757671739553': '43', 4199 4200 '45025169637537': '40', 4201 4202 }; 4203 </script>
4203 4204 4205 4206<a href="#" class="variants-popup-close" data-cancel-quickshop-popup alt="Close"> 4207 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 4208 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 4209</svg> 4210 Close 4211</a> 4212 4213<div class="variants-popup-content text-center" data-quickshop> 4214 4215 <form action="/cart/add" method="post" class="variants" id="swatch-form-7826735038625--" data-id="product-actions-7826735038625" enctype="multipart/form-data"><div class="selector-wrapper selector-wrapper-2 swatch" data-option-index="1"> 4216 <label class="form-label"> 4217 Voltage/Plug Type: 4218 <span class="label-value-1">110V - US</span> 4219 </label><div class="swatch-element 110v-us available" data-value="110V - US"> 4220 <input 4221 class="single-option" 4222 type="radio" 4223 name="SingleOptionSelector-0-7826735038625-" 4224 data-index="option1" 4225 value="110V - US" 4226 id="SingleOptionSelector0-110V - US-7826735038625-" 4227 4228 > 4229 <label 4230 class="single-label" 4231 title="110V - US" 4232 for="SingleOptionSelector0-110V - US-7826735038625-" 4233 > 4234 110V - US 4235 </label></div> 4236 ��<div class="swatch-element 110v-tw available" data-value="110V - TW"> 4237 <input 4238 class="single-option" 4239 type="radio" 4240 name="SingleOptionSelector-0-7826735038625-" 4241 data-index="option1" 4242 value="110V - TW" 4243 id="SingleOptionSelector0-110V - TW-7826735038625-" 4244 4245 > 4246 <label 4247 class="single-label" 4248 title="110V - TW" 4249 for="SingleOptionSelector0-110V - TW-7826735038625-" 4250 > 4251 110V - TW 4252 </label></div> 4253 ��<div class="swatch-element 220v-eu available" data-value="220V - EU"> 4254 <input 4255 class="single-option" 4256 type="radio" 4257 name="SingleOptionSelector-0-7826735038625-" 4258 data-index="option1" 4259 value="220V - EU" 4260 id="SingleOptionSelector0-220V - EU-7826735038625-" 4261 4262 > 4263 <label 4264 class="single-label" 4265 title="220V - EU" 4266 for="SingleOptionSelector0-220V - EU-7826735038625-" 4267 > 4268 220V - EU 4269 </label></div> 4270 ��<div class="swatch-element 220v-uk available" data-value="220V - UK"> 4271 <input 4272 class="single-option" 4273 type="radio" 4274 name="SingleOptionSelector-0-7826735038625-" 4275 data-index="option1" 4276 value="220V - UK" 4277 id="SingleOptionSelector0-220V - UK-7826735038625-" 4278 4279 > 4280 <label 4281 class="single-label" 4282 title="220V - UK" 4283 for="SingleOptionSelector0-220V - UK-7826735038625-" 4284 > 4285 220V - UK 4286 </label></div> 4287 ��</div><div class="selector-wrapper selector-wrapper-1 swatch option-color" data-option-index="0" data-option-position="1" > 4288 <label class="form-label"> 4289 Color:
4290 <span class="label-value-2">White</span> 4291 </label><div class="swatch-element white available" data-value="White"> 4292 <input 4293 class="single-option" 4294 type="radio" 4295 name="SingleOptionSelector-1-7826735038625-" 4296 data-index="option2" 4297 value="White" 4298 id="SingleOptionSelector1-White-7826735038625-" 4299 4300 > 4301 <label 4302 class="single-label" 4303 title="White" 4304 for="SingleOptionSelector1-White-7826735038625-" 4305 > 4306 <span class="pattern" 4307 style="background-color: white; 4308 background-image: url(//www.hiroia.com/cdn/shop/files/white.png?v=14226) 4309 "> 4310 </span> 4311 </label> 4312 </div><div class="swatch-element black soldout" data-value="Black"> 4313 <input 4314 class="single-option" 4315 type="radio" 4316 name="SingleOptionSelector-1-7826735038625-" 4317 data-index="option2" 4318 value="Black" 4319 id="SingleOptionSelector1-Black-7826735038625-" 4320 disabled 4321 > 4322 <label 4323 class="single-label" 4324 title="Black" 4325 for="SingleOptionSelector1-Black-7826735038625-" 4326 > 4327 <span class="pattern" 4328 style="background-color: black; 4329 background-image: url(//www.hiroia.com/cdn/shop/files/black.png?v=14226) 4330 "> 4331 </span> 4332 </label> 4333 </div></div><select name="id" id="ProductSelect-7826735038625-" class="selector-wrapper-hidden" style="display: none;"><option value="44757671444641" data-value="44757671444641"> 4334 110V - US / White 4335 </option><option disabled="disabled" data-value="45025169572001">110V - US / Black - Sold out</option><option value="43651533799585" data-value="43651533799585"> 4336 110V - TW / White 4337 </option><option disabled="disabled" data-value="45025169539233">110V - TW / Black - Sold out</option><option value="44765540122785" data-value="44765540122785"> 4338 220V - EU / White 4339 </option><option value="45025169604769" data-value="45025169604769"> 4340 220V - EU / Black 4341 </option><option value="44757671739553" data-value="44757671739553"> 4342 220V - UK / White 4343 </option><option value="45025169637537" data-value="45025169637537"> 4344 220V - UK / Black 4345 </option> 4346 </select> 4347 4348 <label class="form-label label-quantity-2">Quantity:</label> 4349 <quickshop-update-quantity class="previewCartItem-qty quickshop-quantity"> 4350 <a href="javascript:void(0)" data-minus-quantity-quickshop="" class="minus btn-quantity"></a> 4351 <input class="form-input quantity ProductDrop" name="quantity" id="quickshop-update-7826735038625" data-qtt-id1="quantity7826735038625" value="1" type="number" data-product-card-quantity data-product-card-quantity-id="7826735038625"/> 4352 <a href="javascript:void(0)" data-plus-quantity-quickshop="" class="plus btn-quantity"></a> 4353 </quickshop-update-quantity> 4354 4355 <div class="product-card__button2"> 4356 <input type="hidden" name="quantity" value="1" /> 4357 <button data-btn-addToCart class="button button2 add-to-cart-btn" type="submit" data-form-id="#swatch-form-7826735038625--"> 4358 Add 4359 </button> 4360 4361 <button data-cancel-quickshop-popup class="button button2 cancel-btn"> 4362 Cancel 4363 </button> 4364 4365 </div> 4366 </form> 4367</div> 4368 </div> 4369 </div></div> 4370 </div> 4371 <div class="card-information"> 4372 <div class="card-information__wrapper text-center">
4372<a class="card-title link-underline card-title-change" href="/products/hikaru" data-product-title="Hikaru" data-product-url="/products/hikaru"> 4373 <span class="text"> 4374 Hikaru 4375 4376 <span data-change-title> </span> 4377 4378 </span> 4379 </a><div class="card-summary card-list__hidden"> 4380 Meet the Hiroia Hikaru V60 Smart Brewer. This advanced coffee brewing device combines the expertise of Hiroia and the renowned craftsmanship of Hario to bring you a brewing experience like no other. With precise control over extraction flow rate, water temperature, and brewing time,... 4381</div> 4382 4383 <div class="card-price"> 4384 4385<div 4386 class=" 4387 price " 4388> 4389 <dl><div class="price__regular"> 4390 <dt> 4391 <span class="visually-hidden visually-hidden--inline">Regular price</span> 4392 </dt> 4393 <dd class="price__last"> 4394 <span class="price-item price-item--regular"> 4395 $799.00 USD 4396 </span> 4397 <!-- ååç¾é广 ¼ --></dd> 4398 </div> 4399 <div class="price__sale"> 4400 <dt class="price__compare"> 4401 <span class="visually-hidden visually-hidden--inline">Regular price</span> 4402 </dt> 4403 <dd class="price__compare"> 4404 <s class="price-item price-item--regular"> 4405 4406 </s> 4407 </dd> 4408 <dt> 4409 <span class="visually-hidden visually-hidden--inline">Sale price</span> 4410 </dt> 4411 <dd class="price__last"> 4412 <span class="price-item price-item--sale"> 4413 $799.00 USD 4414 </span> 4415 </dd></div> 4416 <small class="unit-price caption hidden"> 4417 <dt class="visually-hidden">Unit price</dt> 4418 <dd class="price__last"> 4419 <span></span> 4420 <span aria-hidden="true">/</span> 4421 <span class="visually-hidden"> per </span> 4422 <span> 4423 </span> 4424 </dd> 4425 </small> 4426 </dl> 4427</div> 4428 4429 </div> 4430 </div><div class="card-swatch text-center clearfix quick_shop_type_2" id="product-swatch-7826735038625"> 4431 <ul class="swatch list-unstyled"> 4432<li class="item"> 4433 <div class="item-wrapper clearfix"> 4434 <label 4435 4436 class="swatch-label" 4437 data-value="white" 4438 data-variant-id="44757671444641" 4439 title="White" 4440 4441 data-variant-img="//www.hiroia.com/cdn/shop/files/2df759361d8d047ec9d39e30f8472fa921c25f66_800x.png?v=1752188436" 4442 4443 > 4444 <span class="pattern" 4445 style=" 4446 background-color: white; 4447 background-image: url(//www.hiroia.com/cdn/shop/files/white.png?v=14226) 4448 "> 4449 </span> 4450 white 4451 </label> 4452 <span class="tooltip"> 4453 4454 White 4455 4456 </span> 4457 </div> 4458 </li> 4459 4460 4461 4462 4463<li class="item"> 4464 <div class="item-wrapper clearfix"> 4465 <label 4466 4467 class="swatch-label" 4468 data-value="black" 4469 data-variant-id="45025169572001" 4470 title="Black" 4471 4472 data-variant-img="//www.hiroia.com/cdn/shop/files/7e1f8febb8b3175eaf604d310f9f8437a049d2e9_800x.png?v=1752188391" 4473 4474 >
4475 <span class="pattern" 4476 style=" 4477 background-color: black; 4478 background-image: url(//www.hiroia.com/cdn/shop/files/black.png?v=14226) 4479 "> 4480 </span> 4481 black 4482 </label> 4483 <span class="tooltip"> 4484 4485 Black 4486 4487 </span> 4488 </div> 4489 </li> 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 </ul> 4502 </div> 4503 4504<div class="card-action__group card-list__hidden"> 4505 <div class="card-action"> 4506 <form action="/cart/add" method="post" class="variants" id="form-7826735038625-list" data-product-id="7826735038625" enctype="multipart/form-data"><a class="button button-ATC" href="/products/hikaru" data-quickshop-popup> 4507 Quick Add 4508 </a></form> 4509 </div> 4510</div> 4511<div class="card-action__group variants-popup card-list__hidden"> 4512 <div class="card-action variants-popup-form"><div class="custom-scrollbar"> 4513 4514
4514<script> 4515 window.quick_view_inven_array_7826735038625 = { 4516 4517 '44757671444641': '46', 4518 4519 '45025169572001': '0', 4520 4521 '43651533799585': '46', 4522 4523 '45025169539233': '0', 4524 4525 '44765540122785': '47', 4526 4527 '45025169604769': '46', 4528 4529 '44757671739553': '43', 4530 4531 '45025169637537': '40', 4532 4533 }; 4534 </script>
4534 4535 4536 4537<a href="#" class="variants-popup-close" data-cancel-quickshop-popup alt="Close"> 4538 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 4539 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 4540</svg> 4541 Close 4542</a> 4543 4544<div class="variants-popup-content text-center" data-quickshop> 4545 4546 <form action="/cart/add" method="post" class="variants" id="swatch-form-7826735038625--list" data-id="product-actions-7826735038625list" enctype="multipart/form-data"><div class="selector-wrapper selector-wrapper-2 swatch" data-option-index="1"> 4547 <label class="form-label"> 4548 Voltage/Plug Type: 4549 <span class="label-value-1">110V - US</span> 4550 </label><div class="swatch-element 110v-us available" data-value="110V - US"> 4551 <input 4552 class="single-option" 4553 type="radio" 4554 name="SingleOptionSelector-0-7826735038625-list" 4555 data-index="option1" 4556 value="110V - US" 4557 id="SingleOptionSelector0-110V - US-7826735038625-list" 4558 4559 > 4560 <label 4561 class="single-label" 4562 title="110V - US" 4563 for="SingleOptionSelector0-110V - US-7826735038625-list" 4564 > 4565 110V - US 4566 </label></div> 4567 ��<div class="swatch-element 110v-tw available" data-value="110V - TW"> 4568 <input 4569 class="single-option" 4570 type="radio" 4571 name="SingleOptionSelector-0-7826735038625-list" 4572 data-index="option1" 4573 value="110V - TW" 4574 id="SingleOptionSelector0-110V - TW-7826735038625-list" 4575 4576 > 4577 <label 4578 class="single-label" 4579 title="110V - TW" 4580 for="SingleOptionSelector0-110V - TW-7826735038625-list" 4581 > 4582 110V - TW 4583 </label></div> 4584 ��<div class="swatch-element 220v-eu available" data-value="220V - EU"> 4585 <input 4586 class="single-option" 4587 type="radio" 4588 name="SingleOptionSelector-0-7826735038625-list" 4589 data-index="option1" 4590 value="220V - EU" 4591 id="SingleOptionSelector0-220V - EU-7826735038625-list" 4592 4593 > 4594 <label 4595 class="single-label" 4596 title="220V - EU" 4597 for="SingleOptionSelector0-220V - EU-7826735038625-list" 4598 > 4599 220V - EU 4600 </label></div> 4601 ��<div class="swatch-element 220v-uk available" data-value="220V - UK"> 4602 <input 4603 class="single-option" 4604 type="radio" 4605 name="SingleOptionSelector-0-7826735038625-list" 4606 data-index="option1" 4607 value="220V - UK" 4608 id="SingleOptionSelector0-220V - UK-7826735038625-list" 4609 4610 > 4611 <label 4612 class="single-label" 4613 title="220V - UK" 4614 for="SingleOptionSelector0-220V - UK-7826735038625-list" 4615 > 4616 220V - UK 4617 </label></div> 4618 ��</div><div class="selector-wrapper selector-wrapper-1 swatch option-color" data-option-index="0" data-option-position="1" > 4619 <label class="form-label"> 4620 Color:
4621 <span class="label-value-2">White</span> 4622 </label><div class="swatch-element white available" data-value="White"> 4623 <input 4624 class="single-option" 4625 type="radio" 4626 name="SingleOptionSelector-1-7826735038625-list" 4627 data-index="option2" 4628 value="White" 4629 id="SingleOptionSelector1-White-7826735038625-list" 4630 4631 > 4632 <label 4633 class="single-label" 4634 title="White" 4635 for="SingleOptionSelector1-White-7826735038625-list" 4636 > 4637 <span class="pattern" 4638 style="background-color: white; 4639 background-image: url(//www.hiroia.com/cdn/shop/files/white.png?v=14226) 4640 "> 4641 </span> 4642 </label> 4643 </div><div class="swatch-element black soldout" data-value="Black"> 4644 <input 4645 class="single-option" 4646 type="radio" 4647 name="SingleOptionSelector-1-7826735038625-list" 4648 data-index="option2" 4649 value="Black" 4650 id="SingleOptionSelector1-Black-7826735038625-list" 4651 disabled 4652 > 4653 <label 4654 class="single-label" 4655 title="Black" 4656 for="SingleOptionSelector1-Black-7826735038625-list" 4657 > 4658 <span class="pattern" 4659 style="background-color: black; 4660 background-image: url(//www.hiroia.com/cdn/shop/files/black.png?v=14226) 4661 "> 4662 </span> 4663 </label> 4664 </div></div><select name="id" id="ProductSelect-7826735038625-list" class="selector-wrapper-hidden" style="display: none;"><option value="44757671444641" data-value="44757671444641"> 4665 110V - US / White 4666 </option><option disabled="disabled" data-value="45025169572001">110V - US / Black - Sold out</option><option value="43651533799585" data-value="43651533799585"> 4667 110V - TW / White 4668 </option><option disabled="disabled" data-value="45025169539233">110V - TW / Black - Sold out</option><option value="44765540122785" data-value="44765540122785"> 4669 220V - EU / White 4670 </option><option value="45025169604769" data-value="45025169604769"> 4671 220V - EU / Black 4672 </option><option value="44757671739553" data-value="44757671739553"> 4673 220V - UK / White 4674 </option><option value="45025169637537" data-value="45025169637537"> 4675 220V - UK / Black 4676 </option> 4677 </select> 4678 4679 <label class="form-label label-quantity-2">Quantity:</label> 4680 <quickshop-update-quantity class="previewCartItem-qty quickshop-quantity"> 4681 <a href="javascript:void(0)" data-minus-quantity-quickshop="" class="minus btn-quantity"></a> 4682 <input class="form-input quantity ProductDrop" name="quantity" id="quickshop-update-7826735038625" data-qtt-id1="quantity7826735038625" value="1" type="number" data-product-card-quantity data-product-card-quantity-id="7826735038625"/> 4683 <a href="javascript:void(0)" data-plus-quantity-quickshop="" class="plus btn-quantity"></a> 4684 </quickshop-update-quantity> 4685 4686 <div class="product-card__button2"> 4687 <input type="hidden" name="quantity" value="1" /> 4688 <button data-btn-addToCart class="button button2 add-to-cart-btn" type="submit" data-form-id="#swatch-form-7826735038625--list"> 4689 Add 4690 </button> 4691 4692 <button data-cancel-quickshop-popup class="button button2 cancel-btn"> 4693 Cancel 4694 </button> 4695 4696 </div> 4697 </form> 4698</div> 4699 </div></div> 4700</div> 4701</div> 4702 </div> 4703</div> 4704 4705 4706 </div><div class="product"> 4707 4708 4709<div class="product-item" data-product-id="7394128855201" data-json-product='{"id": 7394128855201,"handle": "samantha","media": null,"variants": [{"id":45551219540129,"title":"220V - EU","option1":"220V - EU","option2":null,"option3":null,"sku":"0-1","requires_shipping":true,"taxable":false,"featured_image":{"id":41609066709153,"product_id":7394128855201,"position":1,"created_at":"2025-07-11T06:59:23+08:00","updated_at":"2025-07-11T07:02:03+08:00","alt":null,"width":4000,"height":4000,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/017792487aa2f9fa852750afd19aaf8f537fee51.png?v=1752188523","variant_ids":[45551219540129,45551219572897]},"available":true,"name":"Samantha - 220V - EU","public_title":"220V - EU","options":["220V - EU"],"price":79900,"weight":0,"compare_at_price":99900,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":34636628066465,"position":1,"preview_image":{"aspect_ratio":1.0,"height":4000,"width":4000,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/017792487aa2f9fa852750afd19aaf8f537fee51.png?v=1752188523"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":45551219572897,"title":"220V - CN","option1":"220V - CN","option2":null,"option3":null,"sku":"0-2","requires_shipping":true,"taxable":false,"featured_image":{"id":41609066709153,"product_id":7394128855201,"position":1,"created_at":"2025-07-11T06:59:23+08:00","updated_at":"2025-07-11T07:02:03+08:00","alt":null,"width":4000,"height":4000,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/017792487aa2f9fa852750afd19aaf8f537fee51.png?v=1752188523","variant_ids":[45551219540129,45551219572897]},"available":true,"name":"Samantha - 220V - CN","public_title":"220V - CN","options":["220V - CN"],"price":79900,"weight":0,"compare_at_price":99900,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":34636628066465,"position":1,"preview_image":{"aspect_ratio":1.0,"height":4000,"width":4000,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/017792487aa2f9fa852750afd19aaf8f537fee51.png?v=1752188523"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}]}'> 4710 <div class="card"> 4711 <div class="card-product"> 4712 <div class="card-product__wrapper"><div class="card__badge badge-left halo-productBadges halo-productBadges--left date-67387480 date1-779" data-new-badge-number="30"><span class="badge sale-badge" aria-hidden="true">Sale 4713</span></div> 4714<a class="card-media card-media--adapt media--hover-effect media--loading-effect " 4715 href="/products/samantha" 4716 4717 4718 style="padding-bottom: 100.0%;" 4719 4720 4721 > 4722 <img data-srcset="//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_165x.png?v=1752188523 165w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_170x.png?v=1752188523 170w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_185x.png?v=1752188523 185w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_198x.png?v=1752188523 198w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_210x.png?v=1752188523 210w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_220x.png?v=1752188523 220w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_245x.png?v=1752188523 245w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_270x.png?v=1752188523 270w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_290x.png?v=1752188523 290w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_320x.png?v=1752188523 320w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_355x.png?v=1752188523 355w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_360x.png?v=1752188523 360w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_370x.png?v=1752188523 370w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_420x.png?v=1752188523 420w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_430x.png?v=1752188523 430w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_460x.png?v=1752188523 460w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_470x.png?v=1752188523 470w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_510x.png?v=1752188523 510w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_523x.png?v=1752188523 523w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_533x.png?v=1752188523 533w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_534x.png?v=1752188523 534w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_570x.png?v=1752188523 570w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_640x.png?v=1752188523 640w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_665x.png?v=1752188523 665w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_670x.png?v=1752188523 670w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_720x.png?v=1752188523 720w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_775x.png?v=1752188523 775w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_785x.png?v=1752188523 785w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_870x.png?v=1752188523 870w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_930x.png?v=1752188523 930w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_935x.png?v=1752188523 935w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_940
4722x.png?v=1752188523 940w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_1066x.png?v=1752188523 1066w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_1160x.png?v=1752188523 1160w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_1170x.png?v=1752188523 1170w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_1270x.png?v=1752188523 1270w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_1370x.png?v=1752188523 1370w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_1570x.png?v=1752188523 1570w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_1770x.png?v=1752188523 1770w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_1850x.png?v=1752188523 1850w,//www.hiroia.com/cdn/shop/files/017792487aa2f9fa852750afd19aaf8f537fee51_1880x.png?v=1752188523 1880w" 4723 4724sizes="(min-width: 1100px) 4000px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
4725alt="Samantha" 4726size="4000" 4727loading="lazy" 4728class="motion-reduce lazyload" 4729 /> 4730 <img data-srcset="//www.hiroia.com/cdn/shop/products/S1.5_165x.jpg?v=1752188523 165w,//www.hiroia.com/cdn/shop/products/S1.5_170x.jpg?v=1752188523 170w,//www.hiroia.com/cdn/shop/products/S1.5_185x.jpg?v=1752188523 185w,//www.hiroia.com/cdn/shop/products/S1.5_198x.jpg?v=1752188523 198w,//www.hiroia.com/cdn/shop/products/S1.5_210x.jpg?v=1752188523 210w,//www.hiroia.com/cdn/shop/products/S1.5_220x.jpg?v=1752188523 220w,//www.hiroia.com/cdn/shop/products/S1.5_245x.jpg?v=1752188523 245w,//www.hiroia.com/cdn/shop/products/S1.5_270x.jpg?v=1752188523 270w,//www.hiroia.com/cdn/shop/products/S1.5_290x.jpg?v=1752188523 290w,//www.hiroia.com/cdn/shop/products/S1.5_320x.jpg?v=1752188523 320w,//www.hiroia.com/cdn/shop/products/S1.5_355x.jpg?v=1752188523 355w,//www.hiroia.com/cdn/shop/products/S1.5_360x.jpg?v=1752188523 360w,//www.hiroia.com/cdn/shop/products/S1.5_370x.jpg?v=1752188523 370w,//www.hiroia.com/cdn/shop/products/S1.5_420x.jpg?v=1752188523 420w,//www.hiroia.com/cdn/shop/products/S1.5_430x.jpg?v=1752188523 430w,//www.hiroia.com/cdn/shop/products/S1.5_460x.jpg?v=1752188523 460w,//www.hiroia.com/cdn/shop/products/S1.5_470x.jpg?v=1752188523 470w,//www.hiroia.com/cdn/shop/products/S1.5_510x.jpg?v=1752188523 510w,//www.hiroia.com/cdn/shop/products/S1.5_523x.jpg?v=1752188523 523w,//www.hiroia.com/cdn/shop/products/S1.5_533x.jpg?v=1752188523 533w,//www.hiroia.com/cdn/shop/products/S1.5_534x.jpg?v=1752188523 534w,//www.hiroia.com/cdn/shop/products/S1.5_570x.jpg?v=1752188523 570w,//www.hiroia.com/cdn/shop/products/S1.5_640x.jpg?v=1752188523 640w,//www.hiroia.com/cdn/shop/products/S1.5_665x.jpg?v=1752188523 665w,//www.hiroia.com/cdn/shop/products/S1.5_670x.jpg?v=1752188523 670w,//www.hiroia.com/cdn/shop/products/S1.5_720x.jpg?v=1752188523 720w,//www.hiroia.com/cdn/shop/products/S1.5_775x.jpg?v=1752188523 775w,//www.hiroia.com/cdn/shop/products/S1.5_785x.jpg?v=1752188523 785w,//www.hiroia.com/cdn/shop/products/S1.5_870x.jpg?v=1752188523 870w,//www.hiroia.com/cdn/shop/products/S1.5_930x.jpg?v=1752188523 930w,//www.hiroia.com/cdn/shop/products/S1.5_935x.jpg?v=1752188523 935w,//www.hiroia.com/cdn/shop/products/S1.5_940x.jpg?v=1752188523 940w,//www.hiroia.com/cdn/shop/products/S1.5_1066x.jpg?v=1752188523 1066w,//www.hiroia.com/cdn/shop/products/S1.5_1160x.jpg?v=1752188523 1160w,//www.hiroia.com/cdn/shop/products/S1.5_1170x.jpg?v=1752188523 1170w,//www.hiroia.com/cdn/shop/products/S1.5_1270x.jpg?v=1752188523 1270w,//www.hiroia.com/cdn/shop/products/S1.5_1370x.jpg?v=1752188523 1370w,//www.hiroia.com/cdn/shop/products/S1.5_1570x.jpg?v=1752188523 1570w,//www.hiroia.com/cdn/shop/products/S1.5_1770x.jpg?v=1752188523 1770w,//www.hiroia.com/cdn/shop/products/S1.5_1850x.jpg?v=1752188523 1850w,//www.hiroia.com/cdn/shop/products/S1.5_1880x.jpg?v=1752188523 1880w" 4731 4732sizes="(min-width: 1100px) 4000px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
4733alt="Samantha" 4734size="4000" 4735loading="lazy" 4736class="motion-reduce lazyload" 4737 /> 4738 �<span class="data-lazy-loading"></span>�<div class="media-loading" data-title="Ella">Ella</div> 4739 </a><div class="card-product__group group-right"><div class="card-product__group-item card-quickview card-quickviewIcon"> 4740 <a class="quickview-icon" href="javascript:void(0)" data-product-id="7394128855201" data-open-quick-view-popup data-product-handle="samantha"> 4741 <span class="visually-hidden">Quick View</span> 4742 <span class="text"> 4743 Quick View 4744 </span> 4745 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 511.999 511.999" aria-hidden="true" focusable="false" role="presentation" class="icon icon-eyes"> 4746<path d="M508.745,246.041c-4.574-6.257-113.557-153.206-252.748-153.206S7.818,239.784,3.249,246.035 4747 c-4.332,5.936-4.332,13.987,0,19.923c4.569,6.257,113.557,153.206,252.748,153.206s248.174-146.95,252.748-153.201 4748 C513.083,260.028,513.083,251.971,508.745,246.041z M255.997,385.406c-102.529,0-191.33-97.533-217.617-129.418 4749 c26.253-31.913,114.868-129.395,217.617-129.395c102.524,0,191.319,97.516,217.617,129.418 4750 C447.361,287.923,358.746,385.406,255.997,385.406z"></path> 4751 <path d="M255.997,154.725c-55.842,0-101.275,45.433-101.275,101.275s45.433,101.275,101.275,101.275 4752 s101.275-45.433,101.275-101.275S311.839,154.725,255.997,154.725z M255.997,323.516c-37.23,0-67.516-30.287-67.516-67.516 4753 s30.287-67.516,67.516-67.516s67.516,30.287,67.516,67.516S293.227,323.516,255.997,323.516z"></path> 4754</svg> 4755 </a> 4756 </div></div> 4757<div class="card-action"> 4758 <form action="/cart/add" method="post" class="variants" id="form-7394128855201-" data-product-id="7394128855201" enctype="multipart/form-data"><a class="button button-ATC" href="/products/samantha" data-quickshop-popup data-product-handle="samantha"> 4759 4760 Quick Add 4761 4762 </a></form><div class="variants-popup custom-scrollbar"> 4763 4764
4764<script> 4765 window.quick_view_inven_array_7394128855201 = { 4766 4767 '45551219540129': '50', 4768 4769 '45551219572897': '50', 4770 4771 }; 4772 </script>
4772 4773 4774 4775<a href="#" class="variants-popup-close" data-cancel-quickshop-popup alt="Close"> 4776 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 4777 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 4778</svg> 4779 Close 4780</a> 4781 4782<div class="variants-popup-content text-center" data-quickshop> 4783 4784 <form action="/cart/add" method="post" class="variants" id="swatch-form-7394128855201--" data-id="product-actions-7394128855201" enctype="multipart/form-data"><div class="selector-wrapper selector-wrapper-1 swatch" data-option-index="0"> 4785 <label class="form-label"> 4786 Voltage/Plug Type: 4787 <span class="label-value-1">220V - EU</span> 4788 </label><div class="swatch-element 220v-eu available" data-value="220V - EU"> 4789 <input 4790 class="single-option" 4791 type="radio" 4792 name="SingleOptionSelector-0-7394128855201-" 4793 data-index="option1" 4794 value="220V - EU" 4795 id="SingleOptionSelector0-220V - EU-7394128855201-" 4796 4797 > 4798 <label 4799 class="single-label" 4800 title="220V - EU" 4801 for="SingleOptionSelector0-220V - EU-7394128855201-" 4802 > 4803 220V - EU 4804 </label></div> 4805 �<div class="swatch-element 220v-cn available" data-value="220V - CN"> 4806 <input 4807 class="single-option" 4808 type="radio" 4809 name="SingleOptionSelector-0-7394128855201-" 4810 data-index="option1" 4811 value="220V - CN" 4812 id="SingleOptionSelector0-220V - CN-7394128855201-" 4813 4814 > 4815 <label 4816 class="single-label" 4817 title="220V - CN" 4818 for="SingleOptionSelector0-220V - CN-7394128855201-" 4819 > 4820 220V - CN 4821 </label></div> 4822 �</div><select name="id" id="ProductSelect-7394128855201-" class="selector-wrapper-hidden" style="display: none;"><option value="45551219540129" data-value="45551219540129"> 4823 220V - EU 4824 </option><option value="45551219572897" data-value="45551219572897"> 4825 220V - CN 4826 </option> 4827 </select> 4828 4829 <label class="form-label label-quantity-2">Quantity:</label> 4830 <quickshop-update-quantity class="previewCartItem-qty quickshop-quantity"> 4831 <a href="javascript:void(0)" data-minus-quantity-quickshop="" class="minus btn-quantity"></a> 4832 <input class="form-input quantity ProductDrop" name="quantity" id="quickshop-update-7394128855201" data-qtt-id1="quantity7394128855201" value="1" type="number" data-product-card-quantity data-product-card-quantity-id="7394128855201"/> 4833 <a href="javascript:void(0)" data-plus-quantity-quickshop="" class="plus btn-quantity"></a> 4834 </quickshop-update-quantity> 4835 4836 <div class="product-card__button2"> 4837 <input type="hidden" name="quantity" value="1" /> 4838 <button data-btn-addToCart class="button button2 add-to-cart-btn" type="submit" data-form-id="#swatch-form-7394128855201--"> 4839 Add 4840 </button> 4841 4842 <button data-cancel-quickshop-popup class="button button2 cancel-btn"> 4843 Cancel 4844 </button> 4845 4846 </div> 4847 </form> 4848</div> 4849 </div> 4850 </div></div> 4851 </div> 4852 <div class="card-information"> 4853 <div class="card-information__wrapper text-center">
4853<a class="card-title link-underline" href="/products/samantha" data-product-title="Samantha" data-product-url="/products/samantha"> 4854 <span class="text"> 4855 Samantha 4856 4857 </span> 4858 </a><div class="card-summary card-list__hidden"> 4859 Samantha is an automated pour over coffee maker that delivers exceptional pour over coffee at the push of a button. This coffee machine streamlines your workflow so you have more time to focus on what really matters: your customers. Advanced features such as adjustable... 4860</div> 4861 4862 <div class="card-price"> 4863 4864<div 4865 class=" 4866 price price--on-sale " 4867> 4868 <dl><div class="price__regular"> 4869 <dt> 4870 <span class="visually-hidden visually-hidden--inline">Regular price</span> 4871 </dt> 4872 <dd class="price__last"> 4873 <span class="price-item price-item--regular"> 4874 $799.00 USD 4875 </span> 4876 <!-- ååç¾é广 ¼ --></dd> 4877 </div> 4878 <div class="price__sale"> 4879 <dt class="price__compare"> 4880 <span class="visually-hidden visually-hidden--inline">Regular price</span> 4881 </dt> 4882 <dd class="price__compare"> 4883 <s class="price-item price-item--regular"> 4884 $999.00 USD 4885 </s> 4886 </dd> 4887 <dt> 4888 <span class="visually-hidden visually-hidden--inline">Sale price</span> 4889 </dt> 4890 <dd class="price__last"> 4891 <span class="price-item price-item--sale"> 4892 $799.00 USD 4893 </span> 4894 </dd></div> 4895 <small class="unit-price caption hidden"> 4896 <dt class="visually-hidden">Unit price</dt> 4897 <dd class="price__last"> 4898 <span></span> 4899 <span aria-hidden="true">/</span> 4900 <span class="visually-hidden"> per </span> 4901 <span> 4902 </span> 4903 </dd> 4904 </small> 4905 </dl> 4906</div> 4907 4908 </div> 4909 </div> 4910<div class="card-action__group card-list__hidden"> 4911 <div class="card-action"> 4912 <form action="/cart/add" method="post" class="variants" id="form-7394128855201-list" data-product-id="7394128855201" enctype="multipart/form-data"><a class="button button-ATC" href="/products/samantha" data-quickshop-popup> 4913 Quick Add 4914 </a></form> 4915 </div> 4916</div> 4917<div class="card-action__group variants-popup card-list__hidden"> 4918 <div class="card-action variants-popup-form"><div class="custom-scrollbar"> 4919 4920
4920<script> 4921 window.quick_view_inven_array_7394128855201 = { 4922 4923 '45551219540129': '50', 4924 4925 '45551219572897': '50', 4926 4927 }; 4928 </script>
4928 4929 4930 4931<a href="#" class="variants-popup-close" data-cancel-quickshop-popup alt="Close"> 4932 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 4933 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 4934</svg> 4935 Close 4936</a> 4937 4938<div class="variants-popup-content text-center" data-quickshop> 4939 4940 <form action="/cart/add" method="post" class="variants" id="swatch-form-7394128855201--list" data-id="product-actions-7394128855201list" enctype="multipart/form-data"><div class="selector-wrapper selector-wrapper-1 swatch" data-option-index="0"> 4941 <label class="form-label"> 4942 Voltage/Plug Type: 4943 <span class="label-value-1">220V - EU</span> 4944 </label><div class="swatch-element 220v-eu available" data-value="220V - EU"> 4945 <input 4946 class="single-option" 4947 type="radio" 4948 name="SingleOptionSelector-0-7394128855201-list" 4949 data-index="option1" 4950 value="220V - EU" 4951 id="SingleOptionSelector0-220V - EU-7394128855201-list" 4952 4953 > 4954 <label 4955 class="single-label" 4956 title="220V - EU" 4957 for="SingleOptionSelector0-220V - EU-7394128855201-list" 4958 > 4959 220V - EU 4960 </label></div> 4961 �<div class="swatch-element 220v-cn available" data-value="220V - CN"> 4962 <input 4963 class="single-option" 4964 type="radio" 4965 name="SingleOptionSelector-0-7394128855201-list" 4966 data-index="option1" 4967 value="220V - CN" 4968 id="SingleOptionSelector0-220V - CN-7394128855201-list" 4969 4970 > 4971 <label 4972 class="single-label" 4973 title="220V - CN" 4974 for="SingleOptionSelector0-220V - CN-7394128855201-list" 4975 > 4976 220V - CN 4977 </label></div> 4978 �</div><select name="id" id="ProductSelect-7394128855201-list" class="selector-wrapper-hidden" style="display: none;"><option value="45551219540129" data-value="45551219540129"> 4979 220V - EU 4980 </option><option value="45551219572897" data-value="45551219572897"> 4981 220V - CN 4982 </option> 4983 </select> 4984 4985 <label class="form-label label-quantity-2">Quantity:</label> 4986 <quickshop-update-quantity class="previewCartItem-qty quickshop-quantity"> 4987 <a href="javascript:void(0)" data-minus-quantity-quickshop="" class="minus btn-quantity"></a> 4988 <input class="form-input quantity ProductDrop" name="quantity" id="quickshop-update-7394128855201" data-qtt-id1="quantity7394128855201" value="1" type="number" data-product-card-quantity data-product-card-quantity-id="7394128855201"/> 4989 <a href="javascript:void(0)" data-plus-quantity-quickshop="" class="plus btn-quantity"></a> 4990 </quickshop-update-quantity> 4991 4992 <div class="product-card__button2"> 4993 <input type="hidden" name="quantity" value="1" /> 4994 <button data-btn-addToCart class="button button2 add-to-cart-btn" type="submit" data-form-id="#swatch-form-7394128855201--list"> 4995 Add 4996 </button> 4997 4998 <button data-cancel-quickshop-popup class="button button2 cancel-btn"> 4999 Cancel 5000 </button> 5001 5002 </div> 5003 </form> 5004</div> 5005 </div></div> 5006</div> 5007</div> 5008 </div> 5009</div> 5010 5011 5012 </div><div class="product"> 5013 5014 5015<div class="product-item" data-product-id="7394124628129" data-json-product='{"id": 7394124628129,"handle": "jimmy","media": null,"variants": [{"id":42010202570913,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"0","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Jimmy","public_title":null,"options":["Default Title"],"price":17900,"weight":2000,"compare_at_price":null,"inventory_management":null,"barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}]}'> 5016 <div class="card"> 5017 <div class="card-product"> 5018 <div class="card-product__wrapper"><div class="card__badge badge-left halo-productBadges halo-productBadges--left date-67387482 date1-779" data-new-badge-number="30"></div> 5019<a class="card-media card-media--adapt media--hover-effect media--loading-effect " 5020 href="/products/jimmy" 5021 5022 5023 style="padding-bottom: 100.0%;" 5024 5025 5026 > 5027 <img data-srcset="//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_165x.png?v=1752188684 165w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_170x.png?v=1752188684 170w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_185x.png?v=1752188684 185w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_198x.png?v=1752188684 198w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_210x.png?v=1752188684 210w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_220x.png?v=1752188684 220w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_245x.png?v=1752188684 245w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_270x.png?v=1752188684 270w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_290x.png?v=1752188684 290w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_320x.png?v=1752188684 320w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_355x.png?v=1752188684 355w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_360x.png?v=1752188684 360w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_370x.png?v=1752188684 370w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_420x.png?v=1752188684 420w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_430x.png?v=1752188684 430w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_460x.png?v=1752188684 460w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_470x.png?v=1752188684 470w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_510x.png?v=1752188684 510w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_523x.png?v=1752188684 523w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_533x.png?v=1752188684 533w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_534x.png?v=1752188684 534w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_570x.png?v=1752188684 570w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_640x.png?v=1752188684 640w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_665x.png?v=1752188684 665w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_670x.png?v=1752188684 670w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_720x.png?v=1752188684 720w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_775x.png?v=1752188684 775w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_785x.png?v=1752188684 785w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_870x.png?v=1752188684 870w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_930x.png?v=1752188684 930w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_935x.png?v=1752188684 935w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_940x.png?v=1752188684 940w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_1066x.png?v=1752188684 1066w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_1160x.png?v=1752188684 1160w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_1170x.png?v=1752188684 1170w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_1270x.png?v=1752188684 1270w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_1370x.png?v=1752188684 1370w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_1570x.png?v=1752188684 1570w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_1770x.png?v=1752188684 1770w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_1850x.png?v=1752188684 1850w,//www.hiroia.com/cdn/shop/files/2a05826aabd7dbdc8ac3d64cfb7c89d273c2a50c_1880x.png?v=1752188684 1880w" 5028 5029sizes="(min-width: 1100px) 4000px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
5030alt="Jimmy" 5031size="4000" 5032loading="lazy" 5033class="motion-reduce lazyload" 5034 /> 5035 <img data-srcset="//www.hiroia.com/cdn/shop/products/JIMMY_2_165x.jpg?v=1752188684 165w,//www.hiroia.com/cdn/shop/products/JIMMY_2_170x.jpg?v=1752188684 170w,//www.hiroia.com/cdn/shop/products/JIMMY_2_185x.jpg?v=1752188684 185w,//www.hiroia.com/cdn/shop/products/JIMMY_2_198x.jpg?v=1752188684 198w,//www.hiroia.com/cdn/shop/products/JIMMY_2_210x.jpg?v=1752188684 210w,//www.hiroia.com/cdn/shop/products/JIMMY_2_220x.jpg?v=1752188684 220w,//www.hiroia.com/cdn/shop/products/JIMMY_2_245x.jpg?v=1752188684 245w,//www.hiroia.com/cdn/shop/products/JIMMY_2_270x.jpg?v=1752188684 270w,//www.hiroia.com/cdn/shop/products/JIMMY_2_290x.jpg?v=1752188684 290w,//www.hiroia.com/cdn/shop/products/JIMMY_2_320x.jpg?v=1752188684 320w,//www.hiroia.com/cdn/shop/products/JIMMY_2_355x.jpg?v=1752188684 355w,//www.hiroia.com/cdn/shop/products/JIMMY_2_360x.jpg?v=1752188684 360w,//www.hiroia.com/cdn/shop/products/JIMMY_2_370x.jpg?v=1752188684 370w,//www.hiroia.com/cdn/shop/products/JIMMY_2_420x.jpg?v=1752188684 420w,//www.hiroia.com/cdn/shop/products/JIMMY_2_430x.jpg?v=1752188684 430w,//www.hiroia.com/cdn/shop/products/JIMMY_2_460x.jpg?v=1752188684 460w,//www.hiroia.com/cdn/shop/products/JIMMY_2_470x.jpg?v=1752188684 470w,//www.hiroia.com/cdn/shop/products/JIMMY_2_510x.jpg?v=1752188684 510w,//www.hiroia.com/cdn/shop/products/JIMMY_2_523x.jpg?v=1752188684 523w,//www.hiroia.com/cdn/shop/products/JIMMY_2_533x.jpg?v=1752188684 533w,//www.hiroia.com/cdn/shop/products/JIMMY_2_534x.jpg?v=1752188684 534w,//www.hiroia.com/cdn/shop/products/JIMMY_2_570x.jpg?v=1752188684 570w,//www.hiroia.com/cdn/shop/products/JIMMY_2_640x.jpg?v=1752188684 640w,//www.hiroia.com/cdn/shop/products/JIMMY_2_665x.jpg?v=1752188684 665w,//www.hiroia.com/cdn/shop/products/JIMMY_2_670x.jpg?v=1752188684 670w,//www.hiroia.com/cdn/shop/products/JIMMY_2_720x.jpg?v=1752188684 720w,//www.hiroia.com/cdn/shop/products/JIMMY_2_775x.jpg?v=1752188684 775w,//www.hiroia.com/cdn/shop/products/JIMMY_2_785x.jpg?v=1752188684 785w,//www.hiroia.com/cdn/shop/products/JIMMY_2_870x.jpg?v=1752188684 870w,//www.hiroia.com/cdn/shop/products/JIMMY_2_930x.jpg?v=1752188684 930w,//www.hiroia.com/cdn/shop/products/JIMMY_2_935x.jpg?v=1752188684 935w,//www.hiroia.com/cdn/shop/products/JIMMY_2_940x.jpg?v=1752188684 940w,//www.hiroia.com/cdn/shop/products/JIMMY_2_1066x.jpg?v=1752188684 1066w,//www.hiroia.com/cdn/shop/products/JIMMY_2_1160x.jpg?v=1752188684 1160w,//www.hiroia.com/cdn/shop/products/JIMMY_2_1170x.jpg?v=1752188684 1170w,//www.hiroia.com/cdn/shop/products/JIMMY_2_1270x.jpg?v=1752188684 1270w,//www.hiroia.com/cdn/shop/products/JIMMY_2_1370x.jpg?v=1752188684 1370w,//www.hiroia.com/cdn/shop/products/JIMMY_2_1570x.jpg?v=1752188684 1570w,//www.hiroia.com/cdn/shop/products/JIMMY_2_1770x.jpg?v=1752188684 1770w,//www.hiroia.com/cdn/shop/products/JIMMY_2_1850x.jpg?v=1752188684 1850w,//www.hiroia.com/cdn/shop/products/JIMMY_2_1880x.jpg?v=1752188684 1880w" 5036 5037sizes="(min-width: 1100px) 4000px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
5038alt="Jimmy" 5039size="4000" 5040loading="lazy" 5041class="motion-reduce lazyload" 5042 /> 5043 �<span class="data-lazy-loading"></span>�<div class="media-loading" data-title="Ella">Ella</div> 5044 </a><div class="card-product__group group-right"><div class="card-product__group-item card-quickview card-quickviewIcon"> 5045 <a class="quickview-icon" href="javascript:void(0)" data-product-id="7394124628129" data-open-quick-view-popup data-product-handle="jimmy"> 5046 <span class="visually-hidden">Quick View</span> 5047 <span class="text"> 5048 Quick View 5049 </span> 5050 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 511.999 511.999" aria-hidden="true" focusable="false" role="presentation" class="icon icon-eyes"> 5051<path d="M508.745,246.041c-4.574-6.257-113.557-153.206-252.748-153.206S7.818,239.784,3.249,246.035 5052 c-4.332,5.936-4.332,13.987,0,19.923c4.569,6.257,113.557,153.206,252.748,153.206s248.174-146.95,252.748-153.201 5053 C513.083,260.028,513.083,251.971,508.745,246.041z M255.997,385.406c-102.529,0-191.33-97.533-217.617-129.418 5054 c26.253-31.913,114.868-129.395,217.617-129.395c102.524,0,191.319,97.516,217.617,129.418 5055 C447.361,287.923,358.746,385.406,255.997,385.406z"></path> 5056 <path d="M255.997,154.725c-55.842,0-101.275,45.433-101.275,101.275s45.433,101.275,101.275,101.275 5057 s101.275-45.433,101.275-101.275S311.839,154.725,255.997,154.725z M255.997,323.516c-37.23,0-67.516-30.287-67.516-67.516 5058 s30.287-67.516,67.516-67.516s67.516,30.287,67.516,67.516S293.227,323.516,255.997,323.516z"></path> 5059</svg> 5060 </a> 5061 </div></div> 5062<div class="card-action"> 5063 <form action="/cart/add" method="post" class="variants" id="form-7394124628129-" data-product-id="7394124628129" enctype="multipart/form-data"><input type="hidden" name="id" value="42010202570913" /> 5064 <input type="hidden" name="quantity" value="1" /><button 5065 type="submit" 5066 name="add" 5067 data-btn-addToCart 5068 class="product-form__submit button button--secondary an-" 5069 id="product-add-to-cart" 5070 > 5071 Add to cart 5072 5073</button></form> 5074 </div></div> 5075 </div> 5076 <div class="card-information"> 5077 <div class="card-information__wrapper text-center"><a class="card-title link-underline" href="/products/jimmy" data-product-title="Jimmy" data-product-url="/products/jimmy"> 5078 <span class="text"> 5079 Jimmy 5080 5081 </span> 5082 </a><div class="card-summary card-list__hidden"> 5083 Jimmy is a smart scale with a detachable display that streamlines your workflow. Avoid a cluttered working station while also improving visibility and body posture with convenient, eye level readings. Bluetooth connectivity and a magnetized display makes it easy to set and view from... 5084</div> 5085 5086 <div class="card-price"> 5087 5088<div 5089 class=" 5090 price " 5091> 5092 <dl><div class="price__regular"> 5093 <dt> 5094 <span class="visually-hidden visually-hidden--inline">Regular price</span> 5095 </dt> 5096 <dd class="price__last"> 5097 <span class="price-item price-item--regular"> 5098 $179.00 USD 5099 </span> 5100 <!-- ååç¾é广 ¼ --></dd> 5101 </div> 5102 <div class="price__sale"> 5103 <dt class="price__compare"> 5104 <span class="visually-hidden visually-hidden--inline">Regular price</span> 5105 </dt> 5106 <dd class="price__compare"> 5107 <s class="price-item price-item--regular"> 5108 5109 </s> 5110 </dd> 5111 <dt> 5112 <span class="visually-hidden visually-hidden--inline">Sale price</span> 5113 </dt> 5114 <dd class="price__last"> 5115 <span class="price-item price-item--sale"> 5116 $179.00 USD 5117 </span> 5118 </dd></div> 5119 <small class="unit-price caption hidden"> 5120 <dt class="visually-hidden">Unit price</dt> 5121 <dd class="price__last">
5122 <span></span> 5123 <span aria-hidden="true">/</span> 5124 <span class="visually-hidden"> per </span> 5125 <span> 5126 </span> 5127 </dd> 5128 </small> 5129 </dl> 5130</div> 5131 5132 </div> 5133 </div> 5134<div class="card-action__group card-list__hidden"> 5135 <div class="card-action"> 5136 <form action="/cart/add" method="post" class="variants" id="form-7394124628129-list" data-product-id="7394124628129" enctype="multipart/form-data"><input type="hidden" name="id" value="42010202570913" /> 5137 <input type="hidden" name="quantity" value="1" /><button 5138 class="button button-ATC" 5139 type="submit" 5140 data-form-id="#form-7394124628129-list" 5141 data-btn-addToCart 5142 > 5143 Pre-Order 5144 </button></form> 5145 </div> 5146</div> 5147<div class="card-action__group variants-popup card-list__hidden"> 5148 <div class="card-action variants-popup-form"></div> 5149</div> 5150</div> 5151 </div> 5152</div> 5153 5154 5155 </div><div class="product"> 5156 5157 5158<div class="product-item" data-product-id="7656566882465" data-json-product='{"id": 7656566882465,"handle": "samantha-ii","media": null,"variants": [{"id":42885863964833,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":false,"featured_image":null,"available":false,"name":"Samantha II","public_title":null,"options":["Default Title"],"price":159900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}]}'> 5159 <div class="card"> 5160 <div class="card-product"> 5161 <div class="card-product__wrapper"><div class="card__badge badge-left halo-productBadges halo-productBadges--left date-67387479 date1-779" data-new-badge-number="30"><span class="badge sold-out-badge" aria-hidden="true"> 5162 Sold out 5163 </span></div> 5164<a class="card-media card-media--adapt media--hover-effect media--loading-effect " 5165 href="/products/samantha-ii" 5166 5167 5168 style="padding-bottom: 100.0%;" 5169 5170 5171 > 5172 <img data-srcset="//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_165x.png?v=1752457116 165w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_170x.png?v=1752457116 170w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_185x.png?v=1752457116 185w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_198x.png?v=1752457116 198w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_210x.png?v=1752457116 210w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_220x.png?v=1752457116 220w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_245x.png?v=1752457116 245w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_270x.png?v=1752457116 270w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_290x.png?v=1752457116 290w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_320x.png?v=1752457116 320w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_355x.png?v=1752457116 355w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_360x.png?v=1752457116 360w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_370x.png?v=1752457116 370w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_420x.png?v=1752457116 420w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_430x.png?v=1752457116 430w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_460x.png?v=1752457116 460w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_470x.png?v=1752457116 470w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_510x.png?v=1752457116 510w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_523x.png?v=1752457116 523w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_533x.png?v=1752457116 533w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_534x.png?v=1752457116 534w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_570x.png?v=1752457116 570w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_
5172640x.png?v=1752457116 640w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_665x.png?v=1752457116 665w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_670x.png?v=1752457116 670w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_720x.png?v=1752457116 720w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_775x.png?v=1752457116 775w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_785x.png?v=1752457116 785w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_870x.png?v=1752457116 870w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_930x.png?v=1752457116 930w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_935x.png?v=1752457116 935w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_940x.png?v=1752457116 940w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_1066x.png?v=1752457116 1066w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_1160x.png?v=1752457116 1160w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_1170x.png?v=1752457116 1170w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_1270x.png?v=1752457116 1270w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_1370x.png?v=1752457116 1370w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_1570x.png?v=1752457116 1570w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_1770x.png?v=1752457116 1770w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_1850x.png?v=1752457116 1850w,//www.hiroia.com/cdn/shop/files/fecf1c9766533302ddd51dd74f99976341dd194b_1880x.png?v=1752457116 1880w" 5173 5174sizes="(min-width: 1100px) 4000px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
5175alt="Samantha II" 5176size="4000" 5177loading="lazy" 5178class="motion-reduce lazyload" 5179 /> 5180 <img data-srcset="//www.hiroia.com/cdn/shop/files/S2.1_165x.png?v=1752457116 165w,//www.hiroia.com/cdn/shop/files/S2.1_170x.png?v=1752457116 170w,//www.hiroia.com/cdn/shop/files/S2.1_185x.png?v=1752457116 185w,//www.hiroia.com/cdn/shop/files/S2.1_198x.png?v=1752457116 198w,//www.hiroia.com/cdn/shop/files/S2.1_210x.png?v=1752457116 210w,//www.hiroia.com/cdn/shop/files/S2.1_220x.png?v=1752457116 220w,//www.hiroia.com/cdn/shop/files/S2.1_245x.png?v=1752457116 245w,//www.hiroia.com/cdn/shop/files/S2.1_270x.png?v=1752457116 270w,//www.hiroia.com/cdn/shop/files/S2.1_290x.png?v=1752457116 290w,//www.hiroia.com/cdn/shop/files/S2.1_320x.png?v=1752457116 320w,//www.hiroia.com/cdn/shop/files/S2.1_355x.png?v=1752457116 355w,//www.hiroia.com/cdn/shop/files/S2.1_360x.png?v=1752457116 360w,//www.hiroia.com/cdn/shop/files/S2.1_370x.png?v=1752457116 370w,//www.hiroia.com/cdn/shop/files/S2.1_420x.png?v=1752457116 420w,//www.hiroia.com/cdn/shop/files/S2.1_430x.png?v=1752457116 430w,//www.hiroia.com/cdn/shop/files/S2.1_460x.png?v=1752457116 460w,//www.hiroia.com/cdn/shop/files/S2.1_470x.png?v=1752457116 470w,//www.hiroia.com/cdn/shop/files/S2.1_510x.png?v=1752457116 510w,//www.hiroia.com/cdn/shop/files/S2.1_523x.png?v=1752457116 523w,//www.hiroia.com/cdn/shop/files/S2.1_533x.png?v=1752457116 533w,//www.hiroia.com/cdn/shop/files/S2.1_534x.png?v=1752457116 534w,//www.hiroia.com/cdn/shop/files/S2.1_570x.png?v=1752457116 570w,//www.hiroia.com/cdn/shop/files/S2.1_640x.png?v=1752457116 640w,//www.hiroia.com/cdn/shop/files/S2.1_665x.png?v=1752457116 665w,//www.hiroia.com/cdn/shop/files/S2.1_670x.png?v=1752457116 670w,//www.hiroia.com/cdn/shop/files/S2.1_720x.png?v=1752457116 720w,//www.hiroia.com/cdn/shop/files/S2.1_775x.png?v=1752457116 775w,//www.hiroia.com/cdn/shop/files/S2.1_785x.png?v=1752457116 785w,//www.hiroia.com/cdn/shop/files/S2.1_870x.png?v=1752457116 870w,//www.hiroia.com/cdn/shop/files/S2.1_930x.png?v=1752457116 930w,//www.hiroia.com/cdn/shop/files/S2.1_935x.png?v=1752457116 935w,//www.hiroia.com/cdn/shop/files/S2.1_940x.png?v=1752457116 940w,//www.hiroia.com/cdn/shop/files/S2.1_1066x.png?v=1752457116 1066w,//www.hiroia.com/cdn/shop/files/S2.1_1160x.png?v=1752457116 1160w,//www.hiroia.com/cdn/shop/files/S2.1_1170x.png?v=1752457116 1170w,//www.hiroia.com/cdn/shop/files/S2.1_1270x.png?v=1752457116 1270w,//www.hiroia.com/cdn/shop/files/S2.1_1370x.png?v=1752457116 1370w,//www.hiroia.com/cdn/shop/files/S2.1_1570x.png?v=1752457116 1570w,//www.hiroia.com/cdn/shop/files/S2.1_1770x.png?v=1752457116 1770w,//www.hiroia.com/cdn/shop/files/S2.1_1850x.png?v=1752457116 1850w,//www.hiroia.com/cdn/shop/files/S2.1_1880x.png?v=1752457116 1880w" 5181 5182sizes="(min-width: 1100px) 4000px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
5183alt="Samantha II" 5184size="4000" 5185loading="lazy" 5186class="motion-reduce lazyload" 5187 /> 5188 �<span class="data-lazy-loading"></span>�<div class="media-loading" data-title="Ella">Ella</div> 5189 </a><div class="card-product__group group-right"><div class="card-product__group-item card-quickview card-quickviewIcon"> 5190 <a class="quickview-icon" href="javascript:void(0)" data-product-id="7656566882465" data-open-quick-view-popup data-product-handle="samantha-ii"> 5191 <span class="visually-hidden">Quick View</span> 5192 <span class="text"> 5193 Quick View 5194 </span> 5195 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 511.999 511.999" aria-hidden="true" focusable="false" role="presentation" class="icon icon-eyes"> 5196<path d="M508.745,246.041c-4.574-6.257-113.557-153.206-252.748-153.206S7.818,239.784,3.249,246.035 5197 c-4.332,5.936-4.332,13.987,0,19.923c4.569,6.257,113.557,153.206,252.748,153.206s248.174-146.95,252.748-153.201 5198 C513.083,260.028,513.083,251.971,508.745,246.041z M255.997,385.406c-102.529,0-191.33-97.533-217.617-129.418 5199 c26.253-31.913,114.868-129.395,217.617-129.395c102.524,0,191.319,97.516,217.617,129.418 5200 C447.361,287.923,358.746,385.406,255.997,385.406z"></path> 5201 <path d="M255.997,154.725c-55.842,0-101.275,45.433-101.275,101.275s45.433,101.275,101.275,101.275 5202 s101.275-45.433,101.275-101.275S311.839,154.725,255.997,154.725z M255.997,323.516c-37.23,0-67.516-30.287-67.516-67.516 5203 s30.287-67.516,67.516-67.516s67.516,30.287,67.516,67.516S293.227,323.516,255.997,323.516z"></path> 5204</svg> 5205 </a> 5206 </div></div> 5207<div class="card-action"> 5208 <form action="/cart/add" method="post" class="variants" id="form-7656566882465-" data-product-id="7656566882465" enctype="multipart/form-data"><a class="button button-ATC" href="/products/samantha-ii" disabled="disabled"> 5209 Out Of Stock 5210 </a></form> 5211 </div></div> 5212 </div> 5213 <div class="card-information"> 5214 <div class="card-information__wrapper text-center"><a class="card-title link-underline" href="/products/samantha-ii" data-product-title="Samantha II" data-product-url="/products/samantha-ii"> 5215 <span class="text"> 5216 Samantha II 5217 5218 </span> 5219 </a><div class="card-summary card-list__hidden"> 5220 SAMANTHA II is our new automated pour-over coffee maker that is built and maximized for businesses, cafes, hotels, offices, and events. This newly upgraded pro version fits fleet management, workflow automation, and precise brewing process to form a comprehensive business overview while consistently brewing... 5221</div> 5222 5223 <div class="card-price"> 5224 5225<div 5226 class=" 5227 price price--sold-out " 5228> 5229 <dl><div class="price__regular"> 5230 <dt> 5231 <span class="visually-hidden visually-hidden--inline">Regular price</span> 5232 </dt> 5233 <dd class="price__last"> 5234 <span class="price-item price-item--regular"> 5235 $1,599.00 USD 5236 </span> 5237 <!-- ååç¾é广 ¼ --></dd> 5238 </div> 5239 <div class="price__sale"> 5240 <dt class="price__compare"> 5241 <span class="visually-hidden visually-hidden--inline">Regular price</span> 5242 </dt> 5243 <dd class="price__compare"> 5244 <s class="price-item price-item--regular"> 5245 5246 </s> 5247 </dd> 5248 <dt> 5249 <span class="visually-hidden visually-hidden--inline">Sale price</span> 5250 </dt> 5251 <dd class="price__last"> 5252 <span class="price-item price-item--sale"> 5253 $1,599.00 USD 5254 </span> 5255 </dd></div> 5256 <small class="unit-price caption hidden"> 5257 <dt class="visually-hidden">Unit price</dt> 5258 <dd class="price__last"> 5259 <span></span> 5260 <span aria-hidden="true">/</span>
5261 <span class="visually-hidden"> per </span> 5262 <span> 5263 </span> 5264 </dd> 5265 </small> 5266 </dl> 5267</div> 5268 5269 </div> 5270 </div> 5271<div class="card-action__group card-list__hidden"> 5272 <div class="card-action"> 5273 <form action="/cart/add" method="post" class="variants" id="form-7656566882465-list" data-product-id="7656566882465" enctype="multipart/form-data"><a class="button button-ATC" href="/products/samantha-ii" disabled="disabled"> 5274 Out Of Stock 5275 </a></form> 5276 </div> 5277</div> 5278<div class="card-action__group variants-popup card-list__hidden"> 5279 <div class="card-action variants-popup-form"></div> 5280</div> 5281</div> 5282 </div> 5283</div> 5284 5285 5286 </div><div class="product"> 5287 5288 5289<div class="product-item" data-product-id="8324594073761" data-json-product='{"id": 8324594073761,"handle": "edge","media": null,"variants": [{"id":45282650488993,"title":"US \/ White","option1":"US","option2":"White","option3":null,"sku":null,"requires_shipping":true,"taxable":false,"featured_image":{"id":42293783920801,"product_id":8324594073761,"position":1,"created_at":"2025-10-23T11:36:32+08:00","updated_at":"2025-10-23T11:36:33+08:00","alt":null,"width":2508,"height":1672,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/1_e57f4c72-cd81-494b-95b2-28e573b33e29.jpg?v=1761190593","variant_ids":[45234579439777,45282650488993,45282650554529]},"available":true,"name":"EDGE Titanium - US \/ White","public_title":"US \/ White","options":["US","White"],"price":34900,"weight":5500,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":35195268825249,"position":1,"preview_image":{"aspect_ratio":1.5,"height":1672,"width":2508,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/1_e57f4c72-cd81-494b-95b2-28e573b33e29.jpg?v=1761190593"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":45295901507745,"title":"US \/ Black","option1":"US","option2":"Black","option3":null,"sku":null,"requires_shipping":true,"taxable":false,"featured_image":{"id":42351587885217,"product_id":8324594073761,"position":13,"created_at":"2025-10-29T15:58:29+08:00","updated_at":"2025-11-11T09:33:42+08:00","alt":null,"width":2835,"height":3543,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/1-Edge_Ti_black.png?v=1762824822","variant_ids":[45295901507745,45295901540513,45295901573281]},"available":true,"name":"EDGE Titanium - US \/ Black","public_title":"US \/ Black","options":["US","Black"],"price":34900,"weight":5500,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":35252360118433,"position":13,"preview_image":{"aspect_ratio":0.8,"height":3543,"width":2835,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/1-Edge_Ti_black.png?v=1762824822"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":45234579439777,"title":"EU \/ White","option1":"EU","option2":"White","option3":null,"sku":null,"requires_shipping":true,"taxable":false,"featured_image":{"id":42293783920801,"product_id":8324594073761,"position":1,"created_at":"2025-10-23T11:36:32+08:00","updated_at":"2025-10-23T11:36:33+08:00","alt":null,"width":2508,"height":1672,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/1_e57f4c72-cd81-494b-95b2-28e573b33e29.jpg?v=1761190593","variant_ids":[45234579439777,45282650488993,45282650554529]},"available":true,"name":"EDGE Titanium - EU \/ White","public_title":"EU \/ White","options":["EU","White"],"price":34900,"weight":5500,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":35195268825249,"position":1,"preview_image":{"aspect_ratio":1.5,"height":1672,"width":2508,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/1_e57f4c72-cd81-494b-95b2-28e573b33e29.jpg?v=1761190593"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":45295901540513,"title":"EU \/ Black","option1":"EU","option2":"Black","option3":null,"sku":null,"requires_shipping":true,"taxable":false,"featured_image":{"id":42351587885217,"product_id":8324594073761,"position":13,"created_at":"2025-10-29T15:58:29+08:00","updated_at":"2025-11-11T09:33:42+08:00","alt":null,"width":2835,"height":3543,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/1-Edge_Ti_black.png?v=1762824822","variant_ids":[45295901507745,45295901540513,45295901573281]},"available":true,"name":"EDGE Titanium - EU \/ Black","public_title":"EU \/ Black","options":["EU","Black"],"price":34900,"weight":5500,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":35252360118433,"position":13,"preview_image":{"aspect_ratio":0.8,"height":3543,"width":2835,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/1-Edge_Ti_black.png?v=1762824822"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":45282650554529,"title":"UK \/ White","option1":"UK","option2":"White","option3":null,"sku":null,"requires_shipping":true,"taxable":false,"featured_image":{"id":42293783920801,"product_id":8324594073761,"position":1,"created_at":"2025-10-23T11:36:32+08:00","updated_at":"2025-10-23T11:36:33+08:00","alt":null,"width":2508,"height":1672,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/1_e57f4c72-cd81-494b-95b2-28e573b33e29.jpg?v=1761190593","variant_ids":[45234579439777,45282650488993,45282650554529]},"available":true,"name":"EDGE Titanium - UK \/ White","public_title":"UK \/ White","options":["UK","White"],"price":34900,"weight":5500,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":35195268825249,"position":1,"preview_image":{"aspect_ratio":1.5,"height":1672,"width":2508,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/1_e57f4c72-cd81-494b-95b2-28e573b33e29.jpg?v=1761190593"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":45295901573281,"title":"UK \/ Black","option1":"UK","option2":"Black","option3":null,"sku":null,"requires_shipping":true,"taxable":false,"featured_image":{"id":42351587885217,"product_id":8324594073761,"position":13,"created_at":"2025-10-29T15:58:29+08:00","updated_at":"2025-11-11T09:33:42+08:00","alt":null,"width":2835,"height":3543,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/1-Edge_Ti_black.png?v=1762824822","variant_ids":[45295901507745,45295901540513,45295901573281]},"available":true,"name":"EDGE Titanium - UK \/ Black","public_title":"UK \/ Black","options":["UK","Black"],"price":34900,"weight":5500,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":35252360118433,"position":13,"preview_image":{"aspect_ratio":0.8,"height":3543,"width":2835,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/1-Edge_Ti_black.png?v=1762824822"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}]}'> 5290 <div class="card"> 5291 <div class="card-product"> 5292 <div class="card-product__wrapper"><div class="card__badge badge-left halo-productBadges halo-productBadges--left date-28690668 date1-332" data-new-badge-number="30"></div> 5293<a class="card-media card-media--adapt media--hover-effect media--loading-effect " 5294 href="/products/edge" 5295 5296 5297 style="padding-bottom: 66.66666666666666%;" 5298 5299 5300 > 5301 5302 <img data-srcset="//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_165x.jpg?v=1761190593 165w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_170x.jpg?v=1761190593 170w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_185x.jpg?v=1761190593 185w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_198x.jpg?v=1761190593 198w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_210x.jpg?v=1761190593 210w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_220x.jpg?v=1761190593 220w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_245x.jpg?v=1761190593 245w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_270x.jpg?v=1761190593 270w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_290x.jpg?v=1761190593 290w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_320x.jpg?v=1761190593 320w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_355x.jpg?v=1761190593 355w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_360x.jpg?v=1761190593 360w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_370x.jpg?v=1761190593 370w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_420x.jpg?v=1761190593 420w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_430x.jpg?v=1761190593 430w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_460x.jpg?v=1761190593 460w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_470x.jpg?v=1761190593 470w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_510x.jpg?v=1761190593 510w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_523x.jpg?v=1761190593 523w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_533x.jpg?v=1761190593 533w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_534x.jpg?v=1761190593 534w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_570x.jpg?v=1761190593 570w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_640x.jpg?v=1761190593 640w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_665x.jpg?v=1761190593 665w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_670x.jpg?v=1761190593 670w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_720x.jpg?v=1761190593 720w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_775x.jpg?v=1761190593 775w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_785x.jpg?v=1761190593 785w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_870x.jpg?v=1761190593 870w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_930x.jpg?v=1761190593 930w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_935x.jpg?v=1761190593 935w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_940x.jpg?v=1761190593 940w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_1066x.jpg?v=1761190593 1066w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_1160x.jpg?v=1761190593 1160w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_1170x.jpg?v=1761190593 1170w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_1270x.jpg?v=1761190593 1270w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_1370x.jpg?v=1761190593 1370w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_1570x.jpg?v=1761190593 1570w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_1770x.jpg?v=1761190593 1770w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_1850x.jpg?v=1761190593 1850w,//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_1880x.jpg?v=1761190593 1880w" 5303 5304sizes="(min-width: 1100px) 2508px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
5305alt="EDGE Titanium" 5306size="2508" 5307loading="lazy" 5308class="motion-reduce lazyload" 5309 /> 5310 � 5311 <img data-srcset="//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_165x.jpg?v=1761190551 165w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_170x.jpg?v=1761190551 170w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_185x.jpg?v=1761190551 185w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_198x.jpg?v=1761190551 198w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_210x.jpg?v=1761190551 210w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_220x.jpg?v=1761190551 220w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_245x.jpg?v=1761190551 245w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_270x.jpg?v=1761190551 270w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_290x.jpg?v=1761190551 290w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_320x.jpg?v=1761190551 320w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_355x.jpg?v=1761190551 355w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_360x.jpg?v=1761190551 360w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_370x.jpg?v=1761190551 370w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_420x.jpg?v=1761190551 420w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_430x.jpg?v=1761190551 430w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_460x.jpg?v=1761190551 460w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_470x.jpg?v=1761190551 470w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_510x.jpg?v=1761190551 510w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_523x.jpg?v=1761190551 523w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_533x.jpg?v=1761190551 533w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_534x.jpg?v=1761190551 534w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_570x.jpg?v=1761190551 570w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_640x.jpg?v=1761190551 640w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_665x.jpg?v=1761190551 665w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_670x.jpg?v=1761190551 670w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_720x.jpg?v=1761190551 720w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_775x.jpg?v=1761190551 775w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_785x.jpg?v=1761190551 785w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_870x.jpg?v=1761190551 870w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_930x.jpg?v=1761190551 930w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_935x.jpg?v=1761190551 935w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_940x.jpg?v=1761190551 940w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_1066x.jpg?v=1761190551 1066w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_1160x.jpg?v=1761190551 1160w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_1170x.jpg?v=1761190551 1170w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_1270x.jpg?v=1761190551 1270w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_1370x.jpg?v=1761190551 1370w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_1570x.jpg?v=1761190551 1570w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_1770x.jpg?v=1761190551 1770w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_1850x.jpg?v=1761190551 1850w,//www.hiroia.com/cdn/shop/files/2-1_e7e3ec97-6cf0-4ef0-bb62-37a48c8d03cf_1880x.jpg?v=1761190551 1880w" 5312 5313sizes="(min-width: 1100px) 4096px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
5314alt="EDGE Titanium" 5315size="4096" 5316loading="lazy" 5317class="motion-reduce lazyload" 5318 /> 5319 �<span class="data-lazy-loading"></span>�<div class="media-loading" data-title="Ella">Ella</div> 5320 </a><div class="card-product__group group-right"><div class="card-product__group-item card-quickview card-quickviewIcon"> 5321 <a class="quickview-icon" href="javascript:void(0)" data-product-id="8324594073761" data-open-quick-view-popup data-product-handle="edge"> 5322 <span class="visually-hidden">Quick View</span> 5323 <span class="text"> 5324 Quick View 5325 </span> 5326 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 511.999 511.999" aria-hidden="true" focusable="false" role="presentation" class="icon icon-eyes"> 5327<path d="M508.745,246.041c-4.574-6.257-113.557-153.206-252.748-153.206S7.818,239.784,3.249,246.035 5328 c-4.332,5.936-4.332,13.987,0,19.923c4.569,6.257,113.557,153.206,252.748,153.206s248.174-146.95,252.748-153.201 5329 C513.083,260.028,513.083,251.971,508.745,246.041z M255.997,385.406c-102.529,0-191.33-97.533-217.617-129.418 5330 c26.253-31.913,114.868-129.395,217.617-129.395c102.524,0,191.319,97.516,217.617,129.418 5331 C447.361,287.923,358.746,385.406,255.997,385.406z"></path> 5332 <path d="M255.997,154.725c-55.842,0-101.275,45.433-101.275,101.275s45.433,101.275,101.275,101.275 5333 s101.275-45.433,101.275-101.275S311.839,154.725,255.997,154.725z M255.997,323.516c-37.23,0-67.516-30.287-67.516-67.516 5334 s30.287-67.516,67.516-67.516s67.516,30.287,67.516,67.516S293.227,323.516,255.997,323.516z"></path> 5335</svg> 5336 </a> 5337 </div></div> 5338<div class="card-action"> 5339 <form action="/cart/add" method="post" class="variants" id="form-8324594073761-" data-product-id="8324594073761" enctype="multipart/form-data"><a class="button button-ATC" href="/products/edge" data-quickshop-popup data-product-handle="edge"> 5340 5341 Quick Add 5342 5343 </a></form><div class="variants-popup custom-scrollbar"> 5344 5345
5345<script> 5346 window.quick_view_inven_array_8324594073761 = { 5347 5348 '45282650488993': '48', 5349 5350 '45295901507745': '49', 5351 5352 '45234579439777': '49', 5353 5354 '45295901540513': '49', 5355 5356 '45282650554529': '46', 5357 5358 '45295901573281': '48', 5359 5360 }; 5361 </script>
5361 5362 5363 5364<a href="#" class="variants-popup-close" data-cancel-quickshop-popup alt="Close"> 5365 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 5366 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 5367</svg> 5368 Close 5369</a> 5370 5371<div class="variants-popup-content text-center" data-quickshop> 5372 5373 <form action="/cart/add" method="post" class="variants" id="swatch-form-8324594073761--" data-id="product-actions-8324594073761" enctype="multipart/form-data"><div class="selector-wrapper selector-wrapper-2 swatch" data-option-index="1"> 5374 <label class="form-label"> 5375 Plug Type: 5376 <span class="label-value-1">US</span> 5377 </label><div class="swatch-element us available" data-value="US"> 5378 <input 5379 class="single-option" 5380 type="radio" 5381 name="SingleOptionSelector-0-8324594073761-" 5382 data-index="option1" 5383 value="US" 5384 id="SingleOptionSelector0-US-8324594073761-" 5385 5386 > 5387 <label 5388 class="single-label" 5389 title="US" 5390 for="SingleOptionSelector0-US-8324594073761-" 5391 > 5392 US 5393 </label></div> 5394 ��<div class="swatch-element eu available" data-value="EU"> 5395 <input 5396 class="single-option" 5397 type="radio" 5398 name="SingleOptionSelector-0-8324594073761-" 5399 data-index="option1" 5400 value="EU" 5401 id="SingleOptionSelector0-EU-8324594073761-" 5402 5403 > 5404 <label 5405 class="single-label" 5406 title="EU" 5407 for="SingleOptionSelector0-EU-8324594073761-" 5408 > 5409 EU 5410 </label></div> 5411 ��<div class="swatch-element uk available" data-value="UK"> 5412 <input 5413 class="single-option" 5414 type="radio" 5415 name="SingleOptionSelector-0-8324594073761-" 5416 data-index="option1" 5417 value="UK" 5418 id="SingleOptionSelector0-UK-8324594073761-" 5419 5420 > 5421 <label 5422 class="single-label" 5423 title="UK" 5424 for="SingleOptionSelector0-UK-8324594073761-" 5425 > 5426 UK 5427 </label></div> 5428 ��</div><div class="selector-wrapper selector-wrapper-1 swatch option-color" data-option-index="0" data-option-position="1" > 5429 <label class="form-label"> 5430 Color:
5431 <span class="label-value-2">White</span> 5432 </label><div class="swatch-element white available" data-value="White"> 5433 <input 5434 class="single-option" 5435 type="radio" 5436 name="SingleOptionSelector-1-8324594073761-" 5437 data-index="option2" 5438 value="White" 5439 id="SingleOptionSelector1-White-8324594073761-" 5440 5441 > 5442 <label 5443 class="single-label" 5444 title="White" 5445 for="SingleOptionSelector1-White-8324594073761-" 5446 > 5447 <span class="pattern" 5448 style="background-color: white; 5449 background-image: url(//www.hiroia.com/cdn/shop/files/white.png?v=14226) 5450 "> 5451 </span> 5452 </label> 5453 </div><div class="swatch-element black available" data-value="Black"> 5454 <input 5455 class="single-option" 5456 type="radio" 5457 name="SingleOptionSelector-1-8324594073761-" 5458 data-index="option2" 5459 value="Black" 5460 id="SingleOptionSelector1-Black-8324594073761-" 5461 5462 > 5463 <label 5464 class="single-label" 5465 title="Black" 5466 for="SingleOptionSelector1-Black-8324594073761-" 5467 > 5468 <span class="pattern" 5469 style="background-color: black; 5470 background-image: url(//www.hiroia.com/cdn/shop/files/black.png?v=14226) 5471 "> 5472 </span> 5473 </label> 5474 </div></div><select name="id" id="ProductSelect-8324594073761-" class="selector-wrapper-hidden" style="display: none;"><option value="45282650488993" data-value="45282650488993"> 5475 US / White 5476 </option><option value="45295901507745" data-value="45295901507745"> 5477 US / Black 5478 </option><option value="45234579439777" data-value="45234579439777"> 5479 EU / White 5480 </option><option value="45295901540513" data-value="45295901540513"> 5481 EU / Black 5482 </option><option value="45282650554529" data-value="45282650554529"> 5483 UK / White 5484 </option><option value="45295901573281" data-value="45295901573281"> 5485 UK / Black 5486 </option> 5487 </select> 5488 5489 <label class="form-label label-quantity-2">Quantity:</label> 5490 <quickshop-update-quantity class="previewCartItem-qty quickshop-quantity"> 5491 <a href="javascript:void(0)" data-minus-quantity-quickshop="" class="minus btn-quantity"></a> 5492 <input class="form-input quantity ProductDrop" name="quantity" id="quickshop-update-8324594073761" data-qtt-id1="quantity8324594073761" value="1" type="number" data-product-card-quantity data-product-card-quantity-id="8324594073761"/> 5493 <a href="javascript:void(0)" data-plus-quantity-quickshop="" class="plus btn-quantity"></a> 5494 </quickshop-update-quantity> 5495 5496 <div class="product-card__button2"> 5497 <input type="hidden" name="quantity" value="1" /> 5498 <button data-btn-addToCart class="button button2 add-to-cart-btn" type="submit" data-form-id="#swatch-form-8324594073761--"> 5499 Add 5500 </button> 5501 5502 <button data-cancel-quickshop-popup class="button button2 cancel-btn"> 5503 Cancel 5504 </button> 5505 5506 </div> 5507 </form> 5508</div> 5509 </div> 5510 </div></div> 5511 </div> 5512 <div class="card-information"> 5513 <div class="card-information__wrapper text-center">
5513<a class="card-title link-underline card-title-change" href="/products/edge" data-product-title="EDGE Titanium" data-product-url="/products/edge"> 5514 <span class="text"> 5515 EDGE Titanium 5516 5517 <span data-change-title> </span> 5518 5519 </span> 5520 </a><div class="card-summary card-list__hidden"> 5521 EDGE Titanium grinder Introducing the Edge Titanium â Precision Beyond ExpectationFor those who live for the perfect cup, every detail matters â from the origin of the beans to the precision of each grind. The Edge Titanium Coffee Grinder, co-engineered by Hiroia and StarSeeker,... 5522</div> 5523 5524 <div class="card-price"> 5525 5526<div 5527 class=" 5528 price " 5529> 5530 <dl><div class="price__regular"> 5531 <dt> 5532 <span class="visually-hidden visually-hidden--inline">Regular price</span> 5533 </dt> 5534 <dd class="price__last"> 5535 <span class="price-item price-item--regular"> 5536 $349.00 USD 5537 </span> 5538 <!-- ååç¾é广 ¼ --></dd> 5539 </div> 5540 <div class="price__sale"> 5541 <dt class="price__compare"> 5542 <span class="visually-hidden visually-hidden--inline">Regular price</span> 5543 </dt> 5544 <dd class="price__compare"> 5545 <s class="price-item price-item--regular"> 5546 5547 </s> 5548 </dd> 5549 <dt> 5550 <span class="visually-hidden visually-hidden--inline">Sale price</span> 5551 </dt> 5552 <dd class="price__last"> 5553 <span class="price-item price-item--sale"> 5554 $349.00 USD 5555 </span> 5556 </dd></div> 5557 <small class="unit-price caption hidden"> 5558 <dt class="visually-hidden">Unit price</dt> 5559 <dd class="price__last"> 5560 <span></span> 5561 <span aria-hidden="true">/</span> 5562 <span class="visually-hidden"> per </span> 5563 <span> 5564 </span> 5565 </dd> 5566 </small> 5567 </dl> 5568</div> 5569 5570 </div> 5571 </div><div class="card-swatch text-center clearfix quick_shop_type_2" id="product-swatch-8324594073761"> 5572 <ul class="swatch list-unstyled"> 5573<li class="item"> 5574 <div class="item-wrapper clearfix"> 5575 <label 5576 5577 class="swatch-label" 5578 data-value="white" 5579 data-variant-id="45282650488993" 5580 title="White" 5581 5582 data-variant-img="//www.hiroia.com/cdn/shop/files/1_e57f4c72-cd81-494b-95b2-28e573b33e29_800x.jpg?v=1761190593" 5583 5584 > 5585 <span class="pattern" 5586 style=" 5587 background-color: white; 5588 background-image: url(//www.hiroia.com/cdn/shop/files/white.png?v=14226) 5589 "> 5590 </span> 5591 white 5592 </label> 5593 <span class="tooltip"> 5594 5595 White 5596 5597 </span> 5598 </div> 5599 </li> 5600 5601 5602 5603 5604<li class="item"> 5605 <div class="item-wrapper clearfix"> 5606 <label 5607 5608 class="swatch-label" 5609 data-value="black" 5610 data-variant-id="45295901507745" 5611 title="Black" 5612 5613 data-variant-img="//www.hiroia.com/cdn/shop/files/1-Edge_Ti_black_800x.png?v=1762824822" 5614 5615 >
5616 <span class="pattern" 5617 style=" 5618 background-color: black; 5619 background-image: url(//www.hiroia.com/cdn/shop/files/black.png?v=14226) 5620 "> 5621 </span> 5622 black 5623 </label> 5624 <span class="tooltip"> 5625 5626 Black 5627 5628 </span> 5629 </div> 5630 </li> 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 </ul> 5641 </div> 5642 5643<div class="card-action__group card-list__hidden"> 5644 <div class="card-action"> 5645 <form action="/cart/add" method="post" class="variants" id="form-8324594073761-list" data-product-id="8324594073761" enctype="multipart/form-data"><a class="button button-ATC" href="/products/edge" data-quickshop-popup> 5646 Quick Add 5647 </a></form> 5648 </div> 5649</div> 5650<div class="card-action__group variants-popup card-list__hidden"> 5651 <div class="card-action variants-popup-form"><div class="custom-scrollbar"> 5652 5653
5653<script> 5654 window.quick_view_inven_array_8324594073761 = { 5655 5656 '45282650488993': '48', 5657 5658 '45295901507745': '49', 5659 5660 '45234579439777': '49', 5661 5662 '45295901540513': '49', 5663 5664 '45282650554529': '46', 5665 5666 '45295901573281': '48', 5667 5668 }; 5669 </script>
5669 5670 5671 5672<a href="#" class="variants-popup-close" data-cancel-quickshop-popup alt="Close"> 5673 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 5674 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 5675</svg> 5676 Close 5677</a> 5678 5679<div class="variants-popup-content text-center" data-quickshop> 5680 5681 <form action="/cart/add" method="post" class="variants" id="swatch-form-8324594073761--list" data-id="product-actions-8324594073761list" enctype="multipart/form-data"><div class="selector-wrapper selector-wrapper-2 swatch" data-option-index="1"> 5682 <label class="form-label"> 5683 Plug Type: 5684 <span class="label-value-1">US</span> 5685 </label><div class="swatch-element us available" data-value="US"> 5686 <input 5687 class="single-option" 5688 type="radio" 5689 name="SingleOptionSelector-0-8324594073761-list" 5690 data-index="option1" 5691 value="US" 5692 id="SingleOptionSelector0-US-8324594073761-list" 5693 5694 > 5695 <label 5696 class="single-label" 5697 title="US" 5698 for="SingleOptionSelector0-US-8324594073761-list" 5699 > 5700 US 5701 </label></div> 5702 ��<div class="swatch-element eu available" data-value="EU"> 5703 <input 5704 class="single-option" 5705 type="radio" 5706 name="SingleOptionSelector-0-8324594073761-list" 5707 data-index="option1" 5708 value="EU" 5709 id="SingleOptionSelector0-EU-8324594073761-list" 5710 5711 > 5712 <label 5713 class="single-label" 5714 title="EU" 5715 for="SingleOptionSelector0-EU-8324594073761-list" 5716 > 5717 EU 5718 </label></div> 5719 ��<div class="swatch-element uk available" data-value="UK"> 5720 <input 5721 class="single-option" 5722 type="radio" 5723 name="SingleOptionSelector-0-8324594073761-list" 5724 data-index="option1" 5725 value="UK" 5726 id="SingleOptionSelector0-UK-8324594073761-list" 5727 5728 > 5729 <label 5730 class="single-label" 5731 title="UK" 5732 for="SingleOptionSelector0-UK-8324594073761-list" 5733 > 5734 UK 5735 </label></div> 5736 ��</div><div class="selector-wrapper selector-wrapper-1 swatch option-color" data-option-index="0" data-option-position="1" > 5737 <label class="form-label"> 5738 Color:
5739 <span class="label-value-2">White</span> 5740 </label><div class="swatch-element white available" data-value="White"> 5741 <input 5742 class="single-option" 5743 type="radio" 5744 name="SingleOptionSelector-1-8324594073761-list" 5745 data-index="option2" 5746 value="White" 5747 id="SingleOptionSelector1-White-8324594073761-list" 5748 5749 > 5750 <label 5751 class="single-label" 5752 title="White" 5753 for="SingleOptionSelector1-White-8324594073761-list" 5754 > 5755 <span class="pattern" 5756 style="background-color: white; 5757 background-image: url(//www.hiroia.com/cdn/shop/files/white.png?v=14226) 5758 "> 5759 </span> 5760 </label> 5761 </div><div class="swatch-element black available" data-value="Black"> 5762 <input 5763 class="single-option" 5764 type="radio" 5765 name="SingleOptionSelector-1-8324594073761-list" 5766 data-index="option2" 5767 value="Black" 5768 id="SingleOptionSelector1-Black-8324594073761-list" 5769 5770 > 5771 <label 5772 class="single-label" 5773 title="Black" 5774 for="SingleOptionSelector1-Black-8324594073761-list" 5775 > 5776 <span class="pattern" 5777 style="background-color: black; 5778 background-image: url(//www.hiroia.com/cdn/shop/files/black.png?v=14226) 5779 "> 5780 </span> 5781 </label> 5782 </div></div><select name="id" id="ProductSelect-8324594073761-list" class="selector-wrapper-hidden" style="display: none;"><option value="45282650488993" data-value="45282650488993"> 5783 US / White 5784 </option><option value="45295901507745" data-value="45295901507745"> 5785 US / Black 5786 </option><option value="45234579439777" data-value="45234579439777"> 5787 EU / White 5788 </option><option value="45295901540513" data-value="45295901540513"> 5789 EU / Black 5790 </option><option value="45282650554529" data-value="45282650554529"> 5791 UK / White 5792 </option><option value="45295901573281" data-value="45295901573281"> 5793 UK / Black 5794 </option> 5795 </select> 5796 5797 <label class="form-label label-quantity-2">Quantity:</label> 5798 <quickshop-update-quantity class="previewCartItem-qty quickshop-quantity"> 5799 <a href="javascript:void(0)" data-minus-quantity-quickshop="" class="minus btn-quantity"></a> 5800 <input class="form-input quantity ProductDrop" name="quantity" id="quickshop-update-8324594073761" data-qtt-id1="quantity8324594073761" value="1" type="number" data-product-card-quantity data-product-card-quantity-id="8324594073761"/> 5801 <a href="javascript:void(0)" data-plus-quantity-quickshop="" class="plus btn-quantity"></a> 5802 </quickshop-update-quantity> 5803 5804 <div class="product-card__button2"> 5805 <input type="hidden" name="quantity" value="1" /> 5806 <button data-btn-addToCart class="button button2 add-to-cart-btn" type="submit" data-form-id="#swatch-form-8324594073761--list"> 5807 Add 5808 </button> 5809 5810 <button data-cancel-quickshop-popup class="button button2 cancel-btn"> 5811 Cancel 5812 </button> 5813 5814 </div> 5815 </form> 5816</div> 5817 </div></div> 5818</div> 5819</div> 5820 </div> 5821</div> 5822 5823 5824 </div><div class="product"> 5825 5826 5827<div class="product-item" data-product-id="8405526577313" data-json-product='{"id": 8405526577313,"handle": "edge-mini-grinder","media": null,"variants": [{"id":45687785029793,"title":"Black","option1":"Black","option2":null,"option3":null,"sku":null,"requires_shipping":true,"taxable":false,"featured_image":{"id":43122935464097,"product_id":8405526577313,"position":12,"created_at":"2026-02-02T12:37:44+08:00","updated_at":"2026-02-02T13:58:45+08:00","alt":null,"width":2500,"height":1667,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/image8.png?v=1770011925","variant_ids":[45687785029793]},"available":true,"name":"EDGE Mini+ - Black","public_title":"Black","options":["Black"],"price":17900,"weight":3000,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":36007879803041,"position":12,"preview_image":{"aspect_ratio":1.5,"height":1667,"width":2500,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/image8.png?v=1770011925"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":45687785062561,"title":"White","option1":"White","option2":null,"option3":null,"sku":null,"requires_shipping":true,"taxable":false,"featured_image":{"id":43122935431329,"product_id":8405526577313,"position":13,"created_at":"2026-02-02T12:37:44+08:00","updated_at":"2026-02-02T13:58:45+08:00","alt":null,"width":2500,"height":1667,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/image9.png?v=1770011925","variant_ids":[45687785062561]},"available":true,"name":"EDGE Mini+ - White","public_title":"White","options":["White"],"price":17900,"weight":3000,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":36007879770273,"position":13,"preview_image":{"aspect_ratio":1.5,"height":1667,"width":2500,"src":"\/\/www.hiroia.com\/cdn\/shop\/files\/image9.png?v=1770011925"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}]}'> 5828 <div class="card"> 5829 <div class="card-product"> 5830 <div class="card-product__wrapper"><div class="card__badge badge-left halo-productBadges halo-productBadges--left date-20293258 date1-234" data-new-badge-number="30"></div> 5831<a class="card-media card-media--adapt media--hover-effect media--loading-effect " 5832 href="/products/edge-mini-grinder" 5833 5834 5835 style="padding-bottom: 66.68%;" 5836 5837 5838 > 5839 5840 <img data-srcset="//www.hiroia.com/cdn/shop/files/image_1_165x.png?v=1770011925 165w,//www.hiroia.com/cdn/shop/files/image_1_170x.png?v=1770011925 170w,//www.hiroia.com/cdn/shop/files/image_1_185x.png?v=1770011925 185w,//www.hiroia.com/cdn/shop/files/image_1_198x.png?v=1770011925 198w,//www.hiroia.com/cdn/shop/files/image_1_210x.png?v=1770011925 210w,//www.hiroia.com/cdn/shop/files/image_1_220x.png?v=1770011925 220w,//www.hiroia.com/cdn/shop/files/image_1_245x.png?v=1770011925 245w,//www.hiroia.com/cdn/shop/files/image_1_270x.png?v=1770011925 270w,//www.hiroia.com/cdn/shop/files/image_1_290x.png?v=1770011925 290w,//www.hiroia.com/cdn/shop/files/image_1_320x.png?v=1770011925 320w,//www.hiroia.com/cdn/shop/files/image_1_355x.png?v=1770011925 355w,//www.hiroia.com/cdn/shop/files/image_1_360x.png?v=1770011925 360w,//www.hiroia.com/cdn/shop/files/image_1_370x.png?v=1770011925 370w,//www.hiroia.com/cdn/shop/files/image_1_420x.png?v=1770011925 420w,//www.hiroia.com/cdn/shop/files/image_1_430x.png?v=1770011925 430w,//www.hiroia.com/cdn/shop/files/image_1_460x.png?v=1770011925 460w,//www.hiroia.com/cdn/shop/files/image_1_470x.png?v=1770011925 470w,//www.hiroia.com/cdn/shop/files/image_1_510x.png?v=1770011925 510w,//www.hiroia.com/cdn/shop/files/image_1_523x.png?v=1770011925 523w,//www.hiroia.com/cdn/shop/files/image_1_533x.png?v=1770011925 533w,//www.hiroia.com/cdn/shop/files/image_1_534x.png?v=1770011925 534w,//www.hiroia.com/cdn/shop/files/image_1_570x.png?v=1770011925 570w,//www.hiroia.com/cdn/shop/files/image_1_640x.png?v=1770011925 640w,//www.hiroia.com/cdn/shop/files/image_1_665x.png?v=1770011925 665w,//www.hiroia.com/cdn/shop/files/image_1_670x.png?v=1770011925 670w,//www.hiroia.com/cdn/shop/files/image_1_720x.png?v=1770011925 720w,//www.hiroia.com/cdn/shop/files/image_1_775x.png?v=1770011925 775w,//www.hiroia.com/cdn/shop/files/image_1_785x.png?v=1770011925 785w,//www.hiroia.com/cdn/shop/files/image_1_870x.png?v=1770011925 870w,//www.hiroia.com/cdn/shop/files/image_1_930x.png?v=1770011925 930w,//www.hiroia.com/cdn/shop/files/image_1_935x.png?v=1770011925 935w,//www.hiroia.com/cdn/shop/files/image_1_940x.png?v=1770011925 940w,//www.hiroia.com/cdn/shop/files/image_1_1066x.png?v=1770011925 1066w,//www.hiroia.com/cdn/shop/files/image_1_1160x.png?v=1770011925 1160w,//www.hiroia.com/cdn/shop/files/image_1_1170x.png?v=1770011925 1170w,//www.hiroia.com/cdn/shop/files/image_1_1270x.png?v=1770011925 1270w,//www.hiroia.com/cdn/shop/files/image_1_1370x.png?v=1770011925 1370w,//www.hiroia.com/cdn/shop/files/image_1_1570x.png?v=1770011925 1570w,//www.hiroia.com/cdn/shop/files/image_1_1770x.png?v=1770011925 1770w,//www.hiroia.com/cdn/shop/files/image_1_1850x.png?v=1770011925 1850w,//www.hiroia.com/cdn/shop/files/image_1_1880x.png?v=1770011925 1880w" 5841 5842sizes="(min-width: 1100px) 2500px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
5843alt="EDGE Mini+" 5844size="2500" 5845loading="lazy" 5846class="motion-reduce lazyload" 5847 /> 5848 � 5849 <img data-srcset="//www.hiroia.com/cdn/shop/files/image_1_2_165x.png?v=1770011925 165w,//www.hiroia.com/cdn/shop/files/image_1_2_170x.png?v=1770011925 170w,//www.hiroia.com/cdn/shop/files/image_1_2_185x.png?v=1770011925 185w,//www.hiroia.com/cdn/shop/files/image_1_2_198x.png?v=1770011925 198w,//www.hiroia.com/cdn/shop/files/image_1_2_210x.png?v=1770011925 210w,//www.hiroia.com/cdn/shop/files/image_1_2_220x.png?v=1770011925 220w,//www.hiroia.com/cdn/shop/files/image_1_2_245x.png?v=1770011925 245w,//www.hiroia.com/cdn/shop/files/image_1_2_270x.png?v=1770011925 270w,//www.hiroia.com/cdn/shop/files/image_1_2_290x.png?v=1770011925 290w,//www.hiroia.com/cdn/shop/files/image_1_2_320x.png?v=1770011925 320w,//www.hiroia.com/cdn/shop/files/image_1_2_355x.png?v=1770011925 355w,//www.hiroia.com/cdn/shop/files/image_1_2_360x.png?v=1770011925 360w,//www.hiroia.com/cdn/shop/files/image_1_2_370x.png?v=1770011925 370w,//www.hiroia.com/cdn/shop/files/image_1_2_420x.png?v=1770011925 420w,//www.hiroia.com/cdn/shop/files/image_1_2_430x.png?v=1770011925 430w,//www.hiroia.com/cdn/shop/files/image_1_2_460x.png?v=1770011925 460w,//www.hiroia.com/cdn/shop/files/image_1_2_470x.png?v=1770011925 470w,//www.hiroia.com/cdn/shop/files/image_1_2_510x.png?v=1770011925 510w,//www.hiroia.com/cdn/shop/files/image_1_2_523x.png?v=1770011925 523w,//www.hiroia.com/cdn/shop/files/image_1_2_533x.png?v=1770011925 533w,//www.hiroia.com/cdn/shop/files/image_1_2_534x.png?v=1770011925 534w,//www.hiroia.com/cdn/shop/files/image_1_2_570x.png?v=1770011925 570w,//www.hiroia.com/cdn/shop/files/image_1_2_640x.png?v=1770011925 640w,//www.hiroia.com/cdn/shop/files/image_1_2_665x.png?v=1770011925 665w,//www.hiroia.com/cdn/shop/files/image_1_2_670x.png?v=1770011925 670w,//www.hiroia.com/cdn/shop/files/image_1_2_720x.png?v=1770011925 720w,//www.hiroia.com/cdn/shop/files/image_1_2_775x.png?v=1770011925 775w,//www.hiroia.com/cdn/shop/files/image_1_2_785x.png?v=1770011925 785w,//www.hiroia.com/cdn/shop/files/image_1_2_870x.png?v=1770011925 870w,//www.hiroia.com/cdn/shop/files/image_1_2_930x.png?v=1770011925 930w,//www.hiroia.com/cdn/shop/files/image_1_2_935x.png?v=1770011925 935w,//www.hiroia.com/cdn/shop/files/image_1_2_940x.png?v=1770011925 940w,//www.hiroia.com/cdn/shop/files/image_1_2_1066x.png?v=1770011925 1066w,//www.hiroia.com/cdn/shop/files/image_1_2_1160x.png?v=1770011925 1160w,//www.hiroia.com/cdn/shop/files/image_1_2_1170x.png?v=1770011925 1170w,//www.hiroia.com/cdn/shop/files/image_1_2_1270x.png?v=1770011925 1270w,//www.hiroia.com/cdn/shop/files/image_1_2_1370x.png?v=1770011925 1370w,//www.hiroia.com/cdn/shop/files/image_1_2_1570x.png?v=1770011925 1570w,//www.hiroia.com/cdn/shop/files/image_1_2_1770x.png?v=1770011925 1770w,//www.hiroia.com/cdn/shop/files/image_1_2_1850x.png?v=1770011925 1850w,//www.hiroia.com/cdn/shop/files/image_1_2_1880x.png?v=1770011925 1880w" 5850 5851sizes="(min-width: 1100px) 2500px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
5852alt="EDGE Mini+" 5853size="2500" 5854loading="lazy" 5855class="motion-reduce lazyload" 5856 /> 5857 �<span class="data-lazy-loading"></span>�<div class="media-loading" data-title="Ella">Ella</div> 5858 </a><div class="card-product__group group-right"><div class="card-product__group-item card-quickview card-quickviewIcon"> 5859 <a class="quickview-icon" href="javascript:void(0)" data-product-id="8405526577313" data-open-quick-view-popup data-product-handle="edge-mini-grinder"> 5860 <span class="visually-hidden">Quick View</span> 5861 <span class="text"> 5862 Quick View 5863 </span> 5864 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 511.999 511.999" aria-hidden="true" focusable="false" role="presentation" class="icon icon-eyes"> 5865<path d="M508.745,246.041c-4.574-6.257-113.557-153.206-252.748-153.206S7.818,239.784,3.249,246.035 5866 c-4.332,5.936-4.332,13.987,0,19.923c4.569,6.257,113.557,153.206,252.748,153.206s248.174-146.95,252.748-153.201 5867 C513.083,260.028,513.083,251.971,508.745,246.041z M255.997,385.406c-102.529,0-191.33-97.533-217.617-129.418 5868 c26.253-31.913,114.868-129.395,217.617-129.395c102.524,0,191.319,97.516,217.617,129.418 5869 C447.361,287.923,358.746,385.406,255.997,385.406z"></path> 5870 <path d="M255.997,154.725c-55.842,0-101.275,45.433-101.275,101.275s45.433,101.275,101.275,101.275 5871 s101.275-45.433,101.275-101.275S311.839,154.725,255.997,154.725z M255.997,323.516c-37.23,0-67.516-30.287-67.516-67.516 5872 s30.287-67.516,67.516-67.516s67.516,30.287,67.516,67.516S293.227,323.516,255.997,323.516z"></path> 5873</svg> 5874 </a> 5875 </div></div> 5876<div class="card-action"> 5877 <form action="/cart/add" method="post" class="variants" id="form-8405526577313-" data-product-id="8405526577313" enctype="multipart/form-data"><a class="button button-ATC" href="/products/edge-mini-grinder" data-quickshop-popup data-product-handle="edge-mini-grinder"> 5878 5879 Quick Add 5880 5881 </a></form><div class="variants-popup custom-scrollbar"> 5882 5883
5883<script> 5884 window.quick_view_inven_array_8405526577313 = { 5885 5886 '45687785029793': '97', 5887 5888 '45687785062561': '95', 5889 5890 }; 5891 </script>
5891 5892 5893 5894<a href="#" class="variants-popup-close" data-cancel-quickshop-popup alt="Close"> 5895 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 5896 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 5897</svg> 5898 Close 5899</a> 5900 5901<div class="variants-popup-content text-center" data-quickshop> 5902 5903 <form action="/cart/add" method="post" class="variants" id="swatch-form-8405526577313--" data-id="product-actions-8405526577313" enctype="multipart/form-data"><div class="selector-wrapper selector-wrapper-1 swatch option-color" data-option-index="0" data-option-position="0" > 5904 <label class="form-label"> 5905 Color: 5906 <span class="label-value-1">Black</span> 5907 </label><div class="swatch-element black available" data-value="Black"> 5908 <input 5909 class="single-option" 5910 type="radio" 5911 name="SingleOptionSelector-0-8405526577313-" 5912 data-index="option1" 5913 value="Black" 5914 id="SingleOptionSelector0-Black-8405526577313-" 5915 5916 > 5917 <label 5918 class="single-label" 5919 title="Black" 5920 for="SingleOptionSelector0-Black-8405526577313-" 5921 > 5922 <span class="pattern" 5923 style="background-color: black; 5924 background-image: url(//www.hiroia.com/cdn/shop/files/black.png?v=14226) 5925 "> 5926 </span> 5927 </label> 5928 </div><div class="swatch-element white available" data-value="White"> 5929 <input 5930 class="single-option" 5931 type="radio" 5932 name="SingleOptionSelector-0-8405526577313-" 5933 data-index="option1" 5934 value="White" 5935 id="SingleOptionSelector0-White-8405526577313-" 5936 5937 > 5938 <label 5939 class="single-label" 5940 title="White" 5941 for="SingleOptionSelector0-White-8405526577313-" 5942 > 5943 <span class="pattern" 5944 style="background-color: white; 5945 background-image: url(//www.hiroia.com/cdn/shop/files/white.png?v=14226) 5946 "> 5947 </span> 5948 </label> 5949 </div></div><select name="id" id="ProductSelect-8405526577313-" class="selector-wrapper-hidden" style="display: none;"><option value="45687785029793" data-value="45687785029793"> 5950 Black 5951 </option><option value="45687785062561" data-value="45687785062561"> 5952 White 5953 </option> 5954 </select> 5955 5956 <label class="form-label label-quantity-2">Quantity:</label> 5957 <quickshop-update-quantity class="previewCartItem-qty quickshop-quantity"> 5958 <a href="javascript:void(0)" data-minus-quantity-quickshop="" class="minus btn-quantity"></a> 5959 <input class="form-input quantity ProductDrop" name="quantity" id="quickshop-update-8405526577313" data-qtt-id1="quantity8405526577313" value="1" type="number" data-product-card-quantity data-product-card-quantity-id="8405526577313"/> 5960 <a href="javascript:void(0)" data-plus-quantity-quickshop="" class="plus btn-quantity"></a> 5961 </quickshop-update-quantity> 5962 5963 <div class="product-card__button2"> 5964 <input type="hidden" name="quantity" value="1" /> 5965 <button data-btn-addToCart class="button button2 add-to-cart-btn" type="submit" data-form-id="#swatch-form-8405526577313--"> 5966 Add 5967 </button> 5968 5969 <button data-cancel-quickshop-popup class="button button2 cancel-btn"> 5970 Cancel 5971 </button> 5972 5973 </div> 5974 </form> 5975</div> 5976 </div> 5977 </div></div> 5978 </div> 5979 <div class="card-information"> 5980 <div class="card-information__wrapper text-center">
5980<a class="card-title link-underline card-title-change" href="/products/edge-mini-grinder" data-product-title="EDGE Mini+" data-product-url="/products/edge-mini-grinder"> 5981 <span class="text"> 5982 EDGE Mini+ 5983 5984 <span data-change-title> </span> 5985 5986 </span> 5987 </a><div class="card-summary card-list__hidden"> 5988 Experience professional grinding anywhere with the Edge Mini+ Grinder. Featuring 38mm stainless steel conical burrs and the stepless micro-adjustment for Espresso to Pour-over. Ultra-portable, USB-C rechargeable, and built for flavor enthusiasts. The Edge Mini+ Grinder is the ultimate companion for the modern coffee connoisseur.... 5989</div> 5990 5991 <div class="card-price"> 5992 5993<div 5994 class=" 5995 price " 5996> 5997 <dl><div class="price__regular"> 5998 <dt> 5999 <span class="visually-hidden visually-hidden--inline">Regular price</span> 6000 </dt> 6001 <dd class="price__last"> 6002 <span class="price-item price-item--regular"> 6003 $179.00 USD 6004 </span> 6005 <!-- ååç¾é广 ¼ --></dd> 6006 </div> 6007 <div class="price__sale"> 6008 <dt class="price__compare"> 6009 <span class="visually-hidden visually-hidden--inline">Regular price</span> 6010 </dt> 6011 <dd class="price__compare"> 6012 <s class="price-item price-item--regular"> 6013 6014 </s> 6015 </dd> 6016 <dt> 6017 <span class="visually-hidden visually-hidden--inline">Sale price</span> 6018 </dt> 6019 <dd class="price__last"> 6020 <span class="price-item price-item--sale"> 6021 $179.00 USD 6022 </span> 6023 </dd></div> 6024 <small class="unit-price caption hidden"> 6025 <dt class="visually-hidden">Unit price</dt> 6026 <dd class="price__last"> 6027 <span></span> 6028 <span aria-hidden="true">/</span> 6029 <span class="visually-hidden"> per </span> 6030 <span> 6031 </span> 6032 </dd> 6033 </small> 6034 </dl> 6035</div> 6036 6037 </div> 6038 </div><div class="card-swatch text-center clearfix quick_shop_type_2" id="product-swatch-8405526577313"> 6039 <ul class="swatch list-unstyled"> 6040<li class="item"> 6041 <div class="item-wrapper clearfix"> 6042 <label 6043 6044 data-with-one-option="45687785029793" 6045 data-quantity="1" 6046 6047 class="swatch-label" 6048 data-value="black" 6049 data-variant-id="45687785029793" 6050 title="Black" 6051 6052 data-variant-img="//www.hiroia.com/cdn/shop/files/image8_800x.png?v=1770011925" 6053 6054 > 6055 <span class="pattern" 6056 style=" 6057 background-color: black; 6058 background-image: url(//www.hiroia.com/cdn/shop/files/black.png?v=14226) 6059 "> 6060 </span> 6061 black 6062 </label> 6063 <span class="tooltip"> 6064 6065 Black 6066 6067 </span> 6068 </div> 6069 </li> 6070 6071 6072 6073 6074<li class="item"> 6075 <div class="item-wrapper clearfix"> 6076 <label 6077 6078 data-with-one-option="45687785062561" 6079 data-quantity="1" 6080 6081 class="swatch-label" 6082 data-value="white" 6083 data-variant-id="45687785062561" 6084 title="White" 6085 6086 data-variant-img="//www.hiroia.com/cdn/shop/files/image9_800x.png?v=1770011925" 6087 6088 >
6089 <span class="pattern" 6090 style=" 6091 background-color: white; 6092 background-image: url(//www.hiroia.com/cdn/shop/files/white.png?v=14226) 6093 "> 6094 </span> 6095 white 6096 </label> 6097 <span class="tooltip"> 6098 6099 White 6100 6101 </span> 6102 </div> 6103 </li> 6104 6105 6106 6107 6108 6109 </ul> 6110 </div> 6111 6112<div class="card-action__group card-list__hidden"> 6113 <div class="card-action"> 6114 <form action="/cart/add" method="post" class="variants" id="form-8405526577313-list" data-product-id="8405526577313" enctype="multipart/form-data"><a class="button button-ATC" href="/products/edge-mini-grinder" data-quickshop-popup> 6115 Quick Add 6116 </a></form> 6117 </div> 6118</div> 6119<div class="card-action__group variants-popup card-list__hidden"> 6120 <div class="card-action variants-popup-form"><div class="custom-scrollbar"> 6121 6122
6122<script> 6123 window.quick_view_inven_array_8405526577313 = { 6124 6125 '45687785029793': '97', 6126 6127 '45687785062561': '95', 6128 6129 }; 6130 </script>
6130 6131 6132 6133<a href="#" class="variants-popup-close" data-cancel-quickshop-popup alt="Close"> 6134 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 6135 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 6136</svg> 6137 Close 6138</a> 6139 6140<div class="variants-popup-content text-center" data-quickshop> 6141 6142 <form action="/cart/add" method="post" class="variants" id="swatch-form-8405526577313--list" data-id="product-actions-8405526577313list" enctype="multipart/form-data"><div class="selector-wrapper selector-wrapper-1 swatch option-color" data-option-index="0" data-option-position="0" > 6143 <label class="form-label"> 6144 Color: 6145 <span class="label-value-1">Black</span> 6146 </label><div class="swatch-element black available" data-value="Black"> 6147 <input 6148 class="single-option" 6149 type="radio" 6150 name="SingleOptionSelector-0-8405526577313-list" 6151 data-index="option1" 6152 value="Black" 6153 id="SingleOptionSelector0-Black-8405526577313-list" 6154 6155 > 6156 <label 6157 class="single-label" 6158 title="Black" 6159 for="SingleOptionSelector0-Black-8405526577313-list" 6160 > 6161 <span class="pattern" 6162 style="background-color: black; 6163 background-image: url(//www.hiroia.com/cdn/shop/files/black.png?v=14226) 6164 "> 6165 </span> 6166 </label> 6167 </div><div class="swatch-element white available" data-value="White"> 6168 <input 6169 class="single-option" 6170 type="radio" 6171 name="SingleOptionSelector-0-8405526577313-list" 6172 data-index="option1" 6173 value="White" 6174 id="SingleOptionSelector0-White-8405526577313-list" 6175 6176 > 6177 <label 6178 class="single-label" 6179 title="White" 6180 for="SingleOptionSelector0-White-8405526577313-list" 6181 > 6182 <span class="pattern" 6183 style="background-color: white; 6184 background-image: url(//www.hiroia.com/cdn/shop/files/white.png?v=14226) 6185 "> 6186 </span> 6187 </label> 6188 </div></div><select name="id" id="ProductSelect-8405526577313-list" class="selector-wrapper-hidden" style="display: none;"><option value="45687785029793" data-value="45687785029793"> 6189 Black 6190 </option><option value="45687785062561" data-value="45687785062561"> 6191 White 6192 </option> 6193 </select> 6194 6195 <label class="form-label label-quantity-2">Quantity:</label> 6196 <quickshop-update-quantity class="previewCartItem-qty quickshop-quantity"> 6197 <a href="javascript:void(0)" data-minus-quantity-quickshop="" class="minus btn-quantity"></a> 6198 <input class="form-input quantity ProductDrop" name="quantity" id="quickshop-update-8405526577313" data-qtt-id1="quantity8405526577313" value="1" type="number" data-product-card-quantity data-product-card-quantity-id="8405526577313"/> 6199 <a href="javascript:void(0)" data-plus-quantity-quickshop="" class="plus btn-quantity"></a> 6200 </quickshop-update-quantity> 6201 6202 <div class="product-card__button2"> 6203 <input type="hidden" name="quantity" value="1" /> 6204 <button data-btn-addToCart class="button button2 add-to-cart-btn" type="submit" data-form-id="#swatch-form-8405526577313--list"> 6205 Add 6206 </button> 6207 6208 <button data-cancel-quickshop-popup class="button button2 cancel-btn"> 6209 Cancel 6210 </button> 6211 6212 </div> 6213 </form> 6214</div> 6215 </div></div> 6216</div> 6217</div> 6218 </div> 6219</div> 6220 6221 6222 </div><div class="product"> 6223 6224 6225<div class="product-item" data-product-id="8510114529441" data-json-product='{"id": 8510114529441,"handle": "go50-titanium-grinder","media": null,"variants": [{"id":46350772830369,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":null,"requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"GO50 Titanium Grinder","public_title":null,"options":["Default Title"],"price":36900,"weight":2500,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}]}'> 6226 <div class="card"> 6227 <div class="card-product"> 6228 <div class="card-product__wrapper"><div class="card__badge badge-left halo-productBadges halo-productBadges--left date-12171244 date1-140" data-new-badge-number="30"></div> 6229<a class="card-media card-media--adapt media--hover-effect media--loading-effect " 6230 href="/products/go50-titanium-grinder" 6231 6232 6233 style="padding-bottom: 149.97000599880025%;" 6234 6235 6236 > 6237 <img data-srcset="//www.hiroia.com/cdn/shop/files/Go50_Image6_165x.webp?v=1778041540 165w,//www.hiroia.com/cdn/shop/files/Go50_Image6_170x.webp?v=1778041540 170w,//www.hiroia.com/cdn/shop/files/Go50_Image6_185x.webp?v=1778041540 185w,//www.hiroia.com/cdn/shop/files/Go50_Image6_198x.webp?v=1778041540 198w,//www.hiroia.com/cdn/shop/files/Go50_Image6_210x.webp?v=1778041540 210w,//www.hiroia.com/cdn/shop/files/Go50_Image6_220x.webp?v=1778041540 220w,//www.hiroia.com/cdn/shop/files/Go50_Image6_245x.webp?v=1778041540 245w,//www.hiroia.com/cdn/shop/files/Go50_Image6_270x.webp?v=1778041540 270w,//www.hiroia.com/cdn/shop/files/Go50_Image6_290x.webp?v=1778041540 290w,//www.hiroia.com/cdn/shop/files/Go50_Image6_320x.webp?v=1778041540 320w,//www.hiroia.com/cdn/shop/files/Go50_Image6_355x.webp?v=1778041540 355w,//www.hiroia.com/cdn/shop/files/Go50_Image6_360x.webp?v=1778041540 360w,//www.hiroia.com/cdn/shop/files/Go50_Image6_370x.webp?v=1778041540 370w,//www.hiroia.com/cdn/shop/files/Go50_Image6_420x.webp?v=1778041540 420w,//www.hiroia.com/cdn/shop/files/Go50_Image6_430x.webp?v=1778041540 430w,//www.hiroia.com/cdn/shop/files/Go50_Image6_460x.webp?v=1778041540 460w,//www.hiroia.com/cdn/shop/files/Go50_Image6_470x.webp?v=1778041540 470w,//www.hiroia.com/cdn/shop/files/Go50_Image6_510x.webp?v=1778041540 510w,//www.hiroia.com/cdn/shop/files/Go50_Image6_523x.webp?v=1778041540 523w,//www.hiroia.com/cdn/shop/files/Go50_Image6_533x.webp?v=1778041540 533w,//www.hiroia.com/cdn/shop/files/Go50_Image6_534x.webp?v=1778041540 534w,//www.hiroia.com/cdn/shop/files/Go50_Image6_570x.webp?v=1778041540 570w,//www.hiroia.com/cdn/shop/files/Go50_Image6_640x.webp?v=1778041540 640w,//www.hiroia.com/cdn/shop/files/Go50_Image6_665x.webp?v=1778041540 665w,//www.hiroia.com/cdn/shop/files/Go50_Image6_670x.webp?v=1778041540 670w,//www.hiroia.com/cdn/shop/files/Go50_Image6_720x.webp?v=1778041540 720w,//www.hiroia.com/cdn/shop/files/Go50_Image6_775x.webp?v=1778041540 775w,//www.hiroia.com/cdn/shop/files/Go50_Image6_785x.webp?v=1778041540 785w,//www.hiroia.com/cdn/shop/files/Go50_Image6_870x.webp?v=1778041540 870w,//www.hiroia.com/cdn/shop/files/Go50_Image6_930x.webp?v=1778041540 930w,//www.hiroia.com/cdn/shop/files/Go50_Image6_935x.webp?v=1778041540 935w,//www.hiroia.com/cdn/shop/files/Go50_Image6_940x.webp?v=1778041540 940w,//www.hiroia.com/cdn/shop/files/Go50_Image6_1066x.webp?v=1778041540 1066w,//www.hiroia.com/cdn/shop/files/Go50_Image6_1160x.webp?v=1778041540 1160w,//www.hiroia.com/cdn/shop/files/Go50_Image6_1170x.webp?v=1778041540 1170w,//www.hiroia.com/cdn/shop/files/Go50_Image6_1270x.webp?v=1778041540 1270w,//www.hiroia.com/cdn/shop/files/Go50_Image6_1370x.webp?v=1778041540 1370w,//www.hiroia.com/cdn/shop/files/Go50_Image6_1570x.webp?v=1778041540 1570w" 6238 6239sizes="(min-width: 1100px) 1667px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
6240alt="GO50 Titanium Grinder" 6241size="1667" 6242loading="lazy" 6243class="motion-reduce lazyload" 6244 /> 6245 <img data-srcset="//www.hiroia.com/cdn/shop/files/Go50_Image7_165x.webp?v=1778041554 165w,//www.hiroia.com/cdn/shop/files/Go50_Image7_170x.webp?v=1778041554 170w,//www.hiroia.com/cdn/shop/files/Go50_Image7_185x.webp?v=1778041554 185w,//www.hiroia.com/cdn/shop/files/Go50_Image7_198x.webp?v=1778041554 198w,//www.hiroia.com/cdn/shop/files/Go50_Image7_210x.webp?v=1778041554 210w,//www.hiroia.com/cdn/shop/files/Go50_Image7_220x.webp?v=1778041554 220w,//www.hiroia.com/cdn/shop/files/Go50_Image7_245x.webp?v=1778041554 245w,//www.hiroia.com/cdn/shop/files/Go50_Image7_270x.webp?v=1778041554 270w,//www.hiroia.com/cdn/shop/files/Go50_Image7_290x.webp?v=1778041554 290w,//www.hiroia.com/cdn/shop/files/Go50_Image7_320x.webp?v=1778041554 320w,//www.hiroia.com/cdn/shop/files/Go50_Image7_355x.webp?v=1778041554 355w,//www.hiroia.com/cdn/shop/files/Go50_Image7_360x.webp?v=1778041554 360w,//www.hiroia.com/cdn/shop/files/Go50_Image7_370x.webp?v=1778041554 370w,//www.hiroia.com/cdn/shop/files/Go50_Image7_420x.webp?v=1778041554 420w,//www.hiroia.com/cdn/shop/files/Go50_Image7_430x.webp?v=1778041554 430w,//www.hiroia.com/cdn/shop/files/Go50_Image7_460x.webp?v=1778041554 460w,//www.hiroia.com/cdn/shop/files/Go50_Image7_470x.webp?v=1778041554 470w,//www.hiroia.com/cdn/shop/files/Go50_Image7_510x.webp?v=1778041554 510w,//www.hiroia.com/cdn/shop/files/Go50_Image7_523x.webp?v=1778041554 523w,//www.hiroia.com/cdn/shop/files/Go50_Image7_533x.webp?v=1778041554 533w,//www.hiroia.com/cdn/shop/files/Go50_Image7_534x.webp?v=1778041554 534w,//www.hiroia.com/cdn/shop/files/Go50_Image7_570x.webp?v=1778041554 570w,//www.hiroia.com/cdn/shop/files/Go50_Image7_640x.webp?v=1778041554 640w,//www.hiroia.com/cdn/shop/files/Go50_Image7_665x.webp?v=1778041554 665w,//www.hiroia.com/cdn/shop/files/Go50_Image7_670x.webp?v=1778041554 670w,//www.hiroia.com/cdn/shop/files/Go50_Image7_720x.webp?v=1778041554 720w,//www.hiroia.com/cdn/shop/files/Go50_Image7_775x.webp?v=1778041554 775w,//www.hiroia.com/cdn/shop/files/Go50_Image7_785x.webp?v=1778041554 785w,//www.hiroia.com/cdn/shop/files/Go50_Image7_870x.webp?v=1778041554 870w,//www.hiroia.com/cdn/shop/files/Go50_Image7_930x.webp?v=1778041554 930w,//www.hiroia.com/cdn/shop/files/Go50_Image7_935x.webp?v=1778041554 935w,//www.hiroia.com/cdn/shop/files/Go50_Image7_940x.webp?v=1778041554 940w,//www.hiroia.com/cdn/shop/files/Go50_Image7_1066x.webp?v=1778041554 1066w,//www.hiroia.com/cdn/shop/files/Go50_Image7_1160x.webp?v=1778041554 1160w,//www.hiroia.com/cdn/shop/files/Go50_Image7_1170x.webp?v=1778041554 1170w,//www.hiroia.com/cdn/shop/files/Go50_Image7_1270x.webp?v=1778041554 1270w,//www.hiroia.com/cdn/shop/files/Go50_Image7_1370x.webp?v=1778041554 1370w,//www.hiroia.com/cdn/shop/files/Go50_Image7_1570x.webp?v=1778041554 1570w,//www.hiroia.com/cdn/shop/files/Go50_Image7_1770x.webp?v=1778041554 1770w,//www.hiroia.com/cdn/shop/files/Go50_Image7_1850x.webp?v=1778041554 1850w,//www.hiroia.com/cdn/shop/files/Go50_Image7_1880x.webp?v=1778041554 1880w" 6246 6247sizes="(min-width: 1100px) 2500px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
6248alt="GO50 Titanium Grinder" 6249size="2500" 6250loading="lazy" 6251class="motion-reduce lazyload" 6252 /> 6253 �<span class="data-lazy-loading"></span>�<div class="media-loading" data-title="Ella">Ella</div> 6254 </a><div class="card-product__group group-right"><div class="card-product__group-item card-quickview card-quickviewIcon"> 6255 <a class="quickview-icon" href="javascript:void(0)" data-product-id="8510114529441" data-open-quick-view-popup data-product-handle="go50-titanium-grinder"> 6256 <span class="visually-hidden">Quick View</span> 6257 <span class="text"> 6258 Quick View 6259 </span> 6260 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 511.999 511.999" aria-hidden="true" focusable="false" role="presentation" class="icon icon-eyes"> 6261<path d="M508.745,246.041c-4.574-6.257-113.557-153.206-252.748-153.206S7.818,239.784,3.249,246.035 6262 c-4.332,5.936-4.332,13.987,0,19.923c4.569,6.257,113.557,153.206,252.748,153.206s248.174-146.95,252.748-153.201 6263 C513.083,260.028,513.083,251.971,508.745,246.041z M255.997,385.406c-102.529,0-191.33-97.533-217.617-129.418 6264 c26.253-31.913,114.868-129.395,217.617-129.395c102.524,0,191.319,97.516,217.617,129.418 6265 C447.361,287.923,358.746,385.406,255.997,385.406z"></path> 6266 <path d="M255.997,154.725c-55.842,0-101.275,45.433-101.275,101.275s45.433,101.275,101.275,101.275 6267 s101.275-45.433,101.275-101.275S311.839,154.725,255.997,154.725z M255.997,323.516c-37.23,0-67.516-30.287-67.516-67.516 6268 s30.287-67.516,67.516-67.516s67.516,30.287,67.516,67.516S293.227,323.516,255.997,323.516z"></path> 6269</svg> 6270 </a> 6271 </div></div> 6272<div class="card-action"> 6273 <form action="/cart/add" method="post" class="variants" id="form-8510114529441-" data-product-id="8510114529441" enctype="multipart/form-data"><input type="hidden" name="id" value="46350772830369" /> 6274 <input type="hidden" name="quantity" value="1" /><button 6275 type="submit" 6276 name="add" 6277 data-btn-addToCart 6278 data-available="" 6279 class="product-form__submit button button--primary an-" 6280 id="product-add-to-cart"> 6281 Add to cart 6282 6283</button></form> 6284 </div></div> 6285 </div> 6286 <div class="card-information"> 6287 <div class="card-information__wrapper text-center"><a class="card-title link-underline" href="/products/go50-titanium-grinder" data-product-title="GO50 Titanium Grinder" data-product-url="/products/go50-titanium-grinder"> 6288 <span class="text"> 6289 GO50 Titanium Grinder 6290 6291 </span> 6292 </a><div class="card-summary card-list__hidden"> 6293 Precision grind size GO50 Titanium Coffee Grinder â a fusion of power, precision, and elegance. Crafted with 50 mm titanium-coated burrs, it delivers exceptional durability and cutting performance. Powered by a 220 rpm high-speed, low-noise motor, the GO50 Titanium ensures a remarkably consistent grind... 6294</div> 6295 6296 <div class="card-price"> 6297 6298<div 6299 class=" 6300 price " 6301> 6302 <dl><div class="price__regular"> 6303 <dt> 6304 <span class="visually-hidden visually-hidden--inline">Regular price</span> 6305 </dt> 6306 <dd class="price__last"> 6307 <span class="price-item price-item--regular"> 6308 $369.00 USD 6309 </span> 6310 <!-- ååç¾é广 ¼ --></dd> 6311 </div> 6312 <div class="price__sale"> 6313 <dt class="price__compare"> 6314 <span class="visually-hidden visually-hidden--inline">Regular price</span> 6315 </dt> 6316 <dd class="price__compare"> 6317 <s class="price-item price-item--regular"> 6318 6319 </s> 6320 </dd> 6321 <dt> 6322 <span class="visually-hidden visually-hidden--inline">Sale price</span> 6323 </dt> 6324 <dd class="price__last">
6325 <span class="price-item price-item--sale"> 6326 $369.00 USD 6327 </span> 6328 </dd></div> 6329 <small class="unit-price caption hidden"> 6330 <dt class="visually-hidden">Unit price</dt> 6331 <dd class="price__last"> 6332 <span></span> 6333 <span aria-hidden="true">/</span> 6334 <span class="visually-hidden"> per </span> 6335 <span> 6336 </span> 6337 </dd> 6338 </small> 6339 </dl> 6340</div> 6341 6342 </div> 6343 </div> 6344<div class="card-action__group card-list__hidden"> 6345 <div class="card-action"> 6346 <form action="/cart/add" method="post" class="variants" id="form-8510114529441-list" data-product-id="8510114529441" enctype="multipart/form-data"><input type="hidden" name="id" value="46350772830369" /> 6347 <input type="hidden" name="quantity" value="1" /><button 6348 class="button button-ATC" 6349 type="submit" 6350 data-form-id="#form-8510114529441-list" 6351 data-btn-addToCart 6352 > 6353 Add to cart 6354 </button></form> 6355 </div> 6356</div> 6357<div class="card-action__group variants-popup card-list__hidden"> 6358 <div class="card-action variants-popup-form"></div> 6359</div> 6360</div> 6361 </div> 6362</div> 6363 6364 6365 </div><div class="product"> 6366 6367 6368<div class="product-item" data-product-id="7688290304161" data-json-product='{"id": 7688290304161,"handle": "jimmy-protective-pad","media": null,"variants": [{"id":42981575098529,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":false,"featured_image":null,"available":true,"name":"Jimmy with Protective Pad bundle","public_title":null,"options":["Default Title"],"price":21200,"weight":2000,"compare_at_price":null,"inventory_management":null,"barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}]}'> 6369 <div class="card"> 6370 <div class="card-product"> 6371 <div class="card-product__wrapper"><div class="card__badge badge-left halo-productBadges halo-productBadges--left date-67387478 date1-779" data-new-badge-number="30"></div> 6372<a class="card-media card-media--adapt media--loading-effect " 6373 href="/products/jimmy-protective-pad" 6374 6375 6376 style="padding-bottom: 100.0%;" 6377 6378 6379 > 6380 <img data-srcset="//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_165x.png?v=1752188367 165w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_170x.png?v=1752188367 170w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_185x.png?v=1752188367 185w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_198x.png?v=1752188367 198w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_210x.png?v=1752188367 210w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_220x.png?v=1752188367 220w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_245x.png?v=1752188367 245w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_270x.png?v=1752188367 270w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_290x.png?v=1752188367 290w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_320x.png?v=1752188367 320w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_355x.png?v=1752188367 355w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_360x.png?v=1752188367 360w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_370x.png?v=1752188367 370w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_420x.png?v=1752188367 420w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_430x.png?v=1752188367 430w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_460x.png?v=1752188367 460w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_470x.png?v=1752188367 470w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_510x.png?v=1752188367 510w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_523x.png?v=1752188367 523w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_533x.png?v=1752188367 533w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_534x.png?v=1752188367 534w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_570x.png?v=1752188367 570w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_640x.png?v=1752188367 640w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_665x.png?v=1752188367 665w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_670x.png?v=1752188367 670w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_720x.png?v=1752188367 720w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_775x.png?v=1752188367 775w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_785x.png?v=1752188367 785w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_870x.png?v=1752188367 870w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_930x.png?v=1752188367 930w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_935x.png?v=1752188367 935w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_940x.png?v=1752188367 940w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_1066x.png?v=1752188367 1066w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_1160x.png?v=1752188367 1160w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_1170x.png?v=1752188367 1170w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_1270x.png?v=1752188367 1270w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_1370x.png?v=1752188367 1370w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_1570x.png?v=1752188367 1570w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_1770x.png?v=1752188367 1770w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_1850x.png?v=1752188367 1850w,//www.hiroia.com/cdn/shop/files/f3f24461faaf1ceffae2b7fad427560cc72f7dd1_1880x.png?v=1752188367 1880w" 6381 6382sizes="(min-width: 1100px) 4000px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
6383alt="Jimmy with Protective Pad bundle" 6384size="4000" 6385loading="lazy" 6386class="motion-reduce lazyload" 6387 /><span class="data-lazy-loading"></span>�<div class="media-loading" data-title="Ella">Ella</div> 6388 </a><div class="card-product__group group-right"><div class="card-product__group-item card-quickview card-quickviewIcon"> 6389 <a class="quickview-icon" href="javascript:void(0)" data-product-id="7688290304161" data-open-quick-view-popup data-product-handle="jimmy-protective-pad"> 6390 <span class="visually-hidden">Quick View</span> 6391 <span class="text"> 6392 Quick View 6393 </span> 6394 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 511.999 511.999" aria-hidden="true" focusable="false" role="presentation" class="icon icon-eyes"> 6395<path d="M508.745,246.041c-4.574-6.257-113.557-153.206-252.748-153.206S7.818,239.784,3.249,246.035 6396 c-4.332,5.936-4.332,13.987,0,19.923c4.569,6.257,113.557,153.206,252.748,153.206s248.174-146.95,252.748-153.201 6397 C513.083,260.028,513.083,251.971,508.745,246.041z M255.997,385.406c-102.529,0-191.33-97.533-217.617-129.418 6398 c26.253-31.913,114.868-129.395,217.617-129.395c102.524,0,191.319,97.516,217.617,129.418 6399 C447.361,287.923,358.746,385.406,255.997,385.406z"></path> 6400 <path d="M255.997,154.725c-55.842,0-101.275,45.433-101.275,101.275s45.433,101.275,101.275,101.275 6401 s101.275-45.433,101.275-101.275S311.839,154.725,255.997,154.725z M255.997,323.516c-37.23,0-67.516-30.287-67.516-67.516 6402 s30.287-67.516,67.516-67.516s67.516,30.287,67.516,67.516S293.227,323.516,255.997,323.516z"></path> 6403</svg> 6404 </a> 6405 </div></div> 6406<div class="card-action"> 6407 <form action="/cart/add" method="post" class="variants" id="form-7688290304161-" data-product-id="7688290304161" enctype="multipart/form-data"><input type="hidden" name="id" value="42981575098529" /> 6408 <input type="hidden" name="quantity" value="1" /><button 6409 type="submit" 6410 name="add" 6411 data-btn-addToCart 6412 class="product-form__submit button button--secondary an-" 6413 id="product-add-to-cart" 6414 > 6415 Add to cart 6416 6417</button></form> 6418 </div></div> 6419 </div> 6420 <div class="card-information"> 6421 <div class="card-information__wrapper text-center"><a class="card-title link-underline" href="/products/jimmy-protective-pad" data-product-title="Jimmy with Protective Pad bundle" data-product-url="/products/jimmy-protective-pad"> 6422 <span class="text"> 6423 Jimmy with Protective Pad bundle 6424 6425 </span> 6426 </a><div class="card-summary card-list__hidden"> 6427 This 2-in-1 bundle is ideal for enthusiasts and professionals at all levels who appreciate pour-over coffee: Includes one (1) Jimmy smart scale unit along with 1 Jimmy Protective Pad designed to safeguard your Jimmy scale and extend its lifespan. 6428 6429</div> 6430 6431 <div class="card-price"> 6432 6433<div 6434 class=" 6435 price " 6436> 6437 <dl><div class="price__regular"> 6438 <dt> 6439 <span class="visually-hidden visually-hidden--inline">Regular price</span> 6440 </dt> 6441 <dd class="price__last"> 6442 <span class="price-item price-item--regular"> 6443 $212.00 USD 6444 </span> 6445 <!-- ååç¾é广 ¼ --></dd> 6446 </div> 6447 <div class="price__sale"> 6448 <dt class="price__compare"> 6449 <span class="visually-hidden visually-hidden--inline">Regular price</span> 6450 </dt> 6451 <dd class="price__compare"> 6452 <s class="price-item price-item--regular"> 6453 6454 </s> 6455 </dd> 6456 <dt> 6457 <span class="visually-hidden visually-hidden--inline">Sale price</span> 6458 </dt> 6459 <dd class="price__last">
6460 <span class="price-item price-item--sale"> 6461 $212.00 USD 6462 </span> 6463 </dd></div> 6464 <small class="unit-price caption hidden"> 6465 <dt class="visually-hidden">Unit price</dt> 6466 <dd class="price__last"> 6467 <span></span> 6468 <span aria-hidden="true">/</span> 6469 <span class="visually-hidden"> per </span> 6470 <span> 6471 </span> 6472 </dd> 6473 </small> 6474 </dl> 6475</div> 6476 6477 </div> 6478 </div> 6479<div class="card-action__group card-list__hidden"> 6480 <div class="card-action"> 6481 <form action="/cart/add" method="post" class="variants" id="form-7688290304161-list" data-product-id="7688290304161" enctype="multipart/form-data"><input type="hidden" name="id" value="42981575098529" /> 6482 <input type="hidden" name="quantity" value="1" /><button 6483 class="button button-ATC" 6484 type="submit" 6485 data-form-id="#form-7688290304161-list" 6486 data-btn-addToCart 6487 > 6488 Pre-Order 6489 </button></form> 6490 </div> 6491</div> 6492<div class="card-action__group variants-popup card-list__hidden"> 6493 <div class="card-action variants-popup-form"></div> 6494</div> 6495</div> 6496 </div> 6497</div> 6498 6499 6500 </div></div></div> 6501 6502 6503 6504 </div> 6505 </div></div> 6506 </div> 6507 </div> 6508</product-tabs-section> 6509
6510<script type="text/javascript"> 6511 if (typeof productTabSection == 'undefined') { 6512 class ProductTabsSection extends HTMLElement { 6513 constructor() { 6514 super(); 6515 this.section = this.querySelector('[data-product-tab-block]'); 6516 this.tabLinks = [...this.querySelectorAll('[data-product-tabTop]')]; 6517 this.tabContents = [...this.querySelectorAll('[data-product-tabContent]')]; 6518 this.limit = parseInt(this.section.dataset.limit) 6519 6520 this.initProductTabClick(); 6521 6522 } 6523 6524 initProductTabClick() { 6525 this.linkActive = this.tabLinks.find(tabLink => tabLink.classList.contains('active')); 6526 this.activeTabContent = this.tabContents.find(tabContent => tabContent.classList.contains('active')); 6527 6528 this.handleAfterClick(); 6529 6530 this.tabLinks.forEach(tabLink => { 6531 tabLink.addEventListener('click', this.handleTabClick.bind(this)) 6532 }) 6533 } 6534 6535 handleTabClick(e) { 6536 e.preventDefault(); 6537 e.stopPropagation(); 6538 6539 const clickedTabLink = e.target 6540 6541 if (clickedTabLink.classList.contains('active')) return 6542 6543 this.linkActive.classList.remove('active'); 6544 this.activeTabContent.classList.remove('active'); 6545 6546 const currentTabContent = this.querySelector(clickedTabLink.dataset.target); 6547 6548 clickedTabLink.classList.add('active'); 6549 currentTabContent.classList.add('active'); 6550 6551 this.linkActive = clickedTabLink 6552 this.activeTabContent = currentTabContent 6553 6554 $(this.activeTabContent.querySelector('.slick-slider')).slick('refresh'); 6555 6556 this.handleAfterClick(); 6557 } 6558 6559 handleAfterClick() { 6560 this.currentTabContent = this.activeTabContent.querySelector('.products-load'); 6561 6562 if(window.wishlist.show){ 6563 {typeof window.sharedFunctions?.setLocalStorageProductForWishlist === 'function' && window.sharedFunctions.setLocalStorageProductForWishlist()} 6564 } 6565 6566 if (window.sharedFunctions?.checkNeedToConvertCurrency()) { 6567 Currency.convertAll(window.shop_currency, $('#currencies .active').attr('data-currency'), 'span.money', 'money_format'); 6568 }; 6569 6570 if (this.currentTabContent.classList.contains('products-carousel')) { 6571 window.sharedFunctions?.productBlockSilder($(this.activeTabContent)) 6572 } 6573 6574 if (window.review.show && $('.shopify-product-reviews-badge').length > 0) { 6575 return window.SPR.registerCallbacks(), window.SPR.initRatingHandler(), window.SPR.initDomEls(), window.SPR.loadProducts(), window.SPR.loadBadges(); 6576 } 6577 6578 if (this.querySelector('[data-enable-hover]') != null && this.querySelector('[data-enable-hover]').dataset.enableHover === 'true') { 6579 window.sharedFunctions?.productBlockScroller($(this.activeTabContent)); 6580 } 6581 } 6582 } 6583 6584 window.addEventListener('load', () => { 6585 customElements.define('product-tabs-section', ProductTabsSection) 6586 }) 6587 6588 var productTabSection = ProductTabsSection; 6589 } 6590</script>
6590 6591 6592<style> #shopify-section-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .card-media--adapt {padding-bottom: 100% !important;} #shopify-section-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .card-media.media--hover-effect {border-radius: 8px 8px 0 0 !important;} @media (min-width: 769px) {#shopify-section-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .card-product {position: relative; } #shopify-section-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .sold-out-badge {position: absolute; bottom: -28.3rem; pointer-events: none; } #shopify-section-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .halo-productBadges {width: 100%; } #shopify-section-template--21422639317153__4e56b58d-b99b-434c-a991-dbe4dfed909c .product {padding-bottom: 24px; }} </style></div><div id="shopify-section-template--21422639317153__product_tab_block_zeKJNb" class="shopify-section sections-product-tab"><style> 6593 .section-block-template--21422639317153__product_tab_block_zeKJNb {--font-tab: var(--font-tab-type-1);} 6594 6595 .section-block-template--21422639317153__product_tab_block_zeKJNb .halo-block-header .title { 6596 color: #232323; 6597 font-size: 16px; 6598 6599 margin-bottom: 12px; 6600 6601 } 6602 6603 .section-block-template--21422639317153__product_tab_block_zeKJNb .halo-block-header .title:before { 6604 background-color: #232323; 6605 6606 } 6607 6608 6609 6610 .section-block-template--21422639317153__product_tab_block_zeKJNb .list-product-tabs { 6611 margin-bottom: 24px; 6612 } 6613 6614 .section-block-template--21422639317153__product_tab_block_zeKJNb .list-product-tabs a { 6615 font-family: var(--font-tab); 6616 color: #232323; 6617 font-size: 14px; 6618 font-weight: 700; 6619 line-height: 20px; 6620 border-radius: 3px; 6621 6622 background: #faf9f7; 6623 6624 6625 } 6626 6627 .section-block-template--21422639317153__product_tab_block_zeKJNb .list-product-tabs a.active { 6628 6629 color: #232323; 6630 background: #faf9f7; 6631 font-weight: 700; 6632 } 6633 6634 .section-block-template--21422639317153__product_tab_block_zeKJNb .list-product-tabs li { 6635 color: #232323; 6636 font-size: 14px; 6637 line-height: 20px; 6638 right: -19.0px; 6639 margin: 0 12.0px; 6640 } 6641 6642 .section-block-template--21422639317153__product_tab_block_zeKJNb .list-product-tabs li.separation { 6643 color: ; 6644 min-width: 1px; 6645 } 6646 6647 .section-block-template--21422639317153__product_tab_block_zeKJNb .list-product-tabs.list-tab__style_2 li a.active:before { 6648 border-bottom-color: #faf9f7; 6649 } 6650 6651 /* Start: Scroll Layout */ 6652 .section-block-template--21422639317153__product_tab_block_zeKJNb .products-flex { 6653 display: flex; 6654 flex-direction: row; 6655 flex-wrap: nowrap; 6656 user-select: none; 6657 padding-bottom: 45px; 6658 overflow: auto; 6659 gap: 30px; 6660 padding-right: 60px; 6661 } 6662 6663 .section-block-template--21422639317153__product_tab_block_zeKJNb .halo-product-block .products-flex .product { 6664 flex-shrink: 0; 6665 flex-grow: 0; 6666 padding: 0; 6667 } 6668 6669 .section-block-template--21422639317153__product_tab_block_zeKJNb .halo-block-content.is-scroll { 6670 overflow: hidden; 6671 } 6672 6673 .section-block-template--21422639317153__product_tab_block_zeKJNb .products-flex::-webkit-scrollbar {
6674 height: var(--scrollbar-height, 3px); 6675 cursor: pointer; 6676 } 6677 6678 .section-block-template--21422639317153__product_tab_block_zeKJNb .products-flex::-webkit-scrollbar-track { 6679 background: var(--scrollbar-track-color, #dadada); 6680 } 6681 6682 .section-block-template--21422639317153__product_tab_block_zeKJNb .products-flex::-webkit-scrollbar-thumb { 6683 background: var(--scrollbar-thumb-color, #000); 6684 } 6685 6686 .section-block-template--21422639317153__product_tab_block_zeKJNb .products-flex::-webkit-scrollbar-thumb:hover { 6687 background: var(--scrollbar-thumb-hover-color, #333); 6688 } 6689 6690 .section-block-template--21422639317153__product_tab_block_zeKJNb .products-flex.active .product { 6691 pointer-events: none; 6692 } 6693 6694 /* End: Scroll Layout */ 6695 6696 @media (min-width: 1200px) { 6697 .section-block-template--21422639317153__product_tab_block_zeKJNb { 6698 padding-top: 50px; 6699 padding-bottom: 50px; 6700 } 6701 6702 } 6703 6704 @media (min-width: 1025px) { 6705 6706 6707 .section-block-template--21422639317153__product_tab_block_zeKJNb .list-product-tabs li:not(.separation) { 6708 min-width: 5px; 6709 } 6710 6711 .section-block-template--21422639317153__product_tab_block_zeKJNb .list-product-tabs a:hover { 6712 color: #232323; 6713 background-color: #faf9f7; 6714 font-weight: 700; 6715 } 6716 } 6717 6718 @media (min-width: 768px) and (max-width: 1199px) { 6719 .section-block-template--21422639317153__product_tab_block_zeKJNb { 6720 padding-top: 50px; 6721 padding-bottom: 50px; 6722 } 6723 6724 .section-block-template--21422639317153__product_tab_block_zeKJNb .list-product-tabs { 6725 margin-bottom: 8px; 6726 } 6727 } 6728 6729 @media (min-width: 768px) { 6730 .section-block-template--21422639317153__product_tab_block_zeKJNb .halo-product-block .products-flex .product { 6731 6732 flex-basis: calc(100% / var(--count)); 6733 width: calc(100% / var(--count)); 6734 6735 } 6736 } 6737 6738 @media (max-width: 1024px) { 6739 .section-block-template--21422639317153__product_tab_block_zeKJNb .products-flex { 6740 --count: 2!important; 6741 gap: 15px; 6742 } 6743 6744 .section-block-template--21422639317153__product_tab_block_zeKJNb .products-flex .product { 6745 padding: 0 7px; 6746 } 6747 6748 .section-block-template--21422639317153__product_tab_block_zeKJNb .products-flex { 6749 scroll-snap-type: x mandatory; 6750 padding-bottom: 0; 6751 } 6752 6753 .section-block-template--21422639317153__product_tab_block_zeKJNb .halo-product-block .products-flex .product { 6754 scroll-snap-align: start; 6755 } 6756 } 6757 6758 @media (max-width: 767px) { 6759 .section-block-template--21422639317153__product_tab_block_zeKJNb { 6760 padding-top: 50px; 6761 padding-bottom: 50px; 6762 } 6763 6764 .section-block-template--21422639317153__product_tab_block_zeKJNb .list-product-tabs a { 6765 font-size: 14px !important; 6766 line-height: 24px; 6767 } 6768 6769 .section-block-template--21422639317153__product_tab_block_zeKJNb .halo-block-header .title { 6770 font-size: 16px; 6771 } 6772 6773 .section-block-template--21422639317153__product_tab_block_zeKJNb .halo-block-top { 6774 border: 0; 6775 } 6776 6777 .list-product-tabs.list-tab__style_2 li a.active:before { 6778 display: none !important; 6779 } 6780 6781 .product-tab-block .list-product-tabs.list-tab__style_2 li a { 6782 margin: 0; 6783 } 6784 6785 .section-block-template--21422639317153__product_tab_block_zeKJNb .products-flex .product { 6786 6787 flex-basis: calc(100% / var(--count)); 6788 width: calc(100% / var(--count)); 6789 6790 } 6791 } 6792 6793 @media (max-width: 551px){ 6794 6795 } 6796</style> 6797 6798<product-tabs-section> 6799 <div class="product-tab-block product-block section-block-template--21422639317153__product_tab_block_zeKJNb" > 6800 <div class="halo-block halo-product-block" id="halo-product-block-template--21422639317153__product_tab_block_zeKJNb" data-product-tab-block data-limit="8" data-layout="grid" sectionId="template--21422639317153__product_tab_block_zeKJNb" 6801 > 6802 <div class="container-1770"><div class="halo-block-header text-center"> 6803 <h3 class="title">
6804 <span class="text">Accessories</span> 6805 </h3> 6806 </div><div class="halo-block-content "><ul class="list-product-tabs list-tab__style_1 enable_scroll_tab disable-srollbar"> 6807 6808 <li> 6809 <a href="javascript:void(0)" data-target="#product-tab-template--21422639317153__product_tab_block_zeKJNb-product_tabs_4HKTDA" data-product-tabTop data-href="/collections/accessories?view=ajax_product_block" class="tab-links active"> 6810 6811 </a> 6812 </li> 6813 6814 </ul><div class="product-tabs-content"> 6815 6816 6817 <div class="tab-content active " data-product-TabContent id="product-tab-template--21422639317153__product_tab_block_zeKJNb-product_tabs_4HKTDA" ><div class="products-grid products-load column-5" data-products-to-show="8"><div class="product"> 6818 6819 6820<div class="product-item" data-product-id="7892637089953" data-json-product='{"id": 7892637089953,"handle": "coffee-grind-size-card","media": null,"variants": [{"id":43899999322273,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":false,"featured_image":null,"available":true,"name":"Coffee grind size card","public_title":null,"options":["Default Title"],"price":999,"weight":550,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}]}'> 6821 <div class="card"> 6822 <div class="card-product"> 6823 <div class="card-product__wrapper"><div class="card__badge badge-left halo-productBadges halo-productBadges--left date-67387475 date1-779" data-new-badge-number="30"></div> 6824<a class="card-media card-media--adapt media--hover-effect media--loading-effect " 6825 href="/products/coffee-grind-size-card" 6826 6827 6828 style="padding-bottom: 100.0%;" 6829 6830 6831 > 6832 <img data-srcset="//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_165x.png?v=1752188565 165w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_170x.png?v=1752188565 170w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_185x.png?v=1752188565 185w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_198x.png?v=1752188565 198w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_210x.png?v=1752188565 210w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_220x.png?v=1752188565 220w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_245x.png?v=1752188565 245w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_270x.png?v=1752188565 270w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_290x.png?v=1752188565 290w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_320x.png?v=1752188565 320w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_355x.png?v=1752188565 355w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_360x.png?v=1752188565 360w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_370x.png?v=1752188565 370w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_420
6832x.png?v=1752188565 420w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_430x.png?v=1752188565 430w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_460x.png?v=1752188565 460w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_470x.png?v=1752188565 470w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_510x.png?v=1752188565 510w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_523x.png?v=1752188565 523w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_533x.png?v=1752188565 533w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_534x.png?v=1752188565 534w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_570x.png?v=1752188565 570w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_640x.png?v=1752188565 640w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_665x.png?v=1752188565 665w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_670x.png?v=1752188565 670w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_720x.png?v=1752188565 720w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_775x.png?v=1752188565 775w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_785x.png?v=1752188565 785w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_870x.png?v=1752188565 870w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_930x.png?v=1752188565 930w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_935x.png?v=1752188565 935w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_940x.png?v=1752188565 940w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_1066x.png?v=1752188565 1066w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_1160x.png?v=1752188565 1160w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_1170x.png?v=1752188565 1170w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_1270x.png?v=1752188565 1270w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_1370x.png?v=1752188565 1370w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_1570x.png?v=1752188565 1570w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_1770x.png?v=1752188565 1770w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_1850x.png?v=1752188565 1850w,//www.hiroia.com/cdn/shop/files/ac942153553223b654a43dd7b3ad435eb9ff66ff_1880x.png?v=1752188565 1880w" 6833 6834sizes="(min-width: 1100px) 4000px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
6835alt="Coffee grind size card" 6836size="4000" 6837loading="lazy" 6838class="motion-reduce lazyload" 6839 /> 6840 <img data-srcset="//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_165x.png?v=1752188565 165w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_170x.png?v=1752188565 170w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_185x.png?v=1752188565 185w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_198x.png?v=1752188565 198w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_210x.png?v=1752188565 210w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_220x.png?v=1752188565 220w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_245x.png?v=1752188565 245w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_270x.png?v=1752188565 270w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_290x.png?v=1752188565 290w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_320x.png?v=1752188565 320w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_355x.png?v=1752188565 355w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_360x.png?v=1752188565 360w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_370x.png?v=1752188565 370w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_420x.png?v=1752188565 420w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_430x.png?v=1752188565 430w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_460x.png?v=1752188565 460w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_470x.png?v=1752188565 470w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_510x.png?v=1752188565 510w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_523x.png?v=1752188565 523w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_533x.png?v=1752188565 533w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_534x.png?v=1752188565 534w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_570x.png?v=1752188565 570w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_640x.png?v=1752188565 640w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_665x.png?v=1752188565 665w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_670x.png?v=1752188565 670w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_720x.png?v=1752188565 720w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_775x.png?v=1752188565 775w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_785x.png?v=1752188565 785w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_870x.png?v=1752188565 870w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_930x.png?v=1752188565 930w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_935x.png?v=1752188565 935w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_940x.png?v=1752188565 940w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_1066x.png?v=1752188565 1066w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_1160x.png?v=1752188565 1160w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_1170x.png?v=1752188565 1170w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_1270x.png?v=1752188565 1270w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_1370x.png?v=1752188565 1370w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_1570x.png?v=1752188565 1570w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_1770x.png?v=1752188565 1770w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_1850x.png?v=1752188565 1850w,//www.hiroia.com/cdn/shop/files/8cdb973342674baf87f17aad8d176edf_1880x.png?v=1752188565 1880w" 6841 6842sizes="(min-width: 1100px) 4144px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
6843alt="Coffee grind size card" 6844size="4144" 6845loading="lazy" 6846class="motion-reduce lazyload" 6847 /> 6848 �<span class="data-lazy-loading"></span>�<div class="media-loading" data-title="Ella">Ella</div> 6849 </a><div class="card-product__group group-right"><div class="card-product__group-item card-quickview card-quickviewIcon"> 6850 <a class="quickview-icon" href="javascript:void(0)" data-product-id="7892637089953" data-open-quick-view-popup data-product-handle="coffee-grind-size-card"> 6851 <span class="visually-hidden">Quick View</span> 6852 <span class="text"> 6853 Quick View 6854 </span> 6855 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 511.999 511.999" aria-hidden="true" focusable="false" role="presentation" class="icon icon-eyes"> 6856<path d="M508.745,246.041c-4.574-6.257-113.557-153.206-252.748-153.206S7.818,239.784,3.249,246.035 6857 c-4.332,5.936-4.332,13.987,0,19.923c4.569,6.257,113.557,153.206,252.748,153.206s248.174-146.95,252.748-153.201 6858 C513.083,260.028,513.083,251.971,508.745,246.041z M255.997,385.406c-102.529,0-191.33-97.533-217.617-129.418 6859 c26.253-31.913,114.868-129.395,217.617-129.395c102.524,0,191.319,97.516,217.617,129.418 6860 C447.361,287.923,358.746,385.406,255.997,385.406z"></path> 6861 <path d="M255.997,154.725c-55.842,0-101.275,45.433-101.275,101.275s45.433,101.275,101.275,101.275 6862 s101.275-45.433,101.275-101.275S311.839,154.725,255.997,154.725z M255.997,323.516c-37.23,0-67.516-30.287-67.516-67.516 6863 s30.287-67.516,67.516-67.516s67.516,30.287,67.516,67.516S293.227,323.516,255.997,323.516z"></path> 6864</svg> 6865 </a> 6866 </div></div> 6867<div class="card-action"> 6868 <form action="/cart/add" method="post" class="variants" id="form-7892637089953-" data-product-id="7892637089953" enctype="multipart/form-data"><input type="hidden" name="id" value="43899999322273" /> 6869 <input type="hidden" name="quantity" value="1" /><button 6870 type="submit" 6871 name="add" 6872 data-btn-addToCart 6873 data-available="" 6874 class="product-form__submit button button--primary an-" 6875 id="product-add-to-cart"> 6876 Add to cart 6877 6878</button></form> 6879 </div></div> 6880 </div> 6881 <div class="card-information"> 6882 <div class="card-information__wrapper text-center"><a class="card-title link-underline" href="/products/coffee-grind-size-card" data-product-title="Coffee grind size card" data-product-url="/products/coffee-grind-size-card"> 6883 <span class="text"> 6884 Coffee grind size card 6885 6886 </span> 6887 </a><div class="card-summary card-list__hidden"> 6888 This handy stainless steel grind size card is your new best friend for brewing perfect pour-over coffee with your favorite Hario filters. No more struggling to guess the right grind or using sea salt comparisons. This chart takes the guesswork out, letting you quickly... 6889</div> 6890 6891 <div class="card-price"> 6892 6893<div 6894 class=" 6895 price " 6896> 6897 <dl><div class="price__regular"> 6898 <dt> 6899 <span class="visually-hidden visually-hidden--inline">Regular price</span> 6900 </dt> 6901 <dd class="price__last"> 6902 <span class="price-item price-item--regular"> 6903 $9.99 USD 6904 </span> 6905 <!-- ååç¾é广 ¼ --></dd> 6906 </div> 6907 <div class="price__sale"> 6908 <dt class="price__compare"> 6909 <span class="visually-hidden visually-hidden--inline">Regular price</span> 6910 </dt> 6911 <dd class="price__compare"> 6912 <s class="price-item price-item--regular"> 6913 6914 </s> 6915 </dd> 6916 <dt> 6917 <span class="visually-hidden visually-hidden--inline">Sale price</span> 6918 </dt> 6919 <dd class="price__last">
6920 <span class="price-item price-item--sale"> 6921 $9.99 USD 6922 </span> 6923 </dd></div> 6924 <small class="unit-price caption hidden"> 6925 <dt class="visually-hidden">Unit price</dt> 6926 <dd class="price__last"> 6927 <span></span> 6928 <span aria-hidden="true">/</span> 6929 <span class="visually-hidden"> per </span> 6930 <span> 6931 </span> 6932 </dd> 6933 </small> 6934 </dl> 6935</div> 6936 6937 </div> 6938 </div> 6939<div class="card-action__group card-list__hidden"> 6940 <div class="card-action"> 6941 <form action="/cart/add" method="post" class="variants" id="form-7892637089953-list" data-product-id="7892637089953" enctype="multipart/form-data"><input type="hidden" name="id" value="43899999322273" /> 6942 <input type="hidden" name="quantity" value="1" /><button 6943 class="button button-ATC" 6944 type="submit" 6945 data-form-id="#form-7892637089953-list" 6946 data-btn-addToCart 6947 > 6948 Add to cart 6949 </button></form> 6950 </div> 6951</div> 6952<div class="card-action__group variants-popup card-list__hidden"> 6953 <div class="card-action variants-popup-form"></div> 6954</div> 6955</div> 6956 </div> 6957</div> 6958 6959 6960 </div><div class="product"> 6961 6962 6963<div class="product-item" data-product-id="7394128494753" data-json-product='{"id": 7394128494753,"handle": "protective-pad","media": null,"variants": [{"id":42010207781025,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"1","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Jimmy Protective Pad","public_title":null,"options":["Default Title"],"price":3300,"weight":550,"compare_at_price":null,"inventory_management":null,"barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}]}'> 6964 <div class="card"> 6965 <div class="card-product"> 6966 <div class="card-product__wrapper"><div class="card__badge badge-left halo-productBadges halo-productBadges--left date-67387481 date1-779" data-new-badge-number="30"></div> 6967<a class="card-media card-media--adapt media--hover-effect media--loading-effect " 6968 href="/products/protective-pad" 6969 6970 6971 style="padding-bottom: 100.0%;" 6972 6973 6974 > 6975 <img data-srcset="//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_165x.png?v=1752457076 165w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_170x.png?v=1752457076 170w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_185x.png?v=1752457076 185w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_198x.png?v=1752457076 198w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_210x.png?v=1752457076 210w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_220x.png?v=1752457076 220w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_245x.png?v=1752457076 245w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_270x.png?v=1752457076 270w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_290x.png?v=1752457076 290w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_320x.png?v=1752457076 320w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_355x.png?v=1752457076 355w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_360x.png?v=1752457076 360w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_370x.png?v=1752457076 370w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_420
6975x.png?v=1752457076 420w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_430x.png?v=1752457076 430w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_460x.png?v=1752457076 460w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_470x.png?v=1752457076 470w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_510x.png?v=1752457076 510w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_523x.png?v=1752457076 523w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_533x.png?v=1752457076 533w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_534x.png?v=1752457076 534w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_570x.png?v=1752457076 570w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_640x.png?v=1752457076 640w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_665x.png?v=1752457076 665w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_670x.png?v=1752457076 670w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_720x.png?v=1752457076 720w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_775x.png?v=1752457076 775w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_785x.png?v=1752457076 785w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_870x.png?v=1752457076 870w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_930x.png?v=1752457076 930w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_935x.png?v=1752457076 935w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_940x.png?v=1752457076 940w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_1066x.png?v=1752457076 1066w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_1160x.png?v=1752457076 1160w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_1170x.png?v=1752457076 1170w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_1270x.png?v=1752457076 1270w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_1370x.png?v=1752457076 1370w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_1570x.png?v=1752457076 1570w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_1770x.png?v=1752457076 1770w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_1850x.png?v=1752457076 1850w,//www.hiroia.com/cdn/shop/files/6d9c78c3d3635408aab807eed1e57300ffce1dd8_1880x.png?v=1752457076 1880w" 6976 6977sizes="(min-width: 1100px) 4000px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
6978alt="Jimmy Protective Pad" 6979size="4000" 6980loading="lazy" 6981class="motion-reduce lazyload" 6982 /> 6983 <img data-srcset="//www.hiroia.com/cdn/shop/products/4_165x.jpg?v=1752457076 165w,//www.hiroia.com/cdn/shop/products/4_170x.jpg?v=1752457076 170w,//www.hiroia.com/cdn/shop/products/4_185x.jpg?v=1752457076 185w,//www.hiroia.com/cdn/shop/products/4_198x.jpg?v=1752457076 198w,//www.hiroia.com/cdn/shop/products/4_210x.jpg?v=1752457076 210w,//www.hiroia.com/cdn/shop/products/4_220x.jpg?v=1752457076 220w,//www.hiroia.com/cdn/shop/products/4_245x.jpg?v=1752457076 245w,//www.hiroia.com/cdn/shop/products/4_270x.jpg?v=1752457076 270w,//www.hiroia.com/cdn/shop/products/4_290x.jpg?v=1752457076 290w,//www.hiroia.com/cdn/shop/products/4_320x.jpg?v=1752457076 320w,//www.hiroia.com/cdn/shop/products/4_355x.jpg?v=1752457076 355w,//www.hiroia.com/cdn/shop/products/4_360x.jpg?v=1752457076 360w,//www.hiroia.com/cdn/shop/products/4_370x.jpg?v=1752457076 370w,//www.hiroia.com/cdn/shop/products/4_420x.jpg?v=1752457076 420w,//www.hiroia.com/cdn/shop/products/4_430x.jpg?v=1752457076 430w,//www.hiroia.com/cdn/shop/products/4_460x.jpg?v=1752457076 460w,//www.hiroia.com/cdn/shop/products/4_470x.jpg?v=1752457076 470w,//www.hiroia.com/cdn/shop/products/4_510x.jpg?v=1752457076 510w,//www.hiroia.com/cdn/shop/products/4_523x.jpg?v=1752457076 523w,//www.hiroia.com/cdn/shop/products/4_533x.jpg?v=1752457076 533w,//www.hiroia.com/cdn/shop/products/4_534x.jpg?v=1752457076 534w,//www.hiroia.com/cdn/shop/products/4_570x.jpg?v=1752457076 570w,//www.hiroia.com/cdn/shop/products/4_640x.jpg?v=1752457076 640w,//www.hiroia.com/cdn/shop/products/4_665x.jpg?v=1752457076 665w,//www.hiroia.com/cdn/shop/products/4_670x.jpg?v=1752457076 670w,//www.hiroia.com/cdn/shop/products/4_720x.jpg?v=1752457076 720w,//www.hiroia.com/cdn/shop/products/4_775x.jpg?v=1752457076 775w,//www.hiroia.com/cdn/shop/products/4_785x.jpg?v=1752457076 785w,//www.hiroia.com/cdn/shop/products/4_870x.jpg?v=1752457076 870w,//www.hiroia.com/cdn/shop/products/4_930x.jpg?v=1752457076 930w,//www.hiroia.com/cdn/shop/products/4_935x.jpg?v=1752457076 935w,//www.hiroia.com/cdn/shop/products/4_940x.jpg?v=1752457076 940w,//www.hiroia.com/cdn/shop/products/4_1066x.jpg?v=1752457076 1066w,//www.hiroia.com/cdn/shop/products/4_1160x.jpg?v=1752457076 1160w,//www.hiroia.com/cdn/shop/products/4_11
698370x.jpg?v=1752457076 1170w,//www.hiroia.com/cdn/shop/products/4_1270x.jpg?v=1752457076 1270w,//www.hiroia.com/cdn/shop/products/4_1370x.jpg?v=1752457076 1370w,//www.hiroia.com/cdn/shop/products/4_1570x.jpg?v=1752457076 1570w,//www.hiroia.com/cdn/shop/products/4_1770x.jpg?v=1752457076 1770w,//www.hiroia.com/cdn/shop/products/4_1850x.jpg?v=1752457076 1850w,//www.hiroia.com/cdn/shop/products/4_1880x.jpg?v=1752457076 1880w" 6984 6985sizes="(min-width: 1100px) 4000px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)" 6986alt="Jimmy Protective Pad" 6987size="4000" 6988loading="lazy" 6989class="motion-reduce lazyload" 6990 /> 6991 �<span class="data-lazy-loading"></span>�<div class="media-loading" data-title="Ella">Ella</div> 6992 </a><div class="card-product__group group-right"><div class="card-product__group-item card-quickview card-quickviewIcon"> 6993 <a class="quickview-icon" href="javascript:void(0)" data-product-id="7394128494753" data-open-quick-view-popup data-product-handle="protective-pad"> 6994 <span class="visually-hidden">Quick View</span> 6995 <span class="text"> 6996 Quick View 6997 </span> 6998 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 511.999 511.999" aria-hidden="true" focusable="false" role="presentation" class="icon icon-eyes"> 6999<path d="M508.745,246.041c-4.574-6.257-113.557-153.206-252.748-153.206S7.818,239.784,3.249,246.035 7000 c-4.332,5.936-4.332,13.987,0,19.923c4.569,6.257,113.557,153.206,252.748,153.206s248.174-146.95,252.748-153.201 7001 C513.083,260.028,513.083,251.971,508.745,246.041z M255.997,385.406c-102.529,0-191.33-97.533-217.617-129.418 7002 c26.253-31.913,114.868-129.395,217.617-129.395c102.524,0,191.319,97.516,217.617,129.418 7003 C447.361,287.923,358.746,385.406,255.997,385.406z"></path> 7004 <path d="M255.997,154.725c-55.842,0-101.275,45.433-101.275,101.275s45.433,101.275,101.275,101.275 7005 s101.275-45.433,101.275-101.275S311.839,154.725,255.997,154.725z M255.997,323.516c-37.23,0-67.516-30.287-67.516-67.516 7006 s30.287-67.516,67.516-67.516s67.516,30.287,67.516,67.516S293.227,323.516,255.997,323.516z"></path> 7007</svg> 7008 </a> 7009 </div></div> 7010<div class="card-action"> 7011 <form action="/cart/add" method="post" class="variants" id="form-7394128494753-" data-product-id="7394128494753" enctype="multipart/form-data"><input type="hidden" name="id" value="42010207781025" /> 7012 <input type="hidden" name="quantity" value="1" /><button 7013 type="submit" 7014 name="add" 7015 data-btn-addToCart 7016 class="product-form__submit button button--secondary an-" 7017 id="product-add-to-cart" 7018 > 7019 Add to cart 7020 7021</button></form> 7022 </div></div> 7023 </div> 7024 <div class="card-information"> 7025 <div class="card-information__wrapper text-center"><a class="card-title link-underline" href="/products/protective-pad" data-product-title="Jimmy Protective Pad" data-product-url="/products/protective-pad"> 7026 <span class="text"> 7027 Jimmy Protective Pad 7028 7029 </span> 7030 </a><div class="card-summary card-list__hidden"> 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042The new Jimmy Protective Pad is made of silicone material, providing excellent heat resistance, non-slip properties, and impact resistance, ensuring optimal reliability during brewing. The redesigned Protective Pad significantly enhances waterproof capabilities, offering superior protection for Jimmy. 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066</div> 7067 7068 <div class="card-price"> 7069 7070<div 7071 class=" 7072 price " 7073> 7074 <dl><div class="price__regular"> 7075 <dt> 7076 <span class="visually-hidden visually-hidden--inline">Regular price</span> 7077 </dt> 7078 <dd class="price__last">
7079 <span class="price-item price-item--regular"> 7080 $33.00 USD 7081 </span> 7082 <!-- ååç¾é广 ¼ --></dd> 7083 </div> 7084 <div class="price__sale"> 7085 <dt class="price__compare"> 7086 <span class="visually-hidden visually-hidden--inline">Regular price</span> 7087 </dt> 7088 <dd class="price__compare"> 7089 <s class="price-item price-item--regular"> 7090 7091 </s> 7092 </dd> 7093 <dt> 7094 <span class="visually-hidden visually-hidden--inline">Sale price</span> 7095 </dt> 7096 <dd class="price__last"> 7097 <span class="price-item price-item--sale"> 7098 $33.00 USD 7099 </span> 7100 </dd></div> 7101 <small class="unit-price caption hidden"> 7102 <dt class="visually-hidden">Unit price</dt> 7103 <dd class="price__last"> 7104 <span></span> 7105 <span aria-hidden="true">/</span> 7106 <span class="visually-hidden"> per </span> 7107 <span> 7108 </span> 7109 </dd> 7110 </small> 7111 </dl> 7112</div> 7113 7114 </div> 7115 </div> 7116<div class="card-action__group card-list__hidden"> 7117 <div class="card-action"> 7118 <form action="/cart/add" method="post" class="variants" id="form-7394128494753-list" data-product-id="7394128494753" enctype="multipart/form-data"><input type="hidden" name="id" value="42010207781025" /> 7119 <input type="hidden" name="quantity" value="1" /><button 7120 class="button button-ATC" 7121 type="submit" 7122 data-form-id="#form-7394128494753-list" 7123 data-btn-addToCart 7124 > 7125 Pre-Order 7126 </button></form> 7127 </div> 7128</div> 7129<div class="card-action__group variants-popup card-list__hidden"> 7130 <div class="card-action variants-popup-form"></div> 7131</div> 7132</div> 7133 </div> 7134</div> 7135 7136 7137 </div><div class="product"> 7138 7139 7140<div class="product-item" data-product-id="7394128560289" data-json-product='{"id": 7394128560289,"handle": "100g-calibration-weight","media": null,"variants": [{"id":42010207912097,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"10","requires_shipping":true,"taxable":false,"featured_image":null,"available":true,"name":"100g Calibration Weight","public_title":null,"options":["Default Title"],"price":3999,"weight":550,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}]}'> 7141 <div class="card"> 7142 <div class="card-product"> 7143 <div class="card-product__wrapper"><div class="card__badge badge-left halo-productBadges halo-productBadges--left date-67387480 date1-779" data-new-badge-number="30"></div> 7144<a class="card-media card-media--adapt media--loading-effect " 7145 href="/products/100g-calibration-weight" 7146 7147 7148 style="padding-bottom: 100.0%;" 7149 7150 7151 > 7152 <img data-srcset="//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_165x.png?v=1752188364 165w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_170x.png?v=1752188364 170w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_185x.png?v=1752188364 185w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_198x.png?v=1752188364 198w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_210x.png?v=1752188364 210w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_220x.png?v=1752188364 220w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_245x.png?v=1752188364 245w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_270x.png?v=1752188364 270w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_290x.png?v=1752188364 290w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_320x.png?v=1752188364 320w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_355x.png?v=1752188364 355w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_360x.png?v=1752188364 360w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_370x.png?v=1752188364 370w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_420x.png?v=1752188364 420w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_430x.png?v=1752188364 430w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_460x.png?v=1752188364 460w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_470x.png?v=1752188364 470w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_510x.png?v=1752188364 510w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_523x.png?v=1752188364 523w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_533x.png?v=1752188364 533w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_534x.png?v=1752188364 534w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_570x.png?v=1752188364 570w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_640x.png?v=1752188364 640w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_665x.png?v=1752188364 665w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_670x.png?v=1752188364 670w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_720x.png?v=1752188364 720w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_775x.png?v=1752188364 7
715275w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_785x.png?v=1752188364 785w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_870x.png?v=1752188364 870w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_930x.png?v=1752188364 930w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_935x.png?v=1752188364 935w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_940x.png?v=1752188364 940w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_1066x.png?v=1752188364 1066w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_1160x.png?v=1752188364 1160w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_1170x.png?v=1752188364 1170w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_1270x.png?v=1752188364 1270w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_1370x.png?v=1752188364 1370w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_1570x.png?v=1752188364 1570w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_1770x.png?v=1752188364 1770w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_1850x.png?v=1752188364 1850w,//www.hiroia.com/cdn/shop/files/c86bce6c2e95fee83074122766e934aca0005541_1880x.png?v=1752188364 1880w" 7153 7154sizes="(min-width: 1100px) 4000px, (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)"
7155alt="100g Calibration Weight" 7156size="4000" 7157loading="lazy" 7158class="motion-reduce lazyload" 7159 /><span class="data-lazy-loading"></span>�<div class="media-loading" data-title="Ella">Ella</div> 7160 </a><div class="card-product__group group-right"><div class="card-product__group-item card-quickview card-quickviewIcon"> 7161 <a class="quickview-icon" href="javascript:void(0)" data-product-id="7394128560289" data-open-quick-view-popup data-product-handle="100g-calibration-weight"> 7162 <span class="visually-hidden">Quick View</span> 7163 <span class="text"> 7164 Quick View 7165 </span> 7166 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 511.999 511.999" aria-hidden="true" focusable="false" role="presentation" class="icon icon-eyes"> 7167<path d="M508.745,246.041c-4.574-6.257-113.557-153.206-252.748-153.206S7.818,239.784,3.249,246.035 7168 c-4.332,5.936-4.332,13.987,0,19.923c4.569,6.257,113.557,153.206,252.748,153.206s248.174-146.95,252.748-153.201 7169 C513.083,260.028,513.083,251.971,508.745,246.041z M255.997,385.406c-102.529,0-191.33-97.533-217.617-129.418 7170 c26.253-31.913,114.868-129.395,217.617-129.395c102.524,0,191.319,97.516,217.617,129.418 7171 C447.361,287.923,358.746,385.406,255.997,385.406z"></path> 7172 <path d="M255.997,154.725c-55.842,0-101.275,45.433-101.275,101.275s45.433,101.275,101.275,101.275 7173 s101.275-45.433,101.275-101.275S311.839,154.725,255.997,154.725z M255.997,323.516c-37.23,0-67.516-30.287-67.516-67.516 7174 s30.287-67.516,67.516-67.516s67.516,30.287,67.516,67.516S293.227,323.516,255.997,323.516z"></path> 7175</svg> 7176 </a> 7177 </div></div> 7178<div class="card-action"> 7179 <form action="/cart/add" method="post" class="variants" id="form-7394128560289-" data-product-id="7394128560289" enctype="multipart/form-data"><input type="hidden" name="id" value="42010207912097" /> 7180 <input type="hidden" name="quantity" value="1" /><button 7181 type="submit" 7182 name="add" 7183 data-btn-addToCart 7184 data-available="" 7185 class="product-form__submit button button--primary an-" 7186 id="product-add-to-cart"> 7187 Add to cart 7188 7189</button></form> 7190 </div></div> 7191 </div> 7192 <div class="card-information"> 7193 <div class="card-information__wrapper text-center"><a class="card-title link-underline" href="/products/100g-calibration-weight" data-product-title="100g Calibration Weight" data-product-url="/products/100g-calibration-weight"> 7194 <span class="text"> 7195 100g Calibration Weight 7196 7197 </span> 7198 </a><div class="card-summary card-list__hidden"> 7199 100g Calibration weight for Jimmy smart coffee scale. Forged from stainless steel for ultimate durability and exceptional accuracy. A compact design allows for easy storage and effortless transport. An untouched stainless steel finish gives a raw and minimalistic feel. 7200</div> 7201 7202 <div class="card-price"> 7203 7204<div 7205 class=" 7206 price " 7207> 7208 <dl><div class="price__regular"> 7209 <dt> 7210 <span class="visually-hidden visually-hidden--inline">Regular price</span> 7211 </dt> 7212 <dd class="price__last"> 7213 <span class="price-item price-item--regular"> 7214 $39.99 USD 7215 </span> 7216 <!-- ååç¾é广 ¼ --></dd> 7217 </div> 7218 <div class="price__sale"> 7219 <dt class="price__compare"> 7220 <span class="visually-hidden visually-hidden--inline">Regular price</span> 7221 </dt> 7222 <dd class="price__compare"> 7223 <s class="price-item price-item--regular"> 7224 7225 </s> 7226 </dd> 7227 <dt> 7228 <span class="visually-hidden visually-hidden--inline">Sale price</span> 7229 </dt> 7230 <dd class="price__last">
7231 <span class="price-item price-item--sale"> 7232 $39.99 USD 7233 </span> 7234 </dd></div> 7235 <small class="unit-price caption hidden"> 7236 <dt class="visually-hidden">Unit price</dt> 7237 <dd class="price__last"> 7238 <span></span> 7239 <span aria-hidden="true">/</span> 7240 <span class="visually-hidden"> per </span> 7241 <span> 7242 </span> 7243 </dd> 7244 </small> 7245 </dl> 7246</div> 7247 7248 </div> 7249 </div> 7250<div class="card-action__group card-list__hidden"> 7251 <div class="card-action"> 7252 <form action="/cart/add" method="post" class="variants" id="form-7394128560289-list" data-product-id="7394128560289" enctype="multipart/form-data"><input type="hidden" name="id" value="42010207912097" /> 7253 <input type="hidden" name="quantity" value="1" /><button 7254 class="button button-ATC" 7255 type="submit" 7256 data-form-id="#form-7394128560289-list" 7257 data-btn-addToCart 7258 > 7259 Add to cart 7260 </button></form> 7261 </div> 7262</div> 7263<div class="card-action__group variants-popup card-list__hidden"> 7264 <div class="card-action variants-popup-form"></div> 7265</div> 7266</div> 7267 </div> 7268</div> 7269 7270 7271 </div></div></div> 7272 7273 7274 7275 </div> 7276 </div></div> 7277 </div> 7278 </div> 7279</product-tabs-section> 7280
7281<script type="text/javascript"> 7282 if (typeof productTabSection == 'undefined') { 7283 class ProductTabsSection extends HTMLElement { 7284 constructor() { 7285 super(); 7286 this.section = this.querySelector('[data-product-tab-block]'); 7287 this.tabLinks = [...this.querySelectorAll('[data-product-tabTop]')]; 7288 this.tabContents = [...this.querySelectorAll('[data-product-tabContent]')]; 7289 this.limit = parseInt(this.section.dataset.limit) 7290 7291 this.initProductTabClick(); 7292 7293 } 7294 7295 initProductTabClick() { 7296 this.linkActive = this.tabLinks.find(tabLink => tabLink.classList.contains('active')); 7297 this.activeTabContent = this.tabContents.find(tabContent => tabContent.classList.contains('active')); 7298 7299 this.handleAfterClick(); 7300 7301 this.tabLinks.forEach(tabLink => { 7302 tabLink.addEventListener('click', this.handleTabClick.bind(this)) 7303 }) 7304 } 7305 7306 handleTabClick(e) { 7307 e.preventDefault(); 7308 e.stopPropagation(); 7309 7310 const clickedTabLink = e.target 7311 7312 if (clickedTabLink.classList.contains('active')) return 7313 7314 this.linkActive.classList.remove('active'); 7315 this.activeTabContent.classList.remove('active'); 7316 7317 const currentTabContent = this.querySelector(clickedTabLink.dataset.target); 7318 7319 clickedTabLink.classList.add('active'); 7320 currentTabContent.classList.add('active'); 7321 7322 this.linkActive = clickedTabLink 7323 this.activeTabContent = currentTabContent 7324 7325 $(this.activeTabContent.querySelector('.slick-slider')).slick('refresh'); 7326 7327 this.handleAfterClick(); 7328 } 7329 7330 handleAfterClick() { 7331 this.currentTabContent = this.activeTabContent.querySelector('.products-load'); 7332 7333 if(window.wishlist.show){ 7334 {typeof window.sharedFunctions?.setLocalStorageProductForWishlist === 'function' && window.sharedFunctions.setLocalStorageProductForWishlist()} 7335 } 7336 7337 if (window.sharedFunctions?.checkNeedToConvertCurrency()) { 7338 Currency.convertAll(window.shop_currency, $('#currencies .active').attr('data-currency'), 'span.money', 'money_format'); 7339 }; 7340 7341 if (this.currentTabContent.classList.contains('products-carousel')) { 7342 window.sharedFunctions?.productBlockSilder($(this.activeTabContent)) 7343 } 7344 7345 if (window.review.show && $('.shopify-product-reviews-badge').length > 0) { 7346 return window.SPR.registerCallbacks(), window.SPR.initRatingHandler(), window.SPR.initDomEls(), window.SPR.loadProducts(), window.SPR.loadBadges(); 7347 } 7348 7349 if (this.querySelector('[data-enable-hover]') != null && this.querySelector('[data-enable-hover]').dataset.enableHover === 'true') { 7350 window.sharedFunctions?.productBlockScroller($(this.activeTabContent)); 7351 } 7352 } 7353 } 7354 7355 window.addEventListener('load', () => { 7356 customElements.define('product-tabs-section', ProductTabsSection) 7357 }) 7358 7359 var productTabSection = ProductTabsSection; 7360 } 7361</script>
7361 7362 7363<style> #shopify-section-template--21422639317153__product_tab_block_zeKJNb .card-media--adapt {padding-bottom: 100% !important;} </style></div><section id="shopify-section-template--21422639317153__custom_liquid_BjayQk" class="shopify-section spaced-section"><!DOCTYPE html> 7364<html> 7365<head> 7366<style> 7367/* å°å ¥ Open Sans åé« */ 7368@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&display=swap'); 7369 7370/* è¨å®ææåé«çº Open Sans */ 7371.product-tab-block, 7372.product-tab-block * { 7373 font-family: 'Open Sans', sans-serif !important; 7374} 7375 7376/* 主容å¨èæ¯éæ */ 7377.product-tab-block { 7378 background: transparent !important; 7379} 7380 7381/* ç¢åå¡çèæ¯è¨å® */ 7382.product-item .card { 7383 background: transparent !important; 7384 transition: background-color 0.3s ease !important; 7385} 7386 7387/* ç¢åå¡ç hover ææ - æ´åå¡çè®æçµ±ä¸é¡è² */ 7388.product-item .card:hover { 7389 background: #F5F0E6 !important; 7390} 7391 7392/* ç¢åå¡ç hover ææååå¡èæ¯æ¹çºéæï¼åªé¡¯ç¤ºå¡çç hover é¡è² */ 7393.product-item .card:hover .card-information { 7394 background: transparent !important; 7395} 7396 7397/* ç¢åæååå¡èæ¯è² */ 7398.card-information { 7399 background: #F4F3F0 !important; 7400 padding: 15px !important; 7401} 7402 7403/* æ¨é¡æåå·¦å°é½åç·æ¢ */ 7404.card-information__wrapper { 7405 text-align: left !important; 7406} 7407 7408.card-title { 7409 text-align: left !important; 7410 border-bottom: 1px solid #C7C7C7 !important; 7411 padding-bottom: 8px !important; 7412 margin-bottom: 12px !important; 7413} 7414 7415/* éé¡é¡è²è¨å® */ 7416.card-price .price, 7417.card-price .money, 7418.card-price .price-item, 7419.price__regular .money, 7420.price__sale .money { 7421 color: #674011 !important; 7422} 7423</style> 7424</head> 7425<body> 7426
7427<script> 7428document.addEventListener('DOMContentLoaded', function() { 7429 // 確ä¿å髿£ç¢ºè¼å ¥å¾éæ°æ¸²æå¹æ ¼é¡è² 7430 setTimeout(function() { 7431 const priceElements = document.querySelectorAll('.card-price .money, .price__regular .money, .price__sale .money'); 7432 priceElements.forEach(function(element) { 7433 element.style.color = '#674011'; 7434 }); 7435 }, 100); 7436}); 7437</script>
7437 7438 7439<style> .wrapper-body {padding-bottom: 0px;} html[lang="ja"] .youtube-videos__list .youtube-videos__card:nth-child(3) {display: none !important;} @media (max-width: 768px) {#HeaderLanguageList {display: block !important; /* 確ä¿å®¹å¨æè¶³å¤ 寬度 */ min-width: 200px; width: auto; /* éç½®æ¸å¯«æ¨¡å¼çºæ°´å¹³ */ writing-mode: horizontal-tb; text-orientation: mixed; /* åºæ¬æ¨£å¼ */ list-style: none; padding: 0; margin: 0; background: #fff; border: 1px solid #ddd; border-radius: 4px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); } .disclosure__link {display: flex; align-items: center; padding: 12px 16px; text-decoration: none; color: #333; transition: background-color 0.2s ease; /* å¼·å¶æåæ°´å¹³é¡¯ç¤º */ white-space: nowrap; writing-mode: horizontal-tb; text-orientation: mixed; }} </style> 7440</body> 7441</html> 7442 7443 7444 7445 7446</section><section id="shopify-section-template--21422639317153__custom_liquid_ngwHHH" class="shopify-section spaced-section"><style> 7447body { 7448 background-color: #FAF9F7; 7449} 7450</style> 7451 7452 7453 7454 7455</section><section id="shopify-section-template--21422639317153__custom_liquid_r9mPqE" class="shopify-section spaced-section"><style> 7456.halo-block { 7457 background: #faf9f7 !important; 7458} 7459 7460.halo-block-header .title .text { 7461 background: #faf9f7 !important; 7462} 7463 7464.card-information { 7465 border-radius: 0 0 8px 8px; 7466} 7467 7468.card-media > img { 7469 border-radius: 8px 8px 0 0; 7470} 7471 7472.card-product .card-media.media-image hover-effect>img { 7473 border-radius: 0 0 8px 8px; 7474} 7475 7476.halo-block-header.text-center { 7477 display: flex; 7478 align-items: center; 7479 margin: 40px 0; 7480 text-align: left; 7481} 7482 7483.halo-block-header.text-center .title { 7484 margin: 0; 7485 display: flex; 7486 align-items: center; 7487 width: 100%; 7488} 7489 7490.halo-block-header.text-center .text { 7491 font-family: 'Open Sans', sans-serif; 7492 font-weight: 700; 7493 font-size: 28px; 7494 color: #2F2F2F; 7495 margin-right: 5px; 7496 white-space: nowrap; 7497} 7498 7499.halo-block-header.text-center .title::before { 7500 content: ''; 7501 flex: 1; 7502 height: 1px; 7503 background-color: #C7C7C7 !important; 7504} 7505.halo-block-header .title .text { 7506 width: unset; 7507 } 7508.card-information__wrapper.text-center .card-price, .card-swatch.text-center { 7509 display: flex 7510; 7511 justify-content: flex-start; 7512} 7513/* å¼·å¶ä¸å¤§å¯« */ 7514.halo-block-header .title, 7515.halo-block-header .text { 7516 text-transform: none !important; 7517} 7518.products-grid .product{ 7519margin-top:unset !important; 7520} 7521</style> 7522 7523 7524 7525 7526</section> 7527 </main> 7528 7529 <!-- Google Tag Manager (noscript) -->
vendor: 93 bytes, lines 7529-7532
7529 7530 <noscript 7531 ><iframe 7532 src="https://www.googletagmanager.com/ns.html?id=
7532GTM-PWBK773K
vendor: 135 bytes, lines 7532-7538
7532" 7533 height="0" 7534 width="0" 7535 style="display:none;visibility:hidden" 7536 ></iframe 7537 ></noscript> 7538
7538<!-- End Google Tag Manager (noscript) --> 7539 7540 <!-- ä¿®æ£ææ©çQuick Add åæ¶ç¡æ³é»æBug --> 7541
7541<script src="//www.hiroia.com/cdn/shop/t/143/assets/quickshop-fix.js?v=69862829193811057411788398063" defer></script>
7541 7542 7543 <!-- å¹£å¥åæå¨ --> 7544 <div id="shopify-section-currency-converter" class="shopify-section"> 7545 7546 7547 7548<!-- é å ç¢ç SVG è·¯å¾å°ç §è¡¨ (for JS) -->
7549<script> 7550 window.currencyFlagUrl = { 7551 7552 "TWD": "//www.hiroia.com/cdn/shop/t/143/assets/tw.svg?v=1033520903113876811788398073", 7553 7554 7555 "USD": "//www.hiroia.com/cdn/shop/t/143/assets/us.svg?v=121513361099790349211788398073", 7556 7557 7558 "JPY": "//www.hiroia.com/cdn/shop/t/143/assets/jp.svg?v=83243306177389093371788398054", 7559 7560 7561 "EUR": "//www.hiroia.com/cdn/shop/t/143/assets/eu.svg?v=157402961466634359251788398025", 7562 7563 7564 "GBP": "//www.hiroia.com/cdn/shop/t/143/assets/gb.svg?v=166475183504724068621788398030", 7565 7566 7567 }; 7568</script>
7568 7569 7570<!-- æ¡æ©ç --> 7571<div class="desktop-currency-wrapper"> 7572 <div class="cc-converter" id="cc_converter_desktop"> 7573 <div class="cc-dropdown" id="cc_dropdown"> 7574 <button class="cc-dropdown__toggle" id="cc_toggle"> 7575 7576 7577 7578 <span class="cc-flag"> 7579 <img src="//www.hiroia.com/cdn/shop/t/143/assets/us.svg?v=121513361099790349211788398073" alt="USD åæ" width="20" height="15" style="vertical-align:middle;"> 7580 </span> 7581 <span class="cc-code">USD</span> 7582 <svg class="cc-arrow" viewBox="0 0 24 24"> 7583 <path d="M7 10l5 5 5-5z" fill="currentColor"/> 7584 </svg> 7585 </button> 7586 <ul class="cc-dropdown__menu" id="cc_menu"> 7587 7588 7589 <li class="cc-dropdown__item" data-currency="TWD"> 7590 <span class="cc-flag"> 7591 <img src="//www.hiroia.com/cdn/shop/t/143/assets/tw.svg?v=1033520903113876811788398073" alt="TWD åæ" width="20" height="15" style="vertical-align:middle;"> 7592 </span> 7593 <span class="cc-code">TWD</span> 7594 </li> 7595 7596 7597 <li class="cc-dropdown__item" data-currency="USD"> 7598 <span class="cc-flag"> 7599 <img src="//www.hiroia.com/cdn/shop/t/143/assets/us.svg?v=121513361099790349211788398073" alt="USD åæ" width="20" height="15" style="vertical-align:middle;"> 7600 </span> 7601 <span class="cc-code">USD</span> 7602 </li> 7603 7604 7605 <li class="cc-dropdown__item" data-currency="JPY"> 7606 <span class="cc-flag"> 7607 <img src="//www.hiroia.com/cdn/shop/t/143/assets/jp.svg?v=83243306177389093371788398054" alt="JPY åæ" width="20" height="15" style="vertical-align:middle;"> 7608 </span> 7609 <span class="cc-code">JPY</span> 7610 </li> 7611 7612 7613 <li class="cc-dropdown__item" data-currency="EUR"> 7614 <span class="cc-flag"> 7615 <img src="//www.hiroia.com/cdn/shop/t/143/assets/eu.svg?v=157402961466634359251788398025" alt="EUR åæ" width="20" height="15" style="vertical-align:middle;"> 7616 </span> 7617 <span class="cc-code">EUR</span> 7618 </li> 7619 7620 7621 <li class="cc-dropdown__item" data-currency="GBP"> 7622 <span class="cc-flag"> 7623 <img src="//www.hiroia.com/cdn/shop/t/143/assets/gb.svg?v=166475183504724068621788398030" alt="GBP åæ" width="20" height="15" style="vertical-align:middle;"> 7624 </span> 7625 <span class="cc-code">GBP</span> 7626 </li> 7627 7628 </ul> 7629 </div> 7630 </div> 7631</div> 7632 7633<!-- ææ©ç (åªçä¸å空çæè¼é»ï¼JSåæ æå ¥) --> 7634<div class="mobile-currency-disclosure" style="display:none;"> 7635 <!-- JS åæ æå ¥ cloneï¼ç¡éé è¨å §å®¹ --> 7636</div> 7637
7638<script> 7639// å ¨åå¹£å¥-SVGå°ç §è¡¨ (ç± Liquid 輸åºï¼ç´æ¥ç¨) 7640const currencyFlagUrl = window.currencyFlagUrl; 7641 7642function convertCurrencyFormat(num, rate, target) { 7643 let symbol; 7644 let numDigital; 7645 7646 switch (target) { 7647 case "TWD": 7648 symbol = "NT$"; 7649 numDigital = (num * rate).toLocaleString(undefined, { minimumFractionDigits: 0, maximumFractionDigits: 0 }); 7650 break; 7651 case "USD": 7652 symbol = "US$"; 7653 numDigital = (num * rate).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }); 7654 break; 7655 case "JPY": 7656 symbol = "Â¥"; 7657 numDigital = (num * rate).toLocaleString(undefined, { minimumFractionDigits: 0, maximumFractionDigits: 0 }); 7658 break; 7659 case "EUR": 7660 symbol = "â¬"; 7661 numDigital = (num * rate).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }); 7662 break; 7663 case "GBP": 7664 symbol = "£"; 7665 numDigital = (num * rate).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }); 7666 break; 7667 default: 7668 symbol = "US$"; 7669 numDigital = (num * rate).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }); 7670 break; 7671 } 7672 // çµå°¾éä¸ ISO 代碼ï¼è server 端輸åºç "$xxx USD" æ ¼å¼ä¸è´ï¼ 7673 // é¿å Â¥ 符èè人æ°å¹£æ··æ·ï¼åææ»¿è¶³ forceCurrencyMonitor ç endsWith æª¢æ¥ 7674 return `${symbol}${numDigital} ${target}`; 7675} 7676 7677// å¹£å¥ä¸æåè½ï¼æ¡æ©/ææ©éç¨ï¼ 7678document.addEventListener('DOMContentLoaded', function(){ 7679 const dropdown = document.getElementById('cc_dropdown'); 7680 const toggle = document.getElementById('cc_toggle'); 7681 const menu = document.getElementById('cc_menu'); 7682 const moneyEls = Array.from(document.querySelectorAll('span.money')); 7683 const shopCurrency = 'USD'; 7684 const currencyList = ['TWD','USD','JPY','EUR','GBP']; 7685 let rate = 1; 7686 let target; 7687 7688 // å²ååå§æå 7689 moneyEls.forEach(el => { 7690 el.dataset.originalText = el.textContent.trim(); 7691 }); 7692 7693 // è® localStorage æååºä¸»å¹£ 7694 const saved = localStorage.getItem('selectedCurrency'); 7695 if (saved && currencyList.includes(saved)) { 7696 target = saved; 7697 } else { 7698 target = currencyList.includes(shopCurrency) ? shopCurrency : currencyList[0]; 7699 } 7700 7701 // åå§åæé顯示ï¼SVGï¼ 7702 function updateToggle(curr) { 7703 const flagUrl = currencyFlagUrl[curr] || currencyFlagUrl['TWD']; 7704 toggle.querySelector('.cc-flag').innerHTML = `<img src="${flagUrl}" alt="${curr} åæ" width="20" height="15" style="vertical-align:middle;">`; 7705 toggle.querySelector('.cc-code').textContent = curr; 7706 } 7707 updateToggle(target); 7708 7709 // ç¶å®åæäºä»¶ 7710 toggle.addEventListener('click', ()=> menu.classList.toggle('open')); 7711 menu.querySelectorAll('.cc-dropdown__item').forEach(item => { 7712 item.addEventListener('click', () => { 7713 const cur = item.dataset.currency; 7714 7715 // ð 忥ææé¸æå¨ 7716 if (window.updateAllToggles) { 7717 window.updateAllToggles(cur); 7718 } else { 7719 updateToggle(cur); // åæ´ 7720 } 7721 7722 target = cur; 7723 menu.classList.remove('open'); 7724 localStorage.setItem('selectedCurrency', cur); 7725 7726 if (cur === shopCurrency) { 7727 rate = 1; 7728 updateAllPrices(); 7729 } else { 7730 fetchRate(cur).then(r => { 7731 rate = r; 7732 updateAllPrices(); 7733 }); 7734 } 7735 }); 7736 }); 7737 7738 document.addEventListener('click', e => { 7739 if (!dropdown.contains(e.target)) menu.classList.remove('open'); 7740 }); 7741 7742 function fetchRate(toCurrency){ 7743 return fetch(`https://open.er-api.com/v6/latest/${shopCurrency}`) 7744 .then(res => res.json()) 7745 .then(json => (json.result==='success' && json.rates[toCurrency]) 7746 ? json.rates[toCurrency] 7747 : 1) 7748 .catch(() => 1); 7749 } 7750 7751 function updateAllPrices(){ 7752 // 顯示 USD æè·³éï¼server 端 Markets å·²è¼¸åºæ£ç¢º "$xxx USD" æ ¼å¼ 7753 if (target === 'USD') return; 7754 // ä¸å®è¦éæ°æåææ .moneyï¼ä¸è½åªç¨ä¸éå§é£å moneyEls é£åï¼ï¼ 7755 document.querySelectorAll('span.money').forEach(el => { 7756 // è¥ dataset.originalText ä¸åå¨ï¼è¡¨ç¤ºæ¯åå被主é¡JSæ°å¢çï¼è¦ç«å»è£ä¸ï¼ 7757 if (!el.dataset.originalText) el.dataset.originalText = el.textContent.trim(); 7758 7759 const raw = el.dataset.originalText; 7760 const num = parseFloat(raw.replace(/[^0-9.]/g,'')) || 0; 7761 7762 el.textContent = convertCurrencyFormat(num, rate, target); 7763 }); 7764 updateProductSubtotal(); 7765 updateExchangeRateDisplay(); 7766 window.updateExchangeRateDisplay = updateExchangeRateDisplay; 7767 } 7768 7769 // ð æ´é²çºå ¨å彿¸ï¼ä¾è³¼ç©è»æ´æ°åå ¶ä»å°æ¹èª¿ç¨ 7770 window.updateAllPrices = updateAllPrices; 7771 window.convertCurrencyFormat = convertCurrencyFormat; 7772 window.fetchRate = fetchRate; 7773 7774 // 忬¡è¼å ¥ 7775 let langCode = ''; 7776 const currentUrl = new URL(window.location.href); 7777 7778 if( currentUrl.pathname.startsWith('/zh')) { 7779 langCode = 'zh-TW'; 7780 } else if(currentUrl.pathname.startsWith('/ja') ) { 7781 langCode = 'ja'; 7782 } else { 7783 langCode = 'en'; 7784 } 7785 7786 // è¨å®ç®æ¨è²¨å¹£ 7787 if (langCode === 'zh-TW') { 7788 target = 'TWD'; 7789 } else if (langCode === 'ja') { 7790 target = 'JPY'; 7791 } else { 7792 target = 'USD'; 7793 } 7794 console.log("CYC: langCode: " + langCode); // cyc 7795 7796 // æ¯æ¬¡è¼å ¥é½åæ¥ localStorage å°ç¶åèªè¨è·¯å¾çé è¨å¹£å¥ 7797 // é¿å è·¨èªè¨åææè session æ®çé æ monitor/mobile æç®å°éé æå¹£å¥ 7798 localStorage.setItem('selectedCurrency', target); 7799 7800 rate = 1; 7801 7802 7803 7804 // å¨ fetchRate 調ç¨åå¢å å»¶é² 7805 setTimeout(() => { 7806 fetchRate(target).then(r => { rate = r; updateToggle(target); updateAllPrices(); }); 7807 }, 100); // 給 Safari 100ms ç·©è¡æé 7808 7809 // ð æ´é²å ¨å忥彿¸ 7810 window.updateAllToggles = function(curr) { 7811 const flagUrl = window.currencyFlagUrl[curr] || window.currencyFlagUrl['TWD']; 7812 7813 // æ´æ°ä¸»ç«é¢ 7814 const mainToggle = document.getElementById('cc_toggle'); 7815 if (mainToggle && mainToggle.querySelector('.cc-flag') && mainToggle.querySelector('.cc-code')) { 7816 mainToggle.querySelector('.cc-flag').innerHTML = `<img src="${flagUrl}" alt="${curr} åæ" width="20" height="15" style="vertical-align:middle;">`; 7817 mainToggle.querySelector('.cc-code').textContent = curr; 7818 } 7819 7820 // æ´æ° Sidebar 7821 const sidebarToggle = document.getElementById('cc_toggle_sidebar'); 7822 if (sidebarToggle && sidebarToggle.querySelector('.cc-flag') && sidebarToggle.querySelector('.cc-code')) { 7823 sidebarToggle.querySelector('.cc-flag').innerHTML = `<img src="${flagUrl}" alt="${curr} åæ" width="20" height="15" style="vertical-align:middle;">`; 7824 sidebarToggle.querySelector('.cc-code').textContent = curr; 7825 } 7826 7827 // æ´æ°ææ©ç 7828 const mobToggle = document.getElementById('cc_toggle_mobile'); 7829 if (mobToggle && mobToggle.querySelector('.cc-flag') && mobToggle.querySelector('.cc-code')) { 7830 mobToggle.querySelector('.cc-flag').innerHTML = `<img src="${flagUrl}" alt="${curr} åæ" width="20" height="15" style="vertical-align:middle;">`; 7831 mobToggle.querySelector('.cc-code').textContent = curr; 7832 } 7833 }; 7834 7835}); 7836 7837// ---- ææ©çãåæ æå ¥ã ---- 7838document.addEventListener('DOMContentLoaded', function(){ 7839 // æ¡æ©ç§»åå°èªè¨å 7840 function moveCurrencyToLang() { 7841 if (window.innerWidth < 768) return; 7842 const origin = document.querySelector('.desktop-currency-wrapper .cc-converter'); 7843 const lang = document.querySelector('.top-language-currency .halo-top-language'); 7844 if (!origin || !lang) return; 7845 7846 // æª¢æ¥æ¯å¦å·²ç¶ç§»åéï¼é¿å éè¤ï¼ 7847 if (!lang.parentNode.querySelector('.cc-converter')) { 7848 lang.parentNode.insertBefore(origin, lang.nextSibling); 7849 } 7850 7851 // é±è .desktop-currency-wrapper 7852 document.querySelectorAll('.desktop-currency-wrapper').forEach(e => e.style.display = 'none');
7853 // åªé¡¯ç¤ºèªè¨åæéä¸é¡ 7854 document.querySelectorAll('.cc-converter').forEach(function(el){ 7855 if (el !== lang.parentNode.querySelector('.cc-converter')) el.style.display = 'none'; 7856 else el.style.display = ''; 7857 }); 7858 } 7859 7860 // ææ© clone å°èªè¨ disclosure 7861 function insertCurrencyToMobile() { 7862 if (window.innerWidth >= 768) return; 7863 let langDisclosure = document.querySelector('.disclosure'); 7864 let langList = document.getElementById('HeaderLanguageList'); 7865 let ccOrigin = document.querySelector('.desktop-currency-wrapper .cc-converter'); 7866 if (!langDisclosure || !langList || !ccOrigin) return; 7867 7868 // é¿å éè¤æå ¥ 7869 if (langDisclosure.querySelector('.cc-converter')) return; 7870 7871 let currencyTitle = document.createElement('p'); 7872 currencyTitle.className = 'title'; 7873 currencyTitle.innerText = 'Currency'; 7874 7875 let ccClone = ccOrigin.cloneNode(true); 7876 // èª¿æ´ idï¼é¿å è¡çª 7877 ccClone.id = 'cc_converter_mobile'; 7878 ccClone.querySelector('#cc_dropdown').id = 'cc_dropdown_mobile'; 7879 ccClone.querySelector('#cc_toggle').id = 'cc_toggle_mobile'; 7880 ccClone.querySelector('#cc_menu').id = 'cc_menu_mobile'; 7881 7882 langList.insertAdjacentElement('afterend', currencyTitle); 7883 currencyTitle.insertAdjacentElement('afterend', ccClone); 7884 7885 // ç¶å®ææ©ä¸æ 7886 const mobToggle = ccClone.querySelector('#cc_toggle_mobile'); 7887 const mobMenu = ccClone.querySelector('#cc_menu_mobile'); 7888 const mobDd = ccClone.querySelector('#cc_dropdown_mobile'); 7889 mobToggle.addEventListener('click', function(e){ 7890 e.preventDefault(); 7891 mobMenu.classList.toggle('open'); 7892 }); 7893 document.addEventListener('click', function(e){ 7894 if (!mobDd.contains(e.target)) mobMenu.classList.remove('open'); 7895 }); 7896 7897 // ææ©çé» li åæï¼SVGï¼ 7898 const shopCurrency = 'USD'; 7899 const currencyList = ['TWD','USD','JPY','EUR','GBP']; 7900 let mobRate = 1; 7901 let mobTarget = localStorage.getItem('selectedCurrency') || shopCurrency; 7902 7903 // å²ååå§æå 7904 document.querySelectorAll('span.money').forEach(el => { 7905 el.dataset.originalText = el.textContent.trim(); 7906 }); 7907 7908 // ææ©æé SVG 7909 function updateMobToggle(curr) { 7910 const flagUrl = window.currencyFlagUrl[curr] || window.currencyFlagUrl['TWD']; 7911 mobToggle.querySelector('.cc-flag').innerHTML = `<img src="${flagUrl}" alt="${curr} åæ" width="20" height="15" style="vertical-align:middle;">`; 7912 mobToggle.querySelector('.cc-code').textContent = curr; 7913 } 7914 updateMobToggle(mobTarget); 7915 7916 mobMenu.querySelectorAll('.cc-dropdown__item').forEach(item => { 7917 item.addEventListener('click', function(){ 7918 const cur = item.dataset.currency; 7919 7920 // ð 忥ææé¸æå¨ 7921 if (window.updateAllToggles) { 7922 window.updateAllToggles(cur); 7923 } else { 7924 updateMobToggle(cur); // åæ´ 7925 } 7926 7927 mobTarget = cur; 7928 mobMenu.classList.remove('open'); 7929 localStorage.setItem('selectedCurrency', cur); 7930 7931 if (cur === shopCurrency) { 7932 mobRate = 1; 7933 mobUpdateAllPrices(); 7934 } else { 7935 mobFetchRate(cur).then(r => { 7936 mobRate = r; 7937 mobUpdateAllPrices(); 7938 }); 7939 } 7940 }); 7941 }); 7942 7943 7944 function mobUpdateAllPrices() { 7945 // 顯示 USD æè·³éï¼server 端 Markets å·²è¼¸åºæ£ç¢º "$xxx USD" æ ¼å¼ 7946 if (mobTarget === 'USD') return; 7947 document.querySelectorAll('span.money').forEach(el => { 7948 const raw = el.dataset.originalText; 7949 const num = parseFloat(raw.replace(/[^0-9.]/g,'')) || 0; 7950 const conv = (num * mobRate).toLocaleString(undefined, { 7951 minimumFractionDigits: 2, 7952 maximumFractionDigits: 2 7953 }); 7954 7955// el.textContent = `$${conv} ${mobTarget}`; 7956 el.textContent = convertCurrencyFormat(num, mobRate, mobTarget); 7957 }); 7958 updateProductSubtotal(); 7959 } 7960 7961 function mobFetchRate(toCurrency){ 7962 return fetch(`https://open.er-api.com/v6/latest/${shopCurrency}`) 7963 .then(res => res.json()) 7964 .then(json =>
7964 (json.result==='success' && json.rates[toCurrency]) 7965 ? json.rates[toCurrency] 7966 : 1) 7967 .catch(() => 1); 7968 } 7969 mobRate = 1; 7970 mobUpdateAllPrices(); 7971 if (mobTarget !== shopCurrency) { 7972 mobFetchRate(mobTarget).then(r => { mobRate = r; mobUpdateAllPrices(); }); 7973 } 7974 } 7975 7976 7977 7978 // åå§å 7979 moveCurrencyToLang(); 7980 insertCurrencyToMobile(); 7981 7982 // RWD resize èªååæ 7983 window.addEventListener('resize', function(){ 7984 // å æ¸ æèçææ©/æ¡æ© clone 7985 document.querySelectorAll('.cc-converter').forEach(function(el){ 7986 if ( 7987 window.innerWidth < 768 && el.id !== 'cc_converter_mobile' 7988 || window.innerWidth >= 768 && el.id === 'cc_converter_mobile' 7989 ) { 7990 el.remove(); 7991 } 7992 }); 7993 // ç§»å/æå ¥ 7994 moveCurrencyToLang(); 7995 insertCurrencyToMobile(); 7996 }); 7997 7998 // å¹£å¥åæä¸æé»æé»æ¢é è¨äºä»¶ï¼æ¡æ©/ææ©é½è¦ï¼ 7999 document.body.addEventListener('click', function(e){ 8000 if ( 8001 e.target.matches('.cc-dropdown__toggle') || 8002 e.target.closest('.cc-dropdown__toggle') 8003 ) { 8004 e.preventDefault(); 8005 } 8006 }); 8007}); 8008 8009// æ´æ°è´ç©è½¦çæ±çæ¾ç¤ºï¼1 å½åè´§å¸ â $? USDï¼ 8010async function updateExchangeRateDisplay() { 8011 const shopCurrency = 'USD'; 8012 const currentCurrency = localStorage.getItem('selectedCurrency') || shopCurrency; 8013 8014 // shopCurrency = USDï¼å¦æå½åå°±æ¯ USDï¼éèæ´ä¸ªæ±çä¿¡æ¯åºå 8015 if (currentCurrency === shopCurrency) { 8016 // éèè´ç©è½¦é¡µé¢çæ±çåºåï¼æ´ä¸ª <li>ï¼ 8017 const cartRateBlock = document.querySelector('.exchange-rate-info'); 8018 if (cartRateBlock) { 8019 cartRateBlock.style.display = 'none'; 8020 } 8021 8022 // éèä¾§è¾¹è´ç©è½¦çæ±çåºåï¼æ´ä¸ª <li>ï¼ 8023 const sidebarRateBlock = document.querySelector('.previewCartTotals.exchange-rate-info'); 8024 if (sidebarRateBlock) { 8025 sidebarRateBlock.style.display = 'none'; 8026 } 8027 return; 8028 } 8029 8030 try { 8031 // fetchRate base çº shopCurrency (USD) 8032 // ä¾å¦ï¼fetchRate('JPY') åå³ 150ï¼æææ¯ 1 USD = 150 JPY 8033 const usdToCurrent = await window.fetchRate(currentCurrency); 8034 8035 // æ ¼å¼åæ¾ç¤ºæåï¼çµ±ä¸çº "$1 USD â 符èX XXX"ï¼ä»¥ç¾éçºåºæºï¼èçµç®å¹£å¥ä¸è´ï¼ 8036 let displayText = ''; 8037 8038 switch (currentCurrency) { 8039 case 'JPY': 8040 displayText = `$1 USD â Â¥${usdToCurrent.toFixed(2)} JPY`; 8041 break; 8042 case 'TWD': 8043 displayText = `$1 USD â NT$${usdToCurrent.toFixed(2)} TWD`; 8044 break; 8045 case 'EUR': 8046 displayText = `$1 USD â â¬${usdToCurrent.toFixed(2)} EUR`; 8047 break; 8048 case 'GBP': 8049 displayText = `$1 USD â £${usdToCurrent.toFixed(2)} GBP`; 8050 break; 8051 default: 8052 displayText = `$1 USD â ${usdToCurrent.toFixed(2)} ${currentCurrency}`; 8053 } 8054 8055 // éä¸è³¼ç©è»åè¨æç®ï¼ä½¿ç¨è ä¸éèªè¡è¨ç® 8056 // /cart.js ç total_price çº shop å¹£å¥ (USD)ï¼å®ä½æ¯ cents 8057 try { 8058 const cart = await fetch('/cart.js').then(res => res.json()); 8059 if (cart && cart.total_price > 0) { 8060 const totalUsd = cart.total_price / 100; 8061 const path = window.location.pathname; 8062 const totalLabel = (path.startsWith('/zh') || path.startsWith('/ja')) ? 'åè¨' : 'Total'; 8063 const totalUsdText = totalUsd.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }); 8064 displayText += ` (${totalLabel}: $${totalUsdText} USD â ${convertCurrencyFormat(totalUsd, usdToCurrent, currentCurrency)})`; 8065 } 8066 } catch (error) { 8067 // æ¿ä¸å°è³¼ç©è»è³ææå 顯示å¯ç 8068 } 8069 8070 // æ´æ°è´ç©è½¦é¡µé¢çæ±çæ¾ç¤º 8071 const cartRate = document.getElementById('cart-exchange-rate'); 8072 const cartRateBlock = document.querySelector('.exchange-rate-info'); 8073 if (cartRate) { 8074 cartRate.textContent = displayText; 8075 // æ¾ç¤ºæ´ä¸ªæ±çåºå 8076 if (cartRateBlock) { 8077 cartRateBlock.style.display = 'list-item'; // å ä¸ºæ¯ <li> å ç´ 8078 } 8079 } 8080 8081 // æ´æ°ä¾§è¾¹è´ç©è½¦çæ±çæ¾ç¤º 8082 const sidebarRate = document.getElementById('sidebar-exchange-rate'); 8083 const sidebarRateBlock = document.querySelector('.previewCartTotals.exchange-rate-info'); 8084 if (sidebarRate) { 8085 sidebarRate.textContent = displayText; 8086 // æ¾ç¤ºæ´ä¸ªæ±çåºå 8087 if (sidebarRateBlock) { 8088 sidebarRateBlock.style.display = 'list-item'; // å ä¸ºæ¯ <li> å ç´ 8089 } 8090 } 8091 8092 } catch (error) { 8093 console.error('æ æ³è·åæ±ç:', error); 8094 } 8095} 8096
8097 // ç£æ§ï¼åªè¦æéé¡ä¸æ¯æ£ç¢ºå¹£å¥ï¼é¦¬ä¸åå ¨é¨æç®ä¸æ¬¡ 8098function forceCurrencyMonitor() { 8099 setInterval(() => { 8100 const currentCurrency = localStorage.getItem('selectedCurrency') || 'USD'; 8101 // 顯示 USD æè·³éï¼server 端 Markets å·²è¼¸åºæ£ç¢ºæ ¼å¼ï¼ä¸éè¦ç£æ§è¦å¯« 8102 if (currentCurrency === 'USD') return; 8103 document.querySelectorAll('span.money').forEach(el => { 8104 const text = el.textContent.trim(); 8105 if (!text.endsWith(currentCurrency)) { 8106 if (window.innerWidth < 768) { 8107 if (typeof mobUpdateAllPrices === "function") mobUpdateAllPrices(); 8108 } else { 8109 if (typeof updateAllPrices === "function") updateAllPrices(); 8110 } 8111 } 8112 }); 8113 }, 300); // ä¾éæ±èª¿æ´é »ç 8114} 8115setTimeout(forceCurrencyMonitor, 1200); // 確ä¿ä¸»é¡/APP JS è¼å ¥å¾ååå 8116 8117document.addEventListener('input', function(e) { 8118 if (e.target.classList.contains('quantity__input')) { 8119 setTimeout(() => { window.updateProductSubtotal && window.updateProductSubtotal(); }, 200); 8120 } 8121}); 8122 8123 //ç´æ¥ç¶å® click äºä»¶å°ã+ãã-ãæé 8124 document.addEventListener('click', function(e) { 8125 if (e.target.classList.contains('plus') || e.target.classList.contains('minus')) { 8126 setTimeout(function() { 8127 window.updateProductSubtotal && window.updateProductSubtotal(); 8128 }, 120); 8129 } 8130}); 8131 8132 8133// === Subtotal åå¡èªåæç® === 8134function updateProductSubtotal() { 8135 const currentCurrency = localStorage.getItem('selectedCurrency') || 'USD'; 8136 const shopCurrency = 'USD'; 8137 if (currentCurrency === shopCurrency) return; 8138 // 顯示 USD æè·³éï¼server 端 Markets å·²è¼¸åºæ£ç¢º "$xxx USD" æ ¼å¼ 8139 if (currentCurrency === 'USD') return; 8140 8141 // åå¾ input, subtotal span 8142 const quantityInput = document.querySelector('.quantity__input'); 8143 const subtotalMoney = document.querySelector('.productView-subtotal .money'); 8144 if (!quantityInput || !subtotalMoney) return; 8145 8146 let unitPrice = parseFloat(quantityInput.getAttribute('data-price')) || 0; 8147 if (unitPrice > 10000) unitPrice = unitPrice / 100; 8148 const quantity = parseInt(quantityInput.value, 10) || 1; 8149 8150 fetch(`https://open.er-api.com/v6/latest/${shopCurrency}`) 8151 .then(res => res.json()) 8152 .then(json => { 8153 if (json.result === 'success' && json.rates[currentCurrency]) { 8154 const rate = json.rates[currentCurrency]; 8155 const subtotal = unitPrice * quantity * rate; 8156 const formatted = subtotal.toLocaleString(undefined, { 8157 minimumFractionDigits: 2, 8158 maximumFractionDigits: 2 8159 }); 8160 subtotalMoney.textContent = `$${formatted} ${currentCurrency}`; 8161 8162 } 8163 }); 8164} 8165// è¼å ¥å®æå¾å»¶é²èªåå·è¡å ¨ç«æå¯ï¼é£ subtotal ä¹æç® 8166window.addEventListener('load', function() { 8167 setTimeout(() => { 8168 updateProductSubtotal(); 8169 }, 600); 8170 setTimeout(function(){ 8171 const currentCurrency = localStorage.getItem('selectedCurrency') || 'USD'; 8172 const shopCurrency = 'USD'; 8173 const currencyList = ['TWD','USD','JPY','EUR','GBP']; 8174 8175 if (currentCurrency === shopCurrency) return; 8176 // 顯示 USD æè·³éï¼server 端 Markets å·²è¼¸åºæ£ç¢º "$xxx USD" æ ¼å¼ 8177 if (currentCurrency === 'USD') return; 8178 8179 fetch(`https://open.er-api.com/v6/latest/${shopCurrency}`) 8180 .then(res => res.json()) 8181 .then(json => { 8182 if (json.result === 'success' && json.rates[currentCurrency]) { 8183 const rate = json.rates[currentCurrency]; 8184 8185 // 1. æç®ææéé¡ 8186 document.querySelectorAll('span.money').forEach(el => { 8187 if (!el.dataset.originalText) el.dataset.originalText = el.textContent.trim(); 8188 const raw = el.dataset.originalText; 8189 const num = parseFloat(raw.replace(/[^0-9.]/g,'')) || 0; 8190 const conv = (num * rate).toLocaleString(undefined, { 8191 minimumFractionDigits: 2, 8192 maximumFractionDigits: 2 8193 }); 8194// el.textContent = `$${conv} ${currentCurrency}`; 8195 }); 8196 8197 // 2. æç® subtotal åå¡ï¼å¦è³¼ç©è»å°è¨/çµå¸³å°è¨çï¼ 8198 document.querySelectorAll('.productView-subtotal, .cart__footer, .cart__totals').forEach(subtotalBlock => { 8199 subtotalBlock.querySelectorAll('.money').forEach(moneyEl => { 8200 // 夿·ææ²æåå§å°å¹£éé¡è³è¨ï¼ä½ å¯ç¨ data-* æ doubly-currency-xxx 註è¨ï¼ 8201 let original = moneyEl.dataset.originalText || moneyEl.textContent.trim(); 8202 let num = parseFloat(original.replace(/[^0-9.]/g,'')) || 0;
8203 let conv = (num * rate).toLocaleString(undefined, { 8204 minimumFractionDigits: 2, 8205 maximumFractionDigits: 2 8206 }); 8207 moneyEl.textContent = `$${conv} ${currentCurrency}`; 8208 }); 8209 }); 8210 } 8211 }); 8212 }, 500); // å»¶é² 500msï¼ç¢ºä¿ä¸»é¡åAPP渲æå®æ 8213}); 8214 8215 // ---- Sidebar å¹£å¥åæ¥ï¼æ°ç³»çµ±ï¼---- 8216 document.addEventListener('DOMContentLoaded', function(){ 8217 const sidebarContainer = document.getElementById('sidebar-currency-container'); 8218 if (!sidebarContainer) return; 8219 8220 // è¤è£½æ°ç³»çµ±ç鏿å¨å° Sidebar 8221 const mainConverter = document.querySelector('.desktop-currency-wrapper .cc-converter'); 8222 if (!mainConverter) return; 8223 8224 const sidebarClone = mainConverter.cloneNode(true); 8225 sidebarClone.id = 'cc_converter_sidebar'; 8226 8227 // ä¿®æ¹ ID é¿å è¡çª 8228 const sidebarDd = sidebarClone.querySelector('#cc_dropdown'); 8229 const sidebarToggle = sidebarClone.querySelector('#cc_toggle'); 8230 const sidebarMenu = sidebarClone.querySelector('#cc_menu'); 8231 8232 if (sidebarDd) sidebarDd.id = 'cc_dropdown_sidebar'; 8233 if (sidebarToggle) sidebarToggle.id = 'cc_toggle_sidebar'; 8234 if (sidebarMenu) sidebarMenu.id = 'cc_menu_sidebar'; 8235 8236 sidebarContainer.appendChild(sidebarClone); 8237 8238 // å¾ localStorage è®åç¶åå¹£å¥ä¸¦æ´æ°é¡¯ç¤º 8239 const currentCurrency = localStorage.getItem('selectedCurrency'); 8240 if (currentCurrency && window.updateAllToggles) { 8241 window.updateAllToggles(currentCurrency); 8242 } 8243 8244 // ç¶å® Sidebar ç黿äºä»¶ 8245 if (!sidebarToggle || !sidebarMenu) return; 8246 8247 sidebarToggle.addEventListener('click', (e) => { 8248 e.preventDefault(); 8249 sidebarMenu.classList.toggle('open'); 8250 }); 8251 8252 document.addEventListener('click', (e) => { 8253 if (sidebarDd && !sidebarDd.contains(e.target)) { 8254 sidebarMenu.classList.remove('open'); 8255 } 8256 }); 8257 8258 // Sidebar 鏿幣奿忥 8259 sidebarMenu.querySelectorAll('.cc-dropdown__item').forEach(item => { 8260 item.addEventListener('click', () => { 8261 const cur = item.dataset.currency; 8262 const shopCurrency = 'USD'; 8263 8264 // æ´æ° localStorage 8265 localStorage.setItem('selectedCurrency', cur); 8266 8267 // 忥ææé¸æå¨ç顯示 8268 if (window.updateAllToggles) { 8269 window.updateAllToggles(cur); 8270 } 8271 8272 // å·è¡å¹£å¥è½æ 8273 if (window.fetchRate && window.updateAllPrices) { 8274 if (cur === shopCurrency) { 8275 window.updateAllPrices(); 8276 } else { 8277 window.fetchRate(cur).then(() => { 8278 window.updateAllPrices(); 8279 }); 8280 } 8281 } 8282 8283 sidebarMenu.classList.remove('open'); 8284 }); 8285 }); 8286 }); 8287 8288 // 页é¢å è½½æ¶åå§åæ±çæ¾ç¤º 8289 document.addEventListener('DOMContentLoaded', function() { 8290 setTimeout(() => { 8291 updateExchangeRateDisplay(); 8292 }, 500); 8293 }); 8294 8295</script>
8295 8296 8297<style> 8298 /* æ¡æ©æï¼åæ¬ desktop-currency-wrapper é±èï¼åªé¡¯ç¤ºæå ¥èªè¨åæé£ä¸é¡ */ 8299 @media (min-width: 768px) { 8300 .desktop-currency-wrapper { display: none !important; } 8301 .top-language-currency .cc-converter { display: inline-flex !important; } 8302 .top-language-currency {display: contents !important;} 8303 } 8304 8305 /* ææ©æï¼åªææå ¥ disclosure çé£é¡ */ 8306 @media (max-width: 767px) { 8307 .desktop-currency-wrapper { display: none !important; } 8308 #cc_converter_mobile { display: block !important; } 8309 } 8310 8311 .cc-dropdown { position: relative; display: inline-block; font-family: -apple-system,BlinkMacSystemFont,"Noto Sans TC",sans-serif; } 8312 .cc-dropdown__toggle { 8313 display:flex; align-items:center; background:transparent; border:0px solid #ddd; border-radius:6px; 8314 cursor:pointer; gap:0.5rem; 8315 } 8316 .cc-dropdown__toggle .cc-flag { font-size:20px; } 8317 .cc-dropdown__toggle .cc-code { font-size:14px; font-weight:500; color:#333; } 8318 .cc-dropdown__toggle .cc-arrow { margin-left:auto; width:16px; height:16px; transition:transform .2s; } 8319 .cc-dropdown__menu { 8320 position:absolute; top:100%; left:0; background:#f2f2f2; border-radius:8px; 8321 box-shadow:0 4px 12px rgba(0,0,0,0.1); list-style:none; margin:0; padding:0.5rem 0; 8322 width:160px; opacity:0; visibility:hidden; transition:opacity .2s, visibility .2s; z-index:10; 8323 } 8324 .cc-dropdown__menu.open { opacity:1; visibility:visible; } 8325 .cc-dropdown__item { 8326 display:flex; align-items:center; padding:0.5rem 0.75rem; cursor:pointer; gap:0.5rem; 8327 } 8328 .cc-dropdown__item:hover { background:#f5f5f5; } 8329 .cc-dropdown__item .cc-flag { font-size:16px; } 8330 .cc-dropdown__item .cc-name, 8331 .cc-dropdown__item .cc-code { font-size:12px; color:#333; } 8332 .cc-flag img { 8333 width: 1.2em; 8334 height: auto; 8335 vertical-align: middle; 8336 margin-right: 2px; 8337 } 8338</style> 8339 8340 8341</div> 8342 8343 <!-- å éå°é¦é å¥ç¨ææ --> 8344 8345 <!-- æèªè¨è²¨å¹£åæªç§» v1 --> 8346 8347 <link href="//www.hiroia.com/cdn/shop/t/143/assets/header-move.css?v=61493820793264665701788398051" rel="stylesheet" type="text/css" media="all" /> 8348
8348<script src="//www.hiroia.com/cdn/shop/t/143/assets/header-move.js?v=20112107472169822501788398052" defer></script>
8348 8349 8350 8351 8352 8353 8354 <div id="shopify-section-hiroia-footer" class="shopify-section"> 8355 8356<div class="hiroia-footer-section"> 8357 <div class="hiroia-footer-row"> 8358 <!-- éæ¼æå --> 8359 <div class="hiroia-footer-col"> 8360 <div class="hiroia-footer-title">ABOUT US</div> 8361 <ul class="hiroia-footer-list"> 8362 8363 8364 8365 8366 8367 8368 <li><a href="/pages/about-us">About Hiroia</a></li> 8369 8370 8371 8372 8373 8374 8375 8376 <li><a href="/pages/resellers">Resellers</a></li> 8377 8378 8379 8380 8381 8382 8383 8384 <li><a href="/pages/discovery-of-hikaru">Discovery of Hikaru</a></li> 8385 8386 8387 8388 8389 8390 8391 8392 <li><a href="/pages/terms-conditions-for-hiroia-services">Terms & Conditions</a></li> 8393 8394 8395 8396 8397 8398 8399 8400 <li><a href="/pages/privacy-policy">Privacy</a></li> 8401 8402 8403 </ul> 8404 </div> 8405 <!-- è³¼ç©è³è¨ --> 8406 <div class="hiroia-footer-col"> 8407 <div class="hiroia-footer-title">POLICY</div> 8408 <div class="hiroia-footer-shop-row"> 8409 <div class="hiroia-footer-shop-col"> 8410 <div class="hiroia-footer-subtitle">Domestic Orders in Taiwan</div> 8411 <ul class="hiroia-footer-list"> 8412 8413 8414 8415 8416 8417 8418 <li><a href="/pages/%E9%81%8B%E9%80%81%E6%94%BF%E7%AD%96-%E5%8F%B0%E7%81%A3">Shipping Policy</a></li> 8419 8420 8421 8422 8423 8424 8425 8426 <li><a href="/pages/%E9%80%80%E6%8F%9B%E8%B2%A8%E6%94%BF%E7%AD%96-%E5%8F%B0%E7%81%A3">Return & Exchange Policy</a></li> 8427 8428 8429 8430 8431 8432 8433 8434 <li><a href="/pages/warranty-taiwan">Warranty</a></li> 8435 8436 8437 8438 8439 8440 8441 8442 8443 8444 8445 8446 8447 8448 8449 </ul> 8450 </div> 8451 <div class="hiroia-footer-shop-col"> 8452 <div class="hiroia-footer-subtitle">International Orders outside Taiwan</div> 8453 <ul class="hiroia-footer-list"> 8454 8455 8456 8457 8458 8459 8460 <li><a href="/pages/shipping-policy">Shipping Policy</a></li> 8461 8462 8463 8464 8465 8466 8467 8468 <li><a href="/pages/return-and-refund-policy">Return & Exchange Policy</a></li> 8469 8470 8471 8472 8473 8474 8475 8476 <li><a href="/pages/warranty">Warranty</a></li> 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 </ul> 8492 </div> 8493 </div> 8494 </div> 8495 <!-- å®¢æ¶æå --> 8496 <div class="hiroia-footer-col support"> 8497 <div class="hiroia-footer-title">SUPPORT</div> 8498 <ul class="hiroia-footer-list"> 8499 8500 8501 8502 <li><a href="/pages/contact-us">Contact us</a></li> 8503 8504 </ul> 8505 </div> 8506 <!-- logo --> 8507 <div class="hiroia-footer-logo"> 8508 8509 <img src="//www.hiroia.com/cdn/shop/files/Hiroia_logo_Final-08_edited.png?v=1654135916&width=360" alt="Logo" /> 8510 8511 </div> 8512 </div> 8513 <div class="hiroia-footer-bottom"> 8514 <div class="hiroia-footer-bottom-line"></div> 8515 <div class="hiroia-footer-bottom-main"> 8516 <div class="hiroia-footer-copyright">©HIROIA 2025. All rights reserved.</div> 8517 <div class="hiroia-footer-social hiroia-footer-social--desktop"> 8518 8519 <a href="https://www.facebook.com/share/1CLR1rn5Z3/?mibextid=wwXIfr" target="_blank">Facebook</a> 8520 <span class="hiroia-footer-dot"></span> 8521 8522 8523 <a href="https://www.instagram.com/hiroia_official/" target="_blank">Instagram</a> 8524 <span class="hiroia-footer-dot"></span> 8525 8526 8527 <a href="https://www.youtube.com/channel/UCN7RYHOEcrsB-Fo0qwmJLIw" target="_blank">Youtube</a> 8528 8529 </div> 8530 <div class="hiroia-footer-social hiroia-footer-social--mobile"> 8531
8532 <span><a href="https://www.facebook.com/share/1CLR1rn5Z3/?mibextid=wwXIfr" target="_blank">Facebook</a></span> 8533 <span class="hiroia-footer-dot"></span> 8534 8535 8536 <span><a href="https://www.instagram.com/hiroia_official/" target="_blank">Instagram</a></span> 8537 <span class="hiroia-footer-dot"></span> 8538 8539 8540 <span><a href="https://www.youtube.com/channel/UCN7RYHOEcrsB-Fo0qwmJLIw" target="_blank">Youtube</a></span> 8541 8542 </div> 8543 </div> 8544 </div> 8545</div> 8546 8547<style> 8548 .hiroia-footer-section { 8549 background: #F8F4EF; 8550 color: #222; 8551 font-family: 'Open Sans', 'Noto Sans TC', 'PingFang TC', 'Microsoft JhengHei', sans-serif; 8552 } 8553 8554 .hiroia-footer-row { 8555 display: flex; 8556 flex-wrap: nowrap; 8557 overflow-x: auto; 8558 gap: 96px; 8559 justify-content: flex-start; 8560 align-items: flex-start; 8561 padding: 64px 60px 0 60px; 8562 max-width: 1440px; 8563 margin: 0 auto; 8564 } 8565 8566 .hiroia-footer-col { 8567 min-width: 120px; 8568 max-width: 260px; 8569 flex: 1 1 0%; 8570 margin-bottom: 24px; 8571 word-break: break-all; 8572 white-space: nowrap; 8573 } 8574 8575 .hiroia-footer-title { 8576 font-size: 21px; 8577 font-weight: bold; 8578 margin-bottom: 16px; 8579 color: #C1976A; 8580 letter-spacing: 1px; 8581 white-space: nowrap; 8582 } 8583 8584 .hiroia-footer-col.support { 8585 margin-left: clamp(260px, 400px, 400px); 8586 } 8587 8588/* Hiroia Footer Start - æ¡æ©çå°é½èª¿æ´ */ 8589 .hiroia-footer-subtitle { 8590 font-size: 16px; 8591 color: #C1976A; 8592 font-weight: bold; 8593 margin-top: 0; 8594 margin-bottom: 0; 8595 white-space: nowrap; 8596 } 8597 8598 .hiroia-footer-shop-row { 8599 display: flex; 8600 gap: min(5vw, 96px); 8601 align-items: flex-start; 8602 margin-bottom: 0; 8603 } 8604 8605 .hiroia-footer-shop-col { 8606 max-width: 260px; 8607 flex: 1 1 0%; 8608 white-space: nowrap; 8609 } 8610 8611 /* æ¡æ©çå°é½è¨å® */ 8612 @media (min-width: 769px) { 8613 /* .hiroia-footer-row { 8614 align-items: flex-start; 8615 } */ 8616 8617 /* ç¢ºä¿æææ¨é¡è¡é«åº¦ä¸è´ */ 8618 .hiroia-footer-title { 8619 height: 25px; /* åºå®æ¨é¡é«åº¦ */ 8620 line-height: 25px; 8621 margin-bottom: 16px; 8622 } 8623 8624 /* çµ±ä¸ææ list item çæ¨£å¼ */ 8625 .hiroia-footer-list { 8626 margin-top: 0; 8627 padding-top: 0; 8628 } 8629 8630 .hiroia-footer-list li { 8631 margin-bottom: 8px; 8632 font-size: 18px; 8633 line-height: 25.6px; /* çµ±ä¸è¡é« = font-size * 1.6 */ 8634 white-space: nowrap; 8635 height: 25.6px; /* åºå®æ¯åé ç®çé«åº¦ */ 8636 display: flex; 8637 align-items: center; 8638 } 8639 8640 /* About us å §å®¹èå³å´å°é½ */ 8641 .hiroia-footer-col:first-child .hiroia-footer-list { 8642 margin-top: 0; 8643 padding-top: 0; 8644 } 8645 8646 /* Policy ååç忍é¡å°é½ */ 8647 .hiroia-footer-shop-col .hiroia-footer-subtitle { 8648 height: 25.6px; /* è list item ç¸åé«åº¦ */ 8649 line-height: 25.6px; 8650 margin-bottom: 8px; 8651 display: flex; 8652 align-items: center; 8653 } 8654 8655 /* Policy ååç list é ç® */ 8656 .hiroia-footer-shop-col .hiroia-footer-list li { 8657 height: 25.6px; 8658 line-height: 25.6px; 8659 margin-bottom: 8px; 8660 } 8661 8662 /* Support ååå §å®¹å°é½ */ 8663 .hiroia-footer-col.support .hiroia-footer-list { 8664 margin-top: 0; 8665 padding-top: 0; 8666 } 8667 8668 .hiroia-footer-col.support .hiroia-footer-list li { 8669 height: 25.6px; 8670 line-height: 25.6px; 8671 } 8672 } 8673 8674 @media (min-width: 769px) { 8675 .hiroia-footer-row { 8676 gap: min(7vw, 96px); 8677 justify-content: space-between; 8678 } 8679 .hiroia-footer-logo { 8680 margin-left: -96px; 8681 } 8682 .hiroia-footer-col.support { 8683 margin-left: clamp(260px, 400px, 400px); 8684 } 8685 } 8686/* Hiroia Footer End */ 8687 8688 .hiroia-footer-list { 8689 list-style: none; 8690 padding: 0; 8691 margin: 0; 8692 white-space: nowrap; 8693 } 8694 8695 .hiroia-footer-list li { 8696 margin-bottom: 8px; 8697 font-size: 18px; 8698 line-height: 1.6; 8699 white-space: nowrap; 8700 } 8701 8702 .hiroia-footer-list a { 8703 color: #222; 8704 text-decoration: none; 8705 transition: color .2s; 8706 font-size: 16px; 8707 } 8708 8709 .hiroia-footer-list a:hover { 8710 color: #bc9865; 8711 text-decoration: underline; 8712 } 8713 8714 .hiroia-footer-logo { 8715 display: flex; 8716 align-items: center; 8717 justify-content: center; 8718 max-width: 308px; 8719 min-width: 80px; 8720 flex: 1 1 120px; 8721 width: 100%; 8722 min-height: 80px; 8723 padding-bottom: 50px; 8724 padding-top: 50px; 8725 } 8726 8727 .hiroia-footer-logo img { 8728 width: 100%; 8729 height: auto; 8730 max-width: 308px; 8731 min-width: 40px; 8732 object-fit: contain; 8733 display: block; 8734 } 8735 8736 .hiroia-footer-bottom { 8737 background: #F8F4EF; 8738 margin: 0; 8739 padding: 0 0 12px 0; 8740 } 8741 8742 .hiroia-footer-bottom-line { 8743 border-top: 1px solid #bc9865; 8744 max-width: 1800px; 8745 margin: 0 60px 16px 60px; 8746 box-sizing: border-box; 8747 background: none; 8748 display: block; 8749 position: relative; 8750 z-index: 10; 8751 } 8752 8753 .hiroia-footer-bottom-main { 8754 display: flex; 8755 justify-content: space-between; 8756 align-items: center; 8757 max-width: 1440px; 8758 margin: 0 auto; 8759 padding: 0 60px; 8760 font-size: 18px; 8761 background: #F8F4EF; 8762 box-sizing: border-box; 8763 } 8764 8765 .hiroia-footer-copyright { 8766 color: #222; 8767 font-size: 16px; 8768 white-space: nowrap; 8769 } 8770 8771 .hiroia-footer-social { 8772 font-size: 18px; 8773 color: #222; 8774 } 8775 8776 .hiroia-footer-social--mobile { 8777 display: none; 8778 } 8779 8780 .hiroia-footer-social--desktop { 8781 display: flex; 8782 align-items: center; 8783 gap: 10px; 8784 } 8785 8786 .hiroia-footer-social a { 8787 color: #222; 8788 text-decoration: none; 8789 transition: color 0.2s; 8790 } 8791 8792 .hiroia-footer-social a:hover { 8793 color: #bc9865; 8794 text-decoration: underline; 8795 } 8796 8797 .hiroia-footer-dot { 8798 display: inline-block; 8799 width: 8px; 8800 height: 8px; 8801 background: #bc9865; 8802 border-radius: 50%; 8803 margin: 0 16px; 8804 } 8805 8806 @media (max-width: 768px) { 8807 .hiroia-footer-row { 8808 flex-direction: column; 8809 gap: 12px; 8810 align-items: flex-start; 8811 padding: 32px 8px 0 8px; 8812 margin: 0 16px; 8813 } 8814 .hiroia-footer-col, 8815 .hiroia-footer-logo { 8816 width: 100% !important; 8817 max-width: 100% !important; 8818 min-width: 0 !important; 8819 white-space: normal !important; 8820 margin-left: 0 !important; 8821 margin-bottom: 24px; 8822 } 8823 .hiroia-footer-shop-col { 8824 width: 100% !important; 8825 max-width: 100% !important; 8826 min-width: 0 !important; 8827 white-space: normal !important; 8828 margin-left: 0 !important; 8829 margin-bottom: 24px; 8830 } 8831 .hiroia-footer-shop-col:last-child { 8832 margin-bottom: 0 !important; 8833 } 8834 .hiroia-footer-shop-row { 8835 flex-direction: column; 8836 gap: 0; 8837 width: 100%; 8838 max-width: 100%; 8839 min-width: 0; 8840 } 8841 .hiroia-footer-logo { 8842 justify-content: center !important; 8843 align-items: center !important; 8844 text-align: center; 8845 padding-bottom: 32px; 8846 padding-top: 16px; 8847 } 8848 .hiroia-footer-logo img { 8849 margin: 0 auto; 8850 max-width: 200px; 8851 min-width: 0; 8852 } 8853 .hiroia-footer-bottom-line { 8854 margin: 0 8px 16px 8px; 8855 } 8856 .hiroia-footer-bottom-main { 8857 flex-direction: column !important; 8858 gap: 10px !important; 8859 align-items: center !important; 8860 font-size: 14px !important; 8861 padding: 0 0 8px 0 !important; 8862 margin: 0 !important; 8863 } 8864 .hiroia-footer-copyright { 8865 text-align: center; 8866 width: 100%; 8867 white-space: normal !important; 8868 } 8869 .hiroia-footer-social--desktop { 8870 display: none !important; 8871 } 8872 .hiroia-footer-social--mobile { 8873 display: flex !important; 8874 flex-direction: row; 8875 justify-content: center; 8876 gap: 16px; 8877 width: 100%; 8878 align-items: center; 8879 } 8880 .hiroia-footer-dot { 8881 width: 6px; 8882 height: 6px; 8883 margin: 0 5px; 8884 } 8885 } 8886 8887</style></div> 8888 8889 <section id="shopify-section-halo-toolbar-mobile" class="shopify-section"> 8890 8891 8892</section> 8893 8894 <ul hidden> 8895 <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li> 8896 </ul> 8897 8898
8898<script src="//www.hiroia.com/cdn/shop/t/143/assets/slider.js?v=9514034325343619841788398068" defer="defer"></script>
vendor: 1 bytes, line 8898
8898
8899<script src="//www.hiroia.com/cdn/shop/t/143/assets/theme.js?v=90820240555359887181788398071" defer="defer"></script>
8899 8900<!--
8900<script src="//www.hiroia.com/cdn/shop/t/143/assets/halo-quick-search.js?v=46807827920085642751788398039" defer="defer"></script>
8900 --> 8901 8902 </div> 8903 <div class="halo-popup newsletter-success-modal customPopup-small" data-newsletter-success-modal id="newsletter-success-modal"> 8904 <div class="halo-popup-wrapper"> 8905 <button type="button" class="close close-modal" aria-label="Translation missing: en.cart.ajax_cart.close"> 8906 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 8907 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 8908</svg> 8909 </button> 8910 <div class="halo-modal-body success"> 8911 <p class="form-message form-message--success" tabindex="-1" data-form-status> 8912 <svg viewBox="0 0 512 512" class="icon icon-check" id="icon-check"> 8913 <path d="M435.848 83.466L172.804 346.51l-96.652-96.652c-4.686-4.686-12.284-4.686-16.971 0l-28.284 28.284c-4.686 4.686-4.686 12.284 0 16.971l133.421 133.421c4.686 4.686 12.284 4.686 16.971 0l299.813-299.813c4.686-4.686 4.686-12.284 0-16.971l-28.284-28.284c-4.686-4.686-12.284-4.686-16.97 0z" class=""></path> 8914</svg> 8915 <span> Thanks for subscribing!</span> 8916 </p> 8917 </div> 8918 <div class="halo-modal-body error"> 8919 <p class="form-message form-message--error" tabindex="-1" data-form-status> 8920 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-error" viewBox="0 0 13 13"> 8921 <circle cx="6.5" cy="6.50049" r="5.5" stroke="white" stroke-width="2"/> 8922 <circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width="0.7"/> 8923 <path d="M5.87413 3.52832L5.97439 7.57216H7.02713L7.12739 3.52832H5.87413ZM6.50076 9.66091C6.88091 9.66091 7.18169 9.37267 7.18169 9.00504C7.18169 8.63742 6.88091 8.34917 6.50076 8.34917C6.12061 8.34917 5.81982 8.63742 5.81982 9.00504C5.81982 9.37267 6.12061 9.66091 6.50076 9.66091Z" fill="white"/> 8924 <path d="M5.87413 3.17832H5.51535L5.52424 3.537L5.6245 7.58083L5.63296 7.92216H5.97439H7.02713H7.36856L7.37702 7.58083L7.47728 3.537L7.48617 3.17832H7.12739H5.87413ZM6.50076 10.0109C7.06121 10.0109 7.5317 9.57872 7.5317 9.00504C7.5317 8.43137 7.06121 7.99918 6.50076 7.99918C5.94031 7.99918 5.46982 8.43137 5.46982 9.00504C5.46982 9.57872 5.94031 10.0109 6.50076 10.0109Z" fill="white" stroke="#EB001B" stroke-width="0.7"> 8925</svg> 8926 8927 <span>This email has been registered!</span> 8928 </p> 8929 </div> 8930 </div> 8931</div> 8932 8933<div class="halo-lookbook-popup style-1" data-lookbook-popup> 8934 <div class="halo-popup-wrapper style-1"> 8935 <div class="halo-popup-content lookbook-content custom-scrollbar"></div> 8936 </div> 8937</div> 8938
8939<script> 8940 window.currencySymbol ="$" 8941</script>
8941 8942 8943<div class="halo-lookbook-popup-mobile" data-lookbook-popup-mobile> 8944 <div class="halo-popup-wrapper-mobile" data-lookbook-popup-mobile-wrapper> 8945 <h2 class="mobile-popup-header"> 8946 <span>Shop the look</span> 8947 <button type="button" data-close-lookbook-modal class="close close-modal" aria-label="Close"> 8948 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 8949 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 8950</svg> 8951 </button> 8952 </h2> 8953 <div class='items-scroll scroll-snap-mobile disable-srollbar'> 8954 <div 8955 class="halo-popup-container-mobile" 8956 data-lookbook-mobile-images-container 8957 > 8958 </div> 8959 </div> 8960 </div> 8961</div> 8962
8963<script> 8964 window.currencySymbol ="$" 8965</script>
8965 8966 8967 8968 8969<div class="halo-popup halo-search-popup" data-search-popup id="halo-search-popup"> 8970 <div class="halo-popup-wrapper"> 8971 <div class="halo-popup-header customPopup-header"> 8972 <div class="container"> 8973 <button type="button" class="halo-sidebar-popup" data-search-close-popup aria-label="Close"> 8974 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 8975 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 8976</svg> 8977 </button> 8978 </div> 8979 </div> 8980 <div class="halo-popup-content custom-scrollbar"> 8981 8982 </div> 8983 </div> 8984</div> 8985 8986 8987<div class="halo-popup halo-video-popup halo-popup-topDown" data-popup-video id="halo-video-popup"> 8988 <div class="halo-popup-wrapper"> 8989 <div class="halo-popup-header"> 8990 <button type="button" class="halo-popup-close clearfix" data-close-video-popup aria-label="Close"> 8991 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 8992 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 8993</svg> 8994 Close 8995 </button> 8996 </div> 8997 <div class="halo-popup-content"> 8998 </div> 8999 </div> 9000</div> 9001 9002<link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/halo-product-list-view-popup.css?v=93406195505027227191788398039" media="print" onload="this.media='all'"> 9003<noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/halo-product-list-view-popup.css?v=93406195505027227191788398039" rel="stylesheet" type="text/css" media="all" /></noscript> 9004 9005<div class="halo-product-list-view-popup product-list" id="list-view-popup" data-product-list-view> 9006 <h2 class="mobile-popup-header"> 9007 <span>Choose Options</span> 9008 <button type="button" data-close-product-list-modal class="close close-modal" aria-label="Close"> 9009 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 9010 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 9011</svg> 9012 </button> 9013 </h2> 9014 <div 9015 class='halo-popup-content product-options-wrapper card-swatch card-action' 9016 data-product-options-wrapper 9017 data-quickshop 9018 > 9019 </div> 9020</div> 9021
9022<script> 9023 const closeModalButton = document.querySelector('[data-close-product-list-modal]') 9024 closeModalButton.addEventListener('click', () => { 9025 document.body.classList.remove('quickshop-list-view-show') 9026 }) 9027</script>
9027 9028 9029<div class="halo-popup" id="halo-product-custom-information"> 9030 <div class="halo-popup-wrapper"> 9031 <div class="halo-popup-header"> 9032 <h5 class="halo-popup-title"></h5> 9033 <button type="button" class="halo-popup-close clearfix" data-close-custom-information aria-label="Close"> 9034 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 9035 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 9036</svg> 9037 Close 9038 </button> 9039 </div> 9040 <div class="halo-popup-content"> 9041 </div> 9042 </div> 9043</div>�<link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-recently-viewed.css?v=7347177497232885181788397999" media="print" onload="this.media='all'"> 9044 9045<noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-recently-viewed.css?v=7347177497232885181788397999" rel="stylesheet" type="text/css" media="all" /></noscript><recently-viewed-popup class="halo-popup halo-recently-viewed-popup is-show" id="halo-recently-viewed-popup" data-product-to-show="5" data-expire-day="1"><div class="halo-recently-viewed recently-viewed-share recently-viewed-tab" id="halo-recently-viewed-share"> 9046 <div class="recently-viewed-content"> 9047 <div class="recently-header"> 9048 <h3 class="recently-viewed-title text-center"> 9049 Social 9050 </h3> 9051 <button type="button" class="button__close" aria-label="Close"> 9052 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"> 9053 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"></path> 9054 </svg> 9055 </button> 9056 </div> 9057 <div class="media-grid recently-viewed-media text-center" id="recently-viewed-products-share"> 9058 <ul class="list-unstyled list-social-2 clearfix"><li class="list-social__item"> 9059 <a href="https://www.facebook.com/hiroia.fun" class="link link--text list-social__link"><svg aria-hidden="true" focusable="false" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512" class="icon icon-facebook"><path d="M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z"></path></svg><span class="visually-hidden">Facebook</span> 9060 </a> 9061 <div class="info list-social__info text-left"> 9062 <a class="link link-underline" href="https://www.facebook.com/hiroia.fun" target="_blank"> 9063 <span class="text">Facebook</span> 9064 </a> 9065 </div> 9066 </li><li class="list-social__item"> 9067 <a href="https://www.instagram.com/hiroia_official/" class="link link--text list-social__link"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512" xml:space="preserve" aria-hidden="true" focusable="false" role="presentation" class="icon icon-instagram"> 9068 <g> 9069 <path d="M256,152c-57.9,0-105,47.1-105,105s47.1,105,105,105s105-47.1,105-105S313.9,152,256,152z M256,152 c-57.9,0-105,47.1-105,105s47.1,105,105,105s105-47.1,105-105S313.9,152,256,152z M437,0H75C33.6,0,0,33.6,0,75v362 c0,41.4,33.6,75,75,75h362c41.4,0,75-33.6,75-75V75C512,33.6,478.4,0,437,0z M256,392c-74.399,0-135-60.601-135-135 c0-74.401,60.601-135,135-135s135,60.599,135,135C391,331.399,330.399,392,256,392z M421,122c-16.5,0-30-13.5-30-30s13.5-30,30-30 s30,13.5,30,30S437.5,122,421,122z M256,152c-57.9,0-105,47.1-105,105s47.1,105,105,105s105-47.1,105-105S313.9,152,256,152z M256,152c-57.9,0-105,47.1-105,105s47.1,105,105,105s105-47.1,105-105S313.9,152,256,152z M256,152c-57.9,0-105,47.1-105,105 s47.1,105,105,105s105-47.1,105-105S313.9,152,256,152z" /> 9070 </g> 9071</svg><span class="visually-hidden">Instagram</span> 9072 </a> 9073 <div class="info list-social__info text-left"> 9074 <a class="link link-underline" href="https://www.instagram.com/hiroia_official/" target="_blank">
9075 <span class="text">Instagram</span> 9076 </a> 9077 </div> 9078 </li><li class="list-social__item"> 9079 <a href="https://www.youtube.com/channel/UCN7RYHOEcrsB-Fo0qwmJLIw" class="link link--text list-social__link"><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-youtube" viewBox="0 0 100 70"> 9080 <path d="M98 11c2 7.7 2 24 2 24s0 16.3-2 24a12.5 12.5 0 01-9 9c-7.7 2-39 2-39 2s-31.3 0-39-2a12.5 12.5 0 01-9-9c-2-7.7-2-24-2-24s0-16.3 2-24c1.2-4.4 4.6-7.8 9-9 7.7-2 39-2 39-2s31.3 0 39 2c4.4 1.2 7.8 4.6 9 9zM40 50l26-15-26-15v30z"> 9081</svg> 9082<span class="visually-hidden">YouTube</span> 9083 </a> 9084 <div class="info list-social__info text-left"> 9085 <a class="link link-underline" href="https://www.youtube.com/channel/UCN7RYHOEcrsB-Fo0qwmJLIw" target="_blank"> 9086 <span class="text">YouTube</span> 9087 </a> 9088 </div> 9089 </li></ul> 9090 </div> 9091 </div> 9092 </div><div class="halo-recently-viewed recently-viewed-wrap" id="halo-recently-viewed-wrap"><div class="recently-viewed-icon open-popup" data-target="halo-recently-viewed-share"> 9093 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" aria-hidden="true" focusable="false" role="presentation" class="icon icon-social-media"> 9094 <path d="M 12.5 1 C 11.125 1 10 2.125 10 3.5 C 10 3.671875 10.019531 3.835938 10.050781 4 L 5.519531 6.039063 C 5.0625 5.414063 4.328125 5 3.5 5 C 2.125 5 1 6.125 1 7.5 C 1 8.875 2.125 10 3.5 10 C 4.332031 10 5.074219 9.582031 5.527344 8.949219 L 10.0625 10.964844 C 10.023438 11.136719 10 11.316406 10 11.5 C 10 12.875 11.125 14 12.5 14 C 13.875 14 15 12.875 15 11.5 C 15 10.125 13.875 9 12.5 9 C 11.667969 9 10.925781 9.417969 10.472656 10.050781 L 5.9375 8.039063 C 5.976563 7.863281 6 7.683594 6 7.5 C 6 7.3125 5.976563 7.128906 5.9375 6.953125 L 10.445313 4.914063 C 10.898438 5.570313 11.652344 6 12.5 6 C 13.875 6 15 4.875 15 3.5 C 15 2.125 13.875 1 12.5 1 Z M 12.5 2 C 13.335938 2 14 2.664063 14 3.5 C 14 4.335938 13.335938 5 12.5 5 C 11.664063 5 11 4.335938 11 3.5 C 11 2.664063 11.664063 2 12.5 2 Z M 3.5 6 C 4.335938 6 5 6.664063 5 7.5 C 5 8.335938 4.335938 9 3.5 9 C 2.664063 9 2 8.335938 2 7.5 C 2 6.664063 2.664063 6 3.5 6 Z M 12.5 10 C 13.335938 10 14 10.664063 14 11.5 C 14 12.335938 13.335938 13 12.5 13 C 11.664063 13 11 12.335938 11 11.5 C 11 10.664063 11.664063 10 12.5 10 Z"/> 9095</svg> 9096 </div><back-to-top-button class="recently-viewed-icon" data-scroll-to-top> 9097 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" aria-hidden="true" focusable="false" role="presentation" class="icon icon-back-to-top" style="stroke: black;"> 9098 <path d="M 25 1.015625 L 14.308594 11.28125 C 14.046875 11.527344 13.9375 11.894531 14.023438 12.242188 C 14.109375 12.589844 14.375 12.867188 14.71875 12.964844 C 15.066406 13.066406 15.4375 12.972656 15.691406 12.71875 L 24 4.746094 L 24 48 C 23.996094 48.359375 24.183594 48.695313 24.496094 48.878906 C 24.808594 49.058594 25.191406 49.058594 25.503906 48.878906 C 25.816406 48.695313 26.003906 48.359375 26 48 L 26 4.746094 L 34.308594 12.71875 C 34.5625 12.972656 34.933594 13.066406 35.28125 12.964844 C 35.625 12.867188 35.890625 12.589844 35.976563 12.242188 C 36.0625 11.894531 35.953125 11.527344 35.691406 11.28125 Z"/> 9099</svg> 9100 </back-to-top-button></div> 9101</recently-viewed-popup> 9102 9103<div class="recently-viewed-popup-mb content-align-center"></div> 9104
9105<script src="//www.hiroia.com/cdn/shop/t/143/assets/recently-viewed-product.js?v=30225671776474942461788398064" type="text/javascript"></script>
vendor: 2 bytes, line 9105
9105
9106<script src="//www.hiroia.com/cdn/shop/t/143/assets/halo-recently-viewed.js?v=79859878474835587941788398040" defer="defer"></script>
9106�<link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-quick-edit-cart.css?v=26103802578836788591788397997" media="print" onload="this.media='all'"> 9107 9108<noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-quick-edit-cart.css?v=26103802578836788591788397997" rel="stylesheet" type="text/css" media="all" /></noscript> 9109 9110<div class="halo-popup halo-edit-cart-popup customPopup-large" data-edit-cart-popup id="halo-edit-cart-popup"> 9111 <div class="halo-popup-wrapper"> 9112 <div class="halo-popup-edit-header"> 9113 <button type="button" class="halo-popup-close clearfix" data-close-edit-cart aria-label="Close"> 9114 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 9115 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 9116</svg> 9117 Close 9118 </button> 9119 <h5 class="halo-popup-title text-left"> 9120 Edit Option 9121 </h5> 9122 </div> 9123 <div class="halo-popup-content halo-popup-scroll custom-scrollbar"></div> 9124 </div> 9125</div>
9126<script src="//www.hiroia.com/cdn/shop/t/143/assets/variants-edit-cart.js?v=81278797816338580521788398074" defer="defer"></script>
9126�<link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-product.css?v=5836729497508392671788397995" media="print" onload="this.media='all'"><link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-quick-view.css?v=74478050216777567351788397997" media="print" onload="this.media='all'"><noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-product.css?v=5836729497508392671788397995" rel="stylesheet" type="text/css" media="all" /></noscript><noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-quick-view.css?v=74478050216777567351788397997" rel="stylesheet" type="text/css" media="all" /></noscript> 9127 9128<div class="halo-popup halo-quick-view-popup customPopup-large" data-quick-view-popup id="halo-quick-view-popup"> 9129 <div class="halo-popup-wrapper"> 9130 <button type="button" class="halo-popup-close clearfix" data-close-quick-view-popup aria-label="Close"> 9131 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 9132 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 9133</svg> 9134 </button> 9135 <div class="halo-popup-content halo-popup-scroll custom-scrollbar"></div> 9136 </div> 9137</div> 9138
9139<script src="//www.hiroia.com/cdn/shop/t/143/assets/variants-quick-view.js?v=53664001341531357691788398075" defer="defer"></script>
vendor: 2 bytes, line 9139
9139
9140<script src="https://cdn.jsdelivr.net/npm/sortablejs@latest/Sortable.min.js"></script>
vendor: 2 bytes, line 9140
9140
9141<script type="text/javascript"> 9142 window.variant_image_group_quick_view = false; 9143</script>
9143� 9144 <link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-card-mobile-popup.css?v=32685488149468493341788397952" media="print" onload="this.media='all'"> 9145<noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-card-mobile-popup.css?v=32685488149468493341788397952" rel="stylesheet" type="text/css" media="all" /></noscript> 9146 9147<div class="halo-popup halo-card-mobile-popup halo-popup-topDown" data-card-mobile-popup id="halo-card-mobile-popup"> 9148 <div class="halo-popup-wrapper"> 9149 <div class="halo-popup-content custom-scrollbar halo-card-mobile-content"> 9150 </div> 9151 </div> 9152</div> 9153 9154 9155 9156 9157<link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-warning-popup.css?v=143029987110804031811788398012" media="print" onload="this.media='all'"> 9158<noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-warning-popup.css?v=143029987110804031811788398012" rel="stylesheet" type="text/css" media="all" /></noscript> 9159 9160<div class="halo-popup halo-warning-popup bottom-up" data-warning-popup id="halo-warning-popup"> 9161 <button type="button" class="halo-popup-close clearfix" data-close-warning-popup aria-label="Close"> 9162 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 9163 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 9164</svg> 9165 </button> 9166 <span class="halo-warning-icon"> 9167 <svg aria-hidden="true" focusable="false" role="presentation" viewBox="0 0 554.2 554.199" class="icon icon-warning"> 9168 <g> 9169 <path d="M538.5,386.199L356.5,70.8c-16.4-28.4-46.7-45.9-79.501-45.9c-32.8,0-63.1,17.5-79.5,45.9L12.3,391.6 9170 c-16.4,28.4-16.4,63.4,0,91.8C28.7,511.8,59,529.3,91.8,529.3H462.2c0.101,0,0.2,0,0.2,0c50.7,0,91.8-41.101,91.8-91.8 9171 C554.2,418.5,548.4,400.8,538.5,386.199z M316.3,416.899c0,21.7-16.7,38.3-39.2,38.3s-39.2-16.6-39.2-38.3V416 9172 c0-21.601,16.7-38.301,39.2-38.301S316.3,394.3,316.3,416V416.899z M317.2,158.7L297.8,328.1c-1.3,12.2-9.4,19.8-20.7,19.8 9173 s-19.4-7.7-20.7-19.8L237,158.6c-1.3-13.1,5.801-23,18-23H299.1C311.3,135.7,318.5,145.6,317.2,158.7z"/> 9174 </g> 9175</svg> 9176 </span> 9177 <div class="halo-popup-content custom-scrollbar halo-warning-content" data-halo-warning-content>this is just a warning</div> 9178</div> 9179 9180 9181 9182 9183<div class="background-overlay"> 9184 9185 <div class="background-cursor-wrapper"> 9186 <div class="background-cursor-wrapper_outer"> 9187 <div class="background-cursor-wrapper_inner"> 9188 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="20" height="20"> 9189 <g class="nc-icon-wrapper" fill="#ffffff" transform="translate(0.5, 0.5)"><line fill="none" stroke-width="6" x1="46" y1="2" x2="2" y2="46"/> <line fill="none" stroke-width="6" x1="46" y1="46" x2="2" y2="2"/></g> 9190 </svg> 9191 </div> 9192 </div> 9193 </div> 9194 9195 </div> 9196 9197 <link rel="stylesheet" href="//www.hiroia.com/cdn/shop/t/143/assets/component-auth.css?v=127485890362915857051788397943" media="print" onload="this.media='all'"> 9198 9199<noscript><link href="//www.hiroia.com/cdn/shop/t/143/assets/component-auth.css?v=127485890362915857051788397943" rel="stylesheet" type="text/css" media="all" /></noscript><customer-auth class="halo-sidebar halo-sidebar-right halo-auth-sidebar" data-auth-sidebar id="halo-auth-sidebar"> 9200 9201 <div class="halo-sidebar-header text-left"> 9202 <span class="title">Login 9203</span> 9204 <button type="button" class="halo-sidebar-close" data-close-auth-sidebar aria-label="Close"> 9205 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 9206 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 9207</svg> 9208 Close 9209 </button> 9210 </div> 9211 <div class="halo-sidebar-wrapper custom-scrollbar"><form accept-charset="UTF-8" action="https://www.hiroia.com/customer_authentication/redirect?locale=en®ion_country=US" method="post" class="auth-form auth-form-2"> 9212 <input name="form_type" type="hidden" value="customer_login" /> 9213 <input name="utf8" type="hidden" value="â" /> 9214 <div class="form-field"> 9215 <label class="form-label" for="customer_email"> 9216 Email Address 9217 <em>*</em> 9218 </label> 9219 <input id="customer_email" class="form-input form-input-placeholder" type="email" value="" name="customer[email]" required placeholder="Email Address"> 9220 </div> 9221 <div class="form-field"> 9222 <label class="form-label" for="customer_password"> 9223 Password 9224 <em>*</em> 9225 </label> 9226 <input id="customer_password" class="form-input form-input-placeholder" type="password" value="" required placeholder="Password" name="customer[password]"> 9227 </div> 9228 <div class="form-actions auth-actions text-center"> 9229 <input type="submit" class="button button-1 button-login" value="Log in"> 9230 <a class="auth-link link link-underline" href="https://www.hiroia.com/customer_authentication/redirect?locale=en®ion_country=US#recover">
9231 <span class="text">Forgot your password?</span> 9232 </a> 9233 <a href="https://account.hiroia.com?locale=en&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJuZXdoaXJvaWEubXlzaG9waWZ5LmNvbSIsImZsYWdzIjpbXSwiZXhwIjoxNzkwOTA5Nzc1LCJuYmYiOjE3OTAzMDQ5NzV9.cwBTfXaOTJOGypDZkyzAg2LVsLCSZWWCd3Bz3Sj_ptM" class="button button-2 button-register"> 9234 Create account 9235 </a> 9236 </div> 9237 </form></div> 9238</customer-auth>
9239<script src="//www.hiroia.com/cdn/shop/t/143/assets/halo-customer-login.js?v=168411868604090099341788398035" defer="defer"></script>
9239� 9240 9241<div class="halo-sidebar halo-sidebar-left halo-sidebar_search" id="search-form-mobile"> 9242 <a href="#" class="halo-sidebar-close" data-search-close-sidebar alt="Close"> 9243 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 9244 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 9245</svg> 9246 Close 9247 </a> 9248 <div class="halo-sidebar-header text-left"> 9249 <span class="title"> 9250 Search 9251 </span> 9252 </div> 9253 <div class="halo-sidebar-wrapper custom-scrollbar"> 9254 9255 </div> 9256</div> 9257 9258 9259 <div class="halo-sidebar halo-sidebar-left halo-sidebar_menu " id="navigation-mobile"> 9260 <div class="halo-sidebar-wrapper custom-scrollbar"><div class="site-nav-mobile nav-menu-tab"></div> 9261 <div class="site-nav-mobile nav" data-navigation-mobile> 9262 <div class="menu-heading-mobile halo-sidebar-header"> 9263 <span class="title">Menu</span> 9264 <a href="#" class="halo-sidebar-close" data-menu-close-sidebar alt="Close"> 9265 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" > 9266 <path d="M 38.982422 6.9707031 A 2.0002 2.0002 0 0 0 37.585938 7.5859375 L 24 21.171875 L 10.414062 7.5859375 A 2.0002 2.0002 0 0 0 8.9785156 6.9804688 A 2.0002 2.0002 0 0 0 7.5859375 10.414062 L 21.171875 24 L 7.5859375 37.585938 A 2.0002 2.0002 0 1 0 10.414062 40.414062 L 24 26.828125 L 37.585938 40.414062 A 2.0002 2.0002 0 1 0 40.414062 37.585938 L 26.828125 24 L 40.414062 10.414062 A 2.0002 2.0002 0 0 0 38.982422 6.9707031 z"/> 9267</svg> 9268 Close 9269 </a> 9270 </div> 9271 </div><div class="site-nav-mobile nav-account"><div class="customer-links last-link"> 9272 9273 <a class="header__link--account" id="customer_login_link" href="https://www.hiroia.com/customer_authentication/redirect?locale=en®ion_country=US"> 9274 <span class="icon-wrapper"> 9275 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" aria-hidden="true" focusable="false" role="presentation" class="icon icon-account"><path d="M 16 3 C 8.832031 3 3 8.832031 3 16 C 3 23.167969 8.832031 29 16 29 C 23.167969 29 29 23.167969 29 16 C 29 8.832031 23.167969 3 16 3 Z M 16 5 C 22.085938 5 27 9.914063 27 16 C 27 22.085938 22.085938 27 16 27 C 9.914063 27 5 22.085938 5 16 C 5 9.914063 9.914063 5 16 5 Z M 16 8 C 13.25 8 11 10.25 11 13 C 11 14.515625 11.707031 15.863281 12.78125 16.78125 C 10.53125 17.949219 9 20.300781 9 23 L 11 23 C 11 20.226563 13.226563 18 16 18 C 18.773438 18 21 20.226563 21 23 L 23 23 C 23 20.300781 21.46875 17.949219 19.21875 16.78125 C 20.292969 15.863281 21 14.515625 21 13 C 21 10.25 18.75 8 16 8 Z M 16 10 C 17.667969 10 19 11.332031 19 13 C 19 14.667969 17.667969 16 16 16 C 14.332031 16 13 14.667969 13 13 C 13 11.332031 14.332031 10 16 10 Z"/></svg> 9276 </span> 9277 <span class="title"> 9278 Sign In 9279 </span> 9280 </a> 9281 <a class="header__link--account last-link" id="customer_register_link" href="https://account.hiroia.com?locale=en&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJuZXdoaXJvaWEubXlzaG9waWZ5LmNvbSIsImZsYWdzIjpbXSwiZXhwIjoxNzkwOTA5Nzc1LCJuYmYiOjE3OTAzMDQ5NzV9.cwBTfXaOTJOGypDZkyzAg2LVsLCSZWWCd3Bz3Sj_ptM"> 9282 <span class="icon-wrapper"> 9283 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 17" class="icon icon-sign-up"><defs><style>.cls-1{fill:#767676;}.cls-2{fill:#5c5c5c;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path d="M10.11,15.67H2.16a1.1,1.1,0,0,1-.26,0,.67.67,0,0,1-.56-.8,7.32,7.32,0,0,1,3.86-5,7.16,7.16,0,0,1,5.08-.58,8.49,8.49,0,0,1,1.39.49.66.66,0,0,0,.9-.49.67.67,0,0,0-.42-.74c-.3-.14-.61-.26-.93-.39l.28-.24a4.25,4.25,0,0,0,1-1.35,4.42,4.42,0,0,0,.15-3.68A4.47,4.47,0,0,0,9.7.16C9.44.09,9.18.08,8.93,0h-.1s0,0-.06,0S8.71,0,8.7,0H8.3s0,0-.07,0-.05,0-.06,0H8a2.44,2.44,0,0,1-.39.05,4.5,4.5,0,0,0-3.17,2.4A4.32,4.32,0,0,0,4,5.07a4.56,4.56,0,0,0,.58,1.72A4.41,4.41,0,0,0,5.58,8c.12.11.12.11,0,.17a8.5,8.5,0,0,0-1.19.54,8.39,8.39,0,0,0-2.49,2,8.13,8.13,0,0,0-1.88,4v.56c0,.12,0,.25.07.37A2,2,0,0,0,1.73,17h8.6s.08,0,.12-.05a.66.66,0,0,0,.35-.87A.67.67,0,0,0,10.11,15.67ZM5.31,4.52A3.19,3.19,0,1,1,8.55,7.7,3.2,3.2,0,0,1,5.31,4.52Z"/><path d="M16.17,13.18c-.49,0-1,0-1.49,0-.15,0-.18,0-.17-.19V11.43a.79.79,0,0,0-.06-.34.66.66,0,0,0-1.27.27v1.69c0,.11,0,.14-.13.13H11.42a.82.82,0,0,0-.34.06.68.68,0,0,0-.38.72.66.66,0,0,0,.64.55H13c.14,0,.19,0,.19.17,0,.5,0,1,0,1.49a.75.75,0,0,0,.53.83H14a.64.64,0,0,0,.58-.68V14.77c0-.2,0-.21.21-.21H16.3A.65.65,0,0,0,17,14v-.27A.75.75,0,0,0,16.17,13.18Z"/><path class="cls-1" d="M8.23,0H8.17a.07.07,0,0,0,.06,0Z"/><path class="cls-1" d="M8.23,0h0a.07.07,0,0,1-.06,0S8.21,0,8.23,0Z"/><path class="cls-2" d="M8.25,0s0,0,.05,0H8.23Z"/><path class="cls-2" d="M8.24,0h0s.06,0,.07,0,0,0-.05,0Z"/><path class="cls-2" d="M8.23,0h0l0,0V0Z"/><path class="cls-2" d="M8.24,0h0Z"/><path class="cls-2" d="M8.77,0V0H8.7a.08.08,0,0,0,.07,0Z"/><path class="cls-2" d="M8.77,0h0A.08.08,0,0,1,8.7,0S8.74,0,8.77,0Z"/><path class="cls-1" d="M8.78,0s0,0,.05,0H8.77Z"/><path class="cls-1" d="M8.78,0h0s.05,0,.06,0,0,0-.05,0Z"/><path class="cls-1" d="M8.78,0V0Z"/><path class="cls-1" d="M8.78,0Z"/></g></g></svg> 9284 </span>
9285 <span class="title"> 9286 Create an Account 9287 </span> 9288 </a> 9289 9290 </div><div class="wrapper-links"></div> 9291 </div><div class="site-nav-mobile nav-currency-language"> 9292 </div> 9293 </div> 9294</div> 9295 9296 <style> .wrapper-body {padding-bottom: 0px;} html[lang="ja"] .youtube-videos__list .youtube-videos__card:nth-child(3) {display: none !important;} @media (max-width: 768px) {#HeaderLanguageList {display: block !important; /* 確ä¿å®¹å¨æè¶³å¤ 寬度 */ min-width: 200px; width: auto; /* éç½®æ¸å¯«æ¨¡å¼çºæ°´å¹³ */ writing-mode: horizontal-tb; text-orientation: mixed; /* åºæ¬æ¨£å¼ */ list-style: none; padding: 0; margin: 0; background: #fff; border: 1px solid #ddd; border-radius: 4px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); } .disclosure__link {display: flex; align-items: center; padding: 12px 16px; text-decoration: none; color: #333; transition: background-color 0.2s ease; /* å¼·å¶æåæ°´å¹³é¡¯ç¤º */ white-space: nowrap; writing-mode: horizontal-tb; text-orientation: mixed; }} </style>
9297<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
9297 9298<shopify-store store-domain="https://www.hiroia.com" country="US" language="en"></shopify-store> 9299<shopify-chat></shopify-chat> 9300</body> 9301</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.