PageSourceSearch

https://epic-cycles.com/pages/blog

html epic-cycles.com collected 2026-10-04 20:54:32 UTC 284,674 bytes, 4,860 lines download raw bytes

1<!doctype html>
2  <html class="js" lang="en">
3    <head>
4      
4<script>
5        (function() {
6          // Tráfico que no queremos registrar en analítica: entra, no interactúa
7          // y no compra. Cloudflare nos dice el país y cortamos la carga ahí mismo.
8          // Añadir o quitar países es tocar solo esta lista (códigos ISO de dos letras).
9          var PAISES_BLOQUEADOS = ['CN', 'HK', 'SG', 'VN'];
10
11          fetch('/cdn-cgi/trace')
12            .then(function(res) { return res.text(); })
13            .then(function(data) {
14              var locMatch = data.match(/loc=([A-Z]+)/);
15              if (locMatch && locMatch.length > 1) {
16                if (PAISES_BLOQUEADOS.indexOf(locMatch[1]) !== -1) {
17                  if (window.stop) { window.stop(); }
18                }
19              }
20            })
21            .catch(function(err) { /* Ignorar errores */ });
22        })();
23      </script>
23
24      <meta charset="utf-8">
25      <meta http-equiv="X-UA-Compatible" content="IE=edge">
26      <meta name="viewport" content="width=device-width,initial-scale=1">
27      <meta name="theme-color" content="">
28      <link rel="canonical" href="https://epic-cycles.com/pages/blog"><link rel="icon" type="image/png" href="//epic-cycles.com/cdn/shop/files/favicon-epic.jpg?crop=center&height=32&v=1689348559&width=32"><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin><link rel="preconnect" href="https://fonts.googleapis.com">
29      <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
30      <link
31        rel="stylesheet"
32        href="https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,opsz,wght@0,6..12,200..1000;1,6..12,200..1000&family=Syncopate:wght@400;700&display=swap"
33        media="print"
34        onload="this.media='all'"
35      >
36      <noscript>
37        <link
38          rel="stylesheet"
39          href="https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,opsz,wght@0,6..12,200..1000;1,6..12,200..1000&family=Syncopate:wght@400;700&display=swap"
40        >
41      </noscript>
42  
43      <title>
44        Blog
45 &ndash; Epic Cycles</title>
46  
47      
48  
49      
50
51<meta property="og:site_name" content="Epic Cycles">
52<meta property="og:url" content="https://epic-cycles.com/pages/blog">
53<meta property="og:title" content="Blog">
54<meta property="og:type" content="website">
55<meta property="og:description" content="Get the best specialty road, mountain, electric and triathlon bikes on USA. Our Epic Pros are ready to help you finding the best product"><meta property="og:image" content="http://epic-cycles.com/cdn/shop/files/epic_logo_black_1.png?v=1740669210">
56  <meta property="og:image:secure_url" content="https://epic-cycles.com/cdn/shop/files/epic_logo_black_1.png?v=1740669210">
57  <meta property="og:image:width" content="5022">
58  <meta property="og:image:height" content="2658"><meta name="twitter:card" content="summary_large_image">
59<meta name="twitter:title" content="Blog">
60<meta name="twitter:description" content="Get the best specialty road, mountain, electric and triathlon bikes on USA. Our Epic Pros are ready to help you finding the best product">
61
62  
63      
63<script src="//epic-cycles.com/cdn/shop/t/42/assets/constants.js?v=132983761750457495441760957016" defer="defer"></script>
63
64      
64<script src="//epic-cycles.com/cdn/shop/t/42/assets/pubsub.js?v=158357773527763999511760957019" defer="defer"></script>
64
65      
65<script src="//epic-cycles.com/cdn/shop/t/42/assets/global.js?v=84974950447748309671771493793" defer="defer"></script>
65
66      
66<script src="//epic-cycles.com/cdn/shop/t/42/assets/accessibility.js?v=130998558157462495391779454277" defer="defer"></script>
66
67      
67<script src="//epic-cycles.com/cdn/shop/t/42/assets/details-disclosure.js?v=13653116266235556501760957018" defer="defer"></script>
67
68      
68<script src="//epic-cycles.com/cdn/shop/t/42/assets/details-modal.js?v=93410046925572498041760957018" defer="defer"></script>
68
69      
69<script src="//epic-cycles.com/cdn/shop/t/42/assets/search-form.js?v=27069097398074089421760957017" defer="defer"></script>
69<script src="//epic-cycles.com/cdn/shop/t/42/assets/animations.js?v=88693664871331136111760957017" defer="defer"></script>
69<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
69<meta name="facebook-domain-verification" content="05rwpc59gwc113i4wegglayyajcex5">
70<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/55566532655/digital_wallets/dialog">
71<meta id="in-context-paypal-metadata" data-shop-id="55566532655" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD">
72<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
72<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=2825257007"></script>
72
73<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
74<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=2825257007&shop_id=55566532655" crossorigin="anonymous"></script>
vendor: 1 bytes, line 74
74
75<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":55566532655,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/55566532655","merchantName":"Epic Cycles","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Epic Cycles","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 75
75
76<script id="shopify-features" type="application/json">{"accessToken":"bf900e29da5ee336263ed640721c3a3d","betas":["rich-media-storefront-analytics"],"domain":"epic-cycles.com","predictiveSearch":true,"shopId":55566532655,"locale":"en"}</script>
vendor: 1 bytes, line 76
76
77<script>var Shopify = Shopify || {};
78Shopify.shop = "epic-cycles2018.myshopify.com";
79Shopify.locale = "en";
80Shopify.currency = {"active":"USD","rate":"1.0"};
81Shopify.country = "US";
82Shopify.theme = {"name":"epic-b","id":149535981615,"schema_name":"Dawn","schema_version":"15.2.0","theme_store_id":null,"role":"main"};
83Shopify.theme.handle = "null";
84Shopify.theme.style = {"id":null,"handle":null};
85Shopify.cdnHost = "epic-cycles.com/cdn";
86Shopify.routes = Shopify.routes || {};
87Shopify.routes.root = "/";
88Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
89Shopify.SignInWithShop = Shopify.SignInWithShop || {};
90Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
91Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 91
91
92<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 92
92
93<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 93
93
94<script>
95  window.ShopifyPay = window.ShopifyPay || {};
96  window.ShopifyPay.apiHost = "shop.app\/pay";
97  window.ShopifyPay.redirectState = null;
98</script>
vendor: 1 bytes, line 98
98
99<script>
100  window.Shopify = window.Shopify || {};
101  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
102  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
103  window.Shopify.SignInWithShop.eligible = true;
104</script>
vendor: 1 bytes, line 104
104
105<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 105
105
106<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 106
106
107<script type="module">
108  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
109
110  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
111
112</script>
vendor: 1 bytes, line 112
112
113<script>
114  window.Shopify = window.Shopify || {};
115  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
116  window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]};
117</script>
vendor: 1 bytes, line 117
117
118<script>(function() {
119  var isLoaded = false;
120  function asyncLoad() {
121    if (isLoaded) return;
122    isLoaded = true;
123    var urls = ["https:\/\/shy.elfsight.com\/p\/platform.js?shop=epic-cycles2018.myshopify.com","\/\/d1liekpayvooaz.cloudfront.net\/apps\/customizery\/customizery.js?shop=epic-cycles2018.myshopify.com"];
124    for (var i = 0; i < urls.length; i++) {
125      var s = document.createElement('script');
126      s.type = 'text/javascript';
127      s.async = true;
128      s.src = urls[i];
129      var x = document.getElementsByTagName('script')[0];
130      x.parentNode.insertBefore(s, x);
131    }
132  };
133  if(window.attachEvent) {
134    window.attachEvent('onload', asyncLoad);
135  } else {
136    window.addEventListener('load', asyncLoad, false);
137  }
138})();</script>
vendor: 1 bytes, line 138
138
139<script id="__st">var __st={"a":55566532655,"offset":-21600,"reqid":"720586d5-99ea-465c-b065-53415c920a20-1791147271","pageurl":"epic-cycles.com\/pages\/blog","s":"pages-115855360047","u":"a1e5d777105e","p":"page","rtyp":"page","rid":115855360047};</script>
vendor: 1 bytes, line 139
139
140<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 140
140
141<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 141
141
142<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//epic-cycles.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 142
142
143<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//epic-cycles.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
143<script crossorigin="anonymous" defer="defer" src="//epic-cycles.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 143
143
144<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 144
144
145<script>
146  window.Shopify = window.Shopify || {};
147  window.Shopify.MCP = window.Shopify.MCP || {};
148  window.Shopify.MCP.enabled = true;
149  window.Shopify.MCP.shop = "epic-cycles2018.myshopify.com";
150  window.Shopify.MCP.mcpEndpoint = "https:\/\/epic-cycles.com\/api\/mcp";
151  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"]}}];
152</script>
vendor: 1 bytes, line 152
152
153<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("\/\/epic-cycles.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})();
154</script>
vendor: 1 bytes, line 154
154
155<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://epic-cycles.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
156</script>
vendor: 1 bytes, line 156
156
157<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
158  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);
159</script>
vendor: 1 bytes, line 159
159
160<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})}}));
161</script>
161
162<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://epic-cycles.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
163<style id="shopify-accelerated-checkout-cart">
164        #shopify-buyer-consent {
165  margin-top: 1em;
166  display: inline-block;
167  width: 100%;
168}
169
170#shopify-buyer-consent.hidden {
171  display: none;
172}
173
174#shopify-subscription-policy-button {
175  background: none;
176  border: none;
177  padding: 0;
178  text-decoration: underline;
179  font-size: inherit;
180  cursor: pointer;
181}
182
183#shopify-subscription-policy-button::before {
184  box-shadow: none;
185}
186
187      </style>
188<script id="sections-script" data-sections="featured-blog,header" defer="defer" src="//epic-cycles.com/cdn/shop/t/42/compiled_assets/scripts.js?v=54249736632300152211761732427"></script>
vendor: 1 bytes, line 188
188
189<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
189
190
191  
192      <style data-shopify>
193        @font-face {
194  font-family: Assistant;
195  font-weight: 400;
196  font-style: normal;
197  font-display: swap;
198  src: url("//epic-cycles.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2") format("woff2"),
199       url("//epic-cycles.com/cdn/fonts/assistant/assistant_n4.6e9875ce64e0fefcd3f4446b7ec9036b3ddd2985.woff") format("woff");
200}
201
202        @font-face {
203  font-family: Assistant;
204  font-weight: 700;
205  font-style: normal;
206  font-display: swap;
207  src: url("//epic-cycles.com/cdn/fonts/assistant/assistant_n7.bf44452348ec8b8efa3aa3068825305886b1c83c.woff2") format("woff2"),
208       url("//epic-cycles.com/cdn/fonts/assistant/assistant_n7.0c887fee83f6b3bda822f1150b912c72da0f7b64.woff") format("woff");
209}
210
211        
212        
213        @font-face {
214  font-family: Assistant;
215  font-weight: 400;
216  font-style: normal;
217  font-display: swap;
218  src: url("//epic-cycles.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2") format("woff2"),
219       url("//epic-cycles.com/cdn/fonts/assistant/assistant_n4.6e9875ce64e0fefcd3f4446b7ec9036b3ddd2985.woff") format("woff");
220}
221
222  
223        
224          :root,
225          .color-scheme-1 {
226            --color-background: 255,255,255;
227          
228            --gradient-background: #ffffff;
229          
230  
231          
232  
233          --color-foreground: 18,18,18;
234          --color-background-contrast: 191,191,191;
235          --color-shadow: 18,18,18;
236          --color-button: 18,18,18;
237          --color-button-text: 255,255,255;
238          --color-secondary-button: 255,255,255;
239          --color-secondary-button-text: 18,18,18;
240          --color-link: 18,18,18;
241          --color-badge-foreground: 18,18,18;
242          --color-badge-background: 255,255,255;
243          --color-badge-border: 18,18,18;
244          --payment-terms-background-color: rgb(255 255 255);
245        }
246        
247          
248          .color-scheme-2 {
249            --color-background: 243,243,243;
250          
251            --gradient-background: #f3f3f3;
252          
253  
254          
255  
256          --color-foreground: 18,18,18;
257          --color-background-contrast: 179,179,179;
258          --color-shadow: 18,18,18;
259          --color-button: 18,18,18;
260          --color-button-text: 243,243,243;
261          --color-secondary-button: 243,243,243;
262          --color-secondary-button-text: 18,18,18;
263          --color-link: 18,18,18;
264          --color-badge-foreground: 18,18,18;
265          --color-badge-background: 243,243,243;
266          --color-badge-border: 18,18,18;
267          --payment-terms-background-color: rgb(243 243 243);
268        }
269        
270          
271          .color-scheme-3 {
272            --color-background: 36,40,51;
273          
274            --gradient-background: #242833;
275          
276  
277          
278  
279          --color-foreground: 255,255,255;
280          --color-background-contrast: 47,52,66;
281          --color-shadow: 18,18,18;
282          --color-button: 255,255,255;
283          --color-button-text: 0,0,0;
284          --color-secondary-button: 36,40,51;
285          --color-secondary-button-text: 255,255,255;
286          --color-link: 255,255,255;
287          --color-badge-foreground: 255,255,255;
288          --color-badge-background: 36,40,51;
289          --color-badge-border: 255,255,255;
290          --payment-terms-background-color: rgb(36 40 51);
291        }
292        
293          
294          .color-scheme-4 {
295            --color-background: 18,18,18;
296          
297            --gradient-background: #121212;
298          
299  
300          
301  
302          --color-foreground: 255,255,255;
303          --color-background-contrast: 146,146,146;
304          --color-shadow: 18,18,18;
305          --color-button: 255,255,255;
306          --color-button-text: 18,18,18;
307          --color-secondary-button: 18,18,18;
308          --color-secondary-button-text: 255,255,255;
309          --color-link: 255,255,255;
310          --color-badge-foreground: 255,255,255;
311          --color-badge-background: 18,18,18;
312          --color-badge-border: 255,255,255;
313          --payment-terms-background-color: rgb(18 18 18);
314        }
315        
316          
317          .color-scheme-5 {
318            --color-background: 51,79,180;
319          
320            --gradient-background: #334fb4;
321          
322  
323          
324  
325          --color-foreground: 255,255,255;
326          --color-background-contrast: 23,35,81;
327          --color-shadow: 18,18,18;
328          --color-button: 255,255,255;
329          --color-button-text: 51,79,180;
330          --color-secondary-button: 51,79,180;
331          --color-secondary-button-text: 255,255,255;
332          --color-link: 255,255,255;
333          --color-badge-foreground: 255,255,255;
334          --color-badge-background: 51,79,180;
335          --color-badge-border: 255,255,255;
336          --payment-terms-background-color: rgb(51 79 180);
337        }
338        
339          
340          .color-scheme-0bb9a0c8-723c-4022-ad59-98d02041403c {
341            --color-background: 18,18,18;
342          
343            --gradient-background: #121212;
344          
345  
346          
347  
348          --color-foreground: 255,255,255;
349          --color-background-contrast: 146,146,146;
350          --color-shadow: 18,18,18;
351          --color-button: 158,229,202;
352          --color-button-text: 255,255,255;
353          --color-secondary-button: 18,18,18;
354          --color-secondary-button-text: 18,18,18;
355          --color-link: 18,18,18;
356          --color-badge-foreground: 255,255,255;
357          --color-badge-background: 18,18,18;
358          --color-badge-border: 255,255,255;
359          --payment-terms-background-color: rgb(18 18 18);
360        }
361        
362  
363        body, .color-scheme-1, .color-scheme-2, .color-scheme-3, .color-scheme-4, .color-scheme-5, .color-scheme-0bb9a0c8-723c-4022-ad59-98d02041403c {
364          color: rgba(var(--color-foreground), 0.75);
365          background-color: rgb(var(--color-background));
366        }
367  
368        :root {
369          --font-body-family: Assistant, sans-serif;
370          --font-body-style: normal;
371          --font-body-weight: 400;
372          --font-body-weight-bold: 700;
373  
374          --font-heading-family: Assistant, sans-serif;
375          --font-heading-style: normal;
376          --font-heading-weight: 400;
377  
378          --font-body-scale: 1.0;
379          --font-heading-scale: 1.0;
380  
381          --media-padding: px;
382          --media-border-opacity: 0.05;
383          --media-border-width: 1px;
384          --media-radius: 0px;
385          --media-shadow-opacity: 0.0;
386          --media-shadow-horizontal-offset: 0px;
387          --media-shadow-vertical-offset: 4px;
388          --media-shadow-blur-radius: 5px;
389          --media-shadow-visible: 0;
390  
391          --page-width: 120rem;
392          --page-width-margin: 0rem;
393  
394          --product-card-image-padding: 0.0rem;
395          --product-card-corner-radius: 0.0rem;
396          --product-card-text-alignment: left;
397          --product-card-border-width: 0.0rem;
398          --product-card-border-opacity: 0.1;
399          --product-card-shadow-opacity: 0.0;
400          --product-card-shadow-visible: 0;
401          --product-card-shadow-horizontal-offset: 0.0rem;
402          --product-card-shadow-vertical-offset: 0.4rem;
403          --product-card-shadow-blur-radius: 0.5rem;
404  
405          --collection-card-image-padding: 0.0rem;
406          --collection-card-corner-radius: 0.0rem;
407          --collection-card-text-alignment: left;
408          --collection-card-border-width: 0.0rem;
409          --collection-card-border-opacity: 0.1;
410          --collection-card-shadow-opacity: 0.0;
411          --collection-card-shadow-visible: 0;
412          --collection-card-shadow-horizontal-offset: 0.0rem;
413          --collection-card-shadow-vertical-offset: 0.4rem;
414          --collection-card-shadow-blur-radius: 0.5rem;
415  
416          --blog-card-image-padding: 0.0rem;
417          --blog-card-corner-radius: 0.0rem;
418          --blog-card-text-alignment: left;
419          --blog-card-border-width: 0.0rem;
420          --blog-card-border-opacity: 0.1;
421          --blog-card-shadow-opacity: 0.0;
422          --blog-card-shadow-visible: 0;
423          --blog-card-shadow-horizontal-offset: 0.0rem;
424          --blog-card-shadow-vertical-offset: 0.4rem;
425          --blog-card-shadow-blur-radius: 0.5rem;
426  
427          --badge-corner-radius: 4.0rem;
428  
429          --popup-border-width: 1px;
430          --popup-border-opacity: 0.1;
431          --popup-corner-radius: 0px;
432          --popup-shadow-opacity: 0.05;
433          --popup-shadow-horizontal-offset: 0px;
434          --popup-shadow-vertical-offset: 4px;
435          --popup-shadow-blur-radius: 5px;
436  
437          --drawer-border-width: 1px;
438          --drawer-border-opacity: 0.1;
439          --drawer-shadow-opacity: 0.0;
440          --drawer-shadow-horizontal-offset: 0px;
441          --drawer-shadow-vertical-offset: 4px;
442          --drawer-shadow-blur-radius: 5px;
443  
444          --spacing-sections-desktop: 0px;
445          --spacing-sections-mobile: 0px;
446  
447          --grid-desktop-vertical-spacing: 8px;
448          --grid-desktop-horizontal-spacing: 8px;
449          --grid-mobile-vertical-spacing: 4px;
450          --grid-mobile-horizontal-spacing: 4px;
451  
452          --text-boxes-border-opacity: 0.1;
453          --text-boxes-border-width: 0px;
454          --text-boxes-radius: 0px;
455          --text-boxes-shadow-opacity: 0.0;
456          --text-boxes-shadow-visible: 0;
457          --text-boxes-shadow-horizontal-offset: 0px;
458          --text-boxes-shadow-vertical-offset: 4px;
459          --text-boxes-shadow-blur-radius: 5px;
460  
461          --buttons-radius: 0px;
462          --buttons-radius-outset: 0px;
463          --buttons-border-width: 1px;
464          --buttons-border-opacity: 1.0;
465          --buttons-shadow-opacity: 0.0;
466          --buttons-shadow-visible: 0;
467          --buttons-shadow-horizontal-offset: 0px;
468          --buttons-shadow-vertical-offset: 4px;
469          --buttons-shadow-blur-radius: 5px;
470          --buttons-border-offset: 0px;
471  
472          --inputs-radius: 0px;
473          --inputs-border-width: 1px;
474          --inputs-border-opacity: 0.55;
475          --inputs-shadow-opacity: 0.0;
476          --inputs-shadow-horizontal-offset: 0px;
477          --inputs-margin-offset: 0px;
478          --inputs-shadow-vertical-offset: 4px;
479          --inputs-shadow-blur-radius: 5px;
480          --inputs-radius-outset: 0px;
481  
482          --variant-pills-radius: 40px;
483          --variant-pills-border-width: 1px;
484          --variant-pills-border-opacity: 0.55;
485          --variant-pills-shadow-opacity: 0.0;
486          --variant-pills-shadow-horizontal-offset: 0px;
487          --variant-pills-shadow-vertical-offset: 4px;
488          --variant-pills-shadow-blur-radius: 5px;
489        }
490  
491        *,
492        *::before,
493        *::after {
494          box-sizing: inherit;
495        }
496  
497        html {
498          box-sizing: border-box;
499          font-size: calc(var(--font-body-scale) * 62.5%);
500          height: 100%;
501        }
502  
503        body {
504          display: grid;
505          grid-template-rows: auto auto 1fr auto;
506          grid-template-columns: 100%;
507          min-height: 100%;
508          margin: 0;
509          font-size: 1.5rem;
510          letter-spacing: 0.06rem;
511          line-height: calc(1 + 0.8 / var(--font-body-scale));
512          font-family: var(--font-body-family);
513          font-style: var(--font-body-style);
514          font-weight: var(--font-body-weight);
515        }
516  
517        @media screen and (min-width: 750px) {
518          body {
519            font-size: 1.6rem;
520          }
521        }
522  
523        /*
524          Evergage (Salesforce Personalization) inyecta su "flicker defense":
525            #content, body, [id*="custom_featured_title_..."], product-form > ... { visibility: hidden !important }
526          Como la configuración incluye 'body' y '#content', apagaba la web ENTERA unos
527          300 ms mientras consultaba qué personalizar. Y la API responde
528          campaignResponses: [] — no hay ninguna campaña que proteger.
529  
530          Aquí se anulan sólo 'body' y '#content', ganando por especificidad
531          (html body = 0,0,2 frente a body = 0,0,1). Las zonas concretas que Evergage
532          también oculta se dejan intactas, para no romper la protección si algún día
533          se activa una campaña en ellas.
534  
535          El arreglo de fondo es quitar body/#content de la lista de selectores en el
536          panel de Evergage; esto es la red de seguridad desde el tema.
537        */
538        html body,
539        html #content {
540          visibility: visible !important;
541        }
542      </style>
543  
544      
545          
546      
547        <link href="//epic-cycles.com/cdn/shop/t/42/assets/styles.css?v=95947216877940590601788980557" rel="stylesheet" type="text/css" media="all" />
548      
549  
550      
551  
552      <link rel="stylesheet" href="//epic-cycles.com/cdn/shop/t/42/assets/slick.css?v=98340474046176884051760957016">
553      <link rel="stylesheet" href="//epic-cycles.com/cdn/shop/t/42/assets/slick-theme.css?v=40022998386997376211760957017">
554      <link href="//epic-cycles.com/cdn/shop/t/42/assets/product-card-hover.css?v=7717534201602650591766432609" rel="stylesheet" type="text/css" media="all" />
555      <link href="//epic-cycles.com/cdn/shop/t/42/assets/accessibility.css?v=73980125719279480551779454277" rel="stylesheet" type="text/css" media="all" />
556<link rel="stylesheet" href="//epic-cycles.com/cdn/shop/t/42/assets/fontawesome.css?v=158814722062757834901760957018" media="print" onload="this.media='all'">
557      <link rel="stylesheet" href="//epic-cycles.com/cdn/shop/t/42/assets/product-compare.css?v=154009279676060313521771419820" media="print" onload="this.media='all'">
558      <link rel="stylesheet" href="//epic-cycles.com/cdn/shop/t/42/assets/quick-add-modal.css?v=121793008526601680011760957019" media="print" onload="this.media='all'">
559      <link
560        rel="stylesheet"
561        href="https://cdn.jsdelivr.net/npm/[email protected]/dist/nouislider.min.css"
562        media="print"
563        onload="this.media='all'"
564      ><noscript>
565        <link rel="stylesheet" href="//epic-cycles.com/cdn/shop/t/42/assets/fontawesome.css?v=158814722062757834901760957018">
566        <link rel="stylesheet" href="//epic-cycles.com/cdn/shop/t/42/assets/product-compare.css?v=154009279676060313521771419820">
567        <link rel="stylesheet" href="//epic-cycles.com/cdn/shop/t/42/assets/quick-add-modal.css?v=121793008526601680011760957019">
568        <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/nouislider.min.css" rel="stylesheet">
569      </noscript>
570        <link rel="preload" as="font" href="//epic-cycles.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2" type="font/woff2" crossorigin>
571        
572
573        <link rel="preload" as="font" href="//epic-cycles.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2" type="font/woff2" crossorigin>
574        
575<link href="//epic-cycles.com/cdn/shop/t/42/assets/component-localization-form.css?v=170315343355214948141760957018" rel="stylesheet" type="text/css" media="all" />
576        
576<script src="//epic-cycles.com/cdn/shop/t/42/assets/localization-form.js?v=144176611646395275351760957017" defer="defer"></script>
576<link
577          rel="stylesheet"
578          href="//epic-cycles.com/cdn/shop/t/42/assets/component-predictive-search.css?v=108248513670363226071775555007"
579          media="print"
580          onload="this.media='all'"
581        >
581<script>
582        if (Shopify.designMode) {
583          document.documentElement.classList.add('shopify-design-mode');
584        }
585      </script>
585
586  
587      
587<script>
588        window.Shopify = window.Shopify || {};
589        window.Shopify.money_format = "${{amount}}";
590        
591        // Productos comparados desde cookies (server-side accessible)
592        
593        window.compareProductsFromCookie = "";
594      </script>
594<script>
595        (function () {
596          var EVENTS = ['pointerdown', 'keydown', 'touchstart', 'wheel', 'scroll'];
597          var loaded = false;
598          var mapsLoaded = false;
599  
600          function addScript(src) {
601            var s = document.createElement('script');
602            s.async = true;
603            s.src = src;
604            document.head.appendChild(s);
605          }
606  
607          // stores-modal.liquid y custom-our-stores-map.liquid ya esperan a window.google
608          // con waitForGoogleMaps(), así que da igual cuándo llegue la API.
609          function loadMaps() {
610            if (mapsLoaded) return;
611            mapsLoaded = true;
612            addScript('https://maps.googleapis.com/maps/api/js?key=AIzaSyCyMOYxxIzOMOvhll4hx7ZqcbkH0NBDnVI');
613          }
614          window.epicLoadMaps = loadMaps;
615  
616          // Cualquier vía de apertura del selector de tiendas dispara la carga.
617          document.addEventListener(
618            'click',
619            function (e) {
620              if (!e.target || !e.target.closest) return;
621              if (e.target.closest('.content-store, .stores-modal, [aria-haspopup="dialog"]')) loadMaps();
622            },
623            { passive: true, capture: true }
624          );
625          document.addEventListener(
626            'keydown',
627            function (e) {
628              if (e.key !== 'Enter' && e.key !== ' ') return;
629              var a = document.activeElement;
630              if (a && a.closest && a.closest('.content-store, .stores-modal')) loadMaps();
631            },
632            { passive: true }
633          );
634  
635          function loadThirdParty() {
636            if (loaded) return;
637            loaded = true;
638  
639            // Hotjar
640            window.hj =
641              window.hj ||
642              function () {
643                (window.hj.q = window.hj.q || []).push(arguments);
644              };
645            window._hjSettings = { hjid: 5305034, hjsv: 6 };
646            addScript(
647              'https://static.hotjar.com/c/hotjar-' + window._hjSettings.hjid + '.js?sv=' + window._hjSettings.hjsv
648            );
649  
650     
651             addScript('https://cdn.evgnet.com/beacon/epiccycles/engage/scripts/evergage.min.js');
652          }
653  
654          EVENTS.forEach(function (evt) {
655            window.addEventListener(evt, loadThirdParty, { passive: true, once: true });
656          });
657  
658          window.addEventListener('load', function () {
659            // Sólo la página que lleva el mapa incrustado necesita la API sin interacción.
660            if (document.getElementById('mapStores')) loadMaps();
661            setTimeout(loadThirdParty, 3000);
662          });
663        })();
664      </script>
664
665  
666  
667       <!-- Google Tag Manager -->
668      
668<script>
vendor: 368 bytes, lines 668-673
668
669        (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
670        new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
671        j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
672        'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
673        })(window,document,'script','dataLayer','
673GTM-TJ8D29Q
vendor: 10 bytes, lines 673-674
673');
674      
674</script>
674
675      <!-- End Google Tag Manager -->
676  
677    <!-- BEGIN app block: shopify://apps/consentmo-gdpr/blocks/gdpr_cookie_consent/4fbe573f-a377-4fea-9801-3ee0858cae41 -->
678<link rel="preconnect" href="https://app.consentmo.com" crossorigin data-csm-preconnect="app">
679<link rel="dns-prefetch" href="https://workers.consentmo.com" data-csm-preconnect="workers">
680<link rel="dns-prefetch" href="https://storage.consentmo.com" data-csm-preconnect="storage">
681<link rel="preconnect" href="https://cdn.consentmo.com" crossorigin data-csm-preconnect="cdn"><link rel="prefetch" href="https://cdn.shopify.com/extensions/01a1089c-8f46-7356-a6fb-4fc10fbc27d3/gdpr-backpack-904/assets/layout-cookie-bar.consentmo.js" crossorigin data-csm-layout-prefetch="banner">
682  <link rel="prefetch" href="https://cdn.shopify.com/extensions/01a1089c-8f46-7356-a6fb-4fc10fbc27d3/gdpr-backpack-904/assets/layout-cookie-dialog.consentmo.js" crossorigin data-csm-layout-prefetch="dialog">
683  <link rel="prefetch" href="https://cdn.shopify.com/extensions/01a1089c-8f46-7356-a6fb-4fc10fbc27d3/gdpr-backpack-904/assets/layout-cookie-box.consentmo.js" crossorigin data-csm-layout-prefetch="box">
684  <link rel="prefetch" href="https://cdn.shopify.com/extensions/01a1089c-8f46-7356-a6fb-4fc10fbc27d3/gdpr-backpack-904/assets/layout-cookie-smart-banner.consentmo.js" crossorigin data-csm-layout-prefetch="smart">
685  <link rel="prefetch" href="https://cdn.shopify.com/extensions/01a1089c-8f46-7356-a6fb-4fc10fbc27d3/gdpr-backpack-904/assets/layout-mobile-cookie-bar.consentmo.js" crossorigin data-csm-layout-prefetch="mobile">
685<script>
686(function () {
687  try {
688    document.documentElement.classList.add('csm-cookie-embed');
689  } catch (e) {}
690})();
691</script>
691<script data-consentmo-data-src-bootstrap>
692(function () {
693  'use strict';
694  if (window.__consentmoDataSrcBootstrapInit) return;
695  window.__consentmoDataSrcBootstrapInit = true;
696
697  var DATA_SRC_SELECTOR = [
698    'script[data-src*="consentmo_cookie_consent"]',
699    'script[data-src*="gdpr_cookie_consent.min"]',
700    'script[data-src*="gdrp_cookie_consent_unlimited"]'
701  ].join(',');
702
703  function activateConsentmoDataSrcScripts() {
704    if (!window.Shopify || !window.Shopify.shop) return;
705    document.querySelectorAll(DATA_SRC_SELECTOR).forEach(function (scriptEl) {
706      // getAttribute: src="" must not count as "already has src" (.src === page URL).
707      if (scriptEl.getAttribute('src')) return;
708      var url = scriptEl.getAttribute('data-src');
709      if (!url) return;
710      if (scriptEl.getAttribute('type') === 'text/plain') {
711        scriptEl.removeAttribute('type');
712      }
713      scriptEl.src = url;
714    });
715  }
716  function scheduleActivation() {
717    activateConsentmoDataSrcScripts();
718    // Retry on next task so other DCL handlers (lazy-loaders) can finish setting Shopify.shop / data-src first.
719    setTimeout(activateConsentmoDataSrcScripts, 0);
720  }
721  if (document.readyState === 'loading') {
722    document.addEventListener('DOMContentLoaded', scheduleActivation, { once: true });
723  } else {
724    scheduleActivation();
725  }
726})();
727</script>
727
728
729
730<!-- END app block --><!-- BEGIN app block: shopify://apps/microsoft-clarity/blocks/clarity_js/31c3d126-8116-4b4a-8ba1-baeda7c4aeea -->
731<script type="text/javascript">
732  (function (c, l, a, r, i, t, y) {
733    c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments); };
734    t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i + "?ref=shopify";
735    y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y);
736
737    c.Shopify.loadFeatures([{ name: "consent-tracking-api", version: "0.1" }], error => {
738      if (error) {
739        console.error("Error loading Shopify features:", error);
740        return;
741      }
742
743      c[a]('consentv2', {
744        ad_Storage: c.Shopify.customerPrivacy.marketingAllowed() ? "granted" : "denied",
745        analytics_Storage: c.Shopify.customerPrivacy.analyticsProcessingAllowed() ? "granted" : "denied",
746        source: 101,
747      });
748    });
749
750    l.addEventListener("visitorConsentCollected", function (e) {
751      c[a]('consentv2', {
752        ad_Storage: e.detail.marketingAllowed ? "granted" : "denied",
753        analytics_Storage: e.detail.analyticsAllowed ? "granted" : "denied",
754        source: 101,
755      });
756    });
757  })(window, document, "clarity", "script", "v5hdzaac18");
758</script>
758
759
760
761
762<!-- END app block --><!-- BEGIN app block: shopify://apps/judge-me-reviews/blocks/judgeme_core/61ccd3b1-a9f2-4160-9fe9-4fec8413e5d8 --><!-- Start of Judge.me Core -->
763
764
765
766
767
768
769
770<link rel="dns-prefetch" href="https://cdn.judge.me">
771<link rel="dns-prefetch" href="https://cdn1.judge.me">
772<link rel="dns-prefetch" href="https://api.judge.me">
773
774<script data-cfasync='false' class='jdgm-settings-script'>window.jdgmSettings={"pagination":5,"disable_web_reviews":false,"coupon_receiving_condition":"any_review","coupon_value_type":"percentage","coupon_value_percentage":10,"coupon_value_fixed_amount":0,"coupon_discount_type":"single","coupon_tier_text_enabled":false,"coupon_tier_text_percentage":10,"coupon_tier_text_fixed_amount":0,"coupon_tier_photo_enabled":false,"coupon_tier_photo_percentage":10,"coupon_tier_photo_fixed_amount":0,"coupon_tier_video_enabled":false,"coupon_tier_video_percentage":10,"coupon_tier_video_fixed_amount":0,"enable_coupons":false,"badge_no_review_text":"No reviews","badge_n_reviews_text":"{{ n }} review/reviews","badge_star_color":"#9EE5CA","hide_badge_preview_if_no_reviews":true,"badge_hide_text":false,"enforce_center_preview_badge":false,"widget_title":"Customer Reviews","widget_open_form_text":"Write a review","widget_close_form_text":"Cancel review","widget_refresh_page_text":"Refresh page","widget_summary_text":"Based on {{ number_of_reviews }} review/reviews","widget_no_review_text":"Be the first to write a review","widget_name_field_text":"Display name","widget_verified_name_field_text":"Verified Name (public)","widget_name_placeholder_text":"Display name","widget_required_field_error_text":"This field is required.","widget_email_field_text":"Email address","widget_verified_email_field_text":"Verified Email (private, can not be edited)","widget_email_placeholder_text":"Your email address","widget_email_field_error_text":"Please enter a valid email address.","widget_rating_field_text":"Rating","widget_review_title_field_text":"Review Title","widget_review_title_placeholder_text":"Give your review a title","widget_review_body_field_text":"Review content","widget_review_body_placeholder_text":"Start writing here...","widget_pictures_field_text":"Picture/Video (optional)","widget_submit_review_text":"Submit Review","widget_submit_verified_review_text":"Submit Verified Review","widget_submit_success_msg_with_auto_publish":"Thank y
774ou! Please refresh the page in a few moments to see your review. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_submit_success_msg_no_auto_publish":"Thank you! Your review will be published as soon as it is approved by the shop admin. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_show_default_reviews_out_of_total_text":"Showing {{ n_reviews_shown }} out of {{ n_reviews }} reviews.","widget_show_all_link_text":"Show all","widget_show_less_link_text":"Show less","widget_author_said_text":"{{ reviewer_name }} said:","widget_days_text":"{{ n }} days ago","widget_weeks_text":"{{ n }} week/weeks ago","widget_months_text":"{{ n }} month/months ago","widget_years_text":"{{ n }} year/years ago","widget_yesterday_text":"Yesterday","widget_today_text":"Today","widget_replied_text":"\u003e\u003e {{ shop_name }} replied:","widget_read_more_text":"Read more","widget_reviewer_name_as_initial":"","widget_rating_filter_color":"#fbcd0a","widget_rating_filter_see_all_text":"See all reviews","widget_sorting_most_recent_text":"Most Recent","widget_sorting_highest_rating_text":"Highest Rating","widget_sorting_lowest_rating_text":"Lowest Rating","widget_sorting_with_pictures_text":"Only Pictures","widget_sorting_most_helpful_text":"Most Helpful","widget_open_question_form_text":"Ask a question","widget_reviews_subtab_text":"Reviews","widget_questions_subtab_text":"Questions","widget_question_label_text":"Question","widget_answer_label_text":"Answer","widget_question_placeholder_text":"Write your question here","widget_submit_question_text":"Submit Question","widget_question_submit_success_text":"Thank you for your question! We will notify you once it gets answered.","widget_star_color":"#9EE5CA","verified_badge_text":"Verified","verified_badge_bg_color":"","verified_badge_text_color":"","verified_badge_placement":"left-of-reviewer-name","widget_review_max_height":"","widget_hide_border":false,"widget_social_share":false,"widget_thumb":false,"widget_review_location_show":false,"widget_location_format":"","all_reviews_include_out_of_store_products":true,"all_reviews_out_of_store_text":"(out of store)","all_reviews_pagination":100,"all_reviews_product_name_prefix_text":"about","enable_review_pictures":true,"enable_question_anwser":false,"widget_theme":"default","review_date_format":"mm/dd/yyyy","default_sort_method":"most-recent","enable_ai_review_visibility":true,"widget_product_reviews_subtab_text":"Product Reviews","widget_shop_reviews_subtab_text":"Shop Reviews","widget_other_products_reviews_text":"Reviews for other products","widget_store_reviews_subtab_text":"Store reviews","widget_product_variant_reference_text":"Review for","widget_no_store_reviews_text":"This store hasn't received any reviews yet","widget_web_restriction_product_reviews_text":"This product hasn't received any reviews yet","widget_no_items_text":"No items found","widget_show_more_text":"Show more","widget_write_a_store_review_text":"Write a Store Review","widget_product_and_store_reviews_text":"Product and store reviews","widget_reviews_in_collection_text":"Reviews in this collection","widget_other_languages_heading":"Reviews in Other Languages","widget_translate_review_text":"Translate review to {{ language }}","widget_translating_review_text":"Translating...","widget_show_original_translation_text":"Show original ({{ language }})","widget_translate_review_failed_text":"Review couldn't be translated.","widget_translate_review_retry_text":"Retry","widget_translate_review_try_again_later_text":"Try again later","show_product_url_for_grouped_product":false,"widget_sorting_pictures_first_text":"Pictures First","show_pictures_on_all_rev_page_mobile":false,"show_pictures_on_all_rev_page_desktop":false,"floating_tab_hide_mobile_install_preference":false,"floating_tab_button_name":"★ Reviews","floating_tab_title":"Let customers speak for us","floating_tab_button_color":"","floating_tab_button_background_color":"","floating_tab_url":"","floating_tab_url_enabled":false,"floating_tab_tab_style":"text","all_reviews_text_badge_text":"Customers rate us {{ shop.metafields.judgeme.all_reviews_rating | round: 1 }}/5 based on {{ shop.metafields.judgeme.all_reviews_count }} reviews.","all_reviews_text_badge_text_branded_style":"{{ shop.metafields.judgeme.all_reviews_rating | round: 1 }} out of 5 stars based on {{ shop.metafields.judgeme.all_reviews_count }} reviews","is_all_reviews_text_badge_a_link":false,"show_stars_for_all_reviews_text_badge":false,"all_reviews_text_badge_url":"","all_reviews_text_style":"branded","all_reviews_text_color_style":"judgeme_brand_color","all_reviews_text_color":"#108474","all_reviews_text_show_jm_brand":false,"featured_carousel_show_header":true,"featured_carousel_title":"Let customers speak for us","testimonials_carousel_title":"Customers are saying","videos_carousel_title":"Real customer stories","cards_carousel_title":"Customers are saying","featured_carousel_count_text":"from {{ n }} reviews","featured_carousel_add_link_to_all_reviews_page":false,"featured_carousel_url":"","featured_carousel_show_images":true,"featured_carousel_autoslide_interval":5,"featured_carousel_arrows_on_the_sides":false,"featured_carousel_height":250,"featured_carousel_width":80,"featured_carousel_image_size":0,"featured_carousel_image_height":250,"featured_carousel_arrow_color":"#eeeeee","verified_count_badge_style":"branded","verified_count_badge_orientation":"horizontal","verified_count_badge_color_style":"judgeme_brand_color","verified_count_badge_color":"#108474","is_verified_count_badge_a_link":false,"verified_count_badge_url":"","verified_count_badge_show_jm_brand":true,"widget_rating_preset_default":5,"widget_first_sub_tab":"product-reviews","widget_show_histogram":true,"widget_histogram_use_custom_color":false,"widget_pagination_use_custom_color":false,"widget_star_use_custom_color":false,"widget_verified_badge_use_custom_color":false,"widget_write_review_use_custom_color":false,"picture_reminder_submit_button":"Upload Pictures","enable_review_videos":true,"mute_video_by_default":false,"widget_sorting_videos_first_text":"Videos First","widget_review_pending_text":"Pending","featured_carousel_items_for_large_screen":3,"social_share_options_order":"Facebook,Twitter","remove_microdata_snippet":true,"disable_json_ld":false,"enable_json_ld_products":false,"preview_badge_show_question_text":false,"preview_badge_no_question_text":"No questions","preview_badge_n_question_text":"{{ number_of_questions }} question/questions","qa_badge_show_icon":false,"qa_badge_position":"same-row","remove_judgeme_branding":false,"widget_add_search_bar":false,"widget_search_bar_placeholder":"Search","widget_sorting_verified_only_text":"Verified only","widget_sorting_most_relevant_text":"Most Relevant","featured_carousel_theme":"default","featured_carousel_show_rating":true,"featured_carousel_show_title":true,"featured_carousel_show_body":true,"featured_carousel_show_date":false,"featured_carousel_show_reviewer":true,"featured_carousel_show_product":false,"featured_carousel_header_background_color":"#108474","featured_carousel_header_text_color":"#ffffff","featured_carousel_name_product_separator":"reviewed","featured_carousel_full_star_background":"#108474","featured_carousel_empty_star_background":"#dadada","featured_carousel_vertical_theme_background":"#f9fafb","featured_carousel_verified_badge_enable":true,"featured_carousel_verified_badge_color":"#108474","featured_carousel_border_style":"round","featured_carousel_review_line_length_limit":3,"featured_carousel_more_reviews_button_text":"Read more reviews","featured_carousel_view_product_button_text":"View product","all_reviews_page_load_reviews_on":"scroll","all_reviews_page_load_more_text":"Load More Reviews","disable_fb_tab_reviews":false,"enable_ajax_cdn_cache":false,"widget_advanced_speed_features":5,"widget_public_name_text":"displayed publicly like","default_reviewer_name":"John Smith","default_reviewer_name_has_non_latin":true,"widget_reviewer_anonymous":"Anonymous","medals_widget_title":"Judge.me Review Medals","medals_widget_background_color":"#f9fafb","medals_widget_position":"footer_all_pages","medals_widget_border_color":"#f9fafb","medals_widget_verified_text_position":"left","medals_widget_use_monochromatic_version":false,"medals_widget_elements_color":"#108474","show_reviewer_avatar":true,"widget_invalid_yt_video_url_error_text":"Not a YouTube video URL","widget_max_length_field_error_text":"Please enter no more than {0} characters.","widget_show_country_flag":false,"widget_show_collected_via_shop_app":true,"widget_verified_by_shop_badge_style":"light","widget_verified_by_shop_text":"Verified by Shop","widget_show_photo_gallery":true,"widget_load_with_code_splitting":true,"widget_ugc_install_preference":false,"widget_ugc_title":"Made by us, Shared by you","widget_ugc_subt
774itle":"Tag us to see your picture featured in our page","widget_ugc_arrows_color":"#ffffff","widget_ugc_primary_button_text":"Buy Now","widget_ugc_primary_button_background_color":"#108474","widget_ugc_primary_button_text_color":"#ffffff","widget_ugc_primary_button_border_width":"0","widget_ugc_primary_button_border_style":"none","widget_ugc_primary_button_border_color":"#108474","widget_ugc_primary_button_border_radius":"25","widget_ugc_secondary_button_text":"Load More","widget_ugc_secondary_button_background_color":"#ffffff","widget_ugc_secondary_button_text_color":"#108474","widget_ugc_secondary_button_border_width":"2","widget_ugc_secondary_button_border_style":"solid","widget_ugc_secondary_button_border_color":"#108474","widget_ugc_secondary_button_border_radius":"25","widget_ugc_reviews_button_text":"View Reviews","widget_ugc_reviews_button_background_color":"#ffffff","widget_ugc_reviews_button_text_color":"#108474","widget_ugc_reviews_button_border_width":"2","widget_ugc_reviews_button_border_style":"solid","widget_ugc_reviews_button_border_color":"#108474","widget_ugc_reviews_button_border_radius":"25","widget_ugc_reviews_button_link_to":"judgeme-reviews-page","widget_ugc_show_post_date":true,"widget_ugc_max_width":"800","widget_rating_metafield_value_type":true,"widget_primary_color":"#AA4B22","widget_enable_secondary_color":false,"widget_secondary_color":"#edf5f5","widget_summary_average_rating_text":"{{ average_rating }} out of 5","widget_media_grid_title":"Customer photos \u0026 videos","widget_media_grid_see_more_text":"See more","widget_round_style":false,"widget_show_product_medals":true,"widget_verified_by_judgeme_text":"Verified by Judge.me","widget_show_store_medals":true,"widget_verified_by_judgeme_text_in_store_medals":"Verified by Judge.me","widget_media_field_exceed_quantity_message":"Sorry, we can only accept {{ max_media }} for one review.","widget_media_field_exceed_limit_message":"{{ file_name }} is too large, please select a {{ media_type }} less than {{ size_limit }}MB.","widget_review_submitted_text":"Review Submitted!","widget_question_submitted_text":"Question Submitted!","widget_close_form_text_question":"Cancel","widget_write_your_answer_here_text":"Write your answer here","widget_enabled_branded_link":true,"widget_show_collected_by_judgeme":false,"widget_reviewer_name_color":"","widget_write_review_text_color":"","widget_write_review_bg_color":"","widget_collected_by_judgeme_text":"collected by Judge.me","widget_pagination_type":"standard","widget_load_more_text":"Load More","widget_load_more_color":"#108474","widget_full_review_text":"Full Review","widget_read_more_reviews_text":"Read More Reviews","widget_read_questions_text":"Read Questions","widget_questions_and_answers_text":"Questions \u0026 Answers","widget_verified_by_text":"Verified by","widget_verified_text":"Verified","widget_number_of_reviews_text":"{{ number_of_reviews }} reviews","widget_back_button_text":"Back","widget_next_button_text":"Next","widget_custom_forms_filter_button":"Filters","custom_forms_style":"horizontal","widget_show_review_information":false,"how_reviews_are_collected":"How reviews are collected?","widget_show_review_keywords":false,"widget_gdpr_statement":"How we use your data: We'll only contact you about the review you left, and only if necessary. By submitting your review, you agree to Judge.me's \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms\u003c/a\u003e, \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy\u003c/a\u003e and \u003ca href='https://judge.me/content-policy' target='_blank' rel='nofollow noopener'\u003econtent\u003c/a\u003e policies.","widget_multilingual_sorting_enabled":false,"widget_translate_review_content_enabled":false,"widget_translate_review_content_method":"manual","popup_widget_review_selection":"automatically_with_pictures","popup_widget_round_border_style":true,"popup_widget_show_title":true,"popup_widget_show_body":true,"popup_widget_show_reviewer":false,"popup_widget_show_product":true,"popup_widget_show_pictures":true,"popup_widget_use_review_picture":true,"popup_widget_show_on_home_page":true,"popup_widget_show_on_product_page":true,"popup_widget_show_on_collection_page":true,"popup_widget_show_on_cart_page":true,"popup_widget_position":"bottom_left","popup_widget_first_review_delay":5,"popup_widget_duration":5,"popup_widget_interval":5,"popup_widget_review_count":5,"popup_widget_hide_on_mobile":true,"review_snippet_widget_round_border_style":true,"review_snippet_widget_card_color":"#FFFFFF","review_snippet_widget_text_color":"#000000","review_snippet_widget_lighter_text_color":"#7B7B7B","review_snippet_widget_slider_arrows_background_color":"#FFFFFF","review_snippet_widget_slider_arrows_color":"#000000","review_snippet_widget_star_color":"#AA4B22","show_product_variant":false,"all_reviews_product_variant_label_text":"Variant: ","widget_show_verified_branding":true,"widget_ai_summary_title":"Customers say","widget_ai_summary_disclaimer":"AI-powered review summary based on recent customer reviews","widget_show_ai_summary":false,"widget_show_ai_summary_bg":false,"write_review_button_visibility":"everyone","store_summary_widget_heading":"Customers rate this store","store_summary_widget_button_text":"View customer reviews","store_summary_widget_button_theme_text":"See AI reviews summary","widget_show_review_title_input":false,"widget_autofill_review_title":true,"redirect_reviewers_invited_via_email":"external_form","request_store_review_after_product_review":true,"request_review_other_products_in_order":true,"review_form_color_scheme":"custom","review_form_corner_style":"square","review_form_star_color":"#9EE5CA","review_form_text_color":"#333333","review_form_background_color":"#ffffff","review_form_field_background_color":"#fafafa","review_form_button_color":"#AA4B22","review_form_button_text_color":"#ffffff","review_form_modal_overlay_color":"#000000","review_form_theme":"multi_step","review_form_location":"in_store_popup","review_form_external_page_background_color":"#C5F7F0","review_content_screen_title_text":"How would you rate this product?","review_content_introduction_text":"We would love it if you would share a bit about your experience.","store_review_form_title_text":"How would you rate this store?","store_review_form_introduction_text":"We would love it if you would share a bit about your experience.","show_review_guidance_text":true,"one_star_review_guidance_text":"Poor","five_star_review_guidance_text":"Great","customer_information_screen_title_text":"About you","customer_information_introduction_text":"Please tell us more about you.","custom_questions_screen_title_text":"Your experience in more detail","custom_questions_introduction_text":"Here are a few questions to help us understand more about your experience.","review_submitted_screen_title_text":"Thanks for your review!","review_submitted_screen_thank_you_text":"We are processing it and it will appear on the store soon.","review_submitted_screen_email_verification_text":"Please confirm your email by clicking the link we just sent you. This helps us keep reviews authentic.","confirm_email_screen_title_text":"Confirm your email","confirm_email_screen_message_text":"To help keep reviews authentic, we'll send you a secure link to continue writing your review. It only takes a moment.","check_email_screen_title_text":"Check your email","check_email_screen_message_text":"We sent you an email to {{ email }}. Click the button on the email to continue.","check_email_screen_resend_message_text":"Email resent!","check_email_resend_hint_text":"Didn't get the email? Check your spam folder or [resend the email].","verification_email_rate_limit_error_text":"You've reached the limit for review attempts on this product. Please check your inbox or try again later.","review_submitted_request_store_review_text":"Would you like to share your experience of shopping with us?","review_submitted_review_other_products_text":"Would you like to review these products?","store_review_screen_title_text":"Would you like to share your experience of shopping with us?","store_review_introduction_text":"We value your feedback and use it to improve. Please share any thoughts or suggestions you have.","reviewer_media_screen_title_picture_text":"Share a picture","reviewer_media_introduction_picture_text":"Upload a photo to support your review.","reviewer_media_screen_title_video_text":"Share a video","reviewer_media_introduction_video_text":"Upload a video to support your review.","reviewer_media_screen_title_picture_or_video_text":"Share a picture or video","reviewer_media_introduction_picture_or_video_text":"Upload a photo or video to support your review.","reviewer_media_
774youtube_url_text":"Paste your Youtube URL here","advanced_settings_next_step_button_text":"Next","advanced_settings_close_review_button_text":"Close","modal_write_review_flow":true,"write_review_flow_required_text":"Required","write_review_flow_privacy_message_text":"We respect your privacy.","write_review_flow_anonymous_text":"Post review as anonymous","write_review_flow_visibility_text":"This won't be visible to other customers.","write_review_flow_multiple_selection_help_text":"Select as many as you like","write_review_flow_single_selection_help_text":"Select one option","write_review_flow_required_field_error_text":"This field is required","write_review_flow_invalid_email_error_text":"Please enter a valid email address","write_review_flow_max_length_error_text":"Max. {{ max_length }} characters.","write_review_flow_media_upload_text":"\u003cb\u003eClick to upload\u003c/b\u003e or drag and drop","write_review_flow_gdpr_statement":"We'll only contact you about your review if necessary. By submitting your review, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","rating_only_reviews_enabled":false,"show_negative_reviews_help_screen":false,"new_review_flow_help_screen_rating_threshold":3,"negative_review_resolution_screen_title_text":"Tell us more","negative_review_resolution_text":"Your experience matters to us. If there were issues with your purchase, we're here to help. Feel free to reach out to us, we'd love the opportunity to make things right.","negative_review_resolution_button_text":"Contact us","negative_review_resolution_proceed_with_review_text":"Leave a review","negative_review_resolution_subject":"Issue with purchase from {{ shop_name }}.{{ order_name }}","coupon_promo_intro_any_review_text":"Write a review and get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_photo_text":"Write a review and add a photo or video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_video_text":"Write a review and add a video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_up_to_any_review_text":"Write a review and get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_up_to_with_photo_text":"Write a review and add a photo or video to get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_external_text":"Write a review and get a reward for your next purchase","coupon_promo_intro_external_with_photo_text":"Write a review and add a photo or video to get a reward for your next purchase","coupon_promo_intro_external_with_video_text":"Write a review and add a video to get a reward for your next purchase","coupon_promo_media_photo_text":"Add a photo or video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_photo_only_text":"Add a photo and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_video_text":"Add a video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_external_photo_text":"Add a photo or video and get a reward for your next purchase","coupon_promo_media_external_photo_only_text":"Add a photo and get a reward for your next purchase","coupon_promo_media_external_video_text":"Add a video and get a reward for your next purchase","coupon_promo_success_text":"You've got a coupon for your next purchase at {{ shop_name }}!","coupon_promo_success_subtext":"You'll receive your coupon email within the hour.","preview_badge_collection_page_install_status":false,"widget_review_custom_css":"","preview_badge_custom_css":"","preview_badge_stars_count":"5-stars","featured_carousel_custom_css":"","floating_tab_custom_css":"","all_reviews_widget_custom_css":"","medals_widget_custom_css":"","verified_badge_custom_css":"","all_reviews_text_custom_css":"","transparency_badges_collected_via_store_invite":false,"transparency_badges_from_another_provider":false,"transparency_badges_collected_from_store_visitor":false,"transparency_badges_collected_by_verified_review_provider":true,"transparency_badges_earned_reward":false,"transparency_badges_collected_via_store_invite_text":"Review collected via store invitation","transparency_badges_from_another_provider_text":"Review collected from another provider","transparency_badges_collected_from_store_visitor_text":"Review collected from a store visitor","transparency_badges_written_in_google_text":"Review written in Google","transparency_badges_written_in_etsy_text":"Review written in Etsy","transparency_badges_written_in_shop_app_text":"Review written in Shop App","transparency_badges_earned_reward_text":"Review earned a reward for future purchase","product_review_widget_per_page":10,"widget_other_languages_reviews_per_page":3,"widget_store_review_label_text":"Review about the store","widget_cart_mode_aggregate_heading_text":"Customers rate this store","checkout_comment_extension_title_on_product_page":"Customer Comments","checkout_comment_extension_num_latest_comment_show":5,"checkout_comment_extension_format":"name_and_timestamp","checkout_comment_customer_name":"last_initial","checkout_comment_comment_notification":true,"preview_badge_collection_page_install_preference":false,"preview_badge_home_page_install_preference":false,"preview_badge_product_page_install_preference":false,"review_widget_install_preference":"","review_carousel_install_preference":false,"floating_reviews_tab_install_preference":"none","verified_reviews_count_badge_install_preference":false,"all_reviews_text_install_preference":false,"review_widget_best_location":false,"judgeme_medals_install_preference":false,"review_widget_revamp_enabled":true,"review_widget_qna_enabled":false,"review_widget_revamp_dual_publish_end_date":"2026-07-02T10:22:53.000+00:00","review_widget_header_theme":"minimal","review_widget_widget_title_enabled":true,"review_widget_header_text_size":"medium","review_widget_header_text_weight":"regular","review_widget_average_rating_style":"compact","review_widget_bar_chart_enabled":true,"review_widget_bar_chart_type":"numbers","review_widget_bar_chart_style":"standard","review_widget_expanded_media_gallery_enabled":false,"review_widget_show_review_highlights":false,"review_widget_show_review_keywords_in_gray":false,"review_widget_reviews_section_theme":"standard","review_widget_image_style":"thumbnails","review_widget_review_image_ratio":"square","review_widget_stars_size":"medium","review_widget_verified_badge":"standard_text","review_widget_review_title_text_size":"medium","review_widget_review_text_size":"medium","review_widget_review_text_length":"medium","review_widget_number_of_columns_desktop":3,"review_widget_carousel_transition_speed":5,"review_widget_custom_questions_answers_display":"always","review_widget_card_section_size":"small","review_widget_star_and_histogram_color":"#9EE5CA","review_widget_button_color":"#9EE5CA","review_widget_button_text_color":"#FFFFFF","review_widget_text_color":"#000000","review_widget_lighter_text_color":"#7B7B7B","review_widget_corner_styling":"soft","review_widget_review_word_singular":"review","review_widget_review_word_plural"
774:"reviews","review_widget_voting_label":"Helpful?","review_widget_shop_reply_label":"Reply from {{ shop_name }}:","review_widget_filters_title":"Filters","review_widget_filter_rating_title":"Rating","review_widget_filter_keyword_title":"Keyword","review_widget_clear_filters_text":"Clear filters","review_widget_expand_more_text":"More","review_widget_review_highlights_title":"Review highlights","qna_widget_question_word_singular":"Question","qna_widget_question_word_plural":"Questions","qna_widget_answer_reply_label":"Answer from {{ answerer_name }}:","qna_content_screen_title_text":"Ask a question about this product","qna_widget_question_required_field_error_text":"Please enter your question.","qna_widget_flow_gdpr_statement":"We'll only contact you about your question if necessary. By submitting your question, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","qna_widget_question_submitted_text":"Thanks for your question!","qna_widget_close_form_text_question":"Close","qna_widget_question_submit_success_text":"We’ll notify you by email when your question is answered.","all_reviews_widget_v2025_enabled":false,"all_reviews_widget_v2025_header_theme":"default","all_reviews_widget_v2025_widget_title_enabled":true,"all_reviews_widget_v2025_header_text_size":"medium","all_reviews_widget_v2025_header_text_weight":"regular","all_reviews_widget_v2025_average_rating_style":"compact","all_reviews_widget_v2025_bar_chart_enabled":true,"all_reviews_widget_v2025_bar_chart_type":"numbers","all_reviews_widget_v2025_bar_chart_style":"standard","all_reviews_widget_v2025_expanded_media_gallery_enabled":false,"all_reviews_widget_v2025_show_store_medals":true,"all_reviews_widget_v2025_show_photo_gallery":true,"all_reviews_widget_v2025_show_review_keywords":false,"all_reviews_widget_v2025_show_ai_summary":false,"all_reviews_widget_v2025_show_ai_summary_bg":false,"all_reviews_widget_v2025_show_review_highlights":false,"all_reviews_widget_v2025_show_review_keywords_in_gray":false,"all_reviews_widget_v2025_add_search_bar":false,"all_reviews_widget_v2025_default_sort_method":"most-recent","all_reviews_widget_v2025_reviews_per_page":10,"all_reviews_widget_v2025_reviews_section_theme":"default","all_reviews_widget_v2025_image_style":"thumbnails","all_reviews_widget_v2025_review_image_ratio":"square","all_reviews_widget_v2025_stars_size":"medium","all_reviews_widget_v2025_verified_badge":"standard_text","all_reviews_widget_v2025_review_title_text_size":"medium","all_reviews_widget_v2025_review_text_size":"medium","all_reviews_widget_v2025_review_text_length":"medium","all_reviews_widget_v2025_number_of_columns_desktop":3,"all_reviews_widget_v2025_carousel_transition_speed":5,"all_reviews_widget_v2025_custom_questions_answers_display":"always","all_reviews_widget_v2025_review_dates":false,"all_reviews_widget_v2025_card_section_size":"small","all_reviews_widget_v2025_show_product_variant":false,"all_reviews_widget_v2025_show_reviewer_avatar":true,"all_reviews_widget_v2025_reviewer_name_as_initial":"","all_reviews_widget_v2025_review_location_show":false,"all_reviews_widget_v2025_location_format":"","all_reviews_widget_v2025_show_country_flag":false,"all_reviews_widget_v2025_widget_thumb":false,"all_reviews_widget_v2025_verified_by_shop_badge_style":"light","all_reviews_widget_v2025_social_share":false,"all_reviews_widget_v2025_social_share_options_order":"Facebook,Twitter,LinkedIn,Pinterest","all_reviews_widget_v2025_pagination_type":"standard","all_reviews_widget_v2025_button_text_color":"#FFFFFF","all_reviews_widget_v2025_text_color":"#000000","all_reviews_widget_v2025_lighter_text_color":"#7B7B7B","all_reviews_widget_v2025_corner_styling":"soft","all_reviews_widget_v2025_title":"Customer reviews","all_reviews_widget_v2025_ai_summary_title":"Customers say about this store","all_reviews_widget_v2025_no_review_text":"Be the first to write a review","all_reviews_widget_v2025_review_highlights_title":"Review highlights","reviews_grid_widget_show_sample_reviews":false,"reviews_grid_widget_review_selection":"all","reviews_grid_widget_select_products":[],"reviews_grid_widget_show_media_only":false,"reviews_grid_widget_display_order":"media_first","reviews_grid_widget_card_grouping":"per_media","reviews_grid_widget_columns_desktop":3,"reviews_grid_widget_rows_desktop":3,"reviews_grid_widget_columns_mobile":2,"reviews_grid_widget_rows_mobile":6,"reviews_grid_widget_show_stars":true,"reviews_grid_widget_show_reviewer_name":true,"reviews_grid_widget_show_review_title_on_hover_desktop":true,"reviews_grid_widget_corner_styling":"soft","reviews_grid_widget_card_spacing":"medium","reviews_grid_widget_header_text_color":"#000000","reviews_grid_widget_star_and_reviewer_name_color":"#F9F9F9","reviews_grid_widget_overlay_and_background_color":"#000000","reviews_grid_widget_content_color":"#F9F9F9","reviews_grid_widget_header_text":"From our customers","reviews_grid_widget_show_average_rating":true,"trust_badge_enabled":false,"trust_badge_structure":"outline","trust_badge_color":"black","trust_badge_star":"black","trust_badge_rating_display_default":"show_avg_text","platform":"shopify","branding_url":"https://app.judge.me/reviews","branding_text":"Powered by Judge.me","locale":"en","reply_name":"Epic Cycles","shop_currency":"USD","widget_version":"3.0","footer":true,"autopublish":false,"review_dates":true,"enable_custom_form":false,"shop_locale":"en","enable_multi_locales_translations":false,"show_review_title_input":false,"autofill_review_title":true,"review_verification_email_status":"always","require_verification_before_submit":false,"sign_in_with_
774shop_enabled":false,"customer_account_validation_enabled":true,"most_relevant_sort_enabled":false,"coupon_promo_invited_eligible":true,"coupon_promo_web_eligible":false,"uses_coupon_integration":false,"uses_external_coupon":false,"can_be_branded":true,"rtl_stars_enabled_ar":true,"rtl_stars_enabled_he":true,"reply_name_text":"Epic Cycles"};</script>
774 <style class='jdgm-settings-style'>.jdgm-xx{left:0}:root{--jdgm-primary-color: #AA4B22;--jdgm-secondary-color: rgba(170,75,34,0.1);--jdgm-star-color: #9EE5CA;--jdgm-write-review-text-color: white;--jdgm-write-review-bg-color: #AA4B22;--jdgm-paginate-color: #AA4B22;--jdgm-border-radius: 0;--jdgm-reviewer-name-color: #AA4B22}.jdgm-histogram__bar-content{background-color:#AA4B22}.jdgm-rev[data-verified-buyer=true] .jdgm-rev__icon.jdgm-rev__icon:after,.jdgm-rev__buyer-badge.jdgm-rev__buyer-badge{color:white;background-color:#AA4B22}.jdgm-review-widget--small .jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}@media only screen and (min-width: 768px){.jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}}.jdgm-preview-badge .jdgm-star.jdgm-star{color:#9EE5CA}.jdgm-prev-badge[data-average-rating='0.00']{display:none !important}.jdgm-author-all-initials{display:none !important}.jdgm-author-last-initial{display:none !important}.jdgm-rev-widg__title{visibility:hidden}.jdgm-rev-widg__summary-text{visibility:hidden}.jdgm-prev-badge__text{visibility:hidden}.jdgm-rev__prod-link-prefix:before{content:'about'}.jdgm-rev__variant-label:before{content:'Variant: '}.jdgm-rev__out-of-store-text:before{content:'(out of store)'}@media only screen and (min-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}@media only screen and (max-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}.jdgm-preview-badge[data-template="product"]{display:none !important}.jdgm-preview-badge[data-template="collection"]{display:none !important}.jdgm-preview-badge[data-template="index"]{display:none !important}.jdgm-review-widget[data-from-snippet="true"]{display:none !important}.jdgm-verified-count-badget[data-from-snippet="true"]{display:none !important}.jdgm-carousel-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-all-reviews-text[data-from-snippet="true"]{display:none !important}.jdgm-medals-section[data-from-snippet="true"]{display:none !important}.jdgm-ugc-media-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_via_store_invitation"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_another_provider"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_store_visitor"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_earned_for_future_purchase"]{display:none !important}.jdgm-review-snippet-widget{--jdgm-snippet-card-color: #fff;--jdgm-snippet-text-color: #000;--jdgm-snippet-lighter-text-color: #7B7B7B;--jdgm-snippet-star-color: #AA4B22;--jdgm-snippet-border-radius: 8px;--jdgm-snippet-arrows-bg-color: #fff;--jdgm-snippet-arrows-color: #000}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card{border-radius:8px;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card__rev-rating .jdgm-star{color:#AA4B22}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn{border-radius:50%;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn>svg,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn>svg{fill:#000}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jm-mfp-content,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__icon,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__pic-img,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__reply{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev[data-verified-buyer="true"] .jdgm-full-rev__icon::after{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-rev__buyer-badge{border-radius:calc( 8px / 2 )}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__replier::before{content:'Epic Cycles'}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__product-button{border-radius:calc( 8px * 6 )}
775</style> <style class='jdgm-settings-style'></style>
776
777  
778  
779  
780  <style class='jdgm-miracle-styles'>
781  @-webkit-keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@font-face{font-family:'JudgemeStar';src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAScAA0AAAAABrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEgAAAABoAAAAcbyQ+3kdERUYAAARgAAAAHgAAACAAMwAGT1MvMgAAAZgAAABGAAAAVi+vS9xjbWFwAAAB8AAAAEAAAAFKwBMjvmdhc3AAAARYAAAACAAAAAj//wADZ2x5ZgAAAkAAAAEJAAABdH33LXtoZWFkAAABMAAAAC0AAAA2BroQKWhoZWEAAAFgAAAAHAAAACQD5QHQaG10eAAAAeAAAAAPAAAAFAYAAABsb2NhAAACMAAAAA4AAAAOAO4AeG1heHAAAAF8AAAAHAAAACAASgAvbmFtZQAAA0wAAADeAAABkorWfVZwb3N0AAAELAAAACkAAABEp3ubLXgBY2BkYADhPPP4OfH8Nl8ZuJkYQODS2fRrCPr/aSYGxq1ALgcDWBoAO60LkwAAAHgBY2BkYGDc+v80gx4TAwgASaAICmABAFB+Arl4AWNgZGBgYGPQYWBiAAIwyQgWc2AAAwAHVQB6eAFjYGRiYJzAwMrAwejDmMbAwOAOpb8ySDK0MDAwMbByMsCBAAMCBKS5pjA4PGB4wMR44P8BBj3GrQymQGFGkBwAjtgK
781/gAAeAFjYoAAEA1jAwAAZAAHAHgB3crBCcAwDEPRZydkih567CDdf4ZskmLwFBV8xBfCaC4BXkOUmx4sU0h2ngNb9V0vQCxaRKIAevT7fGWuBrEAAAAAAAAAAAA0AHgAugAAeAF9z79Kw1AUx/FzTm7un6QmJtwmQ5Bg1abgEGr/BAqlU6Gju+Cgg1MkQ/sA7Vj7BOnmO/gUvo2Lo14NqIO6/IazfD8HEODtmQCfoANwNsyp2/GJt3WKQrd1NLiYYWx2PBqOsmJMEOznPOTzfSCrhAtbbLdmeFLJV9eKd63WLrZcIcuaEVdssWCKM6pLCfTVOYbz/0pNSMSZKLIZpvh78sAUH6PlMrreTCabP9r+Z/puPZ2ur/RqpQHgh+MIegCnXeM4MRAPjYN//5tj4ZtTjkFqEdmeMShlEJ7tVAly2TAkx6R68Fl4E/aVvn8JqHFQ4JS1434gXKcuL31dDhzs3YbsEOAd/IU88gAAAHgBfY4xTgMxEEVfkk0AgRCioKFxQYd2ZRtpixxgRU2RfhU5q5VWseQ4JdfgAJyBlmNwAM7ABRhZQ0ORwp7nr+eZAa54YwYg9zm3ynPOeFRe8MCrciXOh/KSS76UV5L/iDmrLiS5AeU519wrL3jmSbkS5115yR2fyivJv9kx0ZMZ2RLZw27q87iNQi8EBo5FSPIMw3HqBboi5lKTGAGDp8FKXWP+t9TU01Lj5His1Ba6uM9dTEMwvrFmbf5GC/q2drW3ruXUhhsCiQOjznFlCzYhHUZp4xp76vsvQh89CQAAeAFjYGJABowM6IANLMrEyMTIzMjCXpyRWJBqZshWXJJYBKOMAFHFBucAAAAAAAAB//8AAngBY2BkYGDgA2IJBhBgAvKZGViBJAuYxwAABJsAOgAAeAFjYGBgZACCk535hiD60tn0azAaAEqpB6wAAA==") format("woff");font-weight:normal;font-style:normal}.jdgm-star{font-family:'JudgemeStar';display:inline !important;text-decoration:none !important;padding:0 4px 0 0 !important;margin:0 !important;font-weight:bold;opacity:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jdgm-star:hover{opacity:1}.jdgm-star:last-of-type{padding:0 !important}.jdgm-star.jdgm--on:before{content:"\e000"}.jdgm-star.jdgm--off:before{content:"\e001"}.jdgm-star.jdgm--half:before{content:"\e002"}.jdgm-widget *{margin:0;line-height:1.4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch}.jdgm-hidden{display:none !important;visibility:hidden !important}.jdgm-temp-hidden{display:none}.jdgm-spinner{width:40px;height:40px;margin:auto;border-radius:50%;border-top:2px solid #eee;border-right:2px solid #eee;border-bottom:2px solid #eee;border-left:2px solid #ccc;-webkit-animation:jdgm-spin 0.8s infinite linear;animation:jdgm-spin 0.8s infinite linear}.jdgm-spinner:empty{display:block}.jdgm-prev-badge{display:block !important}
782
783</style>
784
785
786  
787  
788   
789
790
791
792
793<script data-cfasync='false' class='jdgm-script'>
794!function(e){window.jdgm=window.jdgm||{};
795/* INF-1976 */
796var _jdgmBlocked=function(){var raw=(window.jdgmSettings||{}).hostname_allowlist;var list=(raw==null?"":""+raw).split(/[\s,]+/).map(function(h){return h.trim().toLowerCase().replace(/\.$/,"");}).filter(function(h){return h;});if(!list.length)return false;var host=(e.location.hostname||"").toLowerCase().replace(/\.$/,"");if(/(^|\.)shopifypreview\.com$/.test(host))return false;var bare=host.replace(/^www\./,"");for(var i=0;i<list.length;i++){var en=list[i];if(en.indexOf("*.")===0){var b=en.slice(2);if(host===b||host.slice(-(b.length+1))==="."+b)return false;}else if(bare===en.replace(/^www\./,""))return false;}return true;}();
797if(_jdgmBlocked){jdgm._loaderExecuted=true;jdgm._blocked=true;var _jdgmS=e.createElement("style");_jdgmS.textContent='[class^="jdgm-"],[class*=" jdgm-"]{display:none !important}';(e.head||e.documentElement).appendChild(_jdgmS);return;}
798jdgm.CDN_HOST="https://cdnwidget.judge.me/",jdgm.CDN_HOST_ALT="https://cdn2.judge.me/cdn/widget_frontend/",jdgm.API_HOST="https://api.judge.me/",jdgm.CDN_BASE_URL="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/",jdgm.CDN_API_HOST="https://cdn.judge.me/",
799jdgm.docReady=function(d){(e.attachEvent?"complete"===e.readyState:"loading"!==e.readyState)?
800setTimeout(d,0):e.addEventListener("DOMContentLoaded",d)},jdgm.loadCSS=function(d,t,o,a){
801!o&&jdgm.loadCSS.requestedUrls.indexOf(d)>=0||(jdgm.loadCSS.requestedUrls.push(d),
802(a=e.createElement("link")).rel="stylesheet",a.class="jdgm-stylesheet",a.media="nope!",
803a.href=d,a.onload=function(){this.media="all",t&&setTimeout(t)},e.body.appendChild(a))},
804jdgm.loadCSS.requestedUrls=[],jdgm.loadJS=function(e,d){var t=new XMLHttpRequest;
805t.onreadystatechange=function(){4===t.readyState&&t.status>=200&&t.status<300&&(Function(t.response)(),d&&d(t.response))},
806t.open("GET",e),t.onerror=function(){if(e.indexOf(jdgm.CDN_HOST)===0&&jdgm.CDN_HOST_ALT!==jdgm.CDN_HOST){var f=e.replace(jdgm.CDN_HOST,jdgm.CDN_HOST_ALT);jdgm.loadJS(f,d)}},t.send()},jdgm.docReady((function(){(window.jdgmLoadCSS||e.querySelectorAll(
807".jdgm-widget, .jdgm-all-reviews-page").length>0)&&(jdgmSettings.widget_load_with_code_splitting?
808parseFloat(jdgmSettings.widget_version)>=3?jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_v3_base.css"):
809jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_base.css"):jdgm.loadCSS(jdgm.CDN_BASE_URL+"shopify_v2.css")
810)}))}(document);
811</script>
811
812<noscript><link rel="stylesheet" type="text/css" media="all" href="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/shopify_v2.css"></noscript>
813
814<!-- BEGIN app snippet: theme_fix_tags -->
814<script>
815  (function() {
816    var jdgmThemeFixes = null;
817    if (!jdgmThemeFixes) return;
818
819    // "All themes" fix: CSS and JS applied on every theme. CSS is injected
820    // before the per-theme fix so the theme-specific CSS wins the cascade.
821    // HTML is never applied globally (too risky).
822    var allThemesFix = jdgmThemeFixes['all'];
823    if (allThemesFix && allThemesFix.css) {
824      var allStyleTag = document.createElement('style');
825      allStyleTag.classList.add('jdgm-theme-fix-style-all');
826      allStyleTag.innerHTML = allThemesFix.css;
827      document.head.append(allStyleTag);
828    };
829
830    if (allThemesFix && allThemesFix.js) {
831      var allScriptTag = document.createElement('script');
832      allScriptTag.classList.add('jdgm-theme-fix-script-all');
833      allScriptTag.innerHTML = allThemesFix.js;
834      document.head.append(allScriptTag);
835    };
836
837    var thisThemeFix = jdgmThemeFixes[Shopify.theme.id];
838    if (!thisThemeFix) return;
839
840    if (thisThemeFix.html) {
841      document.addEventListener("DOMContentLoaded", function() {
842        var htmlDiv = document.createElement('div');
843        htmlDiv.classList.add('jdgm-theme-fix-html');
844        htmlDiv.innerHTML = thisThemeFix.html;
845        document.body.append(htmlDiv);
846      });
847    };
848
849    if (thisThemeFix.css) {
850      var styleTag = document.createElement('style');
851      styleTag.classList.add('jdgm-theme-fix-style');
852      styleTag.innerHTML = thisThemeFix.css;
853      document.head.append(styleTag);
854    };
855
856    if (thisThemeFix.js) {
857      var scriptTag = document.createElement('script');
858      scriptTag.classList.add('jdgm-theme-fix-script');
859      scriptTag.innerHTML = thisThemeFix.js;
860      document.head.append(scriptTag);
861    };
862  })();
863</script>
863
864<!-- END app snippet -->
865<!-- End of Judge.me Core -->
866
867
868
869<!-- END app block -->
869<script src="https://cdn.shopify.com/extensions/01a1089c-8f46-7356-a6fb-4fc10fbc27d3/gdpr-backpack-904/assets/consentmo_cookie_consent.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 869
869
870<script src="https://cdn.shopify.com/extensions/01a08d12-a50f-75bf-b4af-76fa0f2e317e/page-speed-optimizer-6/assets/shopify-speed.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 870
870
871<script src="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/loader.js" type="text/javascript" defer="defer"></script>
871
872<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
873<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: 55566532655,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 873
873
874<script>
875  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
876</script>
vendor: 1 bytes, line 876
876
877<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}
877).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: 55566532655,storefrontBaseUrl: "https://epic-cycles.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://epic-cycles.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2540863535","configuration":"{\"shopId\":\"55566532655\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"83adcaf06c5deacff41ffdf8f92d9129","type":"APP","apiClientId":246667608065,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_phone","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2478735407","configuration":"{\"webPixelName\":\"Judge.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8acc938b1a30dc7624e304493ca567d7","type":"APP","apiClientId":683015,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
877,"dataSharingState":"unrestricted"},{"id":"2117894191","configuration":"{\"accountID\":\"BLOCKIFY_TRACKING-123\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"b35abd85befe01ff41cd41df4ff83ae0","type":"APP","apiClientId":2309454,"privacyPurposes":["ANALYTICS","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1952645167","configuration":"{\"projectId\":\"v5hdzaac18\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d8a2bb2ccbb513dc8e8b6937f4b8033e","type":"APP","apiClientId":240074326017,"privacyPurposes":[],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1948614703","configuration":"{\"shop\":\"epic-cycles2018.myshopify.com\",\"url\":\"https:\\\/\\\/sortwise.mezereon.net\\\/t\",\"customEvents\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"858af8c77a364ea5bdaaa6d4998682cb","type":"APP","apiClientId":216838471681,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1610743855","configuration":"{\"shopID\": \"74611\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d22b5691c62682d22357c5bcbea63a2b","type":"APP","apiClientId":3780451,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1610711087","configuration":"{\"accountID\":\"38229\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"676191265fe7076edccb22bdd9c852fd","type":"APP","apiClientId":2503405,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"422641711","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"AW-10777960705\\\",\\\"GT-PZMTGVDN\\\",\\\"G-PZJF1BQMZJ\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"AW-10777960705\\\/Yr-hCN_M5scDEIHCqpMo\\\",\\\"G-PZJF1BQMZJ\\\"]},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"AW-10777960705\\\/7D3oCNzM5scDEIHCqpMo\\\",\\\"AW-10777960705\\\/qXeKCMXLgb8ZEIHCqpMo\\\",\\\"G-PZJF1BQMZJ\\\"]},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"AW-10777960705\\\/PtRCCNbM5scDEIHCqpMo\\\",\\\"MC-5MZ3F91XN2\\\",\\\"G-PZJF1BQMZJ\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"AW-10777960705\\\/W6KcCNPM5scDEIHCqpMo\\\",\\\"MC-5MZ3F91XN2\\\",\\\"G-PZJF1BQMZJ\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"AW-10777960705\\\/_MwICNDM5scDEIHCqpMo\\\",\\\"MC-5MZ3F91XN2\\\",\\\"G-PZJF1BQMZJ\\\"]},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"AW-10777960705\\\/nwSnCOLM5scDEIHCqpMo\\\",\\\"G-PZJF1BQMZJ\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"AW-10777960705\\\/vmtHCNnM5scDEIHCqpMo\\\",\\\"G-PZJF1BQMZJ\\\"]}],\\\"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"]}
877,{"id":"175276079","configuration":"{\"pixel_id\":\"1075311583378303\",\"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":"2129967","configuration":"{\"global__consentEnabled\": \"false\", \"global__serverSideUrl\": \"APP_PROXY\", \"audiohook__live\": \"false\", \"audiohook__pixelId\": \"__EMPTY__\", \"audiohook__enabledWebEvents__pageView\": \"false\", \"audiohook__enabledWebEvents__purchase\": \"false\", \"audiohook__consent__enabled\": \"false\", \"audiohook__consent__ad_storage\": \"false\", \"audiohook__consent__analytics_storage\": \"false\", \"audiohook__consent__functionality_storage\": \"false\", \"audiohook__consent__personalization_storage\": \"false\", \"audiohook__consent__security_storage\": \"false\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0.3.0-848288a207b3814c857e6bdd215ce429","type":"APP","apiClientId":2509311,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"26574895","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"5","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Enhanced Ecommerce DataLayer"},{"id":"27361327","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"7","type":"CUSTOM","privacyPurposes":["SALE_OF_DATA"],"name":"Google Customer Reviews"},{"id":"42303535","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"10","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Shopify \u003c\u003e MCP"},{"id":"141000751","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"19","type":"CUSTOM","privacyPurposes":["SALE_OF_DATA"],"name":"Salesforce_Personalization"},{"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":"Epic Cycles","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"epic-cycles2018.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/epic-cycles.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://epic-cycles.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"149535981615","themePublished":"true","eventMetadataId":"43c8643c-0a8a-4c3f-a747-6fc7f2a440ed","pageType":"page","resourceId":"115855360047","shopId":"55566532655","storefrontBaseUrl":"https:\/\/epic-cycles.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
877<script>
878  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
879  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
880  window.ShopifyAnalytics.meta.currency = 'USD';
881  var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":115855360047,"requestId":"720586d5-99ea-465c-b065-53415c920a20-1791147271"}};
882  for (var attr in meta) {
883    window.ShopifyAnalytics.meta[attr] = meta[attr];
884  }
885</script>
vendor: 1 bytes, line 885
885
886<script class="analytics">
887  (function () {
888    var customDocumentWrite = function(content) {
889      var jquery = null;
890
891      if (window.jQuery) {
892        jquery = window.jQuery;
893      } else if (window.Checkout && window.Checkout.$) {
894        jquery = window.Checkout.$;
895      }
896
897      if (jquery) {
898        jquery('body').append(content);
899      }
900    };
901
902    var hasLoggedConversion = function(token) {
903      if (token) {
904        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
905      }
906      return false;
907    }
908
909    var setCookieIfConversion = function(token) {
910      if (token) {
911        var twoMonthsFromNow = new Date(Date.now());
912        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
913
914        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
915      }
916    }
917
918    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
919    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
920    if (trekkie.integrations) {
921      return;
922    }
923    trekkie.methods = [
924      'identify',
925      'page',
926      'ready',
927      'track',
928      'trackForm',
929      'trackLink'
930    ];
931    trekkie.factory = function(method) {
932      return function() {
933        var args = Array.prototype.slice.call(arguments);
934        args.unshift(method);
935        trekkie.push(args);
936        if (method == 'track' || method == 'page') {
937          var pageUrl;
938          try {
939            pageUrl = window.location.href;
940          } catch (e) {}
941          var pageReferrer;
942          try {
943            pageReferrer = document.referrer;
944          } catch (e) {}
945          try {
946            if (window.__TREKKIE_SHIM_QUEUE == null) {
947              window.__TREKKIE_SHIM_QUEUE = [];
948            }
949            window.__TREKKIE_SHIM_QUEUE.push({
950              from: 'trekkie-stub',
951              method: method,
952              args: args.slice(1),
953              pageContext: {
954                url: pageUrl,
955                referrer: pageReferrer
956              }
957            });
958          } catch (e) {
959            // no-op
960          }
961        }
962        return trekkie;
963      };
964    };
965    for (var i = 0; i < trekkie.methods.length; i++) {
966      var key = trekkie.methods[i];
967      trekkie[key] = trekkie.factory(key);
968    }
969    trekkie.load = function(config) {
970      trekkie.config = config || {};
971      trekkie.config.initialDocumentCookie = document.cookie;
972      var first = document.getElementsByTagName('script')[0];
973var script = document.createElement('script');
974script.type = 'text/javascript';
975script.onerror = function(e) {
976  var scriptFallback = document.createElement('script');
977  scriptFallback.type = 'text/javascript';
978  scriptFallback.onerror = function(error) {
979          var Monorail = {
980      produce: function produce(monorailDomain, schemaId, payload) {
981        var currentMs = new Date().getTime();
982        var event = {
983          schema_id: schemaId,
984          payload: payload,
985          metadata: {
986            event_created_at_ms: currentMs,
987            event_sent_at_ms: currentMs
988          }
989        };
990        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
991      },
992      sendRequest: function sendRequest(endpointUrl, payload) {
993        // Try the sendBeacon API
994        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
995          var blobData = new window.Blob([payload], {
996            type: 'text/plain'
997          });
998
999          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
1000            return true;
1001          } // sendBeacon was not successful
1002
1003        } // XHR beacon
1004
1005        var xhr = new XMLHttpRequest();
1006
1007        try {
1008          xhr.open('POST', endpointUrl);
1009          xhr.setRequestHeader('Content-Type', 'text/plain');
1010          xhr.send(payload);
1011        } catch (e) {
1012          console.log(e);
1013        }
1014
1015        return false;
1016      },
1017      isIos12: function isIos12() {
1018        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
1019      }
1020    };
1021    Monorail.produce('monorail-edge.shopifysvc.com',
1022      'trekkie_storefront_load_errors/1.1',
1023      {shop_id: 55566532655,
1024      theme_id: 149535981615,
1025      app_name: "storefront",
1026      context_url: window.location.href,
1027      source_url: "//epic-cycles.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"});
1028
1029  };
1030  scriptFallback.async = true;
1031  scriptFallback.src = '//epic-cycles.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js';
1032  first.parentNode.insertBefore(scriptFallback, first);
1033};
1034script.async = true;
1035script.src = '//epic-cycles.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js';
1036first.parentNode.insertBefore(script, first);
1037
1038    };
1039    trekkie.load(
1040      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":55566532655,"isMerchantRequest":null,"themeId":149535981615,"themeCityHash":"14743997699056537351","contentLanguage":"en","currency":"USD","eventMetadataId":"43c8643c-0a8a-4c3f-a747-6fc7f2a440ed"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}}
1041    );
1042
1043    var loaded = false;
1044    trekkie.ready(function() {
1045      if (loaded) return;
1046      loaded = true;
1047
1048      window.ShopifyAnalytics.lib = window.trekkie;
1049
1050      var originalDocumentWrite = document.write;
1051      document.write = customDocumentWrite;
1052      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
1053      document.write = originalDocumentWrite;
1054
1055      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
1056      var token = match? match[1]: undefined;
1057      if (!hasLoggedConversion(token)) {
1058        setCookieIfConversion(token);
1059        
1060      }
1061    });
1062
1063    window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":115855360047,"requestId":"720586d5-99ea-465c-b065-53415c920a20-1791147271","shopifyEmitted":true});
1064
1065    var eventsListenerScript = document.createElement('script');
1066    eventsListenerScript.async = true;
1067    eventsListenerScript.src = "//epic-cycles.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
1068    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
1069})();</script>
vendor: 1 bytes, line 1069
1069
1070<script
1071  defer
1072  src="https://epic-cycles.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js"
1073  data-application="storefront-renderer"
1074  data-shop-id="55566532655"
1075  data-render-region="gcp-us-central1"
1076  data-page-type="page"
1077  data-theme-instance-id="149535981615"
1078  data-theme-name="Dawn"
1079  data-theme-version="15.2.0"
1080  data-monorail-region="shop_domain"
1081  data-resource-timing-sampling-rate="10"
1082  data-shs="true"
1083  data-shs-beacon="true"
1084  data-shs-export-with-fetch="true"
1085  data-shs-logs-sample-rate="1"
1086  data-shs-beacon-endpoint="https://epic-cycles.com/api/collect"
1087></script>
1087
1088<meta name="shopify-y" content="5ae1dc5f-3f70-4d79-b6ff-342b42924fbc" data-expiration="1822704871000"><meta name="shopify-s" content="9bc299b7-2474-4f59-a7e8-ebfcdffe8d3e" data-expiration="1791149071000"><meta name="new-cookie-storage-activated" content="t">
1089</head>
1090  
1091    <body class="gradient" data-acsb-skip>
1092      
1092<script>
1093        window.CartConfig = {
1094          moneyFormat: "${{amount}}",
1095          locale: "en",
1096          currency: "USD"
1097        };
1098      </script>
1098<script>
1099          (function() {
1100            // Verificar si estamos en la URL del forum
1101            var currentPath = window.location.pathname;
1102            var isForumPage = currentPath.includes('/community/epic-forum') || 
1103                             currentPath.includes('/pages/community/epic-forum');
1104            
1105            // Usuario tiene acceso al forum
1106            var hasForumAccess = false;
1107            
1108            // Si estamos en la página del forum y el usuario NO tiene acceso, redirigir a home
1109            if (isForumPage && !hasForumAccess) {
1110              window.location.replace('/');
1111            }
1112          })();
1113        </script>
1113<!-- BEGIN sections: header-group -->
1114<div id="shopify-section-sections--19720077672495__announcement_bar_dWi7DP" class="shopify-section shopify-section-group-header-group announcement-bar-section"><link href="//epic-cycles.com/cdn/shop/t/42/assets/component-slideshow.css?v=17933591812325749411760957018" rel="stylesheet" type="text/css" media="all" />
1115<link href="//epic-cycles.com/cdn/shop/t/42/assets/component-slider.css?v=55465871833945631921775555589" rel="stylesheet" type="text/css" media="all" />
1116
1117  <link href="//epic-cycles.com/cdn/shop/t/42/assets/component-list-social.css?v=35792976012981934991760957017" rel="stylesheet" type="text/css" media="all" />
1118
1119
1120<div
1121  class="utility-bar color-scheme-1 gradient utility-bar--bottom-border"
1122  
1123>
1124  <div class="page-width utility-bar__grid"><div
1125        class="announcement-bar"
1126        role="region"
1127        aria-label="Announcement"
1128        
1129      ><p class="announcement-bar__message h5">
1130            <span>Call us for onlines sales: (888) 350-9045 or Text: (858) 345-2034</span></p></div><div class="localization-wrapper">
1131</div>
1132  </div>
1133</div>
1134
1135
1136</div><div id="shopify-section-sections--19720077672495__header" class="shopify-section shopify-section-group-header-group section-header"><link
1137  rel="stylesheet"
1138  href="//epic-cycles.com/cdn/shop/t/42/assets/component-list-menu.css?v=151968516119678728991760957018"
1139  media="print"
1140  onload="this.media='all'">
1141<link
1142  rel="stylesheet"
1143  href="//epic-cycles.com/cdn/shop/t/42/assets/component-search.css?v=165164710990765432851760957017"
1144  media="print"
1145  onload="this.media='all'">
1146<link
1147  rel="stylesheet"
1148  href="//epic-cycles.com/cdn/shop/t/42/assets/component-menu-drawer.css?v=147478906057189667651760957017"
1149  media="print"
1150  onload="this.media='all'">
1151<link
1152  rel="stylesheet"
1153  href="//epic-cycles.com/cdn/shop/t/42/assets/component-cart-notification.css?v=54116361853792938221760957016"
1154  media="print"
1155  onload="this.media='all'"><link
1156    rel="stylesheet"
1157    href="//epic-cycles.com/cdn/shop/t/42/assets/component-price.css?v=70172745017360139101760957017"
1158    media="print"
1159    onload="this.media='all'"><style>
1160  header-drawer {
1161    justify-self: start;
1162    margin-left: -1.2rem;
1163  }@media screen and (min-width: 990px) {
1164      header-drawer {
1165        display: none;
1166      }
1167    }.menu-drawer-container {
1168    display: flex;
1169  }
1170
1171  .list-menu {
1172    list-style: none;
1173    padding: 0;
1174    margin: 0;
1175  }
1176
1177  .list-menu--inline {
1178    display: inline-flex;
1179    flex-wrap: wrap;
1180  }
1181
1182  summary.list-menu__item {
1183    padding-right: 2.7rem;
1184  }
1185
1186  .list-menu__item {
1187    display: flex;
1188    align-items: center;
1189    line-height: calc(1 + 0.3 / var(--font-body-scale));
1190  }
1191
1192  .list-menu__item--link {
1193    text-decoration: none;
1194    padding-bottom: 1rem;
1195    padding-top: 1rem;
1196    line-height: calc(1 + 0.8 / var(--font-body-scale));
1197  }
1198
1199  @media screen and (min-width: 750px) {
1200    .list-menu__item--link {
1201      padding-bottom: 0.5rem;
1202      padding-top: 0.5rem;
1203    }
1204  }
1205</style><style data-shopify>.header {
1206    padding: 10
1207    px 3rem10
1208    px 3rem;
1209  }
1210
1211  .section-header {
1212    position: sticky;
1213    /* This is for fixing a Safari z-index issue. PR #2147 */
1214    margin-bottom: 0px;
1215  }
1216
1217  @media screen and (min-width: 750px) {
1218    .section-header {
1219      margin-bottom: 0px;
1220    }
1221  }
1222
1223  @media screen and (min-width: 990px) {
1224    .header {
1225      padding-top: 20px;
1226      padding-bottom: 20px;
1227    }
1228  }</style>
1228<script src="//epic-cycles.com/cdn/shop/t/42/assets/cart-notification.js?v=133508293167896966491760957017" defer="defer"></script>
1228<sticky-header data-sticky-type="on-scroll-up" class="header-wrapper color-scheme-1 gradient header-wrapper--border-bottom"></sticky-header>
1229
1230<cart-notification>
1231  <div class="cart-notification-wrapper page-width">
1232    <div
1233      id="cart-notification"
1234      class="cart-notification focus-inset color-scheme-1 gradient"
1235      aria-modal="true"
1236      aria-label="Item added to your cart"
1237      role="dialog"
1238      tabindex="-1"
1239    >
1240      <div class="cart-notification__header">
1241        <h2 class="cart-notification__heading caption-large text-body"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg>
1242Item added to your cart
1243        </h2>
1244        <button
1245          type="button"
1246          class="cart-notification__close modal__close-button link link--text focus-inset"
1247          aria-label="Close"
1248        >
1249          <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
1250</span>
1251        </button>
1252      </div>
1253      <div id="cart-notification-product" class="cart-notification-product"></div>
1254      <div class="cart-notification__links">
1255        <a
1256          href="/cart"
1257          id="cart-notification-button"
1258          class="button button--secondary button--full-width"
1259        >View cart</a>
1260        <form action="/cart" method="post" id="cart-notification-form">
1261          <button class="button button--primary button--full-width" name="checkout">
1262            Check out
1263          </button>
1264        </form>
1265        <button type="button" class="link button-label">Continue shopping</button>
1266      </div>
1267    </div>
1268  </div>
1269</cart-notification>
1270<style data-shopify>
1271  .cart-notification {
1272    display: none;
1273  }
1274</style>
1275
1276
1277
1278<script type="application/ld+json">
1279  {
1280      "@context": "http://schema.org",
1281      "@type": "Organization",
1282      "name": "Epic Cycles",
1283      
1284
1285      "sameAs": [
1286        "https:\/\/www.facebook.com\/Epic.Cycles1\/","https:\/\/www.instagram.com\/epic.cycles\/?hl=en","https:\/\/www.tiktok.com\/@epic.cycles","https:\/\/www.youtube.com\/@Epic-Cycles"
1287      ],
1288      "url": "https:\/\/epic-cycles.com\/pages\/blog"
1289    }
1290</script>
1290<header class="" role="banner">
1291
1292  <div class="row top">
1293    <div class="content-logo">
1294      <a href="/" aria-label="Epic Cycles - Home">
1295        <img
1296          src="//epic-cycles.com/cdn/shop/t/42/assets/front-epiccycles-logo.svg?v=76365125842519182391760957018"
1297          alt=""
1298          class="logo-desktop">
1299        <img
1300          src="//epic-cycles.com/cdn/shop/t/42/assets/front-epiccycles-logo-mobile.svg?v=93721849152296194671760957019"
1301          alt=""
1302          class="logo-mobile">
1303      </a>
1304    </div>
1305    <div class="content-elements">
1306      <div class="content-search">
1307        
1308        
1309
1310<details-modal class="header__search">
1311  <details open="true">
1312     <summary
1313      class="header__icon header__icon--search header__icon--summary link focus-inset modal__toggle"
1314      aria-haspopup="dialog"
1315      aria-label="Search product"
1316    >
1317    </summary>
1318    <div
1319      class="search-modal modal__content gradient"
1320      role="dialog"
1321      aria-modal="true"
1322      aria-label="Search product"
1323    >
1324      <div class="modal-overlay"></div>
1325      <div
1326        class="search-modal__content search-modal__content-bottom"
1327        tabindex="-1"
1328      ><predictive-search class="search-modal__form" data-loading-text="Loading..."><form action="/search" method="get" role="search" class="search search-modal__form">
1329          <div class="field">
1330            <input
1331              class="search__input field__input"
1332              id="Search-In-Modal-1"
1333              type="search"
1334              name="q"
1335              value=""
1336              placeholder="Search product"role="combobox"
1337                aria-expanded="false"
1338                aria-owns="predictive-search-results"
1339                aria-controls="predictive-search-results"
1340                aria-haspopup="listbox"
1341                aria-autocomplete="list"
1342                autocorrect="off"
1343                autocomplete="off"
1344                autocapitalize="off"
1345                spellcheck="false">
1346            <label class="field__label" for="Search-In-Modal-1">Search product</label>
1347            <input type="hidden" name="options[prefix]" value="last">
1348            <button
1349              type="reset"
1350              class="reset__button field__button hidden"
1351              aria-label="Clear search term"
1352            >
1353              <span class="svg-wrapper" aria-hidden="true">
1354                <iconify-icon icon="ei:close" aria-hidden="true"></iconify-icon>
1355              </span>
1356            </button>
1357            <button class="search__button field__button" aria-label="Search product">
1358              <span class="svg-wrapper" aria-hidden="true">
1359                <i class="fa-regular fa-magnifying-glass" aria-hidden="true"></i>
1360              </span>
1361            </button>
1362          </div><div class="predictive-search predictive-search--header" tabindex="-1" data-predictive-search>
1363
1364<div class="predictive-search__loading-state">
1365  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
1366
1367</div>
1368</div>
1369
1370            <span class="predictive-search-status visually-hidden hidden" role="status" aria-hidden="true"></span></form></predictive-search><button
1371          type="button"
1372          class="search-modal__close-button modal__close-button link link--text focus-inset"
1373          aria-label="Close"
1374        >
1375          <span class="svg-wrapper" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
1376</span>
1377        </button>
1378      </div>
1379    </div>
1380  </details>
1381</details-modal>
1382
1383        
1384      </div>
1385      <div class="content-store">
1386        <div role="button" tabindex="0" aria-label="Select your store" aria-haspopup="dialog">
1387          <p class="title" aria-hidden="true">My store:</p>
1388          <div class="select">
1389            <p class="select-text select-store-menu" aria-hidden="true">Select your store</p>
1390            <p class="select-number select-number-store" aria-hidden="true">
1391              <span class="select-number-character">5</span>
1392              <span class="select-number-bg"></span>
1393            </p>
1394          </div>
1395          <p class="store"></p>
1396          <iconify-icon icon="majesticons:chevron-down-line" aria-hidden="true"></iconify-icon>
1397        </div>
1398      </div>
1399      <div class="content-user">
1400      
1401        <a href="/account/login" aria-label="Sign in to your account">
1402          <iconify-icon icon="solar:user-outline" aria-hidden="true"></iconify-icon>
1403        </a>
1404      
1405    </div>
1406
1407      <button type="button" class="content-shopping-cart mini-cart__trigger" aria-label="Open shopping cart" aria-haspopup="dialog" style="background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;">
1408        <div class="cart-icon-wrapper">
1409          <iconify-icon icon="iconoir:cart" aria-hidden="true"></iconify-icon>
1410          <span class="cart-count-badge" style="display: none;" aria-hidden="true">0</span>
1411          <span style="position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);border:0;white-space:nowrap;" data-cart-count-a11y>0 items in cart</span>
1412        </div>
1413      </button>
1414      
1415    </div>
1416    <div class="content-menu-mobile" role="button" tabindex="0" aria-label="Toggle navigation menu" aria-expanded="false" aria-controls="main-mobile-menu">
1417      <iconify-icon icon="fe:app-menu" class="menu-open" aria-hidden="true"></iconify-icon>
1418      <iconify-icon icon="ei:close" class="menu-close" aria-hidden="true"></iconify-icon>
1419    </div>
1420  </div>
1421  
1421<script>
1422  window.CartWithProduct = [
1423    
1424  ];
1425</script>
1425
1426
1427
1428<!-- Fondo oscuro que no cubre header -->
1429<div class="overlay" aria-hidden="true"></div>
1430
1431<!-- Mini Cart -->
1432 
1433
1434<div class="mini-cart" role="dialog" aria-modal="true" aria-label="Shopping cart" aria-hidden="true" tabindex="-1">
1435  <div class="mini-cart__header">
1436    <h2 class="mini-cart__title hidden" id="mini-cart-title">CART</h2>
1437    <button class="mini-cart__remove-all">Remove all</button>
1438    <button type="button" class="mini-cart__close" aria-label="Close cart" style="background:none;border:0;padding:8px;margin-left:auto;cursor:pointer;font-size:24px;line-height:1;color:inherit;">
1439      <span aria-hidden="true">&times;</span>
1440    </button>
1441  </div>
1442  <div class="mini-cart__items" role="list" aria-label="Items in cart"></div><div class="mini-cart__assembly-note" hidden>
1443      <iconify-icon icon="hugeicons:tools" aria-hidden="true"></iconify-icon>
1444      <div><p><strong>Epic Pro Assembly</strong> is added at checkout when your bike is shipped ($124.99 non-electric / $149.99 electric). Free with In-Store Pickup or Local Delivery within 20 miles.</p></div>
1445    </div><div class="mini-cart__total" role="text" aria-label="Total price: $0.00" aria-live="polite">
1446    <span aria-hidden="true">Total Price</span>
1447    <strong class="mini-cart__total-value" aria-hidden="true">$0.00</strong>
1448  </div>
1449  <a href="/cart" class="button btn btn-view-cart" aria-label="View full cart page">VIEW CART</a>
1450</div>
1451
1452<style data-shopify>
1453.content-shopping-cart {
1454  display: inline-block;
1455  cursor: pointer;
1456}
1457.cart-icon-wrapper {
1458  position: relative;
1459  /* display: inline-block; */
1460}
1461.cart-count-badge {
1462  position: absolute;
1463  top: -9px;
1464  right: -9px;
1465  background: #aa4b22;
1466  color: white;
1467  font-size: 12px;
1468  font-weight: bold;
1469  line-height: 1;
1470  padding: 2px 4.5px;
1471  border-radius: 50%;
1472  z-index: 10;
1473  display: none;
1474}
1475.overlay {
1476  position: fixed;
1477  inset: 0;
1478  background: rgba(0, 0, 0, 0.4);
1479  display: none;
1480  z-index: 999;
1481}
1482.overlay--show {
1483  display: block;
1484}
1485/* El overlay lleva z-index:999 y el panel z-index:3 (styles.css). Mientras el overlay
1486   estuvo forzado a display:none ese choque no se notaba; al devolverlo a la vida el
1487   fondo oscuro tapaba el minicart y parecia que no abria. El selector va con `body`
1488   delante para ganar por especificidad sin depender del orden de las hojas ni de las
1489   reglas !important que inyecta quick-add-modal.js. */
1490body .mini-cart {
1491  z-index: 1000;
1492}
1493.mini-cart__assembly-note {
1494  display: flex;
1495  align-items: flex-start;
1496  gap: 6px;
1497  margin: 0 16px 12px;
1498  padding: 10px 12px;
1499  background: #f5f5f5;
1500  border-radius: 4px;
1501  font-size: 0.75rem;
1502  line-height: 1.45;
1503  color: #4a4a4a;
1504}
1505.mini-cart__assembly-note[hidden] {
1506  display: none;
1507}
1508.mini-cart__assembly-note iconify-icon {
1509  flex-shrink: 0;
1510  margin-top: 2px;
1511}
1512.mini-cart__assembly-note p {
1513  margin: 0;
1514}
1515
1516/* Loading spinner animation */
1517@keyframes spin {
1518  0% { transform: rotate(0deg); }
1519  100% { transform: rotate(360deg); }
1520}
1521</style>
1522  <div class="row nav" id="main-mobile-menu">
1523    <div class="content-company-menu">
1524      <div class="content-company-menu-title" role="button" tabindex="0" aria-label="Company menu" aria-haspopup="true" aria-expanded="false">
1525        <iconify-icon icon="ei:close" class="menu-close" aria-hidden="true"></iconify-icon>
1526        <iconify-icon icon="fe:app-menu" class="menu-open" aria-hidden="true"></iconify-icon>
1527        <p>Menu</p>
1528      </div>
1529    </div>
1530    <div class="content-labels" role="group" aria-label="Menu categories">
1531      <div class="label active" data-label="shop" role="button" tabindex="0" aria-pressed="true" aria-label="Show Shop menu">
1532        <p>Shop</p>
1533      </div>
1534      <div class="label" data-label="epicSections" role="button" tabindex="0" aria-pressed="false" aria-label="Show Epic sections menu">
1535        <p>Epic sections</p>
1536      </div>
1537    </div>
1538    <div class="content-store">
1539      <div role="button" tabindex="0" aria-label="Select your store" aria-haspopup="dialog">
1540        <p class="title" aria-hidden="true">My store:</p>
1541        <div class="select">
1542          <p class="select-text select-store-menu" aria-hidden="true">Select your store</p>
1543          <p class="select-number select-number-store" aria-hidden="true">
1544            <span class="select-number-character">5</span>
1545            <span class="select-number-bg"></span>
1546          </p>
1547        </div>
1548        <p class="store"></p>
1549        <iconify-icon icon="majesticons:chevron-down-line" aria-hidden="true"></iconify-icon>
1550      </div>
1551    </div>
1552
1553    <div class="content-back-menu hidden">
1554  <iconify-icon class="content-back-menu-icon" icon="majesticons:chevron-left"></iconify-icon>
1555  <p class="content-back-menu-text" >Back to Menu</p>
1556</div>
1557
1558
1559  <div class="content-nav label-menu active" data-label="shop">
1560    <nav aria-label="Shop main navigation">
1561      
1562        
1563
1564        
1565        
1566        
1567
1568        
1569
1570        
1571        
1572
1573        
1574          <div class="nav-section" role="button" tabindex="0" aria-haspopup="true" aria-expanded="false" aria-label="Bikes menu">
1575            <div class="nav-section-title">
1576              
1577              <p>Bikes</p>
1578            </div>
1579            <div class="nav-category">
1580              <div class="nav-category-view-all-mobile">
1581                <div class="nav-category-view-all-mobile-bg">
1582                  
1583                    <img src="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600 600w" sizes="(max-width: 767px) 100vw, 400px" alt="Bikes" loading="lazy" decoding="async">
1584                  
1585                </div>
1586                <p>Bikes</p>
1587                <p><a href="/collections/bikes">View all</a></p>
1588              </div>
1589              <div class="nav-category-container">
1590                <div class="nav-category-bg">
1591                  
1592                    <img src="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600 600w" sizes="(max-width: 767px) 100vw, 400px" alt="Bikes" loading="lazy" decoding="async">
1593                  
1594                </div>
1595                
1596                  
1597                  <div class="nav-category-column">
1598                    <div class="nav-category-title">
1599                      <p>Road</p>
1600                    </div>
1601                    <div class="nav-subcategory">
1602                      <div class="nav-subcategory-view-all-mobile">
1603                        <div class="nav-subcategory-view-all-mobile-bg">
1604                          
1605                            <img src="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600 600w" sizes="(max-width: 767px) 100vw, 400px" alt="Bikes" loading="lazy" decoding="async">
1606                          
1607                        </div>
1608                        <p>Road</p>
1609                        <p>View all</p>
1610                      </div>
1611                      
1612                        
1613                          <div class="nav-subcategory-column">
1614                            
1615                              <a href="/collections/road-race-bikes">Race</a>
1616                            
1617                              <a href="/collections/endurance-road-bikes">Endurance</a>
1618                            
1619                              <a href="/collections/triathlon-bikes">Triathlon</a>
1620                            
1621                              <a href="/collections/electric-road-bikes">E-Road</a>
1622                            
1623                              <a href="/collections/city-bikes">City Bikes</a>
1624                            
1625                            <a href="/collections/road-bikes" class="view-all">View all</a>
1626                          </div>
1627                        
1628                      
1629                    </div>
1630                  </div>
1631                
1632                  
1633                  <div class="nav-category-column">
1634                    <div class="nav-category-title">
1635                      <p>Mountain</p>
1636                    </div>
1637                    <div class="nav-subcategory">
1638                      <div class="nav-subcategory-view-all-mobile">
1639                        <div class="nav-subcategory-view-all-mobile-bg">
1640                          
1641                            <img src="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600 600w" sizes="(max-width: 767px) 100v
1641w, 400px" alt="Bikes" loading="lazy" decoding="async">
1642                          
1643                        </div>
1644                        <p>Mountain</p>
1645                        <p>View all</p>
1646                      </div>
1647                      
1648                        
1649                          <div class="nav-subcategory-column">
1650                            
1651                              <a href="/collections/cross-country-mountain-bikes">Cross-country</a>
1652                            
1653                              <a href="/collections/trail-mountain-bikes">Trail Bikes</a>
1654                            
1655                              <a href="/collections/electric-mountain-bikes">E-Mountain (MTB)</a>
1656                            
1657                            <a href="/collections/mountain-bikes" class="view-all">View all</a>
1658                          </div>
1659                        
1660                      
1661                    </div>
1662                  </div>
1663                
1664                  
1665                  <div class="nav-category-column">
1666                    <div class="nav-category-title">
1667                      <p>Gravel</p>
1668                    </div>
1669                    <div class="nav-subcategory">
1670                      <div class="nav-subcategory-view-all-mobile">
1671                        <div class="nav-subcategory-view-all-mobile-bg">
1672                          
1673                            <img src="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600 600w" sizes="(max-width: 767px) 100vw, 400px" alt="Bikes" loading="lazy" decoding="async">
1674                          
1675                        </div>
1676                        <p>Gravel</p>
1677                        <p>View all</p>
1678                      </div>
1679                      
1680                        
1681                          <div class="nav-subcategory-column">
1682                            
1683                              <a href="/collections/gravel-adventure-bikes">Adventure</a>
1684                            
1685                              <a href="/collections/gravel-race-bikes">Performance</a>
1686                            
1687                              <a href="/collections/electric-gravel-bikes">E-Gravel</a>
1688                            
1689                            <a href="/collections/gravel-bikes" class="view-all">View all</a>
1690                          </div>
1691                        
1692                      
1693                    </div>
1694                  </div>
1695                
1696                  
1697                  <div class="nav-category-column">
1698                    <div class="nav-category-title">
1699                      <p>E-Bike</p>
1700                    </div>
1701                    <div class="nav-subcategory">
1702                      <div class="nav-subcategory-view-all-mobile">
1703                        <div class="nav-subcategory-view-all-mobile-bg">
1704                          
1705                            <img src="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600 600w" sizes="(max-width: 767px) 100vw, 400px" alt="Bikes" loading="lazy" decoding="async">
1706                          
1707                        </div>
1708                        <p>E-Bike</p>
1709                        <p>View all</p>
1710                      </div>
1711                      
1712                        
1713                          <div class="nav-subcategory-column">
1714                            
1715                              <a href="/collections/electric-road-bikes">E-Road</a>
1716                            
1717                              <a href="/collections/electric-mountain-bikes">E-mountain (MTB)</a>
1718                            
1719                              <a href="/collections/electric-gravel-bikes">E-Gravel</a>
1720                            
1721                              <a href="/collections/electric-city-bikes">E-Urban</a>
1722                            
1723                            <a href="/collections/electric-bikes" class="view-all">View all</a>
1724                          </div>
1725                        
1726                      
1727                    </div>
1728                  </div>
1729                
1730                  
1731                  <div class="nav-category-column">
1732                    <div class="nav-category-title">
1733                      <p>Frames</p>
1734                    </div>
1735                    <div class="nav-subcategory">
1736                      <div class="nav-subcategory-view-all-mobile">
1737                        <div class="nav-subcategory-view-all-mobile-bg">
1738                          
1739                            <img src="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600 600w" sizes="(max-width: 767px) 100v
1739w, 400px" alt="Bikes" loading="lazy" decoding="async">
1740                          
1741                        </div>
1742                        <p>Frames</p>
1743                        <p>View all</p>
1744                      </div>
1745                      
1746                        
1747                          <div class="nav-subcategory-column">
1748                            
1749                              <a href="/collections/road-frameset">Road</a>
1750                            
1751                              <a href="/collections/mtb-frameset">Mountain</a>
1752                            
1753                              <a href="/collections/gravel-frames">Gravel</a>
1754                            
1755                              <a href="/collections/triathlon-frameset">Triathlon</a>
1756                            
1757                            <a href="/collections/framesets" class="view-all">View all</a>
1758                          </div>
1759                        
1760                      
1761                    </div>
1762                  </div>
1763                
1764              </div>
1765              <div class="nav-category-cta-view-all">
1766                <a href="/collections/bikes">All Bikes</a>
1767              </div>
1768            </div>
1769          </div>
1770        
1771
1772      
1773        
1774
1775        
1776        
1777        
1778
1779        
1780
1781        
1782        
1783
1784        
1785          <div class="nav-section" role="button" tabindex="0" aria-haspopup="true" aria-expanded="false" aria-label="For the Bike menu">
1786            <div class="nav-section-title">
1787              
1788              <p>For the Bike</p>
1789            </div>
1790            <div class="nav-category">
1791              <div class="nav-category-view-all-mobile">
1792                <div class="nav-category-view-all-mobile-bg">
1793                  
1794                    <img src="//epic-cycles.com/cdn/shop/files/black-screen_39_cf42a3a2-7b7b-40d9-bff0-2041fc931c93.png?v=1773065174&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39_cf42a3a2-7b7b-40d9-bff0-2041fc931c93.png?v=1773065174&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39_cf42a3a2-7b7b-40d9-bff0-2041fc931c93.png?v=1773065174&width=600 600w" sizes="(max-width: 767px) 100vw, 400px" alt="For the Bike" loading="lazy" decoding="async">
1795                  
1796                </div>
1797                <p>For the Bike</p>
1798                <p><a href="/collections/for-the-bike">View all</a></p>
1799              </div>
1800              <div class="nav-category-container">
1801                <div class="nav-category-bg">
1802                  
1803                    <img src="//epic-cycles.com/cdn/shop/files/black-screen_39_cf42a3a2-7b7b-40d9-bff0-2041fc931c93.png?v=1773065174&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39_cf42a3a2-7b7b-40d9-bff0-2041fc931c93.png?v=1773065174&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39_cf42a3a2-7b7b-40d9-bff0-2041fc931c93.png?v=1773065174&width=600 600w" sizes="(max-width: 767px) 100vw, 400px" alt="For the Bike" loading="lazy" decoding="async">
1804                  
1805                </div>
1806                
1807                  
1808                  <div class="nav-category-column">
1809                    <div class="nav-category-title">
1810                      <p>Wheels & Tires</p>
1811                    </div>
1812                    <div class="nav-subcategory">
1813                      <div class="nav-subcategory-view-all-mobile">
1814                        <div class="nav-subcategory-view-all-mobile-bg">
1815                          
1816                            <img src="//epic-cycles.com/cdn/shop/files/black-screen_39_cf42a3a2-7b7b-40d9-bff0-2041fc931c93.png?v=1773065174&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39_cf42a3a2-7b7b-40d9-bff0-2041fc931c93.png?v=1773065174&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39_cf42a3a2-7b7b-40d9-bff0-2041fc931c93.png?v=1773065174&width=600 600w" sizes="(max-width: 767px) 100vw, 400px" alt="For the Bike" loading="lazy" decoding="async">
1817                          
1818                        </div>
1819                        <p>Wheels & Tires</p>
1820                        <p>View all</p>
1821                      </div>
1822                      
1823                        
1824                          <div class="nav-subcategory-column">
1825                            
1826                              <a href="/collections/road-tires">
1826Road Tires</a>
1827                            
1828                              <a href="/collections/road-bike-wheels">Road Wheels</a>
1829                            
1830                              <a href="/collections/mtb-tires">MTB Tires</a>
1831                            
1832                              <a href="/collections/mtb-wheels">MTB Wheels</a>
1833                            
1834                              <a href="/collections/gravel-tires">Gravel Tires</a>
1835                            
1836                              <a href="/collections/gravel-wheels">Gravel Wheels</a>
1837                            
1838                            <a href="/collections/wheels-tires" class="view-all">View all</a>
1839                          </div>
1840                        
1841                      
1842                    </div>
1843                  </div>
1844                
1845                  
1846                  <div class="nav-category-column">
1847                    <div class="nav-category-title">
1848                      <p>Components</p>
1849                    </div>
1850                    <div class="nav-subcategory">
1851                      <div class="nav-subcategory-view-all-mobile">
1852                        <div class="nav-subcategory-view-all-mobile-bg">
1853                          
1854                            <img src="//epic-cycles.com/cdn/shop/files/black-screen_39_cf42a3a2-7b7b-40d9-bff0-2041fc931c93.png?v=1773065174&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39_cf42a3a2-7b7b-40d9-bff0-2041fc931c93.png?v=1773065174&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39_cf42a3a2-7b7b-40d9-bff0-2041fc931c93.png?v=1773065174&width=600 600w" sizes="(max-width: 767px) 100vw, 400px" alt="For the Bike" loading="lazy" decoding="async">
1855                          
1856                        </div>
1857                        <p>Components</p>
1858                        <p>View all</p>
1859                      </div>
1860                      
1861                        
1862                          <div class="nav-subcategory-column">
1863                            
1864                              <a href="/collections/cranksets-power-meters">Cranksets & Power Meters</a>
1865                            
1866                              <a href="/collections/pedals-cleats">Pedals & Cleats</a>
1867                            
1868                              <a href="/collections/chains-cranksets">Chains & Cassettes</a>
1869                            
1870                              <a href="/collections/handlebars">Handlebars</a>
1871                            
1872                              <a href="/collections/saddles">Saddles</a>
1873                            
1874                              <a href="/collections/lights-safety">Lights & Safety</a>
1875                            
1876                            <a href="https://epic-cycles.com/collections/components" class="view-all">View all</a>
1877                          </div>
1878                        
1879                      
1880                    </div>
1881                  </div>
1882                
1883                  
1884                  <div class="nav-category-column">
1885                    <div class="nav-category-title">
1886                      <p>Essentials</p>
1887                    </div>
1888                    <div class="nav-subcategory">
1889                      <div class="nav-subcategory-view-all-mobile">
1890                        <div class="nav-subcategory-view-all-mobile-bg">
1891                          
1892                            <img src="//epic-cycles.com/cdn/shop/files/black-screen_39_cf42a3a2-7b7b-40d9-bff0-2041fc931c93.png?v=1773065174&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39_cf42a3a2-7b7b-40d9-bff0-2041fc931c93.png?v=1773065174&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39_cf42a3a2-7b7b-40d9-bff0-2041fc931c93.png?v=1773065174&width=600 600w" sizes="(max-width: 767px) 100vw, 400px" alt="For the Bike" loading="lazy" decoding="async">
1893                          
1894                        </div>
1895                        <p>Essentials</p>
1896                        <p>View all</p>
1897                      </div>
1898                      
1899                        
1900                          <div class="nav-subcategory-column">
1901                            
1902                              <a href="/collections/water-bottles-cages">Water Bottles & Cages</a>
1903                            
1904                              <a href="/collections/pumps-co2">Pumps & Inflation</a>
1905                            
1906                              <a href="/collections/maintenance-products">Tools & Maintenance</a>
1907                            
1908                              <a href="/collections/locks-1">Locks</a>
1909                            
1910                              <a href="/collections/gps">Navigation</a>
1911                            
1912                            <a href="/collections/for-the-bike" class="view-all">View all</a>
1913                          </div>
1914                        
1915                      
1916                    </div>
1917                  </div>
1918                
1919              </div>
1920              <div class="nav-category-cta-view-all">
1921                <a href="/collections/for-the-bike">All For the Bike</a>
1922              </div>
1923            </div>
1924          </div>
1925        
1926
1927      
1928        
1929
1930        
1931        
1932        
1933
1934        
1935
1936        
1937        
1938
1939        
1940          <div class="nav-section" role="button" tabindex="0" aria-haspopup="true" aria-expanded="false" aria-label="For the Cyclist menu">
1941            <div class="nav-section-title">
1942              
1943              <p>For the Cyclist</p>
1944            </div>
1945            <div class="nav-category">
1946              <div class="nav-category-view-all-mobile">
1947                <div class="nav-category-view-all-mobile-bg">
1948                  
1949                    <img src="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600 600w" sizes="(max-width: 767px) 100v
1949w, 400px" alt="For the Cyclist" loading="lazy" decoding="async">
1950                  
1951                </div>
1952                <p>For the Cyclist</p>
1953                <p><a href="/collections/for-the-cyclist">View all</a></p>
1954              </div>
1955              <div class="nav-category-container">
1956                <div class="nav-category-bg">
1957                  
1958                    <img src="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600 600w" sizes="(max-width: 767px) 100vw, 400px" alt="For the Cyclist" loading="lazy" decoding="async">
1959                  
1960                </div>
1961                
1962                  
1963                  <div class="nav-category-column">
1964                    <div class="nav-category-title">
1965                      <p>Helmets</p>
1966                    </div>
1967                    <div class="nav-subcategory">
1968                      <div class="nav-subcategory-view-all-mobile">
1969                        <div class="nav-subcategory-view-all-mobile-bg">
1970                          
1971                            <img src="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600 600w" sizes="(max-width: 767px) 100vw, 400px" alt="For the Cyclist" loading="lazy" decoding="async">
1972                          
1973                        </div>
1974                        <p>Helmets</p>
1975                        <p>View all</p>
1976                      </div>
1977                      
1978                        
1979                          <div class="nav-subcategory-column">
1980                            
1981                              <a href="/collections/road-helmets">Road Helmets</a>
1982                            
1983                              <a href="/collections/mountain-helmets">Mountain Helmets</a>
1984                            
1985                              <a href="/collections/city-urban-helmets">City Helmets</a>
1986                            
1987                            <a href="/collections/helmets" class="view-all">View all</a>
1988                          </div>
1989                        
1990                      
1991                    </div>
1992                  </div>
1993                
1994                  
1995                  <div class="nav-category-column">
1996                    <div class="nav-category-title">
1997                      <p>Clothes</p>
1998                    </div>
1999                    <div class="nav-subcategory">
2000                      <div class="nav-subcategory-view-all-mobile">
2001                        <div class="nav-subcategory-view-all-mobile-bg">
2002                          
2003                            <img src="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600 600w" sizes="(max-width: 767px) 100vw, 400px" alt="For the Cyclist" loading="lazy" decoding="async">
2004                          
2005                        </div>
2006                        <p>Clothes</p>
2007                        <p>View all</p>
2008                      </div>
2009                      
2010                        
2011                          <div class="nav-subcategory-column">
2012                            
2013                              <a href="/collections/base-layers">Base Layers</a>
2014                            
2015                              <a href="/collections/jerseys">Jerseys</a>
2016                            
2017                              <a href="/collections/jackets">Jackets & Vests</a>
2018                            
2019                              <a href="/collections/bibs-shorts">Bibs & Shorts</a>
2020                            
2021                              <a href="/collections/warmers">Warmers</a>
2022                            
2023                              <a href="/collections/socks">Socks</a>
2024                            
2025                              <a href="/collections/gloves">Gloves</a>
2026                            
2027                            <a href="/collections/clothes" class="view-all">View all</a>
2028                          </div>
2029                        
2030                      
2031                    </div>
2032                  </div>
2033                
2034                  
2035                  <div class="nav-category-column">
2036                    <div class="nav-category-title">
2037                      <p>Shoes</p>
2038                    </div>
2039                    <div class="nav-subcategory">
2040                      <div class="nav-subcategory-view-all-mobile">
2041                        <div class="nav-subcategory-view-all-mobile-bg">
2042                          
2043                            <img src="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600 600w" sizes="(max-width: 767px) 100v
2043w, 400px" alt="For the Cyclist" loading="lazy" decoding="async">
2044                          
2045                        </div>
2046                        <p>Shoes</p>
2047                        <p>View all</p>
2048                      </div>
2049                      
2050                        
2051                          <div class="nav-subcategory-column">
2052                            
2053                              <a href="/collections/mountain-shoes">Mountain Shoes</a>
2054                            
2055                              <a href="/collections/road-shoes">Road Shoes</a>
2056                            
2057                            <a href="/collections/shoes" class="view-all">View all</a>
2058                          </div>
2059                        
2060                      
2061                    </div>
2062                  </div>
2063                
2064                  
2065                  <div class="nav-category-column">
2066                    <div class="nav-category-title">
2067                      <p>Accessories for the cyclist</p>
2068                    </div>
2069                    <div class="nav-subcategory">
2070                      <div class="nav-subcategory-view-all-mobile">
2071                        <div class="nav-subcategory-view-all-mobile-bg">
2072                          
2073                            <img src="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600 600w" sizes="(max-width: 767px) 100vw, 400px" alt="For the Cyclist" loading="lazy" decoding="async">
2074                          
2075                        </div>
2076                        <p>Accessories for the cyclist</p>
2077                        <p>View all</p>
2078                      </div>
2079                      
2080                        
2081                          <div class="nav-subcategory-column">
2082                            
2083                              <a href="/collections/sunglasses-1">Sunglasses</a>
2084                            
2085                              <a href="/collections/smartwatch">Smartwatch</a>
2086                            
2087                              <a href="/collections/bicycle-trainers">Indoor Trainers</a>
2088                            
2089                              <a href="/collections/car-racks-1">Car Racks</a>
2090                            
2091                              <a href="/collections/other-accesories">Other accessories</a>
2092                            
2093                            <a href="/collections/apparel-accessories" class="view-all">View all</a>
2094                          </div>
2095                        
2096                      
2097                    </div>
2098                  </div>
2099                
2100              </div>
2101              <div class="nav-category-cta-view-all">
2102                <a href="/collections/for-the-cyclist">All For the Cyclist</a>
2103              </div>
2104            </div>
2105          </div>
2106        
2107
2108      
2109        
2110
2111        
2112        
2113        
2114
2115        
2116
2117        
2118        
2119
2120        
2121          <div class="nav-section" role="button" tabindex="0" aria-haspopup="true" aria-expanded="false" aria-label="Outlet menu">
2122            <div class="nav-section-title">
2123              
2124              <p>Outlet</p>
2125            </div>
2126            <div class="nav-category">
2127              <div class="nav-category-view-all-mobile">
2128                <div class="nav-category-view-all-mobile-bg">
2129                  
2130                    <img src="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600 600w" sizes="(max-width: 767px) 100vw, 400px" alt="Outlet" loading="lazy" decoding="async">
2131                  
2132                </div>
2133                <p>Outlet</p>
2134                <p><a href="/collections/outlet-discounts">View all</a></p>
2135              </div>
2136              <div class="nav-category-container">
2137                <div class="nav-category-bg">
2138                  
2139                    <img src="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600 600w" sizes="(max-width: 767px) 100v
2139w, 400px" alt="Outlet" loading="lazy" decoding="async">
2140                  
2141                </div>
2142                
2143                  
2144                  <div class="nav-category-column">
2145                    <div class="nav-category-title">
2146                      <p>Bikes</p>
2147                    </div>
2148                    <div class="nav-subcategory">
2149                      <div class="nav-subcategory-view-all-mobile">
2150                        <div class="nav-subcategory-view-all-mobile-bg">
2151                          
2152                            <img src="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600 600w" sizes="(max-width: 767px) 100vw, 400px" alt="Outlet" loading="lazy" decoding="async">
2153                          
2154                        </div>
2155                        <p>Bikes</p>
2156                        <p>View all</p>
2157                      </div>
2158                      
2159                        
2160                          
2161
2162                          
2163                            
2164                            <div class="nav-subcategory-column">
2165                              
2166                                <a href="/collections/pre-owned-bikes">Pre-Owned Bikes</a>
2167                              
2168                                <a href="/collections/road-bikes-on-sale">Road on Sale</a>
2169                              
2170                            </div>
2171                            <div class="nav-subcategory-column">
2172                              
2173                                <a href="/collections/mtb-on-sale">Mountain on Sale</a>
2174                              
2175                                <a href="/collections/e-bikes-on-sale">E-Ride on Sale</a>
2176                              
2177                                <a href="/collections/demo-bikes-1">Demo Bikes</a>
2178                              
2179                              <a href="/collections/sale-bikes" class="view-all">View all</a>
2180                            </div>
2181                          
2182
2183                        
2184                      
2185                    </div>
2186                  </div>
2187                
2188                  
2189                  <div class="nav-category-column">
2190                    <div class="nav-category-title">
2191                      <p>Accessories</p>
2192                    </div>
2193                    <div class="nav-subcategory">
2194                      <div class="nav-subcategory-view-all-mobile">
2195                        <div class="nav-subcategory-view-all-mobile-bg">
2196                          
2197                            <img src="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600" srcset="//epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=400 400w, //epic-cycles.com/cdn/shop/files/black-screen_39.png?v=1765399084&width=600 600w" sizes="(max-width: 767px) 100vw, 400px" alt="Outlet" loading="lazy" decoding="async">
2198                          
2199                        </div>
2200                        <p>Accessories</p>
2201                        <p>View all</p>
2202                      </div>
2203                      
2204                        
2205                          
2206
2207                          
2208                            
2209                            <div class="nav-subcategory-column">
2210                              
2211                                <a href="/collections/apparel-on-sale">Apparel on sale</a>
2212                              
2213                                <a href="/collections/helmets-on-sale">Helmets on Sale</a>
2214                              
2215                            </div>
2216                            <div class="nav-subcategory-column">
2217                              
2218                                <a href="/collections/sale-shoes">Shoes on Sale</a>
2219                              
2220                                <a href="/collections/sale-accessories">Accessories on Sale</a>
2221                              
2222                                <a href="/collections/components-on-sale">Components on Sale</a>
2223                              
2224                              <a href="/collections/sale-accessories" class="view-all">View all</a>
2225                            </div>
2226                          
2227
2228                        
2229                      
2230                    </div>
2231                  </div>
2232                
2233              </div>
2234              <div class="nav-category-cta-view-all">
2235                <a href="/collections/outlet-discounts">All Outlet</a>
2236              </div>
2237            </div>
2238          </div>
2239        
2240
2241      
2242        
2243
2244        
2245        
2246        
2247
2248        
2249
2250        
2251        
2252
2253        
2254          <a href="/pages/special-edition-bikes" class="nav-section">
2255            <div class="nav-section-title">
2256              
2257              <p>Special Edition Bikes</p>
2258            </div>
2259          </a>
2260        
2261
2262      
2263
2264    </nav>
2265  </div><style>
2266    /* Shop menu (.content-nav): submenu sale absoluto bajo el header (replicar :hover) */
2267    header .content-nav .nav-section[role="button"]:focus-within > .nav-category,
2268    header .content-nav .nav-section[role="button"][aria-expanded="true"] > .nav-category {
2269      display: block;
2270      width: 100%;
2271      position: absolute;
2272      top: 100%;
2273      left: 0;
2274    }
2275    header .content-nav .nav-section[role="button"]:focus-within > .nav-category.open,
2276    header .content-nav .nav-section[role="button"][aria-expanded="true"] > .nav-category.open {
2277      display: flex;
2278      position: initial;
2279    }
2280    header .content-nav .nav-section[role="button"]:focus-within > .nav-subcategory,
2281    header .content-nav .nav-section[role="button"][aria-expanded="true"] > .nav-subcategory {
2282      display: block;
2283    }
2284
2285    /* Company menu (.content-company-menu-container): SASS ya define position: absolute, solo anulamos display:none */
2286    header .content-company-menu-container .nav-section[role="button"]:focus-within .nav-category,
2287    header .content-company-menu-container .nav-section[role="button"][aria-expanded="true"] .nav-category {
2288      display: block;
2289    }
2290
2291    @media screen and (max-width: 1199px) {
2292      /* En mobile el submenu se gestiona por JS, no abrir por focus */
2293      header .content-nav .nav-section[role="button"]:focus-within > .nav-category,
2294      header .content-nav .nav-section[role="button"]:focus-within > .nav-subcategory,
2295      header .content-company-menu-container .nav-section[role="button"]:focus-within .nav-category {
2296        display: none;
2297      }
2298    }
2299  </style>
2300  
2300<script>
2301    (function () {
2302      // Cubrir TODOS los .nav-section[role="button"] del header (Shop + Company)
2303      document.querySelectorAll('header .nav-section[role="button"]').forEach(function (section) {
2304        function firstFocusableInSubmenu() {
2305          return section.querySelector('.nav-category a, .nav-category [role="button"], .nav-subcategory a, .nav-subcategory [role="button"]');
2306        }
2307        // Activar con Enter o Espacio
2308        section.addEventListener('keydown', function (e) {
2309          if (e.target !== section) return; // solo si el wrapper tiene el foco
2310          if (e.key === 'Enter' || e.key === ' ' || e.key === 'Spacebar') {
2311            e.preventDefault();
2312            var expanded = section.getAttribute('aria-expanded') === 'true';
2313            section.setAttribute('aria-expanded', expanded ? 'false' : 'true');
2314            if (!expanded) {
2315              var firstLink = firstFocusableInSubmenu();
2316              if (firstLink) setTimeout(function () { firstLink.focus(); }, 50);
2317            }
2318          } else if (e.key === 'Escape') {
2319            section.setAttribute('aria-expanded', 'false');
2320            section.focus();
2321          } else if (e.key === 'ArrowDown') {
2322            e.preventDefault();
2323            section.setAttribute('aria-expanded', 'true');
2324            var firstLink = firstFocusableInSubmenu();
2325            if (firstLink) firstLink.focus();
2326          }
2327        });
2328        // Cerrar al perder el foco completamente
2329        section.addEventListener('focusout', function () {
2330          setTimeout(function () {
2331            if (!section.contains(document.activeElement)) {
2332              section.setAttribute('aria-expanded', 'false');
2333            }
2334          }, 0);
2335        });
2336        // Sincronizar aria-expanded al abrir por hover (ratón)
2337        section.addEventListener('mouseenter', function () {
2338          section.setAttribute('aria-expanded', 'true');
2339        });
2340        section.addEventListener('mouseleave', function () {
2341          if (!section.contains(document.activeElement)) {
2342            section.setAttribute('aria-expanded', 'false');
2343          }
2344        });
2345        // Sincronizar aria-expanded al recibir foco directo con Tab (CSS :focus-within abre visualmente)
2346        // y añadir la clase .active que el JS original solo añade en mouseenter (paridad teclado/ratón)
2347        section.addEventListener('focus', function () {
2348          section.setAttribute('aria-expanded', 'true');
2349          // Replicar el comportamiento de hover: marcar como activo y desactivar otros hermanos
2350          var siblings = section.parentElement ? section.parentElement.querySelectorAll('.nav-section') : [];
2351          siblings.forEach(function (s) { if (s !== section) s.classList.remove('active'); });
2352          section.classList.add('active');
2353        });
2354        section.addEventListener('focusout', function () {
2355          setTimeout(function () {
2356            if (!section.contains(document.activeElement)) {
2357              section.classList.remove('active');
2358            }
2359          }, 0);
2360        });
2361        // Escape global desde dentro del submenu
2362        section.addEventListener('keydown', function (e) {
2363          if (e.key === 'Escape' && e.target !== section) {
2364            e.preventDefault();
2365            section.setAttribute('aria-expanded', 'false');
2366            section.focus();
2367          }
2368        }, true);
2369      });
2370    })();
2371  </script>
2371
2372
2373
2374    <div class="content-company-menu-container label-menu" data-label="epicSections">
2375      
2376
2377
2378<div class="nav-section" role="button" tabindex="0" aria-haspopup="true" aria-expanded="false" aria-label="Community menu">
2379    <!-- Título de sección -->
2380    <div class="nav-section-title">
2381    
2382        <p>Community</p>
2383        <iconify-icon icon="majesticons:chevron-right" aria-hidden="true"></iconify-icon>
2384    
2385    </div>
2386
2387    <!-- Submenú (si tiene hijos) -->
2388    
2389    <div class="nav-category">
2390        <!-- Vista móvil “Ver todo” -->
2391        <div class="nav-category-view-all-mobile">
2392        <div class="nav-category-view-all-mobile-bg">
2393            
2394            <img src="//epic-cycles.com/cdn/shop/t/42/assets/front-nav2_600x.jpg?v=61702585291409855911760957848" alt="Community" loading="lazy" decoding="async">
2395            
2396        </div>
2397        <p>Community</p>
2398        <p><a href="/pages/community/epic-club">View all</a></p>
2399        </div>
2400
2401        <!-- Contenedor de subcategorías -->
2402        <div class="nav-category-container">
2403        <div class="nav-category-bg">
2404            
2405            <img src="//epic-cycles.com/cdn/shop/t/42/assets/front-nav2_900x.jpg?v=61702585291409855911760957848" alt="Community" loading="lazy" decoding="async">
2406            
2407        </div>
2408        
2409            <a href="/pages/community/epic-club" class="nav-category-title">
2410            <p>Epic Club</p>
2411            </a>
2412        
2413            <a href="/pages/community/epic-trip" class="nav-category-title">
2414            <p>Epic Trip</p>
2415            </a>
2416        
2417            <a href="/pages/community/epic-strava" class="nav-category-title">
2418            <p>Epic Strava</p>
2419            </a>
2420        
2421        </div>
2422    </div>
2423    
2424</div>
2425
2426<div class="nav-section" role="button" tabindex="0" aria-haspopup="true" aria-expanded="false" aria-label="Stores menu">
2427    <!-- Título de sección -->
2428    <div class="nav-section-title">
2429    
2430        <p>Stores</p>
2431        <iconify-icon icon="majesticons:chevron-right" aria-hidden="true"></iconify-icon>
2432    
2433    </div>
2434
2435    <!-- Submenú (si tiene hijos) -->
2436    
2437    <div class="nav-category">
2438        <!-- Vista móvil “Ver todo” -->
2439        <div class="nav-category-view-all-mobile">
2440        <div class="nav-category-view-all-mobile-bg">
2441            
2442            <img src="//epic-cycles.com/cdn/shop/t/42/assets/front-nav2_600x.jpg?v=61702585291409855911760957848" alt="Stores" loading="lazy" decoding="async">
2443            
2444        </div>
2445        <p>Stores</p>
2446        <p><a href="/pages/our-stores">View all</a></p>
2447        </div>
2448
2449        <!-- Contenedor de subcategorías -->
2450        <div class="nav-category-container">
2451        <div class="nav-category-bg">
2452            
2453            <img src="//epic-cycles.com/cdn/shop/t/42/assets/front-nav2_900x.jpg?v=61702585291409855911760957848" alt="Stores" loading="lazy" decoding="async">
2454            
2455        </div>
2456        
2457            <a href="/pages/stores/epic-cycles-fort-lauderdale-store" class="nav-category-title">
2458            <p>Fort Lauderdale</p>
2459            </a>
2460        
2461            <a href="/pages/stores/epic-cycles-denver-store" class="nav-category-title">
2462            <p>Denver</p>
2463            </a>
2464        
2465            <a href="/pages/stores/epic-cycles-houston-store" class="nav-category-title">
2466            <p>Houston Town & Country</p>
2467            </a>
2468        
2469            <a href="/pages/stores/houston-west-university" class="nav-category-title">
2470            <p>Houston West University</p>
2471            </a>
2472        
2473            <a href="/pages/stores/epic-cycles-solana-beach-store" class="nav-category-title">
2474            <p>Solana Beach</p>
2475            </a>
2476        
2477            <a href="/pages/stores/epic-cycles-weston" class="nav-category-title">
2478            <p>Weston</p>
2479            </a>
2480        
2481            <a href="/pages/stores/folsom-ca" class="nav-category-title">
2482            <p>Folsom</p>
2483            </a>
2484        
2485        </div>
2486    </div>
2487    
2488</div>
2489
2490<div class="nav-section">
2491    <!-- Título de sección -->
2492    <div class="nav-section-title">
2493    
2494        <a href="/pages/services">
2495        <p>Services</p>
2496        </a>
2497    
2498    </div>
2499
2500    <!-- Submenú (si tiene hijos) -->
2501    
2502</div>
2503
2504<div class="nav-section">
2505    <!-- Título de sección -->
2506    <div class="nav-section-title">
2507    
2508        <a href="/pages/custom-bikes">
2509        <p>Custom Bikes</p>
2510        </a>
2511    
2512    </div>
2513
2514    <!-- Submenú (si tiene hijos) -->
2515    
2516</div>
2517
2518<div class="nav-section">
2519    <!-- Título de sección -->
2520    <div class="nav-section-title">
2521    
2522        <a href="/pages/about">
2523        <p>About us</p>
2524        </a>
2525    
2526    </div>
2527
2528    <!-- Submenú (si tiene hijos) -->
2529    
2530</div>
2531
2532<div class="nav-section">
2533    <!-- Título de sección -->
2534    <div class="nav-section-title">
2535    
2536        <a href="/pages/blog">
2537        <p>
2537Blog</p>
2538        </a>
2539    
2540    </div>
2541
2542    <!-- Submenú (si tiene hijos) -->
2543    
2544</div>
2545
2546<div class="nav-section">
2547    <!-- Título de sección -->
2548    <div class="nav-section-title">
2549    
2550        <a href="/pages/financing">
2551        <p>Financing</p>
2552        </a>
2553    
2554    </div>
2555
2556    <!-- Submenú (si tiene hijos) -->
2557    
2558</div>
2559
2560
2561      
2562
2563<div class="content-company-menu-container-bottom">
2564  
2565    <div class="nav-section">
2566      <a href="/pages/gift-cards" class="nav-section-title">
2567        <p>Gift cards</p>
2568      </a>
2569    </div>
2570  
2571    <div class="nav-section">
2572      <a href="/pages/trade-in-program" class="nav-section-title">
2573        <p>Trade In Program</p>
2574      </a>
2575    </div>
2576  
2577    <div class="nav-section">
2578      <a href="https://epic-cycles.com/apps/epic-return" class="nav-section-title">
2579        <p>Returns</p>
2580      </a>
2581    </div>
2582  
2583    <div class="nav-section">
2584      <a href="/pages/frequency-questions" class="nav-section-title">
2585        <p>FAQs</p>
2586      </a>
2587    </div>
2588  
2589    <div class="nav-section">
2590      <a href="/pages/contact" class="nav-section-title">
2591        <p>Contact</p>
2592      </a>
2593    </div>
2594  
2595</div>
2596
2597    </div>
2598    
2598<script>
2599  window.ShopifyCustomer = {
2600    isLoggedIn: false,
2601    id: null,
2602    email: null,
2603    accessToken: ""
2604  };
2605</script>
2605
2606
2607
2608<div class="stores-modal" role="dialog" aria-modal="true" aria-labelledby="stores-modal-title" aria-hidden="true" tabindex="-1">
2609  <div class="container">
2610    <div class="stores-modal-title">
2611      <h2 id="stores-modal-title">Select your store</h2>
2612      <button type="button" class="close-stores-modal" aria-label="Close stores modal" style="background:none;border:0;padding:8px;cursor:pointer;color:inherit;">
2613        <iconify-icon icon="ei:close" class="menu-close" aria-hidden="true"></iconify-icon>
2614      </button>
2615    </div>
2616    <div class="stores-modal-map">
2617      <div class="stores-modal-map-iframe"><div id="map" style="width: 100%; height: 100%;" role="img" aria-label="Map showing store locations. A full accessible list is provided below."></div>
2618
2619      </div>
2620      <div class="stores-modal-map-location" id="use-my-location" role="button" tabindex="0" aria-label="Use my current location to find nearest store">
2621        <iconify-icon icon="tabler:current-location" aria-hidden="true"></iconify-icon>
2622        <p aria-hidden="true">Use my location</p>
2623      </div>
2624    </div>
2625    <div class="stores-modal-items" role="list" aria-label="Available stores">
2626      
2627        <div class="item" role="listitem" data-lat="39.7992626"  data-lng="-104.8872448" data-title="Denver">
2628          <div class="item-info">
2629            <h3>Denver</h3>
2630            <p>5665 Beeler St, Suite 100, Denver, CO 80238</p>
2631          </div>
2632          <div class="item-ctas">
2633            <a href="/pages/stores/epic-cycles-denver-store" class="cta" aria-label="View details for Denver">
2634              <iconify-icon icon="majesticons:eye-line" aria-hidden="true"></iconify-icon>
2635              <p aria-hidden="true">View details</p>
2636            </a>
2637            <div class="cta" role="button" tabindex="0" aria-label="Select Denver as favorite store" aria-pressed="false">
2638              <iconify-icon icon="mdi:heart" class="icon-heart" aria-hidden="true"></iconify-icon>
2639              <p class="title-store" aria-hidden="true">Select as favorite</p>
2640            </div>
2641          </div>
2642        </div>
2643      
2644        <div class="item" role="listitem" data-lat="26.4557896"  data-lng="-80.1917393" data-title="Fort Lauderdale ">
2645          <div class="item-info">
2646            <h3>Fort Lauderdale </h3>
2647            <p>2051 E Oakland Park Blvd., Oakland Park, FL 33306</p>
2648          </div>
2649          <div class="item-ctas">
2650            <a href="/pages/stores/epic-cycles-fort-lauderdale-store" class="cta" aria-label="View details for Fort Lauderdale ">
2651              <iconify-icon icon="majesticons:eye-line" aria-hidden="true"></iconify-icon>
2652              <p aria-hidden="true">View details</p>
2653            </a>
2654            <div class="cta" role="button" tabindex="0" aria-label="Select Fort Lauderdale  as favorite store" aria-pressed="false">
2655              <iconify-icon icon="mdi:heart" class="icon-heart" aria-hidden="true"></iconify-icon>
2656              <p class="title-store" aria-hidden="true">Select as favorite</p>
2657            </div>
2658          </div>
2659        </div>
2660      
2661        <div class="item" role="listitem" data-lat="29.7793754"  data-lng="-95.5634044" data-title="Houston Town & Country">
2662          <div class="item-info">
2663            <h3>Houston Town & Country</h3>
2664            <p>799 Town & Country Blvd, Suite 143, Houston, TX 77024 - 4589</p>
2665          </div>
2666          <div class="item-ctas">
2667            <a href="/pages/stores/epic-cycles-houston-store" class="cta" aria-label="View details for Houston Town &amp; Country">
2668              <iconify-icon icon="majesticons:eye-line" aria-hidden="true"></iconify-icon>
2669              <p aria-hidden="true">View details</p>
2670            </a>
2671            <div class="cta" role="button" tabindex="0" aria-label="Select Houston Town &amp; Country as favorite store" aria-pressed="false">
2672              <iconify-icon icon="mdi:heart" class="icon-heart" aria-hidden="true"></iconify-icon>
2673              <p class="title-store" aria-hidden="true">Select as favorite</p>
2674            </div>
2675          </div>
2676        </div>
2677      
2678        <div class="item" role="listitem" data-lat="32.9925211"  data-lng="-117.2746643" data-title="Solana Beach">
2679          <div class="item-info">
2680            <h3>Solana Beach</h3>
2681            <p>115 N Hwy 101, Solana Beach, CA 92075-1128</p>
2682          </div>
2683          <div class="item-ctas">
2684            <a href="/pages/stores/epic-cycles-solana-beach-store" class="cta" aria-label="View details for Solana Beach">
2685              <iconify-icon icon="majesticons:eye-line" aria-hidden="true"></iconify-icon>
2686              <p aria-hidden="true">View details</p>
2687            </a>
2688            <div class="cta" role="button" tabindex="0" aria-label="Select Solana Beach as favorite store" aria-pressed="false">
2689              <iconify-icon icon="mdi:heart" class="icon-heart" aria-hidden="true"></iconify-icon>
2690              <p class="title-store" aria-hidden="true">Select as favorite</p>
2691            </div>
2692          </div>
2693        </div>
2694      
2695        <div class="item" role="listitem" data-lat=""  data-lng="" data-title="Epic Cycles Weston">
2696          <div class="item-info">
2697            <h3>Epic Cycles Weston</h3>
2698            <p>1390 SW 160th Ave, Sunrise, FL 33326, United States</p>
2699          </div>
2700          <div class="item-ctas">
2701            <a href="/pages/stores/epic-cycles-weston" class="cta" aria-label="View details for Epic Cycles Weston">
2702              <iconify-icon icon="majesticons:eye-line" aria-hidden="true"></iconify-icon>
2703              <p aria-hidden="true">View details</p>
2704            </a>
2705            <div class="cta" role="button" tabindex="0" aria-label="Select Epic Cycles Weston as favorite store" aria-pressed="false">
2706              <iconify-icon icon="mdi:heart" class="icon-heart" aria-hidden="true"></iconify-icon>
2707              <p class="title-store" aria-hidden="true">Select as favorite</p>
2708            </div>
2709          </div>
2710        </div>
2711      
2712        <div class="item" role="listitem" data-lat="26.4557896"  data-lng="-80.1917393" data-title="Folsom">
2713          <div class="item-info">
2714            <h3>Folsom</h3>
2715            <p>13389 Folsom Blvd #100, Folsom, CA 95630, United States</p>
2716          </div>
2717          <div class="item-ctas">
2718            <a href="/pages/stores/folsom-ca" class="cta" aria-label="View details for Folsom">
2719              <iconify-icon icon="majesticons:eye-line" aria-hidden="true"></iconify-icon>
2720              <p aria-hidden="true">View details</p>
2721            </a>
2722            <div class="cta" role="button" tabindex="0" aria-label="Select Folsom as favorite store" aria-pressed="false">
2723              <iconify-icon icon="mdi:heart" class="icon-heart" aria-hidden="true"></iconify-icon>
2724              <p class="title-store" aria-hidden="true">Select as favorite</p>
2725            </div>
2726          </div>
2727        </div>
2728      
2729        <div class="item" role="listitem" data-lat="29.7268823"  data-lng="-95.4314087" data-title="Houston West University">
2730          <div class="item-info">
2731            <h3>Houston West University</h3>
2732            <p>5182 Buffalo Speedway, Houston</p>
2733          </div>
2734          <div class="item-ctas">
2735            <a href="/pages/stores/houston-west-university" class="cta" aria-label="View details for Houston West University">
2736              <iconify-icon icon="majesticons:eye-line" aria-hidden="true"></iconify-icon>
2737              <p aria-hidden="true">View details</p>
2738            </a>
2739            <div class="cta" role="button" tabindex="0" aria-label="Select Houston West University as favorite store" aria-pressed="false">
2740              <iconify-icon icon="mdi:heart" class="icon-heart" aria-hidden="true"></iconify-icon>
2741              <p class="title-store" aria-hidden="true">Select as favorite</p>
2742            </div>
2743          </div>
2744        </div>
2745      
2746    </div>
2747  </div>
2748</div>
2749
2750
2751<script>
2752
2753function deg2rad(deg) {
2754  return deg * (Math.PI / 180);
2755}
2756
2757function haversineDistance(lat1, lon1, lat2, lon2) {
2758  const R = 6371; // Earth radius in km
2759  const dLat = deg2rad(lat2 - lat1);
2760  const dLon = deg2rad(lon2 - lon1);
2761  const a =
2762    Math.sin(dLat / 2) ** 2 +
2763    Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *
2764    Math.sin(dLon / 2) ** 2;
2765  const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
2766  return R * c;
2767}
2768
2769function cleanSelection(favoriteStore) {
2770  $('.select-store-menu').text('Select your store');
2771  var countStores = document.querySelectorAll(".stores-modal-items .item").length;
2772  $('.select-number-store').html('<p class="select-number select-number-store"> <span class="select-number-character">'+countStores+'</span><span class="select-number-bg"></span></p>');
2773  $( ".select-store-menu" ).each(function( index ) {
2774    $(this).removeClass('select-store-menu-selected');
2775  });
2776  document.querySelectorAll(".stores-modal-items .item").forEach(item => {
2777    item.querySelector(".mystore-selected")?.remove();
2778
2779    const heartIcon = item.querySelector(".icon-heart");
2780    if (heartIcon) {
2781      heartIcon.setAttribute("icon", "mdi:heart-outline");
2782      heartIcon.classList.remove("filled");
2783    }
2784
2785    const titleLabel = item.querySelector(".title-store");
2786    if (titleLabel) {
2787      titleLabel.textContent = "Select as favorite";
2788    }
2789
2790    // A11y: resetear estado del botón corazón
2791    const title = item.querySelector("h3")?.innerText?.trim();
2792    const heartButton = item.querySelector('.cta[role="button"]');
2793    if (heartButton && title) {
2794      heartButton.setAttribute("aria-pressed", "false");
2795      heartButton.setAttribute("aria-label", "Select " + title + " as favorite store");
2796    }
2797
2798    // Marcar como favorita si coincide
2799    if (favoriteStore && title === favoriteStore) {
2800      heartIcon?.setAttribute("icon", "mdi:heart");
2801      heartIcon?.classList.add("filled");
2802
2803      if (titleLabel) {
2804        titleLabel.textContent = "Favorite store";
2805      }
2806
2807      // A11y: marcar el botón corazón como pressed con nuevo aria-label
2808      if (heartButton) {
2809        heartButton.setAttribute("aria-pressed", "true");
2810        heartButton.setAttribute("aria-label", title + " is your favorite store");
2811      }
2812
2813      $('.select-store-menu').text(title);
2814
2815      $( ".select-store-menu" ).each(function( index ) {
2816         $(this).addClass('select-store-menu-selected');
2817      });
2818
2819
2820      $('.select-number-store').html('');
2821      const div = document.createElement("div");
2822      div.className = "mystore-selected";
2823      div.textContent = "MY STORE";
2824      item.insertBefore(div, item.firstChild);
2825    }
2826  });
2827
2828  let storeWrapper = '';
2829  const storeEl = document.querySelector(".select-favorite-store-wrapper");
2830  if (storeEl && storeEl.dataset.name) {
2831    storeWrapper = storeEl.dataset.name.trim();
2832  }
2833
2834
2835  if (storeWrapper == favoriteStore) {
2836    const heartIcon = document.querySelector(".select-favorite-store-wrapper .icon-heart");
2837    const titleLabel = document.querySelector(".select-favorite-store-wrapper .title-store");
2838
2839    if (heartIcon) {
2840      heartIcon.setAttribute("icon", "mdi:heart");
2841      heartIcon.classList.add("filled");
2842    }
2843
2844    if (titleLabel) {
2845      titleLabel.textContent = "Favorite store";
2846    }
2847    
2848  }else{
2849    const heartIcon = document.querySelector(".select-favorite-store-wrapper .icon-heart");
2850    const titleLabel = document.querySelector(".select-favorite-store-wrapper .title-store");
2851
2852    if (heartIcon) {
2853      heartIcon.setAttribute("icon", "mdi:heart-outline");
2854      heartIcon.classList.remove("filled");
2855    }
2856
2857    if (titleLabel) {
2858      titleLabel.textContent = "Select as favorite";
2859    }
2860  }
2861}
2862
2863function saveFavoriteStore(storeName, storeEl) {
2864  const customer = window.ShopifyCustomer || {};
2865
2866  if (!storeName || typeof storeName !== "string") {
2867    console.warn("⚠️ Invalid store name");
2868    return;
2869  }
2870
2871  cleanSelection(storeName);
2872  // console.log("🛒 Saving favorite store:", storeName);
2873
2874  // Emit custom event for other components to listen
2875  document.dispatchEvent(new CustomEvent('store:changed', {
2876    detail: { storeName: storeName, element: storeEl }
2877  }));
2878
2879  // Also emit on window for broader compatibility
2880  window.dispatchEvent(new CustomEvent('favoriteStoreUpdated', {
2881    detail: { storeName: storeName, element: storeEl }
2882  }));
2883
2884  if (customer.isLoggedIn && customer.id) {
2885    localStorage.setItem("favorite_store", storeName);
2886
2887    fetch("https://api-epic.bluecell.tech/client/favorite-store", {
2888      method: "POST",
2889      headers: { "Content-Type": "application/json" },
2890      body: JSON.stringify({
2891        customer_id: customer.id,
2892        favorite_store: storeName
2893      })
2894    })
2895    .then(async res => {
2896      let data = {};
2897      try {
2898        data = await res.json();
2899      } catch (jsonErr) {
2900        console.error("❌ Failed to parse response:", jsonErr);
2901        return;
2902      }
2903
2904      if (!res.ok) {
2905        console.error("❌ Server error:", data.error || res.statusText);
2906        return;
2907      }
2908
2909      if (data.success) {
2910        // console.log("✅ Favorite store saved:", data.metafield);
2911        // Emit success event
2912        document.dispatchEvent(new CustomEvent('store:saved', {
2913          detail: { storeName: storeName, success: true }
2914        }));
2915      } else {
2916        console.warn("⚠️ API responded without success:", data.error);
2917        // Emit error event
2918        document.dispatchEvent(new CustomEvent('store:saved', {
2919          detail: { storeName: storeName, success: false, error: data.error }
2920        }));
2921      }
2922    })
2923    .catch(err => {
2924      console.error("❌ Network error:", err);
2925      // Emit error event
2926      document.dispatchEvent(new CustomEvent('store:saved', {
2927        detail: { storeName: storeName, success: false, error: err.message }
2928      }));
2929    });
2930
2931  } else {
2932    try {
2933      localStorage.setItem("favorite_store", storeName);
2934      // console.log("📦 Saved to localStorage:", storeName);
2935      // Emit success event
2936      document.dispatchEvent(new CustomEvent('store:saved', {
2937        detail: { storeName: storeName, success: true }
2938      }));
2939    } catch (err) {
2940      console.error("❌ Failed to save to sessionStorage:", err);
2941      // Emit error event
2942      document.dispatchEvent(new CustomEvent('store:saved', {
2943        detail: { storeName: storeName, success: false, error: err.message }
2944      }));
2945    }
2946  }
2947}
2948
2949async function SearchActualStore() {
2950  const customer = window.ShopifyCustomer || {};
2951  let favoriteStore = null;
2952
2953  if (customer.isLoggedIn && customer.id) {
2954    try {
2955      const res = await fetch(`https://api-epic.bluecell.tech/client/favorite-store?customer_id=${customer.id}`);
2956      const data = await res.json();
2957      if (data.favorite_store) {
2958        favoriteStore = data.favorite_store;
2959      }
2960    } catch (e) {
2961      console.error("❌ Failed to load favorite store:", e);
2962    }
2963  } else {
2964    favoriteStore = localStorage.getItem("favorite_store");
2965  }
2966
2967
2968  cleanSelection(favoriteStore);
2969
2970  return favoriteStore;
2971}
2972
2973document.addEventListener("DOMContentLoaded", async () => {
2974  SearchActualStore();
2975
2976  // Click on a store
2977  document.querySelectorAll(".stores-modal-items .item").forEach(itemEl => {
2978    itemEl.addEventListener("click", (e) => {
2979      if (e.target.closest("a")) return;
2980
2981      const storeName = itemEl.querySelector("h3")?.innerText?.trim();
2982      if (storeName) {
2983        saveFavoriteStore(storeName, itemEl);
2984        
2985        // Auto-close modal after selection
2986        setTimeout(() => {
2987          document.querySelector('.stores-modal')?.classList.remove('active');
2988        }, 500);
2989      }
2990    });
2991  });
2992
2993  // Use my location
2994  document.getElementById("use-my-location")?.addEventListener("click", () => {
2995    if (!navigator.geolocation) {
2996      alert("Your browser does not support geolocation.");
2997      return;
2998    }
2999
3000    navigator.geolocation.getCurrentPosition(success, error);
3001
3002    function success(position) {
3003      const userLat = position.coords.latitude;
3004      const userLng = position.coords.longitude;
3005
3006      let closestStore = null;
3007      let closestDistance = Infinity;
3008
3009      document.querySelectorAll(".stores-modal-items .item").forEach(storeEl => {
3010        const storeLat = parseFloat(storeEl.dataset.lat);
3011        const storeLng = parseFloat(storeEl.dataset.lng);
3012        if (isNaN(storeLat) || isNaN(storeLng)) return;
3013
3014        const distance = haversineDistance(userLat, userLng, storeLat, storeLng);
3015        storeEl.dataset.distance = distance.toFixed(2);
3016
3017        if (distance < closestDistance) {
3018          closestDistance = distance;
3019          closestStore = storeEl;
3020        }
3021      });
3022
3023      if (closestStore) {
3024        document.querySelectorAll(".highlighted-store").forEach(el => {
3025          el.classList.remove("highlighted-store");
3026        });
3027
3028        closestStore.scrollIntoView({ behavior: "smooth", block: "center" });
3029        closestStore.classList.add("highlighted-store");
3030
3031        const title = closestStore.querySelector("h3")?.innerText || "Untitled";
3032        saveFavoriteStore(title, closestStore);
3033        // console.log(`📏 Approx. distance: ${closestDistance.toFixed(2)} km`);
3034      } else {
3035        alert("No store with valid coordinates found.");
3036      }
3037    }
3038
3039    function error(err) {
3040      console.error("Geolocation error:", err);
3041      alert("We couldn't get your location.");
3042    }
3043  });
3044});
3045
3046// ✅ Function to update pickup availability reactively
3047// Delega en la implementacion de assets/pickup-availability.js, que es la unica que
3048// normaliza el nombre de la tienda y sabe pintar el aviso cuando no hay recogida.
3049// Antes habia dos copias de esta logica compitiendo por el mismo evento.
3050function updatePickupAvailability(newStoreNickname) {
3051  if (typeof window.updatePickupAvailabilityDisplay === 'function') {
3052    window.updatePickupAvailabilityDisplay(newStoreNickname);
3053  }
3054}
3055
3056// ✅ Listen for store change events to update pickup availability
3057document.addEventListener('store:changed', function(event) {
3058  const storeName = event.detail.storeName;
3059  if (storeName) {
3060    updatePickupAvailability(storeName);
3061  }
3062});
3063
3064// ✅ Expose globally for access in other scripts
3065window.saveFavoriteStore = saveFavoriteStore;
3066window.cleanSelection = cleanSelection;
3067window.SearchActualStore = SearchActualStore;
3068window.updatePickupAvailability = updatePickupAvailability;
3069
3070  
3071  function waitForGoogleMaps(callback) {
3072    if (window.google && google.maps) {
3073      callback();
3074    } else {
3075      setTimeout(() => waitForGoogleMaps(callback), 100);
3076    }
3077  }
3078
3079
3080  window.initEpicMapHeader = function () {
3081
3082    const stores = [
3083      
3084        {
3085          name: "Denver",
3086          lat: parseFloat("39.7992626"),
3087          lng: parseFloat("-104.8872448"),
3088          address: "5665 Beeler St, Suite 100, Denver, CO 80238",
3089          link: "\/pages\/stores\/epic-cycles-denver-store"
3090        },
3091      
3092        {
3093          name: "Fort Lauderdale ",
3094          lat: parseFloat("26.4557896"),
3095          lng: parseFloat("-80.1917393"),
3096          address: "2051 E Oakland Park Blvd., Oakland Park, FL 33306",
3097          link: "\/pages\/stores\/epic-cycles-fort-lauderdale-store"
3098        },
3099      
3100        {
3101          name: "Houston Town \u0026 Country",
3102          lat: parseFloat("29.7793754"),
3103          lng: parseFloat("-95.5634044"),
3104          address: "799 Town \u0026 Country Blvd, Suite 143, Houston, TX 77024 - 4589",
3105          link: "\/pages\/stores\/epic-cycles-houston-store"
3106        },
3107      
3108        {
3109          name: "Solana Beach",
3110          lat: parseFloat("32.9925211"),
3111          lng: parseFloat("-117.2746643"),
3112          address: "115 N Hwy 101, Solana Beach, CA 92075-1128",
3113          link: "\/pages\/stores\/epic-cycles-solana-beach-store"
3114        },
3115      
3116        {
3117          name: "Epic Cycles Weston",
3118          lat: parseFloat(null),
3119          lng: parseFloat(null),
3120          address: "1390 SW 160th Ave, Sunrise, FL 33326, United States",
3121          link: "\/pages\/stores\/epic-cycles-weston"
3122        },
3123      
3124        {
3125          name: "Folsom",
3126          lat: parseFloat("26.4557896"),
3127          lng: parseFloat("-80.1917393"),
3128          address: "13389 Folsom Blvd #100, Folsom, CA 95630, United States",
3129          link: "\/pages\/stores\/folsom-ca"
3130        },
3131      
3132        {
3133          name: "Houston West University",
3134          lat: parseFloat("29.7268823"),
3135          lng: parseFloat("-95.4314087"),
3136          address: "5182 Buffalo Speedway, Houston",
3137          link: "\/pages\/stores\/houston-west-university"
3138        }
3139      
3140    ];
3141
3142
3143
3144    const centerUSA = { lat: 39.8283, lng: -98.5795 };
3145    const map = new google.maps.Map(document.getElementById("map"), {
3146      zoom: 4,
3147      center: centerUSA,
3148      mapTypeId: 'roadmap',
3149    });
3150
3151    const iconUrl = "//epic-cycles.com/cdn/shop/t/42/assets/icon-map.png?v=183219013167956906931760957018"; // Cambia si tienes un marcador personalizado
3152    const infoWindow = new google.maps.InfoWindow();
3153    const markers = [];
3154
3155    stores.forEach((store, index) => {
3156      const position = { lat: store.lat, lng: store.lng };
3157      const marker = new google.maps.Marker({
3158        map,
3159        position,
3160        title: store.name,
3161        icon: iconUrl || undefined,
3162      });
3163
3164      markers[index] = marker;
3165
3166      marker.addListener("click", () => {
3167        infoWindow.setContent(`
3168          <div class="map-popup">
3169            <strong>${store.name}</strong><br/>
3170            <span>${store.address}</span><br/>
3171            <a href="${store.link}" target="_blank" class="popup-button">HOW TO GET THERE</a>
3172          </div>
3173        `);
3174        infoWindow.open(map, marker);
3175      });
3176
3177      // Evento para mover el mapa al hacer clic en un enlace
3178      document.querySelectorAll(".store-link")[index]?.addEventListener("click", () => {
3179        map.setZoom(14);
3180        map.setCenter(position);
3181        google.maps.event.trigger(marker, 'click');
3182      });
3183    });
3184  };
3185
3186  waitForGoogleMaps(() => {
3187  if (document.getElementById("map")) {
3188    
3189    initEpicMapHeader();
3190  }
3191 
3192});
3193
3194</script>
3194
3195
3196    
3197  </div>
3198  <div class="row search">
3199    
3200
3201<details-modal class="header__search">
3202  <details open="true">
3203     <summary
3204      class="header__icon header__icon--search header__icon--summary link focus-inset modal__toggle"
3205      aria-haspopup="dialog"
3206      aria-label="Search product"
3207    >
3208    </summary>
3209    <div
3210      class="search-modal modal__content gradient"
3211      role="dialog"
3212      aria-modal="true"
3213      aria-label="Search product"
3214    >
3215      <div class="modal-overlay"></div>
3216      <div
3217        class="search-modal__content search-modal__content-bottom"
3218        tabindex="-1"
3219      ><predictive-search class="search-modal__form" data-loading-text="Loading..."><form action="/search" method="get" role="search" class="search search-modal__form">
3220          <div class="field">
3221            <input
3222              class="search__input field__input"
3223              id="Search-In-Modal-2"
3224              type="search"
3225              name="q"
3226              value=""
3227              placeholder="Search product"role="combobox"
3228                aria-expanded="false"
3229                aria-owns="predictive-search-results"
3230                aria-controls="predictive-search-results"
3231                aria-haspopup="listbox"
3232                aria-autocomplete="list"
3233                autocorrect="off"
3234                autocomplete="off"
3235                autocapitalize="off"
3236                spellcheck="false">
3237            <label class="field__label" for="Search-In-Modal-2">Search product</label>
3238            <input type="hidden" name="options[prefix]" value="last">
3239            <button
3240              type="reset"
3241              class="reset__button field__button hidden"
3242              aria-label="Clear search term"
3243            >
3244              <span class="svg-wrapper" aria-hidden="true">
3245                <iconify-icon icon="ei:close" aria-hidden="true"></iconify-icon>
3246              </span>
3247            </button>
3248            <button class="search__button field__button" aria-label="Search product">
3249              <span class="svg-wrapper" aria-hidden="true">
3250                <i class="fa-regular fa-magnifying-glass" aria-hidden="true"></i>
3251              </span>
3252            </button>
3253          </div><div class="predictive-search predictive-search--header" tabindex="-1" data-predictive-search>
3254
3255<div class="predictive-search__loading-state">
3256  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
3257
3258</div>
3259</div>
3260
3261            <span class="predictive-search-status visually-hidden hidden" role="status" aria-hidden="true"></span></form></predictive-search><button
3262          type="button"
3263          class="search-modal__close-button modal__close-button link link--text focus-inset"
3264          aria-label="Close"
3265        >
3266          <span class="svg-wrapper" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
3267</span>
3268        </button>
3269      </div>
3270    </div>
3271  </details>
3272</details-modal>
3273
3274  </div>
3275
3276
3277</header>
3277<script>
3278  (function () {
3279    function bindKeyboardClick(selector) {
3280      document.querySelectorAll(selector).forEach(function (el) {
3281        el.addEventListener('keydown', function (e) {
3282          if (e.target !== el) return;
3283          if (e.key === 'Enter' || e.key === ' ' || e.key === 'Spacebar') {
3284            e.preventDefault();
3285            el.click();
3286          }
3287        });
3288      });
3289    }
3290    // Hacer clickeables con Enter/Espacio todos los div con role=button del header
3291    bindKeyboardClick('header .content-menu-mobile[role="button"]');
3292    bindKeyboardClick('header .content-company-menu-title[role="button"]');
3293    bindKeyboardClick('header .content-labels .label[role="button"]');
3294    bindKeyboardClick('header .content-store > div[role="button"]');
3295
3296    // Sincronizar aria-expanded del botón hamburguesa con la clase del header
3297    var hamburger = document.querySelector('header .content-menu-mobile[role="button"]');
3298    if (hamburger) {
3299      var headerEl = document.querySelector('header');
3300      var observer = new MutationObserver(function () {
3301        hamburger.setAttribute('aria-expanded', headerEl.classList.contains('menu-mobile-opened') ? 'true' : 'false');
3302      });
3303      observer.observe(headerEl, { attributes: true, attributeFilter: ['class'] });
3304    }
3305
3306    // Sincronizar aria-pressed de los labels Shop / Epic sections cuando se hace click
3307    document.querySelectorAll('header .content-labels .label[role="button"]').forEach(function (label) {
3308      label.addEventListener('click', function () {
3309        document.querySelectorAll('header .content-labels .label[role="button"]').forEach(function (other) {
3310          other.setAttribute('aria-pressed', other === label ? 'true' : 'false');
3311        });
3312      });
3313    });
3314
3315    // A11y: Company menu (Menu desktop) — abrir/cerrar con teclado y mover foco
3316    var companyTitle = document.querySelector('header .content-company-menu-title[role="button"]');
3317    var companyContainer = document.querySelector('header .content-company-menu-container');
3318    if (companyTitle && companyContainer) {
3319      function openCompanyMenu() {
3320        companyTitle.parentElement.classList.add('open');
3321        companyContainer.classList.add('open');
3322        companyTitle.setAttribute('aria-expanded', 'true');
3323      }
3324      function closeCompanyMenu() {
3325        companyTitle.parentElement.classList.remove('open');
3326        companyContainer.classList.remove('open');
3327        companyTitle.setAttribute('aria-expanded', 'false');
3328      }
3329      // Enter/Espacio: abre y mueve foco al primer link
3330      companyTitle.addEventListener('keydown', function (e) {
3331        if (e.target !== companyTitle) return;
3332        if (e.key === 'Enter' || e.key === ' ' || e.key === 'Spacebar') {
3333          e.preventDefault();
3334          var isOpen = companyTitle.getAttribute('aria-expanded') === 'true';
3335          if (isOpen) {
3336            closeCompanyMenu();
3337          } else {
3338            openCompanyMenu();
3339            var firstLink = companyContainer.querySelector('a, [role="button"]');
3340            if (firstLink) setTimeout(function () { firstLink.focus(); }, 50);
3341          }
3342        } else if (e.key === 'ArrowDown') {
3343          e.preventDefault();
3344          openCompanyMenu();
3345          var firstLink = companyContainer.querySelector('a, [role="button"]');
3346          if (firstLink) firstLink.focus();
3347        } else if (e.key === 'Escape') {
3348          closeCompanyMenu();
3349        }
3350      });
3351      // Esc dentro del container: cerrar y devolver foco al título
3352      companyContainer.addEventListener('keydown', function (e) {
3353        if (e.key === 'Escape') {
3354          closeCompanyMenu();
3355          companyTitle.focus();
3356        }
3357      });
3358      // Cerrar al perder foco fuera del container
3359      companyContainer.addEventListener('focusout', function () {
3360        setTimeout(function () {
3361          if (!companyContainer.contains(document.activeElement) && document.activeElement !== companyTitle) {
3362            closeCompanyMenu();
3363          }
3364        }, 0);
3365      });
3366      // Sincronizar aria-expanded con hover (mouseenter/leave del JS existente)
3367      var observer = new MutationObserver(function () {
3368        var hasOpen = companyContainer.classList.contains('open');
3369        companyTitle.setAttribute('aria-expanded', hasOpen ? 'true' : 'false');
3370      });
3371      observer.observe(companyContainer, { attributes: true, attributeFilter: ['class'] });
3372    }
3373  })();
3374</script>
3374
3375
3376</div>
3377<!-- END sections: header-group -->
3378  
3379      
3380  
3381      <main id="content" class="content-for-layout focus-none template-page-blog" role="main" tabindex="-1">
3382        <section id="shopify-section-template--19720076460079__custom_featured_article_xtiVHz" class="shopify-section section"><section class="featured-blog main-container">
3383  <h1>Blog</h1>
3384  
3385
3386  
3387    <div class="content-img-text">
3388      <div class="content-img">
3389        
3390          <img src="//epic-cycles.com/cdn/shop/articles/harookz-45-5964.jpg?v=1773418494&width=800" alt="Smart Technology in Bicycles: Revolutionizing the Ride">
3391        
3392      </div>
3393      <div class="content-text">
3394        
3395        <h2>Smart Technology in Bicycles: Revolutionizing the Ride</h2>
3396        <a class="btn" href="/blogs/epic/smart-technology-in-bicycles-revolutionizing-the-ride">Read More</a>
3397      </div>
3398    </div>
3399  
3400</section>
3401
3402
3403</section><section id="shopify-section-template--19720076460079__featured_blog_Hnf83f" class="shopify-section"><section class="featured-blog content-anchors" id="tags">
3404  <div class="btn-mobile click-to-open-popup" data-popup="featured-blog-filters">
3405    <p>Categories</p>
3406    <iconify-icon icon="mynaui:filter"></iconify-icon>
3407  </div>
3408
3409  <a class="filter-link active" href="?tag=">View all</a><a class="filter-link" href="?tag=benefits-of-electric-bikes#tags">Benefits of electric bikes</a><a class="filter-link" href="?tag=bikerace#tags">bikerace</a><a class="filter-link" href="?tag=chris-froome#tags">chris froome</a><a class="filter-link" href="?tag=city-urban-e-bikes#tags">City/Urban e-bikes</a><a class="filter-link" href="?tag=cycling#tags">cycling</a><p class="more click-to-open-popup" data-popup="featured-blog-filters">+ More</p></section><section class="featured-blog content-news">
3410  <div class="box-news" data-blog-handle="epic">
3411    
3412    <!-- Fila 1: 3 artículos -->
3413    
3414      <a href="/blogs/epic/pinarello-dogma-x-with-dura-ace-vs-sram-red-axs-which-build-should-you-actually-ride" class="news ">
3415  <div class="content-img">
3416    
3417      <img src="//epic-cycles.com/cdn/shop/articles/Email_Dogma_X-01.jpg?v=1776454773" alt="Pinarello Dogma X with Dura-Ace vs. SRAM RED AXS: Which Build Should You Actually Ride?">
3418    
3419  </div>
3420  <div class="content-text">
3421    <h6></h6>
3422    <p>Pinarello Dogma X with Dura-Ace vs. SRAM RED AXS: Which Build Should You Actually Ride?</p>
3423  </div>
3424</a>
3425
3426    
3427      <a href="/blogs/epic/electric-mountain-bike-maintenance-guide-turbo-levo-tips-epic-cycles" class="news ">
3428  <div class="content-img">
3429    
3430      <img src="//epic-cycles.com/cdn/shop/articles/harookz-17-3904.jpg?v=1773418185" alt="Electric Mountain Bike Maintenance Guide | Turbo Levo Tips | Epic Cycles">
3431    
3432  </div>
3433  <div class="content-text">
3434    <h6></h6>
3435    <p>Electric Mountain Bike Maintenance Guide | Turbo Levo Tips | Epic Cycles</p>
3436  </div>
3437</a>
3438
3439    
3440      <a href="/blogs/epic/welcome-spring-time-to-upgrade-and-ride-epic" class="news ">
3441  <div class="content-img">
3442    
3443      <img src="//epic-cycles.com/cdn/shop/articles/Banner-Web_SpringSale_507635b5-f872-42b8-88c3-92bfc38f843c.jpg?v=1761731817" alt="Welcome Spring! Time to UPGRADE and RIDE EPIC!">
3444    
3445  </div>
3446  <div class="content-text">
3447    <h6>Spring Sale</h6>
3448    <p>Welcome Spring! Time to UPGRADE and RIDE EPIC!</p>
3449  </div>
3450</a>
3451
3452    
3453
3454    <!-- Fila 2: 3 artículos -->
3455    
3456      <a href="/blogs/epic/smart-technology-in-bicycles-revolutionizing-the-ride" class="news ">
3457  <div class="content-img">
3458    
3459      <img src="//epic-cycles.com/cdn/shop/articles/harookz-45-5964.jpg?v=1773418494" alt="Smart Technology in Bicycles: Revolutionizing the Ride">
3460    
3461  </div>
3462  <div class="content-text">
3463    <h6></h6>
3464    <p>Smart Technology in Bicycles: Revolutionizing the Ride</p>
3465  </div>
3466</a>
3467
3468    
3469      <a href="/blogs/epic/essential-safety-tips-every-cyclist-should-know-beyond-the-basics" class="news ">
3470  <div class="content-img">
3471    
3472      <img src="//epic-cycles.com/cdn/shop/articles/AQ9I9322.jpg?v=1725888993" alt="Essential Safety Tips Every Cyclist Should Know: Beyond the Basics">
3473    
3474  </div>
3475  <div class="content-text">
3476    <h6></h6>
3477    <p>Essential Safety Tips Every Cyclist Should Know: Beyond the Basics</p>
3478  </div>
3479</a>
3480
3481    
3482      <a href="/blogs/epic/design-your-dream-bike-custom-builds" class="news ">
3483  <div class="content-img">
3484    
3485      <img src="//epic-cycles.com/cdn/shop/articles/PXL_20240414_220841606.PORTRAIT.ORIGINAL.jpg?v=1723823364" alt="Design Your Dream Bike: Custom Builds">
3486    
3487  </div>
3488  <div class="content-text">
3489    <h6></h6>
3490    <p>Design Your Dream Bike: Custom Builds</p>
3491  </div>
3492</a>
3493
3494    
3495
3496    <!-- Fila 3: destacado (1 artículo) -->
3497    
3498    
3499      <a href="/blogs/epic/exploring-different-types-of-mountains-bikes" class="news w100">
3500  <div class="content-img jola">
3501    
3502      <img src="//epic-cycles.com/cdn/shop/articles/013_MTB-3531__Hero-Video_2800x1620_1.jpg?v=1720454297&width=800" alt="Exploring Different Types of Mountains Bikes">
3503    
3504  </div>
3505  <div class="content-text">
3506    <h6></h6>
3507    <p>Exploring Different Types of Mountains Bikes</p>
3508  </div>
3509</a>
3510
3511    
3512
3513    <!-- Fila 4: últimos 2 -->
3514    
3515      <a href="/blogs/epic/everything-you-need-to-know-about-endurance-bikes" class="news w50">
3516  <div class="content-img">
3517    
3518      <img src="//epic-cycles.com/cdn/shop/articles/Dogma_x.jpg?v=1718299560" alt="Everything You Need to Know About Endurance Bikes">
3519    
3520  </div>
3521  <div class="content-text">
3522    <h6>cycling, pinarello, pinarello dogma</h6>
3523    <p>Everything You Need to Know About Endurance Bikes</p>
3524  </div>
3525</a>
3526
3527    
3528      <a href="/blogs/epic/a-beginners-guide-to-the-2024-giro-ditalia-what-to-expect" class="news w50">
3529  <div class="content-img">
3530    
3531      <img src="//epic-cycles.com/cdn/shop/articles/giro_f.jpg?v=1715004607" alt="A Beginner's Guide to the 2024 Giro d'Italia: What to Expect">
3532    
3533  </div>
3534  <div class="content-text">
3535    <h6></h6>
3536    <p>A Beginner's Guide to the 2024 Giro d'Italia: What to Expect</p>
3537  </div>
3538</a>
3539
3540    
3541  </div>
3542
3543  
3544  <div class="content-btn" id="load-more-wrapper">
3545    <button class="btn ghost ajaxinate-trigger" id="load-more" data-page="2" data-tag="">See more</button>
3546  </div>
3547
3548
3549
3550  
3551</section>
3552
3553
3554
3555<section class="featured-blog content-highlights">
3556  <h2>Highlights</h2>
3557
3558  <div class="content-slider slider-highlights slider-white">
3559
3560    
3561      <a href="/blogs/epic/pinarello-dogma-x-with-dura-ace-vs-sram-red-axs-which-build-should-you-actually-ride" class="slide">
3562        <div class="slide-box">
3563          <div class="content-img">
3564            
3565              <img src="//epic-cycles.com/cdn/shop/articles/Email_Dogma_X-01.jpg?v=1776454773&width=800" alt="Pinarello Dogma X with Dura-Ace vs. SRAM RED AXS: Which Build Should You Actually Ride?">
3566            
3567          </div>
3568          <div class="content-text">
3569            <h6></h6>
3570            <p>Pinarello Dogma X with Dura-Ace vs. SRAM RED AXS: Which Build Should You Actually Ride?</p>
3571          </div>
3572        </div>
3573      </a>
3574    
3575      <a href="/blogs/epic/electric-mountain-bike-maintenance-guide-turbo-levo-tips-epic-cycles" class="slide">
3576        <div class="slide-box">
3577          <div class="content-img">
3578            
3579              <img src="//epic-cycles.com/cdn/shop/articles/harookz-17-3904.jpg?v=1773418185&width=800" alt="Electric Mountain Bike Maintenance Guide | Turbo Levo Tips | Epic Cycles">
3580            
3581          </div>
3582          <div class="content-text">
3583            <h6></h6>
3584            <p>Electric Mountain Bike Maintenance Guide | Turbo Levo Tips | Epic Cycles</p>
3585          </div>
3586        </div>
3587      </a>
3588    
3589      <a href="/blogs/epic/welcome-spring-time-to-upgrade-and-ride-epic" class="slide">
3590        <div class="slide-box">
3591          <div class="content-img">
3592            
3593              <img src="//epic-cycles.com/cdn/shop/articles/Banner-Web_SpringSale_507635b5-f872-42b8-88c3-92bfc38f843c.jpg?v=1761731817&width=800" alt="Welcome Spring! Time to UPGRADE and RIDE EPIC!">
3594            
3595          </div>
3596          <div class="content-text">
3597            <h6>Spring Sale</h6>
3598            <p>Welcome Spring! Time to UPGRADE and RIDE EPIC!</p>
3599          </div>
3600        </div>
3601      </a>
3602    
3603      <a href="/blogs/epic/smart-technology-in-bicycles-revolutionizing-the-ride" class="slide">
3604        <div class="slide-box">
3605          <div class="content-img">
3606            
3607              <img src="//epic-cycles.com/cdn/shop/articles/harookz-45-5964.jpg?v=1773418494&width=800" alt="Smart Technology in Bicycles: Revolutionizing the Ride">
3608            
3609          </div>
3610          <div class="content-text">
3611            <h6></h6>
3612            <p>Smart Technology in Bicycles: Revolutionizing the Ride</p>
3613          </div>
3614        </div>
3615      </a>
3616    
3617      <a href="/blogs/epic/essential-safety-tips-every-cyclist-should-know-beyond-the-basics" class="slide">
3618        <div class="slide-box">
3619          <div class="content-img">
3620            
3621              <img src="//epic-cycles.com/cdn/shop/articles/AQ9I9322.jpg?v=1725888993&width=800" alt="Essential Safety Tips Every Cyclist Should Know: Beyond the Basics">
3622            
3623          </div>
3624          <div class="content-text">
3625            <h6></h6>
3626            <p>Essential Safety Tips Every Cyclist Should Know: Beyond the Basics</p>
3627          </div>
3628        </div>
3629      </a>
3630    
3631  </div>
3632</section>
3633
3634<section class="popup-styles featured-blog-filters">
3635  <div class="container">
3636    <div class="content-title">
3637      <div>
3638        <iconify-icon icon="mynaui:filter"></iconify-icon>
3639        <h4>Filters</h4>
3640      </div>
3641      <div class="content-close">
3642        <i class="fa-solid fa-xmark close-this-section"></i>
3643      </div>
3644    </div>
3645
3646    <div class="content-items">
3647      <p><a class="filter-link" href="?tag=">View all</a></p><p><a class="filter-link" href="?tag=benefits-of-electric-bikes#tags">Benefits of electric bikes</a></p><p><a class="filter-link" href="?tag=bikerace#tags">bikerace</a></p><p><a class="filter-link" href="?tag=chris-froome#tags">chris froome</a></p><p><a class="filter-link" href="?tag=city-urban-e-bikes#tags">City/Urban e-bikes</a></p><p><a class="filter-link" href="?tag=cycling#tags">cycling</a></p><p><a class="filter-link" href="?tag=dogma-f1#tags">dogma f1</a></p><p><a class="filter-link" href="?tag=dogma-f12#tags">dogma f12</a></p><p><a class="filter-link" href="?tag=folding-e-bikes#tags">Folding e-bikes</a></p><p><a class="filter-link" href="?tag=giovanni-pinarello#tags">Giovanni Pinarello</a></p><p><a class="filter-link" href="?tag=ineos-grenadiers#tags">INEOS Grenadiers</a></p><p><a class="filter-link" href="?tag=nytro-road-e7-ultegra-di2#tags">Nytro Road E7 Ultegra Di2</a></p><p><a class="filter-link" href="?tag=pinarello#tags">pinarello</a></p><p><a class="filter-link" href="?tag=pinarello-dogma#tags">pinarello dogma</a></p><p><a class="filter-link" href="?tag=road#tags">Road</a></p><p><a class="filter-link" href="?tag=road-e-bikes#tags">Road e-bikes</a></p><p><a class="filter-link" href="?tag=spring-sale#tags">Spring Sale</a></p><p><a class="filter-link" href="?tag=tour-de-france#tags">tour de france</a></p><p><a class="filter-link" href="?tag=winter#tags">winter</a></p></div>
3648  </div>
3649</section>
3650
3651
3652
3653
3654</section>
3655      </main>
3656  
3657      <!-- BEGIN sections: footer-group -->
3658<div id="shopify-section-sections--19720077705263__footer" class="shopify-section shopify-section-group-footer-group">
3659<link href="//epic-cycles.com/cdn/shop/t/42/assets/section-footer.css?v=60318643098753476351760957019" rel="stylesheet" type="text/css" media="all" />
3660<link href="//epic-cycles.com/cdn/shop/t/42/assets/component-newsletter.css?v=4727253280200485261760957018" rel="stylesheet" type="text/css" media="all" />
3661<link href="//epic-cycles.com/cdn/shop/t/42/assets/component-list-menu.css?v=151968516119678728991760957018" rel="stylesheet" type="text/css" media="all" />
3662<link href="//epic-cycles.com/cdn/shop/t/42/assets/component-list-payment.css?v=69253961410771838501760957017" rel="stylesheet" type="text/css" media="all" />
3663<link href="//epic-cycles.com/cdn/shop/t/42/assets/component-list-social.css?v=35792976012981934991760957017" rel="stylesheet" type="text/css" media="all" />
3664<style data-shopify>.footer {
3665    margin-top: 0px;
3666  }
3667
3668  .section-sections--19720077705263__footer-padding {
3669    padding-top: 27px;
3670    padding-bottom: 27px;
3671  }
3672
3673  @media screen and (min-width: 750px) {
3674    .footer {
3675      margin-top: 0px;
3676    }
3677
3678    .section-sections--19720077705263__footer-padding {
3679      padding-top: 36px;
3680      padding-bottom: 36px;
3681    }
3682  }</style><footer class="hidden footer color-scheme-1 gradient section-sections--19720077705263__footer-padding" aria-hidden="true"><div class="footer__content-top page-width"><div
3683            class="footer__blocks-wrapper grid grid--1-col grid--2-col grid--4-col-tablet grid--3-col-tablet scroll-trigger animate--slide-in"
3684            
3685              data-cascade
3686            
3687          ><div
3688                class="footer-block grid__item scroll-trigger animate--slide-in"
3689                
3690                
3691                  data-cascade
3692                  style="--animation-order: 1;"
3693                
3694              ></div><div
3695                class="footer-block grid__item scroll-trigger animate--slide-in"
3696                
3697                
3698                  data-cascade
3699                  style="--animation-order: 2;"
3700                
3701              ></div><div
3702                class="footer-block grid__item scroll-trigger animate--slide-in"
3703                
3704                
3705                  data-cascade
3706                  style="--animation-order: 3;"
3707                
3708              ></div><div
3709                class="footer-block grid__item scroll-trigger animate--slide-in"
3710                
3711                
3712                  data-cascade
3713                  style="--animation-order: 4;"
3714                
3715              ></div><div
3716                class="footer-block grid__item scroll-trigger animate--slide-in"
3717                
3718                
3719                  data-cascade
3720                  style="--animation-order: 5;"
3721                
3722              ></div></div><div
3723          class="footer-block--newsletter scroll-trigger animate--slide-in"
3724          
3725            data-cascade
3726          
3727        ><div class="footer-block__newsletter"><h2 class="footer-block__heading inline-richtext">Subscribe to our emails</h2><form method="post" action="/contact#ContactFooter" id="ContactFooter" accept-charset="UTF-8" class="footer__newsletter newsletter-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="contact[tags]" value="newsletter">
3728                <div class="newsletter-form__field-wrapper">
3729                  <div class="field">
3730                    <input
3731                      id="NewsletterForm--sections--19720077705263__footer"
3732                      type="email"
3733                      name="contact[email]"
3734                      class="field__input"
3735                      value=""
3736                      aria-required="true"
3737                      autocorrect="off"
3738                      autocapitalize="off"
3739                      autocomplete="email"
3740                      
3741                      placeholder="Enter your email"
3742                      required
3743                    >
3744             
3745                    <button
3746                      type="submit"
3747                      class="newsletter-form__button field__button"
3748                      name="commit"
3749                      id="Subscribe"
3750                      aria-label="Subscribe"
3751                    >
3752                      <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
3752ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
3753</span>
3754                    </button>
3755                  </div></div></form></div>
3756
3757<div class="content-rrss footer__list-social">
3758  
3759    <a href="https://www.instagram.com/epic.cycles/?hl=en" target="_blank" rel="noopener" aria-label="Instagram (opens in a new tab)">
3760      <iconify-icon icon="iconoir:instagram" aria-hidden="true"></iconify-icon>
3761    </a>
3762  
3763  
3764    <a href="https://www.facebook.com/Epic.Cycles1/" target="_blank" rel="noopener" aria-label="Facebook (opens in a new tab)">
3765      <iconify-icon icon="basil:facebook-solid" aria-hidden="true"></iconify-icon>
3766    </a>
3767  
3768  
3769    <a href="https://www.tiktok.com/@epic.cycles" target="_blank" rel="noopener" aria-label="TikTok (opens in a new tab)">
3770      <iconify-icon icon="ic:baseline-tiktok" aria-hidden="true"></iconify-icon>
3771    </a>
3772  
3773  
3774    <a href="https://www.youtube.com/@Epic-Cycles" target="_blank" rel="noopener" aria-label="YouTube (opens in a new tab)">
3775      <iconify-icon icon="qlementine-icons:youtube-16" aria-hidden="true"></iconify-icon>
3776    </a>
3777  
3778  
3779  
3780  
3781  
3782  
3783</div>
3784</div>
3785      </div><div
3786    class="footer__content-bottom scroll-trigger animate--slide-in"
3787    
3788      data-cascade
3789    
3790  >
3791    <div class="footer__content-bottom-wrapper page-width">
3792      <div class="footer__column footer__localization isolate"></div>
3793      <div class="footer__column footer__column--info"></div>
3794    </div>
3795    <div class="footer__content-bottom-wrapper page-width footer__content-bottom-wrapper--center">
3796      <div class="footer__copyright caption">
3797        <small class="copyright__content"
3798          >&copy; 2026, <a href="/" title="">Epic Cycles</a></small>
3799        <small class="copyright__content"><a target="_blank" rel="nofollow" href="https://www.shopify.com?utm_campaign=poweredby&amp;utm_medium=shopify&amp;utm_source=onlinestore">Powered by Shopify</a></small>
3800      
3801      <ul class="footer__policy-links">
3802        
3803          
3804        
3805          
3806        
3807          
3808        
3809          
3810        
3811          
3812        
3813      </ul>
3814    
3815
3816
3817
3818      </div>
3819    </div>
3820  </div>
3821</footer>
3822
3823<footer role="contentinfo" aria-label="Site footer">
3824  <div class="content-info">
3825    <div class="content-logo">
3826      
3827        <img src="//epic-cycles.com/cdn/shop/files/Logos_Epic_Cycles_Vector.svg?v=1760958413" alt="Epic Cycles">
3828      
3829    </div>
3830    <div class="content-contact">
3831      <h6>CONTACT US</h6>
3832      <p class="phone-section">Online Sales: Call: (888) 350-9045 or Text (858) 345-2034</p>
3833      <a href="mailto:[email protected]">[email protected]</a>
3834      <p></p>
3835    </div>
3836  <div class="content-newsletter">
3837  <h4>Subscribe to our emails</h4>
3838  <p>Join the Epic Cycles community and be the first to hear about exclusive offers, product launches, and expert insights.</p><form method="post" action="/contact#ContactFooter" id="ContactFooter" accept-charset="UTF-8" class="footer__newsletter newsletter-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="contact[tags]" value="newsletter">
3839    <div class="newsletter-form__field-wrapper">
3840      <div class="field">
3841        <input
3842          id="NewsletterForm--sections--19720077705263__footer"
3843          type="email"
3844          name="contact[email]"
3845          class="field__input"
3846          value=""
3847          aria-required="true"
3848          autocorrect="off"
3849          autocapitalize="off"
3850          autocomplete="email"
3851          
3852          placeholder="Enter your email"
3853          required
3854        >
3855       
3856        <button
3857          type="submit"
3858          class="newsletter-form__button field__button btn"
3859          name="commit"
3860          id="Subscribe"
3861          aria-label="Subscribe"
3862        >
3863          Subscribe
3864        </button>
3865      </div></div></form></div>
3866
3867  </div>
3868
3869  <div class="content-legal">
3870    <div class="container">
3871      <p><b>Copyright</b> © 2026 Epic-Cycles</p>
3872
3873    <div class="content-policy">
3874
3875      
3876        
3877          <a href="/pages/work-with-us">Work with us</a>
3878        
3879      
3880        
3881          <a href="/pages/policies/terms-of-service">Terms of service</a>
3882        
3883      
3884        
3885          <a href="/pages/policies/privacy-policy">Privacy Policy</a>
3886        
3887      
3888        
3889          <a href="/pages/policies/refund-policy">Refund Policy</a>
3890        
3891      
3892        
3893          <a href="/pages/policies/policies-shipping">Policies & Shipping</a>
3894        
3895      
3896    </div>
3897
3898<div class="content-rrss footer__list-social">
3899  
3900    <a href="https://www.instagram.com/epic.cycles/?hl=en" target="_blank" rel="noopener" aria-label="Instagram (opens in a new tab)">
3901      <iconify-icon icon="iconoir:instagram" aria-hidden="true"></iconify-icon>
3902    </a>
3903  
3904  
3905    <a href="https://www.facebook.com/Epic.Cycles1/" target="_blank" rel="noopener" aria-label="Facebook (opens in a new tab)">
3906      <iconify-icon icon="basil:facebook-solid" aria-hidden="true"></iconify-icon>
3907    </a>
3908  
3909  
3910    <a href="https://www.tiktok.com/@epic.cycles" target="_blank" rel="noopener" aria-label="TikTok (opens in a new tab)">
3911      <iconify-icon icon="ic:baseline-tiktok" aria-hidden="true"></iconify-icon>
3912    </a>
3913  
3914  
3915    <a href="https://www.youtube.com/@Epic-Cycles" target="_blank" rel="noopener" aria-label="YouTube (opens in a new tab)">
3916      <iconify-icon icon="qlementine-icons:youtube-16" aria-hidden="true"></iconify-icon>
3917    </a>
3918  
3919  
3920  
3921  
3922  
3923  
3924</div>
3925</div>
3926  </div>
3927</footer>
3928   
3929<script type="text/javascript" src="//epic-cycles.com/cdn/shop/t/42/assets/jquery-371.js?v=183079375890424050551760957017"></script>
3929<script type="text/javascript" src="//epic-cycles.com/cdn/shop/t/42/assets/iconify-preload.js?v=152420810530867954481786956997"></script>
vendor: 1 bytes, line 3929
3929
3930<script type="text/javascript" src="//epic-cycles.com/cdn/shop/t/42/assets/iconify-icon.min.js?v=105452092215713176021760957018"></script>
vendor: 1 bytes, line 3930
3930
3931<script type="text/javascript" src="//epic-cycles.com/cdn/shop/t/42/assets/slick.js?v=182247254638562121901760957017"></script>
vendor: 1 bytes, line 3931
3931
3932<script type="text/javascript" src="//epic-cycles.com/cdn/shop/t/42/assets/app.js?v=102913159095261900431786956997"></script>
vendor: 1 bytes, line 3932
3932
3933<script type="text/javascript" src="//epic-cycles.com/cdn/shop/t/42/assets/header.js?v=122759108724762625501785265106"></script>
vendor: 1 bytes, line 3933
3933
3934<script type="text/javascript" src="//epic-cycles.com/cdn/shop/t/42/assets/stores-modal.js?v=183952699677099520501787649475"></script>
vendor: 1 bytes, line 3934
3934
3935<script type="text/javascript" src="//epic-cycles.com/cdn/shop/t/42/assets/custom-collections.js?v=1404473524219993951760957017"></script>
vendor: 1 bytes, line 3935
3935
3936<script type="text/javascript" src="//epic-cycles.com/cdn/shop/t/42/assets/epic-hengam-low-stock-clone.js?v=85905311340104199811785255479"></script>
vendor: 1 bytes, line 3936
3936
3937<script type="text/javascript" src="//epic-cycles.com/cdn/shop/t/42/assets/minicart.js?v=94207676926693799151787656768"></script>
vendor: 1 bytes, line 3937
3937
3938<script src="//epic-cycles.com/cdn/shop/t/42/assets/products-general.js?v=30199962697546299201786956997" defer="defer"></script>
vendor: 1 bytes, line 3938
3938
3939<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/nouislider.min.js"></script>
3939
3940
3941
3942</div>
3943<!-- END sections: footer-group -->
3944
3945
3946<div class="product-compare-modal" id="product-compare-modal">
3947  <!-- Header Epic -->
3948  <div class="compare-modal-header">
3949    <div class="header-text">
3950      <h2 class="compare-modal-title">Compare</h2>
3951    </div>
3952    <button class="compare-modal-close" id="close-compare-modal" data-compare-close aria-label="Close compare">
3953      <iconify-icon icon="ei:close"></iconify-icon>
3954    </button>
3955  </div>
3956
3957  <!-- Body -->
3958  <div class="compare-modal-body">
3959    <!-- Empty State Epic -->
3960    <div class="compare-empty-state" id="compare-empty-state">
3961      <div class="empty-icon">
3962        <iconify-icon icon="material-symbols:shopping-cart-outline-rounded"></iconify-icon>
3963      </div>
3964      <h3 class="empty-title">Empty Compare</h3>
3965      <p class="empty-description">Add products to compare and find the best option for you.</p>
3966      
3967      <div class="empty-features">
3968        <div class="feature-item" style="--index: 0">
3969          <iconify-icon icon="material-symbols:compare-arrows-rounded"></iconify-icon>
3970          <span>Compare up to 3 products</span>
3971        </div>
3972        <div class="feature-item" style="--index: 1">
3973          <iconify-icon icon="material-symbols:speed-rounded"></iconify-icon>
3974          <span>Quick comparison</span>
3975        </div>
3976        <div class="feature-item" style="--index: 2">
3977          <iconify-icon icon="material-symbols:workspace-premium-rounded"></iconify-icon>
3978          <span>Full details</span>
3979        </div>
3980      </div>
3981    </div>
3982
3983    <!-- Products List Epic -->
3984    <div class="compare-products-list" id="compare-products-list" style="display: none;">
3985      <!-- Products will be populated here by JavaScript -->
3986    </div>
3987  </div>
3988
3989  <!-- Footer Epic -->
3990  <div class="compare-modal-footer" id="compare-modal-footer" style="display: none;">
3991    <div class="compare-actions">
3992      <button class="btn-clear-all" id="clear-all-compare" data-compare-clean>
3993        Clear
3994      </button>
3995      <a href="/pages/compare" class="btn-compare-now" id="go-to-compare">
3996        Compare
3997      </a>
3998    </div>
3999  </div>
4000</div>
4001
4002<!-- Modal Overlay -->
4003<div class="compare-modal-overlay" id="compare-modal-overlay"></div>
4004
4005      
4006
4007<div class="product-compare-float" id="product-compare-float">
4008  <div class="float-container">
4009    <!-- Sección izquierda Epic -->
4010    <div class="float-left">
4011      <div class="float-products" id="float-products">
4012        <!-- Stack de imágenes de productos -->
4013      </div>
4014    </div>
4015    
4016    <!-- Sección derecha Epic -->
4017    <div class="float-right" id="btn-float-view">
4018      <div class="compare-text">
4019        Compare
4020      </div>
4021      <div class="selected-products">
4022        <span class="count">0</span> <span class="product-text">Selected products</span>
4023      </div>
4024    </div>
4025  </div>
4026</div>
4027
4028<ul hidden>
4029        <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li>
4030        <li id="a11y-new-window-message">Opens in a new window.</li>
4031      </ul>
4032  
4033      
4033<script>
4034        window.shopUrl = 'https://epic-cycles.com';
4035        window.routes = {
4036          cart_add_url: '/cart/add',
4037          cart_change_url: '/cart/change',
4038          cart_update_url: '/cart/update',
4039          cart_url: '/cart',
4040          predictive_search_url: '/search/suggest',
4041        };
4042  
4043        window.cartStrings = {
4044          error: `There was an error while updating your cart. Please try again.`,
4045          quantityError: `You can only add [quantity] of this item to your cart.`,
4046        };
4047  
4048        window.variantStrings = {
4049          addToCart: `Add to cart`,
4050          soldOut: `Sold out`,
4051          unavailable: `Unavailable`,
4052          unavailable_with_option: `[value] - Unavailable`,
4053        };
4054  
4055        window.quickOrderListStrings = {
4056          itemsAdded: `[quantity] items added`,
4057          itemAdded: `[quantity] item added`,
4058          itemsRemoved: `[quantity] items removed`,
4059          itemRemoved: `[quantity] item removed`,
4060          viewCart: `View cart`,
4061          each: `[money]/ea`,
4062          min_error: `This item has a minimum of [min]`,
4063          max_error: `This item has a maximum of [max]`,
4064          step_error: `You can only add this item in increments of [step]`,
4065        };
4066  
4067        window.accessibilityStrings = {
4068          imageAvailable: `Image [index] is now available in gallery view`,
4069          shareSuccess: `Link copied to clipboard`,
4070          pauseSlideshow: `Pause slideshow`,
4071          playSlideshow: `Play slideshow`,
4072          recipientFormExpanded: `Gift card recipient form expanded`,
4073          recipientFormCollapsed: `Gift card recipient form collapsed`,
4074          countrySelectorSearchCount: `[count] countries/regions found`,
4075        };
4076      </script>
4076<script src="//epic-cycles.com/cdn/shop/t/42/assets/predictive-search.js?v=30588223321286415261760957018" defer="defer"></script>
4076<script src="//epic-cycles.com/cdn/shop/t/42/assets/product-info.js?v=149160427226008204701760957017" defer="defer"></script>
4076
4077      
4077<script src="//epic-cycles.com/cdn/shop/t/42/assets/product-form.js?v=52391508203786210791760957016" defer="defer"></script>
4077
4078      
4078<script src="//epic-cycles.com/cdn/shop/t/42/assets/pickup-availability.js?v=86976368063035490701787649475" defer="defer"></script>
4078<script src="//epic-cycles.com/cdn/shop/t/42/assets/product-compare.js?v=98450167166162869741760957017" defer="defer"></script>
4078<script src="//epic-cycles.com/cdn/shop/t/42/assets/quick-add-modal.js?v=20705134880976197251779454368" defer="defer"></script>
4078<script src="//epic-cycles.com/cdn/shop/t/42/assets/product-card-hover.js?v=111603181540343972631764097428" defer="defer"></script>
4078
4079      
4080    <div id="shopify-block-AaHdZdWJnbGpPY1RIa__13191946590013868116" class="shopify-block shopify-app-block">
4081
4082
4083
4084<script type="application/json" id="feebee-config">
4085
4086    {
4087      "relevantFeesOnCurrentPage":[],
4088      "globalFees":[],
4089      "feesApplyingToAllProducts":[],
4090      "globalFeeProductVariantId": null,
4091      "productCollectionsIds": [],
4092      "currentProductId": "",
4093      "currentProductVariantIds": [],
4094      "currentProductCollectionIds": [],
4095      "currentMarketId": "gid:\/\/shopify\/Market\/2079359023",
4096      "shopCurrency": "USD",
4097      "customerTagChecks": [],
4098      
4099      "initialCart": {
4100        "currency": "USD",
4101        "ids": [],
4102        "keys": [],
4103        "originalLinePrices": [],
4104        "productIds": [],
4105        "quantities": [],
4106        "variantIds": []
4107      }
4108    }
4109</script>
4109
4110
4111<script src="https://cdn.shopify.com/extensions/01a0e879-67fe-735a-bf95-b3bcae58eb3a/feebee-155/assets/global-fees.js" defer></script>
4111
4112
4113
4114
4115</div><div id="shopify-block-AOWtzVTVmbzR4cWlHT__4061177414627956758" class="shopify-block shopify-app-block">
4115<script>
4116  window.zooomyWish={
4117    "shop":'epic-cycles2018.myshopify.com',
4118    'local':'en',
4119    'customerId':'',
4120    'customerEmail':'',
4121    'customerName':' ',
4122    'page'  :'page.blog',
4123    'productId':'',
4124    'productHandle' : ''
4125  }
4126</script>
vendor: 2 bytes, line 4126
4126
4127<script src="https://zooomyapps.com/wishlist/ZooomyColl.js" data-shop-id="epic-cycles2018.myshopify.com" data-cus-id="" data-cus-email="" data-cus-name=" " data-page="page.blog" async defer></script>
4127
4128
4129</div><div id="shopify-block-ANWk3VXE0N3BIWEMvV__11349500561483629931" class="shopify-block shopify-app-block">
4129<script id="ReStock-config">
4130  var _ReStockConfig = window._ReStockConfig || {};
4131
4132  _ReStockConfig.templateName = "page";
4133  _ReStockConfig.isB2BCustomer = null;
4134  _ReStockConfig.currentLocationId = null;
4135  _ReStockConfig.moneyFormat = "${{amount}}";_ReStockConfig.marketHandle = "us";
4136  _ReStockConfig.marketId = 2079359023;let metafieldConfigData = null;metafieldConfigData = {"ask_for_gdpr_consent_enabled":false,"not_selectable_variants_enabled":false,"pre_order_products_enabled":false,"ui_style":{"notify_me_styles":[{"wrapper":null,"page":"COLLECTION_PAGE","inline_display_mode":"NOT_DISPLAYED","show_floating_button":false,"inject_in_parent_of_wrapper":false,"inject_to_all_wrappers":false,"handle_rerenders":true,"prepend_to_wrapper":false,"custom_styles":null,"product_card_selector":null,"style_mode":"SMART"},{"wrapper":null,"page":"LANDING_PAGES","inline_display_mode":"NOT_DISPLAYED","show_floating_button":false,"inject_in_parent_of_wrapper":false,"inject_to_all_wrappers":false,"handle_rerenders":true,"prepend_to_wrapper":false,"custom_styles":null,"product_card_selector":null,"style_mode":"SMART"}],"product_page_notify_me_style":{"wrapper":null,"support_wrapper":null,"css_selector_from_theme":null,"inline_display_mode":"BUTTON","show_floating_button":false,"hide_buy_it_now_button":true,"inject_in_parent_of_wrapper":false,"inject_to_all_wrappers":false,"handle_rerenders":true,"prepend_to_wrapper":false,"css_selector":null,"css_selector_by_support":null,"custom_styles":null,"custom_variant_listener":{"element":null,"property":null,"is_dataset_property":false},"use_add_to_cart_button_selector":true,"style_mode":"SMART"},"subscription_form_style":{"custom_styles":null,"style_mode":"SMART","name_field_is_visible":false,"name_field_is_required":false,"email_field_is_required":false,"phone_field_is_required":false,"whatsapp_field_is_required":false,"quantity_field_is_visible":false,"quantity_max_value":10},"button_classes":null,"global_raw_css":"display: none","product_page_raw_css":null,"after_subscribe_message_styles":{"toastColor":"202223","toastBackgroundColor":"d9dfea"}},"ui_contents":[{"notify_me_contents":[{"page":"PRODUCT_PAGE","button_text":"Notify me","not_selectable_variants_button_text":"Out of stock? Click here"},{"page":"COLLECTION_PAGE","button_text":"Notify me","not_selectable_variants_button_text":"Out of stock? Click here"},{"page":"LANDING_PAGES","button_text":"Notify me","not_selectable_variants_button_text":"Out of stock? Click here"}],"subscription_form_content":{"form_title":"Notify me via:","email_input_placeholder":"Email Address ...","email_input_below_text":"Don’t worry! We hate spam as much as you do.","email_label":"Email","full_name_label":"Name","full_name_placeholder":"Full name ...","push_label":"Push notification","sms_label":"SMS","sms_input_placeholder":"Phone Number ...","whatsapp_label":"Whatsapp","whatsapp_input_placeholder":"Whatsapp Number ...","empty_name_error_message":"Name is required.","name_length_error_message":"Name is too long.","invalid_email_error_message":"Your email address is not valid.","empty_email_error_message":"Email is required.","invalid_phone_number_error_message":"Your phone number is not valid.","empty_phone_number_error_message":"Phone number is required.","no_channels_selected_error_message":"You need to subscribe to one of the channels.","button_text":"Notify Me When Available","add_to_contacts_checkbox_text":"Notify me about other news or offers too","privacy_policy_text":"I have read and agree to the {{privacy_policy_url_text}}.","privacy_policy_url_text":"privacy policy","privacy_policy_url":"","privacy_policy_error_message":"You must accept our privacy policy","after_subscribe_message_text":"We will notify you when the item is available","already_subscribed_message_text":"You already have subscribed for this item","push_is_not_allowed_message_text":"You didn\\'t allow this site to send you push notifications. To receive back-in-stock notification from this shop.","style_mode":"SMART","quantity_label":"Quantity"},"language":"en"}],"default_language":"en","shop_id":74611,"app_enabled":true,"base_url":"https://api.notify-me.app","excluded_from_back_in_stock_variants":[],"included_in_back_in_stock_variants":[],"has_contact_integration":false,"ask_for_contact_integration_is_hidden":false,"privacy_policy_is_hidden":true,"disable_branding_permission":true,"is_email_hidden":false,"is_sms_hidden":false,"is_push_hidden":true,"is_whatsapp_hidden":true,"collection_page_show_button_when_any_variant_is_out_of_stock":false,"home_page_show_button_when_any_variant_is_out_of_stock":false,"subscription_limit_reached":false,"is_back_in_stock_active":true,"back_
4136in_stock_product_selection_mode":"ALL","low_stock":{"excluded_variants":[],"is_service_active":true,"widget_settings":{"show_mode":"ALL","inventory_threshold":5},"product_page":{"is_elements_shown":true,"ui_contents":{"en":{"description":"Low Stock!"}},"style_mode":"SMART","widget":{"custom_styles":{"show_icon":true,"icon_color":"c77414","text_color":"c77414"},"wrapper_by_support":null,"inject_to_all_wrappers":false},"inline_button_placements":[]},"collection_page":{"is_elements_shown":true,"ui_contents":{"en":{"description":"Only {{remaining_quantity}} items left in stock!"}},"style_mode":"SMART","widget":{"custom_styles":{"show_icon":true,"icon_color":"EE442E","text_color":"EE442E"},"wrapper_by_support":null,"inject_to_all_wrappers":false},"inline_button_placements":[]},"landing_page":{"is_elements_shown":true,"ui_contents":{"en":{"description":"Only {{remaining_quantity}} items left in stock!"}},"style_mode":"SMART","widget":{"custom_styles":{"show_icon":true,"icon_color":"EE442E","text_color":"EE442E"},"wrapper_by_support":null,"inject_to_all_wrappers":false},"inline_button_placements":[]}},"is_suspended":false,"default_country_code":null};let metafieldPreOrderData = null;metafieldPreOrderData = {"product_page":{"ui_styles":{"badge":{"custom_styles":{"color":"","borderRadius":"","backgroundColor":""},"is_hidden":false},"button":{"custom_styles":{"color":"","borderSize":"","borderColor":"","borderRadius":"","backgroundColor":""},"is_visible":true},"description":{"is_hidden":false},"hide_buy_it_now_button":true,"is_active":true,"price":{"custom_styles":null,"format":"{symbol}{price}","is_hidden":false},"replace_with_add_to_cart_button":true,"selling_plan_selector":{"custom_styles":{"badgeTextColor":"000000","cardTitleColor":"202223","cardBorderColor":"e4e5e7","cardBorderRadius":"8","badgeBorderRadius":"6","cardBackgroundColor":"ffffff","badgeBackgroun
4136dColor":"e4e5e7","cardDescriptionColor":"6d7175"},"is_active":false,"custom_css":""},"style_mode":"MANUAL"},"ui_contents":{"en":{"badge_text":"Pre-order","widget_description":"Expected availability: {{availability_date}}","btn_text":"Pre-order now","availability_date_label":"Expected availability","payment_label":"Payment","soon_available_text":"Coming soon","billing_full_payment_text":"Full payment at checkout","billing_due_now_label":"Due now","billing_due_later_label":"Due later on","selling_plan_full_payment_title":"Full payment","selling_plan_partial_payment_title":"Reserve now, pay later","selling_plan_selector_save_label":"Save"}},"elements_selectors":{"button":{"css_selector":"form.add-to-cart-ec-form>button[type='submit'].product-confirm-select.btn","css_selector_by_support":null,"css_selector_from_theme":null},"price":{"css_selector":null,"css_selector_by_support":null,"css_selector_from_theme":null},"description":{"wrapper_by_support":null},"selling_plan_selector":{"css_selector":null,"css_selector_by_support":null,"css_selector_from_theme":null},"inject_to_all_wrappers":false}},"collection_page":{"ui_styles":{"is_active":false,"button":{"custom_styles":null,"is_visible":true},"badge":{"custom_styles":{"text_color":"000","border_radius":10,"background_color":"e4e5e7","discount_text_color":"000"},"is_visible":false,"position":"TOP_RIGHT"},"style_mode":"SMART"},"ui_contents":{"en":{"btn_text":"Pre-order now","badge_text":"Pre-order"}},"elements_selectors":{"button":{"css_selector":null,"css_selector_by_support":null,"css_selector_from_theme":null},"badge_parent":{"css_selector":null,"css_selector_by_support":null,"css_selector_from_theme":null},"price":{"css_selector":null,"css_selector_by_support":null,"css_selector_from_theme":null,"format":"{symbol}{price}","is_hidden":false},"quick_view_button":{"css_selector":null,"css_selector_by_support":null,"css_selector_from_theme":null},"quick_view_section":{"css_selector":null,"css_selector_by_support":null,"css_selector_from_theme":null},"quick_view_section_add_to_cart_button":{"css_selector":null,"css_selector_by_support":null,"css_selector_from_theme":null},"featured_section":{"css_selector":null,"css_selector_by_support":null,"css_selector_from_theme":null},"inject_to_all_wrappers":false},"enable_variant_listener_on_cards":false},"landing_page":{"ui_styles":{"is_active":false,"button":{"custom_styles":null,"is_visible":true},"badge":{"custom_styles":{"text_color":"000","border_radius":10,"background_color":"e4e5e7","discount_text_color":"000"},"is_visible":false,"position":"TOP_RIGHT"},"style_mode":"SMART","featured_product_is_active":false},"ui_contents":{"en":{"btn_text":"Pre-order now","badge_text":"Pre-order"}},"elements_selectors":{"button":{"css_selector":null,"css_selector_by_support":null,"css_selector_from_theme":null},"badge_parent":{"css_selector":null,"css_selector_by_support":null,"css_selector_from_theme":null},"price":{"css_selector":null,"css_selector_by_support":null,"css_selector_from_theme":null,"format":"{symbol}{price}","is_hidden":false},"quick_view_button":{"css_selector":null,"css_selector_by_support":null,"css_selector_from_theme":null},"quick_view_section":{"css_selector":null,"css_selector_by_support":null,"css_selector_from_theme":null},"quick_view_section_add_to_cart_button":{"css_selector":null,"css_selector_by_support":null,"css_selector_from_theme":null},"featured_section":{"css_selector":null,"css_selector_by_support":null,"css_selector_from_theme":null},"inject_to_all_wrappers":false},"enable_variant_listener_on_cards":false},"limit_reached":false,"variant_ids":[44970683990063,45873267048495,45873267081263,45873267114031,45873266982959,45397197783087,45397197619247,45397197750319,45397197881391,45397197815855,45397197520943,45397197717551,45397197652015,45397197684783,45397197848623,52625705435352,43720644984879,45539212689455,45515549048879,45844915290159,45650977423407,45650977357871,45650977390639,42005468971055,45656524521519,45656524554287,45656526159919,45656525865007,45656526061615,45656525766703,45656526127151,45844949401647,45844949499951,45844949205039,45844949172271,45844949303343,45844949434415,45844949237807,45844949041199,45844948910127,45844948844591,45844948779055,45844948713519,45844948877359,45844948811823,45844949073967,45844948975663,45844949139503,45844948746287,45539212492847,45539212427311,45526061842479,45526061645871,52543470305496,52543470371032,52543470436568,52543470338264,45665055768623,45665055604783,45665055572015,45665055637551,45665055735855,45665055703087,45258954965039,45835562123311,45873175953455,45873176018991,45844874035247,45844873904175,45844874199087,45844873805871,45397199880239,45397199913007],"is_selling_plan_removed_by_support":false,"selling_plans_settings":{"2306539567":{"has_discount":false,"value_type":"percentage","value":0.0}},"selling_plans_billing_settings":{"2306539567":{"payment_type":"FULL","checkout_charge":{"percentage":50,"charge_type":"PERCENTAGE","exact_amount":0},"remaining_fee_checkout_time":{"date_type":"AFTER_SOME_DAYS","exact_date":null,"after_some_days":7}}},"selling_plan_id_to_market_ids":{}
4136,"selling_plan_id_to_variant_ids":{"2306539567":[44970683990063]},"is_service_active":true,"override_cart_requests":true,"excluded_catalogs_products":[],"excluded_catalogs_collections":[],"excluded_company_locations":[],"description_availability_config":{"2306539567":{"type":"SOON","config":{}}},"mixed_cart_alert":{"show_mixed_cart_alert":false,"is_active":false,"ui_styles":{"show_icon":true,"show_title":true,"show_body":true,"style_mode":"SMART","custom_css":"","custom_styles":{"color":"1A1A1A","iconColor":"616161","borderColor":"F1F1F1","borderRadius":8,"backgroundColor":"F1F1F1"}},"elements_selectors":{"cart_page":{"css_selector":null,"css_selector_by_support":null,"css_selector_from_theme":null},"cart_drawer":{"css_selector":null,"css_selector_by_support":null,"css_selector_from_theme":null}},"ui_contents":{"en":{"title":"Shipping Notice","body":"Your order contains items with different delivery dates."}}}};let metafieldWishlistData = undefined;metafieldWishlistData = {"is_service_active":true,"is_guest_mode_enabled":true,"wishlist_buttons":{"product_page":{"is_visible":true,"style_mode":"SMART","custom_styles":null,"inject_to_all_wrappers":false,"icon":null,"inline_button_placements":[]},"collection_page":{"is_visible":false,"custom_styles":null,"icon":"","position":"","mode":"","button_placements":[]},"landing_page":{"is_visible":false,"custom_styles":null,"icon":"","position":"","mode":"","button_placements":[]}},"limit_reached":false,"ui_contents":{"en":{"id":68679,"add_to_wishlist_button_label":"Add to wishlist","remove_from_wishlist_button_label":"It’s in wishlist","list_access_button_label":"Wishlist","list_title":"Wishlist","list_add_all_to_cart_button_label":"Add all to cart","product_card_add_to_cart_button_label":"Add to cart","product_card_out_of_stock_button_label":"Out of stock","empty_list_description":"You didn't like any products yet!","empty_list_explore_button_label":"Explore store","add_to_cart_toast_message":"Added to your cart","login_modal_button_label":"Login","login_modal_description":"Log in to your account to add products to your wishlist and view your previously saved items.","login_modal_title":"Login required"}},"access_button":{"custom_styles":null,"icon":null,"position":null,"hide_floating_button":false,"inline_button_placements":[]},"drawer":{"custom_styles":null,"position":null},"add_to_cart_message":{"custom_styles":null,"position":null},"updated_at":1771953442};let metafieldFlagsData = null;metafieldFlagsData = {};_ReStockConfig._metafields = {
4137    sdkConfig: metafieldConfigData,
4138    preOrderConfig: metafieldPreOrderData,
4139    wishlistConfig: metafieldWishlistData,
4140    featureFlags: metafieldFlagsData
4141  };
4142</script>
4142
4143
4144<!-- BEGIN app snippet: early-cart-guard -->
4144<script id="ReStock-early-cart-guard">
4145(function (window) {
4146  try {
4147    if (window.__nmPreorderEarlyGuard) return;
4148
4149    let cfg = null;
4150    const metafields = window._ReStockConfig?._metafields;
4151    if (metafields?.preOrderConfig && typeof metafields.preOrderConfig === 'object') {
4152      cfg = metafields.preOrderConfig;
4153    }
4154
4155    let wrappersInstalled = false;
4156
4157    window.__nmPreorderEarlyGuard = {
4158      v: 1,
4159      active: true,
4160      setConfig: function (nextConfig) {
4161        if (!nextConfig || typeof nextConfig !== 'object') return;
4162        cfg = nextConfig;
4163        if (cfg.override_cart_requests === true) installWrappers();
4164      }
4165    };
4166
4167    function isGuardActive() {
4168      return window.__nmPreorderEarlyGuard?.active === true;
4169    }
4170
4171    function isCartAddUrl(url) {
4172      try {
4173        const parsed = new URL(String(url), window.document.baseURI);
4174        return /(?:^|\/)cart\/add(?:\.js(?:on)?)?$/.test(parsed.pathname);
4175      } catch (error) {
4176        return false;
4177      }
4178    }
4179
4180    function isPageActive() {
4181      const template = window._ReStockConfig?.templateName;
4182      let pageConfig = null;
4183      if (template === 'product') {
4184        pageConfig = cfg.product_page;
4185      } else if (template === 'collection' || template === 'list-collections' || template === 'search' || template === 'page') {
4186        pageConfig = cfg.collection_page;
4187      } else if (template === 'index') {
4188        pageConfig = cfg.landing_page;
4189      }
4190      return pageConfig?.ui_styles?.is_active === true;
4191    }
4192
4193    function shouldEnrich() {
4194      if (!cfg) return false;
4195      if (cfg.override_cart_requests !== true) return false;
4196      if (cfg.is_service_active !== true) return false;
4197      if (cfg.limit_reached === true) return false;
4198      if (window._ReStockConfig?.isB2BCustomer) return false;
4199      return isPageActive();
4200    }
4201
4202    function isPlanVisibleInMarket(planId) {
4203      const planToMarkets = cfg.selling_plan_id_to_market_ids;
4204      if (!planToMarkets) return true;
4205      const allowedMarketIds = planToMarkets[planId];
4206      if (!allowedMarketIds || allowedMarketIds.length === 0) return true;
4207      const marketId = window._ReStockConfig?.marketId;
4208      if (marketId == null) return true;
4209      return allowedMarketIds.includes(Number(marketId));
4210    }
4211
4212    function findSellingPlanId(variantId) {
4213      const planToVariants = cfg.selling_plan_id_to_variant_ids;
4214      if (!planToVariants) return null;
4215      for (const planId of Object.keys(planToVariants)) {
4216        const variantIds = planToVariants[planId];
4217        if (variantIds && variantIds.includes(variantId) && isPlanVisibleInMarket(planId)) return planId;
4218      }
4219      return null;
4220    }
4221
4222    function localizedContents() {
4223      const contents = cfg.product_page?.ui_contents;
4224      if (!contents || typeof contents !== 'object') return {};
4225      return contents[shopLanguage()] || contents['en'] || Object.values(contents)[0] || {};
4226    }
4227
4228    function shopLanguage() {
4229      const locale = window.Shopify?.locale;
4230      if (locale) return locale;
4231      const documentLanguage = window.document?.documentElement?.lang;
4232      if (documentLanguage && documentLanguage !== 'null') return documentLanguage;
4233      return null;
4234    }
4235
4236    function formatDate(date) {
4237      return date.toISOString().split('T')[0];
4238    }
4239
4240    function toFiniteNumber(value) {
4241      if (typeof value === 'number') return Number.isFinite(value) ? value : null;
4242      if (typeof value === 'string') {
4243        const parsed = parseFloat(value);
4244        return Number.isFinite(parsed) ? parsed : null;
4245      }
4246      return null;
4247    }
4248
4249    function clamp(value, min, max) {
4250      return Math.min(max, Math.max(min, value));
4251    }
4252
4253    function availabilityDateText(planId) {
4254      const settings = cfg.description_availability_config?.[planId];
4255      if (!settings) return '';
4256      if (settings.type === 'SOON') return localizedContents().soon_available_text || '';
4257      if (settings.type === 'SPECIFIC_DATE') {
4258        const parsed = new Date(settings.config.date);
4259        return isNaN(parsed.getTime()) ? '' : formatDate(parsed);
4260      }
4261      if (settings.type === 'RELATIVE_DATE') {
4262        const days = typeof settings.config.days === 'string' ? parseInt(settings.config.days, 10) : settings.config.days;
4263        if (isNaN(days)) return '';
4264        const futureDate = new Date();
4265        futureDate.setDate(futureDate.getDate() + days);
4266        return formatDate(futureDate);
4267      }
4268      return '';
4269    }
4270
4271    function inlineVariantPrice(variantId) {
4272      const variants = window._ReStockConfig?.product?.variants;
4273      if (!Array.isArray(variants)) return null;
4274      const variant = variants.find(function (candidate) {
4275        return Number(candidate?.id) === variantId;
4276      });
4277      if (!variant) return null;
4278      return variant.price ? variant.price / 100 : 0;
4279    }
4280
4281    function finalPriceForPlan(price, planId) {
4282      const adjustment = cfg.selling_plans_settings?.[planId];
4283      if (!adjustment?.has_discount) return price;
4284      if (adjustment.value_type === 'percentage') return price * (1 - adjustment.value / 100);
4285      if (adjustment.value_type === 'fixed_amount') return price - adjustment.value * (window.Shopify?.currency?.rate ?? 1);
4286      return price;
4287    }
4288
4289    function formatMoneyIntl(price) {
4290      const currency = window.Shopify?.currency?.active || 'USD';
4291      const locale = window.Shopify?.locale || 'en-US';
4292      try {
4293        return new Intl.NumberFormat(locale, { style: 'currency', currency: currency }).format(price);
4294      } catch (error) {
4295        return currency + ' ' + price.toFixed(2);
4296      }
4297    }
4298
4299    const AMOUNT_PLACEHOLDER = /\{\{\s*(\w+)\s*\}\}/;
4300
4301    function delimit(cents, precision, thousands, decimal) {
4302      const parts = (cents / 100).toFixed(precision).split('.');
4303      const grouped = parts[0].replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1' + thousands);
4304      return parts[1] ? grouped + (decimal || '.') + parts[1] : grouped;
4305    }
4306
4307    const AMOUNT_FORMATTERS = new Map([
4308      ['amount', function (cents) { return delimit(cents, 2, ','); }],
4309      ['amount_no_decimals', function (cents) { return delimit(cents, 0, ','); }],
4310      ['amount_with_comma_separator', function (cents) { return delimit(cents, 2, '.', ','); }],
4311      ['amount_no_decimals_with_comma_separator', function (cents) { return delimit(cents, 0, '.'); }],
4312      ['amount_with_apostrophe_separator', function (cents) { return delimit(cents, 2, "'"); }],
4313      ['amount_no_decimals_with_space_separator', function (cents) { return delimit(cents, 0, ' '); }],
4314      ['amount_with_space_separator', function (cents) { return delimit(cents, 2, ' ', ','); }],
4315      ['amount_with_period_and_space_separator', function (cents) { return delimit(cents, 2, ' '); }]
4316    ]);
4317
4318    function decodeEntities(s) {
4319      var el = window.document.createElement('textarea'); el.innerHTML = s; return el.value;
4320    }
4321
4322    function moneyFormat() {
4323      const format = window._ReStockConfig?.moneyFormat;
4324      return typeof format === 'string' ? decodeEntities(format.replace(/<[^>]*>/g, '')) : '';
4325    }
4326
4327    function formatMoney(amount) {
4328      const format = moneyFormat();
4329      const formatAmount = AMOUNT_FORMATTERS.get(AMOUNT_PLACEHOLDER.exec(format)?.[1] ?? '');
4330      if (!formatAmount) return formatMoneyIntl(amount);
4331      return format.replace(AMOUNT_PLACEHOLDER, formatAmount(Math.round(amount * 100)));
4332    }
4333
4334    function calculateCheckoutCharge(price, policy) {
4335      const { charge_type, exact_amount, percentage } = policy.checkout_charge;
4336      if (!Number.isFinite(price) || price <= 0) return 0;
4337      if (charge_type === 'PERCENTAGE') return clamp(price * ((toFiniteNumber(percentage) ?? 0) / 100), 0, price);
4338      return clamp(toFiniteNumber(exact_amount) ?? 0, 0, price);
4339    }
4340
4341    function formatRemainingDueDate(policy) {
4342      const { date_type, exact_date, after_some_days } = policy.remaining_fee_checkout_time;
4343      if (date_type === 'EXACT_DATE' && exact_date) {
4344        const parsed = new Date(exact_date + 'T12:00:00Z');
4345        if (!isNaN(parsed.getTime())) return formatDate(parsed);
4346      }
4347      if (date_type === 'AFTER_SOME_DAYS' && after_some_days) {
4348        const days = toFiniteNumber(after_some_days);
4349        if (days === null) return '';
4350        const futureDate = new Date();
4351        futureDate.setDate(futureDate.getDate() + days);
4352        return formatDate(futureDate);
4353      }
4354      return '';
4355    }
4356
4357    function paymentText(planId, variantId) {
4358      const policy = cfg.selling_plans_billing_settings?.[planId];
4359      if (!policy) return '';
4360      const contents = localizedContents();
4361      if (policy.payment_type === 'FULL') return contents.billing_full_payment_text || 'Full payment at checkout';
4362
4363      const price = inlineVariantPrice(variantId);
4364      if (price == null) return '';
4365
4366      const planPrice = finalPriceForPlan(price, planId);
4367      const dueNowAmount = calculateCheckoutCharge(planPrice, policy);
4368      const dueLaterAmount = clamp(planPrice - dueNowAmount, 0, planPrice);
4369      const dueDate = formatRemainingDueDate(policy);
4370
4371      const dueNowLabel = contents.billing_due_now_label || 'Due now';
4372      const dueLaterLabel = contents.billing_due_later_label || 'Due later on';
4373      const formattedDueNow = formatMoney(dueNowAmount);
4374      const formattedDueLater = formatMoney(dueLaterAmount);
4375      const dueLaterPart = dueDate
4376        ? formattedDueLater + ' ' + dueLaterLabel + ' ' + dueDate
4377        : formattedDueLater + ' ' + dueLaterLabel;
4378
4379      return formattedDueNow + ' ' + dueNowLabel + ' · ' + dueLaterPart;
4380    }
4381
4382    const DEFAULT_AVAILABILITY_LABEL = 'Expected availability';
4383    const DEFAULT_PAYMENT_LABEL = 'Payment';
4384    const TYPE_MARKER = 'Type';
4385
4386    function cleanLabel(raw) {
4387      return String(raw == null ? '' : raw)
4388        .replace(/[[\]]/g, '')
4389        .replace(/[\s::]+$/, '')
4390        .trim();
4391    }
4392
4393    function resolvePaymentLabel(raw) {
4394      const cleaned = cleanLabel(raw);
4395      if (!cleaned || cleaned.charAt(0) === '_' || cleaned === TYPE_MARKER || cleaned === DEFAULT_AVAILABILITY_LABEL) {
4396        return DEFAULT_PAYMENT_LABEL;
4397      }
4398      return cleaned;
4399    }
4400
4401    function resolveAvailabilityLabel(raw, paymentLabel) {
4402      const cleaned = cleanLabel(raw);
4403      if (!cleaned || cleaned.charAt(0) === '_' || cleaned === TYPE_MARKER || cleaned === paymentLabel) {
4404        return DEFAULT_AVAILABILITY_LABEL;
4405      }
4406      return cleaned;
4407    }
4408
4409    function visibleCartProperties(planId, variantId) {
4410      const properties = {};
4411      try {
4412        const contents = localizedContents();
4413        const paymentLabel = resolvePaymentLabel(contents.payment_label);
4414        const availabilityLabel = resolveAvailabilityLabel(contents.availability_date_label, paymentLabel);
4415        const availabilityDate = availabilityDateText(planId);
4416        if (availabilityDate) properties[availabilityLabel] = availabilityDate;
4417        const payment = paymentText(planId, variantId);
4418        if (payment) properties[paymentLabel] = payment;
4419      } catch (error) {}
4420      return properties;
4421    }
4422
4423    function setJsonProperty(item, name, value) {
4424      const properties = item.properties && typeof item.properties === 'object' && !Array.isArray(item.properties) ? item.properties : {};
4425      if (properties[name] === value) return false;
4426      properties[name] = value;
4427      item.properties = properties;
4428      return true;
4429    }
4430
4431    function coerceJsonNumbers(item) {
4432      if (item.id) item.id = Number(item.id);
4433      if (item.quantity) item.quantity = Number(item.quantity);
4434    }
4435
4436    function applyVisibleJsonProperties(item, planId, variantId) {
4437      const properties = visibleCartProperties(planId, variantId);
4438      let changed = false;
4439      for (const name of Object.keys(properties)) {
4440        if (setJsonProperty(item, name, properties[name])) changed = true;
4441      }
4442      return changed;
4443    }
4444
4445    function enrichJsonItem(item) {
4446      if (!item || typeof item !== 'object') return false;
4447      const variantId = Number(item.id);
4448      if (!Number.isFinite(variantId)) return false;
4449      const planId = findSellingPlanId(variantId);
4450      if (planId == null) return false;
4451
4452      if (cfg.is_selling_plan_removed_by_support) {
4453        const tagged = setJsonProperty(item, '_purchase_type', 'NM-preorder');
4454        const typed = setJsonProperty(item, 'Type', 'Pre-order');
4455        if (!tagged && !typed) return false;
4456        coerceJsonNumbers(item);
4457        return true;
4458      }
4459
4460      if (item.selling_plan != null && item.selling_plan !== '' && String(item.selling_plan) === String(planId)) return false;
4461
4462      setJsonProperty(item, '_purchase_type', 'NM-preorder');
4463      if (item.selling_plan == null || item.selling_plan === '') item.selling_plan = Number(planId);
4464      if (item.properties._selling_plan_id == null) setJsonProperty(item, '_selling_plan_id', String(planId));
4465      applyVisibleJsonProperties(item, planId, variantId);
4466      coerceJsonNumbers(item);
4467      return true;
4468    }
4469
4470    function enrichJson(data) {
4471      if (!data || typeof data !== 'object') return false;
4472      if (Array.isArray(data.items)) {
4473        let changed = false;
4474        for (const item of data.items) {
4475          if (enrichJsonItem(item)) changed = true;
4476        }
4477        return changed;
4478      }
4479      if (data.items && typeof data.items === 'object') return enrichJsonItem(data.items);
4480      return enrichJsonItem(data);
4481    }
4482
4483    function paramScopes(params) {
4484      const prefixes = [];
4485      const seen = {};
4486      params.forEach(function (value, key) {
4487        const match = /^items\[(\d+)\]\[id\]$/.exec(key);
4488        if (match && !seen[match[1]]) {
4489          seen[match[1]] = true;
4490          prefixes.push('items[' + match[1] + ']');
4491        }
4492      });
4493      if (prefixes.length > 0) return prefixes;
4494      if (params.get('items[id]') != null) return ['items'];
4495      if (params.get('id') != null) return [''];
4496      return [];
4497    }
4498
4499    function scopeKey(prefix, name) {
4500      return prefix ? prefix + '[' + name + ']' : name;
4501    }
4502
4503    function scopePropertyKey(prefix, name) {
4504      return prefix ? prefix + '[properties][' + name + ']' : 'properties[' + name + ']';
4505    }
4506
4507    function setParam(params, key, value) {
4508      if (params.get(key) === value) return false;
4509      params.set(key, value);
4510      return true;
4511    }
4512
4513    function applyRemovedBySupportParams(params, prefix) {
4514      const tagged = setParam(params, scopePropertyKey(prefix, '_purchase_type'), 'NM-preorder');
4515      const typed = setParam(params, scopePropertyKey(prefix, 'Type'), 'Pre-order');
4516      return tagged || typed;
4517    }
4518
4519    function applyVisibleParamProperties(params, prefix, planId, variantId) {
4520      const properties = visibleCartProperties(planId, variantId);
4521      let changed = false;
4522      for (const name of Object.keys(properties)) {
4523        if (setParam(params, scopePropertyKey(prefix, name), properties[name])) changed = true;
4524      }
4525      return changed;
4526    }
4527
4528    function enrichParamScope(params, prefix, planId, variantId) {
4529      if (cfg.is_selling_plan_removed_by_support) return applyRemovedBySupportParams(params, prefix);
4530
4531      const existingPlan = params.get(scopeKey(prefix, 'selling_plan'));
4532      if (existingPlan != null && existingPlan !== '' && String(existingPlan) === String(planId)) return false;
4533
4534      let changed = setParam(params, scopePropertyKey(prefix, '_purchase_type'), 'NM-preorder');
4535      if (existingPlan == null || existingPlan === '') {
4536        params.set(scopeKey(prefix, 'selling_plan'), String(planId));
4537        changed = true;
4538      }
4539      if (params.get(scopePropertyKey(prefix, '_selling_plan_id')) == null) {
4540        params.set(scopePropertyKey(prefix, '_selling_plan_id'), String(planId));
4541        changed = true;
4542      }
4543      if (applyVisibleParamProperties(params, prefix, planId, variantId)) changed = true;
4544      return changed;
4545    }
4546
4547    function enrichParams(params) {
4548      const scopes = paramScopes(params);
4549      let changed = false;
4550      for (const prefix of scopes) {
4551        const variantId = Number(params.get(scopeKey(prefix, 'id')));
4552        if (!Number.isFinite(variantId)) continue;
4553        const planId = findSellingPlanId(variantId);
4554        if (planId == null) continue;
4555        if (enrichParamScope(params, prefix, planId, variantId)) changed = true;
4556      }
4557      return changed;
4558    }
4559
4560    function enrichBody(body) {
4561      if (typeof body === 'string') {
4562        let jsonData = null;
4563        try {
4564          jsonData = JSON.parse(body);
4565        } catch (error) {
4566          jsonData = null;
4567        }
4568        if (jsonData && typeof jsonData === 'object') {
4569          return enrichJson(jsonData) ? { body: JSON.stringify(jsonData), changed: true } : { body: body, changed: false };
4570        }
4571        const params = new URLSearchParams(body);
4572        return enrichParams(params) ? { body: params.toString(), changed: true } : { body: body, changed: false };
4573      }
4574      if (typeof FormData !== 'undefined' && body instanceof FormData) {
4575        return { body: body, changed: enrichParams(body) };
4576      }
4577      if (typeof URLSearchParams !== 'undefined' && body instanceof URLSearchParams) {
4578        return { body: body, changed: enrichParams(body) };
4579      }
4580      return { body: body, changed: false };
4581    }
4582
4583    function extractRequestUrl(input) {
4584      if (typeof input === 'string') return input;
4585      if (typeof input?.url === 'string') return input.url;
4586      if (typeof input?.href === 'string') return input.href;
4587      return '';
4588    }
4589
4590    function maybeEnrichFetchInit(input, init) {
4591      if (!isGuardActive() || !init || init.body == null) return init;
4592      const url = extractRequestUrl(input);
4593      if (!isCartAddUrl(url) || !shouldEnrich()) return init;
4594      const enriched = enrichBody(init.body);
4595      if (!enriched.changed) return init;
4596      return { ...init, body: enriched.body };
4597    }
4598
4599    function installWrappers() {
4600      if (wrappersInstalled) return;
4601      wrappersInstalled = true;
4602
4603      const originalFetch = window.fetch;
4604      window.fetch = function (input, init) {
4605        let nextInit = init;
4606        try {
4607          nextInit = maybeEnrichFetchInit(input, init);
4608        } catch (error) {}
4609        return originalFetch.call(this || window, input, nextInit);
4610      };
4611
4612      const xhrPrototype = window.XMLHttpRequest?.prototype;
4613      if (xhrPrototype) {
4614        const originalOpen = xhrPrototype.open;
4615        const originalSend = xhrPrototype.send;
4616        xhrPrototype.open = function () {
4617          try {
4618            this.__nmEarlyGuardUrl = arguments[1];
4619          } catch (error) {}
4620          return originalOpen.apply(this, arguments);
4621        };
4622        xhrPrototype.send = function (body) {
4623          try {
4624            if (isGuardActive() && body != null && this.__nmEarlyGuardUrl != null && isCartAddUrl(this.__nmEarlyGuardUrl) && shouldEnrich()) {
4625              const enriched = enrichBody(body);
4626              if (enriched.changed) return originalSend.call(this, enriched.body);
4627            }
4628          } catch (error) {}
4629          return originalSend.apply(this, arguments);
4630        };
4631      }
4632    }
4633
4634    if (cfg?.override_cart_requests === true) installWrappers();
4635  } catch (error) {}
4636})(window);
4637</script>
4637
4638<!-- END app snippet -->
4639<!-- BEGIN app snippet: wishlist-page-container -->
4639<script id="ReStock-wishlist-page-container">
4640(function (window) {
4641  try {
4642    if (window.__nmWishlistPageContainer) return;
4643
4644    const CONTAINER_ID = 'nm-wishlist-page-root';
4645    const TARGET_SELECTORS = ['main#MainContent', 'main', '[role="main"]'];
4646    const RELATIVE_PLACEMENTS = ['before', 'after', 'start', 'end'];
4647
4648    function trimTrailingSlash(path) {
4649      const value = String(path);
4650      return value.length > 1 && value.charAt(value.length - 1) === '/' ? value.slice(0, -1) : value;
4651    }
4652
4653    function stripRoutesRoot(pathname) {
4654      const root = window.Shopify?.routes?.root;
4655      if (typeof root !== 'string') return pathname;
4656      const prefix = trimTrailingSlash(root);
4657      if (prefix === '' || prefix === '/') return pathname;
4658      if (pathname === prefix) return '/';
4659      return pathname.indexOf(prefix + '/') === 0 ? pathname.slice(prefix.length) : pathname;
4660    }
4661
4662    function isConfiguredPage(pagePath) {
4663      const pathname = window.location?.pathname;
4664      if (typeof pathname !== 'string') return false;
4665      return trimTrailingSlash(stripRoutesRoot(pathname)) === trimTrailingSlash(pagePath);
4666    }
4667
4668    function hasShareToken() {
4669      const search = window.location?.search;
4670      if (!search) return false;
4671      return !!new URLSearchParams(search).get('w');
4672    }
4673
4674    function isBootable(wishlistConfig, sdkConfig) {
4675      if (!sdkConfig || typeof sdkConfig !== 'object') return false;
4676      if (sdkConfig.app_enabled !== true) return false;
4677      if (sdkConfig.is_suspended === true) return false;
4678      return wishlistConfig.is_service_active === true;
4679    }
4680
4681    function matchElement(selector) {
4682      try {
4683        return window.document.querySelector(selector) || null;
4684      } catch (error) {
4685        return null;
4686      }
4687    }
4688
4689    function configuredTarget(placement) {
4690      if (!placement || typeof placement !== 'object') return null;
4691      if (typeof placement.css_selector !== 'string' || placement.css_selector === '') return null;
4692      const element = matchElement(placement.css_selector);
4693      if (!element) return null;
4694      const relative = RELATIVE_PLACEMENTS.indexOf(placement.relative_placement) === -1 ? 'start' : placement.relative_placement;
4695      return { element: element, relative: relative };
4696    }
4697
4698    function builtInTarget() {
4699      for (const selector of TARGET_SELECTORS) {
4700        const element = matchElement(selector);
4701        if (element) return { element: element, relative: 'start' };
4702      }
4703      return null;
4704    }
4705
4706    function insertContainer(container, target) {
4707      if (target.relative === 'before' || target.relative === 'after') {
4708        const parent = target.element.parentNode;
4709        if (!parent) return false;
4710        parent.insertBefore(container, target.relative === 'before' ? target.element : target.element.nextSibling || null);
4711        return true;
4712      }
4713      target.element.insertBefore(container, target.relative === 'end' ? null : target.element.firstChild || null);
4714      return true;
4715    }
4716
4717    function createContainer(placement) {
4718      const target = configuredTarget(placement) || builtInTarget();
4719      if (!target) return null;
4720      const container = window.document.createElement('div');
4721      container.id = CONTAINER_ID;
4722      container.setAttribute('data-nm-container-source', 'fallback');
4723      return insertContainer(container, target) ? container : null;
4724    }
4725
4726    function usablePagePath(wishlistConfig) {
4727      const myWishlist = wishlistConfig && typeof wishlistConfig === 'object' ? wishlistConfig.my_wishlist : null;
4728      return myWishlist && typeof myWishlist.page_path === 'string' ? myWishlist.page_path : '';
4729    }
4730
4731    function wishlistPageConfig(wishlistConfig) {
4732      const pagePath = usablePagePath(wishlistConfig);
4733      return pagePath && isConfiguredPage(pagePath) ? wishlistConfig.my_wishlist : null;
4734    }
4735
4736    function armContainer(myWishlist) {
4737      const container = window.document.getElementById(CONTAINER_ID) || createContainer(myWishlist.container_placement);
4738      if (container) container.removeAttribute('data-nm-page-state');
4739    }
4740
4741    function markInactive() {
4742      const container = window.document.getElementById(CONTAINER_ID);
4743      if (container) container.setAttribute('data-nm-page-state', 'inactive');
4744    }
4745
4746    function dearmContainer() {
4747      const stale = window.document.getElementById(CONTAINER_ID);
4748      if (stale && stale.getAttribute('data-nm-container-source') === 'fallback') stale.remove();
4749      else markInactive();
4750    }
4751
4752    function ensure(wishlistConfig, sdkConfig) {
4753      try {
4754        const myWishlist = wishlistPageConfig(wishlistConfig);
4755        if (!myWishlist) {
4756          if (usablePagePath(wishlistConfig)) dearmContainer();
4757          return;
4758        }
4759        const active = myWishlist.type === 'separate_page' || hasShareToken();
4760        if (active && isBootable(wishlistConfig, sdkConfig)) armContainer(myWishlist);
4761        else markInactive();
4762      } catch (error) {}
4763    }
4764
4765    window.__nmWishlistPageContainer = { v: 1, ensure: ensure };
4766
4767    const metafields = window._ReStockConfig?._metafields;
4768    ensure(metafields?.wishlistConfig, metafields?.sdkConfig);
4769  } catch (error) {}
4770})(window);
4771</script>
4771
4772<!-- END app snippet -->
4773
4774<script src="https://cdn.shopify.com/extensions/01a0e83c-88a3-702e-8442-82641270f3fe/bestpush-110/assets/restock-sdk-loader.js?v=1790602660" defer></script>
4774
4775
4776<style>
4777  #nm-wishlist-page-root {
4778    min-height: 60vh;
4779  }
4780
4781  #nm-wishlist-page-root[data-nm-container-source="fallback"] {
4782    box-sizing: border-box;
4783    max-width: 1200px;
4784    margin: 0 auto;
4785    padding: 0 1.5rem;
4786  }
4787
4788  #nm-wishlist-page-root[data-nm-page-state="inactive"]:empty {
4789    display: none;
4790  }
4791
4792  #nm-wishlist-page-root:empty {
4793    display: flex;
4794    align-items: center;
4795    justify-content: center;
4796  }
4797
4798  #nm-wishlist-page-root:empty::after {
4799    content: "";
4800    width: 36px;
4801    height: 36px;
4802    border: 3px solid #e3e3e3;
4803    border-top-color: #1773b0;
4804    border-radius: 50%;
4805    animation: nm-wishlist-page-boot-spin 0.7s linear infinite;
4806  }
4807
4808  @keyframes nm-wishlist-page-boot-spin {
4809    to {
4810      transform: rotate(360deg);
4811    }
4812  }
4813
4814  body:has(#nm-wishlist-page-root:not([data-nm-page-state="inactive"])) .main-page-title,
4815  body:has(#nm-wishlist-page-root:not([data-nm-page-state="inactive"])) .page-title,
4816  body:has(#nm-wishlist-page-root:not(:empty)) .main-page-title,
4817  body:has(#nm-wishlist-page-root:not(:empty)) .page-title {
4818    display: none !important;
4819  }
4820</style>
4821
4822
4823</div><div id="shopify-block-ANEZ6YUIrWjB2bzZUU__11068332061543699368" class="shopify-block shopify-app-block"></div><div id="shopify-block-AU3RpOHNzMElZU0pJQ__6143736321357441667" class="shopify-block shopify-app-block">
4824<script src="//code.tidio.co/odxmoqjzgb5ai5faw7hufhxoelkttban.js?extensionVersion=1.4.1" async></script>
4824
4825
4826    <!-- BEGIN app snippet: visitor-identity-verification -->
4827
4828
4829
4830
4831<!-- END app snippet -->
4832
4833</div><!-- Failed to render app block "18408366429334172745": app block path "shopify://apps/pop-convert-pop-ups-banners/blocks/app-embed/ed587aec-4936-43ae-a1b3-1c9e0d08f185" does not exist -->
4833<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
4833
4834</body>
4835  <style id="acsb-anti-overflow">
4836  /* En contenedores protegidos, impide que accessiBe cambie tipografías/espaciados */
4837  [data-acsb-skip] * {
4838  
4839  }
4840  
4841  /* Evita reflows fuertes en sliders/grids */
4842  [data-acsb-skip] {
4843  
4844    max-width: 100%;
4845  }
4846  access-widget-ui{
4847    z-index: 111 !important;
4848  }
4849  /* Si el widget mete atributos que alteren visibilidad, no afecte el flujo */
4850  [data-acsb-skip] [data-acsb-hidden],
4851  [data-acsb-skip] [data-acsb-now-navigable],
4852  [data-acsb-skip] [data-acsb-tooltip]{
4853    display: initial !important;
4854    visibility: initial !important;
4855    opacity: initial !important;
4856  }
4857  </style>
4858  
4859  </html>
4860  

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.