PageSourceSearch

https://montrealweights.ca/pages/contact-us

html montrealweights.ca collected 2026-09-28 05:54:48 UTC 482,164 bytes, 5,808 lines download raw bytes

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18<!doctype html>
19
20<html
21  class="no-js"
22  lang="en"
23  
24
25>
26  <!-- Google Tag Manager -->
27  
27<script>
vendor: 435 bytes, lines 27-37
27
28    (function (w, d, s, l, i) {
29      w[l] = w[l] || [];
30      w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
31      var f = d.getElementsByTagName(s)[0],
32        j = d.createElement(s),
33        dl = l != 'dataLayer' ? '&l=' + l : '';
34      j.async = true;
35      j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
36      f.parentNode.insertBefore(j, f);
37    })(window, document, 'script', 'dataLayer', '
37GTM-K83WVMM
vendor: 6 bytes, lines 37-38
37');
38  
38</script>
38
39  <!-- End Google Tag Manager -->
40
41  
41<script type="text/javascript">
42    (function (c, l, a, r, i, t, y) {
43      c[a] =
44        c[a] ||
45        function () {
46          (c[a].q = c[a].q || []).push(arguments);
47        };
48      t = l.createElement(r);
49      t.async = 1;
50      t.src = 'https://www.clarity.ms/tag/' + i;
51      y = l.getElementsByTagName(r)[0];
52      y.parentNode.insertBefore(t, y);
53    })(window, document, 'clarity', 'script', 'r570hbyo4m');
54  </script>
54
55
56  
56<script>
57    window.Shopify = window.Shopify || {theme: {id: 192214303089, role: 'main' } };
58    window._template = {
59        directory: "",
60        name: "page",
61        suffix: "contact-us"
62    };
63  </script>
63
64
65  
65<script>
66    (function (c, s, q, u, a, r, e) {
67      c.hj =
68        c.hj ||
69        function () {
70          (c.hj.q = c.hj.q || []).push(arguments);
71        };
72      c._hjSettings = { hjid: a };
73      r = s.getElementsByTagName('head')[0];
74      e = s.createElement('script');
75      e.async = true;
76      e.src = q + c._hjSettings.hjid + u;
77      r.appendChild(e);
78    })(window, document, 'https://static.hj.contentsquare.net/c/csq-', '.js', 6509653);
79  </script>
79
80
81  <head>
82<!--LOOMI SDK-->
83<!--DO NOT EDIT-->
84<link rel="preconnect"  href="https://live.visually-io.com" crossorigin data-em-disable>
85<link rel="dns-prefetch" href="https://live.visually-io.com" data-em-disable>
86<script type="text/javascript" data-em-disable data-vsly>
87    (()=> {
88        const env = 2;
89        var store = "mtlneedsweights.myshopify.com";
90        var alias = store.replace(".myshopify.com", "").replaceAll("-", "_").toUpperCase();
91        var jitsuKey =  "js.40009302175";
92        var themeId = 192214303089;
93        var role = "main";
94        window.loomi_ctx = {...(window.loomi_ctx || {}),storeAlias:alias,jitsuKey,env,themeId,role};
95        
96        
97    
98	
99        
100        window.loomi_ctx.blockingConcent = false;
101        loomi_ctx.ttl=1793164050;
102        
103    })()
104</script>
vendor: 1 bytes, line 104
104
105<script type="text/javascript" data-em-disable>
106    !function(){var e,t,n;!function(e){e.JSCondition="jsCondition",e.JSFunction="jsFunction",e.JSEvent="jsEvent",e.Selector="selector",e.ElementEvent="elementEvent",e.PageLoad="pageLoad",e.Timeout="timeout",e.Inactivity="inactivity",e.ExitIntent="exitIntent",e.Conjunction="conjunction"}(e||(e={})),function(e){e[e.PAUSED=4]="PAUSED"}(t||(t={})),function(e){e[e.LOCAL=0]="LOCAL",e[e.STAGE=1]="STAGE",e[e.PROD=2]="PROD",e[e.TEST=3]="TEST"}(n||(n={}));const r="lmi_preview";var o;!function(e){e.USE_CASE="USE_CASE",e.ADD_TO_CART="ADD_TO_CART"}(o||(o={}));const i=function(e){void 0===e&&(e=()=>window);try{return Promise.resolve(v(()=>void 0!==_(()=>e().removeEventListener),100,100)).then(function(){return Promise.resolve()})}catch(e){return Promise.reject(e)}},s=function(e,t){void 0===e&&(e=()=>window),void 0===t&&(t=!1);try{function n(){return Promise.resolve()}const r=t&&a()?Promise.resolve(v(()=>c,1e3,10)).then(function(){}):Promise.resolve(v(()=>void 0!==_(()=>e().addEventListener),10,1e3)).then(function(){});return Promise.resolve(r&&r.then?r.then(n):n())}catch(o){return Promise.reject(o)}};let c=!1;function a(){return!0===_(()=>window.vslyDeferResources)}function u(e,t){void 0===t&&(t=20);let n=0;return function(){clearTimeout(n),n=setTimeout(()=>e(...[].slice.call(arguments)),t)}}window.addEventListener("load",()=>{setTimeout(()=>{c=!0},2e3)});const l="vsly-hide-theme-preview",d="vslyCtags",m=()=>{_(()=>{const e=window.loomi_ctx.ctags||[];0===e.length?window.loomi_ctx.ctags=JSON.parse(localStorage.getItem(d)||"[]"):localStorage.setItem(d,JSON.stringify(e)),_(()=>{const e=JSON.parse(localStorage.getItem("vslyCustomCtags")||"[]");e&&e.length>0&&(window.loomi_ctx.ctags=[...window.loomi_ctx.ctags||[],...e])})})},f=()=>new Date(1e3*Math.floor(Date.now()/1e3));function h(e,t){void 0===t&&(t={async:!1,defer:!1});const n=_(()=>window.visually.flags["bunny-cdn"]),r=A();return p(`vsly-lib-${e}`,`https://${n?"assets.visually.io":r}/vsly/lib/${e}.js`,t)}function p(e,t,n){return void 0===n&&(n={async:!1,defer:!1}),new Promise((r,o)=>{let i=document.getElementById(e);i?r(document.getElementById(e)):(i=document.createElement("script"),i.id=e,i.src=t,i.async=n.async||!1,i.defer=n.defer||!1,i.setAttribute("data-em-disable",""),i.onload=()=>r(i),i.onerror=()=>o(new Error(`Failed to load ${t}`)),document.head.appendChild(i))})}function v(e,t,n,r){return void 0===t&&(t=500),void 0===n&&(n=4),new Promise((o,i)=>{e()?o(0):0!==n?setTimeout(()=>{r&&r()&&i(`condition rejected ${_(()=>e.toString())}`),v(e,t,n-1).then(o).catch(i)},t):i(`condition rejected ${_(()=>e.toString())}`)})}function w(e,t){void 0===t&&(t=500);const n=_(()=>window.visually_io_editor)?Date.now()+1e4:Infinity;function r(o){try{const i=e();i?o(i):Date.now()>=n?o(void 0):setTimeout(()=>r(o),t)}catch(e){console.error("vsly-when",e),Date.now()>=n?o(void 0):setTimeout(()=>r(o),t)}}return new Promise(e=>{r(e)})}function y(e){return!Array.isArray(e)||0===e.length}function g(e){return btoa(unescape(encodeURIComponent(JSON.stringify(e))))}function _(e,t){void 0===t&&(t=void 0);try{return e()}catch{return t}}const S=e=>e&&decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(e).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1"))||null;function E(){const e=window.loomi_ctx?.clientId;return e?(window.localStorage.setItem("vsly__st",String(e)),String(e)):window.localStorage.getItem("vsly__st")}function P(e,t,n){void 0===t&&(t=5),void 0===n&&(n=500),t>=0&&!_(e)&&setTimeout(()=>{_(e)||P(e,t-1)},n)}const A=function(e){return void 0===e&&(e=window.loomi_ctx.env),e===n.STAGE?"sdk.loomi-stg.xyz":"live.visually-io.com"};function I(e){return e.replace(/[^a-z_A-Z0-9]/gi,"_")}const b=()=>!!_(()=>x()()),x=()=>_(()=>window.Shopify.customerPrivacy.analyticsProcessingAllowed)||_(()=>window.Shopify.customerPrivacy.userCanBeTracked)||_(()=>window.visually.analyticsProcessingAllowed);function C(){const e=function(){try{return Promise.resolve(v(()=>!!_(()=>window.loomi.jitsu),a()?1e3:500,120)).then(function(){return _(()=>window.loomi.jitsu)})}catch(e){return Promise.reject(e)}}();return{register(t,n,r,o){e.then(e=>_(()=>e.register(t,n,r,o)))},track:function(t,n,r){return Promise.resolve(e).then(function(e){return Promise.resolve(_(()=>e.track(t,n,r))).then(function(){})})},trackExt:function(t,n){return Promise.resolve(e).then(function(e){return Promise.resolve(_(()=>e.trackExt(t,n))).then(function(){})})}}}let k=!1,T=!1;function N(e,t,n){return{id:T?"lmi-000":"lmi-"+ ++j,isApplied:!1,kind:e,selector:t,value:n}}function O(e,t){let n,r=!1;return null!==e.previousElementSibling?n=e.previousElementSibling:(n=e.parentElement,r=!0),n?(e.outerHTML=t,r?n.firstElementChild:n.nextElementSibling):e}let j=Math.round(1e4*Math.random()),L=[],$=new Map;const R="lmid",D="lmwv";function U(){return!!_(()=>window.vsly_fbs)}function M(){return window.location.search.includes("lmi_debug")||U()}function q(){M()&&console.debug("loomi-editor",...[].slice.call(arguments))}function F(){M()&&console.error("loomi-editor",...[].slice.call(arguments))}let B=!0,J={};class V{constructor(e,t){this._value=void 0,this._addedAt=void 0,this._value=e,this._addedAt=t||(new Date).getTime()}value(){return this._value}addedAt(){return this._addedAt}}class H{constructor(e,t){this.backend=void 0,this.ttlMillis=void 0,this.backend=e,this.ttlMillis=t}isValid(e){return!!e&&(new Date).getTime()-e.addedAt()<=this.ttlMillis}get(e){const t=this.backend.get(e),n=this.isValid(t);if(t&&n)return t.value();n||this.backend.remove(e)}set(e,t,n){const r=new V(t,n);this.backend.set(e,r)}}class G{constructor(e){this.namespace=void 0,this.namespace=`vsly_cache_${e}`,window[this.namespace]={}}get(e){return _(()=>window[this.namespace][e])}remove(e){_(()=>delete window[this.namespace][e])}set(e,t){window[this.namespace][e]=t}}class z{constructor(e){this.namespace=void 0,this.namespace=`vsly_cache_${e}`}get(e){return _(()=>{const t=sessionStorage.getItem(`${this.namespace}_${e}`);if(!t)return;const n=JSON.parse(t);return new V(n._value,n._addedAt)})}remove(e){sessionStorage.removeItem(`${this.namespace}_${e}`)}set(e,t){sessionStorage.setItem(`${this.namespace}_${e}`,JSON.stringify(t))}}class K extends H{constructor(e,t){super(new G(e),t)}}const W=function(e,t){void 0===t&&(t=8397271938200529);let n=3735928559^t,r=1103547991^t;for(let t,o=0;o<e.length;
106o++)t=e.charCodeAt(o),n=Math.imul(n^t,2654435761),r=Math.imul(r^t,1597334677);return n=Math.imul(n^n>>>16,2246822507)^Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),`${4294967296*(2097151&r)+(n>>>0)}`},Q="targeting-changed",Y="vslyThemeTest",Z="0891c521a9aa47c6a9fd965198b7ed44",X="_203";function ee(e,t,n,r,o){void 0===n&&(n=10),void 0===r&&(r=!1),void 0===o&&(o="none");const{_USE_CASE:i,_USE_CASE_VARIANT:s,_USE_CASE_AUDIENCES:c,_USE_CASE_VERSION:a,_USE_CASE_GA_VARIANT:u,_USE_CASE_GA:l}=e;if(U()||ie())return;if(!function(e){try{const t=location.pathname,n=new URL(e);if(location.search.includes("vsly-redirected-from"))return!1;if(!0===_(()=>window.visually.flags["sdk-kill-advanced-redirect-checks"]))return!0;{let e=!1;const r=decodeURIComponent(location.search);return n.searchParams.forEach((t,n)=>{const o=decodeURIComponent(`${n}=${t}`);r.includes(o)||(e=!0)}),!!((_(()=>Array.from(n.searchParams.values()).length)||0)>0&&e)||t!==n.pathname}}catch(e){return!1}}(t))return;if(!function(e,t,n){const r=`vsly-redirect-${W(`${n._USE_CASE}-${n._USE_CASE_VARIANT}-${n._USE_CASE_VERSION}-${e}`)}`;return"session"===t?"true"!==sessionStorage.getItem(r)&&(sessionStorage.setItem(r,"true"),!0):"user"!==t||"true"!==localStorage.getItem(r)&&(localStorage.setItem(r,"true"),!0)}(t,o,e))return;h();const d=`${i}-${s}`,m={type:"USE_CASE",ts:f().valueOf(),payload:{sid:_(()=>window.loomi_ctx.session.id),user:{anonymous_id:_(()=>window.loomi_ctx.userId)},use_case:i,use_case_variant:s,...a?{version:a}:{},...c?{audiences:c}:{}},options:{gaName:_(()=>I(l)),gaVariant:_(()=>I(u))}};function h(){document.body&&(document.body.style.opacity=0)}_(()=>{ce(i)&&(m.payload.clickId="redirect",m.options.isRedirect=!0)}),window.vsly_redirecting=!0,setTimeout(function(){try{h();const e=JSON.stringify(m),n=g(m),o=!d.includes(re);let i=t;try{new URLSearchParams(location.search).forEach((e,t)=>{(r||oe(t))&&(i=te(i,t,e))})}catch(t){q("e87",{redirectUrl:i,key:d,event:e,ex:t})}return i=te(i,"vsly-redirected-from",d),o&&(i=te(i,"vsly-redirected-event",n)),location.replace&&location.replace(i),Promise.resolve()}catch(e){return Promise.reject(e)}},n)}function te(e,t,n){try{const r=new URL(e);return r.searchParams.append(t,n),r.href}catch(t){return`${e}${e.includes("?")?"&":"?"}key=${n}`}}function ne(e){return{_USE_CASE:e.experienceId,_USE_CASE_VARIANT:e.variantId,_USE_CASE_VERSION:e.version,_USE_CASE_AUDIENCES:_(()=>window.loomi_ctx.audiences.join("|"),""),_USE_CASE_GA:e.gaExperienceName,_USE_CASE_GA_VARIANT:e.gaVariantName}}const re="theme_test_redirect_back_to_main",oe=e=>e.toLowerCase().startsWith("utm");function ie(){return _(()=>window.Shopify.designMode,!1)}function se(){return _(()=>window.Shopify.country)||_(()=>window.visually.country)}const ce=e=>window.loomi.conf.experiments.find(t=>t.name===e).isRedirect,ae=(e,t)=>{_(()=>!0===window.visually.flags["sdk-disable-dynamic-height-strategy"],!1)||e&&function(e,t,n){let r=e,o=0;for(;r.parentElement&&o<10;)n(r.parentElement),r=r.parentElement,o+=1}(e,0,e=>{const t=e.style.height;var n;(n=t)&&""!==n&&(e.style.removeProperty("height"),e.style.minHeight=t)})};function ue(e,t,n,r){if(!document.body.contains(r)){const r=document.querySelector(n);return r?(t(),e(),{element:r,isDetached:!0}):{isDetached:!1}}return{isDetached:!1}}function le(e){if(!_(()=>window.visually.flags["visibility-redo"]))return document.querySelector(e);const t=document.querySelectorAll(e);for(let e=0;e<t.length;e++){const n=t.item(e);if(de(n))return n}return _(()=>t[0])}function de(e){try{if(!_(()=>window.visually.flags["visibility-redo"]))return!0;if(!e)return!1;const t=e.getBoundingClientRect(),n=getComputedStyle(e);return!_(()=>"none"==n.display||"0"==n.opacity||"hidden"==n.visibility||t.width<=5&&t.height<=5||"none"==e.style.display||"0"==e.style.opacity||"hidden"==e.style.visibility)}catch(e){return!0}}function me(e){return _(()=>window.visually.flags[e],!1)}function fe(){return _(()=>!0===window.vslyDeferWidgets||me("sdk-defer-widgets"),!1)}const he="visually",pe="widgets";let ve;function we(e,t){const n=e+t,r=`vslyw-${n}`;if(!document.getElementById(r)){const e=document.createElement("script");e.id=r,e.type="text/javascript";
106const t=_(()=>window.visually.flags["bunny-cdn"]),o=A();e.src=`https://${t?"assets.visually.io":o}/widgets/${n}.js`,document.head.appendChild(e)}}window.IntersectionObserver&&(ve=new IntersectionObserver((e,t)=>{e.forEach(e=>{if(e.isIntersecting){const n=e.target;(function(e){const t=e.getAttribute("lmw"),n=e.getAttribute(D);if(t&&n){const r=t+n;return v(()=>_(()=>!!window[he][pe][r])&&_(()=>!!window.preact),50,500).then(()=>{_(()=>window[he][pe][r](`#${e.id}`))}),!0}return!1})(n)&&t.unobserve(n)}})},{root:null,rootMargin:window.vslyDeferWidgetsMargin||"100px",threshold:.1}));const ye="vsly-orig-sel";function ge(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}const _e=function(e){try{return Promise.resolve(ge(function(){return Promise.resolve(v(()=>!!_(()=>document.querySelector(e)),250,100)).then(function(){return Promise.resolve(document.querySelector(e))})},function(e){return Promise.reject(e)}))}catch(e){return Promise.reject(e)}};function Se(e,t,n){const r=t.extra;return n&&n>=3?void 0!==r&&!!_(()=>e.childNodes[r]):!!r&&!!_(()=>e.childNodes[r])}function Ee(e,t,n){void 0===n&&(n=10),me("kill-theme-testing")||Pe(t)||(Ae(e,t),ee(e,Ie(t).href,n,!0,"session"))}const Pe=e=>{if(xe())return!0;_(function(){try{return Promise.resolve(v(()=>!!document&&!!document.head,10,2e3)).then(function(){const e=document.head||document.getElementsByTagName("head")[0];if(!e.querySelector(`#${l}`)){const t=document.createElement("style");t.id=l,t.appendChild(document.createTextNode("#preview-bar-iframe,#PBarNextFrameWrapper,#PBarNextFrame { display: none !important;}")),e.appendChild(t)}})}catch(e){return Promise.reject(e)}});const t=window.loomi_ctx.themeId||_(()=>window.Shopify.theme.id),n=window.loomi_ctx.role||_(()=>window.Shopify.theme.role),r=!Ne({id:t,role:n}),o=_(()=>!window.loomi_ctx.testedThemes.includes(t));return!(!r||!o)||Te({id:t,role:n},e)},Ae=(e,t)=>{const n=e._USE_CASE!==re;Le(t)&&n&&[sessionStorage,localStorage].forEach(e=>Oe(e))},Ie=e=>{const t=Re();return t.searchParams.append("preview_theme_id",`${e||""}`),t},be=()=>{const e="vsly-tts";if($e(e))return;ke();const t=Ie("");t.searchParams.append(e,"1"),document.body.style.opacity=0,location.replace(t.href)},xe=()=>
106{const e="vsly_disableThemeTest",t=$e("disableThemeTest")||!!sessionStorage.getItem(e);return t&&sessionStorage.setItem(e,"1"),ie()||t},Ce=()=>!me("allow-embed-redirect-tests")||0===(window.loomi_ctx.embeddedTests||[]).filter(e=>e.experiment.isThemeTest).length,ke=()=>[sessionStorage,localStorage].forEach(e=>e.removeItem(Y)),Te=(e,t)=>e.id===t||Ne(e)&&!t,Ne=e=>"main"===e.role,Oe=e=>e.setItem(Y,"1"),je=e=>e.getItem(Y),Le=e=>!!e,$e=e=>_(()=>Re().searchParams.has(e)),Re=()=>_(()=>new URL(window.location.href)),De="data-rid",Ue="data-alchemy-element-root";let Me,qe=0;function Fe(e){return e.hasAttribute(De)||e.hasAttribute(Ue)}const Be=function(e,t){try{return Promise.resolve(v(()=>!!document&&!!document.body&&!!document.querySelector,50,200)).then(function(){!function(){if("undefined"==typeof document)return;Je||(Je=new MutationObserver(Ve)),Ve();const e="spa"===_(()=>window.vslyIntegrationType,"static")?document:document.body;Je.observe(e,{childList:!0,subtree:!0,characterData:!0,attributes:!1})}(),e&&(k=e),t&&(T=t)})}catch(e){return Promise.reject(e)}};let Je;function Ve(){L.filter(e=>!e.isApplied).forEach(e=>{try{const t=_(()=>document.body.querySelector(e.selector));if(!t)return void function(e,t,n,r,o){void 0===r&&(r=100),void 0===o&&(o=10);const i=!!t,s=_(()=>J[e])||0;!i&&B&&s<o&&(B=!1,J[e]=(_(()=>J[e])||0)+1,setTimeout(()=>{try{n()}catch(t){F("failed to run setTimeout on refreshAllElementsSets",e,t)}B=!0},r+50*s))}(e.selector,t,Ve,100,10);if($.has(e.id))return;if(function(e,t){if(e&&(void 0===Me&&(Me=!!document.querySelector(`[${Ue}],[${De}]`)),Me)&&function(e){return["replace","appendBefore","appendAfter","compound","widget","moveElem"].includes(e.kind)}(t))for(let t=e;t;t=t.parentElement)if(Fe(t))return!0;return!1}(t,e)&&!function(){if(U())return!0;const e=window.vslyHydrationSize||1,t=!!window.elementIdToRuntimeInitialized&&Object.values(window.elementIdToRuntimeInitialized).length>=e;t&&0===qe&&(qe=Date.now());const n=Date.now()-qe,r=window.vslyHydrationGrace||500;return t&&n>r}())return;const n=He(e,t);n&&($.set(e.id,n),e.isApplied=!0)}catch(t){!function(){M()&&console.warn("loomi-editor",...[].slice.call(arguments))}("failed to resolve command from mutation request with exception.",t,e)}}),ze()}function He(e,t){if("replace"===e.kind)return function(e,t,n,r,o){let i=o||e,s=!1;const c=n.outerHTML;return{id:e,isApplied:()=>s,kind:"replace",do:()=>{s||(k&&n.setAttribute(R,i),n.outerHTML!==r&&(n=O(n,r),ae(n),k&&n.setAttribute(R,i),s=!0))},undo:()=>{s&&n.outerHTML!==c&&(n=O(n,c),s=!1)},redoIfNeeded:()=>!1,setDebugId:e=>i=e}}(e.id,0,t,e.value,e.id);if("appendBefore"===e.kind||"appendAfter"===e.kind)return function(e,t,n,r,o){let i=o||e,s=!1,c=document.querySelector(t),a=document.createElement("div");const u=()=>{s||("appendBefore"===r&&(c=document.querySelector(t),_(()=>c.parentNode.insertBefore(a,c)),ae(c),a=O(a,n),k&&a.setAttribute(R,i),s=!0),"appendAfter"===r&&(s||(c=document.querySelector(t),c.nextSibling?(_(()=>c.parentNode.insertBefore(a,c.nextSibling)),ae(c)):(_(()=>c.parentNode.appendChild(a)),ae(c)),a=O(a,n),k&&a.setAttribute(R,i),s=!0)),s=!0)},l=()=>{s&&(a.remove(),s=!1)};return{id:e,isApplied:()=>s,kind:r,do:u,undo:l,redoIfNeeded:()=>{const e=ue(u,l,t,c);return e.element&&(c=e.element),e.isDetached},setDebugId:e=>i=e}}(e.id,e.selector,e.value,e.kind,e.id);if("appendCss"===e.kind)return function(e,t,n,r){let o=r||e,i=!1,s=document.querySelector(t);const c=document.createElement("style"),a=()=>{i||(c.innerHTML=n,k&&c.setAttribute(R,o),document.head.appendChild(c),i=!0)},u=()=>{i&&(c.remove(),i=!1)};return{id:e,kind:"appendCss",isApplied:()=>i,do:a,undo:u,redoIfNeeded:()=>{const e=ue(a,u,t,s);return e.element&&(s=e.element),e.isDetached},setDebugId:e=>o=e}}(e.id,e.selector,e.value,e.id);if("appendJs"===e.kind)return function(e,t,n,r,o){let i=r||e,s=!1,c=document.querySelector(t),a=null;const u=()=>{s||(a||(a=document.createElement("script")),a.setAttribute("type","application/javascript"),a.innerHTML=function(e,t){return e&&t?`(async () => {\n    const _USE_CASE = "${t.experienceId}";\n    const _USE_CASE_VARIANT = "${t.variantId}";\n    const _USE_CASE_VERSION = ${_(()=>t.version||0,0)};\n    const _USE_CASE_AUDIENCES = "${_(()=>window.loomi_ctx.audiences.join("|"),"")}";\n    const _USE_CASE_GA = "${_(()=>t.gaExperienceName.replace(/"/g,'\\"'),t.gaExperienceName)}";\n    const _USE_CASE_GA_VARIANT = "${_(()=>t.gaVariantName.replace(/"/g,'\\"'),t.gaVariantName)}";\n    const _USE_CASE_CTX = {_USE_CASE,_USE_CASE_VARIANT,_USE_CASE_VERSION,_USE_CASE_AUDIENCES,_USE_CASE_GA,_USE_CASE_GA_VARIANT};\n    const __currentScriptElement = document.currentScript;\n    ${e}\n    if (typeof vslyCleanup !== 'undefined') {     \n      if (__currentScriptElement) {\n        __currentScriptElement.__vslyCleanup = vslyCleanup;\n      }\n    }\n  })()`:!t&&e?`\n(async () => {\n  const __currentScriptElement = document.currentScript;\n  ${e}\n    if (typeof vslyCleanup !== 'undefined') {     \n      if (__currentScriptElement) {\n        __currentScriptElement.__vslyCleanup = vslyCleanup;\n      }\n    }\n})();\n`:e}(n,o),k&&(a.id=i),document.body.appendChild(a),s=!0)},l=()=>{if(!s)return;const e=(()=>{try{const e=a.__vslyCleanup;if(e)return e(),!0}catch(e){k&&console.error("vslyCleanup error:",e)}return!1})();a&&a.remove(),e&&(a=null),s=!1};return{id:e,kind:"appendJs",isApplied:()=>s,do:u,undo:l,redoIfNeeded:()=>{const e=ue(u,l,t,c);return e.element&&(c=e.element),e.isDetached},setDebugId:e=>i=e}}
106(e.id,e.selector,e.value,e.id,e.options);if("appendFont"===e.kind){const t=JSON.parse(e.value);if(t&&t.family&&t.weights)return function(e,t,n){n=n||e;let r=!1;const o=document.createElement("link"),i=(c=t.weights,(s=t.family).toLowerCase().includes("jetbrains")&&(s="JetBrains Mono"),`https://fonts.googleapis.com/css2?family=${encodeURIComponent(s)}:wght@${_(()=>c.join(";"))}&display=block`);var s,c;return o.setAttribute("href",i),o.setAttribute("rel","stylesheet"),{id:e,isApplied:()=>r,kind:"appendFont",do:()=>{r||(k&&o.setAttribute(R,n),document.head.appendChild(o),r=!0)},undo:()=>{r&&(o.remove(),r=!1)},redoIfNeeded:()=>!1}}(e.id,t,e.id)}else{if("compound"===e.kind){const n=e.value.map(n=>(n.options=e.options,He(n,t))).filter(e=>e);return function(e,t,n){let r=!1;return{id:e,isApplied:()=>r,kind:"compound",do:()=>{r||(t.filter(e=>!e.isApplied()).forEach(e=>{e.setDebugId&&e.setDebugId(n),e.do()}),r=!0)},undo:()=>{r&&(t.filter(e=>e.isApplied()).reverse().forEach(e=>e.undo()),r=!1)},redoIfNeeded:()=>t.map(e=>e.redoIfNeeded()).filter(e=>e).length>0}}(e.id,n,e.id)}if("widget"===e.kind){const t=_(()=>e.block.value),n=_(()=>t.env.sectionId.substring(1),e.id);return function(e,t,n,r,o,i,s){void 0===s&&(s="");const c=i||t;let a=!1;const u=`vslyp-${t}`;let l=null,d=null,m=[];const f=()=>{a||(we(r,s),"replace"===e?w():y(),fe()&&ve||h(),a=!0)},h=()=>{const e=r+s;v(()=>_(()=>!!window[he][pe][e])&&_(()=>!!window.preact),50,500).then(()=>{ae(l),_(()=>window[he][pe][e](`#${t}`))})},p=()=>{if(!a)return;d&&d.remove();const t=document.getElementById(u);if(t&&t.remove(),"replace"===e&&l&&l.children&&l.children.length>0){let e=0;for(const t of l.children)t.style.display=m[e],e+=1}a=!1},w=()=>
106{if(l=le(n),l){if(m=[],l.children&&l.children.length>0)for(const e of l.children){const t=e;t&&!t.getAttribute("preact")&&(m.push(t.style.display),t.style.display="none")}g(),l.appendChild(d),fe()&&ve&&ve.observe(d)}else F("vsly",`failed to find element with selector: ${n} when trying to replace with widget`)},y=()=>{l=le(n),l?(g(),l.insertAdjacentElement("appendBefore"===e?"beforebegin":"afterend",d),fe()&&ve&&ve.observe(d)):F("vsly",`failed to find element with selector: ${n} when trying to append widget`)},g=()=>{if(d=document.getElementById(t),!d){d=document.createElement("section"),d.style.all="unset",d.style.width="100%",d.setAttribute("preact","1"),k&&d.setAttribute(R,c),d.setAttribute("lmw",r),d.setAttribute(D,s),d.id=t;const e=document.createElement("script");e.id=u,e.setAttribute("type","text/props"),e.innerHTML=JSON.stringify(o),_(()=>document.body.appendChild(e))}};return{id:t,isApplied:()=>a,kind:"widget",do:f,undo:p,redoIfNeeded:()=>{const e=ue(f,p,n,l);return e.element&&(l=e.element),e.isDetached}}}(t.htmlKind,n,e.selector,t.widgetId,t.env,n,t.version)}if("moveElem"===e.kind){const t=_(()=>e.block.value);return function(e,t,n,r){let o=!1,i={display:""},s=null,c=null;const a=()=>{o||v(()=>(s=document.querySelector(t),c=document.querySelector(n),!!s&&!!c),50,500).then(()=>{s=document.querySelector(t),c=document.querySelector(n),u()})},u=()=>{c&&s&&(i={display:c.style.display,parentNode:s.parentElement,nextSib:s.nextElementSibling,prevSib:s.previousElementSibling},"appendBefore"===r?c.insertAdjacentElement("beforebegin",s):"appendAfter"===r?c.insertAdjacentElement("afterend",s):"replace"===r&&(c.style.display="none!important",c.insertAdjacentElement("afterend",s)),s.setAttribute(ye,t),o=!0)};return{id:e,isApplied:()=>o,kind:"moveElem",do:a,undo:()=>{o&&c&&s&&(i&&i.prevSib?i.prevSib.insertAdjacentElement("afterend",s):i&&i.nextSib?i.nextSib.insertAdjacentElement("beforebegin",s):i&&i.parentNode&&i.parentNode.appendChild(s),"replace"===r&&(c.style.display=i.display),s.removeAttribute(ye),o=!1)},redoIfNeeded:()=>!(_(()=>s.hasAttribute(ye))&&document.body.contains(s)||(o=!1,a(),0))}}(e.id,e.selector,t.destSelector,_(()=>t.htmlKind))}if("automation"===e.kind)return function(e){let t=!1;return{id:`automation-${(new Date).getDate()}`,kind:"automation",isApplied:()=>t,do:()=>{if(!t){t=!0;try{e.sort((e,t)=>e.order-t.order).map(e=>{switch(e.kind){case"click":return()=>function(e){try{return Promise.resolve(ge(function(){return q("fake-click","about to click on:",e.selector),Promise.resolve(_e(e.selector)).then(function(e){return e&&e.click(),Promise.resolve()})},function(e){return Promise.reject(e)}))}catch(e){return Promise.reject(e)}}(e);case"type":return()=>function(e){try{return Promise.resolve(ge(function(){return q("fake-click","about to type on:",e.selector,"with text: ",e.data),Promise.resolve(_e(e.selector)).then(function(t){const n=_(()=>Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value").set);_(()=>n.call(t,e.data||""));const r=new Event("input",{bubbles:!0});return t.dispatchEvent(r),Promise.resolve()})},function(e){return Promise.reject(e)}))}catch(e){return Promise.reject(e)}}(e);case"scroll":return()=>function(e){try{return Promise.resolve(ge(function(){return q("fake-click","about to scroll to:",e.selector),Promise.resolve(_e(e.selector)).then(function(e){return e.scrollIntoView(!0),Promise.resolve()})},function(e){return Promise.reject(e)}))}catch(e){return Promise.reject(e)}}(e);case"wait":return()=>function(e){try{try{return q("fake-click",`about to wait for: ${e.data}ms`),Promise.resolve(new Promise(t=>{setTimeout(()=>t(),_(()=>e.data)||1e3)}))}catch(e){return Promise.reject(e)}}catch(e){return Promise.reject(e)}}(e);default:return()=>Promise.resolve()}}).reduce((e,t)=>e.then(e=>t()),Promise.resolve()).then()}catch(e){F("failed to run automation with exception:",e)}}},undo:()=>{},redoIfNeeded:()=>!1}}(_(()=>e.block.value).steps);if("visualEdit"===e.kind){const t=_(()=>e.block.value);return function(e,t){let n=!1,r={};const o=function(e,t,n){void 0===n&&(n=!0);const o=t.subChanges.map(n=>{switch(n.kind){case"text":return((e,t,n)=>{if(!e)return()=>{};const r=t.extra;if(Se(e,t,n)){const n=e.childNodes[r].textContent;return e.childNodes[r].textContent=t.value,()=>e.childNodes[r].textContent=n}{const n=e.textContent;return e.textContent=t.value,()=>e.textContent=n}})(e,n,t.version);case"style":return((e,t)=>{if(!e)return()=>{};const n=_(()=>e.style[t.key],null);return e.style.setProperty(t.key,t.value,"important"),()=>e.style.setProperty(t.key,n)})(e,n);case"image":return((e,t)=>{if(!e||!e.removeAttribute||!e.getAttribute)return()=>{};const n=e.getAttribute("srcset")||"";e.removeAttribute("srcset");const r=_(()=>e.src,void 0);e.src=t.value;const o=e.parentElement,i=o&&"PICTURE"===o.nodeName,s=[];
106return i&&o.querySelectorAll("source").forEach(e=>{s.push(e.getAttribute("srcset")||""),e.removeAttribute("srcset")}),()=>{e.setAttribute("srcset",n),e.src=r,i&&o.querySelectorAll("source").forEach((e,t)=>{e.setAttribute("srcset",s[t])})}})(e,n);case"video":return((e,t)=>{if(!e||!e.setAttribute)return()=>{};const n=e.innerHTML;e.innerHTML="";const r=e.getAttribute("src")||"";return e.setAttribute("src",t.value),()=>{e.innerHTML=n,e.setAttribute("src",r)}})(e,n);case"attr":return((e,t)=>{if(!e||!e.setAttribute||!e.getAttribute)return()=>{};const n=e.getAttribute(t.key);return e.setAttribute(t.key,t.value),()=>n?e.setAttribute(t.key,n):e.removeAttribute(t.key)})(e,n)}});n&&(r[t.selector]={ve:t,elem:e,reverts:o})};return{id:e,kind:"visualEdit",isApplied:()=>n,do:()=>{n||(n=!0,t.forEach(e=>{v(()=>!!document.querySelector(e.selector),250,300).then(()=>{const t=document.querySelector(e.selector);o(t,e)})}))},undo:()=>{n&&(n=!1,Object.values(r).forEach(e=>e.reverts.forEach(e=>e())),r={})},redoIfNeeded:()=>{if(!n)return!1;let e=!1;return Object.values(r).forEach(t=>{e=document.body.contains(t.elem)?function(e,t){return e.ve.subChanges.forEac
106h((n,r)=>{n.value!==((e,t,n)=>{switch(t.kind){case"text":return((e,t,n)=>{const r=t.extra;return Se(e,t,n)?e.childNodes[r].textContent:e.textContent})(e,t,n);case"attr":return((e,t)=>e.getAttribute(t.key))(e,t);case"style":return((e,t)=>_(()=>e.style[t.key],null))(e,t);case"image":case"video":return(e=>e.src)(e)}})(e.elem,n,e.ve.version)&&(_(()=>e.reverts[r]()),o(e.elem,{selector:e.ve.selector,subChanges:[n]},!1),t=!0)}),t}(t,e):function(e){e.reverts.forEach(e=>e());const t=document.querySelector(e.ve.selector);return t&&o(t,e.ve),!0}(t)}),e}}}(e.id,t.changes)}if("pageRedirect"===e.kind){const t=_(()=>e.block.value);if(t)return n=t,r=e.options,{id:e.id,kind:"pageRedirect",isApplied:()=>!1,do:()=>{ee(ne(r),n.destUrl,n.redirectAfter,!0===n.retainQueryParams,n.stickinessMode)},undo:()=>{},redoIfNeeded:()=>!1,setDebugId:e=>""}}else if("themeTest"===e.kind){const t=_(()=>e.block.value);if(t)return function(e,t,n){const r=()=>!1;return{id:e,kind:"themeTest",isApplied:r,do:()=>Ee(ne(n),t.targetThemeId),undo:r,redoIfNeeded:r,setDebugId:r}}(e.id,t,e.options)}}var n,r}let Ge=!1;function ze(){Ge||(Ge=!0,requestAnimationFrame(Ke))}function Ke(){$.forEach(e=>{try{e.isApplied()?e.redoIfNeeded():e.do()}catch(t){F("failed to apply mutation command with exception:",t,e)}}),Ge=!1}function We(e){try{const n=$.get(e),r=n&&n.undo();$.delete(e);const o=L.findIndex(t=>t.id==e);return(t=_(()=>L[o].selector))&&_(()=>J[t])&&delete J[t],L.splice(o,1),ze(),r}catch(e){return}var t}function Qe(e){return"div"===e.selector&&(e.selector="body div"),L.push(e),Ve(),{revert:()=>We(e.id),mutationId:e.id}}function Ye(){const e=_(()=>window.loomi_ctx.cart);if(e)return e;const t=localStorage.getItem("loomi-cart");if(t)try{return JSON.parse(t)}catch(e){}}var Ze;!function(e){e.CART_CHANGE="CART_CHANGE",e.LOYALTY_CHANGE="LOYALTY_CHANGE"}(Ze||(Ze={}));const Xe=u((e,t)=>{const n=function(e,t){const n=new Event(Q);return n.key=e,n.value=t,n}(e,t);document.dispatchEvent(n),console.debug("Targeting has changed:",n)},80),et=()=>window.loomi_ctx.session.id;function tt(e){return _(()=>e.items.map(e=>_(()=>e.selling_plan_allocation.selling_plan.name.toLowerCase())).filter(e=>!!e),[])}function nt(){return JSON.parse(localStorage.getItem("loomi-cart-history")||"[]")}function rt(){const e=_(()=>window.loomi_ctx.sessionProducts);if(e)return e;const t=localStorage.getItem("loomi_session_products"),n=t?JSON.parse(t):[];return _(()=>n.filter(e=>""!=e.handle).reverse().slice(0,20))}function ot(e){return JSON.parse(localStorage.getItem(e)||"[]")}function it(e,t,n,r){e=e||[],t=t||[];const o=_(()=>t.filter(t=>!e.find(n(t))))||[],i=[...e,...o].slice(0,25);return i.length>0&&localStorage.setItem(r,JSON.stringify(i)),i}function st(){return JSON.parse(localStorage.getItem("loomi_purchased_products")||"[]")}const ct="vsly_params_history",at="vsly_visited_pages",ut=function(e){try{const t=e.matches?ft.MOBILE:ft.DESKTOP,n=function(){if(lt!=t){q("device-listener",`device changed to ${t} from ${lt}`),window.loomi_ctx.deviceOverride=t===ft.MOBILE?"m":"d",lt=t;const e=_(()=>window.visually.reload),n=function(){if(e)return Promise.resolve(e()).then(function(){});F("device-listener","can't find reload function")}();if(n&&n.then)return n.then(function(){})}}();return Promise.resolve(n&&n.then?n.then(function(){}):void 0)}catch(e){return Promise.reject(e)}};let lt;function dt(){a()?function(){try{return Promise.resolve(v(()=>c,1e3,10)).then(function(){return mt(),Promise.resolve()})}catch(e){return Promise.reject(e)}}().catch(console.error):mt()}function mt(){let e=_(()=>window.vslyDesktopBreakpoint)||960;e<=0&&(e=960);const t=window.matchMedia(`(max-width: ${e}px)`);t.removeEventListener("change",ut),t.addEventListener("change",ut)}var ft;!function(e){e.MOBILE="MOBILE",e.DESKTOP="DESKTOP"}(ft||(ft={}));const ht=()=>edgetag("getUserId");function pt(){const e="vsly_edgetag";return P(()=>(ht()&&localStorage.setItem(e,ht()),!0)),_(ht)||localStorage.getItem(e)}const vt="lmi_type",wt="lmi_from",yt="lmi_class",gt="lmi_utm_data",_t={utm_source:"source",utm_medium:"medium",utm_campaign:"campaign",utm_term:"term",utm_content:"content"},St=function(e,t){void 0===t&&(t=3);let n=e;for(let e=0;e<t;e++)try{const e=decodeURIComponent(n);if(e===n)break;n=e}catch{break}return n},Et=function(e){void 0===e&&(e=window.location.search);const t={utm:{},lmi_params:{}};return _(()=>
106new URLSearchParams(e)).forEach((e,n)=>{if(e){const r=_t[n],o=St(e);r?t.utm[r]=o:function(e){return _(()=>[yt,wt,vt].includes(e))}(n)&&(t.lmi_params[n]=o)}}),t};function Pt(){const e=function(e){let t=[];const n=localStorage.getItem(gt);return null!=n&&(t=[...JSON.parse(n)].slice(0,20)),e&&(e.ts=f(),t=[e,...t]),t}(function(e){if(function(e){return!e||"{}"===JSON.stringify(e)}(e))return null;const t={};return e.campaign&&(t.campaign=e.campaign),e.medium&&(t.medium=e.medium),e.source&&(t.source=e.source),e.term&&(t.term=e.term),e.content&&(t.content=e.content),t}(_(()=>Et().utm)));return localStorage.setItem(gt,JSON.stringify(e)),e}function At(){const e=_(()=>Pt(),[]);if(!Array.isArray(e)||0===e.length)return"";const t=e.filter(e=>e.campaign);return 0===t.length?"":_(()=>t.reduce((e,t)=>t.ts>e.ts?t:e,t[0]).campaign,"")||""}const It=function(e){return Promise.resolve(bt()).then(function(t){return new Promise((n,r)=>{const o=t.transaction([Ct],"readonly").objectStore(Ct).get(e);o.onerror=e=>{r("IDB e:r"+e.target.error)},o.onsuccess=e=>{n(e.target.result)}})})},bt=function(){try{const e=function(){if(!kt)return Promise.resolve(new Promise((e,t)=>{const n=indexedDB.open(xt,1);n.onerror=e=>{t("IDB e:o"+e.target.error)},n.onsuccess=t=>{kt=t.target.result,e(kt)},n.onupgradeneeded=e=>{e.target.result.createObjectStore(Ct,{keyPath:"id"}).createIndex("id","id",{unique:!0})}})).then(function(){})}();return Promise.resolve(e&&e.then?e.then(function(){return kt}):kt)}catch(e){return Promise.reject(e)}},xt="VISUALLY_IO",Ct=xt;let kt=null;function Tt(){const e={},t=window.loomi_ctx||{};t.productId&&(e.productId=t.productId);const n=_(()=>{const e=new URL(location.href).searchParams,t="variant";return e.has(t)&&function(e){const t=Number(e),n=isNaN(t)?Number(`${e}`.replace(/[^\d.]+/g,""))||void 0:t;if(void 0!==n&&0!==n)return`${n}`}(e.get(t))})||t.variantId;return n&&(e.variantId=n),e}function Nt(){return _(()=>Ye().items.map(e=>({variantId:e.variant_id||0,quantity:e.quantity||0,productId:e.product_id||0,price:e.price||0})))||[]}const Ot=function(e){return void 0===e&&(e=Ye()),_(()=>(("spa"==window.vslyIntegrationType?_(()=>e.attributes.map(e=>e.key)):_(()=>Object.keys(e.attributes)))||[]).filter(e=>!e.startsWith("vsly")&&e.length<20).slice(0,50))||[]};function jt(){const e=new URL(window.location.href);return e.protocol+"//"+e.hostname+e.pathname}const Lt=function(e,t){try{let n;const r=this.cart;if(!r)return Promise.resolve(0);const o=function(){try{var o=r.currency===e?(n=1,r.total_price/100):function(){if(t)return Promise.resolve(v(()=>!!window.loomi_ctx.Currency,100,10)).then(function(){const t=(window.loomi_ctx.Currency.convert(r.total_price,r.currency,e)||0)/100;return n=1,t})}()}catch(e){return}return o&&o.then?o.then(void 0,function(){}):o}();return Promise.resolve(o&&o.then?o.then(function(e){return n?e:0}):n?o:0)}catch(e){return Promise.reject(e)}};function $t(){const e=_(()=>this.cart.items);if(e&&e.length>0){const t=et(),n=localStorage.getItem("vsly-last-atc-sid");if(!n)return!1;if(n!==t)return!0;const r=e.map(e=>`${e.variant_id}`);return!!_(()=>nt().find(e=>!!e.sid&&r.includes(`${e.variant_id}`)&&`${e.sid}`!=t))}return!1}function Rt(e){return Ot(this.cart).includes(e)}function Dt(e,t){function n(e){return e.toLowerCase()}const r={"==":t=>n(t)==n(e),"!=":t=>n(t)!=n(e),contains:t=>n(t).includes(n(e)),matches:t=>new RegExp(e).test(t)};return!!this.CartSubs().find(e=>r[t](e))}function Ut(){return tt(this.cart)}function Mt(e){const t=this.cart;return!!_(()=>t.items.find(t=>t.handle===e))}function qt(e){const t=this.cart;return!!_(()=>t.items.find(t=>!!t.tags&&t.tags.includes(e)))}function Ft(e){const t=this.cart;if(t.items.length<=0)return!1;const n=_(()=>t.items.filter(t=>!!t.tags&&t.tags.includes(e)));return _(()=>n.length===t.items.length,!1)}function Bt(e){const t=this.cart;return!!_(()=>t.items.find(t=>!!t.collections&&t.collections.includes(e)))}function Jt(){return!0===_(()=>window.loomi_ctx.loyalty.isMember,!1)}function Vt(){return _(()=>window.loomi_ctx.loyalty.pointsBalance,0)}function Ht(){return _(()=>window.loomi_ctx.loyalty.earnedPoints,0)}const Gt="__eventn_id";function zt(){const{id:e,firstSeen:t}=function(e){const t=function(e){try{const t=S(e),{firstSeen:n,id:r}=Qt(t);if(t)return{id:r,firstSeen:n||Zt()}}catch(e){}}(e),n=function(e){const t=window.localStorage.getItem(e),{id:n,firstSeen:r}=Qt(t);if(t)return{id:n,firstSeen:r||Zt()}}(e);if(!t&&!n){const{newId:t,newEpoch:n}=function(){const e=Math.random().toString(36).substring(2,12),t=Zt();return{newId:e,newEpoch:t,value:Yt(e,t)}}();return Kt(t,n,e),{id:t,firstSeen:n}}if(!n&&t)return Kt(t.id,t.firstSeen,e),t;if(!t&&n)return Kt(n.id,n.firstSeen,e),n;const r=Math.min(t.firstSeen,n.firstSeen);let o=t.firstSeen<=n.firstSeen?t.id:n.id;return Wt(t,n)&&(o=t.id<=n.id?t.id:n.id),n.id==t.id&&n.firstSeen==t.firstSeen||Kt(o,r,e),{id:o,firstSeen:r}}(Gt);return{id:e,firstSession:Xt(t),firstSeen:t}}function Kt(e,t,n){void 0===n&&(n=Gt);const r=Yt(e,t);_(()=>localStorage.setItem(n,r)),((e,t,n,r)=>{_(()=>window.loomi_ctx.cc)&&!b()||(document.cookie=encodeURIComponent(e)+"="+t+"; path=/; expires=Fri, 31 Dec 9999 23:59:59 GMT"+(n?"; domain="+n:"")+(r?"; secure":""))})(n,r,document.location.hostname.replace("www.","").replace("checkout.",""),"http:"!==document.location.protocol)}const Wt=(e,t)=>e.firstSeen===t.firstSeen&&e.id!==t.id;function Qt(e){return{firstSeen:_(()=>parseInt(e.split(".")[1]),null),id:_(()=>e.split(".")[0])}}function Yt(e,t){return`${e}.${t}`}function Zt(){return Math.trunc((new Date).getTime()/1e3)}const Xt=e=>(new Date).getTime()/1e3-e<=7200,en="vsly_vid",tn="lmi_debug";function nn(e){return _(()=>new URL(window.location.href).searchParams.get(e)||void 0)}const rn=["Roboto","Open Sans","Fredoka","Fredoka","Smooch Sans","Rubik","Lato","Poppins","Oswald","League Spartan","Noto Sans","Raleway","Merriweather","Playfair Display","Inter","JetBrains Mono","Jetbrains Mono"];function on(e){try{(function(e){const t=e.flatMap(e=>_(()=>e.code)).filter(e=>!!e).filter(e=>"widget"===e.kind).map(e=>sn(e.value.env)),n=new Map;
106return function(e,t){e.forEach(e=>{!function(e,t){const n=new Map;e.forEach(e=>{let[t,r]=e;const o=".font.";if(t.includes(o)){const e=t.split(o)[0]+o;n.has(e)||n.set(e,{families:new Set,weights:new Set});const i=n.get(e);if(t.endsWith(".fontFamily"))i.families.add(r);else if(t.endsWith(".fontWeight")){const e=parseInt(r,10)||500;i.weights.add(e)}}}),function(e,t){e.forEach(e=>{if(e.families.size>0){const n=e.weights.size>0?e.weights:new Set([500]);e.families.forEach(e=>{cn(t,e,n)})}})}(n,t)}(Object.entries(e),t),function(e,t){const n=function(e){const t=".text.isRichText",n=new Set;return e.forEach(e=>{let[r,o]=e;if(r.endsWith(t)&&!0===o){const e=`${r.split(t)[0]}.text.value`;n.add(e)}}),n}(e);0!==n.size&&e.filter(e=>{let[t]=e;return n.has(t)}).forEach(e=>{let[n,r]=e;return function(e,t){var n;if(e)try{!function(e,t){e.querySelectorAll("[style]").forEach(e=>{const n=e.style;if(n.fontFamily){const e=n.fontFamily,r=parseInt(n.fontWeight,10)||500;cn(t,e,new Set([r]))}})}((n=decodeURIComponent(e),(new DOMParser).parseFromString(n,"text/html")),t)}catch(e){console.error("Failed to parse rich text HTML",e)}}(r,t)})}(Object.entries(e),t)})}(t,n),function(e){return Array.from(e.entries()).map(e=>{let[t,n]=e;return{family:t,weights:Array.from(n).sort()}})}(n)})(e).forEach(e=>{let{family:t,weights:n}=e;return function(e,t){return Qe(N("appendFont","div",JSON.stringify({family:e,weights:t})))}(t,n)})}catch(e){F("failed to install custom fonts",e)}}function sn(e){const t={};for(const n in e)if("object"!=typeof e[n]||Array.isArray(e[n]))t[n]=e[n];else{const r=sn(e[n]);for(const e in r)t[`${n}.${e}`]=r[e]}return t}function cn(e,t,n){if(!t)return;const r=t.replaceAll("'","").replaceAll('"',"");if(!function(e){return rn.includes(e)}(r))return;e.has(r)||e.set(r,new Set);const o=e.get(r);
106o.add(400),n.forEach(e=>{o.add(e)})}const an=function(e,t,n,r){void 0===n&&(n=!0),void 0===r&&(r=void 0);try{const o=_(()=>window.loomi_api.addToCart),i=function(){if(o)return Promise.resolve(window.loomi_api.addToCart(e,t,n,r)).then(function(){})}();return Promise.resolve(i&&i.then?i.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},un=function(e){try{let n;function t(t){return n?t:e.map(e=>{const t=String(e.id),n=dn.get(pn(e.id))||r[t];return n?{...e,variants:Array.isArray(e.variants)?e.variants.map(e=>{const t=vn(e,n);return t?{...e,fixed_price_currency:t.price.currencyCode,price:parseFloat(t.price.amount),compare_at_price:t.compareAtPrice?parseFloat(t.compareAtPrice.amount):e.compare_at_price}:e}):e.variants}:e})}if(!e||0===e.length)return Promise.resolve(e);let r={};const{productIdsToFetch:o}=wn(e),i=function(){if(o.length>0)return function(t,n){try{var o=Promise.resolve(ln(e)).then(function(e){r=e,Object.entries(r).forEach(e=>{let[t,n]=e;return dn.set(pn(t),n)})})}catch(e){return n(e)}return o&&o.then?o.then(void 0,n):o}(0,function(t){return console.error("vsly",t),n=1,e})}();return Promise.resolve(i&&i.then?i.then(t):t(i))}catch(s){return Promise.reject(s)}},ln=function(e){try{return Promise.resolve(fetch(`https://${fn()}/api/2025-10/graphql.json`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:mn(e)})})).then(function(e){if(!e.ok)throw new Error(`Shopify API error: ${e.status}`);return Promise.resolve(e.json()).then(function(e){if(e.errors)throw new Error(`GraphQL errors: ${JSON.stringify(e.errors)}`);const t={};for(const n in e.data){const r=e.data[n];if(!r)continue;const o=hn(r.id);t[o]={variants:{}}
106,r.variants.edges.forEach(e=>{const n=hn(e.node.id);t[o].variants[n]={price:e.node.price,compareAtPrice:e.node.compareAtPrice}})}return t})})}catch(e){return Promise.reject(e)}},dn=new class extends H{constructor(e,t){super(new z(e),t)}}("p",18e5);function mn(e){const{productIdsToFetch:t,maxVariantsPerProduct:n}=wn(e),r=se();return`\n    query GetProductPrices ${r?`@inContext(country: ${r})`:""} {\n      ${t.map(e=>`\n    product_${e}: product(id: "gid://shopify/Product/${e}") {\n      id\n      variants(first: ${n}) {\n        edges {\n          node {\n            id\n            price {\n              amount\n              currencyCode\n            }\n            compareAtPrice {\n              amount\n              currencyCode\n            }\n          }\n        }\n      }\n    }\n  `).join("\n")}\n    }\n  `}const fn=()=>window.loomi_ctx.storeAlias.toLowerCase().replaceAll("_","-")+".myshopify.com";function hn(e){const t=e.match(/\/(\d+)$/);return t?t[1]:e}const pn=e=>String(e)+se(),vn=(e,t)=>{let n=String(e.variant_id);const r=Object.keys(t.variants);return 1==r.length&&(n=r[0]),t.variants[n]},wn=e=>{let t=1,n=!0;return{productIdsToFetch:e.map(e=>{if(!Array.isArray(e.variants))return{id:String(e.id),needsFetch:!1};const r=new Set(e.variants.map(e=>e.price)).size>1;r&&(n=!1),e.variants.length>t&&(t=e.variants.length);const o=((e,t,n)=>{if(!e)return!0;if(!n)return!1;const r=e.variants||{};return t.some(e=>void 0===r[e])})(dn.get(pn(e.id)),e.variants.map(e=>String(e.variant_id)),r);return{id:String(e.id),needsFetch:o}}).filter(e=>e.needsFetch).map(e=>e.id),maxVariantsPerProduct:n?1:t}},yn=new K("recs_cache",300001),gn=function(e,t){try{const n=Promise.resolve([]);return Promise.resolve(function(r,o){try{var i=function(){if(!e)return n;let r=_(()=>e.recommendationOptions);if(!r)return n;var o;!function(e){const{productId:t,variantId:n}=Tt();(t||n)&&(e.productId={productId:t,variantId:n})}(r),r.cartItems=(o=Nt(),_(()=>o.filter(e=>!!e.productId).map(e=>({productId:`${e.productId}`,variantId:`${e.variantId}`,quantity:e.quantity||1})))),r.currency=_(()=>Ye().currency||"USD","USD"),r.cart_total=_(()=>Ye().total_price,0),_(()=>+Date.now()-window.loomi_ctx.last_vid_atc.ts<5e3)&&(r.last_vid_atc=window.loomi_ctx.last_vid_atc),r.respSize=_(()=>window.visually.recsPerVariant[t.variantId]),["RECENTLY_VIEWED","VIEWED_WITH_RECENTLY_VIEWED"].find(e=>_n(r,e))&&(r.recentlyViewed=rt().filter(e=>!!e.productId).map(e=>({productId:`${e.productId}`,variantId:`${e.variantId||""}`,...e.ts?{ts:e.ts}:{}})));const i=st();return i.length>0&&(r.pastPurchases=i),(_n(r,"CART_ITEMS")||function(e){return _(()=>!!e.layeredRuling.find(e=>"latest_added"==e.ruleCond.itemSelection))}(r))&&(r.cartHistory=In()),r.userId=_(()=>window.loomi_ctx.userId,""),t&&(r.widgetContext=t),_(()=>!!window.loomi_ctx.storeAlias)&&(r.storeAlias=window.loomi_ctx.storeAlias),r.locale=_(()=>window.Shopify.locale)||_(()=>window.visually.locale),E()&&(r.clientId=E()),r.country=se(),Promise.resolve(function(e,t){const n=_(()=>window.loomi_api.updateRecsOpts),r=_(()=>n.get(function(e){return e.widgetId+e.experienceId+e.variantId+e.sectionId}(e))(t),t);return _(()=>n.get(window.loomi_ctx.storeAlias)(r),r)}(t,r)).then(function(e){return r=e,Promise.resolve(An(r))})}()}catch(e){return o(e)}return i&&i.then?i.then(void 0,o):i}(0,function(e){return F("loomi-widget,recProducts failed:",e),n}))}catch(e){return Promise.reject(e)}};function _n(e,t){return e.type===t||_(()=>e.strategyPerSlot.find(e=>e.strategy===t))||_(()=>!!Object.values(e.conditions).find(e=>e.qbProps.envKey===t))||_(()=>!!e.layeredRuling.find(e=>e.strategy===t||!!_(()=>e.strategyPerSlot.slots.find(e=>e.strategy===t))))}function Sn(e){const t=function(){const e=window.innerWidth;return e<=360?200:e<=480?360:e<=640?480:e<=768?640:e<=960?768:1024}();e.products.forEach(e=>{const n=new URL(e.image.src);n.searchParams.set("width",`${Math.min(t,e.image.width||1280)}`),e.image.src=n.href})}function En(){return`https://${A(window.loomi_ctx.env)}/api/recommendations/web/public/v2/recommend`}const Pn=new Map,An=function(e){try{function t(){return _(()=>o.products)}const n=g(e),r=W(n);let o=yn.get(r);const i=function(){if(!o){let e=!0;return me("kill-locale-currency")&&(e=!1),Promise.resolve(((e,t,n)=>{if(Pn.has(e))return Pn.get(e);const r=window.vslyNativeFetch||window.fetch,o=function(){try{return Promise.resolve(function(e,o){try{var i=function(){function e(){return Promise.resolve(o.json()).then(function(e){const t=function(){if(e.fetchPrices&&n)return Promise.resolve(un(e.products)).then(function(t){e.products=t})}();return t&&t.then?t.then(function(){return e}):e})}let o;const i=t.length>1e4&&!me("disable-recs-post")?Promise.resolve(r(En(),{method:"POST",headers:{"Content-Type":"text/plain"},body:t})).then(function(e){o=e}):Promise.resolve(r(`${En()}?q=${t}`)).then(function(e){o=e});return i&&i.then?i.then(e):e()}()}catch(e){return o(!0,e)}return i&&i.then?i.then(o.bind(null,!1),o.bind(null,!0)):o(!1,i)}(0,function(t,n){if(Pn.delete(e),t)throw n;return n}))}catch(e){return Promise.reject(e)}}();return Pn.set(e,o),o})(r,n,e)).then(function(e){o=e,_(()=>
106[Sn,window.loomi_api.onRecsResp].forEach(e=>e&&e(o))),yn.set(r,o)})}}();return Promise.resolve(i&&i.then?i.then(t):t())}catch(s){return Promise.reject(s)}},In=()=>nt().map(e=>{const t={...e};return delete t.sid,t});function bn(e){return`vsly_pi_${e}`}function xn(e){return`vsly_hbt_${e}`}function Cn(e){return`vsly_hbc_${e}`}function kn(e){return Array(e).fill(0).map(()=>Math.floor(10*Math.random())).join("")}function Tn(){try{const e=_(()=>window.vslyAntiFlickerReveal,void 0);e&&e()}catch(e){}}const Nn=function(e,t){try{if(y(e)||y(t))return Promise.resolve({products:[]});const n=function(e,t){const n=window.loomi_ctx.storeAlias||"",r=new URLSearchParams({byHandle:g({handles:e}),al:n,slimResp:"1"});return t&&t.length>0&&r.set("metafields",g({fields:t})),`${En()}?${r.toString()}`}(e,t);return Promise.resolve(fetch(n)).then(function(e){if(!e.ok)throw new Error(`vsly 400 ${e.statusText}`);return e.json()})}catch(e){return Promise.reject(e)}},On=function(e){try{try{const t=g(e),n=window.loomi_ctx.storeAlias,r=W(`${n}_${t}_${se()}`),o=Ln.get(r);if(o)return Promise.resolve(o);if($n.has(r))return Promise.resolve($n.get(r));const i=function(){try{return Promise.resolve(function(e,o){try{var i=function(e,o){try{var i=function(){const e=new URL(En());e.searchParams.set("al",n),e.searchParams.set("productQuery",t);const o=window.vslyNativeFetch||window.fetch;return Promise.resolve(o(e.toString(),{method:"GET",headers:{Accept:"application/json"}})).then(function(e){return e.ok?Promise.resolve(e.json()).then(function(e){return Promise.resolve(function(e){try{if(!e||!e.results||"object"!=typeof e.results)return Promise.resolve({results:{}});const t=e.results,n=function(e){return Object.keys(e).map(t=>{const n=e[t];return n&&n.id?{key:t,product:n}:null}).filter(e=>!!e)}(t);if(0===n.length)return Promise.resolve({...e,results:t});let r=n.map(e=>e.product);return r=function(e){const t={products:e};return Sn(t),t.products}(r),Promise.resolve(jn(r)).then(function(o){return r=o,r=function(e){const t=window.loomi_api;if(!t||!t.onRecsResp)return e;try{const n={products:e};return t.onRecsResp(n),n.products}catch(t){return F("onRecsResp hook failed",t),e}}(r),function(e,t,n){t.forEach((t,r)=>{const o=n[r];o&&o.id&&(e[t.key]=o)})}(t,n,r),{...e,results:t}})}catch(e){return Promise.reject(e)}}(e)).then(function(e){return Ln.set(r,e),e})}):{results:{}}})}()}catch(e){return o(e)}return i&&i.then?i.then(void 0,o):i}(0,function(e){return F("queryProducts failed:",e),{results:{}}})}catch(e){return o(!0,e)}return i&&i.then?i.then(o.bind(null,!1),o.bind(null,!0)):o(!1,i)}(0,function(e,t){if($n.delete(r),e)throw t;return t}))}catch(e){return Promise.reject(e)}}();return $n.set(r,i),Promise.resolve(i)}catch(e){return F("queryProducts setup failed:",e),Promise.resolve({results:{}})}}catch(e){return Promise.reject(e)}},jn=function(e){try{return me("kill-locale-currency")||_(()=>!Array.isArray(e[0].variants))?Promise.resolve(e):Promise.resolve(un(e))}catch(e){return Promise.reject(e)}},Ln=new K("ai_recs_cache",300001),$n=new Map,Rn=function(e,t,n){try{const o=zt(),i=function(e,t,n){const r=function(){const e=Nt(),t={path:window.location.pathname,host:window.location.hostname};_(()=>e.length)>0&&(t.cartItems=e);const n=_(()=>Ye().token);n&&(t.cartToken=n);const r=Pt();r&&(t.trafficSources=r),t.productsSeenInSession=rt(),t.isCustomer=!!E(),t.query=window.location.search||"",t.hash=window.location.hash||"";const o=Ot();return o&&(t.cartAttributes=o),t}();r.storeAlias=e;const o=E();o&&(r.clientId=o),r.anonymousId=t.id,r.firstSeen=t.firstSeen,r.firstSession=t.firstSession,r.gaId=_(()=>document.cookie.split(";").map(e=>e.split("=")).find(e=>{let[t,n]=e;return"_ga"==t.trim()})[1],"");const i=window.loomi_ctx;r.customerTags=_(()=>i.ctags.slice(0,20)),r.landingPage=_(()=>i.session.landing_page),r.hasSubs=!!_(()=>tt(Ye()).length>0);const s=pt();s&&(r.edgetag=s);const c=function(){try{const e=_(()=>new URL(window.location.href));if(_(()=>e.searchParams.get("forceOverride"))){const t=_(()=>e.searchParams.get("targeting"));if(t)return JSON.parse(decodeURIComponent(escape(atob(t))))}}catch(e){F("preview overrides",e)}return{}}(),a=ot(ct),u=function(){const e=ot(at);function t(e){return new Date(e.ts).valueOf()}function n(){const e=new URL(location.href);return["vslyvid","vslywgid","vslysid","lmi_preview","targeting","vsly_vid"].forEach(t=>e.searchParams.delete(t)),e.search||""}return It(at).then(r=>{const o={ts:new Date,name:jt(),search:_(n,"")},i=!!o.search,s=(_(()=>r.visits)||e||[]).filter(e=>!i||!(e.name===o.name&&!e.search)).filter(e=>
106!(e.name===o.name&&(o.search===e.search||i&&!e.search))).sort((e,n)=>t(n)-t(e)).slice(0,500);var c;s.unshift(o),(c={id:at,visits:s},Promise.resolve(bt()).then(function(e){return new Promise((t,n)=>{const r=e.transaction([Ct],"readwrite").objectStore(Ct).put(c);r.onerror=e=>{n("IDB e:w"+e.target.error)},r.onsuccess=()=>{t("")}})})).catch()}).catch(),it([{ts:f(),name:jt()}],e,e=>t=>e.name===t.name,at)}(),l=st(),d={deviceKind:_(()=>window.loomi_ctx.deviceOverride,void 0),...n||{}},m=!!_(()=>navigator.userAgent.includes("Macintosh")&&"ontouchend"in document),h=_(()=>window.innerWidth,0),p=_(()=>window.vslyDesktopBreakpoint)||960,v=_(()=>S("cart_currency"))||_(()=>Ye().currency)||"",w=_(()=>i.current_product);if(w){r.oos=_(()=>w.oos),r.price=_(()=>w.price),r.iq=_(()=>w.variants.reduce((e,t)=>t.iq+e,0)),r.productId=_(()=>{const e=Tt().productId;return Number.isFinite(Number(e))?e.toString():""},"");const e=1*i.variantId;Number.isFinite(e)&&(r.vid=e)}const y=_(et);"spa"==window.vslyIntegrationType&&(r.spa=!0);const g=_(()=>i.ttl);return{cartCurrency:v,...r,queryHistory:a,isIPadPro:m,windowInnerWidth:h,desktopBreakpoint:p,visitedPages:u,ttl:Number.isFinite(g)?g:0,purchasedLineItems:l,sid:y,...d||{},...c||{}}}(e,o,n);return Promise.resolve(function(e,t){try{const n=g(t),o=function(e){const{previewKey:t,debugAllocator:n,previewVariantId:o}=function(){[r,en].map(e=>{const t=nn(e);t&&sessionStorage.setItem(e,t)});const e=sessionStorage.getItem(r),t=sessionStorage.getItem(en);return{previewKey:e,debugAllocator:nn(tn),previewVariantId:t}}();let i=new URL(e);return t&&i.searchParams.append(r,t),n&&i.searchParams.append(tn,"true"),o&&i.searchParams.append(en,o),i}(qn(e).cfgUrl);o.searchParams.append("q",n);const i=W(o.href),s=window.vslyNativeFetch||window.fetch,c=Un.has(i)?Un.get(i):s(o.href,{priority:"high"}).finally(()=>Un.delete(i));return Un.set(i,c),Promise.resolve(c).then(function(e){if(e.ok)return Promise.resolve(e.json());throw new Error(`failed to load config: ${e.statusText}`)})}catch(e){return Promise.reject(e)}}(t,i)).then(function(e){return _(()=>{window.loomi_ctx.audiences=e.audiences,_(()=>e.audiences&&localStorage.setItem("vsly_audiences",JSON.stringify(e.audiences))),window.loomi_ctx.testedThemes=e.testedThemes||[]}),function(e){const t=e.currentVariant;window.loomi_ctx={...window.loomi_ctx||{}};const n=_(()=>t.pid);n&&(window.loomi_ctx.productId=`${n}`);const r=_(()=>t.vid);r&&(window.loomi_ctx.variantId=`${r}`);const o=_(()=>t.price);o&&(window.loomi_ctx.variantPrice=o);const i=_(()=>t.meta);i&&(window.loomi_ctx.productMeta=`${i}`)}(e),it(e.queryHistory,i.queryHistory,e=>t=>t.v===e.v&&t.k===e.k,ct),function(e){var t;(t=e.experiments)&&t.findIndex(e=>{const t=_(()=>e.clientTargetingFormula.toString(),"")||"";return t.includes("CartItemHasTag")||t.includes("CartItemHasCollection")||t.includes("AllCartItemsHasTag")})>-1||!0===_(()=>e.flags["sdk-enable-cart-enrichment"],!1)&&(e.flags["sdk-enable-cart-enrichment"]=!1)}(e),{configuration:e,tracking:o}})}catch(e){return Promise.reject(e)}},Dn="vslyb",Un=new Map;function Mn(e){if("number"==typeof e.chance&&e.chance<100){const t={experienceId:e.name,variantId:e.variant,storeAlias:_(()=>window.loomi_ctx.storeAlias),anonymousId:_(()=>window.loomi_ctx.userId)};e.version&&(t.version=e.version);const r=g(t),o=_(()=>window.loomi_ctx.env,n.PROD),i=new URL(qn(o).cfgUrl.replace("/allocate","/match"));i.searchParams.append("q",r),fetch(i)}}function qn(e){let t="/api/allocator/web/public/v2/allocate";return Bn(e)&&(t="/allocate"),{cfgUrl:`${Fn(e)}${t}`}}function Fn(e){return Bn(e)?"http://localhost:8080":`https://${A()}`}function Bn(e){return[n.TEST,n.LOCAL].includes(e)}function Jn(e){window.visually={..._(()=>window.visually)||{},flags:e},localStorage.setItem("loomi-flags",JSON.stringify(e))}function Vn(e,t,n){const r=function(r){_(()=>!!r.persisted)&&(window.loomi_ctx.cart=void 0,n(e,t,500).catch(e=>{F("failed reloading sdk",e)}))};_(()=>!window.loomi_ctx.pageshow)&&(q("pageshow initialized"),s().then(()=>{window.addEventListener("pageshow",r),window.loomi_ctx.pageshow=!0}))}function Hn(e){return`${e.name}-${e.variant}`}function Gn(e){return`${e.name}-${e.variant}-${e.version||0}`}function zn(e){$.forEach(t=>{e&&!e(t)||(t.undo(),t.do())})}const Kn=(e,t)=>!!_(()=>e.audiences.includes(t)),Wn=e=>{const t={},n=Kn(e,"d"),r=Kn(e,"m");return n||r?(_(()=>e.experiments.filter(e=>
106!!e.code).forEach(e=>e.code.forEach(r=>{const o=_(()=>r.value.env.general.recsCount),i=_(()=>n?o.desktop.value:o.value);i>(t[e.variant]||0)&&"number"==typeof i&&(t[e.variant]=i)}))),t):t},Qn=function(e){void 0===e&&(e={});try{const t=Z+X;return we(Z,X),Promise.resolve(v(()=>_(()=>window.visually.widgets[t]),100,50)).then(function(){const n="#vsly-overlay",r="#vslyp-vsly-overlay";if(!document.querySelector(r)){const e=document.createElement("div");e.id=n.replace("#",""),e.textContent=".",e.style.opacity="0",e.style.display="none",document.body.appendChild(e);const t=document.createElement("script");t.id=r.replace("#",""),t.type="text/props",t.textContent="{}",document.body.appendChild(t)}return window.visually.widgets[t](n),Promise.resolve(v(()=>!!window.loomi_api._openProductOverlay,100,50)).then(function(){window.loomi_api._openProductOverlay((e=>{const t=_(()=>e.widgetContext)||_(()=>e.mpCtx)||_(()=>e.overlay.mpCtx);return t?{...e,overlay:{...e.overlay||{},mpCtx:t}}:e})(e))})})}catch(e){return Promise.reject(e)}};function Yn(e,t,n,r){const[o,i]=t.split(",");return new Promise(t=>{It(at).then(n=>{for(const s of function(e,t,n){const r=(new Date).valueOf();return(_(()=>e.visits,[])||[]).filter(e=>{const o=new Date(e.ts).valueOf(),i=36e5,s=parseInt(t);switch(n.replaceAll('"',"")){case"hours":return o>r-s*i;case"weeks":return o>r-s*i*24*7;case"days":return o>r-s*i*24;default:return!1}})}(n,o,i))if(r||rr(e)){if(Xn(s,e))return void t(!0)}else if(Zn(s,e))return void t(!0);t(!1)})})}function Zn(e,t){return!![er(e),nr(er(e))].find(e=>e.includes(t))}function Xn(e,t){const n=e.search||"",r=er(e)+n;return!![r,nr(r)].find(e=>e.includes(tr(t)))}function er(e){return tr(function(e){const t=_(()=>new URL(e));if(!t)return e;const n=t.pathname.split("/");return/^[a-z]{2}-[a-z]{2}$/.test(n[1])&&(t.pathname=n.slice(2).join("/")),tr(t.href)}(e.name))}function tr(e){const t=_(()=>new URL(e));return t&&t.pathname.endsWith("/")?"/"===t.pathname?t.href.slice(0,-1):(t.pathname=t.pathname.slice(0,-1),t.href):e}function nr(e){return e.includes("/products/")&&e.includes("/collections/")?e.replace(/\/collections\/[^/]+/,""):e}function rr(e){return _(()=>!!new URL(e).search)}const or=function(e){try{return yr(),hr(e.clientTargetingFormula)&&(ar[lr(e)]=e),Promise.resolve(wr(e)).then(function(t){return t?(mr(e),!0):(q(`exp: ${e.gaName} not run client targeting: ${e.clientTargetingFormula} => false`),!1)})}catch(e){return Promise.reject(e)}},ir=function(e){try{const t=Object.entries(ar).map(t=>{let[n,r]=t;return hr(r.clientTargetingFormula)&&(ar[lr(r)]=r),{exp:r,shouldBeApplied:sr(r.clientTargetingFormula,e,r.name),hasBeenApplied:()=>!!ur[lr(r)]}});return Promise.resolve(pr(t)).then(function(e){!function(e){e.filter(e=>e.hasBeenApplied()&&!e.shouldBeApplied).flatMap(e=>{const t=_(()=>ur[lr(e.exp)]);return t&&delete ur[lr(e.exp)],t}).forEach(e=>{_(e.revert)})}(e),function(e){e.filter(e=>e.shouldBeApplied&&!e.hasBeenApplied()).forEach(e=>{var t,n,r;mr(e.exp),t=e.exp,n=fr,void 0===r&&(r=C()),n.has(t.variant)||(Pr(r,t),n.add(t.variant),Mn(t))})}(e)})}catch(e){return Promise.reject(e)}},sr=function(e,t,n){void 0===n&&(n="");try{if(void 0===t&&(t=dr()),hr(e)){t.Total=Lt,t.CartHasSubs=Dt,t.CartSubs=Ut,t.CartHasItem=Mt,t.CartItemHasTag=qt,t.AllCartItemsHasTag=Ft,t.CartItemHasCollection=Bt,t.IsLoyaltyCustomer=Jt,t.LoyaltyPointsBalance=Vt,t.LoyaltyPointsEarned=Ht,t.PageVisit=Yn,t.CustomerTag=gr,t.IsGuest=_r,t.AbandonedCart=$t,t.CartAttrName=Rt,t.UseCaseId=n;const r=()=>new Function(`\n        const c = arguments[0];\n        return ${function(e){const t=t=>_(()=>e.includes(t));for(const n of["PageVisit","Total"])t(`c.${n}`)&&!t(`await c.${n}`)&&(e=`( ${e.replaceAll(`c.${n}`,`await c.${n}`)} )`);return!t("(async ()")&&t("await")?`(async () => (${e}))()`:e}(e)}`)(t);return Promise.resolve(new Promise(e=>e(r())).catch(e=>(F("client side formula err",e),!1)))}return Promise.resolve(!0)}catch(e){return Promise.reject(e)}};let cr=!1;const ar={},ur={},lr=e=>`${e.name}-${e.variant}`;function dr(){return{cart:Ye(),Total:Lt,CartHasSubs:Dt,CartSubs:Ut,CartHasItem:Mt,CartItemHasTag:qt,AllCartItemsHasTag:Ft,CartItemHasCollection:Bt,IsLoyaltyCustomer:Jt,LoyaltyPointsBalance:Vt,LoyaltyPointsEarned:Ht,PageVisit:Yn,CustomerTag:gr,IsGuest:_r,AbandonedCart:$t,CartAttrName:Rt}}function mr(e){const t={experienceId:e.name,variantId:e.variant,gaExperienceName:e.gaName,gaVariantName:e.gaVariant,reportGa:e.ga,publishedAt:e.publishedAt,version:e.version};var n;n=_(()=>e.code.map(e=>{try{return function(e,t){if("compound"===e.kind){const n=e.value,r=function(e,t,n,r,o){const i=[];return n&&""!==n&&i.push(N(e,t,n)),r&&""!==r&&i.push(N("appendCss",t,r)),o&&""!==o&&i.push(N("appendJs",t,o)),i}(n.htmlKind,e.selector,n.html,n.css,n.js),o=N(e.kind,e.selector,r);o.options=t;const i=Qe(o);return i.htmlId=r[0].id,r[1]&&(i.cssId=r[1].id),r[2]&&(i.jsId=r[2].id),i}if("widget"===e.kind){const n=N(e.kind,e.selector,"");n.options=t,n.block=e;const r=function(e,t){const n=_(()=>e.block.value);return{...t,sectionId:_(()=>n.env.sectionId),widgetId:_(()=>n.widgetId),widgetVersion:_(()=>n.version)}}(n,t);!function(e,t){const n=_(()=>e.block.value.env);
106n&&Object.entries(t).forEach(e=>{let[t,r]=e;return n[t]=r})}(n,r);const o=Qe(n);return o.htmlId=n.id,o}if(["pageRedirect","themeTest"].includes(e.kind)){const n=N(e.kind,e.selector,"");return n.options=t,n.block=e,Qe(n)}if(["moveElem","automation","visualEdit"].includes(e.kind)){const n=N(e.kind,e.selector,"");n.options=t,n.block=e;const r=Qe(n);return r.htmlId=n.id,r}const n=N(e.kind,e.selector,e.value);return n.options=t,Qe(n)}(e,t)}catch(e){}}).filter(e=>!!e),[]),ur[lr(e)]=n,function(e){if(!0!==window.visually?.flags?.["experience-applied-callback"])return;const t=window.vslyOnExperienceApplied;if("function"!=typeof t)return;const n={experienceId:e.name,variantId:e.variant,experienceName:e.gaName,variantName:e.gaVariant,version:e.version??0};try{Promise.resolve(t(n)).catch(e=>F("vslyOnExperienceApplied callback failed",e))}catch(e){F("vslyOnExperienceApplied callback failed",e)}}(e)}const fr=new Set;function hr(e){return!!e&&""!==e}const pr=function(e){try{return Promise.resolve(Promise.all(e.map(function(e){try{return Promise.resolve(e.shouldBeApplied).then(function(t){return{...e,shouldBeApplied:t}})}catch(e){return Promise.reject(e)}})))}catch(e){return Promise.reject(e)}},vr=e=>{const t=_(()=>e.key),n=_(()=>e.value),r=dr();t===Ze.CART_CHANGE?(ir({...r,cart:n}),_(()=>window.loomi_ctx.maintainCartAttributes(n))):t===Ze.LOYALTY_CHANGE&&ir(r)};function wr(e){return sr(e.clientTargetingFormula,void 0,e.name)}function yr(){cr||s(()=>document).then(()=>{document.addEventListener(Q,vr),cr=!0})}function gr(e,t){void 0===t&&(t="");const n=["!","not in"].some(e=>t.includes(e)),r=_(()=>window.loomi_ctx.ctags.includes(e))||!1;return n?!r:r}function _r(){return Promise.resolve(_(()=>!window.loomi_ctx.clientId))}function Sr(e){const t=lr(e),n=ur[t];n&&(n.forEach(e=>_(e.revert)),delete ur[t]),delete ar[t]}const Er=function(e,t,n){try{let r;return Promise.resolve(n()).then(function(n){n?(Pr(t,e),(hr(e.clientTargetingFormula)||function(e){return!!me("trigger-delayed-allocation")&&_(()=>["jsFunction","jsCondition"].includes(e.trigger.type))}(e))&&Mn(e)):r=1})}catch(e){return Promise.reject(e)}};function Pr(e,t){return _(()=>{e.register(t.name,t.variant,t.gaVariant,t.gaName);const n=t.ga;return e.track(o.USE_CASE,{use_case:t.name,use_case_variant:t.variant,...t.version?{version:t.version}:{}},{isAudience:t.isAudience,isRedirect:t.isRedirect,immediate:t.immediate,gaName:t.gaName,gaVariant:t.gaVariant,...n?{reportGa:n}:{}})})}const Ar=new Set,Ir=new Set,br=new Set,xr=new Set;let Cr;function kr(e){void 0===Cr&&(Cr=new MutationObserver(Tr(e)),Cr.observe(document.body,{childList:!0,subtree:!0,attributes:!1,characterData:!1}))}function Tr(e){return()=>{Nr(Ar,br,(t,n)=>{Er(n,e,()=>(t.add(Or(n.trigger.selector,n)),or(n)))}),Nr(Ir,xr,(t,n,r)=>{const o=n.trigger;t.add(Or(o.selector,n)),r.addEventListener(o.name,()=>Er(n,e,()=>or(n)),{once:void 0!==o.once&&o.once})})}}function Nr(e,t,n){e.forEach(e=>{_(()=>{const r=e.trigger.selector;document.body.querySelectorAll(r).forEach(o=>{t.has(Or(r,e))||n(t,e,o)})})})}function Or(e,t){return`${e}-${t.name}`}function jr(e){const t=JSON.stringify({ts:(new Date).getTime(),...e});let n,r,o=0;if(0===t.length)return o;for(n=0;n<t.length;n++)r=t.charCodeAt(n),o=(o<<5)-o+r,o|=0;return o}function Lr(e){const t=jr(e);return Ur(t),v(()=>new Function(e.code)(window),e.timeoutMillis,e.retries,()=>void 0===Mr(t))}function $r(e){return JSON.parse(localStorage.getItem(e)||"[]")}let Rr=[];const Dr=function(e,t,n){_(()=>t.experiments.forEach(t=>{n&&n.matches(t)?n.onSubscribeCall(t):Br(t,e)}))},Ur=(e,t)=>{Rr.push({handler:e,experienceKey:t})},Mr=e=>Rr.find(t=>t.handler===e),qr=function(e){Rr.filter(t=>t.experienceKey===e).forEach(e=>{try{"number"!=typeof e.handler&&e.handler()}catch(e){}}),Rr=Rr.filter(t=>t.experienceKey!==e)};function Fr(e,t){Br(e,t)}function Br(t,n){switch(_(()=>t.trigger.type)){case e.PageLoad:!function(e,t){Er(e,t,()=>or(e))}(t,n);break;case e.Timeout:!function(e,t){const n=setTimeout(()=>{Er(e,t,()=>or(e))},e.trigger.timeoutMillis);Ur(()=>{n&&clearTimeout(n)})}(t,n);break;case e.Inactivity:!function(e,t){const n=e.trigger.timeoutMillis;let r;function o(){clearTimeout(r),r=setTimeout(()=>{Er(e,t,function(){try{return Promise.resolve(wr(e)).then(function(t){return t&&or(e),t})}catch(e){return Promise.reject(e)}})},n)}o();const c=["mousemove","keypress","scroll","touchstart","touchmove"];Ur(()=>{clearTimeout(r),i(()=>document).then(()=>
106c.forEach(e=>document.removeEventListener(e,o)))}),s(()=>document,!0).then(()=>{c.forEach(e=>document.addEventListener(e,o,{passive:!0}))})}(t,n);break;case e.Selector:!function(e,t){kr(e),Ar.add(t),Tr(e)()}(n,t);break;case e.ExitIntent:!function(e,t){const n=r=>{_(()=>!r.toElement&&!r.relatedTarget)&&Er(e,t,()=>{const t=or(e);return i(()=>document).then(()=>{document.removeEventListener("mouseout",n)}),t})};s(()=>document,!0).then(()=>{document.addEventListener("mouseout",n,{passive:!0})}),Ur(()=>{i(()=>document).then(()=>{document.removeEventListener("mouseout",n)})})}(t,n);break;case e.JSCondition:!function(e,t){Lr(e.trigger).then(()=>{Er(e,t,()=>or(e))}).catch(()=>{})}(t,n);break;case e.JSFunction:!function(e,t){!function(n){try{const r=new Function(`return async function() { ${n.code} }`)()(),o=jr(n);Ur(o),r.then(()=>void 0!==Mr(o)&&void Er(e,t,()=>or(e)))}catch(e){}}(e.trigger)}(t,n);break;case e.JSEvent:!function(e,t){const n=e.trigger,r="vsly-js-events";function o(n){n&&Er(e,t,()=>or(e))}const c=e=>{let t;try{t=new Function(n.jsEvent.matchCode)(e),localStorage.setItem(r,JSON.stringify([...$r(r),{event:{detail:e.detail},ts:(new Date).valueOf()/1e3}].splice(0,25)))}catch(e){F("handleJsEvent",e),t=!1}o(t)};o(function(e,t){return _(()=>!!$r(e).find(e=>{const n=e.ts;return(new Date).valueOf()/1e3-n<2628e3&&new Function(t)(e.event)}))}(r,n.jsEvent.matchCode)),s(()=>window).then(()=>{window.addEventListener(n.jsEvent.name,c)}),Ur(()=>{i().then(()=>{window.removeEventListener(n.jsEvent.name,c)})})}(t,n);break;case e.Conjunction:!function(t,n){if(function(t){return[e.ExitIntent,e.Selector,e.Timeout].includes(t.trigger.condition.type)}(t)){const e=t.trigger;Lr(e.jsCond).then(()=>{Br({...t,trigger:e.condition},n)}).catch(()=>{})}}(t,n);break;case e.ElementEvent:!function(e,t){kr(t),Ir.add(e),Tr(t)()}(t,n)}}const Jr=["vsly-backdrop-container","__loomi_crosshair_container"];function Vr(e){let t=_(()=>e.target),n=!1;for(;t;){if(Jr.includes(_(()=>t.id))){n=!0;break}t=_(()=>t.parentElement)}n&&(q("vsly","about to stop propagation of event",e),_(()=>e.stopImmediatePropagation()),_(()=>e.stopPropagation()))}function Hr(e,t){const n=_(()=>window.Shopify.currency.active,"USD"),r=_(()=>window.Shopify.locale,"en-US"),o=new Intl.NumberFormat(r,{style:"currency",currency:n,minimumFractionDigits:!0===_(()=>window.visually.flags["op-locale-currency-always-show-decimals"],!1)?2:0,maximumFractionDigits:2});if(t){if(Kr()){const t=_(()=>window.visually.priceRound)||Math.round;return o.format(t(e,n))}return o.format(e)}const i=_(()=>window.Shopify.currency.rate,"1");let s=Number.parseFloat(i);s=Number.isNaN(s)?1:s;let c=e*s;return 1!=s&&me("exchange-fee")&&(c*=1.02),c=Gr(s,c,n),o.format(c)}const Gr=(e,t,n)=>1!==e&&me("exchange-round")||Kr()?(_(()=>window.visually.priceRound)||Math.round)(t,n):t;function zr(){const e=_(()=>!0===window.visually.flags["kill-locale-currency"]),t=_(()=>window.Shopify.currency,{}),n=!!_(()=>t.active),r=_(()=>t.rate),o=!!r&&!Number.isNaN(Number.parseFloat(r));return!e&&n&&o}const Kr=()=>!me("op-locale-currency-no-round");let Wr=window.location.href;const Qr=()=>{requestAnimationFrame(()=>{Wr!==window.location.href&&(Wr=window.location.href,window.dispatchEvent(new CustomEvent("vslyUrlChanged",{detail:{prev:Wr,curr:window.location.href}})))})};var Yr;!function(e){e.NONE="none",e.YOTPO="yotpo"}(Yr||(Yr={}));const Zr={isMember:!1,provider:Yr.NONE};function Xr(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}const eo="vsly-loyalty-ctx",to=(()=>{const e=["swell:customer:updated","swell:redemption","swell:initialized","swell:setup","vsly:loyalty-changed"];let t;const n=()=>{const e=_(()=>window.swellConfig.customer);return e?{id:e.local_customer_id,providerId:e.id,email:e.email,earnedPoints:e.points_earned,isMember:!0===e.is_member,pointsBalance:e.points_balance,adjustedPointsBalance:_(()=>e.adjusted_points_balance,0),provider:Yr.YOTPO}:Zr},r=e=>{_(()=>"vsly:loyalty-changed"===e.type)&&_(()=>window.swellAPI.refreshCustomerDetails()),t(n())};return{provide:n,onChange:function(n){try{t=n;const o=Xr(function(){return Promise.resolve(v(()=>
106!!window.jQuery,50,200)).then(function(){e.forEach(e=>{window.jQuery(document).on(e,r)})})},function(){e.forEach(e=>{document.addEventListener(e,r)})});return Promise.resolve(o&&o.then?o.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},connect:()=>v(()=>!!_(()=>window.swellConfig.customer.local_customer_id),400,20),disconnect:function(){try{const t=Xr(function(){return Promise.resolve(v(()=>!!window.jQuery,50,200)).then(function(){e.forEach(e=>{window.jQuery(document).off(e,r)})})},function(){e.forEach(e=>{document.removeEventListener(e,r)})});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}}}})();function no(e){Xe(Ze.LOYALTY_CHANGE,e),sessionStorage.setItem(eo,JSON.stringify({ts:(new Date).getTime(),ctx:e})),window.loomi_ctx={...window.loomi_ctx||{},loyalty:e}}const ro="vsly_session";function oo(e){return St((e||"").replace("+"," "))}function io(){const e=window.loomi_ctx.storeAlias,t={id:W(e+window.loomi_ctx.userId+f()+At()+ao()),utm_campaign:At(),last_interaction:new Date,landing_page:_(()=>location.href,""),start_at:new Date};return so(t),t}function so(e){const t=JSON.stringify(e);localStorage.setItem(ro,t),window.loomi_ctx.session=e}function co(){const e=function(){window.loomi_ctx=window.loomi_ctx||{};let e=window.loomi_ctx.session||_(()=>{const e=JSON.parse(localStorage.getItem(ro));return e.last_interaction=new Date(e.last_interaction),e.start_at=new Date(e.start_at),e})||io();return function(e){const t=new Date,n=e.last_interaction;return(t.valueOf()-n.valueOf())/6e4>30||oo(At())!==oo(e.utm_campaign)||e.last_interaction.getDate()!==t.getDate()}(e)&&(e=io()),window.loomi_ctx.session=e,e}();e.last_interaction=new Date,so(e)}const ao=()=>Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15);function uo(e,t){try{var n=e()}catch(e){return t(!0,e)}return n&&n.then?n.then(t.bind(null,!1),t.bind(null,!0)):t(!1,n)}const lo=function(e,t,r){void 0===r&&(r=1e3);try{return mo?(console.debug("vsly-sdk","cannot reload since another reload is in progress"),Promise.resolve()):(mo=!0,Promise.resolve(uo(function(){console.debug("vsly-sdk","about to reload sdk");const o=me("sdk-reconcile")?Promise.resolve(function(e,t,n){try{return Promise.resolve(n(t,e)).then(function(e){let{configuration:t}=e;const n=_(()=>window.loomi.conf.experiments)||[],r=new Map,o=t.experiments||[],i=new Map,s=new Set(Object.keys(ur)),c=C();n.forEach(e=>r.set(Hn(e),e)),o.forEach(e=>i.set(Hn(e),e)),(e=>{window.loomi={..._(()=>window.loomi)||{},conf:e},window.visually={..._(()=>window.visually)||{},flags:e.flags,recsPerVariant:Wn(e)},Jn(e.flags)})(t),((e,t,n)=>{e.forEach((e,r)=>{t.has(r)||(n.has(r)&&Sr(e),qr(r))})})(r,i,s),document.dispatchEvent(Object.assign(new Event("reset-widget"),{value:"reload"})),document.dispatchEvent(Object.assign(new Event("targeting-changed"),{value:"#reload",key:"CART_CHANGE"})),((e,t,n,r)=>{e.forEach((e,o)=>{const i=t.get(o);i?Gn(i)!==Gn(e)&&(r.has(o)&&Sr(i),qr(o),on([e]),Fr(e,n)):(on([e]),Fr(e,n))})})(i,r,c,s)})}catch(e){return Promise.reject(e)}}(e,t,fo)).then(function(){}):Promise.resolve(function(){try{return cr&&i(()=>document).then(()=>{document.removeEventListener(Q,vr),cr=!1}),Rr.forEach(e=>{try{"number"!=typeof e.handler&&e.handler()}catch(e){}}),Rr=[],Array.from($.keys()).forEach(e=>{We(e)}),Je&&Je.disconnect(),Promise.resolve()}catch(e){return Promise.reject(e)}}()).then(function(){return Promise.resolve((o=r,void 0===o&&(o=40),new Promise(e=>setTimeout(e,o)))).then(function(){return Promise.resolve(function(e,t){try{return void 0===e&&(e=n.PROD),Promise.resolve(uo(function(){return function(r,o){try{var i=(function(){if(window.vsly_blocked)throw Tn(),new Error(Dn)}(),function(e,t){window.loomi_ctx=window.loomi_ctx||{},window.loomi_ctx.env=window.loomi_ctx.env||e,window.loomi_ctx.storeAlias=window.loomi_ctx.storeAlias||t}(e,t),Promise.resolve(function(e,t){try{return void 0===e&&(e=n.PROD),Promise.resolve(ho(t,e,void 0)).then(function(n){let{configuration:r,tracking:o}=n;return po(r,t,e,o)})}catch(e){return Promise.reject(e)}}(e,t)).then(function(n){let{jitsu:r,configuration:o}=n;if(!_(()=>o.flags["kill-switch"]))return Promise.resolve(Be()).then(function(){on(o.experiments),Dr(r,o),Vn(e,t,lo),dt()})}))}catch(e){return o(e)}return i&&i.then?i.then(void 0,o):i}(0,function(e){_(()=>e.message)!==Dn&&F("failed initialising sdk",e)})},function(e,t){if(Tn(),e)throw t;return t}))}catch(e){return Promise.reject(e)}}(e,t)).then(function(){})});var o});if(o&&o.then)return o.then(function(){})},function(e,t){if(mo=!1,e)throw t;return t})))}catch(e){return Promise.reject(e)}};let mo=!1;const fo=function(e,t,n){try{return m(),Promise.resolve(Rn(e,t,n))}catch(e){return Promise.reject(e)}},ho=function(e,t,n){try{return _(co),m(),Promise.resolve(Rn(e,t,n))}catch(e){return Promise.reject(e)}},po=function(e,t,n,r){try{return Jn(e.flags),function(e,t,n,r,o,i){yr(),window.loomi_ctx={..._(()=>window.loomi_ctx)||{},env:t,storeAlias:e,apply:e=>{on([e]),or(e)},shouldApply:sr};const s=_(()=>
106o.productId),c=window.loomi_ctx;s&&!c.productId&&(c.productId=s);const a=_(()=>o.variantId);a&&!c.variantId&&(c.variantId=a),window.loomi={..._(()=>window.loomi)||{},conf:n},window.visually={..._(()=>window.visually)||{},flags:n.flags,enabledIntegrations:n.integrations,recsPerVariant:Wn(n),sdk_api:{addToCart:an,recommendProducts:gn,getProductsMetafields:Nn,fetchRecs:An},reAllocate:i,rerender:zn,reload:function(){try{return Promise.resolve(r(t,e,1e3)).then(function(){})}catch(e){return Promise.reject(e)}}}}(t,n,e,lo,Tt(),fo),function(e){try{if(e.noActiveThemeTests){if(Pe(0))return;be()}else(e=>!(e.experiments||[]).find(e=>e.isThemeTest)&&_(Ce)&&!![localStorage,sessionStorage].find(je))(e)&&be()}catch(e){}}(e),Promise.resolve(yo()).then(function(){var o,c,a,l;(function(e,t,n){window.loomi_api||(window.loomi_api={}),window.loomi_api.when=w,window.loomi_api.awaitCondition=v,window.loomi_api.loadVisuallyLib=h,window.loomi_api.queryProducts=On,window.loomi_api.debounce=u,window.loomi_api.allocatorQuery=e=>function(e,t){try{function n(){return Promise.resolve(r)}const r={results:{}},o={...e};o.queries=function(e,t){return e.queries.filter(e=>{const n=_(()=>e.oneOf.productInfo);if(n){const r=bn(n.handle),o=sessionStorage.getItem(r);if(!o)return!0;const i=JSON.parse(o);return!!function(e,t){return!((!e.includeCollections||t.collections)&&(!e.includeTags||t.tags)&&(!e.includeSales||t.sales)&&(!e.includeVariants||t.variants))}(n,i)||(i.cached=!0,t.results[e.name]=i,!1)}const r=_(()=>e.oneOf.handlesByTag);if(r){const n=xn(r),o=sessionStorage.getItem(n);if(!o)return!0;const i=JSON.parse(o);return i.cached=!0,t.results[e.name]=i,!1}const o=_(()=>e.oneOf.handlesByCollection);if(o){const n=Cn(o),r=sessionStorage.getItem(n);if(!r)return!0;const i=JSON.parse(r);return i.cached=!0,t.results[e.name]=i,!1}return!0})}(e,r);const i=function(){if(o.queries.length>0){const{query:e,hashedQuery:n}=function(e,t){e.timestamp=`${kn(4)}${t}${kn(5)}`,e.alias=window.loomi_ctx.storeAlias||"",e.userId=window.loomi_ctx.userId||"";const n=g(e);return{query:n,hashedQuery:(n+window.loomi_ctx.userId+window.loomi_ctx.storeAlias+t).split("").reduce((e,t)=>(e=(e<<5)-e+t.charCodeAt(0))&e,0)}}(o,t),i=qn(window.loomi_ctx.env).cfgUrl.replace("/allocate",`/query?q=${e}&h=${n}`);return Promise.resolve(fetch(i)).then(function(e){const t=function(){if(e.ok)return Promise.resolve(e.json()).then(function(e){e.results&&Object.entries(e.results).forEach(e=>{let[t,n]=e;!function(e,t,n){if(t)if("ProductInfo"===t.kind){const r=n.queries.find(t=>t.name===e);r&&(_(()=>r.oneOf.productInfo.includeTags,!1)&&!t.tags&&(t.tags=[]),_(()=>r.oneOf.productInfo.includeCollections,!1)&&!t.collections&&(t.collections=[]),_(()=>r.oneOf.productInfo.includeSales,!1)&&!t.sales&&(t.sales=""),_(()=>r.oneOf.productInfo.includeVariants,!1)&&!t.variants&&(t.variants=[]),sessionStorage.setItem(bn(t.handle),JSON.stringify(t)))}else if("HandlesByCollection"===t.kind){const r=n.queries.find(t=>t.name===e);if(r){const e=_(()=>r.oneOf.handlesByCollection,"")||"";sessionStorage.setItem(Cn(e),JSON.stringify(t))}}else if("HandlesByTag"===t.kind){const r=n.queries.find(t=>t.name===e);if(r){const e=_(()=>r.oneOf.handlesByTag,"")||"";sessionStorage.setItem(xn(e),JSON.stringify(t))}}}(t,n,o),r.results[t]=n})})}();if(t&&t.then)return t.then(function(){})})}}();return Promise.resolve(i&&i.then?i.then(n):n())}catch(s){return Promise.reject(s)}}(e,`${(new Date).getTime()+Math.round(1e6*Math.random())}`),window.loomi_api.openProductOverlay=Qn,_(()=>e.shopApi.forEach(e=>{let{js:t,windowKey:n}=e;try{window.loomi_api[n]=new Function(t)}catch(e){}})),window.loomi_api.formatLocaleMoney=function(){var e=[].slice.call(arguments);return n()?t(...e):(_(()=>window.loomi_api.formatMoney)||(()=>`${_(()=>e[0],"")}`))(...e)},window.loomi_api.redirectTest=ee})(e,Hr,zr),a=e.first_seen,(c=e.uid)!==(l=r.id)&&c&&a>0?(window.loomi_ctx.userId=c,Kt(c,a)):window.loomi_ctx.userId=l,function(e,t){try{return _(()=>window.loomi_ctx.cc)&&v(b,1e3,120).then(()=>Kt(e,t||(new Date).getTime()/1e3)),Promise.resolve()}catch(e){return Promise.reject(e)}}(window.loomi_ctx.userId,a),(o=e.flags)["sdk-auto-clean"]&&!o["sdk-kill-auto-clean"]&&h("price_test_cleanup_v2",{async:!1,defer:!0}).then(),_(()=>!0===window.visually.flags["op-focus-trap-removal"])&&s(()=>document,!0).then(()=>{document.addEventListener("focusin",Vr,{capture:!0,passive:!0}),document.addEventListener("mousedown",Vr,{capture:!0,passive:!0}),document.addEventListener("touchstart",Vr,{capture:!0,passive:!0}),document.addEventListener("touchend",Vr,{capture:!0,passive:!0})}),function(e,t){if(me("kill-sdk-reload-url-detection")||!me("sdk-reload")&&!["/products/","/collections/"].find(e=>window.location.href.includes(e)))return;const n=function(){const r=(()=>{requestAnimationFrame(()=>{(me("sdk-reload-url-detection-href")?wo!==window.location.href:new URL(wo).pathname!==new URL(window.location.href).pathname)&&(wo=window.location.href,n(),vo(e,t,10))})})||Qr,o=["click","touchend","pdpresp"];return s(()=>document.body,!0).then(()=>
106{o.forEach(e=>document.body.addEventListener(e,r,!0))}),()=>{i(()=>document.body).then(()=>{o.forEach(e=>{document.body.removeEventListener(e,r,!0)})})}}()}(n,t),function(){try{return Promise.resolve(function(e,t){try{var n=function(){no(function(){const e=sessionStorage.getItem(eo);if(e){const t=_(()=>JSON.parse(e));if(t&&t.ts>(new Date).getTime()-3e5)return t.ctx}}()||Zr);const e=_(()=>!0===window.visually.flags["loyalty-targeting"]),t=function(){if(e)return Promise.resolve(function(e){try{return e.onChange(e=>{no(e)}),Promise.resolve(e.connect()).then(function(){const t=e.provide();return no(t),{ctx:t,disconnect:e.disconnect}})}catch(e){return Promise.reject(e)}}(to)).then(function(){const e=document.querySelectorAll('[href*="/account/logout"]');e&&Array.from(e).forEach(e=>{e.addEventListener("click",()=>(sessionStorage.removeItem(eo),!0))})})}();if(t&&t.then)return t.then(function(){})}()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}(0,function(e){console.debug("vsly-loyalty","unable to find loyalty provider",e)}))}catch(e){return Promise.reject(e)}}();const d=C();return{configuration:e,jitsu:d}})}catch(e){return Promise.reject(e)}},vo=u(lo,10);let wo=window.location.href;const yo=function(){try{return Promise.resolve(function(){if(me("block-do-not-track"))return Promise.resolve(x()).then(function(e){if(!e)throw new Error(Dn)})}())}catch(e){return Promise.reject(e)}};function go(e){return e.startsWith("https://")?e.substring(8):e}function _o(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch{return""}}var So;!function(e){e.SIGNUP="SIGNUP",e.ADD_TO_CART="ADD_TO_CART",e.CHANGE_QTY="CHANGE_QTY",e.REMOVE_FROM_CART="REMOVE_FROM_CART",e.PAGE_LOAD="PAGE_LOAD",e.CLICK="CLICK",e.LOGIN="LOGIN",e.LOGOUT="LOGOUT",e.TIME_SPENT="TIME_SPENT",e.USE_CASE="USE_CASE",e.LEAD_SUBMISSION_EMAIL="LEAD_SUBMISSION_EMAIL",e.LEAD_SUBMISSION_PHONE="LEAD_SUBMISSION_PHONE"}(So||(So={}));let Eo=[];const Po=function(e,t){if(void 0===t&&(t=0),0===Eo.length)return;const n=Eo;Eo=[];const r=Io(n),o=Ao(n);e({bulk:o,shared:r},!0).catch(()=>{const r=n.concat(Eo);r.length<100&&(Eo=r,t<2&&setTimeout(()=>Po(e,t+1),500*Math.pow(2,t)))})};u(Po,100);const Ao=e=>e.map(e=>{const t=JSON.parse(JSON.stringify(e));return delete t.user,delete t.event_id,delete t.user_agent,delete t.utc_time,delete t.local_tz_offset,delete t.doc_host,delete t.ids_ga,delete t.alias,delete t.userCanBeTracked,delete t.userDataCanBeSold,delete t.edgetag,delete t.api_key,delete t.src,t}),Io=e=>{const t=_(()=>String(e[0].user.anonymous_id),""),n=_(()=>String(e[0].user_agent),""),r=_(()=>String(e[0].event_id),""),o=_(()=>String(e[0].utc_time),""),i=_(()=>Number(e[0].local_tz_offset)||0),s=_(()=>String(e[0].doc_host),""),c=_(()=>String(e[0].ids_ga),""),a=_(()=>String(e[0].alias),""),u=_(()=>Boolean(e[0].userCanBeTracked),!0),l=_(()=>Boolean(e[0].userDataCanBeSold),!0),d=_(()=>String(e[0].edgetag),""),m=_(()=>String(e[0].api_key),""),f=_(()=>String(e[0].src),"");return Object.entries({anonymous_id:t,event_id:r,user_agent:n,utc_time:o,local_tz_offset:i,doc_host:s,ids_ga:c,alias:a,userCanBeTracked:u,userDataCanBeSold:l,edgetag:d,api_key:m,src:f}).reduce((e,t)=>{let[n,r]=t;if(r){if("undefined"===r)return e;e[n]=r}return e},{})},bo=function(e){try{let r;function t(e){return r?e:Promise.resolve(!1)}const o=function(){if(_(()=>e.eventPayload.bulk.length>0,!1)){const t=_(()=>JSON.parse(JSON.stringify(e.eventPayload.bulk[0])),void 0);if(!t){const e=Promise.resolve(!1);return r=1,e}const o=_(()=>JSON.parse(JSON.stringify(t.ga)),void 0);return delete t.ga,Promise.resolve(function(e){try{return Promise.resolve(function(t,r){try{var o=function(){const t=window.loomi_ctx.jitsuKey,r=function(e){const t={trackingHost:"https://live.visually-io.com"};return e===n.TEST&&(t.trackingHost="http://localhost:8088"),e===n.STAGE&&(t.trackingHost="https://sdk.loomi-stg.xyz"),t}(window.loomi_ctx.env).trackingHost;return Promise.resolve(fetch(`${r}/api/s?token=${t}&bulk=1`,{headers:{"content-type":"text/plain"},body:JSON.stringify(e.eventPayload),method:"POST",mode:"cors",credentials:"omit",keepalive:!0})).then(function(e){return e.ok})}()}catch(e){return r(e)}return o&&o.then?o.then(void 0,r):o}(0,function(e){return console.error("vsly: Failed to send event",e),!1}))}catch(e){return Promise.reject(e)}}(e)).then(function(n){return Promise.resolve(function(e){try{try{const t=e.eventPayload,n=t.bulk[0],r=window.loomi_ctx.env,o=t.shared,i=g({experienceId:n.use_case,variantId:n.use_case_variant,storeAlias:o.alias,anonymousId:o.anonymous_id,version:n.version}),s=new URL(qn(r).cfgUrl.replace("/allocate","/match"));s.searchParams.append("q",i),fetch(s.toString())}catch(e){console.error("vsly: Failed to persist allocation",e)}return Promise.resolve()}catch(e){return Promise.reject(e)}}(e)).then(function(){return o&&C().trackExt(t,o).then().catch(e=>{console.error("vsly: Failed track ext event",e,t,o)}),r=1,n})})}}();return Promise.resolve(o&&o.then?o.then(t):t(o))}catch(i){return Promise.reject(i)}},xo="vsly_analytics_queue";function Co(e,t,n){void 0===n&&(n=!1);try{const r=window.loomi_ctx,o=r.storeAlias,i=r.jitsuKey,s=Et(),c={id:`${Date.now()}-${Math.random().toString(36).substring(2,9)}`,timestamp:Date.now(),eventPayload:{bulk:[{url:location.href,doc_path:location.pathname,doc_search:location.search,sid:r.session.id,sid_start:r.session.start_at,utm:s.utm,lmi_params:s.lmi_params,event_type:"USE_CASE",use_case:e._USE_CASE,use_case_variant:e._USE_CASE_VARIANT,version:e._USE_CASE_VERSION||1,ga:{isAudience:!1,gaName:e._USE_CASE_GA||e._USE_CASE,gaVariant:e._USE_CASE_GA_VARIANT||e._USE_CASE_VARIANT,reportGa:n}}],shared:{anonymous_id:t.id,user_agent:navigator.userAgent,utc_time:(new Date).toISOString(),local_tz_offset:(new Date).getTimezoneOffset(),doc_host:location.host,alias:o,api_key:i}},retries:0},a=ko();a.push(c),To(a)}catch(e){console.error("vsly: Failed to queue analytics event",e)}}function ko(){try{const e=localStorage.getItem(xo);if(!e)return[];const t=JSON.parse(e);return Array.isArray(t)?t:[]}catch(e){return console.error("vsly: Failed to read analytics queue",e),[]}}function To(e){try{localStorage.setItem(xo,JSON.stringify(e))}catch(e){console.error("vsly: Failed to save analytics queue",e)}}const No=(e,t)=>{try{localStorage.setItem(e,JSON.stringify({variant:t.experiment.variant,version:t.experiment.version||0}))}catch(e){}},Oo=(e,t)=>{let n=null;try{const r=localStorage.getItem(e);if(r){let e;const o=JSON.parse(r);if(o&&"object"==typeof o&&"variant"in o){e=o;const r=t.find(t=>t.experiment.variant===e.variant);r&&(r.experiment.version||0)===(e.version||0)&&(n=r)}}}catch(e){}return n},jo=e=>`vsly_redirect_test_${e[0].experiment.name}`,Lo=(e,t)=>{if(e){const n=e.experiment;t.some(e=>{const t=e.experiment;return t.variant===n.variant&&t.version===n.version})||(e=!1)}if(!e){const n=100*Math.random();let r=0;for(const o of t)if(r+=o.targeting.chance,n<=r){e=o;break}}return e},$o=function(e){void 0===e&&(e=!0);const t=window.loomi_ctx.consent;t.allowed=e,t.fin||(t.fin=Ro())},Ro=()=>(new Date).getTime(),Do=()=>window.Shopify.customerPrivacy,Uo=["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","NO","IS","LI"],Mo=function(e){void 0===e&&(e=!0);const t=window.loomi_ctx.consent;t.allowed=e,t.fin||(t.fin=qo())},qo=()=>(new Date).getTime(),Fo=()=>window.Shopify.customerPrivacy,Bo=()=>Promise.resolve(),Jo=()=>(window.loomi_ctx=window.loomi_ctx||{},window.loomi_ctx.performanceMetrics=window.loomi_ctx.performanceMetrics||{},window.loomi_ctx.performanceMetrics);function Vo(){try{const e=Jo().as;
106if(void 0===e)return;const t=performance.now();Object.assign(Jo(),{ae:t,ad:t-e}),(e=>{try{if("function"!=typeof performance.getEntriesByType)return;const t=performance.getEntriesByType("resource").filter(t=>t.startTime>=e&&(e=>{try{return new URL(e.name).pathname.endsWith("/allocate")}catch{return!1}})(t)).pop();if(!t)return;Object.assign(Jo(),{ars:t.startTime,afs:t.fetchStart,aqs:t.requestStart,aps:t.responseStart,ape:t.responseEnd,ard:t.duration,ardl:t.startTime-e,aprd:t.requestStart-t.startTime,arwd:t.responseStart-t.requestStart,ardd:t.responseEnd-t.responseStart})}catch{}})(e)}catch(e){}}function Ho(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}function Go(){return _(co),zt(),function(e){void 0===e&&(e=window.loomi_ctx.embeddedTests);try{if(!e)return;if(0===e.length)return;const t=e.filter(e=>e.experiment.isThemeTest);t.length>0&&function(e){const t=jo(e);let n=Oo(t,e);if(n=Lo(n,e),!n)return;if(!n.experiment)return;No(t,n);const r=n.experiment,o=_(()=>r.code.find(e=>"themeTest"===e.kind).value.targetThemeId)||0,i=ne({experienceId:r.name,variantId:r.variant,version:r.version,gaExperienceName:r.gaName,gaVariantName:r.gaVariant});Co(i,zt(),_(()=>!!r.ga)||!1),Ee(i,o)}(t);const n=e.filter(e=>!e.experiment.isThemeTest);n.length>0&&function(e){const t=e.filter(e=>function(e){if(!e)return!0;try{const t=e.match(/UrlTarget\(([^)]+)\)/);if(!t)return!1;const n=function(e){try{const t=e.match(/^"([^"]*)",\s*"([^"]*)",\s*(true|false)$/);return t?{value:t[1],op:t[2],includeQueryParam:"true"===t[3]}:null}catch{return null}}(t[1]);return!!n&&function(e,t,n){const r=window.location.search||"",o=window.location.href||"",i=(s=function(e){const t=e.startsWith("/")?e:"/"+e,n=t.split("/");if(n.length<2)return t;const r=n[1];let o=!1;return r.length>0&&r.length<=7&&(2===r.length||r.length>2&&"-"===r[2])&&(o=!0),o?"/"+n.slice(2).join("/"):t}(window.location.pathname),["STORY_IL","MAYVEN_GLOBAL","JDSPORT_IL"].includes(window.loomi_ctx.storeAlias)?s.toLowerCase():s);var s;const{hostPath:c,rawQuery:a}=function(e){const t=go(e),n=t.indexOf("?");return-1!==n?{hostPath:t.substring(0,n),rawQuery:t.substring(n+1)}:{hostPath:t,rawQuery:""}}(e),u=c.toLowerCase();let l=go(o.split("?")[0]).toLowerCase(),d="",m=u;if(d=(new URL(o).host+i).toLowerCase(),n){const e=r?_o(r.substring(1)):"";if(e&&(l+="?"+e,d+="?"+e),a){const e=_o(a);e&&(m+="?"+e)}}return function(e,t,n,r){switch(r){case"contains":return e.includes(n)||t.includes(n);case"matches":try{const r=new RegExp(n);return r.test(e)||r.test(t)}catch{return!1}case"==":return e===n||t===n;case"!=":return e===t?e!==n:t!==n;default:return!1}}(l,d,m,t)}(n.value,n.op,n.includeQueryParam)}catch(e){return console.error("vsly: Failed to evaluate targeting formula",e),!1}}(e.targeting.formula));if(0===t.length)return;const n=jo(t);let r=Oo(n,t);if(r=Lo(r,t),!r)return;if(!r.experiment)return;No(n,r);const o=r.experiment,i=ne({experienceId:o.name,variantId:o.variant,version:o.version,gaExperienceName:o.gaName,gaVariantName:o.gaVariant});Co(i,zt(),_(()=>!!o.ga)||!1);const s=_(()=>o.code.find(e=>"pageRedirect"===e.kind).value);s&&ee(i,s.destUrl,s.redirectAfter||1,s.retainQueryParams,s.stickinessMode)}(n)}catch(e){console.error("vsly ETT",e)}}(),window.vsly_redirecting}const zo=()=>window.loomi_ctx.blockingConcent;(function(){try{let t;function e(e){if(t)return e;(function(){const e=ko();e.length>0&&Promise.allSettled(e.map(bo)).then(t=>{To(e.filter((e,n)=>{const r=t[n];return("fulfilled"!==r.status||!r.value)&&(e.retries++,(e=>!(Date.now()-e.timestamp>18e5||e.retries>3))(e))}))}).catch(e=>{console.error("vsly: Failed to process analytics queue",e)})})(),(()=>{const e=()=>{const e=se();return!!e&&!Uo.includes(e)};return new Promise((t,n)=>{const r=window.loomi_ctx.consent||={};r.init=qo(),(se()?Bo():v(se,50,200)).then(()=>{e()&&(Mo(),t())}),(_(()=>Fo().analyticsProcessingAllowed)?Bo():v(()=>_(()=>Fo().analyticsProcessingAllowed),50,200)).then(()=>{const r=Fo().analyticsProcessingAllowed()||e();Mo(r),r?t():n()}),r.ccListener||(document.addEventListener("visitorConsentCollected",r=>{const o=r.detail.analyticsAllowed||e();Mo(o),o?t():n()}),r.ccListener=!0)})})().catch(),function(){try{Jo().as=performance.now()}catch(e){}}();const s=ho(o,i);return s.then(Vo),s.then(e=>{let{configuration:t,tracking:r}=e;return(e=>{p("vsly-a",`${(e=>e==n.STAGE?"https://sdk.loomi-stg.xyz/":"https://assets.visually.io/")(e)}v/visually-a.js?cb=${window.loomi_ctx.sdk_version}`,{defer:!0}).catch()}
106)(i),function(e){let{configuration:t,tracking:n}=e;try{return Promise.resolve(function(e,t){try{const{storeAlias:n,env:r}=window.loomi_ctx;return Promise.resolve(Ho(function(){return Promise.resolve(po(e,n,r,t)).then(function(e){let{jitsu:t,configuration:o}=e;if(!_(()=>o.flags["kill-switch"]))return Promise.resolve(Be()).then(function(){on(o.experiments),Dr(t,o),Vn(r,n,lo),dt()})})},function(e){_(()=>e.message)!==Dn&&F("fail initialising sdk",e)}))}catch(e){return Promise.reject(e)}}(t,n)).then(function(){window.dispatchEvent(new Event("visually_loaded"))})}catch(e){return Promise.reject(e)}}({configuration:t,tracking:r})}).catch(r).finally(Tn)}const r=e=>console.error(e);if(window.fetch&&(window.vslyNativeFetch=window.fetch),window.vsly_init=!0,window.vslyIntegrationType="static",(()=>{if(_(()=>window.visually_io_editor))return!0;const e=_(()=>window.loomi_ctx.ttl);return!("number"!=typeof e||!Number.isFinite(e)||e<=0)&&e<Math.floor(Date.now()/1e3)})())return console.log("sdk blocked"),Promise.resolve();window.loomi_ctx.sdk_version="0.12.165";const{storeAlias:o,env:i}=window.loomi_ctx;if(!zo()&&Go())return Promise.resolve();const s=function(){if(zo()){function e(e){return t?e:window.loomi_ctx.consent.allowed?void(Go()&&(t=1)):(Tn(),void(t=1))}const n=Ho(function(){return Promise.resolve((console.log("consent api init"),new Promise((e,t)=>{const n=window.loomi_ctx.consent||={};n.init=Ro(),(_(()=>Do().analyticsProcessingAllowed)?Promise.resolve():v(()=>_(()=>Do().analyticsProcessingAllowed),50,200)).then(()=>{const n=window.Shopify.customerPrivacy.analyticsProcessingAllowed();console.log("consent api",n),$o(n),n?e():t()}),n.ccListener||(document.addEventListener("visitorConsentCollected",()=>{const n=window.Shopify.customerPrivacy.analyticsProcessingAllowed();console.log("visitorConsentCollected",n),$o(n),n?e():t()}),n.ccListener=!0)}))).then(function(){})},function(){Tn(),t=1});return n&&n.then?n.then(e):e(n)}}();return Promise.resolve(s&&s.then?s.then(e):e(s))}catch(c){return Promise.reject(c)}})().then(()=>console.log("vsly sdk with embed init"))}();
107
108</script>
vendor: 1 bytes, line 108
108
109<script data-vsly="preact2" type="text/javascript" data-em-disable>
110    // Preact
111!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):n(e.preact={})}(this,function(e){var b,n,t,_,o,r,l,x={},C=[],u=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function w(e,n){for(var t in n)e[t]=n[t];return e}function g(e){var n=e.parentNode;n&&n.removeChild(e)}function i(e,n,t){var _,o=arguments,l={};for(_ in n)"key"!==_&&"ref"!==_&&(l[_]=n[_]);if(3<arguments.length)for(t=[t],_=3;_<arguments.length;_++)t.push(o[_]);if(null!=t&&(l.children=t),"function"==typeof e&&null!=e.defaultProps)for(_ in e.defaultProps)void 0===l[_]&&(l[_]=e.defaultProps[_]);return k(e,l,n&&n.key,n&&n.ref,null)}function k(e,n,t,_,o){var l={type:e,props:n,key:t,ref:_,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:o};return null==o&&(l.__v=l),b.vnode&&b.vnode(l),l}function S(e){return e.children}function P(e,n){this.props=e,this.context=n}function N(e,n){if(null==n)return e.__?N(e.__,e.__.__k.indexOf(e)+1):null;for(var t;n<e.__k.length;n++)if(null!=(t=e.__k[n])&&null!=t.__e)return t.__e;return"function"==typeof e.type?N(e):null}function c(e){var n,t;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,n=0;n<e.__k.length;n++)if(null!=(t=e.__k[n])&&null!=t.__e){e.__e=e.__c.base=t.__e;break}return c(e)}}function s(e){(!e.__d&&(e.__d=!0)&&t.push(e)&&!p.__r++||o!==b.debounceRendering)&&((o=b.debounceRendering)||_)(p)}function p(){for(var e;p.__r=t.length;)e=t.sort(function(e,n){return e.__v.__b-n.__v.__b}),t=[],e.some(function(e){var n,t,_,o,l,r,u;e.__d&&(r=(l=(n=e).__v).__e,(u=n.__P)&&(t=[],o=D(u,l,(_=w({},l)).__v=_,n.__n,void 0!==u.ownerSVGElement,null,t,null==r?N(l):r),d(t,l),o!=r&&c(l)))})}function E(e,n,t,_,o,l,r,u,i,c){var s,p,f,a,d,h,y,v=_&&_.__k||C,m=v.length;for(i==x&&(i=null!=r?r[0]:m?N(_,0):null),t.__k=[],s=0;s<n.length;s++)if(null!=(a=t.__k[s]=null==(a=n[s])||"boolean"==typeof a?null:"string"==typeof a||"number"==typeof a?k(null,a,null,null,a):Array.isArray(a)?k(S,{children:a},null,null,null):null!=a.__e||null!=a.__c?k(a.type,a.props,a.key,null,a.__v):a)){if(a.__=t,a.__b=t.__b+1,null===(f=v[s])||f&&a.key==f.key&&a.type===f.type)v[s]=void 0;else for(p=0;p<m;p++){if((f=v[p])&&a.key==f.key&&a.type===f.type){v[p]=void 0;break}f=null}d=D(e,a,f=f||x,o,l,r,u,i,c),(p=a.ref)&&f.ref!=p&&(y=y||[],f.ref&&y.push(f.ref,null,a),y.push(p,a.__c||d,a)),null!=d?(null==h&&(h=d),i=U(e,a,f,v,r,d,i),"option"==t.type?e.value="":"function"==typeof t.type&&(t.__d=i)):i&&f.__e==i&&i.parentNode!=e&&(i=N(f))}if(t.__e=h,null!=r&&"function"!=typeof t.type)for(s=r.length;s--;)null!=r[s]&&g(r[s]);for(s=m;s--;)null!=v[s]&&W(v[s],v[s]);if(y)for(s=0;s<y.length;s++)T(y[s],y[++s],y[++s])}function U(e,n,t,_,o,l,r){var u,i,c;if(void 0!==n.__d)u=n.__d,n.__d=void 0;else if(o==t||l!=r||null==l.parentNode)e:if(null==r||r.parentNode!==e)e.appendChild(l),u=null;else{for(i=r,c=0;(i=i.nextSibling)&&c<_.length;c+=2)if(i==l)break e;e.insertBefore(l,r),u=r}return void 0!==u?u:l.nextSibling}function f(e,n,t){"-"===n[0]?e.setProperty(n,t):e[n]="number"==typeof t&&!1===u.test(n)?t+"px":null==t?"":t}function A(e,n,t,_,o){var l,r,u,i,c;if(o?"className"===n&&(n="class"):"class"===n&&(n="className"),"style"===n)if(l=e.style,"string"==typeof t)l.cssText=t;else{if("string"==typeof _&&(l.cssText="",_=null),_)for(i in _)t&&i in t||f(l,i,"");if(t)for(c in t)_&&t[c]===_[c]||f(l,c,t[c])}else"o"===n[0]&&"n"===n[1]?(r=n!==(n=n.replace(/Capture$/,"")),n=((u=n.toLowerCase())in e?u:n).slice(2),t?(_||e.addEventListener(n,a,r),(e.l||(e.l={}))[n]=t):e.removeEventListener(n,a,r)):"list"!==n&&"tagName"!==n&&"form"!==n&&"type"!==n&&"size"!==n&&!o&&n in e?e[n]=null==t?"":t:"function"!=typeof t&&"dangerouslySetInnerHTML"!==n&&(n!==(n=n.replace(/^xlink:?/,""))?null==t||!1===t?e.removeAttributeNS("http://www.w3.org/1999/xlink",n.toLowerCase()):e.setAttributeNS("http://www.w3.org/1999/xlink",n.toLowerCase(),t):null==t||!1===t&&!/^ar/.test(n)?e.removeAttribute(n):e.setAttribute(n,t))}function a(e){this.l[e.type](b.event?b.event(e):e)}function D(e,n,t,_,o,l,r,u,i){var c,s,p,f,a,d,h,y,v,m,g,k=n.type;if(void 0!==n.constructor)return null;(c=b.__b)&&c(n);try{e:if("function"==typeof k){if(y=n.props,v=(c=k.contextType)&&_[c.__c],m=c?v?v.props.value:c.__:_,t.__c?h=(s=n.__c=t.__c).__=s.__E:("prototype"in k&&k.prototype.render?n.__c=s=new k(y,m):(n.__c=s=new P(y,m),s.constructor=k,s.render=L),v&&v.sub(s),s.props=y,s.state||(s.state={}),s.context=m,s.__n=_,p=s.__d=!0,s.__h=[]),null==s.__s&&(s.__s=s.state),null!=k.getDerivedStateFromProps&&(s.__s==s.state&&(s.__s=w({},s.__s)),w(s.__s,k.getDerivedStateFromProps(y,s.__s))),f=s.props,a=s.state,p)null==k.getDerivedStateFromProps&&null!=s.componentWillMount&&s.componentWillMount(),null!=s.componentDidMount&&s.__h.push(s.componentDidMount);else{if(null==k.getDerivedStateFromProps&&y!==f&&null!=s.componentWillReceiveProps&&s.componentWillReceiveProps(y,m),!s.__e&&null!=s.shouldComponentUpdate&&!1===s.shouldComponentUpdate(y,s.__s,m)||n.__v===t.__v){s.props=y,s.state=s.__s,n.__v!==t.__v&&(s.__d=!1),(s.__v=n).__e=t.__e,n.__k=t.__k,s.__h.length&&r.push(s),function e(n,t,_){for(var o,l=0;l<n.__k.length;l++)(o=n.__k[l])&&(o.__=n,o.__e&&("function"==typeof o.type&&1<o.__k.length&&e(o,t,_),t=U(_,o,o,n.__k,null,o.__e,t),"function"==typeof n.type&&(n.__d=t)))}(n,u,e);break e}null!=s.componentWillUpdate&&s.componentWillUpdate(y,s.__s,m),null!=s.componentDidUpdate&&s.__h.push(function(){s.componentDidUpdate(f,a,d)})}s.context=m,s.props=y,s.state=s.__s,(c=b.__r)&&c(n),s.__d=!1,s.__v=n,s.__P=e,c=s.render(s.props,s.state,s.context),s.state=s.__s,null!=s.getChildContext&&(_=w(w({},_),s.getChildContext())),p||null==s.getSnapshotBeforeUpdate||(d=s.getSnapshotBeforeUpdate(f,a)),g=null!=c&&c.type==S&&null==c.key?c.props.children:c,E(e,Array.isArray(g)?g:[g],n,t,_,o,l,r,u,i),s.base=n.__e,s.__h.length&&r.push(s),h&&(s.__E=s.__=null),s.__e=!1}else null==l&&n.__v===t.__v?(n.__k=t.__k,n.__e=t.__e):n.__e=function(e,n,t,_,o,l,r,u){var i,c,s,p,f,a=t.props,d=n.props;if(o="svg"===n.type||o,null!=l)for(i=0;i<l.length;i++)if(null!=(c=l[i])&&((null===n.type?3===c.nodeType:c.localName===n.type)||e==c)){e=c,l[i]=null;break}
111if(null==e){if(null===n.type)return document.createTextNode(d);e=o?document.createElementNS("http://www.w3.org/2000/svg",n.type):document.createElement(n.type,d.is&&{is:d.is}),l=null,u=!1}if(null===n.type)a!==d&&e.data!=d&&(e.data=d);else{if(null!=l&&(l=C.slice.call(e.childNodes)),s=(a=t.props||x).dangerouslySetInnerHTML,p=d.dangerouslySetInnerHTML,!u){if(null!=l)for(a={},f=0;f<e.attributes.length;f++)a[e.attributes[f].name]=e.attributes[f].value;(p||s)&&(p&&s&&p.__html==s.__html||(e.innerHTML=p&&p.__html||""))}(function(e,n,t,_,o){var l;for(l in t)"children"===l||"key"===l||l in n||A(e,l,null,t[l],_);for(l in n)o&&"function"!=typeof n[l]||"children"===l||"key"===l||"value"===l||"checked"===l||t[l]===n[l]||A(e,l,n[l],t[l],_)})(e,d,a,o,u),p?n.__k=[]:(i=n.props.children,E(e,Array.isArray(i)?i:[i],n,t,_,"foreignObject"!==n.type&&o,l,r,x,u)),u||("value"in d&&void 0!==(i=d.value)&&i!==e.value&&A(e,"value",i,a.value,!1),"checked"in d&&void 0!==(i=d.checked)&&i!==e.checked&&A(e,"checked",i,a.checked,!1))}return e}(t.__e,n,t,_,o,l,r,i);(c=b.diffed)&&c(n)}catch(e){n.__v=null,b.__e(e,n,t)}return n.__e}function d(e,n){b.__c&&b.__c(n,e),e.some(function(n){try{e=n.__h,n.__h=[],e.some(function(e){e.call(n)})}catch(e){b.__e(e,n.__v)}})}function T(e,n,t){try{"function"==typeof e?e(n):e.current=n}catch(e){b.__e(e,t)}}function W(e,n,t){var _,o,l;if(b.unmount&&b.unmount(e),(_=e.ref)&&(_.current&&_.current!==e.__e||T(_,null,n)),t||"function"==typeof e.type||(t=null!=(o=e.__e)),e.__e=e.__d=void 0,null!=(_=e.__c)){if(_.componentWillUnmount)try{_.componentWillUnmount()}catch(e){b.__e(e,n)}
111_.base=_.__P=null}if(_=e.__k)for(l=0;l<_.length;l++)_[l]&&W(_[l],n,t);null!=o&&g(o)}function L(e,n,t){return this.constructor(e,t)}function h(e,n,t){var _,o,l;b.__&&b.__(e,n),o=(_=t===r)?null:t&&t.__k||n.__k,e=i(S,null,[e]),l=[],D(n,(!_&&t||n).__k=e,o||x,x,void 0!==n.ownerSVGElement,t&&!_?[t]:!o&&n.childNodes.length?C.slice.call(n.childNodes):null,l,t||x,_),d(l,e)}b={__e:function(e,n){for(var t,_;n=n.__;)if((t=n.__c)&&!t.__)try{if(t.constructor&&null!=t.constructor.getDerivedStateFromError&&(_=!0,t.setState(t.constructor.getDerivedStateFromError(e))),null!=t.componentDidCatch&&(_=!0,t.componentDidCatch(e)),_)return s(t.__E=t)}catch(n){e=n}throw e}},n=function(e){return null!=e&&void 0===e.constructor},P.prototype.setState=function(e,n){var t=this.__s!==this.state?this.__s:this.__s=w({},this.state);"function"==typeof e&&(e=e(t,this.props)),e&&w(t,e),null!=e&&this.__v&&(n&&this.__h.push(n),s(this))},P.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),s(this))},P.prototype.render=S,t=[],_="function"==typeof Promise?Promise.prototype.then.bind(Prom
111ise.resolve()):setTimeout,p.__r=0,r=x,l=0,e.render=h,e.hydrate=function(e,n){h(e,n,r)},e.createElement=i,e.h=i,e.Fragment=S,e.createRef=function(){return{current:null}},e.isValidElement=n,e.Component=P,e.cloneElement=function(e,n){var t,_;for(_ in n=w(w({},e.props),n),2<arguments.length&&(n.children=C.slice.call(arguments,2)),t={},n)"key"!==_&&"ref"!==_&&(t[_]=n[_]);return k(e.type,t,n.key||e.key,n.ref||e.ref,null)},e.createContext=function(e){var n={},o={__c:"__cC"+l++,__:e,Consumer:function(e,n){return e.children(n)},Provider:function(e){var t,_=this;return this.getChildContext||(t=[],this.getChildContext=function(){return n[o.__c]=_,n},this.shouldComponentUpdate=function(n){_.props.value!==n.value&&t.some(function(e){e.context=n.value,s(e)})},this.sub=function(e){t.push(e);var n=e.componentWillUnmount;e.componentWillUnmount=function(){t.splice(t.indexOf(e),1),n&&n.call(e)}}),e.children}};return(o.Consumer.contextType=o).Provider.__=o},e.toChildArray=function e(n){return null==n||"boolean"==typeof n?[]:Array.isArray(n)?C.concat.apply([],n.map(e)):[n]},e.__u=W,e.options=b});
112// Preact Hooks
113!function(_,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("preact")):n(_.preactHooks={},_.preact)}(this,function(_,o){var e,u,t,i=0,r=[],c=o.options.__r,f=o.options.diffed,n=o.options.__c,s=o.options.unmount;function a(_,n){o.options.__h&&o.options.__h(u,_,i||n),i=0;var t=u.__H||(u.__H={__:[],__h:[]});return _>=t.__.length&&t.__.push({}),t.__[_]}function p(_){return i=1,h(b,_)}function h(_,n,t){var o=a(e++,2);return o.t=_,o.__c||(o.__c=u,o.__=[t?t(n):b(void 0,n),function(_){var n=o.t(o.__[0],_);o.__[0]!==n&&(o.__=[n,o.__[1]],o.__c.setState({}))}]),o.__}function m(_,n){var t=a(e++,4);!o.options.__s&&E(t.__H,n)&&(t.__=_,t.__H=n,u.__h.push(t))}function v(_,n){var t=a(e++,7);return E(t.__H,n)?(t.__H=n,t.__h=_,t.__=_()):t.__}function H(){r.some(function(n){if(n.__P)try{n.__H.__h.forEach(l),n.__H.__h.forEach(y),n.__H.__h=[]}catch(_){return n.__H.__h=[],o.options.__e(_,n.__v),!0}}),r=[]}o.options.__r=function(_){c&&c(_),e=0;var n=(u=_.__c).__H;n&&(n.__h.forEach(l),n.__h.forEach(y),n.__h=[])},o.options.diffed=function(_){f&&f(_);var n=_.__c;n&&n.__H&&n.__H.__h.length&&(1!==r.push(n)&&t===o.options.requestAnimationFrame||((t=o.options.requestAnimationFrame)||function(_){function n(){clearTimeout(o),d&&cancelAnimationFrame(t),setTimeout(_)}var t,o=setTimeout(n,100);d&&(t=requestAnimationFrame(n))})(H))},o.options.__c=function(_,t){t.some(function(n){try{n.__h.forEach(l),n.__h=n.__h.filter(function(_){return!_.__||y(_)})}catch(_){t.some(function(_){_.__h&&(_.__h=[])}),t=[],o.options.__e(_,n.__v)}}),n&&n(_,t)},o.options.unmount=function(_){s&&s(_);var n=_.__c;if(n&&n.__H)try{n.__H.__.forEach(l)}catch(_){o.options.__e(_,n.__v)}};var d="function"==typeof requestAnimationFrame;function l(_){"function"==typeof _.u&&_.u()}function y(_){_.u=_.__()}function E(t,_){return!t||_.some(function(_,n){return _!==t[n]})}function b(_,n){return"function"==typeof n?n(_):n}_.useState=p,_.useReducer=h,_.useEffect=function(_,n){var t=a(e++,3);!o.options.__s&&E(t.__H,n)&&(t.__=_,t.__H=n,u.__H.__h.push(t))},_.useLayoutEffect=m,_.useRef=function(_){return i=5,v(function(){return{current:_}},[])},_.useImperativeHandle=function(_,n,t){i=6,m(function(){"function"==typeof _?_(n()):_&&(_.current=n())},null==t?t:t.concat(_))},_.useMemo=v,_.useCallback=function(_,n){return i=8,v(function(){return _},n)},_.useContext=function(_){var n=u.context[_.__c],t=a(e++,9);return t.__c=_,n?(null==t.__&&(t.__=!0,n.sub(u)),n.props.value):_.__},_.useDebugValue=function(_,n){o.options.useDebugValue&&o.options.useDebugValue(n?n(_):_)},_.useErrorBoundary=function(_){var n=a(e++,10),t=p();return n.__=_,u.componentDidCatch||(u.componentDidCatch=function(_){n.__&&n.__(_),t[1](_)}),[t[0],function(){t[1](void 0)}]}});
114// Preact Compat
115!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("preact/hooks"),require("preact")):t(e.compat={},e.preactHooks,e.preact)}(this,function(t,n,u){function r(e,t){for(var n in t)e[n]=t[n];return e}function i(e,t){for(var n in e)if("__source"!==n&&!(n in t))return!0;for(var o in t)if("__source"!==o&&e[o]!==t[o])return!0;return!1}var o,e,a,l=(o=u.Component,a=o,(e=c).prototype=Object.create(a.prototype),(e.prototype.constructor=e).__proto__=a,c.prototype.shouldComponentUpdate=function(e,t){return i(this.props,e)||i(this.state,t)},c);function c(e){var t;return(t=o.call(this,e)||this).isPureReactComponent=!0,t}function p(t,o){function n(e){var t=this.props.ref,n=t==e.ref;return!n&&t&&(t.call?t(null):t.current=null),o?!o(this.props,e)||!n:i(this.props,e)}function e(e){return this.shouldComponentUpdate=n,u.createElement(t,e)}return e.prototype.isReactComponent=!0,e.displayName="Memo("+(t.displayName||t.name)+")",e.t=!0,e}var f=u.options.__b;u.options.__b=function(e){e.type&&e.type.t&&e.ref&&(e.props.ref=e.ref,e.ref=null),f&&f(e)};var s="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function d(o){function e(e,t){var n=r({},e);return delete n.ref,o(n,(t=e.ref||t)&&("object"!=typeof t||"current"in t)?t:null)}return e.$$typeof=s,(e.render=e).prototype.isReactComponent=e.t=!0,e.displayName="ForwardRef("+(o.displayName||o.name)+")",e}function _(e,o){return e?u.toChildArray(e).reduce(function(e,t,n){return e.concat(o(t,n))},[]):null}var h={map:_,forEach:_,count:function(e){return e?u.toChildArray(e).length:0},only:function(e){if(1!==(e=u.toChildArray(e)).length)throw new Error("Children.only() expects only one child.");return e[0]},toArray:u.toChildArray},m=u.options.__e;function v(e){return e&&((e=r({},e)).__c=null,e.__k=e.__k&&e.__k.map(v)),e}function y(){this.__u=0,this.u=null,this.__b=null}function C(e){var t=e.__.__c;return t&&t.o&&t.o(e)}function b(t){var n,o,r;function e(e){if(n||(n=t()).then(function(e){o=e.default||e},function(e){r=e}),r)throw r;if(!o)throw n;return u.createElement(o,e)}return e.displayName="Lazy",e.t=!0,e}function k(){this.i=null,this.l=null}u.options.__e=function(e,t,n){if(e.then)for(var o,r=t;r=r.__;)if((o=r.__c)&&o.__c)return o.__c(e,t.__c);m(e,t,n)},(y.prototype=new u.Component).__c=function(e,t){var n=this;null==n.u&&(n.u=[]),n.u.push(t);function o(){i||(i=!0,r?r(u):u())}var r=C(n.__v),i=!1;t.__c=t.componentWillUnmount,t.componentWillUnmount=function(){o(),t.__c&&t.__c()};var u=function(){var e;if(!--n.__u)for(n.__v.__k[0]=n.state.o,n.setState({o:n.__b=null});e=n.u.pop();)e.forceUpdate()};n.__u++||n.setState({o:n.__b=n.__v.__k[0]}),e.then(o,o)},y.prototype.render=function(e,t){return this.__b&&(this.__v.__k&&
115(this.__v.__k[0]=v(this.__b)),this.__b=null),[u.createElement(u.Fragment,null,t.o?null:e.children),t.o&&e.fallback]};function g(e,t,n){if(++n[1]===n[0]&&e.l.delete(t),e.props.revealOrder&&("t"!==e.props.revealOrder[0]||!e.l.size))for(n=e.i;n;){for(;3<n.length;)n.pop()();if(n[1]<n[0])break;e.i=n=n[2]}}(k.prototype=new u.Component).o=function(n){var o=this,r=C(o.__v),i=o.l.get(n);return i[0]++,function(e){function t(){o.props.revealOrder?(i.push(e),g(o,n,i)):e()}r?r(t):t()}},k.prototype.render=function(e){this.i=null,this.l=new Map;var t=u.toChildArray(e.children);e.revealOrder&&"b"===e.revealOrder[0]&&t.reverse();for(var n=t.length;n--;)this.l.set(t[n],this.i=[1,0,this.i]);return e.children},k.prototype.componentDidUpdate=k.prototype.componentDidMount=function(){var n=this;n.l.forEach(function(e,t){g(n,t,e)})};var E,N=((E=S.prototype).getChildContext=function(){return this.props.context},E.render=function(e){return e.children},S);function S(){}function x(e){var t=this,n=e.container,o=u.createElement(N,{context:t.context},e.vnode);return t.s&&t.s!==n&&(t.h.parentNode&&t.s.removeChild(t.h),u.__u(t.v),t.p=!1),e.vnode?t.p?(n.__k=t.__k,u.render(o,n),t.__k=n.__k):(t.h=document.createTextNode(""),u.hydrate("",n),n.appendChild(t.h),t.p=!0,t.s=n,u.render(o,n,t.h),t.__k=t.h.__k):t.p&&(t.h.parentNode&&t.s.removeChild(t.h),u.__u(t.v)),t.v=o,t.componentWillUnmount=function(){t.h.parentNode&&t.s.removeChild(t.h),u.__u(t.v)},null}function w(e,t){return u.createElement(x,{vnode:e,container:t})}var A=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;u.Component.prototype.isReactComponent={};var R="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;function U(e,t,n){if(null==t.__k)for(;t.firstChild;)t.removeChild(t.firstChild);return u.render(e,t),"function"==typeof n&&n(),e?e.__c:null}function P(e,t,n){return u.hydrate(e,t),"function"==typeof n&&n(),e?e.__c:null}var F=u.options.event;function O(e,t){e["UNSAFE_"+t]&&!e[t]&&Object.defineProperty(e,t,{configurable:!1,get:function(){return this["UNSAFE_"+t]}
115,set:function(e){this["UNSAFE_"+t]=e}})}u.options.event=function(e){F&&(e=F(e));var t=!(e.persist=function(){}),n=!1,o=e.stopPropagation;e.stopPropagation=function(){o.call(e),t=!0};var r=e.preventDefault;return e.preventDefault=function(){r.call(e),n=!0},e.isPropagationStopped=function(){return t},e.isDefaultPrevented=function(){return n},e.nativeEvent=e};var L={configurable:!0,get:function(){return this.class}},M=u.options.vnode;function D(e){return u.createElement.bind(null,e)}function V(e){return!!e&&e.$$typeof===R}function W(e){return V(e)?u.cloneElement.apply(null,arguments):e}function $(e){return!!e.__k&&(u.render(null,e),!0)}function j(e){return e&&(e.base||1===e.nodeType&&e)||null}u.options.vnode=function(i){i.$$typeof=R;var e,t,n,o=i.type,r=i.props;if(o){if(r.class!=r.className&&(L.enumerable="className"in r,null!=r.className&&(r.class=r.className),Object.defineProperty(r,"className",L)),"function"!=typeof o){for(n in r.defaultValue&&void 0!==r.value&&(r.value||0===r.value||(r.value=r.defaultValue),delete r.defaultValue),Array.isArray(r.value)&&r.multiple&&"select"===o&&(u.toChildArray(r.children).forEach(function(e){-1!=r.value.indexOf(e.props.value)&&(e.props.selected=!0)}),delete r.value),r)if(e=A.test(n))break;if(e)for(n in t=i.props={},r)t[A.test(n)?n.replace(/[A-Z0-9]/,"-$&").toLowerCase():n]=r[n]}!function(){var e=i.type,t=i.props;if(t&&"string"==typeof e){var n,o={};for(var r in t)/^on(Ani|Tra|Tou)/.test(r)&&(t[r.toLowerCase()]=t[r],delete t[r]),o[r.toLowerCase()]=r;o.ondoubleclick&&(t.ondblclick=t[o.ondoubleclick],delete t[o.ondoubleclick]),o.onbeforeinput&&(t.onbeforeinput=t[o.onbeforeinput],delete t[o.onbeforeinput]),o.onchange&&("textarea"===e||"input"===e.toLowerCase()&&!/^fil|che|ra/i.test(t.type))&&(t[n=o.oninput||"oninput"]||(t[n]=t[o.onchange],delete t[o.onchange]))}}(),"function"==typeof o&&!o.m&&o.prototype&&(O(o.prototype,"componentWillMount"),O(o.prototype,"componentWillReceiveProps"),O(o.prototype,"componentWillUpdate"),o.m=!0)}M&&M(i)};function z(e,t){return e(t)}var H=u.Fragment,T={useState:n.useState,useReducer:n.useReducer,useEffect:n.useEffect,useLayoutEffect:n.useLayoutEffect,useRef:n.useRef,useImperativeHandle:n.useImperativeHandle,useMemo:n.useMemo,useCallback:n.useCallback,useContext:n.useContext,useDebugValue:n.useDebugValue,version:"16.8.0",Children:h,render:U,hydrate:P,unmountComponentAtNode:$,createPortal:w,createElement:u.createElement,createContext:u.createContext,createFactory:D,cloneElement:W,createRef:u.createRef,Fragment:u.Fragment,isValidElement:V,findDOMNode:j,Component:u.Component,PureComponent:l,memo:p,forwardRef:d,unstable_batchedUpdates:z,StrictMode:H,Suspense:y,SuspenseList:k,lazy:b};Object.keys(n).forEach(function(e){t[e]=n[e]}),t.createElement=u.createElement,t.createContext=u.createContext,t.createRef=u.createRef,t.Fragment=u.Fragment,t.Component=u.Component,t.version="16.8.0",t.Children=h,t.render=U,t.hydrate=P,t.unmountComponentAtNode=$,t.createPortal=w,t.createFactory=D,t.cloneElement=W,t.isValidElement=V,t.findDOMNode=j,t.PureComponent=l,t.memo=p,t.forwardRef=d,t.unstable_batchedUpdates=z,t.StrictMode=H,t.Suspense=y,t.SuspenseList=k,t.lazy=b,t.default=T});
116// Goober
117!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):t((e||self).goober={})}(this,function(e){let t={data:""},r=e=>"object"==typeof window?((e?e.querySelector("#_goober"):window._goober)||Object.assign((e||document.head).appendChild(document.createElement("style")),{innerHTML:" ",id:"_goober"})).firstChild:e||t,l=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,n=/\/\*[^]*?\*\/|  +/g,o=/\n+/g,a=(e,t)=>{let r="",l="",n="";for(let o in e){let s=e[o];"@"==o[0]?"i"==o[1]?r=o+" "+s+";":l+="f"==o[1]?a(s,o):o+"{"+a(s,"k"==o[1]?"":t)+"}":"object"==typeof s?l+=a(s,t?t.replace(/([^,])+/g,e=>o.replace(/(^:.*)|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+" "+t:t)):o):null!=s&&(o=/^--/.test(o)?o:o.replace(/[A-Z]/g,"-$&").toLowerCase(),n+=a.p?a.p(o,s):o+":"+s+";")}return r+(t&&n?t+"{"+n+"}":n)+l},s={},i=e=>{if("object"==typeof e){let t="";for(let r in e)t+=r+i(e[r]);return t}return e},c=(e,t,r,c,f)=>{let p=i(e),u=s[p]||(s[p]=(e=>{let t=0,r=11;for(;t<e.length;)r=101*r+e.charCodeAt(t++)>>>0;return"go"+r})(p));if(!s[u]){let t=p!==e?e:(e=>{let t,r,a=[{}];for(;t=l.exec(e.replace(n,""));)t[4]?a.shift():t[3]?(r=t[3].replace(o," ").trim(),a.unshift(a[0][r]=a[0][r]||{})):a[0][t[1]]=t[2].replace(o," ").trim();return a[0]})(e);
117s[u]=a(f?{["@keyframes "+u]:t}:t,r?"":"."+u)}return((e,t,r)=>{-1==t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(s[u],t,c),u},f=(e,t,r)=>e.reduce((e,l,n)=>{let o=t[n];if(o&&o.call){let e=o(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;o=t?"."+t:e&&"object"==typeof e?e.props?"":a(e,""):!1===e?"":e}return e+l+(null==o?"":o)},"");function p(e){let t=this||{},l=e.call?e(t.p):e;return c(l.unshift?l.raw?f(l,[].slice.call(arguments,1),t.p):l.reduce((e,r)=>Object.assign(e,r&&r.call?r(t.p):r),{}):l,r(t.target),t.g,t.o,t.k)}let u,d,g,b=p.bind({g:1}),h=p.bind({k:1});e.css=p,e.extractCss=e=>{let t=r(e),l=t.data;return t.data="",l},e.glob=b,e.keyframes=h,e.setup=function(e,t,r,l){a.p=t,u=e,d=r,g=l},e.styled=function(e,t){let r=this||{};return function(){let l=arguments;function n(o,a){let s=Object.assign({},o),i=s.className||n.className;r.p=Object.assign({theme:d&&d()},s),r.o=/ *go\d+/.test(i),s.className=p.apply(r,l)+(i?" "+i:""),t&&(s.ref=a);let c=e;return e[0]&&(c=s.as||e,delete s.as),g&&c[0]&&g(s),u(c,s)}return t?t(n):n}}});
118
119</script>
119
120<!--LOOMI SDK-->
121
122
123    
124
125
126
127
128<link rel="preload" as="image" href="https://montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&width=200">
129<link rel="preload" as="image" href="https://montrealweights.ca/cdn/shop/products/5-52MainImage.png?v=1756413106&width=823">
130<link rel="preload" as="image" href="https://i.ibb.co/WgxtT9D/Highlight-Pic-Main-Descriptions-552-1.jpg">
131
132
133
134
135
136
137
138
139<link rel="preconnect" href="//fonts.shopifycdn.com/" crossorigin>
140<link rel="preconnect" href="//cdn.shopify.com/" crossorigin>
141<link rel="preconnect" href="//v.shopify.com/" crossorigin>
142<link rel="dns-prefetch" href="//montrealweights.ca" crossorigin>
143<link rel="dns-prefetch" href="//mtlneedsweights.myshopify.com" crossorigin>
144<link rel="dns-prefetch" href="//cdn.shopify.com" crossorigin>
145<link rel="dns-prefetch" href="//v.shopify.com" crossorigin>
146<link rel="dns-prefetch" href="//fonts.shopifycdn.com" crossorigin>
147
148
149<link rel="preload" as="image" href="https://montrealweights.ca/cdn/shop/files/BFCM_2024_V4.jpg?v=1731044836">
150<link rel="preload" as="image" href="https://montrealweights.ca/cdn/shop/files/BFCM2024_Hero_Mobile_3.jpg?v=1731045382">
151
152
153
154
155<!-- 
155<script type="text/javascript"> const observer = new MutationObserver(e => { e.forEach(({ addedNodes: e }) => { e.forEach(e => { 1 === e.nodeType && "SCRIPT" === e.tagName && (e.innerHTML.includes("asyncLoad") && (e.innerHTML = e.innerHTML.replace("if(window.attachEvent)", "document.addEventListener('asyncLazyLoad',function(event){asyncLoad();});if(window.attachEvent)").replaceAll(", asyncLoad", ", function(){}")), e.innerHTML.includes("PreviewBarInjector") && (e.innerHTML = e.innerHTML.replace("DOMContentLoaded", "asyncLazyLoad")), (e.className == 'analytics') && (e.type = 'text/lazyload'),(e.src.includes("assets/storefront/features")||e.src.includes("assets/shopify_pay")||e.src.includes("connect.facebook.net"))&&(e.setAttribute("data-src", e.src), e.removeAttribute("src")))})})});observer.observe(document.documentElement,{childList:!0,subtree:!0})</script>
155  -->
156 
157<script src="//cdn.shopify.com/s/files/1/0387/0359/5652/files/main.js?v=1692871732" type="text/javascript"></script>
157  
158<script src="//cdn.shopify.com/s/files/1/0387/0359/5652/files/site.js?v=1692867711" type="text/javascript"></script>
158
159
160
161    
161<script script data-em-disable src="//searchanise-ef84.kxcdn.com/widgets/shopify/init.js?a=0S2m0o4y7C"></script>
161
162
163    
164    
165    
166    
167    
168    
169      
170      
171    
172  
173
174    <meta charset="utf-8">
175    <meta http-equiv="X-UA-Compatible" content="IE=edge">
176    <meta name="viewport" content="width=device-width,initial-scale=1">
177    <meta name="theme-color" content="">
178    <link rel="canonical" href="https://montrealweights.ca/pages/contact-us">
179    <link rel="preconnect" href="https://cdn.shopify.com" crossorigin>
180
181    <!-- start custom styles -->
182    <link href="//montrealweights.ca/cdn/shop/t/240/assets/vsh.scss.css?v=31496200231902736811776075633" rel="stylesheet" type="text/css" media="all" />
183    <!-- end custom styles -->
184
185    <!-- Global site tag (gtag.js) - Google Ads: 651507689 -->
vendor: 71 bytes, lines 185-186
185
186    <script async="" src="https://www.googletagmanager.com/gtag/js?id=
186AW-651507689
vendor: 17 bytes, lines 186-188
186"></script>
187
188    
188<script>
189      
vendor: 162 bytes, lines 189-194
189window.dataLayer = window.dataLayer || [];
190      function gtag() {
191        dataLayer.push(arguments);
192      }
193      gtag('js', new Date());
194      gtag('config', '
194AW-651507689
vendor: 46 bytes, lines 194-195
194', { allow_enhanced_conversions: true });
195    
195</script>
195
196
197    
198
199    
200
201    <!-- anti-flicker snippet (recommended) -->
202    
203
204    
205
206    
206<script>
207      window.markerConfig = {
208        project: '63a1edfe6b5bf5f5900a5685',
209        source: 'snippet',
210      };
211    </script>
211<link rel="icon" type="image/png" href="//montrealweights.ca/cdn/shop/files/favicon.webp?crop=center&height=32&v=1668628086&width=32"><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin><title>
212      Contactez-nous
213    </title>
214
215    
216
217    
218
219<meta property="og:site_name" content="Montreal Weights">
220<meta property="og:url" content="https://montrealweights.ca/pages/contact-us">
221<meta property="og:title" content="Contactez-nous">
222<meta property="og:type" content="website">
223<meta property="og:description" content="Montreal Weights is an online Canadian weights retailer with high quality affordable home gym equipment. Dumbbells, Barbells, Weight Set in Canada &amp; more!"><meta property="og:image" content="http://montrealweights.ca/cdn/shop/files/48e2ea98-70ae-42f1-ba38-bf982b41631f_de8f2f81-d5fe-415f-ba91-25734f8c61d1.jpg?v=1629984220">
224  <meta property="og:image:secure_url" content="https://montrealweights.ca/cdn/shop/files/48e2ea98-70ae-42f1-ba38-bf982b41631f_de8f2f81-d5fe-415f-ba91-25734f8c61d1.jpg?v=1629984220">
225  <meta property="og:image:width" content="1920">
226  <meta property="og:image:height" content="711"><meta name="twitter:card" content="summary_large_image">
227<meta name="twitter:title" content="Contactez-nous">
228<meta name="twitter:description" content="Montreal Weights is an online Canadian weights retailer with high quality affordable home gym equipment. Dumbbells, Barbells, Weight Set in Canada &amp; more!">
229
230
231    <link href="//montrealweights.ca/cdn/shop/t/240/assets/base.css?v=32126005315459555131776076998" rel="stylesheet" type="text/css" media="all" />
232    <link href="//montrealweights.ca/cdn/shop/t/240/assets/global.css?v=124011991476464742361780096736" rel="stylesheet" type="text/css" media="all" />
233    <link href="//montrealweights.ca/cdn/shop/t/240/assets/search-results.css?v=144551196164862296101776075633" rel="stylesheet" type="text/css" media="all" />
234
235
236    <style data-shopify>
237      @font-face {
238  font-family: Assistant;
239  font-weight: 400;
240  font-style: normal;
241  font-display: swap;
242  src: url("//montrealweights.ca/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2") format("woff2"),
243       url("//montrealweights.ca/cdn/fonts/assistant/assistant_n4.6e9875ce64e0fefcd3f4446b7ec9036b3ddd2985.woff") format("woff");
244}
245
246      @font-face {
247  font-family: Assistant;
248  font-weight: 700;
249  font-style: normal;
250  font-display: swap;
251  src: url("//montrealweights.ca/cdn/fonts/assistant/assistant_n7.bf44452348ec8b8efa3aa3068825305886b1c83c.woff2") format("woff2"),
252       url("//montrealweights.ca/cdn/fonts/assistant/assistant_n7.0c887fee83f6b3bda822f1150b912c72da0f7b64.woff") format("woff");
253}
254
255      
256      
257      @font-face {
258  font-family: Assistant;
259  font-weight: 700;
260  font-style: normal;
261  font-display: swap;
262  src: url("//montrealweights.ca/cdn/fonts/assistant/assistant_n7.bf44452348ec8b8efa3aa3068825305886b1c83c.woff2") format("woff2"),
263       url("//montrealweights.ca/cdn/fonts/assistant/assistant_n7.0c887fee83f6b3bda822f1150b912c72da0f7b64.woff") format("woff");
264}
265
266
267      :root {
268        --font-body-family: Assistant, sans-serif;
269        --font-body-style: normal;
270        --font-body-weight: 400;
271        --font-body-weight-bold: 700;
272
273        --font-heading-family: Assistant, sans-serif;
274        --font-heading-style: normal;
275        --font-heading-weight: 700;
276
277        --font-body-scale: 1.0;
278        --font-heading-scale: 1.0;
279
280        --color-base-text: 18, 18, 18;
281        --color-shadow: 18, 18, 18;
282        --color-base-background-1: 255, 255, 255;
283        --color-base-background-2: 243, 243, 243;
284        --color-base-solid-button-labels: 255, 255, 255;
285        --color-base-outline-button-labels: 18, 18, 18;
286        --color-base-accent-1: 18, 18, 18;
287        --color-base-accent-2: 238, 47, 53;
288        --payment-terms-background-color: #ffffff;
289
290        --gradient-base-background-1: #ffffff;
291        --gradient-base-background-2: #f3f3f3;
292        --gradient-base-accent-1: #121212;
293        --gradient-base-accent-2: #ee2f35;
294
295        --media-padding: px;
296        --media-border-opacity: 0.05;
297        --media-border-width: 1px;
298        --media-radius: 0px;
299        --media-shadow-opacity: 0.0;
300        --media-shadow-horizontal-offset: 0px;
301        --media-shadow-vertical-offset: 4px;
302        --media-shadow-blur-radius: 5px;
303        --media-shadow-visible: 0;
304
305        --page-width: 120rem;
306        --page-width-margin: 0rem;
307
308        --product-card-image-padding: 0.0rem;
309        --product-card-corner-radius: 0.0rem;
310        --product-card-text-alignment: left;
311        --product-card-border-width: 0.0rem;
312        --product-card-border-opacity: 0.1;
313        --product-card-shadow-opacity: 0.0;
314        --product-card-shadow-visible: 0;
315        --product-card-shadow-horizontal-offset: 0.0rem;
316        --product-card-shadow-vertical-offset: 0.4rem;
317        --product-card-shadow-blur-radius: 0.5rem;
318
319        --collection-card-image-padding: 0.0rem;
320        --collection-card-corner-radius: 0.0rem;
321        --collection-card-text-alignment: left;
322        --collection-card-border-width: 0.0rem;
323        --collection-card-border-opacity: 0.1;
324        --collection-card-shadow-opacity: 0.0;
325        --collection-card-shadow-visible: 0;
326        --collection-card-shadow-horizontal-offset: 0.0rem;
327        --collection-card-shadow-vertical-offset: 0.4rem;
328        --collection-card-shadow-blur-radius: 0.5rem;
329
330        --blog-card-image-padding: 0.0rem;
331        --blog-card-corner-radius: 0.0rem;
332        --blog-card-text-alignment: left;
333        --blog-card-border-width: 0.0rem;
334        --blog-card-border-opacity: 0.1;
335        --blog-card-shadow-opacity: 0.0;
336        --blog-card-shadow-visible: 0;
337        --blog-card-shadow-horizontal-offset: 0.0rem;
338        --blog-card-shadow-vertical-offset: 0.4rem;
339        --blog-card-shadow-blur-radius: 0.5rem;
340
341        --badge-corner-radius: 0.4rem;
342
343        --popup-border-width: 1px;
344        --popup-border-opacity: 0.1;
345        --popup-corner-radius: 0px;
346        --popup-shadow-opacity: 0.0;
347        --popup-shadow-horizontal-offset: 0px;
348        --popup-shadow-vertical-offset: 4px;
349        --popup-shadow-blur-radius: 5px;
350
351        --drawer-border-width: 1px;
352        --drawer-border-opacity: 0.1;
353        --drawer-shadow-opacity: 0.0;
354        --drawer-shadow-horizontal-offset: 0px;
355        --drawer-shadow-vertical-offset: 4px;
356        --drawer-shadow-blur-radius: 5px;
357
358        --spacing-sections-desktop: 0px;
359        --spacing-sections-mobile: 0px;
360
361        --grid-desktop-vertical-spacing: 8px;
362        --grid-desktop-horizontal-spacing: 8px;
363        --grid-mobile-vertical-spacing: 4px;
364        --grid-mobile-horizontal-spacing: 4px;
365
366        --text-boxes-border-opacity: 0.1;
367        --text-boxes-border-width: 0px;
368        --text-boxes-radius: 0px;
369        --text-boxes-shadow-opacity: 0.0;
370        --text-boxes-shadow-visible: 0;
371        --text-boxes-shadow-horizontal-offset: 0px;
372        --text-boxes-shadow-vertical-offset: 4px;
373        --text-boxes-shadow-blur-radius: 5px;
374
375        --buttons-radius: 0px;
376        --buttons-radius-outset: 0px;
377        --buttons-border-width: 1px;
378        --buttons-border-opacity: 1.0;
379        --buttons-shadow-opacity: 0.0;
380        --buttons-shadow-visible: 0;
381        --buttons-shadow-horizontal-offset: 0px;
382        --buttons-shadow-vertical-offset: 4px;
383        --buttons-shadow-blur-radius: 5px;
384        --buttons-border-offset: 0px;
385
386        --inputs-radius: 0px;
387        --inputs-border-width: 1px;
388        --inputs-border-opacity: 0.55;
389        --inputs-shadow-opacity: 0.0;
390        --inputs-shadow-horizontal-offset: 0px;
391        --inputs-margin-offset: 0px;
392        --inputs-shadow-vertical-offset: 4px;
393        --inputs-shadow-blur-radius: 5px;
394        --inputs-radius-outset: 0px;
395
396        --variant-pills-radius: 40px;
397        --variant-pills-border-width: 1px;
398        --variant-pills-border-opacity: 0.55;
399        --variant-pills-shadow-opacity: 0.0;
400        --variant-pills-shadow-horizontal-offset: 0px;
401        --variant-pills-shadow-vertical-offset: 4px;
402        --variant-pills-shadow-blur-radius: 5px;
403      }
404
405      *,
406      *::before,
407      *::after {
408        box-sizing: inherit;
409      }
410
411      html {
412        box-sizing: border-box;
413        font-size: calc(var(--font-body-scale) * 62.5%);
414        height: 100%;
415      }
416
417      body {
418        display: grid;
419        grid-template-rows: auto auto 1fr auto;
420        grid-template-columns: 100%;
421        min-height: 100%;
422        margin: 0;
423        font-size: 1.5rem;
424        letter-spacing: 0.06rem;
425        line-height: calc(1 + 0.4 / var(--font-body-scale));
426        font-family: var(--font-body-family);
427        font-style: var(--font-body-style);
428        font-weight: var(--font-body-weight);
429      }
430
431      @media screen and (min-width: 750px) {
432        body {
433          font-size: 1.6rem;
434        }
435      }
436    </style>
437<link rel="preload" as="font" href="//montrealweights.ca/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2" type="font/woff2" crossorigin><link rel="preload" as="font" href="//montrealweights.ca/cdn/fonts/assistant/assistant_n7.bf44452348ec8b8efa3aa3068825305886b1c83c.woff2" type="font/woff2" crossorigin><link
438        rel="stylesheet"
439        href="//montrealweights.ca/cdn/shop/t/240/assets/component-predictive-search.css?v=83512081251802922551776075633"
440        media="print"
441        onload="this.media='all'"
442      >
442<script src="//montrealweights.ca/cdn/shop/t/240/assets/global.js?v=11439158976884637011788854980" defer="defer"></script>
442<!-- Affirm -->
443    
443<script>
444      _affirm_config = {
445        public_api_key: 'YZQKN6JPZSXOP6K3',
446        script: 'https://cdn1.affirm.com/js/v2/affirm.js',
447        locale: 'en_CA',
448        country_code: 'CAN',
449      };
450
451      (function (l, g, m, e, a, f, b) {
452        var d,
453          c = l[m] || {},
454          h = document.createElement(f),
455          n = document.getElementsByTagName(f)[0],
456          k = function (a, b, c) {
457            return function () {
458              a[b]._.push([c, arguments]);
459            };
460          };
461        c[e] = k(c, e, 'set');
462        d = c[e];
463        c[a] = {};
464        c[a]._ = [];
465        d._ = [];
466        c[a][b] = k(c, a, b);
467        a = 0;
468        for (b = 'set add save post open empty reset on off trigger ready setProduct'.split(' '); a < b.length; a++)
469          d[b[a]] = k(c, e, b[a]);
470        a = 0;
471        for (b = ['get', 'token', 'url', 'items']; a < b.length; a++) d[b[a]] = function () {};
472        h.async = !0;
473        h.src = g[f];
474        n.parentNode.insertBefore(h, n);
475        delete g[f];
476        d(g);
477        l[m] = c;
478      })(window, _affirm_config, 'affirm', 'checkout', 'ui', 'script', 'ready');
479      // Use your live public API Key and https://cdn1.affirm.com/js/v2/affirm.js script to point to Affirm production environment.
480      // affirm.checkout.open();
481    </script>
481
482    <!-- End Affirm -->
483
484    
485
486<script type="text/javascript">
487  
488    window.SHG_CUSTOMER = null;
489  
490</script>
490
491
492
493
494
495
496
497
498
499    
500    
501    
502
503    <dynamic>
503<script>
504  !function(t,n){var e=n.loyaltylion||[];if(!e.isLoyaltyLion){n.loyaltylion=e,void 0===n.lion&&(n.lion=e),e.version=2,e.isLoyaltyLion=!0;var o=n.URLSearchParams,i=n.sessionStorage,r="ll_loader_revision",a=(new Date).toISOString().replace(/-/g,""),s="function"==typeof o?function(){try{var t=new o(n.location.search).get(r);return t&&i.setItem(r,t),i.getItem(r)}catch(t){return""}}():null;c("https://sdk.loyaltylion.net/static/2/"+a.slice(0,8)+"/loader"+(s?"-"+s:"")+".js");var l=!1;e.init=function(t){if(l)throw new Error("Cannot call lion.init more than once");l=!0;var n=e._token=t.token;if(!n)throw new Error("Token must be supplied to lion.init");var o=[];function i(t,n){t[n]=function(){o.push([n,Array.prototype.slice.call(arguments,0)])}}"_push configure bootstrap shutdown on removeListener authenticateCustomer".split(" ").forEach(function(t){i(e,t)}),c("https://sdk.loyaltylion.net/sdk/start/"+a.slice(0,11)+"/"+n+".js"),e._initData=t,e._buffer=o}}function c(n){var e=t.getElementsByTagName("script")[0],o=t.createElement("script");o.src=n,o.crossOrigin="",e.parentNode.insertBefore(o,e)}}(document,window);
505
506  
507    
508      loyaltylion.init({ token: "617be5f2d2a17f6cdcf10b212570591b" });
509    
510  
511</script>
511</dynamic>
512
513    
514
515  <!-- BEGIN app block: shopify://apps/visually-a-b-testing-cro/blocks/visually/d08aba15-0b89-475b-9f75-9c4c0ca8c3c4 -->
515<script data-vsly="preact">
516    const hasPreact = !!Array.from(document.getElementsByTagName('script')).find(x => !!['vsly-preact.min.js'].find(s => x?.src?.includes(s)) || x.getAttribute('data-vsly') === 'preact2')
517    if (!hasPreact) {
518        var script = document.createElement('script');
519        script.src = 'https://assets.visually.io/widgets/vsly-preact.min.js';
520        document.head.appendChild(script);
521    }
522</script>
vendor: 1 bytes, line 522
522
523<script type="module">
524  const env = 2
525  var store = "mtlneedsweights.myshopify.com";
526  var alias = store.replace(".myshopify.com", "").replaceAll("-", "_").toUpperCase();
527  if(!window.vsly_init){
528    window.vsly_init = true
529    window.vsly_app_embed = true
530    import("https://assets.visually.io/v/visually.esm.js").then(({sdk})=>{
531      sdk.initialize(env, alias);
532    })
533    var jitsuKey =  "js.40009302175";
534    setTimeout(() => {
535      if (!window.vsly_analytics_init) {
536        window.vsly_analytics_init = true
537        import("https://assets.visually.io/v/visually-a.esm.js").then(({sdk}) => {
538          sdk.initialize(jitsuKey, alias, env);
539        })
540      }
541    }, 1000);
542    window.loomi_ctx = {...(window.loomi_ctx || {}),storeAlias:alias,jitsuKey,env};
543    
544    
545  }
546</script>
546
547
548<!-- END app block --><!-- BEGIN app block: shopify://apps/upstackified-universal-pixel/blocks/adtScript/2ef9f833-e251-4eed-af16-8dca98b27a2f -->
548<script></script>
vendor: 1 bytes, line 548
548
549<script></script>
vendor: 1 bytes, line 549
549
550<script></script>
550
551
552
553
554
555
556<meta property="adtr:loading" content="">
557
558
559
560    
561    
562      
562<script async src="https://prod2-cdn.upstackified.com/scripts/px/adtr-shopify.min.js"></script>
562
563      
563<script>
564        try {
565          window._adtrPixelDetails = '25745fdf-90b6-4e4b-bb3e-ef8ed9c32c82';
566          var metaCollection = [];
567          var metaProduct = [];
568          var metaTag = [];
569          var metaType = [];
570          if (document.querySelector("meta[property='adtr:collections']") != null) {
571            metaCollection = document
572              .querySelector("meta[property='adtr:collections']")
573              .getAttribute('content')
574              .split(',');
575          }
576          if (document.querySelector("meta[property='adtr:product']") != null) {
577            metaProduct = document.querySelector("meta[property='adtr:product']").getAttribute('content').split(',');
578          }
579          if (document.querySelector("meta[property='adtr:tags']") != null) {
580            metaTag = document.querySelector("meta[property='adtr:tags']").getAttribute('content').split(',');
581          }
582          if (document.querySelector("meta[property='adtr:product_type']") != null) {
583            metaType = document.querySelector("meta[property='adtr:product_type']").getAttribute('content').split(',');
584          }
585
586          function arrayContainsMapping(metaMappings, mappings) {
587            try {
588              mappings = mappings.map((item) => item.toString());
589              if (mappings.length && metaMappings.length) {
590                for (let i = 0; i < metaMappings.length; i++) {
591                  if (mappings.includes(metaMappings[i].trim())) {
592                    return true;
593                  }
594                }
595              }
596              return false;
597            } catch (e) {
598              console.error(e);
599            }
600          }
601
602          function _adqLoadTag() {
603            try {
604              window._upsLoaded = 0;
605              window._upssqueue = window._upssqueue || [];
606              window._upstack = window?._upstack || function () {
607                window._upssqueue.push(arguments);
608              };
609
610              window._upssClient = function () {
611                window._upssqueue.push(arguments);
612              };
613              window._upssClient('init');
614            } catch (e) {
615              console.error(e);
616            }
617          }
618
619          let retryCount = 0;
620          function waitForPixelId() {
621            if (window && typeof window._adtrPixelDetails !== 'undefined') {
622              _adqLoadTag();
623            } else {
624              if (retryCount < 25) {
625                //console.log('retrying...' + retryCount);
626                retryCount++;
627                setTimeout(waitForPixelId, 250);
628              }
629            }
630          }
631
632          waitForPixelId();
633
634          
635        } catch (e) {
636          console.error(e);
637        }
638      </script>
638
639    
640
641
642<!-- END app block --><!-- BEGIN app block: shopify://apps/videowise-video-commerce/blocks/script_embed/b48d6c0c-3e3f-4791-a9ab-a5ab7ec82f4d -->
643
644
645
646
647<link
648  rel="preload"
649  as="style"
650  onload="this.onload=null;this.rel='stylesheet'"
651  href="https://assets.videowise.com/style.css.gz"
652  id="videowise-style-css">
653<script
654  defer
655  src="https://assets.videowise.com/vendors.js.gz"
656  id="videowise-vendors-js"></script>
vendor: 1 bytes, line 656
656
657<script
658  defer
659  src="https://assets.videowise.com/client.js.gz"
660  id="videowise-client-js"></script>
660
661
662<link rel="dns-prefetch" href="https://assets.videowise.com/" />
663
664<link rel="dns-prefetch" href="https://cdn2.videowise.com/" />
665
666<link rel="dns-prefetch" href="https://api-cdn.videowise.com/" />
667
668<link rel="dns-prefetch" href="https://images.videowise.com/" />
669
670<link rel="dns-prefetch" href="https://cdn.videowise.com/" />
671
672<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 -->
673
674
675
676
677
678
679
680
681
682
683
684
685  
685<script async src="https://static.klaviyo.com/onsite/js/VXR7n9/klaviyo.js?company_id=VXR7n9"></script>
685
686  
686<script>!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();</script>
686
687
688  
689
690
691
692
693  
693<script>
694    window.klaviyoReviewsProductDesignMode = false
695  </script>
695
696
697
698
699
700
701
702
703
704
705<!-- END app block --><!-- BEGIN app block: shopify://apps/langify/blocks/langify/b50c2edb-8c63-4e36-9e7c-a7fdd62ddb8f --><!-- BEGIN app snippet: ly-switcher-factory -->
706
707
708
709
710<style>
711  .ly-switcher-wrapper.ly-hide, .ly-recommendation.ly-hide, .ly-recommendation .ly-submit-btn {
712    display: none !important;
713  }
714
715  #ly-switcher-factory-template {
716    display: none;
717  }
718
719
720  
721
722  /* Accessibility: Focus indicators - only visible for keyboard navigation */
723  .ly-languages-switcher:focus-visible,
724  .ly-languages-switcher *:focus-visible,
725  .ly-currency-switcher:focus-visible,
726  .ly-currency-switcher *:focus-visible,
727  .ly-country-switcher:focus-visible,
728  .ly-country-switcher *:focus-visible,
729  .ly-custom-dropdown-current:focus-visible,
730  .ly-custom-dropdown-list-element:focus-visible,
731  .ly-languages-switcher-link:focus-visible,
732  .ly-popup-current:focus-visible,
733  .ly-close:focus-visible,
734  .ly-submit-btn:focus-visible,
735  .ly-text-input:focus-visible {
736    outline: 2px solid #005fcc;
737    outline-offset: 2px;
738  }
739
740  @media (prefers-color-scheme: dark) {
741    .ly-languages-switcher:focus-visible,
742    .ly-languages-switcher *:focus-visible,
743    .ly-currency-switcher:focus-visible,
744    .ly-currency-switcher *:focus-visible,
745    .ly-country-switcher:focus-visible,
746    .ly-country-switcher *:focus-visible,
747    .ly-custom-dropdown-current:focus-visible,
748    .ly-custom-dropdown-list-element:focus-visible,
749    .ly-languages-switcher-link:focus-visible,
750    .ly-popup-current:focus-visible,
751    .ly-close:focus-visible,
752    .ly-submit-btn:focus-visible,
753    .ly-text-input:focus-visible {
754      outline-color: #66b3ff;
755    }
756  }
757</style>
758
759
760<template id="ly-switcher-factory-template">
761<div data-breakpoint="" class="ly-switcher-wrapper ly-breakpoint-1 fixed bottom_right ly-hide" style="font-size: 14px; margin: 0px 0px; "><div data-dropup="false" onclick="langify.switcher.toggleSwitcherOpen(this)" class="ly-languages-switcher ly-custom-dropdown-switcher ly-bright-theme" style=" margin: 0px 0px;">
762          <span role="button" tabindex="0" aria-label="Selected language: English" aria-expanded="false" aria-controls="languagesSwitcherList-1" class="ly-custom-dropdown-current" style="background: #ffffff; color: #000000;  "><img class="ly-icon ly-flag-icon" src="https://cdn.shopify.com/static/images/flags/gb.svg" alt="English" aria-hidden="true"><span class="ly-custom-dropdown-current-inner ly-custom-dropdown-current-inner-text">English
763</span>
764<div aria-hidden="true" class="ly-arrow ly-arrow-black stroke" style="vertical-align: middle; width: 14.0px; height: 14.0px;">
765        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14.0 14.0" height="14.0px" width="14.0px" style="position: absolute;">
766          <path d="M1 4.5 L7.0 10.5 L13.0 4.5" fill="transparent" stroke="#000000" stroke-width="1px"/>
767        </svg>
768      </div>
769          </span>
770          <ul id="languagesSwitcherList-1" role="list" class="ly-custom-dropdown-list ly-is-open ly-bright-theme" style="background: #ffffff; color: #000000; "><li key="en" style="color: #000000;  margin: 0px 0px;">
771                  <a class="ly-custom-dropdown-list-element ly-languages-switcher-link ly-bright-theme"
772                    href="#"
773                      data-language-code="en"
774                    
775                    lang="en" data-ly-locked="true" rel="nofollow"><img class="ly-icon ly-flag-icon" src="https://cdn.shopify.com/static/images/flags/gb.svg" alt="English" aria-hidden="true"><span class="ly-custom-dropdown-list-element-right">English</span></a>
776                </li><li key="fr" style="color: #000000;  margin: 0px 0px;">
777                  <a class="ly-custom-dropdown-list-element ly-languages-switcher-link ly-bright-theme"
778                    href="#"
779                      data-language-code="fr"
780                    
781                    lang="fr" data-ly-locked="true" rel="nofollow"><img class="ly-icon ly-flag-icon" src="https://cdn.shopify.com/static/images/flags/fr.svg" alt="French" aria-hidden="true"><span class="ly-custom-dropdown-list-element-right">French</span></a>
782                </li></ul>
783        </div></div>
784</template>
785<!-- END app snippet -->
786
787<script>
788  // langify lib v2.0.0
789  var langify = window.langify || {};
790  var customContents = {};
791  var customContents_image = {};
792  var langifySettingsOverwrites = {};
793  var defaultSettings = {
794    debug: false,               // BOOL : Enable/disable console logs
795    observe: true,              // BOOL : Enable/disable the entire mutation observer (off switch)
796    observeLinks: false,
797    observeImages: true,
798    observeCustomContents: true,
799    maxMutations: 5,
800    timeout: 100,               // INT : Milliseconds to wait after a mutation, before the next mutation event will be allowed for the element
801    linksBlacklist: [],
802    usePlaceholderMatching: false
803  };
804
805  if(langify.settings) { 
806    langifySettingsOverwrites = Object.assign({}, langify.settings);
807    langify.settings = Object.assign(defaultSettings, langify.settings); 
808  } else { 
809    langify.settings = defaultSettings; 
810  }
811
812  langify.settings.theme = null;
813  langify.settings.switcher = null;
814  if(langify.settings.switcher === null) {
815    langify.settings.switcher = {};
816  }
817  langify.settings.switcher.customIcons = null;
818
819  langify.locale = langify.locale || {
820    country_code: "CA",
821    language_code: "en",
822    currency_code: null,
823    primary: true,
824    iso_code: "en",
825    root_url: "\/",
826    language_id: "ly191311",
827    shop_url: "https:\/\/montrealweights.ca",
828    domain_feature_enabled: null,
829    languages: [{
830        iso_code: "en",
831        root_url: "\/",
832        domain: null,
833      },{
834        iso_code: "fr",
835        root_url: "\/fr",
836        domain: null,
837      },]
838  };
839
840  langify.localization = {
841    available_countries: ["Canada"],
842    available_languages: [{"shop_locale":{"locale":"en","enabled":true,"primary":true,"published":true}},{"shop_locale":{"locale":"fr","enabled":true,"primary":false,"published":true}}],
843    country: "Canada",
844    language: {"shop_locale":{"locale":"en","enabled":true,"primary":true,"published":true}},
845    market: {
846      handle: "ca",
847      id: 3739549855,
848      metafields: {"error":"json not allowed for this object"},
849    }
850  };
851
852  // Disable link correction ALWAYS on languages with mapped domains
853  
854  if(langify.locale.root_url == '/') {
855    langify.settings.observeLinks = false;
856  }
857
858
859  function extractImageObject(val) {
860  if (!val || val === '') return false;
861
862  // Handle src-sets (e.g., "image_600x600.jpg 1x, image_1200x1200.jpg 2x")
863  if (val.search(/([0-9]+w?h?x?,)/gi) > -1) {
864    val = val.split(/([0-9]+w?h?x?,)/gi)[0];
865  }
866
867  const hostBegin = val.indexOf('//') !== -1 ? val.indexOf('//') : 0;
868  const hostEnd = val.lastIndexOf('/') + 1;
869  const host = val.substring(hostBegin, hostEnd);
870  let afterHost = val.substring(hostEnd);
871
872  // Remove query/hash fragments
873  afterHost = afterHost.split('#')[0].split('?')[0];
874
875  // Extract name before any Shopify modifiers or file extension
876  // e.g., "[email protected]" → "photo"
877  const name = afterHost.replace(
878    /(_[0-9]+x[0-9]*|_{width}x|_{size})?(_crop_(top|center|bottom|left|right))?(@[0-9]*x)?(\.progressive)?(\.(png\.jpg|jpe?g|png|gif|webp))?$/i,
879    ''
880  );
881
882  // Extract file extension (if any)
883  let type = '';
884  const match = afterHost.match(/\.(png\.jpg|jpe?g|png|gif|webp)$/i);
885  if (match) {
886    type = match[1].replace('png.jpg', 'jpg'); // fix weird double-extension cases
887  }
888
889  // Clean file name with extension or suffixes normalized
890  const file = afterHost.replace(
891    /(_[0-9]+x[0-9]*|_{width}x|_{size})?(_crop_(top|center|bottom|left|right))?(@[0-9]*x)?(\.progressive)?(\.(png\.jpg|jpe?g|png|gif|webp))?$/i,
892    type ? '.' + type : ''
893  );
894
895  return { host, name, type, file };
896}
897
898
899
900  /* Custom Contents Section*/
901  var customContents = {};
902
903  // Images Section
904  
905
906  
907
908  
909
910  
911
912  
913
914  
915
916  
917
918  
919
920  
921
922  
923
924  
925
926  
927
928  
929
930  
931
932  
933
934  
935
936  
937
938  
939
940  
941
942</script>
942<link rel="preload stylesheet" href="https://cdn.shopify.com/extensions/019f845b-ea0a-7f6d-b8bd-14dcbe496e11/langify-91/assets/langify-lib.css" as="style" media="print" onload="this.media='all'; this.onload=null;"><!-- END app block --><!-- BEGIN app block: shopify://apps/visually-a-b-testing-cro/blocks/themetest/d08aba15-0b89-475b-9f75-9c4c0ca8c3c4 --><style>
943  #preview-bar-iframe,
944  #PBarNextFrameWrapper,
945  #PBarNextFrame {
946    display: none !important;
947  }
948</style>
949
950<!-- END app block --><!-- BEGIN app block: shopify://apps/judge-me-reviews/blocks/judgeme_core/61ccd3b1-a9f2-4160-9fe9-4fec8413e5d8 --><!-- Start of Judge.me Core -->
951
952
953
954
955
956
957
958<link rel="dns-prefetch" href="https://cdn.judge.me">
959<link rel="dns-prefetch" href="https://cdn1.judge.me">
960<link rel="dns-prefetch" href="https://api.judge.me">
961
962<script data-cfasync='false' class='jdgm-settings-script'>window.jdgmSettings={"pagination":5,"disable_web_reviews":false,"coupon_receiving_condition":"","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","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
962ou! 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":"last_initial","widget_rating_filter_color":"","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.","verified_badge_text":"Verified","verified_badge_bg_color":"#FFFFFF","verified_badge_text_color":"#1CC286","verified_badge_placement":"left-of-reviewer-name","widget_review_max_height":"","widget_hide_border":false,"widget_social_share":false,"widget_thumb":true,"widget_review_location_show":true,"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":true,"widget_theme":"","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":false,"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":true,"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":"below","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":true,"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
962itle":"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":"#EE2F35","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":true,"widget_show_product_medals":false,"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":"#000000","widget_write_review_text_color":"","widget_write_review_bg_color":"#37383F","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":true,"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":"#EE2F35","show_product_variant":false,"all_reviews_product_variant_label_text":"Variant: ","widget_show_verified_branding":false,"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":true,"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":"default","review_form_corner_style":"square","review_form_star_color":"#EE2F35","review_form_text_color":"#333333","review_form_background_color":"#ffffff","review_form_field_background_color":"#fafafa","review_form_button_color":"#EE2F35","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_
962youtube_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":false,"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":".jdgm-rev {\n  border: none;\n  background: #fff;\n  border-radius: 5px;\n  padding: 20px 30px;\n  margin-bottom: 20px;\n}\n.jdgm-rev-widg__title {\n  font-weight: 750;\n  font-size: 36px;\n  letter-spacing: -0.02em;\n}\n.jdgm-rev-widg__summary-text {\n  font-size: 14px;\n}\n.jdgm-rev__author {\n  font-weight: 750;\n  font-size: 10px;\n  text-transform: uppercase;\n}\nspan.jdgm-rev__timestamp {\n  font-weight: 750;\n  font-size: 10px;\n  color: #000;\n}\n.jdgm-rev__body {\n  font-weight: 540;\n  font-size: 14px; \n}\n","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":false,"review_widget_qna_enabled":false,"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_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"
962:"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":"Montreal Weights","shop_currency":"CAD","widget_version":"3.0","footer":true,"autopublish":false,"review_dates":true,"enable_custom_form":false,"shop_locale":"en","enable_multi_locales_translations":true,"show_review_title_input":true,"autofill_review_title":true,"review_verification_email_status":"always","require_verification_before_submit":false,"sign_in_with_
962shop_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":"Montreal Weights"};</script>
962 <style class='jdgm-settings-style'>.jdgm-xx{left:0}:root{--jdgm-primary-color: #EE2F35;--jdgm-secondary-color: rgba(238,47,53,0.1);--jdgm-star-color: #EE2F35;--jdgm-write-review-text-color: white;--jdgm-write-review-bg-color: #37383F;--jdgm-paginate-color: #EE2F35;--jdgm-border-radius: 10;--jdgm-reviewer-name-color: #000000}.jdgm-histogram__bar-content{background-color:#EE2F35}.jdgm-rev[data-verified-buyer=true] .jdgm-rev__icon.jdgm-rev__icon:after,.jdgm-rev__buyer-badge.jdgm-rev__buyer-badge{color:#1CC286;background-color:#FFFFFF}.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-rev__thumb-btn{color:#EE2F35}.jdgm-rev__thumb-btn:hover{opacity:0.8}.jdgm-rev__thumb-btn:not([disabled]):hover,.jdgm-rev__thumb-btn:hover,.jdgm-rev__thumb-btn:active,.jdgm-rev__thumb-btn:visited{color:#EE2F35}.jdgm-prev-badge[data-average-rating='0.00']{display:none !important}.jdgm-author-fullname{display:none !important}.jdgm-author-all-initials{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: #EE2F35;--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:#EE2F35}.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:'Montreal Weights'}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__product-button{border-radius:calc( 8px * 6 )}
963</style> <style class='jdgm-settings-style'>.jdgm-review-widget .jdgm-rev{border:none;background:#fff;border-radius:5px;padding:20px 30px;margin-bottom:20px}.jdgm-review-widget .jdgm-rev-widg__title{font-weight:750;font-size:36px;letter-spacing:-0.02em}.jdgm-review-widget .jdgm-rev-widg__summary-text{font-size:14px}.jdgm-review-widget .jdgm-rev__author{font-weight:750;font-size:10px;text-transform:uppercase}.jdgm-review-widget span.jdgm-rev__timestamp{font-weight:750;font-size:10px;color:#000}.jdgm-review-widget .jdgm-rev__body{font-weight:540;font-size:14px}
964</style>
965
966  
967  
968  
969  <style class='jdgm-miracle-styles'>
970  @-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
970/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}
971
972</style>
973<style class='jdgm-miracle-styles'>
974  @font-face{font-family:'JudgemeStar';src:url("data:application/x-font-woff;charset=utf-8;base64,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") format("woff");font-weight:normal;font-style:normal}
975
976</style>
977
978
979  
980  
981   
982
983
984
985
986<script data-cfasync='false' class='jdgm-script'>
987!function(e){window.jdgm=window.jdgm||{};
988/* INF-1976 */
989var _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;}();
990if(_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;}
991jdgm.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/01a0cdf8-b2d2-7ccd-a251-5cf8c66ad2ca/judgeme-762/assets/",jdgm.CDN_API_HOST="https://cdn.judge.me/",
992jdgm.docReady=function(d){(e.attachEvent?"complete"===e.readyState:"loading"!==e.readyState)?
993setTimeout(d,0):e.addEventListener("DOMContentLoaded",d)},jdgm.loadCSS=function(d,t,o,a){
994!o&&jdgm.loadCSS.requestedUrls.indexOf(d)>=0||(jdgm.loadCSS.requestedUrls.push(d),
995(a=e.createElement("link")).rel="stylesheet",a.class="jdgm-stylesheet",a.media="nope!",
996a.href=d,a.onload=function(){this.media="all",t&&setTimeout(t)},e.body.appendChild(a))},
997jdgm.loadCSS.requestedUrls=[],jdgm.loadJS=function(e,d){var t=new XMLHttpRequest;
998t.onreadystatechange=function(){4===t.readyState&&t.status>=200&&t.status<300&&(Function(t.response)(),d&&d(t.response))},
999t.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(
1000".jdgm-widget, .jdgm-all-reviews-page").length>0)&&(jdgmSettings.widget_load_with_code_splitting?
1001parseFloat(jdgmSettings.widget_version)>=3?jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_v3_base.css"):
1002jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_base.css"):jdgm.loadCSS(jdgm.CDN_BASE_URL+"shopify_v2.css")
1003)}))}(document);
1004</script>
1004
1005<noscript><link rel="stylesheet" type="text/css" media="all" href="https://cdn.shopify.com/extensions/01a0cdf8-b2d2-7ccd-a251-5cf8c66ad2ca/judgeme-762/assets/shopify_v2.css"></noscript>
1006
1007<!-- BEGIN app snippet: theme_fix_tags -->
1007<script>
1008  (function() {
1009    var jdgmThemeFixes = null;
1010    if (!jdgmThemeFixes) return;
1011
1012    // "All themes" fix: CSS and JS applied on every theme. CSS is injected
1013    // before the per-theme fix so the theme-specific CSS wins the cascade.
1014    // HTML is never applied globally (too risky).
1015    var allThemesFix = jdgmThemeFixes['all'];
1016    if (allThemesFix && allThemesFix.css) {
1017      var allStyleTag = document.createElement('style');
1018      allStyleTag.classList.add('jdgm-theme-fix-style-all');
1019      allStyleTag.innerHTML = allThemesFix.css;
1020      document.head.append(allStyleTag);
1021    };
1022
1023    if (allThemesFix && allThemesFix.js) {
1024      var allScriptTag = document.createElement('script');
1025      allScriptTag.classList.add('jdgm-theme-fix-script-all');
1026      allScriptTag.innerHTML = allThemesFix.js;
1027      document.head.append(allScriptTag);
1028    };
1029
1030    var thisThemeFix = jdgmThemeFixes[Shopify.theme.id];
1031    if (!thisThemeFix) return;
1032
1033    if (thisThemeFix.html) {
1034      document.addEventListener("DOMContentLoaded", function() {
1035        var htmlDiv = document.createElement('div');
1036        htmlDiv.classList.add('jdgm-theme-fix-html');
1037        htmlDiv.innerHTML = thisThemeFix.html;
1038        document.body.append(htmlDiv);
1039      });
1040    };
1041
1042    if (thisThemeFix.css) {
1043      var styleTag = document.createElement('style');
1044      styleTag.classList.add('jdgm-theme-fix-style');
1045      styleTag.innerHTML = thisThemeFix.css;
1046      document.head.append(styleTag);
1047    };
1048
1049    if (thisThemeFix.js) {
1050      var scriptTag = document.createElement('script');
1051      scriptTag.classList.add('jdgm-theme-fix-script');
1052      scriptTag.innerHTML = thisThemeFix.js;
1053      document.head.append(scriptTag);
1054    };
1055  })();
1056</script>
1056
1057<!-- END app snippet -->
1058<!-- End of Judge.me Core -->
1059
1060
1061
1062<!-- END app block --><!-- BEGIN app block: shopify://apps/notifyme-warnings-and-labels/blocks/app-embed/5d15ec2f-f743-4577-a401-9e52680c5a80 -->
1063    
1064    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/remodal/1.1.1/remodal.min.css" rel="stylesheet" type="text/css" media="all" />
1065    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/remodal/1.1.1/remodal-default-theme.min.css" rel="stylesheet" type="text/css" media="all" />
1066    <div id="prw-modal"><button data-remodal-action="close" class="remodal-close"></button><div class="prw-main-content"></div></div>
1067
1068
1069<script type="text/javascript">
1070    
1071        let webPandaProductWarningSettings = {"shop_id":99,"custom_cart_selector":".atc-btn2.ajax_add","force_cart_selector":null,"add_to_cart_event":null,"custom_cart_form_selector":null,"custom_cart_form_quantity_selector":null,"custom_quick_view_link":null,"custom_quick_view_button":null,"inline_warning_position_before":null,"variant_input":null,"grid_enabled":1,"parent_depth":2,"parent_depth_on_search":2,"style":null};
1072        //let webPandaProductWarningList = ;
1073    
1074	
1075    let webPandaProductWarningInput = {
1076        current_product: {},
1077        current_collection: {},
1078        cart: {
1079            "items" : [
1080                ]
1081        },
1082        order: {
1083            "items" : [
1084                ]
1085        }
1086    };
1087    ;
1088    
1089</script>
1089
1090
1091<!-- END app block -->
1091<script src="https://cdn.shopify.com/extensions/c1eb4680-ad4e-49c3-898d-493ebb06e626/affirm-pay-over-time-messaging-9/assets/affirm-cart-drawer-embed-handler.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1091
1091
1092<script src="https://cdn.shopify.com/extensions/019f845b-ea0a-7f6d-b8bd-14dcbe496e11/langify-91/assets/langify-lib.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1092
1092
1093<script src="https://cdn.shopify.com/extensions/01a0c84d-09f9-74b4-a007-90becfd116ee/2026-09-22-08-46-47-UTC--1331660/assets/smile-loader.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1093
1093
1094<script src="https://cdn.shopify.com/extensions/01a0cdf8-b2d2-7ccd-a251-5cf8c66ad2ca/judgeme-762/assets/loader.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1094
1094
1095<script src="https://cdn.shopify.com/extensions/01a09524-6888-756c-a047-922cc4b6d04f/alertify-product-warning-203/assets/product-warning.js" type="text/javascript" defer="defer"></script>
1095
1096<link href="https://cdn.shopify.com/extensions/01a09524-6888-756c-a047-922cc4b6d04f/alertify-product-warning-203/assets/product-warning.css" rel="stylesheet" type="text/css" media="all">
1097<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1098<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: 40009302175,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 1098
1098
1099<script>
1100  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
1101</script>
vendor: 1 bytes, line 1101
1101
1102<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}
1102).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: 40009302175,storefrontBaseUrl: "https://montrealweights.ca",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://montrealweights.ca/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"3964993905","configuration":"{ \"alias\": \"MTLNEEDSWEIGHTS\", \"apiKey\": \"ux4ung2maf2gh5lxklpkp.fc64n2iubntb63ae5o2db\" }","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"089c563d4539df58b1e71259ac47d388","type":"APP","apiClientId":6779637,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"3269624177","configuration":"{\"shopId\":\"mtlneedsweights.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"31536d5a2ef62c18870
110254e49fd58dba0","type":"APP","apiClientId":4845829,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"3235086705","configuration":"{\"site_id\":\"e761ef3e-e56d-4ad0-b1ce-7ed47f59ef05\",\"analytics_endpoint\":\"https:\\\/\\\/na.shgcdn3.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"695709fc3f146fa50a25299517a954f2","type":"APP","apiClientId":1158168,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1322680689","configuration":"{\"accountID\":\"40009302175\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"9cf281f576a3744d05c8685f9f7f3f72","type":"APP","apiClientId":10250649601,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1317241201","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"]},"dataSharingState":"unrestricted"},{"id":"1311703409","configuration":"{\"storeId\":\"mtlneedsweights.myshopify.com\", \"ekoEnv\":\"production\", \"appId\":\"eko-2\" }","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"10edc8771569eb7185a7d764ce4a763f","type":"APP","apiClientId":6375543,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1109361009","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"f92d7cfd1521456d481ee553d236893f","type":"APP","apiClientId":30400643073,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"866353521","configuration":"{\"accountID\":\"1220658\",\"workspaceId\":\"23132322-cab1-4383-aa0a-f38dad9349b7\",\"projectId\":\"5715ad2e-45c7-41d2-925f-bed44201e6d6\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d98eb033f1e81320021a411362de3a55","type":"APP","apiClientId":5461967,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"747635057","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"AW-651507689\\\",\\\"GT-WB2F2F9\\\"],\\\"target_country\\\":\\\"CA\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"AW-651507689\\\/CffxCPP-p_UBEOnv1LYC\\\"},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"AW-651507689\\\/Z0o5CPb-p_UBEOnv1LYC\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"AW-651507689\\\/melECO3-p_UBEOnv1LYC\\\",\\\"MC-2M4B7YGWR2\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"AW-651507689\\\/HitFCKmwvY8YEOnv1LYC\\\",\\\"MC-2M4B7YGWR2\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"AW-651507689\\\/hKBmCOf-p_UBEOnv1LYC\\\",\\\"MC-2M4B7YGWR2\\\"]},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"AW-651507689\\\/e-xACPn-p_UBEOnv1LYC\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"AW-651507689\\\/D-TyCPD-p_UBEOnv1LYC\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"660636017","configuration":"{\"pixelCode\":\"CAL2A6JC77U2U1293BF0\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"22e92c2ad45662f435e4801458fb78cc","type":"APP","apiClientId":4383523,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"83656863","configuration":"{\"tagID\":\"2613491187956\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7ae565e198624b39e0856d352b9a6b4c","type":"APP","apiClientId":3009811,"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":"44302495","configuration":"{\"apiKey\":\"0S2m0o4y7C\",\"host\":\"searchserverapi1.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"5559ea45e47b67d15b30b79e7c6719da","type":"APP","apiClientId":578825,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]}
1102,"dataSharingState":"unrestricted"},{"id":"33915039","configuration":"{\"myshopifyDomain\":\"mtlneedsweights.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"23b97d18e2aa74363140dc29c9284e87","type":"APP","apiClientId":2775569,"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":"25002143","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"ConvertCart"},{"id":"26869919","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Videowise"},{"id":"32080031","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Enhanced Conversion"},{"id":"118554993","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Northbeam Checkout "},{"id":"123208049","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"5","type":"CUSTOM","privacyPurposes":[],"name":"ultimate-datalayer"},{"id":"132579697","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"UpstackData"},{"id":"140411249","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Wingman Pixel "},{"id":"157352305","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":[],"name":"Stape DataLayer "},{"id":"194380145","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"19","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"ChatGPT Ads"},{"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":"Montreal Weights","paymentSettings":{"currencyCode":"CAD"},"myshopifyDomain":"mtlneedsweights.myshopify.com","countryCode":"CA","storefrontUrl":"https:\/\/montrealweights.ca"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://montrealweights.ca/cdn","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"192214303089","themeStoreId":"887","themePublished":"true","eventMetadataId":"54061f55-3504-4ed4-941e-66b6c36d9d53","pageType":"page","resourceId":"60129968287","shopId":"40009302175","storefrontBaseUrl":"https:\/\/montrealweights.ca","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
1102<script>
1103  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
1104  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
1105  window.ShopifyAnalytics.meta.currency = 'CAD';
1106  var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":60129968287,"requestId":"9541c7ca-4b5d-443e-93da-fed2973802fc-1790574888"}};
1107  for (var attr in meta) {
1108    window.ShopifyAnalytics.meta[attr] = meta[attr];
1109  }
1110</script>
vendor: 1 bytes, line 1110
1110
1111<script class="analytics">
1112  (function () {
1113    var customDocumentWrite = function(content) {
1114      var jquery = null;
1115
1116      if (window.jQuery) {
1117        jquery = window.jQuery;
1118      } else if (window.Checkout && window.Checkout.$) {
1119        jquery = window.Checkout.$;
1120      }
1121
1122      if (jquery) {
1123        jquery('body').append(content);
1124      }
1125    };
1126
1127    var hasLoggedConversion = function(token) {
1128      if (token) {
1129        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
1130      }
1131      return false;
1132    }
1133
1134    var setCookieIfConversion = function(token) {
1135      if (token) {
1136        var twoMonthsFromNow = new Date(Date.now());
1137        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
1138
1139        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
1140      }
1141    }
1142
1143    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
1144    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
1145    if (trekkie.integrations) {
1146      return;
1147    }
1148    trekkie.methods = [
1149      'identify',
1150      'page',
1151      'ready',
1152      'track',
1153      'trackForm',
1154      'trackLink'
1155    ];
1156    trekkie.factory = function(method) {
1157      return function() {
1158        var args = Array.prototype.slice.call(arguments);
1159        args.unshift(method);
1160        trekkie.push(args);
1161        if (method == 'track' || method == 'page') {
1162          var pageUrl;
1163          try {
1164            pageUrl = window.location.href;
1165          } catch (e) {}
1166          var pageReferrer;
1167          try {
1168            pageReferrer = document.referrer;
1169          } catch (e) {}
1170          try {
1171            if (window.__TREKKIE_SHIM_QUEUE == null) {
1172              window.__TREKKIE_SHIM_QUEUE = [];
1173            }
1174            window.__TREKKIE_SHIM_QUEUE.push({
1175              from: 'trekkie-stub',
1176              method: method,
1177              args: args.slice(1),
1178              pageContext: {
1179                url: pageUrl,
1180                referrer: pageReferrer
1181              }
1182            });
1183          } catch (e) {
1184            // no-op
1185          }
1186        }
1187        return trekkie;
1188      };
1189    };
1190    for (var i = 0; i < trekkie.methods.length; i++) {
1191      var key = trekkie.methods[i];
1192      trekkie[key] = trekkie.factory(key);
1193    }
1194    trekkie.load = function(config) {
1195      trekkie.config = config || {};
1196      trekkie.config.initialDocumentCookie = document.cookie;
1197      var first = document.getElementsByTagName('script')[0];
1198var script = document.createElement('script');
1199script.type = 'text/javascript';
1200script.onerror = function(e) {
1201  var scriptFallback = document.createElement('script');
1202  scriptFallback.type = 'text/javascript';
1203  scriptFallback.onerror = function(error) {
1204          var Monorail = {
1205      produce: function produce(monorailDomain, schemaId, payload) {
1206        var currentMs = new Date().getTime();
1207        var event = {
1208          schema_id: schemaId,
1209          payload: payload,
1210          metadata: {
1211            event_created_at_ms: currentMs,
1212            event_sent_at_ms: currentMs
1213          }
1214        };
1215        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
1216      },
1217      sendRequest: function sendRequest(endpointUrl, payload) {
1218        // Try the sendBeacon API
1219        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
1220          var blobData = new window.Blob([payload], {
1221            type: 'text/plain'
1222          });
1223
1224          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
1225            return true;
1226          } // sendBeacon was not successful
1227
1228        } // XHR beacon
1229
1230        var xhr = new XMLHttpRequest();
1231
1232        try {
1233          xhr.open('POST', endpointUrl);
1234          xhr.setRequestHeader('Content-Type', 'text/plain');
1235          xhr.send(payload);
1236        } catch (e) {
1237          console.log(e);
1238        }
1239
1240        return false;
1241      },
1242      isIos12: function isIos12() {
1243        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
1244      }
1245    };
1246    Monorail.produce('monorail-edge.shopifysvc.com',
1247      'trekkie_storefront_load_errors/1.1',
1248      {shop_id: 40009302175,
1249      theme_id: 192214303089,
1250      app_name: "storefront",
1251      context_url: window.location.href,
1252      source_url: "//montrealweights.ca/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"});
1253
1254  };
1255  scriptFallback.async = true;
1256  scriptFallback.src = '//montrealweights.ca/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js';
1257  first.parentNode.insertBefore(scriptFallback, first);
1258};
1259script.async = true;
1260script.src = '//montrealweights.ca/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js';
1261first.parentNode.insertBefore(script, first);
1262
1263    };
1264    trekkie.load(
1265      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":40009302175,"isMerchantRequest":null,"themeId":192214303089,"themeCityHash":"1336714112991950874","contentLanguage":"en","currency":"CAD","eventMetadataId":"54061f55-3504-4ed4-941e-66b6c36d9d53"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}}
1266    );
1267
1268    var loaded = false;
1269    trekkie.ready(function() {
1270      if (loaded) return;
1271      loaded = true;
1272
1273      window.ShopifyAnalytics.lib = window.trekkie;
1274
1275      var originalDocumentWrite = document.write;
1276      document.write = customDocumentWrite;
1277      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
1278      document.write = originalDocumentWrite;
1279
1280      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
1281      var token = match? match[1]: undefined;
1282      if (!hasLoggedConversion(token)) {
1283        setCookieIfConversion(token);
1284        
1285      }
1286    });
1287
1288    window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":60129968287,"requestId":"9541c7ca-4b5d-443e-93da-fed2973802fc-1790574888","shopifyEmitted":true});
1289
1290    var eventsListenerScript = document.createElement('script');
1291    eventsListenerScript.async = true;
1292    eventsListenerScript.src = "//montrealweights.ca/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
1293    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
1294})();</script>
1294
1295  
1295<script>
1296  if (!window.ga || (window.ga && typeof window.ga !== 'function')) {
1297    window.ga = function ga() {
1298      (window.ga.q = window.ga.q || []).push(arguments);
1299      if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
1300        window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"});
1301      }
1302      console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information.");
1303    };
1304    if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
1305      window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"});
1306    }
1307  }
1308</script>
vendor: 1 bytes, line 1308
1308
1309<script
1310  defer
1311  src="https://montrealweights.ca/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js"
1312  data-application="storefront-renderer"
1313  data-shop-id="40009302175"
1314  data-render-region="gcp-us-central1"
1315  data-page-type="page"
1316  data-theme-instance-id="192214303089"
1317  data-theme-name="Dawn"
1318  data-theme-version="7.0.1"
1319  data-monorail-region="shop_domain"
1320  data-resource-timing-sampling-rate="10"
1321  data-shs="true"
1322  data-shs-beacon="true"
1323  data-shs-export-with-fetch="true"
1324  data-shs-logs-sample-rate="1"
1325  data-shs-beacon-endpoint="https://montrealweights.ca/api/collect"
1326></script>
1326
1327<meta name="shopify-y" content="e4024130-f71b-464d-a129-ce47d3552506" data-expiration="1822132488000"><meta name="shopify-s" content="0bacc716-97b0-4e33-97d5-4ba1c51f4073" data-expiration="1790576688000"><meta name="new-cookie-storage-activated" content="t">
1328</head>
1329
1330  <body class="gradient template--page temp--contact-us">
1331    <a class="skip-to-content-link button visually-hidden" href="#MainContent">
1332      Skip to content
1333    </a>
1334
1335    <!-- Google Tag Manager (noscript) -->
vendor: 87 bytes, lines 1335-1338
1335
1336    <noscript>
1337      <iframe
1338        src="https://www.googletagmanager.com/ns.html?id=
1338GTM-K83WVMM
vendor: 123 bytes, lines 1338-1344
1338"
1339        height="0"
1340        width="0"
1341        style="display:none;visibility:hidden"
1342      ></iframe>
1343    </noscript>
1344    
1344<!-- End Google Tag Manager (noscript) -->
1345
1346<!-- if there is disable paybright price option than define variable as blank for prevant error -->
1347   
1348      
1349
1350
1351<link href="//montrealweights.ca/cdn/shop/t/240/assets/cart-drawer.css?v=87844624990910171011776075633" rel="stylesheet" type="text/css" media="all" />
1352<script src="//montrealweights.ca/cdn/shop/t/240/assets/cart.js?v=111793532812902656791776075633" defer="defer"></script>
1352
1353
1354
1355 
1356
1357<style>
1358  .drawer {
1359    visibility: hidden;
1360  }
1361</style>
1362
1363<cart-drawer class="drawer is-empty">
1364  <div id="CartDrawer" class="cart-drawer">
1365    <div id="CartDrawer-Overlay"class="cart-drawer__overlay"></div>
1366    <div class="drawer__inner" role="dialog" aria-modal="true" aria-label="Your cart" tabindex="-1"><div class="drawer__inner-empty">
1367          <div class="cart-drawer__warnings center">
1368            <div class="cart-drawer__empty-content">
1369              <h2 class="cart__empty-text">Your cart is empty</h2>
1370              <button class="drawer__close" type="button" onclick="this.closest('cart-drawer').close()" aria-label="Close"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" fill="none" viewBox="0 0 18 17">
1371  <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor">
1372</svg>
1373</button>
1374              <a href="/collections/all-products" class="button">
1375                Continue shopping
1376              </a><p class="cart__login-title h3">Have an account?</p>
1377                <p class="cart__login-paragraph">
1378                  <a href="https://montrealweights.ca/customer_authentication/redirect?locale=en&region_country=CA" class="link underlined-link">Log in</a> to check out faster.
1379                </p></div>
1380          </div></div><div class="drawer__header">
1381        <h2 class="drawer__heading">Your cart (0)</h2>
1382        <button class="drawer__close" type="button" onclick="this.closest('cart-drawer').close()" aria-label="Close"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" fill="none" viewBox="0 0 18 17">
1383  <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor">
1384</svg>
1385</button>
1386      </div>
1387      
1388      
1389      <cart-drawer-items class=" is-empty">
1390        <form action="/cart" id="CartDrawer-Form" class="cart__contents cart-drawer__form" method="post">
1391          <div id="CartDrawer-CartItems" class="drawer__contents js-contents"><p id="CartDrawer-LiveRegionText" class="visually-hidden" role="status"></p>
1392            <p id="CartDrawer-LineItemStatus" class="visually-hidden" aria-hidden="true" role="status">Loading...</p>
1393          </div>
1394          <div id="CartDrawer-CartErrors" role="alert"></div>
1395        </form>
1396      </cart-drawer-items>
1397      <div class="drawer__footer"><!-- Start blocks-->
1398        <!-- Subtotals-->
1399
1400        <div class="cart-drawer__footer" >
1401          <div class="totals" role="status">
1402            <h2 class="totals__subtotal">Subtotal</h2>
1403            <p class="totals__subtotal-value" >$0.00</p>
1404          </div>
1405
1406          <div></div>
1407
1408          <small class="tax-note caption-large rte">Taxes and <a href="/policies/shipping-policy">shipping</a> calculated at checkout
1409</small>
1410        </div>
1411
1412        
1413        
1414
1415        <!-- CTAs -->
1416        <div class="cart__ctas" >
1417          <noscript>
1418            <button type="submit" class="cart__update-button button button--secondary" form="CartDrawer-Form">
1419              Update
1420            </button>
1421          </noscript>
1422
1423          <button type="submit" id="CartDrawer-Checkout" class="cart__checkout-button button" name="checkout" form="CartDrawer-Form" disabled>
1424            Check out
1425          </button>
1426        </div>
1427
1428      
1429         <!-- Monthly -->
1430         <div class="intrest-free-payment">
1431             
1431<script id="paybright" src=" https://app.paybright.com/api/shopify.js?public_key=2tAItAWaRhSDcAQwCTBH4VfmMyrAL8NJAJba5hhhgwnzwIpYCY&financedamount=$0.0"></script>
1431
1432             <div id="paybright-widget-container"></div>
1433             
1434         </div>  
1435      
1436      
1437        
1438      </div>
1439    </div>
1440  </div>
1441</cart-drawer>
1442
1443<script>
1444  document.addEventListener('DOMContentLoaded', function() {
1445    function isIE() {
1446      const ua = window.navigator.userAgent;
1447      const msie = ua.indexOf('MSIE ');
1448      const trident = ua.indexOf('Trident/');
1449
1450      return (msie > 0 || trident > 0);
1451    }
1452
1453    if (!isIE()) return;
1454    const cartSubmitInput = document.createElement('input');
1455    cartSubmitInput.setAttribute('name', 'checkout');
1456    cartSubmitInput.setAttribute('type', 'hidden');
1457    document.querySelector('#cart').appendChild(cartSubmitInput);
1458    document.querySelector('#checkout').addEventListener('click', function(event) {
1459      document.querySelector('#cart').submit();
1460    });
1461  });
1462</script>
1462
1463
1464
1465
1466<div id="shopify-section-announcement-bar" class="shopify-section announcement-bar-new">
1467<style data-shopify>.announcement-bar-new .announcement-bar {background: #171719; }.announcement-bar-new .announcement-bar {color: #ffffff; }.announcement-bar-new .announcement-bar p a { color: #ee2f35; }</style><div class="announcement-bar color-accent-1 gradient" role="region" aria-label="Announcement"><div class="announcement-bar-grid">
1468          <div class="marquee-alternative">
1469            <div class="announcement-bar__message" >
1470              
1471<p><svg width="5" height="6" viewBox="0 0 5 6" fill="none" xmlns="http://www.w3.org/2000/svg">
1472<circle cx="2.5" cy="3" r="2.5" fill="#EE2F35"/>
1473</svg>
1474Limited Time Offer: Get a unique free gift in your cart for any purchase above $249! <a href="/collections/all-products">SHOP NOW</a></p>
1475            </div>
1476          </div>
1477        </div></div>
1478</div>
1479    <div id="shopify-section-header" class="shopify-section section-header"><link rel="stylesheet" href="//montrealweights.ca/cdn/shop/t/240/assets/component-list-menu.css?v=151968516119678728991776075633" media="print" onload="this.media='all'">
1480<link rel="stylesheet" href="//montrealweights.ca/cdn/shop/t/240/assets/component-search.css?v=96455689198851321781776075633" media="print" onload="this.media='all'">
1481<link rel="stylesheet" href="//montrealweights.ca/cdn/shop/t/240/assets/component-menu-drawer.css?v=182311192829367774911776075633" media="print" onload="this.media='all'">
1482<link rel="stylesheet" href="//montrealweights.ca/cdn/shop/t/240/assets/component-cart-notification.css?v=183358051719344305851776075633" media="print" onload="this.media='all'">
1483<link rel="stylesheet" href="//montrealweights.ca/cdn/shop/t/240/assets/component-cart-items.css?v=23917223812499722491776075633" media="print" onload="this.media='all'"><link rel="stylesheet" href="//montrealweights.ca/cdn/shop/t/240/assets/component-price.css?v=148746777945390944311776075633" media="print" onload="this.media='all'">
1484  <link rel="stylesheet" href="//montrealweights.ca/cdn/shop/t/240/assets/component-loading-overlay.css?v=167310470843593579841776075633" media="print" onload="this.media='all'"><link href="//montrealweights.ca/cdn/shop/t/240/assets/component-cart-drawer.css?v=161891682446684790221776075633" rel="stylesheet" type="text/css" media="all" />
1485  <link href="//montrealweights.ca/cdn/shop/t/240/assets/component-cart.css?v=11022392035350727111776075633" rel="stylesheet" type="text/css" media="all" />
1486  <link href="//montrealweights.ca/cdn/shop/t/240/assets/component-totals.css?v=86168756436424464851776075633" rel="stylesheet" type="text/css" media="all" />
1487  <link href="//montrealweights.ca/cdn/shop/t/240/assets/component-price.css?v=148746777945390944311776075633" rel="stylesheet" type="text/css" media="all" />
1488  <link href="//montrealweights.ca/cdn/shop/t/240/assets/component-discounts.css?v=152760482443307489271776075633" rel="stylesheet" type="text/css" media="all" />
1489  <link href="//montrealweights.ca/cdn/shop/t/240/assets/component-loading-overlay.css?v=167310470843593579841776075633" rel="stylesheet" type="text/css" media="all" />
1490<noscript><link href="//montrealweights.ca/cdn/shop/t/240/assets/component-list-menu.css?v=151968516119678728991776075633" rel="stylesheet" type="text/css" media="all" /></noscript>
1491<noscript><link href="//montrealweights.ca/cdn/shop/t/240/assets/component-search.css?v=96455689198851321781776075633" rel="stylesheet" type="text/css" media="all" /></noscript>
1492<noscript><link href="//montrealweights.ca/cdn/shop/t/240/assets/component-menu-drawer.css?v=182311192829367774911776075633" rel="stylesheet" type="text/css" media="all" /></noscript>
1493<noscript><link href="//montrealweights.ca/cdn/shop/t/240/assets/component-cart-notification.css?v=183358051719344305851776075633" rel="stylesheet" type="text/css" media="all" /></noscript>
1494<noscript><link href="//montrealweights.ca/cdn/shop/t/240/assets/component-cart-items.css?v=23917223812499722491776075633" rel="stylesheet" type="text/css" media="all" /></noscript>
1495
1496<link href="//montrealweights.ca/cdn/shop/t/240/assets/header.css?v=26946249384375960131776075633" rel="stylesheet" type="text/css" media="all" />
1497
1498<style>
1499  header-drawer {
1500    justify-self: start;
1501    margin-left: -1.2rem;
1502  }
1503
1504  .header__heading-logo {
1505    max-width: 150px;
1506  }
1507
1508  @media screen and (min-width: 990px) {
1509    header-drawer {
1510      display: none;
1511    }
1512    
1513  }
1514
1515  .menu-drawer-container {
1516    display: flex;
1517  }
1518
1519  .list-menu {
1520    list-style: none;
1521    padding: 0;
1522    margin: 0;
1523  }
1524
1525  .list-menu--inline {
1526    display: inline-flex;
1527    flex-wrap: wrap;
1528  }
1529
1530  summary.list-menu__item {
1531    padding-right: 2.7rem;
1532  }
1533
1534  .list-menu__item {
1535    display: flex;
1536    align-items: center;
1537    line-height: calc(1 + 0.3 / var(--font-body-scale));
1538  }
1539
1540  .list-menu__item--link {
1541    text-decoration: none;
1542    padding-bottom: 1rem;
1543    padding-top: 1rem;
1544    line-height: calc(1 + 0.8 / var(--font-body-scale));
1545  }
1546
1547  @media screen and (min-width: 750px) {
1548    .list-menu__item--link {
1549      padding-bottom: 0.5rem;
1550      padding-top: 0.5rem;
1551    }
1552  }
1553</style><style data-shopify>.header {
1554    padding-top: 10px;
1555    padding-bottom: 10px;
1556  }
1557
1558  @media screen and (min-width: 990px) {
1559    .header {
1560      padding-top: 20px;
1561      padding-bottom: 20px;
1562    }
1563  }
1564
1565/*   css for background and color */
1566  .header-wrapper,header.header, .fix-header .header-wrapper header.header{background:#ffffff;}
1567  .header-wrapper.header-wrapper--border-bottom:hover{border-color:#ffffff;}
1568  .header-wrapper header.header{background:transparent;}
1569  .shopify-section-header-sticky .header-wrapper--border-bottom{border-color:#ffffff;}
1570
1571  .header__submenu.list-menu{background:#ffffff;}
1572  .header__icons .lang-switcher ul{background:#ffffff;}
1573  .header .search-modal,.header .search-modal form input{background:#ffffff;}
1574  .header .search-modal form .field::after{box-shadow:0 0 0 1px rgba(18, 18, 18, 0.55)}
1575  .header .search-modal form .field__input:focus{box-shadow:0 0 0 2px #121212;}
1576  .header .search-modal form .field__input,.header .search-modal form label{color:#121212;}
1577  
1578  .header__inline-menu .header__menu-item_main,.header__submenu .header__menu-item{color:#121212;}
1579  .header__icons .lang-switcher-head .selected-lang,.header__icons .lang-switcher-head ul li a{color:#121212;}
1580  .header__icon .icon path,.header__icon svg path{fill:#121212;}
1581  .header .search-modal svg.icon use{stroke:#121212;}
1582  .header__active-menu-item{color:#121212;}
1583  
1584
1585  body:not(.fix-header) .transparent_bg_header:not(:hover) .header__icons .lang-switcher-head .selected-lang{color:#ffffff;}
1586  body:not(.fix-header) .transparent_bg_header:not(:hover) .header__icon .icon path,body:not(.fix-header) .transparent_bg_header:not(:hover) .header__icon svg path{fill:#ffffff;}
1587
1588/*   .header__menu-item:hover{color:#ee2f35 !important;}   */</style>
1588<script src="//montrealweights.ca/cdn/shop/t/240/assets/details-disclosure.js?v=153497636716254413831776075633" defer="defer"></script>
vendor: 1 bytes, line 1588
1588
1589<script src="//montrealweights.ca/cdn/shop/t/240/assets/details-modal.js?v=4511761896672669691776075633" defer="defer"></script>
vendor: 1 bytes, line 1589
1589
1590<script src="//montrealweights.ca/cdn/shop/t/240/assets/cart-notification.js?v=160453272920806432391776075633" defer="defer"></script>
1590<script src="//montrealweights.ca/cdn/shop/t/240/assets/cart-drawer.js?v=136533404263506144161776075633" defer="defer"></script>
1590<svg xmlns="http://www.w3.org/2000/svg" class="hidden">
1591  <symbol id="icon-search" viewbox="0 0 18 19" fill="none">
1592    <path fill-rule="evenodd" clip-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 112.85 3.5a5.784 5.784 0 018.18 8.18zm.26 1.12a6.78 6.78 0 11.72-.7l5.4 5.4a.5.5 0 11-.71.7l-5.41-5.4z" fill="currentColor"/>
1593  </symbol>
1594
1595  <symbol id="icon-close" class="icon icon-close" fill="none" viewBox="0 0 18 17">
1596    <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor">
1597  </symbol>
1598</svg>
1599<sticky-header class="header-wrapper color- gradient header-wrapper--border-bottom">
1600  <header class="header header--middle-left header--mobile-center page-width header--has-menu"><header-drawer data-breakpoint="tablet" class="dropdown-mobile">
1601        <details id="Details-menu-drawer-container" class="menu-drawer-container">
1602          <summary class="header__icon header__icon--menu header__icon--summary link focus-inset" aria-label="Menu">
1603            <span>
1604              
1605<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-hamburger" fill="none" width="20" height="14" viewBox="0 0 20 14" fill="none">
1606  <path d="M20 0H0V1.31255H20V0Z" fill="currentColor" />
1607  <path d="M20 6.34454H0V7.6571H20V6.34454Z" fill="currentColor" />
1608  <path d="M20 12.6874H0V14H20V12.6874Z" fill="currentColor" />
1609</svg>
1610
1611              <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" fill="none" viewBox="0 0 18 17">
1612  <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor">
1613</svg>
1614
1615            </span>
1616          </summary>
1617          <div id="menu-drawer" class="gradient menu-drawer motion-reduce" tabindex="-1">
1618            <div class="menu-drawer__inner-container">
1619              <div class="menu-drawer__navigation-container">
1620                <a href="" class="menu-close-btn" data-close-menu>
1621                  <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
1622<path d="M1 1L21 21M21 1L1 21" stroke="#171719" stroke-width="2" stroke-miterlimit="10"/>
1623</svg>
1624
1625                </a>
1626                <nav class="menu-drawer__navigation">
1627                  <ul class="menu-drawer__menu has-submenu list-menu" role="list"><li><details id="Details-menu-drawer-menu-item-1">
1628                            <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
1629                              Shop &amp; Save
1630                              <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg">
1631  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
1632</svg>
1633
1634                              <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6">
1635  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
1636</svg>
1637
1638                            </summary>
1639                            <div id="link-shop-save" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1">
1640                              <div class="menu-drawer__inner-submenu">
1641                                <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
1642                                  <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg">
1643  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
1644</svg>
1645
1646                                  Shop &amp; Save
1647                                </button>
1648                                <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/collections/all-products" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1649                                          All Products
1650                                        </a></li><li><a href="/collections/bestsellers" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1651                                          Bestsellers
1652                                        </a></li><li><a href="/collections/bundles" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1653                                          Bundle &amp; Save
1654                                        </a></li></ul>
1655                              </div>
1656                            </div>
1657                          </details></li><li><a href="/collections/dumbbells" class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
1658                            Dumbbells
1659                          </a></li><li>
1659<details id="Details-menu-drawer-menu-item-3">
1660                            <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
1661                              Cardio
1662                              <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg">
1663  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
1664</svg>
1665
1666                              <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6">
1667  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
1668</svg>
1669
1670                            </summary>
1671                            <div id="link-cardio" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1">
1672                              <div class="menu-drawer__inner-submenu">
1673                                <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
1674                                  <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg">
1675  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
1676</svg>
1677
1678                                  Cardio
1679                                </button>
1680                                <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/collections/cardio" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1681                                          All Cardio
1682                                        </a></li><li><a href="/collections/exercise-bikes-spin-bikes" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1683                                          Spin Bikes
1684                                        </a></li><li><a href="/collections/treadmills" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1685                                          Treadmills
1686                                        </a></li><li><a href="/collections/walking-pads" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1687                                          Walking Pads
1688                                        </a></li><li><a href="/collections/rowers" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1689                                          Rowing Machines
1690                                        </a></li><li><a href="/collections/ellipticals" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1691                                          Ellipticals
1692                                        </a></li></ul>
1693                              </div>
1694                            </div>
1695                          </details></li><li><details id="Details-menu-drawer-menu-item-4">
1696                            <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
1697                              Power Lifting
1698                              <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg">
1699  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
1700</svg>
1701
1702                              <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6">
1703  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
1704</svg>
1705
1706                            </summary>
1707                            <div id="link-power-lifting" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1">
1708                              <div class="menu-drawer__inner-submenu">
1709                                <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
1710                                  <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg">
1711  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
1712</svg>
1713
1714                                  Power Lifting
1715                                </button>
1716                                <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/collections/power-lifting" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1717                                          All Power Lifting
1718                                        </a></li><li><a href="/collections/cable-machines" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1719                                          Cable Machines
1720                                        </a></li></ul>
1721                              </div>
1722                            </div>
1723                          </details></li><li>
1723<details id="Details-menu-drawer-menu-item-5">
1724                            <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
1725                              Accessories &amp; Extras
1726                              <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg">
1727  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
1728</svg>
1729
1730                              <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6">
1731  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
1732</svg>
1733
1734                            </summary>
1735                            <div id="link-accessories-extras" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1">
1736                              <div class="menu-drawer__inner-submenu">
1737                                <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
1738                                  <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg">
1739  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
1740</svg>
1741
1742                                  Accessories &amp; Extras
1743                                </button>
1744                                <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/collections/accessories" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1745                                          Accessories
1746                                        </a></li><li><a href="/collections/benches" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1747                                          Benches
1748                                        </a></li><li><a href="/collections/flooring" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1749                                          Flooring
1750                                        </a></li><li><a href="/collections/recovery" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1751                                          Recovery
1752                                        </a></li><li><a href="/collections/supplements" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1753                                          Supplements
1754                                        </a></li><li><a href="/products/montreal-weights-gift-card" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1755                                          Gift Cards
1756                                        </a></li></ul>
1757                              </div>
1758                            </div>
1759                          </details></li><li><details id="Details-menu-drawer-menu-item-6">
1760                            <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
1761                              About
1762                              <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg">
1763  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
1764</svg>
1765
1766                              <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6">
1767  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
1768</svg>
1769
1770                            </summary>
1771                            <div id="link-about" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1">
1772                              <div class="menu-drawer__inner-submenu">
1773                                <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
1774                                  <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg">
1775  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
1776</svg>
1777
1778                                  About
1779                                </button>
1780                                <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="https://support.montrealweights.ca/hc/en-us" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1781                                          Helpcenter &amp; FAQ
1782                                        </a></li><li><a href="/pages/reviews" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1783                                          Customer Reviews
1784                                        </a></li><li><a href="/pages/shipping" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1785                                          Shipping
1786                                        </a></li><li><a href="/pages/warranty" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1787                                          Warranty
1788                                        </a></li><li><a href="/blogs/blog" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1789                                          Blog
1790                                        </a></li><li><a href="/pages/our-company" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1791                                          Our Company
1792                                        </a></li><li><a href="/pages/montreal-weights-points" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1793                                          Rewards
1794                                        </a></li></ul>
1795                              </div>
1796                            </div>
1797                          </details></li><li>
1798                    <span class="ly-custom-0"></span>
1799                      
1800                     </li>
1801                  </ul>
1802
1803                <div class="shop-now-wrap">
1804                  <a href="https://montrealweights.ca/collections/all-products" class="text-center shop-now-btn">Shop now</a>
1805                </div>
1806                <div class="shop-now-wrap shop-now-wrap-log">
1807                  
1808                <a href="https://montrealweights.ca/customer_authentication/redirect?locale=en&region_country=CA" class="login-btn-mob">
1809                  <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
1810                    <rect width="22" height="22" fill="url(#pattern0_67_3053)"/>
1811                    <defs>
1812                    <pattern id="pattern0_67_3053" patternContentUnits="objectBoundingBox" width="1" height="1">
1813                    <use xlink:href="#image0_67_3053" transform="scale(0.00195312)"/>
1814                    </pattern>
1815                    <image id="image0_67_3053" width="512" height="512" preserveAspectRatio="none" xlink:href="data:image/png;base64,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FAAECBJYq8PuprclHzre4B6DWjIsSBybuWX8oBAgQIEBgGwKfyDyPTXx3G/OOfpbW7gOwO3gNAOquTTfb/UW/EyBAgACBTQqckumavctsq4cAqm/rhI1frF8UAgQIECCwRYG6rLzZjX9ZtHoIYFc/fyy/7Ew4IXCXiJ8ECBAgsJHA5zPBQxLf2mjCKb/f8iGAXf1ShwL+MXH7XS/4SYAAAQIE1hCoa/1/OPH2Nd5v5uWWDwHs6qQ6FPCoRNMjuV2N9ZMAAQIEZhL4zczd/Ma/hFo/BLBrLfhKfvlU4rRED3s9drXbTwIECBDYvMArMunTEl08WbaXAUB1f10RUAOBH60/FAIECBAgsJvAWfm9viRetttrTf/a0wCgOvI9if0S96o/FAIECBAgEIFzEw9INHnDn7V6uLcBQDm8NXHdxN3qD4UAAQIEuhaojf+PJP61N4UeBwDVx29IfDVx/4RzAoKgECBAoEOBukKstgN1eLi70usAoDr63YnzEg9O9OyQ5isECBDoTuBVafGpiXqAXJelh8sA1+vY5+XNOu5zwXoTeY8AAQIEmhG4Ii357USd8NfcI3630kt2f1+ldUR+PD9Ru4IUAgQIEGhToHb1Pybx+jabt7VW2fV9lVfdJOhvEvW855MS+yYUAgQIEGhH4LVpyoMSZ7fTpNlaYg/ANf1unpf+KOF+Ade08QoBAgSmJvAvSfjXEnXIV9lNwB6A3TBWfv23/Ky9Aeck7pQ4NKEQIECAwLQEas/uHyQemah7wCh7CdgDsBfIXn/WSZK1J+C
1815ZiTsmFAIECBAYt0DdzOcvE6cnvjjuVIfNzgBgc/41EKhHQ/5s4pSEPSdBUAgQIDAigU8kl79KPCdRe3KVDQQMADYAWuXtG+e1errgoxMeMbwKkJcIECCwJIG6e99LEi9I1E19lC0IGABsAWuVSW+U1+6ZqL0CdSvJnQmFAAECBBYjUMf135l4c+IdidroX55QtiFgALANtHVmOSzv3Tpx25WfR+fnwStxSH7WMwgcPgiCQoAAgVUEvp7X6hh+xTcSX0rUrv2PrcRn87Nu5KMQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGxCPx/Nm99zjOWhpkAAAAASUVORK5CYII="/>
1816                    </defs>
1817                  </svg>
1818
1819                  
1820                    
1821                    Login / Create an Account
1822                  
1823                </a>
1824                </div>
1825                </nav>
1826                
1827                <div class="menu-drawer__utility-links"><a href="https://montrealweights.ca/customer_authentication/redirect?locale=en&region_country=CA" class="menu-drawer__account link focus-inset h5">
1828                      <svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
1829<path d="M17.9246 12.9289C16.781 11.8398 15.4198 11.0335 13.9346 10.5454C15.5253 9.50199 16.5703 7.75578 16.5703 5.78125C16.5703 2.59348 13.8472 0 10.5 0C7.15284 0 4.42969 2.59348 4.42969 5.78125C4.42969 7.75578 5.47472 9.50199 7.06543 10.5454C5.58026 11.0335 4.21903 11.8398 3.07539 12.9289C1.09221 14.8177 0 17.3289 0 20H1.64062C1.64062 15.3475 5.61492 11.5625 10.5 11.5625C15.3851 11.5625 19.3594 15.3475 19.3594 20H21C21 17.3289 19.9078 14.8177 17.9246 12.9289ZM10.5 10C8.05748 10 6.07031 8.1075 6.07031 5.78125C6.07031 3.455 8.05748 1.5625 10.5 1.5625C12.9425 1.5625 14.9297 3.455 14.9297 5.78125C14.9297 8.1075 12.9425 10 10.5 10Z" fill="CurrentColor"/>
1830</svg>
1831
1832Log in</a><span class="ly-custom-1000"></span>
1833
1834                  
1835
1836                  <div class="menu-drawer-info"><img src="//montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134" alt="Montreal Weights" srcset="//montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&amp;width=50 50w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&amp;width=100 100w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&amp;width=150 150w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&amp;width=200 200w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&amp;width=250 250w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&amp;width=300 300w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&amp;width=400 400w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&amp;width=500 500w" width="600" height="96" class="menu-drawer-logo">
1837<div class="menu-info-box"><p>360 rue Isabey, Saint-Laurent, QC, H4T 1W1</p>
1838<p>1-844-MTL-WGTS<br/>[email protected]</p>
1839</div>
1840            	  </div>
1841                </div>
1842              </div>
1843            </div>
1844
1845          </div>
1846        </details>
1847      </header-drawer><a href="/" class="header__heading-link link link--text focus-inset"><img src="//montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134" alt="Montreal Weights" srcset="//montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&amp;width=50 50w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&amp;width=100 100w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&amp;width=150 150w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&amp;width=200 200w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&amp;width=250 250w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&amp;width=300 300w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&amp;
1847width=400 400w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&amp;width=500 500w" width="150" height="24.0" class="header__heading-logo dark-logo">
1848</a><nav class="header__inline-menu">
1849          <ul class="list-menu list-menu--inline" role="list"><li class="main-menu-li"><header-menu>
1850                    <details id="Details-HeaderMenu-1">
1851                      <summary class="header__menu-item_main header__menu-item list-menu__item link focus-inset">
1852                        <span>Shop &amp; Save</span>
1853                        <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6">
1854  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
1855</svg>
1856
1857                      </summary>
1858                      <ul id="HeaderMenu-MenuList-1" class="header__submenu list-menu list-menu--disclosure gradient caption-large motion-reduce global-settings-popup" role="list" tabindex="-1"><li><a href="/collections/all-products" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1859                                All Products
1860                              </a></li><li><a href="/collections/bestsellers" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1861                                Bestsellers
1862                              </a></li><li><a href="/collections/bundles" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1863                                Bundle &amp; Save
1864                              </a></li></ul>
1865                    </details>
1866                  </header-menu></li><li class="main-menu-li"><a href="/collections/dumbbells" class="header__menu-item_main header__menu-item list-menu__item link link--text focus-inset">
1867                    <span>Dumbbells</span>
1868                  </a></li><li class="main-menu-li"><header-menu>
1869                    <details id="Details-HeaderMenu-3">
1870                      <summary class="header__menu-item_main header__menu-item list-menu__item link focus-inset">
1871                        <span>Cardio</span>
1872                        <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6">
1873  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
1874</svg>
1875
1876                      </summary>
1877                      <ul id="HeaderMenu-MenuList-3" class="header__submenu list-menu list-menu--disclosure gradient caption-large motion-reduce global-settings-popup" role="list" tabindex="-1"><li><a href="/collections/cardio" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1878                                All Cardio
1879                              </a></li><li><a href="/collections/exercise-bikes-spin-bikes" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1880                                Spin Bikes
1881                              </a></li><li><a href="/collections/treadmills" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1882                                Treadmills
1883                              </a></li><li><a href="/collections/walking-pads" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1884                                Walking Pads
1885                              </a></li><li><a href="/collections/rowers" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1886                                Rowing Machines
1887                              </a></li><li><a href="/collections/ellipticals" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1888                                Ellipticals
1889                              </a></li></ul>
1890                    </details>
1891                  </header-menu></li><li class="main-menu-li"><header-menu>
1892                    <details id="Details-HeaderMenu-4">
1893                      <summary class="header__menu-item_main header__menu-item list-menu__item link focus-inset">
1894                        <span>Power Lifting</span>
1895                        <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6">
1896  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
1897</svg>
1898
1899                      </summary>
1900                      <ul id="HeaderMenu-MenuList-4" class="header__submenu list-menu list-menu--disclosure gradient caption-large motion-reduce global-settings-popup" role="list" tabindex="-1"><li><a href="/collections/power-lifting" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1901                                All Power Lifting
1902                              </a></li><li><a href="/collections/cable-machines" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1903                                Cable Machines
1904                              </a></li></ul>
1905                    </details>
1906                  </header-menu></li><li class="main-menu-li"><header-menu>
1907                    <details id="Details-HeaderMenu-5">
1908                      <summary class="header__menu-item_main header__menu-item list-menu__item link focus-inset">
1909                        <span>Accessories &amp; Extras</span>
1910                        <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6">
1911  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
1912</svg>
1913
1914                      </summary>
1915                      <ul id="HeaderMenu-MenuList-5" class="header__submenu list-menu list-menu--disclosure gradient caption-large motion-reduce global-settings-popup" role="list" tabindex="-1"><li><a href="/collections/accessories" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1916                                Accessories
1917                              </a></li><li><a href="/collections/benches" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1918                                Benches
1919                              </a></li><li><a href="/collections/flooring" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1920                                Flooring
1921                              </a></li><li><a href="/collections/recovery" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1922                                Recovery
1923                              </a></li><li><a href="/collections/supplements" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1924                                Supplements
1925                              </a></li><li><a href="/products/montreal-weights-gift-card" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1926                                Gift Cards
1927                              </a></li></ul>
1928                    </details>
1929                  </header-menu></li><li class="main-menu-li"><header-menu>
1930                    <details id="Details-HeaderMenu-6">
1931                      <summary class="header__menu-item_main header__menu-item list-menu__item link focus-inset">
1932                        <span>About</span>
1933                        <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6">
1934  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
1935</svg>
1936
1937                      </summary>
1938                      <ul id="HeaderMenu-MenuList-6" class="header__submenu list-menu list-menu--disclosure gradient caption-large motion-reduce global-settings-popup" role="list" tabindex="-1"><li><a href="https://support.montrealweights.ca/hc/en-us" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1939                                Helpcenter &amp; FAQ
1940                              </a></li><li><a href="/pages/reviews" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1941                                Customer Reviews
1942                              </a></li><li><a href="/pages/shipping" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1943                                Shipping
1944                              </a></li><li><a href="/pages/warranty" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1945                                Warranty
1946                              </a></li><li><a href="/blogs/blog" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1947                                Blog
1948                              </a></li><li><a href="/pages/our-company" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1949                                Our Company
1950                              </a></li><li><a href="/pages/montreal-weights-points" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1951                                Rewards
1952                              </a></li></ul>
1953                    </details>
1954                  </header-menu></li></ul>
1955        </nav><style>
1956  .ly-breakpoint-1{
1957    display: none !important;
1958  }
1959</style>
1960    <div class="header__icons">
1961
1962      <span class="ly-custom-1000"></span>
1963      
1964      <details-modal class="header__search">
1965        <details>
1966          <summary class="header__icon header__icon--search header__icon--summary link focus-inset modal__toggle" aria-haspopup="dialog" aria-label="Search">
1967            <span>
1968              
1969              <svg class="modal__toggle-open icon icon-search" aria-hidden="true" focusable="false" role="presentation" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
1970                <path d="M19.8779 18.6996L14.0681 12.8897C15.17 11.5293 15.8334 9.79975 15.8334 7.9167C15.8334 3.55145 12.2819 0 7.91666 0C3.55142 0 0 3.55145 0 7.9167C0 12.2819 3.55146 15.8334 7.9167 15.8334C9.79975 15.8334 11.5293 15.17 12.8897 14.0681L18.6996 19.878C18.8624 20.0407 19.1261 20.0407 19.2889 19.878L19.878 19.2888C20.0407 19.1261 20.0407 18.8623 19.8779 18.6996ZM7.9167 14.1667C4.47025 14.1667 1.66668 11.3632 1.66668 7.9167C1.66668 4.47025 4.47025 1.66668 7.9167 1.66668C11.3632 1.66668 14.1667 4.47025 14.1667 7.9167C14.1667 11.3632 11.3632 14.1667 7.9167 14.1667Z" fill="CurrentColor"/>
1971              </svg>
1972                  
1973              <svg class="modal__toggle-close icon icon-close" aria-hidden="true" focusable="false" role="presentation">
1974                <use href="#icon-close">
1975              </svg>
1976            </span>
1977          </summary>
1978          <div class="search-modal modal__content gradient" role="dialog" aria-modal="true" aria-label="Search">
1979            <div class="modal-overlay"></div>
1980            <div class="search-modal__content search-modal__content-bottom" tabindex="-1"><predictive-search class="search-modal__form" data-loading-text="Loading..."><form action="/search" method="get" role="search" class="search search-modal__form">
1981                  <div class="field">
1982                    <input class="search__input field__input"
1983                      id="Search-In-Modal"
1984                      type="search"
1985                      name="q"
1986                      value=""
1987                      placeholder="Search"role="combobox"
1988                        aria-expanded="false"
1989                        aria-owns="predictive-search-results-list"
1990                        aria-controls="predictive-search-results-list"
1991                        aria-haspopup="listbox"
1992                        aria-autocomplete="list"
1993                        autocorrect="off"
1994                        autocomplete="off"
1995                        autocapitalize="off"
1996                        spellcheck="false">
1997                    <label class="field__label" for="Search-In-Modal">Search</label>
1998                    <input type="hidden" name="options[prefix]" value="last">
1999                    <button class="search__button field__button" aria-label="Search">
2000                      <svg class="icon icon-search" aria-hidden="true" focusable="false" role="presentation">
2001                        <use href="#icon-search">
2002                      </svg>
2003                    </button>
2004                  </div><div class="predictive-search predictive-search--header" tabindex="-1" data-predictive-search>
2005                      <div class="predictive-search__loading-state">
2006                        <svg aria-hidden="true" focusable="false" role="presentation" class="spinner" viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg">
2007                          <circle class="path" fill="none" stroke-width="6" cx="33" cy="33" r="30"></circle>
2008                        </svg>
2009                      </div>
2010                    </div>
2011
2012                    <span class="predictive-search-status visually-hidden" role="status" aria-hidden="true"></span></form></predictive-search><button type="button" class="search-modal__close-button modal__close-button link link--text focus-inset" aria-label="Close">
2013                <svg class="icon icon-close" aria-hidden="true" focusable="false" role="presentation">
2014                  <use href="#icon-close">
2015                </svg>
2016              </button>
2017            </div>
2018          </div>
2019        </details>
2020      </details-modal>
2021
2022      
2023        <a href="https://montrealweights.ca/customer_authentication/redirect?locale=en&region_country=CA" class="header__icon header__icon--account link focus-inset small-hide">
2024          <svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2025<path d="M17.9246 12.9289C16.781 11.8398 15.4198 11.0335 13.9346 10.5454C15.5253 9.50199 16.5703 7.75578 16.5703 5.78125C16.5703 2.59348 13.8472 0 10.5 0C7.15284 0 4.42969 2.59348 4.42969 5.78125C4.42969 7.75578 5.47472 9.50199 7.06543 10.5454C5.58026 11.0335 4.21903 11.8398 3.07539 12.9289C1.09221 14.8177 0 17.3289 0 20H1.64062C1.64062 15.3475 5.61492 11.5625 10.5 11.5625C15.3851 11.5625 19.3594 15.3475 19.3594 20H21C21 17.3289 19.9078 14.8177 17.9246 12.9289ZM10.5 10C8.05748 10 6.07031 8.1075 6.07031 5.78125C6.07031 3.455 8.05748 1.5625 10.5 1.5625C12.9425 1.5625 14.9297 3.455 14.9297 5.78125C14.9297 8.1075 12.9425 10 10.5 10Z" fill="CurrentColor"/>
2026</svg>
2027
2028          <span class="visually-hidden">Log in</span>
2029        </a>
2030      
2031
2032      <a href="/cart" class="header__icon header__icon--cart link focus-inset" id="cart-icon-bubble"><svg width="23" height="20" viewBox="0 0 23 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2033<path d="M23 7.14286H19.0944L14.9913 0.34668C14.7877 0.00908289 14.3462 -0.101141 14.0051 0.10185C13.6647 0.304841 13.5545 0.743572 13.7588 1.08189L17.418 7.14286H5.58196L9.24125 1.08184C9.44551 0.743524 9.33532 0.304793 8.99489 0.101802C8.65306 -0.101189 8.21299 0.00903482 8.00873 0.346631L3.9056 7.14281H0V8.57139H1.55998L3.38597 18.2512C3.57688 19.2648 4.46829 20 5.50575 20H17.4943C18.5317 20 19.4231 19.2648 19.6133 18.252L21.4399 8.57139H23L23 7.14286ZM18.2003 17.989C18.1372 18.3266 17.8403 18.5715 17.4942 18.5715H5.50575C5.1597 18.5715 4.86282 18.3266 4.79895 17.9883L3.02207 8.57139H19.9779L18.2003 17.989Z" fill="CurrentColor"/>
2034</svg>
2035<span class="visually-hidden">Cart</span>
2036        
2037        <dynamic></dynamic>
2038      </a>
2039    </div>
2040   
2041  </header><div class="mobile-searchber-wrapper">
2042           <form action="/search" method="get" role="search" class="search search-modal__form">
2043              <div class="field">
2044                <input class="search__input field__input"
2045                  id="Search-In-Modal"
2046                  type="search"
2047                  name="q"
2048                  value=""
2049                  placeholder="Adjustable Dumbbells, Bumper Plates"role="combobox"
2050                    aria-expanded="false"
2051                    aria-owns="predictive-search-results-list"
2052                    aria-controls="predictive-search-results-list"
2053                    aria-haspopup="listbox"
2054                    aria-autocomplete="list"
2055                    autocorrect="off"
2056                    autocomplete="off"
2057                    autocapitalize="off"
2058                    spellcheck="false">              
2059                <input type="hidden" name="options[prefix]" value="last">
2060                <button class="search__button field__button" aria-label="Search">                
2061                  <svg width="20" height="20" class="icon icon-search" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2062                    <path d="M19.8779 18.6996L14.0681 12.8897C15.17 11.5293 15.8334 9.79975 15.8334 7.9167C15.8334 3.55145 12.2819 0 7.91666 0C3.55142 0 0 3.55145 0 7.9167C0 12.2819 3.55146 15.8334 7.9167 15.8334C9.79975 15.8334 11.5293 15.17 12.8897 14.0681L18.6996 19.878C18.8624 20.0407 19.1261 20.0407 19.2889 19.878L19.878 19.2888C20.0407 19.1261 20.0407 18.8623 19.8779 18.6996ZM7.9167 14.1667C4.47025 14.1667 1.66668 11.3632 1.66668 7.9167C1.66668 4.47025 4.47025 1.66668 7.9167 1.66668C11.3632 1.66668 14.1667 4.47025 14.1667 7.9167C14.1667 11.3632 11.3632 14.1667 7.9167 14.1667Z" fill="white"/>
2063                  </svg>
2064                </button>
2065              </div><div class="predictive-search predictive-search--header" tabindex="-1" data-predictive-search>
2066                  <div class="predictive-search__loading-state">
2067                    <svg aria-hidden="true" focusable="false" role="presentation" class="spinner" viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg">
2068                      <circle class="path" fill="none" stroke-width="6" cx="33" cy="33" r="30"></circle>
2069                    </svg>
2070                  </div>
2071                </div>
2072                <span class="predictive-search-status visually-hidden" role="status" aria-hidden="true"></span></form>
2073      </div></sticky-header>
2074
2075<script type="application/ld+json">
2076  {
2077    "@context": "http://schema.org",
2078    "@type": "Organization",
2079    "name": "Montreal Weights",
2080    
2081      "logo": "https:\/\/montrealweights.ca\/cdn\/shop\/files\/Dark_logo.png?v=1667213134\u0026width=600",
2082    
2083    "sameAs": [
2084      "",
2085      "https:\/\/www.facebook.com\/montrealweights",
2086      "",
2087      "https:\/\/www.instagram.com\/montrealweights\/",
2088      "",
2089      "",
2090      "",
2091      "",
2092      ""
2093    ],
2094    "url": "https:\/\/montrealweights.ca\/pages\/contact-us"
2095  }
2096</script>
2096
2097<style> #shopify-section-header /* Trouver la position de Black Friday dans votre menu et remplacer X par le numéro */.header__inline-menu .list-menu--inline > li:nth-child(1) .header__menu-item_main span {color: #ee2f35 !important;} #shopify-section-header /* Aussi pour le menu mobile */.menu-drawer__menu > li:nth-child(X) a {color: #ee2f35 !important;} </style></div>
2098
2099    <main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1">
2100      <section id="shopify-section-template--28096121045361__e6cab4b2-a096-4aed-bba0-26b4964329c6" class="shopify-section mw_images__wrap"><style data-shopify>.section-template--28096121045361__e6cab4b2-a096-4aed-bba0-26b4964329c6-padding .inner{
2101        max-width: 860px;
2102    }
2103    .section-template--28096121045361__e6cab4b2-a096-4aed-bba0-26b4964329c6-padding {
2104        padding-top: 45px;
2105        padding-bottom: 45px;
2106    }
2107    .section-template--28096121045361__e6cab4b2-a096-4aed-bba0-26b4964329c6-padding .heading,
2108    .section-template--28096121045361__e6cab4b2-a096-4aed-bba0-26b4964329c6-padding .text,
2109    .section-template--28096121045361__e6cab4b2-a096-4aed-bba0-26b4964329c6-padding .label{
2110        text-align: center;
2111    }
2112    @media screen and (min-width: 768px) {
2113        .section-template--28096121045361__e6cab4b2-a096-4aed-bba0-26b4964329c6-padding {
2114            padding-top: 60px;
2115            padding-bottom: 60px;
2116        }
2117    }</style><div class="mw_rich__text section-template--28096121045361__e6cab4b2-a096-4aed-bba0-26b4964329c6-padding">
2118    <div class="inner page-width container">
2119        
2120<style>
2121                        .section-template--28096121045361__e6cab4b2-a096-4aed-bba0-26b4964329c6-padding .label{
2122                            color: #ee2f35;
2123                        }
2124                    </style>
2125                    <h4 class="label">
2126                        Visit our new showroom
2127                    </h4>
2128            
2129        
2130<style>
2131                        .section-template--28096121045361__e6cab4b2-a096-4aed-bba0-26b4964329c6-padding .heading{
2132                            color: #121212;
2133                        }
2134                    </style>
2135                    <h2 class="heading">
2136                        Over 10 000 Sqft of Gym Equipment in stock, ready to ship
2137                    </h2>
2138        
2139<style>
2140                        .section-template--28096121045361__e6cab4b2-a096-4aed-bba0-26b4964329c6-padding .text{
2141                            color: #000000;
2142                        }
2143                    </style>
2144                    <div class="text">
2145                        You can come shop and leave with your order at the same time, since the showroom is where our warehouse is!
2146                    </div>
2147        
2148    </div>
2149</div>
2150
2151</section><section id="shopify-section-template--28096121045361__6115257e-e1aa-4158-aaef-7a9bd34f9425" class="shopify-section mw_address__wrap"><style data-shopify>.section-template--28096121045361__6115257e-e1aa-4158-aaef-7a9bd34f9425-padding {
2152        padding-top: 0px;
2153        padding-bottom: 27px;
2154    }
2155    @media screen and (min-width: 768px) {
2156        .section-template--28096121045361__6115257e-e1aa-4158-aaef-7a9bd34f9425-padding {
2157            padding-top: 0px;
2158            padding-bottom: 36px;
2159        }
2160    }</style><div class="mw_address section-template--28096121045361__6115257e-e1aa-4158-aaef-7a9bd34f9425-padding">
2161    <div class="inner page-width container">
2162        <div class="d_flex" style="background-color: #f6f8fa;">
2163            
2164<style>
2165                            .section-template--28096121045361__6115257e-e1aa-4158-aaef-7a9bd34f9425-padding h3{
2166                                color: #121212;
2167                            }
2168                            .section-template--28096121045361__6115257e-e1aa-4158-aaef-7a9bd34f9425-padding a{
2169                                color: #ee2f35;
2170                            }
2171                        </style>
2172                    <div class="col col_address d_flex">
2173                        
2174                            <span class="icon">
2175                                        <img width="36" height="36" src="//montrealweights.ca/cdn/shop/files/contact_us_mw_small.svg?v=1701623553" alt="Contactez-nous" />
2176                                    </span>
2177                        
2178                        <div>
2179                            
2180                                <h3 class="d_flex">
2181                                    <div>
2182                                        <p>360 rue Isabey</p><p>Saint-Laurent, QC, H4T 1W1</p>
2183                                    </div>
2184                                </h3>
2185                            
2186                            <div class="links d_flex">
2187                                
2188                                    <a href="https://www.google.com/maps/place/Montreal+Weights/@45.4870085,-73.6835445,
218817z/data=!3m2!4b1!5s0x4cc91b0749eb2775:0xf5ee1c481b297ee2!4m6!3m5!1s0x4cc919ca872ef005:0xd0141e4b21478870!8m2!3d45.4870085!4d-73.6809696!16s%2Fg%2F11lgw50pnq?entry=tts" class="d_flex" target="_blank" >
2189                                        
2190                                            <img width="24" height="24" src="//montrealweights.ca/cdn/shop/files/see_on_maps_small.svg?v=1701623566" alt="See on Maps" />
2191                                        
2192                                        See on Maps
2193                                    </a>
2194                                
2195                                
2196                                    <a href="" class="d_flex" target="_blank" >
2197                                        
2198                                            <img width="24" height="24" src="//montrealweights.ca/cdn/shop/files/View_Access_Instructions_small.svg?v=1701623578" alt="View Access Instructions" />
2199                                        
2200                                        View Access Instructions
2201                                    </a>
2202                                
2203                            </div>
2204                        </div>
2205                    </div>
2206            
2207<style>
2208                        .section-template--28096121045361__6115257e-e1aa-4158-aaef-7a9bd34f9425-padding h5{
2209                            color: #ee2f35;
2210                        }
2211                    </style>
2212                    <div class="col col_schedule d_flex">
2213                        
2214                            <span class="icon">
2215                                        <img width="32" height="32" src="//montrealweights.ca/cdn/shop/files/hours_small.svg?v=1701623592" alt="Contactez-nous" />
2216                                    </span>
2217                        
2218                        <div>
2219                            
2220                                <h5 class="d_flex">
2221                                    Showroom Hours:
2222                                </h5>
2223                            
2224                            <p>Monday to Friday: 10 AM to 5 PM</p><p>Saturday: 11 AM to 4 PM</p><p>Sunday: Closed</p>
2225                        </div>
2226                    </div>
2227                
2228            
2229        </div>
2230    </div>
2231</div>
2232
2233</section><section id="shopify-section-template--28096121045361__dcc0a18a-8066-4e67-9501-82ab1736d269" class="shopify-section mw_map__wrap">
2234    
2234<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
2234
2235
2236<style data-shopify>.section-template--28096121045361__dcc0a18a-8066-4e67-9501-82ab1736d269-padding {
2237        padding-bottom: 23%;
2238        margin-top: 0px;
2239        margin-bottom: 0px;
2240    }
2241    @media screen and (min-width: 768px) {
2242        .section-template--28096121045361__dcc0a18a-8066-4e67-9501-82ab1736d269-padding {
2243            padding-bottom: 30%;
2244            margin-top: 0px;
2245            margin-bottom: 0px;
2246        }
2247    }</style><div class="mw_map section-template--28096121045361__dcc0a18a-8066-4e67-9501-82ab1736d269-padding">
2248    <div class="inner page-width container d_flex">
2249        
2250<div class="col map_wrap">
2251                        
2252                        
2253                        <img src="//montrealweights.ca/cdn/shop/files/placeholder_map_png.jpg?v=1701607894" alt="Contactez-nous" />
2254                        
2255                        
2256                    </div>
2257        
2258<div class="col map_image">
2259                        <div class="img">
2260                            
2261                                <img src="//montrealweights.ca/cdn/shop/files/contact_image__mw.jpg?v=1701610071" alt="Contactez-nous" />
2262                            
2263                        </div>
2264                    </div>
2265            
2266        
2267    </div>
2268</div>
2269
2270</section><section id="shopify-section-template--28096121045361__12dfdb1b-46f8-4e98-911c-8d77db68d371" class="shopify-section mw_contact__us_wrap"><style data-shopify>.section-template--28096121045361__12dfdb1b-46f8-4e98-911c-8d77db68d371-padding {
2271        padding-top: 60px;
2272        padding-bottom: 15px;
2273    }
2274    .section-template--28096121045361__12dfdb1b-46f8-4e98-911c-8d77db68d371-padding .title{
2275        max-width: 560px;
2276    }
2277    .section-template--28096121045361__12dfdb1b-46f8-4e98-911c-8d77db68d371-padding .title{
2278        
2279            margin: 0 auto 15px;
2280        
2281    }
2282    .section-template--28096121045361__12dfdb1b-46f8-4e98-911c-8d77db68d371-padding .inner{
2283        text-align: center;
2284    }
2285    .section-template--28096121045361__12dfdb1b-46f8-4e98-911c-8d77db68d371-padding .schedule{
2286        justify-content: center;
2287    }
2288    @media screen and (min-width: 768px) {
2289        .section-template--28096121045361__12dfdb1b-46f8-4e98-911c-8d77db68d371-padding {
2290            padding-top: 80px;
2291            padding-bottom: 20px;
2292        }
2293    }</style><div class="contact__us mw_contact__us section-template--28096121045361__12dfdb1b-46f8-4e98-911c-8d77db68d371-padding">
2294    <div class="inner page-width container">
2295        <div class="mb">
2296            
2297                <h2 class="title">
2298                    Need any help with your order or products?
2299                </h2>
2300            
2301            
2302                <div class="sub_title">
2303                    Our team of Canadian support agents is here to help you!
2304                </div>
2305            
2306        </div>
2307        
2308        
2309        <ul class="contact_us__list d_flex">
2310            
2311<li class="">
2312                            <div class="item_icon">
2313                                <img src="//montrealweights.ca/cdn/shop/files/tel.svg?v=1698922120" alt="" />
2314                            </div>
2315                            <div class="item_label">
2316                                Call Us
2317                            </div>
2318                            <div class="item_data">
2319                                <p><a href="tel:1-844-MTL-WGTS" title="tel:1-844-MTL-WGTS"><strong>1-844-MTL-WGTS</strong></a></p>
2320                            </div>
2321                        </li>
2322                
2323            
2324<li class="">
2325                            <div class="item_icon">
2326                                <img src="//montrealweights.ca/cdn/shop/files/email.svg?v=1698922124" alt="" />
2327                            </div>
2328                            <div class="item_label">
2329                                email us
2330                            </div>
2331                            <div class="item_data">
2332                                <p><a href="mailto:[email protected]" title="mailto:[email protected]"><strong>[email protected]</strong></a></p>
2333                            </div>
2334                        </li>
2335                
2336            
2337<li class="live_chat">
2338                            <div class="item_icon">
2339                                <img src="//montrealweights.ca/cdn/shop/files/chat.svg?v=1698922126" alt="" />
2340                            </div>
2341                            <div class="item_label">
2342                                chat with us
2343                            </div>
2344                            <div class="item_data">
2345                                <p><strong>Chat Now</strong></p>
2346                            </div>
2347                        </li>
2348                
2349            
2350        </ul>
2351        <div class="schedule d_flex">
2352            <div class="label">
2353                Online Service Hours:
2354            </div>
2355            <div class="d_flex desc">
2356                <p>
2356Monday to Friday, 9 AM to 5 PM</p><p> | </p><p>Saturday, 10 AM to 5 PM </p><p> | </p><p>Sunday, closed</p>
2357            </div>
2358        </div>
2359    </div>
2360</div>
2361
2362</section><section id="shopify-section-template--28096121045361__e2d4c544-7418-459c-8f81-f5bc8b60dc14" class="shopify-section mw_images__wrap"><style data-shopify>.section-template--28096121045361__e2d4c544-7418-459c-8f81-f5bc8b60dc14-padding {
2363        padding-top: 45px;
2364        padding-bottom: 0px;
2365    }
2366    .section-template--28096121045361__e2d4c544-7418-459c-8f81-f5bc8b60dc14-padding .title{
2367        max-width: px;
2368    }
2369    .section-template--28096121045361__e2d4c544-7418-459c-8f81-f5bc8b60dc14-padding .title{
2370        
2371            margin: 0 auto 15px;
2372        
2373    }
2374    .section-template--28096121045361__e2d4c544-7418-459c-8f81-f5bc8b60dc14-padding .inner{
2375        text-align: ;
2376    }
2377    .section-template--28096121045361__e2d4c544-7418-459c-8f81-f5bc8b60dc14-padding .schedule{
2378        justify-content: ;
2379    }
2380    @media screen and (min-width: 768px) {
2381        .section-template--28096121045361__e2d4c544-7418-459c-8f81-f5bc8b60dc14-padding {
2382            padding-top: 60px;
2383            padding-bottom: 0px;
2384        }
2385    }</style><div class="images mw_images section-template--28096121045361__e2d4c544-7418-459c-8f81-f5bc8b60dc14-padding">
2386    <div class="inner page-width container">
2387        <ul class="d_flex">
2388            
2389<li>
2390                            <img src="//montrealweights.ca/cdn/shop/files/mw_banner.jpg?v=1701357536" alt="" />
2391                        </li>
2392                
2393            
2394<li>
2395                            <img src="//montrealweights.ca/cdn/shop/files/mw_contact.jpg?v=1701357536" alt="" />
2396                        </li>
2397                
2398            
2399        </ul>
2400    </div>
2401</div>
2402
2403</section>
2404    </main>
2405
2406    <div id="shopify-section-footer" class="shopify-section">
2407<link href="//montrealweights.ca/cdn/shop/t/240/assets/section-footer.css?v=83777583229853969691776075633" rel="stylesheet" type="text/css" media="all" />
2408<link rel="stylesheet" href="//montrealweights.ca/cdn/shop/t/240/assets/component-newsletter.css?v=103472482056003053551776075633" media="print" onload="this.media='all'">
2409<link rel="stylesheet" href="//montrealweights.ca/cdn/shop/t/240/assets/component-list-menu.css?v=151968516119678728991776075633" media="print" onload="this.media='all'">
2410<link rel="stylesheet" href="//montrealweights.ca/cdn/shop/t/240/assets/component-list-payment.css?v=69253961410771838501776075633" media="print" onload="this.media='all'">
2411<link rel="stylesheet" href="//montrealweights.ca/cdn/shop/t/240/assets/component-list-social.css?v=52211663153726659061776075633" media="print" onload="this.media='all'">
2412<link rel="stylesheet" href="//montrealweights.ca/cdn/shop/t/240/assets/component-rte.css?v=69919436638515329781776075633" media="print" onload="this.media='all'">
2413<link rel="stylesheet" href="//montrealweights.ca/cdn/shop/t/240/assets/disclosure.css?v=646595190999601341776075633" media="print" onload="this.media='all'">
2414
2415<noscript><link href="//montrealweights.ca/cdn/shop/t/240/assets/component-newsletter.css?v=103472482056003053551776075633" rel="stylesheet" type="text/css" media="all" /></noscript>
2416<noscript><link href="//montrealweights.ca/cdn/shop/t/240/assets/component-list-menu.css?v=151968516119678728991776075633" rel="stylesheet" type="text/css" media="all" /></noscript>
2417<noscript><link href="//montrealweights.ca/cdn/shop/t/240/assets/component-list-payment.css?v=69253961410771838501776075633" rel="stylesheet" type="text/css" media="all" /></noscript>
2418<noscript><link href="//montrealweights.ca/cdn/shop/t/240/assets/component-list-social.css?v=52211663153726659061776075633" rel="stylesheet" type="text/css" media="all" /></noscript>
2419<noscript><link href="//montrealweights.ca/cdn/shop/t/240/assets/component-rte.css?v=69919436638515329781776075633" rel="stylesheet" type="text/css" media="all" /></noscript>
2420<noscript><link href="//montrealweights.ca/cdn/shop/t/240/assets/disclosure.css?v=646595190999601341776075633" rel="stylesheet" type="text/css" media="all" /></noscript>
2421
2422<link href="//montrealweights.ca/cdn/shop/t/240/assets/footer.css?v=167029319534247257681776075633" rel="stylesheet" type="text/css" media="all" />
2423
2424<footer class="footer color-accent-1 gradient section-footer-padding">
2424<div class="footer__content-top page-width"><div class="footer__blocks-wrapper grid grid--1-col grid--2-col grid--4-col-tablet ">
2425
2426          <div class="logo-info-wrap grid__item">
2427            <div class="footer-block__details-content footer-block-image"><img
2428                  srcset= "//montrealweights.ca/cdn/shop/files/Light_logo.png?v=1667213146&width=220, //montrealweights.ca/cdn/shop/files/Light_logo.png?v=1667213146&width=440 2x"
2429                  src="//montrealweights.ca/cdn/shop/files/Light_logo.png?v=1667213146&width=400"
2430                  alt=""
2431                  loading="lazy"
2432                  width="220"
2433                  height="96"
2434                  style="max-width: min(100%, 220px);"
2435                ></div>
2436            <div class="company-info-footer small-hide">
2437              
2438                <span class="cm-address">360 rue Isabey, Saint-Laurent, QC, H4T 1W1</span>
2439              
2440              <div class="footer-tel-email">
2441                
2442                  <a href="tel:201-844-685-9487" class="cm-phone" title="Call us">1-844-MTL-WGTS</a>
2443                
2444                
2445                  <a href="mailto:[email protected]" class="cm-email" title="Email us">[email protected]</a>
2446                
2447              </div>
2448            </div>
2449          </div><div class="footer-block grid__item footer-block--menu" ><h2 class="footer-block__heading"><a href="#">Shop</a></h2><ul class="footer-block__details-content list-unstyled"><li>
2450                          <a href="/collections/all" class="link link--text list-menu__item list-menu__item--link">
2451                            All Products
2452                          </a>
2453                        </li><li>
2454                          <a href="/collections/halteres-musculation" class="link link--text list-menu__item list-menu__item--link">
2455                            Weights
2456                          </a>
2457                        </li><li>
2458                          <a href="/collections/cardio" class="link link--text list-menu__item list-menu__item--link">
2459                            Cardio
2460                          </a>
2461                        </li><li>
2462                          <a href="/collections/power-lifting" class="link link--text list-menu__item list-menu__item--link">
2463                            Power Lifting
2464                          </a>
2465                        </li><li>
2466                          <a href="/collections/accessories" class="link link--text list-menu__item list-menu__item--link">
2467                            Accessories
2468                          </a>
2469                        </li></ul></div><div class="footer-block grid__item footer-block--menu" ><h2 class="footer-block__heading"><a href="#">About</a></h2><ul class="footer-block__details-content list-unstyled"><li>
2470                          <a href="https://support.montrealweights.ca/hc/en-us" class="link link--text list-menu__item list-menu__item--link">
2471                            Helpcenter & FAQ
2472                          </a>
2473                        </li><li>
2474                          <a href="/pages/shipping" class="link link--text list-menu__item list-menu__item--link">
2475                            Shipping
2476                          </a>
2477                        </li><li>
2478                          <a href="/pages/warranty" class="link link--text list-menu__item list-menu__item--link">
2479                            Warranty
2480                          </a>
2481                        </li><li>
2482                          <a href="/pages/reviews" class="link link--text list-menu__item list-menu__item--link">
2483                            Customer Reviews
2484                          </a>
2485                        </li><li>
2486                          <a href="/pages/our-company" class="link link--text list-menu__item list-menu__item--link">
2487                            Our Company 
2488                          </a>
2489                        </li><li>
2490                          <a href="/blogs/blog" class="link link--text list-menu__item list-menu__item--link">
2491                            Blog
2492                          </a>
2493                        </li></ul></div><div class="footer-block grid__item footer-block--menu" ><h2 class="footer-block__heading"><a href="#">Legal</a></h2><ul class="footer-block__details-content list-unstyled"><li>
2494                          <a href="/pages/refund-policy" class="link link--text list-menu__item list-menu__item--link">
2495                            Refund Policy
2496                          </a>
2497                        </li><li>
2498                          <a href="/pages/privacy-policy" class="link link--text list-menu__item list-menu__item--link">
2499                            Privacy Policy
2500                          </a>
2501                        </li><li>
2502                          <a href="/pages/terms-of-services" class="link link--text list-menu__item list-menu__item--link">
2503                            Terms Of Services
2504                          </a>
2505                        </li><li>
2506                          <a href="/pages/contact-us" class="link link--text list-menu__item list-menu__item--link list-menu__item--active">
2507                            Contact Us
2508                          </a>
2509                        </li></ul></div><div class="footer-block--newsletter grid__item"><div class="footer-block__newsletter"><h2 class="footer-block__heading">Sign up for special discounts and news</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">
2510                  <div class="newsletter-form__field-wrapper">
2511                    <div class="field">
2512                      <input
2513                        id="NewsletterForm--footer"
2514                        type="email"
2515                        name="contact[email]"
2516                        class="field__input"
2517                        value=""
2518                        aria-required="true"
2519                        autocorrect="off"
2520                        autocapitalize="off"
2521                        autocomplete="email"
2522                        
2523                        placeholder="E-mail"
2524                        required
2525                      >
2526                      <button type="submit" class="newsletter-form__button field__button" name="commit" id="Subscribe" aria-label="Subscribe">Subscribe</button>
2527                    </div></div></form></div><ul class="footer__list-social list-unstyled list-social" role="list"><li class="list-social__item">
2528                    <a href="https://www.facebook.com/montrealweights" class="link list-social__link" ><svg width="30" height="30" viewBox="0 0 30 30" fill="none" class="icon icon-facebook" xmlns="http://www.w3.org/2000/svg">
2529  <path fill="currentColor" d="M30 15C30 6.71484 23.2852 0 15 0C6.71484 0 0 6.71484 0 15C0 23.2852 6.71484 30 15 30C15.0879 30 15.1758 30 15.2637 29.9941V18.3223H12.041V14.5664H15.2637V11.8008C15.2637 8.5957 17.2207 6.84961 20.0801 6.84961C21.4512 6.84961 22.6289 6.94922 22.9688 6.99609V10.3477H21C19.4473 10.3477 19.1426 11.0859 19.1426 12.1699V14.5605H22.8633L22.377 18.3164H19.1426V29.4199C25.4121 27.6211 30 21.8496 30 15Z" />
2530</svg>
2531<span class="visually-hidden">Facebook</span>
2532                    </a>
2533                  </li><li class="list-social__item">
2534                    <a href="https://www.instagram.com/montrealweights/" class="link list-social__link" ><svg width="30" height="30" viewBox="0 0 30 30" fill="none" class="icon icon-instagram" xmlns="http://www.w3.org/2000/svg">
2535<path d="M17.8711 15C17.8711 16.5857 16.5857 17.8711 15 17.8711C13.4143 17.8711 12.1289 16.5857 12.1289 15C12.1289 13.4143 13.4143 12.1289 15 12.1289C16.5857 12.1289 17.8711 13.4143 17.8711 15Z" fill="currentColor"/>
2536<path d="M21.7145 9.9202C21.5765 9.5462 21.3563 9.20769 21.0702 8.92982C20.7923 8.64372 20.454 8.42354 20.0798 8.28552C19.7763 8.16765 19.3204 8.02734 18.4806 7.98912C17.5722 7.94769 17.2998 7.93877 15 7.93877C12.7 7.93877 12.4276 7.94746 11.5194 7.98889C10.6796 8.02734 10.2235 8.16765 9.9202 8.28552C9.54597 8.42354 9.20746 8.64372 8.92982 8.92982C8.64372 9.20769 8.42354 9.54597 8.28529 9.9202C8.16742 
253610.2237 8.02711 10.6799 7.98889 11.5196C7.94746 12.4278 7.93854 12.7002 7.93854 15.0002C7.93854 17.3 7.94746 17.5724 7.98889 18.4808C8.02711 19.3206 8.16742 19.7765 8.28529 20.08C8.42354 20.4543 8.64349 20.7925 8.9296 21.0704C9.20746 21.3565 9.54575 21.5767 9.91997 21.7147C10.2235 21.8328 10.6796 21.9731 11.5194 22.0113C12.4276 22.0528 12.6997 22.0615 14.9998 22.0615C17.3 22.0615 17.5724 22.0528 18.4804 22.0113C19.3201 21.9731 19.7763 21.8328 20.0798 21.7147C20.831 21.4249 21.4247 20.8312 21.7145 20.08C21.8324 19.7765 21.9727 19.3206 22.0111 18.4808C22.0525 17.5724 22.0612 17.3 22.0612 15.0002C22.0612 12.7002 22.0525 12.4278 22.0111 11.5196C21.9729 10.6799 21.8326 10.2237 21.7145 9.9202ZM15 19.4229C12.5571 19.4229 10.5769 17.4429 10.5769 15C10.5769 12.5571 12.5571 10.5771 15 10.5771C17.4426 10.5771 19.4229 12.5571 19.4229 15C19.4229 17.4429 17.4426 19.4229 15 19.4229ZM19.5978 11.4359C19.0269 11.4359 18.5641 10.9731 18.5641 10.4022C18.5641 9.83139 19.0269 9.36859 19.5978 9.36859C20.1686 9.36859 20.6314 9.83139 20.6314 10.4022C20.6312 10.9731 20.1686 11.4359 19.5978 11.4359Z" fill="currentColor"/>
2537<path d="M15 0C6.717 0 0 6.717 0 15C0 23.283 6.717 30 15 30C23.283 30 30 23.283 30 15C30 6.717 23.283 0 15 0ZM23.5613 18.5511C23.5197 19.468 23.3739 20.094 23.161 20.6419C22.7135 21.7989 21.7989 22.7135 20.6419 23.161C20.0942 23.3739 19.468 23.5194 18.5513 23.5613C17.6328 23.6032 17.3394 23.6133 15.0002 23.6133C12.6608 23.6133 12.3676 23.6032 11.4489 23.5613C10.5322 23.5194 9.90601 23.3739 9.35829 23.161C8.78334 22.9447 8.26286 22.6057 7.83257 22.1674C7.39449 21.7374 7.05551 21.2167 6.83922 20.6419C6.62636 20.0942 6.48056 19.468 6.4389 18.5513C6.39656 17.6326 6.38672 17.3392 6.38672 15C6.38672 12.6608 6.39656 12.3674 6.43867 11.4489C6.48033 10.532 6.6259 9.90601 6.83876 9.35806C7.05505 8.78334 7.39426 8.26263 7.83257 7.83257C8.26263 7.39426 8.78334 7.05528 9.35806 6.83899C9.90601 6.62613 10.532 6.48056 11.4489 6.43867C12.3674 6.39679 12.6608 6.38672 15 6.38672C17.3392 6.38672 17.6326 6.39679 18.5511 6.4389C19.468 6.48056 20.094 6.62613 20.6419 6.83876C21.2167 7.05505 21.7374 7.39426 22.1677 7.83257C22.6057 8.26286 22.9449 8.78334 23.161 9.35806C23.3741 9.90601 23.5197 10.532 23.5616 11.4489C23.6034 12.3674 23.6133 12.6608 23.6133 15C23.6133 17.3392 23.6034 17.6326 23.5613 18.5511Z" fill="currentColor"/>
2538</svg>
2539<span class="visually-hidden">Instagram</span>
2540                    </a>
2541                  </li></ul><div class="company-info-footer large-up-hide medium-hide">
2542              
2543                <span class="cm-address">360 rue Isabey, Saint-Laurent, QC, H4T 1W1</span>
2544              
2545                  <div class="footer-tel-email">
2546                    
2547                      <a href="tel:201-844-685-9487" class="cm-phone" title="Call us">1-844-MTL-WGTS</a>
2548                    
2549                    
2550                      <a href="mailto:[email protected]" class="cm-email" title="Email us">[email protected]</a>
2551                    
2552                  </div>
2553              </div>
2554          </div>
2555
2556        </div></div>
2557
2558</footer>
2559
2560
2561
2562
2563
2564
2565
2566</div>
2567
2568    <ul hidden>
2569      <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li>
2570      <li id="a11y-new-window-message">Opens in a new window.</li>
2571    </ul>
2572
2573    
2573<script>
2574      window.shopUrl = 'https://montrealweights.ca';
2575      window.routes = {
2576        cart_add_url: '/cart/add',
2577        cart_change_url: '/cart/change',
2578        cart_update_url: '/cart/update',
2579        cart_url: '/cart',
2580        predictive_search_url: '/search/suggest',
2581      };
2582
2583      window.cartStrings = {
2584        error: `There was an error while updating your cart. Please try again.`,
2585        quantityError: `You can only add [quantity] of this item to your cart.`,
2586      };
2587
2588      window.variantStrings = {
2589        addToCart: `Add to cart`,
2590        soldOut: `Sold out`,
2591        unavailable: `Unavailable`,
2592        fr: {
2593          addToCart: `Ajouter au panier`,
2594          soldOut: `Épuisé`,
2595          unavailable: `Non disponible`,
2596        },
2597      };
2598
2599      window.accessibilityStrings = {
2600        imageAvailable: `Image [index] is now available in gallery view`,
2601        shareSuccess: `Link copied to clipboard`,
2602        pauseSlideshow: `Pause slideshow`,
2603        playSlideshow: `Play slideshow`,
2604      };
2605    </script>
2605<script src="//montrealweights.ca/cdn/shop/t/240/assets/predictive-search.js?v=31278710863581584031776075633" defer="defer"></script>
2605
2606  
2606<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
2606<meta name="google-site-verification" content="7s2xETzJ2JC6Ne2-yFVvI5D3RoY5vGAL_VjVq09rLB8">
2607<meta name="google-site-verification" content="XUWwQKSqfvQ442NJGxT3mNKvXZg-_ixW9a67ExSSLtE">
2608<meta name="google-site-verification" content="ouhxQzYHD41t-fPUqGfaV_bkEaL8nzT47wXRkl4-q0Y">
2609<meta name="facebook-domain-verification" content="ndztuq8kh2xiyx7vxacv3a7uhagpyi">
2610<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/40009302175/digital_wallets/dialog">
2611<meta id="in-context-paypal-metadata" data-shop-id="40009302175" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="CAD">
2612<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="alternate" hreflang="x-default" href="https://montrealweights.ca/pages/contact-us">
2613<link rel="alternate" hreflang="en" href="https://montrealweights.ca/pages/contact-us">
2614<link rel="alternate" hreflang="fr" href="https://montrealweights.ca/fr/pages/contact-us">
2615<script async="async" src="/checkouts/internal/preloads.js?locale=en-CA&default_configuration_id=2610069663"></script>
2615
2616<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
2617<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-CA&default_configuration_id=2610069663&shop_id=40009302175" crossorigin="anonymous"></script>
vendor: 1 bytes, line 2617
2617
2618<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":40009302175,"countryCode":"CA","currencyCode":"CAD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/40009302175","merchantName":"Montreal Weights","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","interac","jcb"],"total":{"type":"pending","label":"Montreal Weights","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 2618
2618
2619<script id="shopify-features" type="application/json">{"accessToken":"db451a8b197d0ee33abca12d3294172f","betas":["rich-media-storefront-analytics"],"domain":"montrealweights.ca","predictiveSearch":true,"shopId":40009302175,"locale":"en"}</script>
vendor: 1 bytes, line 2619
2619
2620<script>var Shopify = Shopify || {};
2621Shopify.shop = "mtlneedsweights.myshopify.com";
2622Shopify.locale = "en";
2623Shopify.currency = {"active":"CAD","rate":"1.0"};
2624Shopify.country = "CA";
2625Shopify.theme = {"name":"BOXING WEEK \/ NY THEME","id":192214303089,"schema_name":"Dawn","schema_version":"7.0.1","theme_store_id":887,"role":"main"};
2626Shopify.theme.handle = "null";
2627Shopify.theme.style = {"id":null,"handle":null};
2628Shopify.cdnHost = "montrealweights.ca/cdn";
2629Shopify.routes = Shopify.routes || {};
2630Shopify.routes.root = "/";
2631Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
2632Shopify.SignInWithShop = Shopify.SignInWithShop || {};
2633Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
2634Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 2634
2634
2635<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 2635
2635
2636<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 2636
2636
2637<script>
2638  window.ShopifyPay = window.ShopifyPay || {};
2639  window.ShopifyPay.apiHost = "shop.app\/pay";
2640  window.ShopifyPay.redirectState = null;
2641</script>
vendor: 1 bytes, line 2641
2641
2642<script>
2643  window.Shopify = window.Shopify || {};
2644  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
2645  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
2646  window.Shopify.SignInWithShop.eligible = true;
2647</script>
vendor: 1 bytes, line 2647
2647
2648<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 2648
2648
2649<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 2649
2649
2650<script type="module">
2651  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
2652
2653  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
2654
2655</script>
vendor: 1 bytes, line 2655
2655
2656<script>
2657  window.Shopify = window.Shopify || {};
2658  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
2659  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"]};
2660</script>
vendor: 1 bytes, line 2660
2660
2661<script>(function() {
2662  var isLoaded = false;
2663  function asyncLoad() {
2664    if (isLoaded) return;
2665    isLoaded = true;
2666    var urls = ["https:\/\/cdn.provesrc.com\/provesrc.js?apiKey=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50SWQiOiI2MzBlNTQzMjM0NDhkNzU4YWUxZmRjYzkiLCJpYXQiOjE2NjE4ODM0NDJ9.EaLTzUYjPswnkCJ_zyYZ1odoaAftzk-NTRa9fV6BG7o\u0026shop=mtlneedsweights.myshopify.com","https:\/\/doui4jqs03un3.cloudfront.net\/checkout.js.gz?shop=mtlneedsweights.myshopify.com","\/\/cdn.shopify.com\/proxy\/e14be94d2f4511ed73debdf0db9cf6f0b173455cc6b74c40b3dd445e9a737620\/d31qwy1wuvutay.cloudfront.net\/req\/levar-viewer.js?shop=mtlneedsweights.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=mtlneedsweights.myshopify.com","https:\/\/cdn-bundler.nice-team.net\/app\/js\/bundler.js?shop=mtlneedsweights.myshopify.com","https:\/\/searchanise-ef84.kxcdn.com\/widgets\/shopify\/init.js?a=0S2m0o4y7C\u0026shop=mtlneedsweights.myshopify.com","https:\/\/na.shgcdn3.com\/pixel-collector.js?shop=mtlneedsweights.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=mtlneedsweights.myshopify.com"];
2667    for (var i = 0; i < urls.length; i++) {
2668      var s = document.createElement('script');
2669      s.type = 'text/javascript';
2670      s.async = true;
2671      s.src = urls[i];
2672      var x = document.getElementsByTagName('script')[0];
2673      x.parentNode.insertBefore(s, x);
2674    }
2675  };
2676  if(window.attachEvent) {
2677    window.attachEvent('onload', asyncLoad);
2678  } else {
2679    window.addEventListener('load', asyncLoad, false);
2680  }
2681})();</script>
vendor: 1 bytes, line 2681
2681
2682<script id="__st">var __st={"a":40009302175,"offset":-14400,"reqid":"9541c7ca-4b5d-443e-93da-fed2973802fc-1790574888","pageurl":"montrealweights.ca\/pages\/contact-us","s":"pages-60129968287","u":"599fc6900869","p":"page","rtyp":"page","rid":60129968287};</script>
vendor: 1 bytes, line 2682
2682
2683<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 2683
2683
2684<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'])})(!1,!0)}();</script>
vendor: 1 bytes, line 2684
2684
2685<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//montrealweights.ca/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 2685
2685
2686<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 = "//montrealweights.ca/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>
2686<script crossorigin="anonymous" defer="defer" src="//montrealweights.ca/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 2686
2686
2687<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 2687
2687
2688<script>
2689  window.Shopify = window.Shopify || {};
2690  window.Shopify.MCP = window.Shopify.MCP || {};
2691  window.Shopify.MCP.enabled = true;
2692  window.Shopify.MCP.shop = "mtlneedsweights.myshopify.com";
2693  window.Shopify.MCP.mcpEndpoint = "https:\/\/montrealweights.ca\/api\/mcp";
2694  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"]}}];
2695</script>
vendor: 1 bytes, line 2695
2695
2696<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("\/\/montrealweights.ca\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})();
2697</script>
vendor: 1 bytes, line 2697
2697
2698<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://montrealweights.ca/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
2699</script>
vendor: 1 bytes, line 2699
2699
2700<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
2701  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);
2702</script>
vendor: 1 bytes, line 2702
2702
2703<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})}}));
2704</script>
2704
2705<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://montrealweights.ca/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
2706<style id="shopify-accelerated-checkout-cart">
2707        #shopify-buyer-consent {
2708  margin-top: 1em;
2709  display: inline-block;
2710  width: 100%;
2711}
2712
2713#shopify-buyer-consent.hidden {
2714  display: none;
2715}
2716
2717#shopify-subscription-policy-button {
2718  background: none;
2719  border: none;
2720  padding: 0;
2721  text-decoration: underline;
2722  font-size: inherit;
2723  cursor: pointer;
2724}
2725
2726#shopify-subscription-policy-button::before {
2727  box-shadow: none;
2728}
2729
2730      </style>
2731<script id="sections-script" data-sections="header,footer" defer="defer" src="//montrealweights.ca/cdn/shop/t/240/compiled_assets/scripts.js?v=14448429934562407041776075633"></script>
vendor: 1 bytes, line 2731
2731
2732<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
2732
2733  
2734
2735
2736
2737
2738
2739  
2739<script type="text/javascript">
2740    
2741      window.__shgMoneyFormat = window.__shgMoneyFormat || {"CAD":{"currency":"CAD","currency_symbol":"$","currency_symbol_location":"left","decimal_places":2,"decimal_separator":".","thousands_separator":","}};
2742    
2743    window.__shgCurrentCurrencyCode = window.__shgCurrentCurrencyCode || {
2744      currency: "CAD",
2745      currency_symbol: "$",
2746      decimal_separator: ".",
2747      thousands_separator: ",",
2748      decimal_places: 2,
2749      currency_symbol_location: "left"
2750    };
2751  </script>
2751
2752
2753
2754
2755      
2756      
2756<script>
2757        document.documentElement.className = document.documentElement.className.replace('no-js', 'js');
2758        
2759        if (Shopify.designMode) {
2760          document.documentElement.classList.add('shopify-design-mode');
2761        }
2762      </script>
2762
2763    
2764      
2764<script src="//montrealweights.ca/cdn/shop/t/240/assets/jquery-3.6.1.min.js?v=77015668167349694581776075633" ></script>
2764
2765      
2765<script src="//montrealweights.ca/cdn/shop/t/240/assets/slick-1.8.1.min.js?v=138696912091640149341776075633" defer="defer"></script>
2765
2766      
2766<script src="//montrealweights.ca/cdn/shop/t/240/assets/custom.js?v=23250562507674913361788821737" defer="defer"></script>
2766
2767      
2767<script src="//montrealweights.ca/cdn/shop/t/240/assets/add-on-widget.js?v=73597024559598541581776076926" defer="defer"></script>
2767
2768
2769      
2769<script src="//montrealweights.ca/cdn/shop/t/240/assets/vsh.js?v=131265975951021092751776075633" defer="defer"></script>
2769
2770
2771      
2772      
2773
2774<!--Start Gladly Script-->
2775<script>
2776  !function(c,n,r,t){if(!c[r]){var i,d,p=[];d="PROD"!==t&&t?"STAGING"===t?"https://cdn.gladly.qa/gladly/chat-sdk/widget.js":t:"https://cdn.gladly.com/chat-sdk/widget.js",c[r]={init:function(){i=arguments;var e={then:function(t){return p.push({type:"t",next:t}),e},catch:function(t){return p.push({type:"c",next:t}),e}};return e}},c.__onHelpAppHostReady__=function(t){if(delete c.__onHelpAppHostReady__,(c[r]=t).loaderCdn=d,i)for(var e=t.init.apply(t,i),n=0;n<p.length;n++){var a=p[n];e="t"===a.type?e.then(a.next):e.catch(a.next)}},function(){try{var t=n.getElementsByTagName("script")[0],e=n.createElement("script");e.async=!0,e.src=d+"?q="+(new Date).getTime(),t.parentNode.insertBefore(e,t)}catch(t){}}()}}
2777  (window,document,'Gladly','PROD')
2778</script>
2778
2779
2780
2781<script>
2782    const currentLanguage = "en";
2783    Gladly.init({
2784        appId: currentLanguage === 'fr' ? 'montrealweights.ca-fr' : 'montrealweights.ca',
2785        autoShowWidget: true
2786    });
2787/*const gladlyInitialize = setInterval(function() {
2788  if(typeof Weglot !== 'undefined' && Weglot.initialized == true) {
2789    clearInterval(gladlyInitialize);
2790    const currentLanguage = Weglot.getCurrentLang();
2791    Gladly.init({
2792      appId: currentLanguage === 'fr' ? 'montrealweights.ca-fr' : 'montrealweights.ca',
2793      autoShowWidget: true
2794    });
2795  } else {
2796    console.log('Waiting for weglot -->');
2797  }
2798}, 1500);*/
2799</script>
2799
2800<!--End Gladly Script-->
2801
2802<!-- Stamped - Begin script -->
2803
2804<!-- Stamped - End script -->
2805
2806
2807
2808<!-- klaviyo - tracking script Begin -->
2809<script type="text/javascript">
2810  var _learnq = _learnq || [];
2811
2812  function addedToCart(addedItem) {
2813    fetch(`${window.location.origin}/cart.js`).then((res) =>
2814      res
2815        .clone()
2816        .json()
2817        .then((data) => {
2818          var cart = {
2819            total_price: data.total_price / 100,
2820            $value: data.total_price / 100,
2821            total_discount: data.total_discount,
2822            original_total_price: data.original_total_price / 100,
2823            items: data.items,
2824          };
2825          if (typeof addedItem !== 'undefined' && addedItem !== null) {
2826            cart = Object.assign(cart, addedItem);
2827          }
2828          _learnq.push(['track', 'Added to Cart', cart]);
2829        })
2830    );
2831  }
2832
2833  (function (ns, fetch) {
2834    ns.fetch = function () {
2835      const response = fetch.apply(this, arguments);
2836      response.then((res) => {
2837        if (`${window.location.origin}/cart/add.js`.includes(res.url)) {
2838          res
2839            .clone()
2840            .json()
2841            .then((addedItem) => {
2842              addedToCart(addedItem);
2843            })
2844            .catch(() => {
2845              addedToCart();
2846            });
2847        }
2848      });
2849      return response;
2850    };
2851  })(window, window.fetch);
2852</script>
2852
2853<!-- klaviyo - tracking script End -->
2854
2855<script async src="https://loox.io/widget/NkZLIqnAjd/loox.1591069493340.js?shop=mtlneedsweights.myshopify.com"></script>
2855
2856
2857    <!-- BEAM START -->
2858    
2858<script type="module" async crossorigin>
2859  import { init } from "https://production-beam-widgets.beamimpact.com/web-sdk/v1.35.0/dist/integrations/beam.js"
2860  
2861  const beam = await init({
2862    apiKey: "eydc9MrcUUAK.f8682446-3553-44a0-ac13-07d0ebe3f007",
2863    chainId: 296,
2864    storeId: 465,
2865    domain: "montrealweights.ca",
2866    plugins: [],
2867  });
2868</script>
2868
2869
2870    
2870<script type="module" async crossorigin>
2871  import { addBeamAttributesToCart, getCurrentCart, trackCart } from "https://production-beam-widgets.beamimpact.com/web-sdk/v1.35.0/dist/integrations/shopify.js";
2872  import { events, getCookieValue, createScopedLocalStorage, saveRemoteSession } from "https://production-beam-widgets.beamimpact.com/web-sdk/v1.35.0/dist/integrations/utils.js";
2873  import { getConfig } from "https://production-beam-widgets.beamimpact.com/web-sdk/v1.35.0/dist/integrations/beam.js";
2874
2875  const beam = getConfig();
2876
2877  await beam.readyPromise;
2878 
2879  let lastSelectedNonprofitId = null; // used to avoid duplicate calls
2880  window.addEventListener(events.BeamNonprofitSelectEvent.eventName, async (event) => {
2881    const {selectedNonprofitId, selectionId} = event.detail;
2882    if (selectedNonprofitId !== lastSelectedNonprofitId) {
2883      await addBeamAttributesToCart({
2884        selectedNonprofitId,
2885        selectionId,
2886        cartId: await getCookieValue("cart"),
2887        storeId: beam.storeId,
2888        chainId: beam.chainId,
2889      })
2890    }
2891    lastSelectedNonprofitId = selectedNonprofitId;
2892  });
2893
2894  // Set up Rebuy event listeners; this replaces "registerCartIntegration"
2895  document.addEventListener('rebuy:cart.change', async (event) => {
2896    const currentCart = await getCurrentCart(beam);
2897    await trackCart(beam, currentCart.cart);
2898  });
2899</script>
2899
2900
2901    
2902
2903<script type="module">
2904  import {BeamSelectNonprofit} from 'https://production-beam-widgets.beamimpact.com/web-sdk/v1.35.0/dist/components/select-nonprofit.js';
2905  import { getConfig } from "https://production-beam-widgets.beamimpact.com/web-sdk/v1.35.0/dist/integrations/beam.js";
2906  
2907  (async function() {
2908
2909    let timer = 0;
2910
2911    const beamConfig = getConfig();
2912
2913    await beamConfig.readyPromise;
2914 
2915    const getCart = setInterval( async ()=>{
2916
2917      timer++;
2918      
2919      if(timer > 100){
2920        clearInterval(getCart);
2921      }
2922
2923     const cartElement = document.querySelector('#rebuy-cart');
2924     // console.debug('beam cartElement:', cartElement);
2925     if (!cartElement) return;
2926
2927     clearInterval(getCart);      
2928
2929     function renderWidget() {
2930
2931        let widget = document.querySelector("beam-select-nonprofit");
2932        let parent = document.getElementById("beamContainer"); 
2933        if(!parent){
2934          parent = document.createElement('div');
2935          parent.id="beamContainer";
2936          parent.style.margin="20px 15px 20px 20px";
2937
2938          console.debug('window.innerWidth', window.innerWidth);
2939          if("en" == "en" && window.innerWidth > 600){
2940            parent.style.width="92.8%";
2941          }
2942          widget = document.createElement('beam-select-nonprofit');
2943          const options = {
2944           apiKey: beamConfig.apiKey,
2945           storeId: beamConfig.storeId,
2946           chainId: beamConfig.chainId,
2947           baseUrl: beamConfig.baseUrl,
2948          }
2949          parent.appendChild(widget);
2950          widget.setAttribute("lang", "en");
2951          Object.assign(widget, options);
2952         }
2953        
2954        if (widget?.childElementCount === 0) {
2955          const widgetPredecessorInCart = document.querySelector('.rebuy-cart__flyout-recommendations');
2956          widgetPredecessorInCart.parentNode.insertBefore( parent,widgetPredecessorInCart );         
2957        }
2958         
2959    }
2960
2961    const cartChangeObserver = new MutationObserver((mutationsList, observer) => {
2962      const isCartFull = cartElement.querySelector('.rebuy-cart__flyout-items')?.childElementCount > 0;
2963      const isBeamWidgetInCart = cartElement.querySelector('#beamContainer beam-select-nonprofit') !== null
2964      if (isCartFull && !isBeamWidgetInCart) {
2965          renderWidget();
2966      } 
2967      else if(!isCartFull && isBeamWidgetInCart){
2968       const parent = document.querySelector('#beamContainer');
2969       parent.remove();
2970      }
2971    });
2972
2973     cartChangeObserver.observe(cartElement, {attributes: true, childList: true, subtree: true});
2974    
2975    }, 1000);
2976    
2977   
2978 })();
2979  
2980      
2981</script>
2981
2982
2983
2984
2985    <!-- BEAM END -->
2986
2987    
2987<script>
2988      /*ConvertCart.com-10740768*/ (function (c, o, n, v, e, r, t, s) {
2989        if (/ccScript=skip/.test(c.location.search)) return;
2990        (s = c.fetch ? 'f' : ''),
2991          (c.ccartObj = e),
2992          (c[e] =
2993            c[e] ||
2994            function () {
2995              (c[e].q = c[e].q || []).push(arguments);
2996            }),
2997          (c[e].t = Date.now()),
2998          (r = o.createElement(n));
2999        r.async = 1;
3000        r.src = v + s + '.js';
3001        t = o.getElementsByTagName(n)[0];
3002        t.parentNode.insertBefore(r, t);
3003      })(window, document, 'script', '//cdn.convertcart.com/10740768', 'ccart');
3004    </script>
3004
3005
3006    
3007
3008    <!-- Start of montrealweightshelp Zendesk Widget script -->
3009    
3009<script
3010      id="ze-snippet"
3011      src="https://static.zdassets.com/ekr/snippet.js?key=2a093de8-b33b-4735-a163-7c7d923c3a14"
3012    ></script>
3012
3013
3014    
3014<script>
3015      // Function to set the Zendesk widget language
3016      function setZendeskWidgetLanguage(language) {
3017        if (window.zE) {
3018          zE('webWidget', 'setLocale', language);
3019        } else {
3020          // If the zE object is not available, retry after a short delay
3021          setTimeout(function () {
3022            setZendeskWidgetLanguage(language);
3023          }, 100);
3024        }
3025      }
3026
3027      // Function to detect language change (customize based on your site's implementation)
3028      function detectLanguageChange() {
3029        // Example: assume you store the language in a variable or data attribute
3030        var currentLanguage = document.documentElement.lang; // or any other way you determine the language
3031
3032        // Call the function to set the language for the Zendesk widget
3033        setZendeskWidgetLanguage(currentLanguage);
3034      }
3035
3036      // Trigger the detectLanguageChange function when the page loads
3037      window.addEventListener('load', function () {
3038        detectLanguageChange();
3039      });
3040
3041      // Example: detect language change event (customize based on your site's implementation)
3042      // Assuming you have a function or event that triggers on language change
3043      document.getElementById('language-switcher').addEventListener('change', function () {
3044        detectLanguageChange();
3045      });
3046    </script>
3046
3047    <!-- End of montrealweightshelp Zendesk Widget script -->
3048
3049    <!-- langify-v2-scripts-begin -->
3050    
3051    
3052    
3053    
3054    
3055    
3056
3057
3058<script>
3059  var langify = langify || {};
3060
3061
3062  /**
3063  * 
3064  * 
3065  * @class LyHelper
3066  */
3067  class LyHelper {
3068    constructor() {
3069      return {
3070        ajax: function(params) { return LyHelper.ajax(params); },
3071        isIE: function() { return LyHelper.isIE(); },
3072        extractImageObject: function(val) { return LyHelper.extractImageObject(val); },
3073        getCurrentLanguage: function() { return LyHelper.getCurrentLanguage(); },
3074        getCookie: function(name) { return LyHelper.getCookie(name); },
3075        setCookie: function(name, value, days) { return LyHelper.setCookie(name, value, days); },
3076        getVersion: function() { return LyHelper.getVersion(); },
3077        isOutOfViewport: function(elem) { return LyHelper.isOutOfViewport(elem); },
3078        isDomainFeatureEnabled: function() { return LyHelper.isDomainFeatureEnabled(); },
3079        getVal: function(str) { return LyHelper.getVal(str); },
3080        inIframe: function() { return LyHelper.inIframe(); },
3081        shopifyAPI: function() { return LyHelper.shopifyAPI(); },
3082        loadScript: function(url, callback) { return LyHelper.loadScript(url, callback); },
3083        localizationRedirect: function(type, code, additionalFields, additionalParams, domain) { return LyHelper.localizationRedirect(type, code, additionalFields, additionalParams, domain); },
3084        changeCurrency: function(code) { return LyHelper.changeCurrency(code); },
3085        log: function(title, data, type) { return LyHelper.log(title, data, type); },
3086      }
3087    }
3088    static ajax(params) {
3089      var data = params.data;
3090      fetch(params.url, {
3091        method: params.method,
3092        headers: {
3093          'Content-Type': 'application/json',
3094        },
3095        body: (data && params.method === 'POST') ? JSON.stringify(data) : null,
3096      })
3097      .then(response => response.json())
3098      .then(data => {
3099        params.success(data);
3100      })
3101      .catch((error) => {
3102        console.error('Error:', error);
3103      });
3104    }
3105    static isIE() {
3106      var ua = navigator.userAgent;
3107      var is_ie = ua.indexOf("MSIE ") > -1 || ua.indexOf("Trident/") > -1;
3108      return is_ie;
3109    }
3110    static extractImageObject(val) {
3111      if(!val || val == '') return false;
3112      var val = val;
3113
3114      // Handle src-sets
3115      if(val.search(/([0-9]+w?h?x?,)/gi) > -1) {
3116        val = val.split(/([0-9]+w?h?x?,)/gi)[0];
3117      }
3118
3119      var hostBegin = val.indexOf('//') ? val.indexOf('//') : 0;
3120      var hostEnd = val.lastIndexOf('/') + 1;
3121      var host = val.substring(hostBegin, hostEnd);      
3122      var afterHost = val.substring(hostEnd, val.length);
3123
3124      var url = val;
3125      var file = ''; 
3126      var name = ''; 
3127      var type = '';
3128      afterHost = afterHost.substring(0, (afterHost.indexOf("#") == -1) ? afterHost.length : afterHost.indexOf("#"));
3129      afterHost = afterHost.substring(0, (afterHost.indexOf("?") == -1) ? afterHost.length : afterHost.indexOf("?"));
3130      name = afterHost.replace(/(_[0-9]+x[0-9]*|_{width}x|_{size})?(_crop_(top|center|bottom|left|right))?(@[0-9]*x)?(\.progressive)?\.(png\.jpg|jpe?g|png|gif|webp)/gi, "");
3131
3132      if(afterHost.search(/(\.png\.jpg|\.jpg\.jpg)/gi) > -1) {
3133        type = afterHost.substring(afterHost.search(/(\.png\.jpg|\.jpg\.jpg)/gi)+1, afterHost.length);
3134      } else {
3135        type = afterHost.substring(afterHost.lastIndexOf('.')+1, afterHost.length);
3136      }
3137      
3138      file = afterHost.replace(/(_[0-9]+x[0-9]*|_{width}x|_{size})?(_crop_(top|center|bottom|left|right))?(@[0-9]*x)?(\.progressive)?\.(png\.jpg|jpe?g|png|gif|webp)/gi, '.'+type);
3139
3140      return {
3141        host: host,
3142        name: name,
3143        type: type,
3144        file: file
3145      }
3146    }
3147    static getCurrentLanguage() {
3148      return window.langify.locale.iso_code;
3149    }
3150    static setLanguage(code) {
3151      
3152    }
3153    static getCookie(name) {
3154      var v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
3155      if(v) return v[2];
3156      else return null;
3157    }
3158    static setCookie(name, value, days) {
3159      var d = new Date;
3160      d.setTime(d.getTime() + 24*60*60*1000*days);
3161      document.cookie = name + "=" + value + ";path=/;expires=" + d.toGMTString();
3162    }
3163    static getVersion() {
3164      return 2;
3165    }
3166    static isOutOfViewport (elem) {
3167      var bounding = elem.getBoundingClientRect();
3168      var out = {};
3169      out.top = bounding.top < 0;
3170      out.left = bounding.left < 0;
3171      out.bottom = Math.ceil(bounding.bottom) >= (window.innerHeight || document.documentElement.clientHeight);
3172      out.right = bounding.right > (window.innerWidth || document.documentElement.clientWidth);
3173      out.any = out.top || out.left || out.bottom || out.right;
3174      out.inViewport = bounding.x > 0 && bounding.y > 0;
3175      return out;
3176    }
3177    static isDomainFeatureEnabled() {
3178      return window.langify.locale.domain_feature_enabled;
3179    }
3180    static getVal(str) {
3181      var v = window.location.search.match(new RegExp('(?:[?&]'+str+'=)([^&]+)'));
3182      return v ? v[1] : null;
3183    }
3184    static inIframe() {
3185      try {
3186        return window.self !== window.top;
3187      } catch (e) {
3188        return true;
3189      }
3190    }
3191    static shopifyAPI() {
3192      var root_url = window.langify.locale.root_url != '/' ? window.langify.locale.root_url : '';
3193
3194      return {
3195        attributeToString: function(attribute) {
3196          if((typeof attribute) !== 'string') {
3197            attribute += '';
3198            if(attribute === 'undefined') {attribute = '';}
3199          }
3200          return attribute.trim();
3201        },
3202        getCart: function(callback) {
3203          LyHelper.ajax({
3204            method: 'GET',
3205            url: root_url+'/cart.js',
3206            success: function (cart, textStatus) {
3207              if((typeof callback) === 'function') {
3208                callback(cart);
3209              }
3210            }
3211          });
3212        },
3213        updateCartNote: function(note, callback) {
3214          var params = {
3215            method: 'POST',
3216            url: root_url+'/cart/update.js',
3217            data: 'note=' + this.attributeToString(note),
3218            dataType: 'json',
3219            success: function(cart) {if((typeof callback) === 'function') {callback(cart);}},
3220            error: this.onError
3221          };
3222          LyHelper.ajax(params);
3223        },
3224        updateCartAttributes: function(attributes, callback) {
3225          var params = {
3226            method: 'POST',
3227            url: root_url+'/cart/update.js',
3228            data: {"attributes": attributes},
3229            dataType: 'json',
3230            success: function(cart) {
3231              if((typeof callback) === 'function') {
3232                callback(cart);
3233              }
3234            },
3235            error: this.onError
3236          };
3237          LyHelper.ajax(params);
3238        },
3239        onError: function(XMLHttpRequest, textStatus) {
3240
3241        }      
3242      }
3243    }
3244    static loadScript(url, callback) {
3245      var script = document.createElement('script');
3246      script.type = 'text/javascript';
3247      if(script.readyState) {
3248        script.onreadystatechange = function () {
3249          if(script.readyState == 'loaded' || script.readyState == 'complete') {
3250            script.onreadystatechange = null;
3251            callback();
3252          }
3253        };
3254      } else {
3255        script.onload = function () {
3256          callback();
3257        };
3258      }
3259      script.src = url;
3260      document.getElementsByTagName('head')[0].appendChild(script);
3261    }
3262    static localizationRedirect(type, code, additionalFields, additionalParams, domain) {
3263      if(domain) {
3264        var newDomain = domain;
3265        if(domain.indexOf('redirected=true') === -1 && type === 'language_code') {
3266          if(domain.indexOf('?') >= 0) {
3267            newDomain += '&redirected=true';
3268          } else {
3269            newDomain += '?redirected=true';
3270          }
3271        }
3272        window.location.href = newDomain;
3273        return true;
3274      }
3275
3276      if(type !== 'country_code' && type !== 'language_code') { 
3277        return false; 
3278      }
3279      if(!additionalParams) {
3280        var additionalParams = '';
3281      }
3282      var params = [
3283        {
3284          name: type,
3285          value: code
3286        },
3287        {
3288          name: 'return_to',
3289          value: window.location.pathname + window.location.search + additionalParams + window.location.hash
3290        },
3291        {
3292          name: 'form_type',
3293          value: 'localization'
3294        },
3295        {
3296          name: '_method',
3297          value: 'put'
3298        }
3299      ];
3300      if(additionalFields) {
3301        for(var i=0; i<additionalFields.length; i++) {
3302          params.push(additionalFields[i]);
3303        }
3304      }
3305      const form = document.createElement('form');
3306      form.method = 'POST';
3307      form.action = '/localization';
3308      params.forEach(function(param) {
3309        const field = document.createElement('input');
3310        field.type = 'hidden';
3311        field.name = param['name'];
3312        field.value = param['value'];
3313        form.appendChild(field);
3314      });
3315      document.body.appendChild(form);
3316      form.submit();
3317    }
3318    static changeCurrency(code) {
3319      let returnToUrl = window.location.pathname + window.location.search;
3320      if(window.location.search.indexOf('?') >= 0) {
3321        returnToUrl += '&currency_code=';
3322      } else {
3323        returnToUrl += '?currency_code=';
3324      }
3325      returnToUrl += code;
3326      returnToUrl += window.location.hash;
3327
3328      const params = [
3329        {
3330          name: 'currency_code',
3331          value: code
3332        },
3333        {
3334          name: 'return_to',
3335          value: returnToUrl
3336        },
3337        {
3338          name: 'form_type',
3339          value: 'localization'
3340        },
3341        {
3342          name: '_method',
3343          value: 'put'
3344        }
3345      ];
3346      const form = document.createElement('form');
3347      form.method = 'POST';
3348      form.action = '/localization';
3349      params.forEach(function(param) {
3350        const field = document.createElement('input');
3351        field.type = 'hidden';
3352        field.name = param['name'];
3353        field.value = param['value'];
3354        form.appendChild(field);
3355      });
3356      document.body.appendChild(form);
3357      form.submit();
3358    }
3359    static log(title, data, type) {
3360      if(langify.settings.debug) {
3361        if(!data) {
3362          var data = '';
3363        }
3364        
3365        var css = 'color: green; font-weight: bold;';
3366        if(type === 'error') {
3367          css = 'color: red; font-weight: bold;';
3368        }
3369
3370        console.log(`%c ${title}: \n`, css, data);
3371      }
3372    }
3373  };
3374
3375
3376  /**
3377  *
3378  *
3379  * @class TranslationObserver
3380  */
3381  class TranslationObserver {
3382    constructor() {
3383      LyHelper.log('TranslationObserver instantiation')
3384    }
3385
3386    init() {
3387      if(langify.settings.observe && !LyHelper.isIE()) {
3388        var langifyObserver = this.langifyObserverCore();
3389        langifyObserver.init();
3390        
3391        // HOTFIX: translation observer sometimes refuses to trigger on page load_
3392        langifyObserver.triggerCustomContents();
3393
3394        langify.api = {
3395          observer: {
3396            start: langifyObserver.init,
3397            stop: langifyObserver.stopObserver,
3398            trigger: langifyObserver.triggerCustomContents,
3399            translateLink: langifyObserver.translateLink,
3400            translateTextNode: langifyObserver.translateTextNode,
3401            translateNodeAttrs: langifyObserver.translateNodeAttrs,
3402            translateImage: langifyObserver.translateImage,
3403            translateCssImage: langifyObserver.translateCssImage
3404          }
3405        };
3406      }
3407
3408      return this;
3409    }
3410
3411    langifyObserverCore() {
3412      var observedNodes = [];
3413      var intersectionObs = null;
3414      var mutationCount = 0;
3415      var mutationObs = null;
3416      var mutationObsConfig = {
3417        characterData: true,
3418        characterDataOldValue: true,
3419        attributes: true,
3420        attributeOldValue: true,
3421        childList: true,
3422        subtree: true,
3423      };
3424      var customContents_html = {};
3425      var customContents_text = {};
3426      var customContents_attr = {};
3427    
3428      function init() {
3429        if(langify.settings.observe) {
3430          spreadCustomContents();
3431          if (window.MutationObserver) {
3432            if (langify.settings.lazyload && window.IntersectionObserver) {
3433              startIntersectionObserver();
3434            } else {
3435              startMutationObserver(null);
3436            }
3437          } else {
3438            startMutationEvents();
3439          }
3440        }
3441      }
3442    
3443    
3444      // Intersection Observer
3445      function startIntersectionObserver() {
3446        intersectionObs = new IntersectionObserver(callbackIntersectionChange);
3447        var elementNodes = document.getElementsByClassName('shopify-section');
3448        Array.prototype.slice.call(elementNodes).forEach(function(node) {
3449          intersectionObs.observe(node);
3450        });
3451      }
3452    
3453      function callbackIntersectionChange(intersections) {
3454        intersections.forEach(function(intersection) {
3455          var target = intersection.target;
3456          var targetIsIntersecting = Boolean(target.getAttribute('ly-is-intersecting') === "true" ? true : false);
3457    
3458          if(typeof targetIsIntersecting == 'undefined' || targetIsIntersecting == null) {
3459            target.setAttribute('ly-is-intersecting', intersection.isIntersecting);
3460            targetIsIntersecting = intersection.isIntersecting;
3461          }
3462          
3463          // On Screen
3464          if(targetIsIntersecting == false && intersection.isIntersecting == true) {
3465            if(!target.getAttribute('ly-is-observing')) {
3466              startMutationObserver(target);
3467              intersectionObs.unobserve(target);
3468    
3469              // As the mutation observer didn't see the "add" of the elememts, trigger the initial translation manually
3470              var elementNodes = getNodesUnder(target, 'SHOW_ELEMENT');
3471              var textNodes = getNodesUnder(target, 'SHOW_TEXT');
3472              var nodes = elementNodes.concat(textNodes);
3473              nodes.forEach(function(node) {
3474                translate(node, 'mutation -> childList');
3475              });
3476            }
3477          } 
3478          // Off Screen
3479          //else if(targetIsIntersecting == true && intersection.isIntersecting == false) {
3480          //  stopMutationObserver(target);
3481          //}
3482          target.setAttribute('ly-is-intersecting', intersection.isIntersecting);
3483        });
3484      }
3485    
3486    
3487      // Mutation Observer
3488      function startMutationObserver(observerTarget) {
3489        if (!observerTarget) {
3490          var target = document.documentElement || document.body; // main window
3491        } else {
3492          if (observerTarget.nodeName  === 'IFRAME') {
3493            try { var target = observerTarget.contentDocument || observerTarget.contentWindow.document; }
3494            catch { return false; }
3495          } else {
3496            var target = observerTarget;
3497          }
3498        }
3499        mutationObs = new MutationObserver(callbackDomChange);
3500        mutationObs.observe(target, mutationObsConfig);
3501        observedNodes.push(target);
3502        try { target.setAttribute('ly-is-observing', 'true'); } catch(e) {}
3503      }
3504    
3505      function stopMutationObserver(target) {
3506        if(observedNodes.indexOf(target) > -1) {
3507          observedNodes.splice(observedNodes.indexOf(target), 1);
3508        }
3509        var mutations = mutationObs.takeRecords();
3510        mutationObs.disconnect();
3511        observedNodes.forEach(node => {
3512          mutationObs.observe(node, mutationObsConfig);
3513        });
3514        try { target.removeAttribute('ly-is-observing'); } catch(e) {}
3515      }
3516    
3517    
3518      function callbackDomChange(mutations, mutationObs) {
3519        for (var i = 0, length = mutations.length; i < length; i++) {
3520          var mutation = mutations[i];
3521          var target = mutation.target;
3522    
3523          // Links-Hook
3524          if (mutation.type === 'attributes' && (mutation.attributeName === 'href' || mutation.attributeName === 'action')) {
3525            var target = mutation.target;
3526            translateLink(target.getAttribute(mutation.attributeName), target);
3527          }
3528          // Images-Hook
3529          else if (mutation.type === 'attributes' && (mutation.attributeName === 'src' || mutation.attributeName === 'data-src' || mutation.attributeName === 'srcset' || mutation.attributeName === 'data-srcset')) {
3530            translateImage(target, mutation.attributeName);
3531          }
3532          else if (mutation.type === 'attributes' && mutation.attributeName === 'style') {
3533            translateCssImage(target);
3534          }
3535          // Subtree Events
3536          else if (mutation.type === 'childList') {
3537            // Added Nodes
3538            if(mutation.addedNodes.length > 0) {
3539              var elementNodes = getNodesUnder(mutation.target, 'SHOW_ELEMENT');
3540              var textNodes = getNodesUnder(mutation.target, 'SHOW_TEXT');
3541              var nodes = elementNodes.concat(textNodes);
3542              nodes.forEach(function(node) {
3543                translate(node, 'mutation -> childList');
3544              });
3545            }
3546          }
3547          // CharacterData Events
3548          else if (mutation.type === 'characterData') {
3549            var target = mutation.target;
3550            translate(target, 'mutation -> characterData');
3551          }
3552        }
3553      }
3554    
3555    
3556      function translate(node, info) {
3557        if((node.nodeType === 1 && node.hasAttribute('data-ly-locked')) || (node.nodeType === 3 && node.parentNode && node.parentNode.hasAttribute('data-ly-locked'))) {
3558          return;
3559        }
3560        // CC-Hook
3561        if (node.nodeName  !== 'SCRIPT' && node.nodeName  !== 'STYLE') {
3562          if (node.nodeType === 3) {
3563            translateTextNode(node, info);
3564          }
3565          var attributes = ['placeholder','title']
3566          attributes.forEach(attribute => translateNodeAttrs(node,attribute));
3567        }
3568        // Links-Hook
3569        if (node.nodeName  === 'A' || node.nodeName  === 'FORM' || node.nodeName  === 'IMG') {
3570          if(node.hasAttribute('href')) {var attrName = 'href';}
3571          else if(node.hasAttribute('data-href')) {var attrName = 'data-href';}
3572          else {var attrName = 'action';}
3573          var url = node.getAttribute(attrName);
3574          translateLink(url, node);
3575        }
3576        // Images-Hook
3577        if (node.nodeName  === 'IMG' || node.nodeName  === 'SOURCE') {
3578          translateImage(node, ['src', 'data-src', 'srcset', 'data-srcset']);
3579        }
3580        if (node.attributes && node.getAttribute('style')) {
3581          translateCssImage(node);
3582        }
3583        // Iframe Observation
3584        if (node.nodeName  === 'IFRAME') {
3585          // Todo: handle srcdoc iframe content observing
3586          if (node.getAttribute('ly-is-observing') == null && node.getAttribute('src') == null && !node.hasAttribute('srcdoc')) {
3587            node.setAttribute('ly-is-observing', 'true');
3588            startMutationObserver(node);
3589          }
3590        }
3591      }
3592    
3593      function translateNodeAttrs(node,attribute) {
3594        if (node.attributes && node.getAttribute(attribute)) {
3595          var src = node.getAttribute(attribute).trim().replace(/(\r\n|\n|\r)/gim,"").replace(/\s+/g," ").toLowerCase();
3596          if(customContents_text[src] && node.getAttribute(attribute) !== customContents_text[src]) {
3597            node.setAttribute(attribute, customContents_text[src]);
3598          }
3599        }
3600      }
3601    
3602    
3603      function translateTextNode(node, info) {
3604        if(langify.settings.observeCustomContents === false || !node.textContent || node.textContent.trim().length === 0) {
3605          return;
3606        }
3607        var oldSrc = node.textContent.trim().replace(/(\r\n|\n|\r)/gim,"").replace(/\s+/g," ").toLowerCase();
3608        var src = node.textContent.trim().replace(/(\r\n|\n|\r)/gim," ").replace(/\s+/g," ").toLowerCase();
3609        if(customContents_text[oldSrc]) {
3610          src = oldSrc;
3611        }
3612        if(customContents_text[src] && node.textContent !== customContents_text[src]) {
3613          var newContent = node.textContent.replace(node.textContent.trim(), customContents_text[src]);
3614          if (newContent != node.textContent) {
3615            if(!node.parentNode.hasAttribute('data-ly-mutation-count') || parseInt(node.parentNode.getAttribute('data-ly-mutation-count')) < langify.settings.maxMutations) {
3616              var count = node.parentNode.hasAttribute('data-ly-mutation-count') ? parseInt(node.parentNode.getAttribute('data-ly-mutation-count')) : 0;
3617              node.parentNode.setAttribute('data-ly-mutation-count', count+1);
3618              node.textContent = newContent;
3619    
3620              mutationCount = mutationCount + 1;
3621              LyHelper.log('REPLACED (TEXT)', {
3622                  oldValue: src,
3623                  newValue: customContents_text[src],
3624                  mutationCount,
3625                }, 'success'
3626              );
3627            
3628              var event = new CustomEvent('langify.observer.aftertranslatetext', { 
3629                bubbles: true,
3630                detail: {
3631                  target: node,
3632                  original: src,
3633                  translation: customContents_text[src]
3634                }
3635              });
3636              node.dispatchEvent(event);
3637            }
3638          }
3639        }
3640      }
3641    
3642      function translateLink(url, node, force) {
3643        if(langify.settings.observeLinks === false || isLocalizationForm(node) || node.hasAttribute('data-ly-locked') || !url || (url.indexOf('mailto:') !== -1 || url.indexOf('javascript:') !== -1 || url.indexOf('tel:') !== -1 || url.indexOf('file:') !== -1 || url.indexOf('ftp:') !== -1 || url.indexOf('sms:') !== -1 || url.indexOf('market:') !== -1 || url.indexOf('fax:') !== -1 || url.indexOf('callto:') !== -1 || url.indexOf('ts3server:') !== -1)) {
3644          return;
3645        }
3646        var isLocalized = (
3647          url.indexOf('/'+ langify.locale.iso_code +'/') === 0 || url === '/'+ langify.locale.iso_code || 
3648          url.indexOf('/'+ langify.locale.iso_code.toLowerCase() +'/') === 0 || url === '/'+ langify.locale.iso_code.toLowerCase() ||          
3649          url.indexOf('/'+ langify.locale.iso_code.toLowerCase().substring(0,2) +'/') === 0 || url === '/'+ langify.locale.iso_code.toLowerCase().substring(0,2) ||
3650          url.indexOf(langify.locale.root_url + '/') === 0 || url === langify.locale.root_url || 
3651          url.indexOf(langify.locale.shop_url + langify.locale.root_url) === 0 || url === langify.locale.shop_url + langify.locale.root_url
3652        );
3653        var cleanUrl = url.replace(langify.locale.shop_url, '');
3654        var re = new RegExp(`\/\\b${langify.locale.iso_code.replace('-', '\-')}\\b\/`, 'gi');
3655        var link = cleanUrl.replace(re, '/');
3656        var isUrlAbsolute = (link.indexOf('://') > 0 || link.indexOf('//') === 0);
3657        var blacklist = ['#', '/'+ langify.locale.iso_code +'#'].concat(langify.settings.linksBlacklist);
3658        var isUrlBlacklisted = blacklist.find(x => url.indexOf(x) === 0);
3659        if (!isUrlAbsolute && !isUrlBlacklisted && link.indexOf('/') != 0) {link = '/' + link;}
3660        if(!isLocalized && !isUrlAbsolute && !isUrlBlacklisted && langify.locale.root_url != '/' || force) {
3661          if(node.hasAttribute('href')) {var attrName = 'href';}
3662          else if(node.hasAttribute('data-href')) {var attrName = 'data-href';}
3663          else {var attrName = 'action';}
3664          if(link === '/' || link == langify.locale.root_url) link = '';
3665          var newLink = langify.locale.root_url + link;
3666          var timeStamp = Math.floor(Date.now());
3667          if(!node.hasAttribute('data-ly-processed') || timeStamp > parseInt(node.getAttribute('data-ly-processed')) + langify.settings.timeout) {
3668            node.setAttribute('data-ly-processed', timeStamp);
3669            node.setAttribute(attrName, newLink);
3670            if(node.hasAttribute('data-'+attrName)) node.setAttribute('data-'+attrName, newLink);
3671    
3672            mutationCount = mutationCount + 1;
3673            LyHelper.log('REPLACED (LINK)', {
3674                attrName,
3675                oldValue: url,
3676                newValue: newLink,
3677                mutationCount,
3678              }, 'success'
3679            );
3680            
3681            var event = new CustomEvent('langify.observer.aftertranslatelink', { 
3682              bubbles: true,
3683              detail: {
3684                target: node,
3685                attribute: attrName,
3686                original: url,
3687                translation: newLink
3688              }
3689            });
3690            node.dispatchEvent(event);
3691          }
3692        }
3693      }
3694    
3695      function translateImage(node, attr) {
3696        if(langify.settings.observeImages === false || node.hasAttribute('data-ly-locked') || Object.keys(customContents_image).length === 0) {
3697          return
3698        }
3699        var attrs = [];
3700        if(typeof attr === 'string') attrs.push(attr);
3701        else if(typeof attr === 'object') attrs = attr;
3702        var timeStamp = Math.floor(Date.now());
3703        if(!node.hasAttribute('data-ly-processed') || timeStamp > parseInt(node.getAttribute('data-ly-processed')) + langify.settings.timeout) {
3704          node.setAttribute('data-ly-processed', timeStamp);
3705          attrs.forEach(function(attr) {
3706            if(node.hasAttribute(attr)) {
3707              var imgObject = LyHelper.extractImageObject(node.getAttribute(attr));
3708              var imgKey = imgObject ? imgObject.file.toLowerCase() : '';
3709    
3710              if(customContents_image[imgKey]) {
3711    
3712                // Replace
3713                var oldValue = node.getAttribute(attr);
3714                var translation = node.getAttribute(attr);
3715                translation = translation.replace(new RegExp(imgObject.host, 'g'), customContents_image[imgKey].host);
3716                translation = translation.replace(new RegExp(imgObject.name, 'g'), customContents_image[imgKey].name);
3717                translation = translation.replace(new RegExp(imgObject.type, 'g'), customContents_image[imgKey].type);
3718    
3719                // China Hook
3720                if(node.getAttribute(attr).indexOf('cdn.shopifycdn.net') >= 0) {
3721                  translation = translation.replace(new RegExp('cdn.shopify.com', 'g'), 'cdn.shopifycdn.net'); 
3722                }
3723    
3724                if(node.getAttribute(attr) != translation) {
3725                  node.setAttribute(attr, translation);
3726    
3727                  mutationCount = mutationCount + 1;
3728                  LyHelper.log('REPLACED (IMAGE)', {
3729                    attrName: attr,
3730                    oldValue: oldValue,
3731                    newValue: translation,
3732                    mutationCount,
3733                  }, 'success');
3734            
3735                  var event = new CustomEvent('langify.observer.aftertranslateimage', { 
3736                    bubbles: true,
3737                    detail: {
3738                      target: node,
3739                      attribute: attr,
3740                      original: oldValue,
3741                      translation: translation
3742                    }
3743                  });
3744                  node.dispatchEvent(event);
3745                }
3746              }
3747            }
3748          });
3749        }
3750      }
3751    
3752      function translateCssImage(node) {
3753        if(langify.settings.observeImages === false || node.hasAttribute('data-ly-locked') || Object.keys(customContents_image).length === 0 || !node.getAttribute('style')) {
3754          return
3755        }
3756    
3757        var imgMatches = node.getAttribute('style').match(/url\(("|')?(.*)("|')?\)/gi);
3758        if(imgMatches !== null) {
3759          var imgSource = imgMatches[0].replace(/url\(("|')?|("|')?\)/, '');
3760          var imgObject = LyHelper.extractImageObject(imgSource);
3761          var imgKey = imgObject ? imgObject.file.toLowerCase() : '';
3762          var attr = 'style';
3763    
3764          if(customContents_image[imgKey]) {
3765    
3766            // Replace
3767            var translation = node.getAttribute(attr);
3768            translation = translation.replace(new RegExp(imgObject.host, 'g'), customContents_image[imgKey].host);
3769            translation = translation.replace(new RegExp(imgObject.name, 'g'), customContents_image[imgKey].name);
3770            translation = translation.replace(new RegExp(imgObject.type, 'g'), customContents_image[imgKey].type);
3771    
3772            // China Hook
3773            if(node.getAttribute(attr).indexOf('cdn.shopifycdn.net') >= 0) {
3774              translation = translation.replace(new RegExp('cdn.shopify.com', 'g'), 'cdn.shopifycdn.net'); 
3775            }
3776    
3777            if(node.getAttribute(attr) != translation) {
3778              var timeStamp = Math.floor(Date.now());
3779              if(!node.hasAttribute('data-ly-processed') || timeStamp > parseInt(node.getAttribute('data-ly-processed')) + langify.settings.timeout) {
3780                node.setAttribute('data-ly-processed', timeStamp);
3781                node.setAttribute(attr, translation);
3782                mutationCount = mutationCount + 1;
3783              }
3784            }
3785          }          
3786        }
3787      }
3788    
3789      function findAndLocalizeLinks(target, parent) {
3790        if(target.parentNode && parent) var allLinks = target.parentElement.querySelectorAll('[href],[action]');
3791        else var allLinks = target.querySelectorAll('[href],[action]');
3792        allLinks.forEach(link => {
3793          if(link.hasAttribute('href')) var attrName = 'href'; else var attrName = 'action';
3794          var url = link.getAttribute(attrName);
3795          translateLink(url, link);
3796        });
3797      }
3798      
3799      function isLocalizationForm(node) {
3800        if(node.querySelector('input[name="form_type"][value="localization"]')){
3801          return true;
3802        }
3803        return false;
3804      }
3805    
3806      function getNodesUnder(el, show){
3807        var n, a=[], walk=document.createTreeWalker(el, NodeFilter[show] , null, false);
3808        while(n=walk.nextNode()) a.push(n);
3809        return a;
3810      }
3811    
3812      function spreadCustomContents() {
3813        var getFileName = function(url) {
3814          if(!url || url == '') return;
3815          url = url.substring(0, (url.indexOf("#") == -1) ? url.length : url.indexOf("#"));
3816          url = url.substring(0, (url.indexOf("?") == -1) ? url.length : url.indexOf("?"));
3817          url = url.substring(url.lastIndexOf("/") + 1, url.length);
3818          url = url.replace(/(_[0-9]+x[0-9]*|_{width}x)?(_crop_(top|center|bottom|left|right))?(@[0-9]*x)?(\.progressive)?\.(jpe?g|png|gif|webp)/gi, "");
3819          return '/' + url;
3820        }
3821        Object.entries(customContents).forEach(function(entry) {
3822          //if(/<\/?[a-z][\s\S]*>/i.test(entry[0])) customContents_html[entry[0]] = entry[1];
3823          //else if(/(http(s?):)?([/|.|\w|\s|-])*\.(?:jpe?g|gif|png)/.test(entry[0])) customContents_image[getFileName(entry[0])] = getFileName(entry[1]);
3824          if(/(http(s?):)?([/|.|\w|\s|-])*\.(?:jpe?g|gif|png|webp)/.test(entry[0])) customContents_image[LyHelper.extractImageObject(entry[0]).file] = LyHelper.extractImageObject(entry[1]);
3825          else customContents_text[entry[0]] = entry[1];
3826        });
3827        LyHelper.log('CUSTOM CONTENTS:', {customContents, customContents_text, customContents_image}, 'info')
3828      }
3829    
3830      // Polyfill for old browsers
3831      function startMutationEvents() {
3832        var target = document.querySelector('body');
3833        target.addEventListener("DOMAttrModified", function (event) {
3834          if(event.attrName === 'href' || event.attrName === 'action') {
3835            if(event.prevValue != event.newValue) {
3836              translateLink(event.newValue, event.target);
3837            }
3838          }
3839        }, false);
3840        target.addEventListener("DOMSubtreeModified", function (event) {
3841          //findAndLocalizeLinks(event.target, false);
3842          //matchCustomContent(event.target);
3843        }, false);
3844      }
3845    
3846      function triggerCustomContents() {
3847        var rootnode = document.getElementsByTagName('body')[0]
3848        var walker = document.createTreeWalker(rootnode, NodeFilter.SHOW_ALL, null, false)
3849        
3850        while (walker.nextNode()) {
3851          //LyHelper.log(walker.currentNode.tagName)
3852          translate(walker.currentNode, null);
3853        }
3854      }
3855    
3856      function stopObserver() {
3857        mutationObs.takeRecords();
3858        mutationObs.disconnect();
3859      }
3860    
3861      //init();
3862      return {
3863        init: init,
3864        triggerCustomContents: triggerCustomContents,
3865        stopObserver: stopObserver,
3866        translateLink: translateLink,
3867        translateTextNode: translateTextNode,
3868        translateNodeAttrs: translateNodeAttrs,
3869        translateImage: translateImage,
3870        translateCssImage: translateCssImage
3871      }
3872    };
3873  }
3874
3875
3876  /**
3877  *
3878  * 
3879  * @class Switcher
3880  */
3881  class Switcher {
3882    constructor(switcherSettings) {
3883      LyHelper.log('Switcher instantiation');
3884
3885      this.lyForceOff = location.search.split('ly-force-off=')[1];
3886      this.switcherElements = Array.prototype.slice.call(document.getElementsByClassName('ly-switcher-wrapper'));
3887    }
3888
3889    init() {
3890
3891      // Initial cart.attributes update
3892      LyHelper.shopifyAPI().getCart(function (cart) {
3893        var currentLanguage = langify.locale.iso_code;
3894        if(!cart.attributes.language || cart.attributes.language != currentLanguage) {
3895          LyHelper.shopifyAPI().updateCartAttributes({"language": currentLanguage}, function(data){});
3896        }
3897      });
3898
3899      if(langify.locale.languages.length === 1) {
3900        console.info(`%c LANGIFY INFO:\n`, 'font-weight: bold;', 'The language switcher is hidden! This can have one of the following reasons: \n * All additional languages are disabled in the "Langify -> Dashboard -> Languages" section. \n * If you are using different domains for your additional languages, ensure that "Cross Domain Links" are enabled inside the "Langify -> Dashboard -> Switcher Configurator -> Domains" section.');
3901        return false;
3902      }
3903
3904      this.setCustomPosition();
3905      this.initCustomDropdown();
3906      this.bindCountrySwitchers();
3907      this.bindCurrencySwitchers();
3908      this.bindLanguageSwitchers();
3909
3910      var event = new CustomEvent('langify.switcher.initialized', { 
3911        bubbles: true,
3912        detail: {}
3913      });
3914    }
3915
3916    initCustomDropdown() {
3917      // Custom Dropdown
3918      var root = this;
3919      var switcher = document.getElementsByClassName('ly-custom-dropdown-switcher');
3920      for(var a = 0; a < switcher.length; a++) {
3921        switcher[a].classList.toggle('ly-is-open');
3922        var isOut = LyHelper.isOutOfViewport(switcher[a]);
3923        if(isOut.bottom && isOut.inViewport) {
3924          switcher[a].classList.add('ly-is-dropup');
3925          var arrows = switcher[a].querySelectorAll('.ly-arrow');
3926          for(var b = 0; b < arrows.length; b++) {
3927            arrows[b].classList.add('ly-arrow-up');    
3928          }
3929        }
3930        switcher[a].classList.toggle('ly-is-open');
3931        switcher[a].onclick = function(event) {
3932          root.toggleSwitcherOpen(this);
3933        }
3934      }
3935
3936      document.addEventListener('click', function(event) {
3937        if(!event.target.closest('.ly-custom-dropdown-switcher')) {
3938          var openSwitchers = document.querySelectorAll('.ly-custom-dropdown-switcher.ly-is-open')
3939          for(var i = 0; i < openSwitchers.length; i++) {
3940            openSwitchers[i].classList.remove('ly-is-open');
3941          }
3942        }
3943      });
3944    }
3945    
3946    bindLanguageSwitchers() {
3947      var root = this;
3948      var links = document.getElementsByClassName('ly-languages-switcher-link');
3949      for(var l = 0; l < links.length; l++) {
3950        
3951        links[l].addEventListener('click', function(event) {
3952          event.preventDefault();
3953          if(LyHelper.isDomainFeatureEnabled() && this.getAttribute('href') !== '#' && !this.getAttribute('data-country-code')) {
3954          	var domain = this.getAttribute('href');
3955          }
3956          LyHelper.setCookie('ly-lang-selected', this.getAttribute('data-language-code'), 365);
3957          LyHelper.localizationRedirect('language_code', this.getAttribute('data-language-code'), root._dataAttrToAdditionalFields(this), null, domain);
3958        });
3959      }
3960
3961      // Native select event handling
3962      var nativeLangifySelects = document.querySelectorAll('select.ly-languages-switcher');
3963      for(var i = 0; i < nativeLangifySelects.length; i++) {
3964        nativeLangifySelects[i].onchange = function() {
3965          event.preventDefault();
3966          if(LyHelper.isDomainFeatureEnabled() && this[this.selectedIndex].getAttribute('data-domain') !== '#' && this[this.selectedIndex].getAttribute('data-country-code')) {
3967            var domain = this[this.selectedIndex].getAttribute('data-domain');
3968          }
3969          LyHelper.setCookie('ly-lang-selected', this[this.selectedIndex].getAttribute('data-language-code'), 365);
3970          LyHelper.localizationRedirect('language_code', this[this.selectedIndex].getAttribute('data-language-code'), root._dataAttrToAdditionalFields(this), null, domain);
3971        };
3972      }
3973    }
3974    
3975    bindCountrySwitchers() {
3976      var countrySelectSwitcher = document.querySelectorAll('select.ly-country-switcher');
3977      var countryCustomSwitcher = document.querySelectorAll('div.ly-country-switcher a');
3978      for(var i=0; i<countryCustomSwitcher.length; i++) {
3979        countryCustomSwitcher[i].addEventListener('click', function(e) {
3980          LyHelper.localizationRedirect('country_code', this.getAttribute('data-country-code'));
3981        });
3982      }
3983      for(var a=0; a<countrySelectSwitcher.length; a++) {
3984        countrySelectSwitcher[a].addEventListener('change', function(){
3985          LyHelper.localizationRedirect('country_code', this[this.selectedIndex].getAttribute('data-country-code'));
3986        });
3987      }  
3988    }
3989    
3990    bindCurrencySwitchers() {
3991      var currencySelectSwitcher = document.querySelectorAll('select.ly-currency-switcher');
3992      var currencyCustomSwitcher = document.querySelectorAll('div.ly-currency-switcher a');
3993      for(var i=0; i<currencyCustomSwitcher.length; i++) {
3994        currencyCustomSwitcher[i].addEventListener('click', function(e) {
3995          LyHelper.changeCurrency(this.getAttribute('data-currency-code'));
3996        });
3997      }
3998      for(var a=0; a<currencySelectSwitcher.length; a++) {
3999        currencySelectSwitcher[a].addEventListener('change', function(){
4000          LyHelper.changeCurrency(this[this.selectedIndex].getAttribute('data-currency-code'));
4001        });
4002      }  
4003    }
4004
4005    setCustomPosition() {
4006      for(var i = 0; i < this.switcherElements.length; i++) {
4007        if(this.lyForceOff !== 'true') {
4008          if(langify.locale.languages.length <= 1) {
4009            this.switcherElements[i].querySelector('.ly-languages-switcher').classList.add('ly-hide');
4010          }
4011          this.switcherElements[i].classList.remove('ly-hide');
4012        }
4013        if(this.switcherElements[i].classList.contains('ly-custom') && (document.getElementById('ly-custom-'+this.switcherElements[i].getAttribute('data-breakpoint')) || document.getElementsByClassName('ly-custom-'+this.switcherElements[i].getAttribute('data-breakpoint')).length )) {
4014          var targets = Array.from(document.getElementsByClassName('ly-custom-'+this.switcherElements[i].getAttribute('data-breakpoint')));
4015          var target = document.getElementById('ly-custom-'+this.switcherElements[i].getAttribute('data-breakpoint'));
4016          if(target) targets.push(target);
4017          for(var c = 0; c < targets.length; c++) {
4018            var clone = this.switcherElements[i].cloneNode(true);
4019            if(this.switcherElements[i].parentNode) {
4020              this.switcherElements[i].remove();
4021            }
4022            targets[c].innerHTML = clone.outerHTML;
4023          }
4024          this.switcherElements[i].classList.add('ly-hide');
4025        }
4026      }
4027    }
4028
4029    toggleSwitcherOpen(e) {
4030      var target = e;
4031      if(!target.classList.contains('ly-is-open')) {
4032        var openSwitchers = document.querySelectorAll('.ly-custom-dropdown-switcher.ly-is-open')
4033        for(var i = 0; i < openSwitchers.length; i++) {
4034          openSwitchers[i].classList.remove('ly-is-open');
4035        }
4036
4037        target.getElementsByClassName('ly-custom-dropdown-current')[0].setAttribute('aria-expanded', 'true');
4038      } else {
4039        target.getElementsByClassName('ly-custom-dropdown-current')[0].setAttribute('aria-expanded', 'false');
4040      }
4041      target.classList.toggle('ly-is-open');
4042      var isOut = LyHelper.isOutOfViewport(target);
4043      if(isOut.bottom) {
4044        target.classList.add('ly-is-dropup');
4045      }
4046    }
4047
4048    togglePopupOpen(e) {
4049      e.closest('.ly-popup-switcher').classList.toggle('ly-is-open');
4050    }
4051
4052    _getCountryCodeFromHreflang(language_code) {
4053      var hreflangTags = document.querySelectorAll('link[hreflang]');
4054      var languageDomains = {};
4055      var countryCode = false;
4056      for(var i = 0; i < hreflangTags.length; i++) {
4057        if(hreflangTags[i].getAttribute('hreflang').indexOf(language_code) === 0) {
4058          if(!languageDomains[hreflangTags[i].getAttribute('href')]) {
4059            languageDomains[hreflangTags[i].getAttribute('href')] = hreflangTags[i];
4060          }
4061        }
4062      }
4063      if(Object.keys(languageDomains).length > 0) {
4064        countryCode = Object.values(languageDomains)[0].getAttribute('hreflang');
4065        countryCode = countryCode.split('-');
4066        if(countryCode[1]) {
4067          countryCode = countryCode[1]
4068        } else {
4069          
4070        }
4071      }
4072      return countryCode;
4073    }
4074
4075    _dataAttrToAdditionalFields(elem) {
4076      var additionalFields = [];
4077      if(elem.hasAttribute('data-country-code')) {
4078        additionalFields.push({
4079          name: 'country_code',
4080          value: elem.getAttribute('data-country-code')
4081        });
4082      }
4083      if(elem.hasAttribute('data-currency-code')) {
4084        additionalFields.push({
4085          name: 'currency_code',
4086          value: elem.getAttribute('data-currency-code')
4087        });
4088      }
4089      return additionalFields;
4090    }
4091  }
4092
4093
4094  /**
4095  *
4096  *
4097  * @class LanguageDetection
4098  */
4099  class LanguageDetection {
4100
4101    constructor() {
4102      this.hreflangList = null;
4103      LyHelper.log('LanguageDetection instantiation');
4104    }
4105
4106    init() {
4107      if(LyHelper.inIframe()
4108      || window.location.pathname.indexOf('preview_key=') > 0) {
4109        return null;
4110      }
4111
4112      var currentLang = langify.locale.iso_code.toLowerCase();
4113      //var localizationData = this.getLocalizationData();
4114      this.hreflangList = this.getHreflangList();
4115
4116      var userLang = navigator.language || navigator.userLanguage;
4117      userLang = userLang.toLowerCase();
4118      var bot = /bot|google|baidu|bing|msn|duckduckbot|teoma|slurp|yandex|Chrome-Lighthouse/i.test(navigator.userAgent);
4119      var blockedRoutes = window.lyBlockedRoutesList || [];
4120      var blockedRoute = blockedRoutes.find(x => window.location.pathname.indexOf(x) === 0);
4121      var is404 = document.getElementsByClassName('template-404').length;
4122
4123      if(LyHelper.getVal('redirected') === 'true') {
4124        LyHelper.setCookie('ly-lang-selected', currentLang, 365);
4125        var _href = window.location.href;
4126        history.replaceState(null, '', _href.replace(/(\?|&)(redirected=true)/i, ''));
4127        return null;
4128      }
4129
4130      if(!is404 && !bot && !blockedRoute && LyHelper.getVal('ly-lang-detect') !== 'off') {
4131        if(userLang && !LyHelper.getCookie('ly-lang-selected')) {
4132          var hasMatch = this.matchHreflangList(userLang);
4133          if(currentLang !== this._hreflangToLanguageCode(hasMatch)) {
4134            if(hasMatch) {
4135              this.redirectMatched(userLang);
4136            } else if (!hasMatch && langify.settings.switcher.languageDetectionDefault) {
4137              // Redirect to default language
4138              this.redirectMatched(langify.settings.switcher.languageDetectionDefault);
4139            }
4140          }
4141        } else {
4142          if(LyHelper.getCookie('ly-lang-selected') && LyHelper.getCookie('ly-lang-selected') !== currentLang) {
4143            // Only save cookie when the domain feature is active
4144            if(LyHelper.isDomainFeatureEnabled()) {
4145              LyHelper.setCookie('ly-lang-selected', currentLang, 365);
4146            }
4147            this.redirectMatched(LyHelper.getCookie('ly-lang-selected'));
4148          }
4149        }
4150      }
4151      
4152      this._geolocationAppSupport();
4153    }
4154    redirectMatched(userLang) {
4155      var match = this.matchHreflangList(userLang);
4156      if(match) {
4157        this.redirectHref(match.href, match.lang);
4158      }
4159      return match;
4160    }
4161    matchHreflangList(userLang) {
4162      var matchedHreflang = false;
4163      var browserLang = userLang;
4164
4165      // Find candidates
4166      var candidates = this.hreflangList.filter(item => item.lang === browserLang);
4167      if(candidates.length === 0) {
4168        browserLang = userLang.toLowerCase();
4169        candidates = this.hreflangList.filter(item => item.lang.toLowerCase().indexOf(browserLang) === 0);
4170      }
4171      if(candidates.length === 0) {
4172        browserLang = userLang.toLowerCase().substring(0, 2);
4173        candidates = this.hreflangList.filter(item => item.lang.toLowerCase().indexOf(browserLang) === 0);
4174      }
4175
4176      // Handle candidates
4177      if(candidates.length === 1) {
4178        return({href: candidates[0].href, lang: browserLang});
4179      } 
4180      else if(candidates.length > 1) {
4181        var preferedCandidate = candidates.find(item => item.href.indexOf(window.location.host) >= 0)
4182        if(preferedCandidate) {
4183          return({href: preferedCandidate.href, lang: browserLang});
4184        } else {
4185          return({href: candidates[0].href, lang: browserLang});
4186        }
4187      } 
4188      
4189      return false;
4190    }
4191    redirectHref(href, userLang) {
4192      var queryString = window.location.search;
4193      var url = href.split('?')[0];
4194      if(queryString === '') {
4195        queryString = '?redirected=true';
4196      } else {
4197        queryString += '&redirected=true';
4198      }
4199      window.location.replace(url + queryString);
4200    }
4201    getHreflangList() {
4202      var hreflangTags = document.querySelectorAll('link[hreflang]');
4203      var hreflangList = [];
4204      var countryCode = false;
4205      // Cross Domain Links option
4206      if(LyHelper.isDomainFeatureEnabled()) {
4207        for(var i = 0; i < langify.locale.languages.length; i++) {
4208          let newHref = 'https://' + langify.locale.languages[i].domain + window.location.pathname + window.location.search + window.location.hash;
4209          // When cross-domain link is pointing to the same domain with subfolders, window.location.pathname would have to be unlocalized before it can be merged into the url
4210          if(new String(langify.locale.languages[i].domain).indexOf(window.location.hostname) === 0) {
4211            let unlocalizedPathname = langify.locale.root_url !== '/' ? window.location.pathname.replace(langify.locale.root_url, '') : window.location.pathname;
4212            newHref = 'https://' + langify.locale.languages[i].domain + unlocalizedPathname + window.location.search + window.location.hash
4213          }
4214          hreflangList.push({
4215            href: newHref,
4216            lang: langify.locale.languages[i].iso_code,
4217          });
4218        }
4219      }
4220      for(var i = 0; i < hreflangTags.length; i++) {
4221        var hreflang = hreflangTags[i].getAttribute('hreflang').toLowerCase();
4222        hreflang = hreflang.replace('zh-hans', 'zh-cn').replace('zh-hant', 'zh-tw'); // Chinese special cases
4223        hreflangList.push({
4224          href: hreflangTags[i].getAttribute('href'),
4225          lang: hreflang
4226        });
4227      }
4228      return hreflangList;
4229    }
4230    _langToHreflang(userLang) {
4231      var hreflang = '';
4232      this.hreflangList.map(function(item) {
4233        if(item.lang === userLang) {
4234          hreflang = userLang;
4235        }
4236      });
4237      if(hreflang === '') {
4238        this.hreflangList.map(function(item) {
4239          var browserLang = userLang.toLowerCase();
4240          if(item.lang.toLowerCase().indexOf(browserLang) === 0) {
4241            hreflang = browserLang;
4242          }
4243          else if(item.lang.toLowerCase().indexOf(browserLang.substring(0, 2)) === 0) {
4244            hreflang = browserLang.substring(0, 2);
4245          }
4246        });        
4247      }
4248      return hreflang || userLang;
4249    }
4250    _hreflangToLanguageCode(hreflangTag) {
4251      if(!hreflangTag || !hreflangTag.lang) return false;
4252	  var languageCode = false;
4253      langify.locale.languages.forEach(function(item) {
4254        if(item.iso_code.toLowerCase() === hreflangTag.lang.toLowerCase()) {
4255          languageCode = item.iso_code;
4256        }
4257      });
4258      if(!languageCode) {
4259        langify.locale.languages.forEach(function(item) {
4260          if(item.iso_code.toLowerCase() === hreflangTag.lang.substring(0, 2).toLowerCase()) {
4261            languageCode = item.iso_code;
4262          }
4263        });
4264      }
4265      return languageCode;
4266    }
4267    _geolocationAppSupport() {
4268      var target = document.querySelector('body');
4269      var config = { childList: true, subtree: true };
4270      var geolocationObserver = new MutationObserver(function(mutations) {
4271        mutations.forEach(function(mutation) {
4272          if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
4273            var target = mutation.target.getElementsByClassName('locale-bar__form');
4274            if(target[0]) {
4275              target[0].onsubmit = function() {
4276                var locale_code = target[0].elements['locale_code'].value;
4277                var selector = target[0].getElementsByClassName('locale-bar__selector');
4278                if(selector.length >= 1) {
4279                  locale_code = selector[0].options[selector[0].selectedIndex].value;
4280                }
4281                LyHelper.setCookie('ly-lang-selected', locale_code, 365);
4282              };
4283            }
4284            var selectors = mutation.target.getElementsByClassName('locale-selectors__selector');
4285            if(selectors.length > 0) {
4286              for(var selector of selectors) {
4287                if(selector.getAttribute('name') === 'locale_code') {
4288                  selector.onchange = function() {
4289                    var locale_code = selector.options[selector.selectedIndex].value;
4290                    LyHelper.setCookie('ly-lang-selected', locale_code, 365);
4291                  };        
4292                }
4293              }
4294            }
4295          }
4296        });
4297      });
4298      geolocationObserver.observe(target, config);
4299      setTimeout(function() {
4300        geolocationObserver.disconnect();
4301      }, 10000);
4302    }
4303  }
4304
4305
4306  /**
4307  *
4308  *
4309  * @class Recommendation
4310  */
4311  class Recommendation extends LanguageDetection {
4312    
4313    constructor() {
4314      super();
4315      LyHelper.log('Recommendation instantiation');
4316    }
4317
4318    init() {
4319      this.hreflangList = this.getHreflangList();
4320
4321      var userLang = navigator.language || navigator.userLanguage;
4322      userLang = userLang.toLowerCase();
4323
4324      var recommendation = this.matchHreflangList(userLang);
4325      var recommendationLanguageCode = this._hreflangToLanguageCode(recommendation);
4326      if(recommendationLanguageCode && recommendationLanguageCode !== langify.locale.iso_code && !LyHelper.getCookie('ly-lang-selected')) {
4327        this.recommended_language_code = recommendationLanguageCode;
4328        this.recommended_country_code = null;
4329        this.recommended_currency_code = null;
4330        this._translateStrings(recommendationLanguageCode);
4331        this._bindings();
4332      } else {
4333        return false;
4334      }
4335    }
4336
4337    _translateStrings(languageCode) {
4338      var recommendationElement = document.querySelectorAll('.ly-recommendation')[0];
4339      var strings = langify.settings.switcher.recommendation_strings[languageCode];
4340      var recommendationStr = 'Looks like your browser is set to [[language]]. Change the language?';
4341      var buttonStr = 'Change';
4342      var matchedLanguageCode = this._langToHreflang(languageCode).toLowerCase();
4343      var languageStr = langify.settings.switcher.languages.find(x => x.iso_code.toLowerCase() === matchedLanguageCode) ? langify.settings.switcher.languages.find(x => x.iso_code.toLowerCase() === matchedLanguageCode).name : languageCode.toUpperCase();
4344      if(strings) {
4345        recommendationStr = strings.recommendation ? strings.recommendation : recommendationStr;
4346        buttonStr = strings.button ? strings.button : buttonStr;
4347        languageStr = strings.language ? strings.language : languageStr;
4348      }
4349      var newCode = recommendationElement.innerHTML;
4350      newCode = newCode.replaceAll('[[recommendation]]', recommendationStr).replaceAll('[[button]]', buttonStr).replaceAll('[[language]]', languageStr);
4351      recommendationElement.innerHTML = newCode;     
4352    }
4353
4354    _bindings() {
4355      var _this = this;
4356      var lyForceOff = location.search.split('ly-force-off=')[1];
4357      var recommendationElement = document.querySelectorAll('.ly-recommendation')[0];
4358      var form = recommendationElement.querySelectorAll('.ly-recommendation-form')[0];
4359      var links = recommendationElement.getElementsByClassName('ly-custom-dropdown-list-element');
4360      var customDropdown = recommendationElement.querySelectorAll('.ly-custom-dropdown-switcher');
4361      var nativeSelects = recommendationElement.getElementsByClassName('ly-native-select');
4362
4363      form.addEventListener('submit', function(e) {
4364        e.preventDefault();
4365        
4366        if(_this.recommended_country_code || _this.recommended_currency_code) {
4367          // When a country or currency is involved, use old redirection
4368          var additionalFields = [];
4369          if(_this.recommended_country_code) {
4370            additionalFields.push({
4371              name: 'country_code',
4372              value: _this.recommended_country_code
4373            });
4374          }
4375          if(_this.recommended_currency_code) {
4376            additionalFields.push({
4377              name: 'currency_code',
4378              value: _this.recommended_currency_code
4379            });
4380          }
4381          LyHelper.setCookie('ly-lang-selected', _this.recommended_language_code, 365);
4382          LyHelper.localizationRedirect('language_code', _this.recommended_language_code, additionalFields);
4383        } else {
4384          //...or use new hreflang redirection
4385          _this.redirectMatched(_this.recommended_language_code);
4386        }
4387      });
4388      
4389      // Overwrite switchers
4390      for(var l = 0; l < links.length; l++) {
4391        links[l].addEventListener('click', function(event) {
4392          event.preventDefault();
4393          
4394          // When clicked from within a custom dropdown
4395          var parentCustomDropdown = event.currentTarget.closest('.ly-custom-dropdown-switcher');
4396          if(parentCustomDropdown) {
4397            _this._selectCustomDropdownEntry(parentCustomDropdown, this);
4398          } else {
4399            _this.recommended_language_code = this.getAttribute('data-language-code');
4400          }
4401        });
4402      }
4403
4404      for(var i = 0; i < nativeSelects.length; i++) {
4405        nativeSelects[i].onchange = _this._selectNativeDropdownEntry.bind(this);
4406        
4407        if(nativeSelects[i].classList.contains('ly-languages-switcher')) {
4408          nativeSelects[i].value = _this.recommended_language_code;
4409        }
4410      }
4411
4412      for(var i = 0; i < customDropdown.length; i++) {
4413        if(recommendationElement.className.indexOf('bottom') > -1) {
4414          customDropdown[i].classList.add('ly-is-dropup');       
4415        }
4416        
4417        if(customDropdown[i].classList.contains('ly-languages-switcher')) {
4418          _this._selectCustomDropdownEntry(customDropdown[i], customDropdown[i].querySelector('.ly-custom-dropdown-list a[data-language-code="'+ _this.recommended_language_code +'"]'));
4419        }
4420      } 
4421      if(!lyForceOff) {
4422        recommendationElement.classList.add('ly-is-open');
4423      }
4424    }
4425
4426    _selectNativeDropdownEntry(event) {
4427      event.preventDefault();
4428      var element = event.currentTarget;
4429      var _this = this;
4430
4431      if(element[element.selectedIndex].hasAttribute('data-language-code')) {
4432        _this.recommended_language_code = element[element.selectedIndex].getAttribute('data-language-code');
4433      }
4434      if(element[element.selectedIndex].hasAttribute('data-country-code')) {
4435        _this.recommended_country_code = element[element.selectedIndex].getAttribute('data-country-code');
4436      }
4437      if(element[element.selectedIndex].hasAttribute('data-currency-code')) {
4438        _this.recommended_currency_code = element[element.selectedIndex].getAttribute('data-currency-code');
4439      }
4440    }
4441
4442    _selectCustomDropdownEntry(element, entry) {
4443      if(!entry) return;
4444      var _this = this;
4445      var currentElem = element.querySelector('.ly-custom-dropdown-current');
4446      var currentIcon = currentElem.querySelector('.ly-icon');        
4447      var currentLabel = currentElem.querySelector('span');
4448      var valueToSelect = '';
4449
4450      if(entry.hasAttribute('data-language-code')) {
4451        _this.recommended_language_code = entry.getAttribute('data-language-code');
4452        valueToSelect = _this.recommended_language_code;
4453      }
4454      if(entry.hasAttribute('data-country-code')) {
4455        _this.recommended_country_code = entry.getAttribute('data-country-code');
4456        valueToSelect = _this.recommended_country_code;
4457      }
4458      if(entry.hasAttribute('data-currency-code')) {
4459        _this.recommended_currency_code = entry.getAttribute('data-currency-code');
4460        valueToSelect = _this.recommended_currency_code;
4461      }
4462      if(entry.hasAttribute('data-country-code') && entry.hasAttribute('data-currency-code')) {
4463        valueToSelect = _this.recommended_country_code + '-' + _this.recommended_currency_code;
4464      }
4465
4466      if(element.querySelector('.ly-custom-dropdown-list li.current')) {
4467        element.querySelector('.ly-custom-dropdown-list li.current').classList.remove('current');  
4468        element.querySelector('.ly-custom-dropdown-list li[key="'+ valueToSelect +'"]').classList.add('current');  
4469      }
4470      if(element.querySelector('.ly-custom-dropdown-list li.current span')) currentLabel.innerHTML = element.querySelector('.ly-custom-dropdown-list li.current span').innerHTML;
4471      if(element.querySelector('.ly-custom-dropdown-list li.current .ly-icon')) currentIcon.classList = element.querySelector('.ly-custom-dropdown-list li.current .ly-icon').classList;
4472    }
4473
4474    toggleOpen(e) {
4475      e.closest('.ly-recommendation').classList.toggle('ly-is-open');
4476      if(!e.closest('.ly-recommendation').classList.contains('ly-is-open')) {
4477        LyHelper.setCookie('ly-lang-selected', this.recommended_language_code, 365);
4478      }
4479    }
4480  }
4481
4482
4483  /**
4484  *
4485  *
4486  * @class Langify
4487  */
4488  class Langify {
4489    constructor(settings, locale) {
4490      LyHelper.log('Langify instantiation')
4491
4492      var translationObserver = new TranslationObserver().init();
4493
4494      langify.helper = new LyHelper();
4495      LyHelper.log(langify.helper);
4496
4497
4498      var lyForceOff = location.search.split('ly-force-off=')[1];
4499      if(lyForceOff === 'true') {
4500        document.getElementById('preview-bar-iframe').classList.add('ly-hide');
4501        return false;
4502      }
4503
4504      if(settings.theme && ((settings.theme.loadJquery && settings.theme.loadJquery === true) || typeof settings.theme.loadJquery === 'undefined')) {
4505        if(typeof jQuery === 'undefined') {
4506          LyHelper.loadScript('//cdn.jsdelivr.net/jquery/1.9.1/jquery.min.js', function() {});
4507        } 
4508      }
4509
4510      //document.addEventListener("DOMContentLoaded", function() {
4511        langify.switcher = new Switcher();
4512        langify.switcher.init();
4513
4514        if(settings.switcher) {
4515          if(settings.switcher.recommendation && settings.switcher.recommendation_enabled) {
4516            langify.recommendation = new Recommendation();
4517            langify.recommendation.init();
4518          } else {
4519            if(settings.switcher.languageDetection) {
4520              langify.languageDetection = new LanguageDetection();
4521              langify.languageDetection.init();
4522            }        
4523          }
4524        }
4525      //});
4526    }
4527  }
4528
4529  // Polyfills
4530  (function(){var t;null==window.MutationObserver&&(t=function(){function t(t){this.callBack=t}return t.prototype.observe=function(t,n){return this.element=t,this.interval=setInterval((e=this,function(){var t;if((t=e.element.innerHTML)!==e.oldHtml)return e.oldHtml=t,e.callBack.apply(null)}),200);var e},t.prototype.disconnect=function(){return window.clearInterval(this.interval)},t}(),window.MutationObserver=t)}).call(this);
4531  !function(){"use strict";if("object"==typeof window)if("IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype)"isIntersecting"in window.IntersectionObserverEntry.prototype||Object.defineProperty(window.IntersectionObserverEntry.prototype,"isIntersecting",{get:function(){return this.intersectionRatio>0}});else{var t=function(t){for(var e=window.document,o=i(e);o;)o=i(e=o.ownerDocument);return e}(),e=[],o=null,n=null;s.prototype.THROTTLE_TIMEOUT=100,s.prototype.POLL_INTERVAL=null,s.prototype.USE_MUTATION_OBSERVER=!0,s._setupCrossOriginUpdater=function(){return o||(o=function(t,o){n=t&&o?l(t,o):{top:0,bottom:0,left:0,right:0,width:0,height:0},e.forEach(function(t){t._checkForIntersections()})}),o},s._resetCrossOriginUpdater=function(){o=null,n=null},s.prototype.observe=function(t){if(!this._observationTargets.some(function(e){return e.element==t})){if(!t||1!=t.nodeType)throw new Error("target must be an Element");this._registerInstance(),this._observationTargets.push({element:t,entry:null}),this._monitorIntersections(t.ownerDocument),this._checkForIntersections()}},s.prototype.unobserve=function(t){this._observationTargets=this._observationTargets.filter(function(e){return e.element!=t}),this._unmonitorIntersections(t.ownerDocument),0==this._observationTargets.length&&this._unregisterInstance()},s.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorAllIntersections(),this._unregisterInstance()},s.prototype.takeRecords=function(){var t=this._queuedEntries.slice();return this._queuedEntries=[],t},s.prototype._initThresholds=function(t){var e=t||[0];return Array.isArray(e)||(e=[e]),e.sort().filter(function(t,e,o){if("number"!=typeof t||isNaN(t)||t<0||t>1)throw new Error("threshold must be a number between 0 and 1 inclusively");return t!==o[e-1]})},s.prototype._parseRootMargin=function(t){var e=(t||"0px").split(/\s+/).map(function(t){var e=/^(-?\d*\.?\d+)(px|%)$/.exec(t);if(!e)throw new Error("rootMargin must be specified in pixels or percent");return{value:parseFloat(e[1]),unit:e[2]}});return e[1]=e[1]||e[0],e[2]=e[2]||e[0],e[3]=e[3]||e[1],e},s.prototype._monitorIntersections=function(e){var o=e.defaultView;if(o&&-1==this._monitoringDocuments.indexOf(e)){var n=this._checkForIntersections,r=null,s=null;this.POLL_INTERVAL?r=o.setInterval(n,this.POLL_INTERVAL):(h(o,"resize",n,!0),h(e,"scroll",n,!0),this.USE_MUTATION_OBSERVER&&"MutationObserver"in o&&(s=new o.MutationObserver(n)).observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0})),this._monitoringDocuments.push(e),this._monitoringUnsubscribes.push(function(){var t=e.defaultView;t&&(r&&t.clearInterval(r),c(t,"resize",n,!0)),c(e,"scroll",n,!0),s&&s.disconnect()});var u=this.root&&(this.root.ownerDocument||this.root)||t;if(e!=u){var a=i(e);a&&this._monitorIntersections(a.ownerDocument)}}},s.prototype._unmonitorIntersections=function(e){var o=this._monitoringDocuments.indexOf(e);if(-1!=o){var n=this.root&&(this.root.ownerDocument||this.root)||t;if(!this._observationTargets.some(function(t){var o=t.element.ownerDocument;if(o==e)return!0;for(;o&&o!=n;){var r=i(o);if((o=r&&r.ownerDocument)==e)return!0}return!1})){var r=this._monitoringUnsubscribes[o];if(this._monitoringDocuments.splice(o,1),this._monitoringUnsubscribes.splice(o,1),r(),e!=n){var s=i(e);s&&this._unmonitorIntersections(s.ownerDocument)}}}},s.prototype._unmonitorAllIntersections=function(){var t=this._monitoringUnsubscribes.slice(0);this._monitoringDocuments.length=0,this._monitoringUnsubscribes.length=0;for(var e=0;e<t.length;e++)t[e]()},s.prototype._checkForIntersections=function(){if(this.root||!o||n){var t=this._rootIsInDom(),e=t?this._getRootRect():{top:0,bottom:0,left:0,right:0,width:0,height:0};
4531this._observationTargets.forEach(function(n){var i=n.element,s=u(i),h=this._rootContainsTarget(i),c=n.entry,a=t&&h&&this._computeTargetAndRootIntersection(i,s,e),l=null;this._rootContainsTarget(i)?o&&!this.root||(l=e):l={top:0,bottom:0,left:0,right:0,width:0,height:0};var f=n.entry=new r({time:window.performance&&performance.now&&performance.now(),target:i,boundingClientRect:s,rootBounds:l,intersectionRect:a});c?t&&h?this._hasCrossedThreshold(c,f)&&this._queuedEntries.push(f):c&&c.isIntersecting&&this._queuedEntries.push(f):this._queuedEntries.push(f)},this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)}},s.prototype._computeTargetAndRootIntersection=function(e,i,r){if("none"!=window.getComputedStyle(e).display){for(var s,h,c,a,f,d,g,m,v=i,_=p(e),b=!1;!b&&_;){var w=null,y=1==_.nodeType?window.getComputedStyle(_):{};if("none"==y.display)return null;if(_==this.root||9==_.nodeType)if(b=!0,_==this.root||_==t)o&&!this.root?!n||0==n.width&&0==n.height?(_=null,w=null,v=null):w=n:w=r;else{var I=p(_),E=I&&u(I),T=I&&this._computeTargetAndRootIntersection(I,E,r);E&&T?(_=I,w=l(E,T)):(_=null,v=null)}else{var R=_.ownerDocument;_!=R.body&&_!=R.documentElement&&"visible"!=y.overflow&&(w=u(_))}if(w&&(s=w,h=v,c=void 0,a=void 0,f=void 0,d=void 0,g=void 0,m=void 0,c=Math.max(s.top,h.top),a=Math.min(s.bottom,h.bottom),f=Math.max(s.left,h.left),d=Math.min(s.right,h.right),m=a-c,v=(g=d-f)>=0&&m>=0&&{top:c,bottom:a,left:f,right:d,width:g,height:m}||null),!v)break;_=_&&p(_)}return v}},s.prototype._getRootRect=function(){var e;if(this.root&&!d(this.root))e=u(this.root);else{var o=d(this.root)?this.root:t,n=o.documentElement,i=o.body;e={top:0,left:0,right:n.clientWidth||i.clientWidth,width:n.clientWidth||i.clientWidth,bottom:n.clientHeight||i.clientHeight,height:n.clientHeight||i.clientHeight}}return this._expandRectByRootMargin(e)},s.prototype._expandRectByRootMargin=function(t){var e=this._rootMarginValues.map(function(e,o){return"px"==e.unit?e.value:e.value*(o%2?t.width:t.height)/100}),o={top:t.top-e[0],right:t.right+e[1],bottom:t.bottom+e[2],left:t.left-e[3]};return o.width=o.right-o.left,o.height=o.bottom-o.top,o},s.prototype._hasCrossedThreshold=function(t,e){var o=t&&t.isIntersecting?t.intersectionRatio||0:-1,n=e.isIntersecting?e.intersectionRatio||0:-1;if(o!==n)for(var i=0;i<this.thresholds.length;i++){var r=this.thresholds[i];if(r==o||r==n||r<o!=r<n)return!0}},s.prototype._rootIsInDom=function(){return!this.root||f(t,this.root)},s.prototype._rootContainsTarget=function(e){var o=this.root&&(this.root.ownerDocument||this.root)||t;return f(o,e)&&(!this.root||o==e.ownerDocument)},s.prototype._registerInstance=function(){e.indexOf(this)<0&&e.push(this)},s.prototype._unregisterInstance=function(){var t=e.indexOf(this);-1!=t&&e.splice(t,1)},window.IntersectionObserver=s,window.IntersectionObserverEntry=r}function i(t){try{return t.defaultView&&t.defaultView.frameElement||null}catch(t){return null}}function r(t){this.time=t.time,this.target=t.target,this.rootBounds=a(t.rootBounds),this.boundingClientRect=a(t.boundingClientRect),this.intersectionRect=a(t.intersectionRect||{top:0,bottom:0,left:0,right:0,width:0,height:0}),this.isIntersecting=!!t.intersectionRect;var e=this.boundingClientRect,o=e.width*e.height,n=this.intersectionRect,i=n.width*n.height;this.intersectionRatio=o?Number((i/o).toFixed(4)):this.isIntersecting?1:0}function s(t,e){var o,n,i,r=e||{};if("function"!=typeof t)throw new Error("callback must be a function");if(r.root&&1!=r.root.nodeType&&9!=r.root.nodeType)throw new Error("root must be a Document or Element");this._checkForIntersections=(o=this._checkForIntersections.bind(this),n=this.THROTTLE_TIMEOUT,i=null,function(){i||(i=setTimeout(function(){o(),i=null},n))}),this._callback=t,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(r.rootMargin),this.thresholds=this._initThresholds(r.threshold),this.root=r.root||null,this.rootMargin=this._rootMarginValues.map(function(t){return t.value+t.unit}).join(" "),this._monitoringDocuments=[],this._monitoringUnsubscribes=[]}function h(t,e,o,n){"function"==typeof t.addEventListener?t.addEventListener(e,o,n||!1):"function"==typeof t.attachEvent&&t.attachEvent("on"+e,o)}function c(t,e,o,n){"function"==typeof t.removeEventListener?t.removeEventListener(e,o,n||!1):"function"==typeof t.detatchEvent&&t.detatchEvent("on"+e,o)}function u(t){var e;try{e=t.getBoundingClientRect()}catch(t){}return e?(e.width&&e.height||(e={top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.right-e.left,height:e.bottom-e.top}),e):{top:0,bottom:0,left:0,right:0,width:0,height:0}}function a(t){return!t||"x"in t?t:{top:t.top,y:t.top,bottom:t.bottom,left:t.left,x:t.left,right:t.right,width:t.width,height:t.height}}function l(t,e){var o=e.top-t.top,n=e.left-t.left;return{top:o,left:n,height:e.height,width:e.width,bottom:o+e.height,right:n+e.width}}function f(t,e){for(var o=e;o;){if(o==t)return!0;o=p(o)}return!1}function p(e){var o=e.parentNode;return 9==e.nodeType&&e!=t?i(e):(o&&o.assignedSlot&&(o=o.assignedSlot.parentNode),o&&11==o.nodeType&&o.host?o.host:o)}function d(t){return t&&9===t.nodeType}}();
4532  !function(){if("function"==typeof window.CustomEvent)return!1;window.CustomEvent=function(n,t){t=t||{bubbles:!1,cancelable:!1,detail:null};var e=document.createEvent("CustomEvent");return e.initCustomEvent(n,t.bubbles,t.cancelable,t.detail),e}}();
4533
4534  var langify = window.langify || {};
4535  var customContents = {};
4536  var customContents_image = {};
4537  var langifySettingsOverwrites = {};
4538  var defaultSettings = {
4539    debug: false,               // BOOL : Enable/disable console logs
4540    observe: true,              // BOOL : Enable/disable the entire mutation observer (off switch)
4541    observeLinks: false,
4542    observeImages: true,
4543    observeCustomContents: true,
4544    maxMutations: 5,
4545    timeout: 100,               // INT : Milliseconds to wait after a mutation, before the next mutation event will be allowed for the element
4546    linksBlacklist: [],
4547  };
4548
4549  if(langify.settings) { 
4550    langifySettingsOverwrites = Object.assign({}, langify.settings);
4551    langify.settings = Object.assign(defaultSettings, langify.settings); 
4552  } else { 
4553    langify.settings = defaultSettings; 
4554  }
4555
4556  langify.settings.theme = null;
4557  langify.settings.switcher = {"customCSS":"","languageDetection":false,"languageDetectionDefault":"en","enableDefaultLanguage":false,"breakpoints":[{"key":0,"label":"0px","config":{"type":"custom","corner":"bottom_right","position":"custom","show_flags":true,"rectangle_icons":false,"square_icons":false,"round_icons":false,"show_label":true,"show_custom_name":true,"show_name":false,"show_iso_code":false,"is_dark":false,"is_transparent":false,"is_dropup":false,"arrow_size":82,"arrow_width":1,"arrow_filled":false,"h_space":0,"v_space":0,"h_item_space":0,"v_item_space":0,"h_item_padding":0,"v_item_padding":0,"text_color":"#000","link_color":"#000","arrow_color":"#000","bg_color":"#fff","border_color":"#000","border_width":0,"border_radius":0,"fontsize":18,"recommendation_fontsize":14,"recommendation_border_width":0,"recommendation_border_radius":0,"recommendation_text_color":"#000","recommendation_link_color":"#000","recommendation_button_bg_color":"#999","recommendation_button_text_color":"#fff","recommendation_bg_color":"#fff","recommendation_border_color":"#000","show_currency_selector":false,"currency_switcher_enabled":false,"country_switcher_enabled":false,"no_icons":true,"switcherIcons":"no_icons","switcherLabel":"show_custom_name","button_bg_color":"#999","button_text_color":"#fff"}},{"key":1000,"label":"1000px","config":{"type":"custom","corner":"bottom_right","position":"custom","show_flags":true,"rectangle_icons":true,"square_icons":false,"round_icons":false,"show_label":true,"show_custom_name":false,"show_name":false,"show_iso_code":true,"is_dark":false,"is_transparent":false,"is_dropup":false,"arrow_size":82,"arrow_width":1,"arrow_filled":false,"h_space":0,"v_space":0,"h_item_space":0,"v_item_space":0,"h_item_padding":0,"v_item_padding":0,"text_color":"#000","link_color":"#000","arrow_color":"#000","bg_color":"#fff","border_color":"#000","border_width":0,"border_radius":0,"fontsize":14,"recommendation_fontsize":14,"recommendation_border_width":0,"recommendation_border_radius":0,"recommendation_text_color":"#000","recommendation_link_color":"#000","recommendation_button_bg_color":"#999","recommendation_button_text_color":"#fff","recommendation_bg_color":"#fff","recommendation_border_color":"#000","show_currency_selector":false,"currency_switcher_enabled":false,"country_switcher_enabled":false,"switcherLabel":"show_iso_code","switcherIcons":"rectangle_icons","button_bg_color":"#999","button_text_color":"#fff"}}],"languages":[{"iso_code":"en","root_url":"\/","name":"English","primary":true,"domain":"montrealweights.ca","published":true,"custom_name":false},{"iso_code":"fr","root_url":"\/fr","name":"French","primary":false,"domain":false,"published":true,"custom_name":false}],"marketLanguages":[],"recommendation_enabled":false,"recommendation_type":"popup","recommendation_switcher_key":-1,"recommendation_strings":{},"switcher_strings":{},"recommendation":{"recommendation_backdrop_show":true,"recommendation_corner":"center_center","recommendation_banner_corner":"top","recommendation_fontsize":14,"recommendation_border_width":0,"recommendation_border_radius":0,"recommendation_text_color":"#000","recommendation_link_color":"#000","recommendation_button_bg_color":"#999","recommendation_button_text_color":"#fff","recommendation_bg_color":"#fff","recommendation_border_color":"#000"}};
4558
4559  langify.locale = langify.locale || {
4560    primary: true,
4561    iso_code: "en",
4562    root_url: "\/",
4563    language_id: "ly191311",
4564    shop_url: "https:\/\/montrealweights.ca",
4565    domain_feature_enabled: null,
4566    languages: [{
4567        iso_code: "en",
4568        root_url: "\/",
4569        domain: null,
4570      },{
4571        iso_code: "fr",
4572        root_url: "\/fr",
4573        domain: null,
4574      },],};
4575
4576  // Disable link correction ALWAYS on languages with mapped domains
4577  
4578  if(langify.locale.root_url == '/') {
4579    langify.settings.observeLinks = false;
4580  }
4581
4582  window.addEventListener('DOMContentLoaded', function() {
4583    langify.helper = new LyHelper();
4584
4585    // Custom Contents Section
4586
4587    // Images Section
4588    
4589
4590    
4591
4592    
4593
4594    
4595
4596    
4597
4598    
4599
4600    
4601
4602    
4603
4604    
4605
4606    
4607
4608    
4609
4610    
4611
4612    
4613
4614    
4615
4616    
4617
4618    
4619
4620    
4621
4622    
4623
4624    
4625
4626
4627    var langifyInstance = new Langify(langify.settings, langify.locale);
4628  });
4629</script>
4629
4630    
4631    
4632    
4633<div data-breakpoint="0" class="ly-switcher-wrapper ly-breakpoint-1 custom ly-custom ly-hide" style="font-size: 18px; "><div data-dropup="false" onclick="langify.switcher.toggleSwitcherOpen(this)" class="ly-languages-switcher ly-custom-dropdown-switcher ly-bright-theme" style=" margin: 0px 0px;">
4634          <span role="button" tabindex="0" aria-label="Selected language: English" aria-expanded="false" aria-controls="languagesSwitcherList-1" class="ly-custom-dropdown-current" style="background: #fff; color: #000;  border-style: solid; border-width: 0px; border-radius: 0px; border-color: #000;  padding: 0px 0px;"><span class="ly-custom-dropdown-current-inner ly-custom-dropdown-current-inner-text">
4635                  
4636                    
4637                    English
4638                  
4639                    
4640                    
4641                  
4642</span>
4643<div aria-hidden="true" class="ly-arrow ly-arrow-black stroke" style="vertical-align: middle; width: 14.76px; height: 14.76px;">
4644        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14.76 14.76" height="14.76px" width="14.76px" style="position: absolute;">
4645          <path d="M1 4.69 L7.38 11.07 L13.76 4.69" fill="transparent" stroke="#000" stroke-width="1px"/>
4646        </svg>
4647      </div>
4648          </span>
4649          <ul id="languagesSwitcherList-1" role="list" class="ly-custom-dropdown-list ly-is-open ly-bright-theme" style="background: #fff; color: #000;  border-style: solid; border-width: 0px; border-radius: 0px; border-color: #000;"><li key="fr"  style="color: #000;  margin: 0px 0px; padding: 0px 0px;" tabindex="-1">
4650                  <a class="ly-custom-dropdown-list-element ly-languages-switcher-link ly-bright-theme"
4651                    href="#"
4652                      data-language-code="fr" 
4653                    
4654                    data-ly-locked="true"><span class="ly-custom-dropdown-list-element-right">
4655                          
4656                            
4657                            
4658                          
4659                            
4660                            French
4661                          
4662</span></a>
4663                </li><li key="en" class="current" style="color: #000;  margin: 0px 0px; padding: 0px 0px;" tabindex="-1">
4664                  <a class="ly-custom-dropdown-list-element ly-languages-switcher-link ly-bright-theme current_lang"
4665                    href="#"
4666                      data-language-code="en" 
4667                    
4668                    data-ly-locked="true"><span class="ly-custom-dropdown-list-element-right">
4669                          
4670                            
4671                            English
4672                          
4673                            
4674                            
4675                          
4676</span></a>
4677                </li></ul>
4678        </div></div>
4679
4680<div data-breakpoint="1000" class="ly-switcher-wrapper ly-breakpoint-2 custom ly-custom ly-hide" style="font-size: 14px; "><div data-dropup="false" onclick="langify.switcher.toggleSwitcherOpen(this)" class="ly-languages-switcher ly-custom-dropdown-switcher ly-bright-theme" style=" margin: 0px 0px;">
4681          <span role="button" tabindex="0" aria-label="Selected language: English" aria-expanded="false" aria-controls="languagesSwitcherList-2" class="ly-custom-dropdown-current" style="background: #fff; color: #000;  border-style: solid; border-width: 0px; border-radius: 0px; border-color: #000;  padding: 0px 0px;"><i class="ly-icon ly-flag-icon ly-flag-icon-en "></i><span class="ly-custom-dropdown-current-inner ly-custom-dropdown-current-inner-text">EN</span>
4682<div aria-hidden="true" class="ly-arrow ly-arrow-black stroke" style="vertical-align: middle; width: 11.48px; height: 11.48px;">
4683        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 11.48 11.48" height="11.48px" width="11.48px" style="position: absolute;">
4684          <path d="M1 3.87 L5.74 8.61 L10.48 3.87" fill="transparent" stroke="#000" stroke-width="1px"/>
4685        </svg>
4686      </div>
4687          </span>
4688          <ul id="languagesSwitcherList-2" role="list" class="ly-custom-dropdown-list ly-is-open ly-bright-theme" style="background: #fff; color: #000;  border-style: solid; border-width: 0px; border-radius: 0px; border-color: #000;"><li key="fr"  style="color: #000;  margin: 0px 0px; padding: 0px 0px;" tabindex="-1">
4689                  <a class="ly-custom-dropdown-list-element ly-languages-switcher-link ly-bright-theme"
4690                    href="#"
4691                      data-language-code="fr" 
4692                    
4693                    data-ly-locked="true"><i class="ly-icon ly-flag-icon ly-flag-icon-fr"></i><span class="ly-custom-dropdown-list-element-right">FR</span></a>
4694                </li><li key="en" class="current" style="color: #000;  margin: 0px 0px; padding: 0px 0px;" tabindex="-1">
4695                  <a class="ly-custom-dropdown-list-element ly-languages-switcher-link ly-bright-theme current_lang"
4696                    href="#"
4697                      data-language-code="en" 
4698                    
4699                    data-ly-locked="true"><i class="ly-icon ly-flag-icon ly-flag-icon-en"></i><span class="ly-custom-dropdown-list-element-right">EN</span></a>
4700                </li></ul>
4701        </div></div>
4702<style>.ly-languages-switcher ul > li[key="en"] {
4703        order: -1 !important;
4704      }
4705      .ly-popup-modal .ly-popup-modal-content ul > li[key="en"],
4706      .ly-languages-switcher.ly-links a[data-language-code="en"] {
4707        order: 1 !important;
4708      }.ly-languages-switcher ul > li[key="fr"] {
4709        order: -2 !important;
4710      }
4711      .ly-popup-modal .ly-popup-modal-content ul > li[key="fr"],
4712      .ly-languages-switcher.ly-links a[data-language-code="fr"] {
4713        order: 2 !important;
4714      }
4715
4716
4717    .ly-flag-icon-en { background-image: url('//montrealweights.ca/cdn/shop/t/240/assets/ly-icon-e
4717n.svg?v=168749326791323067301776075633'); }
4718
4719
4720    .ly-flag-icon-fr { background-image: url('//montrealweights.ca/cdn/shop/t/240/assets/ly-icon-fr.svg?v=49424167760593335881776075633'); }
4721      .ly-breakpoint-1 { display: none; }
4722      @media (min-width:0px) and (max-width: 999px ) {
4723        .ly-breakpoint-1 { display: inline-block; }
4724
4725        .ly-recommendation .ly-banner-content, 
4726        .ly-recommendation .ly-popup-modal-content {
4727          font-size: 14px !important;
4728          color: #000 !important;
4729          background: #fff !important;
4730          border-radius: 0px !important;
4731          border-width: 0px !important;
4732          border-color: #000 !important;
4733        }
4734        .ly-recommendation-form button[type="submit"] {
4735          font-size: 14px !important;
4736          color: #fff !important;
4737          background: #999 !important;
4738        }
4739      }
4740      
4741
4742
4743
4744        .ly-breakpoint-1 .ly-flag-icon-en { background-image: url('//montrealweights.ca/cdn/shop/t/240/assets/ly-icon-en.svg?v=168749326791323067301776075633') !important; }
4745
4746
4747
4748        .ly-breakpoint-1 .ly-flag-icon-fr { background-image: url('//montrealweights.ca/cdn/shop/t/240/assets/ly-icon-fr.svg?v=49424167760593335881776075633') !important; }
4749      .ly-breakpoint-2 { display: none; }
4750      @media (min-width:1000px)  {
4751        .ly-breakpoint-2 { display: inline-block; }
4752
4753        .ly-recommendation .ly-banner-content, 
4754        .ly-recommendation .ly-popup-modal-content {
4755          font-size: 14px !important;
4756          color: #000 !important;
4757          background: #fff !important;
4758          border-radius: 0px !important;
4759          border-width: 0px !important;
4760          border-color: #000 !important;
4761        }
4762        .ly-recommendation-form button[type="submit"] {
4763          font-size: 14px !important;
4764          color: #fff !important;
4765          background: #999 !important;
4766        }
4767      }
4768      
4769
4770
4771
4772        .ly-breakpoint-2 .ly-flag-icon-en { background-image: url('//montrealweights.ca/cdn/shop/t/240/assets/ly-icon-e
4772n.svg?v=168749326791323067301776075633') !important; }
4773
4774
4775
4776        .ly-breakpoint-2 .ly-flag-icon-fr { background-image: url('//montrealweights.ca/cdn/shop/t/240/assets/ly-icon-fr.svg?v=49424167760593335881776075633') !important; }
4777
4778  .ly-switcher-wrapper {
4779    
4780  }
4781  .ly-switcher-wrapper.fixed {
4782    position: fixed;
4783    z-index: 1000;
4784  }
4785  .ly-switcher-wrapper.absolute {
4786    position: absolute;
4787    z-index: 1000;
4788  }
4789  .ly-switcher-wrapper.fixed.top_left,
4790  .ly-switcher-wrapper.absolute.top_left {
4791    top: 0;
4792    left: 0;
4793  }
4794  .ly-switcher-wrapper.fixed.top_right,
4795  .ly-switcher-wrapper.absolute.top_right {
4796    top: 0;
4797    right: 0;
4798  }
4799  .ly-switcher-wrapper.fixed.bottom_left,
4800  .ly-switcher-wrapper.absolute.bottom_left {
4801    bottom: 0;
4802    left: 0;
4803  }
4804  .ly-switcher-wrapper.fixed.bottom_right,
4805  .ly-switcher-wrapper.absolute.bottom_right {
4806    bottom: 0;
4807    right: 0;
4808  }
4809  .ly-switcher-wrapper .shopify-currency-form {
4810    display: inline-block;
4811  }
4812
4813
4814  .ly-currency-switcher {
4815    font-size: 1em;
4816  }
4817
4818  .ly-inner-text {
4819    margin: 0 0.2em;
4820    white-space: nowrap;
4821  }
4822
4823  .ly-flag-icon {
4824    background-size: contain;
4825    background-position: 50%;
4826    background-repeat: no-repeat;
4827    position: relative;
4828    display: inline-block;
4829    width: 1.33333333em;
4830    line-height: 1em;
4831  }
4832  .ly-flag-icon:before {
4833    content: '';
4834    display: inline-block;
4835  }
4836  .ly-flag-icon.ly-flag-squared {
4837    width: 1em;
4838  }
4839  .ly-flag-icon.ly-flag-rounded {
4840    width: 1em;
4841    border-radius: 50%;
4842  }
4843  .ly-languages-switcher {
4844    white-space: nowrap;
4845    list-style-type: none;
4846    display: flex;
4847    font-size: 1em;
4848  }
4849  .ly-languages-switcher-link {
4850    margin: 0 0.2em;
4851    cursor: pointer;
4852    white-space: nowrap;
4853    text-decoration: none;
4854    display: inline-block;
4855  }
4856  .ly-languages-switcher.ly-list {
4857    margin: 0;
4858    padding: 0;
4859    display: block;
4860  }
4861  .ly-languages-switcher.ly-native-select {
4862    
4863  }
4864  .ly-icon {
4865    margin: 0 0.2em;
4866  }
4867
4868  .ly-arrow {
4869    display: inline-block;
4870    position: relative;
4871    vertical-align: middle;
4872    direction: ltr !important;
4873    -webkit-transition: transform 0.25s;
4874    -moz-transition: transform 0.25s;
4875    transition: transform 0.25s;
4876    margin: 0 0.2em;
4877  }
4878  .ly-custom-dropdown-switcher.ly-is-open .ly-arrow {
4879    transform: rotate(180deg);
4880  }
4881  .ly-custom-dropdown-switcher.ly-arrow.ly-arrow-up {
4882    transform: rotate(180deg);
4883  }
4884  .ly-custom-dropdown-switcher.ly-is-open .ly-arrow.ly-arrow-up {
4885    transform: rotate(0deg);
4886  }
4887
4888  .ly-custom-dropdown-switcher {
4889    text-align: left;
4890    display: inline-block;
4891    position: relative;
4892    user-select: none;
4893    cursor: pointer;
4894  }
4895  .ly-custom-dropdown-current {
4896    display: block;
4897    vertical-align: middle;
4898  }
4899  .ly-custom-dropdown-current-inner {
4900    display: inline-block;
4901    vertical-align: middle;
4902  }
4903  .ly-custom-dropdown-current-inner-image {
4904    margin-right: 0.25em;
4905  }
4906  .ly-custom-dropdown-current-inner-text {
4907    margin: 0 0.2em;
4908  }
4909  .ly-custom-dropdown-list {
4910    display: none !important;
4911    list-style: none;
4912    position: absolute;
4913    left: 0;
4914    padding: inherit !important;
4915    padding: 0 !important;
4916    margin: 0;
4917    z-index: 99999;
4918    text-align: left;
4919    width: 100%;
4920    font-size: 1em;
4921  }
4922  .ly-custom-dropdown-list-element {
4923    color: inherit !important;
4924    display: block;
4925  }
4926  .ly-custom-dropdown-list > li {
4927    margin: 0 !important;
4928    display: block;
4929  }
4930  .ly-custom-dropdown-list-element-left {
4931    margin-right: 0.5em;
4932  }
4933  .ly-custom-dropdown-list-element-right {
4934    text-align: left;
4935  }
4936  .ly-custom-dropdown-list-element-left,
4937  .ly-custom-dropdown-list-element-right {
4938    vertical-align: middle;
4939  }
4940  .ly-custom-dropdown-switcher .ly-languages-switcher-link {
4941    margin: 0;
4942  }
4943  .ly-languages-switcher-dropdown {
4944    display: inline-block;
4945  }
4946  .ly-languages-links-switcher {
4947    display: inline-block;
4948  }
4949  .ly-languages-links-switcher > .ly-languages-link {
4950    /*margin-right: 0.5em;*/
4951    padding: inherit !important;
4952    color: inherit !important;
4953  }
4954  .ly-custom-dropdown-list-element {
4955    /*padding: inherit !important;*/
4956    text-decoration: none;
4957  }
4958  .ly-is-uppercase {
4959    text-transform: uppercase;
4960  }
4961  .ly-is-transparent.ly-links,
4962  .ly-is-transparent.ly-list,
4963  .ly-is-transparent.ly-currency-switcher,
4964  .ly-is-transparent.ly-custom-dropdown-switcher,
4965  .ly-is-transparent.ly-custom-dropdown-switcher .ly-custom-dropdown-list {
4966    background: transparent !important;
4967  }
4968  .ly-arrow-up {
4969    transform: rotateZ(180deg);
4970  }
4971
4972  .ly-custom-dropdown-switcher .ly-custom-dropdown-list li.current{
4973    display: none;
4974  }
4975  .ly-custom-dropdown-switcher.ly-is-open .ly-custom-dropdown-list {
4976    display: flex !important;
4977    min-width: 100%;
4978    width: 100%;
4979    flex-direction: column-reverse;
4980    right: 0;
4981    left: auto;
4982    overflow: auto;
4983    max-height: 350px;
4984    max-height: 50vh;
4985  }
4986
4987  .ly-is-dropup .ly-custom-dropdown-list {
4988    bottom: 100%;
4989  }
4990  .ly-hide {
4991    display: none !important;
4992  }
4993  body.ly-force-off #preview-bar-iframe,
4994  body.ly-force-off .ly-languages-switcher {
4995    display: none !important;
4996  }
4997
4998  .ly-close {
4999    position: absolute;
5000    opacity: 0.3;
5001    right: 0;
5002    top: 0;
5003    width: 3em;
5004    height: 3em;
5005    display: inline-block !important;
5006    background: rbga(0,0,0,0);
5007    padding: 1em;
5008  }
5009  .ly-close:hover {
5010    opacity: 1;
5011  }
5012  .ly-close .inner {
5013    transform: translateX(-50%);
5014    position: relative;
5015    width: 100%;
5016    height: 100%;
5017    display: inline-block;
5018  }
5019  .ly-close .inner:before, .ly-close .inner:after {
5020    position: absolute;
5021    left: 1em;
5022    content: ' ';
5023    height: 1em;
5024    width: 2px;
5025    background-color: #333;
5026  }
5027  .ly-close .inner:before {
5028    transform: rotate(45deg);
5029  }
5030  .ly-close .inner:after {
5031    transform: rotate(-45deg);
5032  }
5033
5034
5035
5036  .ly-popup-switcher {}
5037  .ly-popup-switcher .ly-popup-current {
5038    cursor: pointer;
5039    background: transparent;
5040  }
5041  .ly-popup-switcher .ly-popup-modal {
5042    position: fixed;
5043    z-index: 1000;
5044    top: 0;
5045    left: 0;
5046    width: 100%;
5047    height: 100%;
5048    display: none;
5049    justify-content: center; 
5050    align-items: center;
5051  }
5052  .ly-popup-switcher.ly-is-open .ly-popup-modal {
5053    display: flex;
5054  }
5055  .ly-popup-switcher .ly-popup-modal-backdrop {
5056    position: fixed;
5057    width: 100%;
5058    height: 100%;
5059    z-index: 0;
5060    top: 0;
5061    left: 0;
5062    background:rgba(0, 0, 0, 0.38);
5063    cursor: pointer;
5064  }
5065  .ly-popup-switcher .ly-popup-modal .ly-popup-modal-content {
5066    padding: 1em;
5067    position: absolute;
5068    z-index: 1000;
5069  }
5070  .ly-popup-switcher .ly-popup-modal .ly-popup-modal-content ul {
5071    padding: 0;
5072    margin: 12px 0 0 0;
5073    list-style: none;
5074    display: flex;
5075    flex-direction: column;
5076  }
5077  .ly-popup-switcher .ly-popup-modal .ly-popup-modal-content ul .ly-languages-switcher-link {
5078    margin: 0;
5079    border: solid 1px;
5080    padding: 1em;
5081    display: block;
5082    min-width: 225px;
5083    margin-top: 1em;
5084  }
5085  .ly-popup-switcher .ly-popup-modal .ly-popup-modal-content ul .ly-languages-switcher-link.current_lang {
5086    display: none;
5087  }
5088
5089
5090
5091  /* Recommendation */
5092  .ly-recommendation {
5093    display: none;
5094  }
5095  .ly-recommendation.ly-is-open {
5096    display: inline-block;
5097  }
5098  .ly-recommendation form {
5099    display: inline-block;
5100  }
5101  .ly-recommendation .ly-arrow,
5102  .ly-arrow.recommendation {
5103    display: none;
5104  }
5105  .ly-recommendation .ly-arrow.recommendation {
5106    display: inline-block;
5107  }
5108  .ly-recommendation .ly-switcher-wrapper {
5109    font-size: 1em !important;
5110  }
5111  .ly-recommendation .ly-popup-modal .ly-popup-switcher .ly-popup-modal .ly-popup-modal-backdrop {
5112    display: none;
5113  }
5114  .ly-recommendation-form button[type="submit"] {
5115    cursor: pointer;
5116  }
5117
5118  /* Recommendation Banner */
5119  .ly-recommendation .ly-banner {
5120    position: fixed;
5121    z-index: 100000;
5122    width: 100%;
5123  }
5124  .ly-recommendation .ly-banner .ly-banner-content {
5125    width: 100%;
5126    padding: 1em 30px 1em 1em;
5127    box-shadow: 0 0 20px rgba(0,0,0,.25);
5128  }
5129  .ly-recommendation .ly-banner.top {
5130    top: 0;
5131  }
5132  .ly-recommendation .ly-banner.bottom {
5133    bottom: 0;
5134  }
5135  .ly-recommendation .ly-banner .ly-banner-content .ly-switcher-wrapper {
5136    position: relative !important;
5137    margin: 0 !important;
5138    display: inline-block !important;
5139  }
5140  .ly-recommendation .ly-banner .ly-recommendation-form button[type="submit"] {
5141    margin-left: 10px;
5142  }
5143
5144
5145  /* Recommendation Popup */
5146  .ly-recommendation .ly-popup-modal {
5147    position: fixed;
5148    z-index: 10000;
5149  }
5150  .ly-recommendation .ly-popup-modal .ly-switcher-wrapper {
5151    position: relative !important;
5152    margin: 0 !important;
5153    display: inline-block !important;
5154  }
5155  .ly-recommendation .ly-popup-modal-backdrop {
5156    position: fixed;
5157    width: 100%;
5158    height: 100%;
5159    z-index: 1000;
5160    top: 0;
5161    left: 0;
5162    background:rgba(0, 0, 0, 0.38);
5163  }
5164  .ly-recommendation .ly-popup-modal .ly-popup-modal-content {
5165    padding: 1em 30px 1em 1em;
5166  }
5167  .ly-recommendation .ly-popup-modal .ly-popup-modal-content .ly-languages-switcher {
5168    position: relative !important;
5169    margin: 0 !important;
5170  }
5171  .ly-recommendation .ly-popup-modal .ly-popup-modal-content h3 {
5172    margin: 0 2em 1em 0;
5173    font-size: inherit;
5174    position: relative;
5175  }
5176  .ly-recommendation .ly-popup-modal.top_left { top: 0; left: 0; margin-right: 0 !important; margin-bottom: 0 !important; padding-right: 0 !important; padding-bottom: 0 !important;}
5177  .ly-recommendation .ly-popup-modal.top_center { top: 0; left: 50%; transform: translateX(-50%); margin-right: 0 !important; margin-bottom: 0 !important; margin-left: 0 !important; padding-right: 0 !important; padding-bottom: 0 !important; padding-left: 0 !important;}
5178  .ly-recommendation .ly-popup-modal.top_right { top: 0; right: 0; margin-left: 0 !important; margin-bottom: 0 !important; padding-left: 0 !important; padding-bottom: 0 !important; }
5179  .ly-recommendation .ly-popup-modal.center_center { top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%); margin: 0 !important; padding: 0 !important; }
5180  .ly-recommendation .ly-popup-modal.bottom_left { bottom: 0; left: 0; margin-right: 0 !important; margin-top: 0 !important; padding-right: 0 !important; padding-top: 0 !important; }
5181  .ly-recommendation .ly-popup-modal.bottom_center { bottom: 0; left: 50%; transform: translateX(-50%); margin-right: 0 !important; margin-left: 0 !important; margin-top: 0 !important; padding-right: 0 !important; padding-left: 0 !important; padding-top: 0 !important; }
5182  .ly-recommendation .ly-popup-modal.bottom_right { bottom: 0; right: 0; margin-left: 0 !important; margin-top: 0 !important; padding-left: 0 !important; padding-top: 0 !important; }
5183
5184
5185
5186
5187
5188  
5189</style>
5190    
5191    <!-- langify-v2-scripts-end -->
5192
5193    <!-- Widget : Kettlegrip Free Gift -->
5194    <div data-rebuy-id="207867"></div>
5195    <!-- End Widget : Kettlegrip Free Gift -->
5196
5197    <!-- navidium code -->
5198    <style>
5199      .snize-product.snize-product-pre-order:has([href*='navidium']) {
5200        display: none !important;
5201      }
5202    </style>
5203    <!-- navidium code end -->
5204
5205    
5206
5207    
5208    
5208<script async src="https://cdn.rebuyengine.com/onsite/js/storefront-helper.js"></script>
5208
5209
5210<script>
5211  const translations = {
5212    fr: {
5213      announcement_bar: {
5214        bars: [{ messages: ['Message test 1 !', 'Message test 2 !'] }, { messages: ['Palier !', 'Palier 2 !'] }],
5215      },
5216      smart_cart: {
5217        bmsm_discount_message:
5218          'Achetez {{quantity}} et économisez {{discount}}',
5219        bmsm_discount_success: 'Plus vous achetez, plus vous économisez !',
5220        cart_title: 'VOTRE PANIER',
5221        checking_out_label: 'Redirection en cours...',
5222        checkout_label: 'Passer à la caisse',
5223        continue_shopping_label: 'Continuer les achats',
5224        discount_button_label: 'appliquer',
5225        discount_code_label: 'Code de réduction ou Carte-cadeau',
5226        discount_invalid_message: 'Code invalide',
5227        discount_label: 'Code de réduction ou Carte-cadeau',
5228        empty_cart_markup:
5229          'Oups... Votre panier est vide! 😔 Consultez les articles préférés de nos clients et commencez à ajouter des articles à votre panier.',
5230        gift_title: 'Cadeaux gratuits',
5231        login_title: 'Titre de connexion ici',
5232        notes_label: 'Ajouter une note (optionnel)',
5233        notes_placeholder: 'Écrivez votre note ici',
5234        notes_remaining_characters: '',
5235        select_gift: 'Choisissez votre cadeau',
5236        subtotal_plural_text: 'Sous-total',
5237        subtotal_singular_text: 'Sous-total',
5238        terms_and_conditions_label: 'J’accepte les conditions générales',
5239        view_cart_label: 'Voir le panier',
5240        view_cart_working_label: 'Panier en cours...',
5241      },
5242      cart_switch_to_subscription: {
5243        downgrading_label: 'Passage à l’offre inférieure…',
5244        onetime_option_group_label: 'Payer le plein prix',
5245        onetime_option_label: 'Achat unique',
5246        subscription_option_group_label: 'S’abonner et économiser {{subscription_discount}}%',
5247        upgrade_to_subscription_label:
5248          'Passer à l’abonnement et économiser {{subscription_discount}}%',
5249        upgrade_to_subscription_without_discount_label: 'Passer à l’abonnement',
5250        upgrading_label: 'Mise à niveau en cours…',
5251      },
5252      tier_progress_bar: {
5253        discount_amount_remaining_label_text:
5254          'Plus que {{remaining_amount}} pour obtenir {{discount_amount}} de rabais sur votre commande !',
5255        discount_amount_reached_label_text:
5256          'Vous avez débloqué {{discount_amount}} de rabais sur votre commande !',
5257        free_shipping: 'LIVRAISON GRATUITE !',
5258        free_shipping_reached: "VOUS AVEZ OBTENU LA <b>LIVRAISON GRATUITE!</b> <i>(Des conditions s'appliquent)</i>",
5259        free_shipping_remaining: 'PLUS QUE <span></span> POUR OBTENIR LA LIVRAISON GRATUITE',
5260        product_amount_reached_label_text: 'Vous avez débloqué un {{product_title}} gratuit !',
5261        product_amount_remaining_label_text:
5262          "<b>Tu es à <span class='helper-amount'></span></b> de débloquer ton cadeau gratuit du Printemps 2025'!",
5263      },
5264      widget: {
5265        add_to_cart: 'Ajouter',
5266        added_to_cart: 'ajouté',
5267        adding_to_cart: 'Ajout au panier…',
5268        cart_switch_to_onetime: 'Passer à l’achat unique',
5269        cart_switch_to_subscription: 'Passer à l’abonnement',
5270        cart_switch_to_subscription_footer: '',
5271        continue: 'continuer',
5272        decline: 'refuser',
5273        delivery_frequency_label: '',
5274        description: 'Vous aimerez aussi',
5275        learn_more_label: '',
5276        remove_body: 'Supprimer cet article ?',
5277        remove_confirm: 'Confirmer',
5278        remove_deny: 'Annuler',
5279        remove_from_cart: 'Retirer',
5280        remove_title: 'Supprimer l’article',
5281        removed_from_cart: 'Retiré',
5282        removing_from_cart: 'Retrait…',
5283        sold_out_label: 'En rupture',
5284        super_title: '',
5285        thank_you_button: '',
5286        thank_you_description: 'Description de remerciement',
5287        thank_you_title: '',
5288        timer_title: 'Votre offre se termine dans : ',
5289        title: '',
5290        total_price_label: 'Prix total : ',
5291        upgrade_to_subscription: 'Passer à l’abonnement',
5292        variant_option: 'Ajouter',
5293        variant_options: '',
5294      },
5295      12345: {
5296        add_to_cart: 'Ajouter au panier (Widget ID : 12345)',
5297      },
5298    },
5299  };
5300
5301  updateSmartCartLanguage = () => {
5302    const locale = Shopify?.locale;
5303    const translation = translations[locale]?.smart_cart;
5304    const subscriptionTranslations = translations[locale]?.cart_switch_to_subscription;
5305    const tierPrgoressBarTranslations = translations[locale]?.tier_progress_bar;
5306    const components = Rebuy.SmartCart.settings.components;
5307    const buyMoreSaveMore = Rebuy.SmartCart.settings.buy_more_save_more;
5308    const emptyCart = Rebuy.SmartCart.settings.empty_cart_markup;
5309    const switchToSubscription = Rebuy.SmartCart.settings.switch_to_subscription;
5310    const storefrontHelper = new ShopifyStorefrontHelper();
5311
5312    if (locale && translation && components) {
5313      components.forEach((component) => {
5314        switch (component.type) {
5315          case 'checkout': {
5316            const checkoutTranslation = {
5317              checkout_label: translation.checkout_label,
5318              view_cart_label: translation.view_cart_label,
5319              checking_out_label: translation.checking_out_label,
5320              view_cart_working_label: translation.view_cart_working_label,
5321              continue_shopping_label: translation.continue_shopping_label,
5322              terms_and_conditions_label: translation.terms_and_conditions_label,
5323            };
5324            Object.assign(component.settings.language, checkoutTranslation);
5325            break;
5326          }
5327          case 'cart_subtotal': {
5328            const cartSubtotalTranslation = {
5329              subtotal_plural_text: translation.subtotal_plural_text,
5330              subtotal_singular_text: translation.subtotal_singular_text,
5331            };
5332            Object.assign(component.settings, cartSubtotalTranslation);
5333            break;
5334          }
5335          case 'tiered_progress_bar': {
5336            const progressBarTranslation = {
5337              free_shipping_reached: tierPrgoressBarTranslations.free_shipping_reached,
5338              free_shipping_remaining: tierPrgoressBarTranslations.free_shipping_remaining,
5339              product_amount_reached_label_text: tierPrgoressBarTranslations.product_amount_reached_label_text,
5340              product_amount_remaining_label_text: tierPrgoressBarTranslations.product_amount_remaining_label_text,
5341              discount_amount_remaining_label_text: tierPrgoressBarTranslations.discount_amount_remaining_label_text,
5342              discount_amount_reached_label_text: tierPrgoressBarTranslations.discount_amount_reached_label_text,
5343            };
5344            if (component.settings.bars) {
5345              component.settings.bars.forEach((bar) => {
5346                Object.assign(bar.language, progressBarTranslation);
5347                bar.earnedProducts?.forEach((product) => {
5348                  storefrontHelper.updateProductJSON(product);
5349                });
5350                bar.tiers.forEach((tier, index) => {
5351                  if (tier.type !== 'shipping') {
5352                    Object.assign(tier, progressBarTranslation);
5353                    if (tier.type === 'product') {
5354                      storefrontHelper.updateProductJSON(tier.products[0]);
5355                    }
5356                  }
5357                  if (tier.type === 'shipping') {
5358                    document.querySelectorAll('.rebuy-cart__progress-step-label')[index].innerText =
5359                      tierPrgoressBarTranslations.free_shipping;
5360                  }
5361                });
5362              });
5363            }
5364            break;
5365          }
5366          case 'title_bar': {
5367            const titleBarTranslation = {
5368              title: translation.cart_title,
5369            };
5370            Object.assign(component.settings, titleBarTranslation);
5371            break;
5372          }
5373          case 'login': {
5374            const loginTranslation = {
5375              title: translation.login_title,
5376            };
5377            Object.assign(component.settings.language, loginTranslation);
5378            break;
5379          }
5380          case 'discount_code': {
5381            const discountCodeTranslation = {
5382              discount_code_label: translation.discount_code_label,
5383              discount_button_label: translation.discount_button_label,
5384              discount_invalid_message: translation.discount_invalid_message,
5385            };
5386            Object.assign(component.settings.language, discountCodeTranslation);
5387            break;
5388          }
5389          case 'notes': {
5390            const notesTranslation = {
5391              notes_label: translation.notes_label,
5392              notes_placeholder: translation.notes_placeholder,
5393              notes_remaining_characters: translation.notes_remaining_characters,
5394            };
5395            Object.assign(component.settings.language, notesTranslation);
5396            break;
5397          }
5398        }
5399      });
5400
5401      // Handle 'buy_more_save_more' settings
5402      if (buyMoreSaveMore) {
5403        const bmsmTranslation = {
5404          bmsm_discount_message: translation.bmsm_discount_message,
5405          bmsm_discount_success: translation.bmsm_discount_success,
5406        };
5407
5408        Object.assign(buyMoreSaveMore.language, bmsmTranslation);
5409      }
5410
5411      // Handle 'empty cart' settings
5412      if (emptyCart) {
5413        const emptyCartTranslation = {
5414          empty_cart_markup: translation.empty_cart_markup,
5415        };
5416
5417        Object.assign(Rebuy.SmartCart.settings, emptyCartTranslation);
5418      }
5419
5420      if (switchToSubscription) {
5421        const subscriptionTranslation = {
5422          downgrading_label: subscriptionTranslations.downgrading_label,
5423          onetime_option_group_label: subscriptionTranslations.onetime_option_group_label,
5424          onetime_option_label: subscriptionTranslations.onetime_option_label,
5425          subscription_option_group_label: subscriptionTranslations.subscription_option_group_label,
5426          upgrade_to_subscription_label: subscriptionTranslations.upgrade_to_subscription_label,
5427          upgrade_to_subscription_without_discount_label:
5428            subscriptionTranslations.upgrade_to_subscription_without_discount_label,
5429          upgrading_label: subscriptionTranslations.upgrading_label,
5430        };
5431
5432        Object.assign(switchToSubscription.language, subscriptionTranslation);
5433      }
5434
5435      /*if (document.querySelector('.rebuy-cart__flyout-installments')) {
5436        document.querySelector(
5437          '.rebuy-cart__flyout-installments'
5438        ).innerHTML = `ou 12 versements de ${Rebuy.util.formatMoney(Rebuy.Cart.cart.total_price / 1200)} avec 
5439        <span>Shop Pay</span>`;
5440      }*/
5441    }
5442  };
5443
5444  updateWidgetLanguage = (widget) => {
5445    const locale = Shopify?.locale;
5446    const widgetTranslation = translations[locale]?.[widget.id];
5447    const globalTranslation = translations[locale]?.widget;
5448
5449    if (locale && widgetTranslation) {
5450      Object.assign(widget.data.settings.language, widgetTranslation);
5451      widget.compileConfig();
5452    } else if (locale && globalTranslation) {
5453      Object.assign(widget.data.settings.language, globalTranslation);
5454      widget.compileConfig();
5455    }
5456  };
5457
5458  updateTierLanguage = () => {
5459    const locale = Shopify?.locale;
5460    const giftTitle = document.querySelector('.rebuy-cart__progress-gifts-title');
5461    const variantPromt = document.querySelectorAll('.rebuy-cart__progress-gift-variant-select-prompt');
5462    const firstOption = document.querySelectorAll('.rebuy-cart__progress-gift-variant-select option[value=""]');
5463
5464    if (giftTitle) {
5465      giftTitle.textContent = translations[locale]?.smart_cart.gift_title;
5466    }
5467
5468    if (variantPromt) {
5469      variantPromt.forEach((prompt) => (prompt.textContent = translations[locale]?.smart_cart.select_gift));
5470    }
5471
5472    if (firstOption) {
5473      firstOption.forEach((prompt) => (prompt.textContent = translations[locale]?.smart_cart.select_gift));
5474    }
5475  };
5476
5477  updateAnnouncementBar = () => {
5478    const locale = Shopify?.locale;
5479    const announcementTranslations = translations[locale]?.announcement_bar.bars;
5480    const components = Rebuy.SmartCart.settings.components;
5481
5482    if (announcementTranslations) {
5483      const announcementBars = components.filter((c) => c.type === 'announcement_bar');
5484      announcementBars.forEach((bar, index) => {
5485        Object.assign(bar.settings, announcementTranslations[index]);
5486      });
5487    }
5488  };
5489
5490  // Update Smart Cart with locale translations
5491  document.addEventListener('rebuy:smartcart.ready', () => {
5492    if (Shopify.locale != 'en') {
5493      updateSmartCartLanguage();
5494      updateAnnouncementBar();
5495    } else {
5496      if (document.querySelector('.rebuy-cart__flyout-installments')) {
5497        document.querySelector(
5498          '.rebuy-cart__flyout-installments'
5499        ).innerHTML = `or 12 installments of ${Rebuy.util.formatMoney(Rebuy.Cart.cart.total_price / 1200)} with 
5500        <span>Shop Pay</span>`;
5501      }
5502    }
5503  });
5504
5505  // Update widgets with locale translations
5506  document.addEventListener('rebuy.ready', (event) => {
5507    const widget = event.detail.widget;
5508    updateWidgetLanguage(widget);
5509  });
5510
5511  // Update free gifts text
5512  document.addEventListener('rebuy:cart.change', () => {
5513    if (Shopify.locale != 'en') {
5514      setTimeout(() => {
5515        updateTierLanguage();
5516        updateSmartCartLanguage();
5517        updateAnnouncementBar();
5518      }, 0);
5519    } else {
5520      setTimeout(() => {
5521        if (document.querySelector('.rebuy-cart__flyout-installments')) {
5522          document.querySelector(
5523            '.rebuy-cart__flyout-installments'
5524          ).innerHTML = `or 12 installments of ${Rebuy.util.formatMoney(Rebuy.Cart.cart.total_price / 1200)} with 
5525        <span>Shop Pay</span>`;
5526        }
5527      }, 0);
5528    }
5529  });
5530
5531  // update product JSON every time products are loaded or changed
5532  document.addEventListener('rebuy.productsChange', (e) => {
5533    const widget = e.detail.widget;
5534    const storefrontHelper = new ShopifyStorefrontHelper();
5535    // loop over products in the widget and enrich product json
5536    widget.data.products.forEach((product) => storefrontHelper.updateProductJSON(product));
5537  });
5538</script>
5538
5539
5540
5541    
5541<script src="//montrealweights.ca/cdn/shop/t/240/assets/ztranslate.js?v=73218217912072904231776075633" defer="defer"></script>
5541
5542
5543    
5543<script>
5544var script_loaded = !1;
5545function loadJSscripts() {
5546  if (!script_loaded) {
5547    observer.disconnect(),
5548      (script_loaded = !0),
5549      document.querySelectorAll("iframe.lazy").forEach((t) => {
5550        (datasrc = t.dataset.src), null != datasrc && (t.src = datasrc);
5551      });
5552    var t = document.getElementsByTagName("script");
5553    for (i = 0; i < t.length; i++)
5554      if (
5555        (null !== t[i].getAttribute("data-src") &&
5556          (t[i].setAttribute("src", t[i].getAttribute("data-src")),
5557          delete t[i].dataset.src),
5558        "text/lazyload" == t[i].getAttribute("type"))
5559      ) {
5560        for (
5561          var e = document.createElement("script"), a = 0;
5562          a < t[i].attributes.length;
5563          a++
5564        ) {
5565          var n = t[i].attributes[a];
5566          e.setAttribute(n.name, n.value);
5567        }
5568        (e.type = "text/javascript"),
5569          (e.innerHTML = t[i].innerHTML),
5570          t[i].parentNode.removeChild(t[i]),
5571          t[i].parentNode.insertBefore(e, t[i]);
5572      }
5573    var r = document.getElementsByTagName("link");
5574    for (i = 0; i < r.length; i++)
5575      null !== r[i].getAttribute("data-href") &&
5576        (r[i].setAttribute("href", r[i].getAttribute("data-href")),
5577        delete r[i].dataset.href);
5578    document.dispatchEvent(new CustomEvent("asyncLazyLoad"));
5579  }
5580}
5581var activityEvents = [
5582  "mousedown",
5583  "mousemove",
5584  "keydown",
5585  "scroll",
5586  "touchstart",
5587  "click",
5588  "keypress",
5589  "touchmove",
5590];
5591activityEvents.forEach(function (t) {
5592  window.addEventListener(t, loadJSscripts, !1);
5593}),
5594  window.addEventListener
5595    ? window.addEventListener("load", function () {}, !1)
5596    : window.attachEvent
5597    ? window.attachEvent("onload", function () {})
5598    : (window.onload = (t) => {});
5599
5600</script>
5600
5601
5602    <!-- Stamped Main Script: Begin -->
5603    
5603<script type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js" async></script>
5603
5604    
5604<script type="text/javascript">
5605      StampedFn.init({ apiKey: 'pubkey-3C6H7Jmq47mcF8739ZYPDCR902e27v', sId: '236664' });
5606    </script>
5606
5607    <!-- Stamped Main Script: End -->
5608
5609    
5610<!-- Artel chat widget -->
5611<script src="https://app.artelagency.com/api/w/mtw-3a5672/embed.js"></script>
vendor: 1 bytes, line 5611
5611
5612<script>
5613(function () {
5614  var GAP = 16, mover, iframe, treated = false, expanded = false;
5615
5616  // Small zone = just the launcher bubble corner. Big zone = open chat panel.
5617  var SMALL_W = 120, SMALL_H = 120;
5618  var BIG_W = 460, BIG_H = 720;
5619
5620  function setClip(big) {
5621    if (!iframe) return;
5622    var w = big ? BIG_W : SMALL_W, h = big ? BIG_H : SMALL_H;
5623    iframe.style.setProperty(
5624      'clip-path',
5625      'inset(calc(100% - ' + h + 'px) 0 0 calc(100% - ' + w + 'px))',
5626      'important'
5627    );
5628    expanded = big;
5629  }
5630
5631  function locate() {
5632    iframe = document.querySelector('iframe[src*="artelagency"]');
5633    if (!iframe) return false;
5634    var el = iframe, fixedEl = null;
5635    while (el && el !== document.body) {
5636      if (getComputedStyle(el).position === 'fixed') { fixedEl = el; break; }
5637      el = el.parentElement;
5638    }
5639    mover = fixedEl || iframe;
5640    if (treated) return true;
5641
5642    var r = mover.getBoundingClientRect();
5643    var isLarge = r.width > innerWidth * 0.5 || r.height > innerHeight * 0.5;
5644
5645    if (isLarge && mover !== iframe) {
5646      mover.classList.add('artel-atc-wrap');
5647      var st = document.createElement('style');
5648      st.textContent =
5649        '.artel-atc-wrap{pointer-events:none !important}' +
5650        '.artel-atc-wrap > *{pointer-events:auto !important}';
5651      document.head.appendChild(st);
5652      console.log('[ATC fix] CASE A: wrapper neutralized');
5653      treated = true;
5654    } else if (isLarge && mover === iframe) {
5655      // CASE B: iframe itself is the big box.
5656      // Default: clip to a LAUNCHER-SIZED corner only. Expand only while chat is open.
5657      setClip(false);
5658      console.log('[ATC fix] CASE B: iframe clipped to launcher zone ' + SMALL_W + 'x' + SMALL_H);
5659
5660      // User clicks INTO the iframe (opens chat) → parent window blurs
5661      window.addEventListener('blur', function () {
5662        setTimeout(function () {
5663          if (document.activeElement === iframe && !expanded) {
5664            setClip(true);
5665            console.log('[ATC fix] chat opened → expanded to ' + BIG_W + 'x' + BIG_H);
5666          }
5667        }, 0);
5668      });
5669
5670      // User clicks back on the page → collapse to launcher zone
5671      document.addEventListener('click', function () {
5672        if (expanded) {
5673          setClip(false);
5674          console.log('[ATC fix] page clicked → collapsed to launcher zone');
5675        }
5676      }, true);
5677
5678      treated = true;
5679    } else {
5680      console.log('[ATC fix] CASE C: small element, nothing to fix');
5681      treated = true;
5682    }
5683    return true;
5684  }
5685
5686  function getBar() {
5687    var bar = null;
5688    document.querySelectorAll('body *').forEach(function (el) {
5689      var s = getComputedStyle(el);
5690      if (s.position !== 'fixed') return;
5691      var r = el.getBoundingClientRect();
5692      if (r.width > innerWidth * 0.6 && r.bottom > innerHeight - 5 &&
5693          r.height > 40 && r.height < 220 &&
5694          /add to cart|ajouter au panier/i.test(el.innerText || '')) bar = el;
5695    });
5696    return bar;
5697  }
5698
5699  function adjust() {
5700    if (!mover && !locate()) return;
5701    var bar = getBar();
5702    mover.style.setProperty(
5703      'transform',
5704      bar ? 'translateY(-' + (bar.getBoundingClientRect().height + GAP) + 'px)' : 'none',
5705      'important'
5706    );
5707  }
5708
5709  function start() {
5710    var t = 0, iv = setInterval(function () {
5711      if (locate()) console.log('[ATC fix] widget located:', mover);
5712      if (mover || ++t > 30) {
5713        clearInterval(iv);
5714        if (!mover) console.warn('[ATC fix] Artel iframe not found');
5715        adjust();
5716      }
5717    }, 400);
5718    addEventListener('scroll', adjust, { passive: true });
5719    addEventListener('resize', adjust);
5720  }
5721  document.readyState === 'loading' ? addEventListener('DOMContentLoaded', start) : start();
5722})();
5723</script>
5723
5724
5725  <div id="shopify-block-AQTlTWDBDUEVwNWNoZ__10641372206048101839" class="shopify-block shopify-app-block">
5726<script>
5727  window.Rebuy = window.Rebuy || {};
5728  window.Rebuy.customer = window.Rebuy.customer || {};
5729  
5730  window.Rebuy.market = window.Rebuy.market || {};
5731  
5732  window.Rebuy.market.country = "CA";
5733  
5734  
5735  window.Rebuy.market.locale = "en";
5736  
5737</script>
5737
5738
5739
5740
5741
5742
5743</div><div id="shopify-block-AcFN1M1hVN1RCVTB6Y__5057006142565981955" class="shopify-block shopify-app-block">
5743<script type="text/javascript">
5744  const promoConfig = {
5745    fontSize: '16',
5746    logoType: 'logo',
5747    logoColor: 'blue',
5748    pageType: 'cart',
5749    textAlign: 'left'
5750  };
5751  const drawerAppData = '{"theme_app_configuration"=>Metafields::MetafieldDrop}';
5752  const drawerPromoAppConfig = (drawerAppData == '{}') ? {} : JSON.parse('{"region_public_keys":{"us":"","ca":"YZQKN6JPZSXOP6K3"}}') ;
5753  const drawerHasRegionKeys = drawerPromoAppConfig.hasOwnProperty('region_public_keys');
5754  let drawerPublicKey = null;
5755  if (Shopify.country == 'US') 
5756    drawerPublicKey = (drawerHasRegionKeys) ? drawerPromoAppConfig.region_public_keys.us : null;
5757  if (Shopify.country == 'CA') 
5758    drawerPublicKey = (drawerHasRegionKeys) ? drawerPromoAppConfig.region_public_keys.ca : null;      
5759  const affirmPublicApiKeyCartDrawer = ('') ? '' : drawerPublicKey;
5760  const customDrawerTotalSelector = ('') ? '' : null;
5761  const customAdjacentElementSelector = ('') ? '' : null;
5762  const customAddToCartSelector = ('') ? '' : null;
5763  const customCartDrawerSelector = ('') ? '' : null;
5764  const publicKeyEntered = ('') ? '' : null;
5765</script>
5765
5766
5767</div><div id="shopify-block-AR2FMSW9nNERWcU9kV__6174324309569838175" class="shopify-block shopify-app-block">
5768
5769
5770<div class="smile-shopify-init"
5771  data-channel-key="channel_7PYIAe0hu94Ob608ZwYCny9g"
5772  
5773></div>
5774
5775
5776</div><div id="shopify-block-AVElYbHJnemxjbVVrN__10840395464443086010" class="shopify-block shopify-app-block">
5777
5778
5779<script>
5780  console.log("[Alia app extension] v1.0.5");
5781
5782  const BACKEND_URL = "https://backend.alia-prod.com";
5783
5784  window.ALIA_SHOPIFY_EXTENSION_INFO = {
5785    customerID: "",
5786    country: "CA",
5787    market: "ca",
5788    language: "en"
5789  }
5790
5791  if (document.readyState !== "loading") {
5792    initAlia();
5793  } else {
5794    document.addEventListener("DOMContentLoaded", () => initAlia(), { once: true });
5795  }
5796
5797  async function initAlia() {
5798    const url = BACKEND_URL + "/public/launcher.js?shopifyUrl=mtlneedsweights.myshopify.com";
5799    const script = document.createElement("script");
5800    script.src = url;
5801    script.async = true;
5802    document.head.appendChild(script);
5803  }
5804</script>
5804
5805
5806</div>
5806<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
5806
5807</body>
5808</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.