PageSourceSearch

https://myfirmtech.com/

html myfirmtech.com collected 2026-10-03 22:46:19 UTC 735,065 bytes, 6,767 lines download raw bytes

1<!doctype html>
2
3<html lang="en" dir="ltr">
4  <head>
5 
6<!--LOOMI SDK-->
7<!--DO NOT EDIT-->
8<link rel="preconnect"  href="https://live.visually-io.com" crossorigin data-em-disable>
9<link rel="dns-prefetch" href="https://live.visually-io.com" data-em-disable>
10<script type="text/javascript" data-em-disable data-vsly>
11    (()=> {
12        const env = 2;
13        var store = "myfirmtech.myshopify.com";
14        var alias = store.replace(".myshopify.com", "").replaceAll("-", "_").toUpperCase();
15        var jitsuKey =  "js.57731776662";
16        var themeId = 137274720406;
17        var role = "main";
18        window.loomi_ctx = {...(window.loomi_ctx || {}),storeAlias:alias,jitsuKey,env,themeId,role};
19        
20        
21    
22	
23        
24        window.loomi_ctx.blockingConcent = false;
25        loomi_ctx.ttl=1793657581;
26        loomi_ctx.embeddedTests=[];
27    })()
28</script>
vendor: 1 bytes, line 28
28
29<script type="text/javascript" data-em-disable>
30    !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;
30o++)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";
30const 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=>{let t=Re();return _(()=>!!window.loomi_api.vslyResolveThemeTestUrl)&&(t=_(()=>window.loomi_api.vslyResolveThemeTestUrl(t),t)),t.searchParams.append("preview_theme_id",`${e||""}`),t},be=()=>{const e="vsly-tts";if($e(e)||De(e))return;ke();const t=Ie("");t.searchParams.append(e,"1"),sessionStorage.setItem(e,`${f().valueOf()}`),document.body.style.opacity=0,location.replace(t.href)},xe=()=>
30{const e="vsly_disableThemeTest",t=$e("disableThemeTest")||!!sessionStorage.getItem(e);return t&&sessionStorage.setItem(e,"1"),ie()||t},Ce=()=>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=e=>{const t=sessionStorage.getItem(e);if(t){const e=f().valueOf()-Number(t);return Number.isFinite(e)&&e<864e5}return t},Ue="data-rid",Me="data-alchemy-element-root";let qe,Fe=0;function Be(e){return e.hasAttribute(Ue)||e.hasAttribute(Me)}const Je=function(e,t){try{return Promise.resolve(v(()=>!!document&&!!document.body&&!!document.querySelector,50,200)).then(function(){!function(){if("undefined"==typeof document)return;Ve||(Ve=new MutationObserver(He)),He();const e="spa"===_(()=>window.vslyIntegrationType,"static")?document:document.body;Ve.observe(e,{childList:!0,subtree:!0,characterData:!0,attributes:!1})}(),e&&(k=e),t&&(T=t)})}catch(e){return Promise.reject(e)}};let Ve;function He(){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,He,100,10);if($.has(e.id))return;if(function(e,t){if(e&&(void 0===qe&&(qe=!!document.querySelector(`[${Me}],[${Ue}]`)),qe)&&function(e){return["replace","appendBefore","appendAfter","compound","widget","moveElem"].includes(e.kind)}(t))for(let t=e;t;t=t.parentElement)if(Be(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===Fe&&(Fe=Date.now());const n=Date.now()-Fe,r=window.vslyHydrationGrace||500;return t&&n>r}())return;const n=Ge(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)}}),Ke()}function Ge(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}";
30\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}}(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,Ge(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=()=>
30{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=[];
30return 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
30h((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 ze=!1;function Ke(){ze||(ze=!0,requestAnimationFrame(We))}function We(){$.forEach(e=>{try{e.isApplied()?e.redoIfNeeded():e.do()}catch(t){F("failed to apply mutation command with exception:",t,e)}}),ze=!1}function Qe(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),Ke(),r}catch(e){return}var t}function Ye(e){return"div"===e.selector&&(e.selector="body div"),L.push(e),He(),{revert:()=>Qe(e.id),mutationId:e.id}}function Ze(){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 Xe;!function(e){e.CART_CHANGE="CART_CHANGE",e.LOYALTY_CHANGE="LOYALTY_CHANGE"}(Xe||(Xe={}));const et=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),tt=()=>window.loomi_ctx.session.id;function nt(e){return _(()=>e.items.map(e=>_(()=>e.selling_plan_allocation.selling_plan.name.toLowerCase())).filter(e=>!!e),[])}function rt(){return JSON.parse(localStorage.getItem("loomi-cart-history")||"[]")}function ot(){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 it(e){return JSON.parse(localStorage.getItem(e)||"[]")}function st(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 ct(){return JSON.parse(localStorage.getItem("loomi_purchased_products")||"[]")}const at="vsly_params_history",ut="vsly_visited_pages",lt=function(e){try{const t=e.matches?ht.MOBILE:ht.DESKTOP,n=function(){if(dt!=t){q("device-listener",`device changed to ${t} from ${dt}`),window.loomi_ctx.deviceOverride=t===ht.MOBILE?"m":"d",dt=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 dt;function mt(){a()?function(){try{return Promise.resolve(v(()=>c,1e3,10)).then(function(){return ft(),Promise.resolve()})}catch(e){return Promise.reject(e)}}().catch(console.error):ft()}function ft(){let e=_(()=>window.vslyDesktopBreakpoint)||960;e<=0&&(e=960);const t=window.matchMedia(`(max-width: ${e}px)`);t.removeEventListener("change",lt),t.addEventListener("change",lt)}var ht;!function(e){e.MOBILE="MOBILE",e.DESKTOP="DESKTOP"}(ht||(ht={}));const pt=()=>edgetag("getUserId");function vt(){const e="vsly_edgetag";return P(()=>(pt()&&localStorage.setItem(e,pt()),!0)),_(pt)||localStorage.getItem(e)}const wt="lmi_type",yt="lmi_from",gt="lmi_class",_t="lmi_utm_data",St={utm_source:"source",utm_medium:"medium",utm_campaign:"campaign",utm_term:"term",utm_content:"content"},Et=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},Pt=function(e){void 0===e&&(e=window.location.search);const t={utm:{},lmi_params:{}};return _(()=>
30new URLSearchParams(e)).forEach((e,n)=>{if(e){const r=St[n],o=Et(e);r?t.utm[r]=o:function(e){return _(()=>[gt,yt,wt].includes(e))}(n)&&(t.lmi_params[n]=o)}}),t};function At(){const e=function(e){let t=[];const n=localStorage.getItem(_t);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}(_(()=>Pt().utm)));return localStorage.setItem(_t,JSON.stringify(e)),e}function It(){const e=_(()=>At(),[]);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 bt=function(e){return Promise.resolve(xt()).then(function(t){return new Promise((n,r)=>{const o=t.transaction([kt],"readonly").objectStore(kt).get(e);o.onerror=e=>{r("IDB e:r"+e.target.error)},o.onsuccess=e=>{n(e.target.result)}})})},xt=function(){try{const e=function(){if(!Tt)return Promise.resolve(new Promise((e,t)=>{const n=indexedDB.open(Ct,1);n.onerror=e=>{t("IDB e:o"+e.target.error)},n.onsuccess=t=>{Tt=t.target.result,e(Tt)},n.onupgradeneeded=e=>{e.target.result.createObjectStore(kt,{keyPath:"id"}).createIndex("id","id",{unique:!0})}})).then(function(){})}();return Promise.resolve(e&&e.then?e.then(function(){return Tt}):Tt)}catch(e){return Promise.reject(e)}},Ct="VISUALLY_IO",kt=Ct;let Tt=null;function Nt(){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 Ot(){return _(()=>Ze().items.map(e=>({variantId:e.variant_id||0,quantity:e.quantity||0,productId:e.product_id||0,price:e.price||0})))||[]}const jt=function(e){return void 0===e&&(e=Ze()),_(()=>(("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 Lt(){const e=new URL(window.location.href);return e.protocol+"//"+e.hostname+e.pathname}const $t=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 Rt(){const e=_(()=>this.cart.items);if(e&&e.length>0){const t=tt(),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!!_(()=>rt().find(e=>!!e.sid&&r.includes(`${e.variant_id}`)&&`${e.sid}`!=t))}return!1}function Dt(e){return jt(this.cart).includes(e)}function Ut(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 Mt(){return nt(this.cart)}function qt(e){const t=this.cart;return!!_(()=>t.items.find(t=>t.handle===e))}function Ft(e,t){return"contains"!==t?qt.call(this,e):this.cart?.items?.some(t=>t.handle?.includes(e))??!1}function Bt(e){const t=this.cart;return!!_(()=>t.items.find(t=>!!t.tags&&t.tags.includes(e)))}function Jt(e,t){return"contains"!==t?Bt.call(this,e):this.cart?.items?.some(t=>t.tags?.some(t=>t.includes(e)))??!1}function Vt(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 Ht(e,t){const n=this.cart?.items;return!!n?.length&&n.every(n=>(n.tags||[]).some(n=>"contains"===t?n.includes(e):n===e))}function Gt(e){const t=this.cart;return!!_(()=>t.items.find(t=>!!t.collections&&t.collections.includes(e)))}function zt(){return!0===_(()=>window.loomi_ctx.loyalty.isMember,!1)}function Kt(){return _(()=>
30window.loomi_ctx.loyalty.pointsBalance,0)}function Wt(){return _(()=>window.loomi_ctx.loyalty.earnedPoints,0)}const Qt="__eventn_id";function Yt(){const{id:e,firstSeen:t}=function(e){const t=function(e){try{const t=S(e),{firstSeen:n,id:r}=en(t);if(t)return{id:r,firstSeen:n||nn()}}catch(e){}}(e),n=function(e){const t=window.localStorage.getItem(e),{id:n,firstSeen:r}=en(t);if(t)return{id:n,firstSeen:r||nn()}}(e);if(!t&&!n){const{newId:t,newEpoch:n}=function(){const e=Math.random().toString(36).substring(2,12),t=nn();return{newId:e,newEpoch:t,value:tn(e,t)}}();return Zt(t,n,e),{id:t,firstSeen:n}}if(!n&&t)return Zt(t.id,t.firstSeen,e),t;if(!t&&n)return Zt(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 Xt(t,n)&&(o=t.id<=n.id?t.id:n.id),n.id==t.id&&n.firstSeen==t.firstSeen||Zt(o,r,e),{id:o,firstSeen:r}}(Qt);return{id:e,firstSession:rn(t),firstSeen:t}}function Zt(e,t,n){void 0===n&&(n=Qt);const r=tn(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 Xt=(e,t)=>e.firstSeen===t.firstSeen&&e.id!==t.id;function en(e){return{firstSeen:_(()=>parseInt(e.split(".")[1]),null),id:_(()=>e.split(".")[0])}}function tn(e,t){return`${e}.${t}`}function nn(){return Math.trunc((new Date).getTime()/1e3)}const rn=e=>(new Date).getTime()/1e3-e<=7200,on="vsly_vid",sn="lmi_debug";function cn(e){return _(()=>new URL(window.location.href).searchParams.get(e)||void 0)}const an=["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 un(e){try{(function(e){const t=e.flatMap(e=>_(()=>e.code)).filter(e=>!!e).filter(e=>"widget"===e.kind).map(e=>ln(e.value.env)),n=new Map;return 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=>{dn(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;dn(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 Ye(N("appendFont","div",JSON.stringify({family:e,weights:t})))}(t,n)})}catch(e){F("failed to install custom fonts",e)}}function ln(e){const t={};for(const n in e)if("object"!=typeof e[n]||Array.isArray(e[n]))t[n]=e[n];else{const r=ln(e[n]);for(const e in r)t[`${n}.${e}`]=r[e]}return t}function dn(e,t,n){if(!t)return;const r=t.replaceAll("'","").replaceAll('"',"");if(!function(e){return an.includes(e)}(r))return;e.has(r)||e.set(r,new Set);const o=e.get(r);
30o.add(400),n.forEach(e=>{o.add(e)})}const mn=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)}},fn=function(e){try{let n;function t(t){return n?t:e.map(e=>{const t=String(e.id),n=pn.get(gn(e.id))||r[t];return n?{...e,variants:Array.isArray(e.variants)?e.variants.map(e=>{const t=_n(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}=Sn(e),i=function(){if(o.length>0)return function(t,n){try{var o=Promise.resolve(hn(e)).then(function(e){r=e,Object.entries(r).forEach(e=>{let[t,n]=e;return pn.set(gn(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)}},hn=function(e){try{return Promise.resolve(fetch(`https://${wn()}/api/2025-10/graphql.json`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:vn(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=yn(r.id);t[o]={variants:{}}
30,r.variants.edges.forEach(e=>{const n=yn(e.node.id);t[o].variants[n]={price:e.node.price,compareAtPrice:e.node.compareAtPrice}})}return t})})}catch(e){return Promise.reject(e)}},pn=new class extends H{constructor(e,t){super(new z(e),t)}}("p",18e5);function vn(e){const{productIdsToFetch:t,maxVariantsPerProduct:n}=Sn(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 wn=()=>window.loomi_ctx.storeAlias.toLowerCase().replaceAll("_","-")+".myshopify.com";function yn(e){const t=e.match(/\/(\d+)$/);return t?t[1]:e}const gn=e=>String(e)+se(),_n=(e,t)=>{let n=String(e.variant_id);const r=Object.keys(t.variants);return 1==r.length&&(n=r[0]),t.variants[n]},Sn=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])})(pn.get(gn(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}},En=new K("recs_cache",300001),Pn=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}=Nt();(t||n)&&(e.productId={productId:t,variantId:n})}(r),r.cartItems=(o=Ot(),_(()=>o.filter(e=>!!e.productId).map(e=>({productId:`${e.productId}`,variantId:`${e.variantId}`,quantity:e.quantity||1})))),r.currency=_(()=>Ze().currency||"USD","USD"),r.cart_total=_(()=>Ze().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=>An(r,e))&&(r.recentlyViewed=ot().filter(e=>!!e.productId).map(e=>({productId:`${e.productId}`,variantId:`${e.variantId||""}`,...e.ts?{ts:e.ts}:{}})));const i=ct();return i.length>0&&(r.pastPurchases=i),(An(r,"CART_ITEMS")||function(e){return _(()=>!!e.layeredRuling.find(e=>"latest_added"==e.ruleCond.itemSelection))}(r))&&(r.cartHistory=kn()),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(Cn(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 An(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 In(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 bn(){return`https://${A(window.loomi_ctx.env)}/api/recommendations/web/public/v2/recommend`}const xn=new Map,Cn=function(e){try{function t(){return _(()=>o.products)}const n=g(e),r=W(n);let o=En.get(r);const i=function(){if(!o){let e=!0;return me("kill-locale-currency")&&(e=!1),Promise.resolve(((e,t,n)=>{if(xn.has(e))return xn.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(fn(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(bn(),{method:"POST",headers:{"Content-Type":"text/plain"},body:t})).then(function(e){o=e}):Promise.resolve(r(`${bn()}?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(xn.delete(e),t)throw n;return n}))}catch(e){return Promise.reject(e)}}();return xn.set(e,o),o})(r,n,e)).then(function(e){o=e,_(()=>
30[In,window.loomi_api.onRecsResp].forEach(e=>e&&e(o))),En.set(r,o)})}}();return Promise.resolve(i&&i.then?i.then(t):t())}catch(s){return Promise.reject(s)}},kn=()=>rt().map(e=>{const t={...e};return delete t.sid,t});function Tn(e){return`vsly_pi_${e}`}function Nn(e){return`vsly_hbt_${e}`}function On(e){return`vsly_hbc_${e}`}function jn(e){return Array(e).fill(0).map(()=>Math.floor(10*Math.random())).join("")}function Ln(){try{const e=_(()=>window.vslyAntiFlickerReveal,void 0);e&&e()}catch(e){}}const $n=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})),`${bn()}?${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)}},Rn=function(e){try{try{const t=g(e),n=window.loomi_ctx.storeAlias,r=W(`${n}_${t}_${se()}`),o=Un.get(r);if(o)return Promise.resolve(o);if(Mn.has(r))return Promise.resolve(Mn.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(bn());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 In(t),t.products}(r),Promise.resolve(Dn(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 Un.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(Mn.delete(r),e)throw t;return t}))}catch(e){return Promise.reject(e)}}();return Mn.set(r,i),Promise.resolve(i)}catch(e){return F("queryProducts setup failed:",e),Promise.resolve({results:{}})}}catch(e){return Promise.reject(e)}},Dn=function(e){try{return me("kill-locale-currency")||_(()=>!Array.isArray(e[0].variants))?Promise.resolve(e):Promise.resolve(fn(e))}catch(e){return Promise.reject(e)}},Un=new K("ai_recs_cache",300001),Mn=new Map,qn=function(e,t,n){try{const o=Yt(),i=function(e,t,n){const r=function(){const e=Ot(),t={path:window.location.pathname,host:window.location.hostname};_(()=>e.length)>0&&(t.cartItems=e);const n=_(()=>Ze().token);n&&(t.cartToken=n);const r=At();r&&(t.trafficSources=r),t.productsSeenInSession=ot(),t.isCustomer=!!E(),t.query=window.location.search||"",t.hash=window.location.hash||"";const o=jt();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=!!_(()=>nt(Ze()).length>0);const s=vt();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=it(at),u=function(){const e=it(ut);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 bt(ut).then(r=>{const o={ts:new Date,name:Lt(),search:_(n,"")},i=!!o.search,s=(_(()=>r.visits)||e||[]).filter(e=>!i||!(e.name===o.name&&!e.search)).filter(e=>
30!(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:ut,visits:s},Promise.resolve(xt()).then(function(e){return new Promise((t,n)=>{const r=e.transaction([kt],"readwrite").objectStore(kt).put(c);r.onerror=e=>{n("IDB e:w"+e.target.error)},r.onsuccess=()=>{t("")}})})).catch()}).catch(),st([{ts:f(),name:Lt()}],e,e=>t=>e.name===t.name,ut)}(),l=ct(),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"))||_(()=>Ze().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=Nt().productId;return Number.isFinite(Number(e))?e.toString():""},"");const e=1*i.variantId;Number.isFinite(e)&&(r.vid=e)}const y=_(tt);"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,on].map(e=>{const t=cn(e);t&&sessionStorage.setItem(e,t)});const e=sessionStorage.getItem(r),t=sessionStorage.getItem(on);return{previewKey:e,debugAllocator:cn(sn),previewVariantId:t}}();let i=new URL(e);return t&&i.searchParams.append(r,t),n&&i.searchParams.append(sn,"true"),o&&i.searchParams.append(on,o),i}(Vn(e).cfgUrl);o.searchParams.append("q",n);const i=W(o.href),s=window.vslyNativeFetch||window.fetch,c=Bn.has(i)?Bn.get(i):s(o.href,{priority:"high"}).finally(()=>Bn.delete(i));return Bn.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),st(e.queryHistory,i.queryHistory,e=>t=>t.v===e.v&&t.k===e.k,at),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)}},Fn="vslyb",Bn=new Map;function Jn(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(Vn(o).cfgUrl.replace("/allocate","/match"));i.searchParams.append("q",r),fetch(i)}}function Vn(e){let t="/api/allocator/web/public/v2/allocate";return Gn(e)&&(t="/allocate"),{cfgUrl:`${Hn(e)}${t}`}}function Hn(e){return Gn(e)?"http://localhost:8080":`https://${A()}`}function Gn(e){return[n.TEST,n.LOCAL].includes(e)}function zn(e){window.visually={..._(()=>window.visually)||{},flags:e},localStorage.setItem("loomi-flags",JSON.stringify(e))}function Kn(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 Wn(e){return`${e.name}-${e.variant}`}function Qn(e){return`${e.name}-${e.variant}-${e.version||0}`}function Yn(e){$.forEach(t=>{e&&!e(t)||(t.undo(),t.do())})}const Zn=(e,t)=>!!_(()=>e.audiences.includes(t)),Xn=e=>{const t={},n=Zn(e,"d"),r=Zn(e,"m");return n||r?(_(()=>e.experiments.filter(e=>
30!!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},er=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 tr(e,t,n,r){const[o,i]=t.split(",");return new Promise(t=>{bt(ut).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||cr(e)){if(rr(s,e))return void t(!0)}else if(nr(s,e))return void t(!0);t(!1)})})}function nr(e,t){return!![or(e),sr(or(e))].find(e=>e.includes(t))}function rr(e,t){const n=e.search||"",r=or(e)+n;return!![r,sr(r)].find(e=>e.includes(ir(t)))}function or(e){return ir(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("/")),ir(t.href)}(e.name))}function ir(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 sr(e){return e.includes("/products/")&&e.includes("/collections/")?e.replace(/\/collections\/[^/]+/,""):e}function cr(e){return _(()=>!!new URL(e).search)}const ar=function(e){try{return Er(),yr(e.clientTargetingFormula)&&(mr[hr(e)]=e),Promise.resolve(Sr(e)).then(function(t){return t?(vr(e),!0):(q(`exp: ${e.gaName} not run client targeting: ${e.clientTargetingFormula} => false`),!1)})}catch(e){return Promise.reject(e)}},ur=function(e){try{const t=Object.entries(mr).map(t=>{let[n,r]=t;return yr(r.clientTargetingFormula)&&(mr[hr(r)]=r),{exp:r,shouldBeApplied:lr(r.clientTargetingFormula,e,r.name),hasBeenApplied:()=>!!fr[hr(r)]}});return Promise.resolve(gr(t)).then(function(e){!function(e){e.filter(e=>e.hasBeenApplied()&&!e.shouldBeApplied).flatMap(e=>{const t=_(()=>fr[hr(e.exp)]);return t&&delete fr[hr(e.exp)],t}).forEach(e=>{_(e.revert)})}(e),function(e){e.filter(e=>e.shouldBeApplied&&!e.hasBeenApplied()).forEach(e=>{var t,n,r;vr(e.exp),t=e.exp,n=wr,void 0===r&&(r=C()),n.has(t.variant)||(xr(r,t),n.add(t.variant),Jn(t))})}(e)})}catch(e){return Promise.reject(e)}},lr=function(e,t,n){void 0===n&&(n="");try{if(void 0===t&&(t=pr()),yr(e)){t.Total=$t,t.CartHasSubs=Ut,t.CartSubs=Mt,t.CartHasItem=qt,t.CartHasItemMatching=Ft,t.CartItemHasTagMatching=Jt,t.CartItemHasTag=Bt,t.AllCartItemsHasTag=Vt,t.AllCartItemsHasTagMatching=Ht,t.CartItemHasCollection=Gt,t.IsLoyaltyCustomer=zt,t.LoyaltyPointsBalance=Kt,t.LoyaltyPointsEarned=Wt,t.PageVisit=tr,t.CustomerTag=Pr,t.IsGuest=Ar,t.AbandonedCart=Rt,t.CartAttrName=Dt,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 dr=!1;const mr={},fr={},hr=e=>`${e.name}-${e.variant}`;function pr(){return{cart:Ze(),Total:$t,CartHasSubs:Ut,CartSubs:Mt,CartHasItem:qt,CartHasItemMatching:Ft,CartItemHasTagMatching:Jt,CartItemHasTag:Bt,AllCartItemsHasTag:Vt,AllCartItemsHasTagMatching:Ht,CartItemHasCollection:Gt,IsLoyaltyCustomer:zt,LoyaltyPointsBalance:Kt,LoyaltyPointsEarned:Wt,PageVisit:tr,CustomerTag:Pr,IsGuest:Ar,AbandonedCart:Rt,CartAttrName:Dt}}function vr(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=Ye(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);
30n&&Object.entries(t).forEach(e=>{let[t,r]=e;return n[t]=r})}(n,r);const o=Ye(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,Ye(n)}if(["moveElem","automation","visualEdit"].includes(e.kind)){const n=N(e.kind,e.selector,"");n.options=t,n.block=e;const r=Ye(n);return r.htmlId=n.id,r}const n=N(e.kind,e.selector,e.value);return n.options=t,Ye(n)}(e,t)}catch(e){}}).filter(e=>!!e),[]),fr[hr(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 wr=new Set;function yr(e){return!!e&&""!==e}const gr=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)}},_r=e=>{const t=_(()=>e.key),n=_(()=>e.value),r=pr();t===Xe.CART_CHANGE?(ur({...r,cart:n}),_(()=>window.loomi_ctx.maintainCartAttributes(n))):t===Xe.LOYALTY_CHANGE&&ur(r)};function Sr(e){return lr(e.clientTargetingFormula,void 0,e.name)}function Er(){dr||s(()=>document).then(()=>{document.addEventListener(Q,_r),dr=!0})}function Pr(e,t){if(void 0===t&&(t=""),"contains"===t)return _(()=>window.loomi_ctx.ctags?.some(t=>t.includes(e)))||!1;const n=["!","not in"].some(e=>t.includes(e)),r=_(()=>window.loomi_ctx.ctags.includes(e))||!1;return n?!r:r}function Ar(){return Promise.resolve(_(()=>!window.loomi_ctx.clientId))}function Ir(e){const t=hr(e),n=fr[t];n&&(n.forEach(e=>_(e.revert)),delete fr[t]),delete mr[t]}const br=function(e,t,n){try{let r;return Promise.resolve(n()).then(function(n){n?(xr(t,e),(yr(e.clientTargetingFormula)||function(e){return!!me("trigger-delayed-allocation")&&_(()=>["jsFunction","jsCondition"].includes(e.trigger.type))}(e))&&Jn(e)):r=1})}catch(e){return Promise.reject(e)}};function xr(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 Cr=new Set,kr=new Set,Tr=new Set,Nr=new Set;let Or;function jr(e){void 0===Or&&(Or=new MutationObserver(Lr(e)),Or.observe(document.body,{childList:!0,subtree:!0,attributes:!1,characterData:!1}))}function Lr(e){return()=>{$r(Cr,Tr,(t,n)=>{br(n,e,()=>(t.add(Rr(n.trigger.selector,n)),ar(n)))}),$r(kr,Nr,(t,n,r)=>{const o=n.trigger;t.add(Rr(o.selector,n)),r.addEventListener(o.name,()=>br(n,e,()=>ar(n)),{once:void 0!==o.once&&o.once})})}}function $r(e,t,n){e.forEach(e=>{_(()=>{const r=e.trigger.selector;document.body.querySelectorAll(r).forEach(o=>{t.has(Rr(r,e))||n(t,e,o)})})})}function Rr(e,t){return`${e}-${t.name}`}function Dr(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 Ur(e){const t=Dr(e);return Br(t),v(()=>new Function(e.code)(window),e.timeoutMillis,e.retries,()=>void 0===Jr(t))}function Mr(e){return JSON.parse(localStorage.getItem(e)||"[]")}let qr=[];const Fr=function(e,t,n){_(()=>t.experiments.forEach(t=>{n&&n.matches(t)?n.onSubscribeCall(t):Gr(t,e)}))},Br=(e,t)=>{qr.push({handler:e,experienceKey:t})},Jr=e=>qr.find(t=>t.handler===e),Vr=function(e){qr.filter(t=>t.experienceKey===e).forEach(e=>{try{"number"!=typeof e.handler&&e.handler()}catch(e){}}),qr=qr.filter(t=>t.experienceKey!==e)};function Hr(e,t){Gr(e,t)}function Gr(t,n){switch(_(()=>t.trigger.type)){case e.PageLoad:!function(e,t){br(e,t,()=>ar(e))}(t,n);break;case e.Timeout:!function(e,t){const n=setTimeout(()=>{br(e,t,()=>ar(e))},e.trigger.timeoutMillis);Br(()=>{n&&clearTimeout(n)})}
30(t,n);break;case e.Inactivity:!function(e,t){const n=e.trigger.timeoutMillis;let r;function o(){clearTimeout(r),r=setTimeout(()=>{br(e,t,function(){try{return Promise.resolve(Sr(e)).then(function(t){return t&&ar(e),t})}catch(e){return Promise.reject(e)}})},n)}o();const c=["mousemove","keypress","scroll","touchstart","touchmove"];Br(()=>{clearTimeout(r),i(()=>document).then(()=>c.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){jr(e),Cr.add(t),Lr(e)()}(n,t);break;case e.ExitIntent:!function(e,t){const n=r=>{_(()=>!r.toElement&&!r.relatedTarget)&&br(e,t,()=>{const t=ar(e);return i(()=>document).then(()=>{document.removeEventListener("mouseout",n)}),t})};s(()=>document,!0).then(()=>{document.addEventListener("mouseout",n,{passive:!0})}),Br(()=>{i(()=>document).then(()=>{document.removeEventListener("mouseout",n)})})}(t,n);break;case e.JSCondition:!function(e,t){Ur(e.trigger).then(()=>{br(e,t,()=>ar(e))}).catch(()=>{})}(t,n);break;case e.JSFunction:!function(e,t){!function(n){try{const r=new Function(`return async function() { ${n.code} }`)()(),o=Dr(n);Br(o),r.then(()=>void 0!==Jr(o)&&void br(e,t,()=>ar(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&&br(e,t,()=>ar(e))}const c=e=>{let t;try{t=new Function(n.jsEvent.matchCode)(e),localStorage.setItem(r,JSON.stringify([...Mr(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 _(()=>!!Mr(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)}),Br(()=>{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;Ur(e.jsCond).then(()=>{Gr({...t,trigger:e.condition},n)}).catch(()=>{})}}(t,n);break;case e.ElementEvent:!function(e,t){jr(t),kr.add(e),Lr(t)()}(t,n)}}const zr=["vsly-backdrop-container","__loomi_crosshair_container"];function Kr(e){let t=_(()=>e.target),n=!1;for(;t;){if(zr.includes(_(()=>t.id))){n=!0;break}t=_(()=>t.parentElement)}n&&(q("vsly","about to stop propagation of event",e),_(()=>e.stopImmediatePropagation()),_(()=>e.stopPropagation()))}function Wr(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(Zr()){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=Qr(s,c,n),o.format(c)}const Qr=(e,t,n)=>1!==e&&me("exchange-round")||Zr()?(_(()=>window.visually.priceRound)||Math.round)(t,n):t;function Yr(){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 Zr=()=>!me("op-locale-currency-no-round");let Xr=window.location.href;const eo=()=>{requestAnimationFrame(()=>{Xr!==window.location.href&&(Xr=window.location.href,window.dispatchEvent(new CustomEvent("vslyUrlChanged",{detail:{prev:Xr,curr:window.location.href}})))})};var to;!function(e){e.NONE="none",e.YOTPO="yotpo"}(to||(to={}));const no={isMember:!1,provider:to.NONE};function ro(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}const oo="vsly-loyalty-ctx",io=(()=>{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:to.YOTPO}:no},r=e=>{_(()=>"vsly:loyalty-changed"===e.type)&&_(()=>window.swellAPI.refreshCustomerDetails()),t(n())};return{provide:n,onChange:function(n){try{t=n;const o=ro(function(){return Promise.resolve(v(()=>
30!!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=ro(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 so(e){et(Xe.LOYALTY_CHANGE,e),sessionStorage.setItem(oo,JSON.stringify({ts:(new Date).getTime(),ctx:e})),window.loomi_ctx={...window.loomi_ctx||{},loyalty:e}}const co="vsly_session";function ao(e){return Et((e||"").replace("+"," "))}function uo(){const e=window.loomi_ctx.storeAlias,t={id:W(e+window.loomi_ctx.userId+f()+It()+fo()),utm_campaign:It(),last_interaction:new Date,landing_page:_(()=>location.href,""),start_at:new Date};return lo(t),t}function lo(e){const t=JSON.stringify(e);localStorage.setItem(co,t),window.loomi_ctx.session=e}function mo(){const e=function(){window.loomi_ctx=window.loomi_ctx||{};let e=window.loomi_ctx.session||_(()=>{const e=JSON.parse(localStorage.getItem(co));return e.last_interaction=new Date(e.last_interaction),e.start_at=new Date(e.start_at),e})||uo();return function(e){const t=new Date,n=e.last_interaction;return(t.valueOf()-n.valueOf())/6e4>30||ao(It())!==ao(e.utm_campaign)||e.last_interaction.getDate()!==t.getDate()}(e)&&(e=uo()),window.loomi_ctx.session=e,e}();e.last_interaction=new Date,lo(e)}const fo=()=>Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15);function ho(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 po=function(e,t,r){void 0===r&&(r=1e3);try{return vo?(console.debug("vsly-sdk","cannot reload since another reload is in progress"),Promise.resolve()):(vo=!0,Promise.resolve(ho(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(fr)),c=C();n.forEach(e=>r.set(Wn(e),e)),o.forEach(e=>i.set(Wn(e),e)),(e=>{window.loomi={..._(()=>window.loomi)||{},conf:e},window.visually={..._(()=>window.visually)||{},flags:e.flags,recsPerVariant:Xn(e)},zn(e.flags)})(t),((e,t,n)=>{e.forEach((e,r)=>{t.has(r)||(n.has(r)&&Ir(e),Vr(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?Qn(i)!==Qn(e)&&(r.has(o)&&Ir(i),Vr(o),un([e]),Hr(e,n)):(un([e]),Hr(e,n))})})(i,r,c,s)})}catch(e){return Promise.reject(e)}}(e,t,wo)).then(function(){}):Promise.resolve(function(){try{return dr&&i(()=>document).then(()=>{document.removeEventListener(Q,_r),dr=!1}),qr.forEach(e=>{try{"number"!=typeof e.handler&&e.handler()}catch(e){}}),qr=[],Array.from($.keys()).forEach(e=>{Qe(e)}),Ve&&Ve.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(ho(function(){return function(r,o){try{var i=(function(){if(window.vsly_blocked)throw Ln(),new Error(Fn)}(),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(yo(t,e,void 0)).then(function(n){let{configuration:r,tracking:o}=n;return go(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(Je()).then(function(){un(o.experiments),Fr(r,o),Kn(e,t,po),mt()})}))}catch(e){return o(e)}return i&&i.then?i.then(void 0,o):i}(0,function(e){_(()=>e.message)!==Fn&&F("failed initialising sdk",e)})},function(e,t){if(Ln(),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(vo=!1,e)throw t;return t})))}catch(e){return Promise.reject(e)}};let vo=!1;const wo=function(e,t,n){try{return m(),Promise.resolve(qn(e,t,n))}catch(e){return Promise.reject(e)}},yo=function(e,t,n){try{return _(mo),m(),Promise.resolve(qn(e,t,n))}catch(e){return Promise.reject(e)}},go=function(e,t,n,r){try{return zn(e.flags),function(e,t,n,r,o,i){Er(),window.loomi_ctx={..._(()=>window.loomi_ctx)||{},env:t,storeAlias:e,apply:e=>{un([e]),ar(e)},shouldApply:lr};const s=_(()=>
30o.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:Xn(n),sdk_api:{addToCart:mn,recommendProducts:Pn,getProductsMetafields:$n,fetchRecs:Cn},reAllocate:i,rerender:Yn,reload:function(){try{return Promise.resolve(r(t,e,1e3)).then(function(){})}catch(e){return Promise.reject(e)}}}}(t,n,e,po,Nt(),wo),function(e){try{if(e.noActiveThemeTests&&Ce()){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(Eo()).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=Rn,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=Tn(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=Nn(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=On(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=`${jn(4)}${t}${jn(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=Vn(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(Tn(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(On(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(Nn(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=er,_(()=>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,Wr,Yr),a=e.first_seen,(c=e.uid)!==(l=r.id)&&c&&a>0?(window.loomi_ctx.userId=c,Zt(c,a)):window.loomi_ctx.userId=l,function(e,t){try{return _(()=>window.loomi_ctx.cc)&&v(b,1e3,120).then(()=>Zt(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",Kr,{capture:!0,passive:!0}),document.addEventListener("mousedown",Kr,{capture:!0,passive:!0}),document.addEventListener("touchstart",Kr,{capture:!0,passive:!0}),document.addEventListener("touchend",Kr,{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")?So!==window.location.href:new URL(So).pathname!==new URL(window.location.href).pathname)&&(So=window.location.href,n(),_o(e,t,10))})})||eo,o=["click","touchend","pdpresp"];return s(()=>document.body,!0).then(()=>
30{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(){so(function(){const e=sessionStorage.getItem(oo);if(e){const t=_(()=>JSON.parse(e));if(t&&t.ts>(new Date).getTime()-3e5)return t.ctx}}()||no);const e=_(()=>!0===window.visually.flags["loyalty-targeting"]),t=function(){if(e)return Promise.resolve(function(e){try{return e.onChange(e=>{so(e)}),Promise.resolve(e.connect()).then(function(){const t=e.provide();return so(t),{ctx:t,disconnect:e.disconnect}})}catch(e){return Promise.reject(e)}}(io)).then(function(){const e=document.querySelectorAll('[href*="/account/logout"]');e&&Array.from(e).forEach(e=>{e.addEventListener("click",()=>(sessionStorage.removeItem(oo),!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)}},_o=u(po,10);let So=window.location.href;const Eo=function(){try{return Promise.resolve(function(){if(me("block-do-not-track"))return Promise.resolve(x()).then(function(e){if(!e)throw new Error(Fn)})}())}catch(e){return Promise.reject(e)}};function Po(e){return e.startsWith("https://")?e.substring(8):e}function Ao(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch{return""}}var Io;!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"}(Io||(Io={}));let bo=[];const xo=function(e,t){if(void 0===t&&(t=0),0===bo.length)return;const n=bo;bo=[];const r=ko(n),o=Co(n);e({bulk:o,shared:r},!0).catch(()=>{const r=n.concat(bo);r.length<100&&(bo=r,t<2&&setTimeout(()=>xo(e,t+1),500*Math.pow(2,t)))})};u(xo,100);const Co=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}),ko=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},{})},To=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(Vn(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)}},No="vsly_analytics_queue";function Oo(e,t,n){void 0===n&&(n=!1);try{const r=window.loomi_ctx,o=r.storeAlias,i=r.jitsuKey,s=Pt(),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=jo();a.push(c),Lo(a)}catch(e){console.error("vsly: Failed to queue analytics event",e)}}function jo(){try{const e=localStorage.getItem(No);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 Lo(e){try{localStorage.setItem(No,JSON.stringify(e))}catch(e){console.error("vsly: Failed to save analytics queue",e)}}const $o=(e,t)=>{try{localStorage.setItem(e,JSON.stringify({variant:t.experiment.variant,version:t.experiment.version||0}))}catch(e){}},Ro=(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},Do=e=>`vsly_redirect_test_${e[0].experiment.name}`,Uo=(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},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=["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"],Jo=function(e){void 0===e&&(e=!0);const t=window.loomi_ctx.consent;t.allowed=e,t.fin||(t.fin=Vo())},Vo=()=>(new Date).getTime(),Ho=()=>window.Shopify.customerPrivacy,Go=()=>Promise.resolve(),zo=()=>(window.loomi_ctx=window.loomi_ctx||{},window.loomi_ctx.performanceMetrics=window.loomi_ctx.performanceMetrics||{},window.loomi_ctx.performanceMetrics);function Ko(){try{const e=zo().as;
30if(void 0===e)return;const t=performance.now();Object.assign(zo(),{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(zo(),{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 Wo(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}function Qo(){return _(mo),Yt(),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=Do(e);let n=Ro(t,e);if(n=Uo(n,e),!n)return;if(!n.experiment)return;$o(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});Oo(i,Yt(),_(()=>!!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=Po(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=Po(o.split("?")[0]).toLowerCase(),d="",m=u;if(d=(new URL(o).host+i).toLowerCase(),n){const e=r?Ao(r.substring(1)):"";if(e&&(l+="?"+e,d+="?"+e),a){const e=Ao(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=Do(t);let r=Ro(n,t);if(r=Uo(r,t),!r)return;if(!r.experiment)return;$o(n,r);const o=r.experiment,i=ne({experienceId:o.name,variantId:o.variant,version:o.version,gaExperienceName:o.gaName,gaVariantName:o.gaVariant});Oo(i,Yt(),_(()=>!!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 Yo=()=>window.loomi_ctx.blockingConcent;(function(){try{let t;function e(e){if(t)return e;(function(){const e=jo();e.length>0&&Promise.allSettled(e.map(To)).then(t=>{Lo(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&&!Bo.includes(e)};return new Promise((t,n)=>{const r=window.loomi_ctx.consent||={};r.init=Vo(),(se()?Go():v(se,50,200)).then(()=>{e()&&(Jo(),t())}),(_(()=>Ho().analyticsProcessingAllowed)?Go():v(()=>_(()=>Ho().analyticsProcessingAllowed),50,200)).then(()=>{const r=Ho().analyticsProcessingAllowed()||e();Jo(r),r?t():n()}),r.ccListener||(document.addEventListener("visitorConsentCollected",r=>{const o=r.detail.analyticsAllowed||e();Jo(o),o?t():n()}),r.ccListener=!0)})})().catch(),function(){try{zo().as=performance.now()}catch(e){}}();const s=yo(o,i);return s.then(Ko),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()}
30)(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(Wo(function(){return Promise.resolve(go(e,n,r,t)).then(function(e){let{jitsu:t,configuration:o}=e;if(!_(()=>o.flags["kill-switch"]))return Promise.resolve(Je()).then(function(){un(o.experiments),Fr(t,o),Kn(r,n,po),mt()})})},function(e){_(()=>e.message)!==Fn&&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(Ln)}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.169";const{storeAlias:o,env:i}=window.loomi_ctx;if(!Yo()&&Qo())return Promise.resolve();const s=function(){if(Yo()){function e(e){return t?e:window.loomi_ctx.consent.allowed?void(Qo()&&(t=1)):(Ln(),void(t=1))}const n=Wo(function(){return Promise.resolve((console.log("consent api init"),new Promise((e,t)=>{const n=window.loomi_ctx.consent||={};n.init=qo(),(_(()=>Fo().analyticsProcessingAllowed)?Promise.resolve():v(()=>_(()=>Fo().analyticsProcessingAllowed),50,200)).then(()=>{const n=window.Shopify.customerPrivacy.analyticsProcessingAllowed();console.log("consent api",n),Mo(n),n?e():t()}),n.ccListener||(document.addEventListener("visitorConsentCollected",()=>{const n=window.Shopify.customerPrivacy.analyticsProcessingAllowed();console.log("visitorConsentCollected",n),Mo(n),n?e():t()}),n.ccListener=!0)}))).then(function(){})},function(){Ln(),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"))}();
31
32</script>
vendor: 1 bytes, line 32
32
33<script data-vsly="preact2" type="text/javascript" data-em-disable>
34    // Preact
35!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}
35if(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)}
35_.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
35ise.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});
36// Preact Hooks
37!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)}]}});
38// Preact Compat
39!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&&
39(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]}
39,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});
40// Goober
41!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);
41s[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}}});
42
43</script>
43
44<!--LOOMI SDK-->
45
46
47
48
49    <meta charset="utf-8">
50    <meta name="viewport" content="width=device-width, initial-scale=1.0, height=device-height, minimum-scale=1.0, maximum-scale=1.0">
51    <meta name="theme-color" content="#131313">
52
53    <title>Male Enhancement Erection Ring | SexTech | Award-Winning Wearable Tech</title><meta name="description" content="Our doctor designed penoscrotal rings heighten sensitivity. Gain vital health insights via data between TechRing and the app, empowering you and your healthcare provider."><link rel="canonical" href="https://myfirmtech.com/"><link rel="shortcut icon" href="//myfirmtech.com/cdn/shop/files/Firmtech_Horizontal_White_text_x2_f0cd885c-bed7-41c8-8ff6-722477d5a516.png?v=1651679988&width=96">
54      <link rel="apple-touch-icon" href="//myfirmtech.com/cdn/shop/files/Firmtech_Horizontal_White_text_x2_f0cd885c-bed7-41c8-8ff6-722477d5a516.png?v=1651679988&width=180"><link rel="preconnect" href="https://cdn.shopify.com">
55    <link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin>
56    <link rel="dns-prefetch" href="https://productreviews.shopifycdn.com"><link rel="preload" href="//myfirmtech.com/cdn/fonts/barlow/barlow_n7.691d1d11f150e857dcbc1c10ef03d825bc378d81.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="//myfirmtech.com/cdn/fonts/barlow/barlow_n5.a193a1990790eba0cc5cca569d23799830e90f07.woff2" as="font" type="font/woff2" crossorigin><meta property="og:type" content="website">
57  <meta property="og:title" content="Male Enhancement Erection Ring | SexTech | Award-Winning Wearable Tech"><meta property="og:image" content="http://myfirmtech.com/cdn/shop/files/FT-Share.png?v=1721965876&width=2048">
58  <meta property="og:image:secure_url" content="https://myfirmtech.com/cdn/shop/files/FT-Share.png?v=1721965876&width=2048">
59  <meta property="og:image:width" content="1200">
60  <meta property="og:image:height" content="628"><meta property="og:description" content="Our doctor designed penoscrotal rings heighten sensitivity. Gain vital health insights via data between TechRing and the app, empowering you and your healthcare provider."><meta property="og:url" content="https://myfirmtech.com/">
61<meta property="og:site_name" content="FirmTech Inc"><meta name="twitter:card" content="summary"><meta name="twitter:title" content="Male Enhancement Erection Ring | SexTech | Award-Winning Wearable Tech">
62  <meta name="twitter:description" content="Our doctor designed penoscrotal rings heighten sensitivity. Gain vital health insights via data between TechRing and the app, empowering you and your healthcare provider."><meta name="twitter:image" content="https://myfirmtech.com/cdn/shop/files/FT-Share.png?crop=center&height=1200&v=1721965876&width=1200">
63  <meta name="twitter:image:alt" content="">
63<script type="application/ld+json">
64  {
65    "@context": "https://schema.org",
66    "@type": "BreadcrumbList",
67    "itemListElement": [{
68        "@type": "ListItem",
69        "position": 1,
70        "name": "Home",
71        "item": "https://myfirmtech.com"
72      }]
73  }
74</script>
74<script type="application/ld+json">
75  [
76    {
77      "@context": "https://schema.org",
78      "@type": "WebSite",
79      "name": "FirmTech Inc",
80      "url": "https:\/\/myfirmtech.com",
81      "potentialAction": {
82        "@type": "SearchAction",
83        "target": "https:\/\/myfirmtech.com\/search?q={search_term_string}",
84        "query-input": "required name=search_term_string"
85      }
86    },
87    {
88      "@context": "https://schema.org",
89      "@type": "Organization",
90      "name": "FirmTech Inc","logo": "https:\/\/myfirmtech.com\/cdn\/shop\/files\/Firmtech_Horizontal_White_text_x2_f0cd885c-bed7-41c8-8ff6-722477d5a516.png?v=1651679988\u0026width=528","url": "https:\/\/myfirmtech.com"
91    }
92  ]
93  </script>
93<style>/* Typography (heading) */
94  @font-face {
95  font-family: Barlow;
96  font-weight: 700;
97  font-style: normal;
98  font-display: fallback;
99  src: url("//myfirmtech.com/cdn/fonts/barlow/barlow_n7.691d1d11f150e857dcbc1c10ef03d825bc378d81.woff2") format("woff2"),
100       url("//myfirmtech.com/cdn/fonts/barlow/barlow_n7.4fdbb1cb7da0e2c2f88492243ffa2b4f91924840.woff") format("woff");
101}
102
103@font-face {
104  font-family: Barlow;
105  font-weight: 700;
106  font-style: italic;
107  font-display: fallback;
108  src: url("//myfirmtech.com/cdn/fonts/barlow/barlow_i7.50e19d6cc2ba5146fa437a5a7443c76d5d730103.woff2") format("woff2"),
109       url("//myfirmtech.com/cdn/fonts/barlow/barlow_i7.47e9f98f1b094d912e6fd631cc3fe93d9f40964f.woff") format("woff");
110}
111
112/* Typography (body) */
113  @font-face {
114  font-family: Barlow;
115  font-weight: 500;
116  font-style: normal;
117  font-display: fallback;
118  src: url("//myfirmtech.com/cdn/fonts/barlow/barlow_n5.a193a1990790eba0cc5cca569d23799830e90f07.woff2") format("woff2"),
119       url("//myfirmtech.com/cdn/fonts/barlow/barlow_n5.ae31c82169b1dc0715609b8cc6a610b917808358.woff") format("woff");
120}
121
122@font-face {
123  font-family: Barlow;
124  font-weight: 500;
125  font-style: italic;
126  font-display: fallback;
127  src: url("//myfirmtech.com/cdn/fonts/barlow/barlow_i5.714d58286997b65cd479af615cfa9bb0a117a573.woff2") format("woff2"),
128       url("//myfirmtech.com/cdn/fonts/barlow/barlow_i5.0120f77e6447d3b5df4bbec8ad8c2d029d87fb21.woff") format("woff");
129}
130
131@font-face {
132  font-family: Barlow;
133  font-weight: 700;
134  font-style: normal;
135  font-display: fallback;
136  src: url("//myfirmtech.com/cdn/fonts/barlow/barlow_n7.691d1d11f150e857dcbc1c10ef03d825bc378d81.woff2") format("woff2"),
137       url("//myfirmtech.com/cdn/fonts/barlow/barlow_n7.4fdbb1cb7da0e2c2f88492243ffa2b4f91924840.woff") format("woff");
138}
139
140@font-face {
141  font-family: Barlow;
142  font-weight: 700;
143  font-style: italic;
144  font-display: fallback;
145  src: url("//myfirmtech.com/cdn/fonts/barlow/barlow_i7.50e19d6cc2ba5146fa437a5a7443c76d5d730103.woff2") format("woff2"),
146       url("//myfirmtech.com/cdn/fonts/barlow/barlow_i7.47e9f98f1b094d912e6fd631cc3fe93d9f40964f.woff") format("woff");
147}
148
149:root {
150    /**
151     * ---------------------------------------------------------------------
152     * SPACING VARIABLES
153     *
154     * We are using a spacing inspired from frameworks like Tailwind CSS.
155     * ---------------------------------------------------------------------
156     */
157    --spacing-0-5: 0.125rem; /* 2px */
158    --spacing-1: 0.25rem; /* 4px */
159    --spacing-1-5: 0.375rem; /* 6px */
160    --spacing-2: 0.5rem; /* 8px */
161    --spacing-2-5: 0.625rem; /* 10px */
162    --spacing-3: 0.75rem; /* 12px */
163    --spacing-3-5: 0.875rem; /* 14px */
164    --spacing-4: 1rem; /* 16px */
165    --spacing-4-5: 1.125rem; /* 18px */
166    --spacing-5: 1.25rem; /* 20px */
167    --spacing-5-5: 1.375rem; /* 22px */
168    --spacing-6: 1.5rem; /* 24px */
169    --spacing-6-5: 1.625rem; /* 26px */
170    --spacing-7: 1.75rem; /* 28px */
171    --spacing-7-5: 1.875rem; /* 30px */
172    --spacing-8: 2rem; /* 32px */
173    --spacing-8-5: 2.125rem; /* 34px */
174    --spacing-9: 2.25rem; /* 36px */
175    --spacing-9-5: 2.375rem; /* 38px */
176    --spacing-10: 2.5rem; /* 40px */
177    --spacing-11: 2.75rem; /* 44px */
178    --spacing-12: 3rem; /* 48px */
179    --spacing-14: 3.5rem; /* 56px */
180    --spacing-16: 4rem; /* 64px */
181    --spacing-18: 4.5rem; /* 72px */
182    --spacing-20: 5rem; /* 80px */
183    --spacing-24: 6rem; /* 96px */
184    --spacing-28: 7rem; /* 112px */
185    --spacing-32: 8rem; /* 128px */
186    --spacing-36: 9rem; /* 144px */
187    --spacing-40: 10rem; /* 160px */
188    --spacing-44: 11rem; /* 176px */
189    --spacing-48: 12rem; /* 192px */
190    --spacing-52: 13rem; /* 208px */
191    --spacing-56: 14rem; /* 224px */
192    --spacing-60: 15rem; /* 240px */
193    --spacing-64: 16rem; /* 256px */
194    --spacing-72: 18rem; /* 288px */
195    --spacing-80: 20rem; /* 320px */
196    --spacing-96: 24rem; /* 384px */
197
198    /* Container */
199    --container-max-width: 1300px;
200    --container-narrow-max-width: 1050px;
201    --container-gutter: var(--spacing-5);
202    --section-outer-spacing-block: var(--spacing-8);
203    --section-inner-max-spacing-block: var(--spacing-8);
204    --section-inner-spacing-inline: var(--container-gutter);
205    --section-stack-spacing-block: var(--spacing-8);
206
207    /* Grid gutter */
208    --grid-gutter: var(--spacing-5);
209
210    /* Product list settings */
211    --product-list-row-gap: var(--spacing-8);
212    --product-list-column-gap: var(--grid-gutter);
213
214    /* Form settings */
215    --input-gap: var(--spacing-2);
216    --input-height: 2.625rem;
217    --input-padding-inline: var(--spacing-4);
218
219    /* Other sizes */
220    --sticky-area-height: calc(var(--sticky-announcement-bar-enabled, 0) * var(--announcement-bar-height, 0px) + var(--sticky-header-enabled, 0) * var(--header-height, 0px));
221
222    /* RTL support */
223    --transform-logical-flip: 1;
224    --transform-origin-start: left;
225    --transform-origin-end: right;
226
227    /**
228     * ---------------------------------------------------------------------
229     * TYPOGRAPHY
230     * ---------------------------------------------------------------------
231     */
232
233    /* Font properties */
234    --heading-font-family: Barlow, sans-serif;
235    --heading-font-weight: 700;
236    --heading-font-style: normal;
237    --heading-text-transform: normal;
238    --heading-letter-spacing: 0.005em;
239    --text-font-family: Barlow, sans-serif;
240    --text-font-weight: 500;
241    --text-font-style: normal;
242    --text-letter-spacing: 0.0em;
243
244    /* Font sizes */
245    --text-h0: 3rem;
246    --text-h1: 2.5rem;
247    --text-h2: 2rem;
248    --text-h3: 1.5rem;
249    --text-h4: 1.375rem;
250    --text-h5: 1.125rem;
251    --text-h6: 1rem;
252    --text-xs: 0.8125rem;
253    --text-sm: 0.875rem;
254    --text-base: 1.0rem;
255    --text-lg: 1.25rem;
256
257    /**
258     * ---------------------------------------------------------------------
259     * COLORS
260     * ---------------------------------------------------------------------
261     */
262
263    /* Color settings */--accent: 235 36 60;
264    --text-primary: 26 26 26;
265    --background-primary: 246 246 246;
266    --dialog-background: 255 255 255;
267    --border-color: var(--text-color, var(--text-primary)) / 0.12;
268
269    /* Button colors */
270    --button-background-primary: 235 36 60;
271    --button-text-primary: 255 255 255;
272    --button-background-secondary: 30 19 43;
273    --button-text-secondary: 255 255 255;
274
275    /* Status colors */
276    --success-background: 224 244 232;
277    --success-text: 0 163 65;
278    --warning-background: 255 246 233;
279    --warning-text: 255 183 74;
280    --error-background: 254 231 231;
281    --error-text: 248 58 58;
282
283    /* Product colors */
284    --on-sale-text: 248 58 58;
285    --on-sale-badge-background: 248 58 58;
286    --on-sale-badge-text: 255 255 255;
287    --sold-out-badge-background: 0 0 0;
288    --sold-out-badge-text: 255 255 255;
289    --primary-badge-background: 186 24 27;
290    --primary-badge-text: 255 255 255;
291    --star-color: 235 36 60;
292    --product-card-background: 255 255 255;
293    --product-card-text: 26 26 26;
294
295    /* Header colors */
296    --header-background: 19 19 19;
297    --header-text: 255 255 255;
298
299    /* Footer colors */
300    --footer-background: 145 21 23;
301    --footer-text: 255 255 255;
302
303    /* Rounded variables (used for border radius) */
304    --rounded-xs: 0.25rem;
305    --rounded-sm: 0.375rem;
306    --rounded: 0.75rem;
307    --rounded-lg: 1.5rem;
308    --rounded-full: 9999px;
309
310    --rounded-button: 1.875rem;
311    --rounded-input: 0.5rem;
312
313    /* Box shadow */
314    --shadow-sm: 0 2px 8px rgb(var(--text-primary) / 0.1);
315    --shadow: 0 5px 15px rgb(var(--text-primary) / 0.1);
316    --shadow-md: 0 5px 30px rgb(var(--text-primary) / 0.1);
317    --shadow-block: 0px 16px 50px rgb(var(--text-primary) / 0.1);
318
319    /**
320     * ---------------------------------------------------------------------
321     * OTHER
322     * ---------------------------------------------------------------------
323     */
324
325    --cursor-close-svg-url: url(//myfirmtech.com/cdn/shop/t/24/assets/cursor-close.svg?v=147174565022153725511721079037);
326    --cursor-zoom-in-svg-url: url(//myfirmtech.com/cdn/shop/t/24/assets/cursor-zoom-in.svg?v=154953035094101115921721079037);
327    --cursor-zoom-out-svg-url: url(//myfirmtech.com/cdn/shop/t/24/assets/cursor-zoom-out.svg?v=16155520337305705181721079037);
328    --checkmark-svg-url: url(//myfirmtech.com/cdn/shop/t/24/assets/checkmark.svg?v=77552481021870063511721079037);
329  }
330
331  [dir="rtl"]:root {
332    /* RTL support */
333    --transform-logical-flip: -1;
334    --transform-origin-start: right;
335    --transform-origin-end: left;
336  }
337
338  @media screen and (min-width: 700px) {
339    :root {
340      /* Typography (font size) */
341      --text-h0: 4rem;
342      --text-h1: 3rem;
343      --text-h2: 2.5rem;
344      --text-h3: 2rem;
345      --text-h4: 1.625rem;
346      --text-h5: 1.25rem;
347      --text-h6: 1.125rem;
348
349      --text-xs: 0.75rem;
350      --text-sm: 0.875rem;
351      --text-base: 1.0rem;
352      --text-lg: 1.25rem;
353
354      /* Spacing */
355      --container-gutter: 2rem;
356      --section-outer-spacing-block: var(--spacing-12);
357      --section-inner-max-spacing-block: var(--spacing-10);
358      --section-inner-spacing-inline: var(--spacing-10);
359      --section-stack-spacing-block: var(--spacing-10);
360
361      /* Grid gutter */
362      --grid-gutter: var(--spacing-6);
363
364      /* Product list settings */
365      --product-list-row-gap: var(--spacing-12);
366
367      /* Form settings */
368      --input-gap: 1rem;
369      --input-height: 3.125rem;
370      --input-padding-inline: var(--spacing-5);
371    }
372  }
373
374  @media screen and (min-width: 1000px) {
375    :root {
376      /* Spacing settings */
377      --container-gutter: var(--spacing-12);
378      --section-outer-spacing-block: var(--spacing-14);
379      --section-inner-max-spacing-block: var(--spacing-12);
380      --section-inner-spacing-inline: var(--spacing-12);
381      --section-stack-spacing-block: var(--spacing-10);
382    }
383  }
384
385  @media screen and (min-width: 1150px) {
386    :root {
387      /* Spacing settings */
388      --container-gutter: var(--spacing-12);
389      --section-outer-spacing-block: var(--spacing-14);
390      --section-inner-max-spacing-block: var(--spacing-12);
391      --section-inner-spacing-inline: var(--spacing-12);
392      --section-stack-spacing-block: var(--spacing-12);
393    }
394  }
395
396  @media screen and (min-width: 1400px) {
397    :root {
398      /* Typography (font size) */
399      --text-h0: 5rem;
400      --text-h1: 3.75rem;
401      --text-h2: 3rem;
402      --text-h3: 2.25rem;
403      --text-h4: 2rem;
404      --text-h5: 1.5rem;
405      --text-h6: 1.25rem;
406
407      --section-outer-spacing-block: var(--spacing-16);
408      --section-inner-max-spacing-block: var(--spacing-14);
409      --section-inner-spacing-inline: var(--spacing-14);
410    }
411  }
412
413  @media screen and (min-width: 1600px) {
414    :root {
415      --section-outer-spacing-block: var(--spacing-16);
416      --section-inner-max-spacing-block: var(--spacing-16);
417      --section-inner-spacing-inline: var(--spacing-16);
418    }
419  }
420
421  /**
422   * ---------------------------------------------------------------------
423   * LIQUID DEPENDANT CSS
424   *
425   * Our main CSS is Liquid free, but some very specific features depend on
426   * theme settings, so we have them here
427   * ---------------------------------------------------------------------
428   */@media screen and (pointer: fine) {
429        .button:not([disabled]):hover, .btn:not([disabled]):hover, .shopify-payment-button__button--unbranded:not([disabled]):hover {
430          --button-background-opacity: 0.85;
431        }
432
433        .button--subdued:not([disabled]):hover {
434          --button-background: var(--text-color) / .05 !important;
435        }
436      }</style>
436<script>
437  // This allows to expose several variables to the global scope, to be used in scripts
438  window.themeVariables = {
439    settings: {
440      showPageTransition: false,
441      headingApparition: "split_fade",
442      pageType: "index",
443      moneyFormat: "${{amount}}",
444      moneyWithCurrencyFormat: "${{amount}} USD",
445      currencyCodeEnabled: true,
446      cartType: "drawer",
447      showDiscount: true,
448      discountMode: "saving"
449    },
450
451    strings: {
452      accessibilityClose: "Close",
453      accessibilityNext: "Next",
454      accessibilityPrevious: "Previous",
455      addToCartButton: "Add to cart",
456      soldOutButton: "Sold out",
457      preOrderButton: "Pre-order",
458      unavailableButton: "Unavailable",
459      closeGallery: "Close gallery",
460      zoomGallery: "Zoom",
461      errorGallery: "Image cannot be loaded",
462      soldOutBadge: "Sold out",
463      discountBadge: "Save @@",
464      sku: "SKU:",
465      searchNoResults: "No results could be found.",
466      addOrderNote: "Add order note",
467      editOrderNote: "Edit order note",
468      shippingEstimatorNoResults: "Sorry, we do not ship to your address.",
469      shippingEstimatorOneResult: "There is one shipping rate for your address:",
470      shippingEstimatorMultipleResults: "There are several shipping rates for your address:",
471      shippingEstimatorError: "One or more error occurred while retrieving shipping rates:"
472    },
473
474    breakpoints: {
475      'sm': 'screen and (min-width: 700px)',
476      'md': 'screen and (min-width: 1000px)',
477      'lg': 'screen and (min-width: 1150px)',
478      'xl': 'screen and (min-width: 1400px)',
479
480      'sm-max': 'screen and (max-width: 699px)',
481      'md-max': 'screen and (max-width: 999px)',
482      'lg-max': 'screen and (max-width: 1149px)',
483      'xl-max': 'screen and (max-width: 1399px)'
484    }
485  };// For detecting native share
486  document.documentElement.classList.add(`native-share--${navigator.share ? 'enabled' : 'disabled'}`);</script>
486<script type="module" src="//myfirmtech.com/cdn/shop/t/24/assets/vendor.min.js?v=52426788336887041471721079037"></script>
486
487    
487<script type="module" src="//myfirmtech.com/cdn/shop/t/24/assets/theme.js?v=47638980506638799551749778884"></script>
487
488    
488<script type="module" src="//myfirmtech.com/cdn/shop/t/24/assets/sections.js?v=13187236767460700511749824325"></script>
488
489
490
491
492    
492<script>
493  (function(w,d,t,r,u)
494  {
495    var f,n,i;
496    w[u]=w[u]||[],f=function()
497    {
498      var o={ti:"187149419", enableAutoSpaTracking: true};
499      o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")
500    },
501    n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function()
502    {
503      var s=this.readyState;
504      s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)
505    },
506    i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)
507  })
508  (window,document,"script","//bat.bing.com/bat.js","uetq");
509</script>
509
510    
510<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
510<meta name="google-site-verification" content="WfoAOq_vi8AnViVe3ylPY_QgCxTj-bnY_YkHe4Gh4jE">
511<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/57731776662/digital_wallets/dialog">
512<meta id="in-context-paypal-metadata" data-shop-id="57731776662" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD">
513<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
513<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=862519446"></script>
513
514<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
515<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=862519446&shop_id=57731776662" crossorigin="anonymous"></script>
vendor: 1 bytes, line 515
515
516<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":57731776662,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/57731776662","merchantName":"FirmTech Inc","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"FirmTech Inc","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 516
516
517<script id="shopify-features" type="application/json">{"accessToken":"e164e7e7273cc62fe81003c0a02485fc","betas":["rich-media-storefront-analytics"],"domain":"myfirmtech.com","predictiveSearch":true,"shopId":57731776662,"locale":"en"}</script>
vendor: 1 bytes, line 517
517
518<script>var Shopify = Shopify || {};
519Shopify.shop = "myfirmtech.myshopify.com";
520Shopify.locale = "en";
521Shopify.currency = {"active":"USD","rate":"1.0"};
522Shopify.country = "US";
523Shopify.theme = {"name":"Live - Impact - FirmTech 07-20-26","id":137274720406,"schema_name":"Impact","schema_version":"5.4.1","theme_store_id":1190,"role":"main"};
524Shopify.theme.handle = "null";
525Shopify.theme.style = {"id":null,"handle":null};
526Shopify.cdnHost = "myfirmtech.com/cdn";
527Shopify.routes = Shopify.routes || {};
528Shopify.routes.root = "/";
529Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
530Shopify.SignInWithShop = Shopify.SignInWithShop || {};
531Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
532Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 532
532
533<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 533
533
534<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 534
534
535<script>
536  window.ShopifyPay = window.ShopifyPay || {};
537  window.ShopifyPay.apiHost = "shop.app\/pay";
538  window.ShopifyPay.redirectState = null;
539</script>
vendor: 1 bytes, line 539
539
540<script>
541  window.Shopify = window.Shopify || {};
542  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
543  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
544  window.Shopify.SignInWithShop.eligible = true;
545</script>
vendor: 1 bytes, line 545
545
546<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
vendor: 1 bytes, line 546
546
547<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 547
547
548<script type="module">
549  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
550
551  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
552
553</script>
vendor: 1 bytes, line 553
553
554<script>
555  window.Shopify = window.Shopify || {};
556  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
557  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"]};
558</script>
vendor: 1 bytes, line 558
558
559<script>(function() {
560  var isLoaded = false;
561  function asyncLoad() {
562    if (isLoaded) return;
563    isLoaded = true;
564    var urls = ["https:\/\/front.optimonk.com\/public\/167781\/shopify\/preload.js?shop=myfirmtech.myshopify.com","https:\/\/cstt-app.herokuapp.com\/get_script\/d2227e1e68d411eea75e46bccb993163.js?v=44036\u0026shop=myfirmtech.myshopify.com","https:\/\/cdn-bundler.nice-team.net\/app\/js\/bundler.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.richpanel.com\/js\/richpanel_shopify_script.js?appClientId=firmtech7851\u0026tenantId=firmtech785\u0026shop=myfirmtech.myshopify.com\u0026shop=myfirmtech.myshopify.com","https:\/\/cdn.provesrc.com\/provesrc.js?apiKey=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50SWQiOiI2NWVmYTYwYzQ4MDNjMjQ1NDlhM2VjODciLCJpYXQiOjE3MTAyMDQ0Mjh9.cm2tOXp3xa22tN-jGgPLHkId3vyTFw_RpMG0JM4dKYk\u0026shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/shopify-extension.getredo.com\/main.js?
564widget_id=6mi7n2i5bpc3e34\u0026shop=myfirmtech.myshopify.com","https:\/\/cdn.zigpoll.com\/zigpoll-shopify-embed.js?accountId=67aa56ea6328469350772c3a\u0026shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=myfirmtech.myshopify.com"];
565    for (var i = 0; i < urls.length; i++) {
566      var s = document.createElement('script');
567      s.type = 'text/javascript';
568      s.async = true;
569      s.src = urls[i];
570      var x = document.getElementsByTagName('script')[0];
571      x.parentNode.insertBefore(s, x);
572    }
573  };
574  if(window.attachEvent) {
575    window.attachEvent('onload', asyncLoad);
576  } else {
577    window.addEventListener('load', asyncLoad, false);
578  }
579})();</script>
vendor: 1 bytes, line 579
579
580<script id="__st">var __st={"a":57731776662,"offset":-25200,"reqid":"f6ef0b0c-e994-43aa-82ad-97bc6fdf99d9-1791067573","pageurl":"myfirmtech.com\/","u":"5b89812bd616","p":"home"};</script>
vendor: 1 bytes, line 580
580
581<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 581
581
582<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 582
582
583<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//myfirmtech.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 583
583
584<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 = "//myfirmtech.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
584<script crossorigin="anonymous" defer="defer" src="//myfirmtech.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 584
584
585<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 585
585
586<script>
587  window.Shopify = window.Shopify || {};
588  window.Shopify.MCP = window.Shopify.MCP || {};
589  window.Shopify.MCP.enabled = true;
590  window.Shopify.MCP.shop = "myfirmtech.myshopify.com";
591  window.Shopify.MCP.mcpEndpoint = "https:\/\/myfirmtech.com\/api\/mcp";
592  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"]}}];
593</script>
vendor: 1 bytes, line 593
593
594<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("\/\/myfirmtech.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})();
595</script>
vendor: 1 bytes, line 595
595
596<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://myfirmtech.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
597</script>
vendor: 1 bytes, line 597
597
598<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
599  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);
600</script>
vendor: 1 bytes, line 600
600
601<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})}}));
602</script>
602
603<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://myfirmtech.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
604<style id="shopify-accelerated-checkout-cart">
605        #shopify-buyer-consent {
606  margin-top: 1em;
607  display: inline-block;
608  width: 100%;
609}
610
611#shopify-buyer-consent.hidden {
612  display: none;
613}
614
615#shopify-subscription-policy-button {
616  background: none;
617  border: none;
618  padding: 0;
619  text-decoration: underline;
620  font-size: inherit;
621  cursor: pointer;
622}
623
624#shopify-subscription-policy-button::before {
625  box-shadow: none;
626}
627
628      </style>
629
630<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
630
631<link href="//myfirmtech.com/cdn/shop/t/24/assets/theme.css?v=24799772014905249381776373685" rel="stylesheet" type="text/css" media="all" />
631<script id="vtag-ai-js" async src="https://r2.leadsy.ai/tag.js" data-pid="BhjecDF73A6rGE6M" data-version="062024"></script>
631
632
633
634<!-- Hotjar Tracking Code for https://myfirmtech.com/ -->
635<script>
vendor: 125 bytes, lines 635-638
635
636    (function(h,o,t,j,a,r){
637        h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
638        h._hjSettings={hjid:
6383690670
vendor: 258 bytes, lines 638-643
638,hjsv:6};
639        a=o.getElementsByTagName('head')[0];
640        r=o.createElement('script');r.async=1;
641        r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
642        a.appendChild(r);
643    })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
644</script>
644
645
646<!-- ahrefs Tracking Code for https://myfirmtech.com/ -->
647
648<script src="https://analytics.ahrefs.com/analytics.js" data-key="TTEs4rt41KwF07Yr0SReDw" defer="true"></script>
648
649    
650<script>
651  window.uetq=window.uetq||[];
652  window.uetq.push('set', { 'pid': {
653    'em': checkout.email,
654    'ph': checkout.billing_address.phone
655  }});
656</script>
656
657
658<!-- sitebehavior Tracking Code for https://myfirmtech.com/ -->
659<script type="text/javascript">
660      (
661        function() {
662            try {
663              if(window.location && window.location.search && window.location.search.indexOf('capture-sitebehaviour-heatmap') !== -1) {
664                sessionStorage.setItem('capture-sitebehaviour-heatmap', '_');
665              }
666         
667              var sbSiteSecret = 'fef03c24-f5fa-4c72-b227-599c2b8e2a4f';
668              window.sitebehaviourTrackingSecret = sbSiteSecret;
669              var scriptElement = document.createElement('script');
670              scriptElement.defer = true;
671              scriptElement.id = 'site-behaviour-script-v2';
672              scriptElement.src = 'https://sitebehaviour-cdn.fra1.cdn.digitaloceanspaces.com/index.min.js?sitebehaviour-secret=' + sbSiteSecret;
673              document.head.appendChild(scriptElement); 
674            }
675            catch (e) {console.error(e)}
676        }
677      )()
678</script>
vendor: 1 bytes, line 678
678
679<script async type="text/javascript" src="https://static.klaviyo.com/onsite/js/klaviyo.js?company_id=Y3Ych4"></script>
679
680  <!-- BEGIN app block: shopify://apps/pandectes-gdpr/blocks/banner/58c0baa2-6cc1-480c-9ea6-38d6d559556a -->
681
682  
683    
684      
684<script>
685        if (!window.pandectesRulesSettings) {
686          window.pandectesRulesSettings = {"version":"5","timestamp":1777992186971,"store":{"id":57731776662,"plan":"plus","primaryLocale":"en","headless":false,"useGeolocation":false,"checkoutRootDomain":"","storefrontRootDomain":"","storefrontAccessToken":""},"banner":{"enabled":true},"regions":{"strict":"*","visible":"*"},"storage":{"type":"http","domain":"","duration":365,"lastReset":1770338597},"gpc":{"enabled":true},"klaviyo":{"enabled":false},"customEvent":{"enabled":false},"rakuten":{"enabled":false,"cmp":false,"ccpa":false},"facebook":{"enabled":false,"id":""},"amazon":{"enabled":false},"microsoft":{"uet":{"enabled":false,"tags":""},"clarity":{"enabled":false,"id":""}},"google":{"enabled":false,"gtmId":"","ga4Id":"","adsId":"","gtmOnly":false,"adStorageCategory":4,"analyticsStorageCategory":2,"functionalityStorageCategory":1,"personalizationStorageCategory":1,"securityStorageCategory":0,"redactData":false,"urlPassthrough":false,"dataLayerName":"dataLayer","waitForUpdate":500,"sendPageView":true,"debugMode":false,"basicMode":false},"blocker":{"enabled":false,"scripts":{"0":[],"1":[],"2":[],"4":[],"8":[]},"css":{"0":[],"1":[],"2":[],"4":[],"8":[]},"iframes":{"0":[],"1":[],"2":[],"4":[],"8":[]},"pixels":{"0":[],"1":[],"2":[],"4":[],"8":[]}}};
687          const rulesScript = document.createElement('script');
688          
689            rulesScript.src = "https://cdn.shopify.com/extensions/01a0fbe8-0a9b-7761-b23e-083cbd79779f/gdpr-cookie-consent-412/assets/pandectes-rules-latest.js";
690          
691          const firstChild = document.head.firstChild;
692          document.head.insertBefore(rulesScript, firstChild);
693        }
694      </script>
694
695    
696
697      
697<script defer src='https://cdn.shopify.com/extensions/01a0fbe8-0a9b-7761-b23e-083cbd79779f/gdpr-cookie-consent-412/assets/pandectes-core-latest.js'></script>
697
698    
699    
699<script>
700      (() => {
701        const isLivePreview = locateLivePreviewParam();
702        let previewUrl = 'https://app.pandect.es/js/pandectes-live-site-preview.js';
703        
704
705        function locateLivePreviewParam(paramName = 'pandectesLivePreview') {
706          const fromUrl = new URLSearchParams(window.location.search).get(paramName);
707          if (fromUrl) {
708            try {
709              sessionStorage.setItem(paramName, fromUrl);
710            } catch {
711              // storage disabled
712            }
713            return fromUrl;
714          }
715          return sessionStorage.getItem(paramName);
716        }
717
718        /** Injects the preview helper script when live preview is active (URL or sessionStorage). */
719        function appendLivePreviewScriptIfNeeded(previewModeScriptUrl) {
720          if (!isLivePreview) return;
721          if (document.head.querySelector('script[data-pandectes-live-preview]')) return;
722          const script = document.createElement('script');
723          script.src = previewModeScriptUrl;
724          script.async = true;
725          script.setAttribute('data-pandectes-live-preview', '');
726          document.head.appendChild(script);
727        }
728
729        window.pandectesBannerSettings = {"version":"5","timestamp":1781539576,"store":{"id":57731776662,"plan":"plus","primaryLocale":"en","headless":false,"useGeolocation":false,"checkoutRootDomain":"","storefrontRootDomain":"","storefrontAccessToken":""},"impressions":{"enabled":true,"timezone":"America/Denver"},"visibility":{"delay":0,"enabled":true,"startHidden":[],"botsFriendly":false,"disableDesignMode":false,"adminMode":false},"regions":{"strict":"*","visible":"*"},"consent":{"redirectOnDeny":false,"reloadOnConsent":false,"broadcastChannel":false,"redirectOnDenyUrl":"https://www.pandectes.io","shopify":true},"theme":{"logos":{"custom":false,"customWidget":false,"banner":"//myfirmtech.myshopify.com/cdn/shop/files/pandectes-banner-logo.png?v=1781539576","widget":"//myfirmtech.myshopify.com/cdn/shop/files/pandectes-reopen-logo.png?v=1781539576"},"mode":"light","border":0,"variables":":host { --float: 16px; --font-size: 14px; --duration: 250ms; --padding: 20px; --radius-dialog:8px; --radius-button:8px; --border-button: 2px; --font-family: inherit; --font-weight-button: 400; --color-base-100: oklch(100% 0 0);--color-base-200: oklch(97% 0 0);--color-base-300: oklch(94% 0 0);--color-base-content: oklch(7.6% 0 0);--color-primary: oklch(7.6% 0 0);--color-primary-content: oklch(100% 0 0);--color-secondary: oklch(7.6% 0 0);--color-secondary-content: oklch(100% 0 0);--color-accent: oklch(7.6% 0 0);--color-accent-content: oklch(100% 0 0);--color-neutral: oklch(7.6% 0 0);--color-neutral-content: oklch(100% 0 0);; }","shadows":true,"isModal":false,"scrollLock":true,"useAnimations":true,"buttons":{"size":"md","border":2,"radius":8,"variants":{"primary":"filled","secondary":"outlined"}},"zIndex":2147483647,"showPoweredBy":true},"close":{"triggers":[],"action":"dismiss","pixels":200,"timeout":0},"language":{"multilingual":false,"detection":"locale","fallback":"en","supported":["en"],"allowChange":false},"widget":{"enabled":true,"position":"bottom left","action":"reopen","customTrigger":false},"dialogs":{"notice":{"style":{"type":"bar","layout":"horizontal","position":"bottom","animation":"animation-zoom","size":0},"buttons":{"primary":["allow","deny"],"secondary":[]},"features":{"hideHeader":false,"alignCenter":false,"flipButtons":false,"expandableIntro":false,"inlineLinks":false}},"preferences":false,"status":false},"links":{"links":[{"id":"policy","url":"/policies/privacy-policy"}],"target":"_self","respectLocale":false},"storage":{"type":"http","domain":"","duration":365,"lastReset":1770338597},"texts":{"en":{"buttons":{"showLess":"Show less","showMore":"Show more"},"links":{"policy":"Privacy Policy ","google":"Google's Privacy Terms","imprint":"Imprint"},"categories":[{"title":"Strictly necessary cookies","description":"These cookies are essential in order to enable you to move around the website and use its features, such as accessing secure areas of the website. The website cannot function properly without these cookies."}
729,{"title":"Functional cookies","description":"These cookies enable the site to provide enhanced functionality and personalisation. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies then some or all of these services may not function properly."},{"title":"Performance cookies","description":"These cookies enable us to monitor and improve the performance of our website. For example, they allow us to count visits, identify traffic sources and see which parts of the site are most popular."},{"title":"Targeting cookies","description":"These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites.    They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising."}],"notice":{"title":"We respect your privacy","message":"We use cookies to enhance your experience, analyze traffic, and personalize content. Some cookies are essential, while others help us understand how you interact with our site. You can manage your preferences at any time. ","dismiss":"Ok","allow":"Accept","deny":"Decline","preferences":"Preferences"},"preferences":{"title":"Manage consent preferences","message":"We use cookies to optimize website functionality, analyze the performance, and provide personalized experience to you. Some cookies are essential to make the website operate and function correctly. Those cookies cannot be disabled. In this window you can manage your preference of cookies.","cookieDetails":"Cookies details","alwaysActive":"Always allowed","deny":"Deny all","allow":"Accept all","custom":"Save preferences","dismiss":"Close"},"status":{"title":"Cookie settings","message":"Your current state","allow":"Accept all","deny":"Deny all","dismiss":"Close","reopen":"Change your consent","consentDate":"C
729onsent date","consentId":"Your consent ID","hideDetails":"Hide details","showDetails":"Show details","noConsent":"No consent"},"declaration":{"name":"Name","type":"Type","vendor":"Provider","purpose":"Purpose","retention":"Retention","expirations":{"declSeconds":"seconds","declMinutes":"minutes","declHours":"hours","declDays":"days","declWeeks":"week(s)","declMonths":"months","declYears":"years","declSession":"Session"}},"cookies":{"ar_debug":"Checks whether a technical debugger-cookie is present.","bito":"Used for advertising purposes.","bitoIsSecure":"Enables third-party advertisers to target visitors with relevant ads.","cart":"Contains information related to the user's cart.","cart_currency":"Used after a checkout is completed to initialize a new empty cart with the same currency as the one just used.","cookietest":"Used to check if the browser allows cookies.","discount_code":"Stores a discount code (received from an online store visit with a URL parameter) in order to the next checkout.","FPAU":"Assigns a specific ID to the visitor for user visit analysis and statistics.","FPID":"Registers statistical data on users' behavior for internal analytics.","FPLC":"Cross-domain linker cookie used for tracking. It is readable by JavaScript.","guest_id":"Identifies and tracks website visitors, collecting ad preference data.","guest_id_ads":"Used for advertising purposes when the user is logged out.","guest_id_marketing":"Used for advertising purposes when users are logged out.","identity-state":"Stores state before redirecting customers to identity authentication.\t","keep_alive":"Used when international domain redirection is enabled to determine if a request is the first one of a session.","localization":"Used to localize the cart to the correct country.","login_with_
729shop_finalize":"Used to facilitate login with Shop.","master_device_id":"Permanent device identifier.","muc_ads":"Used to show relevant offers based on user visits via X.","MUID":"Cookie is placed by Microsoft to track visits across websites.","NID":"Used to collect website statistics and track conversion rates.","optimonkclient":"Used for implementing pop-up ads and storing visitor behavior on campaigns.","optimonkclientid":"Stores a unique identifier for visitor analytics.","optimonksession":"Stores session start time for pop-up ads.","order":"Used to allow access to the data of the order details page of the buyer.","personalization_id":"Identifies users for personalizing services and ads.","psuid":"Used for generating unique IDs to count impressions and manage notification rules.","shopify_override_user_locale":"Used as a mechanism to set User locale in admin.","shopify_pay":"Used to log in a buyer into Shop Pay when they come back to checkout on the same store.","shopify_pay_redirect":"Used to accelerate the checkout process when the buyer has a Shop Pay account.","shop_analytics":"Contains the required buyer information for analytics in Shop.","shop_pay_accelerated":"Indicates if a buyer is eligible for Shop Pay accelerated checkout.","skip_shop_pay":"It prevents a customer's checkout from automatically being set to default, ensuring all payment options are shown.","storefront_digest":"Stores a digest of the storefront password, allowing merchants to preview their storefront while it's password protected.","user":"Used in connection with Shop login.","user_cross_site":"Used in connection with Shop login.","_ab":"Used to control when the admin bar is shown on the storefront.","_abv":"Persist the collapsed state of the admin bar.","_dcid":"Collects user behavior data across websites to optimize advertisement relevance.","_fbp":"Cookie is placed by Facebook to track visits across websites.","_ga":"Cookie is set by Google Analytics with unknown functionality","_identity_session":"Contains the identity session identifier of the user.","_landing_page":"Capture the landing page of visitor when they come from other sites.","_master_udr":"Permanent device identifier.","_merchant_analytics":"Contains analytics data for the merchant session.","_merchant_essential":"Contains essential information for the correct functionality of merchant surfaces such as the admin area.","_orig_referrer":"Allows merchant to identify where people are visiting them from.","_shopify_analytics":"Contains analytics data for buyer surfaces such as the storefront or checkout.","_shopify_country":"Used for Plus shops where pricing currency/country is set from GeoIP by helping avoid GeoIP lookups after the first request.","_shopify_essential":"Contains essential information for the correct functionality of a store such as session and checkout information and anti-tampering data.","_shopify_essential_\t":"Contains an opaque token that is used to identify a device for all essential purposes.","_shopify_marketing":"Contains marketing data for buyer surfaces such as the storefront or checkout.","_shopify_s":"Used to identify a given browser session/shop combination. Duration is 30 minute rolling expiry of last use.","_shopify_test":"A test cookie used by Shopify to verify the store's setup.","_shopify_y":"Shopify analytics.","_shop_app_essential":"Contains essential information for the correct functionality of Shop.app.","_tracking_consent":"Used to store a user's preferences if a merchant has set up privacy rules in the visitor's region.","_uetsid":"This cookie is used by Bing to determine what ads should be shown that may be relevant to the end user perusing the site.","_uetvid":"Used to track visitors on multiple websites, in order to present relevant advertisement based on the visitor's preferences.","__kla_id":"Tracks when someone clicks through a Klaviyo email to your website."}}},"categories":[{"bitwise":0},{"bitwise":1},{"bitwise":2},{"bitwise":4}],"cookies":[{"name":"localization","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"cart_currency","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"2 week(s)","unit":"declWeeks","expires":2},{"name":"_shopify_s","domain":".myfirmtech.com","type":"http","vendor":"Shopify","category":2,"retention":"30 minute(s)","unit":"declMinutes","expires":30},{"name":"_shopify_y","domain":".myfirmtech.com","type":"http","vendor":"Shopify","category":2,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"_ga","domain":".myfirmtech.com","type":"http","vendor":"Google","category":2,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"__kla_id","domain":"myfirmtech.com","type":"http","vendor":"Klaviyo","category":3,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"MUID","domain":".bing.com","type":"http","vendor":"Microsoft","category":3,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"_uetsid","domain":".myfirmtech.com","type":"http","vendor":"Bing","category":3,"retention":"1 day(s)","unit":"declDays","expires":1},{"name":"_uetvid","domain":".myfirmtech.com","type":"http","vendor":"Bing","category":3,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"_fbp","domain":".myfirmtech.com","type":"http","vendor":"Facebook","category":3,"retention":"3 month(s)","unit":"declMonths","expires":3},{"name":"cart","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"1 month(s)","unit":"declMonths","expires":1},{"name":"_shopify_essential","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"_shopify_s","domain":"com","type":"http","vendor":"Shopify","category":2,"retention":"Session","unit":"declYears","expires":1},{"name":"_ab","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"master_device_id","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"storefront_digest","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"keep_alive","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"Session","unit":"declSeconds","expires":1},{"name":"_tracking_consent","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"_shopify_country","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"30 minute(s)","unit":"declMinutes","expires":30},{"name":"shopify_pay_redirect","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"_orig_referrer","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":2,"retention":"2 week(s)","unit":"declWeeks","expires":2},{"name":"_landing_page","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":2,"retention":"2 week(s)","unit":"declWeeks","expires":2},{"name":"shopify_pay","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"discount_code","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"Session","unit":"declDays","expires":1},{"name":"order","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"3 week(s)","unit":"declWeeks","expires":3},{"name":"shop_analytics","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":2,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"shop_pay_accelerated","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"_abv","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"_identity_session","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"2 year(s)","unit":"declYears","expires":2}
729,{"name":"login_with_shop_finalize","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"5 minute(s)","unit":"declMinutes","expires":5},{"name":"_master_udr","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"Session","unit":"declSeconds","expires":1},{"name":"user_cross_site","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"user","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"ar_debug","domain":".region1.google-analytics.com","type":"http","vendor":"Teads","category":3,"retention":"3 month(s)","unit":"declMonths","expires":3},{"name":"psuid","domain":".myfirmtech.com","type":"http","vendor":"Unknown","category":2,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"_shopify_analytics","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":2,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"_shop_app_essential","domain":".shop.app","type":"http","vendor":"Shopify","category":0,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"shopify_client_id","domain":"myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"ps65efa60c4803c24549a3ec87","domain":".myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"5 day(s)","unit":"declDays","expires":5},{"name":"guest_id_ads","domain":".twitter.com","type":"http","vendor":"Twitter","category":3,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"personalization_id","domain":".twitter.com","type":"http","vendor":"X","category":3,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"guest_id_marketing","domain":".twitter.com","type":"http","vendor":"Twitter","category":3,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"__eventn_id","domain":".myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"guest_id","domain":".twitter.com","type":"http","vendor":"X","category":3,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"_hjSessionUser_*","domain":".myfirmtech.com","type":"http","vendor":"Hotjar","category":1,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"muc_ads","domain":".t.co","type":"http","vendor":"X","category":3,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"_hjSession_*","domain":".myfirmtech.com","type":"http","vendor":"Hotjar","category":1,"retention":"30 minute(s)","unit":"declMinutes","expires":30},{"name":"FPID","domain":".myfirmtech.com","type":"http","vendor":"Google","category":2,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"_ga_*","domain":".myfirmtech.com","type":"http","vendor":"Google","category":2,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"fpId","domain":"myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"2 day(s)","unit":"declDays","expires":2},{"name":"FPLC","domain":".myfirmtech.com","type":"http","vendor":"Google","category":2,"retention":"20 hour(s)","unit":"declHours","expires":20},{"name":"FPGSID","domain":".myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"30 minute(s)","unit":"declMinutes","expires":30},{"name":"FPAU","domain":".myfirmtech.com","type":"http","vendor":"Google","category":2,"retention":"3 month(s)","unit":"declMonths","expires":3},{"name":"_dcid","domain":".myfirmtech.com","type":"http","vendor":"Google","category":3,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"optiMonkClientId","domain":"myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"bitoIsSecure","domain":".bidr.io","type":"http","vendor":"Beeswax","category":3,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"returngo_customer_id","domain":"myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"1 day(s)","unit":"declDays","expires":1},{"name":"rp_customer_id","domain":"myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"36 second(s)","unit":"declSeconds","expires":36},{"name":"optiMonkClient","domain":"myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"_gtmeec","domain":".myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"3 month(s)","unit":"declMonths","expires":3},{"name":"bito","domain":".bidr.io","type":"http","vendor":"Beeswax","category":3,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"rp_email","domain":"myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"36 second(s)","unit":"declSeconds","expires":36},{"name":"_rsession","domain":"myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"30 minute(s)","unit":"declMinutes","expires":30},{"name":"ps65efa60c4803c24549a3ec87","domain":".provesrc.com","type":"http","vendor":"Unknown","category":4,"retention":"1 day(s)","unit":"declDays","expires":1},{"name":"rp_lastName","domain":"myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"36 second(s)","unit":"declSeconds","expires":36},{"name":"rp_firstName","domain":"myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"36 second(s)","unit":"declSeconds","expires":36},{"name":"tuid","domain":".a.usbrowserspeed.com","type":"http","vendor":"Unknown","category":4,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"rptkn","domain":".myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"rpdid","domain":".myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"rpsid","domain":".myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"6 hour(s)","unit":"declHours","expires":6},{"name":"psuid","domain":".provesrc.com","type":"http","vendor":"Unknown","category":2,"retention":"4 hour(s)","unit":"declHours","expires":4},{"name":"_ruid","domain":"myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"data-*","domain":"myfirmtech.com","type":"http","vendor":"Media.net","category":3,"retention":"1 week(s)","unit":"declWeeks","expires":1},{"name":"optiMonkSession","domain":"myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"Session","unit":"declYears","expires":1},{"name":"_shopify_test","domain":"com","type":"http","vendor":"Shopify","category":0,"retention":"Session","unit":"declYears","expires":1},{"name":"_shopify_test","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"Session","unit":"declYears","expires":1},{"name":"auth_state_*","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"25 minute(s)","unit":"declMinutes","expires":25},{"name":"cookietest","domain":"myfirmtech.com","type":"http","vendor":"Unknown","category":0,"retention":"Session","unit":"declYears","expires":1},{"name":"_gd*","domain":"myfirmtech.com","type":"http","vendor":"Google","category":2,"retention":"Session","unit":"declYears","expires":1},{"name":"identity-state","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"1 day(s)","unit":"declDays","expires":1},{"name":"_merchant_essential","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"_shopify_essential_\t","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"_merchant_analytics","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":2,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"_shopify_marketing","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":3,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"shopify_override_user_locale","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":1,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"_up_pixel_cart_fi","domain":"myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"33 second(s)","unit":"declSeconds","expires":33},{"name":"optiMonkViewedProducts","domain":"myfirmtech.com","type":"http","vendor":"Unknown","category":4,"retention":"1 year(s)","unit":"declYears","expires":1},{"name":"NID","domain":".google.com","type":"http","vendor":"Google","category":3,"retention":"6 month(s)","unit":"declMonths","expires":6},{"name":"skip_shop_pay","domain":"myfirmtech.com","type":"http","vendor":"Shopify","category":0,"retention":"1 year(s)","unit":"declYears","expires":1}]};
730        if (isLivePreview) {
731          if (!window.pandectesBannerSettings.store) {
732            window.pandectesBannerSettings.store = {};
733          }
734          window.pandectesBannerSettings.store.plan = 'enterprise';
735        }
736        
737        function whenBodyReady(callback) {
738          window.addEventListener('DOMContentLoaded', callback);
739        }
740        
741
742        whenBodyReady(function(){
743          const element = document.createElement('pandectes-cmp');
744          element.appData = window.pandectesBannerSettings;
745          document.body.appendChild(element);
746          appendLivePreviewScriptIfNeeded(previewUrl);
747        });
748
749      })()
750    </script>
750
751  
752
753
754
755  <!-- A11y -->
756  
757  
758  
759  
760  
761
762  
763
764
765
766<!-- END app block --><!-- BEGIN app block: shopify://apps/ecomposer-builder/blocks/app-embed/a0fc26e1-7741-4773-8b27-39389b4fb4a0 --><!-- DNS Prefetch & Preconnect -->
767<link rel="preconnect" href="https://cdn.ecomposer.app" crossorigin>
768<link rel="dns-prefetch" href="https://cdn.ecomposer.app">
769
770<link rel="prefetch" href="https://cdn.ecomposer.app/vendors/css/[email protected]" as="style">
771<link rel="prefetch" href="https://cdn.ecomposer.app/vendors/js/[email protected]" as="script">
772<link rel="prefetch" href="https://cdn.ecomposer.app/vendors/js/ecom_modal.js" as="script">
773
774<!-- Global CSS --><!--ECOM-EMBED-->
775  <style id="ecom-global-css" class="ecom-global-css">/**ECOM-INSERT-CSS**/.ecom-section > div.core__row--columns{max-width: 1200px;}.ecom-column>div.core__column--wrapper{padding: 20px;}div.core__blocks--body>div.ecom-block.elmspace:not(:first-child){margin-top: 20px;}:root{--ecom-global-colors-primary:#f5d5d5;--ecom-global-colors-secondary:#db4242;--ecom-global-colors-text:#000000;--ecom-global-colors-accent:#ffffff;--ecom-global-colors-J2dZPzhr:#fc4c4c;--ecom-global-colors-YXqtVCv8:#3f2e52;--ecom-global-typography-h1-font-weight:600;--ecom-global-typography-h1-font-size:72px;--ecom-global-typography-h1-line-height:90px;--ecom-global-typography-h1-letter-spacing:-0.02em;--ecom-global-typography-h2-font-weight:600;--ecom-global-typography-h2-font-size:60px;--ecom-global-typography-h2-line-height:72px;--ecom-global-typography-h2-letter-spacing:-0.02em;--ecom-global-typography-h3-font-weight:600;--ecom-global-typography-h3-font-size:48px;--ecom-global-typography-h3-line-height:60px;--ecom-global-typography-h3-letter-spacing:-0.02em;--ecom-global-typography-h4-font-weight:600;--ecom-global-typography-h4-font-size:32px;--ecom-global-typography-h4-line-height:44px;--ecom-global-typography-h4-letter-spacing:-0.02em;--ecom-global-typography-h5-font-weight:600;--ecom-global-typography-h5-font-size:30px;--ecom-global-typography-h5-line-height:38px;--ecom-global-typography-h6-font-weight:600;--ecom-global-typography-h6-font-size:24px;--ecom-global-typography-h6-line-height:32px;--ecom-global-typography-h7-font-weight:400;--ecom-global-typography-h7-font-size:18px;--ecom-global-typography-h7-line-height:28px;--ecom-global-typography-primary-title:Primary;--ecom-global-typography-primary-font-size:45px;--ecom-global-typography-secondary-title:Secondary;--ecom-global-typography-text-title:Text;--ecom-global-typography-text-font-size:34px;--ecom-global-typography-text-font-family:Montserrat;--ecom-global-typography-accent-title:Accent;--ecom-global-typography-1K4t3A-font-family:DM Sans;--ecom-global-typography-1K4t3A-font-size:24px;--ecom-global-typography-1K4t3A-font-weight:500;--ecom-global-typography-1K4t3A-line-height:56px;--ecom-global-typography-A6Mour-title:New Item;--ecom-global-typography-A6Mour-font-family:Space Grotesk;--ecom-global-typography-lR2ofq00-font-weight:600;--ecom-global-typography-lR2ofq00-font-size:40px;--ecom-global-typography-lR2ofq00-font-family:Jost;--ecom-global-typography-lR2ofq00-line-height:66px;--ecom-global-typography-uI04brPm-font-family:Inter;--ecom-global-typography-uI04brPm-font-size:15px;--ecom-global-typography-uI04brPm-line-height:1.5em;--ecom-global-typography-uI04brPm-letter-spacing:0.4px;--ecom-global-typography-B5rLufxR-font-family:Inter;--ecom-global-typography-B5rLufxR-font-size:20px;--ecom-global-typography-B5rLufxR-line-height:1.5em;--ecom-global-typography-B5rLufxR-letter-spacing:0.4px;--ecom-global-typography-B5rLufxR-font-weight:500;--ecom-global-typography-Zf3nddNQ-font-family:Jost;--ecom-global-typography-Zf3nddNQ-font-size:38px;--ecom-global-typography-Zf3nddNQ-font-weight:700;--ecom-global-typography-Zf3nddNQ-line-height:42px;--ecom-global-typography-m5lJMKLv-font-family:Jost;--ecom-global-typography-m5lJMKLv-font-size:16px;--ecom-global-typography-AbgUXj49-font-family:Jost;--ecom-global-typography-AbgUXj49-font-size:18px;--ecom-global-typography-AbgUXj49-font-weight:500;--ecom-global-typography-AbgUXj49-line-height:26px;--ecom-global-typography-vw8dyZaa-font-weight:600;--ecom-global-typography-vw8dyZaa-font-size:20px;--ecom-global-typography-vw8dyZaa-font-family:Jost;
775--ecom-global-typography-url73nOe-font-weight:400;--ecom-global-typography-url73nOe-font-size:15px;--ecom-global-typography-url73nOe-font-family:Jost;--ecom-global-typography-url73nOe-line-height:24px;--ecom-global-typography-1jIKTb3C-font-family:Be Vietnam Pro;--ecom-global-typography-1jIKTb3C-font-size:14px;--ecom-global-typography-1jIKTb3C-line-height:40px;--ecom-global-typography-xF9iao9u-font-weight:600;--ecom-global-typography-xF9iao9u-font-size:38px;--ecom-global-typography-xF9iao9u-font-family:Jost;--ecom-global-typography-xF9iao9u-line-height:50px;--ecom-global-typography-D4BrkEgE-font-family:Jost;--ecom-global-typography-D4BrkEgE-font-size:16px;--ecom-global-typography-D4BrkEgE-line-height:26px;}</style>
776  <!--/ECOM-EMBED--><!-- Custom CSS & JS --><style id="ecom-custom-css"></style>
776<script id="ecom-custom-js" async></script>
776<!-- Open Graph Meta Tags for Pages --><!-- AI Search Optimization (LLM Outreach) --><!-- Critical Inline Styles -->
777<style class="ecom-theme-helper">.ecom-animation{opacity:0}.ecom-animation.animate,.ecom-animation.ecom-animated{opacity:1}.ecom-cart-popup{display:grid;position:fixed;inset:0;z-index:9999999;align-content:center;padding:5px;justify-content:center;align-items:center;justify-items:center}.ecom-cart-popup::before{content:' ';position:absolute;background:#e5e5e5b3;inset:0}.ecom-ajax-loading{cursor:not-allowed;pointer-events:none;opacity:.6}#ecom-toast{visibility:hidden;max-width:50px;height:60px;margin:auto;background-color:#333;color:#fff;text-align:center;border-radius:2px;position:fixed;z-index:1;left:0;right:0;bottom:30px;font-size:17px;display:grid;grid-template-columns:50px auto;align-items:center;justify-content:start;align-content:center;justify-items:start}#ecom-toast.ecom-toast-show{visibility:visible;animation:ecomFadein .5s,ecomExpand .5s .5s,ecomStay 3s 1s,ecomShrink .5s 4s,ecomFadeout .5s 4.5s}#ecom-toast #ecom-toast-icon{width:50px;height:100%;box-sizing:border-box;background-color:#111;color:#fff;padding:5px}#ecom-toast .ecom-toast-icon-svg{width:100%;height:100%;position:relative;vertical-align:middle;margin:auto;text-align:center}#ecom-toast #ecom-toast-desc{color:#fff;padding:16px;overflow:hidden;white-space:nowrap}@media(max-width:768px){#ecom-toast #ecom-toast-desc{white-space:normal;min-width:250px}#ecom-toast{height:auto;min-height:60px}}.ecom__column-full-height{height:100%}[data-ec-sr]>.core__row--columns>.ecom-column:not(.ecom-sr-visible):not(.ecom-sr-done),[data-ec-sr].ec-flex-wp>.ecom-inner>.ecom-block:not(.ecom-sr-visible):not(.ecom-sr-done),[data-ec-sr].ec-flex-wp>.ecom-inner>.ec-flex-wp.core__block:not(.ecom-sr-visible):not(.ecom-sr-done),[data-ec-sr].ec-flex-wp>.ecom-block:not(.ecom-sr-visible):not(.ecom-sr-done),[data-ec-sr].ec-flex-wp>.ec-flex-wp.core__block:not(.ecom-sr-visible):not(.ecom-sr-done),[data-ec-sr]>.ecom-grid-layout>.ecom-grid-item:not(.ecom-sr-visible):not(.ecom-sr-done),[data-ec-sr-items] [data-ec-sr-item]:not(.ecom-sr-visible):not(.ecom-sr-done){opacity:0}.ecom-sr-done{opacity:1}@keyframes ecom-sr-fade-up{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes ecom-sr-fade-in{from{opacity:0}to{opacity:1}}@keyframes ecom-sr-slide-left{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}@keyframes ecom-sr-zoom-in{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.ecom-sr-visible{animation-fill-mode:both!important;animation-duration:.6s!important;animation-timing-function:cubic-bezier(.25,.46,.45,.94)!important}.ecom-sr-visible[data-sr-anim="fade-up"]{animation-name:ecom-sr-fade-up!important}.ecom-sr-visible[data-sr-anim="fade-in"]{animation-name:ecom-sr-fade-in!important}.ecom-sr-visible[data-sr-anim="slide-left"]{animation-name:ecom-sr-slide-left!important}.ecom-sr-visible[data-sr-anim="zoom-in"]{animation-name:ecom-sr-zoom-in!important}@keyframes ecomFadein{from{bottom:0;opacity:0}
777to{bottom:30px;opacity:1}}@keyframes ecomExpand{from{min-width:50px}to{min-width:var(--ecom-max-width)}}@keyframes ecomStay{from{min-width:var(--ecom-max-width)}to{min-width:var(--ecom-max-width)}}@keyframes ecomShrink{from{min-width:var(--ecom-max-width)}to{min-width:50px}}@keyframes ecomFadeout{from{bottom:30px;opacity:1}to{bottom:60px;opacity:0}}</style>
778
779
780<!-- EComposer Config Script -->
781<script id="ecom-theme-helpers" async>
782window.EComposer=window.EComposer||{};(function(){if(!this.configs)this.configs={};this.configs={"custom_code":{"enable_jquery":true,"custom_css":"","custom_js":""},"instagram":"IGQWRQcDhiV24zQkRtY3lIb2NJRDVEa3cwbHpwd2pLM2hmNDFfYmFwT0R5TVlsRHJGbkM1Nk5nTXI3LW5WMDNSLTYyaTF6djFQNHVhc0g2TldGOVI0cTl3SDZArMkotcUdqdkNNakV4T1lWZAwZDZD"};this.configs.ajax_cart={enable:false};this.customer=false;this.initQuickview=function(){};
783this.proxy_path='/apps/ecomposer-visual-page-builder';this.popupScriptUrl='';this.routes={domain:'https://myfirmtech.com',root_url:'/',collections_url:'/collections',all_products_collection_url:'/collections/all',cart_url:'/cart',cart_add_url:'/cart/add',cart_change_url:'/cart/change',cart_clear_url:'/cart/clear',cart_update_url:'/cart/update',product_recommendations_url:'/recommendations/products'};
784this.queryParams={};
785if(window.location.search.length){new URLSearchParams(window.location.search).forEach((value,key)=>{this.queryParams[key]=value})}
786this.money_format="${{amount}}";
787this.money_with_currency_format="${{amount}} USD";
788this.currencyCodeEnabled=true;this.abTestingData = [];this.formatMoney=function(t,e){const r=this.currencyCodeEnabled?this.money_with_currency_format:this.money_format;function a(t,e){return void 0===t?e:t}function o(t,e,r,o){if(e=a(e,2),r=a(r,","),o=a(o,"."),isNaN(t)||null==t)return 0;var n=(t=(t/100).toFixed(e)).split(".");return n[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1"+r)+(n[1]?o+n[1]:"")}"string"==typeof t&&(t=t.replace(".",""));var n="",i=/\{\{\s*(\w+)\s*\}\}/,s=e||r;switch(s.match(i)[1]){case"amount":n=o(t,2);break;case"amount_no_decimals":n=o(t,0);break;case"amount_with_comma_separator":n=o(t,2,".",",");break;case"amount_with_space_separator":n=o(t,2," ",",");break;case"amount_with_period_and_space_separator":n=o(t,2," ",".");break;case"amount_no_decimals_with_comma_separator":n=o(t,0,".",",");break;case"amount_no_decimals_with_space_separator":n=o(t,0," ");break;case"amount_with_apostrophe_separator":n=o(t,2,"'",".")}return s.replace(i,n)};
789this.resizeImage=function(t,e){try{if(!e||"original"==e||"full"==e||"master"==e)return t;if(-1!==t.indexOf("cdn.shopify.com")||-1!==t.indexOf("/cdn/shop/")){var r=t.match(/\.(jpg|jpeg|gif|png|bmp|bitmap|tiff|tif|webp)((\#[0-9a-z\-]+)?(\?v=.*)?)?$/gim);if(null==r)return null;var a=t.split(r[0]),o=r[0];return a[0]+"_"+e+o}}catch(r){return t}return t};
790this.getProduct=function(t){if(!t)return!1;let e=("/"===this.routes.root_url?"":this.routes.root_url)+"/products/"+t+".js?shop="+Shopify.shop;return window.ECOM_LIVE&&(e="/shop/builder/ajax/ecom-proxy/products/"+t+"?shop="+Shopify.shop),window.fetch(e,{headers:{"Content-Type":"application/json"}}).then(t=>t.ok?t.json():false)};
791const u=new URLSearchParams(window.location.search);if(u.has("ecom-redirect")){const r=u.get("ecom-redirect");if(r){let d;try{d=decodeURIComponent(r)}catch{return}d=d.trim().replace(/[\r\n\t]/g,"");if(d.length>2e3)return;const p=["javascript:","data:","vbscript:","file:","ftp:","mailto:","tel:","sms:","chrome:","chrome-extension:","moz-extension:","ms-browser-extension:"],l=d.toLowerCase();for(const o of p)if(l.includes(o))return;const x=[/
791<script/i,/<\/script/i,/javascript:/i,/vbscript:/i,/onload=/i,/onerror=/i,/onclick=/i,/onmouseover=/i,/onfocus=/i,/onblur=/i,/onsubmit=/i,/onchange=/i,/alert\s*\(/i,/confirm\s*\(/i,/prompt\s*\(/i,/document\./i,/window\./i,/eval\s*\(/i];for(const t of x)if(t.test(d))return;if(d.startsWith("/")&&!d.startsWith("//")){if(!/^[a-zA-Z0-9\-._~:/?#[\]@!$&'()*+,;=%]+$/.test(d))return;if(d.includes("../")||d.includes("./"))return;window.location.href=d;return}if(!d.includes("://")&&!d.startsWith("//")){if(!/^[a-zA-Z0-9\-._~:/?#[\]@!$&'()*+,;=%]+$/.test(d))return;if(d.includes("../")||d.includes("./"))return;window.location.href="/"+d;return}let n;try{n=new URL(d)}catch{return}if(!["http:","https:"].includes(n.protocol))return;if(n.port&&(parseInt(n.port)<1||parseInt(n.port)>65535))return;const a=[window.location.hostname];if(a.includes(n.hostname)&&(n.href===d||n.toString()===d))window.location.href=d}}
792}).bind(window.EComposer)();
793if(window.Shopify&&window.Shopify.designMode&&window.top&&window.top.opener){window.addEventListener("load",function(){window.top.opener.postMessage({action:"ecomposer:loaded"},"*")})}
794</script>
794<!-- Toast Template -->
795<script type="text/template" id="ecom-template-html"><!-- BEGIN app snippet: ecom-toast --><div id="ecom-toast"><div id="ecom-toast-icon"><svg xmlns="http://www.w3.org/2000/svg" class="ecom-toast-icon-svg ecom-toast-icon-info" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/></svg>
796<svg class="ecom-toast-icon-svg ecom-toast-icon-success" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 48c110.5 0 200 89.5 200 200 0 110.5-89.5 200-200 200-110.5 0-200-89.5-200-200 0-110.5 89.5-200 200-200m140.2 130.3l-22.5-22.7c-4.7-4.7-12.3-4.7-17-.1L215.3 303.7l-59.8-60.3c-4.7-4.7-12.3-4.7-17-.1l-22.7 22.5c-4.7 4.7-4.7 12.3-.1 17l90.8 91.5c4.7 4.7 12.3 4.7 17 .1l172.6-171.2c4.7-4.7 4.7-12.3 .1-17z"/></svg>
797</div><div id="ecom-toast-desc"></div></div><!-- END app snippet --></script>
797<!-- END app block --><!-- BEGIN app block: shopify://apps/uppromote-affiliate/blocks/core-script/64c32457-930d-4cb9-9641-e24c0d9cf1f4 --><!-- BEGIN app snippet: core-metafields-setting --><!--suppress ES6ConvertVarToLetConst -->
798<script type="application/json" id="core-uppromote-settings">{"app_env":{"env":"production"},"message_bar_setting":{"referral_enable":0,"referral_content":"You're shopping with {affiliate_name}!","referral_font":"Poppins","referral_font_size":14,"referral_text_color":"#ffffff","referral_background_color":"#338FB1","not_referral_enable":0,"not_referral_content":"Enjoy your time.","not_referral_font":"Poppins","not_referral_font_size":14,"not_referral_text_color":"#ffffff","not_referral_background_color":"#338FB1"}}</script>
vendor: 1 bytes, line 798
798
799<script type="application/json" id="core-uppromote-cart">{"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}</script>
799
800
801<script id="core-uppromote-quick-store-tracking-vars">
802    function getDocumentContext(){const{href:a,hash:b,host:c,hostname:d,origin:e,pathname:f,port:g,protocol:h,search:i}=window.location,j=document.referrer,k=document.characterSet,l=document.title;return{location:{href:a,hash:b,host:c,hostname:d,origin:e,pathname:f,port:g,protocol:h,search:i},referrer:j||document.location.href,characterSet:k,title:l}}function getNavigatorContext(){const{language:a,cookieEnabled:b,languages:c,userAgent:d}=navigator;return{language:a,cookieEnabled:b,languages:c,userAgent:d}}function getWindowContext(){const{innerHeight:a,innerWidth:b,outerHeight:c,outerWidth:d,origin:e,screen:{height:j,width:k},screenX:f,screenY:g,scrollX:h,scrollY:i}=window;return{innerHeight:a,innerWidth:b,outerHeight:c,outerWidth:d,origin:e,screen:{screenHeight:j,screenWidth:k},screenX:f,screenY:g,scrollX:h,scrollY:i,location:getDocumentContext().location}}function getContext(){return{document:getDocumentContext(),navigator:getNavigatorContext(),window:getWindowContext()}}
803    if (window.location.href.includes('?sca_ref=')) {
804        localStorage.setItem('__up_lastViewedPageContext', JSON.stringify({
805            context: getContext(),
806            timestamp: new Date().toISOString(),
807        }))
808    }
809</script>
809
810
811
812<script id="core-uppromote-setting-booster">
813    var UpPromoteCoreSettings = JSON.parse(document.getElementById('core-uppromote-settings').textContent)
814    UpPromoteCoreSettings.currentCart = JSON.parse(document.getElementById('core-uppromote-cart')?.textContent || '{}')
815    const idToClean = ['core-uppromote-settings', 'core-uppromote-cart', 'core-uppromote-setting-booster', 'core-uppromote-quick-store-tracking-vars']
816    idToClean.forEach(id => {
817        document.getElementById(id)?.remove()
818    })
819</script>
819
820<!-- END app snippet -->
821
822
823<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 -->
824
825
826
827
828
829
830
831
832
833
834
835
836  
836<script async src="https://static.klaviyo.com/onsite/js/Y3Ych4/klaviyo.js?company_id=Y3Ych4"></script>
836
837  
837<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>
837
838
839  
840
841
842
843
844  
844<script>
845    window.klaviyoReviewsProductDesignMode = false
846  </script>
846
847
848
849
850
851
852
853
854
855
856<!-- END app block --><!-- BEGIN app block: shopify://apps/okendo/blocks/theme-settings/bb689e69-ea70-4661-8fb7-ad24a2e23c29 --><!-- BEGIN app snippet: header-metafields -->
857
858
859
860
861
862
863
864
865
866
867
868
869    
870        <style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/okendo-reviews-styles.18391d59.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/modules/okendo-star-rating.4cb378a8.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/modules/okendo-reviews-keywords.0942444f.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/modules/okendo-reviews-summary.a0c9d7d6.css"></style><style type="text/css">.okeReviews[data-oke-container],div.okeReviews{font-size:14px;font-size:var(--oke-text-regular);font-weight:400;font-family:var(--oke-text-fontFamily);line-height:1.6}.okeReviews[data-oke-container] *,.okeReviews[data-oke-container] :after,.okeReviews[data-oke-container] :before,div.okeReviews *,div.okeReviews :after,div.okeReviews :before{box-sizing:border-box}.okeReviews[data-oke-container] h1,.okeReviews[data-oke-container] h2,.okeReviews[data-oke-container] h3,.okeReviews[data-oke-container] h4,.okeReviews[data-oke-container] h5,.okeReviews[data-oke-container] h6,div.okeReviews h1,div.okeReviews h2,div.okeReviews h3,div.okeReviews h4,div.okeReviews h5,div.okeReviews h6{font-size:1em;font-weight:400;line-height:1.4;margin:0}.okeReviews[data-oke-container] ul,div.okeReviews ul{padding:0;margin:0}.okeReviews[data-oke-container] li,div.okeReviews li{list-style-type:none;padding:0}.okeReviews[data-oke-container] p,div.okeReviews p{line-height:1.8;margin:0 0 4px}.okeReviews[data-oke-container] p:last-child,div.okeReviews p:last-child{margin-bottom:0}.okeReviews[data-oke-container] a,div.okeReviews a{text-decoration:none;color:inherit}.okeReviews[data-oke-container] button,div.okeReviews button{border-radius:0;border:0;box-shadow:none;margin:0;width:auto;min-width:auto;padding:0;background-color:transparent;min-height:auto}.okeReviews[data-oke-container] button,.okeReviews[data-oke-container] input,.okeReviews[data-oke-container] select,.okeReviews[data-oke-container] textarea,div.okeReviews button,div.okeReviews input,div.okeReviews select,div.okeReviews textarea{font-family:inherit;font-size:1em}.okeReviews[data-oke-container] label,.okeReviews[data-oke-container] select,div.okeReviews label,div.okeReviews select{display:inline}.okeReviews[data-oke-container] select,div.okeReviews select{width:auto}.okeReviews[data-oke-container] article,.okeReviews[data-oke-container] aside,div.okeReviews article,div.okeReviews aside{margin:0}.okeReviews[data-oke-container] table,div.okeReviews table{background:transparent;border:0;border-collapse:collapse;border-spacing:0;font-family:inherit;font-size:1em;table-layout:auto}.okeReviews[data-oke-container] table td,.okeReviews[data-oke-container] table th,.okeReviews[data-oke-container] table tr,div.okeReviews table td,div.okeReviews table th,div.okeReviews table tr{border:0;font-family:inherit;font-size:1em}.okeReviews[data-oke-container] table td,.okeReviews[data-oke-container] table th,div.okeReviews table td,div.okeReviews table th{background:transparent;font-weight:400;letter-spacing:normal;padding:0;text-align:left;text-transform:none;vertical-align:middle}.okeReviews[data-oke-container] table tr:hover td,.okeReviews[data-oke-container] table tr:hover th,div.okeReviews table tr:hover td,div.okeReviews table tr:hover th{background:transparent}.okeReviews[data-oke-container] fieldset,div.okeReviews fieldset{border:0;padding:0;margin:0;min-width:0}.okeReviews[data-oke-container] img,.okeReviews[data-oke-container] svg,div.okeReviews img,div.okeReviews svg{max-width:none}.okeReviews[data-oke-container] div:empty,div.okeReviews div:empty{display:block}.okeReviews[data-oke-container] .oke-icon:before,div.okeReviews .oke-icon:before{font-family:oke-widget-icons!important;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:inherit}.okeReviews[data-oke-container] .oke-icon--select-arrow:before,div.okeReviews .oke-icon--select-arrow:before{content:""}.okeReviews[data-oke-container] .oke-icon--loading:before,div.okeReviews .oke-icon--loading:before{content:""}
870.okeReviews[data-oke-container] .oke-icon--pencil:before,div.okeReviews .oke-icon--pencil:before{content:""}.okeReviews[data-oke-container] .oke-icon--filter:before,div.okeReviews .oke-icon--filter:before{content:""}.okeReviews[data-oke-container] .oke-icon--play:before,div.okeReviews .oke-icon--play:before{content:""}.okeReviews[data-oke-container] .oke-icon--tick-circle:before,div.okeReviews .oke-icon--tick-circle:before{content:""}.okeReviews[data-oke-container] .oke-icon--chevron-left:before,div.okeReviews .oke-icon--chevron-left:before{content:""}.okeReviews[data-oke-container] .oke-icon--chevron-right:before,div.okeReviews .oke-icon--chevron-right:before{content:""}.okeReviews[data-oke-container] .oke-icon--thumbs-down:before,div.okeReviews .oke-icon--thumbs-down:before{content:""}.okeReviews[data-oke-container] .oke-icon--thumbs-up:before,div.okeReviews .oke-icon--thumbs-up:before{content:""}.okeReviews[data-oke-container] .oke-icon--close:before,div.okeReviews .oke-icon--close:before{content:""}.okeReviews[data-oke-container] .oke-icon--chevron-up:before,div.okeReviews .oke-icon--chevron-up:before{content:""}.okeReviews[data-oke-container] .oke-icon--chevron-down:before,div.okeReviews .oke-icon--chevron-down:before{content:""}.okeReviews[data-oke-container] .oke-icon--star:before,div.okeReviews .oke-icon--star:before{content:""}.okeReviews[data-oke-container] .oke-icon--magnifying-glass:before,div.okeReviews .oke-icon--magnifying-glass:before{content:""}@font-face{font-family:oke-widget-icons;src:url(https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/fonts/oke-widget-icons.ttf) format("truetype"),url(https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/fonts/oke-widget-icons.woff) format("woff"),url(https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/img/oke-widget-icons.bc0d6b0a.svg) format("svg");font-weight:400;font-style:normal;font-display:swap}.okeReviews[data-oke-container] .oke-button,div.okeReviews .oke-button{display:inline-block;border-style:solid;border-color:var(--oke-button-borderColor);border-width:var(--oke-button-borderWidth);background-color:var(--oke-button-backgroundColor);line-height:1;padding:12px 24px;margin:0;border-radius:var(--oke-button-borderRadius);color:var(--oke-button-textColor);text-align:center;position:relative;font-weight:var(--oke-button-fontWeight);font-size:var(--oke-button-fontSize);font-family:var(--oke-button-fontFamily);outline:0}.okeReviews[data-oke-container] .oke-button-text,.okeReviews[data-oke-container] .oke-button .oke-icon,div.okeReviews .oke-button-text,div.okeReviews .oke-button .oke-icon{line-height:1}.okeReviews[data-oke-container] .oke-button.oke-is-loading,div.okeReviews .oke-button.oke-is-loading{position:relative}.okeReviews[data-oke-container] .oke-button.oke-is-loading:before,div.okeReviews .oke-button.oke-is-loading:before{font-family:oke-widget-icons!important;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";color:undefined;font-size:12px;display:inline-block;animation:oke-spin 1s linear infinite;position:absolute;width:12px;height:12px;top:0;left:0;bottom:0;right:0;margin:auto}.okeReviews[data-oke-container] .oke-button.oke-is-loading>*,div.okeReviews .oke-button.oke-is-loading>*{opacity:0}.okeReviews[data-oke-container] .oke-button.oke-is-active,div.okeReviews .oke-button.oke-is-active{background-color:var(--oke-button-backgroundColorActive);color:var(--oke-button-textColorActive);border-color:var(--oke-button-borderColorActive)}.okeReviews[data-oke-container] .oke-button:not(.oke-is-loading),div.okeReviews .oke-button:not(.oke-is-loading){cursor:pointer}.okeReviews[data-oke-container] .oke-button:not(.oke-is-loading):not(.oke-is-active):hover,div.okeReviews .oke-button:not(.oke-is-loading):not(.oke-is-active):hover{background-color:var(--oke-button-backgroundColorHover);color:var(--oke-button-textColorHover);border-color:var(--oke-button-borderColorHover);box-shadow:0 0 0 2px var(--oke-button-backgroundColorHover)}.okeReviews[data-oke-container] .oke-button:not(.oke-is-loading):not(.oke-is-active):active,.okeReviews[data-oke-container] .oke-button:not(.oke-is-loading):not(.oke-is-active):hover:active,div.okeReviews .oke-button:not(.oke-is-loading):not(.oke-is-active):active,div.okeReviews .oke-button:not(.oke-is-loading):not(.oke-is-active):hover:active{background-color:var(--oke-button-backgroundColorActive);color:var(--oke-button-textColorActive);border-color:var(--oke-button-borderColorActive)}.okeReviews[data-oke-container] .oke-title,div.okeReviews .oke-title{font-weight:var(--oke-title-fontWeight);font-size:var(--oke-title-fontSize);font-family:var(--oke-title-fontFamily)}.okeReviews[data-oke-container] .oke-bodyText,div.okeReviews .oke-bodyText{font-weight:var(--oke-bodyText-fontWeight);font-size:var(--oke-bodyText-fontSize);font-family:var(--oke-bodyText-fontFamily)}.okeReviews[data-oke-container] .oke-linkButton,div.okeReviews .oke-linkButton{curs
870or:pointer;font-weight:700;pointer-events:auto;text-decoration:underline}.okeReviews[data-oke-container] .oke-linkButton:hover,div.okeReviews .oke-linkButton:hover{text-decoration:none}.okeReviews[data-oke-container] .oke-readMore,div.okeReviews .oke-readMore{cursor:pointer;color:inherit;text-decoration:underline}.okeReviews[data-oke-container] .oke-select,div.okeReviews .oke-select{cursor:pointer;background-repeat:no-repeat;background-position-x:100%;background-position-y:50%;border:none;padding:0 24px 0 12px;-moz-appearance:none;appearance:none;color:inherit;-webkit-appearance:none;background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='currentColor' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");outline-offset:4px}.okeReviews[data-oke-container] .oke-select:disabled,div.okeReviews .oke-select:disabled{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='%239a9db1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.okeReviews[data-oke-container] .oke-loader,div.okeReviews .oke-loader{position:relative}.okeReviews[data-oke-container] .oke-loader:before,div.okeReviews .oke-loader:before{font-family:oke-widget-icons!important;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";color:var(--oke-text-secondaryColor);font-size:12px;display:inline-block;animation:oke-spin 1s linear infinite;position:absolute;width:12px;height:12px;top:0;left:0;bottom:0;right:0;margin:auto}.okeReviews[data-oke-container] .oke-a11yText,div.okeReviews .oke-a11yText{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.okeReviews[data-oke-container] .oke-hidden,div.okeReviews .oke-hidden{display:none}.okeReviews[data-oke-container] .oke-modal,div.okeReviews .oke-modal{bottom:0;left:0;overflow:auto;position:fixed;right:0;top:0;z-index:2147483647;max-height:100%;background-color:rgba(0,0,0,.5);padding:40px 0 32px}@media only screen and (min-width:1024px){.okeReviews[data-oke-container] .oke-modal,div.okeReviews .oke-modal{display:flex;align-items:center;padding:48px 0}}.okeReviews[data-oke-container] .oke-modal ::-moz-selection,div.okeReviews .oke-modal ::-moz-selection{background-color:rgba(39,45,69,.2)}.okeReviews[data-oke-container] .oke-modal ::selection,div.okeReviews .oke-modal ::selection{background-color:rgba(39,45,69,.2)}.okeReviews[data-oke-container] .oke-modal,.okeReviews[data-oke-container] .oke-modal p,div.okeReviews .oke-modal,div.okeReviews .oke-modal p{color:#272d45}.okeReviews[data-oke-container] .oke-modal-content,div.okeReviews .oke-modal-content{background-color:#fff;margin:auto;position:relative;will-change:transform,opacity;width:calc(100% - 64px)}@media only screen and (min-width:1024px){.okeReviews[data-oke-container] .oke-modal-content,div.okeReviews .oke-modal-content{max-width:1000px}}.okeReviews[data-oke-container] .oke-modal-close,div.okeReviews .oke-modal-close{cursor:pointer;position:absolute;width:32px;height:32px;top:-32px;padding:4px;right:-4px;line-height:1}.okeReviews[data-oke-container] .oke-modal-close:before,div.okeReviews .oke-modal-close:before{font-family:oke-widget-icons!important;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";color:#fff;font-size:24px;display:inline-block;width:24px;height:24px}.okeReviews[data-oke-container] .oke-modal-overlay,div.okeReviews .oke-modal-overlay{background-color:rgba(43,46,56,.9)}@media only screen and (min-width:1024px){.okeReviews[data-oke-container] .oke-modal--large .oke-modal-content,div.okeReviews .oke-modal--large .oke-modal-content{max-width:1200px}}.okeReviews[data-oke-container] .oke-modal .oke-helpful,.okeReviews[data-oke-container] .oke-modal .oke-helpful-vote-button,.okeReviews[data-oke-container] .oke-modal .oke-reviewContent-date,div.okeReviews .oke-modal .oke-helpful,div.okeReviews .oke-modal .oke-helpful-vote-button,div.okeReviews .oke-modal .oke-reviewContent-date{color:#676986}.oke-modal .okeReviews[data-oke-container].oke-w,.oke-modal div.okeReviews.oke-w{color:#272d45}.okeReviews[data-oke-container] .oke-tag,div.okeReviews .oke-tag{align-items:center;color:#272d45;display:flex;font-size:var(--oke-text-small);font-weight:600;text-align:left;position:relative;z-index:2;background-color:#f4f4f6;padding:4px 6px;border:none;border-radius:4px;gap:6px;line-height:1}.okeReviews[data-oke-container] .oke-tag svg,div.okeReviews .oke-tag svg{fill:currentColor;height:1rem}.okeReviews[data-oke-container] .hooper,div.okeReviews .hooper{height:auto}.okeReviews--left{text-align:left}.okeReviews--right{text-align:right}.okeReviews--center{text-align:center}.okeReviews :not([tabindex="-1"]):focus-visible{outline:5px auto highlight;outline:5px auto -webkit-focus-ring-color}.is-oke-modalOpen{overflow:hidden!important}img.oke-is-error{background-color:var(--oke-shadingColor);background-size:cover;background-position:50% 50%;box-shadow:inset 0 0 0 1px var(--oke-border-color)}@keyframes oke-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes oke-fade-in{0%{opacity:0}
870to{opacity:1}}.layout-panel-flex>div:has([data-oke-container]){width:100%}
871.oke-stars{line-height:1;position:relative;display:inline-block}.oke-stars-background svg{overflow:visible}.oke-stars-foreground{overflow:hidden;position:absolute;top:0;left:0}.oke-sr{display:inline-block;padding-top:var(--oke-starRating-spaceAbove);padding-bottom:var(--oke-starRating-spaceBelow)}.oke-sr .oke-is-clickable{cursor:pointer}.oke-sr--hidden{display:none}.oke-sr-count,.oke-sr-rating,.oke-sr-stars{display:inline-block;vertical-align:middle}.oke-sr-stars{line-height:1;margin-right:8px}.oke-sr-rating{display:none}.oke-sr-count--brackets:before{content:"("}.oke-sr-count--brackets:after{content:")"}
872.oke-rk{display:block}.okeReviews[data-oke-container] .oke-reviewsKeywords-heading,div.okeReviews .oke-reviewsKeywords-heading{font-weight:700;margin-bottom:8px}.okeReviews[data-oke-container] .oke-reviewsKeywords-heading-skeleton,div.okeReviews .oke-reviewsKeywords-heading-skeleton{height:calc(var(--oke-button-fontSize) + 4px);width:150px}.okeReviews[data-oke-container] .oke-reviewsKeywords-list,div.okeReviews .oke-reviewsKeywords-list{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px}.okeReviews[data-oke-container] .oke-reviewsKeywords-list-category,div.okeReviews .oke-reviewsKeywords-list-category{background-color:var(--oke-filter-backgroundColor);color:var(--oke-filter-textColor);border:1px solid var(--oke-filter-borderColor);border-radius:var(--oke-filter-borderRadius);padding:6px 16px;transition:background-color .1s ease-out,border-color .1s ease-out;white-space:nowrap}.okeReviews[data-oke-container] .oke-reviewsKeywords-list-category.oke-is-clickable,div.okeReviews .oke-reviewsKeywords-list-category.oke-is-clickable{cursor:pointer}.okeReviews[data-oke-container] .oke-reviewsKeywords-list-category.oke-is-active,div.okeReviews .oke-reviewsKeywords-list-category.oke-is-active{background-color:var(--oke-filter-backgroundColorActive);color:var(--oke-filter-textColorActive);border-color:var(--oke-filter-borderColorActive)}.okeReviews[data-oke-container] .oke-reviewsKeywords .oke-translateButton,div.okeReviews .oke-reviewsKeywords .oke-translateButton{margin-top:12px}
873.oke-rs{display:block}.oke-rs .oke-reviewsSummary.oke-is-preRender .oke-reviewsSummary-summary{-webkit-mask:linear-gradient(180deg,#000 0,#000 40%,transparent 95%,transparent 0) 100% 50%/100% 100% repeat-x;mask:linear-gradient(180deg,#000 0,#000 40%,transparent 95%,transparent 0) 100% 50%/100% 100% repeat-x;max-height:150px}.okeReviews[data-oke-container] .oke-reviewsSummary .oke-tooltip,div.okeReviews .oke-reviewsSummary .oke-tooltip{display:inline-block;font-weight:400}.okeReviews[data-oke-container] .oke-reviewsSummary .oke-tooltip-trigger,div.okeReviews .oke-reviewsSummary .oke-tooltip-trigger{height:15px;width:15px;overflow:hidden;transform:translateY(-10%)}.okeReviews[data-oke-container] .oke-reviewsSummary-heading,div.okeReviews .oke-reviewsSummary-heading{align-items:center;-moz-column-gap:4px;column-gap:4px;display:inline-flex;font-weight:700;margin-bottom:8px}.okeReviews[data-oke-container] .oke-reviewsSummary-heading-skeleton,div.okeReviews .oke-reviewsSummary-heading-skeleton{height:calc(var(--oke-button-fontSize) + 4px);width:150px}.okeReviews[data-oke-container] .oke-reviewsSummary-icon,div.okeReviews .oke-reviewsSummary-icon{fill:currentColor;font-size:14px}.okeReviews[data-oke-container] .oke-reviewsSummary-icon svg,div.okeReviews .oke-reviewsSummary-icon svg{vertical-align:baseline}.okeReviews[data-oke-container] .oke-reviewsSummary-summary.oke-is-truncated,div.okeReviews .oke-reviewsSummary-summary.oke-is-truncated{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}</style>
874    
875    
875<script type="application/json" id="oke-reviews-settings">{"subscriberId":"d13d40f8-1056-4293-a1fc-3fc5c9f0c587","analyticsSettings":{"isWidgetOnScreenTrackingEnabled":true,"provider":"gtm"},"locale":"en","localeAndVariant":{"code":"en"},"matchCustomerLocale":false,"widgetSettings":{"global":{"dateSettings":{"format":{"type":"relative"}},"hideOkendoBranding":true,"stars":{"backgroundColor":"#A8A8A8","foregroundColor":"#FC0808","interspace":2,"shape":{"type":"default"},"showBorder":false},"showIncentiveIndicator":false,"searchEnginePaginationEnabled":true,"font":{"fontType":"inherit-from-page"}},"homepageCarousel":{"slidesPerPage":{"large":3,"medium":2},"totalSlides":12,"scrollBehaviour":"slide","style":{"showDates":true,"border":{"color":"#E5E5EB","width":{"value":1,"unit":"px"}},"headingFont":{"hasCustomFontSettings":false},"bodyFont":{"hasCustomFontSettings":false},"arrows":{"color":"#676986","size":{"value":24,"unit":"px"},"enabled":true},"avatar":{"backgroundColor":"#E5E5EB","placeholderTextColor":"#2C3E50","size":{"value":48,"unit":"px"},"enabled":true},"media":{"size":{"value":80,"unit":"px"},"imageGap":{"value":4,"unit":"px"},"enabled":true},"stars":{"height":{"value":18,"unit":"px"}},"productImageSize":{"value":48,"unit":"px"},"layout":{"name":"default","reviewDetailsPosition":"below","showProductName":false,"showAttributeBars":false,"showProductVariantName":false,"showProductDetails":"only-when-grouped"},"highlightColor":"#0E7A82","spaceAbove":{"value":20,"unit":"px"},"text":{"primaryColor":"#2C3E50","fontSizeRegular":{"value":14,"unit":"px"},"fontSizeSmall":{"value":12,"unit":"px"},"secondaryColor":"#676986"},"spaceBelow":{"value":20,"unit":"px"}},"defaultSort":"rating desc","autoPlay":false,"truncation":{"bodyMaxLines":4,"enabled":true,"truncateAll":false}},"mediaCarousel":{"minimumImages":1,"linkText":"Read More","autoPlay":false,"slideSize":"medium","arrowPosition":"outside"},"mediaGrid":{"gridStyleDesktop":{"layout":"default-desktop"},"gridStyleMobile":{"layout":"default-mobile"},"showMoreArrow":{"arrowColor":"#676986","enabled":true,"backgroundColor":"#f4f4f6"},"linkText":"Read More","infiniteScroll":false,"gapSize":{"value":10,"unit":"px"}},"questions":{"initialPageSize":6,"loadMorePageSize":6},"reviewsBadge":{"layout":"large","colorScheme":"dark"},"reviewsTab":{"enabled":false},"reviewsWidget":{"tabs":{"reviews":true,"questions":false},"header":{"columnDistribution":"space-around","verticalAlignment":"top","blocks":[{"columnWidth":"one-third","modules":[{"name":"rating-average","layout":"one-line"},{"name":"rating-breakdown","backgroundColor":"#f5f5f5","shadingColor":"#b0b0b0","stretchMode":"contain"}],"textAlignment":"center"},{"columnWidth":"one-third","modules":[{"name":"recommended"}],"textAlignment":"left"},{"columnWidth":"one-third","modules":[{"name":"attributes","layout":"stacked","stretchMode":"stretch"}],"textAlignment":"center"},{"columnWidth":"full","modules":[{"name":"reviews-summary","heading":"Reviews Summary","maxTextLines":5},{"name":"reviews-keywords","heading":"Customers Talked About","maxKeywords":5}],"textAlignment":"center"}]},"style":{"showDates":true,"border":{"color":"#B6B6B6","width":{"value":1,"unit":"px"}},"bodyFont":{"hasCustomFontSettings":false},"headingFont":{"hasCustomFontSettings":false},"filters":{"backgroundColorActive":"#878787","backgroundColor":"#FFFFFF","borderColor":"#DBDDE4","borderRadius":{"value":100,"unit":"px"},"borderColorActive":"#878787","textColorActive":"#FFFFFF","textColor":"#0B0B0B","searchHighlightColor":"#a8a8a8"},"avatar":{"backgroundColor":"#E5E5EB","placeholderTextColor":"#0B0B0B","size":{"value":48,"unit":"px"},"enabled":true},"stars":{"height":{"value":18,"unit":"px"}},"shadingColor":"#F7F7F8","productImageSize":{"value":48,"unit":"px"},"button":{"backgroundColorActive":"#262626","borderColorHover":"#DBDDE4","backgroundColor":"#262626","borderColor":"#DBDDE4","backgroundColorHover":"#212121","textColorHover":"#FFFFFF","borderRadius":{"value":4,"unit":"px"},"borderWidth":{"value":1,"unit":"px"},"borderColorActive":"#262626","textColorActive":"#FFFFFF","textColor":"#FFFFFF","font":{"hasCustomFontSettings":false}},"highlightColor":"#262626","spaceAbove":{"value":18,"unit":"px"},"text":{"primaryColor":"#0B0B0B","fontSizeRegular":{"value":14,"unit":"px"},"fontSizeLarge":{"value":20,"unit":"px"},"fontSizeSmall":{"value":12,"unit":"px"},"secondaryColor":"#878787"},"spaceBelow":{"value":18,"unit":"px"},"attributeBar":{"style":"rounded","backgroundColor":"#dedede","shadingColor":"#b0b0b0","markerColor":"#262626"}},"showWhenEmpty":true,"reviews":{"list":{"layout":{"name":"masonry","cardLayout":{"reviewDetailsPosition":"above","showProductName":false,"showFullHeightImages":false,"name":"featured","
875showAttributeBars":false,"showProductVariantName":false,"showProductDetails":"only-when-grouped"},"showProductVariantName":false,"columnAmount":4},"loyalty":{"maxInitialAchievements":3},"initialPageSize":4,"replyTruncation":{"bodyMaxLines":4,"enabled":true},"media":{"layout":"featured","size":{"value":200,"unit":"px"}},"truncation":{"bodyMaxLines":4,"truncateAll":false,"enabled":true},"loadMorePageSize":5},"controls":{"filterMode":"closed","freeTextSearchEnabled":false,"writeReviewButtonEnabled":true,"defaultSort":"rating desc"}}},"starRatings":{"showWhenEmpty":false,"clickBehavior":"scroll-to-widget","style":{"text":{"content":"review-count","style":"number-and-text","brackets":false},"spaceAbove":{"value":0,"unit":"px"},"singleStar":false,"spaceBelow":{"value":0,"unit":"px"},"height":{"value":18,"unit":"px"}}}},"features":{"attributeFiltersEnabled":true,"recorderPlusEnabled":true,"recorderQandaPlusEnabled":true,"reviewsKeywordsEnabled":true,"reviewsSummariesEnabled":true}}</script>
875
876            <style id="oke-css-vars">:root{--oke-widget-spaceAbove:18px;--oke-widget-spaceBelow:18px;--oke-starRating-spaceAbove:0;--oke-starRating-spaceBelow:0;--oke-button-backgroundColor:#262626;--oke-button-backgroundColorHover:#212121;--oke-button-backgroundColorActive:#262626;--oke-button-textColor:#fff;--oke-button-textColorHover:#fff;--oke-button-textColorActive:#fff;--oke-button-borderColor:#dbdde4;--oke-button-borderColorHover:#dbdde4;--oke-button-borderColorActive:#262626;--oke-button-borderRadius:4px;--oke-button-borderWidth:1px;--oke-button-fontWeight:700;--oke-button-fontSize:var(--oke-text-regular,14px);--oke-button-fontFamily:inherit;--oke-border-color:#b6b6b6;--oke-border-width:1px;--oke-text-primaryColor:#0b0b0b;--oke-text-secondaryColor:#878787;--oke-text-small:12px;--oke-text-regular:14px;--oke-text-large:20px;--oke-text-fontFamily:inherit;--oke-avatar-size:48px;--oke-avatar-backgroundColor:#e5e5eb;--oke-avatar-placeholderTextColor:#0b0b0b;--oke-highlightColor:#262626;--oke-shadingColor:#f7f7f8;--oke-productImageSize:48px;--oke-attributeBar-shadingColor:#b0b0b0;--oke-attributeBar-borderColor:undefined;--oke-attributeBar-backgroundColor:#dedede;--oke-attributeBar-markerColor:#262626;--oke-filter-backgroundColor:#fff;--oke-filter-backgroundColorActive:#878787;--oke-filter-borderColor:#dbdde4;--oke-filter-borderColorActive:#878787;--oke-filter-textColor:#0b0b0b;--oke-filter-textColorActive:#fff;--oke-filter-borderRadius:100px;--oke-filter-searchHighlightColor:#a8a8a8;--oke-mediaGrid-chevronColor:#676986;--oke-stars-foregroundColor:#fc0808;--oke-stars-backgroundColor:#a8a8a8;--oke-stars-borderWidth:0}.oke-w,oke-modal{--oke-title-fontWeight:600;--oke-title-fontSize:var(--oke-text-regular,14px);--oke-title-fontFamily:inherit;--oke-bodyText-fontWeight:400;--oke-bodyText-fontSize:var(--oke-text-regular,14px);--oke-bodyText-fontFamily:inherit}</style>
877            <style id="oke-reviews-custom-css">.okeReviews.oke-sr{padding-top:10px}[data-oke-widget] .okeReviews[data-oke-container].oke-w{padding-left:15px;padding-right:15px}div.okeReviews[data-oke-container] .oke-reviewContent-body p,.okeReviews[data-oke-container] .oke-modal span,div.okeReviews[data-oke-container] .oke-product-details-title,div.okeReviews[data-oke-container] .oke-product-details-name,div.okeReviews[data-oke-container] .oke-sortSelect-label,div.okeReviews[data-oke-container] .oke-select{color:var(--oke-text-primaryColor)}div.okeReviews[data-oke-container] .oke-showMore-button-text{color:var(--oke-button-textColor)}div.okeReviews[data-oke-container] .oke-reviewContent-body p{line-height:1.7}div.okeReviews[data-oke-container] .oke-avatar-placeholder{color:var(--oke-avatar-placeholderTextColor)}div.okeReviews[data-oke-container] .oke-button:not(.oke-is-loading):not(.oke-is-active):hover{box-shadow:none}div.okeReviews[data-oke-container] .oke-button{font-weight:600;text-transform:uppercase;transition:background-color .3s}div.okeReviews[data-oke-container] .oke-is-small .oke-w-reviews-filterToggle{width:100%;margin-bottom:10px}div.okeReviews[data-oke-container] .oke-is-small .oke-w-reviews-writeReview,div.okeReviews[data-oke-container] .oke-is-small .oke-w-writeReview.oke-button{width:100%}div.okeReviews[data-oke-container] .oke-w-reviews-controls{flex-wrap:wrap}div.okeReviews[data-oke-container] .oke-w-reviews-count{padding-right:1em}div.okeReviews[data-oke-container] .oke-select{height:unset;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='currentColor' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5z' fill='%23838383' /%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}div.okeReviews[data-oke-container] .oke-sortSelect-label{margin-right:0}div.okeReviews[data-oke-container] .oke-reviewContent-title{color:#fc0808;font-weight:600;line-height:1;font-size:1.2em}div.okeReviews[data-oke-container] .oke-qw-question-main-body{font-weight:400}.reviewsHeading{text-align:center}</style>
878            <template id="oke-reviews-body-template"><svg id="oke-star-symbols" style="display:none!important" data-oke-id="oke-star-symbols"><symbol id="oke-star-empty" style="overflow:visible;"><path id="star-default--empty" fill="var(--oke-stars-backgroundColor)" stroke="var(--oke-stars-borderColor)" stroke-width="var(--oke-stars-borderWidth)" d="M3.34 13.86c-.48.3-.76.1-.63-.44l1.08-4.56L.26 5.82c-.42-.36-.32-.7.24-.74l4.63-.37L6.92.39c.2-.52.55-.52.76 0l1.8 4.32 4.62.37c.56.05.67.37.24.74l-3.53 3.04 1.08 4.56c.13.54-.14.74-.63.44L7.3 11.43l-3.96 2.43z"/></symbol><symbol id="oke-star-filled" style="overflow:visible;"><path id="star-default--filled" fill="var(--oke-stars-foregroundColor)" stroke="var(--oke-stars-borderColor)" stroke-width="var(--oke-stars-borderWidth)" d="M3.34 13.86c-.48.3-.76.1-.63-.44l1.08-4.56L.26 5.82c-.42-.36-.32-.7.24-.74l4.63-.37L6.92.39c.2-.52.55-.52.76 0l1.8 4.32 4.62.37c.56.05.67.37.24.74l-3.53 3.04 1.08 4.56c.13.54-.14.74-.63.44L7.3 11.43l-3.96 2.43z"/></symbol></svg></template>
878<script>document.addEventListener('readystatechange',() =>{Array.from(document.getElementById('oke-reviews-body-template')?.content.children)?.forEach(function(child){if(!Array.from(document.body.querySelectorAll('[data-oke-id='.concat(child.getAttribute('data-oke-id'),']'))).length){document.body.prepend(child)}})},{once:true});</script>
878
879
880
881
882
883    
884    
885
886
887
888
889
890
891
892
893
894
895<!-- END app snippet -->
896
897    <!-- BEGIN app snippet: okendo-reviews-json-ld -->
898<!-- END app snippet -->
899
900<!-- BEGIN app snippet: widget-plus-initialisation-script -->
901
902
903
904
905    
905<script async id="okendo-reviews-script" src="https://cdn-static.okendo.io/reviews-widget-plus/js/okendo-reviews.js"></script>
905
906
907<!-- END app snippet -->
908
909
910<!-- END app block --><!-- BEGIN app block: shopify://apps/redo/blocks/redo_app_embed/c613644b-6df4-4d11-b336-43a5c06745a1 --><!-- BEGIN app snippet: env -->
911
912<script>
913  if (typeof process === "undefined") {
914    process = {};
915  }
916  process.env ??= {};
917  process.env.AMPLITUDE_API_KEY = "b5eacb35b49c693d959231826b35f7ca";
918  process.env.REDO_API_URL = "https://shopify-cdn.getredo.com";
919  process.env.REDO_CHAT_WIDGET_URL = "https://chat-widget.getredo.com";
920  process.env.REDO_RETURN_APP_URL = "https://returns.getredo.com";
921  process.env.REDO_SHOPIFY_SERVER_URL = "https://shopify-server.getredo.com";
922
923  if (typeof window.redoStorefront === "undefined") {
924    window.redoStorefront = {
925      type: "shopify"
926    };
927  }
928  window.redoStorefront.env ??= {};
929  window.redoStorefront.env.AMPLITUDE_API_KEY = "b5eacb35b49c693d959231826b35f7ca";
930  window.redoStorefront.env.REDO_API_URL = "https://shopify-cdn.getredo.com";
931  window.redoStorefront.env.REDO_CHAT_WIDGET_URL = "https://chat-widget.getredo.com";
932  window.redoStorefront.env.REDO_RETURN_APP_URL = "https://returns.getredo.com";
933  window.redoStorefront.env.REDO_SHOPIFY_SERVER_URL = "https://shopify-server.getredo.com";
934
935  // Shopper's active language/country, from Shopify's Liquid localization
936  // object. Read via getStorefrontLocale(); blanks mean unavailable.
937  window.redoStorefront.locale = {
938    language: "en",
939    country: "US"
940  };
941
942  // Folder our bundle was served from. Webpack's "auto" publicPath guesses this by
943  // grabbing the last 
943<script> on the page, which may pick a stranger's folder.
944  window.redoStorefront.assetBase =
945    "https://cdn.shopify.com/extensions/01a0f826-ba91-7674-85e0-557ca0fea2f7/redo-v2.30786/assets/main.js".split(/[?#]/)[0].replace(/\/[^/]+$/, "/");
946</script>
vendor: 1 bytes, line 946
946
947<script>
948try {
949  if (typeof window.redoStorefrontStaging === "undefined") {
950    window.redoStorefrontStaging = {
951      type: "shopify",
952      storeUrl: "myfirmtech.myshopify.com",
953      shopify: {
954        customDomain: "myfirmtech.com",
955        permanentDomain: "myfirmtech.myshopify.com"
956      }
957    };
958  }
959} catch {}
960</script>
960<!-- END app snippet -->
961<script>
962  (function() {
963    const parts = navigator.userAgent.split(" ").map(part => btoa(part)).join("").replace(/=/g, "").toLowerCase();
964    if (!parts.includes("2hyb21lluxpz2h0ag91c2") && !parts.includes("w90bwzwcg93zxikdiwmjipk")) {
965      const script = document.createElement("script");
966      script.async = true;
967      script.src = "https://cdn.shopify.com/extensions/01a0f826-ba91-7674-85e0-557ca0fea2f7/redo-v2.30786/assets/main.js";
968      document.head.appendChild(script);
969    }
970  })();
971</script>
971
972
973<!-- END app block --><!-- BEGIN app block: shopify://apps/rebuy-personalization-engine/blocks/rebuy-global-embed/a26ae9b9-933b-40bf-bbc6-bf1220bbc4dc -->
974<script>
975  window.Rebuy = window.Rebuy || {};
976  window.Rebuy.customer = window.Rebuy.customer || {};
977  
978  window.Rebuy.market = window.Rebuy.market || {};
979  
980  window.Rebuy.market.country = "US";
981  
982  
983  window.Rebuy.market.locale = "en";
984  
985</script>
985
986
987
988
989
990
991<!-- END app block --><!-- BEGIN app block: shopify://apps/sami-wholesale/blocks/app-embed-block/799b9db0-2c2b-4b20-8675-98acd123fbb2 --><style>.samita-ws-loading [samitaWS-cart-item-key],.samita-ws-loading [samitaWS-product-id],.samita-ws-loading [samitaWS-variant-id],.samita-ws-loading [samitaWS-cart-total-price],.samita-ws-loading [samitaWS-cart-total-discount],.samita-ws-loading [data-cart-item-regular-price],.samita-ws-loading [samitaWS-ajax-cart-subtotal],.samita-ws-loading [data-cart-subtotal],.samita-ws-loading [samitaws-product-price]{visibility:hidden;opacity:0}[samitaws-product-main-price="true"] [samitaws-product-price]{visibility:hidden;opacity:0}.samitaWS-original-checkout-button,.samitaWS-original-atc-button{visibility:hidden;opacity:0;display:none!important}.samita-ws-loading .shopify-payment-button .shopify-payment-button__button--unbranded{visibility:hidden;opacity:0;display:none!important}</style>
991<script type="text/javascript">
992    document.getElementsByTagName('html')[0].classList.add('samita-ws-loading', 'samita-ws-enable');
993    window.addEventListener("samitaWSRenderWholesaleCompleted", function(e){
994        document.getElementsByTagName('html')[0].classList.remove('samita-ws-loading');
995    });
996    var samitaWSRgFormRecaptchaInit = function(){};
997    var samitaWholesaleRecaptchaInit = function(){};
998    
999    window.Samita = window.Samita || {};
1000    window.Samita.Wholesale = window.Samita.Wholesale || {};Samita.Wholesale.shop = {
1001            url: 'myfirmtech.myshopify.com',
1002            app_url: 'https://wholesale.samita.io',
1003            api_url: '/apps/sami-wholesale',
1004            settings: { custom: { cache_key: "FQMMXkxSGUZHFFN" } },
1005            definition: {"shop":true,"theme":"theme_137274720406","themeInfo":"themeInfo_137274720406","registrationForms":[],"quickOrderForms":[],"taxExempt":false,"taxExempts":[],"paymentTerm":false,"paymentTerms":[],"invoicePayment":false,"invoicePayments":[],"shippingRate":[],"ver":"fUktPCUUMTAMPR"},
1006            configuration: {
1007                money_format: "${{amount}}",
1008                hash: "wxBBldcGAgaEFk"
1009            }
1010        };Samita.Wholesale.themeInfo = 'themeInfo_137274720406';
1011        Samita.Wholesale.theme = 'theme_137274720406';Samita.Wholesale.shop.locale = (typeof Shopify!= "undefined" && Shopify?.locale) ? Shopify?.locale : "en";
1012    Samita.Wholesale.shop.market = { handle: "us" };
1013    
1014    Samita.Wholesale.wholesalePricing = [];Samita.Wholesale.wholesalePricing[25251] = {"25251":{"id":25251,"configs":{"discount_group":{"type":"percent","value":40},"discount_for_variants":[{"id":7810371420310,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}],"variant_pricing":false,"variants":[{"id":42754768896150,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}]}]},{"id":7037087580310,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}],"variant_pricing":false,"variants":[{"id":40577802338454,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}]}]},{"id":8315846361238,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}],"variant_pricing":false,"variants":[{"id":44289152254102,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}]}]},{"id":7462086508694,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}],"variant_pricing":false,"variants":[{"id":41753911001238,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}]}]}]},"product_configs":{"apply_product":{"type":"products","manual":{"apply_for_variants":false,"ids":[7810371420310,7037087580310,8315846361238,7462086508694],"variants":[{"key":7810371420310,"values":[42754768896150]},{"key":7037087580310,"values":[40577802338454]},{"key":8315846361238,"values":[44289152254102]},{"key":7462086508694,"values":[41753911001238]}],"tags":[]},"collections":{"ids":[]}}},"customer_configs":{"apply_customer":{"type":"customer-tags","tags":["wholesale"]}}}}[25251];Samita.Wholesale.wholesalePricing[25256] = {"25256":{"id":25256,"configs":{"discount_group":{"type":"percent","value":50},"discount_for_variants":[{"id":8444964503702,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}],"variant_pricing":false,"variants":[{"id":45187326869654,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}]}]},{"id":8444819832982,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}],"variant_pricing":false,"variants":[{"id":45186897084566,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}]}]},{"id":8444965322902,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}],"variant_pricing":false,"variants":[{"id":45187329327254,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}]}]},{"id":8444965126294,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}],"variant_pricing":false,"variants":[{"id":45187328966806,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}]}]}]},"product_configs":{"apply_product":{"type":"products","manual":{"apply_for_variants":false,"ids":[8444964503702,8444819832982,8444965322902,8444965126294],"variants":[{"key":8444964503702,"values":[45187326869654]},{"key":8444819832982,"values":[45186897084566]},{"key":8444965322902,"values":[45187329327254]},{"key":8444965126294,"values":[45187328966806]}],"tags":[]},"collections":{"ids":[]}}},"customer_configs":{"apply_customer":{"type":"customer-tags","tags":["wholesale"]}}}}[25256];Samita.Wholesale.volumePricing = [];Samita.Wholesale.registrationForms = [];
1015    Samita.Wholesale.registrationFormIds = [];Samita.Wholesale.registrationFormIds = [8565];Samita.Wholesale.registrationForms[8565] = {"8565":{"accountPage":{"showAccountDetail":true,"editAccountPage":false,"header":"Header","active":false,"title":"Account details","headerDescription":"Fill out the form to change account information","afterUpdate":"registrationForm.SideBar.Account page Message after update","message":"\u
1015003ch5\u003eAccount edited successfully!\u003c\/h5\u003e","footer":"Footer","updateText":"Update","footerDescription":null},"afterSubmit":{"action":"clearForm","message":"\u003ch4\u003eThanks for getting in touch!\u0026nbsp;\u003c\/h4\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eWe appreciate you contacting us. One of our colleagues will get back in touch with you soon!\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eHave a great day!\u003c\/p\u003e","redirectUrl":null},"appearance":{"layout":"boxed","width":600,"style":"classic","mainColor":"#000000","headingColor":"#000","labelColor":"#000","descriptionColor":"#6c757d","optionColor":"#000","paragraphColor":"#000","paragraphBackground":"#fff","background":"color","backgroundColor":"#FFF","backgroundImage":null,"backgroundImageAlignment":"middle","formType":"normalForm"},"elements":[{"id":"text","type":"text","label":"First Name","placeholder":"First Name","description":null,"limitCharacters":false,"characters":100,"hideLabel":false,"keepPositionLabel":false,"hasShopifyMapField":true,"required":true,"ifHideLabel":false,"inputIcon":null,"columnWidth":50},{"id":"text-2","type":"text","label":"Last Name","placeholder":"Last Name","description":null,"limitCharacters":false,"characters":100,"hideLabel":false,"keepPositionLabel":false,"hasShopifyMapField":true,"required":true,"ifHideLabel":false,"inputIcon":null,"columnWidth":50},{"id":"email","type":"email","label":"Email","placeholder":"Email","description":null,"limitCharacters":false,"characters":100,"hideLabel":false,"keepPositionLabel":false,"hasShopifyMapField":true,"required":true,"ifHideLabel":false,"inputIcon":null,"columnWidth":50},{"id":"phone","type":"phone","label":"Phone","placeholder":"Phone","description":null,"validatePhone":false,"onlyShowFlag":false,"defaultCountryCode":"us","limitCharacters":false,"characters":100,"hideLabel":false,"keepPositionLabel":false,"required":true,"ifHideLabel":false,"inputIcon":null,"columnWidth":50},{"id":"password","type":"password","label":"Password","placeholder":"Enter your password","description":null,"limitCharacters":false,"characters":100,"validationRule":"^.{6,}$","advancedValidateRule":null,"hideLabel":false,"keepPositionLabel":false,"hasShopifyMapField":false,"required":true,"ifHideLabel":false,"hasConfirm":true,"storePasswordData":false,"labelConfirm":"Confirm password","placeholderConfirm":"Confirm your password","descriptionConfirm":null,"inputIcon":null,"columnWidth":50},{"id":"text-8","type":"text","label":"Company","placeholder":"Company","description":null,"limitCharacters":false,"characters":100,"hideLabel":false,"keepPositionLabel":false,"hasShopifyMapField":false,"required":false,"ifHideLabel":false,"inputIcon":null,"columnWidth":50},{"id":"text-3","type":"text","label":"Address Line 1","placeholder":"Address Line 1","description":null,"limitCharacters":false,"characters":100,"hideLabel":false,"keepPositionLabel":false,"hasShopifyMapField":false,"required":true,"ifHideLabel":false,"inputIcon":null,"columnWidth":100},{"id":"text-4","type":"text","label":"Address Line 2","placeholder":"Address Line 2","description":null,"limitCharacters":false,"characters":100,"hideLabel":false,"keepPositionLabel":false,"hasShopifyMapField":false,"required":false,"ifHideLabel":false,"inputIcon":null,"columnWidth":100},{"id":"text-5","type":"text","label":"City","placeholder":"City","description":null,"limitCharacters":false,"characters":100,"hideLabel":false,"keepPositionLabel":false,"hasShopifyMapField":false,"required":true,"ifHideLabel":false,"inputIcon":null,"columnWidth":33.33},{"id":"text-6","type":"text","label":"State\/Prov\/Region","placeholder":"State\/Prov\/Region","description":null,"limitCharacters":false,"characters":100,"hideLabel":false,"keepPositionLabel":false,"hasShopifyMapField":false,"required":true,"ifHideLabel":false,"inputIcon":null,"columnWidth":33.33},{"id":"text-7","type":"text","label":"Postal\/Zip","placeholder":"Postal\/Zip","description":null,"limitCharacters":false,"characters":100,"hideLabel":false,"keepPositionLabel":false,"hasShopifyMapField":false,"required":true,"ifHideLabel":false,"inputIcon":null,"columnWidth":33.33},{"id":"select","type":"select","label":"Country","placeholder":"Select your country","options":"Afghanistan\nAland Islands\nAlbania\nAlgeria\nAndorra\nAngola\nAnguilla\nAntigua And Barbuda\nArgentina\nArmenia\nAruba\nAustralia\nAustria\nAzerbaijan\nBahamas\nBahrain\nBangladesh\nBarbados\nBelarus\nBelgium\nBelize\nBenin\nBermuda\nBhutan\nBolivia\nBosnia And Herzegovina\nBotswana\nBouvet Island\nBrazil\nBritish Indian Ocean Territory\nVirgin Islands, British\nBrunei\nBulgaria\nBurkina Faso\nBurundi\nCambodia\nRepublic of Cameroon\nCanad
1015a\nCape Verde\nCaribbean Netherlands\nCayman Islands\nCentral African Republic\nChad\nChile\nChina\nChristmas Island\nCocos (Keeling) Islands\nColombia\nComoros\nCongo\nCongo, The Democratic Republic Of The\nCook Islands\nCosta Rica\nCroatia\nCuba\nCuraçao\nCyprus\nCzech Republic\nCôte d'Ivoire\nDenmark\nDjibouti\nDominica\nDominican Republic\nEcuador\nEgypt\nEl Salvador\nEquatorial Guinea\nEritrea\nEstonia\nEswatini\nEthiopia\nFalkland Islands (Malvinas)\nFaroe Islands\nFiji\nFinland\nFrance\nFrench Guiana\nFrench Polynesia\nFrench Southern Territories\nGabon\nGambia\nGeorgia\nGermany\nGhana\nGibraltar\nGreece\nGreenland\nGrenada\nGuadeloupe\nGuatemala\nGuernsey\nGuinea\nGuinea Bissau\nGuyana\nHaiti\nHeard Island And Mcdonald Islands\nHonduras\nHong Kong\nHungary\nIceland\nIndia\nIndonesia\nIran, Islamic Republic Of\nIraq\nIreland\nIsle Of Man\nIsrael\nItaly\nJamaica\nJapan\nJersey\nJordan\nKazakhstan\nKenya\nKiribati\nKosovo\nKuwait\nKyrgyzstan\nLao People's Democratic Republic\nLatvia\nLebanon\nLesotho\nLiberia\nLibyan Arab Jamahiriya\nLiechtenstein\nLithuania\nLuxembourg\nMacao\nMadagascar\nMalawi\nMalaysia\nMaldives\nMali\nMalta\nMartinique\nMauritania\nMauritius\nMayotte\nMexico\nMoldova, Republic of\nMonaco\nMongolia\nMontenegro\nMontserrat\nMorocco\nMozambique\nMyanmar\nNamibia\nNauru\nNepal\nNetherlands\nNetherlands Antilles\nNew Caledonia\nNew Zealand\nNicaragua\nNiger\nNigeria\nNiue\nNorfolk Island\nKorea, Democratic People's Republic Of\nNorth Macedonia\nNorway\nOman\nPakistan\nPalestinian Territory, Occupied\nPanama\nPapua New Guinea\nParaguay\nPeru\nPhilippines\nPitcairn\nPoland\nPortugal\nQatar\nReunion\nRomania\nRussia\nRwanda\nSamoa\nSan Marino\nSao Tome And Principe\nSaudi Arabia\nSenegal\nSerbia\nSeychelles\nSierra Leone\nSingapore\nSint Maarten\nSlovakia\nSlovenia\nSolomon Islands\nSomalia\nSouth Africa\nSouth Georgia And The South Sandwich Islands\nSouth Korea\nSouth Sudan\nSpain\nSri Lanka\nSaint Barthélemy\nSaint Helena\nSaint Kitts And Nevis\nSaint Lucia\nSaint Martin\nSaint Pierre And Miquelon\nSt. Vincent\nSudan\nSuriname\nSvalbard And Jan Mayen\nSweden\nSwitzerland\nSyria\nTaiwan\nTajikistan\nTanzania, United Republic Of\nThailand\nTimor Leste\nTogo\nTokelau\nTonga\nTrinidad and Tobago\nTunisia\nTurkey\nTurkmenistan\nTurks and Caicos Islands\nTuvalu\nUnited States Minor Outlying Islands\nUganda\nUkraine\nUnited Arab Emirates\nUnited Kingdom\nUnited States\nUruguay\nUzbekistan\nVanuatu\nHoly See (Vatican City State)\nVenezuela\nVietnam\nWallis And Futuna\nWestern Sahara\nYemen\nZambia\nZimbabwe","defaultOption":null,"description":null,"hideLabel":false,"keepPositionLabel":false,"required":true,"ifHideLabel":false,"inputIcon":null,"columnWidth":100}],"errorMessage":{"required":"Please fill in field","invalid":"Invalid","invalidName":"Invalid name","invalidEmail":"Invalid email","invalidURL":"Invalid url","invalidPhone":"Invalid phone","invalidNumber":"Invalid number","invalidPassword":"Invalid password","confirmPasswordNotMatch":"Confirmed password doesn't match","customerAlreadyExists":"Customer already exists","fileSizeLimit":"File size limit","fileNotAllowed":"File not allowed","requiredCaptcha":"Required captcha","requiredProducts":"Please select product","limitQuantity":"The number of products left in stock has been exceeded","shopifyInvalidPhone":"phone - Enter a valid phone number to use this delivery method","shopifyPhoneHasAlready":"phone - Phone has already been taken","shopifyInvalidProvice":"addresses.province - is not valid","otherError":"Something went wrong, please try again"},"footer":{"description":null,"previousText":"Previous","nextText":"Next","submitText":"Submit","resetButton":false,"resetButtonText":"Reset","submitFullWidth":false,"submitAlignment":"left"},"header":{"active":true,"title":"Create an account","description":"\u003cp\u003eComplete form below to signup for Shopify account.\u003c\/p\u003e"},"integration":{"shopify":{"createAccount":true,"ifExist":"returnError","showMessage":true,"messageRedirectToLogin":"You already registered. Click \u003ca href=\"\/account\/login\"\u003ehere\u003c\/a\u003e to login","sendEmailInvite":true,"acceptsMarketing":false,"integrationElements":{"text":"first_name","text-2":"last_name","email":"email","phone":"phone","password":"password","text-3":"addresses.address1","text-4":"addresses.address2","text-5":"addresses.city","text-6":"addresses.province","text-7":"addresses.zip","select":"addresses.country"}}},"publish":{"publishType":"embedCode","embedCode":"\u003cdiv class=\"samitaWS-registrationForm\" data-id=\"ODU2NQ==\"\u003e\u003c\/div\u003e","shortCode":"{SamitaWSRegistrationForm:ODU2NQ==}","popup":"\u003cbutton class=\"samitaWS-registrationForm-open\" data-id=\"ODU2NQ==\"\u003eOpen form\u003c\/button\u003e","lightbox":"\u003cdiv class=\"samitaWS-registrationForm-publish-modal lightbox hidden\" data-id=\"8565\"\u003e\u003cdiv class=\"samitaWS-registrationForm-modal-content\"\u003e\u003cdiv class=\"samitaWS-registrationForm\" data-id=\"ODU2NQ==\"\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e","selectPage":"index","selectPositionOnPage":"top","selectTime":"forever","setCookie":"1"},"reCaptcha":{"enable":false}}}[8565];Samita.Wholesale.quickOrderForms = [];
1016    Samita.Wholesale.quickOrderFormIds = [];Samita.Wholesale.quickOrderFormIds = [5229];
1016Samita.Wholesale.quickOrderForms[5229] = {"5229":{"id":5229,"title":"Wholesale Order Form","configs":{"quickOrder_table_template":{"template":"basic","display_on_page":{"handle":"wholesale-order-form"},"copyType":"embedcode","use_short_code":true,"enable_quick_view":true,"enable_quick_order_form_menu":true,"enable_multiple_addCart":true,"show_title":true,"show_description":true,"table_elements":{"columns":[{"title":"Product","status":true,"require":true,"attr":"product","apply":"new"},{"title":"Stock","status":true,"require":false,"attr":"product_stock","apply":"new"},{"title":"Quantity","status":true,"require":true,"attr":"quantity","apply":"general"},{"title":"Action","status":true,"require":true,"attr":"action","apply":"general"}]},"pagination":{"type":"pagination","per_page":20},"design":{"form_width":{"value":100,"setCarat":"%"},"bg_buttonColor":"rgba(225,2,2,1)","bg_buttonHoverColor":"rgba(225,2,2,1)","bg_tbHeader":"#ffffff","bg_tbRow":"#ffffff","border_color":"#d9d9d9","border_size":1,"border_style":"solid","customCss":null,"txt_buttonColor":"#ffffff","txt_buttonHoverColor":"#ffffff","txt_headerColor":"#000000","txt_headerFontsize":"18","txt_rowColor":"#212121","txt_rowFontsize":14,"txt_titleColor":"rgba(225,2,2,1)","txt_descriptionColor":"#000","bg_paginationActive":"rgba(225,2,2,1)","txt_paginationActive":"#ffffff","bg_subtotal_badge":"rgba(225,2,2,1)","txt_subtotal_badge":"#ffffff"}}},"product_configs":{"apply_product":{"type":"collections","manual":{"ids":[]},"collections":{"ids":[333985317014]}}},"customer_configs":{"apply_customer":{"type":"all","tags":[]},"exclude_customer":{"type":"none","tags":[]}},"page_type":"quick_order_page"}}[5229];Samita.Wholesale.orderLimit = [];Samita.Wholesale.orderLimit[889] = {"889":{"id":889,"status":1,"configs":{"quantity_increment":{"active":false,"value":null},"order_limit":{"scope":"quantity","type":"variant","minimum":"10","maximum":"99"},"message":{"product_page":true,"design":{"bg_mes":"#FFF1E3","txt_mes":"#5E4200"}},"discount_for_variants":[{"id":7037087580310,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}],"variant_pricing":false,"variants":[{"id":40577802338454,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}]}]}]},"product_configs":{"apply_product":{"type":"products","manual":{"ids":[7037087580310],"variants":[{"key":7037087580310,"values":[40577802338454]}],"tags":[]},"collections":{"ids":[]}},"exclude_product":{"type":"none","manual":{"ids":[],"tags":[]},"collections":{"ids":[]}}},"customer_configs":{"apply_customer":{"type":"customer-tags","tags":["wholesale"]},"exclude_customer":{"type":"none","tags":[]}}}}[889];Samita.Wholesale.orderLimit[890] = {"890":{"id":890,"status":1,"configs":{"quantity_increment":{"active":false,"value":null},"order_limit":{"scope":"quantity","type":"variant","minimum":"10","maximum":"107"},"message":{"product_page":true,"design":{"bg_mes":"#FFF1E3","txt_mes":"#5E4200"}},"discount_for_variants":[{"id":7810371420310,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}],"variant_pricing":false,"variants":[{"id":42754768896150,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}]}]}]},"product_configs":{"apply_product":{"type":"products","manual":{"ids":[7810371420310],"variants":[{"key":7810371420310,"values":[42754768896150]}],"tags":[]},"collections":{"ids":[]}},"exclude_product":{"type":"none","manual":{"ids":[],"tags":[]},"collections":{"ids":[]}}},"customer_configs":{"apply_customer":{"type":"customer-tags","tags":["wholesale"]},"exclude_customer":{"type":"none","tags":[]}}}}[890];Samita.Wholesale.orderLimit[891] = {"891":{"id":891,"status":1,"configs":{"quantity_increment":{"active":false,"value":null},"order_limit":{"scope":"quantity","type":"variant","minimum":"5","maximum":"59"},"message":{"product_page":true,"design":{"bg_mes":"#FFF1E3","txt_mes":"#5E4200"}},"discount_for_variants":[{"id":7462086508694,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}],"variant_pricing":false,"variants":[{"id":41753911001238,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}]}]}]},"product_configs":{"apply_product":{"type":"products","manual":{"ids":[7462086508694],"variants":[{"key":7462086508694,"values":[41753911001238]}],"tags":[]},"collections":{"ids":[]}},"exclude_product":{"type":"none","manual":{"ids":[],"tags":[]},"collections":{"ids":[]}}},"customer_configs":{"apply_customer":{"type":"customer-tags","tags":["wholesale"]},"exclude_customer":{"type":"none","tags":[]}}}}[891];Samita.Wholesale.orderLimit[892] = {"892":{"id":892,"status":1,"configs":{"quantity_increment":{"active":false,"value":null},"order_limit":{"scope":"quantity","type":"variant","minimum":"5","maximum":"49"},"message":{"product_page":true,"design":{"bg_mes":"#FFF1E3","txt_mes":"#5E4200"}},"discount_for_variants":[{"id":8315846361238,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}],"variant_pricing":false,"variants":[{"id":44289152254102,"position":0,"duplicated":false,"discount_groups":[{"name":"wholesale","type":"percent","value":null}]}]}]},"product_configs":{"apply_product":{"type":"products","manual":{"ids":[8315846361238],"variants":[{"key":83
101615846361238,"values":[44289152254102]}],"tags":[]},"collections":{"ids":[]}},"exclude_product":{"type":"none","manual":{"ids":[],"tags":[]},"collections":{"ids":[]}}},"customer_configs":{"apply_customer":{"type":"customer-tags","tags":["wholesale"]},"exclude_customer":{"type":"none","tags":[]}}}}[892];Samita.Wholesale.extraFee = [];Samita.Wholesale.shippingRate = [];
1017    Samita.Wholesale.shippingRateIds = [];Samita.Wholesale.paymentTerms = [];
1018    Samita.Wholesale.paymentTerm = {};
1019    Samita.Wholesale.paymentTermIds = [];Samita.Wholesale.invoicePayments = [];
1020    Samita.Wholesale.invoicePayment = {};
1021    Samita.Wholesale.invoicePaymentIds = [];Samita.Wholesale.taxExempts = [];
1022    Samita.Wholesale.taxExempt = {};
1023    Samita.Wholesale.taxExemptIds = [];Samita.Wholesale.taxDisplays = [];
1024    Samita.Wholesale.taxDisplay = {};Samita.Wholesale.taxOverride = [];Samita.Wholesale.shippingRateMetafields = null;
1025    Samita.Wholesale.linklists = "";
1026    Samita.Wholesale.canonical_url = "https:\/\/myfirmtech.com\/";
1027    Samita.Wholesale.url = window.Samita.Wholesale.shop.app_url;
1028    Samita.Wholesale.apiUrl = ((typeof Shopify!= "undefined" && Shopify?.routes?.root) ? Shopify.routes.root.replace(/\/$/, '') : '') + (window.Samita.Wholesale.shop?.api_url || '');
1029    Samita.Wholesale.themeOs20 = true;
1030    Samita.Wholesale.__webpack_public_path__ = "https://cdn.shopify.com/extensions/01a0f62a-e0a3-703c-bda5-efe7414b9c90/wholesale-sami-846/assets/";
1031    Samita.Wholesale.products = Samita.Wholesale.products || [];Samita.Wholesale.cart = {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0};Samita.Wholesale.page = {
1032        title : document.title.replaceAll('"', "'"),
1033        href : window.location.href,
1034        type: "index",
1035        handle: ""
1036    };</script>
1036
1037<!-- END app block --><!-- BEGIN app block: shopify://apps/tinyseo-seo-speed/blocks/store-json-ld-embed/0605268f-f7c4-4e95-b560-e43df7d59ae4 -->
1038<!-- END app block --><!-- BEGIN app block: shopify://apps/tinyseo-seo-speed/blocks/breadcrumbs-json-ld-embed/0605268f-f7c4-4e95-b560-e43df7d59ae4 -->
1039<!-- END app block --><!-- BEGIN app block: shopify://apps/tinyseo-seo-speed/blocks/website-json-ld-embed/0605268f-f7c4-4e95-b560-e43df7d59ae4 -->
1040<!-- END app block --><!-- BEGIN app block: shopify://apps/sami-b2b-lock/blocks/app-embed/8d86a3b4-97b3-44ab-adc1-ec01c5a89da9 -->
1041<script>
1042  window.Samita = window.Samita || {};
1043  Samita.SamitaLocksAccessParams = Samita.SamitaLocksAccessParams || {};
1044  Samita.SamitaLocksAccessParams.cart = {item_count:0,total_price:0,currency:"USD",items:[]};
1045  Samita.SamitaLocksAccessParams.settings = {"general":{"customcss":"html body .lock__notificationTemplateWrapper img[alt=\"smtImage\"] {\ncontent:url(https://cdn.shopify.com/s/files/1/0577/3177/6662/files/door-lock-old-free-photo-on-pi_1ln7yit.png?v=1735780590) !important;\n    object-fit: contain !important;\n    width:300px !important;\n    height:auto !important;\n    }\n  html body .lock__notificationFooter #passcode{\n    flex:1 !important;\n    box-shadow:none !important;\n  }\n\n  html body .lock__notificationTemplateWrapper{\n    width:50% !important;\n    background:transparent !important;\n    box-shadow:none !important;\n  }\n\n  html body .lock__notificationTemplateWrapper .Lock__Error{\n    margin-top:5px !important;\n  }\n\n  html body .Lock__Watermark{\n    padding: 0 40px !important;\n  }\n  \n  html body .Lock__Watermark p{\n    font-size: 15px !important;\n    font-family: inherit;\n  }\n\n  @media(max-width:1024px){\n    html body .lock__notificationTemplateWrapper{\n      width:100% !important;\n    }\n  }\n\n  html body .lock__notificationFooter #passcode:focus-visible {\n    border: 1px solid #ccc !important;\n  }\n\n\nhtml body .lock__notificationFooter{\n    max-width:600px;\n    margin-left: auto !important;\n    margin-right:auto !important;\n  }\n\n  html body .Lock__Error{\n   \n    max-width:600px;\n    margin-left: auto !important;\n    margin-right:auto !important;\n  }","price_atc":"plain_text","effect_button":"ripple","collectFeedback":true,"placeholder_message":true,"placeholder_templateLock":true},"template":{"text_color":"#000","btn_bg_color":"#7396a2","bg_placeholder":"#f3f3f3","btn_text_color":"#ffffff","bg_notification":"#fff","input_box_shadow":"#ccc","plain_text_color":"#230d0d","color_placeholder":"#000","button_priceAtc_bg":"#5487a0","input_passcode_color":"#000","button_priceAtc_color":"#fff","input_passcode_background":"#ffffff"}};
1046  Samita.SamitaLocksAccessParams.locks = [];
1047  Samita.SamitaLocksAccessParams.ShopUrl = Shopify.shop;
1048  Samita.SamitaLocksAccessParams.features = {"conditions_specific_products":-1,"isCreateAbleLock":true,"number_lock_to_add":-1,"login_to_view_products":true,"login_to_view_pages":true,"login_to_view_urls":true,"login_to_view_blogs":true,"login_to_view_collections":true,"login_to_view_whole_websites":true,"password_protect_pages_with_locks":true,"add_multiple_passcode":true,"secret_link_view_page":true,"exclude_specific_URLs":true,"login_view_price":true,"hide_product_and_collection":true,"hide_add_to_cart_price_and_btn":true,"redirect_to_any_page_url":true,"hide_price_on_gg_search":true,"select_blog_article_to_lock":true,"select_customer_for_lock":true,"exclude_product":true,"request_access":true,"integrateApp":true,"date_range":true,"country_restriction":true,"available_languages":true,"lock_variants":true,"checkout_lock":true};
1049  Samita.SamitaLocksAccessParams.themeInfo = [{"id":131141370006,"name":"Kalles-4.0.5 official","role":"unpublished","theme_store_id":null,"selected":false,"theme_name":"Kalles","theme_version":"4.0.5"},{"id":132113596566,"name":"Kalles-4.0.5 official v1 [Okendo]","role":"unpublished","theme_store_id":null,"selected":false,"theme_name":"Kalles","theme_version":"4.0.5"},{"id":132420534422,"name":"Copy of Kalles-4.0.5 official [Okendo]","role":"unpublished","theme_store_id":null,"selected":false,"theme_name":"Kalles","theme_version":"4.0.5"},{"id":137274720406,"name":"Live - Impact - FirmTech 07-20-26","role":"main","theme_store_id":1190,"selected":true,"theme_name":"Impact","theme_version":"5.4.1"},{"id":137719218326,"name":"V1 Backup - Live - Impact - Firmtech","role":"unpublished","theme_store_id":1190,"selected":false,"theme_name":"Impact","theme_version":"5.4.1"},{"id":139099799702,"name":"V2 Backup - Live - Impact - Firmtech ","role":"unpublished","theme_store_id":1190,"selected":false,"theme_name":"Impact","theme_version":"5.4.1"},{"id":139927650454,"name":"Shopify Advisor copy LIve ","role":"unpublished","theme_store_id":1190,"selected":false,"theme_name":"Impact","theme_version":"5.4.1"},{"id":141004243094,"name":"Copy of Live - Impact - CS_Website - Dev - Firm...","role":"unpublished","theme_store_id":1190,"selected":false,"theme_name":"Impact","theme_version":"5.4.1"},{"id":147728236694,"name":"[SFL Test] Live - Impact - CS_Website - Dev - Firm","role":"unpublished","theme_store_id":1190,"selected":false,"theme_name":"Impact","theme_version":"5.4.1"},{"id":147741769878,"name":"Copy of Live - Impact - CS_Website - Dev - Firm...","role":"unpublished","theme_store_id":1190,"selected":false,"theme_name":"Impact","theme_version":"5.4.1"},{"id":147844890774,"name":"Redo test","role":"unpublished","theme_store_id":1190,"selected":false,"theme_name":"Impact","theme_version":"5.4.1"},{"id":147953942678,"name":"Copy of Live - Impact - CS_Website - Dev - Firm...","role":"unpublished","theme_store_id":1190,"selected":false,"theme_name":"Impact","theme_version":"5.4.1"},{"id":148020461718,"name":"Frontrow Edits","role":"unpublished","theme_store_id":1190,"selected":false,"theme_name":"Impact","theme_version":"5.4.1"},{"id":148077707414,"name":"TechRing-No FrontRow","role":"unpublished","theme_store_id":1190,"selected":false,"theme_name":"Impact","theme_version":"5.4.1"},{"id":148087210134,"name":"AB TEST - DOCTORS VIDEOS","role":"unpublished","theme_store_id":1190,"selected":false,"theme_name":"Impact","theme_version":"5.4.1"},{"id":148156055702,"name":"DOC MAP/DOCTORS VIDEOS","role":"unpublished","theme_store_id":1190,"selected":false,"theme_name":"Impact","theme_version":"5.4.1"},{"id":148183449750,"name":"Duplicate - Impact - FirmTech 08-04-26","role":"unpublished","theme_store_id":1190,"selected":false,"theme_name":"Impact","theme_version":"5.4.1"},{"id":148242432150,"name":"Copy of Live - Impact - FirmTech 07-20-26","role":"unpublished","theme_store_id":1190,"selected":false,"theme_name":"Impact","theme_version":"5.4.1"},{"id":125527097494,"name":"NWS || Firmtech","role":"unpublished","theme_store_id":null,"selected":false,"theme_name":"Molla","theme_version":"1.7.4"},{"id":125815226518,"name":"ACF STORAGE THEME - DO NOT DELETE OR RENAME","role":"unpublished","theme_store_id":null,"selected":false},{"id":128955121814,"name":"NWS || Firmtech with Installments message","role":"unpublished","theme_store_id":null,"selected":false,"theme_name":"Molla","theme_version":"1.7.4"},{"id":130587852950,"name":"Copy of NWS || Firmtech Riley's render 1","role":"unpublished","theme_store_id":null,"selected":false,"theme_name":"Molla","theme_version":"1.7.4"}];
1050  Samita.SamitaLocksAccessParams.appUrl = "https:\/\/lock.samita.io";
1051  Samita.SamitaLocksAccessParams.selector = {"theme_store_id":null,"theme_name":"default","product":{"price":".product__price, div[id*='price-template'], .product-details .product-pricing, .product-price, .product-detail__price.product-price, .price__container .price__regular, [data-section-id='product-template'] .product__price, ul[data-price], .price.price--large, dl[data-price], .product__content-header p.product__price, .product-single__prices, .product-single__meta .price-container, ul.product-single__meta-list.list--no-bullets.list--inline, form#AddToCartForm-product-template > p.product__price, .product-price > p.price.product-single__price.product-single__price-product-template, .info_content > p.product-single__price.product-single__price-nov-product-template, .product-form__info-item:nth-child(1) .product-form__info-content, p#product-price, .sh-price-wrapper, .prod-details-info-content h5.price, p.modal_price.product__price, .tt-product-single-info .tt-price, .product-info__price.js-
1051price-wrapper, h3.product-single__price-text, .product-single__price-product-template, .modal_price .price__container, h2.h4-style.price-area, .product-details .product-pricing .product--price, span#productPrice-product-template, .product-single__meta .product-single__prices, .site-box-content span.price, .desc_blk .price, p.modal_price, .product-price.product-main-price, .ProductMeta__PriceList.Heading, .pricing.lht, div#price.detail-price, .h2.product-single__price span#productPrice, .product__price.h6, h2#ProductPrice, .product-submit span.product-price, .product-single__meta .product__price, .product-info__wrapper .product-price, .section.product_section p.modal_price, .product-price_wrapper .product-price, span#ProductPrice, div#product-price span#Main_price_data, ul.product-page--pricing, p#productPrice, div[data-price-wrapper], .product-details div#price, p.price--container, .product-details h2.offers, .price-container.text-money, .product-area__row.cc-animate-init .product-area__col.product-area__col--price, .product-form-block .product-price.product-price--large, .product__details .product__price, .product-meta__price-list-container, span#price-field","btnAtc":"button.button.product-selector__submit, button#AddToCart, .product-form__buttons button.product-form__submit, .product-form button.product__add-to-cart-button, .product__submit__buttons .btn--add-to-cart, .paymentButtonsWrapper button#AddToCart, form.product-form--wide button#AddToCart, .product-form__payment-container button.product-form__add-button, product-page--submit-action button#purchase, form[action='/cart/add'] button[data-cart-action='added'], input.add-to-cart","mainContent":"div#main, main#content, .is-beside-vertical-header, main#MainContent, main#main, .wrapper.main-content, main#site-main,.main-content"},"collection":{"productSelector":"card-product.card-product, .product-list__inner product-item.product-item, ul.grid.product-grid li.grid__item, .product-list-item, ul.grid.grid-cols-1 li.bg-primary-background, div#gf-products > div","collectionSelect":"div#product-grid .card-collection, .collection-list .collection-list__item, .collection-item, ul.grid.grid-cols-1 li.relative.bg-primary-background.w-full","price":"card-product.card-product .price.card-product__price, .product-item-meta__price-list-container, span.price, .product-price, .card-information .price, p.product-list-item-price, .relative .text-center.mt-1, .spf-product-card__price-wrapper","btnAtc":"card-product.card-product ul.list-unstyled, form.spf-product__form"},"searchPage":{"productSelector":"card-product.card-product, ul.grid.product-grid li.grid__item, .product-block, div#gf-products > div","price":"card-product.card-product .price.card-product__price, span.price, .card-information .price, .product-price, .spf-product-card__price-wrapper","btnAtc":"card-product.card-product ul.list-unstyled"},"otherPage":{"productSelector":"card-product.card-product, ul.grid.product-grid li.grid__item, .product-block, div#gf-products > div","collectionSelect":"div#product-grid .card-collection, .collection-list","price":"card-product.card-product .price.card-product__price, span.price, .card-information .price, .product-price, .spf-product-card__price-wrapper","btnAtc":"card-product.card-product ul.list-unstyled, form.spf-product__form"},"index":{"productSelector":"card-product.card-product, ul.grid.product-grid li.grid__item, .product-block, div#gf-products > div","collectionSelect":"div#product-grid .card-collection, .collection-list .collection-list__item","price":"card-product.card-product .price.card-product__price, span.price, .card-information .price, .product-price, .spf-product-card__price-wrapper","btnAtc":"card-product.card-product ul.list-unstyled, form.spf-product__form"}};
1052  // Keep the server-provided value separate. Custom JS below can continue to
1053  // mutate `selector`; storefront code will apply only those mutations after
1054  // resolving the correct base selector for the current theme.
1055  Samita.SamitaLocksAccessParams.selectorFromMetafield = JSON.parse(JSON.stringify(Samita.SamitaLocksAccessParams.selector));
1056  Samita.SamitaLocksAccessParams.translation = {"default":{"general":{"Back":"Back","Submit":"Submit","Enter_passcode":"Enter passcode","Passcode_empty":"Passcode cant be empty !!","secret_lock_atc":"You cannot see the add to cart of this product !!","title_linkScret":"The link is locked !!","customer_lock_atc":"Button add to cart has been lock !!","secret_lock_price":"You cannot see the price of this product !!","Login_to_see_price":"Login to see price","Passcode_incorrect":"Passcode is incorrect !!","customer_lock_price":"Price had been locked !!","Login_to_Add_to_cart":"Login to Add to cart","notification_linkScret":"resource accessible only with secret link","This_resource_has_been_locked":"This resource has been locked","please_enter_passcode_to_unlock":"Please enter your passcode to unlock this resource"}}};
1057  Samita.SamitaLocksAccessParams.statusTrial = {};
1058  Samita.SamitaLocksAccessParams.current_locale = "en";
1059  Samita.SamitaLocksAccessParams.shopTimezoneOffset = "-0700";
1060  Samita.SamitaLocksAccessParams.ListHandle = [];
1061  Samita.SamitaLocksAccessParams.ProductsLoad = [];
1062  Samita.SamitaLocksAccessParams.proxy_url = "/apps/samita-lock";
1063  Samita.SamitaLocksAccessParams.tokenStorefrontSamiLock = "def46dee07b41fed0510276038f75acd";
1064  if (window?.Shopify?.designMode) { window.Samita.SamitaLocksAccessParams.locks = []; }
1065  
1066  
1067  
1068  
1069  
1070  
1071  
1072  
1073  
1074  Samita.SamitaLocksAccessParams.pageType = "index";
1075  
1076  
1077    
1078    
1079    
1080    Samita.SamitaLockTranslation = null;
1081  
1082</script>
1082
1083
1084<style>html .lock__notificationTemplateWrapper{background:#fff !important}html button#passcodebtn{background:#7396a2 !important;color:#ffffff !important}html input#passcode{background:#ffffff !important;color:#000 !important;box-shadow:0 0 10px 0 #ccc !important}html input#passcode::placeholder{color:#000 !important;} !important}html button#backbtn{background:#7396a2 !important;color:#ffffff !important}html .lock__placeholder{background:#f3f3f3 !important;color:#000 !important}html .smt-plain-text{color:#230d0d !important;cursor:pointer}html .smt-button{background:#5487a0 !important;color:#fff !important;cursor:pointer;padding:10px 20px;border-radius:5px;text-decoration:none !important}html.smt-loadding{opacity:0 !important;visibility:hidden !important}html body .lock__notificationTemplateWrapper img[alt="smtImage"] {
1085content:url(https://cdn.shopify.com/s/files/1/0577/3177/6662/files/door-lock-old-free-photo-on-pi_1ln7yit.png?v=1735780590) !important;
1086    object-fit: contain !important;
1087    width:300px !important;
1088    height:auto !important;
1089    }
1090  html body .lock__notificationFooter #passcode{
1091    flex:1 !important;
1092    box-shadow:none !important;
1093  }
1094
1095  html body .lock__notificationTemplateWrapper{
1096    width:50% !important;
1097    background:transparent !important;
1098    box-shadow:none !important;
1099  }
1100
1101  html body .lock__notificationTemplateWrapper .Lock__Error{
1102    margin-top:5px !important;
1103  }
1104
1105  html body .Lock__Watermark{
1106    padding: 0 40px !important;
1107  }
1108  
1109  html body .Lock__Watermark p{
1110    font-size: 15px !important;
1111    font-family: inherit;
1112  }
1113
1114  @media(max-width:1024px){
1115    html body .lock__notificationTemplateWrapper{
1116      width:100% !important;
1117    }
1118  }
1119
1120  html body .lock__notificationFooter #passcode:focus-visible {
1121    border: 1px solid #ccc !important;
1122  }
1123
1124
1125html body .lock__notificationFooter{
1126    max-width:600px;
1127    margin-left: auto !important;
1128    margin-right:auto !important;
1129  }
1130
1131  html body .Lock__Error{
1132   
1133    max-width:600px;
1134    margin-left: auto !important;
1135    margin-right:auto !important;
1136  }</style>
1137
1138
1139
1140
1141<!-- END app block -->
1141<script src="https://cdn.shopify.com/extensions/01a0f119-97d5-70ad-8274-d2ee373cf011/ecomposer-145/assets/ecom.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1141
1141
1142<script src="https://cdn.shopify.com/extensions/01a0eb5b-13b6-751a-b6c1-a42e5b9b7333/affliate-by-secomapp-128/assets/core.min.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1142
1142
1143<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 1143
1143
1144<script src="https://cdn.shopify.com/extensions/01a0f62a-e0a3-703c-bda5-efe7414b9c90/wholesale-sami-846/assets/samita.wholesale.index.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1144
1144
1145<script src="https://cdn.shopify.com/extensions/019d8abd-41a2-7e0a-836b-e41fdeeaceba/trueprofit-22/assets/embedded.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1145
1145
1146<script src="https://cdn.shopify.com/extensions/019feb7b-2b89-71ba-a248-f1c8ef9b3368/stape-remix-56/assets/widget.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1146
1146
1147<script src="https://cdn.shopify.com/extensions/01a0f67f-a508-78ac-8c38-5b75c817b9d5/wholesale-lock-hide-price-189/assets/samitaLock.js" type="text/javascript" defer="defer"></script>
1147
1148<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1149<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: 57731776662,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "index"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 1149
1149
1150<script>
1151  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
1152</script>
vendor: 1 bytes, line 1152
1152
1153<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}
1153).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: 57731776662,storefrontBaseUrl: "https://myfirmtech.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://myfirmtech.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"1828520086","configuration":"{\"accountID\":\"blockify-checkout-rules-webpixel-myfirmtech.myshopify.com\",\"enable\":\"true\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"1ab7f922a8fb5837043325263ba42f22","type":"APP","apiClientId":143723102209,"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"}
1153,{"id":"1767833750","configuration":"{\"siteId\":\"y2TTsq4WsP4G0plw\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0d1a379d85da8550d7ec5af32a393808","type":"APP","apiClientId":45694124033,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1697710230","configuration":"{\"shopId\":\"myfirmtech.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7093dff47f098f6de2afb75b62011ebe","type":"APP","apiClientId":2753413,"privacyPurposes":["ANALYTICS","MARKETING"],"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":"1517584534","configuration":"{ \"alias\": \"MYFIRMTECH\", \"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":"791347350","configuration":"{\"accountID\":\"Y3Ych4\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"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":"743637142","configuration":"{\"eventPixelIdAddToCart\":\"tw-ona2g-ozym4\",\"eventPixelIdSiteVisit\":\"tw-ona2g-ozym7\",\"eventPixelIdPurchase\":\"tw-ona2g-ozym5\",\"eventPixelIdAddedPaymentInfo\":\"tw-ona2g-ozym6\",\"eventPixelIdCheckoutInitiated\":\"tw-ona2g-ozym9\",\"eventPixelIdContentView\":\"tw-ona2g-ozym8\",\"eventPixelIdSearch\":\"tw-ona2g-ozyma\",\"basePixelId\":\"ona2g\",\"adsAccountId\":\"18ce55p4zdw\",\"isDisconnected\":\"0\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"3df823913fec4164b84eb9879cd9a3dd","type":"APP","apiClientId":6455335,"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":[]},"dataSharingState":"optimized"},{"id":"715358358","configuration":"{\"accountID\":\"57731776662\"}","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":"669319318","configuration":"{\"accountID\":\"facct_01jcgrmpb1yhyfxwhatqwhbksm\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"b512ad51efb2fbd80a0b3630d2f185b8","type":"APP","apiClientId":61620781057,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"514424982","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-LCGS8MP2F3\\\",\\\"GT-NS8CT4J\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"G-LCGS8MP2F3\\\"},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"G-LCGS8MP2F3\\\"},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-LCGS8MP2F3\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-LCGS8MP2F3\\\",\\\"MC-F3NTHXWBXC\\\"]}
1153,{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-LCGS8MP2F3\\\",\\\"MC-F3NTHXWBXC\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-LCGS8MP2F3\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-LCGS8MP2F3\\\",\\\"MC-F3NTHXWBXC\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-LCGS8MP2F3\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"G-LCGS8MP2F3\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"G-LCGS8MP2F3\\\"},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-LCGS8MP2F3\\\"}],\\\"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":"486211734","configuration":"{\"shopId\":\"57731776662\",\"pixelEndpoint\":\"https:\/\/wpx.svc.trueprofit.io\/api\/evt\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0c3e1c496a29e1742ccf21c8518d3164","type":"APP","apiClientId":2553263,"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":"161349782","configuration":"{\"shopId\":\"79458\",\"env\":\"production\",\"metaData\":\"[]\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8323bee30e1ec3ae135ae5e0cef4ab6d","type":"APP","apiClientId":2773553,"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":"49184918","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"AdBeacon Pixel"},{"id":"151421078","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"stape"},{"id":"166199446","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"frontrow-cai"},{"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":"FirmTech Inc","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"myfirmtech.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/myfirmtech.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"7462086508694","handle":"the-tech-ring","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41753911001238","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8646964641942","handle":"affirm-l-citrulline-dietary-supplement-i-150-tablets","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46355021660310","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7810371420310","handle":"maxpr","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42754768896150","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8361829400726","handle":"maxpr-and-ringmate-bundle-1","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44685613006998","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8677883609238","handle":"firmtech-biomarker-testing-and-coac
1153hing-call","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46497468645526","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8101011161238","handle":"larginine-gel","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43604216807574","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8630825123990","handle":"firmtech-coaching-call","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46303013044374","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7037087580310","handle":"firmtech-performance-ring","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"40577802338454","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8361829662870","handle":"performance-ring-and-ringmate-bundle-1","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44685615333526","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7799904534678","handle":"sleeve","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44826783088790","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8315846361238","handle":"ringmate","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44289152254102","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8343427645590","handle":"sliquid","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44400474488982","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8264486060182","handle":"techring-and-affirm-bundle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44067166552214","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7916956385430","handle":"techring-and-maxpr","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43091897221270","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7942637944982","handle":"techring-and-performance-ring","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43187723272342","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8361829597334","handle":"techring-and-ringmate-bundle-1","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44685613924502","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8299752554646","handle":"techring-and-vaxaid-bundle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44216613961878","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8685676757142","handle":"vaxaid","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46521161023638","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://myfirmtech.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"137274720406","themeStoreId":"1190","themePublished":"true","eventMetadataId":"7eaa0ef7-ea7b-4ecb-8c0a-cdda760170c0","pageType":"home","shopId":"57731776662","storefrontBaseUrl":"https:\/\/myfirmtech.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
1153<script>
1154  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
1155  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
1156  window.ShopifyAnalytics.meta.currency = 'USD';
1157  var meta = {"page":{"pageType":"home","requestId":"f6ef0b0c-e994-43aa-82ad-97bc6fdf99d9-1791067573"}};
1158  for (var attr in meta) {
1159    window.ShopifyAnalytics.meta[attr] = meta[attr];
1160  }
1161</script>
vendor: 1 bytes, line 1161
1161
1162<script class="analytics">
1163  (function () {
1164    var customDocumentWrite = function(content) {
1165      var jquery = null;
1166
1167      if (window.jQuery) {
1168        jquery = window.jQuery;
1169      } else if (window.Checkout && window.Checkout.$) {
1170        jquery = window.Checkout.$;
1171      }
1172
1173      if (jquery) {
1174        jquery('body').append(content);
1175      }
1176    };
1177
1178    var hasLoggedConversion = function(token) {
1179      if (token) {
1180        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
1181      }
1182      return false;
1183    }
1184
1185    var setCookieIfConversion = function(token) {
1186      if (token) {
1187        var twoMonthsFromNow = new Date(Date.now());
1188        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
1189
1190        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
1191      }
1192    }
1193
1194    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
1195    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
1196    if (trekkie.integrations) {
1197      return;
1198    }
1199    trekkie.methods = [
1200      'identify',
1201      'page',
1202      'ready',
1203      'track',
1204      'trackForm',
1205      'trackLink'
1206    ];
1207    trekkie.factory = function(method) {
1208      return function() {
1209        var args = Array.prototype.slice.call(arguments);
1210        args.unshift(method);
1211        trekkie.push(args);
1212        if (method == 'track' || method == 'page') {
1213          var pageUrl;
1214          try {
1215            pageUrl = window.location.href;
1216          } catch (e) {}
1217          var pageReferrer;
1218          try {
1219            pageReferrer = document.referrer;
1220          } catch (e) {}
1221          try {
1222            if (window.__TREKKIE_SHIM_QUEUE == null) {
1223              window.__TREKKIE_SHIM_QUEUE = [];
1224            }
1225            window.__TREKKIE_SHIM_QUEUE.push({
1226              from: 'trekkie-stub',
1227              method: method,
1228              args: args.slice(1),
1229              pageContext: {
1230                url: pageUrl,
1231                referrer: pageReferrer
1232              }
1233            });
1234          } catch (e) {
1235            // no-op
1236          }
1237        }
1238        return trekkie;
1239      };
1240    };
1241    for (var i = 0; i < trekkie.methods.length; i++) {
1242      var key = trekkie.methods[i];
1243      trekkie[key] = trekkie.factory(key);
1244    }
1245    trekkie.load = function(config) {
1246      trekkie.config = config || {};
1247      trekkie.config.initialDocumentCookie = document.cookie;
1248      var first = document.getElementsByTagName('script')[0];
1249var script = document.createElement('script');
1250script.type = 'text/javascript';
1251script.onerror = function(e) {
1252  var scriptFallback = document.createElement('script');
1253  scriptFallback.type = 'text/javascript';
1254  scriptFallback.onerror = function(error) {
1255          var Monorail = {
1256      produce: function produce(monorailDomain, schemaId, payload) {
1257        var currentMs = new Date().getTime();
1258        var event = {
1259          schema_id: schemaId,
1260          payload: payload,
1261          metadata: {
1262            event_created_at_ms: currentMs,
1263            event_sent_at_ms: currentMs
1264          }
1265        };
1266        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
1267      },
1268      sendRequest: function sendRequest(endpointUrl, payload) {
1269        // Try the sendBeacon API
1270        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
1271          var blobData = new window.Blob([payload], {
1272            type: 'text/plain'
1273          });
1274
1275          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
1276            return true;
1277          } // sendBeacon was not successful
1278
1279        } // XHR beacon
1280
1281        var xhr = new XMLHttpRequest();
1282
1283        try {
1284          xhr.open('POST', endpointUrl);
1285          xhr.setRequestHeader('Content-Type', 'text/plain');
1286          xhr.send(payload);
1287        } catch (e) {
1288          console.log(e);
1289        }
1290
1291        return false;
1292      },
1293      isIos12: function isIos12() {
1294        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
1295      }
1296    };
1297    Monorail.produce('monorail-edge.shopifysvc.com',
1298      'trekkie_storefront_load_errors/1.1',
1299      {shop_id: 57731776662,
1300      theme_id: 137274720406,
1301      app_name: "storefront",
1302      context_url: window.location.href,
1303      source_url: "//myfirmtech.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"});
1304
1305  };
1306  scriptFallback.async = true;
1307  scriptFallback.src = '//myfirmtech.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js';
1308  first.parentNode.insertBefore(scriptFallback, first);
1309};
1310script.async = true;
1311script.src = '//myfirmtech.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js';
1312first.parentNode.insertBefore(script, first);
1313
1314    };
1315    trekkie.load(
1316      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":57731776662,"isMerchantRequest":null,"themeId":137274720406,"themeCityHash":"8660641450231462340","contentLanguage":"en","currency":"USD","eventMetadataId":"7eaa0ef7-ea7b-4ecb-8c0a-cdda760170c0"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}}
1317    );
1318
1319    var loaded = false;
1320    trekkie.ready(function() {
1321      if (loaded) return;
1322      loaded = true;
1323
1324      window.ShopifyAnalytics.lib = window.trekkie;
1325
1326      var originalDocumentWrite = document.write;
1327      document.write = customDocumentWrite;
1328      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
1329      document.write = originalDocumentWrite;
1330
1331      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
1332      var token = match? match[1]: undefined;
1333      if (!hasLoggedConversion(token)) {
1334        setCookieIfConversion(token);
1335        
1336      }
1337    });
1338
1339    window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"f6ef0b0c-e994-43aa-82ad-97bc6fdf99d9-1791067573","shopifyEmitted":true});
1340
1341    var eventsListenerScript = document.createElement('script');
1342    eventsListenerScript.async = true;
1343    eventsListenerScript.src = "//myfirmtech.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
1344    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
1345})();</script>
1345
1346  
1346<script>
1347  if (!window.ga || (window.ga && typeof window.ga !== 'function')) {
1348    window.ga = function ga() {
1349      (window.ga.q = window.ga.q || []).push(arguments);
1350      if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
1351        window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"});
1352      }
1353      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.");
1354    };
1355    if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
1356      window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"});
1357    }
1358  }
1359</script>
vendor: 1 bytes, line 1359
1359
1360<script
1361  defer
1362  src="https://myfirmtech.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js"
1363  data-application="storefront-renderer"
1364  data-shop-id="57731776662"
1365  data-render-region="gcp-us-central1"
1366  data-page-type="index"
1367  data-theme-instance-id="137274720406"
1368  data-theme-name="Impact"
1369  data-theme-version="5.4.1"
1370  data-monorail-region="shop_domain"
1371  data-resource-timing-sampling-rate="10"
1372  data-shs="true"
1373  data-shs-beacon="true"
1374  data-shs-export-with-fetch="true"
1375  data-shs-logs-sample-rate="1"
1376  data-shs-beacon-endpoint="https://myfirmtech.com/api/collect"
1377></script>
1377
1378<meta name="shopify-y" content="00000000-0000-0000-5000-000000000000" data-expiration="1822625173000"><meta name="shopify-s" content="00000000-0000-0000-5000-000000000000" data-expiration="1791069373000"><meta name="new-cookie-storage-activated" content="t">
1379</head>
1380
1381  <body class=" zoom-image--enabled"><!-- DRAWER -->
1382<template id="drawer-default-template">
1383  <style>
1384    [hidden] {
1385      display: none !important;
1386    }
1387  </style>
1388
1389  <button part="outside-close-button" is="close-button" aria-label="Close"><svg role="presentation" stroke-width="2" focusable="false" width="24" height="24" class="icon icon-close" viewBox="0 0 24 24">
1390        <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path>
1391      </svg></button>
1392
1393  <div part="overlay"></div>
1394
1395  <div part="content">
1396    <header part="header">
1397      <slot name="header"></slot>
1398
1399      <button part="close-button" is="close-button" aria-label="Close"><svg role="presentation" stroke-width="2" focusable="false" width="24" height="24" class="icon icon-close" viewBox="0 0 24 24">
1400        <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path>
1401      </svg></button>
1402    </header>
1403
1404    <div part="body">
1405      <slot></slot>
1406    </div>
1407
1408    <footer part="footer">
1409      <slot name="footer"></slot>
1410    </footer>
1411  </div>
1412</template>
1413
1414<!-- POPOVER -->
1415<template id="popover-default-template">
1416  <button part="outside-close-button" is="close-button" aria-label="Close"><svg role="presentation" stroke-width="2" focusable="false" width="24" height="24" class="icon icon-close" viewBox="0 0 24 24">
1417        <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path>
1418      </svg></button>
1419
1420  <div part="overlay"></div>
1421
1422  <div part="content">
1423    <header part="title">
1424      <slot name="title"></slot>
1425    </header>
1426
1427    <div part="body">
1428      <slot></slot>
1429    </div>
1430  </div>
1431</template><a href="#main" class="skip-to-content sr-only">Skip to content</a><!-- BEGIN sections: header-group -->
1432<aside id="shopify-section-sections--17107269615766__announcement-bar" class="shopify-section shopify-section-group-header-group shopify-section--announcement-bar"><style>
1433    :root {
1434      --sticky-announcement-bar-enabled:0;
1435    }</style><height-observer variable="announcement-bar">
1436    <div class="announcement-bar bg-gradient text-custom"style="--gradient: linear-gradient(141deg, rgba(186, 24, 27, 1), rgba(186, 24, 27, 1) 26%, rgba(24, 20, 29, 1) 65%); --text-color: 255 255 255;"><marquee-text scrolling-speed="30" class="announcement-bar__scrolling-list"><span class="announcement-bar__item" ><p class="bold text-xs" >Just launched: Men&#39;s Health Labs &amp; Coaching
1437</p>
1438
1439              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="/collections/firmtech">Clinically proven to keep men hard. Check out our products.</a></p>
1440
1441              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="/products/the-tech-ring">90% of TechRing users are happy with their purchase</a></p>
1442
1443              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="https://myfirmtech.com/pages/hsa-fsa">FirmTech Rings are HSA/FSA eligible.  Learn More</a></p>
1444
1445              <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-xs" >Just launched: Men&#39;s Health Labs &amp; Coaching
1446</p>
1447
1448              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="/collections/firmtech">Clinically proven to keep men hard. Check out our products.</a></p>
1449
1450              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="/products/the-tech-ring">90% of TechRing users are happy with their purchase</a></p>
1451
1452              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="https://myfirmtech.com/pages/hsa-fsa">FirmTech Rings are HSA/FSA eligible.  Learn More</a></p>
1453
1454              <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-xs" >Just launched: Men&#39;s Health Labs &amp; Coaching
1455</p>
1456
1457              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="/collections/firmtech">Clinically proven to keep men hard. Check out our products.</a></p>
1458
1459              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="/products/the-tech-ring">90% of TechRing users are happy with their purchase</a></p>
1460
1461              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="https://myfirmtech.com/pages/hsa-fsa">FirmTech Rings are HSA/FSA eligible.  Learn More</a></p>
1462
1463              <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-xs" >Just launched: Men&#39;s Health Labs &amp; Coaching
1464</p>
1465
1466              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="/collections/firmtech">Clinically proven to keep men hard. Check out our products.</a></p>
1467
1468              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="/products/the-tech-ring">90% of TechRing users are happy with their purchase</a></p>
1469
1470              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="https://myfirmtech.com/pages/hsa-fsa">FirmTech Rings are HSA/FSA eligible.  Learn More</a></p>
1471
1472              <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-xs" >Just launched: Men&#39;s Health Labs &amp; Coaching
1473</p>
1474
1475              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="/collections/firmtech">Clinically proven to keep men hard. Check out our products.</a></p>
1476
1477              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="/products/the-tech-ring">90% of TechRing users are happy with their purchase</a></p>
1478
1479              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="https://myfirmtech.com/pages/hsa-fsa">FirmTech Rings are HSA/FSA eligible.  Learn More</a></p>
1480
1481              <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-xs" >Just launched: Men&#39;s Health Labs &amp; Coaching
1482</p>
1483
1484              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="/collections/firmtech">Clinically proven to keep men hard. Check out our products.</a></p>
1485
1486              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="/products/the-tech-ring">90% of TechRing users are happy with their purchase</a></p>
1487
1488              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="https://myfirmtech.com/pages/hsa-fsa">FirmTech Rings are HSA/FSA eligible.  Learn More</a></p>
1489
1490              <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-xs" >Just launched: Men&#39;s Health Labs &amp; Coaching
1491</p>
1492
1493              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="/collections/firmtech">Clinically proven to keep men hard. Check out our products.</a></p>
1494
1495              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="/products/the-tech-ring">90% of TechRing users are happy with their purchase</a></p>
1496
1497              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="https://myfirmtech.com/pages/hsa-fsa">FirmTech Rings are HSA/FSA eligible.  Learn More</a></p>
1498
1499              <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-xs" >Just launched: Men&#39;s Health Labs &amp; Coaching
1500</p>
1501
1502              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="/collections/firmtech">Clinically proven to keep men hard. Check out our products.</a></p>
1503
1504              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="/products/the-tech-ring">90% of TechRing users are happy with their purchase</a></p>
1505
1506              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="https://myfirmtech.com/pages/hsa-fsa">FirmTech Rings are HSA/FSA eligible.  Learn More</a></p>
1507
1508              <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-xs" >Just launched: Men&#39;s Health Labs &amp; Coaching
1509</p>
1510
1511              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="/collections/firmtech">Clinically proven to keep men hard. Check out our products.</a></p>
1512
1513              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="/products/the-tech-ring">90% of TechRing users are happy with their purchase</a></p>
1514
1515              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="https://myfirmtech.com/pages/hsa-fsa">FirmTech Rings are HSA/FSA eligible.  Learn More</a></p>
1516
1517              <span class="shape-circle shape--sm"></span></span><span class="announcement-bar__item" aria-hidden="true"><p class="bold text-xs" >Just launched: Men&#39;s Health Labs &amp; Coaching
1518</p>
1519
1520              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="/collections/firmtech">Clinically proven to keep men hard. Check out our products.</a></p>
1521
1522              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="/products/the-tech-ring">90% of TechRing users are happy with their purchase</a></p>
1523
1524              <span class="shape-circle shape--sm"></span><p class="bold text-xs" ><a href="https://myfirmtech.com/pages/hsa-fsa">FirmTech Rings are HSA/FSA eligible.  Learn More</a></p>
1525
1526              <span class="shape-circle shape--sm"></span></span></marquee-text></div>
1527  </height-observer>
1528
1529  
1529<script>
1530    document.documentElement.style.setProperty('--announcement-bar-height', Math.round(document.getElementById('shopify-section-sections--17107269615766__announcement-bar').clientHeight) + 'px');
1531  </script>
1531</aside><header id="shopify-section-sections--17107269615766__header" class="shopify-section shopify-section-group-header-group shopify-section--header"><style>
1532  :root {
1533    --sticky-header-enabled:1;
1534  }
1535
1536  #shopify-section-sections--17107269615766__header {
1537    --header-grid-template: "main-nav logo secondary-nav" / minmax(0, 1fr) auto minmax(0, 1fr);
1538    --header-padding-block: var(--spacing-3);
1539    --header-background-opacity: 1.0;
1540    --header-background-blur-radius: 14px;
1541    --header-transparent-text-color: 255 255 255;--header-logo-width: 150px;
1542      --header-logo-height: 43px;position: sticky;
1543    top: 0;
1544    z-index: 10;
1545  }.shopify-section--announcement-bar ~ #shopify-section-sections--17107269615766__header {
1546      top: calc(var(--sticky-announcement-bar-enabled, 0) * var(--announcement-bar-height, 0px));
1547    }@media screen and (min-width: 700px) {
1548    #shopify-section-sections--17107269615766__header {--header-logo-width: 150px;
1549        --header-logo-height: 43px;--header-padding-block: var(--spacing-6);
1550    }
1551  }@media screen and (min-width: 1150px) {#shopify-section-sections--17107269615766__header {
1552        --header-grid-template: "logo main-nav secondary-nav" / minmax(0, 1fr) fit-content(55%) minmax(0, 1fr);
1553      }
1554    }</style>
1555
1556<height-observer variable="header">
1557  <store-header class="header"  sticky>
1558    <div class="header__wrapper"><div class="header__main-nav">
1559        <div class="header__icon-list">
1560          <button type="button" class="tap-area lg:hidden" aria-controls="header-sidebar-menu">
1561            <span class="sr-only">Open navigation menu</span><svg role="presentation" stroke-width="2" focusable="false" width="22" height="22" class="icon icon-hamburger" viewBox="0 0 22 22">
1562        <path d="M1 5h20M1 11h20M1 17h20" stroke="currentColor" stroke-linecap="round"></path>
1563      </svg></button>
1564
1565          <a href="/search" class="tap-area sm:hidden" aria-controls="search-drawer">
1566            <span class="sr-only">Open search</span><svg role="presentation" stroke-width="2" focusable="false" width="22" height="22" class="icon icon-search" viewBox="0 0 22 22">
1567        <circle cx="11" cy="10" r="7" fill="none" stroke="currentColor"></circle>
1568        <path d="m16 15 3 3" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path>
1569      </svg></a><nav class="header__link-list justify-center wrap" role="navigation">
1570              <ul class="contents" role="list">
1571
1572                  <li><a href="/collections/firmtech" class="bold link-faded-reverse" >Shop</a></li>
1573
1574                  <li><a href="/pages/health" class="bold link-faded-reverse" >Health</a></li>
1575
1576                  <li><a href="/pages/pleasure" class="bold link-faded-reverse" >Pleasure</a></li>
1577
1578                  <li><a href="https://myfirmtech.com/pages/mens-health-labs-and-coaching" class="bold link-faded-reverse" >Labs & Coaching</a></li>
1579
1580                  <li><a href="/pages/science" class="bold link-faded-reverse" >Science</a></li></ul>
1581            </nav></div>
1582      </div><h1 class="header__logo">
1583          <a href="/"><span class="sr-only">FirmTech Inc</span><img src="//myfirmtech.com/cdn/shop/files/Firmtech_Horizontal_Black_1.png?v=1718384885&amp;width=140" alt="" srcset="//myfirmtech.com/cdn/shop/files/Firmtech_Horizontal_Black_1.png?v=1718384885&amp;width=140 140w, //myfirmtech.com/cdn/shop/files/Firmtech_Horizontal_Black_1.png?v=1718384885&amp;width=140 140w" width="140" height="40" sizes="150px" class="header__logo-image"></a>
1584        </h1>
1585      
1586<div class="header__secondary-nav">
1587
1588        <a class="header-button button" href="https://shassessment.myfirmtech.com/?utm_medium=organic&utm_source=assessment&utm_campaign=myfirmtech" target="_blank" rel="noopener noreferrer">Free Sexual Health Assessment</a><div class="header__icon-list"><div class="hidden md:block shrink-0"><link rel="stylesheet" href="//myfirmtech.com/cdn/shop/t/24/assets/country-flags.css?v=133253664215562886901772071395" media="print" onload="this.media='all'; this.onload = null"><div class="relative">
1589      <button type="button" class="text-with-icon gap-2.5 group" aria-controls="popover-localization-form-country-end-sections--17107269615766__header" aria-expanded="false">
1590        <div class="h-stack gap-2"><span class="country-flags country-flags--US"></span><span class="bold text-sm">USD $</span>
1591        </div><svg role="presentation" focusable="false" width="10" height="7" class="icon icon-chevron-bottom" viewBox="0 0 10 7">
1592        <path d="m1 1 4 4 4-4" fill="none" stroke="currentColor" stroke-width="2"></path>
1593      </svg></button>
1594
1595      <x-popover id="popover-localization-form-country-end-sections--17107269615766__header" initial-focus="[aria-selected='true']" anchor-horizontal="end" anchor-vertical="end" class="popover">
1596        <p class="h5" slot="title">Country</p><form method="post" action="/localization" id="localization-form-country-end-sections--17107269615766__header" accept-charset="UTF-8" class="shopify-localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/" /><x-listbox class="popover-listbox popover-listbox--sm" role="listbox"><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AF" >
1597                <span class="country-flags country-flags--AF"></span>
1598                <span>Afghanistan (USD $)</span>
1599              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AX" >
1600                <span class="country-flags country-flags--AX"></span>
1601                <span>Åland Islands (USD $)</span>
1602              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AL" >
1603                <span class="country-flags country-flags--AL"></span>
1604                <span>Albania (USD $)</span>
1605              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="DZ" >
1606                <span class="country-flags country-flags--DZ"></span>
1607                <span>Algeria (USD $)</span>
1608              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AD" >
1609                <span class="country-flags country-flags--AD"></span>
1610                <span>Andorra (USD $)</span>
1611              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AO" >
1612                <span class="country-flags country-flags--AO"></span>
1613                <span>Angola (USD $)</span>
1614              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AI" >
1615                <span class="country-flags country-flags--AI"></span>
1616                <span>Anguilla (USD $)</span>
1617              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AG" >
1618                <span class="country-flags country-flags--AG"></span>
1619                <span>Antigua &amp; Barbuda (USD $)</span>
1620              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AR" >
1621                <span class="country-flags country-flags--AR"></span>
1622                <span>Argentina (USD $)</span>
1623              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AM" >
1624                <span class="country-flags country-flags--AM"></span>
1625                <span>Armenia (USD $)</span>
1626              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AW" >
1627                <span class="country-flags country-flags--AW"></span>
1628                <span>Aruba (USD $)</span>
1629              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AC" >
1630                <span class="country-flags country-flags--AC"></span>
1631                <span>Ascension Island (USD $)</span>
1632              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AU" >
1633                <span class="country-flags country-flags--AU"></span>
1634                <span>Australia (USD $)</span>
1635              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AT" >
1636                <span class="country-flags country-flags--AT"></span>
1637                <span>Austria (USD $)</span>
1638              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AZ" >
1639                <span class="country-flags country-flags--AZ"></span>
1640                <span>Azerbaijan (USD $)</span>
1641              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BS" >
1642                <span class="country-flags country-flags--BS"></span>
1643                <span>Bahamas (USD $)</span>
1644              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BH" >
1645                <span class="country-flags country-flags--BH"></span>
1646                <span>Bahrain (USD $)</span>
1647              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BD" >
1648                <span class="country-flags country-flags--BD"></span>
1649                <span>Bangladesh (USD $)</span>
1650              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BB" >
1651                <span class="country-flags country-flags--BB"></span>
1652                <span>Barbados (USD $)</span>
1653              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BY" >
1654                <span class="country-flags country-flags--BY"></span>
1655                <span>Belarus (USD $)</span>
1656              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BE" >
1657                <span class="country-flags country-flags--BE"></span>
1658                <span>Belgium (USD $)</span>
1659              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BZ" >
1660                <span class="country-flags country-flags--BZ"></span>
1661                <span>Belize (USD $)</span>
1662              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BJ" >
1663                <span class="country-flags country-flags--BJ"></span>
1664                <span>Benin (USD $)</span>
1665              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BM" >
1666                <span class="country-flags country-flags--BM"></span>
1667                <span>Bermuda (USD $)</span>
1668              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BT" >
1669                <span class="country-flags country-flags--BT"></span>
1670                <span>Bhutan (USD $)</span>
1671              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BO" >
1672                <span class="country-flags country-flags--BO"></span>
1673                <span>Bolivia (USD $)</span>
1674              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BA" >
1675                <span class="country-flags country-flags--BA"></span>
1676                <span>Bosnia &amp; Herzegovina (USD $)</span>
1677              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BW" >
1678                <span class="country-flags country-flags--BW"></span>
1679                <span>Botswana (USD $)</span>
1680              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BR" >
1681                <span class="country-flags country-flags--BR"></span>
1682                <span>Brazil (USD $)</span>
1683              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IO" >
1684                <span class="country-flags country-flags--IO"></span>
1685                <span>British Indian Ocean Territory (USD $)</span>
1686              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="VG" >
1687                <span class="country-flags country-flags--VG"></span>
1688                <span>British Virgin Islands (USD $)</span>
1689              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BN" >
1690                <span class="country-flags country-flags--BN"></span>
1691                <span>Brunei (USD $)</span>
1692              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BG" >
1693                <span class="country-flags country-flags--BG"></span>
1694                <span>Bulgaria (USD $)</span>
1695              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BF" >
1696                <span class="country-flags country-flags--BF"></span>
1697                <span>Burkina Faso (USD $)</span>
1698              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BI" >
1699                <span class="country-flags country-flags--BI"></span>
1700                <span>Burundi (USD $)</span>
1701              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KH" >
1702                <span class="country-flags country-flags--KH"></span>
1703                <span>Cambodia (USD $)</span>
1704              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CM" >
1705                <span class="country-flags country-flags--CM"></span>
1706                <span>Cameroon (USD $)</span>
1707              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CA" >
1708                <span class="country-flags country-flags--CA"></span>
1709                <span>Canada (USD $)</span>
1710              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CV" >
1711                <span class="country-flags country-flags--CV"></span>
1712                <span>Cape Verde (USD $)</span>
1713              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BQ" >
1714                <span class="country-flags country-flags--BQ"></span>
1715                <span>Caribbean Netherlands (USD $)</span>
1716              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KY" >
1717                <span class="country-flags country-flags--KY"></span>
1718                <span>Cayman Islands (USD $)</span>
1719              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CF" >
1720                <span class="country-flags country-flags--CF"></span>
1721                <span>Central African Republic (USD $)</span>
1722              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TD" >
1723                <span class="country-flags country-flags--TD"></span>
1724                <span>Chad (USD $)</span>
1725              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CL" >
1726                <span class="country-flags country-flags--CL"></span>
1727                <span>Chile (USD $)</span>
1728              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CN" >
1729                <span class="country-flags country-flags--CN"></span>
1730                <span>China (USD $)</span>
1731              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CX" >
1732                <span class="country-flags country-flags--CX"></span>
1733                <span>Christmas Island (USD $)</span>
1734              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CC" >
1735                <span class="country-flags country-flags--CC"></span>
1736                <span>Cocos (Keeling) Islands (USD $)</span>
1737              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CO" >
1738                <span class="country-flags country-flags--CO"></span>
1739                <span>Colombia (USD $)</span>
1740              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KM" >
1741                <span class="country-flags country-flags--KM"></span>
1742                <span>Comoros (USD $)</span>
1743              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CG" >
1744                <span class="country-flags country-flags--CG"></span>
1745                <span>Congo - Brazzaville (USD $)</span>
1746              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CD" >
1747                <span class="country-flags country-flags--CD"></span>
1748                <span>Congo - Kinshasa (USD $)</span>
1749              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CK" >
1750                <span class="country-flags country-flags--CK"></span>
1751                <span>Cook Islands (USD $)</span>
1752              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CR" >
1753                <span class="country-flags country-flags--CR"></span>
1754                <span>Costa Rica (USD $)</span>
1755              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CI" >
1756                <span class="country-flags country-flags--CI"></span>
1757                <span>Côte d’Ivoire (USD $)</span>
1758              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="HR" >
1759                <span class="country-flags country-flags--HR"></span>
1760                <span>Croatia (USD $)</span>
1761              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CW" >
1762                <span class="country-flags country-flags--CW"></span>
1763                <span>Curaçao (USD $)</span>
1764              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CY" >
1765                <span class="country-flags country-flags--CY"></span>
1766                <span>Cyprus (USD $)</span>
1767              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CZ" >
1768                <span class="country-flags country-flags--CZ"></span>
1769                <span>Czechia (USD $)</span>
1770              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="DK" >
1771                <span class="country-flags country-flags--DK"></span>
1772                <span>Denmark (USD $)</span>
1773              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="DJ" >
1774                <span class="country-flags country-flags--DJ"></span>
1775                <span>Djibouti (USD $)</span>
1776              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="DM" >
1777                <span class="country-flags country-flags--DM"></span>
1778                <span>Dominica (USD $)</span>
1779              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="DO" >
1780                <span class="country-flags country-flags--DO"></span>
1781                <span>Dominican Republic (USD $)</span>
1782              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="EC" >
1783                <span class="country-flags country-flags--EC"></span>
1784                <span>Ecuador (USD $)</span>
1785              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="EG" >
1786                <span class="country-flags country-flags--EG"></span>
1787                <span>Egypt (USD $)</span>
1788              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SV" >
1789                <span class="country-flags country-flags--SV"></span>
1790                <span>El Salvador (USD $)</span>
1791              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GQ" >
1792                <span class="country-flags country-flags--GQ"></span>
1793                <span>Equatorial Guinea (USD $)</span>
1794              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ER" >
1795                <span class="country-flags country-flags--ER"></span>
1796                <span>Eritrea (USD $)</span>
1797              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="EE" >
1798                <span class="country-flags country-flags--EE"></span>
1799                <span>Estonia (USD $)</span>
1800              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SZ" >
1801                <span class="country-flags country-flags--SZ"></span>
1802                <span>Eswatini (USD $)</span>
1803              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ET" >
1804                <span class="country-flags country-flags--ET"></span>
1805                <span>Ethiopia (USD $)</span>
1806              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="FK" >
1807                <span class="country-flags country-flags--FK"></span>
1808                <span>Falkland Islands (USD $)</span>
1809              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="FO" >
1810                <span class="country-flags country-flags--FO"></span>
1811                <span>Faroe Islands (USD $)</span>
1812              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="FJ" >
1813                <span class="country-flags country-flags--FJ"></span>
1814                <span>Fiji (USD $)</span>
1815              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="FI" >
1816                <span class="country-flags country-flags--FI"></span>
1817                <span>Finland (USD $)</span>
1818              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="FR" >
1819                <span class="country-flags country-flags--FR"></span>
1820                <span>France (USD $)</span>
1821              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GF" >
1822                <span class="country-flags country-flags--GF"></span>
1823                <span>French Guiana (USD $)</span>
1824              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PF" >
1825                <span class="country-flags country-flags--PF"></span>
1826                <span>French Polynesia (USD $)</span>
1827              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TF" >
1828                <span class="country-flags country-flags--TF"></span>
1829                <span>French Southern Territories (USD $)</span>
1830              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GA" >
1831                <span class="country-flags country-flags--GA"></span>
1832                <span>Gabon (USD $)</span>
1833              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GM" >
1834                <span class="country-flags country-flags--GM"></span>
1835                <span>Gambia (USD $)</span>
1836              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GE" >
1837                <span class="country-flags country-flags--GE"></span>
1838                <span>Georgia (USD $)</span>
1839              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="DE" >
1840                <span class="country-flags country-flags--DE"></span>
1841                <span>Germany (USD $)</span>
1842              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GH" >
1843                <span class="country-flags country-flags--GH"></span>
1844                <span>Ghana (USD $)</span>
1845              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GI" >
1846                <span class="country-flags country-flags--GI"></span>
1847                <span>Gibraltar (USD $)</span>
1848              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GR" >
1849                <span class="country-flags country-flags--GR"></span>
1850                <span>Greece (USD $)</span>
1851              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GL" >
1852                <span class="country-flags country-flags--GL"></span>
1853                <span>Greenland (USD $)</span>
1854              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GD" >
1855                <span class="country-flags country-flags--GD"></span>
1856                <span>Grenada (USD $)</span>
1857              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GP" >
1858                <span class="country-flags country-flags--GP"></span>
1859                <span>Guadeloupe (USD $)</span>
1860              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GT" >
1861                <span class="country-flags country-flags--GT"></span>
1862                <span>Guatemala (USD $)</span>
1863              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GG" >
1864                <span class="country-flags country-flags--GG"></span>
1865                <span>Guernsey (USD $)</span>
1866              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GN" >
1867                <span class="country-flags country-flags--GN"></span>
1868                <span>Guinea (USD $)</span>
1869              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GW" >
1870                <span class="country-flags country-flags--GW"></span>
1871                <span>Guinea-Bissau (USD $)</span>
1872              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GY" >
1873                <span class="country-flags country-flags--GY"></span>
1874                <span>Guyana (USD $)</span>
1875              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="HT" >
1876                <span class="country-flags country-flags--HT"></span>
1877                <span>Haiti (USD $)</span>
1878              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="HN" >
1879                <span class="country-flags country-flags--HN"></span>
1880                <span>Honduras (USD $)</span>
1881              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="HK" >
1882                <span class="country-flags country-flags--HK"></span>
1883                <span>Hong Kong SAR (USD $)</span>
1884              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="HU" >
1885                <span class="country-flags country-flags--HU"></span>
1886                <span>Hungary (USD $)</span>
1887              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IS" >
1888                <span class="country-flags country-flags--IS"></span>
1889                <span>Iceland (USD $)</span>
1890              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IN" >
1891                <span class="country-flags country-flags--IN"></span>
1892                <span>India (USD $)</span>
1893              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ID" >
1894                <span class="country-flags country-flags--ID"></span>
1895                <span>Indonesia (USD $)</span>
1896              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IQ" >
1897                <span class="country-flags country-flags--IQ"></span>
1898                <span>Iraq (USD $)</span>
1899              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IE" >
1900                <span class="country-flags country-flags--IE"></span>
1901                <span>Ireland (USD $)</span>
1902              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IM" >
1903                <span class="country-flags country-flags--IM"></span>
1904                <span>Isle of Man (USD $)</span>
1905              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IL" >
1906                <span class="country-flags country-flags--IL"></span>
1907                <span>Israel (USD $)</span>
1908              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IT" >
1909                <span class="country-flags country-flags--IT"></span>
1910                <span>Italy (USD $)</span>
1911              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="JM" >
1912                <span class="country-flags country-flags--JM"></span>
1913                <span>Jamaica (USD $)</span>
1914              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="JP" >
1915                <span class="country-flags country-flags--JP"></span>
1916                <span>Japan (USD $)</span>
1917              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="JE" >
1918                <span class="country-flags country-flags--JE"></span>
1919                <span>Jersey (USD $)</span>
1920              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="JO" >
1921                <span class="country-flags country-flags--JO"></span>
1922                <span>Jordan (USD $)</span>
1923              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KZ" >
1924                <span class="country-flags country-flags--KZ"></span>
1925                <span>Kazakhstan (USD $)</span>
1926              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KE" >
1927                <span class="country-flags country-flags--KE"></span>
1928                <span>Kenya (USD $)</span>
1929              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KI" >
1930                <span class="country-flags country-flags--KI"></span>
1931                <span>Kiribati (USD $)</span>
1932              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="XK" >
1933                <span class="country-flags country-flags--XK"></span>
1934                <span>Kosovo (USD $)</span>
1935              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KW" >
1936                <span class="country-flags country-flags--KW"></span>
1937                <span>Kuwait (USD $)</span>
1938              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KG" >
1939                <span class="country-flags country-flags--KG"></span>
1940                <span>Kyrgyzstan (USD $)</span>
1941              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LA" >
1942                <span class="country-flags country-flags--LA"></span>
1943                <span>Laos (USD $)</span>
1944              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LV" >
1945                <span class="country-flags country-flags--LV"></span>
1946                <span>Latvia (USD $)</span>
1947              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LB" >
1948                <span class="country-flags country-flags--LB"></span>
1949                <span>Lebanon (USD $)</span>
1950              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LS" >
1951                <span class="country-flags country-flags--LS"></span>
1952                <span>Lesotho (USD $)</span>
1953              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LR" >
1954                <span class="country-flags country-flags--LR"></span>
1955                <span>Liberia (USD $)</span>
1956              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LY" >
1957                <span class="country-flags country-flags--LY"></span>
1958                <span>Libya (USD $)</span>
1959              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LI" >
1960                <span class="country-flags country-flags--LI"></span>
1961                <span>Liechtenstein (USD $)</span>
1962              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LT" >
1963                <span class="country-flags country-flags--LT"></span>
1964                <span>Lithuania (USD $)</span>
1965              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LU" >
1966                <span class="country-flags country-flags--LU"></span>
1967                <span>Luxembourg (USD $)</span>
1968              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MO" >
1969                <span class="country-flags country-flags--MO"></span>
1970                <span>Macao SAR (USD $)</span>
1971              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MG" >
1972                <span class="country-flags country-flags--MG"></span>
1973                <span>Madagascar (USD $)</span>
1974              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MW" >
1975                <span class="country-flags country-flags--MW"></span>
1976                <span>Malawi (USD $)</span>
1977              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MY" >
1978                <span class="country-flags country-flags--MY"></span>
1979                <span>Malaysia (USD $)</span>
1980              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MV" >
1981                <span class="country-flags country-flags--MV"></span>
1982                <span>Maldives (USD $)</span>
1983              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ML" >
1984                <span class="country-flags country-flags--ML"></span>
1985                <span>Mali (USD $)</span>
1986              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MT" >
1987                <span class="country-flags country-flags--MT"></span>
1988                <span>Malta (USD $)</span>
1989              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MQ" >
1990                <span class="country-flags country-flags--MQ"></span>
1991                <span>Martinique (USD $)</span>
1992              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MR" >
1993                <span class="country-flags country-flags--MR"></span>
1994                <span>Mauritania (USD $)</span>
1995              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MU" >
1996                <span class="country-flags country-flags--MU"></span>
1997                <span>Mauritius (USD $)</span>
1998              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="YT" >
1999                <span class="country-flags country-flags--YT"></span>
2000                <span>Mayotte (USD $)</span>
2001              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MX" >
2002                <span class="country-flags country-flags--MX"></span>
2003                <span>Mexico (USD $)</span>
2004              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MD" >
2005                <span class="country-flags country-flags--MD"></span>
2006                <span>Moldova (USD $)</span>
2007              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MC" >
2008                <span class="country-flags country-flags--MC"></span>
2009                <span>Monaco (USD $)</span>
2010              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MN" >
2011                <span class="country-flags country-flags--MN"></span>
2012                <span>Mongolia (USD $)</span>
2013              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ME" >
2014                <span class="country-flags country-flags--ME"></span>
2015                <span>Montenegro (USD $)</span>
2016              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MS" >
2017                <span class="country-flags country-flags--MS"></span>
2018                <span>Montserrat (USD $)</span>
2019              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MA" >
2020                <span class="country-flags country-flags--MA"></span>
2021                <span>Morocco (USD $)</span>
2022              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MZ" >
2023                <span class="country-flags country-flags--MZ"></span>
2024                <span>Mozambique (USD $)</span>
2025              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MM" >
2026                <span class="country-flags country-flags--MM"></span>
2027                <span>Myanmar (Burma) (USD $)</span>
2028              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NA" >
2029                <span class="country-flags country-flags--NA"></span>
2030                <span>Namibia (USD $)</span>
2031              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NR" >
2032                <span class="country-flags country-flags--NR"></span>
2033                <span>Nauru (USD $)</span>
2034              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NP" >
2035                <span class="country-flags country-flags--NP"></span>
2036                <span>Nepal (USD $)</span>
2037              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NL" >
2038                <span class="country-flags country-flags--NL"></span>
2039                <span>Netherlands (USD $)</span>
2040              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NC" >
2041                <span class="country-flags country-flags--NC"></span>
2042                <span>New Caledonia (USD $)</span>
2043              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NZ" >
2044                <span class="country-flags country-flags--NZ"></span>
2045                <span>New Zealand (USD $)</span>
2046              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NI" >
2047                <span class="country-flags country-flags--NI"></span>
2048                <span>Nicaragua (USD $)</span>
2049              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NE" >
2050                <span class="country-flags country-flags--NE"></span>
2051                <span>Niger (USD $)</span>
2052              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NG" >
2053                <span class="country-flags country-flags--NG"></span>
2054                <span>Nigeria (USD $)</span>
2055              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NU" >
2056                <span class="country-flags country-flags--NU"></span>
2057                <span>Niue (USD $)</span>
2058              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NF" >
2059                <span class="country-flags country-flags--NF"></span>
2060                <span>Norfolk Island (USD $)</span>
2061              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MK" >
2062                <span class="country-flags country-flags--MK"></span>
2063                <span>North Macedonia (USD $)</span>
2064              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NO" >
2065                <span class="country-flags country-flags--NO"></span>
2066                <span>Norway (USD $)</span>
2067              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="OM" >
2068                <span class="country-flags country-flags--OM"></span>
2069                <span>Oman (USD $)</span>
2070              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PK" >
2071                <span class="country-flags country-flags--PK"></span>
2072                <span>Pakistan (USD $)</span>
2073              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PS" >
2074                <span class="country-flags country-flags--PS"></span>
2075                <span>Palestinian Territories (USD $)</span>
2076              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PA" >
2077                <span class="country-flags country-flags--PA"></span>
2078                <span>Panama (USD $)</span>
2079              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PG" >
2080                <span class="country-flags country-flags--PG"></span>
2081                <span>Papua New Guinea (USD $)</span>
2082              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PY" >
2083                <span class="country-flags country-flags--PY"></span>
2084                <span>Paraguay (USD $)</span>
2085              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PE" >
2086                <span class="country-flags country-flags--PE"></span>
2087                <span>Peru (USD $)</span>
2088              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PH" >
2089                <span class="country-flags country-flags--PH"></span>
2090                <span>Philippines (USD $)</span>
2091              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PN" >
2092                <span class="country-flags country-flags--PN"></span>
2093                <span>Pitcairn Islands (USD $)</span>
2094              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PL" >
2095                <span class="country-flags country-flags--PL"></span>
2096                <span>Poland (USD $)</span>
2097              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PT" >
2098                <span class="country-flags country-flags--PT"></span>
2099                <span>Portugal (USD $)</span>
2100              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="QA" >
2101                <span class="country-flags country-flags--QA"></span>
2102                <span>Qatar (USD $)</span>
2103              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="RE" >
2104                <span class="country-flags country-flags--RE"></span>
2105                <span>Réunion (USD $)</span>
2106              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="RO" >
2107                <span class="country-flags country-flags--RO"></span>
2108                <span>Romania (USD $)</span>
2109              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="RU" >
2110                <span class="country-flags country-flags--RU"></span>
2111                <span>Russia (USD $)</span>
2112              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="RW" >
2113                <span class="country-flags country-flags--RW"></span>
2114                <span>Rwanda (USD $)</span>
2115              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="WS" >
2116                <span class="country-flags country-flags--WS"></span>
2117                <span>Samoa (USD $)</span>
2118              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SM" >
2119                <span class="country-flags country-flags--SM"></span>
2120                <span>San Marino (USD $)</span>
2121              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ST" >
2122                <span class="country-flags country-flags--ST"></span>
2123                <span>São Tomé &amp; Príncipe (USD $)</span>
2124              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SA" >
2125                <span class="country-flags country-flags--SA"></span>
2126                <span>Saudi Arabia (USD $)</span>
2127              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SN" >
2128                <span class="country-flags country-flags--SN"></span>
2129                <span>Senegal (USD $)</span>
2130              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="RS" >
2131                <span class="country-flags country-flags--RS"></span>
2132                <span>Serbia (USD $)</span>
2133              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SC" >
2134                <span class="country-flags country-flags--SC"></span>
2135                <span>Seychelles (USD $)</span>
2136              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SL" >
2137                <span class="country-flags country-flags--SL"></span>
2138                <span>Sierra Leone (USD $)</span>
2139              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SG" >
2140                <span class="country-flags country-flags--SG"></span>
2141                <span>Singapore (USD $)</span>
2142              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SX" >
2143                <span class="country-flags country-flags--SX"></span>
2144                <span>Sint Maarten (USD $)</span>
2145              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SK" >
2146                <span class="country-flags country-flags--SK"></span>
2147                <span>Slovakia (USD $)</span>
2148              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SI" >
2149                <span class="country-flags country-flags--SI"></span>
2150                <span>Slovenia (USD $)</span>
2151              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SB" >
2152                <span class="country-flags country-flags--SB"></span>
2153                <span>Solomon Islands (USD $)</span>
2154              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SO" >
2155                <span class="country-flags country-flags--SO"></span>
2156                <span>Somalia (USD $)</span>
2157              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ZA" >
2158                <span class="country-flags country-flags--ZA"></span>
2159                <span>South Africa (USD $)</span>
2160              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GS" >
2161                <span class="country-flags country-flags--GS"></span>
2162                <span>South Georgia &amp; South Sandwich Islands (USD $)</span>
2163              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KR" >
2164                <span class="country-flags country-flags--KR"></span>
2165                <span>South Korea (USD $)</span>
2166              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SS" >
2167                <span class="country-flags country-flags--SS"></span>
2168                <span>South Sudan (USD $)</span>
2169              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ES" >
2170                <span class="country-flags country-flags--ES"></span>
2171                <span>Spain (USD $)</span>
2172              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LK" >
2173                <span class="country-flags country-flags--LK"></span>
2174                <span>Sri Lanka (USD $)</span>
2175              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BL" >
2176                <span class="country-flags country-flags--BL"></span>
2177                <span>St. Barthélemy (USD $)</span>
2178              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SH" >
2179                <span class="country-flags country-flags--SH"></span>
2180                <span>St. Helena (USD $)</span>
2181              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KN" >
2182                <span class="country-flags country-flags--KN"></span>
2183                <span>St. Kitts &amp; Nevis (USD $)</span>
2184              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LC" >
2185                <span class="country-flags country-flags--LC"></span>
2186                <span>St. Lucia (USD $)</span>
2187              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MF" >
2188                <span class="country-flags country-flags--MF"></span>
2189                <span>St. Martin (USD $)</span>
2190              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PM" >
2191                <span class="country-flags country-flags--PM"></span>
2192                <span>St. Pierre &amp; Miquelon (USD $)</span>
2193              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="VC" >
2194                <span class="country-flags country-flags--VC"></span>
2195                <span>St. Vincent &amp; Grenadines (USD $)</span>
2196              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SD" >
2197                <span class="country-flags country-flags--SD"></span>
2198                <span>Sudan (USD $)</span>
2199              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SR" >
2200                <span class="country-flags country-flags--SR"></span>
2201                <span>Suriname (USD $)</span>
2202              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SJ" >
2203                <span class="country-flags country-flags--SJ"></span>
2204                <span>Svalbard &amp; Jan Mayen (USD $)</span>
2205              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SE" >
2206                <span class="country-flags country-flags--SE"></span>
2207                <span>Sweden (USD $)</span>
2208              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CH" >
2209                <span class="country-flags country-flags--CH"></span>
2210                <span>Switzerland (USD $)</span>
2211              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TW" >
2212                <span class="country-flags country-flags--TW"></span>
2213                <span>Taiwan (USD $)</span>
2214              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TJ" >
2215                <span class="country-flags country-flags--TJ"></span>
2216                <span>Tajikistan (USD $)</span>
2217              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TZ" >
2218                <span class="country-flags country-flags--TZ"></span>
2219                <span>Tanzania (USD $)</span>
2220              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TH" >
2221                <span class="country-flags country-flags--TH"></span>
2222                <span>Thailand (USD $)</span>
2223              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TL" >
2224                <span class="country-flags country-flags--TL"></span>
2225                <span>Timor-Leste (USD $)</span>
2226              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TG" >
2227                <span class="country-flags country-flags--TG"></span>
2228                <span>Togo (USD $)</span>
2229              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TK" >
2230                <span class="country-flags country-flags--TK"></span>
2231                <span>Tokelau (USD $)</span>
2232              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TO" >
2233                <span class="country-flags country-flags--TO"></span>
2234                <span>Tonga (USD $)</span>
2235              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TT" >
2236                <span class="country-flags country-flags--TT"></span>
2237                <span>Trinidad &amp; Tobago (USD $)</span>
2238              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TA" >
2239                <span class="country-flags country-flags--TA"></span>
2240                <span>Tristan da Cunha (USD $)</span>
2241              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TN" >
2242                <span class="country-flags country-flags--TN"></span>
2243                <span>Tunisia (USD $)</span>
2244              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TR" >
2245                <span class="country-flags country-flags--TR"></span>
2246                <span>Türkiye (USD $)</span>
2247              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TM" >
2248                <span class="country-flags country-flags--TM"></span>
2249                <span>Turkmenistan (USD $)</span>
2250              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TC" >
2251                <span class="country-flags country-flags--TC"></span>
2252                <span>Turks &amp; Caicos Islands (USD $)</span>
2253              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TV" >
2254                <span class="country-flags country-flags--TV"></span>
2255                <span>Tuvalu (USD $)</span>
2256              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="UM" >
2257                <span class="country-flags country-flags--UM"></span>
2258                <span>U.S. Outlying Islands (USD $)</span>
2259              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="UG" >
2260                <span class="country-flags country-flags--UG"></span>
2261                <span>Uganda (USD $)</span>
2262              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="UA" >
2263                <span class="country-flags country-flags--UA"></span>
2264                <span>Ukraine (USD $)</span>
2265              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AE" >
2266                <span class="country-flags country-flags--AE"></span>
2267                <span>United Arab Emirates (USD $)</span>
2268              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="US" aria-selected="true">
2269                <span class="country-flags country-flags--US"></span>
2270                <span>United States (USD $)</span>
2271              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="UY" >
2272                <span class="country-flags country-flags--UY"></span>
2273                <span>Uruguay (USD $)</span>
2274              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="UZ" >
2275                <span class="country-flags country-flags--UZ"></span>
2276                <span>Uzbekistan (USD $)</span>
2277              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="VU" >
2278                <span class="country-flags country-flags--VU"></span>
2279                <span>Vanuatu (USD $)</span>
2280              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="VA" >
2281                <span class="country-flags country-flags--VA"></span>
2282                <span>Vatican City (USD $)</span>
2283              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="VE" >
2284                <span class="country-flags country-flags--VE"></span>
2285                <span>Venezuela (USD $)</span>
2286              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="VN" >
2287                <span class="country-flags country-flags--VN"></span>
2288                <span>Vietnam (USD $)</span>
2289              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="WF" >
2290                <span class="country-flags country-flags--WF"></span>
2291                <span>Wallis &amp; Futuna (USD $)</span>
2292              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="EH" >
2293                <span class="country-flags country-flags--EH"></span>
2294                <span>Western Sahara (USD $)</span>
2295              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="YE" >
2296                <span class="country-flags country-flags--YE"></span>
2297                <span>Yemen (USD $)</span>
2298              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ZM" >
2299                <span class="country-flags country-flags--ZM"></span>
2300                <span>Zambia (USD $)</span>
2301              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ZW" >
2302                <span class="country-flags country-flags--ZW"></span>
2303                <span>Zimbabwe (USD $)</span>
2304              </button></x-listbox></form></x-popover>
2305    </div></div><a href="/search" class="hidden tap-area sm:block" aria-controls="search-drawer">
2306            <span class="sr-only">Open search</span><svg role="presentation" stroke-width="2" focusable="false" width="22" height="22" class="icon icon-search" viewBox="0 0 22 22">
2307        <circle cx="11" cy="10" r="7" fill="none" stroke="currentColor"></circle>
2308        <path d="m16 15 3 3" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path>
2309      </svg></a><a href="/account/login" class="hidden tap-area sm:block">
2310              <span class="sr-only">Open account page</span><svg role="presentation" stroke-width="2" focusable="false" width="22" height="22" class="icon icon-account" viewBox="0 0 22 22">
2311        <circle cx="11" cy="7" r="4" fill="none" stroke="currentColor"></circle>
2312        <path d="M3.5 19c1.421-2.974 4.247-5 7.5-5s6.079 2.026 7.5 5" fill="none" stroke="currentColor" stroke-linecap="round"></path>
2313      </svg></a><a href="/cart" data-no-instant class="relative tap-area" aria-controls="cart-drawer">
2314            <span class="sr-only">Open cart</span><svg role="presentation" stroke-width="2" focusable="false" width="22" height="22" class="icon icon-cart" viewBox="0 0 22 22">
2315            <path d="M14.666 7.333a3.666 3.666 0 1 1-7.333 0M3.33 6.785l-.642 7.7c-.137 1.654-.206 2.48.073 3.119a2.75 2.75 0 0 0 1.21 1.314c.612.332 1.442.332 3.102.332h7.853c1.66 0 2.49 0 3.103-.332a2.75 2.75 0 0 0 1.21-1.314c.279-.638.21-1.465.072-3.12l-.642-7.7c-.118-1.423-.178-2.134-.493-2.673A2.75 2.75 0 0 0 16.99 3.02c-.563-.269-1.277-.269-2.705-.269h-6.57c-1.428 0-2.142 0-2.705.27A2.75 2.75 0 0 0 3.823 4.11c-.315.539-.374 1.25-.493 2.674Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path>
2316          </svg><div class="header__cart-count">
2317              <cart-count class="count-bubble opacity-0" aria-hidden="true">0</cart-count>
2318            </div>
2319          </a>
2320        </div>
2321      </div>
2322    </div>
2323  </store-header>
2324</height-observer><navigation-drawer mobile-opening="bottom" open-from="left" id="header-sidebar-menu" class="navigation-drawer drawer lg:hidden" >
2325    <button is="close-button" aria-label="Close"class="sm-max:hidden"><svg role="presentation" stroke-width="2" focusable="false" width="19" height="19" class="icon icon-close" viewBox="0 0 24 24">
2326        <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path>
2327      </svg></button><div class="panel-list__wrapper">
2328  <div class="panel">
2329    <div class="panel__wrapper" >
2330      <div class="panel__scroller v-stack gap-8"><ul class="v-stack gap-4">
2331<li class="h3 sm:h4"><a href="/collections/firmtech" class="group block w-full">
2332                  <span><span class="reversed-link">Shop</span></span>
2333                </a></li>
2334<li class="h3 sm:h4"><a href="/pages/health" class="group block w-full">
2335                  <span><span class="reversed-link">Health</span></span>
2336                </a></li>
2337<li class="h3 sm:h4"><a href="/pages/pleasure" class="group block w-full">
2338                  <span><span class="reversed-link">Pleasure</span></span>
2339                </a></li>
2340<li class="h3 sm:h4"><a href="/pages/science" class="group block w-full">
2341                  <span><span class="reversed-link">Science</span></span>
2342                </a></li>
2343<li class="h3 sm:h4"><a href="/blogs/news" class="group block w-full">
2344                  <span><span class="reversed-link">Blog</span></span>
2345                </a></li>
2346<li class="h3 sm:h4"><a href="https://shassessment.myfirmtech.com/?utm_medium=organic&utm_source=assessment&utm_campaign=myfirmtech" class="group block w-full">
2347                  <span><span class="reversed-link">Free Assessment</span></span>
2348                </a></li>
2349<li class="h3 sm:h4"><a href="/pages/press" class="group block w-full">
2350                  <span><span class="reversed-link">Press</span></span>
2351                </a></li></ul></div><div class="panel-footer v-stack gap-5"><ul class="social-media " role="list"><li>
2352      <a href="https://x.com/myfirmtech" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on Twitter"><svg role="presentation" focusable="false" width="27" height="27" class="icon icon-twitter" viewBox="0 0 24 24">
2353        <path d="M16.94 4h2.715l-5.93 6.777L20.7 20h-5.462l-4.278-5.593L6.065 20H3.35l6.342-7.25L3 4h5.6l3.868 5.113L16.94 4Zm-.952 14.375h1.504L7.784 5.54H6.17l9.818 12.836Z" fill="currentColor"/>
2354      </svg></a>
2355    </li><li>
2356      <a href="https://www.instagram.com/myfirmtech/" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on Instagram"><svg role="presentation" focusable="false" width="27" height="27" class="icon icon-instagram" viewBox="0 0 24 24">
2357        <path fill-rule="evenodd" clip-rule="evenodd" d="M12 2.4c-2.607 0-2.934.011-3.958.058-1.022.046-1.72.209-2.33.446a4.705 4.705 0 0 0-1.7 1.107 4.706 4.706 0 0 0-1.108 1.7c-.237.611-.4 1.31-.446 2.331C2.41 9.066 2.4 9.392 2.4 12c0 2.607.011 2.934.058 3.958.046 1.022.209 1.72.446 2.33a4.706 4.706 0 0 0 1.107 1.7c.534.535 1.07.863 1.7 1.108.611.237 1.309.4 2.33.446 1.025.
2357047 1.352.058 3.959.058s2.934-.011 3.958-.058c1.022-.046 1.72-.209 2.33-.446a4.706 4.706 0 0 0 1.7-1.107 4.706 4.706 0 0 0 1.108-1.7c.237-.611.4-1.31.446-2.33.047-1.025.058-1.352.058-3.959s-.011-2.934-.058-3.958c-.047-1.022-.209-1.72-.446-2.33a4.706 4.706 0 0 0-1.107-1.7 4.705 4.705 0 0 0-1.7-1.108c-.611-.237-1.31-.4-2.331-.446C14.934 2.41 14.608 2.4 12 2.4Zm0 1.73c2.563 0 2.867.01 3.88.056.935.042 1.443.199 1.782.33.448.174.768.382 1.104.718.336.336.544.656.718 1.104.131.338.287.847.33 1.783.046 1.012.056 1.316.056 3.879 0 2.563-.01 2.867-.056 3.88-.043.935-.199 1.444-.33 1.782a2.974 2.974 0 0 1-.719 1.104 2.974 2.974 0 0 1-1.103.718c-.339.131-.847.288-1.783.33-1.012.046-1.316.056-3.88.056-2.563 0-2.866-.01-3.878-.056-.936-.042-1.445-.199-1.783-.33a2.974 2.974 0 0 1-1.104-.718 2.974 2.974 0 0 1-.718-1.104c-.131-.338-.288-.847-.33-1.783-.047-1.012-.056-1.316-.056-3.879 0-2.563.01-2.867.056-3.88.042-.935.199-1.443.33-1.782.174-.448.382-.768.718-1.104a2.974 2.974 0 0 1 1.104-.718c.338-.131.847-.288 1.783-.33C9.133 4.14 9.437 4.13 12 4.13Zm0 11.07a3.2 3.2 0 1 1 0-6.4 3.2 3.2 0 0 1 0 6.4Zm0-8.13a4.93 4.93 0 1 0 0 9.86 4.93 4.93 0 0 0 0-9.86Zm6.276-.194a1.152 1.152 0 1 1-2.304 0 1.152 1.152 0 0 1 2.304 0Z" fill="currentColor"/>
2358      </svg></a>
2359    </li><li>
2360      <a href="https://www.pinterest.com/MyFirmTech/" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on Pinterest"><svg role="presentation" focusable="false" width="27" height="27" class="icon icon-pinterest" viewBox="0 0 24 24">
2361        <path fill-rule="evenodd" clip-rule="evenodd" d="M11.765 2.401c3.59-.054 5.837 1.4 6.895 3.95.349.842.722 2.39.442 3.675-.112.512-.144 1.048-.295 1.53-.308.983-.708 1.853-1.238 2.603-.72 1.02-1.81 1.706-3.182 2.052-1.212.305-2.328-.152-2.976-.643-.206-.156-.483-.36-.56-.643h-.029c-.046.515-.244 1.062-.383 1.531-.193.65-.23 1.321-.472 1.929a12.345 12.345 0 0 1-.942 1.868c-.184.302-.692 1.335-1.061 1.347-.04-.078-.057-.108-.06-.245-.118-.19-.035-.508-.087-.766-.082-.4-.145-1.123-.06-1.53v-.643c.096-.442.092-.894.207-1.317.25-.92.39-1.895.648-2.848.249-.915.477-1.916.678-2.847.045-.21-.21-.815-.265-1.041-.174-.713-.042-1.7.176-2.236.275-.674 1.08-1.703 2.122-1.439.838.212 1.371 1.118 1.09 2.266-.295 1.205-.677 2.284-.943 3.49-.068.311.05.641.118.827.248.672 1 1.324 2.004 1.072 1.52-.383 2.193-1.76 2.652-3.246.124-.402.109-.781.206-1.225.204-.935.118-2.331-.177-3.061-.472-1.17-1.353-1.92-2.563-2.328L12.707 4.3c-.56-.128-1.626.064-2.004.183-1.69.535-2.737 1.427-3.388 3.032-.222.546-.344 1.1-.383 1.868l-.03.276c.13.686.144 1.14.413 1.653.132.252.447.451.5.765.032.185-.104.464-.147.613-.065.224-.041.48-.147.673-.192.349-.714.087-.943-.061-1.192-.77-2.175-2.995-1.62-5.144.085-.332.09-.62.206-.919.723-1.844 1.802-2.978 3.359-3.95.583-.364 1.37-.544 2.092-.734l1.149-.154Z" fill="currentColor"/>
2362      </svg></a>
2363    </li><li>
2364      <a href="https://www.youtube.com/channel/UC46J3ibyYyQNPBr5T58DpFg" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on YouTube"><svg role="presentation" focusable="false" width="27" height="27" class="icon icon-youtube" viewBox="0 0 24 24">
2365        <path fill-rule="evenodd" clip-rule="evenodd" d="M20.44 5.243c.929.244 1.66.963 1.909 1.876.451 1.654.451 5.106.451 5.106s0 3.452-.451 5.106a2.681 2.681 0 0 1-1.91 1.876c-1.684.443-8.439.443-8.439.443s-6.754 0-8.439-.443a2.682 2.682 0 0 1-1.91-1.876c-.45-1.654-.45-5.106-.45-5.106s0-3.452.45-5.106a2.681 2.681 0 0 1 1.91-1.876c1.685-.443 8.44-.443 8.44-.443s6.754 0 8.438.443Zm-5.004 6.982L9.792 15.36V9.091l5.646 3.134Z" fill="currentColor"/>
2366      </svg></a>
2367    </li><li>
2368      <a href="https://www.linkedin.com/company/myfirmtech/" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on LinkedIn"><svg role="presentation" focusable="false" width="27" height="27" class="icon icon-linkedin" viewBox="0 0 24 24">
2369        <path fill-rule="evenodd" clip-rule="evenodd" d="M7.349 5.478a1.875 1.875 0 1 0-3.749 0 1.875 1.875 0 1 0 3.749 0ZM7.092 19.2H3.857V8.78h3.235V19.2ZM12.22 8.78H9.121V19.2h3.228v-5.154c0-1.36.257-2.676 1.94-2.676 1.658 0 1.68 1.554 1.68 2.763V19.2H19.2v-5.715c0-2.806-.605-4.963-3.877-4.963-1.573 0-2.629.863-3.06 1.683h-.044V8.78Z" fill="currentColor"/>
2370      </svg></a>
2371    </li></ul><div class="panel-footer__localization-wrapper h-stack gap-6 border-t md:hidden"><link rel="stylesheet" href="//myfirmtech.com/cdn/shop/t/24/assets/country-flags.css?v=133253664215562886901772071395" media="print" onload="this.media='all'; this.onload = null"><div class="relative">
2372      <button type="button" class="text-with-icon gap-2.5 group" aria-controls="popover-localization-form-country--sections--17107269615766__header" aria-expanded="false">
2373        <div class="h-stack gap-2"><span class="country-flags country-flags--US"></span><span class="bold text-sm">USD $</span>
2374        </div><svg role="presentation" focusable="false" width="10" height="7" class="icon icon-chevron-bottom" viewBox="0 0 10 7">
2375        <path d="m1 1 4 4 4-4" fill="none" stroke="currentColor" stroke-width="2"></path>
2376      </svg></button>
2377
2378      <x-popover id="popover-localization-form-country--sections--17107269615766__header" initial-focus="[aria-selected='true']" anchor-horizontal="end" anchor-vertical="start" class="popover">
2379        <p class="h5" slot="title">Country</p><form method="post" action="/localization" id="localization-form-country--sections--17107269615766__header" accept-charset="UTF-8" class="shopify-localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/" /><x-listbox class="popover-listbox popover-listbox--sm" role="listbox"><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AF" >
2380                <span class="country-flags country-flags--AF"></span>
2381                <span>Afghanistan (USD $)</span>
2382              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AX" >
2383                <span class="country-flags country-flags--AX"></span>
2384                <span>Åland Islands (USD $)</span>
2385              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AL" >
2386                <span class="country-flags country-flags--AL"></span>
2387                <span>Albania (USD $)</span>
2388              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="DZ" >
2389                <span class="country-flags country-flags--DZ"></span>
2390                <span>Algeria (USD $)</span>
2391              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AD" >
2392                <span class="country-flags country-flags--AD"></span>
2393                <span>Andorra (USD $)</span>
2394              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AO" >
2395                <span class="country-flags country-flags--AO"></span>
2396                <span>Angola (USD $)</span>
2397              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AI" >
2398                <span class="country-flags country-flags--AI"></span>
2399                <span>Anguilla (USD $)</span>
2400              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AG" >
2401                <span class="country-flags country-flags--AG"></span>
2402                <span>Antigua &amp; Barbuda (USD $)</span>
2403              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AR" >
2404                <span class="country-flags country-flags--AR"></span>
2405                <span>Argentina (USD $)</span>
2406              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AM" >
2407                <span class="country-flags country-flags--AM"></span>
2408                <span>Armenia (USD $)</span>
2409              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AW" >
2410                <span class="country-flags country-flags--AW"></span>
2411                <span>Aruba (USD $)</span>
2412              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AC" >
2413                <span class="country-flags country-flags--AC"></span>
2414                <span>Ascension Island (USD $)</span>
2415              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AU" >
2416                <span class="country-flags country-flags--AU"></span>
2417                <span>Australia (USD $)</span>
2418              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AT" >
2419                <span class="country-flags country-flags--AT"></span>
2420                <span>Austria (USD $)</span>
2421              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AZ" >
2422                <span class="country-flags country-flags--AZ"></span>
2423                <span>Azerbaijan (USD $)</span>
2424              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BS" >
2425                <span class="country-flags country-flags--BS"></span>
2426                <span>Bahamas (USD $)</span>
2427              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BH" >
2428                <span class="country-flags country-flags--BH"></span>
2429                <span>Bahrain (USD $)</span>
2430              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BD" >
2431                <span class="country-flags country-flags--BD"></span>
2432                <span>Bangladesh (USD $)</span>
2433              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BB" >
2434                <span class="country-flags country-flags--BB"></span>
2435                <span>Barbados (USD $)</span>
2436              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BY" >
2437                <span class="country-flags country-flags--BY"></span>
2438                <span>Belarus (USD $)</span>
2439              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BE" >
2440                <span class="country-flags country-flags--BE"></span>
2441                <span>Belgium (USD $)</span>
2442              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BZ" >
2443                <span class="country-flags country-flags--BZ"></span>
2444                <span>Belize (USD $)</span>
2445              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BJ" >
2446                <span class="country-flags country-flags--BJ"></span>
2447                <span>Benin (USD $)</span>
2448              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BM" >
2449                <span class="country-flags country-flags--BM"></span>
2450                <span>Bermuda (USD $)</span>
2451              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BT" >
2452                <span class="country-flags country-flags--BT"></span>
2453                <span>Bhutan (USD $)</span>
2454              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BO" >
2455                <span class="country-flags country-flags--BO"></span>
2456                <span>Bolivia (USD $)</span>
2457              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BA" >
2458                <span class="country-flags country-flags--BA"></span>
2459                <span>Bosnia &amp; Herzegovina (USD $)</span>
2460              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BW" >
2461                <span class="country-flags country-flags--BW"></span>
2462                <span>Botswana (USD $)</span>
2463              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BR" >
2464                <span class="country-flags country-flags--BR"></span>
2465                <span>Brazil (USD $)</span>
2466              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IO" >
2467                <span class="country-flags country-flags--IO"></span>
2468                <span>British Indian Ocean Territory (USD $)</span>
2469              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="VG" >
2470                <span class="country-flags country-flags--VG"></span>
2471                <span>British Virgin Islands (USD $)</span>
2472              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BN" >
2473                <span class="country-flags country-flags--BN"></span>
2474                <span>Brunei (USD $)</span>
2475              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BG" >
2476                <span class="country-flags country-flags--BG"></span>
2477                <span>Bulgaria (USD $)</span>
2478              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BF" >
2479                <span class="country-flags country-flags--BF"></span>
2480                <span>Burkina Faso (USD $)</span>
2481              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BI" >
2482                <span class="country-flags country-flags--BI"></span>
2483                <span>Burundi (USD $)</span>
2484              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KH" >
2485                <span class="country-flags country-flags--KH"></span>
2486                <span>Cambodia (USD $)</span>
2487              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CM" >
2488                <span class="country-flags country-flags--CM"></span>
2489                <span>Cameroon (USD $)</span>
2490              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CA" >
2491                <span class="country-flags country-flags--CA"></span>
2492                <span>Canada (USD $)</span>
2493              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CV" >
2494                <span class="country-flags country-flags--CV"></span>
2495                <span>Cape Verde (USD $)</span>
2496              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BQ" >
2497                <span class="country-flags country-flags--BQ"></span>
2498                <span>Caribbean Netherlands (USD $)</span>
2499              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KY" >
2500                <span class="country-flags country-flags--KY"></span>
2501                <span>Cayman Islands (USD $)</span>
2502              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CF" >
2503                <span class="country-flags country-flags--CF"></span>
2504                <span>Central African Republic (USD $)</span>
2505              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TD" >
2506                <span class="country-flags country-flags--TD"></span>
2507                <span>Chad (USD $)</span>
2508              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CL" >
2509                <span class="country-flags country-flags--CL"></span>
2510                <span>Chile (USD $)</span>
2511              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CN" >
2512                <span class="country-flags country-flags--CN"></span>
2513                <span>China (USD $)</span>
2514              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CX" >
2515                <span class="country-flags country-flags--CX"></span>
2516                <span>Christmas Island (USD $)</span>
2517              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CC" >
2518                <span class="country-flags country-flags--CC"></span>
2519                <span>Cocos (Keeling) Islands (USD $)</span>
2520              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CO" >
2521                <span class="country-flags country-flags--CO"></span>
2522                <span>Colombia (USD $)</span>
2523              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KM" >
2524                <span class="country-flags country-flags--KM"></span>
2525                <span>Comoros (USD $)</span>
2526              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CG" >
2527                <span class="country-flags country-flags--CG"></span>
2528                <span>Congo - Brazzaville (USD $)</span>
2529              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CD" >
2530                <span class="country-flags country-flags--CD"></span>
2531                <span>Congo - Kinshasa (USD $)</span>
2532              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CK" >
2533                <span class="country-flags country-flags--CK"></span>
2534                <span>Cook Islands (USD $)</span>
2535              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CR" >
2536                <span class="country-flags country-flags--CR"></span>
2537                <span>Costa Rica (USD $)</span>
2538              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CI" >
2539                <span class="country-flags country-flags--CI"></span>
2540                <span>Côte d’Ivoire (USD $)</span>
2541              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="HR" >
2542                <span class="country-flags country-flags--HR"></span>
2543                <span>Croatia (USD $)</span>
2544              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CW" >
2545                <span class="country-flags country-flags--CW"></span>
2546                <span>Curaçao (USD $)</span>
2547              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CY" >
2548                <span class="country-flags country-flags--CY"></span>
2549                <span>Cyprus (USD $)</span>
2550              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CZ" >
2551                <span class="country-flags country-flags--CZ"></span>
2552                <span>Czechia (USD $)</span>
2553              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="DK" >
2554                <span class="country-flags country-flags--DK"></span>
2555                <span>Denmark (USD $)</span>
2556              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="DJ" >
2557                <span class="country-flags country-flags--DJ"></span>
2558                <span>Djibouti (USD $)</span>
2559              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="DM" >
2560                <span class="country-flags country-flags--DM"></span>
2561                <span>Dominica (USD $)</span>
2562              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="DO" >
2563                <span class="country-flags country-flags--DO"></span>
2564                <span>Dominican Republic (USD $)</span>
2565              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="EC" >
2566                <span class="country-flags country-flags--EC"></span>
2567                <span>Ecuador (USD $)</span>
2568              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="EG" >
2569                <span class="country-flags country-flags--EG"></span>
2570                <span>Egypt (USD $)</span>
2571              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SV" >
2572                <span class="country-flags country-flags--SV"></span>
2573                <span>El Salvador (USD $)</span>
2574              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GQ" >
2575                <span class="country-flags country-flags--GQ"></span>
2576                <span>Equatorial Guinea (USD $)</span>
2577              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ER" >
2578                <span class="country-flags country-flags--ER"></span>
2579                <span>Eritrea (USD $)</span>
2580              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="EE" >
2581                <span class="country-flags country-flags--EE"></span>
2582                <span>Estonia (USD $)</span>
2583              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SZ" >
2584                <span class="country-flags country-flags--SZ"></span>
2585                <span>Eswatini (USD $)</span>
2586              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ET" >
2587                <span class="country-flags country-flags--ET"></span>
2588                <span>Ethiopia (USD $)</span>
2589              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="FK" >
2590                <span class="country-flags country-flags--FK"></span>
2591                <span>Falkland Islands (USD $)</span>
2592              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="FO" >
2593                <span class="country-flags country-flags--FO"></span>
2594                <span>Faroe Islands (USD $)</span>
2595              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="FJ" >
2596                <span class="country-flags country-flags--FJ"></span>
2597                <span>Fiji (USD $)</span>
2598              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="FI" >
2599                <span class="country-flags country-flags--FI"></span>
2600                <span>Finland (USD $)</span>
2601              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="FR" >
2602                <span class="country-flags country-flags--FR"></span>
2603                <span>France (USD $)</span>
2604              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GF" >
2605                <span class="country-flags country-flags--GF"></span>
2606                <span>French Guiana (USD $)</span>
2607              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PF" >
2608                <span class="country-flags country-flags--PF"></span>
2609                <span>French Polynesia (USD $)</span>
2610              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TF" >
2611                <span class="country-flags country-flags--TF"></span>
2612                <span>French Southern Territories (USD $)</span>
2613              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GA" >
2614                <span class="country-flags country-flags--GA"></span>
2615                <span>Gabon (USD $)</span>
2616              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GM" >
2617                <span class="country-flags country-flags--GM"></span>
2618                <span>Gambia (USD $)</span>
2619              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GE" >
2620                <span class="country-flags country-flags--GE"></span>
2621                <span>Georgia (USD $)</span>
2622              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="DE" >
2623                <span class="country-flags country-flags--DE"></span>
2624                <span>Germany (USD $)</span>
2625              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GH" >
2626                <span class="country-flags country-flags--GH"></span>
2627                <span>Ghana (USD $)</span>
2628              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GI" >
2629                <span class="country-flags country-flags--GI"></span>
2630                <span>Gibraltar (USD $)</span>
2631              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GR" >
2632                <span class="country-flags country-flags--GR"></span>
2633                <span>Greece (USD $)</span>
2634              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GL" >
2635                <span class="country-flags country-flags--GL"></span>
2636                <span>Greenland (USD $)</span>
2637              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GD" >
2638                <span class="country-flags country-flags--GD"></span>
2639                <span>Grenada (USD $)</span>
2640              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GP" >
2641                <span class="country-flags country-flags--GP"></span>
2642                <span>Guadeloupe (USD $)</span>
2643              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GT" >
2644                <span class="country-flags country-flags--GT"></span>
2645                <span>Guatemala (USD $)</span>
2646              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GG" >
2647                <span class="country-flags country-flags--GG"></span>
2648                <span>Guernsey (USD $)</span>
2649              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GN" >
2650                <span class="country-flags country-flags--GN"></span>
2651                <span>Guinea (USD $)</span>
2652              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GW" >
2653                <span class="country-flags country-flags--GW"></span>
2654                <span>Guinea-Bissau (USD $)</span>
2655              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GY" >
2656                <span class="country-flags country-flags--GY"></span>
2657                <span>Guyana (USD $)</span>
2658              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="HT" >
2659                <span class="country-flags country-flags--HT"></span>
2660                <span>Haiti (USD $)</span>
2661              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="HN" >
2662                <span class="country-flags country-flags--HN"></span>
2663                <span>Honduras (USD $)</span>
2664              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="HK" >
2665                <span class="country-flags country-flags--HK"></span>
2666                <span>Hong Kong SAR (USD $)</span>
2667              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="HU" >
2668                <span class="country-flags country-flags--HU"></span>
2669                <span>Hungary (USD $)</span>
2670              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IS" >
2671                <span class="country-flags country-flags--IS"></span>
2672                <span>Iceland (USD $)</span>
2673              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IN" >
2674                <span class="country-flags country-flags--IN"></span>
2675                <span>India (USD $)</span>
2676              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ID" >
2677                <span class="country-flags country-flags--ID"></span>
2678                <span>Indonesia (USD $)</span>
2679              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IQ" >
2680                <span class="country-flags country-flags--IQ"></span>
2681                <span>Iraq (USD $)</span>
2682              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IE" >
2683                <span class="country-flags country-flags--IE"></span>
2684                <span>Ireland (USD $)</span>
2685              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IM" >
2686                <span class="country-flags country-flags--IM"></span>
2687                <span>Isle of Man (USD $)</span>
2688              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IL" >
2689                <span class="country-flags country-flags--IL"></span>
2690                <span>Israel (USD $)</span>
2691              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IT" >
2692                <span class="country-flags country-flags--IT"></span>
2693                <span>Italy (USD $)</span>
2694              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="JM" >
2695                <span class="country-flags country-flags--JM"></span>
2696                <span>Jamaica (USD $)</span>
2697              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="JP" >
2698                <span class="country-flags country-flags--JP"></span>
2699                <span>Japan (USD $)</span>
2700              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="JE" >
2701                <span class="country-flags country-flags--JE"></span>
2702                <span>Jersey (USD $)</span>
2703              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="JO" >
2704                <span class="country-flags country-flags--JO"></span>
2705                <span>Jordan (USD $)</span>
2706              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KZ" >
2707                <span class="country-flags country-flags--KZ"></span>
2708                <span>Kazakhstan (USD $)</span>
2709              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KE" >
2710                <span class="country-flags country-flags--KE"></span>
2711                <span>Kenya (USD $)</span>
2712              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KI" >
2713                <span class="country-flags country-flags--KI"></span>
2714                <span>Kiribati (USD $)</span>
2715              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="XK" >
2716                <span class="country-flags country-flags--XK"></span>
2717                <span>Kosovo (USD $)</span>
2718              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KW" >
2719                <span class="country-flags country-flags--KW"></span>
2720                <span>Kuwait (USD $)</span>
2721              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KG" >
2722                <span class="country-flags country-flags--KG"></span>
2723                <span>Kyrgyzstan (USD $)</span>
2724              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LA" >
2725                <span class="country-flags country-flags--LA"></span>
2726                <span>Laos (USD $)</span>
2727              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LV" >
2728                <span class="country-flags country-flags--LV"></span>
2729                <span>Latvia (USD $)</span>
2730              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LB" >
2731                <span class="country-flags country-flags--LB"></span>
2732                <span>Lebanon (USD $)</span>
2733              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LS" >
2734                <span class="country-flags country-flags--LS"></span>
2735                <span>Lesotho (USD $)</span>
2736              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LR" >
2737                <span class="country-flags country-flags--LR"></span>
2738                <span>Liberia (USD $)</span>
2739              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LY" >
2740                <span class="country-flags country-flags--LY"></span>
2741                <span>Libya (USD $)</span>
2742              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LI" >
2743                <span class="country-flags country-flags--LI"></span>
2744                <span>Liechtenstein (USD $)</span>
2745              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LT" >
2746                <span class="country-flags country-flags--LT"></span>
2747                <span>Lithuania (USD $)</span>
2748              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LU" >
2749                <span class="country-flags country-flags--LU"></span>
2750                <span>Luxembourg (USD $)</span>
2751              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MO" >
2752                <span class="country-flags country-flags--MO"></span>
2753                <span>Macao SAR (USD $)</span>
2754              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MG" >
2755                <span class="country-flags country-flags--MG"></span>
2756                <span>Madagascar (USD $)</span>
2757              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MW" >
2758                <span class="country-flags country-flags--MW"></span>
2759                <span>Malawi (USD $)</span>
2760              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MY" >
2761                <span class="country-flags country-flags--MY"></span>
2762                <span>Malaysia (USD $)</span>
2763              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MV" >
2764                <span class="country-flags country-flags--MV"></span>
2765                <span>Maldives (USD $)</span>
2766              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ML" >
2767                <span class="country-flags country-flags--ML"></span>
2768                <span>Mali (USD $)</span>
2769              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MT" >
2770                <span class="country-flags country-flags--MT"></span>
2771                <span>Malta (USD $)</span>
2772              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MQ" >
2773                <span class="country-flags country-flags--MQ"></span>
2774                <span>Martinique (USD $)</span>
2775              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MR" >
2776                <span class="country-flags country-flags--MR"></span>
2777                <span>Mauritania (USD $)</span>
2778              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MU" >
2779                <span class="country-flags country-flags--MU"></span>
2780                <span>Mauritius (USD $)</span>
2781              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="YT" >
2782                <span class="country-flags country-flags--YT"></span>
2783                <span>Mayotte (USD $)</span>
2784              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MX" >
2785                <span class="country-flags country-flags--MX"></span>
2786                <span>Mexico (USD $)</span>
2787              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MD" >
2788                <span class="country-flags country-flags--MD"></span>
2789                <span>Moldova (USD $)</span>
2790              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MC" >
2791                <span class="country-flags country-flags--MC"></span>
2792                <span>Monaco (USD $)</span>
2793              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MN" >
2794                <span class="country-flags country-flags--MN"></span>
2795                <span>Mongolia (USD $)</span>
2796              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ME" >
2797                <span class="country-flags country-flags--ME"></span>
2798                <span>Montenegro (USD $)</span>
2799              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MS" >
2800                <span class="country-flags country-flags--MS"></span>
2801                <span>Montserrat (USD $)</span>
2802              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MA" >
2803                <span class="country-flags country-flags--MA"></span>
2804                <span>Morocco (USD $)</span>
2805              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MZ" >
2806                <span class="country-flags country-flags--MZ"></span>
2807                <span>Mozambique (USD $)</span>
2808              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MM" >
2809                <span class="country-flags country-flags--MM"></span>
2810                <span>Myanmar (Burma) (USD $)</span>
2811              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NA" >
2812                <span class="country-flags country-flags--NA"></span>
2813                <span>Namibia (USD $)</span>
2814              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NR" >
2815                <span class="country-flags country-flags--NR"></span>
2816                <span>Nauru (USD $)</span>
2817              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NP" >
2818                <span class="country-flags country-flags--NP"></span>
2819                <span>Nepal (USD $)</span>
2820              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NL" >
2821                <span class="country-flags country-flags--NL"></span>
2822                <span>Netherlands (USD $)</span>
2823              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NC" >
2824                <span class="country-flags country-flags--NC"></span>
2825                <span>New Caledonia (USD $)</span>
2826              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NZ" >
2827                <span class="country-flags country-flags--NZ"></span>
2828                <span>New Zealand (USD $)</span>
2829              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NI" >
2830                <span class="country-flags country-flags--NI"></span>
2831                <span>Nicaragua (USD $)</span>
2832              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NE" >
2833                <span class="country-flags country-flags--NE"></span>
2834                <span>Niger (USD $)</span>
2835              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NG" >
2836                <span class="country-flags country-flags--NG"></span>
2837                <span>Nigeria (USD $)</span>
2838              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NU" >
2839                <span class="country-flags country-flags--NU"></span>
2840                <span>Niue (USD $)</span>
2841              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NF" >
2842                <span class="country-flags country-flags--NF"></span>
2843                <span>Norfolk Island (USD $)</span>
2844              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MK" >
2845                <span class="country-flags country-flags--MK"></span>
2846                <span>North Macedonia (USD $)</span>
2847              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NO" >
2848                <span class="country-flags country-flags--NO"></span>
2849                <span>Norway (USD $)</span>
2850              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="OM" >
2851                <span class="country-flags country-flags--OM"></span>
2852                <span>Oman (USD $)</span>
2853              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PK" >
2854                <span class="country-flags country-flags--PK"></span>
2855                <span>Pakistan (USD $)</span>
2856              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PS" >
2857                <span class="country-flags country-flags--PS"></span>
2858                <span>Palestinian Territories (USD $)</span>
2859              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PA" >
2860                <span class="country-flags country-flags--PA"></span>
2861                <span>Panama (USD $)</span>
2862              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PG" >
2863                <span class="country-flags country-flags--PG"></span>
2864                <span>Papua New Guinea (USD $)</span>
2865              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PY" >
2866                <span class="country-flags country-flags--PY"></span>
2867                <span>Paraguay (USD $)</span>
2868              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PE" >
2869                <span class="country-flags country-flags--PE"></span>
2870                <span>Peru (USD $)</span>
2871              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PH" >
2872                <span class="country-flags country-flags--PH"></span>
2873                <span>Philippines (USD $)</span>
2874              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PN" >
2875                <span class="country-flags country-flags--PN"></span>
2876                <span>Pitcairn Islands (USD $)</span>
2877              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PL" >
2878                <span class="country-flags country-flags--PL"></span>
2879                <span>Poland (USD $)</span>
2880              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PT" >
2881                <span class="country-flags country-flags--PT"></span>
2882                <span>Portugal (USD $)</span>
2883              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="QA" >
2884                <span class="country-flags country-flags--QA"></span>
2885                <span>Qatar (USD $)</span>
2886              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="RE" >
2887                <span class="country-flags country-flags--RE"></span>
2888                <span>Réunion (USD $)</span>
2889              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="RO" >
2890                <span class="country-flags country-flags--RO"></span>
2891                <span>Romania (USD $)</span>
2892              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="RU" >
2893                <span class="country-flags country-flags--RU"></span>
2894                <span>Russia (USD $)</span>
2895              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="RW" >
2896                <span class="country-flags country-flags--RW"></span>
2897                <span>Rwanda (USD $)</span>
2898              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="WS" >
2899                <span class="country-flags country-flags--WS"></span>
2900                <span>Samoa (USD $)</span>
2901              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SM" >
2902                <span class="country-flags country-flags--SM"></span>
2903                <span>San Marino (USD $)</span>
2904              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ST" >
2905                <span class="country-flags country-flags--ST"></span>
2906                <span>São Tomé &amp; Príncipe (USD $)</span>
2907              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SA" >
2908                <span class="country-flags country-flags--SA"></span>
2909                <span>Saudi Arabia (USD $)</span>
2910              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SN" >
2911                <span class="country-flags country-flags--SN"></span>
2912                <span>Senegal (USD $)</span>
2913              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="RS" >
2914                <span class="country-flags country-flags--RS"></span>
2915                <span>Serbia (USD $)</span>
2916              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SC" >
2917                <span class="country-flags country-flags--SC"></span>
2918                <span>Seychelles (USD $)</span>
2919              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SL" >
2920                <span class="country-flags country-flags--SL"></span>
2921                <span>Sierra Leone (USD $)</span>
2922              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SG" >
2923                <span class="country-flags country-flags--SG"></span>
2924                <span>Singapore (USD $)</span>
2925              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SX" >
2926                <span class="country-flags country-flags--SX"></span>
2927                <span>Sint Maarten (USD $)</span>
2928              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SK" >
2929                <span class="country-flags country-flags--SK"></span>
2930                <span>Slovakia (USD $)</span>
2931              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SI" >
2932                <span class="country-flags country-flags--SI"></span>
2933                <span>Slovenia (USD $)</span>
2934              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SB" >
2935                <span class="country-flags country-flags--SB"></span>
2936                <span>Solomon Islands (USD $)</span>
2937              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SO" >
2938                <span class="country-flags country-flags--SO"></span>
2939                <span>Somalia (USD $)</span>
2940              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ZA" >
2941                <span class="country-flags country-flags--ZA"></span>
2942                <span>South Africa (USD $)</span>
2943              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GS" >
2944                <span class="country-flags country-flags--GS"></span>
2945                <span>South Georgia &amp; South Sandwich Islands (USD $)</span>
2946              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KR" >
2947                <span class="country-flags country-flags--KR"></span>
2948                <span>South Korea (USD $)</span>
2949              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SS" >
2950                <span class="country-flags country-flags--SS"></span>
2951                <span>South Sudan (USD $)</span>
2952              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ES" >
2953                <span class="country-flags country-flags--ES"></span>
2954                <span>Spain (USD $)</span>
2955              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LK" >
2956                <span class="country-flags country-flags--LK"></span>
2957                <span>Sri Lanka (USD $)</span>
2958              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BL" >
2959                <span class="country-flags country-flags--BL"></span>
2960                <span>St. Barthélemy (USD $)</span>
2961              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SH" >
2962                <span class="country-flags country-flags--SH"></span>
2963                <span>St. Helena (USD $)</span>
2964              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KN" >
2965                <span class="country-flags country-flags--KN"></span>
2966                <span>St. Kitts &amp; Nevis (USD $)</span>
2967              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LC" >
2968                <span class="country-flags country-flags--LC"></span>
2969                <span>St. Lucia (USD $)</span>
2970              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MF" >
2971                <span class="country-flags country-flags--MF"></span>
2972                <span>St. Martin (USD $)</span>
2973              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PM" >
2974                <span class="country-flags country-flags--PM"></span>
2975                <span>St. Pierre &amp; Miquelon (USD $)</span>
2976              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="VC" >
2977                <span class="country-flags country-flags--VC"></span>
2978                <span>St. Vincent &amp; Grenadines (USD $)</span>
2979              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SD" >
2980                <span class="country-flags country-flags--SD"></span>
2981                <span>Sudan (USD $)</span>
2982              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SR" >
2983                <span class="country-flags country-flags--SR"></span>
2984                <span>Suriname (USD $)</span>
2985              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SJ" >
2986                <span class="country-flags country-flags--SJ"></span>
2987                <span>Svalbard &amp; Jan Mayen (USD $)</span>
2988              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SE" >
2989                <span class="country-flags country-flags--SE"></span>
2990                <span>Sweden (USD $)</span>
2991              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CH" >
2992                <span class="country-flags country-flags--CH"></span>
2993                <span>Switzerland (USD $)</span>
2994              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TW" >
2995                <span class="country-flags country-flags--TW"></span>
2996                <span>Taiwan (USD $)</span>
2997              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TJ" >
2998                <span class="country-flags country-flags--TJ"></span>
2999                <span>Tajikistan (USD $)</span>
3000              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TZ" >
3001                <span class="country-flags country-flags--TZ"></span>
3002                <span>Tanzania (USD $)</span>
3003              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TH" >
3004                <span class="country-flags country-flags--TH"></span>
3005                <span>Thailand (USD $)</span>
3006              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TL" >
3007                <span class="country-flags country-flags--TL"></span>
3008                <span>Timor-Leste (USD $)</span>
3009              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TG" >
3010                <span class="country-flags country-flags--TG"></span>
3011                <span>Togo (USD $)</span>
3012              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TK" >
3013                <span class="country-flags country-flags--TK"></span>
3014                <span>Tokelau (USD $)</span>
3015              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TO" >
3016                <span class="country-flags country-flags--TO"></span>
3017                <span>Tonga (USD $)</span>
3018              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TT" >
3019                <span class="country-flags country-flags--TT"></span>
3020                <span>Trinidad &amp; Tobago (USD $)</span>
3021              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TA" >
3022                <span class="country-flags country-flags--TA"></span>
3023                <span>Tristan da Cunha (USD $)</span>
3024              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TN" >
3025                <span class="country-flags country-flags--TN"></span>
3026                <span>Tunisia (USD $)</span>
3027              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TR" >
3028                <span class="country-flags country-flags--TR"></span>
3029                <span>Türkiye (USD $)</span>
3030              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TM" >
3031                <span class="country-flags country-flags--TM"></span>
3032                <span>Turkmenistan (USD $)</span>
3033              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TC" >
3034                <span class="country-flags country-flags--TC"></span>
3035                <span>Turks &amp; Caicos Islands (USD $)</span>
3036              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TV" >
3037                <span class="country-flags country-flags--TV"></span>
3038                <span>Tuvalu (USD $)</span>
3039              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="UM" >
3040                <span class="country-flags country-flags--UM"></span>
3041                <span>U.S. Outlying Islands (USD $)</span>
3042              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="UG" >
3043                <span class="country-flags country-flags--UG"></span>
3044                <span>Uganda (USD $)</span>
3045              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="UA" >
3046                <span class="country-flags country-flags--UA"></span>
3047                <span>Ukraine (USD $)</span>
3048              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AE" >
3049                <span class="country-flags country-flags--AE"></span>
3050                <span>United Arab Emirates (USD $)</span>
3051              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="US" aria-selected="true">
3052                <span class="country-flags country-flags--US"></span>
3053                <span>United States (USD $)</span>
3054              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="UY" >
3055                <span class="country-flags country-flags--UY"></span>
3056                <span>Uruguay (USD $)</span>
3057              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="UZ" >
3058                <span class="country-flags country-flags--UZ"></span>
3059                <span>Uzbekistan (USD $)</span>
3060              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="VU" >
3061                <span class="country-flags country-flags--VU"></span>
3062                <span>Vanuatu (USD $)</span>
3063              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="VA" >
3064                <span class="country-flags country-flags--VA"></span>
3065                <span>Vatican City (USD $)</span>
3066              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="VE" >
3067                <span class="country-flags country-flags--VE"></span>
3068                <span>Venezuela (USD $)</span>
3069              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="VN" >
3070                <span class="country-flags country-flags--VN"></span>
3071                <span>Vietnam (USD $)</span>
3072              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="WF" >
3073                <span class="country-flags country-flags--WF"></span>
3074                <span>Wallis &amp; Futuna (USD $)</span>
3075              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="EH" >
3076                <span class="country-flags country-flags--EH"></span>
3077                <span>Western Sahara (USD $)</span>
3078              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="YE" >
3079                <span class="country-flags country-flags--YE"></span>
3080                <span>Yemen (USD $)</span>
3081              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ZM" >
3082                <span class="country-flags country-flags--ZM"></span>
3083                <span>Zambia (USD $)</span>
3084              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ZW" >
3085                <span class="country-flags country-flags--ZW"></span>
3086                <span>Zimbabwe (USD $)</span>
3087              </button></x-listbox></form></x-popover>
3088    </div><a href="/account" class="panel-footer__account-link bold text-sm">Account</a></div></div></div>
3089  </div></div></navigation-drawer>
3089<script>
3090  document.documentElement.style.setProperty('--header-height', Math.round(document.getElementById('shopify-section-sections--17107269615766__header').clientHeight) + 'px');
3091</script>
3091
3092
3093
3094
3095<style> @media (min-width: 900px) {#shopify-section-sections--17107269615766__header .header-button {--button-background: 37 47 106 / var(--button-background-opacity, 1); --button-outline-color: 37 47 191; --button-text-color: 255 255 255; } #shopify-section-sections--17107269615766__header .header__secondary-nav {width: 40vw; } #shopify-section-sections--17107269615766__header .header__wrapper {padding-left: 5vw; padding-right: 5vw; }} @media (max-width: 899px) {#shopify-section-sections--17107269615766__header .header-button {display: none; }} @media (min-width: 900px) and (max-width: 1150px) {#shopify-section-sections--17107269615766__header .header__logo {left: -30vw; }} #shopify-section-sections--17107269615766__header .header__main-nav {padding-right: 14vw;} </style></header>
3096<!-- END sections: header-group --><!-- BEGIN sections: overlay-group -->
3097<div id="shopify-section-sections--17107270664342__cart-drawer" class="shopify-section shopify-section-group-overlay-group"><cart-drawer  class="cart-drawer drawer drawer--lg" id="cart-drawer"><button is="close-button" aria-label="Close"><svg role="presentation" stroke-width="2" focusable="false" width="24" height="24" class="icon icon-close" viewBox="0 0 24 24">
3098        <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path>
3099      </svg></button>
3100
3101    <div class="empty-state align-self-center">
3102      <div class="empty-state__icon-wrapper"><svg role="presentation" stroke-width="1" focusable="false" width="32" height="32" class="icon icon-cart" viewBox="0 0 22 22">
3103            <path d="M14.666 7.333a3.666 3.666 0 1 1-7.333 0M3.33 6.785l-.642 7.7c-.137 1.654-.206 2.48.073 3.119a2.75 2.75 0 0 0 1.21 1.314c.612.332 1.442.332 3.102.332h7.853c1.66 0 2.49 0 3.103-.332a2.75 2.75 0 0 0 1.21-1.314c.279-.638.21-1.465.072-3.12l-.642-7.7c-.118-1.423-.178-2.134-.493-2.673A2.75 2.75 0 0 0 16.99 3.02c-.563-.269-1.277-.269-2.705-.269h-6.57c-1.428 0-2.142 0-2.705.27A2.75 2.75 0 0 0 3.823 4.11c-.315.539-.374 1.25-.493 2.674Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path>
3104          </svg><span class="count-bubble count-bubble--lg">0</span>
3105      </div>
3106
3107      <div class="prose">
3108        <p class="h5">Your cart is empty</p>
3109<a class="button button--xl"
3110  
3111  
3112  
3113  
3114  
3115  href="/collections/firmtech"
3116  
3117  
3118 >Continue shopping</a></div>
3119    </div></cart-drawer>
3120
3121
3122</div><div id="shopify-section-sections--17107270664342__search-drawer" class="shopify-section shopify-section-group-overlay-group"><search-drawer  class="search-drawer  drawer drawer--lg" id="search-drawer">
3123  <form action="/search" method="get" class="v-stack gap-5 sm:gap-8" role="search">
3124    <div class="search-input">
3125      <input type="search" name="q" placeholder="Search for..." autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" aria-label="Search">
3126      <button type="reset" class="text-subdued">Clear</button>
3127      <button type="button" is="close-button">
3128        <span class="sr-only">Close</span><svg role="presentation" stroke-width="2" focusable="false" width="24" height="24" class="icon icon-close" viewBox="0 0 24 24">
3129        <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path>
3130      </svg></button>
3131    </div>
3132
3133    <style>
3134      #shopify-section-sections--17107270664342__search-drawer {
3135        --predictive-search-column-count: 3;
3136      }
3137    </style>
3138
3139    <input type="hidden" name="type" value="product">
3140
3141    <predictive-search class="predictive-search" section-id="sections--17107270664342__search-drawer"><div slot="results"></div>
3142
3143      <div slot="loading">
3144        <div class="v-stack gap-5 sm:gap-6 ">
3145          <div class="h-stack gap-4 sm:gap-5"><span class="skeleton skeleton--tab"></span><span class="skeleton skeleton--tab"></span><span class="skeleton skeleton--tab"></span></div>
3146
3147          <div class="v-stack gap-4 sm:gap-6"><div class="h-stack align-center gap-5 sm:gap-6">
3148                <span class="skeleton skeleton--thumbnail"></span>
3149
3150                <div class="v-stack gap-3 w-full">
3151                  <span class="skeleton skeleton--text" style="--skeleton-text-width: 20%"></span>
3152                  <span class="skeleton skeleton--text" style="--skeleton-text-width: 80%"></span>
3153                  <span class="skeleton skeleton--text" style="--skeleton-text-width: 40%"></span>
3154                </div>
3155              </div><div class="h-stack align-center gap-5 sm:gap-6">
3156                <span class="skeleton skeleton--thumbnail"></span>
3157
3158                <div class="v-stack gap-3 w-full">
3159                  <span class="skeleton skeleton--text" style="--skeleton-text-width: 20%"></span>
3160                  <span class="skeleton skeleton--text" style="--skeleton-text-width: 80%"></span>
3161                  <span class="skeleton skeleton--text" style="--skeleton-text-width: 40%"></span>
3162                </div>
3163              </div><div class="h-stack align-center gap-5 sm:gap-6">
3164                <span class="skeleton skeleton--thumbnail"></span>
3165
3166                <div class="v-stack gap-3 w-full">
3167                  <span class="skeleton skeleton--text" style="--skeleton-text-width: 20%"></span>
3168                  <span class="skeleton skeleton--text" style="--skeleton-text-width: 80%"></span>
3169                  <span class="skeleton skeleton--text" style="--skeleton-text-width: 40%"></span>
3170                </div>
3171              </div><div class="h-stack align-center gap-5 sm:gap-6">
3172                <span class="skeleton skeleton--thumbnail"></span>
3173
3174                <div class="v-stack gap-3 w-full">
3175                  <span class="skeleton skeleton--text" style="--skeleton-text-width: 20%"></span>
3176                  <span class="skeleton skeleton--text" style="--skeleton-text-width: 80%"></span>
3177                  <span class="skeleton skeleton--text" style="--skeleton-text-width: 40%"></span>
3178                </div>
3179              </div></div>
3180        </div></div>
3181    </predictive-search>
3182  </form>
3183</search-drawer>
3184
3185</div>
3186<!-- END sections: overlay-group --><main role="main" id="main" class="anchor">
3187      <section id="shopify-section-template--17107273580694__image_with_text_overlay_bFJrCJ" class="shopify-section shopify-section--image-with-text-overlay"><style>
3188  #shopify-section-template--17107273580694__image_with_text_overlay_bFJrCJ {--section-outer-spacing-block: 0;--content-over-media-overlay: 0 0 0 / 0.0;margin-block-start: calc(-1 * var(--header-height) * var(--section-is-first));}
3189</style>
3190
3191<div class="section   section-blends section-full text-custom"style="--text-color: 255 255 255;" allow-transparent-header><image-banner reveal-on-scroll="true"  class="content-over-media content-over-media--auto full-bleed  text-custom"style="--text-color: 255 255 255;"><picture><source
3192            media="(max-width: 699px)"
3193            srcset="//myfirmtech.com/cdn/shop/files/Men-Health-vertical-5.png?v=1779422685&width=400 400w, //myfirmtech.com/cdn/shop/files/Men-Health-vertical-5.png?v=1779422685&width=600 600w, //myfirmtech.com/cdn/shop/files/Men-Health-vertical-5.png?v=1779422685&width=800 800w, //myfirmtech.com/cdn/shop/files/Men-Health-vertical-5.png?v=1779422685&width=1000 1000w, //myfirmtech.com/cdn/shop/files/Men-Health-vertical-5.png?v=1779422685&width=1200 1200w"
3194            width="1376"
3195            height="2706"
3196          ><img src="//myfirmtech.com/cdn/shop/files/Men-Health-5.png?v=1779422677&amp;width=2412" alt="" srcset="//myfirmtech.com/cdn/shop/files/Men-Health-5.png?v=1779422677&amp;width=200 200w, //myfirmtech.com/cdn/shop/files/Men-Health-5.png?v=1779422677&amp;width=300 300w, //myfirmtech.com/cdn/shop/files/Men-Health-5.png?v=1779422677&amp;width=400 400w, //myfirmtech.com/cdn/shop/files/Men-Health-5.png?v=1779422677&amp;width=500 500w, //myfirmtech.com/cdn/shop/files/Men-Health-5.png?v=1779422677&amp;width=600 600w, //myfirmtech.com/cdn/shop/files/Men-Health-5.png?v=1779422677&amp;width=700 700w, //myfirmtech.com/cdn/shop/files/Men-Health-5.png?v=1779422677&amp;width=800 800w, //myfirmtech.com/cdn/shop/files/Men-Health-5.png?v=1779422677&amp;width=900 900w, //myfirmtech.com/cdn/shop/files/Men-Health-5.png?v=1779422677&amp;width=1000 1000w, //myfirmtech.com/cdn/shop/files/Men-Health-5.png?v=1779422677&amp;width=1200 1200w, //myfirmtech.com/cdn/shop/files/Men-Health-5.png?v=1779422677&amp;width=1400 1400w, //myfirmtech.com/cdn/shop/files/Men-Health-5.png?v=1779422677&amp;width=1600 1600w, //myfirmtech.com/cdn/shop/files/Men-Health-5.png?v=1779422677&amp;width=1800 1800w, //myfirmtech.com/cdn/shop/files/Men-Health-5.png?v=1779422677&amp;width=2000 2000w, //myfirmtech.com/cdn/shop/files/Men-Health-5.png?v=1779422677&amp;width=2200 2200w, //myfirmtech.com/cdn/shop/files/Men-Health-5.png?v=1779422677&amp;width=2400 2400w" width="2412" height="1362" sizes="100vw"></picture>
3196<div class="place-self-start text-start sm:place-self-center-start sm:text-start">
3197        <div class="prose"><p class="bold" >JUST LAUNCHED</p><p class="h0" reveal-on-scroll="true" ><split-lines>Labs &amp; Coaching That Enhance Performance</split-lines></p><div ><p>FirmTech Labs analyzes your blood biomarkers to help you perform better. Exclusive to TechRing Users, Coaching helps you assess your health alongside your ring scores.&nbsp;</p></div>
3198<a class="button button--lg"
3199  style="--button-background: 37 47 106 / var(--button-background-opacity, 1);--button-outline-color: 37 47 106;--button-text-color: 255 255 255;"
3200  
3201  
3202  
3203  
3204  href="/pages/mens-health-labs-and-coaching"
3205  
3206  
3207 >Explore labs & health coaching</a>
3208</div>
3209      </div></image-banner>
3210</div>
3211
3212<style> #shopify-section-template--17107273580694__image_with_text_overlay_bFJrCJ p.bold {color: red; font-weight: bold; /* Corrected font-weight */} #shopify-section-template--17107273580694__image_with_text_overlay_bFJrCJ /* Default: Mobile (below 768px) */.place-self-start.text-start.sm\:place-self-center-start.sm\:text-start {width: 100%; margin-left: 0; /* Aligned left */} @media (min-width: 768px) and (max-width: 1023px) {#shopify-section-template--17107273580694__image_with_text_overlay_bFJrCJ .place-self-start.text-start.sm\:place-self-center-start.sm\:text-start {width: 70%; margin-left: 0; /* Aligned left */ }} @media (min-width: 1024px) {#shopify-section-template--17107273580694__image_with_text_overlay_bFJrCJ .place-self-start.text-start.sm\:place-self-center-start.sm\:text-start {width: 54%; margin-left: 0; /* Aligned left */ }} </style></section><section id="shopify-section-template--17107273580694__press" class="shopify-section shopify-section--press"><style>
3213  #shopify-section-template--17107273580694__press {
3214    --section-background-hash: 0;
3215  }
3216
3217  #shopify-section-template--17107273580694__press + * {
3218    --previous-section-background-hash: 0;
3219  }</style><style>
3220    #shopify-section-template--17107273580694__press {
3221      --press-items-border:  / ;
3222      --press-max-width: 1000px;
3223    }
3224  </style><div class="section   section-blends section-full">
3225    <div class="section-stack">
3226      <div class="press">
3227        <press-carousel id="carousel-template--17107273580694__press" class="press__list full-bleed text-center sm:unbleed" role="region"><div id="block-template--17107273580694__press-16644243327ba53d2a-0" class="press__list-item snap-center is-selected" role="group" aria-label="Item 1 of 5" ><div class="rating">
3228                  <div class="rating__stars" role="img" aria-label="5 out of 5 stars"><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3229        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3230      </svg><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3231        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3232      </svg><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3233        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3234      </svg><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3235        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3236      </svg><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3237        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3238      </svg></div>
3239                </div><blockquote class="blockquote h3" reveal-on-scroll="true">I&#39;m 32 and brought FirmTech into the bedroom with my partner mostly out of curiosity. Now it&#39;s a staple. Genuinely one of the better things I&#39;ve added to my routine.</blockquote><div class="v-stack gap-2"><div class="press__logo rounded"><img src="//myfirmtech.com/cdn/shop/files/Verified_Buyer_9c910792-c391-4af9-ae89-048922a10e84.png?v=1721342796&amp;width=114" alt="" srcset="//myfirmtech.com/cdn/shop/files/Verified_Buyer_9c910792-c391-4af9-ae89-048922a10e84.png?v=1721342796&amp;width=100 100w, //myfirmtech.com/cdn/shop/files/Verified_Buyer_9c910792-c391-4af9-ae89-048922a10e84.png?v=1721342796&amp;width=114 114w" width="114" height="16" style="--press-image-max-width: 100px" class="press__image" sizes="100px"></div><p class="press__author text-subdued">Bridger</p></div></div><div id="block-template--17107273580694__press-quote_yDhFGc" class="press__list-item snap-center " role="group" aria-label="Item 2 of 5" ><div class="rating">
3240                  <div class="rating__stars" role="img" aria-label="5 out of 5 stars"><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3241        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3242      </svg><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3243        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3244      </svg><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3245        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3246      </svg><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3247        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3248      </svg><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3249        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3250      </svg></div>
3251                </div><blockquote class="blockquote h3" reveal-on-scroll="true">I was surprised. 70 years old and 4 erections per night. I thought that only happened to teenager
3251s. After a few weeks with the ring, looking at the data and seeing where I could improve was genuinely eye-opening.</blockquote><div class="v-stack gap-2"><div class="press__logo rounded"><img src="//myfirmtech.com/cdn/shop/files/Verified_Buyer.png?v=1718889402&amp;width=114" alt="" srcset="//myfirmtech.com/cdn/shop/files/Verified_Buyer.png?v=1718889402&amp;width=100 100w, //myfirmtech.com/cdn/shop/files/Verified_Buyer.png?v=1718889402&amp;width=114 114w" width="114" height="16" loading="lazy" style="--press-image-max-width: 100px" class="press__image" sizes="100px"></div><p class="press__author text-subdued">Gary C. TechRing customer</p></div></div><div id="block-template--17107273580694__press-quote_MUDGqQ" class="press__list-item snap-center " role="group" aria-label="Item 3 of 5" ><div class="rating">
3252                  <div class="rating__stars" role="img" aria-label="5 out of 5 stars"><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3253        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3254      </svg><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3255        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3256      </svg><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3257        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3258      </svg><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3259        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3260      </svg><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3261        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3262      </svg></div>
3263                </div><blockquote class="blockquote h3" reveal-on-scroll="true">The Max PR ring from FirmTech is a great product! When it is worn, it boosts your self-confidence-you feel fuller and fill your pants more! It enables the wearer to maintain his erection longer and provides more pleasurable sex for both partners. I highly recommend it! </blockquote><div class="v-stack gap-2"><div class="press__logo rounded"><img src="//myfirmtech.com/cdn/shop/files/Verified_Buyer.png?v=1718889402&amp;width=114" alt="" srcset="//myfirmtech.com/cdn/shop/files/Verified_Buyer.png?v=1718889402&amp;width=100 100w, //myfirmtech.com/cdn/shop/files/Verified_Buyer.png?v=1718889402&amp;width=114 114w" width="114" height="16" loading="lazy" style="--press-image-max-width: 100px" class="press__image" sizes="100px"></div><p class="press__author text-subdued">Dartanian</p></div></div><div id="block-template--17107273580694__press-quote_KrDReQ" class="press__list-item snap-center " role="group" aria-label="Item 4 of 5" ><div class="rating">
3264                  <div class="rating__stars" role="img" aria-label="5 out of 5 stars"><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3265        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3266      </svg><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3267        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3268      </svg><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3269        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3270      </svg><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3271        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3272      </svg><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3273        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3274      </svg></div>
3275                </div><blockquote class="blockquote h3" reveal-on-scroll="true">The TechRing is helping me dial in my use of PDE5 inhibitors. I&#39;ve tried multiple protocols. The TR helps make the process more objective. Plus it is rather fun. It feels wrong to go to bed without it now. </blockquote><div class="v-stack gap-2"><div class="press__logo rounded"><img src="//myfirmtech.com/cdn/shop/files/Verified_Buyer.png?v=1718889402&amp;width=114" alt="" srcset="//myfirmtech.com/cdn/shop/files/Verified_Buyer.png?v=1718889402&amp;width=100 100w, //myfirmtech.com/cdn/shop/files/Verified_Buyer.png?v=1718889402&amp;width=114 114w" width="114" height="16" loading="lazy" style="--press-image-max-width: 100px" class="press__image" sizes="100px"></div><p class="press__author text-subdued">Brad</p></div></div><div id="block-template--17107273580694__press-quote_EjaBkP" class="press__list-item snap-center " role="group" aria-label="Item 5 of 5" ><div class="rating">
3276                  <div class="rating__stars" role="img" aria-label="5 out of 5 stars"><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3277        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3278      </svg><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3279        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3280      </svg><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3281        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3282      </svg><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3283        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3284      </svg><svg role="presentation" fill="none" focusable="false" width="15" height="15" class="rating__star icon icon-rating-star" viewBox="0 0 15 15">
3285        <path d="M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z" fill="currentColor"></path>
3286      </svg></div>
3287                </div><blockquote class="blockquote h3" reveal-on-scroll="true">When wearing this ring I feel like I’m in my 30’s again. It’s absolutely incredible, if you are on the fence about getting one. The only thing I would say is GET it, I think you will not be disappointed. </blockquote><div class="v-stack gap-2"><div class="press__logo rounded"><img src="//myfirmtech.com/cdn/shop/files/Verified_Buyer.png?v=1718889402&amp;width=114" alt="" srcset="//myfirmtech.com/cdn/shop/files/Verified_Buyer.png?v=1718889402&amp;width=100 100w, //myfirmtech.com/cdn/shop/files/Verified_Buyer.png?v=1718889402&amp;width=114 114w" width="114" height="16" loading="lazy" style="--press-image-max-width: 100px" class="press__image" sizes="100px"></div><p class="press__author text-subdued">Nick</p></div></div></press-carousel><div class="press__controls">
3288            <button class="circle-button ring group" is="prev-button" aria-controls="carousel-template--17107273580694__press">
3289              <span class="sr-only">Previous</span>
3290              <span class="animated-arrow animated-arrow--reverse"></span>
3291            </button>
3292
3293            <page-dots aria-controls="carousel-template--17107273580694__press" class="page-dots"><button type="button" class="tap-area" aria-current="true">
3294                  <span class="sr-only">Go to item 1</span>
3295                </button><button type="button" class="tap-area" aria-current="false">
3296                  <span class="sr-only">Go to item 2</span>
3297                </button><button type="button" class="tap-area" aria-current="false">
3298                  <span class="sr-only">Go to item 3</span>
3299                </button><button type="button" class="tap-area" aria-current="false">
3300                  <span class="sr-only">Go to item 4</span>
3301                </button><button type="button" class="tap-area" aria-current="false">
3302                  <span class="sr-only">Go to item 5</span>
3303                </button></page-dots>
3304
3305            <button class="circle-button ring group" is="next-button" aria-controls="carousel-template--17107273580694__press">
3306              <span class="sr-only">Next</span>
3307              <span class="animated-arrow"></span>
3308            </button>
3309          </div></div>
3310    </div>
3311  </div></section><section id="shopify-section-template--17107273580694__doctorvideos_HCcLdz" class="shopify-section shopify-section--doctor-videos"><style>
3312  .ft-doctor-videos {
3313    background: #191919;
3314    padding: 60px 24px;
3315    box-sizing: border-box;
3316    width: 100%;
3317  }
3318
3319  .ft-doctor-videos__inner {
3320    max-width: 1300px;
3321    margin: 0 auto;
3322  }
3323
3324  /* Header */
3325  .ft-doctor-videos__header {
3326    display: flex;
3327    align-items: center;
3328    justify-content: space-between;
3329    margin-bottom: 40px;
3330    flex-wrap: wrap;
3331    gap: 16px;
3332  }
3333
3334  .ft-doctor-videos__subheading {
3335    font-family: Montserrat, sans-serif;
3336    font-size: 12px;
3337    font-weight: 700;
3338    letter-spacing: 0.14em;
3339    text-transform: uppercase;
3340    color: #EE3831;
3341    margin: 0 0 8px;
3342  }
3343
3344  .ft-doctor-videos__heading {
3345    font-family: Lora, Georgia, serif;
3346    font-size: clamp(26px, 3vw, 38px);
3347    font-weight: 700;
3348    color: #ECEAE4;
3349    margin: 0;
3350    line-height: 1.15;
3351  }
3352
3353  .ft-doctor-videos__btn {
3354    display: inline-block;
3355    padding: 13px 26px;
3356    background: #EE3831;
3357    color: #fff !important;
3358    font-family: Montserrat, sans-serif;
3359    font-size: 14px;
3360    font-weight: 700;
3361    letter-spacing: 0.04em;
3362    text-decoration: none;
3363    border-radius: 50px;
3364    white-space: nowrap;
3365    transition: background 0.2s;
3366    flex-shrink: 0;
3367  }
3368
3369  .ft-doctor-videos__btn:hover {
3370    background: #cc0000;
3371  }
3372
3373  /* Grid */
3374  .ft-doctor-videos__grid {
3375    display: grid;
3376    grid-template-columns: repeat(3, 1fr);
3377    gap: 20px;
3378    width: 100%;
3379  }
3380
3381  /* Card */
3382  .ft-dv-card {
3383    background: #111111;
3384    border-radius: 12px;
3385    overflow: hidden;
3386    cursor: pointer;
3387    display: flex;
3388    flex-direction: column;
3389    transition: transform 0.2s ease, box-shadow 0.2s ease;
3390  }
3391
3392  .ft-dv-card:hover {
3393    transform: translateY(-4px);
3394    box-shadow: 0 16px 40px rgba(0,0,0,0.6);
3395  }
3396
3397  /* Thumbnail */
3398  .ft-dv-card__thumb {
3399    position: relative;
3400    width: 100%;
3401    padding-top: 56.25%;
3402    overflow: hidden;
3403    background: #222;
3404    flex-shrink: 0;
3405  }
3406
3407  .ft-dv-card__thumb img {
3408    position: absolute;
3409    top: 0; left: 0;
3410    width: 100%;
3411    height: 100%;
3412    object-fit: cover;
3413    transition: transform 0.3s ease;
3414  }
3415
3416  .ft-dv-card:hover .ft-dv-card__thumb img {
3417    transform: scale(1.04);
3418  }
3419
3420 .ft-dv-card__play {
3421    position: absolute;
3422    top: 0; left: 0; right: 0; bottom: 0;
3423    display: flex;
3424    align-items: center;
3425    justify-content: center;
3426    background: rgba(0,0,0,0.12);
3427    transition: background 0.2s;
3428  }
3429
3430  .ft-dv-card:hover .ft-dv-card__play {
3431    background: rgba(0,0,0,0.05);
3432  }
3433
3434  .ft-dv-card__play-btn {
3435    width: 54px;
3436    height: 54px;
3437    background: rgba(238,56,49,0.55);
3438    border-radius: 50%;
3439    display: flex;
3440    align-items: center;
3441    justify-content: center;
3442    box-shadow: 0 2px 10px rgba(0,0,0,0.25);
3443    transition: transform 0.2s, background 0.2s;
3444  }
3445
3446  .ft-dv-card:hover .ft-dv-card__play-btn {
3447    transform: scale(1.1);
3448    background: rgba(238,56,49,0.95);
3449  }
3450
3451  .ft-dv-card__play-btn svg {
3452    width: 18px;
3453    height: 18px;
3454    fill: rgba(255,255,255,0.85);
3455    margin-left: 3px;
3456  }
3457
3458  /* Info */
3459  .ft-dv-card__info {
3460    padding: 16px 18px 20px;
3461    flex: 1;
3462  }
3463
3464  .ft-dv-card__doctor {
3465    font-family: Montserrat, sans-serif;
3466    font-size: 11px;
3467    font-weight: 700;
3468    letter-spacing: 0.1em;
3469    text-transform: uppercase;
3470    color: #EE3831;
3471    margin: 0 0 6px;
3472  }
3473
3474  .ft-dv-card__title {
3475    font-family: Montserrat, sans-serif;
3476    font-size: 14px;
3477    font-weight: 600;
3478    color: #ECEAE4;
3479    margin: 0;
3480    line-height: 1.45;
3481  }
3482
3483  /* Modal */
3484  .ft-dv-modal {
3485    display: none;
3486    position: fixed;
3487    top: 0; left: 0; right: 0; bottom: 0;
3488    background: rgba(0,0,0,0.9);
3489    z-index: 99999;
3490    align-items: center;
3491    justify-content: center;
3492    padding: 20px;
3493    box-sizing: border-box;
3494  }
3495
3496  .ft-dv-modal.is-open {
3497    display: flex;
3498  }
3499
3500  .ft-dv-modal__box {
3501    position: relative;
3502    width: 100%;
3503    max-width: 900px;
3504  }
3505
3506  .ft-dv-modal__close {
3507    position: absolute;
3508    top: -40px;
3509    right: 0;
3510    background: none;
3511    border: none;
3512    color: #fff;
3513    font-size: 34px;
3514    line-height: 1;
3515    cursor: pointer;
3516    padding: 0;
3517    opacity: 0.85;
3518  }
3519
3520  .ft-dv-modal__close:hover { opacity: 1; }
3521
3522  .ft-dv-modal__ratio {
3523    position: relative;
3524    padding-top: 56.25%;
3525    background: #000;
3526    border-radius: 10px;
3527    overflow: hidden;
3528  }
3529
3530  .ft-dv-modal__ratio iframe {
3531    position: absolute;
3532    top: 0; left: 0;
3533    width: 100%;
3534    height: 100%;
3535    border: none;
3536  }
3537
3538  /* Tablet */
3539  @media screen and (max-width: 900px) {
3540    .ft-doctor-videos__grid {
3541      grid-template-columns: repeat(2, 1fr);
3542    }
3543  }
3544
3545  /* Mobile */
3546  @media screen and (max-width: 599px) {
3547    .ft-doctor-videos {
3548      padding: 40px 16px;
3549    }
3550    .ft-doctor-videos__grid {
3551      grid-template-columns: repeat(3, 1fr);
3552      gap: 10px;
3553    }
3554    .ft-doctor-videos__header {
3555      flex-direction: column;
3556      align-items: flex-start;
3557    }
3558    .ft-dv-card__info {
3559      padding: 10px 10px 14px;
3560    }
3561    .ft-dv-card__doctor {
3562      font-size: 9px;
3563      letter-spacing: 0.06em;
3564    }
3565    .ft-dv-card__title {
3566      font-size: 11px;
3567      line-height: 1.35;
3568    }
3569    .ft-dv-card__play-btn {
3570      width: 36px;
3571      height: 36px;
3572    }
3573    .ft-dv-card__play-btn svg {
3574      width: 13px;
3575      height: 13px;
3576    }
3577  }
3578</style>
3579
3580<div class="ft-doctor-videos">
3581  <div class="ft-doctor-videos__inner">
3582
3583    <div class="ft-doctor-videos__header">
3584      <div>
3585        <p class="ft-doctor-videos__subheading">Recommended by Top Urologists</p>
3586        <h2 class="ft-doctor-videos__heading">What Physicians Are Saying</h2>
3587      </div></div>
3588
3589    <div class="ft-doctor-videos__grid">
3590
3591      <!-- Card 1: Rena Malik -->
3592      <div class="ft-dv-card" data-video-id="disWMphgvMc" role="button" tabindex="0" aria-label="Watch Dr. Rena Malik's review">
3593        <div class="ft-dv-card__thumb">
3594          <img src="https://cdn.shopify.com/s/files/1/0577/3177/6662/files/Screenshot_2026-06-12_at_14.51.02.png?v=1781301798" alt="Dr. Rena Malik reviews the FirmTech TechRing" loading="lazy">
3595          <div class="ft-dv-card__play">
3596            <div class="ft-dv-card__play-btn">
3597              <svg viewBox="0 0 24 24"><polygon points="5,3 19,12 5,21"/></svg>
3598            </div>
3599          </div>
3600        </div>
3601        <div class="ft-dv-card__info">
3602          <p class="ft-dv-card__doctor">Dr. Rena Malik, MD</p>
3603          <p class="ft-dv-card__title">Urologist &amp; sexual health expert reviews the TechRing</p>
3604        </div>
3605      </div>
3606
3607      <!-- Card 2: Mohit Khera -->
3608      <div class="ft-dv-card" data-video-id="Isq81OxDwrA" role="button" tabindex="0" aria-label="Watch Dr. Mohit Khera's review">
3609        <div class="ft-dv-card__thumb">
3610          <img src="https://cdn.shopify.com/s/files/1/0577/3177/6662/files/Screenshot_2026-06-12_at_14.53.54.png?v=1781301800" alt="Dr. Mohit Khera on cardiovascular risk and erections" loading="lazy">
3611          <div class="ft-dv-card__play">
3612            <div class="ft-dv-card__play-btn">
3613              <svg viewBox="0 0 24 24"><polygon points="5,3 19,12 5,21"/></svg>
3614            </div>
3615          </div>
3616        </div>
3617        <div class="ft-dv-card__info">
3618          <p class="ft-dv-card__doctor">Dr. Mohit Khera, MD</p>
3619          <p class="ft-dv-card__title">Leading urologist on erectile data and cardiovascular risk</p>
3620        </div>
3621      </div>
3622
3623      <!-- Card 3: Amy Pearlman -->
3624      <div class="ft-dv-card" data-video-id="ymAVCyd1p7c" role="button" tabindex="0" aria-label="Watch Dr. Amy Pearlman's review">
3625        <div class="ft-dv-card__thumb">
3626          <img src="https://cdn.shopify.com/s/files/1/0577/3177/6662/files/Screenshot_2026-06-12_at_14.56.23.png?v=1781301804" alt="Dr. Amy Pearlman on men's health and the TechRing" loading="lazy">
3627          <div class="ft-dv-card__play">
3628            <div class="ft-dv-card__play-btn">
3629              <svg viewBox="0 0 24 24"><polygon points="5,3 19,12 5,21"/></svg>
3630            </div>
3631          </div>
3632        </div>
3633        <div class="ft-dv-card__info">
3634          <p class="ft-dv-card__doctor">Dr. Amy Pearlman, MD</p>
3635          <p class="ft-dv-card__title">Men's health specialist on the science behind the TechRing</p>
3636        </div>
3637      </div>
3638
3639    </div>
3640  </div>
3641</div>
3642
3643<!-- Modal -->
3644<div class="ft-dv-modal" id="ft-dv-modal" role="dialog" aria-modal="true">
3645  <div class="ft-dv-modal__box">
3646    <button class="ft-dv-modal__close" id="ft-dv-close" aria-label="Close">&times;</button>
3647    <div class="ft-dv-modal__ratio">
3648      <iframe id="ft-dv-iframe" src="" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
3649    </div>
3650  </div>
3651</div>
3652
3653<script>
3654(function() {
3655  var modal  = document.getElementById('ft-dv-modal');
3656  var iframe = document.getElementById('ft-dv-iframe');
3657  var close  = document.getElementById('ft-dv-close');
3658  var cards  = document.querySelectorAll('.ft-dv-card');
3659
3660  cards.forEach(function(card) {
3661    function open() {
3662      var id = card.getAttribute('data-video-id');
3663      iframe.src = 'https://www.youtube.com/embed/' + id + '?autoplay=1&rel=0&modestbranding=1';
3664      modal.classList.add('is-open');
3665      document.body.style.overflow = 'hidden';
3666    }
3667    card.addEventListener('click', open);
3668    card.addEventListener('keydown', function(e) {
3669      if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); open(); }
3670    });
3671  });
3672
3673  function closeModal() {
3674    modal.classList.remove('is-open');
3675    iframe.src = '';
3676    document.body.style.overflow = '';
3677  }
3678
3679  close.addEventListener('click', closeModal);
3680  modal.addEventListener('click', function(e) { if (e.target === modal) closeModal(); });
3681  document.addEventListener('keydown', function(e) { if (e.key === 'Escape') closeModal(); });
3682})();
3683</script>
3683
3684
3685</section><section id="shopify-section-template--17107273580694__image_with_text_overlay_B9MWiq" class="shopify-section shopify-section--image-with-text-overlay"><style>
3686  #shopify-section-template--17107273580694__image_with_text_overlay_B9MWiq {--section-outer-spacing-block: 0;--content-over-media-overlay: 0 0 0 / 0.0;}
3687</style>
3688
3689<div class="section   section-blends section-full text-custom"style="--text-color: 255 255 255;" ><image-banner reveal-on-scroll="true"  class="content-over-media content-over-media--auto full-bleed  text-custom"style="--text-color: 255 255 255;"><picture><source
3690            media="(max-width: 699px)"
3691            srcset="//myfirmtech.com/cdn/shop/files/quali_bar_-_mobile.png?v=1722011955&width=400 400w, //myfirmtech.com/cdn/shop/files/quali_bar_-_mobile.png?v=1722011955&width=600 600w, //myfirmtech.com/cdn/shop/files/quali_bar_-_mobile.png?v=1722011955&width=800 800w, //myfirmtech.com/cdn/shop/files/quali_bar_-_mobile.png?v=1722011955&width=1000 1000w, //myfirmtech.com/cdn/shop/files/quali_bar_-_mobile.png?v=1722011955&width=1200 1200w"
3692            width="1308"
3693            height="1328"
3694          ><img src="//myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=5760" alt="" srcset="//myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=200 200w, //myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=300 300w, //myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=400 400w, //myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=500 500w, //myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=600 600w, //myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=700 700w, //myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=800 800w, //myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=900 900w, //myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=1000 1000w, //myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=1200 1200w, //myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=1400 1400w, //myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=1600 1600w, //myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=1800 1800w, //myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=2000 2000w, //myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=2200 2200w, //myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=2400 2400w, //myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=2600 2600w, //myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=2800 2800w, //myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=3000 3000w, //myfirmtech.com/cdn/shop/files/quali_bar_8217d9d6-6aae-43ea-9426-15db1a493c30.png?v=1722012005&amp;width=3200 3200w" width="10256" height="448" loading="lazy" sizes="100vw"></picture></image-banner>
3695</div>
3696
3697</section><section id="shopify-section-template--17107273580694__rich_text_rjTQqV" class="shopify-section shopify-section--rich-text"><style>
3698  #shopify-section-template--17107273580694__rich_text_rjTQqV {
3699    --section-background-hash: 000016330975064008001217068208105;
3700  }
3701
3702  #shopify-section-template--17107273580694__rich_text_rjTQqV + * {
3703    --previous-section-background-hash: 000016330975064008001217068208105;
3704  }</style><style>
3705    #shopify-section-template--17107273580694__rich_text_rjTQqV {
3706      --rich-text-max-width: 780px
3707    }
3708  </style>
3709
3710  <div class="section   section-full bg-custom text-custom"style="--background: 64 8 9; --text-color: 255 255 255;"><div class="rich-text justify-center ">
3711      <div class="rich-text__wrapper">
3712        <div class="prose justify-items-center text-center"><p class="bold" >
3712What It Does - Where Health Meets Pleasure</p><div class="main-heading-content"><p class="h1 hyphenate" >Your Penis Is Trying To Talk To You 
&amp; Now You Can Listen</p><div ><p>Up until now, measuring the nighttime activity of your penis outside of lab conditions was impossible. But that’s all changed. Gain vital health insights via data between TechRing and the app, empowering you and your healthcare provider.</p></div></div></div>
3713      </div>
3714    </div>
3715  </div><style> #shopify-section-template--17107273580694__rich_text_rjTQqV p.bold {color: red; font-weight: 80;} </style></section><section id="shopify-section-template--17107273580694__slideshow_aaYjGd" class="shopify-section shopify-section--slideshow"><style>#shopify-section-template--17107273580694__slideshow_aaYjGd {
3716    --slideshow-background: #f2f2f2;
3717    --slideshow-controls-background: ;
3718    --slideshow-controls-color: ;margin-block-start: calc(-1 * var(--header-height) * var(--section-is-first));}</style><x-slideshow class="slideshow  " allow-transparent-header><slideshow-carousel id="slideshow-template--17107273580694__slideshow_aaYjGd" class="slideshow__carousel"  selector=".slideshow__slide" transition="fade_with_text"  role="region"><custom-cursor class="slideshow__cursor circle-button circle-button--lg circle-button--fill" aria-hidden="true"><svg role="presentation" focusable="false" width="7" height="10" class="icon icon-chevron-right" viewBox="0 0 7 10">
3719        <path d="m1 9 4-4-4-4" fill="none" stroke="currentColor" stroke-width="2"></path>
3720      </svg><svg class="slideshow__cursor-ring" viewBox="-28 -28 56 56" width="56" height="56" fill="none" stroke="currentColor" stroke-width="2">
3721          <circle r="27" stroke-dasharray="158.33626974092556" stroke-dashoffset="158.33626974092556px"></circle>
3722        </svg>
3723      </custom-cursor></slideshow-carousel>
3724</x-slideshow>
3725
3726
3727</section><section id="shopify-section-template--17107273580694__custom_liquid_6NTYcP" class="shopify-section shopify-section--custom-liquid"><style>
3728  #shopify-section-template--17107273580694__custom_liquid_6NTYcP {
3729    --section-background-hash: 000016330975064008001217068208105;
3730  }
3731
3732  #shopify-section-template--17107273580694__custom_liquid_6NTYcP + * {
3733    --previous-section-background-hash: 000016330975064008001217068208105;
3734  }</style><style>
3735    #shopify-section-template--17107273580694__custom_liquid_6NTYcP {
3736      --section-spacing-block: 0px;
3737      --section-spacing-inline: 0px;
3738    }
3739  </style>
3740
3741  <div class="section   section-full bg-custom"style="--background: 64 8 9;">
3742    <!-- Section: TechRing Benefits -->
3743<section class="techring-benefits">
3744  <div class="container">
3745    <div class="techring-image">
3746      <img src="https://cdn.shopify.com/s/files/1/0577/3177/6662/files/Home-F1.png?v=1721346495" alt="TechRing">
3747    </div>
3748    <div class="techring-content">
3749      <div class="techring-benefit">
3750        <div class="icon" style="display: none;">
3751          <svg><!-- Your SVG icon code for Detecting Early Warning Signs --></svg>
3752        </div>
3753        <div class="text">
3754          <img src="//myfirmtech.com/cdn/shop/files/Home-1_28cbb529-8b08-4c5d-8542-1be76c6b2de8.png?v=1721341421&amp;width=50" alt="" srcset="//myfirmtech.com/cdn/shop/files/Home-1_28cbb529-8b08-4c5d-8542-1be76c6b2de8.png?v=1721341421&amp;width=48 48w, //myfirmtech.com/cdn/shop/files/Home-1_28cbb529-8b08-4c5d-8542-1be76c6b2de8.png?v=1721341421&amp;width=50 50w" width="40" height="40" loading="lazy" sizes="48px" class="media-with-text__icon">
3755          <h3>Detecting Early Warning Signs</h3>
3756          <p>The TechRing measures the firmness, duration, and number of nocturnal erections, indicators and predictors of cardiovascular disease and ED; potentially life changing data points.</p>
3757        </div>
3758      </div>
3759      <div class="techring-benefit">
3760        <div class="icon" style="display: none;">
3761          <svg><!-- Your SVG icon code for Objective, Actionable, Personal Data --></svg>
3762        </div>
3763        <div class="text">
3764          <img src="//myfirmtech.com/cdn/shop/files/Home-2_b4c246e4-8356-4b3d-9fb8-c23dd81fa594.png?v=1721341509&amp;width=50" alt="" width="40" height="40" loading="lazy" sizes="(max-width: 699px) calc(73vw - 40px), (max-width: 999px) calc(38vw - 64px), calc(min(1300px, 100vw) / 2)" class="media-with-text__icon">
3765          <h3>Objective, Actionable, Personal Data</h3>
3766          <p>Your recordings and score empower you and your health care provider with aids to diagnosis and management of cardiac and sexual health issues.</p>
3767        </div>
3768      </div>
3769      <div class="techring-benefit">
3770        <div class="icon" style="display: none">
3771          <svg><!-- Your SVG icon code for Healthy Lives & Sex Drives --></svg>
3772        </div>
3773        <div class="text">
3774          <img src="//myfirmtech.com/cdn/shop/files/Home-3_ee161b94-43c6-47ad-8dd0-9d5c009b15bd.png?v=1721341507&amp;width=50" alt="" width="40" height="40" loading="lazy" sizes="(max-width: 699px) calc(73vw - 40px), (max-width: 999px) calc(38vw - 64px), calc(min(1300px, 100vw) / 2)" class="media-with-text__icon">
3775          <h3>Healthy Lives &amp; Sex Drives</h3>
3776          <p>Using the TechRing once per week will give you a clearer understanding of your vascular and sexual health, helping you to achieve better sex long into the future.</p>
3777        </div>
3778      </div>
3779      <div class="cta-button">
3780        <a class="button button--xl" href="/collections/firmtech-rings">Choose Your Ring</a>
3781      </div>
3782    </div>
3783  </div>
3784</section>
3785
3786<style>
3787/* Full bleed: strip the theme container off this section */
3788#shopify-section-template--17107273580694__custom_liquid_6NTYcP {
3789  background-color: #400809;
3790  padding-top: 0;
3791  padding-bottom: 0;
3792  margin-top: 0;
3793  margin-bottom: 0;
3794  overflow-x: hidden;
3795}
3796#shopify-section-template--17107273580694__custom_liquid_6NTYcP > .page-width,
3797#shopify-section-template--17107273580694__custom_liquid_6NTYcP > .container,
3798#shopify-section-template--17107273580694__custom_liquid_6NTYcP > .section,
3799#shopify-section-template--17107273580694__custom_liquid_6NTYcP > .shopify-section {
3800  max-width: 100%;
3801  width: 100%;
3802  padding-left: 0;
3803  padding-right: 0;
3804  margin-left: 0;
3805  margin-right: 0;
3806}
3807
3808.techring-benefits {
3809  background: #400809;
3810  color: #fff;
3811  padding: 50px 0;
3812  width: 100vw;
3813  position: relative;
3814  left: 50%;
3815  right: 50%;
3816  margin-left: -50vw;
3817  margin-right: -50vw;
3818}
3819.techring-benefits .container {
3820  display: flex;
3821  align-items: top;
3822  justify-content: space-between;
3823  margin-right: 0;
3824  margin-left: 0;
3825  max-width: 100%;
3826  padding-left: 0;
3827  padding-right: 0;
3828}
3829.techring-benefits .techring-image img {
3830  max-width: 100%;
3831  display: block;
3832}
3833.techring-benefits .techring-content {
3834  flex: 1;
3835  padding: 20px;
3836}
3837.techring-benefit {
3838  display: flex;
3839  align-items: start;
3840  margin-bottom: 30px;
3841}
3842.techring-benefit .icon {
3843  flex-shrink: 0;
3844  margin-right: 15px;
3845}
3846.techring-benefit .text h3 {
3847  margin: 0 0 10px;
3848  font-size: var(--text-h4);
3849  line-height: 1.3;
3850}
3851.techring-benefit .text p {
3852  margin: 0;
3853}
3854.cta-button .btn {
3855  background-color: #ff0000;
3856  color: #fff;
3857  padding: 10px 20px;
3858  border-radius: 30px;
3859  text-decoration: none;
3860}
3861.cta-button .btn:hover {
3862  background-color: #cc0000;
3863}
3864.techring-image {
3865  width: 50%;
3866}
3867@media (max-width: 899px) {
3868  .techring-image {
3869    width: 100%;
3870  }
3871  .techring-benefits .container {
3872    flex-wrap: wrap;
3873  }
3874}
3875@media (min-width: 1300px) {
3876  .techring-benefit .text p {
3877    max-width: 620px;
3878  }
3879}
3880</style>
3881  </div>
3882</section><section id="shopify-section-template--17107273580694__custom_html_WCAV9E" class="shopify-section shopify-section--custom-html"><style>
3883    #shopify-section-template--17107273580694__custom_html_WCAV9E {
3884      
3885      
3886    }
3887  </style><style>
3888  #shopify-section-template--17107273580694__custom_html_WCAV9E {
3889    --section-background-hash: 0;
3890  }
3891
3892  #shopify-section-template--17107273580694__custom_html_WCAV9E + * {
3893    --previous-section-background-hash: 0;
3894  }</style><div class="section   section-blends section-full">
3895    <section id="firmtech-doctor-map-section" class="ft-map-section">
3896  <div class="ft-map-inner">
3897    <div class="ft-map-header">
3898      <p class="ft-map-eyebrow">Global Network</p>
3899      <h2 class="ft-map-title">Used and Recommended by Doctors Around the World</h2>
3900      <p class="ft-map-subtitle">Find a partner provider</p>
3901    </div>
3902    <div class="ft-map-layout">
3903      <div class="ft-map-sidebar">
3904        <div class="ft-map-search-wrap">
3905          <svg class="ft-search-icon" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>
3906          <input type="text" id="ft-doctor-search" class="ft-map-search" placeholder="Search by name or clinic..." autocomplete="off">
3907        </div>
3908        <div class="ft-map-count" id="ft-map-count">Loading providers...</div>
3909        <ul class="ft-doctor-list" id="ft-doctor-list"></ul>
3910        <div class="ft-map-scrollhint">Scroll to see all providers</div>
3911      </div>
3912      <div class="ft-map-container">
3913        <div id="ft-leaflet-map"></div>
3914      </div>
3915    </div>
3916  </div>
3917</section>
3918
3919<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" crossorigin="">
3920<script src="https://unpkg.com/[email protected]/dist/leaflet.js" crossorigin=""></script>
3920
3921
3922<style>
3923  .shopify-section:has(#firmtech-doctor-map-section),
3924  [class*="custom-liquid"]:has(#firmtech-doctor-map-section),
3925  div:has(> #firmtech-doctor-map-section) {
3926    margin: 0 !important; padding: 0 !important; width: 100% !important;
3927  }
3928  #firmtech-doctor-map-section {
3929    margin: 0 !important;
3930    width: 100vw !important;
3931    position: relative !important;
3932    left: 50% !important;
3933    margin-left: -50vw !important;
3934    overflow: hidden;
3935  }
3936
3937  .ft-map-section { background: #111111; padding: 48px 0 0; font-family: 'Poppins', sans-serif; }
3938
3939  .ft-map-inner { max-width: 1500px; margin: 0 auto; padding: 0 32px 48px; }
3940
3941  .ft-map-header { text-align: center; margin: 0 auto 28px; max-width: 900px; }
3942  .ft-map-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: #EE3831; margin: 0 0 10px; }
3943  .ft-map-title { font-family: 'Lora', serif; font-size: clamp(24px, 3vw, 36px); font-weight: 600; color: #FFFFFF; margin: 0 0 8px; line-height: 1.2; }
3944  .ft-map-subtitle { font-size: 15px; color: #A0A0B0; margin: 0 auto; max-width: 500px; line-height: 1.6; }
3945
3946  .ft-map-layout {
3947    display: grid;
3948    grid-template-columns: 420px 1fr;
3949    border: 1px solid rgba(255,255,255,0.1);
3950    border-radius: 14px;
3951    overflow: hidden;
3952    width: 100%;
3953    height: calc(100vh - 220px);
3954    max-height: none;
3955    min-height: 560px;
3956  }
3957
3958  .ft-map-sidebar {
3959    background: #10222E;
3960    display: flex;
3961    flex-direction: column;
3962    border-right: 1px solid rgba(255,255,255,0.08);
3963    overflow: hidden;
3964  }
3965
3966  .ft-map-search-wrap { position: relative; padding: 18px 18px 12px; border-bottom: 1px solid rgba(255,255,255,0.06); }
3967  .ft-search-icon { position: absolute; left: 32px; top: 50%; transform: translateY(-50%) translateY(3px); width: 16px; height: 16px; color: rgba(255,255,255,0.35); pointer-events: none; }
3968  .ft-map-search { width: 100%; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; padding: 11px 14px 11px 40px; font-family: 'Poppins', sans-serif; font-size: 14px; color: #fff; outline: none; box-sizing: border-box; }
3969  .ft-map-search::placeholder { color: rgba(255,255,255,0.3); }
3970  .ft-map-search:focus { border-color: rgba(120,180,220,0.5); }
3971
3972  .ft-map-count { padding: 10px 20px; font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.4); border-bottom: 1px solid rgba(255,255,255,0.06); }
3973
3974  .ft-doctor-list { list-style: none; margin: 0; padding: 0; overflow-y: scroll; flex: 1; min-height: 0; scrollbar-width: thin; scrollbar-color: rgba(120,180,220,0.25) transparent; -webkit-overflow-scrolling: touch; }
3975  .ft-doctor-list::-webkit-scrollbar { width: 5px; }
3976  .ft-doctor-list::-webkit-scrollbar-thumb { background: rgba(120,180,220,0.25); border-radius: 4px; }
3977
3978  .ft-doctor-item { padding: 14px 20px; border-bottom: 1px solid rgba(255,255,255,0.04); cursor: pointer; transition: background 0.15s; }
3979  .ft-doctor-item:hover { background: rgba(120,180,220,0.10); }
3980  .ft-doctor-item.active { background: rgba(120,180,220,0.16); border-left: 3px solid #EE3831; }
3981  .ft-doctor-name { font-size: 15px; font-weight: 600; color: #fff; margin: 0 0 3px; line-height: 1.35; }
3982  .ft-doctor-company { font-size: 13px; color: rgba(255,255,255,0.5); margin: 0; line-height: 1.4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
3983
3984  /* scroll hint: shown on all screen sizes */
3985  .ft-map-scrollhint {
3986    display: block;
3987    flex-shrink: 0;
3988    padding: 9px 14px;
3989    border-top: 1px solid rgba(255,255,255,0.1);
3990    background: #0C1A24;
3991    text-align: center;
3992    font-size: 10px;
3993    font-weight: 600;
3994    letter-spacing: 0.1em;
3995    text-transform: uppercase;
3996    color: rgba(255,255,255,0.35);
3997  }
3998
3999  .ft-map-container { position: relative; }
4000  #ft-leaflet-map { width: 100%; height: 100%; min-height: 420px; }
4001
4002  /* ---- MAP COLOR ----
4003     Target blue sampled from the reference image: #3A6F8B.
4004     This chain maps CARTO light land (#FAFAF8) to #3B6F8B and water (#D4DADD) to #2B5166. */
4005  .leaflet-container { background: #3B6F8B !important; }
4006  .leaflet-tile-pane {
4007    filter: brightness(0.42) contrast(1.9) sepia(1) saturate(2.24) hue-rotate(160deg) brightness(1.1);
4008  }
4009
4010  .leaflet-control-zoom a { background: rgba(12,26,36,0.92) !important; color: #fff !important; border-color: rgba(255,255,255,0.15) !important; }
4011  .leaflet-control-zoom a:hover { background: rgba(30,70,110,0.95) !important; }
4012  .leaflet-control-attribution { background: transparent !important; color: rgba(255,255,255,0.28) !important; font-size: 7px !important; box-shadow: none !important; padding: 0 4px !important; }
4013  .leaflet-control-attribution a { color: rgba(255,255,255,0.28) !important; }
4014  .leaflet-control-attribution svg { display: none !important; }
4015
4016  .ft-popup .leaflet-popup-content-wrapper {
4017    background: rgba(10,26,38,0.97);
4018    color: #fff;
4019    border: 1px solid rgba(120,180,220,0.28);
4020    border-radius: 10px;
4021    box-shadow: 0 8px 32px rgba(0,0,0,0.6);
4022    padding: 0;
4023  }
4024  .ft-popup .leaflet-popup-tip { background: rgba(10,26,38,0.97); }
4025  .ft-popup .leaflet-popup-content { margin: 0; min-width: 220px; }
4026  .ft-popup-inner { padding: 16px 18px; }
4027  .ft-popup-name { font-size: 15px; font-weight: 700; color: #fff; margin: 0 0 4px; line-height: 1.3; }
4028  .ft-popup-company { font-size: 13px; color: rgba(130,195,240,0.9); margin: 0 0 7px; }
4029  .ft-popup-address { font-size: 12px; color: rgba(255,255,255,0.55); margin: 0 0 10px; line-height: 1.45; }
4030  .ft-popup-link { font-size: 12px; font-weight: 600; color: #EE3831; text-decoration: none; }
4031  .ft-popup-link:hover { text-decoration: underline; }
4032
4033  @media (max-width: 1100px) {
4034    .ft-map-inner { padding: 0 20px 40px; }
4035    .ft-map-layout { grid-template-columns: 320px 1fr; }
4036  }
4037
4038  @media (max-width: 768px) {
4039    .ft-map-section { padding: 32px 0 0; }
4040    .ft-map-inner { padding: 0 14px 32px; }
4041    .ft-map-layout { grid-template-columns: 1fr; grid-template-rows: 320px auto; height: auto; min-height: 0; border-radius: 12px; }
4042    .ft-map-sidebar { order: 2; border-right: none; border-top: 1px solid rgba(255,255,255,0.06); max-height: 320px; }
4043    .ft-map-container { order: 1; }
4044    #ft-leaflet-map { min-height: 320px; }
4045  }
4046</style>
4047
4048<script>
4049(function() {
4050  var DOCTORS = [
4051    {name:'Paul Abramson MD',company:'My Doctor Medical Group',address:'450 Sutter St, Suite 840, San Francisco, CA 94108',website:'https://mydoctorsf.com/',lat:37.7897,lng:-122.4088},
4052    {name:'Afraz Adam, MD',company:'CannaPlus+',address:'231 Ponsonby Rd, Ponsonby, Auckland 1011, New Zealand',website:'https://www.cannaplus.co.nz/',lat:-36.8573,lng:174.7376},
4053    {name:'Kevin Aister, DO',company:'Peak Health Group',address:'8952 E Desert Cove Ave, Suite 203, Scottsdale, AZ 85260',website:'https://www.peakhealthlife.com',lat:33.6288,lng:-111.8879},
4054    {name:'Mohamed Nabil Amin, MD',company:'Private Practice',address:'Cairo, Egypt',website:'https://clinido.com/en/drprofile/634518/22406',lat:30.0444,lng:31.2357},
4055    {name:'Jonathan Andrews',company:'Teds Health',address:'One Avenue, 57 Southwark St, London SE1 1RU, UK',website:'https://www.tedshealth.com/',lat:51.5047,lng:-0.0968},
4056    {name:'AXONVIS',company:'AXONVIS / MyFirmTech Asia',address:'5008 Ang Mo Kio Ave 5, #04-09, Singapore 569874',website:'https://www.myfirmtech.asia/',lat:1.372,lng:103.848},
4057    {name:'Adam Ball, MD',company:'Gulfstream Urology Associates',address:'579 NW Lake Whitney Pl, Suite 105, Port St. Lucie, FL 34986',website:'https://gulfstreamurology.com/',lat:27.3265,lng:-80.4059},
4058    {name:'Iman Bar, MD',company:'Newport Beach Mens Health Clinic',address:'2111 San Joaquin Hills Rd, Newport Beach, CA 92660, USA',website:'',lat:33.6189,lng:-117.8531},
4059    {name:'Sylvie Barak',company:'Sex and Sensibility',address:'Mountain Vie
4059w, CA, USA',website:'https://www.mysexandsensibility.com',lat:37.3861,lng:-122.0839},
4060    {name:'Wolf-D. Beecken, MD',company:'Vitalicum-Urologie',address:'Hochstrasse 49, 60313 Frankfurt am Main, Germany',website:'https://vitalicum-urologie.de/',lat:50.1136,lng:8.6803},
4061    {name:'Miguel Bertonatti',company:'Medical Health Institute',address:'Miami, FL, USA',website:'https://members.medicalhealthinstitute.com/',lat:25.7617,lng:-80.1918},
4062    {name:'Alexandria Callahan, MD',company:'City of Hope',address:'2520 Elisha Ave, Zion, IL 60099',website:'',lat:42.4632,lng:-87.8464},
4063    {name:'George Carroll, MD',company:'Orlando Sexual Medicine',address:'235 Maitland Ave S, Suite 206, Maitland, FL 32751',website:'https://www.orlandosexualmedicine.com/',lat:28.6291,lng:-81.3634},
4064    {name:'Fabio Castiglione, MD',company:'HCA Healthcare UK / Holistic Andrology',address:'Harley Street, London W1G, UK',website:'https://www.holisticandrology.com',lat:51.5196,lng:-0.1477},
4065    {name:'BSHC Bangkok Sexual Health Center',company:'Bangkok Sexual Health Center',address:'Bangkok, Thailand',website:'https://www.bangkoksexualhealth.com/',lat:13.7563,lng:100.5018},
4066    {name:'PSJ ED Clinic',company:'PSJ ED Clinics',address:'2A Park Ave S, Northampton NN3 3AA, UK',website:'https://www.psjedclinics.co.uk/',lat:52.2405,lng:-0.8717},
4067    {name:'Greg Dawson II',company:'CAYA',address:'Forney, TX, USA',website:'',lat:32.748,lng:-96.4697},
4068    {name:'Nicholas Deebel MD',company:'Wake Forest Baptist Medical Center',address:'Winston-Salem, NC, USA',website:'https://www.wakehealth.edu/',lat:36.0999,lng:-80.2506},
4069    {name:'Philip Delaney',company:'Delaney Physiotherapy',address:'312A Charter Avenue, Coventry CV4 8DA, UK',website:'https://www.delaneyphysio.com',lat:52.3882,lng:-1.5567},
4070    {name:'Tad DeWald, MD',company:'Florida Regen',address:'162 NE 25th St, Suite 103, Miami, FL 33137',website:'https://www.floridaregen.com',lat:25.8026,lng:-80.1934},
4071    {name:'Jodi Diamond',company:'Pelvic PT of the Palm Beaches',address:'Palm Beach Gardens, FL, USA',website:'https://www.pelvicptpalmbeach.com/',lat:26.8303,lng:-80.1144},
4072    {name:'Randall Dooley, MD',company:'St Lukes Hospital',address:'Chesterfield, MO, USA',website:'',lat:38.6582,lng:-90.5774},
4073    {name:'Desmond Ebanks, MD',company:'Alternity Healthcare',address:'639 Park Rd, Suite 200, West Hartford, CT 06107',website:'https://alternityhealthcare.com/',lat:41.7536,lng:-72.7396},
4074    {name:'ED Clinics Bury St Edmunds',company:'ED Clinics',address:'Britannia House, Brunel Business Court, Bury St Edmunds IP32 7AJ, UK',website:'https://edclinics.co.uk/clinics/the-abbeyfields-clinic/',lat:52.244,lng:0.7299},
4075    {name:'Cris Dervin Fedalizo',company:'Artizo LLC',address:'2800 Shirlington Rd, Unit 500, Arlington, VA 22206',website:'https://www.artizollc.com/',lat:38.8442,lng:-77.0951},
4076    {name:'Stamatis Ferarolis',company:'Defy Medical',address:'4809 N Armenia Ave, Suite 220, Tampa, FL 33603',website:'https://www.defymedical.com/',lat:27.9774,lng:-82.4895},
4077    {name:'Susan Frantz',company:'Frantz Therapy',address:'Avon, CT, USA',website:'https://www.sfrantztherapy.com/',lat:41.7915,lng:-72.8631},
4078    {name:'Amy Garza',company:'AgeWell',address:'Amarillo, TX, USA',website:'https://www.agewellclinics.com',lat:35.2073,lng:-101.8382},
4079    {name:'Michael Gilliam',company:'Vitality Mens Health',address:'Sarasota, FL, USA',website:'https://www.vitalityhrt.com/',lat:27.2714,lng:-82.4896},
4080    {name:'Katie Hauck',company:'Black Mountain Physio',address:'Kelowna, BC, Canada',website:'https://blackmountainphysio.com/',lat:49.888,lng:-119.496},
4081    {name:'Alalpha Health',company:'Alalpha Health',address:'Dubai, UAE',website:'',lat:25.2048,lng:55.2708},
4082    {name:'Josh Himes PhD',company:'Pro Health Place',address:'Summerville, SC, USA',website:'https://prohealthplace.com/',lat:33.0185,lng:-80.1751},
4083    {name:'Scott Jagodzinski',company:'Argent Alpha',address:'Phoenix, AZ, USA',website:'https://www.argentalpha.com/',lat:33.4827,lng:-111.9896},
4084    {name:'Salvatore Carfagno Jr, DO',company:'OB-GYN Practice',address:'707 White Horse Pike, Absecon, NJ 08201, USA',website:'',lat:39.4276,lng:-74.4946},
4085    {name:'Colleen Kampf',company:'GameDay Mens Health',address:'Pottstown, PA, USA',website:'https://gamedaymenshealth.com/',lat:40.2454,lng:-75.6496},
4086    {name:'Cemal Kavasogullari, MD',company:'Esteem Life Medical Group',address:'Glasgow, UK',website:'https://www.esteemlife.co.uk',lat:55.8642,lng:-4.2518},
4087    {name:'Jenn Kennedy, MD',company:'Riviera Therapy',address:'1515 State Street, Santa Barbara, CA, USA',website:'https://rivieratherapy.com/',lat:34.4195,lng:-119.6989},
4088    {name:'Ram Chandra Khadka',company:'Sunya Health Solution',address:'Lalitpur, Nepal',website:'https://www.sunya.health/',lat:27.6682,lng:85.3148},
4089    {name:'Jacob Khurgin, MD',company:'Maimonides Medical Center',address:'Brooklyn, NY, USA',website:'https://maimo.org/',lat:40.5898,lng:-73.9552},
4090    {name:'Drew Klein',company:'FocusWave Clinic Inc.',address:'2249 Carling Ave, Ottawa, Ontario, Canada',website:'https://focuswaveclinic.com/',lat:45.383,lng:-75.7624},
4091    {name:'Diane H Kottakis',company:'Middle Park Health',address:'Keene, NH, USA',website:'',lat:42.9334,lng:-72.2779},
4092    {name:'Noemie Kyryluk',company:'NMK Psychotherapy',address:'Thunder Bay, ON, Canada',website:'https://www.nmkpsychotherapy.com/',lat:48.3809,lng:-89.2477},
4093    {name:'Paula Leech LMFT',company:'Paula Leech Therapy',address:'Portland, OR, USA',website:'https://www.paulaleech.com/',lat:45.5194,lng:-122.6936},
4094    {name:'ED Clinics Leeds',company:'ED Clinics',address:'7 Fairburn Dr, Garforth, Leeds LS25 2AR, UK',website:'http://edclinics.co.uk/clinics/indergaard-physiotherapy/',lat:53.7945,lng:-1.3781},
4095    {name:'James Liu, MD',company:'Urology Associates of Savannah',address:'Savannah, GA, USA',website:'https://www.urologysavannah.com/',lat:32.0515,lng:-81.0886},
4096    {name:'ED Clinics London',company:'ED Clinics',address:'16 Glentworth St, London NW1 5PG, UK',website:'https://edclinics.co.uk/clinics/lifeplus-london/',lat:51.5236,lng:-0.1586},
4097    {name:'Clarice Long',company:'Levelland Physical Therapy',address:'Lubbock, TX, USA',website:'',lat:33.5779,lng:-101.8552},
4098    {name:'John Ludlow, MD',company:'Western Michigan Urological Associates',address:'Empire, MI, USA',website:'https://wmuro.com/',lat:44.8128,lng:-85.9994},
4099    {name:'Ansar Mahmood',company:'KYZN Clinics',address:'Stafford, UK',website:'',lat:52.8073,lng:-2.1233},
4100    {name:'ED Clinics Manchester',company:'ED Clinics',address:'180 Heaton Moor Road, Stockport SK4 2PB, UK',website:'https://edclinics.co.uk/clinics/metro-physio-manchester/',lat:53.4108,lng:-2.1843},
4101    {name:'Carl Manni',company:'Majoro Mens Health',address:'Kamakura, Japan',website:'',lat:35.3197,lng:139.5467},
4102    {name:'Mac Medicina',company:'Mac Medicina',address:'Spain',website:'',lat:40.4168,lng:-3.7038},
4103    {name:'Fenwa Milhouse, MD',company:'Your Favorite Urologist LLC',address:'Chicago, IL, USA',website:'https://yourfavoriteurologist.com/',lat:41.9011,lng:-87.6313},
4104    {name:'Shauli Minkowitz, MD',company:'Johannesburg Urology Center',address:'Sandton, South Africa',website:'',lat:-26.1071,lng:28.0567},
4105    {name:'Nazanin Moali, MD',company:'Oasis2Care',address:'Torrance, CA, USA',website:'https://oasis2care.com/',lat:33.8045,lng:-118.3483},
4106    {name:'Feras Mohder, MD',company:'Pioneer Medical Associates',address:'Clinton Township, MI, USA',website:'',lat:42.5795,lng:-82.9183},
4107    {name:'Ashley Moore',company:'Ashley Moore Therapy',address:'Centennial, CO, USA',website:'',lat:39.5938,lng:-104.8773},
4108    {name:'Michael Mooreville, MD',company:'URAMIX',address:'Lansdowne, PA, USA',website:'https://www.uram
4108ix.com/',lat:39.939,lng:-75.2718},
4109    {name:'Gregory Moran, MD',company:'Family Physician',address:'4333 N Josey Ln #302, Carrollton, TX 75010, USA',website:'',lat:33.0045,lng:-96.9002},
4110    {name:'Asif Muneer, MD',company:'UCL NHS',address:'33 Grosvenor Place, London SW1X 7HY, UK',website:'https://clevelandcliniclondon.uk/doctors/4106223-professor-asif-muneer',lat:51.5003,lng:-0.1534},
4111    {name:'Agata Osewska',company:'MyFirmTech Poland',address:'ul. Marii Kazimiery 22/131, Warsaw 01-641, Poland',website:'http://www.myfirmtech.pl/',lat:52.2639,lng:20.9834},
4112    {name:'Prodromos Ouzounoglou, MD',company:'Homerton Hospital NHS',address:'London, UK',website:'',lat:51.5488,lng:-0.0459},
4113    {name:'Greta Peciulyte, MD',company:'Androfill / Harley Urology LTD',address:'64 Harley St, London W1G 7HB, UK',website:'https://www.androfill.co.uk/about-us/',lat:51.5224,lng:-0.1477},
4114    {name:'Michael A. Perelman PhD',company:'Payne Whitney Clinic / NY Weill Cornell',address:'70 E 77th St, Suite 1C, New York, NY 10075',website:'',lat:40.7756,lng:-73.9601},
4115    {name:'Edward Petrik',company:'Gameday Mens Health Austin',address:'Georgetown, TX, USA',website:'https://www.gamedaymenshealth.com/',lat:30.628,lng:-97.6691},
4116    {name:'Aubergine Male Health Physio',company:'Aubergine Physio',address:'5A Willows Gate, Stratton Audley, Bicester OX27 9BQ, UK',website:'https://www.auberginephysio.co.uk/',lat:51.9436,lng:-1.1475},
4117    {name:'Christopher Pittman',company:'Vein911',address:'Tampa, FL, USA',website:'https://www.vein911.com',lat:27.9726,lng:-82.4955},
4118    {name:'ED Clinics Portsmouth',company:'ED Clinics',address:'96 London Road, Widley, Waterlooville PO7 5AB, UK',website:'https://edclinics.co.uk/clinics/the-physiotherapy-centre/',lat:50.8619,lng:-1.0678},
4119    {name:'Ummer Qadeer, MD',company:'Hooke London',address:'London, UK',website:'https://www.hooke.london',lat:51.5074,lng:-0.1278},
4120    {name:'Marcel Rad, MD',company:'Urology Cluj',address:'Cluj, Romania',website:'https://urocluj.ro/',lat:46.7334,lng:23.5265},
4121    {name:'Ira Ratner',company:'Franklin Wellness Partners',address:'Wrentham, MA, USA',website:'',lat:42.0501,lng:-71.3326},
4122    {name:'ED Clinics Reading',company:'ED Clinics',address:'11 Headley Road, Woodley, Reading RG5 4JB, UK',website:'https://edclinics.co.uk/clinics/3way-healthcare/',lat:51.4563,lng:-0.9283},
4123    {name:'Sankeerth Reddy, MD',company:'Zest Clinic',address:'Singapore',website:'https://www.zest.clinic/',lat:1.3167,lng:103.9274},
4124    {name:'Giselle Roedel DPT',company:'Pelvic Wellness Center',address:'Salem, OR, USA',website:'https://pelvicwellnessofsalem.com/',lat:44.926,lng:-122.994},
4125    {name:'Heather Saran',company:'Bright Endocrinology PLLC',address:'Scottsdale, AZ, USA',website:'https://www.brightendocrinology.com',lat:33.6838,lng:-111.9065},
4126    {name:'Yoshi Sato, MD',company:'Sapporo Medical University / Sanjukai Urology Hospital',address:'Sapporo, Hokkaido, Japan',website:'',lat:43.0618,lng:141.3545},
4127    {name:'ED Clinics Solihull',company:'ED Clinics',address:'3 Manor Walk, Solihull B91 3SX, UK',website:'https://edclinics.co.uk/clinics/midlands-shockwave/',lat:52.4129,lng:-1.7781},
4128    {name:'Angela Tan, MD',company:'Reiwa Health',address:'118 Joo Chiat Rd #01-01, Singapore 427407',website:'https://www.reiwahealth.com/',lat:1.3068,lng:103.9027},
4129    {name:'William Taylor',company:'Taylor Physiotherapy',address:'Edinburgh, UK',website:'https://taylorphysiotherapy.com/',lat:55.9572,lng:-3.2267},
4130    {name:'Rotana Tek, MD',company:'Alpha Hormones',address:'Pasadena, CA, USA',website:'https://alphahormones.com/',lat:34.1363,lng:-118.131},
4131    {name:'Leon Telis, MD',company:'Mount Sinai Hospital',address:'New York, NY, USA',website:'https://www.mountsinai.org/',lat:40.7397,lng:-73.9851},
4132    {name:'Steven Tijerina',company:'IPC Integrated Pelvic Care',address:'Orland Park, IL, USA',website:'https://www.ipc.health/',lat:41.6031,lng:-87.8539},
4133    {name:'VennHealth UK',company:'VennHealth UK',address:'UK',website:'',lat:51.5074,lng:-0.1278},
4134    {name:'Grainne Walsh',company:'Pelvic Health',address:'Unit B14, KCR Park Business Park, Dublin 12, Ireland',website:'https://www.gwpelvichealth.com/',lat:53.3218,lng:-6.3047},
4135    {name:'James B. Walther',company:'Walther Institute for Marital Intimacy',address:'4173 Crescent Dr, Suite D, Saint Louis, MO 63129, USA',website:'https://www.waltherinstitute.com/',lat:38.5226,lng:-90.3388},
4136    {name:'Di Woody Wu',company:'VActive',address:'Montreal, QC, Canada',website:'https://vactiveclinic.com/',lat:45.5481,lng:-73.5588},
4137    {name:'Kevin Zorn',company:'BPHCanada Prostate Center',address:'315 Ave James-Shaw, Beaconsfield, Quebec, Canada',website:'https://bphcanada.com/',lat:45.4673,lng:-73.8634}
4138  ];
4139
4140  var TOTAL_LABEL = DOCTORS.length + ' providers worldwide';
4141
4142  function ftInit() {
4143    if (typeof L === 'undefined') { setTimeout(ftInit, 150); return; }
4144
4145    var map = L.map('ft-leaflet-map', {
4146      center: [25, 5],
4147      zoom: 2,
4148      minZoom: 1,
4149      maxZoom: 12,
4150      zoomControl: true,
4151      zoomSnap: 0,
4152      zoomDelta: 0.5,
4153      worldCopyJump: false,
4154      maxBounds: [[-85, -180], [85, 180]],
4155      maxBoundsViscosity: 1.0
4156    });
4157
4158    L.tileLayer('https://{s}.basemaps.cartocdn.com/light_nolabels/{z}/{x}/{y}{r}.png?key=cb1_2sjp_1_31f8fa088cadb5970c628622', {
4159      subdomains: 'abcd',
4160      maxZoom: 12,
4161      minZoom: 0,
4162      noWrap: true,
4163      bounds: [[-85.0511, -180], [85.0511, 180]],
4164      attribution: '&copy; <a href="https://carto.com/">CARTO</a> &copy; <a href="https://www.openstreetmap.org/copyright">OSM</a>'
4165    }).addTo(map);
4166
4167    /* Force a single world copy to fill the pane width.
4168       World width at zoom z is 256 * 2^z, so the fill zoom is log2(paneWidth / 256).
4169       Anything below that leaves empty space on the sides. */
4170    function fitWorldWidth() {
4171      var w = map.getSize().x;
4172      if (!w) return;
4173      var fillZoom = Math.log(w / 256) / Math.LN2;
4174      map.setMinZoom(fillZoom);
4175      if (map.getZoom() < fillZoom) { map.setZoom(fillZoom); }
4176    }
4177
4178    function refresh() { map.invalidateSize(); fitWorldWidth(); }
4179
4180    setTimeout(refresh, 300);
4181    setTimeout(refresh, 800);
4182    setTimeout(refresh, 1600);
4183    window.addEventListener('resize', refresh);
4184
4185    function makeIcon() {
4186      var svg = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 32" width="20" height="27"><path d="M12 0C5.37 0 0 5.37 0 12c0 9 12 20 12 20S24 21 24 12C24 5.37 18.63 0 12 0z" fill="#EE3831" stroke="rgba(255,255,255,0.85)" stroke-width="1.2"/><circle cx="12" cy="12" r="5" fill="white" opacity="0.95"/></svg>';
4187      return L.divIcon({ html: svg, className: '', iconSize: [20,27], iconAnchor: [10,27], popupAnchor: [0,-30] });
4188    }
4189
4190    var allMarkers = {};
4191
4192    DOCTORS.forEach(function(doc, i) {
4193      var marker = L.marker([doc.lat, doc.lng], { icon: makeIcon() });
4194      var url = doc.website ? '<a class="ft-popup-link" href="' + doc.website + '" target="_blank" rel="noopener">Visit Website &rarr;</a>' : '';
4195      marker.bindPopup(
4196        '<div class="ft-popup-inner">' +
4197        '<p class="ft-popup-name">' + doc.name + '</p>' +
4198        '<p class="ft-popup-company">' + doc.company + '</p>' +
4199        '<p class="ft-popup-address">' + doc.address + '</p>' +
4200        url + '</div>',
4201        { className: 'ft-popup', maxWidth: 280 }
4202      );
4203      marker.on('click', function() { highlightItem(i); });
4204      marker.addTo(map);
4205      allMarkers[i] = marker;
4206    });
4207
4208    function renderList(docs) {
4209      var list = document.getElementById('ft-doctor-list');
4210      if (!list) return;
4211      list.innerHTML = '';
4212      docs.forEach(function(doc) {
4213        var i = doc._i !== undefined ? doc._i : DOCTORS.indexOf(doc);
4214        var li = document.createElement('li');
4215        li.className = 'ft-doctor-item';
4216        li.dataset.index = i;
4217        li.innerHTML = '<p class="ft-doctor-name">' + doc.name + '</p><p class="ft-doctor-company">' + doc.company + '</p>';
4218        li.addEventListener('click', function() {
4219          var idx = parseInt(li.dataset.index);
4220          var m = allMarkers[idx];
4221          if (m) {
4222            map.flyTo(m.getLatLng(), 8, { duration: 1 });
4223            setTimeout(function() { m.openPopup(); }, 1050);
4224          }
4225          highlightItem(idx, li);
4226        });
4227        list.appendChild(li);
4228      });
4229    }
4230
4231    function highlightItem(idx, el) {
4232      document.querySelectorAll('.ft-doctor-item').forEach(function(e) { e.classList.remove('active'); });
4233      var target = el || document.querySelector('.ft-doctor-item[data-index="' + idx + '"]');
4234      if (target) { target.classList.add('active'); target.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }
4235    }
4236
4237    renderList(DOCTORS);
4238
4239    var searchInput = document.getElementById('ft-doctor-search');
4240    var countEl = document.getElementById('ft-map-count');
4241    var hintEl = document.querySelector('.ft-map-scrollhint');
4242    if (countEl) countEl.textContent = TOTAL_LABEL;
4243    if (searchInput) {
4244      searchInput.addEventListener('input', function() {
4245        var q = this.value.toLowerCase().trim();
4246        var filtered = DOCTORS.map(function(d, i) { return Object.assign({}, d, {_i:i}); })
4247          .filter(function(d) { return !q || d.name.toLowerCase().indexOf(q) > -1 || d.company.toLowerCase().indexOf(q) > -1 || d.address.toLowerCase().indexOf(q) > -1; });
4248        renderList(filtered);
4249        if (countEl) countEl.textContent = q ? filtered.length + ' results' : TOTAL_LABEL;
4250        if (hintEl) hintEl.textContent = q ? 'Scroll to see all results' : 'Scroll to see all providers';
4251      });
4252    }
4253  }
4254
4255  if (document.readyState === 'loading') {
4256    document.addEventListener('DOMContentLoaded', ftInit);
4257  } else {
4258    ftInit();
4259  }
4260})();
4261</script>
4261
4262  </div>
4263</section><section id="shopify-section-template--17107273580694__media_with_text_KXw9z4" class="shopify-section shopify-section--media-with-text"><style>
4264  #shopify-section-template--17107273580694__media_with_text_KXw9z4 {
4265    --section-background-hash: 0;
4266  }
4267
4268  #shopify-section-template--17107273580694__media_with_text_KXw9z4 + * {
4269    --previous-section-background-hash: 0;
4270  }</style><style>
4271  #shopify-section-template--17107273580694__media_with_text_KXw9z4 {
4272    --media-with-text-gap: 0;
4273    --media-with-text-item-grid-template: "media" "content" / auto;
4274  }
4275
4276  @media screen and (min-width: 1000px) {
4277    #shopify-section-template--17107273580694__media_with_text_KXw9z4 {
4278      --media-with-text-gap: 0;
4279    }
4280  }#block-template--17107273580694__media_with_text_KXw9z4-image_hta8TC {
4281      --media-with-text-item-icon-width: 68px;
4282    }
4283
4284    @media screen and (min-width: 1000px) {
4285      #block-template--17107273580694__media_with_text_KXw9z4-image_hta8TC {
4286        --media-with-text-item-grid-template: "content media" / minmax(0, 0.9fr) minmax(0, 1.1fr);
4287      }
4288    }</style><div class="section   section-blends section-full">
4289  <media-with-text class="media-with-text full-bleed"><div id="block-template--17107273580694__media_with_text_KXw9z4-image_hta8TC" class="media-with-text__item" >
4290        <div class="media-with-text__media " reveal-on-scroll="true">
4291<img src="//myfirmtech.com/cdn/shop/files/FirmTech_Customize_Live_Impact_copy.png?v=1770932149&amp;width=821" alt="" srcset="//myfirmtech.com/cdn/shop/files/FirmTech_Customize_Live_Impact_copy.png?v=1770932149&amp;width=300 300w, //myfirmtech.com/cdn/shop/files/FirmTech_Customize_Live_Impact_copy.png?v=1770932149&amp;width=400 400w, //myfirmtech.com/cdn/shop/files/FirmTech_Customize_Live_Impact_copy.png?v=1770932149&amp;width=500 500w, //myfirmtech.com/cdn/shop/files/FirmTech_Customize_Live_Impact_copy.png?v=1770932149&amp;width=600 600w, //myfirmtech.com/cdn/shop/files/FirmTech_Customize_Live_Impact_copy.png?v=1770932149&amp;width=700 700w, //myfirmtech.com/cdn/shop/files/FirmTech_Customize_Live_Impact_copy.png?v=1770932149&amp;width=800 800w" width="821" height="742" loading="lazy" sizes="(max-width: 999px) 100vw, min(715px, 55vw)"></div><div class="media-with-text__content  bg-gradient text-custom"style="--gradient: linear-gradient(180deg, rgba(64, 8, 9, 1), rgba(64, 8, 9, 1) 100%); --text-color: 255 255 255;">
4292          <div class="prose break-all place-self-center-start text-start" reveal-on-scroll="true"><img src="//myfirmtech.com/cdn/shop/files/1_e5e81757-184b-4a5f-aa84-5e32fe865492.png?v=1718895162&amp;width=36" alt="" srcset="//myfirmtech.com/cdn/shop/files/1_e5e81757-184b-4a5f-aa84-5e32fe865492.png?v=1718895162&amp;width=36 36w" width="36" height="36" loading="lazy" sizes="68px" class="media-with-text__icon"><p class="h2">Where Health  Meets Pleasure</p><div class = "block-content"><p>Gain vital health insights via data between the TechRing and the app, empowering you and your healthcare provider.</p></div>
4293<a class="button button--xl"
4294  
4295  
4296  
4297  
4298  
4299  href="/collections/firmtech-rings"
4300  
4301  
4302 >Discover Our Rings</a></div>
4303        </div>
4304      </div></media-with-text>
4305</div>
4306
4307
4308<style> #shopify-section-template--17107273580694__media_with_text_KXw9z4 .media-with-text__content .prose {max-width: 1300px !important; margin: 0 auto !important;} </style></section><section id="shopify-section-template--17107273580694__multi_column_kXhKLK" class="shopify-section shopify-section--multi-column"><style>
4309  #shopify-section-template--17107273580694__multi_column_kXhKLK {
4310    --section-background-hash: 002010055735800958522240624900006;
4311  }
4312
4313  #shopify-section-template--17107273580694__multi_column_kXhKLK + * {
4314    --previous-section-background-hash: 002010055735800958522240624900006;
4315  }</style><style>
4316    #shopify-section-template--17107273580694__multi_column_kXhKLK {
4317      --multi-column-grid: auto / auto-flow 73vw;
4318      --multi-column-list-gap: var(--spacing-12);
4319    }
4320  </style>
4321
4322  <div class="section   section-full bg-custom text-custom"style="--background: 19 2 3; --text-color: 255 255 255;">
4323    <div class="section-stack"><div class="multi-column scroll-area bleed md:unbleed"><div class="multi-column__item justify-start snap-start" style="--multi-column-item-column-count: span 4" ><img src="//myfirmtech.com/cdn/shop/files/2-1_06091ccd-fe15-4d30-a8f7-d5edaa6b63db.png?v=1721341678&amp;width=44" alt="" width="44" height="44" loading="lazy" sizes="(max-width: 699px) calc(73vw - 40px), (max-width: 999px) calc(38vw - 64px), calc(min(1300px, 100vw) / 3)" class="rounded"><div class="v-stack gap-4 text-start"><p class="h4">Better, More Frequent Sex</p>
4324<div class="prose"><p>Enhance performance, prolong hardness, and amplify orgasms for increased pleasure for you and your partner.</p>
4325</div></div></div><div class="multi-column__item justify-start snap-start" style="--multi-column-item-column-count: span 4" ><img src="//myfirmtech.com/cdn/shop/files/1-1_00dc2464-619c-4490-af77-a40bc2e41ea0.png?v=1721341678&amp;width=44" alt="" width="44" height="44" loading="lazy" sizes="(max-width: 699px) calc(73vw - 40px), (max-width: 999px) calc(38vw - 64px), calc(min(1300px, 100vw) / 3)" class="rounded"><div class="v-stack gap-4 text-start"><p class="h4">Track Nocturnal Erections</p>
4326<div class="prose"><p>
43263-5 nocturnal erections are typical for men. The TechRing generates an Erectile Fitness Score for activity tracking.</p>
4327</div></div></div><div class="multi-column__item justify-start snap-start" style="--multi-column-item-column-count: span 4" ><img src="//myfirmtech.com/cdn/shop/files/4-1_850330fd-cc1c-433f-9358-2f6609a934e2.png?v=1721341678&amp;width=44" alt="" width="44" height="44" loading="lazy" sizes="(max-width: 699px) calc(73vw - 40px), (max-width: 999px) calc(38vw - 64px), calc(min(1300px, 100vw) / 3)" class="rounded"><div class="v-stack gap-4 text-start"><p class="h4">Medication & Supplements</p>
4328<div class="prose"><p>Gain insights into how supplements and medications affect your your sexual performance and cardiovascular health.</p>
4329</div></div></div></div>
4330    </div>
4331  </div></section><section id="shopify-section-template--17107273580694__media_with_text_APkLyC" class="shopify-section shopify-section--media-with-text"><style>
4332  #shopify-section-template--17107273580694__media_with_text_APkLyC {
4333    --section-background-hash: 0;
4334  }
4335
4336  #shopify-section-template--17107273580694__media_with_text_APkLyC + * {
4337    --previous-section-background-hash: 0;
4338  }</style><style>
4339  #shopify-section-template--17107273580694__media_with_text_APkLyC {
4340    --media-with-text-gap: var(--grid-gutter);
4341    --media-with-text-item-grid-template: "media" "content" / auto;
4342  }
4343
4344  @media screen and (min-width: 1000px) {
4345    #shopify-section-template--17107273580694__media_with_text_APkLyC {
4346      --media-with-text-gap: var(--spacing-6);
4347    }
4348  }#block-template--17107273580694__media_with_text_APkLyC-video_Q6xHjB {
4349      --media-with-text-item-icon-width: 120px;
4350    }
4351
4352    @media screen and (min-width: 1000px) {
4353      #block-template--17107273580694__media_with_text_APkLyC-video_Q6xHjB {
4354        --media-with-text-item-grid-template: "content media" / minmax(0, 1.0fr) minmax(0, 1.0fr);
4355      }
4356    }</style><div class="section   section-blends section-full">
4357  <media-with-text class="media-with-text "><div id="block-template--17107273580694__media_with_text_APkLyC-video_Q6xHjB" class="media-with-text__item" >
4358        <div class="media-with-text__media rounded" reveal-on-scroll="true"><video-media autoplay style="--aspect-ratio: 1.5"><video playsinline="playsinline" playslinline="true" muted="muted" loop="loop" preload="metadata" poster="//myfirmtech.com/cdn/shop/files/preview_images/1cf8d9f47f724e5094182fa9d318d6bd.thumbnail.0000000000_small.jpg?v=1721343165" loading="lazy"><source src="//myfirmtech.com/cdn/shop/videos/c/vp/1cf8d9f47f724e5094182fa9d318d6bd/1cf8d9f47f724e5094182fa9d318d6bd.HD-1080p-7.2Mbps-31990833.mp4?v=0" type="video/mp4"><img src="//myfirmtech.com/cdn/shop/files/preview_images/1cf8d9f47f724e5094182fa9d318d6bd.thumbnail.0000000000_small.jpg?v=1721343165"></video></video-media></div><div class="media-with-text__content rounded bg-custom text-custom"style="--background: 246 246 246; --text-color: 26 26 26;">
4359          <div class="prose break-all place-self-center-start text-start" reveal-on-scroll="true"><p class="h2">Can We Help You? Take Our Quick Quiz</p><div class = "block-content"></div>
4360<a class="button button--xl"
4361  style="--button-background: 37 47 106 / var(--button-background-opacity, 1);--button-outline-color: 37 47 106;--button-text-color: 255 255 255;"
4362  
4363  
4364  
4365  
4366  href="https://shassessment.myfirmtech.com/?utm_medium=organic&utm_source=assessment&utm_campaign=myfirmtech"
4367  
4368  
4369 >Free Sexual Health Assessment</a></div>
4370        </div>
4371      </div></media-with-text>
4372</div>
4373
4374
4375</section><section id="shopify-section-template--17107273580694__multi_column_tm9HbJ" class="shopify-section shopify-section--multi-column"><style>
4376  #shopify-section-template--17107273580694__multi_column_tm9HbJ {
4377    --section-background-hash: 0;
4378  }
4379
4380  #shopify-section-template--17107273580694__multi_column_tm9HbJ + * {
4381    --previous-section-background-hash: 0;
4382  }</style><style>
4383    #shopify-section-template--17107273580694__multi_column_tm9HbJ {
4384      --multi-column-grid: auto / auto-flow 73vw;
4385      --multi-column-list-gap: var(--grid-gutter);
4386    }
4387  </style>
4388
4389  <div class="section   section-blends section-full">
4390    <div class="section-stack">
4391  <section-header class="section-header justify-center justify-items-center text-center"><div class="prose"><p class="subheading">Health or Pleasure?</p><h2 class="h2" reveal-on-scroll="true"><split-lines>Find The Right Ring For You</split-lines></h2>
4392          <div class="sentence-case">
4393            
4394          </div>
4395        
4396      </div></section-header><div class="multi-column scroll-area bleed md:unbleed"><div class="multi-column__item justify-center snap-start" style="--multi-column-item-column-count: span 6" ><img src="//myfirmtech.com/cdn/shop/files/Health-Cover.png?v=1721961217&amp;width=2480" alt="" srcset="//myfirmtech.com/cdn/shop/files/Health-Cover.png?v=1721961217&amp;width=300 300w, //myfirmtech.com/cdn/shop/files/Health-Cover.png?v=1721961217&amp;width=400 400w, //myfirmtech.com/cdn/shop/files/Health-Cover.png?v=1721961217&amp;width=500 500w, //myfirmtech.com/cdn/shop/files/Health-Cover.png?v=1721961217&amp;width=600 600w, //myfirmtech.com/cdn/shop/files/Health-Cover.png?v=1721961217&amp;width=800 800w, //myfirmtech.com/cdn/shop/files/Health-Cover.png?v=1721961217&amp;width=1000 1000w, //myfirmtech.com/cdn/shop/files/Health-Cover.png?v=1721961217&amp;width=1200 1200w, //myfirmtech.com/cdn/shop/files/Health-Cover.png?v=1721961217&amp;width=1400 1400w, //myfirmtech.com/cdn/shop/files/Health-Cover.png?v=1721961217&amp;width=1600 1600w, //myfirmtech.com/cdn/shop/files/Health-Cover.png?v=1721961217&amp;width=1800 1800w" width="2480" height="2655" loading="lazy" sizes="(max-width: 699px) calc(73vw - 40px), (max-width: 999px) calc(38vw - 64px), calc(min(1300px, 100vw) / 2)" class="rounded"><div class="v-stack gap-4 text-center"><p class="h4"></p>
4397<div class="prose">
4398<div>
4399<a class="button button--lg"
4400  
4401  
4402  
4403  
4404  
4405  href="/collections/health-rings"
4406  
4407  
4408 >Shop The Health Ring</a></div></div></div></div><div class="multi-column__item justify-center snap-start" style="--multi-column-item-column-count: span 6" ><img src="//myfirmtech.com/cdn/shop/files/Pleasure-Cover.png?v=1721961217&amp;width=2480" alt="" srcset="//myfirmtech.com/cdn/shop/files/Pleasure-Cover.png?v=1721961217&amp;width=300 300w, //myfirmtech.com/cdn/shop/files/Pleasure-Cover.png?v=1721961217&amp;width=400 400w, //myfirmtech.com/cdn/shop/files/Pleasure-Cover.png?v=1721961217&amp;width=500 500w, //myfirmtech.com/cdn/shop/files/Pleasure-Cover.png?v=1721961217&amp;width=600 600w, //myfirmtech.com/cdn/shop/files/Pleasure-Cover.png?v=1721961217&amp;width=800 800w, //myfirmtech.com/cdn/shop/files/Pleasure-Cover.png?v=1721961217&amp;width=1000 1000w, //myfirmtech.com/cdn/shop/files/Pleasure-Cover.png?v=1721961217&amp;width=1200 1200w, //myfirmtech.com/cdn/shop/files/Pleasure-Cover.png?v=1721961217&amp;width=1400 1400w, //myfirmtech.com/cdn/shop/files/Pleasure-Cover.png?v=1721961217&amp;width=1600 1600w, //myfirmtech.com/cdn/shop/files/Pleasure-Cover.png?v=1721961217&amp;width=1800 1800w" width="2480" height="2655" loading="lazy" sizes="(max-width: 699px) calc(73vw - 40px), (max-width: 999px) calc(38vw - 64px), calc(min(1300px, 100vw) / 2)" class="rounded"><div class="v-stack gap-4 text-center"><p class="h4"></p>
4409<div class="prose">
4410<div>
4411<a class="button button--lg"
4412  
4413  
4414  
4415  
4416  
4417  href="/collections/pleasure-rings"
4418  
4419  
4420 >Shop Pleasure Rings</a></div></div></div></div></div>
4421    </div>
4422  </div><style> #shopify-section-template--17107273580694__multi_column_tm9HbJ p.subheading {color: red; font-weight: 80;} </style></section><section id="shopify-section-template--17107273580694__image_with_text_overlay_WHynqh" class="shopify-section shopify-section--image-with-text-overlay"><style>
4423  #shopify-section-template--17107273580694__image_with_text_overlay_WHynqh {--section-outer-spacing-block: 0;--content-over-media-overlay: 0 0 0 / 0.0;}
4424</style>
4425
4426<div class="section   section-blends section-full text-custom"style="--text-color: 255 255 255;" ><image-banner reveal-on-scroll="true"  class="content-over-media content-over-media--auto full-bleed  text-custom"style="--text-color: 255 255 255;"><picture><source
4427            media="(max-width: 699px)"
4428            srcset="//myfirmtech.com/cdn/shop/files/guarantee-bar-m.png?v=1718888655&width=400 400w, //myfirmtech.com/cdn/shop/files/guarantee-bar-m.png?v=1718888655&width=600 600w, //myfirmtech.com/cdn/shop/files/guarantee-bar-m.png?v=1718888655&width=800 800w, //myfirmtech.com/cdn/shop/files/guarantee-bar-m.png?v=1718888655&width=1000 1000w, //myfirmtech.com/cdn/shop/files/guarantee-bar-m.png?v=1718888655&width=1200 1200w"
4429            width="547"
4430            height="120"
4431          ><img src="//myfirmtech.com/cdn/shop/files/guarantee-bar.png?v=1718888595&amp;width=1439" alt="" srcset="//myfirmtech.com/cdn/shop/files/guarantee-bar.png?v=1718888595&amp;width=200 200w, //myfirmtech.com/cdn/shop/files/guarantee-bar.png?v=1718888595&amp;width=300 300w, //myfirmtech.com/cdn/shop/files/guarantee-bar.png?v=1718888595&amp;width=400 400w, //myfirmtech.com/cdn/shop/files/guarantee-bar.png?v=1718888595&amp;width=500 500w, //myfirmtech.com/cdn/shop/files/guarantee-bar.png?v=1718888595&amp;width=600 600w, //myfirmtech.com/cdn/shop/files/guarantee-bar.png?v=1718888595&amp;width=700 700w, //myfirmtech.com/cdn/shop/files/guarantee-bar.png?v=1718888595&amp;width=800 800w, //myfirmtech.com/cdn/shop/files/guarantee-bar.png?v=1718888595&amp;width=900 900w, //myfirmtech.com/cdn/shop/files/guarantee-bar.png?v=1718888595&amp;width=1000 1000w, //myfirmtech.com/cdn/shop/files/guarantee-bar.png?v=1718888595&amp;width=1200 1200w, //myfirmtech.com/cdn/shop/files/guarantee-bar.png?v=1718888595&amp;width=1400 1400w" width="1439" height="120" loading="lazy" sizes="100vw"></picture></image-banner>
4432</div>
4433
4434</section><section id="shopify-section-template--17107273580694__17206312225bd979d8" class="shopify-section shopify-section--apps"><style>
4435  #shopify-section-template--17107273580694__17206312225bd979d8 {
4436    --section-background-hash: 0;
4437  }
4438
4439  #shopify-section-template--17107273580694__17206312225bd979d8 + * {
4440    --previous-section-background-hash: 0;
4441  }</style><style>
4442    #shopify-section-template--17107273580694__17206312225bd979d8 {
4443      
4444      
4445    }
4446  </style>
4447
4448  <div class="section   section-blends section-full"><div id="shopify-block-ATlpMOFlmMnlxREhre__okendo_reviews_widget_BQyKgd" class="shopify-block shopify-app-block">
4449
4450
4451
4452
4453<style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/okendo-reviews-lib.65939eaa.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/modules/okendo-widget.6aeb18ae.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/modules/widget.cb383169.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/modules/shared-components.d6924fbf.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/review-list/masonry.0e5de697.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/header-modules/rating-average.6f2ee529.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/header-modules/rating-breakdown.a108ab46.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/header-modules/recommends.826afd09.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/header-modules/attributes.7cf57481.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/header-modules/reviews-summary.bc0924f4.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/header-modules/reviews-keywords.d134dcfc.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/review-templates/card-featured-media.6ef99b1b.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/modules/attributes.9a58c98a.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/modules/tooltip.ea8fe98f.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/modules/media-thumbn
4453ail.2cd8dd9f.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/modules/show-more-button.36160e9f.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/modules/review-basic-content.68f28100.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/modules/reviewer.05892934.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/modules/helpful-voting.47319e5d.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/attribute-bars/bar-rounded.2793cccc.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/modules/avatar.89663c87.css"></style><style data-oke-reviews-version="0.85.5" type="text/css" data-href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/css/modules/flag.143bbb7e.css"></style><link data-oke-reviews-version="0.85.5" rel="stylesheet" type="text/css" href="https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus-css-bundles/0-85-5/reviews-widget.b5ee35499ed924715090709ae20c21f1.css">
4454<div
4455            data-oke-widget
4456            data-oke-reviews-product-id="shopify-7462086508694"
4457        >
4458            <div data-oke-reviews-version="0.104.2" aria-label="Rated 4.6 out of 5 stars Based on 98 reviews" data-oke-container="" tabindex="-1" role="region" class="okeReviews oke-w"><div class="js-oke-widgetSize oke-is-medium"><div class="oke-w-header"><div class="oke-w-header-content oke-w-header-content--verticalAlignTop oke-w-header-content--spaceAround"><div class="oke-w-header-content-block oke-w-header-content-block--oneThird oke-w-header-content-block--center"><div class="oke-w-header-content-module oke-w-header-content-module--center"><div class="oke-w-ratingAverageModule oke-w-ratingAverageModule--oneLine oke-w-ratingAverageModule--center"><div class="oke-w-ratingAverageModule-rating"><span class="oke-w-ratingAverageModule-rating-average"> 4.6 </span><span class="oke-w-ratingAverageModule-rating-stars"><div class="oke-stars"><!----><div class="oke-stars-background"><svg height="18" viewBox="0 0 79.22222222222221 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-empty"></use><use x="16.155555555555555" href="#oke-star-empty"></use><use x="32.31111111111111" href="#oke-star-empty"></use><use x="48.46666666666667" href="#oke-star-empty"></use><use x="64.62222222222222" href="#oke-star-empty"></use></svg></div><div class="oke-stars-foreground" style="width: 92.6283%;"><svg height="18" viewBox="0 0 79.22222222222221 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-filled"></use><use x="16.155555555555555" href="#oke-star-filled"></use><use x="32.31111111111111" href="#oke-star-filled"></use><use x="48.46666666666667" href="#oke-star-filled"></use><use x="64.62222222222222" href="#oke-star-filled"></use></svg></div><span class="oke-a11yText">Rated 4.6 out of 5 stars</span></div></span></div><div class="oke-w-ratingAverageModule-count"> Based on 98 reviews </div></div><!----><!----><!----><!----><!----><!----><!----><!----></div><div class="oke-w-header-content-module oke-w-header-content-module--center"><!----><div class="oke-w-breakdownModule oke-w-breakdownModule--contain"><div class="oke-w-breakdownModule-distribution"><div aria-hidden="true" class="oke-w-breakdownModule-distribution-label" style="grid-row: 1;"><span class="oke-w-breakdownModule-distribution-label-number"> 5 </span><span class="oke-w-breakdownModule-distribution-label-star"><div class="oke-stars"><svg height="12" viewBox="0 0 14.599999999999998 14" aria-hidden="true" style="overflow: visible;"><use href="#oke-star-filled"></use></svg><!----><span class="oke-a11yText">Rated  out of 5 stars</span></div></span></div><div aria-hidden="true" class="oke-w-breakdownModule-distribution-bar" style="grid-row: 1; background-color: rgb(245, 245, 245);"><div class="oke-w-breakdownModule-distribution-bar-fill" style="width: 76.5306%; background-color: rgb(176, 176, 176);"></div></div><div aria-hidden="true" class="oke-w-breakdownModule-distribution-count" style="grid-row: 1;"> 75 </div><div tabindex="0" role="button" aria-label="Total 5 star reviews: 75. Filter by 5 star reviews" class="oke-w-breakdownModule-distribution-highlight oke-is-clickable" style="grid-row: 1;"></div><!----><div aria-hidden="true" class="oke-w-breakdownModule-distribution-label" style="grid-row: 2;"><span class="oke-w-breakdownModule-distribution-label-number"> 4 </span><span class="oke-w-breakdownModule-distribution-label-star"><div class="oke-stars"><svg height="12" viewBox="0 0 14.599999999999998 14" aria-hidden="true" style="overflow: visible;"><use href="#oke-star-filled"></use></svg><!----><span class="oke-a11yText">Rated  out of 5 stars</span></div></span></div><div aria-hidden="true" class="oke-w-breakdownModule-distribution-bar" style="grid-row: 2; background-color: rgb(245, 245, 245);"><div class="oke-w-breakdownModule-distribution-bar-fill" style="width: 14.2857%; background-color: rgb(176, 176, 176);"></div></div><div aria-hidden="true" class="oke-w-breakdownModule-distribution-count" style="grid-row: 2;"> 14 </div><div tabindex="0" role="button" aria-label="Total 4 star reviews: 14. Filter by 4 star reviews" class="oke-w-breakdownModule-distribution-highlight oke-is-clickable" style="grid-row: 2;"></div><!----><div aria-hidden="true" class="oke-w-breakdownModule-distribution-label" style="grid-row: 3;"><span class="oke-w-breakdownModule-distribution-label-number"> 3 </span><span class="oke-w-breakdownModule-distribution-label-star"><div class="oke-stars"><svg height="12" viewBox="0 0 14.599999999999998 14" aria-hidden="true" style="overflow: visible;"><use href="#oke-star-filled"></use></svg><!----><span class="oke-a11yText">Rated  out of 5 stars</span></div></span></div><div aria-hidden="true" class="oke-w-breakdownModule-distribution-bar" style="grid-row: 3; background-color: rgb(245, 245, 245);"><div class="oke-w-breakdownModule-distribution-bar-fill" style="width: 3.06122%; background-color: rgb(176, 176, 176);"></div></div><div aria-hidden="true" class="oke-w-breakdownModule-distribution-count" style="grid-row: 3;"> 3 </div><div tabindex="0" role="button" aria-label="Total 3 star reviews: 3. Filter by 3 star reviews" class="oke-w-breakdownModule-distribution-highlight oke-is-clickable" style="grid-row: 3;"></div><!----><div aria-hidden="true" class="oke-w-breakdownModule-distribution-label" style="grid-row: 4;"><span class="oke-w-breakdownModule-distribution-label-number"> 2 </span><span class="oke-w-breakdownModule-distribution-label-star"><div class="oke-stars"><svg height="12" viewBox="0 0 14.599999999999998 14" aria-hidden="true" style="overflow: visible;"><use href="#oke-star-filled"></use></svg><!----><span class="oke-a11yText">Rated  out of 5 stars</span></div></span></div><div aria-hidden="true" class="oke-w-breakdownModule-distribution-bar" style="grid-row: 4; background-color: rgb(245, 245, 245);"><div class="oke-w-breakdownModule-distribution-bar-fill" style="width: 3.06122%; background-color: rgb(176, 176, 176);"></div></div><div aria-hidden="true" class="oke-w-breakdownModule-distribution-count" style="grid-row: 4;"> 3 </div><div tabindex="0" role="button" aria-label="Total 2 star reviews: 3. Filter by 2 star reviews" class="oke-w-breakdownModule-distribution-highlight oke-is-clickable" style="grid-row: 4;"></div><!----><div aria-hidden="true" class="oke-w-breakdownModule-distribution-label" style="grid-row: 5;"><span class="oke-w-breakdownModule-distribution-label-number"> 1 </span><span class="oke-w-breakdownModule-distribution-label-star"><div class="oke-stars"><svg height="12" viewBox="0 0 14.599999999999998 14" aria-hidden="true" style="overflow: visible;"><use href="#oke-star-filled"></use></svg><!----><span class="oke-a11yText">Rated  out of 5 stars</span></div></span></div><div aria-hidden="true" class="oke-w-breakdownModule-distribution-bar" style="grid-row: 5; background-color: rgb(245, 245, 245);"><div class="oke-w-breakdownModule-distribution-bar-fill" style="width: 3.06122%; background-color: rgb(176, 176, 176);"></div></div><div aria-hidden="true" class="oke-w-breakdownModule-distribution-count" style="grid-row: 5;"> 3 </div><div tabindex="0" role="button" aria-label="Total 1 star reviews: 3. Filter by 1 star reviews" class="oke-w-breakdownModule-distribution-highlight oke-is-clickable" style="grid-row: 5;"></div><!----></div></div><!----><!----><!----><!----><!----><!----><!----></div></div><div class="oke-w-header-content-block oke-w-header-content-block--oneThird oke-w-header-content-block--left"><div class="oke-w-header-content-module oke-w-header-content-module--left"><!----><!----><div class="oke-w-recommendsModule"><strong class="oke-w-recommendsModule-value">91%</strong><span class="oke-w-recommendsModule-text">would recommend this product</span></div><!----><!----><!----><!----><!----><!----></div></div><div class="oke-w-header-content-block oke-w-header-content-block--oneThird oke-w-header-content-block--center"><div class="oke-w-header-content-module oke-w-header-content-module--center"><!----><!----><!----><!----><!----><!----><!----><!----><!----></div></div><div class="oke-w-header-content-block oke-w-header-content-block--full oke-w-header-content-block--center"><div class="oke-w-header-content-module oke-w-header-content-module--center"><!----><!----><!----><!----><!----><!----><!----><!----><!----></div><div class="oke-w-header-content-module oke-w-header-content-module--center"><!----><!----><!----><!----><!----><!----><div class="oke-w-reviewsKeywordsModule"><div class="oke-reviewsKeywords"><div role="heading" aria-level="2" class="oke-reviewsKeywords-heading"><!----><span class="oke-reviewsKeywords-heading-text"> Customers Talked About </span></div><ul role="menu" tabindex="-1" class="oke-reviewsKeywords-list"><li data-keyword-topic="Comfort" role="menuitem" tabindex="0" class="oke-reviewsKeywords-list-category"> Comfort </li><li data-keyword-topic="Accuracy" role="menuitem" tabindex="0" class="oke-reviewsKeywords-list-category"> Accuracy </li><li data-keyword-topic="Tracking" role="menuitem" tabindex="0" class="oke-reviewsKeywords-list-category"> Tracking </li><li data-keyword-topic="Usability" role="menuitem" tabindex="0" class="oke-reviewsKeywords-list-category"> Usability </li><li data-keyword-topic="Durability" role="menuitem" tabindex="0" class="oke-reviewsKeywords-list-category"> Durability </li></ul><!----><!----></div></div><!----><!----></div></div></div></div><!----><div class="oke-w-main"><div id="reviews-panel-d8be10a1-58da-44d4-be83-5e67ee70dfe2" aria-label="Reviews" role="tabpanel" class="oke-w-panel"><div class="oke-w-reviewsTab"><div class="oke-w-reviews"><div class="oke-w-reviews-head"><button aria-expanded="false" aria-controls="filter-options" id="filter-toggle" type="button" class="oke-button oke-w-reviews-filterToggle"><span class="oke-icon"></span><span class="oke-button-text"> Filters <!----></span></button><div id="filter-options" aria-labelledby="filter-toggle" role="region" class="oke-w-reviews-filters"><!----></div><div class="oke-w-reviews-writeReview"><a href="https://okendo.reviews/?subscriberId=d13d40f8-1056-4293-a1fc-3fc5c9f0c587&amp;productId=shopify-7462086508694&amp;locale=en&amp;okeChannel=reviews-widget-write-review-button" target="_blank" rel="noopener" class="oke-w-writeReview oke-button"> Write a Review <span class="oke-a11yText">(Opens in a new window)</span></a></div></div><div class="oke-w-reviews-controls"><div class="oke-w-reviews-count"> 98 reviews </div><div class="oke-w-reviews-sort"><div class="oke-sortSelect" medialayout="featured"><label for="oke-sortSelect--reviews" class="oke-sortSelect-label"> Sort </label><select id="oke-sortSelect--reviews" aria-label="Sort" class="oke-sortSelect-sort oke-select"><!----><option value="date desc">Most Recent</option><option value="date asc">Oldest</option><option value="helpful desc">Most Helpful</option><option value="has_media desc">Photos &amp; Videos</option><option value="rating desc" selected="true">Highest Rating</option><option value="rating asc">Lowest Rating</option><option value="unhelpful desc">Least Helpful</option></select></div></div></div><div class="oke-w-reviews-main oke-w-reviews-main--nav-divider"><div canloadmore="true"><div class="oke-w-reviews-listMasonry" style="padding-top: 16px;"><ul class="oke-w-reviews-masonryGrid" style="grid-template-columns: repeat(auto-fill, minmax(32.0578%, 1fr));"><li class="oke-w-reviews-masonryGrid-item" style="grid-row-end: span 336; opacity: 1;"><div class="oke-reviewCardFeaturedMedia masonryContent oke-w-reviews-js-masonryContent oke-reviewCardFeaturedMedia--above" showhelpfulvoting="true"><!----><div class="oke-reviewCardFeaturedMedia-container"><div class="oke-reviewCardFeaturedMedia-content"><div class="oke-reviewContainer"><div class="oke-reviewContent oke-is-truncated oke-reviewContent--left"><div class="oke-reviewContent-top"><div class="oke-reviewContent-stars"><div class="oke-stars"><!----><div class="oke-stars-background"><svg height="18" viewBox="0 0 79.22222222222221 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-empty"></use><use x="16.155555555555555" href="#oke-star-empty"></use><use x="32.31111111111111" href="#oke-star-empty"></use><use x="48.46666666666667" href="#oke-star-empty"></use><use x="64.62222222222222" href="#oke-star-empty"></use></svg></div><div class="oke-stars-foreground" style="width: 100%;"><svg height="18" viewBox="0 0 79.22222222222221 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-filled"></use><use x="16.155555555555555" href="#oke-star-filled"></use><use x="32.31111111111111" href="#oke-star-filled"></use><use x="48.46666666666667" href="#oke-star-filled"></use><use x="64.62222222222222" href="#oke-star-filled"></use></svg></div><span class="oke-a11yText">Rated 5 out of 5 stars</span></div></div><div class="oke-reviewContent-date"><span>2 months ago</span></div></div><div role="heading" aria-level="2" class="oke-reviewContent-title oke-title">Verified customer </div><div class="oke-reviewContent-body oke-bodyText" style="height: 105px;"><p>I've had the tech ring now for 7 months and have recorded my nocturnal erections.
4458</p><p>There rings are great I have all 3 of them and use them almost every day.</p><p>I give a doubles thumbs up to there rings!</p></div><!----><button type="button" class="oke-reviewContent-readMore oke-readMore"><span class="oke-reviewContent-readMore-text oke-bodyText">Read More</span><span class="oke-a11yText">Read more about this review</span><!----></button></div><!----></div><!----><!----></div><div class="oke-reviewCardFeaturedMedia-head"><div class="oke-reviewCardFeaturedMedia-reviewer"><div class="oke-w-reviewer"><div class="oke-w-reviewer-avatar"><div class="oke-avatar"><strong class="oke-avatar-placeholder"> AH </strong><!----><!----></div></div><div><div class="oke-w-reviewer-identity"><strong class="oke-w-reviewer-name"> Adelbert H. </strong><!----></div><div class="oke-w-reviewer-verified"> Verified Buyer <span class="oke-w-reviewer-verified-icon"></span></div><!----></div></div></div><!----></div><div class="oke-w-review-footer"><div class="oke-footerBadges"><!----><!----><!----></div><div class="oke-w-review-helpful"><div class="oke-helpful"><span class="oke-helpful-label">Was this helpful?</span><div class="oke-helpful-vote"><button aria-pressed="false" type="button" tabindex="0" class="oke-helpful-vote-button oke-helpful-vote-button--positive"><span id="oke-helpful-vote-counter-positive-3fe4e3d2-357b-4517-9a84-703e1e14e4c2" class="oke-helpful-vote-counter"><span class="oke-a11yText">Yes, this review from Adelbert H. was helpful.</span> 1 <span class="oke-a11yText">
4458person voted yes</span></span></button><button aria-pressed="false" type="button" tabindex="0" class="oke-helpful-vote-button oke-helpful-vote-button--negative"><span id="oke-helpful-vote-counter-negative-3fe4e3d2-357b-4517-9a84-703e1e14e4c2" class="oke-helpful-vote-counter"><span class="oke-a11yText">No, this review from Adelbert H. was not helpful.</span> 1 <span class="oke-a11yText">person voted no</span></span></button></div></div></div></div></div></div></li><li class="oke-w-reviews-masonryGrid-item" style="grid-row-end: span 256; opacity: 1;"><div class="oke-reviewCardFeaturedMedia masonryContent oke-w-reviews-js-masonryContent oke-reviewCardFeaturedMedia--above" showhelpfulvoting="true"><!----><div class="oke-reviewCardFeaturedMedia-container"><div class="oke-reviewCardFeaturedMedia-content"><div class="oke-reviewContainer"><div class="oke-reviewContent oke-reviewContent--left"><div class="oke-reviewContent-top"><div class="oke-reviewContent-stars"><div class="oke-stars"><!----><div class="oke-stars-background"><svg height="18" viewBox="0 0 79.22222222222221 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-empty"></use><use x="16.155555555555555" href="#oke-star-empty"></use><use x="32.31111111111111" href="#oke-star-empty"></use><use x="48.46666666666667" href="#oke-star-empty"></use><use x="64.62222222222222" href="#oke-star-empty"></use></svg></div><div class="oke-stars-foreground" style="width: 100%;"><svg height="18" viewBox="0 0 79.22222222222221 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-filled"></use><use x="16.155555555555555" href="#oke-star-filled"></use><use x="32.31111111111111" href="#oke-star-filled"></use><use x="48.46666666666667" href="#oke-star-filled"></use><use x="64.62222222222222" href="#oke-star-filled"></use></svg></div><span class="oke-a11yText">Rated 5 out of 5 stars</span></div></div><div class="oke-reviewContent-date"><span>2 months ago</span></div></div><div role="heading" aria-level="2" class="oke-reviewContent-title oke-title">excellent</div><div class="oke-reviewContent-body oke-bodyText"><p>For  patient with ED , it is excellent  and complimentary</p></div><!----><button type="button" class="oke-reviewContent-readMore oke-readMore"><span class="oke-reviewContent-readMore-text oke-bodyText">Read More</span><span class="oke-a11yText">Read more about this review</span><!----></button></div><!----></div><!----><!----></div><div class="oke-reviewCardFeaturedMedia-head"><div class="oke-reviewCardFeaturedMedia-reviewer"><div class="oke-w-reviewer"><div class="oke-w-reviewer-avatar"><div class="oke-avatar"><strong class="oke-avatar-placeholder"> JR </strong><!----><!----></div></div><div><div class="oke-w-reviewer-identity"><strong class="oke-w-reviewer-name"> Jamil R. </strong><!----></div><div class="oke-w-reviewer-verified"> Verified Buyer <span class="oke-w-reviewer-verified-icon"></span></div><!----></div></div></div><!----></div><div class="oke-w-review-footer"><div class="oke-footerBadges"><!----><!----><!----></div><div class="oke-w-review-helpful"><div class="oke-helpful"><span class="oke-helpful-label">Was this helpful?</span><div class="oke-helpful-vote"><button aria-pressed="false" type="button" tabindex="0" class="oke-helpful-vote-button oke-helpful-vote-button--positive"><span id="oke-helpful-vote-counter-positive-64629514-3fb9-4585-986a-81e3fea4d4f4" class="oke-helpful-vote-counter"><span class="oke-a11yText">Yes, this review from Jamil R. was helpful.</span> 3 <span class="oke-a11yText">people voted yes</span></span></button><button aria-pressed="false" type="button" tabindex="0" class="oke-helpful-vote-button oke-helpful-vote-button--negative"><span id="oke-helpful-vote-counter-negative-64629514-3fb9-4585-986a-81e3fea4d4f4" class="oke-helpful-vote-counter"><span class="oke-a11yText">No, this review from Jamil R. was not helpful.</span> 1 <span class="oke-a11yText">
4458person voted no</span></span></button></div></div></div></div></div></div></li><li class="oke-w-reviews-masonryGrid-item" style="grid-row-end: span 332; opacity: 1;"><div class="oke-reviewCardFeaturedMedia masonryContent oke-w-reviews-js-masonryContent oke-reviewCardFeaturedMedia--above" showhelpfulvoting="true"><!----><div class="oke-reviewCardFeaturedMedia-container"><div class="oke-reviewCardFeaturedMedia-content"><div class="oke-reviewContainer"><div class="oke-reviewContent oke-is-truncated oke-reviewContent--left"><div class="oke-reviewContent-top"><div class="oke-reviewContent-stars"><div class="oke-stars"><!----><div class="oke-stars-background"><svg height="18" viewBox="0 0 79.22222222222221 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-empty"></use><use x="16.155555555555555" href="#oke-star-empty"></use><use x="32.31111111111111" href="#oke-star-empty"></use><use x="48.46666666666667" href="#oke-star-empty"></use><use x="64.62222222222222" href="#oke-star-empty"></use></svg></div><div class="oke-stars-foreground" style="width: 100%;"><svg height="18" viewBox="0 0 79.22222222222221 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-filled"></use><use x="16.155555555555555" href="#oke-star-filled"></use><use x="32.31111111111111" href="#oke-star-filled"></use><use x="48.46666666666667" href="#oke-star-filled"></use><use x="64.62222222222222" href="#oke-star-filled"></use></svg></div><span class="oke-a11yText">Rated 5 out of 5 stars</span></div></div><div class="oke-reviewContent-date"><span>3 months ago</span></div></div><div role="heading" aria-level="2" class="oke-reviewContent-title oke-title">Tech Ring Performance </div><div class="oke-reviewContent-body oke-bodyText" style="height: 101px;"><p>The tech ring provides valuable information and helps to see trends over time with benchmark data to see where you stand relative to others in your age group (and others for that matter).  You can see results from different influences, such as how many drinks you had that night and medication, if any, taken.  Additionally it is very functional, effective and easy to use as a “normal” ring, but more comfortable and provides data on that activity as well.  Wearing overnight takes some getting used to and I found it best to build up to that over time.  Definitely works as intended in both the data collection and functionality.  I also use the FirmTech non-tech rings on occasion as well and they are easy to use and effective.  A lot of work went into this by Elliot and his team and you can tell!  Very innovative.</p></div><!----><button type="button" class="oke-reviewContent-readMore oke-readMore"><span class="oke-reviewContent-readMore-text oke-bodyText">Read More</span><span class="oke-a11yText">Read more about this review</span><!----></button></div><!----></div><!----><!----></div><div class="oke-reviewCardFeaturedMedia-head"><div class="oke-reviewCardFeaturedMedia-reviewer"><div class="oke-w-reviewer"><div class="oke-w-reviewer-avatar"><div class="oke-avatar"><strong class="oke-avatar-placeholder"> G </strong><!----><!----></div></div><div><div class="oke-w-reviewer-identity"><strong class="oke-w-reviewer-name"> Go4it! </strong><!----></div><div class="oke-w-reviewer-verified"> Verified Buyer <span class="oke-w-reviewer-verified-icon"></span></div><!----></div></div></div><!----></div><div class="oke-w-review-footer"><div class="oke-footerBadges"><!----><!----><!----></div><div class="oke-w-review-helpful"><div class="oke-helpful"><span class="oke-helpful-label">Was this helpful?</span><div class="oke-helpful-vote"><button aria-pressed="false" type="button" tabindex="0" class="oke-helpful-vote-button oke-helpful-vote-button--positive"><span id="oke-helpful-vote-counter-positive-f7bc27ac-0734-4c66-92c5-66565bc7f427" class="oke-helpful-vote-counter"><span class="oke-a11yText">Yes, this review from Go4it! was helpful.</span> 2 <span class="oke-a11yText">people voted yes</span></span></button><button aria-pressed="false" type="button" tabindex="0" class="oke-helpful-vote-button oke-helpful-vote-button--negative"><span id="oke-helpful-vote-counter-negative-f7bc27ac-0734-4c66-92c5-66565bc7f427" class="oke-helpful-vote-counter"><span class="oke-a11yText">No, this review from Go4it! was not helpful.</span> 0 <span class="oke-a11yText">people voted no</span></span></button></div></div></div></div></div></div></li><li class="oke-w-reviews-masonryGrid-item" style="grid-row-end: span 332; opacity: 1;"><div class="oke-reviewCardFeaturedMedia masonryContent oke-w-reviews-js-masonryContent oke-reviewCardFeaturedMedia--above" showhelpfulvoting="true"><!----><div class="oke-reviewCardFeaturedMedia-container"><div class="oke-reviewCardFeaturedMedia-content"><div class="oke-reviewContainer"><div class="oke-reviewContent oke-is-truncated oke-reviewContent--left"><div class="oke-reviewContent-top"><div class="oke-reviewContent-stars"><div class="oke-stars"><!----><div class="oke-stars-background"><svg height="18" viewBox="0 0 79.22222222222221 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-empty"></use><use x="16.155555555555555" href="#oke-star-empty"></use><use x="32.31111111111111" href="#oke-star-empty"></use><use x="48.46666666666667" href="#oke-star-empty"></use><use x="64.62222222222222" href="#oke-star-empty"></use></svg></div><div class="oke-stars-foreground" style="width: 100%;"><svg height="18" viewBox="0 0 79.22222222222221 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-filled"></use><use x="16.155555555555555" href="#oke-star-filled"></use><use x="32.31111111111111" href="#oke-star-filled"></use><use x="48.46666666666667" href="#oke-star-filled"></use><use x="64.62222222222222" href="#oke-star-filled"></use></svg></div><span class="oke-a11yText">Rated 5 out of 5 stars</span></div></div><div class="oke-reviewContent-date"><span>3 months ago</span></div></div><div role="heading" aria-level="2" class="oke-reviewContent-title oke-title">TechRing</div><div class="oke-reviewContent-body oke-bodyText" style="height: 101px;"><p>I’ve been impressed by the TechRing because it does something no other wearable has really tackled before: it focuses specifically on penile health. </p><p>What I like most is the idea of turning something that was previously based on guesswork into actual data. By tracking erectile health over time, the ring can help users better understand changes in their body and potentially identify issues earlier. It feels like a genuinely innovative use of wearable technology rather than just another fitness gadget.</p><p>For anyone interested in taking a more proactive approach to their sexual health, it’s a fascinating product worth considering.</p></div><!----><button type="button" class="oke-reviewContent-readMore oke-readMore"><span class="oke-reviewContent-readMore-text oke-bodyText">Read More</span><span class="oke-a11yText">Read more about this review</span><!----></button></div><!----></div><!----><!----></div><div class="oke-reviewCardFeaturedMedia-head"><div class="oke-reviewCardFeaturedMedia-reviewer"><div class="oke-w-reviewer"><div class="oke-w-reviewer-avatar"><div class="oke-avatar"><strong class="oke-avatar-placeholder"> AM </strong><!----><!----></div></div><div><div class="oke-w-reviewer-identity"><strong class="oke-w-reviewer-name"> Adrian M. </strong><!----></div><div class="oke-w-reviewer-verified"> Verified Buyer <span class="oke-w-reviewer-verified-icon"></span></div><!----></div></div></div><!----></div><div class="oke-w-review-footer"><div class="oke-footerBadges"><!----><!----><!----></div><div class="oke-w-review-helpful"><div class="oke-helpful"><span class="oke-helpful-label">Was this helpful?</span><div class="oke-helpful-vote"><button aria-pressed="false" type="button" tabindex="0" class="oke-helpful-vote-button oke-helpful-vote-button--positive"><span id="oke-helpful-vote-counter-positive-24dc0b3a-5825-4e31-bc56-c601278fa4e4" class="oke-helpful-vote-counter"><span class="oke-a11yText">Yes, this review from Adrian M. was helpful.</span> 3 <span class="oke-a11yText">people voted yes</span></span></button><button aria-pressed="false" type="button" tabindex="0" class="oke-helpful-vote-button oke-helpful-vote-button--negative"><span id="oke-helpful-vote-counter-negative-24dc0b3a-5825-4e31-bc56-c601278fa4e4" class="oke-helpful-vote-counter"><span class="oke-a11yText">No, this review from Adrian M. was not helpful.</span> 1 <span class="oke-a11yText">
4458person voted no</span></span></button></div></div></div></div></div></div></li></ul></div><span tabindex="-1" aria-hidden="true"></span></div><!----><div class="oke-w-reviews-alerts"><div aria-hidden="true" role="alert" aria-live="assertive" aria-atomic="true" class="oke-alert oke-alert--bottom"><div class="oke-alert-inner"> Loading... </div></div><div aria-hidden="true" role="alert" aria-live="assertive" aria-atomic="true" class="oke-alert oke-alert--top"><div class="oke-alert-inner"> Loading... </div></div></div></div><div class="oke-w-reviews-footer"><div class="oke-showMore"><a href="?okeReviewsNextUrl=https%253A%252F%252Fapi.okendo.io%252Fv1%252Fstores%252Fd13d40f8-1056-4293-a1fc-3fc5c9f0c587%252Fproducts%252Fshopify-7462086508694%252Freviews%253Flimit%253D5%2526orderBy%253Drating%252520desc%2526lastEvaluated%253D%25257B%252522reviewId%252522%25253A%25252224dc0b3a-5825-4e31-bc56-c601278fa4e4%252522%25252C%252522subscriberId%252522%25253A%252522d13d40f8-1056-4293-a1fc-3fc5c9f0c587%252522%25252C%252522_rating_dateCreated%252522%25253A%2525225%25253A2026-06-04T15%25253A53%25253A44.471Z%252522%25252C%252522subscriberId_productId%252522%25253A%252522d13d40f8-1056-4293-a1fc-3fc5c9f0c587%25253Ashopify-7462086508694%252522%25257D&amp;okeReviewsPageNum=2" aria-label="Show more reviews" tabindex="0" class="oke-showMore-button oke-button"><span class="oke-showMore-button-text oke-button-text"> Show More </span></a></div></div><span role="status" aria-live="polite" class="oke-a11yText"></span></div></div><!----></div></div></div>
4458<script type="application/json" data-oke-metafield-data=""> {"areReviewsGrouped":false,"chatAssistant":{"reviewCount":98},"media":[],"productAttributes":[],"questionCount":0,"reviewAggregate":{"dateUpdated":"2026-09-14T20:03:53.072Z","mediaCount":2,"productId":"shopify-7462086508694","productName":"TechRing","ratingAndReviewCount":98,"ratingAndReviewCountByLevel":{"level1Count":3,"level2Count":3,"level3Count":3,"level4Count":14,"level5Count":75},"ratingAndReviewValuesTotal":449,"ratingCount":0,"ratingCountByLevel":{},"ratingValuesTotal":0,"recommendationCount":89,"replyCount":60,"replyWordsTotal":2209,"reviewCount":98,"reviewCountByLevel":{"level1Count":3,"level2Count":3,"level3Count":3,"level4Count":14,"level5Count":75},"reviewRatingValuesTotal":449,"reviewWordsTotal":6267,"subscriberId_productId":"d13d40f8-1056-4293-a1fc-3fc5c9f0c587:shopify-7462086508694","subscriberId":"d13d40f8-1056-4293-a1fc-3fc5c9f0c587"},"reviews":[{"subscriberId":"d13d40f8-1056-4293-a1fc-3fc5c9f0c587","reviewId":"3fe4e3d2-357b-4517-9a84-703e1e14e4c2","subscriberId_productId":"d13d40f8-1056-4293-a1fc-3fc5c9f0c587:shopify-7462086508694","productId":"shopify-7462086508694","body":"I've had the tech ring now for 7 months and have recorded my nocturnal erections.\nThere rings are great I have all 3 of them and use them almost every day.\nI give a doubles thumbs up to there rings!","dateCreated":"2026-07-11T04:26:24.429Z","dateUpdated":"2026-07-11T04:26:24.429Z","helpfulCount":1,"isRecommended":true,"languageCode":"en","productHandle":"the-tech-ring","productImageUrl":"https://cdn.shopify.com/s/files/1/0577/3177/6662/files/techring-2307333_x280.png?v=1777043127","productName":"TechRing","productUrl":"//myfirmtech.com/products/the-tech-ring","rating":5,"reply":{"body":"<p>Hi Adelbert, thanks so much for the great feedback! We&#39;re thrilled to hear you&#39;re enjoying the Tech Ring and all three rings. We truly appreciate your support and the double thumbs up!</p>","dateCreated":"2026-07-11T16:27:29.015Z","title":"FirmTech Inc"},"reviewer":{"displayName":"Adelbert H.","isVerified":true},"isIncentivized":false,"status":"approved","title":"Verified customer ","unhelpfulCount":1,"variantId":"41753911001238"},{"subscriberId":"d13d40f8-1056-4293-a1fc-3fc5c9f0c587","reviewId":"64629514-3fb9-4585-986a-81e3fea4d4f4","subscriberId_productId":"d13d40f8-1056-4293-a1fc-3fc5c9f0c587:shopify-7462086508694","productId":"shopify-7462086508694","body":"For  patient with ED , it is excellent  and complimentary","dateCreated":"2026-07-05T11:06:49.941Z","dateUpdated":"2026-07-05T11:06:49.941Z","helpfulCount":3,"isRecommended":true,"languageCode":"en","productHandle":"the-tech-ring","productImageUrl":"https://cdn.shopify.com/s/files/1/0577/3177/6662/files/techring-2307333_x280.png?v=1777043127","productName":"TechRing","productUrl":"//myfirmtech.com/products/the-tech-ring","rating":5,"reply":{"body":"<p>Hi Jamil, thanks for the great feedback! We&#39;re glad to hear it&#39;s been a helpful complement for you. We really appreciate your support!</p>","dateCreated":"2026-07-05T15:27:38.412Z","title":"FirmTech Inc"},"reviewer":{"displayName":"Jamil R.","isVerified":true},"isIncentivized":true,"status":"approved","title":"excellent","unhelpfulCount":1,"variantId":"41753911001238"},{"subscriberId":"d13d40f8-1056-4293-a1fc-3fc5c9f0c587","reviewId":"f7bc27ac-0734-4c66-92c5-66565bc7f427","subscriberId_productId":"d13d40f8-1056-4293-a1fc-3fc5c9f0c587:shopify-7462086508694","productId":"shopify-7462086508694","body":"The tech ring provides valuable information and helps to see trends over time with benchmark data to see where you stand relative to others in your age group (and others for that matter).  You can see results from different influences, such as how many drinks you had that night and medication, if any, taken.  Additionally it is very functional, effective and easy to use as a “normal” ring, but more comfortable and provides data on that activity as well.  Wearing overnight takes some getting used to and I found it best to build up to that over time.  Definitely works as intended in both the data collection and functionality.  I also use the FirmTech non-tech rings on occasion as well and they are easy to use and effective.  A lot of work went into this by Elliot and his team and you can tell!  Very innovative.","dateCreated":"2026-06-12T13:19:23.312Z","dateUpdated":"2026-06-12T13:19:23.312Z","helpfulCount":2,"isRecommended":true,"languageCode":"en","productHandle":"the-tech-ring","productImageUrl":"https://cdn.shopify.com/s/files/1/0577/3177/6662/files/techring-2307333_x280.png?v=1777043127","productName":"TechRing","productUrl":"//myfirmtech.com/products/the-tech-ring","rating":5,"reply":{"body":"<p>Hi Go4it, thanks for the thoughtful feedback! We’re really glad you’re finding value in the insights, comfort, and ease of use, and we appreciate you sharing your experience with both the Tech Ring and non-tech rings. Your support means a lot!</p>","dateCreated":"2026-06-12T16:03:00.330Z","title":"FirmTech Inc"},"reviewer":{"displayName":"Go4it!","isVerified":true},"isIncentivized":true,"status":"approved","title":"Tech Ring Performance ","unhelpfulCount":0,"variantId":"41753911001238"},{"subscriberId":"d13d40f8-1056-4293-a1fc-3fc5c9f0c587","reviewId":"24dc0b3a-5825-4e31-bc56-c601278fa4e4","subscriberId_productId":"d13d40f8-1056-4293-a1fc-3fc5c9f0c587:shopify-7462086508694","productId":"shopify-7462086508694","body":"I’ve been impressed by the TechRing because it does something no other wearable has really tackled before: it focuses specifically on penile health. \nWhat I like most is the idea of turning something that was previously based on guesswork into actual data. By tracking erectile health over time, the ring can help users better understand changes in their body and potentially identify issues earlier. It feels like a genuinely innovative use of wearable technology rather than just another fitness gadget.\nFor anyone interested in taking a more proactive approach to their sexual health, it’s a fascinating product worth considering.","dateCreated":"2026-06-04T15:53:44.471Z","dateUpdated":"2026-06-04T15:53:44.471Z","helpfulCount":3,"isRecommended":true,"languageCode":"en","productHandle":"the-tech-ring","productImageUrl":"https://cdn.shopify.com/s/files/1/0577/3177/6662/files/techring-2307333_x280.png?v=1777043127","productName":"TechRing","productUrl":"//myfirmtech.com/products/the-tech-ring","rating":5,"reply":{"body":"<p>Hi Adrian, thanks for sharing this thoughtful feedback; we’re really glad to hear you appreciate the focus on penile health and the value of tracking real data over time. It means a lot to know y
4458ou see it as a meaningful, innovative tool. We truly appreciate your support!</p>","dateCreated":"2026-06-04T18:02:46.979Z","title":"FirmTech Inc"},"reviewer":{"displayName":"Adrian M.","isVerified":true},"isIncentivized":true,"status":"approved","title":"TechRing","unhelpfulCount":1,"variantId":"41753911001238"}],"reviewsKeywords":{"keywordTopics":[{"keywords":[{"name":"comfort","occurrences":22},{"name":"fit","occurrences":7},{"name":"comfortable","occurrences":1},{"name":"overnight wear","occurrences":1},{"name":"ring tension","occurrences":1},{"name":"sizing","occurrences":1}],"topic":"Comfort"},{"keywords":[{"name":"effectiveness","occurrences":8},{"name":"accuracy","occurrences":6},{"name":"data quality","occurrences":3},{"name":"detection","occurrences":2},{"name":"measurement","occurrences":2},{"name":"data accuracy","occurrences":1},{"name":"reliability","occurrences":1},{"name":"sensitivity","occurrences":1}],"topic":"Accuracy"},{"keywords":[{"name":"tracking","occurrences":6},{"name":"data tracking","occurrences":3},{"name":"sleep tracking","occurrences":2},{"name":"night tracking","occurrences":1},{"name":"monitoring","occurrences":1},{"name":"sleep","occurrences":1}],"topic":"Tracking"},{"keywords":[{"name":"ease of use","occurrences":6},{"name":"app","occurrences":5},{"name":"functionality","occurrences":3},{"name":"insights","occurrences":3},{"name":"learning curve","occurrences":2},{"name":"connectivity","occurrences":1},{"name":"display","occurrences":1}],"topic":"Usability"},{"keywords":[{"name":"durability","occurrences":6},{"name":"quality","occurrences":4},{"name":"charging","occurrences":3},{"name":"hardware","occurrences":1},{"name":"material compatibility","occurrences":1}],"topic":"Durability"},{"keywords":[{"name":"recording","occurrences":4},{"name":"performance","occurrences":3},{"name":"device","occurrences":2},{"name":"sensor","occurrences":1},{"name":"results","occurrences":1}],"topic":"Performance"},{"keywords":[{"name":"price","occurrences":3},{"name":"support","occurrences":2},{"name":"usefulness","occurrences":1},{"name":"useful","occurrences":1}],"topic":"Value"}],"languageCode":"en"},"reviewsNextUrl":"https://api.okendo.io/v1/stores/d13d40f8-1056-4293-a1fc-3fc5c9f0c587/products/shopify-7462086508694/reviews?limit=5&orderBy=rating%20desc&lastEvaluated=%7B%22reviewId%22%3A%2224dc0b3a-5825-4e31-bc56-c601278fa4e4%22%2C%22subscriberId%22%3A%22d13d40f8-1056-4293-a1fc-3fc5c9f0c587%22%2C%22_rating_dateCreated%22%3A%225%3A2026-06-04T15%3A53%3A44.471Z%22%2C%22subscriberId_productId%22%3A%22d13d40f8-1056-4293-a1fc-3fc5c9f0c587%3Ashopify-7462086508694%22%7D","sort":{"defaultSort":"rating desc"}} </script>
4458</div>
4458<script id="oke-widget-resize">!(function() { const widgets = document.querySelectorAll('.js-oke-widgetSize'); if (widgets && widgets.length) { if (!window.okeSetWidgetSizes) { window.okeSetWidgetSizes = (allWidgets) => { if (allWidgets) { allWidgets.forEach(widget => { const width = widget.getBoundingClientRect().width; widget.classList.remove('oke-is-small', 'oke-is-medium', 'oke-is-large'); widget.classList.add(width > 960 ? 'oke-is-large' : width > 640 ? 'oke-is-medium' : 'oke-is-small'); }); } const gridItems = document.querySelectorAll(".oke-w-reviews-js-masonryContent"); gridItems.forEach(gridItem => { gridItem.parentElement.style.gridRowEnd = `span ${(gridItem.clientHeight + 10)}`; }); }; } if (!window.okeResizeObserver) { let okeMetafieldResizerTimer; window.okeResizeObserver = new ResizeObserver(entries => { if (entries && entries.length) { if (okeMetafieldResizerTimer) { clearTimeout(okeMetafieldResizerTimer); } okeMetafieldResizerTimer = window.setTimeout(() => { window.okeSetWidgetSizes(entries.map(e => e.target)); }, 100); } }); } window.okeSetWidgetSizes(document.querySelectorAll('.js-oke-widgetSize')); widgets.forEach((widget) => { window.okeResizeObserver.observe(widget); }); } })();</script>
4458
4459        </div>
4460
4461
4462</div></div>
4463</section><section id="shopify-section-template--17107273580694__scrolling_text_fa3ngy" class="shopify-section shopify-section--scrolling-text"><style>
4464  #shopify-section-template--17107273580694__scrolling_text_fa3ngy {
4465    --section-background-hash: 0;
4466  }
4467
4468  #shopify-section-template--17107273580694__scrolling_text_fa3ngy + * {
4469    --previous-section-background-hash: 0;
4470  }</style><style>
4471    #shopify-section-template--17107273580694__scrolling_text_fa3ngy {
4472      --section-spacing-inline: 0;
4473      --scrolling-text-font-size: 3.75rem;
4474    }
4475
4476    @media screen and (min-width: 700px) {
4477      #shopify-section-template--17107273580694__scrolling_text_fa3ngy {
4478        --scrolling-text-font-size: 5rem;
4479      }
4480    }
4481  </style><div class="section   section-blends section-full text-custom"style="--text-color: 215 215 215;"><div class="scrolling-text scrolling-text--auto"><marquee-text scrolling-speed="10" class="scrolling-text__wrapper"><span class="scrolling-text__text heading " >Discover Our Products Today</span><span class="scrolling-text__text heading motion-reduce:hidden" aria-hidden="true">Discover Our Products Today</span><span class="scrolling-text__text heading motion-reduce:hidden" aria-hidden="true">Discover Our Products Today</span><span class="scrolling-text__text heading motion-reduce:hidden" aria-hidden="true">Discover Our Products Today</span><span class="scrolling-text__text heading motion-reduce:hidden" aria-hidden="true">Discover Our Products Today</span><span class="scrolling-text__text heading motion-reduce:hidden" aria-hidden="true">Discover Our Products Today</span><span class="scrolling-text__text heading motion-reduce:hidden" aria-hidden="true">Discover Our Products Today</span><span class="scrolling-text__text heading motion-reduce:hidden" aria-hidden="true">Discover Our Products Today</span><span class="scrolling-text__text heading motion-reduce:hidden" aria-hidden="true">Discover Our Products Today</span><span class="scrolling-text__text heading motion-reduce:hidden" aria-hidden="true">Discover Our Products Today</span></marquee-text></div>
4482  </div></section><div id="shopify-section-template--17107273580694__176599180264aa3172" class="shopify-section">
4483
4484
4485<style data-shopify>
4486  .ai-popup-overlay-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m {
4487    position: fixed;
4488    top: 0;
4489    left: 0;
4490    width: 100%;
4491    height: 100%;
4492    background-color: rgba(0, 0, 0, 0.5);
4493    z-index: 9998;
4494    opacity: 0;
4495    visibility: hidden;
4496    transition: opacity 0.3s ease, visibility 0.3s ease;
4497    display: block;
4498  }
4499
4500  .ai-popup-overlay-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m.active {
4501    opacity: 1;
4502    visibility: visible;
4503  }
4504
4505  .ai-popup-container-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m {
4506    position: fixed;
4507    z-index: 9999;
4508    opacity: 0;
4509    visibility: hidden;
4510    transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
4511    max-width: 500px;
4512    width: 90%;
4513    display: block;
4514  }
4515
4516  .ai-popup-container-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m.active {
4517    opacity: 1;
4518    visibility: visible;
4519  }
4520
4521  .ai-popup-container-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m--top-left {
4522    top: 20px;
4523    left: 20px;
4524    transform: translateY(-20px);
4525  }
4526
4527  .ai-popup-container-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m--top-left.active {
4528    transform: translateY(0);
4529  }
4530
4531  .ai-popup-container-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m--top-center {
4532    top: 20px;
4533    left: 50%;
4534    transform: translate(-50%, -20px);
4535  }
4536
4537  .ai-popup-container-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m--top-center.active {
4538    transform: translate(-50%, 0);
4539  }
4540
4541  .ai-popup-container-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m--top-right {
4542    top: 20px;
4543    right: 20px;
4544    transform: translateY(-20px);
4545  }
4546
4547  .ai-popup-container-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m--top-right.active {
4548    transform: translateY(0);
4549  }
4550
4551  .ai-popup-container-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m--center {
4552    top: 50%;
4553    left: 50%;
4554    transform: translate(-50%, -50%) scale(0.9);
4555  }
4556
4557  .ai-popup-container-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m--center.active {
4558    transform: translate(-50%, -50%) scale(1);
4559  }
4560
4561  .ai-popup-container-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m--bottom-left {
4562    bottom: 20px;
4563    left: 20px;
4564    transform: translateY(20px);
4565  }
4566
4567  .ai-popup-container-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m--bottom-left.active {
4568    transform: translateY(0);
4569  }
4570
4571  .ai-popup-container-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m--bottom-center {
4572    bottom: 20px;
4573    left: 50%;
4574    transform: translate(-50%, 20px);
4575  }
4576
4577  .ai-popup-container-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m--bottom-center.active {
4578    transform: translate(-50%, 0);
4579  }
4580
4581  .ai-popup-container-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m--bottom-right {
4582    bottom: 20px;
4583    right: 20px;
4584    transform: translateY(20px);
4585  }
4586
4587  .ai-popup-container-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m--bottom-right.active {
4588    transform: translateY(0);
4589  }
4590
4591  .ai-popup-content-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m {
4592    background-color: #ffffff;
4593    border-radius: 24px;
4594    padding: 40px;
4595    position: relative;
4596    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
4597  }
4598
4599  .ai-popup-close-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m {
4600    position: absolute;
4601    top: 12px;
4602    right: 12px;
4603    background: none;
4604    border: none;
4605    cursor: pointer;
4606    padding: 8px;
4607    color: #1a1a1a;
4608    opacity: 0.7;
4609    transition: opacity 0.2s ease;
4610    z-index: 1;
4611  }
4612
4613  .ai-popup-close-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m:hover {
4614    opacity: 1;
4615  }
4616
4617  .ai-popup-close-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m svg {
4618    width: 20px;
4619    height: 20px;
4620  }
4621
4622  .ai-popup-heading-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m {
4623    color: #1a1a1a;
4624    font-size: 28px;
4625    margin: 0 0 12px;
4626    padding-right: 30px;
4627  }
4628
4629  .ai-popup-message-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m {
4630    color: #1a1a1a;
4631    font-size: 16px;
4632    margin: 0 0 20px;
4633    line-height: 1.5;
4634  }
4635
4636  .ai-popup-button-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m {
4637    display: inline-block;
4638    padding: 12px 24px;
4639    background-color: #eb243c;
4640    color: #ffffff;
4641    text-decoration: none;
4642    border-radius: 30px;
4643    font-size: 16px;
4644    transition: background-color 0.2s ease;
4645    border: none;
4646    cursor: pointer;
4647  }
4648
4649  .ai-popup-button-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m:hover {
4650    background-color: #ba181b;
4651  }
4652
4653  @media screen and (max-width: 749px) {
4654    .ai-popup-container-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m {
4655      max-width: calc(100% - 40px);
4656    }
4657
4658    .ai-popup-content-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m {
4659      padding: 30.0px;
4660    }
4661
4662    .ai-popup-heading-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m {
4663      font-size: 23.8px;
4664    }
4665
4666    .ai-popup-message-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m {
4667      font-size: 14.4px;
4668    }
4669  }
4670</style>
4671
4672<targeted-popup-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m
4673  class="ai-popup-wrapper-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m"
4674  data-delay="2"
4675  data-pages="product"
4676  data-countries="GB"
4677  
4678>
4679  <div class="ai-popup-overlay-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m"></div>
4680  <div class="ai-popup-container-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m ai-popup-container-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m--center">
4681    <div class="ai-popup-content-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m">
4682      <button
4683        class="ai-popup-close-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m"
4684        aria-label="Close popup"
4685      >
4686        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
4687          <line x1="18" y1="6" x2="6" y2="18"></line>
4688          <line x1="6" y1="6" x2="18" y2="18"></line>
4689        </svg>
4690      </button>
4691
4692      
4693        <h2 class="ai-popup-heading-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m">FirmTech is not shipping to the UK, but we have a partner in the UK!</h2>
4694      
4695
4696      
4697        <div class="ai-popup-message-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m">Click the button below and visit Venn Health to get your FirmTech products in the UK.</div>
4698      
4699
4700      
4701        <a href="https://theurologyshop.co.uk/firmtech" class="ai-popup-button-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m">
4702          Shop Venn Health
4703        </a>
4704      
4705    </div>
4706  </div>
4707</targeted-popup-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m>
4708
4709<script>
4710  (function() {
4711    class TargetedPopupawexqugzvruzcnvhlvaigenblockb8ee950hutw8m extends HTMLElement {
4712      constructor() {
4713        super();
4714        this.sessionKey = 'ai-popup-dismissed-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m';
4715        this.overlay = this.querySelector('.ai-popup-overlay-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m');
4716        this.container = this.querySelector('.ai-popup-container-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m');
4717        this.closeButton = this.querySelector('.ai-popup-close-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m');
4718        this.delay = parseInt(this.dataset.delay) * 1000;
4719        this.targetPages = this.dataset.pages.split(',').map(p => p.trim()).filter(p => p);
4720        this.targetCountries = this.dataset.countries.split(',').map(c => c.trim().toUpperCase()).filter(c => c);
4721      }
4722
4723      connectedCallback() {
4724        if (this.shouldShow()) {
4725          this.schedulePopup();
4726        }
4727        this.setupEventListeners();
4728      }
4729
4730      shouldShow() {
4731        if (sessionStorage.getItem(this.sessionKey)) {
4732          return false;
4733        }
4734
4735        if (!this.isTargetPage()) {
4736          return false;
4737        }
4738
4739        return true;
4740      }
4741
4742      isTargetPage() {
4743        if (this.targetPages.length === 0) {
4744          return true;
4745        }
4746
4747        const currentPath = window.location.pathname;
4748
4749        for (const page of this.targetPages) {
4750          if (page === 'home' && (currentPath === '/' || currentPath === '')) {
4751            return true;
4752          }
4753          if (page === 'product' && currentPath.includes('/products/')) {
4754            return true;
4755          }
4756          if (page === 'collection' && currentPath.includes('/collections/') && !currentPath.includes('/products/')) {
4757            return true;
4758          }
4759          if (page === 'cart' && currentPath.includes('/cart')) {
4760            return true;
4761          }
4762          if (page === 'all_pages') {
4763            return true;
4764          }
4765        }
4766
4767        return false;
4768      }
4769
4770      async checkCountryTarget() {
4771        if (this.targetCountries.length === 0) {
4772          return true;
4773        }
4774
4775        try {
4776          const response = await fetch('/browsing_context_suggestions.json');
4777          const data = await response.json();
4778          const userCountry = data.detected_values?.country?.handle?.toUpperCase();
4779
4780          if (userCountry && this.targetCountries.includes(userCountry)) {
4781            return true;
4782          }
4783
4784          return false;
4785        } catch (error) {
4786          return true;
4787        }
4788      }
4789
4790      async schedulePopup() {
4791        const countryMatch = await this.checkCountryTarget();
4792
4793        if (!countryMatch) {
4794          return;
4795        }
4796
4797        setTimeout(() => {
4798          this.showPopup();
4799        }, this.delay);
4800      }
4801
4802      showPopup() {
4803        this.overlay.classList.add('active');
4804        this.container.classList.add('active');
4805        document.body.style.overflow = 'hidden';
4806      }
4807
4808      hidePopup() {
4809        this.overlay.classList.remove('active');
4810        this.container.classList.remove('active');
4811        document.body.style.overflow = '';
4812        sessionStorage.setItem(this.sessionKey, 'true');
4813      }
4814
4815      setupEventListeners() {
4816        this.closeButton.addEventListener('click', () => {
4817          this.hidePopup();
4818        });
4819
4820        this.overlay.addEventListener('click', () => {
4821          this.hidePopup();
4822        });
4823
4824        document.addEventListener('keydown', (e) => {
4825          if (e.key === 'Escape' && this.container.classList.contains('active')) {
4826            this.hidePopup();
4827          }
4828        });
4829      }
4830    }
4831
4832    customElements.define('targeted-popup-awexqugzvruzcnvhlvaigenblockb8ee950hutw8m', TargetedPopupawexqugzvruzcnvhlvaigenblockb8ee950hutw8m);
4833  })();
4834</script>
4834
4835
4836
4837
4838
4839</div><div id="shopify-section-template--17107273580694__17659969871da7bd70" class="shopify-section">
4840
4841
4842<style data-shopify>
4843  .ai-geo-popup-overlay-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky {
4844    position: fixed;
4845    top: 0;
4846    left: 0;
4847    width: 100%;
4848    height: 100%;
4849    background-color: rgba(0, 0, 0, 0.5);
4850    z-index: 9998;
4851    opacity: 0;
4852    visibility: hidden;
4853    transition: opacity 0.3s ease, visibility 0.3s ease;
4854    display: block;
4855  }
4856
4857  .ai-geo-popup-overlay-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky.active {
4858    opacity: 1;
4859    visibility: visible;
4860  }
4861
4862  .ai-geo-popup-container-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky {
4863    position: fixed;
4864    z-index: 9999;
4865    background-color: #ffffff;
4866    border-radius: 24px;
4867    padding: 30px;
4868    max-width: 500px;
4869    width: 90%;
4870    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
4871    opacity: 0;
4872    visibility: hidden;
4873    transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
4874    display: block;
4875  }
4876
4877  .ai-geo-popup-container-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky.active {
4878    opacity: 1;
4879    visibility: visible;
4880  }
4881
4882  .ai-geo-popup-container-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky--center {
4883    top: 50%;
4884    left: 50%;
4885    transform: translate(-50%, -50%) scale(0.9);
4886  }
4887
4888  .ai-geo-popup-container-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky--center.active {
4889    transform: translate(-50%, -50%) scale(1);
4890  }
4891
4892  .ai-geo-popup-container-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky--top {
4893    top: 20px;
4894    left: 50%;
4895    transform: translate(-50%, -20px);
4896  }
4897
4898  .ai-geo-popup-container-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky--top.active {
4899    transform: translate(-50%, 0);
4900  }
4901
4902  .ai-geo-popup-container-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky--bottom {
4903    bottom: 20px;
4904    left: 50%;
4905    transform: translate(-50%, 20px);
4906  }
4907
4908  .ai-geo-popup-container-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky--bottom.active {
4909    transform: translate(-50%, 0);
4910  }
4911
4912  .ai-geo-popup-close-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky {
4913    position: absolute;
4914    top: 15px;
4915    right: 15px;
4916    background: none;
4917    border: none;
4918    cursor: pointer;
4919    padding: 5px;
4920    color: #677279;
4921    opacity: 0.7;
4922    transition: opacity 0.2s ease;
4923    line-height: 1;
4924  }
4925
4926  .ai-geo-popup-close-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky:hover {
4927    opacity: 1;
4928  }
4929
4930  .ai-geo-popup-close-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky svg {
4931    width: 24px;
4932    height: 24px;
4933  }
4934
4935  .ai-geo-popup-content-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky {
4936    text-align: center;
4937  }
4938
4939  .ai-geo-popup-heading-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky {
4940    color: #1a1a1a;
4941    font-size: 28px;
4942    margin: 0 0 15px;
4943    font-weight: 700;
4944  }
4945
4946  .ai-geo-popup-message-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky {
4947    color: #677279;
4948    font-size: 16px;
4949    margin: 0 0 20px;
4950    line-height: 1.5;
4951  }
4952
4953  .ai-geo-popup-button-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky {
4954    display: inline-block;
4955    padding: 12px 30px;
4956    background-color: #eb243c;
4957    color: #ffffff;
4958    text-decoration: none;
4959    border-radius: 30px;
4960    font-size: 16px;
4961    font-weight: 600;
4962    transition: background-color 0.3s ease;
4963    border: none;
4964    cursor: pointer;
4965  }
4966
4967  .ai-geo-popup-button-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky:hover {
4968    background-color: #ba181b;
4969  }
4970
4971  @media screen and (max-width: 749px) {
4972    .ai-geo-popup-container-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky {
4973      padding: 20px;
4974      max-width: 95%;
4975    }
4976
4977    .ai-geo-popup-heading-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky {
4978      font-size: calc(28px * 0.85);
4979    }
4980
4981    .ai-geo-popup-message-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky {
4982      font-size: calc(16px * 0.9);
4983    }
4984  }
4985</style>
4986
4987<geo-popup-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky
4988  class="ai-geo-popup-wrapper-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky"
4989  data-url-pattern="/products"
4990  data-countries="GB"
4991  data-delay="0"
4992  data-session-key="geo-popup-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky-dismissed"
4993  
4994>
4995  <div class="ai-geo-popup-overlay-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky"></div>
4996  <div class="ai-geo-popup-container-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky ai-geo-popup-container-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky--center">
4997    <button
4998      class="ai-geo-popup-close-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky"
4999      aria-label="Close popup"
5000    >
5001      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
5002        <line x1="18" y1="6" x2="6" y2="18"></line>
5003        <line x1="6" y1="6" x2="18" y2="18"></line>
5004      </svg>
5005    </button>
5006    <div class="ai-geo-popup-content-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky">
5007      
5008        <h2 class="ai-geo-popup-heading-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky">FirmTech is not shipping to the UK, but we have a partner in the UK!</h2>
5009      
5010      
5011        <div class="ai-geo-popup-message-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky"><p>Click the button below and visit Venn Health to get your FirmTech products in the UK.</p></div>
5012      
5013      
5014        <a href="https://theurologyshop.co.uk/firmtech" class="ai-geo-popup-button-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky">
5015          Shop Venn Health Now
5016        </a>
5017      
5018    </div>
5019  </div>
5020</geo-popup-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky>
5021
5022<script>
5023  (function() {
5024    class GeoPopupav3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky extends HTMLElement {
5025      constructor() {
5026        super();
5027        this.urlPattern = this.dataset.urlPattern || '';
5028        this.targetCountries = this.dataset.countries || '';
5029        this.delay = parseInt(this.dataset.delay) || 0;
5030        this.sessionKey = this.dataset.sessionKey;
5031        this.overlay = this.querySelector('.ai-geo-popup-overlay-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky');
5032        this.container = this.querySelector('.ai-geo-popup-container-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky');
5033        this.closeButton = this.querySelector('.ai-geo-popup-close-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky');
5034      }
5035
5036      connectedCallback() {
5037        if (this.shouldShow()) {
5038          this.init();
5039        }
5040      }
5041
5042      shouldShow() {
5043        if (sessionStorage.getItem(this.sessionKey)) {
5044          return false;
5045        }
5046
5047        if (this.urlPattern && !this.matchesUrlPattern()) {
5048          return false;
5049        }
5050
5051        return true;
5052      }
5053
5054      matchesUrlPattern() {
5055        const currentUrl = window.location.pathname + window.location.search;
5056        return currentUrl.includes(this.urlPattern);
5057      }
5058
5059      async init() {
5060        if (this.targetCountries) {
5061          const userCountry = await this.getUserCountry();
5062          const targetCountryList = this.targetCountries.split(',').map(c => c.trim().toUpperCase());
5063          
5064          if (!targetCountryList.includes(userCountry)) {
5065            return;
5066          }
5067        }
5068
5069        setTimeout(() => {
5070          this.show();
5071        }, this.delay);
5072
5073        this.setupEventListeners();
5074      }
5075
5076      async getUserCountry() {
5077        try {
5078          const response = await fetch('/browsing_context_suggestions.json');
5079          const data = await response.json();
5080          return data.detected_values.country.handle.toUpperCase();
5081        } catch (error) {
5082          console.error('Error fetching country:', error);
5083          return '';
5084        }
5085      }
5086
5087      show() {
5088        this.overlay.classList.add('active');
5089        this.container.classList.add('active');
5090        document.body.style.overflow = 'hidden';
5091      }
5092
5093      hide() {
5094        this.overlay.classList.remove('active');
5095        this.container.classList.remove('active');
5096        document.body.style.overflow = '';
5097        sessionStorage.setItem(this.sessionKey, 'true');
5098      }
5099
5100      setupEventListeners() {
5101        this.closeButton.addEventListener('click', () => this.hide());
5102        this.overlay.addEventListener('click', () => this.hide());
5103
5104        document.addEventListener('keydown', (e) => {
5105          if (e.key === 'Escape' && this.container.classList.contains('active')) {
5106            this.hide();
5107          }
5108        });
5109      }
5110    }
5111
5112    customElements.define('geo-popup-av3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky', GeoPopupav3ftqy8yl2ddovhceaigenblocka2c06e9dyyxky);
5113  })();
5114</script>
5114
5115
5116
5117
5118
5119</div>
5120<!-- BEGIN sections: footer-group -->
5121<footer id="shopify-section-sections--17107269550230__footer" class="shopify-section shopify-section-group-footer-group shopify-section--footer"><style>
5122  @media screen and (min-width: 1000px) {
5123    #shopify-section-sections--17107269550230__footer {--footer-block-list-gap: var(--spacing-10);--footer-block-list-justify-content: space-between;
5124    }
5125  }
5126</style><div class="footer">
5127  <div class="container">
5128    <div class="footer__wrapper"><div class="footer__block-list empty:hidden"><div class="footer__block footer__block--newsletter" ><img src="//myfirmtech.com/cdn/shop/files/Group.png?v=1718386492&amp;width=262" alt="" srcset="//myfirmtech.com/cdn/shop/files/Group.png?v=1718386492&amp;width=150 150w, //myfirmtech.com/cdn/shop/files/Group.png?v=1718386492&amp;width=262 262w" width="262" height="70" loading="lazy" style="max-width: 150px" sizes="150px"><div class="v-stack gap-6"><p class="h5">Subscribe To Mailing List For Health Tips, Product Launches, and More</p><form method="post" action="/contact#footer-newsletter" id="footer-newsletter" accept-charset="UTF-8" class="footer__newsletter-form form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="contact[tags]" value="newsletter"><div class="form-control" ><input id="input-sections--17107269550230__footer--contactemail" class="input is-floating" type="email" dir="ltr" name="contact[email]" placeholder=" " 
5129  
5130  
5131  
5132  
5133  autocomplete="email"
5134  
5135  enterkeyhint="send"
5136  required
5137  
5138><label for="input-sections--17107269550230__footer--contactemail" class="floating-label">E-mail</label><div class="self-submit-button">
5139        <button type="submit" class="circle-chevron hover:colors">
5140          <span class="sr-only">Subscribe</span><svg role="presentation" focusable="false" width="5" height="8" class="icon icon-chevron-right-small reverse-icon" viewBox="0 0 5 8">
5141        <path d="m.75 7 3-3-3-3" fill="none" stroke="currentColor" stroke-width="1.5"></path>
5142      </svg></button>
5143      </div></div></form></div>
5144                </div><div class="footer__block footer__block--menu" ><p class="bold">Learn</p><ul class="v-stack gap-3" role="list"><li>
5145                          <a href="/collections/firmtech" class="inline-block link-faded break-all">Shop</a>
5146                        </li><li>
5147                          <a href="/pages/health" class="inline-block link-faded break-all">Health</a>
5148                        </li><li>
5149                          <a href="/pages/pleasure" class="inline-block link-faded break-all">
5149Pleasure</a>
5150                        </li><li>
5151                          <a href="/pages/science" class="inline-block link-faded break-all">Science</a>
5152                        </li><li>
5153                          <a href="/blogs/news" class="inline-block link-faded break-all">Blog</a>
5154                        </li><li>
5155                          <a href="https://shassessment.myfirmtech.com/?utm_medium=organic&utm_source=assessment&utm_campaign=myfirmtech" class="inline-block link-faded break-all">Free Assessment</a>
5156                        </li><li>
5157                          <a href="/pages/press" class="inline-block link-faded break-all">Press</a>
5158                        </li></ul>
5159                  </div><div class="footer__block footer__block--menu" ><p class="bold">Support</p><ul class="v-stack gap-3" role="list"><li>
5160                          <a href="/pages/contact" class="inline-block link-faded break-all">Contact</a>
5161                        </li><li>
5162                          <a href="https://myfirmtech.com/apps/redo/returns-portal/login" class="inline-block link-faded break-all">Returns</a>
5163                        </li><li>
5164                          <a href="https://myfirmtech.com/apps/redo/returns-portal/login" class="inline-block link-faded break-all">Shipping Claims</a>
5165                        </li><li>
5166                          <a href="https://myfirmtech.myshopify.com/apps/redo/returns-portal/login?withdraw=true" class="inline-block link-faded break-all">EU Withdrawal</a>
5167                        </li><li>
5168                          <a href="/pages/clinician" class="inline-block link-faded break-all">Clinicians</a>
5169                        </li><li>
5170                          <a href="/pages/dealers" class="inline-block link-faded break-all">Dealers</a>
5171                        </li></ul>
5172                  </div><div class="footer__block footer__block--menu" ><p class="bold">Account</p><ul class="v-stack gap-3" role="list"><li>
5173                          <a href="/" class="inline-block link-faded break-all">Home</a>
5174                        </li><li>
5175                          <a href="https://myfirmtech.com/cart" class="inline-block link-faded break-all">Shopping Cart</a>
5176                        </li><li>
5177                          <a href="https://myfirmtech.com/account/register" class="inline-block link-faded break-all">Register</a>
5178                        </li><li>
5179                          <a href="https://myfirmtech.com/account/login" class="inline-block link-faded break-all">My Account</a>
5180                        </li><li>
5181                          <a href="/pages/affiliate" class="inline-block link-faded break-all">Become An Affiliate</a>
5182                        </li><li>
5183                          <a href="/pages/wholesale" class="inline-block link-faded break-all">Wholesale</a>
5184                        </li><li>
5185                          <a href="https://firmtech.customerdesk.io/" class="inline-block link-faded break-all">Help Center</a>
5186                        </li></ul>
5187                  </div><div class="footer__block footer__block--menu" ><p class="bold">Policies</p><ul class="v-stack gap-3" role="list"><li>
5188                          <a href="/pages/privacy-policy" class="inline-block link-faded break-all">Privacy Policy</a>
5189                        </li><li>
5190                          <a href="/pages/returns" class="inline-block link-faded break-all">Returns Policy</a>
5191                        </li><li>
5192                          <a href="/pages/terms-conditions" class="inline-block link-faded break-all">Terms & Conditions</a>
5193                        </li></ul>
5194                  </div></div><div class="footer__aside empty:hidden"><div class="footer__aside-top"><ul class="social-media " role="list"><li>
5195      <a href="https://x.com/myfirmtech" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on Twitter"><svg role="presentation" focusable="false" width="27" height="27" class="icon icon-twitter" viewBox="0 0 24 24">
5196        <path d="M16.94 4h2.715l-5.93 6.777L20.7 20h-5.462l-4.278-5.593L6.065 20H3.35l6.342-7.25L3 4h5.6l3.868 5.113L16.94 4Zm-.952 14.375h1.504L7.784 5.54H6.17l9.818 12.836Z" fill="currentColor"/>
5197      </svg></a>
5198    </li><li>
5199      <a href="https://www.instagram.com/myfirmtech/" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on Instagram"><svg role="presentation" focusable="false" width="27" height="27" class="icon icon-instagram" viewBox="0 0 24 24">
5200        <path fill-rule="evenodd" clip-rule="evenodd" d="M12 2.4c-2.607 0-2.934.011-3.958.058-1.022.046-1.72.209-2.33.446a4.705 4.705 0 0 0-1.7 1.107 4.706 4.706 0 0 0-1.108 1.7c-.237.611-.4 1.31-.446 2.331C2.41 9.066 2.4 9.392 2.4 12c0 2.607.011 2.934.058 3.958.046 1.022.209 1.72.446 2.33a4.706 4.706 0 0 0 1.107 1.7c.534.535 1.07.863 1.7 1.108.611.237 1.309.4 2.33.446 1.025.
5200047 1.352.058 3.959.058s2.934-.011 3.958-.058c1.022-.046 1.72-.209 2.33-.446a4.706 4.706 0 0 0 1.7-1.107 4.706 4.706 0 0 0 1.108-1.7c.237-.611.4-1.31.446-2.33.047-1.025.058-1.352.058-3.959s-.011-2.934-.058-3.958c-.047-1.022-.209-1.72-.446-2.33a4.706 4.706 0 0 0-1.107-1.7 4.705 4.705 0 0 0-1.7-1.108c-.611-.237-1.31-.4-2.331-.446C14.934 2.41 14.608 2.4 12 2.4Zm0 1.73c2.563 0 2.867.01 3.88.056.935.042 1.443.199 1.782.33.448.174.768.382 1.104.718.336.336.544.656.718 1.104.131.338.287.847.33 1.783.046 1.012.056 1.316.056 3.879 0 2.563-.01 2.867-.056 3.88-.043.935-.199 1.444-.33 1.782a2.974 2.974 0 0 1-.719 1.104 2.974 2.974 0 0 1-1.103.718c-.339.131-.847.288-1.783.33-1.012.046-1.316.056-3.88.056-2.563 0-2.866-.01-3.878-.056-.936-.042-1.445-.199-1.783-.33a2.974 2.974 0 0 1-1.104-.718 2.974 2.974 0 0 1-.718-1.104c-.131-.338-.288-.847-.33-1.783-.047-1.012-.056-1.316-.056-3.879 0-2.563.01-2.867.056-3.88.042-.935.199-1.443.33-1.782.174-.448.382-.768.718-1.104a2.974 2.974 0 0 1 1.104-.718c.338-.131.847-.288 1.783-.33C9.133 4.14 9.437 4.13 12 4.13Zm0 11.07a3.2 3.2 0 1 1 0-6.4 3.2 3.2 0 0 1 0 6.4Zm0-8.13a4.93 4.93 0 1 0 0 9.86 4.93 4.93 0 0 0 0-9.86Zm6.276-.194a1.152 1.152 0 1 1-2.304 0 1.152 1.152 0 0 1 2.304 0Z" fill="currentColor"/>
5201      </svg></a>
5202    </li><li>
5203      <a href="https://www.pinterest.com/MyFirmTech/" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on Pinterest"><svg role="presentation" focusable="false" width="27" height="27" class="icon icon-pinterest" viewBox="0 0 24 24">
5204        <path fill-rule="evenodd" clip-rule="evenodd" d="M11.765 2.401c3.59-.054 5.837 1.4 6.895 3.95.349.842.722 2.39.442 3.675-.112.512-.144 1.048-.295 1.53-.308.983-.708 1.853-1.238 2.603-.72 1.02-1.81 1.706-3.182 2.052-1.212.305-2.328-.152-2.976-.643-.206-.156-.483-.36-.56-.643h-.029c-.046.515-.244 1.062-.383 1.531-.193.65-.23 1.321-.472 1.929a12.345 12.345 0 0 1-.942 1.868c-.184.302-.692 1.335-1.061 1.347-.04-.078-.057-.108-.06-.245-.118-.19-.035-.508-.087-.766-.082-.4-.145-1.123-.06-1.53v-.643c.096-.442.092-.894.207-1.317.25-.92.39-1.895.648-2.848.249-.915.477-1.916.678-2.847.045-.21-.21-.815-.265-1.041-.174-.713-.042-1.7.176-2.236.275-.674 1.08-1.703 2.122-1.439.838.212 1.371 1.118 1.09 2.266-.295 1.205-.677 2.284-.943 3.49-.068.311.05.641.118.827.248.672 1 1.324 2.004 1.072 1.52-.383 2.193-1.76 2.652-3.246.124-.402.109-.781.206-1.225.204-.935.118-2.331-.177-3.061-.472-1.17-1.353-1.92-2.563-2.328L12.707 4.3c-.56-.128-1.626.064-2.004.183-1.69.535-2.737 1.427-3.388 3.032-.222.546-.344 1.1-.383 1.868l-.03.276c.13.686.144 1.14.413 1.653.132.252.447.451.5.765.032.185-.104.464-.147.613-.065.224-.041.48-.147.673-.192.349-.714.087-.943-.061-1.192-.77-2.175-2.995-1.62-5.144.085-.332.09-.62.206-.919.723-1.844 1.802-2.978 3.359-3.95.583-.364 1.37-.544 2.092-.734l1.149-.154Z" fill="currentColor"/>
5205      </svg></a>
5206    </li><li>
5207      <a href="https://www.youtube.com/channel/UC46J3ibyYyQNPBr5T58DpFg" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on YouTube"><svg role="presentation" focusable="false" width="27" height="27" class="icon icon-youtube" viewBox="0 0 24 24">
5208        <path fill-rule="evenodd" clip-rule="evenodd" d="M20.44 5.243c.929.244 1.66.963 1.909 1.876.451 1.654.451 5.106.451 5.106s0 3.452-.451 5.106a2.681 2.681 0 0 1-1.91 1.876c-1.684.443-8.439.443-8.439.443s-6.754 0-8.439-.443a2.682 2.682 0 0 1-1.91-1.876c-.45-1.654-.45-5.106-.45-5.106s0-3.452.45-5.106a2.681 2.681 0 0 1 1.91-1.876c1.685-.443 8.44-.443 8.44-.443s6.754 0 8.438.443Zm-5.004 6.982L9.792 15.36V9.091l5.646 3.134Z" fill="currentColor"/>
5209      </svg></a>
5210    </li><li>
5211      <a href="https://www.linkedin.com/company/myfirmtech/" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on LinkedIn"><svg role="presentation" focusable="false" width="27" height="27" class="icon icon-linkedin" viewBox="0 0 24 24">
5212        <path fill-rule="evenodd" clip-rule="evenodd" d="M7.349 5.478a1.875 1.875 0 1 0-3.749 0 1.875 1.875 0 1 0 3.749 0ZM7.092 19.2H3.857V8.78h3.235V19.2ZM12.22 8.78H9.121V19.2h3.228v-5.154c0-1.36.257-2.676 1.94-2.676 1.658 0 1.68 1.554 1.68 2.763V19.2H19.2v-5.715c0-2.806-.605-4.963-3.877-4.963-1.573 0-2.629.863-3.06 1.683h-.044V8.78Z" fill="currentColor"/>
5213      </svg></a>
5214    </li></ul><div class="h-stack gap-6"><link rel="stylesheet" href="//myfirmtech.com/cdn/shop/t/24/assets/country-flags.css?v=133253664215562886901772071395" media="print" onload="this.media='all'; this.onload = null"><div class="relative">
5215      <button type="button" class="text-with-icon gap-2.5 group" aria-controls="popover-localization-form-country--sections--17107269550230__footer" aria-expanded="false">
5216        <div class="h-stack gap-2"><span class="country-flags country-flags--US"></span><span class="bold text-sm">United States (USD $)</span>
5217        </div><svg role="presentation" focusable="false" width="10" height="7" class="icon icon-chevron-bottom" viewBox="0 0 10 7">
5218        <path d="m1 1 4 4 4-4" fill="none" stroke="currentColor" stroke-width="2"></path>
5219      </svg></button>
5220
5221      <x-popover id="popover-localization-form-country--sections--17107269550230__footer" initial-focus="[aria-selected='true']" anchor-horizontal="end" anchor-vertical="start" class="popover">
5222        <p class="h5" slot="title">Country</p><form method="post" action="/localization" id="localization-form-country--sections--17107269550230__footer" accept-charset="UTF-8" class="shopify-localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/" /><x-listbox class="popover-listbox popover-listbox--sm" role="listbox"><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AF" >
5223                <span class="country-flags country-flags--AF"></span>
5224                <span>Afghanistan (USD $)</span>
5225              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AX" >
5226                <span class="country-flags country-flags--AX"></span>
5227                <span>Åland Islands (USD $)</span>
5228              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AL" >
5229                <span class="country-flags country-flags--AL"></span>
5230                <span>Albania (USD $)</span>
5231              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="DZ" >
5232                <span class="country-flags country-flags--DZ"></span>
5233                <span>Algeria (USD $)</span>
5234              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AD" >
5235                <span class="country-flags country-flags--AD"></span>
5236                <span>Andorra (USD $)</span>
5237              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AO" >
5238                <span class="country-flags country-flags--AO"></span>
5239                <span>Angola (USD $)</span>
5240              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AI" >
5241                <span class="country-flags country-flags--AI"></span>
5242                <span>Anguilla (USD $)</span>
5243              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AG" >
5244                <span class="country-flags country-flags--AG"></span>
5245                <span>Antigua &amp; Barbuda (USD $)</span>
5246              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AR" >
5247                <span class="country-flags country-flags--AR"></span>
5248                <span>Argentina (USD $)</span>
5249              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AM" >
5250                <span class="country-flags country-flags--AM"></span>
5251                <span>Armenia (USD $)</span>
5252              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AW" >
5253                <span class="country-flags country-flags--AW"></span>
5254                <span>Aruba (USD $)</span>
5255              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AC" >
5256                <span class="country-flags country-flags--AC"></span>
5257                <span>Ascension Island (USD $)</span>
5258              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AU" >
5259                <span class="country-flags country-flags--AU"></span>
5260                <span>Australia (USD $)</span>
5261              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AT" >
5262                <span class="country-flags country-flags--AT"></span>
5263                <span>Austria (USD $)</span>
5264              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AZ" >
5265                <span class="country-flags country-flags--AZ"></span>
5266                <span>Azerbaijan (USD $)</span>
5267              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BS" >
5268                <span class="country-flags country-flags--BS"></span>
5269                <span>Bahamas (USD $)</span>
5270              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BH" >
5271                <span class="country-flags country-flags--BH"></span>
5272                <span>Bahrain (USD $)</span>
5273              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BD" >
5274                <span class="country-flags country-flags--BD"></span>
5275                <span>Bangladesh (USD $)</span>
5276              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BB" >
5277                <span class="country-flags country-flags--BB"></span>
5278                <span>Barbados (USD $)</span>
5279              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BY" >
5280                <span class="country-flags country-flags--BY"></span>
5281                <span>Belarus (USD $)</span>
5282              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BE" >
5283                <span class="country-flags country-flags--BE"></span>
5284                <span>Belgium (USD $)</span>
5285              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BZ" >
5286                <span class="country-flags country-flags--BZ"></span>
5287                <span>Belize (USD $)</span>
5288              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BJ" >
5289                <span class="country-flags country-flags--BJ"></span>
5290                <span>Benin (USD $)</span>
5291              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BM" >
5292                <span class="country-flags country-flags--BM"></span>
5293                <span>Bermuda (USD $)</span>
5294              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BT" >
5295                <span class="country-flags country-flags--BT"></span>
5296                <span>Bhutan (USD $)</span>
5297              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BO" >
5298                <span class="country-flags country-flags--BO"></span>
5299                <span>Bolivia (USD $)</span>
5300              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BA" >
5301                <span class="country-flags country-flags--BA"></span>
5302                <span>Bosnia &amp; Herzegovina (USD $)</span>
5303              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BW" >
5304                <span class="country-flags country-flags--BW"></span>
5305                <span>Botswana (USD $)</span>
5306              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BR" >
5307                <span class="country-flags country-flags--BR"></span>
5308                <span>Brazil (USD $)</span>
5309              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IO" >
5310                <span class="country-flags country-flags--IO"></span>
5311                <span>British Indian Ocean Territory (USD $)</span>
5312              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="VG" >
5313                <span class="country-flags country-flags--VG"></span>
5314                <span>British Virgin Islands (USD $)</span>
5315              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BN" >
5316                <span class="country-flags country-flags--BN"></span>
5317                <span>Brunei (USD $)</span>
5318              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BG" >
5319                <span class="country-flags country-flags--BG"></span>
5320                <span>Bulgaria (USD $)</span>
5321              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BF" >
5322                <span class="country-flags country-flags--BF"></span>
5323                <span>Burkina Faso (USD $)</span>
5324              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BI" >
5325                <span class="country-flags country-flags--BI"></span>
5326                <span>Burundi (USD $)</span>
5327              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KH" >
5328                <span class="country-flags country-flags--KH"></span>
5329                <span>Cambodia (USD $)</span>
5330              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CM" >
5331                <span class="country-flags country-flags--CM"></span>
5332                <span>Cameroon (USD $)</span>
5333              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CA" >
5334                <span class="country-flags country-flags--CA"></span>
5335                <span>Canada (USD $)</span>
5336              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CV" >
5337                <span class="country-flags country-flags--CV"></span>
5338                <span>Cape Verde (USD $)</span>
5339              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BQ" >
5340                <span class="country-flags country-flags--BQ"></span>
5341                <span>Caribbean Netherlands (USD $)</span>
5342              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KY" >
5343                <span class="country-flags country-flags--KY"></span>
5344                <span>Cayman Islands (USD $)</span>
5345              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CF" >
5346                <span class="country-flags country-flags--CF"></span>
5347                <span>Central African Republic (USD $)</span>
5348              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TD" >
5349                <span class="country-flags country-flags--TD"></span>
5350                <span>Chad (USD $)</span>
5351              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CL" >
5352                <span class="country-flags country-flags--CL"></span>
5353                <span>Chile (USD $)</span>
5354              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CN" >
5355                <span class="country-flags country-flags--CN"></span>
5356                <span>China (USD $)</span>
5357              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CX" >
5358                <span class="country-flags country-flags--CX"></span>
5359                <span>Christmas Island (USD $)</span>
5360              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CC" >
5361                <span class="country-flags country-flags--CC"></span>
5362                <span>Cocos (Keeling) Islands (USD $)</span>
5363              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CO" >
5364                <span class="country-flags country-flags--CO"></span>
5365                <span>Colombia (USD $)</span>
5366              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KM" >
5367                <span class="country-flags country-flags--KM"></span>
5368                <span>Comoros (USD $)</span>
5369              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CG" >
5370                <span class="country-flags country-flags--CG"></span>
5371                <span>Congo - Brazzaville (USD $)</span>
5372              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CD" >
5373                <span class="country-flags country-flags--CD"></span>
5374                <span>Congo - Kinshasa (USD $)</span>
5375              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CK" >
5376                <span class="country-flags country-flags--CK"></span>
5377                <span>Cook Islands (USD $)</span>
5378              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CR" >
5379                <span class="country-flags country-flags--CR"></span>
5380                <span>Costa Rica (USD $)</span>
5381              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CI" >
5382                <span class="country-flags country-flags--CI"></span>
5383                <span>Côte d’Ivoire (USD $)</span>
5384              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="HR" >
5385                <span class="country-flags country-flags--HR"></span>
5386                <span>Croatia (USD $)</span>
5387              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CW" >
5388                <span class="country-flags country-flags--CW"></span>
5389                <span>Curaçao (USD $)</span>
5390              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CY" >
5391                <span class="country-flags country-flags--CY"></span>
5392                <span>Cyprus (USD $)</span>
5393              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CZ" >
5394                <span class="country-flags country-flags--CZ"></span>
5395                <span>Czechia (USD $)</span>
5396              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="DK" >
5397                <span class="country-flags country-flags--DK"></span>
5398                <span>Denmark (USD $)</span>
5399              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="DJ" >
5400                <span class="country-flags country-flags--DJ"></span>
5401                <span>Djibouti (USD $)</span>
5402              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="DM" >
5403                <span class="country-flags country-flags--DM"></span>
5404                <span>Dominica (USD $)</span>
5405              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="DO" >
5406                <span class="country-flags country-flags--DO"></span>
5407                <span>Dominican Republic (USD $)</span>
5408              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="EC" >
5409                <span class="country-flags country-flags--EC"></span>
5410                <span>Ecuador (USD $)</span>
5411              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="EG" >
5412                <span class="country-flags country-flags--EG"></span>
5413                <span>Egypt (USD $)</span>
5414              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SV" >
5415                <span class="country-flags country-flags--SV"></span>
5416                <span>El Salvador (USD $)</span>
5417              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GQ" >
5418                <span class="country-flags country-flags--GQ"></span>
5419                <span>Equatorial Guinea (USD $)</span>
5420              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ER" >
5421                <span class="country-flags country-flags--ER"></span>
5422                <span>Eritrea (USD $)</span>
5423              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="EE" >
5424                <span class="country-flags country-flags--EE"></span>
5425                <span>Estonia (USD $)</span>
5426              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SZ" >
5427                <span class="country-flags country-flags--SZ"></span>
5428                <span>Eswatini (USD $)</span>
5429              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ET" >
5430                <span class="country-flags country-flags--ET"></span>
5431                <span>Ethiopia (USD $)</span>
5432              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="FK" >
5433                <span class="country-flags country-flags--FK"></span>
5434                <span>Falkland Islands (USD $)</span>
5435              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="FO" >
5436                <span class="country-flags country-flags--FO"></span>
5437                <span>Faroe Islands (USD $)</span>
5438              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="FJ" >
5439                <span class="country-flags country-flags--FJ"></span>
5440                <span>Fiji (USD $)</span>
5441              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="FI" >
5442                <span class="country-flags country-flags--FI"></span>
5443                <span>Finland (USD $)</span>
5444              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="FR" >
5445                <span class="country-flags country-flags--FR"></span>
5446                <span>France (USD $)</span>
5447              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GF" >
5448                <span class="country-flags country-flags--GF"></span>
5449                <span>French Guiana (USD $)</span>
5450              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PF" >
5451                <span class="country-flags country-flags--PF"></span>
5452                <span>French Polynesia (USD $)</span>
5453              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TF" >
5454                <span class="country-flags country-flags--TF"></span>
5455                <span>French Southern Territories (USD $)</span>
5456              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GA" >
5457                <span class="country-flags country-flags--GA"></span>
5458                <span>Gabon (USD $)</span>
5459              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GM" >
5460                <span class="country-flags country-flags--GM"></span>
5461                <span>Gambia (USD $)</span>
5462              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GE" >
5463                <span class="country-flags country-flags--GE"></span>
5464                <span>Georgia (USD $)</span>
5465              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="DE" >
5466                <span class="country-flags country-flags--DE"></span>
5467                <span>Germany (USD $)</span>
5468              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GH" >
5469                <span class="country-flags country-flags--GH"></span>
5470                <span>Ghana (USD $)</span>
5471              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GI" >
5472                <span class="country-flags country-flags--GI"></span>
5473                <span>Gibraltar (USD $)</span>
5474              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GR" >
5475                <span class="country-flags country-flags--GR"></span>
5476                <span>Greece (USD $)</span>
5477              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GL" >
5478                <span class="country-flags country-flags--GL"></span>
5479                <span>Greenland (USD $)</span>
5480              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GD" >
5481                <span class="country-flags country-flags--GD"></span>
5482                <span>Grenada (USD $)</span>
5483              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GP" >
5484                <span class="country-flags country-flags--GP"></span>
5485                <span>Guadeloupe (USD $)</span>
5486              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GT" >
5487                <span class="country-flags country-flags--GT"></span>
5488                <span>Guatemala (USD $)</span>
5489              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GG" >
5490                <span class="country-flags country-flags--GG"></span>
5491                <span>Guernsey (USD $)</span>
5492              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GN" >
5493                <span class="country-flags country-flags--GN"></span>
5494                <span>Guinea (USD $)</span>
5495              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GW" >
5496                <span class="country-flags country-flags--GW"></span>
5497                <span>Guinea-Bissau (USD $)</span>
5498              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GY" >
5499                <span class="country-flags country-flags--GY"></span>
5500                <span>Guyana (USD $)</span>
5501              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="HT" >
5502                <span class="country-flags country-flags--HT"></span>
5503                <span>Haiti (USD $)</span>
5504              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="HN" >
5505                <span class="country-flags country-flags--HN"></span>
5506                <span>Honduras (USD $)</span>
5507              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="HK" >
5508                <span class="country-flags country-flags--HK"></span>
5509                <span>Hong Kong SAR (USD $)</span>
5510              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="HU" >
5511                <span class="country-flags country-flags--HU"></span>
5512                <span>Hungary (USD $)</span>
5513              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IS" >
5514                <span class="country-flags country-flags--IS"></span>
5515                <span>Iceland (USD $)</span>
5516              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IN" >
5517                <span class="country-flags country-flags--IN"></span>
5518                <span>India (USD $)</span>
5519              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ID" >
5520                <span class="country-flags country-flags--ID"></span>
5521                <span>Indonesia (USD $)</span>
5522              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IQ" >
5523                <span class="country-flags country-flags--IQ"></span>
5524                <span>Iraq (USD $)</span>
5525              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IE" >
5526                <span class="country-flags country-flags--IE"></span>
5527                <span>Ireland (USD $)</span>
5528              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IM" >
5529                <span class="country-flags country-flags--IM"></span>
5530                <span>Isle of Man (USD $)</span>
5531              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IL" >
5532                <span class="country-flags country-flags--IL"></span>
5533                <span>Israel (USD $)</span>
5534              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="IT" >
5535                <span class="country-flags country-flags--IT"></span>
5536                <span>Italy (USD $)</span>
5537              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="JM" >
5538                <span class="country-flags country-flags--JM"></span>
5539                <span>Jamaica (USD $)</span>
5540              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="JP" >
5541                <span class="country-flags country-flags--JP"></span>
5542                <span>Japan (USD $)</span>
5543              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="JE" >
5544                <span class="country-flags country-flags--JE"></span>
5545                <span>Jersey (USD $)</span>
5546              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="JO" >
5547                <span class="country-flags country-flags--JO"></span>
5548                <span>Jordan (USD $)</span>
5549              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KZ" >
5550                <span class="country-flags country-flags--KZ"></span>
5551                <span>Kazakhstan (USD $)</span>
5552              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KE" >
5553                <span class="country-flags country-flags--KE"></span>
5554                <span>Kenya (USD $)</span>
5555              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KI" >
5556                <span class="country-flags country-flags--KI"></span>
5557                <span>Kiribati (USD $)</span>
5558              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="XK" >
5559                <span class="country-flags country-flags--XK"></span>
5560                <span>Kosovo (USD $)</span>
5561              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KW" >
5562                <span class="country-flags country-flags--KW"></span>
5563                <span>Kuwait (USD $)</span>
5564              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KG" >
5565                <span class="country-flags country-flags--KG"></span>
5566                <span>Kyrgyzstan (USD $)</span>
5567              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LA" >
5568                <span class="country-flags country-flags--LA"></span>
5569                <span>Laos (USD $)</span>
5570              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LV" >
5571                <span class="country-flags country-flags--LV"></span>
5572                <span>Latvia (USD $)</span>
5573              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LB" >
5574                <span class="country-flags country-flags--LB"></span>
5575                <span>Lebanon (USD $)</span>
5576              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LS" >
5577                <span class="country-flags country-flags--LS"></span>
5578                <span>Lesotho (USD $)</span>
5579              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LR" >
5580                <span class="country-flags country-flags--LR"></span>
5581                <span>Liberia (USD $)</span>
5582              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LY" >
5583                <span class="country-flags country-flags--LY"></span>
5584                <span>Libya (USD $)</span>
5585              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LI" >
5586                <span class="country-flags country-flags--LI"></span>
5587                <span>Liechtenstein (USD $)</span>
5588              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LT" >
5589                <span class="country-flags country-flags--LT"></span>
5590                <span>Lithuania (USD $)</span>
5591              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LU" >
5592                <span class="country-flags country-flags--LU"></span>
5593                <span>Luxembourg (USD $)</span>
5594              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MO" >
5595                <span class="country-flags country-flags--MO"></span>
5596                <span>Macao SAR (USD $)</span>
5597              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MG" >
5598                <span class="country-flags country-flags--MG"></span>
5599                <span>Madagascar (USD $)</span>
5600              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MW" >
5601                <span class="country-flags country-flags--MW"></span>
5602                <span>Malawi (USD $)</span>
5603              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MY" >
5604                <span class="country-flags country-flags--MY"></span>
5605                <span>Malaysia (USD $)</span>
5606              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MV" >
5607                <span class="country-flags country-flags--MV"></span>
5608                <span>Maldives (USD $)</span>
5609              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ML" >
5610                <span class="country-flags country-flags--ML"></span>
5611                <span>Mali (USD $)</span>
5612              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MT" >
5613                <span class="country-flags country-flags--MT"></span>
5614                <span>Malta (USD $)</span>
5615              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MQ" >
5616                <span class="country-flags country-flags--MQ"></span>
5617                <span>Martinique (USD $)</span>
5618              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MR" >
5619                <span class="country-flags country-flags--MR"></span>
5620                <span>Mauritania (USD $)</span>
5621              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MU" >
5622                <span class="country-flags country-flags--MU"></span>
5623                <span>Mauritius (USD $)</span>
5624              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="YT" >
5625                <span class="country-flags country-flags--YT"></span>
5626                <span>Mayotte (USD $)</span>
5627              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MX" >
5628                <span class="country-flags country-flags--MX"></span>
5629                <span>Mexico (USD $)</span>
5630              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MD" >
5631                <span class="country-flags country-flags--MD"></span>
5632                <span>Moldova (USD $)</span>
5633              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MC" >
5634                <span class="country-flags country-flags--MC"></span>
5635                <span>Monaco (USD $)</span>
5636              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MN" >
5637                <span class="country-flags country-flags--MN"></span>
5638                <span>Mongolia (USD $)</span>
5639              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ME" >
5640                <span class="country-flags country-flags--ME"></span>
5641                <span>Montenegro (USD $)</span>
5642              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MS" >
5643                <span class="country-flags country-flags--MS"></span>
5644                <span>Montserrat (USD $)</span>
5645              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MA" >
5646                <span class="country-flags country-flags--MA"></span>
5647                <span>Morocco (USD $)</span>
5648              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MZ" >
5649                <span class="country-flags country-flags--MZ"></span>
5650                <span>Mozambique (USD $)</span>
5651              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MM" >
5652                <span class="country-flags country-flags--MM"></span>
5653                <span>Myanmar (Burma) (USD $)</span>
5654              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NA" >
5655                <span class="country-flags country-flags--NA"></span>
5656                <span>Namibia (USD $)</span>
5657              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NR" >
5658                <span class="country-flags country-flags--NR"></span>
5659                <span>Nauru (USD $)</span>
5660              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NP" >
5661                <span class="country-flags country-flags--NP"></span>
5662                <span>Nepal (USD $)</span>
5663              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NL" >
5664                <span class="country-flags country-flags--NL"></span>
5665                <span>Netherlands (USD $)</span>
5666              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NC" >
5667                <span class="country-flags country-flags--NC"></span>
5668                <span>New Caledonia (USD $)</span>
5669              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NZ" >
5670                <span class="country-flags country-flags--NZ"></span>
5671                <span>New Zealand (USD $)</span>
5672              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NI" >
5673                <span class="country-flags country-flags--NI"></span>
5674                <span>Nicaragua (USD $)</span>
5675              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NE" >
5676                <span class="country-flags country-flags--NE"></span>
5677                <span>Niger (USD $)</span>
5678              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NG" >
5679                <span class="country-flags country-flags--NG"></span>
5680                <span>Nigeria (USD $)</span>
5681              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NU" >
5682                <span class="country-flags country-flags--NU"></span>
5683                <span>Niue (USD $)</span>
5684              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NF" >
5685                <span class="country-flags country-flags--NF"></span>
5686                <span>Norfolk Island (USD $)</span>
5687              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MK" >
5688                <span class="country-flags country-flags--MK"></span>
5689                <span>North Macedonia (USD $)</span>
5690              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="NO" >
5691                <span class="country-flags country-flags--NO"></span>
5692                <span>Norway (USD $)</span>
5693              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="OM" >
5694                <span class="country-flags country-flags--OM"></span>
5695                <span>Oman (USD $)</span>
5696              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PK" >
5697                <span class="country-flags country-flags--PK"></span>
5698                <span>Pakistan (USD $)</span>
5699              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PS" >
5700                <span class="country-flags country-flags--PS"></span>
5701                <span>Palestinian Territories (USD $)</span>
5702              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PA" >
5703                <span class="country-flags country-flags--PA"></span>
5704                <span>Panama (USD $)</span>
5705              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PG" >
5706                <span class="country-flags country-flags--PG"></span>
5707                <span>Papua New Guinea (USD $)</span>
5708              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PY" >
5709                <span class="country-flags country-flags--PY"></span>
5710                <span>Paraguay (USD $)</span>
5711              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PE" >
5712                <span class="country-flags country-flags--PE"></span>
5713                <span>Peru (USD $)</span>
5714              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PH" >
5715                <span class="country-flags country-flags--PH"></span>
5716                <span>Philippines (USD $)</span>
5717              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PN" >
5718                <span class="country-flags country-flags--PN"></span>
5719                <span>Pitcairn Islands (USD $)</span>
5720              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PL" >
5721                <span class="country-flags country-flags--PL"></span>
5722                <span>Poland (USD $)</span>
5723              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PT" >
5724                <span class="country-flags country-flags--PT"></span>
5725                <span>Portugal (USD $)</span>
5726              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="QA" >
5727                <span class="country-flags country-flags--QA"></span>
5728                <span>Qatar (USD $)</span>
5729              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="RE" >
5730                <span class="country-flags country-flags--RE"></span>
5731                <span>Réunion (USD $)</span>
5732              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="RO" >
5733                <span class="country-flags country-flags--RO"></span>
5734                <span>Romania (USD $)</span>
5735              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="RU" >
5736                <span class="country-flags country-flags--RU"></span>
5737                <span>Russia (USD $)</span>
5738              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="RW" >
5739                <span class="country-flags country-flags--RW"></span>
5740                <span>Rwanda (USD $)</span>
5741              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="WS" >
5742                <span class="country-flags country-flags--WS"></span>
5743                <span>Samoa (USD $)</span>
5744              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SM" >
5745                <span class="country-flags country-flags--SM"></span>
5746                <span>San Marino (USD $)</span>
5747              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ST" >
5748                <span class="country-flags country-flags--ST"></span>
5749                <span>São Tomé &amp; Príncipe (USD $)</span>
5750              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SA" >
5751                <span class="country-flags country-flags--SA"></span>
5752                <span>Saudi Arabia (USD $)</span>
5753              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SN" >
5754                <span class="country-flags country-flags--SN"></span>
5755                <span>Senegal (USD $)</span>
5756              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="RS" >
5757                <span class="country-flags country-flags--RS"></span>
5758                <span>Serbia (USD $)</span>
5759              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SC" >
5760                <span class="country-flags country-flags--SC"></span>
5761                <span>Seychelles (USD $)</span>
5762              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SL" >
5763                <span class="country-flags country-flags--SL"></span>
5764                <span>Sierra Leone (USD $)</span>
5765              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SG" >
5766                <span class="country-flags country-flags--SG"></span>
5767                <span>Singapore (USD $)</span>
5768              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SX" >
5769                <span class="country-flags country-flags--SX"></span>
5770                <span>Sint Maarten (USD $)</span>
5771              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SK" >
5772                <span class="country-flags country-flags--SK"></span>
5773                <span>Slovakia (USD $)</span>
5774              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SI" >
5775                <span class="country-flags country-flags--SI"></span>
5776                <span>Slovenia (USD $)</span>
5777              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SB" >
5778                <span class="country-flags country-flags--SB"></span>
5779                <span>Solomon Islands (USD $)</span>
5780              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SO" >
5781                <span class="country-flags country-flags--SO"></span>
5782                <span>Somalia (USD $)</span>
5783              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ZA" >
5784                <span class="country-flags country-flags--ZA"></span>
5785                <span>South Africa (USD $)</span>
5786              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="GS" >
5787                <span class="country-flags country-flags--GS"></span>
5788                <span>South Georgia &amp; South Sandwich Islands (USD $)</span>
5789              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KR" >
5790                <span class="country-flags country-flags--KR"></span>
5791                <span>South Korea (USD $)</span>
5792              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SS" >
5793                <span class="country-flags country-flags--SS"></span>
5794                <span>South Sudan (USD $)</span>
5795              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ES" >
5796                <span class="country-flags country-flags--ES"></span>
5797                <span>Spain (USD $)</span>
5798              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LK" >
5799                <span class="country-flags country-flags--LK"></span>
5800                <span>Sri Lanka (USD $)</span>
5801              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="BL" >
5802                <span class="country-flags country-flags--BL"></span>
5803                <span>St. Barthélemy (USD $)</span>
5804              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SH" >
5805                <span class="country-flags country-flags--SH"></span>
5806                <span>St. Helena (USD $)</span>
5807              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="KN" >
5808                <span class="country-flags country-flags--KN"></span>
5809                <span>St. Kitts &amp; Nevis (USD $)</span>
5810              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="LC" >
5811                <span class="country-flags country-flags--LC"></span>
5812                <span>St. Lucia (USD $)</span>
5813              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="MF" >
5814                <span class="country-flags country-flags--MF"></span>
5815                <span>St. Martin (USD $)</span>
5816              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="PM" >
5817                <span class="country-flags country-flags--PM"></span>
5818                <span>St. Pierre &amp; Miquelon (USD $)</span>
5819              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="VC" >
5820                <span class="country-flags country-flags--VC"></span>
5821                <span>St. Vincent &amp; Grenadines (USD $)</span>
5822              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SD" >
5823                <span class="country-flags country-flags--SD"></span>
5824                <span>Sudan (USD $)</span>
5825              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SR" >
5826                <span class="country-flags country-flags--SR"></span>
5827                <span>Suriname (USD $)</span>
5828              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SJ" >
5829                <span class="country-flags country-flags--SJ"></span>
5830                <span>Svalbard &amp; Jan Mayen (USD $)</span>
5831              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="SE" >
5832                <span class="country-flags country-flags--SE"></span>
5833                <span>Sweden (USD $)</span>
5834              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CH" >
5835                <span class="country-flags country-flags--CH"></span>
5836                <span>Switzerland (USD $)</span>
5837              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TW" >
5838                <span class="country-flags country-flags--TW"></span>
5839                <span>Taiwan (USD $)</span>
5840              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TJ" >
5841                <span class="country-flags country-flags--TJ"></span>
5842                <span>Tajikistan (USD $)</span>
5843              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TZ" >
5844                <span class="country-flags country-flags--TZ"></span>
5845                <span>Tanzania (USD $)</span>
5846              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TH" >
5847                <span class="country-flags country-flags--TH"></span>
5848                <span>Thailand (USD $)</span>
5849              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TL" >
5850                <span class="country-flags country-flags--TL"></span>
5851                <span>Timor-Leste (USD $)</span>
5852              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TG" >
5853                <span class="country-flags country-flags--TG"></span>
5854                <span>Togo (USD $)</span>
5855              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TK" >
5856                <span class="country-flags country-flags--TK"></span>
5857                <span>Tokelau (USD $)</span>
5858              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TO" >
5859                <span class="country-flags country-flags--TO"></span>
5860                <span>Tonga (USD $)</span>
5861              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TT" >
5862                <span class="country-flags country-flags--TT"></span>
5863                <span>Trinidad &amp; Tobago (USD $)</span>
5864              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TA" >
5865                <span class="country-flags country-flags--TA"></span>
5866                <span>Tristan da Cunha (USD $)</span>
5867              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TN" >
5868                <span class="country-flags country-flags--TN"></span>
5869                <span>Tunisia (USD $)</span>
5870              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TR" >
5871                <span class="country-flags country-flags--TR"></span>
5872                <span>Türkiye (USD $)</span>
5873              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TM" >
5874                <span class="country-flags country-flags--TM"></span>
5875                <span>Turkmenistan (USD $)</span>
5876              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TC" >
5877                <span class="country-flags country-flags--TC"></span>
5878                <span>Turks &amp; Caicos Islands (USD $)</span>
5879              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="TV" >
5880                <span class="country-flags country-flags--TV"></span>
5881                <span>Tuvalu (USD $)</span>
5882              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="UM" >
5883                <span class="country-flags country-flags--UM"></span>
5884                <span>U.S. Outlying Islands (USD $)</span>
5885              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="UG" >
5886                <span class="country-flags country-flags--UG"></span>
5887                <span>Uganda (USD $)</span>
5888              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="UA" >
5889                <span class="country-flags country-flags--UA"></span>
5890                <span>Ukraine (USD $)</span>
5891              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AE" >
5892                <span class="country-flags country-flags--AE"></span>
5893                <span>United Arab Emirates (USD $)</span>
5894              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="US" aria-selected="true">
5895                <span class="country-flags country-flags--US"></span>
5896                <span>United States (USD $)</span>
5897              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="UY" >
5898                <span class="country-flags country-flags--UY"></span>
5899                <span>Uruguay (USD $)</span>
5900              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="UZ" >
5901                <span class="country-flags country-flags--UZ"></span>
5902                <span>Uzbekistan (USD $)</span>
5903              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="VU" >
5904                <span class="country-flags country-flags--VU"></span>
5905                <span>Vanuatu (USD $)</span>
5906              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="VA" >
5907                <span class="country-flags country-flags--VA"></span>
5908                <span>Vatican City (USD $)</span>
5909              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="VE" >
5910                <span class="country-flags country-flags--VE"></span>
5911                <span>Venezuela (USD $)</span>
5912              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="VN" >
5913                <span class="country-flags country-flags--VN"></span>
5914                <span>Vietnam (USD $)</span>
5915              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="WF" >
5916                <span class="country-flags country-flags--WF"></span>
5917                <span>Wallis &amp; Futuna (USD $)</span>
5918              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="EH" >
5919                <span class="country-flags country-flags--EH"></span>
5920                <span>Western Sahara (USD $)</span>
5921              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="YE" >
5922                <span class="country-flags country-flags--YE"></span>
5923                <span>Yemen (USD $)</span>
5924              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ZM" >
5925                <span class="country-flags country-flags--ZM"></span>
5926                <span>Zambia (USD $)</span>
5927              </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="ZW" >
5928                <span class="country-flags country-flags--ZW"></span>
5929                <span>Zimbabwe (USD $)</span>
5930              </button></x-listbox></form></x-popover>
5931    </div></div></div><div class="footer__aside-bottom"><p class="footer__copyright text-sm text-subdued">© 2026, FirmTech Inc. <a href="https://contestudios.com" target="_blank" rel="noopener">Powered by Conte Studios</a></p></p>
5932        </div>
5933      </div>
5934    </div>
5935  </div>
5936</div>
5937
5938<style> #shopify-section-sections--17107269550230__footer .footer {background: linear-gradient(85deg, #780d0f, #261329);} #shopify-section-sections--17107269550230__footer #input-sections--17107269550230__footer--contactemail {background-color: #ffffff; color: #000000; border: 1px solid #ccc; padding: 10px; border-radius: 4px;} #shopify-section-sections--17107269550230__footer .self-submit-button button {background-color: #ffffff; color: #000000; border: 1px solid #000000; border-radius: 50%;} #shopify-section-sections--17107269550230__footer .self-submit-button button svg {stroke: #000000;} #shopify-section-sections--17107269550230__footer .floating-label {color: #000000;} </style></footer>
5939<!-- END sections: footer-group --></main>
5940
5941
5942
5943
5944<!-- BEGIN PLERDY CODE -->
5945<script type="text/javascript" defer data-plerdy_code="1">
5946var _protocol = document.location.protocol === "https:" ? "https://" : "http://";
5947var _site_hash_code = "b39a811dea955764a130be3085085b2d";
5948var _suid = 55488;
5949var plerdyScript = document.createElement("script");
5950plerdyScript.setAttribute("defer", "");
5951plerdyScript.dataset.plerdymainscript = "plerdymainscript";
5952plerdyScript.src = "https://a.plerdy.com/public/js/click/main.js?v=" + Math.random();
5953var plerdymainscript = document.querySelector("[data-plerdymainscript='plerdymainscript']");
5954if (plerdymainscript) {
5955    plerdymainscript.parentNode.removeChild(plerdymainscript);
5956}
5957try {
5958    document.head.appendChild(plerdyScript);
5959} catch (t) {
5960    console.log(t, "unable to add script tag");
5961}
5962</script>
5962
5963<!-- END PLERDY CODE -->
5964<!-- END PLERDY CODE -->
5965
5966    
5967    
5968      
5968<script>
5969  window.Samita = window.Samita || {}
5970  Samita.Wholesale = Samita.Wholesale || {}
5971  Samita.Wholesale.overrideOptions = Samita.Wholesale.overrideOptions || {}
5972  Samita.Wholesale.overrideOptions.selectors = Samita.Wholesale.overrideOptions.selectors || {}
5973   Samita.Wholesale.overrideOptions.selectors.product = {
5974    "element" : [".shopify-section--main-product"],
5975    "form": [ "[samitaWS-product-form]",".shopify-product-form"],
5976    "price": [ "price-list"],
5977    "unitPrice": "[samitaWS-product-unit-price], price-list"
5978  }
5979  Samita.Wholesale.overrideOptions.selectors.collection = {
5980    "productLink": "[samitaWS-collection-product-link], .product-card__figure > a",
5981    "price": ["[samitaWS-collection-product-price]","price-list"],
5982    "unitPrice": "[samitaWS-product-unit-price], price-list"
5983  }
5984  Samita.Wholesale.overrideOptions.selectors.cart = {
5985    "form": ["[samitaWS-checkout-form]",".shopify-section--main-cart"],
5986    "page": [{
5987        "lineItem": {
5988          "key": ".cart-item",
5989          "quantity": {
5990              "wrapper": "[samitaWS-cart-line-item-qty-wrapper]",
5991              "input": "[samitaWS-cart-line-item-qty], .quantity__input",
5992              "decrease": "[samitaWS-cart-line-item-qty-decrease], [name=\"minus\"]",
5993              "increase": "[samitaWS-cart-line-item-qty-increase],[name=\"plus\"]",
5994              "removeButton": "[samitaWS-cart-line-item-remove-button]"
5995          },
5996          "price": "[samitaWS-cart-product-main-price], .line-item price-list",
5997          "unitPrice": "[samitaWS-cart-line-item-unit-price], .line-item price-list",
5998          "priceEnd": "[samitaWS-cart-product-price-end], .cart-item-totals",
5999          "totalPrice": "[samitaWS-cart-line-item-total-price], .cart-item-totals"
6000        },
6001        "subtotalPrice": "[samitaWS-cart-subtotal-price], .cart-subtotal-value",
6002        "checkoutBtn": "button[name=\"checkout\"]",
6003    }],
6004    "drawerForm": [
6005        "[samitaWS-drawer-form]","#cart-drawer"],
6006    "drawer": [
6007        {
6008          "lineItem": {
6009              "key": ".cart-drawer__line-items > .line-item",
6010              "quantity": {
6011                  "wrapper": "[samitaWS-drawer-line-item-qty-wrapper], .cart-item__quantity",
6012                  "input": "[samitaWS-drawer-line-item-qty], .quantity__input",
6013                  "decrease": "[samitaWS-drawer-line-item-qty-decrease], [name=\"minus\"]",
6014                  "increase": "[samitaWS-drawer-line-item-qty-increase], [name=\"plus\"]"
6015              },
6016              "removeButton": "[samitaWS-drawer-line-item-remove-button], cart-remove-button button",
6017              "price": "[samitaWS-drawer-product-main-price], .cart-drawer__line-items price-list",
6018              "unitPrice": "[samitaWS-drawer-line-item-unit-price], .cart-drawer__line-items price-list",
6019              "priceEnd": "[samitaWS-cart-product-price-end], .cart-drawer__line-items price-list",
6020              "totalPrice": "[samitaWS-drawer-line-item-total-price], .cart-drawer__line-items price-list"
6021          },
6022          "subtotalPrice": "[samitaWS-drawer-line-item-subtotal-price], .cart-subtotal-value",
6023          "checkoutBtn": "[samitaWS-drawer-checkout-btn], button[name=\"checkout\"]"
6024        }
6025    ]
6026  }
6027</script>
6027
6028    
6029<style> .salepify-fg-advanced-temp-cart {display: none !important;} </style>
6030<div id="shopify-block-AcFN1M1hVN1RCVTB6Y__5057006142565981955" class="shopify-block shopify-app-block">
6030<script type="text/javascript">
6031  const promoConfig = {
6032    fontSize: '16',
6033    logoType: 'logo',
6034    logoColor: 'blue',
6035    pageType: 'cart',
6036    textAlign: 'left'
6037  };
6038  const drawerAppData = '{"theme_app_configuration"=>Metafields::MetafieldDrop}';
6039  const drawerPromoAppConfig = (drawerAppData == '{}') ? {} : JSON.parse('{"region_public_keys":{"us":"MO1DC5JU5XARAQCX","ca":""}}') ;
6040  const drawerHasRegionKeys = drawerPromoAppConfig.hasOwnProperty('region_public_keys');
6041  let drawerPublicKey = null;
6042  if (Shopify.country == 'US') 
6043    drawerPublicKey = (drawerHasRegionKeys) ? drawerPromoAppConfig.region_public_keys.us : null;
6044  if (Shopify.country == 'CA') 
6045    drawerPublicKey = (drawerHasRegionKeys) ? drawerPromoAppConfig.region_public_keys.ca : null;      
6046  const affirmPublicApiKeyCartDrawer = ('') ? '' : drawerPublicKey;
6047  const customDrawerTotalSelector = ('') ? '' : null;
6048  const customAdjacentElementSelector = ('') ? '' : null;
6049  const customAddToCartSelector = ('') ? '' : null;
6050  const customCartDrawerSelector = ('') ? '' : null;
6051  const publicKeyEntered = ('') ? '' : null;
6052</script>
6052
6053
6054</div><div id="shopify-block-AVFIySTFEaVpmWUFPS__144831480468751239" class="shopify-block shopify-app-block"><!-- BEGIN app snippet: vite-tag -->
6055
6056
6057  
6057<script src="https://cdn.shopify.com/extensions/01a0ef01-233c-7292-b3f6-27cef5296cf1/essential-post-purchase-upsell-1723/assets/app-embed-BPe2qr_5.js" type="module" crossorigin="anonymous"></script>
6057
6058  <link rel="modulepreload" href="https://cdn.shopify.com/extensions/01a0ef01-233c-7292-b3f6-27cef5296cf1/essential-post-purchase-upsell-1723/assets/stylex-E6760mTB.js" crossorigin="anonymous">
6059  <link href="//cdn.shopify.com/extensions/01a0ef01-233c-7292-b3f6-27cef5296cf1/essential-post-purchase-upsell-1723/assets/stylex-mm1DjMzv.css" rel="stylesheet" type="text/css" media="all" />
6060
6061<!-- END app snippet -->
6062
6063<essential-upsell-app-embed
6064  upsell-app-data="{&quot;funnels&quot;:[{&quot;id&quot;:&quot;5000c63b-33ef-4221-9ee9-0ffac31ae9a1&quot;,&quot;content&quot;:{&quot;offerType&quot;:&quot;CROSS_SELL&quot;,&quot;titleText&quot;:&quot;Pairs Perfectly With...&quot;,&quot;buttonText&quot;:&quot;Add&quot;},&quot;upsell&quot;:{&quot;productsType&quot;:&quot;SPECIFIC&quot;,&quot;discountType&quot;:&quot;NONE&quot;,&quot;discountValue&quot;:null,&quot;specificProducts&quot;:[{&quot;shopifyId&quot;:&quot;gid://shopify/Product/8343427645590&quot;,&quot;shopifyHandle&quot;:&quot;sliquid&quot;}]},&quot;design&quot;:{&quot;layoutType&quot;:&quot;CAROUSEL&quot;,&quot;stackedProductsCount&quot;:null,&quot;backgroundType&quot;:&quot;MONOCHROME&quot;,&quot;monochromeBackgroundColor&quot;:&quot;#ffffff&quot;,&quot;gradientBackgroundStartColor&quot;:null,&quot;gradientBackgroundEndColor&quot;:null,&quot;gradientBackgroundAngle&quot;:null,&quot;borderRadius&quot;:8,&quot;borderSize&quot;:1,&quot;borderColor&quot;:&quot;#c5c8d1&quot;,&quot;insideTopSpacing&quot;:10,&quot;insideBottomSpacing&quot;:10,&quot;outsideTopSpacing&quot;:20,&quot;outsideBottomSpacing&quot;:20,&quot;font&quot;:&quot;INHERIT&quot;,&quot;titleSize&quot;:16,&quot;titleColor&quot;:&quot;#202223&quot;,&quot;productTitleSize&quot;:14,&quot;productTitleColor&quot;:&quot;#202223&quot;,&quot;productVariantSize&quot;:14,&quot;productVariantColor&quot;:&quot;#96a4b6&quot;,&quot;productPriceSize&quot;:14,&quot;productPriceColor&quot;:&quot;#96a4b6&quot;,&quot;discountedPriceSize&quot;:14,&quot;discountedPriceColor&quot;:&quot;#fa493d&quot;,&quot;buttonBackgroundColor&quot;:&quot;#202223&quot;,&quot;buttonTextSize&quot;:14,&quot;buttonTextColor&quot;:&quot;#fafafa&quot;,&quot;buttonBorderRadius&quot;:4,&quot;navigationIconColor&quot;:&quot;#333333&quot;,&quot;checkboxIconColor&quot;:null,&quot;checkboxBackgroundColor&quot;:null,&quot;checkboxBorderColor&quot;:null},&quot;placement&quot;:{&quot;type&quot;:&quot;PRODUCT_PAGE&quot;,&quot;triggerType&quot;:&quot;SPECIFIC_PRODUCTS&quot;,&quot;cartPagePositionType&quot;:null,&quot;specificProducts&quot;:[{&quot;shopifyId&quot;:&quot;gid://shopify/Product/7810371420310&quot;,&quot;shopifyHandle&quot;:&quot;maxpr&quot;},{&quot;shopifyId&quot;:&quot;gid://shopify/Product/7037087580310&quot;,&quot;shopifyHandle&quot;:&quot;firmtech-performance-ring&quot;},{&quot;shopifyId&quot;:&quot;gid://shopify/Product/7462086508694&quot;,&quot;shopifyHandle&quot;:&quot;the-tech-ring&quot;},{&quot;shopifyId&quot;:&quot;gid://shopify/Product/7916956385430&quot;,&quot;shopifyHandle&quot;:&quot;techring-and-maxpr&quot;},{&quot;shopifyId&quot;:&quot;gid://shopify/Product/7942637944982&quot;,&quot;shopifyHandle&quot;:&quot;techring-and-performance-ring&quot;}],&quot;specificCollections&quot;:[]}}]}"upsell-app-config-data='{&quot;analyticsBaseUrl&quot;:null,&quot;sfk&quot;:&quot;&quot;,&quot;baseUrl&quot;:null}'
6065  product-page-product="null"product-page-selling-plan-groups="null"
6066  selling-plan-translations="[]"
6067  product-page-collection-ids="[]"
6068  first-shop-product-id="8646964641942"
6069  shop-money-format="${{amount}}"
6070  market-handle="us"
6071  presentment-currency="USD"
6072  customer-tags="null"
6073  cart-items='
6074[]'
6075></essential-upsell-app-embed>
6076
6077
6078</div><div id="shopify-block-AK0h3cTVsZkRtSWZvY__back-in-stock-restock-alerts-4bb73be2-b7c2-4870-949f-c528145452a3" class="shopify-block shopify-app-block"><link rel="preconnect" href="https://app.restockrocket.io" crossorigin><!-- Config and setup JS -->
6079<script id="RestockRocketConfig">
6080  window._RestockRocketConfig = window._RestockRocketConfig || {}
6081  window._RestockRocket = window._RestockRocket || {}
6082  window._Stoq = window._RestockRocket
6083  window._StoqConfig = window._RestockRocketConfig
6084  try { window._RestockRocket.inlineRanAt = performance.now(); } catch (e) { }
6085  function normalizeLocale(locale) {
6086    if (!locale || locale.trim() === '') {
6087      return '';
6088    }
6089    return locale.toString().toLowerCase().replace(/-/g, '_');
6090  }
6091
6092  window._RestockRocketConfig.locale = 'en';
6093  window._RestockRocketConfig.normalizedLocale = normalizeLocale('en');
6094  window._RestockRocketConfig.shop = 'myfirmtech.myshopify.com';
6095  window._RestockRocketConfig.pageType = 'index';
6096  window._RestockRocketConfig.liquidRenderedAt = 1791067573;window._RestockRocketConfig.marketId = 2485813398;window._RestockRocketConfig.countryName = 'United States';
6097    window._RestockRocketConfig.countryIsoCode = 'US';window._RestockRocketConfig.languageIsoCode = 'en';window._RestockRocketConfig.cartInventoryQuantity = {};
6098  if (!window._RestockRocketConfig.cartToken) {
6099    try {
6100      const m = document.cookie.match(/(?:^|;\s*)cart=([^;]+)/);
6101      if (m && m[1]) window._RestockRocketConfig.cartToken = decodeURIComponent(m[1]);
6102    } catch (e) { }
6103  }
6104window._RestockRocketConfig.cachedSettings = {"id":21600,"shop_id":21444,"currency":"USD","created_at":"2024-12-31T15:02:03.080Z","updated_at":"2026-10-01T04:44:58.793Z","enable_app":true,"enable_signup_widget":true,"storefront_button_text":"Notify me when available","storefront_button_text_color":"#FFFFFF","storefront_button_background_color":"#202223","storefront_form_header":"Notify me","storefront_form_description":"Get a notification as soon as this product is back in stock by signing up below!","storefront_form_button_text":"Notify me when available","storefront_form_button_text_color":"#FFFFFF","storefront_form_button_background_color":"#202223","storefront_form_terms":"Promise we won't spam. You'll only receive notifications for this product.","storefront_form_error":"Please enter a valid email address","storefront_form_success":"Thank you! We will notify you when the product is available.","enable_powered_by":true,"show_button_on_preorder":false,"sms_enabled":false,"email_enabled":true,"storefront_button_disable_tag":"rocket-hide","theme_config":{"preorderAddToCartButtonChildSelector":"div","disableDebugLoggingForNonPreorderItem":false},"storefront_form_email_placeholder":"Email address","storefront_form_phone_placeholder":"SMS","storefront_form_phone_label":"Phone number","storefront_form_email_label":"Email","storefront_form_phone_error":"Please enter a valid phone number","storefront_form_customer_name_placeholder":"Name","storefront_form_customer_name_error":"Please enter your name","storefront_form_did_you_mean_error":"Did you mean %{suggested_email}? Or use %{current_email}","form_customer_name_enabled":false,"form_customer_name_required":false,"css_config":"","js_config":null,"collect_promotion_consent":false,"storefront_form_promotion_consent_label":"Notify me about other news, sales, discounts & offers too","show_button_on_collection":false,"sms_default_country":"us","sms_allowed_countries":[],"sms_restrict_country":false,"sms_default_channel":true,"optin_required":false,"optin_custom_domain_enabled":false,"optin_success_text":"Registration confirmed! You'll receive an alert when the product is restocked.","storefront_button_border_radius":0,"storefront_button_disable_tag_hides_button":true,"storefront_button_disable_tag_enabled":false,"quantity_required":false,"storefront_form_quantity_label":"Quantity","enable_alerts":true,"sms_allowed":false,"email_allowed":true,"collect_promotion_consent_default":true,"insert_button_after_selector":".product-info__buy-buttons .shopify-product-form","insert_button_after_selector_type":"afterend","storefront_button_position_type":"float-right","storefront_form_duplicate_error":"You've already subscribed for alerts to this product.","storefront_mixed_cart_error":"Preorders must be purchased 
6104separately from regular items. Please complete your current order first, or clear your cart to continue.","storefront_error_heading":"Error","default_locale":"en","collection_page_button_text_color":"#FFFFFF","collection_page_button_background_color":"#202223","show_button_if_any_out_of_stock":false,"show_button_if_any_variant_out_of_stock_collection":false,"show_button_on_index":false,"insert_button_after_selector_collection":null,"insert_button_after_selector_index":".product-card__info","push_enabled":false,"push_allowed":true,"storefront_form_push_label":"Push","storefront_form_push_description":"Click 'Allow' to be notified via push notification","storefront_form_push_error":"Permission rejected! Please review notification settings and try again","storefront_font_family":"OpenSans","insert_button_after_selector_collection_type":"afterend","show_channel_selector":false,"storefront_form_empty_error":"Please fill in one or more of the options above","storefront_form_push_input":"Send notification to your browser","insert_button_after_selector_page":".product-card__info","show_button_on_page":false,"insert_button_after_selector_search":".product-card__info","show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":"[href*=\"/products/\"]","index_link_selector":"[href*=\"/products/\"]","page_link_selector":"[href*=\"/products/\"]","search_link_selector":"[href*=\"/products/\"]","collection_check_link_visibility":true,"collection_buttons_container":".product-list","index_buttons_container":".product-list","page_buttons_container":".product-list","search_buttons_container":".product-list","extension_enable_url_variant_detection":true,"extension_enable_value_variant_detection":true,"extension_value_variant_selector":"[name='id']","resubscribe_text":"This product is out of stock. Get notified when it’s restocked again by entering your details below!","preorder_enabled":true,"preorder_buy_button_selector":"shopify-buy-it-now-button","preorder_add_to_cart_button_selector":"buy-buttons .button.button--xl.button--secondary","preorder_badge_selector":".price-list","preorder_button_out_of_stock_text":"Out of stock","preorder_button_add_to_cart_text":"Add to cart","preorder_form_selector":"[enctype=\"multipart/form-data\"]","preorder_collection_enabled":true,"preorder_collection_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_index_enabled":false,"preorder_index_form_selector":"form[action*=\"/cart/add\"]","preorder_index_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_page_enabled":false,"preorder_page_form_selector":"form[action*=\"/cart/add\"]","preorder_page_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_search_enabled":false,"preorder_search_form_selector":"form[action*=\"/cart/add\"]","preorder_search_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_collection_badge_selector":".product-card__image","preorder_index_badge_selector":".product-card__image","preorder_page_badge_selector":".product-card__image","preorder_search_badge_selector":".product-card__image","preorder_badge_selector_type":"afterend","preorder_collection_badge_selector_type":"afterend","preorder_button_child_selector":"div","preorder_button_disclaimer_insert_selector":".product-info__buy-buttons .shopify-product-form","preorder_button_disclaimer_insert_selector_type":"afterend","preorder_payment_insert_selector":"","preorder_payment_insert_selector_type":"afterend","preorder_price_container_selector":"price-list","preorder_price_container_selector_insert_type":"afterend","preorder_terms_insert_selector":"","preorder_terms_insert_selector_type":"afterend","preorder_original_price_selector":"sale-price","preorder_price_format":"{{amount}} {{currency}}","show_badge_if_any_variant_is_preorder":false,"enable_console_debug":false,"inline_form_enabled":false,"inline_form_selector":".product-info__buy-buttons .shopify-product-form","inline_form_selector_type":"afterend","storefront_form_prefill_customer":true,"storefront_form_show_image":false,"storefront_form_text_color":"#202223","storefront_form_background_color":"#FFFFFF","storefront_form_border_radius":0,"market_setup_type":"single_market","shopify_app_id":5940125,"preorder_progress_bar_insert_selector":"","preorder_progress_bar_insert_selector_type":"beforebegin","countdown_timer_insert_selector":"","countdown_timer_insert_selector_type":"afterend","configure_notify_me_enabled":false,"restock_note_insert_selector":null,"restock_note_insert_selector_type":"afterend","restock_note_background_color":"#f3f4f6","restock_note_text_color":"#202223","restock_note_border_radius":4,"preorder_modal_continue_button_text":"Continue","preorder_modal_cancel_button_text":"Cancel","meta_pixel_enabled":false,"meta_pixel_id":null,"cache":true,"cached_at":"2026-10-01T04:44:58.816Z","multi_language_enabled":false,"translation_locale":"en","disable_refresh_on_stale_liquid":false,"api_host":"https://ext.stoqapp.com"};
6105  window._RestockRocketConfig.metafieldNamespace = 'restockrocket_production';
6106  window._RestockRocketConfig.storefrontApiVersion = '2026-07';window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[],"updated_at":"2026-10-03T22:32:42Z","market_locations_enabled":false,"market_id":2485813398,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection_id":null,"bulk_operation":true};window._RestockRocketConfig.cachedInStockVariantIds = { in_stock_variant_ids: [] };window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = {"variant_preorder_limits":{},"updated_at":"2026-10-03T22:30:58Z","shopify_market_id":2485813398,"market_locations_enabled":false};
6107    window._RestockRocketConfig.cachedVariantPreorderLimitsMarketKey = "variant_preorder_limits_for_market_2485813398";window._RestockRocketConfig.cachedVariantShippingTexts = {"variant_shipping_texts":{},"updated_at":"2026-10-03T22:30:59Z","shopify_market_id":2485813398,"market_locations_enabled":false};
6108    window._RestockRocketConfig.cachedVariantShippingTextsMarketKey = "variant_shipping_texts_for_market_2485813398";
6109window._RestockRocketConfig.sellingPlans = [];(function() {
6110      const cachedData = {"plans":[{"shopify_selling_plan_group_id":2110816406,"shopify_selling_plan_id":5145985174,"enabled":true,"variant_ids":[],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder item. Shipping Next Week","preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":7,"delivery_at":"2024-12-31T15:04:13.479Z","delivery_type":"unknown","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":false,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: First two weeks of February  ","shipping_applies_to_all_products":true,"shipping_text":"Shipping Mid October. ","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":"50.0","pricing_percentage":"10.0","discount_text":"Save {{ discount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"stoq","preorder_badge_enabled":true,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#FFFFFF","preorder_badge_background_color":"#000000","preorder_discounted_price_enabled":false,"payment_line_item_property_enabled":false,"shipping_line_item_property_enabled":false,"custom_line_item_property_text":null,"preorder_button_text_color":"#ffffff","preorder_button_background_color":"#8700d3","preorder_button_colors_enabled":false,"markets_enabled":false,"market_id":2485846166,"shopify_market_ids":[],"use_shopify_selling_plan":true,"use_simplified_shipping_text":false,"translations":{},"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2024-12-31T15:04:13.473Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":"50.0","pricing_percentage":"10.0","billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":5145985174,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_acknowledged":false,"preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"countdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_radius":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":true,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":null,"countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2026-03-16T15:46:00.000Z","allow_mixed_cart":true,"mixed_cart_error_message":"Preorders must be purchased 
6110separately from regular items. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_enabled":false,"preorder_progress_bar_text":"{{ sold }} of {{ total }} claimed","preorder_progress_bar_fill_color":"#000000","preorder_progress_bar_background_color":"#e5e5e5","preorder_progress_bar_text_color":"#FFFFFF","preorder_progress_bar_border_radius":4,"preorder_progress_bar_show_percentage":false}],"disabled_plan_ids":[],"cached_at":"2026-03-18T14:59:04Z"};
6111
6112      if (cachedData && typeof cachedData === 'object' && cachedData.cached_at) {
6113        window._RestockRocketConfig.readFlags = cachedData.read_flags || {};
6114        const oldPlans = window._RestockRocketConfig.sellingPlans;
6115        const maxUpdatedAt = Array.isArray(oldPlans) && oldPlans.length > 0
6116          ? oldPlans.reduce(function(max, plan) {
6117              if (plan.updated_at) {
6118                const planDate = new Date(plan.updated_at);
6119                const maxDate = max ? new Date(max) : null;
6120                return (!maxDate || (planDate && !isNaN(planDate) && planDate > maxDate)) ? plan.updated_at : max;
6121              }
6122              return max;
6123            }, '')
6124          : null;
6125        const cachedDate = new Date(cachedData.cached_at);
6126        const maxDate = maxUpdatedAt ? new Date(maxUpdatedAt) : null;
6127        const useCached = !maxUpdatedAt || (cachedDate && !isNaN(cachedDate) && (!maxDate || cachedDate > maxDate));
6128
6129        if (useCached) {
6130          if (Array.isArray(cachedData.plans)) {
6131            window._RestockRocketConfig.sellingPlans = cachedData.plans;
6132            window._RestockRocketConfig.disabledSellingPlanIds = cachedData.disabled_plan_ids || [];
6133            console.debug('[RR] Using selling plans from cachedSellingPlans (cached_at: ' + cachedData.cached_at + ')');
6134          }
6135        } else {
6136          window._RestockRocketConfig.disabledSellingPlanIds = [];
6137          console.debug('[RR] Using selling plans from old format (max updated_at: ' + maxUpdatedAt + ')');
6138        }
6139      }
6140    })();window._RestockRocketConfig.enabledNotifyMeVariantIds = [];window._RestockRocketConfig.disabledNotifyMeVariantIds = [];window._RestockRocketConfig.backInStockTemplates = [];window._RestockRocketConfig.restockNotes = {};window._RestockRocketConfig.integrations = [{"id":"bf5cdb59-5b52-4310-bcf4-2085cb3599e6","shop_id":21444,"enabled":true,"page_types":["product","collection","index","search","page","cart","list-collections","article","blog"],"configuration":{"enableXHRHijack":true,"enableFetchHijack":true},"type":"hijack","css_config":null,"js_config":null,"created_at":"2024-12-31T15:02:04.065Z","updated_at":"2025-06-07T10:12:25.359Z"}];
6141  try {
6142    var _sqCfg = window._RestockRocketConfig;
6143    var _sqPlanEnabled = Array.isArray(_sqCfg.sellingPlans) &&
6144      _sqCfg.sellingPlans.some(function (p) { return p && p.enabled; });
6145    var _sqPreCount = ((_sqCfg.cachedPreorderVariantIds &&
6146      _sqCfg.cachedPreorderVariantIds.preorder_variant_ids) || []).length;
6147    _sqCfg.preordersConfigured = !!(_sqPlanEnabled && _sqPreCount);
6148  } catch (e) { }
6149  try {
6150    var _sqc = window._RestockRocketConfig;
6151    var _sqOn = !(_sqc.cachedSettings && _sqc.cachedSettings.block_accelerated_checkout === false);
6152    var _sqPre = (_sqc.cachedPreorderVariantIds &&
6153      _sqc.cachedPreorderVariantIds.preorder_variant_ids) || [];
6154    var _sqArm = false;
6155    if (_sqOn && _sqc.preordersConfigured) {
6156      if (_sqc.pageType === 'product' && _sqc.product && _sqc.product.variants) {
6157        _sqArm = _sqc.product.variants.some(function (v) { return _sqPre.indexOf(Number(v.id)) !== -1; });
6158      } else {
6159        _sqArm = (_sqc.integrations || []).some(function (i) {
6160          return i && i.type === 'featured_product' && i.enabled &&
6161            Array.isArray(i.page_types) && i.page_types.indexOf(_sqc.pageType) !== -1;
6162        });
6163      }
6164    }
6165    if (_sqArm && document.documentElement) {
6166      _sqc.acceleratedGateArmed = true;
6167      document.documentElement.classList.add('stoq-buy-now-pending');
6168      setTimeout(function () {
6169        document.documentElement.classList.remove('stoq-buy-now-pending');
6170      }, 6000);
6171    }
6172  } catch (e) { }
6173
6174  window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/01a0f67f-532e-7916-acb4-6f3af102b411/restockrocket-1-599/assets/restockrocket-product.js'
6175  window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/01a0f67f-532e-7916-acb4-6f3af102b411/restockrocket-1-599/assets/restockrocket-collection.js'
6176  window._RestockRocketConfig.scriptUrlProductBis = 'https://cdn.shopify.com/extensions/01a0f67f-532e-7916-acb4-6f3af102b411/restockrocket-1-599/assets/restockrocket-product-bis.js'
6177  window._RestockRocketConfig.scriptUrlCollectionBis = 'https://cdn.shopify.com/extensions/01a0f67f-532e-7916-acb4-6f3af102b411/restockrocket-1-599/assets/restockrocket-collection-bis.js'
6178  window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1)
6179  window._RestockRocketConfig.host = (window._RestockRocketConfig.cachedSettings && window._RestockRocketConfig.cachedSettings.api_host) || 'https://app.restockrocket.io'
6180  try {
6181    const _stoqVersionMatch = window._RestockRocketConfig.scriptHost.match(/(\d+)\/?(?:assets\/?)?$/);
6182    window._RestockRocketConfig.appVersion = (_stoqVersionMatch && _stoqVersionMatch[1]) || '';
6183  } catch (e) {
6184    window._RestockRocketConfig.appVersion = '';
6185  }
6186  const SETTINGS_CACHE_DURATION = 15 * 60 * 1000;
6187  const LIQUID_CACHE_MAX_AGE = 15 * 60;
6188  const liquidRenderedAt = window._RestockRocketConfig.liquidRenderedAt;
6189  if (!liquidRenderedAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt)) {
6190    console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh');
6191    window._RestockRocketConfig.isLiquidCacheFresh = true;
6192    window._RestockRocketConfig.liquidCacheAge = null;
6193  } else {
6194    const now = Math.floor(Date.now() / 1000);
6195    const liquidCacheAge = now - liquidRenderedAt;
6196    window._RestockRocketConfig.liquidCacheAge = Math.max(0, liquidCacheAge);
6197    if (liquidCacheAge < 0) {
6198      console.debug(`STOQ - Client clock appears ahead of server by ${Math.abs(Math.round(liquidCacheAge / 60))} minutes, assuming cache fresh`);
6199      window._RestockRocketConfig.isLiquidCacheFresh = true;
6200    } else if (liquidCacheAge <= LIQUID_CACHE_MAX_AGE) {
6201      console.debug(`STOQ - Liquid cache is fresh (${Math.round(liquidCacheAge / 60)} minutes old)`);
6202      window._RestockRocketConfig.isLiquidCacheFresh = true;
6203    } else {
6204      console.debug(`STOQ - Liquid cache is stale (${Math.round(liquidCacheAge / 60)} minutes old, max ${Math.round(LIQUID_CACHE_MAX_AGE / 60)} minutes)`);
6205      window._RestockRocketConfig.isLiquidCacheFresh = false;
6206    }
6207  }
6208
6209  function checkSettingsExpiry(settings) {
6210    try {
6211      if (!settings || !settings.updated_at) {
6212        console.debug('STOQ - Invalid settings data structure');
6213        return null;
6214      }
6215
6216      if (!settings.cache) {
6217        console.debug('STOQ - settings caching disabled');
6218        return null;
6219      }
6220      if (settings.multi_language_enabled) {
6221        if (!settings.translations) {
6222          console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh');
6223          return null;
6224        }
6225        if (window._RestockRocketConfig.normalizedLocale &&
6226            !Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) {
6227          console.debug('STOQ - locale not explicitly translated, will use default language from cache');
6228        }
6229      }
6230
6231      const updatedAt = new Date(settings.updated_at);
6232      if (isNaN(updatedAt.getTime())) {
6233        console.debug('STOQ - Invalid updated_at date format in settings');
6234        return null;
6235      }
6236
6237      const age = Date.now() - updatedAt.getTime();
6238      if (age < SETTINGS_CACHE_DURATION) {
6239        console.debug('STOQ - settings changed recently, skipping cache');
6240        return null;
6241      }
6242
6243      return settings;
6244    } catch (error) {
6245      console.debug('STOQ - Error checking settings cache:', error);
6246      return null;
6247    }
6248  }
6249
6250  function createRestockRocketContainer() {
6251    const restockRocketContainer = document.createElement('div');
6252    restockRocketContainer.id = 'restock-rocket';
6253    document.body.appendChild(restockRocketContainer);
6254  }
6255
6256  function createRestockRocketScript(scriptUrl) {
6257    const restockRocketScriptElement = document.createElement('script');
6258    restockRocketScriptElement.setAttribute('defer', 'defer');
6259    restockRocketScriptElement.src = scriptUrl;
6260    document.body.appendChild(restockRocketScriptElement);
6261  }
6262
6263  createRestockRocketContainer()
6264
6265  console.debug('STOQ - extension activated')
6266  try {
6267    const _stoqInitConfig = window._RestockRocketConfig;
6268    const _stoqDetectedVariantIds = (_stoqInitConfig.product && Array.isArray(_stoqInitConfig.product.variants)
6268)
6269      ? _stoqInitConfig.product.variants.map(function(v) { return v.id })
6270      : [];
6271    const _stoqSelectedVariantId = _stoqInitConfig.selected_variant_id;
6272    var _stoqPageSeq = 0;
6273    try {
6274      _stoqPageSeq = (parseInt(window.sessionStorage.getItem('_stoq_pls') || '0', 10) || 0) + 1;
6275      window.sessionStorage.setItem('_stoq_pls', String(_stoqPageSeq));
6276    } catch (e) { }
6277    Shopify?.analytics?.publish?.('stoq_initialized', {
6278      cart_token: _stoqInitConfig.cartToken || '',
6279      page_url: window.location.href,
6280      page_type: _stoqInitConfig.pageType || '',
6281      shop_domain: _stoqInitConfig.shop || '',
6282      market_id: _stoqInitConfig.marketId || '',
6283      country_code: _stoqInitConfig.countryIsoCode || '',
6284      detected_variant_ids: _stoqDetectedVariantIds,
6285      selected_variant_id: _stoqSelectedVariantId || '',
6286      page_load_seq: _stoqPageSeq,
6287      liquid_rendered_at: _stoqInitConfig.liquidRenderedAt || 0,
6288      app_version: _stoqInitConfig.appVersion || '',
6289      liquid_cache_age: _stoqInitConfig.liquidCacheAge,
6290      inventory_policy: (_stoqInitConfig.variantsInventoryPolicy || {})[_stoqSelectedVariantId] || '',
6291      inventory_quantity: (_stoqInitConfig.variantsInventoryQuantity || {})[_stoqSelectedVariantId],
6292    });
6293  } catch (e) {
6294    console.debug('STOQ - stoq_initialized publish failed:', e);
6295  }
6296  try {
6297    var _sqTrack = window._RestockRocketConfig;
6298    if (_sqTrack.preordersConfigured) {
6299      document.addEventListener('click', function (e) {
6300        try {
6301          var t = e.target;
6302          if (!t || !t.closest) return;
6303          var host = t.closest('.shopify-payment-button, shopify-payment-terms');
6304          if (!host) return;
6305          var channel = host.matches && host.matches('shopify-payment-terms')
6306            ? 'shop_pay_installments' : 'buy_now';
6307          var form = host.closest('form');
6308          var vidEl = form && form.querySelector('[name="id"]');
6309          var variantId = (vidEl && vidEl.value) || _sqTrack.selected_variant_id || '';
6310          var _sqVidNum = Number(variantId);
6311          var _sqPlan = null;
6312          var _sqPlans = Array.isArray(_sqTrack.sellingPlans) ? _sqTrack.sellingPlans : [];
6313          var _sqMktId = Number(_sqTrack.marketId);
6314          var _sqForVariant = function (pl) {
6315            return pl && pl.enabled && Array.isArray(pl.variant_ids) &&
6316              pl.variant_ids.indexOf(_sqVidNum) !== -1;
6317          };
6318          _sqPlans.forEach(function (pl) {
6319            if (!_sqPlan && _sqForVariant(pl) && pl.markets_enabled &&
6320                Array.isArray(pl.shopify_market_ids) &&
6321                pl.shopify_market_ids.indexOf(_sqMktId) !== -1) { _sqPlan = pl; }
6322          });
6323          if (!_sqPlan) {
6324            _sqPlans.forEach(function (pl) {
6325              if (!_sqPlan && _sqForVariant(pl) && !pl.markets_enabled) { _sqPlan = pl; }
6326            });
6327          }
6328          Shopify?.analytics?.publish?.('stoq_accelerated_checkout_clicked', {
6329            variant_id: variantId,
6330            product_id: (_sqTrack.product && _sqTrack.product.id) || '',
6331            channel: channel,
6332            market_id: _sqTrack.marketId || '',
6333            country_code: _sqTrack.countryIsoCode || '',
6334            page_type: _sqTrack.pageType || '',
6335            cart_token: _sqTrack.cartToken || '',
6336            page_url: (window.location && window.location.href) || '',
6337            properties: {
6338              is_preorder_variant: (function () {
6339                var vid = Number(variantId);
6340                var has = function (a) { return Array.isArray(a) && a.indexOf(vid) !== -1; };
6341                return has(_sqTrack.preorderVariantIds) ||
6342                  has(_sqTrack.cachedPreorderVariantIds &&
6343                    _sqTrack.cachedPreorderVariantIds.preorder_variant_ids);
6344              })(),
6345              in_enabled_plan: !!_sqPlan,
6346              is_instock_variant: (function () {
6347                var has = function (a) { return Array.isArray(a) && a.indexOf(_sqVidNum) !== -1; };
6348                return has(_sqTrack.inStockVariantIds) ||
6349                  has(_sqTrack.cachedInStockVariantIds &&
6350                    _sqTrack.cachedInStockVariantIds.in_stock_variant_ids);
6351              })(),
6352              enrolled_plan_id: (_sqPlan && (_sqPlan.shopify_selling_plan_id || _sqPlan.shopify_selling_plan_group_id)) || '',
6353              enrolled_plan_provider: (_sqPlan && _sqPlan.inventory_provider) || '',
6354              block_enabled: !(_sqTrack.cachedSettings && _sqTrack.cachedSettings.block_accelerated_checkout === false),
6355              gate_armed: !!_sqTrack.acceleratedGateArmed,
6356              gate_active_at_click: !!(document.documentElement &&
6357                document.documentElement.classList.contains('stoq-buy-now-pending')),
6358              blocked: (function () {
6359                try {
6360                  var rr = window._RestockRocket;
6361                  return !!(rr && typeof rr.willBlockAcceleratedCl
6361ick === 'function' &&
6362                    rr.willBlockAcceleratedClick(e));
6363                } catch (err) { return false; }
6364              })(),
6365            },
6366          });
6367        } catch (err) { }
6368      }, true);
6369    }
6370  } catch (e) { }
6371  function applyTranslations(settings) {
6372    try {
6373      if (!settings || !settings.multi_language_enabled) {
6374        return settings;
6375      }
6376
6377      if (!settings.translations) {
6378        console.debug('STOQ - No translations found, skipping translation');
6379        return settings;
6380      }
6381
6382      const normalizedLocale = window._RestockRocketConfig.normalizedLocale;
6383      const translations = settings.translations;
6384
6385      if (!normalizedLocale) {
6386        console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {}));
6387        delete settings.translations;
6388        return settings;
6389      }
6390
6391      console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`);
6392
6393      const translatedFields = translations[normalizedLocale];
6394      if (translatedFields && typeof translatedFields === 'object') {
6395        Object.keys(translatedFields).forEach(function(key) {
6396          const value = translatedFields[key];
6397          if (value !== null && value !== undefined && value !== '') {
6398            settings[key] = value;
6399          }
6400        });
6401      } else {
6402        console.debug('STOQ - No translated fields found for locale:', normalizedLocale);
6403      }
6404
6405      delete settings.translations;
6406      return settings;
6407    } catch (e) {
6408      console.debug('STOQ - error applying translations:', e);
6409      return settings;
6410    }
6411  }
6412  function setupCartSellingPlanUpdater(settings) {
6413    window.addEventListener('stoq:inventory-data-loaded', function(event) {
6414      console.debug('STOQ - Inventory data loaded, updating cart selling plans');
6415      if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) {
6416        window._RestockRocket.updateCartSellingPlans()
6417          .then(hasUpdates => {
6418            if (hasUpdates) {
6419              console.debug('STOQ - cart selling plans updated successfully');
6420            } else {
6421              console.debug('STOQ - no cart selling plan updates needed');
6422            }
6423          })
6424          .catch(error => {
6425            console.error('STOQ - error updating cart selling plans:', error);
6426          });
6427      }
6428    });
6429  }
6430  function storefrontGraphql(query, variables) {
6431    const cfg = window._RestockRocketConfig;
6432    if (!cfg.storefrontAccessToken || cfg.disableStorefrontApi === true) {
6433      return Promise.reject(new Error('Storefront API unavailable'));
6434    }
6435    return fetch(
6436      `https://${cfg.shop}/api/${cfg.storefrontApiVersion}/graphql.json`,
6437      {
6438        method: 'POST',
6439        headers: {
6440          'Content-Type': 'application/json',
6441          'X-Shopify-Storefront-Access-Token': cfg.storefrontAccessToken,
6442        },
6443        body: JSON.stringify({ query: query, variables: variables }),
6444      }
6445    )
6446    .then(function(response) {
6447      if (!response.ok) { throw new Error('Storefront API HTTP ' + response.status); }
6448      return response.json();
6449    })
6450    .then(function(body) {
6451      if (body && body.errors && body.errors.length) {
6452        throw new Error('Storefront API errors: ' + body.errors.map(function(e) { return e && e.message; }).join(', '));
6453      }
6454      return body && body.data;
6455    });
6456  }
6457  function fetchStorefrontShopMetafield(key) {
6458    const cfg = window._RestockRocketConfig;
6459    const query = 'query StoqShopMetafield($namespace: String!, $key: String!) { shop { metafield(namespace: $namespace, key: $key) { value } } }';
6460    return storefrontGraphql(query, { namespace: cfg.metafieldNamespace, key: key })
6461    .then(function(data) {
6462      const value = data && data.shop && data.shop.metafield && data.shop.metafield.value;
6463      if (!value) { throw new Error('Storefront API returned no ' + key + ' metafield value'); }
6464      return JSON.parse(value);
6465    });
6466  }
6467  (function loadStorefrontSettings() {
6468    const cfg = window._RestockRocketConfig;
6469    if (!cfg.storefrontAccessToken || cfg.disableStorefrontApi === true) return;
6470    function run() {
6471      // The live-settings read is one more shop-level metafield fetch, so it
6472      // shares fetchStorefrontShopMetafield with the integrations/selling_plans
6473      // reads rather than re-issuing the same query + parse.
6474      fetchStorefrontShopMetafield('settings')
6475      .then(function(settings) {
6476        cfg.storefrontSettings = settings;
6477        console.debug('STOQ - stored live settings from Storefront API on config.storefrontSettings');
6478      })
6479      .catch(function(e) {
6480        console.debug('STOQ - Storefront settings fetch failed (non-fatal):', e && e.message);
6481      });
6482    }
6483
6484    if (typeof window.requestIdleCallback === 'function') {
6485      window.requestIdleCallback(run, { timeout: 5000 });
6486    } else {
6487      setTimeout(run, 0);
6488    }
6489  })();
6490  const cachedSettings = window._RestockRocketConfig.cachedSettings;
6491  const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null;
6492
6493  if (validCachedSettings) {
6494    console.debug('STOQ - using cached settings');
6495    initializeScripts(validCachedSettings);
6496  } else {
6497    console.debug('STOQ - fetching fresh settings');
6498    const headers = {
6499      'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop,
6500      'ngrok-skip-browser-warning': 'skip'
6501    };
6502
6503    if (window.Shopify?.theme?.role === 'main') {
6504      headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name;
6505      headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version;
6506      headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id;
6507    }
6508
6509    fetch(
6510      `${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`,
6511      { headers }
6512    )
6513    .then(function(response) {
6514      if (!response.ok) {
6515        throw new Error('Network response was not ok');
6516      }
6517      return response.json();
6518    })
6519    .then(function(settings) {
6520      initializeScripts(settings);
6521    })
6522    .catch(function(error) {
6523      if (cachedSettings) {
6524        console.debug('STOQ - using expired cached settings as fallback');
6525        initializeScripts(cachedSettings);
6526      } else {
6527        console.error('STOQ - failed to load settings:', error);
6528      }
6529    })
6530    .catch(function(e) {
6531      console.error(e)
6532    })
6533  }
6534
6535  function fetchEmbedConfig(endpoint, apply) {
6536    return fetch(
6537      `${window._RestockRocketConfig.host}/api/v1/embed/${endpoint}.json`,
6538      {
6539        headers: {
6540          'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop,
6541          'ngrok-skip-browser-warning': 'skip'
6542        }
6543      }
6544    )
6545    .then(function(response) {
6546      if (!response.ok) throw new Error(`Failed to fetch ${endpoint}`);
6547      return response.json();
6548    })
6549    .then(function(data) {
6550      try {
6551        apply(data);
6552      } catch (applyError) {
6553        console.error('STOQ - apply failed for ' + endpoint + ':', applyError);
6554        throw applyError;
6555      }
6556    })
6557    .catch(function(error) {
6558      console.debug(`STOQ - using cached ${endpoint}:`, error.message);
6559    });
6560  }
6561  function refreshShopConfig(source) {
6562    const cfg = window._RestockRocketConfig;
6563    const viaEmbed = function() { return fetchEmbedConfig(source.endpoint, source.apply); };
6564    const flagOn = !!cfg.readFlags && cfg.readFlags[source.flag] === true;
6565    if (!flagOn || source.embedOnly === true) { return viaEmbed(); }
6566
6567    return fetchStorefrontShopMetafield(source.metafieldKey)
6568      .then(function(value) {
6569        if (!source.isValid(value)) { throw new Error(source.metafieldKey + ' metafield is not a valid ' + source.endpoint + ' payload'); }
6570        source.apply(value);
6571        console.debug('STOQ - refreshed ' + source.endpoint + ' from the Storefront API');
6572      })
6573      .catch(function(error) {
6574        console.debug('STOQ - Storefront ' + source.endpoint + ' read failed, using embed:', error.message);
6575        return viaEmbed();
6576      });
6577  }
6578  function refreshIntegrations() {
6579    const cfg = window._RestockRocketConfig;
6580    return refreshShopConfig({
6581      endpoint: 'integrations',
6582      metafieldKey: 'integrations',
6583      flag: 'enable_storefront_integrations_read',
6584      isValid: function(value) { return Array.isArray(value); },
6585      apply: function(data) {
6586        cfg.integrations = data;
6587      }
6588    });
6589  }
6590  function refreshSellingPlans(embedOnly) {
6591    const cfg = window._RestockRocketConfig;
6592    return refreshShopConfig({
6593      embedOnly: embedOnly === true,
6594      endpoint: 'selling_plans',
6595      metafieldKey: 'cachedSellingPlans',
6596      flag: 'enable_storefront_selling_plans_read',
6597      isValid: function(value) { return !!value && Array.isArray(value.plans); },
6598      apply: function(data) {
6599        cfg.sellingPlans = data.plans;
6600        cfg.disabledSellingPlanIds = data.disabled_plan_ids || [];
6601        if (data && data.read_flags && typeof data.read_flags === 'object' && !Array.isArray(data.read_flags)) {
6602          cfg.readFlags = data.read_flags;
6603        }
6604      }
6605    });
6606  }
6607
6608  function initializeScripts(settings) {
6609    settings = applyTranslations(settings);
6610    window._RestockRocketConfig.settings = settings;
6611    console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`);
6612    const forceEmbedSellingPlans = settings.force_embed_selling_plans === true;
6613    const staleRefresh = !window._RestockRocketConfig.isLiquidCacheFresh && !settings.disable_refresh_on_stale_liquid;
6614    if (forceEmbedSellingPlans || staleRefresh) {
6615      console.debug('STOQ - refreshing selling_plans' + (staleRefresh ? ' + integrations (Liquid cache stale)' : ' (force_embed_selling_plans)'));
6616      const refreshes = [refreshSellingPlans(forceEmbedSellingPlans)];
6617      if (staleRefresh) { refreshes.push(refreshIntegrations()); }
6618      Promise.race([
6619        Promise.all(refreshes),
6620        new Promise(function(resolve) { setTimeout(resolve, 1000); })
6621      ]).then(function() { loadScripts(settings); });
6622      return;
6623    }
6624
6625    loadScripts(settings);
6626  }
6627
6628  function loadScripts(settings) {
6629    setupCartSellingPlanUpdater(settings);
6630
6631    if(settings.enable_app) {
6632      const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) {
6633        return integration.type === 'hijack' && integration.enabled && integration.page_types.includes(window._RestockRocketConfig.pageType);
6634      })
6635      const hasEnabledOffer = Array.isArray(window._RestockRocketConfig.sellingPlans)
6636        && window._RestockRocketConfig.sellingPlans.some(function(plan) { return plan && plan.enabled; });
6637      const hasDisabledPlanIds = Array.isArray(window._RestockRocketConfig.disabledSellingPlanIds)
6638        && window._RestockRocketConfig.disabledSellingPlanIds.length > 0;
6639      const usePreorderBuild = settings.preorder_enabled || hasEnabledOffer || hasDisabledPlanIds;
6640
6641      const collectionScriptUrl = usePreorderBuild
6642        ? window._RestockRocketConfig.scriptUrlCollection
6643        : window._RestockRocketConfig.scriptUrlCollectionBis;
6644      const productScriptUrl = usePreorderBuild
6645        ? window._RestockRocketConfig.scriptUrlProduct
6646        : window._RestockRocketConfig.scriptUrlProductBis;
6647
6648      const pageType = window._RestockRocketConfig.pageType;
6649      const collectionPageTypes = ['collection', 'index', 'search', 'page'];
6650
6651      if(collectionPageTypes.indexOf(pageType) !== -1 && (settings[`show_button_on_${pageType}`] || settings[`preorder_${pageType}_enabled`])) {
6652        createRestockRocketScript(collectionScriptUrl);
6653      } else if(pageType === 'product') {
6654        createRestockRocketScript(productScriptUrl);
6655      } else if(hijackIntegration) {
6656        createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
6657      } else if(usePreorderBuild) {
6658        createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
6659      } else {
6660        console.debug(`STOQ - no scripts enabled for ${pageType}`);
6661      }
6662      const appLoadedEvent = new CustomEvent('stoq:loaded', {
6663        detail: {
6664          pageType: window._RestockRocketConfig.pageType,
6665          enabled: settings.enable_app,
6666          settings: settings,
6667          preorderEnabled: settings.preorder_enabled
6668        }
6669      });
6670      console.debug('STOQ - dispatching app loaded event');
6671      window.dispatchEvent(appLoadedEvent);
6672    }
6673  }
6674</script>
6674<style id="RestockRocketStyle">html.stoq-buy-now-pending .shopify-payment-button{pointer-events:none!important}</style>
6675
6676
6677</div><div id="shopify-block-AZTI3VUE3SFNzM3F6d__2912608901741945173" class="shopify-block shopify-app-block">
6678</div><div id="shopify-block-ARExFU25Wa0dyOGZGU__6251270934270006384" class="shopify-block shopify-app-block">
6678<script>
6679  console.log("Stape gtm: 1.0.4");
6680  window.lsData = {};
6681  window.dataLayer = window.dataLayer || [];
6682  window.addEventListener("message", (event) => {
6683    if (event.data?.event) {
6684      window.dataLayer.push(event.data);
6685    }
6686  });
6687  window.dataShopStape = {
6688    shop: "myfirmtech.com",
6689    shopId: "57731776662",
6690  }
6691</script>
6691
6692
6693
6694
6695
6696
6697
6698  
6698<script>
6699    console.log("⚠️ User not logged in");
6700    window.localStorage.removeItem('customerShopStape');
6701  </script>
6701
6702
6703
6704
6705
6706<script>
6707  window.currentShopifyMarketStapeId = null;
6708  window.currentShopifyMarketStapeCode = null;
6709  try {
6710    window.currentShopifyMarketStapeId = "2485813398";
6711    window.currentShopifyMarketStapeCode = "US";
6712    // Checkout doesn't render theme app extension blocks, so this is the
6713    // only place the market/country code is ever set. Persisting it here
6714    // lets checkout-side field mapping (country_market_code) fall back to
6715    // the last known value instead of coming up empty.
6716    localStorage.setItem('marketShopStape', JSON.stringify({
6717      id: window.currentShopifyMarketStapeId,
6718      code: window.currentShopifyMarketStapeCode
6719    }));
6720  } catch (error) {
6721    console.error("❌ Stape Error:", error);
6722  }
6723</script>
6723
6724
6725
6726
6727
6728
6729</div>
6729<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
6729
6730</body>
6731</html>
6732
6733<script>
6734  // Force reload metafield data if accessed via back button or cached
6735  window.addEventListener('pageshow', function (event) {
6736    if (event.persisted || (window.performance && window.performance.navigation.type === 2)) {
6737      window.location.reload();
6738    }
6739  });
6740</script>
6740
6741
6742
6743<!-- 
6743<script>
6744  document.addEventListener("DOMContentLoaded", function () {
6745    const urlParams = new URLSearchParams(window.location.search);
6746    const firstName = urlParams.get('first_name');
6747
6748    if (firstName) {
6749      console.log("First Name:", firstName); // This will show in the console if it's working
6750    } else {
6751      console.log("No 'first_name' parameter found");
6752    }
6753  });
6754</script>
6754 -->
6755
6756<script>
6757  function toSentenceCase(str) {
6758  return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
6759}
6760
6761document.querySelectorAll('.sentence-case').forEach(el => {
6762  el.textContent = toSentenceCase(el.textContent);
6763});
6764</script>
6764
6765
6766
6767<div id="result-container"></div>

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.