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 & 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 & 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®ion_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 & 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 & 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 & 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 & 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 & 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 & 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®ion_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®ion_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&width=50 50w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&width=100 100w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&width=150 150w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&width=200 200w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&width=250 250w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&width=300 300w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&width=400 400w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&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&width=50 50w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&width=100 100w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&width=150 150w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&width=200 200w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&width=250 250w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&width=300 300w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&
1847width=400 400w, //montrealweights.ca/cdn/shop/files/Dark_logo.png?v=1667213134&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 & 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 & 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 & 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 & 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®ion_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 += '¤cy_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.