PageSourceSearch

https://frameworth.com/pages/our-retail-store

html frameworth.com collected 2026-09-26 11:40:20 UTC 232,841 bytes, 3,451 lines download raw bytes

1<!doctype html>
2<html
3  class="no-js"
4  lang="en"
5  dir="ltr"
6>
7  <head>
8    <meta name="google-site-verification" content="mdkDbUCLgIwAf8R3CIxKISGFH5v5LYA8XGixW8aPAVk"><meta charset="utf-8">
9<meta name="viewport" content="width=device-width,initial-scale=1">
10<title>Our Retail Store &ndash; Frameworth Sports Marketing </title><link rel="canonical" href="https://frameworth.com/pages/our-retail-store"><link rel="icon" href="//frameworth.com/cdn/shop/files/fw-favicon.png?crop=center&height=48&v=1735101664&width=48" type="image/png">
11  <link rel="apple-touch-icon" href="//frameworth.com/cdn/shop/files/fw-favicon.png?crop=center&height=180&v=1735101664&width=180"><meta name="description" content="Frameworth Sports Marketing has a superior sport memorabilia retail store that is used to sell and display autographed memorabilia to walk-in customers. The Frameworth Showroom also serves as an Event Centre for special occasions. Over the years Frameworth has held Gala Evenings with Wayne Gretzky, Bobby Orr, Mario Lem"><meta property="og:site_name" content="Frameworth Sports Marketing ">
12<meta property="og:url" content="https://frameworth.com/pages/our-retail-store">
13<meta property="og:title" content="Our Retail Store">
14<meta property="og:type" content="website">
15<meta property="og:description" content="Frameworth Sports Marketing has a superior sport memorabilia retail store that is used to sell and display autographed memorabilia to walk-in customers. The Frameworth Showroom also serves as an Event Centre for special occasions. Over the years Frameworth has held Gala Evenings with Wayne Gretzky, Bobby Orr, Mario Lem"><meta name="twitter:site" content="@FrameworthSport"><meta name="twitter:card" content="summary_large_image">
16<meta name="twitter:title" content="Our Retail Store">
17<meta name="twitter:description" content="Frameworth Sports Marketing has a superior sport memorabilia retail store that is used to sell and display autographed memorabilia to walk-in customers. The Frameworth Showroom also serves as an Event Centre for special occasions. Over the years Frameworth has held Gala Evenings with Wayne Gretzky, Bobby Orr, Mario Lem">
18<link href="//frameworth.com/cdn/shop/t/157/assets/main.css?v=53685663471532798651781201858" rel="stylesheet" type="text/css" media="all" /><style data-shopify>
19:root {
20              --bg-color: 255 255 255 / 1.0;
21              --bg-color-og: 255 255 255 / 1.0;
22              --heading-color: 0 0 0;
23              --text-color: 0 0 0;
24              --text-color-og: 0 0 0;
25              --scrollbar-color: 0 0 0;
26              --link-color: 0 0 0;
27              --link-color-og: 0 0 0;
28              --star-color: 255 215 55;--swatch-border-color-default: 204 204 204;
29                --swatch-border-color-active: 128 128 128;
30                --swatch-card-size: 24px;
31                --swatch-variant-picker-size: 80px;--color-scheme-1-bg: 255 255 255 / 1.0;
32              --color-scheme-1-grad: linear-gradient(46deg, rgba(245, 245, 245, 1) 13%, rgba(249, 249, 249, 1) 86%);
33              --color-scheme-1-heading: 0 0 0;
34              --color-scheme-1-text: 0 0 0;
35              --color-scheme-1-btn-bg: 0 0 0;
36              --color-scheme-1-btn-text: 255 255 255;
37              --color-scheme-1-btn-bg-hover: 46 46 46;--color-scheme-2-bg: 0 46 98 / 1.0;
38              --color-scheme-2-grad: ;
39              --color-scheme-2-heading: 237 237 237;
40              --color-scheme-2-text: 255 255 255;
41              --color-scheme-2-btn-bg: 255 255 255;
42              --color-scheme-2-btn-text: 255 255 255;
43              --color-scheme-2-btn-bg-hover: 255 255 255;--color-scheme-3-bg: 0 154 68 / 1.0;
44              --color-scheme-3-grad: linear-gradient(45deg, rgba(248, 248, 248, 1), rgba(230, 232, 238, 1) 100%);
45              --color-scheme-3-heading: 26 26 26;
46              --color-scheme-3-text: 0 0 0;
47              --color-scheme-3-btn-bg: 255 255 255;
48              --color-scheme-3-btn-text: 0 0 0;
49              --color-scheme-3-btn-bg-hover: 225 225 225;
50
51              --drawer-bg-color: 255 255 255 / 1.0;
52              --drawer-text-color: 0 0 0;
53
54              --panel-bg-color: 245 245 245 / 1.0;
55              --panel-heading-color: 0 0 0;
56              --panel-text-color: 0 0 0;
57
58              --in-stock-text-color: 13 164 74;
59              --low-stock-text-color: 54 55 55;
60              --very-low-stock-text-color: 227 43 43;
61              --no-stock-text-color: 7 7 7;
62              --no-stock-backordered-text-color: 119 119 119;
63
64              --error-bg-color: 252 237 238;
65              --error-text-color: 180 12 28;
66              --success-bg-color: 232 246 234;
67              --success-text-color: 44 126 63;
68              --info-bg-color: 228 237 250;
69              --info-text-color: 26 102 210;
70
71              --heading-font-family: Helvetica,
72              Arial, sans-serif;
73              --heading-font-style: normal;
74              --heading-font-weight: 700;
75              --heading-scale-start: 2;
76
77              --navigation-font-family: Helvetica,
78              Arial, sans-serif;
79              --navigation-font-style: normal;
80              --navigation-font-weight: 700;--heading-text-transform: none;
81
82                --subheading-text-transform: uppercase;
83              --body-font-family: Helvetica,
84              Arial, sans-serif;
85              --body-font-style: normal;
86              --body-font-weight: 400;
87              --body-font-size: 15;
88
89              --section-gap: 32;
90              --heading-gap: calc(8 * var(--space-unit));--heading-gap: calc(6 * var(--space-unit));--grid-column-gap: 20px;--btn-bg-color: 0 46 98;
91              --btn-bg-hover-color: 42 84 134;
92              --btn-text-color: 255 255 255;
93              --btn-bg-color-og: 0 46 98;
94              --btn-text-color-og: 255 255 255;
95              --btn-alt-bg-color: 0 0 0;
96              --btn-alt-bg-alpha: 1.0;
97              --btn-alt-text-color: 255 255 255;
98              --btn-border-width: 1px;
99              --btn-padding-y: 12px;
100
101              
102                --btn-border-radius: 21px;
103              
104
105              --btn-lg-border-radius: 50%;
106              --btn-icon-border-radius: 50%;
107              --input-with-btn-inner-radius: var(--btn-border-radius);
108                --btn-text-transform: uppercase;
109
110              --input-bg-color: 255 255 255 / 1.0;
111              --input-text-color: 0 0 0;
112              --input-border-width: 1px;
113              --input-border-radius: 20px;
114              --textarea-border-radius: 12px;
115                --input-border-radius: 21px;
116                --input-bg-color-diff-3: #f7f7f7;
117                --input-bg-color-diff-6: #f0f0f0;
118
119              --modal-border-radius: 0px;
120              --modal-overlay-color: 0 0 0;
121              --modal-overlay-opacity: 0.4;
122              --drawer-border-radius: 0px;
123              --overlay-border-radius: 20px;
124
125              --custom-label-bg-color: 255 215 55;
126              --custom-label-text-color: 7 7 7;--sale-label-bg-color: 227 43 43;
127                --sale-label-text-color: 255 255 255;--sold-out-label-bg-color: 46 46 46;
128                --sold-out-label-text-color: 255 255 255;--new-label-bg-color: 26 102 210;
129                --new-label-text-color: 255 255 255;--preorder-label-bg-color: 86 203 249;
130              --preorder-label-text-color: 0 0 0;
131
132              --collection-label-color: 0 126 18;
133
134              --page-width: 1800px;
135              --gutter-sm: 20px;
136              --gutter-md: 32px;
137              --gutter-lg: 64px;
138
139              --payment-terms-bg-color: #ffffff;
140
141              --coll-card-bg-color: rgba(0,0,0,0);
142              --coll-card-border-color: rgba(0,0,0,0);
143
144              --card-highlight-bg-color: #fcedee;
145              --card-highlight-text-color: 0 46 98;
146              --card-highlight-border-color: #000000;--card-bg-color: rgba(0,0,0,0);
147                --card-text-color: 7 7 7;
148                --card-border-color: #e2e8f0;
149                
150                  --aos-animate-duration: 1s;
151                
152
153                
154                  --aos-min-width: 0;
155                
156              
157
158              --reading-width: 48em;
159            }
160
161            @media (max-width: 769px) {
162              :root {
163                --reading-width: 36em;
164              }
165            }</style>
166
167    
167<script src="//frameworth.com/cdn/shop/t/157/assets/main.js?v=84619214277802464481786131144" defer="defer"></script>
167
168    
168<script src="//frameworth.com/cdn/shop/t/157/assets/custom.js?v=115122280849738449981760710646" defer=""></script>
168
169    
169<script src="//frameworth.com/cdn/shop/t/157/assets/auction-bid-tracker.js?v=32115555061603341021788317764" defer></script>
169
170    
170<script src="//frameworth.com/cdn/shop/t/157/assets/measurement-events.js?v=148994667165353370061788317765" defer></script>
170
171    
171<script src="//frameworth.com/cdn/shop/t/157/assets/auction-price-format.js?v=54816586561622737661771004204" defer></script>
171
172    
172<script src="//frameworth.com/cdn/shop/t/157/assets/cart-inscription-guard.js?v=87746858134310722861785437679" defer></script>
172<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
172<meta name="google-site-verification" content="g7kaNhXg4w3bJt00vKGgp3aTr_gKaCqJpjGbwLcUY7k">
173<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/56892752041/digital_wallets/dialog">
174<meta id="in-context-paypal-metadata" data-shop-id="56892752041" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD">
175<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
175<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=764838057"></script>
175
176<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
177<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=764838057&shop_id=56892752041" crossorigin="anonymous"></script>
vendor: 1 bytes, line 177
177
178<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":56892752041,"countryCode":"CA","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/56892752041","merchantName":"Frameworth Sports Marketing ","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","interac","jcb"],"total":{"type":"pending","label":"Frameworth Sports Marketing ","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 178
178
179<script id="shopify-features" type="application/json">{"accessToken":"353c77cbf8eb5b510c783fc889fe8adb","betas":["rich-media-storefront-analytics"],"domain":"frameworth.com","predictiveSearch":true,"shopId":56892752041,"locale":"en"}</script>
vendor: 1 bytes, line 179
179
180<script>var Shopify = Shopify || {};
181Shopify.shop = "fw-ca-2021.myshopify.com";
182Shopify.locale = "en";
183Shopify.currency = {"active":"USD","rate":"0.706974"};
184Shopify.country = "US";
185Shopify.theme = {"name":"frameworth-theme\/main","id":147866845353,"schema_name":"Enterprise","schema_version":"1.6.1","theme_store_id":null,"role":"main"};
186Shopify.theme.handle = "null";
187Shopify.theme.style = {"id":null,"handle":null};
188Shopify.cdnHost = "frameworth.com/cdn";
189Shopify.routes = Shopify.routes || {};
190Shopify.routes.root = "/";
191Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
192Shopify.SignInWithShop = Shopify.SignInWithShop || {};
193Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
194Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 194
194
195<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 195
195
196<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 196
196
197<script>
198  window.ShopifyPay = window.ShopifyPay || {};
199  window.ShopifyPay.apiHost = "shop.app\/pay";
200  window.ShopifyPay.redirectState = null;
201</script>
vendor: 1 bytes, line 201
201
202<script>
203  window.Shopify = window.Shopify || {};
204  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
205  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
206  window.Shopify.SignInWithShop.eligible = true;
207</script>
vendor: 1 bytes, line 207
207
208<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 208
208
209<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 209
209
210<script type="module">
211  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
212
213  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
214
215</script>
vendor: 1 bytes, line 215
215
216<script>
217  window.Shopify = window.Shopify || {};
218  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
219  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"]};
220</script>
vendor: 1 bytes, line 220
220
221<script>(function() {
222  var isLoaded = false;
223  function asyncLoad() {
224    if (isLoaded) return;
225    isLoaded = true;
226    var urls = ["https:\/\/app.pictureit.co\/js\/kpI0PAOWGTmQep1eGYKR4xOK\/load.js?shop=fw-ca-2021.myshopify.com","\/\/staticw2.yotpo.com\/XzhaccEkXKVp2wlpsLGXnp9DHSm0PBmt2jFMEufb\/widget.js?shop=fw-ca-2021.myshopify.com"];
227    for (var i = 0; i < urls.length; i++) {
228      var s = document.createElement('script');
229      s.type = 'text/javascript';
230      s.async = true;
231      s.src = urls[i];
232      var x = document.getElementsByTagName('script')[0];
233      x.parentNode.insertBefore(s, x);
234    }
235  };
236  if(window.attachEvent) {
237    window.attachEvent('onload', asyncLoad);
238  } else {
239    window.addEventListener('load', asyncLoad, false);
240  }
241})();</script>
vendor: 1 bytes, line 241
241
242<script id="__st">var __st={"a":56892752041,"offset":-14400,"reqid":"b0c9388f-9d89-42ff-a9e9-3f12a64552de-1790422819","pageurl":"frameworth.com\/pages\/our-retail-store","s":"pages-86001549481","u":"56423e86859c","p":"page","rtyp":"page","rid":86001549481};</script>
vendor: 1 bytes, line 242
242
243<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 243
243
244<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 244
244
245<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//frameworth.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 245
245
246<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 = "//frameworth.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>
246<script crossorigin="anonymous" defer="defer" src="//frameworth.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 246
246
247<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 247
247
248<script>
249  window.Shopify = window.Shopify || {};
250  window.Shopify.MCP = window.Shopify.MCP || {};
251  window.Shopify.MCP.enabled = true;
252  window.Shopify.MCP.shop = "fw-ca-2021.myshopify.com";
253  window.Shopify.MCP.mcpEndpoint = "https:\/\/frameworth.com\/api\/mcp";
254  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"]}}];
255</script>
vendor: 1 bytes, line 255
255
256<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("\/\/frameworth.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})();
257</script>
vendor: 1 bytes, line 257
257
258<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://frameworth.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
259</script>
vendor: 1 bytes, line 259
259
260<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
261  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);
262</script>
vendor: 1 bytes, line 262
262
263<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})}}));
264</script>
264
265<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://frameworth.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
266<style id="shopify-accelerated-checkout-cart">
267        #shopify-buyer-consent {
268  margin-top: 1em;
269  display: inline-block;
270  width: 100%;
271}
272
273#shopify-buyer-consent.hidden {
274  display: none;
275}
276
277#shopify-subscription-policy-button {
278  background: none;
279  border: none;
280  padding: 0;
281  text-decoration: underline;
282  font-size: inherit;
283  cursor: pointer;
284}
285
286#shopify-subscription-policy-button::before {
287  box-shadow: none;
288}
289
290      </style>
291<link rel="stylesheet" media="screen" href="//frameworth.com/cdn/shop/t/157/compiled_assets/styles.css?v=128765486571410910181789737146">
292<script id="sections-script" data-sections="promo-countdown-bar,header,footer" defer="defer" src="//frameworth.com/cdn/shop/t/157/compiled_assets/scripts.js?v=92086951437839887161788274674"></script>
vendor: 1 bytes, line 292
292
293<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
293
294
295      
295<script src="//frameworth.com/cdn/shop/t/157/assets/animate-on-scroll.js?v=15249566486942820451760710647" defer="defer"></script>
295
296      <link rel="stylesheet" href="//frameworth.com/cdn/shop/t/157/assets/animate-on-scroll.css?v=116194678796051782541760710647">
297    
298
299    
299<script>
300      document.documentElement.className = document.documentElement.className.replace('no-js', 'js');
301    </script>
301<!-- CC Custom Head Start --><!-- CC Custom Head End --><link href="//frameworth.com/cdn/shop/t/157/assets/auction-plus.css?v=164623343527897844711789687861" rel="stylesheet" type="text/css" media="all" />
302<link href="//frameworth.com/cdn/shop/t/157/assets/limited-quantity-sale.css?v=9171136070458613941780605361" rel="stylesheet" type="text/css" media="all" />
303    
303<script src="//frameworth.com/cdn/shop/t/157/assets/limited-quantity-countdown.js?v=162435866425054850451766165154" defer="defer"></script>
303
304
305
306    
306<script type="text/javascript">
307      teeinblue = {
308        cartContainerSelectors: ['.cart-items tbody'],
309        cartItemWrapperSelectors: ['.cart-items tbody tr.cart-item'],
310      };
311    </script>
311<!-- BEGIN app block: shopify://apps/teeinblue-product-personalizer/blocks/product-personalizer/67212f31-32b0-450c-97dd-7e182a5fac7b -->
312
313
314  <!-- teeinblue scripts -->
315  
315<script>
316    window.teeinblueShop = {
317      shopCurrency: "CAD",
318    
319      moneyFormat: "${{amount}}",
320    
321    };
322  </script>
322
323
324  
325
326  
327
328  
329
330  
331  <!-- teeinblue async script -->
332  
332<script
333    type="text/javascript"
334    async
335    src="https://sdk.teeinblue.com/async.js?platform=shopify&amp;v=1&amp;token=CaYExsFhyPUkddfdqbe28iten62jyKDa&amp;shop=fw-ca-2021.myshopify.com"
336  ></script>
336
337  <!-- teeinblue async script end -->
338
339  
340
341  
342  <!-- teeinblue scripts end. -->
343
344
345
346<!-- END app block --><!-- BEGIN app block: shopify://apps/microsoft-clarity/blocks/clarity_js/31c3d126-8116-4b4a-8ba1-baeda7c4aeea -->
347<script type="text/javascript">
348  (function (c, l, a, r, i, t, y) {
349    c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments); };
350    t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i + "?ref=shopify";
351    y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y);
352
353    c.Shopify.loadFeatures([{ name: "consent-tracking-api", version: "0.1" }], error => {
354      if (error) {
355        console.error("Error loading Shopify features:", error);
356        return;
357      }
358
359      c[a]('consentv2', {
360        ad_Storage: c.Shopify.customerPrivacy.marketingAllowed() ? "granted" : "denied",
361        analytics_Storage: c.Shopify.customerPrivacy.analyticsProcessingAllowed() ? "granted" : "denied",
362        source: 101,
363      });
364    });
365
366    l.addEventListener("visitorConsentCollected", function (e) {
367      c[a]('consentv2', {
368        ad_Storage: e.detail.marketingAllowed ? "granted" : "denied",
369        analytics_Storage: e.detail.analyticsAllowed ? "granted" : "denied",
370        source: 101,
371      });
372    });
373  })(window, document, "clarity", "script", "m9u9y2vab0");
374</script>
374
375
376
377
378<!-- END app block --><!-- BEGIN app block: shopify://apps/yotpo-product-reviews/blocks/settings/eb7dfd7d-db44-4334-bc49-c893b51b36cf -->
379
380
381  
381<script type="text/javascript" src="https://cdn-widgetsrepository.yotpo.com/v1/loader/XzhaccEkXKVp2wlpsLGXnp9DHSm0PBmt2jFMEufb?languageCode=en" async></script>
381
382
383
384
385  
386<!-- END app block --><!-- BEGIN app block: shopify://apps/yotpo-product-reviews/blocks/reviews_tab/eb7dfd7d-db44-4334-bc49-c893b51b36cf -->
387
388
389
390<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 -->
391
392
393
394
395
396
397
398
399
400
401
402
403  
403<script async src="https://static.klaviyo.com/onsite/js/XngeAm/klaviyo.js?company_id=XngeAm"></script>
403
404  
404<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>
404
405
406  
407
408
409
410
411  
411<script>
412    window.klaviyoReviewsProductDesignMode = false
413  </script>
413
414
415
416
417
418
419
420
421
422
423<!-- END app block --><!-- BEGIN app block: shopify://apps/gorgias-live-chat-helpdesk/blocks/gorgias/a66db725-7b96-4e3f-916e-6c8e6f87aaaa -->
424<script defer data-gorgias-loader-chat src="https://config.gorgias.chat/bundle-loader/shopify/fw-ca-2021.myshopify.com"></script>
424
425
426
427<script defer data-gorgias-loader-convert  src="https://content.9gtb.com/loader.js"></script>
427
428
429
430<script defer data-gorgias-loader-mailto-replace  src="https://config.gorgias.help/api/contact-forms/replace-mailto-script.js?shopName=fw-ca-2021"></script>
430
431
432
433<!-- END app block -->
433<script src="https://cdn.shopify.com/extensions/01a0d8da-dbb6-759e-90f0-31975754fa90/forms-2597/assets/shopify-forms-loader.js" type="text/javascript" defer="defer"></script>
433
434<link href="https://cdn.shopify.com/extensions/019f8655-eaf7-7d14-ae81-c44be7221cf5/auction-plus-99/assets/style.css" rel="stylesheet" type="text/css" media="all">
435<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>
435
436<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
437<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: 56892752041,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 437
437
438<script>
439  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
440</script>
vendor: 1 bytes, line 440
440
441<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}
441).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: 56892752041,storefrontBaseUrl: "https://frameworth.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://frameworth.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"1962868905","configuration":"{\"ti\":\"187273472\",\"endpoint\":\"https:\/\/bat.bing.com\/action\/0\",\"tagIds\":\"[\\\"-1\\\"]\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"58a904981d2724b937c16718aa2f1aee","type":"APP","apiClientId":2997493,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"}
441,{"id":"1786773673","configuration":"{\"shopId\":\"56892752041\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"83adcaf06c5deacff41ffdf8f92d9129","type":"APP","apiClientId":246667608065,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_phone","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1667793065","configuration":"{\"shop\":\"fw-ca-2021.myshopify.com\",\"url\":\"https:\\\/\\\/sortwise.mezereon.net\\\/t\",\"customEvents\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"858af8c77a364ea5bdaaa6d4998682cb","type":"APP","apiClientId":216838471681,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1338409129","configuration":"{\"accountID\":\"XngeAm\",\"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":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"1303576745","configuration":"{\"projectId\":\"m9u9y2vab0\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d8a2bb2ccbb513dc8e8b6937f4b8033e","type":"APP","apiClientId":240074326017,"privacyPurposes":[],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"640057513","configuration":"{\"pixelCode\":\"CS58FF3C77U2AE2VQSUG\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"22e92c2ad45662f435e4801458fb78cc","type":"APP","apiClientId":4383523,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":[]},"dataSharingState":"optimized"},{"id":"532152489","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-W78ZJ9EESH\\\",\\\"AW-714360542\\\",\\\"GT-K4V6HZVK\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-W78ZJ9EESH\\\",\\\"AW-714360542\\\/5NUJCImQj7MDEN6N0dQC\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-W78ZJ9EESH\\\",\\\"AW-714360542\\\/wnM4CIyQj7MDEN6N0dQC\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-W78ZJ9EESH\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-W78ZJ9EESH\\\",\\\"AW-714360542\\\/1IbhCIOQj7MDEN6N0dQC\\\",\\\"MC-DQC198Q6ZE\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-W78ZJ9EESH\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-W78ZJ9EESH\\\",\\\"AW-714360542\\\/ybzHCICQj7MDEN6N0dQC\\\",\\\"MC-DQC198Q6ZE\\\",\\\"AW-714360542\\\/bXB-CP2r7q8ZEN6N0dQC\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-W78ZJ9EESH\\\",\\\"AW-714360542\\\/0QndCP2Pj7MDEN6N0dQC\\\",\\\"MC-DQC198Q6ZE\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-W78ZJ9EESH\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-W78ZJ9EESH\\\",\\\"AW-714360542\\\/KU6yCI-Qj7MDEN6N0dQC\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-W78ZJ9EESH\\\",\\\"AW-714360542\\\/HbcECIaQj7MDEN6N0dQC\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-W78ZJ9EESH\\\"}],\\\"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"]}
441,"dataSharingState":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"183271593","configuration":"{\"pixel_id\":\"792408631256064\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"142475433","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"5","type":"CUSTOM","privacyPurposes":[],"name":"Meta - Auction - Bid Placed"},{"id":"166166697","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Google Ads - Auction Bid"},{"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":"Frameworth Sports Marketing ","paymentSettings":{"currencyCode":"CAD"},"myshopifyDomain":"fw-ca-2021.myshopify.com","countryCode":"CA","storefrontUrl":"https:\/\/frameworth.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"8755357483177","handle":"custom-jersey-framing","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46400167706793","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://frameworth.com/cdn","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"147866845353","themePublished":"true","eventMetadataId":"3f4ca4d7-e82f-4311-8bc7-4d38103671cb","pageType":"page","resourceId":"86001549481","shopId":"56892752041","storefrontBaseUrl":"https:\/\/frameworth.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
441<script>
442  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
443  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
444  window.ShopifyAnalytics.meta.currency = 'USD';
445  var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":86001549481,"requestId":"b0c9388f-9d89-42ff-a9e9-3f12a64552de-1790422819"}};
446  for (var attr in meta) {
447    window.ShopifyAnalytics.meta[attr] = meta[attr];
448  }
449</script>
vendor: 1 bytes, line 449
449
450<script class="analytics">
451  (function () {
452    var customDocumentWrite = function(content) {
453      var jquery = null;
454
455      if (window.jQuery) {
456        jquery = window.jQuery;
457      } else if (window.Checkout && window.Checkout.$) {
458        jquery = window.Checkout.$;
459      }
460
461      if (jquery) {
462        jquery('body').append(content);
463      }
464    };
465
466    var hasLoggedConversion = function(token) {
467      if (token) {
468        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
469      }
470      return false;
471    }
472
473    var setCookieIfConversion = function(token) {
474      if (token) {
475        var twoMonthsFromNow = new Date(Date.now());
476        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
477
478        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
479      }
480    }
481
482    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
483    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
484    if (trekkie.integrations) {
485      return;
486    }
487    trekkie.methods = [
488      'identify',
489      'page',
490      'ready',
491      'track',
492      'trackForm',
493      'trackLink'
494    ];
495    trekkie.factory = function(method) {
496      return function() {
497        var args = Array.prototype.slice.call(arguments);
498        args.unshift(method);
499        trekkie.push(args);
500        if (method == 'track' || method == 'page') {
501          var pageUrl;
502          try {
503            pageUrl = window.location.href;
504          } catch (e) {}
505          var pageReferrer;
506          try {
507            pageReferrer = document.referrer;
508          } catch (e) {}
509          try {
510            if (window.__TREKKIE_SHIM_QUEUE == null) {
511              window.__TREKKIE_SHIM_QUEUE = [];
512            }
513            window.__TREKKIE_SHIM_QUEUE.push({
514              from: 'trekkie-stub',
515              method: method,
516              args: args.slice(1),
517              pageContext: {
518                url: pageUrl,
519                referrer: pageReferrer
520              }
521            });
522          } catch (e) {
523            // no-op
524          }
525        }
526        return trekkie;
527      };
528    };
529    for (var i = 0; i < trekkie.methods.length; i++) {
530      var key = trekkie.methods[i];
531      trekkie[key] = trekkie.factory(key);
532    }
533    trekkie.load = function(config) {
534      trekkie.config = config || {};
535      trekkie.config.initialDocumentCookie = document.cookie;
536      var first = document.getElementsByTagName('script')[0];
537var script = document.createElement('script');
538script.type = 'text/javascript';
539script.onerror = function(e) {
540  var scriptFallback = document.createElement('script');
541  scriptFallback.type = 'text/javascript';
542  scriptFallback.onerror = function(error) {
543          var Monorail = {
544      produce: function produce(monorailDomain, schemaId, payload) {
545        var currentMs = new Date().getTime();
546        var event = {
547          schema_id: schemaId,
548          payload: payload,
549          metadata: {
550            event_created_at_ms: currentMs,
551            event_sent_at_ms: currentMs
552          }
553        };
554        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
555      },
556      sendRequest: function sendRequest(endpointUrl, payload) {
557        // Try the sendBeacon API
558        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
559          var blobData = new window.Blob([payload], {
560            type: 'text/plain'
561          });
562
563          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
564            return true;
565          } // sendBeacon was not successful
566
567        } // XHR beacon
568
569        var xhr = new XMLHttpRequest();
570
571        try {
572          xhr.open('POST', endpointUrl);
573          xhr.setRequestHeader('Content-Type', 'text/plain');
574          xhr.send(payload);
575        } catch (e) {
576          console.log(e);
577        }
578
579        return false;
580      },
581      isIos12: function isIos12() {
582        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
583      }
584    };
585    Monorail.produce('monorail-edge.shopifysvc.com',
586      'trekkie_storefront_load_errors/1.1',
587      {shop_id: 56892752041,
588      theme_id: 147866845353,
589      app_name: "storefront",
590      context_url: window.location.href,
591      source_url: "//frameworth.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"});
592
593  };
594  scriptFallback.async = true;
595  scriptFallback.src = '//frameworth.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js';
596  first.parentNode.insertBefore(scriptFallback, first);
597};
598script.async = true;
599script.src = '//frameworth.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js';
600first.parentNode.insertBefore(script, first);
601
602    };
603    trekkie.load(
604      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":56892752041,"isMerchantRequest":null,"themeId":147866845353,"themeCityHash":"13226166671558337478","contentLanguage":"en","currency":"USD","eventMetadataId":"3f4ca4d7-e82f-4311-8bc7-4d38103671cb"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}}
605    );
606
607    var loaded = false;
608    trekkie.ready(function() {
609      if (loaded) return;
610      loaded = true;
611
612      window.ShopifyAnalytics.lib = window.trekkie;
613
614      var originalDocumentWrite = document.write;
615      document.write = customDocumentWrite;
616      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
617      document.write = originalDocumentWrite;
618
619      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
620      var token = match? match[1]: undefined;
621      if (!hasLoggedConversion(token)) {
622        setCookieIfConversion(token);
623        
624      }
625    });
626
627    window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":86001549481,"requestId":"b0c9388f-9d89-42ff-a9e9-3f12a64552de-1790422819","shopifyEmitted":true});
628
629    var eventsListenerScript = document.createElement('script');
630    eventsListenerScript.async = true;
631    eventsListenerScript.src = "//frameworth.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
632    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
633})();</script>
vendor: 1 bytes, line 633
633
634<script
635  defer
636  src="https://frameworth.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js"
637  data-application="storefront-renderer"
638  data-shop-id="56892752041"
639  data-render-region="gcp-us-central1"
640  data-page-type="page"
641  data-theme-instance-id="147866845353"
642  data-theme-name="Enterprise"
643  data-theme-version="1.6.1"
644  data-monorail-region="shop_domain"
645  data-resource-timing-sampling-rate="10"
646  data-shs="true"
647  data-shs-beacon="true"
648  data-shs-export-with-fetch="true"
649  data-shs-logs-sample-rate="1"
650  data-shs-beacon-endpoint="https://frameworth.com/api/collect"
651></script>
651
652<meta name="shopify-y" content="7711123e-ad6c-4989-88d3-12a267db853c" data-expiration="1821980420000"><meta name="shopify-s" content="8c50bd0d-beb7-4ce5-98d8-748841a6eb2d" data-expiration="1790424620000"><meta name="new-cookie-storage-activated" content="t">
653</head>
654
655  <body
656    class="cc-animate-enabled "
657  >
658    <a
659      class="skip-link btn btn--primary visually-hidden"
660      href="#main-content"
661      data-ce-role="skip"
662    >Skip to content</a><!-- Failed to render section 'promo-countdown-bar': section file 'sections/promo-countdown-bar.liquid' does not support the 'page' template type -->
663<!-- BEGIN sections: header-group -->
664<section id="shopify-section-sections--19300118298793__promo_countdown_bar_DmDGyL" class="shopify-section shopify-section-group-header-group cc-promo-countdown-bar"><style data-shopify>.promo-bar {
665      --pcb-christmas-bg: #7a1020;
666      --pcb-christmas-text: #ffffff;
667      --pcb-christmas-accent: #f59e0b;
668      --pcb-blackfriday-bg: #002e62;
669      --pcb-blackfriday-text: #ededed;
670      --pcb-blackfriday-accent: #f59e0b;
671      --pcb-hurricanes-bg: #c8102e;
672      --pcb-hurricanes-text: #ffffff;
673      --pcb-hurricanes-accent: #ffffff;
674    }</style><promo-countdown-bar
675    class="promo-bar no-js-hidden"
676    data-rotation-speed="4000"
677    data-slides-count="1"
678    role="region"
679    aria-roledescription="carousel"
680    aria-label="Promotional announcements"
681    tabindex="0"
682  >
683    <div class="promo-bar__viewport">
684      <div class="promo-bar__track" aria-live="polite" aria-atomic="true"><article
685              class="promo-bar__slide promo-bar__slide--black-friday is-active"
686              data-slide-index="0"
687              
688                data-target-date="2026-09-30T21:00:00-0400"
689                data-target-timestamp="1790816400"
690              
691              
692              role="group"
693              aria-roledescription="slide"
694              aria-label="1 of 1"
695              
696            ><a href="/collections/auctions" class="promo-bar__content promo-bar__link"><span class="promo-bar__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
697                      <path d="M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"/>
698                      <path d="M3 6h18"/>
699                      <path d="M16 10a4 4 0 0 1-8 0"/>
700                    </svg></span>
701
702                <div class="promo-bar__text">
703                  <p class="promo-bar__title"><span class="promo-bar__lead">Frameworth Auctions</span> <span class="promo-bar__highlight">Bid Now!</span></p><p class="promo-bar__subtitle">Time left to bid</p></div><time class="promo-bar__countdown" datetime="2026-09-30T21:00:00-0400" data-countdown aria-label="Time remaining">
704                    <span class="promo-bar__unit">
705                      <span class="promo-bar__value" data-days>00</span>
706                      <span class="promo-bar__label">Days</span>
707                    </span>
708                    <span class="promo-bar__sep" aria-hidden="true">:</span>
709                    <span class="promo-bar__unit">
710                      <span class="promo-bar__value" data-hours>00</span>
711                      <span class="promo-bar__label">Hrs</span>
712                    </span>
713                    <span class="promo-bar__sep" aria-hidden="true">:</span>
714                    <span class="promo-bar__unit">
715                      <span class="promo-bar__value" data-minutes>00</span>
716                      <span class="promo-bar__label">Min</span>
717                    </span>
718                    <span class="promo-bar__sep" aria-hidden="true">:</span>
719                    <span class="promo-bar__unit">
720                      <span class="promo-bar__value" data-seconds>00</span>
721                      <span class="promo-bar__label">Sec</span>
722                    </span>
723                  </time></a></article></div></div>
724  </promo-countdown-bar>
725
726
727
728
729</section><div id="shopify-section-sections--19300118298793__header" class="shopify-section shopify-section-group-header-group cc-header">
730<style data-shopify>.header {
731    --bg-color: 255 255 255 / 1.0;
732    --text-color: 7 7 7;
733    --nav-bg-color: 255 255 255;
734    --nav-text-color: 7 7 7;
735    --nav-child-bg-color:  255 255 255;
736    --nav-child-text-color: 7 7 7;
737    --header-accent-color: 174 4 23;
738    --search-bg-color: #e6e6e6;
739    --header-border-color: rgb(var(--text-color) / 0.12);
740    --header-focus-ring: rgb(var(--header-accent-color) / 0.28);
741    --header-hover-bg: rgb(var(--text-color) / 0.06);
742    --header-radius: 8px;
743    --header-touch-target: 44px;
744    --header-ease: cubic-bezier(0.2, 0, 0, 1);
745    
746    
747  }
748
749  .header {
750    border-bottom-color: var(--header-border-color);
751  }
752
753  .header__grid {
754    row-gap: calc(1.5 * var(--space-unit));
755  }
756
757  .header__logo {
758    min-width: 0;
759  }
760
761  .logo__link,
762  .logo__link img {
763    display: block;
764  }
765
766  .header__icons {
767    min-width: 0;
768  }
769
770  .header-country-toggle {
771    position: relative;
772    display: inline-flex;
773  }
774
775  .header-country-toggle summary {
776    list-style: none;
777    cursor: pointer;
778  }
779
780  .header-country-toggle > .header__icon--country {
781    flex-direction: row;
782    gap: 4px;
783    width: auto;
784    min-width: 48px;
785    height: 40px;
786    padding: 6px 8px;
787    border: 0;
788    border-radius: 10px;
789    background: transparent;
790  }
791
792  .header-country-toggle > .header__icon--country:hover,
793  .header-country-toggle[open] > .header__icon--country {
794    background-color: var(--header-hover-bg);
795    opacity: 1;
796  }
797
798  .header-country-toggle summary::-webkit-details-marker {
799    display: none;
800  }
801
802  .header-country-toggle__chevron {
803    display: inline-flex;
804    width: 10px;
805    height: 10px;
806    margin-inline-start: 0;
807    opacity: 0.72;
808    transition: transform 180ms var(--header-ease);
809  }
810
811  .header-country-toggle__chevron svg {
812    width: 100%;
813    height: 100%;
814  }
815
816  .header-country-toggle[open] .header-country-toggle__chevron {
817    transform: rotate(180deg);
818  }
819
820  .header-country-toggle__panel {
821    position: absolute;
822    inset-block-start: calc(100% + 8px);
823    inset-inline-end: 0;
824    z-index: 120;
825    width: clamp(280px, 24vw, 340px);
826    max-width: calc(100vw - 24px);
827    padding: 10px;
828    border: 0;
829    border-radius: 14px;
830    background: rgb(var(--nav-bg-color));
831    color: rgb(var(--nav-text-color));
832    box-shadow: 0 16px 36px rgb(0 0 0 / 0.16);
833  }
834
835  body.header-country-toggle-is-open .header,
836  body.header-country-toggle-is-open .cc-header--sticky {
837    z-index: 120;
838  }
839
840  .header-country-toggle__heading {
841    margin: 0;
842    padding: 8px 10px 10px;
843    color: rgb(var(--text-color) / 0.68);
844    font-size: clamp(0.82rem, 0.8vw, 0.92rem);
845    font-weight: 600;
846  }
847
848  .header-country-toggle__form {
849    margin: 0;
850  }
851
852  .header-country-toggle__option {
853    display: flex;
854    align-items: center;
855    gap: 12px;
856    width: 100%;
857    min-height: 58px;
858    padding: 11px 10px;
859    border: 0;
860    border-radius: 6px;
861    background: transparent;
862    color: inherit;
863    text-align: start;
864    cursor: pointer;
865  }
866
867  .header-country-toggle__option:hover:not(:disabled),
868  .header-country-toggle__option:focus-visible {
869    background-color: var(--header-hover-bg);
870    outline: 0;
871  }
872
873  .header-country-toggle__option.is-current {
874    background-color: transparent;
875    cursor: default;
876  }
877
878  .header-country-toggle__option-flag {
879    display: inline-flex;
880    align-items: center;
881    justify-content: center;
882    min-width: 36px;
883    font-size: 0.75rem;
884    font-weight: 700;
885  }
886
887  .header-country-toggle__option-flag svg {
888    width: 32px;
889    height: auto;
890  }
891
892  .header-country-toggle__option-text {
893    display: grid;
894    gap: 2px;
895    min-width: 0;
896  }
897
898  .header-country-toggle__option-name {
899    font-size: clamp(0.96rem, 0.86vw, 1.06rem);
900    font-weight: 600;
901    line-height: 1.2;
902  }
903
904  .header-country-toggle__option-meta,
905  .header-country-toggle__option-current {
906    color: rgb(var(--text-color) / 0.64);
907    font-size: clamp(0.8rem, 0.74vw, 0.88rem);
908    line-height: 1.2;
909  }
910
911  .header-country-toggle__option-current {
912    margin-inline-start: auto;
913  }
914
915  .header__icon,
916  .main-menu__toggle,
917  .main-nav__item--primary,
918  .secondary-nav__item {
919    border-radius: var(--header-radius);
920    transition:
921      background-color 180ms var(--header-ease),
922      box-shadow 180ms var(--header-ease),
923      color 180ms var(--header-ease),
924      opacity 180ms var(--header-ease);
925  }
926
927  .header__icon:hover,
928  .main-menu__toggle:hover {
929    background-color: var(--header-hover-bg);
930  }
931
932  .header__icon:focus-visible,
933  .main-menu__toggle:focus-visible,
934  .main-nav__item:focus-visible,
935  .secondary-nav__item:focus-visible,
936  .search__input:focus-visible {
937    outline: 2px solid var(--header-focus-ring);
938    outline-offset: 2px;
939  }
940
941  .header .search__input {
942    min-height: 44px;
943    border: 1px solid rgb(var(--text-color) / 0.10);
944    box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.35);
945    transition:
946      background-color 180ms var(--header-ease),
947      border-color 180ms var(--header-ease),
948      box-shadow 180ms var(--header-ease);
949  }
950
951  .header .search__input:hover {
952    border-color: rgb(var(--text-color) / 0.18);
953  }
954
955  .header .search__input:focus {
956    border-color: rgb(var(--header-accent-color) / 0.42);
957    box-shadow:
958      0 0 0 3px var(--header-focus-ring),
959      inset 0 1px 0 rgb(255 255 255 / 0.35);
960  }
961
962  @media (min-width: 769px) {
963    .header__grid {
964      align-items: center;
965    }
966
967    .main-menu__content {
968      gap: clamp(12px, 2vw, 28px);
969      min-width: 0;
970    }
971
972    .main-menu__content > nav:first-child {
973      min-width: 0;
974    }
975
976    .main-nav,
977    .secondary-nav {
978      column-gap: clamp(2px, 0.5vw, 8px);
979      margin-inline: 0;
980      min-width: 0;
981      row-gap: 2px;
982    }
983
984    .main-nav__item--primary,
985    .secondary-nav__item {
986      margin-inline: 0;
987      padding-inline: clamp(0.7rem, 0.82vw, 1.2rem);
988    }
989
990    .main-nav__item--primary:hover,
991    .main-nav__item--primary.is-active,
992    .is-open > summary > .main-nav__item--primary,
993    .secondary-nav__item:hover,
994    .secondary-nav__item.is-active,
995    .is-open > summary > .secondary-nav__item {
996      background-color: var(--header-hover-bg);
997      box-shadow: none;
998    }
999
1000    .main-nav__child {
1001      box-shadow: 0 18px 42px rgb(0 0 0 / 0.12);
1002    }
1003  }
1004
1005  @media (max-width: 767px) {
1006    .header {
1007      --header-touch-target: 40px;
1008      padding-block: 5px;
1009    }
1010
1011    .header__logo .logo__link > span {
1012      max-width: min(110px, 40vw) !important;
1013    }
1014
1015    .header__logo .logo__link {
1016      justify-content: flex-start;
1017      min-width: 0;
1018    }
1019
1020    .header__icon,
1021    .main-menu__toggle {
1022      width: var(--header-touch-target);
1023      flex: 0 0 var(--header-touch-target);
1024      height: var(--header-touch-target);
1025      margin: 0;
1026    }
1027
1028    .header__icon {
1029      padding: 4px;
1030    }
1031
1032    .header__icon--country {
1033      padding: 4px;
1034    }
1035
1036    .header-country-toggle {
1037      align-items: center;
1038    }
1039
1040    .header-country-toggle > .header__icon--country {
1041      align-items: center;
1042      justify-content: center;
1043      width: var(--header-touch-target);
1044      min-width: var(--header-touch-target);
1045      height: var(--header-touch-target);
1046      padding: 4px;
1047      gap: 0;
1048    }
1049
1050    .header-country-toggle__current {
1051      width: 23px;
1052      height: 16px;
1053    }
1054
1055    .header-country-toggle__code,
1056    .header-country-toggle__chevron {
1057      display: none;
1058    }
1059
1060    .header__icons {
1061      align-items: center;
1062      justify-content: flex-end;
1063      gap: 0;
1064      margin-inline-end: 0;
1065    }
1066
1067    .header__search {
1068      margin-top: 2px;
1069      min-width: 0;
1070    }
1071
1072    .header .search {
1073      margin-block: 4px 0;
1074    }
1075
1076    .header-country-toggle__panel {
1077      position: fixed;
1078      inset-block-start: var(--country-panel-top, 72px);
1079      inset-inline-start: var(--country-panel-left, 16px);
1080      inset-inline-end: auto;
1081      z-index: 1000;
1082      width: var(--country-panel-width, min(300px, calc(100vw - 32px)));
1083      max-width: none;
1084      max-height: min(70vh, 420px);
1085      overflow-y: auto;
1086      padding: 8px;
1087    }
1088
1089    .header-country-toggle__heading {
1090      padding: 8px 10px;
1091      font-size: 0.86rem;
1092    }
1093
1094    .header-country-toggle__option {
1095      min-height: 52px;
1096      padding: 9px 10px;
1097    }
1098
1099    .main-menu__content {
1100      overscroll-behavior: contain;
1101      padding-top: 0.75rem;
1102      padding-bottom: max(72px, env(safe-area-inset-bottom));
1103      scrollbar-gutter: stable;
1104    }
1105
1106    .main-nav__item,
1107    .child-nav__item,
1108    .grandchild-nav__item {
1109      min-height: 44px;
1110      padding-top: 0.8rem;
1111      padding-bottom: 0.8rem;
1112    }
1113
1114    .main-nav > li,
1115    .child-nav > li,
1116    .main-nav__grandchild > li {
1117      margin-bottom: 0 !important;
1118    }
1119
1120    .main-nav,
1121    .child-nav,
1122    .main-nav__grandchild {
1123      gap: 0 !important;
1124    }
1125  }
1126
1127  @media (max-width: 768.98px) {
1128    @supports selector(:has(*)) {
1129      .header__grid:has(.main-menu) {
1130        display: grid;
1131        grid-template-columns: auto minmax(0, 1fr) auto;
1132        grid-template-areas:
1133          "menu logo icons"
1134          "search search search";
1135        column-gap: 4px;
1136      }
1137
1138      .header__grid:has(.main-menu:not(.main-menu--left-mob)) {
1139        grid-template-columns: minmax(0, 1fr) auto auto;
1140        grid-template-areas:
1141          "logo icons menu"
1142          "search search search";
1143      }
1144
1145      .header__grid:has(.main-menu) .main-menu {
1146        grid-area: menu;
1147        order: 0;
1148        width: auto;
1149      }
1150
1151      .header__grid:has(.main-menu) .header__logo {
1152        grid-area: logo;
1153        flex: none;
1154        justify-self: start;
1155        justify-content: flex-start;
1156        min-width: 0;
1157      }
1158
1159      .header__grid:has(.main-menu) .header__icons {
1160        grid-area: icons;
1161        flex: none;
1162      }
1163
1164      .header__grid:has(.main-menu) .header__search {
1165        grid-area: search;
1166      }
1167    }
1168  }
1169
1170  @media (max-width: 390px) {
1171    .header {
1172      --header-touch-target: 38px;
1173    }
1174
1175    .header__grid:has(.main-menu) {
1176      column-gap: 2px;
1177    }
1178
1179    .header__icons {
1180      gap: 0;
1181    }
1182
1183    .header__icon {
1184      padding: 4px;
1185    }
1186
1187    .header__icon--country {
1188      padding: 4px;
1189    }
1190
1191    .header-country-toggle > .header__icon--country {
1192      width: var(--header-touch-target);
1193      min-width: var(--header-touch-target);
1194      height: var(--header-touch-target);
1195      padding: 4px;
1196    }
1197
1198    .header__logo .logo__link > span {
1199      max-width: min(110px, 36vw) !important;
1200    }
1201  }
1202
1203  @media (max-width: 340px) {
1204    .header-country-toggle {
1205      display: none;
1206    }
1207  }
1208
1209  @media (prefers-reduced-motion: reduce) {
1210    .header *,
1211    .header *::before,
1212    .header *::after {
1213      transition-duration: 1ms !important;
1214      animation-duration: 1ms !important;
1215      animation-iteration-count: 1 !important;
1216    }
1217  }</style><store-header class="header bg-theme-bg text-theme-text has-motion"data-is-sticky="true"style="--header-transition-speed: 300ms">
1218  <header class="header__grid header__grid--left-logo container flex flex-wrap items-center">
1219    <div class="header__logo logo flex js-closes-menu"><a class="logo__link inline-block" href="/"><span class="flex" style="max-width: 110px;">
1220              <img srcset="//frameworth.com/cdn/shop/files/Frameworth-Shopify-Logo_7e5798db-68ec-4d1d-9e50-e91558cdb508.jpg?v=1651937023&width=110, //frameworth.com/cdn/shop/files/Frameworth-Shopify-Logo_7e5798db-68ec-4d1d-9e50-e91558cdb508.jpg?v=1651937023&width=220 2x" src="//frameworth.com/cdn/shop/files/Frameworth-Shopify-Logo_7e5798db-68ec-4d1d-9e50-e91558cdb508.jpg?v=1651937023&width=220"
1221         style="object-position: 50.0% 50.0%" loading="eager"
1222         width="220"
1223         height="99"
1224         
1225         alt="Frameworth Sports Marketing ">
1226            </span></a></div><link rel="stylesheet" href="//frameworth.com/cdn/shop/t/157/assets/predictive-search.css?v=33632668381892787391760710645" media="print" onload="this.media='all'">
1227        
1227<script src="//frameworth.com/cdn/shop/t/157/assets/predictive-search.js?v=158424367886238494141760710645" defer="defer"></script>
1227
1228        
1228<script src="//frameworth.com/cdn/shop/t/157/assets/tabs.js?v=135558236254064818051760710647" defer="defer"></script>
1228<div class="header__search relative js-closes-menu"><link rel="stylesheet" href="//frameworth.com/cdn/shop/t/157/assets/search-suggestions.css?v=42785600753809748511760710647" media="print" onload="this.media='all'"><predictive-search class="block" data-loading-text="Loading..."><form class="search relative search--speech" role="search" action="/search" method="get">
1229    <label class="label visually-hidden" for="header-search">Search</label>
1230    
1230<script src="//frameworth.com/cdn/shop/t/157/assets/search-form.js?v=43677551656194261111760710646" defer="defer"></script>
1230
1231    <search-form class="search__form block">
1232      <input type="hidden" name="options[prefix]" value="last">
1233      <input type="search"
1234             class="search__input w-full input js-search-input"
1235             id="header-search"
1236             name="q"
1237             placeholder="Crosby 2026 Olympic Jersey"
1238             
1239               data-placeholder-one="Crosby 2026 Olympic Jersey"
1240             
1241             
1242               data-placeholder-two="Sidney Crosby Penguins Signed Jersey"
1243             
1244             
1245               data-placeholder-three="Custom Jersey Framing"
1246             
1247             data-placeholder-prompts-mob="true"
1248             
1249               data-typing-speed="100"
1250               data-deleting-speed="60"
1251               data-delay-after-deleting="500"
1252               data-delay-before-first-delete="2000"
1253               data-delay-after-word-typed="2400"
1254             
1255             role="combobox"
1256               autocomplete="off"
1257               aria-autocomplete="list"
1258               aria-controls="predictive-search-results"
1259               aria-owns="predictive-search-results"
1260               aria-haspopup="listbox"
1261               aria-expanded="false"
1262               spellcheck="false"><button class="search__submit text-current absolute focus-inset start"><span class="visually-hidden">Search</span><svg width="21" height="23" viewBox="0 0 21 23" fill="currentColor" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M14.398 14.483 19 19.514l-1.186 1.014-4.59-5.017a8.317 8.317 0 0 1-4.888 1.578C3.732 17.089 0 13.369 0 8.779S3.732.472 8.336.472c4.603 0 8.335 3.72 8.335 8.307a8.265 8.265 0 0 1-2.273 5.704ZM8.336 15.53c3.74 0 6.772-3.022 6.772-6.75 0-3.729-3.031-6.75-6.772-6.75S1.563 5.051 1.563 8.78c0 3.728 3.032 6.75 6.773 6.75Z"/></svg>
1263</button>
1264<button type="button" class="search__reset text-current vertical-center absolute focus-inset js-search-reset" hidden>
1265        <span class="visually-hidden">Reset</span>
1266        <svg width="24" height="24" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" fill="none" fill-rule="evenodd" stroke-linejoin="round" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M5 19 19 5M5 5l14 14"/></svg>
1267      </button><speech-search-button class="search__speech focus-inset end hidden" tabindex="0" title="Search by voice"
1268          style="--speech-icon-color: #e32b2b">
1269          <svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path fill="currentColor" d="M17.3 11c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.49 6-3.31 6-6.72m-8.2-6.1c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2l-.01 6.2c0 .66-.53 1.2-1.19 1.2-.66 0-1.2-.54-1.2-1.2M12 14a3 3 0 0 0 3-3V5a3 3 0 0 0-3-3 3 3 0 0 0-3 3v6a3 3 0 0 0 3 3Z"/></svg>
1270        </speech-search-button>
1271
1272        <link href="//frameworth.com/cdn/shop/t/157/assets/speech-search.css?v=47207760375520952331760710648" rel="stylesheet" type="text/css" media="all" />
1273        
1273<script src="//frameworth.com/cdn/shop/t/157/assets/speech-search.js?v=106462966657620737681760710645" defer="defer"></script>
1273</search-form><div class="js-search-results" tabindex="-1" data-predictive-search></div>
1274      <span class="js-search-status visually-hidden" role="status" aria-hidden="true"></span></form>
1275  <div class="overlay fixed top-0 right-0 bottom-0 left-0 js-search-overlay"></div></predictive-search>
1276      </div><div class="header__icons flex justify-end mis-auto js-closes-menu"><details class="header-country-toggle">
1277  <summary
1278    class="header__icon header__icon--country text-current"
1279    aria-label="Country/Region: United States USD"
1280  >
1281    <span class="header-country-toggle__current"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 14" class="icon icon--flag-us" role="img" aria-hidden="true">
1282  <defs>
1283    <g id="us-star">
1284      <path d="M0,-0.36 L0.106,-0.036 0.448,-0.036 0.171,0.139 0.277,0.464 0,0.226 -0.277,0.464 -0.171,0.139 -0.448,-0.036 -0.106,-0.036 Z"/>
1285    </g>
1286  </defs>
1287  <rect fill="#B22234" width="20" height="14"/>
1288  <g fill="#FFFFFF">
1289    <rect y="1.077" width="20" height="1.077"/>
1290    <rect y="3.231" width="20" height="1.077"/>
1291    <rect y="5.385" width="20" height="1.077"/>
1292    <rect y="7.538" width="20" height="1.077"/>
1293    <rect y="9.692" width="20" height="1.077"/>
1294    <rect y="11.846" width="20" height="1.077"/>
1295  </g>
1296  <rect fill="#3C3B6E" width="8" height="7.538"/>
1297  <g fill="#FFFFFF">
1298    <use href="#us-star" x="0.8" y="0.75"/>
1299    <use href="#us-star" x="2.4" y="0.75"/>
1300    <use href="#us-star" x="4.0" y="0.75"/>
1301    <use href="#us-star" x="5.6" y="0.75"/>
1302    <use href="#us-star" x="7.2" y="0.75"/>
1303    <use href="#us-star" x="1.6" y="1.59"/>
1304    <use href="#us-star" x="3.2" y="1.59"/>
1305    <use href="#us-star" x="4.8" y="1.59"/>
1306    <use href="#us-star" x="6.4" y="1.59"/>
1307    <use href="#us-star" x="0.8" y="2.43"/>
1308    <use href="#us-star" x="2.4" y="2.43"/>
1309    <use href="#us-star" x="4.0" y="2.43"/>
1310    <use href="#us-star" x="5.6" y="2.43"/>
1311    <use href="#us-star" x="7.2" y="2.43"/>
1312    <use href="#us-star" x="1.6" y="3.27"/>
1313    <use href="#us-star" x="3.2" y="3.27"/>
1314    <use href="#us-star" x="4.8" y="3.27"/>
1315    <use href="#us-star" x="6.4" y="3.27"/>
1316    <use href="#us-star" x="0.8" y="4.11"/>
1317    <use href="#us-star" x="2.4" y="4.11"/>
1318    <use href="#us-star" x="4.0" y="4.11"/>
1319    <use href="#us-star" x="5.6" y="4.11"/>
1320    <use href="#us-star" x="7.2" y="4.11"/>
1321    <use href="#us-star" x="1.6" y="4.95"/>
1322    <use href="#us-star" x="3.2" y="4.95"/>
1323    <use href="#us-star" x="4.8" y="4.95"/>
1324    <use href="#us-star" x="6.4" y="4.95"/>
1325    <use href="#us-star" x="0.8" y="5.79"/>
1326    <use href="#us-star" x="2.4" y="5.79"/>
1327    <use href="#us-star" x="4.0" y="5.79"/>
1328    <use href="#us-star" x="5.6" y="5.79"/>
1329    <use href="#us-star" x="7.2" y="5.79"/>
1330    <use href="#us-star" x="1.6" y="6.63"/>
1331    <use href="#us-star" x="3.2" y="6.63"/>
1332    <use href="#us-star" x="4.8" y="6.63"/>
1333    <use href="#us-star" x="6.4" y="6.63"/>
1334  </g>
1335</svg>
1336</span>
1337    <span class="header-country-toggle__code">US</span>
1338    <span class="header-country-toggle__chevron" aria-hidden="true"><svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg></span>
1339  </summary>
1340
1341  <div class="header-country-toggle__panel" role="listbox" aria-label="Country/Region">
1342    <p class="header-country-toggle__heading">Country/Region</p><form method="post" action="/localization" id="header-country-toggle-CA" accept-charset="UTF-8" class="header-country-toggle__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="/pages/our-retail-store" /><input type="hidden" name="country_code" value="CA">
1343        <button
1344          type="submit"
1345          class="header-country-toggle__option"
1346          role="option"
1347          aria-selected="false"
1348          
1349        >
1350          <span class="header-country-toggle__option-flag" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 26 18" class="icon icon--flag-ca" role="img" aria-hidden="true">
1351  <path fill="#D52B1E" d="M0,0h26v18H0V0z"/>
1352  <path fill="#FFFFFF" fill-rule="evenodd" d="M6.5,0h13v18h-13V0z M13.2,14.7l-0.1-2.4c0-0.1,0.1-0.3,0.2-0.3c0,0,0,0,0.1,0l2.3,0.4l-0.3-0.9c0-0.1,0-0.2,0.1-0.2l2.5-2.1l-0.6-0.3c-0.1,0-0.1-0.1-0.1-0.2l0.5-1.6l-1.5,0.3c-0.1,0-0.2,0-0.2-0.1l-0.3-0.7l-1.1,1.3c-0.1,0.1-0.2,0.1-0.2,0c0,0-0.1-0.1-0.1-0.2l0.6-3l-0.9,0.5c-0.1,0-0.2,0-0.2-0.1c0,0,0,0,0,0L13,3.4l-0.9,1.8c0,0.1-0.2,0.1-0.2,0.1c0,0,0,0,0,0l-0.9-0.5l0.6,3c0,0.1,0,0.2-0.1,0.2c-0.1,0-0.1,0-0.2,0l-1.1-1.3l-0.3,0.7c0,0.1-0.1,0.1-0.2,0.1l-1.5-0.3l0.5,1.6c0,0.1,0,0.2-0.1,0.2l-0.6,0.3l2.5,2.1c0.1,0,0.1,0.1,0.1,0.2l-0.3,0.9l2.3-0.4c0.1,0,0.3,0.1,0.3,0.2c0,0,0,0,0,0.1l-0.1,2.4H13.2z"/>
1353</svg>
1354</span>
1355          <span class="header-country-toggle__option-text">
1356            <span class="header-country-toggle__option-name">Canada</span>
1357            <span class="header-country-toggle__option-meta">CAD $</span>
1358          </span></button></form><form method="post" action="/localization" id="header-country-toggle-US" accept-charset="UTF-8" class="header-country-toggle__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="/pages/our-retail-store" /><input type="hidden" name="country_code" value="US">
1359        <button
1360          type="submit"
1361          class="header-country-toggle__option is-current"
1362          role="option"
1363          aria-selected="true"
1364          disabled
1365        >
1366          <span class="header-country-toggle__option-flag" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 14" class="icon icon--flag-us" role="img" aria-hidden="true">
1367  <defs>
1368    <g id="us-star">
1369      <path d="M0,-0.36 L0.106,-0.036 0.448,-0.036 0.171,0.139 0.277,0.464 0,0.226 -0.277,0.464 -0.171,0.139 -0.448,-0.036 -0.106,-0.036 Z"/>
1370    </g>
1371  </defs>
1372  <rect fill="#B22234" width="20" height="14"/>
1373  <g fill="#FFFFFF">
1374    <rect y="1.077" width="20" height="1.077"/>
1375    <rect y="3.231" width="20" height="1.077"/>
1376    <rect y="5.385" width="20" height="1.077"/>
1377    <rect y="7.538" width="20" height="1.077"/>
1378    <rect y="9.692" width="20" height="1.077"/>
1379    <rect y="11.846" width="20" height="1.077"/>
1380  </g>
1381  <rect fill="#3C3B6E" width="8" height="7.538"/>
1382  <g fill="#FFFFFF">
1383    <use href="#us-star" x="0.8" y="0.75"/>
1384    <use href="#us-star" x="2.4" y="0.75"/>
1385    <use href="#us-star" x="4.0" y="0.75"/>
1386    <use href="#us-star" x="5.6" y="0.75"/>
1387    <use href="#us-star" x="7.2" y="0.75"/>
1388    <use href="#us-star" x="1.6" y="1.59"/>
1389    <use href="#us-star" x="3.2" y="1.59"/>
1390    <use href="#us-star" x="4.8" y="1.59"/>
1391    <use href="#us-star" x="6.4" y="1.59"/>
1392    <use href="#us-star" x="0.8" y="2.43"/>
1393    <use href="#us-star" x="2.4" y="2.43"/>
1394    <use href="#us-star" x="4.0" y="2.43"/>
1395    <use href="#us-star" x="5.6" y="2.43"/>
1396    <use href="#us-star" x="7.2" y="2.43"/>
1397    <use href="#us-star" x="1.6" y="3.27"/>
1398    <use href="#us-star" x="3.2" y="3.27"/>
1399    <use href="#us-star" x="4.8" y="3.27"/>
1400    <use href="#us-star" x="6.4" y="3.27"/>
1401    <use href="#us-star" x="0.8" y="4.11"/>
1402    <use href="#us-star" x="2.4" y="4.11"/>
1403    <use href="#us-star" x="4.0" y="4.11"/>
1404    <use href="#us-star" x="5.6" y="4.11"/>
1405    <use href="#us-star" x="7.2" y="4.11"/>
1406    <use href="#us-star" x="1.6" y="4.95"/>
1407    <use href="#us-star" x="3.2" y="4.95"/>
1408    <use href="#us-star" x="4.8" y="4.95"/>
1409    <use href="#us-star" x="6.4" y="4.95"/>
1410    <use href="#us-star" x="0.8" y="5.79"/>
1411    <use href="#us-star" x="2.4" y="5.79"/>
1412    <use href="#us-star" x="4.0" y="5.79"/>
1413    <use href="#us-star" x="5.6" y="5.79"/>
1414    <use href="#us-star" x="7.2" y="5.79"/>
1415    <use href="#us-star" x="1.6" y="6.63"/>
1416    <use href="#us-star" x="3.2" y="6.63"/>
1417    <use href="#us-star" x="4.8" y="6.63"/>
1418    <use href="#us-star" x="6.4" y="6.63"/>
1419  </g>
1420</svg>
1421</span>
1422          <span class="header-country-toggle__option-text">
1423            <span class="header-country-toggle__option-name">United States</span>
1424            <span class="header-country-toggle__option-meta">USD $</span>
1425          </span><span class="header-country-toggle__option-current">Current</span></button></form></div>
1426</details>
1427<follow-page-header-button
1428          horizontal-margin="0"
1429          vertical-margin="0"
1430          color=""
1431          size="20"
1432          class="header__icon"
1433        >
1434        </follow-page-header-button><a class="header__icon text-current" href="https://frameworth.com/customer_authentication/redirect?locale=en&region_country=US">
1435            <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M12 2a5 5 0 1 1 0 10 5 5 0 0 1 0-10zm0 1.429a3.571 3.571 0 1 0 0 7.142 3.571 3.571 0 0 0 0-7.142zm0 10c2.558 0 5.114.471 7.664 1.411A3.571 3.571 0 0 1 22 18.19v3.096c0 .394-.32.714-.714.714H2.714A.714.714 0 0 1 2 21.286V18.19c0-1.495.933-2.833 2.336-3.35 2.55-.94 5.106-1.411 7.664-1.411zm0 1.428c-2.387 0-4.775.44-7.17 1.324a2.143 2.143 0 0 0-1.401 2.01v2.38H20.57v-2.38c0-.898-.56-1.7-1.401-2.01-2.395-.885-4.783-1.324-7.17-1.324z"/></svg>
1436            <span class="visually-hidden">Log in</span>
1437          </a><a class="header__icon relative text-current" id="cart-icon" href="/cart" data-no-instant><svg width="24" height="24" viewBox="0 0 24 24" class="icon icon--cart" aria-hidden="true" focusable="false" role="presentation"><path fill="currentColor" d="M17 18a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2c0-1.11.89-2 2-2M1 2h3.27l.94 2H20a1 1 0 0 1 1 1c0 .17-.05.34-.12.5l-3.58 6.47c-.34.61-1 1.03-1.75 1.03H8.1l-.9 1.63-.03.12a.25.25 0 0 0 .25.25H19v2H7a2 2 0 0 1-2-2c0-.35.09-.68.24-.96l1.36-2.45L3 4H1V2m6 16a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2c0-1.11.89-2 2-2m9-7 2.78-5H6.14l2.36 5H16Z"/></svg><span class="visually-hidden">Cart</span><div id="cart-icon-bubble"></div>
1438      </a>
1439    </div><main-menu class="main-menu main-menu--left-mob" data-menu-sensitivity="200">
1440        <details class="main-menu__disclosure has-motion" open>
1441          <summary class="main-menu__toggle md:hidden" aria-controls="main-menu-content" aria-expanded="false">
1442            <span class="main-menu__toggle-icon" aria-hidden="true"></span>
1443            <span class="visually-hidden">Menu</span>
1444          </summary>
1445          <div id="main-menu-content" class="main-menu__content has-motion justify-between">
1446            <nav aria-label="Primary">
1447              <ul class="main-nav"><li><details>
1448                        <summary class="main-nav__item--toggle relative js-nav-hover js-toggle">
1449                          <a class="main-nav__item main-nav__item--primary main-nav__item-content" href="/">
1450                            Shop by Category<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg>
1451                          </a>
1452                        </summary><div class="main-nav__child has-motion">
1453                          
1454                            <ul class="child-nav child-nav--dropdown">
1455                              <li class="md:hidden">
1456                                <button type="button" class="main-nav__item main-nav__item--back relative js-back">
1457                                  <div class="main-nav__item-content text-start">
1458                                    <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"/></svg> Back</div>
1459                                </button>
1460                              </li>
1461
1462                              <li class="md:hidden">
1463                                <a href="/" class="main-nav__item child-nav__item large-text main-nav__item-header">Shop by Category</a>
1464                              </li><li><a class="main-nav__item child-nav__item"
1465                                         href="/collections/2026-nhl-playoffs-conference-finalists-collection">2026 Playoffs Collection
1466                                      </a></li><li><a class="main-nav__item child-nav__item"
1467                                         href="/collections/signed-jerseys">Jerseys
1468                                      </a></li><li><a class="main-nav__item child-nav__item"
1469                                         href="/collections/autographed-pucks">Pucks
1470                                      </a></li><li><a class="main-nav__item child-nav__item"
1471                                         href="/collections/signed-memorabilia">Signed Memorabilia
1472                                      </a></li><li><a class="main-nav__item child-nav__item"
1473                                         href="/collections/unsigned-memorabilia">Unsigned Memorabilia
1474                                      </a></li><li><a class="main-nav__item child-nav__item"
1475                                         href="/collections/sidney-crosby-new-signed-arrivals">Crosby New Arrivals
1476                                      </a></li><li><a class="main-nav__item child-nav__item"
1477                                         href="/collections/autographed-equipments">Equipments
1478                                      </a></li><li><a class="main-nav__item child-nav__item"
1479                                         href="/collections/signed-collectible-photos">Photos &amp; Wall Art
1480                                      </a></li><li><a class="main-nav__item child-nav__item"
1481                                         href="/collections/signed-collectible-canvas">Canvases
1482                                      </a></li><li><a class="main-nav__item child-nav__item"
1483                                         href="/collections/unsigned-canvases">Unsigned Canvases
1484                                      </a></li><li><a class="main-nav__item child-nav__item"
1485                                         href="/products/frameworth-sports-gift-card">Gift Card
1486                                      </a></li></ul></div>
1487                      </details></li><li><a class="main-nav__item main-nav__item--primary" href="/collections/auctions">Live Auctions</a></li><li>
1487<details class="js-mega-nav" >
1488                        <summary class="main-nav__item--toggle relative js-nav-hover js-toggle">
1489                          <a class="main-nav__item main-nav__item--primary main-nav__item-content" href="/pages/players">
1490                            Players<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg>
1491                          </a>
1492                        </summary><div class="main-nav__child mega-nav mega-nav--columns mega-nav--two-column has-motion">
1493                          <div class="container">
1494                            <ul class="child-nav md:grid mega-nav__two-column-grid">
1495                              <li class="md:hidden">
1496                                <button type="button" class="main-nav__item main-nav__item--back relative js-back">
1497                                  <div class="main-nav__item-content text-start">
1498                                    <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"/></svg> Back</div>
1499                                </button>
1500                              </li>
1501
1502                              <li class="md:hidden">
1503                                <a href="/pages/players" class="main-nav__item child-nav__item large-text main-nav__item-header">Players</a>
1504                              </li><li><nav-menu class="js-mega-nav">
1505                                      <details open>
1506                                        <summary class="child-nav__item--toggle main-nav__item--toggle relative js-no-toggle-md">
1507                                          <div class="main-nav__item-content"><a class="child-nav__item main-nav__item main-nav__item-content" href="/pages/players#exclusive-players" data-no-instant>Exclusive Players<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg>
1508                                            </a>
1509                                          </div>
1510                                        </summary>
1511
1512                                        <div class="disclosure__panel has-motion"><ul class="main-nav__grandchild has-motion  " role="list" style=""><li><a class="grandchild-nav__item main-nav__item relative" href="/collections/sidney-crosby-signed-memorabilia-collectibles">Sidney Crosby</a>
1513                                              </li><li><a class="grandchild-nav__item main-nav__item relative" href="/collections/macklin-celebrini-signed-memorabilia-collectibles">Macklin Celebrini</a>
1514                                              </li><li><a class="grandchild-nav__item main-nav__item relative" href="/collections/lane-hutson-signed-memorabilia-collectibles">Lane Hutson</a>
1515                                              </li><li><a class="grandchild-nav__item main-nav__item relative" href="/collections/morgan-rielly-signed-memorabilia-collectibles">Morgan Rielly</a>
1516                                              </li><li><a class="grandchild-nav__item main-nav__item relative" href="/collections/alexis-joseph-signed-memorabilia-collectibles">Alexis Joseph</a>
1517                                              </li><li><a class="grandchild-nav__item main-nav__item relative" href="/collections/carey-price-signed-memorabilia-collectibles">Carey Price</a>
1518                                              </li><li><a class="grandchild-nav__item main-nav__item relative" href="/collections/john-tavares-signed-memorabilia-collectibles">John Tavares</a>
1519                                              </li><li><a class="grandchild-nav__item main-nav__item relative" href="/collections/noah-dobson-signed-memorabilia-collectibles">Noah Dobson</a>
1520                                              </li><li><a class="grandchild-nav__item main-nav__item relative" href="/collections/jonathan-toews-signed-memorabilia-collectibles">Jonathan Toews</a>
1521                                              </li><li class="col-start-1 col-end-3">
1522                                                <a href="/pages/players#exclusive-players" class="main-nav__item--go">Go to Exclusive Players<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="m9.693 4.5 7.5 7.5-7.5 7.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg>
1523                                                </a>
1524                                              </li></ul>
1525                                        </div>
1526                                      </details>
1527                                    </nav-menu></li><li><nav-menu class="js-mega-nav">
1528                                      <details open>
1529                                        <summary class="child-nav__item--toggle main-nav__item--toggle relative js-no-toggle-md">
1530                                          <div class="main-nav__item-content"><a class="child-nav__item main-nav__item main-nav__item-content" href="/pages/players#partner-athletes" data-no-instant>Partner Athletes<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg>
1531                                            </a>
1532                                          </div>
1533                                        </summary>
1534
1535                                        <div class="disclosure__panel has-motion"><ul class="main-nav__grandchild has-motion  " role="list" style=""><li><a class="grandchild-nav__item main-nav__item relative" href="/collections/doug-gilmour-signed-memorabilia-collectibles">
1535Doug Gilmour</a>
1536                                              </li><li><a class="grandchild-nav__item main-nav__item relative" href="/collections/wendel-clark-signed-memorabilia-collectibles">Wendel Clark</a>
1537                                              </li><li><a class="grandchild-nav__item main-nav__item relative" href="/collections/darryl-sittler-signed-memorabilia-collectibles">Darryl Sittler</a>
1538                                              </li><li><a class="grandchild-nav__item main-nav__item relative" href="/collections/josh-anderson-signed-memorabilia-collectibles">Josh Anderson</a>
1539                                              </li><li><a class="grandchild-nav__item main-nav__item relative" href="/collections/malcolm-spence-signed-memorabilia-collectibles">Malcolm Spence</a>
1540                                              </li><li><a class="grandchild-nav__item main-nav__item relative" href="/collections/kevin-gausman-signed-memorabilia-collectibles">Kevin Gausman</a>
1541                                              </li><li><a class="grandchild-nav__item main-nav__item relative" href="/collections/jordan-romano-signed-memorabilia-collectibles">Jordan Romano</a>
1542                                              </li><li><a class="grandchild-nav__item main-nav__item relative" href="/collections/kevin-kiermaier-signed-memorabilia-collectibles">Kevin Kiermaier</a>
1543                                              </li><li><a class="grandchild-nav__item main-nav__item relative" href="/collections/alek-manoah-signed-memorabilia-collectibles">Alek Manoah</a>
1544                                              </li><li><a class="grandchild-nav__item main-nav__item relative" href="/collections/rj-barrett-signed-memorabilia-collectibles">RJ Barrett</a>
1545                                              </li><li><a class="grandchild-nav__item main-nav__item relative" href="/collections/shea-weber-signed-memorabilia-collectibles">Shea Weber</a>
1546                                              </li><li class="col-start-1 col-end-3">
1547                                                <a href="/pages/players#partner-athletes" class="main-nav__item--go">Go to Partner Athletes<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="m9.693 4.5 7.5 7.5-7.5 7.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg>
1548                                                </a>
1549                                              </li></ul>
1550                                        </div>
1551                                      </details>
1552                                    </nav-menu></li></ul><a href="/pages/players" class="mega-nav__view-all">
1553                                <span>View all players</span>
1554                                <svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="m9.693 4.5 7.5 7.5-7.5 7.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg>
1555                              </a></div></div>
1556                      </details></li><li><details class="js-mega-nav" >
1557                        <summary class="main-nav__item--toggle relative js-nav-hover js-toggle">
1558                          <a class="main-nav__item main-nav__item--primary main-nav__item-content" href="/collections/nhl-hockey-teams-signed-memorabilia-collectibles">
1559                            NHL<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg>
1560                          </a>
1561                        </summary><div class="main-nav__child mega-nav mega-nav--pills mega-nav--no-grandchildren has-motion">
1562                          <div class="container">
1563                            <ul class="child-nav ">
1564                              <li class="md:hidden">
1565                                <button type="button" class="main-nav__item main-nav__item--back relative js-back">
1566                                  <div class="main-nav__item-content text-start">
1567                                    <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"/></svg> Back</div>
1568                                </button>
1569                              </li>
1570
1571                              <li class="md:hidden">
1572                                <a href="/collections/nhl-hockey-teams-signed-memorabilia-collectibles" class="main-nav__item child-nav__item large-text main-nav__item-header">NHL</a>
1573                              </li><li><a class="main-nav__item child-nav__item"
1574                                         href="/collections/anaheim-ducks-signed-memorabilia-collectibles">Anaheim Ducks
1575                                      </a></li><li><a class="main-nav__item child-nav__item"
1576                                         href="/collections/boston-bruins-signed-memorabilia-collectibles">Boston Bruins
1577                                      </a></li><li><a class="main-nav__item child-nav__item"
1578                                         href="/collections/buffalo-sabres-signed-memorabilia-collectibles">Buffalo Sabres
1579                                      </a></li><li><a class="main-nav__item child-nav__item"
1580                                         href="/collections/calgary-flames-signed-memorabilia-collectibles">Calgary Flames
1581                                      </a></li><li><a class="main-nav__item child-nav__item"
1582                                         href="/collections/carolina-hurricanes-signed-memorabilia-collectibles">Carolina Hurricanes
1583                                      </a></li><li><a class="main-nav__item child-nav__item"
1584                                         href="/collections/chicago-blackhawks-signed-memorabilia-collectibles">Chicago Blackhawks
1585                                      </a></li><li><a class="main-nav__item child-nav__item"
1586                                         href="/collections/colorado-avalanche-signed-memorabilia-collectibles">Colorado Avalanche
1587                                      </a></li><li><a class="main-nav__item child-nav__item"
1588                                         href="/collections/columbus-blue-jackets-signed-memorabilia-collectibles">Columbus Blue Jackets
1589                                      </a></li><li><a class="main-nav__item child-nav__item"
1590                                         href="/collections/dallas-stars-signed-memorabilia-collectibles">Dallas Stars
1591                                      </a></li><li><a class="main-nav__item child-nav__item"
1592                                         href="/collections/detroit-red-wings-signed-memorabilia-collectibles">Detroit Red Wings
1593                                      </a></li><li><a class="main-nav__item child-nav__item"
1594                                         href="/collections/edmonton-oilers-signed-memorabilia-collectibles">Edmonton Oilers
1595                                      </a></li><li><a class="main-nav__item child-nav__item"
1596                                         href="/collections/florida-panthers-signed-memorabilia-collectibles">Florida Panthers
1597                                      </a></li><li><a class="main-nav__item child-nav__item"
1598                                         href="/collections/los-angeles-kings-signed-memorabilia-collectibles">Los Angeles Kings
1599                                      </a></li><li><a class="main-nav__item child-nav__item"
1600                                         href="/collections/minnesota-wild-signed-memorabilia-collectibles">Minnesota Wild
1601                                      </a></li><li><a class="main-nav__item child-nav__item"
1602                                         href="/collections/montreal-canadiens-signed-memorabilia-collectibles">Montreal Canadiens
1603                                      </a></li><li><a class="main-nav__item child-nav__item"
1604                                         href="/collections/nashville-predators-signed-memorabilia-collectibles">Nashville Predators
1605                                      </a></li><li><a class="main-nav__item child-nav__item"
1606                                         href="/collections/new-jersey-devils-signed-memorabilia-collectibles">New Jersey Devils
1607                                      </a></li><li><a class="main-nav__item child-nav__item"
1608                                         href="/collections/new-york-islanders-signed-memorabilia-collectibles">New York Islanders
1609                                      </a></li><li><a class="main-nav__item child-nav__item"
1610                                         href="/collections/new-yor
1610k-rangers-signed-memorabilia-collectibles">New York Rangers
1611                                      </a></li><li><a class="main-nav__item child-nav__item"
1612                                         href="/collections/ottawa-senators-signed-memorabilia-collectibles">Ottawa Senators
1613                                      </a></li><li><a class="main-nav__item child-nav__item"
1614                                         href="/collections/philadelphia-flyers-signed-memorabilia-collectibles">Philadelphia Flyers
1615                                      </a></li><li><a class="main-nav__item child-nav__item"
1616                                         href="/collections/pittsburgh-penguins-signed-memorabilia-collectibles">Pittsburgh Penguins
1617                                      </a></li><li><a class="main-nav__item child-nav__item"
1618                                         href="/collections/san-jose-sharks-signed-memorabilia-collectibles">San Jose Sharks
1619                                      </a></li><li><a class="main-nav__item child-nav__item"
1620                                         href="/collections/seattle-kraken-signed-memorabilia-collectibles">Seattle Kraken
1621                                      </a></li><li><a class="main-nav__item child-nav__item"
1622                                         href="/collections/st-louis-blues-signed-memorabilia-collectibles">St. Louis Blues
1623                                      </a></li><li><a class="main-nav__item child-nav__item"
1624                                         href="/collections/tampa-bay-lightning-signed-memorabilia-collectibles">Tampa Bay Lightning
1625                                      </a></li><li><a class="main-nav__item child-nav__item"
1626                                         href="/collections/toronto-maple-leafs-signed-memorabilia-collectibles">Toronto Maple Leafs
1627                                      </a></li><li><a class="main-nav__item child-nav__item"
1628                                         href="/collections/vancouver-canucks-signed-memorabilia-collectibles">Vancouver Canucks
1629                                      </a></li><li><a class="main-nav__item child-nav__item"
1630                                         href="/collections/vegas-golden-knights-signed-memorabilia-collectibles">Vegas Golden Knights
1631                                      </a></li><li><a class="main-nav__item child-nav__item"
1632                                         href="/collections/washington-capitals-signed-memorabilia-collectibles">Washington Capitals
1633                                      </a></li><li><a class="main-nav__item child-nav__item"
1634                                         href="/collections/winnipeg-jets-signed-memorabilia-collectibles">Winnipeg Jets
1635                                      </a></li></ul></div></div>
1636                      </details></li><li><a class="main-nav__item main-nav__item--primary" href="/collections/custom-framing">Custom Framing</a></li><li><a class="main-nav__item main-nav__item--primary" href="/collections/mlb-baseball-signed-memorabilia-collectibles">Baseball</a></li><li><details>
1637                        <summary class="main-nav__item--toggle relative js-nav-hover js-toggle">
1638                          <a class="main-nav__item main-nav__item--primary main-nav__item-content" href="/collections/soccer-memorabilia">
1639                            Soccer<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg>
1640                          </a>
1641                        </summary><div class="main-nav__child has-motion">
1642                          
1643                            <ul class="child-nav child-nav--dropdown">
1644                              <li class="md:hidden">
1645                                <button type="button" class="main-nav__item main-nav__item--back relative js-back">
1646                                  <div class="main-nav__item-content text-start">
1647                                    <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"/></svg> Back</div>
1648                                </button>
1649                              </li>
1650
1651                              <li class="md:hidden">
1652                                <a href="/collections/soccer-memorabilia" class="main-nav__item child-nav__item large-text main-nav__item-header">Soccer</a>
1653                              </li><li><a class="main-nav__item child-nav__item"
1654                                         href="/collections/fifa-2026-world-cup-collection">FIFA 26 WORLD CUP
1655                                      </a></li></ul></div>
1656                      </details></li><li><a class="main-nav__item main-nav__item--primary" href="/collections/nba-basketball-signed-memorabilia-collectibles">Basketball</a></li><li><a class="main-nav__item main-nav__item--primary" href="/collections/signed-golf-memorabilia-collectibles">Golf</a></li><li><a class="main-nav__item main-nav__item--primary" href="/collections/signed-boxing-memorabilia-collectibles">Boxing</a></li><li><a class="main-nav__item main-nav__item--primary" href="/collections/football-memorabilia-collectibles">Football</a></li><li><a class="main-nav__item main-nav__item--primary" href="/collections/collectible-music-memorabilia">Music</a></li><li><a class="main-nav__item main-nav__item--primary" href="/collections/framed-wall-art">Wall Art</a></li><li><a class="main-nav__item main-nav__item--primary" href="/collections/frameworth-mystery-box">Mystery Boxes</a></li></ul>
1657            </nav></div>
1658        </details>
1659      </main-menu></header>
1660</store-header><link rel="stylesheet" href="//frameworth.com/cdn/shop/t/157/assets/navigation-mega-pills.css?v=71276748193580414071760710645" media="print" onload="this.media='all'"><link rel="stylesheet" href="//frameworth.com/cdn/shop/t/157/assets/navigation-mega-columns.css?v=23096103473252862771788274668" media="print" onload="this.media='all'">
1661
1662<script type="application/ld+json">
1663  {
1664    "@context": "http://schema.org",
1665    "@type": "Organization",
1666    "name": "Frameworth Sports Marketing ",
1667      "logo": "https:\/\/frameworth.com\/cdn\/shop\/files\/Frameworth-Shopify-Logo_7e5798db-68ec-4d1d-9e50-e91558cdb508.jpg?v=1651937023\u0026width=531",
1668    
1669    "sameAs": [
1670      
1671"https:\/\/www.facebook.com\/frameworthsport\/","https:\/\/www.youtube.com\/c\/thesignoffaframeworthpodcast","https:\/\/www.instagram.com\/frameworthsport\/","https:\/\/www.tiktok.com\/@frameworthsport?lang=en","https:\/\/x.com\/FrameworthSport","https:\/\/www.linkedin.com\/company\/frameworth-sports-marketing\/"
1672    ],
1673    "url": "https:\/\/frameworth.com\/pages\/our-retail-store"
1674  }
1675</script>
1675
1676
1677
1678</div>
1679<!-- END sections: header-group --><main id="main-content"><section id="shopify-section-template--19300118888617__custom_liquid_bHCwR3" class="shopify-section cc-custom-liquid"><div class="section relative section--full-width section--padded-default" data-cc-animate><style>
1680    .contact-page-wrapper {
1681        max-width: 100%;
1682        margin: 0 auto;
1683        padding: 0;
1684    }
1685
1686    .contact-hero {
1687        background-color: #1a2b6d;
1688        padding: 40px 20px;
1689        text-align: center;
1690        margin-bottom: 30px;
1691    }
1692
1693    .contact-hero h1 {
1694        color: #fff;
1695        font-size: 32px;
1696        margin: 0;
1697        font-weight: 600;
1698    }
1699
1700    .contact-hero p {
1701        color: #fff;
1702        font-size: 16px;
1703        margin-top: 8px;
1704        opacity: 0.9;
1705    }
1706
1707    .contact-grid {
1708        max-width: 1200px;
1709        margin: 0 auto;
1710        padding: 0 20px;
1711        display: grid;
1712        grid-template-columns: 1fr 1fr;
1713        gap: 30px;
1714    }
1715
1716    .contact-section {
1717        background: #fff;
1718        border-radius: 8px;
1719        padding: 25px;
1720        margin-bottom: 20px;
1721    }
1722
1723    .contact-section.full-width {
1724        grid-column: 1 / -1;
1725        margin-bottom: 0;
1726    }
1727
1728    .contact-section h2 {
1729        color: #1a2b6d;
1730        font-size: 20px;
1731        margin: 0 0 15px 0;
1732        display: flex;
1733        align-items: center;
1734        gap: 8px;
1735    }
1736
1737    .contact-section h2 svg {
1738        width: 20px;
1739        height: 20px;
1740    }
1741
1742    .contact-info {
1743        display: flex;
1744        flex-direction: column;
1745        gap: 15px;
1746    }
1747
1748    .contact-item {
1749        display: flex;
1750        align-items: center;
1751        gap: 12px;
1752    }
1753
1754    .contact-item svg {
1755        width: 18px;
1756        height: 18px;
1757        flex-shrink: 0;
1758        color: #b21f1f;
1759    }
1760
1761    .contact-item span, 
1762    .contact-item a {
1763        color: #333;
1764        font-size: 15px;
1765        line-height: 1.4;
1766        text-decoration: none;
1767    }
1768
1769    .contact-item a:hover {
1770        color: #b21f1f;
1771    }
1772
1773    .contact-item address {
1774        font-style: normal;
1775        margin: 0;
1776    }
1777
1778    .hours-table {
1779        width: 100%;
1780        border-collapse: separate;
1781        border-spacing: 0;
1782    }
1783
1784    .hours-table tr {
1785        border: 1px solid #e5e5e5;
1786    }
1787
1788    .hours-table td {
1789        padding: 12px 15px;
1790        color: #333;
1791        font-size: 15px;
1792        border: 1px solid #e5e5e5;
1793        background: #fff;
1794    }
1795
1796    .hours-table td:last-child {
1797        text-align: right;
1798        font-weight: 500;
1799    }
1800
1801    .holiday-hours-header {
1802        background: #f8f8f8;
1803        text-align: right !important;
1804        color: #b21f1f !important;
1805        font-weight: 600 !important;
1806        padding: 15px !important;
1807        border-top: 2px solid #b21f1f !important;
1808    }
1809
1810    .closed-status {
1811        color: #b21f1f;
1812        font-weight: 500;
1813    }
1814
1815    .map-container {
1816        width: 100%;
1817        height: 400px;
1818        border-radius: 8px;
1819        overflow: hidden;
1820    }
1821
1822    .map-container iframe {
1823        width: 100%;
1824        height: 100%;
1825        border: 0;
1826    }
1827
1828    .address-link {
1829        display: inline-flex;
1830        align-items: center;
1831        gap: 5px;
1832        color: #1a2b6d;
1833        font-weight: 500;
1834        margin-top: 8px;
1835        font-size: 14px;
1836    }
1837
1838    .address-link svg {
1839        width: 14px;
1840        height: 14px;
1841    }
1842
1843    .address-link:hover {
1844        color: #b21f1f;
1845    }
1846
1847    @media (max-width: 768px) {
1848        .contact-grid {
1849            grid-template-columns: 1fr;
1850            gap: 20px;
1851            padding: 0 15px;
1852        }
1853
1854        .contact-hero {
1855            padding: 30px 15px;
1856        }
1857
1858        .contact-hero h1 {
1859            font-size: 26px;
1860        }
1861
1862        .contact-section {
1863            padding: 20px;
1864        }
1865
1866        .map-container {
1867            height: 300px;
1868        }
1869    }
1870</style>
1871
1872<div class="contact-page-wrapper">
1873    <div class="contact-hero">
1874        <h1>Contact Frameworth Sports Marketing</h1>
1875        <p>Your Premier Sports Memorabilia Destination</p>
1876    </div>
1877
1878    <div class="contact-grid">
1879        <div class="contact-section">
1880            <h2>
1881                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor">
1882                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path>
1883                </svg>
1884                Contact Information
1885            </h2>
1886            <div class="contact-info">
1887                <div class="contact-item">
1888                    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor">
1889                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path>
1890                    </svg>
1891                    <a href="mailto:[email protected]">[email protected]</a>
1892                </div>
1893                <div class="contact-item">
1894                    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor">
1895                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 
189511.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"></path>
1896                    </svg>
1897                    <a href="tel:416-781-1115,231">416-781-1115</a>
1898                </div>
1899                <div class="contact-item">
1900                    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor">
1901                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"></path>
1902                    </svg>
1903                    <a href="tel:1-866-573-1174">Toll Free: 1-866-573-1174</a>
1904                </div>
1905                <div class="contact-item">
1906                    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor">
1907                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z"></path>
1908                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 11a3 3 0 11-6 0 3 3 0 016 0z"></path>
1909                    </svg>
1910                    <div>
1911                        <address>
1912                            1198 Caledonia Rd.<br>
1913                            Toronto, ON M6A 2W5
1914                        </address>
1915                        <a href="https://maps.app.goo.gl/skEmkmxcsyy1eQEZ7" target="_blank" class="address-link">
1916                            <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor">
1917                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"></path>
1918                            </svg>
1919                            Get Directions
1920                        </a>
1921                    </div>
1922                </div>
1923            </div>
1924        </div>
1925
1926        <div class="contact-section">
1927            <h2>
1928                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor">
1929                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"></path>
1930                </svg>
1931                Store Hours
1932            </h2>
1933            <table class="hours-table">
1934                <tbody>
1935                    <tr>
1936                        <td>Monday - Friday</td>
1937                        <td>9:00 AM - 4:30 PM EST</td>
1938                    </tr>
1939                    <tr>
1940                        <td>Saturday</td>
1941                        <td>9:00 AM - 3:30 PM EST</td>
1942                    </tr>
1943                    <tr>
1944                        <td>Sunday</td>
1945                        <td class="closed-status">Closed</td>
1946                    </tr>
1947                    <tr>
1948                        <td colspan="2" class="holiday-hours-header">Summer Break Hours</td>
1949                    </tr>
1950                    <tr>
1951                        <td>June 29 - July 3, 2026</td>
1952                        <td class="closed-status">Closed</td>
1953                    </tr>
1954                    <tr>
1955                        <td>July 6, 2026</td>
1956                        <td>Regular Hours Resume</td>
1957                    </tr>
1958                </tbody>
1959            </table>
1960        </div>
1961
1962        <div class="contact-section full-width">
1963            <h2>
1964                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor">
1965                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z"></path>
1966                </svg>
1967                Location
1968            </h2>
1969            <div class="map-container">
1970                <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2107.0573053464095!2d-79.47281043851052!3d43.717855490333896!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x882b33d66e44874f%3A0x9a92372e2778d248!2sFrameworth%20Sports%20Marketing!5e0!3m2!1sen!2sca!4v1704208635990!5m2!1sen!2sca" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe>
1971            </div>
1972        </div>
1973    </div>
1974</div></div>
1975</section><div id="shopify-section-template--19300118888617__image_banner_nFPF8n" class="shopify-section cc-image-banner"><style data-shopify>#template--19300118888617__image_banner_nFPF8n { background: none; }#template--19300118888617__image_banner_nFPF8n {
1976      --color-scheme-white-text: 255 255 255;
1977      --color-scheme-white-hover: 230 230 230;
1978      --color-scheme-white-text-contrast: 0 0 0;
1979    }#template--19300118888617__image_banner_nFPF8n .image-banner::after {
1980      content: '';
1981      padding-top: 75.0%;
1982    }</style><div class="section section--full-width color-scheme color-scheme--white" id="template--19300118888617__image_banner_nFPF8n">
1983  <div class="image-banner relative flex items-center auto-height"><div class="image-banner__image media media--has-overlay absolute top-0 left-0 w-full h-full"><img srcset="//frameworth.com/cdn/shop/files/frameworth-northyork-store-image.jpg?v=1761864733&width=360 480w, //frameworth.com/cdn/shop/files/frameworth-northyork-store-image.jpg?v=1761864733&width=735 980w, //frameworth.com/cdn/shop/files/frameworth-northyork-store-image.jpg?v=1761864733&width=900 1200w, //frameworth.com/cdn/shop/files/frameworth-northyork-store-image.jpg?v=1761864733&width=1050 1400w, //frameworth.com/cdn/shop/files/frameworth-northyork-store-image.jpg?v=1761864733&width=1200 1600w, //frameworth.com/cdn/shop/files/frameworth-northyork-store-image.jpg?v=1761864733&width=1440 1920w" src="//frameworth.com/cdn/shop/files/frameworth-northyork-store-image.jpg?v=1761864733&width=1400"
1984         class="img-fit" style="object-position: 50.0% 50.0%" loading="lazy"
1985         width="1440.0"
1986         height="1080"
1987         
1988         alt=""></div></div>
1989</div>
1990
1991
1992</div>
1993    </main><!-- BEGIN sections: overlay-group -->
1994<div id="shopify-section-sections--19300118331561__cart-drawer" class="shopify-section shopify-section-group-overlay-group cc-cart-drawer"><link rel="stylesheet" href="//frameworth.com/cdn/shop/t/157/assets/cart-items.css?v=152138512002056423161760710648" media="print" onload="this.media='all'">
1995<script src="//frameworth.com/cdn/shop/t/157/assets/cart-drawer.js?v=163665529796728404511790120896" defer="defer"></script>
1995<script src="//frameworth.com/cdn/shop/t/157/assets/cart-note.js?v=126131321468449833931760710645" defer="defer"></script>
1995<cart-drawer class="drawer drawer--cart fixed top-0 right-0 flex flex-col w-full has-motion" data-name="cart-drawer" id="cart-drawer" role="dialog" aria-label="Your cart" aria-modal="true" aria-hidden="true" tabindex="-1" data-shipping-calculator="false">
1996  <header class="drawer__header flex justify-between items-center">
1997    <h2 class="h5 mb-0">Your cart</h2>
1998    <div class="flex items-center gap-x-theme"><button type="button" class="drawer__close-btn js-close-drawer">
1999        <span class="visually-hidden">Close</span>
2000        <svg width="24" height="24" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" fill="none" fill-rule="evenodd" stroke-linejoin="round" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M5 19 19 5M5 5l14 14"/></svg>
2001      </button>
2002    </div>
2003  </header>
2004
2005  <div class="drawer__content drawer__content--flex flex-auto items-center drawer__empty-with-promotions">
2006    
2007
2008    <div class="cart-drawer__content grow flex items-center"><form class="form" id="cart-drawer-form" action="/cart" method="post">
2009        
2009<script src="//frameworth.com/cdn/shop/t/157/assets/cart-items.js?v=31181854099011699301790120897" defer="defer"></script>
2009<cart-items id="cart-items" data-section="cart-drawer" data-empty="true"><div class="cart-empty flex flex-col justify-center items-center h-full js-cart-empty"><svg width="24" height="24" viewBox="0 0 24 24" class="icon icon--cart" aria-hidden="true" focusable="false" role="presentation"><path fill="currentColor" d="M17 18a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2c0-1.11.89-2 2-2M1 2h3.27l.94 2H20a1 1 0 0 1 1 1c0 .17-.05.34-.12.5l-3.58 6.47c-.34.61-1 1.03-1.75 1.03H8.1l-.9 1.63-.03.12a.25.25 0 0 0 .25.25H19v2H7a2 2 0 0 1-2-2c0-.35.09-.68.24-.96l1.36-2.45L3 4H1V2m6 16a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2c0-1.11.89-2 2-2m9-7 2.78-5H6.14l2.36 5H16Z"/></svg><p>Your cart is empty</p><a class="btn btn--primary" href="/collections/all">Start shopping</a></div><p class="visually-hidden" id="cart-live-region-text" role="status" aria-live="polite">
2010    Subtotal:$0<sup>00</sup> USD
2011</p>
2012  <p class="visually-hidden" id="cart-line-item-status" role="status" aria-live="polite" aria-hidden="true">Loading...</p><div class="alert mt-6 bg-error-bg text-error-text" id="cart-errors" role="alert" hidden></div></cart-items>
2013
2014      </form>
2015    </div>
2016
2017    <div id="cart-promoted-products" class="w-full cart-drawer__promoted-products-container"><promoted-products class="cart-drawer__promoted-products layout-carousel block w-full"><carousel-slider class="carousel block" inactive>
2018
2019          <div class="mb-2 flex items-center justify-between"><h2 class="flex-auto mb-0 h6 max-w-full">Best Selling Products</h2><div class="slider-nav slide-nav--inline flex no-js-hidden">
2020              <button type="button" class="slider-nav__btn tap-target btn has-ltr-icon" name="prev" aria-controls="slider-sections--19300118331561__cart-drawer">
2021                <span class="visually-hidden">Previous</span>
2022                <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"/></svg>
2023              </button>
2024              <button type="button" class="slider-nav__btn slider-nav__btn--offset tap-target btn has-ltr-icon" name="next" aria-controls="slider-sections--19300118331561__cart-drawer">
2025                <span class="visually-hidden">Next</span>
2026                <svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="m9.693 4.5 7.5 7.5-7.5 7.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg>
2027              </button>
2028            </div>
2029          </div>
2030
2031          <div class="relative">
2032            <div class="slider slider--no-scrollbar" id="slider-sections--19300118331561__cart-drawer"><ul class="slider__grid grid grid-flow-col auto-cols-1 gap-x-theme small__grid" role="list"><li class="slider__item"><div class="card card--row card--related  relative flex">
2033  <div class="card__media">
2034    
2035<div class="media relative" style="padding-top: 125.0%;">
2036          <img srcset="//frameworth.com/cdn/shop/files/Jersey_Framing_6.jpg?v=1762727696&width=88, //frameworth.com/cdn/shop/files/Jersey_Framing_6.jpg?v=1762727696&width=176 2x" src="//frameworth.com/cdn/shop/files/Jersey_Framing_6.jpg?v=1762727696&width=176"
2037         class="img-fit" loading="lazy"
2038         width="176"
2039         height="220"
2040         
2041         alt="">
2042        </div>
2043  </div>
2044
2045  <div class="card__info">
2046    <p class="h6 regular-text mt-2 mb-1">
2047      <a href="/products/custom-jersey-framing" class="card-link text-current">
2048        Custom Jersey Framing
2049      </a>
2050    </p>
2051<div class="price">
2052  <div class="price__default">
2053      <span class="price__from">From</span>
2054    <strong class="price__current">$325<sup>00</sup> USD
2055</strong>
2056    <s class="price__was price__was--supercents"></s>
2057  </div>
2058
2059  <div class="unit-price relative" hidden><span class="visually-hidden">Unit price</span><span class="unit-price__price">
2060</span><span class="unit-price__separator"> / </span><span class="unit-price__unit"></span></div>
2061
2062  <div class="price__no-variant" hidden>
2063    <strong class="price__current">Unavailable</strong>
2064  </div></div>
2065<button type="button"
2066                  class="btn btn--secondary btn--sm js-quick-add no-js-hidden"
2067                  aria-haspopup="dialog"
2068                  data-product-url="/products/custom-jersey-framing">
2069            
2070Choose options
2071          </button>
2072        </div>
2073</div></li></ul></div>
2074          </div>
2075        </carousel-slider></promoted-products></div><div id="cart-drawer-media-promotion" class="cart-drawer__media-promotion-container w-full"></div>
2076  </div><div class="cart-drawer__summary relative drawer__footer cart-drawer--checkout--sticky-true"></div>
2077<div class="overlay overlay--drawer absolute top-0 right-0 bottom-0 left-0 js-close"></div>
2078</cart-drawer>
2079
2080</div>
2081<!-- END sections: overlay-group --><!-- BEGIN sections: footer-group -->
2082<div id="shopify-section-sections--19300118266025__footer" class="shopify-section shopify-section-group-footer-group cc-footer"><link rel="stylesheet" href="//frameworth.com/cdn/shop/t/157/assets/footer.css?v=57805532828560293961760710651" media="print" onload="this.media='all'">
2082<script src="//frameworth.com/cdn/shop/t/157/assets/custom-select.js?v=28109452914319203301774658508" defer="defer"></script>
2082<style data-shopify>.footer {
2083    --bg-color: 244 244 244 / 1.0;
2084    --heading-color: 7 7 7;
2085    --text-color: 7 7 7;
2086  }</style><a href="#" class="back-to-top text-sm block border-top font-bold text-center text-current p-6 border-bottom" data-cc-animate>Back to top</a><footer class="footer bg-theme-bg text-theme-text">
2087  <div class="container"><div class="footer__main md:flex md:flex-wrap mb-10 md:mb-6"><div class="footer-col footer-col--text footer-col--not-collapsed"  data-cc-animate data-cc-animate-delay="0.07s">
2088                <div class="footer-block mb-8 text-start"><h2 class="footer-block__heading font-body font-bold text-h6 regular-text">Frameworth | Since 1992</h2><div class="footer-block__text rte">
2089                      <p>Frameworth Sports Marketing has been manufacturing high quality sports memorabilia since 1992. We are North America's leader in framed memorabilia design specializing in sports & music. Frameworth is proudly Canadian and operates out of our Toronto location.</p>
2090                    </div></div>
2091              </div><div class="footer-col footer-col--links footer-col--collapsed"  data-cc-animate data-cc-animate-delay="0.14s">
2092                  <footer-menu>
2093                    <details class="footer-menu disclosure footer-menu--first" open>
2094                      <summary tabindex="-1">
2095                        <div class="flex justify-between items-center">
2096                          <h2 class="disclosure__title font-body font-bold text-h6 regular-text">Useful Links</h2>
2097                          <span class="disclosure__toggle"><svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg>
2098</span>
2099                        </div>
2100                      </summary>
2101                      <div class="disclosure__panel has-motion">
2102                        <ul class="footer-menu__links disclosure__content" role="list"><li>
2103                              <a href="/pages/about-us">About Us</a>
2104                            </li><li>
2105                              <a href="/pages/contact-us">Contact Us</a>
2106                            </li><li>
2107                              <a href="/pages/authenticity">Authenticity</a>
2108                            </li><li>
2109                              <a href="/pages/financing">Financing</a>
2110                            </li><li>
2111                              <a href="/pages/our-retail-store">Our Retail Store</a>
2112                            </li><li>
2113                              <a href="/pages/corporate">Corporate Opportunties</a>
2114                            </li><li>
2115                              <a href="/pages/wholesale-opportunities">Wholesale Opportunities</a>
2116                            </li><li>
2117                              <a href="/pages/the-sign-off">The Signoff Podcast</a>
2118                            </li><li>
2119                              <a href="/collections/custom-framing">Custom Framing</a>
2120                            </li><li>
2121                              <a href="/collections/auctions">Auctions</a>
2122                            </li></ul>
2123                      </div>
2124                    </details>
2125                  </footer-menu>
2126                </div><div class="footer-col footer-col--links footer-col--collapsed"  data-cc-animate data-cc-animate-delay="0.21s">
2127                  <footer-menu>
2128                    <details class="footer-menu disclosure" open>
2129                      <summary tabindex="-1">
2130                        <div class="flex justify-between items-center">
2131                          <h2 class="disclosure__title font-body font-bold text-h6 regular-text">Terms &amp; Conditions</h2>
2132                          <span class="disclosure__toggle"><svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg>
2133</span>
2134                        </div>
2135                      </summary>
2136                      <div class="disclosure__panel has-motion">
2137                        <ul class="footer-menu__links disclosure__content" role="list"><li>
2138                              <a href="/policies/shipping-policy">Shipping Policy</a>
2139                            </li><li>
2140                              <a href="/policies/refund-policy">Refund Policy</a>
2141                            </li><li>
2142                              <a href="/policies/privacy-policy">Privacy Policy</a>
2143                            </li><li>
2144                              <a href="/policies/terms-of-service">Terms of Service</a>
2145                            </li><li>
2146                              <a href="/pages/auction-rules">Auction Rules</a>
2147                            </li><li>
2148                              <a href="/pages/wholesale-application">Wholesale Application</a>
2149                            </li></ul>
2150                      </div>
2151                    </details>
2152                  </footer-menu>
2153                </div><div class="footer-col footer-col--newsletter footer-col--collapsed"  data-cc-animate data-cc-animate-delay="0.28s"><footer-menu>
2154                    <details class="footer-menu disclosure" open>
2155                      <summary tabindex="-1">
2156                        <div class="flex justify-between items-center">
2157                          <h2 class="disclosure__title font-body font-bold text-h6 regular-text">
2158                            Newsletter
2159                          </h2>
2160                          <span class="disclosure__toggle"><svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg>
2161</span>
2162                        </div>
2163                      </summary>
2164                      <div class="disclosure__panel has-motion">
2165                        <div class="disclosure__content"><div class="rte">
2166                              <p>Sign up for exclusive offers, original stories, events and more.</p>
2167                            </div><form method="post" action="/contact#footer-signup_form" id="footer-signup_form" accept-charset="UTF-8" class="form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="✓" />
2168  <input type="hidden" name="contact[tags]" value="prospect, newsletter">
2169
2170  
2171
2172  <div class="form__field">
2173    <label class="label visually-hidden" for="footer-signup">Email</label><div class="input-with-button"><input type="email"
2174             class="input w-full focus-inset"
2175             id="footer-signup"
2176             name="contact[email]"
2177             value=""
2178             placeholder="Your email"
2179             autocomplete="email"
2180             aria-required="true"
2181             required><button class="btn focus-inset has-ltr-icon">
2182            <span class="visually-hidden">Subscribe</span>
2183            <svg width="24" height="24" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M4.696 12h14.686m-7.007-7.5 7.5 7.5-7.5 7.5"/></svg>
2184          </button></div></div></form>
2185
2186                        </div>
2187                      </div>
2188                    </details>
2189                  </footer-menu></div></div><div class="footer__meta grid grid-cols-1 lg:grid-cols-2 gap-x-theme gap-y-10" data-cc-animate><div class="footer__payment lg:col-start-2 lg:row-start-1 footer__payment--right">
2190            <span class="visually-hidden">Payment methods accepted</span>
2191            <ul class="payment-icons flex flex-wrap" role="list"><li><svg class="payment-icon" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-american_express"><title id="pi-american_express">American Express</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#0071CE" style="fill:#0071CE;fill:color(display-p3 0.0000 0.4431 0.8078);fill-opacity:1;"/><path d="M3 0.5H35C36.3348 0.5 37.5 1.58692 37.5 3V21C37.5 22.4239 36.4239 23.5 35 23.5H3C1.66524 23.5 0.5 22.4131 0.5 21V3C0.5 1.57614 1.57614 0.5 3 0.5Z" stroke="black" stroke-opacity="0.07" style="stroke:black;stroke-opacity:0.07;"/><path d="M25.8662 6.33203V3H31L31.8662 5.5332L32.7334 3H37V14.2002H36.7998L34.8672 16.2656L36.7998 18.3594H37V21.2666H33.5996L31.9336 19.3994L30.2002 21.2666H19.4668V12.666H16L20.2666 3H24.4004L25.8662 6.33203ZM20.5996 20.2656H27V18.5322H22.666V17.3994H26.8662V15.666H22.666V14.5322H27V12.7988H20.5996V20.2656ZM30.5332 16.5322L27 20.2656H29.5996L31.8662 17.8662L34.0664 20.2656H36.7324L33.1992 16.4658L36.7324 12.7988H34.1328L31.8662 15.1992L29.7324 12.7988H27L30.5332 16.5322ZM17.666 11.7324H19.9326L20.5332 10.1992H23.999L24.666 11.7324H26.999L23.666 4.19922H20.999L17.666 11.7324ZM33.5996 4.19922L31.9326 8.86621L30.1992 4.19922H27V11.666H29.0664V6.39941L31 11.666H32.7998L34.7324 6.39941V11.666H36.7324V4.13281L33.5996 4.19922ZM23.2656 8.46582H21.2656L22.2656 5.99902L23.2656 8.46582Z" fill="white" style="fill:white;fill-opacity:1;"/></svg>
2192</li><li><svg class="payment-icon" version="1.1" xmlns="http://www.w3.org/2000/svg" role="img" x="0" y="0" width="38" height="24" viewBox="0 0 165.521 105.965" xml:space="preserve" aria-labelledby="pi-apple_pay"><title id="pi-apple_pay">Apple Pay</title><path fill="#000" d="M150.698 0H14.823c-.566 0-1.133 0-1.698.003-.477.004-.953.009-1.43.022-1.039.028-2.087.09-3.113.274a10.51 10.51 0 0 0-2.958.975 9.932 9.932 0 0 0-4.35 4.35 10.463 10.463 0 0 0-.975 2.96C.113 9.611.052 10.658.024 11.696a70.22 70.22 0 0 0-.022 1.43C0 13.69 0 14.256 0 14.823v76.318c0 .567 0 1.132.002 1.699.003.476.009.953.022 1.43.028 1.036.09 2.084.275 3.11a10.46 10.46 0 0 0 .974 2.96 9.897 9.897 0 0 0 1.83 2.52 9.874 9.874 0 0 0 2.52 1.83c.947.483 1.917.79 2.96.977 1.025.183 2.073.245 3.112.273.477.011.953.017 1.43.02.565.004 1.132.004 1.698.004h135.875c.565 0 1.132 0 1.697-.004.476-.002.952-.009 1.431-.02 1.037-.028 2.085-.09 3.113-.273a10.478 10.478 0 0 0 2.958-.977 9.955 9.955 0 0 0 4.35-4.35c.483-.947.789-1.917.974-2.96.186-1.026.246-2.074.274-3.11.013-.477.02-.954.022-1.43.004-.567.004-1.132.004-1.699V14.824c0-.567 0-1.133-.004-1.699a63.067 63.067 0 0 0-.022-1.429c-.028-1.038-.088-2.085-.274-3.112a10.4 10.4 0 0 0-.974-2.96 9.94 9.94 0 0 0-4.35-4.35A10.52 10.52 0 0 0 156.939.3c-1.028-.185-2.076-.246-3.113-.274a71.417 71.417 0 0 0-1.431-.022C151.83 0 151.263 0 150.698 0z" /><path fill="#FFF" d="M150.698 3.532l1.672.003c.452.003.905.008 1.36.02.793.022 1.719.065 2.583.22.75.135 1.38.34 1.984.648a6.392 6.392 0 0 1 2.804 2.807c.306.6.51 1.226.645 1.983.154.854.197 1.783.218 2.58.013.45.019.9.02 1.36.005.557.005 1.113.005 1.671v76.318c0 .558 
21920 1.114-.004 1.682-.002.45-.008.9-.02 1.35-.022.796-.065 1.725-.221 2.589a6.855 6.855 0 0 1-.645 1.975 6.397 6.397 0 0 1-2.808 2.807c-.6.306-1.228.511-1.971.645-.881.157-1.847.2-2.574.22-.457.01-.912.017-1.379.019-.555.004-1.113.004-1.669.004H14.801c-.55 0-1.1 0-1.66-.004a74.993 74.993 0 0 1-1.35-.018c-.744-.02-1.71-.064-2.584-.22a6.938 6.938 0 0 1-1.986-.65 6.337 6.337 0 0 1-1.622-1.18 6.355 6.355 0 0 1-1.178-1.623 6.935 6.935 0 0 1-.646-1.985c-.156-.863-.2-1.788-.22-2.578a66.088 66.088 0 0 1-.02-1.355l-.003-1.327V14.474l.002-1.325a66.7 66.7 0 0 1 .02-1.357c.022-.792.065-1.717.222-2.587a6.924 6.924 0 0 1 .646-1.981c.304-.598.7-1.144 1.18-1.623a6.386 6.386 0 0 1 1.624-1.18 6.96 6.96 0 0 1 1.98-.646c.865-.155 1.792-.198 2.586-.22.452-.012.905-.017 1.354-.02l1.677-.003h135.875" /><g><g><path fill="#000" d="M43.508 35.77c1.404-1.755 2.356-4.112 2.105-6.52-2.054.102-4.56 1.355-6.012 3.112-1.303 1.504-2.456 3.959-2.156 6.266 2.306.2 4.61-1.152 6.063-2.858" /><path fill="#000" d="M45.587 39.079c-3.35-.2-6.196 1.9-7.795 1.9-1.6 0-4.049-1.8-6.698-1.751-3.447.05-6.645 2-8.395 5.1-3.598 6.2-.95 15.4 2.55 20.45 1.699 2.5 3.747 5.25 6.445 5.151 2.55-.1 3.549-1.65 6.647-1.65 3.097 0 3.997 1.65 6.696 1.6 2.798-.05 4.548-2.5 6.247-5 1.95-2.85 2.747-5.6 2.797-5.75-.05-.05-5.396-2.101-5.446-8.251-.05-5.15 4.198-7.6 4.398-7.751-2.399-3.548-6.147-3.948-7.447-4.048" /></g><g><path fill="#000" d="M78.973 32.11c7.278 0 12.347 5.017 12.347 12.321 0 7.33-5.173 12.373-12.529 12.373h-8.058V69.62h-5.822V32.11h14.062zm-8.24 19.807h6.68c5.07 0 7.954-2.729 7.954-7.46 0-4.73-2.885-7.434-7.928-7.434h-6.706v14.894z" /><path fill="#000" d="M92.764 61.847c0-4.809 3.665-7.564 10.423-7.98l7.252-.442v-2.08c0-3.04-2.001-4.704-5.562-4.704-2.938 0-5.07 1.507-5.51 3.82h-5.252c.157-4.86 4.731-8.395 10.918-8.395 6.654 0 10.995 3.483 10.995 8.89v18.663h-5.38v-4.497h-.13c-1.534 2.937-4.914 4.782-8.579 4.782-5.406 0-9.175-3.222-9.175-8.057zm17.675-2.417v-2.106l-6.472.416c-3.64.234-5.536 1.585-5.536 3.95 0 2.288 1.975 3.77 5.068 3.77 3.95 0 6.94-2.522 6.94-6.03z" /><path fill="#000" d="M120.975 79.652v-4.496c.364.051 1.247.103 1.715.103 2.573 0 4.029-1.09 4.913-3.899l.52-1.663-9.852-27.293h6.082l6.863 22.146h.13l6.862-22.146h5.927l-10.216 28.67c-2.34 6.577-5.017 8.735-10.683 8.735-.442 0-1.872-.052-2.261-.157z" /></g></g></svg>
2193</li><li><svg class="payment-icon" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" aria-labelledby="pi-diners_club"><title id="pi-diners_club">Diners Club</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M12 12v3.7c0 .3-.2.3-.5.2-1.9-.8-3-3.3-2.3-5.4.4-1.1 1.2-2 2.3-2.4.4-.2.5-.1.5.2V12zm2 0V8.3c0-.3 0-.3.3-.2 2.1.8 3.2 3.3 2.4 5.4-.4 1.1-1.2 2-2.3 2.4-.4.2-.4.1-.4-.2V12zm7.2-7H13c3.8 0 6.8 3.1 6.8 7s-3 7-6.8 7h8.2c3.8 0 6.8-3.1 6.8-7s-3-7-6.8-7z" fill="#3086C8"/></svg></li><li><svg class="payment-icon" viewBox="0 0 38 24" width="38" height="24" role="img" aria-labelledby="pi-discover" fill="none" xmlns="http://www.w3.org/2000/svg"><title id="pi-discover">Discover</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32z" fill="#fff"/><path d="M3.57 7.16H2v5.5h1.57c.83 0 1.43-.2 1.96-.63.63-.52 1-1.3 1-2.11-.01-1.63-1.22-2.76-2.96-2.76zm1.26 4.14c-.34.3-.77.44-1.47.44h-.29V8.1h.29c.69 0 1.11.12 1.47.44.37.33.59.84.59 1.37 0 .53-.22 1.06-.59 1.39zm2.19-4.14h1.07v5.5H7.02v-5.5zm3.69 2.11c-.64-.24-.83-.4-.83-.69 0-.35.34-.61.8-.61.32 0 .59.13.86.45l.56-.73c-.46-.4-1.01-.61-1.62-.61-.97 0-1.72.68-1.72 1.58 0 .76.35 1.15 1.35 1.51.42.15.63.25.74.31.21.14.32.34.32.57 0 .45-.35.78-.83.78-.51 0-.92-.26-1.17-.73l-.69.67c.49.73 1.09 1.05 1.9 1.05 1.11 0 1.9-.74 1.9-1.81.02-.89-.35-1.29-1.57-1.74zm1.92.65c0 1.62 1.27 2.87 2.9 2.87.46 0 .86-.09 1.34-.32v-1.26c-.43.43-.81.6-1.29.6-1.08 0-1.85-.78-1.85-1.9 0-1.06.79-1.89 1.8-1.89.51 0 .9.18 1.34.62V7.38c-.47-.24-.86-.34-1.32-.34-1.61 0-2.92 1.28-2.92 2.88zm12.76.94l-1.47-3.7h-1.17l2.33 5.64h.58l2.37-5.64h-1.16l-1.48 3.7zm3.13 1.8h3.04v-.93h-1.97v-1.48h1.9v-.93h-1.9V8.1h1.97v-.94h-3.04v5.5zm7.29-3.87c0-1.03-.71-1.62-1.95-1.62h-1.59v5.5h1.07v-2.21h.14l1.48 2.21h1.32l-1.73-2.32c.81-.17 1.26-.72 1.26-1.56zm-2.16.91h-.31V8.03h.33c.67 0 1.03.28 1.03.82 0 .55-.36.85-1.05.85z" fill="#231F20"/><path d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint0_linear)"/><path opacity=".65" d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint1_linear)"/><path d="M36.57 7.506c0-.1-.07-.15-.18-.15h-.16v.48h.12v-.19l.14.19h.14l-.16-.2c.06-.01.1-.06.1-.13zm-.2.07h-.02v-.13h.02c.06 0 .09.02.09.06 0 .05-.03.07-.09.07z" fill="#231F20"/><path d="M36.41 7.176c-.23 0-.42.19-.42.42 0 .23.19.42.42.42.23 0 .42-.19.42-.42 0-.23-.19-.42-.42-.42zm0 .77c-.18 0-.34-.15-.34-.35 0-.19.15-.35.34-.35.18 0 .33.16.33.35 0 .19-.15.35-.33.35z" fill="#231F20"/><path d="M37 12.984S27.09 19.873 8.976 23h26.023a2 2 0 002-1.984l.024-3.02L37 12.985z" fill="#F48120"/><defs><linearGradient id="pi-paint0_linear" x1="21.657" y1="12.275" x2="19.632" y2="9.104" gradientUnits="userSpaceOnUse"><stop stop-color="#F89F20"/><stop offset=".25" stop-color="#F79A20"/><stop offset=".533" stop-color="#F68D20"/><stop offset=".62" stop-color="#F58720"/><stop offset=".723" stop-color="#F48120"/><stop offset="1" stop-color="#F37521"/></linearGradient><linearGradient id="pi-paint1_linear" x1="21.338" y1="12.232" x2="18.378" y2="6.446" gradientUnits="userSpaceOnUse"><stop stop-color="#F58720"/><stop offset=".359" stop-color="#E16F27"/><stop offset=".703" stop-color="#D4602C"/><stop offset=".982" stop-color="#D05B2E"/></linearGradient></defs></svg></li><li><svg class="payment-icon" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-google_pay"><title id="pi-google_pay">Google Pay</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF"/><path d="M18.093 11.976v3.2h-1.018v-7.9h2.691a2.447 2.447 0 0 1 1.747.692 2.28 2.28 0 0 1 .11 3.224l-.11.116c-.47.447-1.098.69-1.747.674l-1.673-.006zm0-3.732v2.788h1.698c.377.012.741-.135 1.005-.404a1.391 1.391 0 0 0-1.005-2.354l-1.698-.03zm6.484 1.348c.65-.03 1.286.188 1.778.613.445.43.682 1.03.65 1.649v3.334h-.969v-.766h-.049a1.93 1.93 0 0 1-1.673.931 2.17 2.17 0 0 1-1.496-.533 1.667 1.667 0 0 1-.613-1.324 1.606 1.606 0 0 1 .613-1.336 2.746 2.746 0 0 1 1.698-.515c.517-.02 1.03.093 1.49.331v-.208a1.134 1.134 0 0 0-.417-.901 1.416 1.416 0 0 0-.98-.368 1.545 1.545 0 0 0-1.319.717l-.895-.564a2.488 2.488 0 0 1 2.182-1.
219306zM23.29 13.52a.79.79 0 0 0 .337.662c.223.176.5.269.785.263.429-.001.84-.17 1.146-.472.305-.286.478-.685.478-1.103a2.047 2.047 0 0 0-1.324-.374 1.716 1.716 0 0 0-1.03.294.883.883 0 0 0-.392.73zm9.286-3.75l-3.39 7.79h-1.048l1.281-2.728-2.224-5.062h1.103l1.612 3.885 1.569-3.885h1.097z" fill="#5F6368"/><path d="M13.986 11.284c0-.308-.024-.616-.073-.92h-4.29v1.747h2.451a2.096 2.096 0 0 1-.9 1.373v1.134h1.464a4.433 4.433 0 0 0 1.348-3.334z" fill="#4285F4"/><path d="M9.629 15.721a4.352 4.352 0 0 0 3.01-1.097l-1.466-1.14a2.752 2.752 0 0 1-4.094-1.44H5.577v1.17a4.53 4.53 0 0 0 4.052 2.507z" fill="#34A853"/><path d="M7.079 12.05a2.709 2.709 0 0 1 0-1.735v-1.17H5.577a4.505 4.505 0 0 0 0 4.075l1.502-1.17z" fill="#FBBC04"/><path d="M9.629 8.44a2.452 2.452 0 0 1 1.74.68l1.3-1.293a4.37 4.37 0 0 0-3.065-1.183 4.53 4.53 0 0 0-4.027 2.5l1.502 1.171a2.715 2.715 0 0 1 2.55-1.875z" fill="#EA4335"/></svg>
2194</li><li><svg class="payment-icon" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-master"><title id="pi-master">Mastercard</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#1C1C1C" style="fill:#1C1C1C;fill:color(display-p3 0.1098 0.1098 0.1098);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#232323" style="fill:#232323;fill:color(display-p3 0.1373 0.1373 0.1373);fill-opacity:1;"/><path d="M14.6364 19.2727C18.8538 19.2727 22.2727 15.8538 22.2727 11.6364C22.2727 7.41892 18.8538 4 14.6364 4C10.4189 4 7 7.41892 7 11.6364C7 15.8538 10.4189 19.2727 14.6364 19.2727Z" fill="#EB001B" style="fill:#EB001B;fill:color(display-p3 0.9216 0.0000 0.1059);fill-opacity:1;"/><path d="M23.3637 19.2727C27.5811 19.2727 31 15.8538 31 11.6364C31 7.41892 27.5811 4 23.3637 4C19.1462 4 15.7273 7.41892 15.7273 11.6364C15.7273 15.8538 19.1462 19.2727 23.3637 19.2727Z" fill="#F79E1B" style="fill:#F79E1B;fill:color(display-p3 0.9686 0.6196 0.1059);fill-opacity:1;"/><path d="M22.2727 11.6362C22.2727 9.01797 20.9637 6.72706 19 5.41797C17.0364 6.83615 15.7273 9.12706 15.7273 11.6362C15.7273 14.1452 17.0364 16.5452 19 17.8543C20.9637 16.5452 22.2727 14.2543 22.2727 11.6362Z" fill="#FF5F00" style="fill:#FF5F00;fill:color(display-p3 1.0000 0.3725 0.0000);fill-opacity:1;"/></svg>
2195</li><li><svg class="payment-icon" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-paypal"><title id="pi-paypal">PayPal</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path fill="#003087" d="M23.9 8.3c.2-1 0-1.7-.6-2.3-.6-.7-1.7-1-3.1-1h-4.1c-.3 0-.5.2-.6.5L14 15.6c0 .2.1.4.3.4H17l.4-3.4 1.8-2.2 4.7-2.1z"/><path fill="#3086C8" d="M23.9 8.3l-.2.2c-.5 2.8-2.2 3.8-4.6 3.8H18c-.3 0-.5.2-.6.5l-.6 3.9-.2 1c0 .2.1.4.3.4H19c.3 0 .5-.2.5-.4v-.1l.4-2.4v-.1c0-.2.3-.4.5-.4h.3c2.1 0 3.7-.8 4.1-3.2.2-1 .1-1.8-.4-2.4-.1-.5-.3-.7-.5-.8z"/><path fill="#012169" d="M23.3 8.1c-.1-.1-.2-.1-.3-.1-.1 0-.2 0-.3-.1-.3-.1-.7-.1-1.1-.1h-3c-.1 0-.2 
21950-.2.1-.2.1-.3.2-.3.4l-.7 4.4v.1c0-.3.3-.5.6-.5h1.3c2.5 0 4.1-1 4.6-3.8v-.2c-.1-.1-.3-.2-.5-.2h-.1z"/></svg></li><li><svg class="payment-icon" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-shopify_pay"><title id="pi-shopify_pay">Shop Pay</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000"/><path d="M35.889 0C37.05 0 38 .982 38 2.182v19.636c0 1.2-.95 2.182-2.111 2.182H2.11C.95 24 0 23.018 0 21.818V2.182C0 .982.95 0 2.111 0H35.89z" fill="#5A31F4"/><path d="M9.35 11.368c-1.017-.223-1.47-.31-1.47-.705 0-.372.306-.558.92-.558.54 0 .934.238 1.225.704a.079.079 0 00.104.03l1.146-.584a.082.082 0 00.032-.114c-.475-.831-1.353-1.286-2.51-1.286-1.52 0-2.464.755-2.464 1.956 0 1.275 1.15 1.597 2.17 1.82 1.02.222 1.474.31 1.474.705 0 .396-.332.582-.993.582-.612 0-1.065-.282-1.34-.83a.08.08 0 00-.107-.035l-1.143.57a.083.083 0 00-.036.111c.454.92 1.384 1.437 2.627 1.437 1.583 0 2.539-.742 2.539-1.98s-1.155-1.598-2.173-1.82v-.003zM15.49 8.855c-.65 0-1.224.232-1.636.646a.04.04 0 01-.069-.03v-2.64a.08.08 0 00-.08-.081H12.27a.08.08 0 00-.08.082v8.194a.08.08 0 00.08.082h1.433a.08.08 0 00.081-.082v-3.594c0-.695.528-1.227 1.239-1.227.71 0 1.226.521 1.226 1.227v3.594a.08.08 0 00.081.082h1.433a.08.08 0 00.081-.082v-3.594c0-1.51-.981-2.577-2.355-2.577zM20.753 8.62c-.778 0-1.507.24-2.03.588a.082.082 0 00-.027.109l.632 1.088a.08.08 0 00.11.03 2.5 2.5 0 011.318-.366c1.25 0 2.17.891 2.17 2.068 0 1.003-.736 1.745-1.669 1.745-.76 0-1.288-.446-1.288-1.077 0-.361.152-.657.548-.866a.08.08 0 00.032-.113l-.596-1.018a.08.08 0 00-.098-.035c-.799.299-1.359 1.018-1.359 1.984 0 1.46 1.152 2.55 2.76 2.55 1.877 0 3.227-1.313 3.227-3.195 0-2.018-1.57-3.492-3.73-3.492zM28.675 8.843c-.724 0-1.373.27-1.845.746-.026.027-.069.007-.069-.029v-.572a.08.08 0 00-.08-.082h-1.397a.08.08 0 00-.08.082v8.182a.08.08 0 00.08.081h1.433a.08.08 0 00.081-.081v-2.683c0-.036.043-.054.069-.03a2.6 2.6 0 001.808.7c1.682 0 2.993-1.373 2.993-3.157s-1.313-3.157-2.993-3.157zm-.271 4.929c-.956 0-1.681-.768-1.681-1.783s.723-1.783 1.681-1.783c.958 0 1.68.755 1.68 1.783 0 1.027-.713 1.783-1.681 1.783h.001z" fill="#fff"/></svg>
2196</li><li><svg class="payment-icon" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-visa"><title id="pi-visa">Visa</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#142FBD" style="fill:#142FBD;fill:color(display-p3 0.0784 0.1843 0.7412);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#1532CB" style="fill:#1532CB;fill:color(display-p3 0.0824 0.1961 0.7961);fill-opacity:1;"/><path d="M29.5944 10.2167H29.2778C28.8556 11.2722 28.5389 11.8 28.2222 13.3833H30.2278C29.9111 11.8 29.9111 11.0611 29.5944 10.2167V10.2167ZM32.6556 16.4444H30.8611C30.7556 16.4444 30.7556 16.4444 30.65 16.3389L30.4389 15.3889L30.3333 15.1778H27.8C27.6944 15.1778 27.5889 15.1778 27.5889 15.3889L27.2722 16.3389C27.2722 16.4444 27.1667 16.4444 27.1667 16.4444H24.95L25.1611 15.9167L28.2222 8.73889C28.2222 8.21111 28.5389 8 29.0667 8H30.65C30.7556 8 30.8611 8 30.8611 8.21111L32.3389 15.0722C32.4444 15.4944 32.55 15.8111 32.55 16.2333C32.6556 16.3389 32.6556 16.3389 32.6556 16.4444V16.4444ZM18.5111 16.1278L18.9333 14.2278C19.0389 14.2278 19.1444 14.3333 19.1444 14.3333C19.8833 14.65 20.6222 14.8611 21.3611 14.7556C21.5722 14.7556 21.8889 14.65 22.1 14.5444C22.6278 14.3333 22.6278 13.8056 22.2056 13.3833C21.9944 13.1722 21.6778 13.0667 21.3611 12.8556C20.9389 12.6444 20.5167 12.4333 20.2 12.1167C18.9333 11.0611 19.3556 9.58333 20.0944 8.84444C20.7278 8.42222 21.0444 8 21.8889 8C23.1556 8 24.5278 8 25.1611 8.21111H25.2667C25.1611 8.84444 25.0556 9.37222 24.8444 10.0056C24.3167 9.79444 23.7889 9.58333 23.2611 9.58333C22.9444 9.58333 22.6278 9.58333 22.3111 9.68889C22.1 9.68889 21.9944 9.79444 21.8889 9.9C21.6778 10.1111 21.6778 10.4278 21.8889 10.6389L22.4167 11.0611C22.8389 11.2722 23.2611 11.4833 23.5778 11.6944C24.1056 12.0111 24.6333 12.5389 24.7389 13.1722C24.95 14.1222 24.6333 14.9667 23.7889 15.6C23.2611 16.0222 23.05 16.2333 22.3111 16.2333C20.8333 16.2333 19.6722 16.3389 18.7222 16.0222C18.6167 16.2333 18.6167 16.2333 18.5111 16.1278V16.1278ZM14.8167 16.4444C14.9222 15.7056 14.9222 15.7056 15.0278 15.3889C15.5556 13.0667 16.0833 10.6389 16.5056 8.31667C16.6111 8.10556 16.6111 8 16.8222 8H18.7222C18.5111 9.26667 18.3 10.2167 17.9833 11.3778C17.6667 12.9611 17.35 14.5444 16.9278 16.1278C16.9278 16.3389 16.8222 16.3389 16.6111 16.3389L14.8167 16.4444ZM5 8.21111C5 8.10556 5.21111 8 5.31667 8H8.90556C9.43333 8 9.85556 8.31667 9.96111 8.84444L10.9111 13.4889C10.9111 13.5944 10.9111 13.5944 11.0167 13.7C11.0167 13.5944 11.1222 13.5944 11.1222 13.5944L13.3389 8.21111C13.2333 8.10556 13.3389 8 13.4444 8H15.6611C15.6611 8.10556 15.6611 8.10556 15.5556 8.21111L12.2833 15.9167C12.1778 16.1278 12.1778 
219616.2333 12.0722 16.3389C11.9667 16.4444 11.7556 16.3389 11.5444 16.3389H9.96111C9.85556 16.3389 9.75 16.3389 9.75 16.1278L8.06111 9.58333C7.85 9.37222 7.53333 9.05556 7.11111 8.95C6.47778 8.63333 5.31667 8.42222 5.10556 8.42222L5 8.21111Z" fill="white" style="fill:white;fill-opacity:1;"/></svg>
2197</li></ul>
2198          </div><div class="lg:col-start-1 lg:row-start-1 footer__localization">
2199            <form method="post" action="/localization" id="footer-localization" accept-charset="UTF-8" class="form localization no-js-hidden" 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="/pages/our-retail-store" /><div class="localization__grid"><div class="localization__selector">
2200        <input type="hidden" name="country_code" value="US">
2201<country-selector><label class="label visually-hidden no-js-hidden" for="footer-localization-country-button">Country/Region</label><div class="custom-select relative w-full no-js-hidden"><button class="custom-select__btn input items-center" type="button"
2202            aria-expanded="false" aria-haspopup="listbox" id="footer-localization-country-button">
2203      <span class="text-start">United States (USD&nbsp;$)</span>
2204      <svg width="20" height="20" viewBox="0 0 24 24" class="icon" role="presentation" focusable="false" aria-hidden="true">
2205        <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/>
2206      </svg>
2207    </button>
2208    <ul class="custom-select__listbox absolute invisible" role="listbox" tabindex="-1"
2209        aria-hidden="true" hidden aria-activedescendant="footer-localization-country-opt-0"><li class="custom-select__option flex items-center js-option" id="footer-localization-country-opt-0" role="option"
2210            data-value="US"
2211
2212 aria-selected="true">
2213          <span class="pointer-events-none">United States (USD&nbsp;$)</span>
2214        </li></ul>
2215  </div></country-selector></div></div>
2215<script>
2216      customElements.whenDefined('custom-select').then(() => {
2217        if (!customElements.get('country-selector')) {
2218          class CountrySelector extends customElements.get('custom-select') {
2219            constructor() {
2220              super();
2221              this.loaded = false;
2222            }
2223
2224            async showListbox() {
2225              if (this.loaded) {
2226                super.showListbox();
2227                return;
2228              }
2229
2230              this.button.classList.add('is-loading');
2231              this.button.setAttribute('aria-disabled', 'true');
2232
2233              try {
2234                const response = await fetch('?section_id=country-selector');
2235                if (!response.ok) throw new Error(response.status);
2236
2237                const tmpl = document.createElement('template');
2238                tmpl.innerHTML = await response.text();
2239
2240                const el = tmpl.content.querySelector('.custom-select__listbox');
2241                this.listbox.innerHTML = el.innerHTML;
2242
2243                this.options = this.querySelectorAll('.custom-select__option');
2244
2245                this.popular = this.querySelectorAll('[data-popular]');
2246                if (this.popular.length) {
2247                  this.popular[this.popular.length - 1].closest('.custom-select__option')
2248                    .classList.add('custom-select__option--visual-group-end');
2249                }
2250
2251                this.selectedOption = this.querySelector('[aria-selected="true"]');
2252                if (!this.selectedOption) {
2253                  this.selectedOption = this.listbox.firstElementChild;
2254                }
2255
2256                this.loaded = true;
2257              } catch {
2258                this.listbox.innerHTML = '<li>Error fetching countries, please try again.</li>';
2259              } finally {
2260                super.showListbox();
2261                this.button.classList.remove('is-loading');
2262                this.button.setAttribute('aria-disabled', 'false');
2263              }
2264            }
2265
2266            setButtonWidth() {
2267              return;
2268            }
2269          }
2270
2271          customElements.define('country-selector', CountrySelector);
2272        }
2273      });
2274    </script>
2274<script>
2275    document.getElementById('footer-localization').addEventListener('change', (evt) => {
2276      const input = evt.target.previousElementSibling;
2277      if (input && input.tagName === 'INPUT') {
2278        input.value = evt.detail.selectedValue;
2279        evt.currentTarget.submit();
2280      }
2281    });
2282  </script>
2282</form>
2283          </div></div><hr class="footer__hr" data-cc-animate>
2284    
2285
2286    <div class="footer__base grid grid-cols-1 lg:grid-cols-2 gap-x-theme gap-y-6 text-xs" data-cc-animate>
2287      <div><span>&copy; 2026 <a href="/">Frameworth Sports Marketing </a>.</span>
2288        
2289      </div></div>
2290  </div>
2291</footer>
2292
2293
2294
2295
2296</div>
2297<!-- END sections: footer-group --><quick-add-drawer class="drawer quick-add-drawer fixed top-0 right-0 flex flex-col w-full has-motion js-product" data-name="quickbuy" role="dialog" tabindex="-1" aria-labelledby="quick-add-heading" aria-modal="true" aria-hidden="true">
2298  <header class="drawer__header quick-add__header hidden md:flex justify-between items-center relative">
2299    <button type="button" class="drawer__back-btn js-open-cart-drawer has-ltr-icon" hidden>
2300      <span class="visually-hidden">Back</span>
2301      <svg width="24" height="24" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M19.5 12H5m6.9 7.4L4.5 12l7.4-7.4"/></svg>
2302    </button>
2303    <div class="flex-grow">
2304      <h2 class="h5 mb-0" id="quick-add-heading">Choose options</h2>
2305    </div>
2306    <button type="button" class="drawer__close-btn js-close-drawer">
2307      <span class="visually-hidden">Close</span>
2308      <svg width="24" height="24" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" fill="none" fill-rule="evenodd" stroke-linejoin="round" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M5 19 19 5M5 5l14 14"/></svg>
2309    </button>
2310  </header>
2311  <div class="drawer__content quick-add__content flex-auto shrink-0 relative">
2312    <button type="button" class="drawer__close-btn quick-add__close-btn--mob js-close-drawer md:hidden">
2313      <span class="visually-hidden">Close</span>
2314      <svg width="24" height="24" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" fill="none" fill-rule="evenodd" stroke-linejoin="round" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M5 19 19 5M5 5l14 14"/></svg>
2315    </button>
2316    <div class="js-product-details quick-add__product-details"></div>
2317  </div>
2318  <footer class="drawer__footer quick-add__footer">
2319    <div class="alert quick-add__alert absolute left-0 right-0 bg-success-bg text-success-text js-added-to-cart" role="alert" hidden data-visible-for="2000">
2320      <div class="flex">
2321        <div>
2322          <svg class="icon icon--check_mark_in_circle" width="32" height="32" viewBox="0 0 16 16" aria-hidden="true" focusable="false" role="presentation"><circle stroke="currentColor" fill="none" cx="8" cy="8" r="6.6666665"/>
2323        <path stroke="currentColor" fill="none" transform="translate(5.0003335,6.0003335)" d="m 6,0 -4,4 L 0,2.1818182" /></svg>
2324        </div>
2325        <div>
2326          <p class="quick-add__alert-heading text-h5 font-bold mb-1">Item added to your cart.</p>
2327          <a class="link text-current js-open-cart-drawer" href="/cart" data-no-instant>View cart</a>
2328        </div>
2329      </div>
2330    </div>
2331    <product-form></product-form>
2332  </footer>
2333</quick-add-drawer>
2334<div class="overlay fixed top-0 right-0 bottom-0 left-0 js-overlay"></div>
2335    
2335<script>
2336          window.theme = {
2337      info: {
2338        name: 'Enterprise',
2339        version: '1.6.1'
2340      },
2341      mediaQueries: {
2342        sm: '(min-width: 600px)',
2343        md: '(min-width: 769px)',
2344        lg: '(min-width: 1024px)',
2345        xl: '(min-width: 1280px)',
2346        xxl: '(min-width: 1536px)',
2347        portrait: '(orientation: portrait)'
2348      },
2349      device: {
2350        hasTouch: window.matchMedia('(any-pointer: coarse)').matches,
2351        hasHover: window.matchMedia('(hover: hover)').matches
2352      },
2353      routes: {
2354        cart: '/cart',
2355        cartAdd: '/cart/add',
2356        cartChange: '/cart/change',
2357        cartUpdate: '/cart/update',
2358        predictiveSearch: '/search/suggest'
2359      },
2360      settings: {
2361        moneyWithCurrencyFormat: "${{amount}} USD",
2362        pSearchLimit: 10,
2363        pSearchLimitScope: 'each',
2364        pSearchIncludeSkus: true,
2365        pSearchIncludeTags: true,
2366        sliderItemsPerNav: 'page',
2367        
2368        vibrateOnATC: true,
2369        compareToggle: "none",
2370        compareShowEmptyMetafields: false,
2371        blendProductImages: false,
2372        externalLinksNewTab: true,
2373        afterAtc: "drawer",
2374        cartType: "drawer"
2375      },
2376      strings: {
2377        addCartNote: 'Add order note',
2378        editCartNote: 'Edit order note',
2379        cartError: 'There was an error while updating your cart. Please try again.',
2380        cartQtyError: 'You can only add [quantity] of this item to your cart.',
2381        cartTermsConfirmation: 'You must agree to the terms and conditions before continuing.',
2382        imageAvailable: 'Image [index] is now available in gallery view',
2383        veryLowStock: 'Very low stock',
2384        lowStock: 'Low stock',
2385        inStock: 'In stock',
2386        noStock: 'Sold out',
2387        noVariant: 'Unavailable',
2388        noSelectedVariant: 'Make a selection',
2389        onlyXLeft: '[quantity] in stock',
2390        awaitingSale: 'This product is not for sale yet.',
2391        shippingCalculator: {
2392          singleRate: 'There is one shipping rate for this destination:',
2393          multipleRates: 'There are multiple shipping rates for this destination:',
2394          noRates: 'We do not ship to this destination.'
2395        },
2396        viewDetails: 'View details',
2397        compare: {
2398          limit: 'You can only add a maximum of [quantity] products to compare.',
2399          more: 'Select another product to compare.',
2400          empty: 'Select at least two products to compare.',
2401          continue: 'Close to continue.'
2402        },
2403        discountCopyFail: 'Could not copy code to clipboard. Your browser may not support this.',
2404        articleReadTime: '[x] minute read',
2405        quickNav: {
2406          button_standard: 'Search',
2407          show_products_none: 'No products :(',
2408          button_one: 'Show [quantity] product',
2409          button_other: 'Show [quantity] products',
2410        },
2411      },
2412      scripts: {
2413        cartItems: '//frameworth.com/cdn/shop/t/157/assets/cart-items.js?v=31181854099011699301790120897',
2414        countryProvinceSelector: '//frameworth.com/cdn/shop/t/157/assets/country-province-selector.js?v=24158546944577672431760710645',
2415        shippingCalculator: '//frameworth.com/cdn/shop/t/157/assets/shipping-calculator.js?v=31725526838375758301760710645'
2416      }
2417          };
2418
2419          // Save product ID to localStorage, for use in the 'Recently viewed products' section.
2420    </script>
2420<script
2421        src="//frameworth.com/cdn/shop/t/157/assets/instant-page.js?v=473454186210797571760710646"
2422        type="module"
2423        defer="defer"
2424      ></script>
2424<script>
2425(function() {
2426  'use strict';
2427
2428  // ═══════════════════════════════════════════════════════════════════════════
2429  // WEBCRASHER DATA - Generated from Liquid metafields
2430  // Only products with sale.is_doorcrasher = true are affected
2431  // ═══════════════════════════════════════════════════════════════════════════
2432
2433  // Product IDs of active webcrashers (known from current page/collection)
2434  const WEBCRASHER_IDS = new Set([]);
2435
2436  // Map variant IDs to product IDs for webcrasher detection on quick-add
2437  const WEBCRASHER_VARIANTS = {};
2438
2439  const CURRENT_PRODUCT = {id: null, handle: null, title: null, isWebcrasher: false, doorcrasherSold: false};
2440
2441  // Silent in production - no console output
2442  const log = () => {};
2443
2444  // ═══════════════════════════════════════════════════════════════════════════
2445  // CHECK CART FOR WEBCRASHER
2446  // Uses two methods: known IDs (from current page) + _webcrasher property tag
2447  // ═══════════════════════════════════════════════════════════════════════════
2448
2449  async function getCartWebcrasher() {
2450    try {
2451      const cart = await getCartData();
2452
2453      for (const item of cart.items) {
2454        // Method 1: Check known webcrasher IDs (from current page/collection)
2455        if (WEBCRASHER_IDS.has(item.product_id)) {
2456          log('Found webcrasher in cart by ID:', item.product_title);
2457          return { has: true, productId: item.product_id, handle: item.handle, title: item.product_title };
2458        }
2459
2460        // Method 2: Check _webcrasher property (tagged when added from any page)
2461        if (item.properties && item.properties._webcrasher === 'true') {
2462          log('Found webcrasher in cart by property:', item.product_title);
2463          return { has: true, productId: item.product_id, handle: item.handle, title: item.product_title };
2464        }
2465      }
2466
2467      return { has: false };
2468    } catch (e) {
2469      return { has: false };
2470    }
2471  }
2472
2473  // ═══════════════════════════════════════════════════════════════════════════
2474  // INTERCEPT ADD-TO-CART (Only for webcrasher products)
2475  // ═══════════════════════════════════════════════════════════════════════════
2476
2477  const originalFetch = window.fetch;
2478  let cartReadInFlight = null;
2479
2480  function getCartData() {
2481    if (!cartReadInFlight) {
2482      cartReadInFlight = originalFetch('/cart.js', { cache: 'no-store' })
2483        .then((response) => {
2484          if (!response.ok) throw new Error(`Cart read failed: ${response.status}`);
2485          return response.json();
2486        })
2487        .finally(() => {
2488          cartReadInFlight = null;
2489        });
2490    }
2491
2492    return cartReadInFlight;
2493  }
2494
2495  window.fetch = async function(url, options = {}) {
2496    const urlStr = typeof url === 'string' ? url : url.toString();
2497
2498    // Only process cart operations
2499    if (!urlStr.includes('/cart/')) {
2500      return originalFetch.call(this, url, options);
2501    }
2502
2503    // ─────────────────────────────────────────────────────────────────────────
2504    // ADD TO CART - Block if webcrasher limit reached, tag if webcrasher
2505    // Only blocks/tags if the product being added is actually a webcrasher
2506    // ─────────────────────────────────────────────────────────────────────────
2507    if (urlStr.includes('/cart/add')) {
2508      // Determine if the product being added is a webcrasher
2509      let isAddingWebcrasher = false;
2510      let addingProductId = null;
2511
2512      // Extract variant ID from request body
2513      if (options.body) {
2514        try {
2515          let variantId = null;
2516          if (typeof options.body === 'string') {
2517            if (options.body.startsWith('{')) {
2518              const json = JSON.parse(options.body);
2519              variantId = json.id || json.items?.[0]?.id;
2520            } else {
2521              const params = new URLSearchParams(options.body);
2522              variantId = params.get('id');
2523            }
2524          } else if (options.body instanceof FormData) {
2525            variantId = options.body.get('id');
2526          }
2527
2528          if (variantId) {
2529            // Check if this variant belongs to a known webcrasher
2530            const productId = WEBCRASHER_VARIANTS[String(variantId)];
2531            if (productId && WEBCRASHER_IDS.has(productId)) {
2532              isAddingWebcrasher = true;
2533              addingProductId = productId;
2534              log('Variant', variantId, 'belongs to webcrasher product', productId);
2535            }
2536          }
2537        } catch (e) { /* ignore parse errors */ }
2538      }
2539
2540      if (isAddingWebcrasher) {
2541        log('Webcrasher add-to-cart detected, checking cart...');
2542
2543        const cartWebcrasher = await getCartWebcrasher();
2544
2545        if (cartWebcrasher.has) {
2546          // BLOCK: Already has a webcrasher in cart
2547          if (cartWebcrasher.productId !== addingProductId) {
2548            log('BLOCKED - Different webcrasher in cart:', cartWebcrasher.title);
2549            showBlockedNotification(cartWebcrasher.title);
2550          } else {
2551            log('BLOCKED - Same webcrasher already in cart');
2552            showAlreadyInCartNotification();
2553          }
2554          return Promise.resolve(new Response(JSON.stringify({
2555            status: 422, message: 'Webcrasher limit reached'
2556          }), { status: 422, headers: { 'Content-Type': 'application/json' } }));
2557        }
2558
2559        // ALLOW: Tag as webcrasher + force qty to 1
2560        if (options.body) {
2561          try {
2562            if (typeof options.body === 'string') {
2563              if (options.body.startsWith('{')) {
2564                const json = JSON.parse(options.body);
2565                json.quantity = 1;
2566                json.properties = { ...(json.properties || {}), _webcrasher: 'true' };
2567                options.body = JSON.stringify(json);
2568              } else {
2569                const params = new URLSearchParams(options.body);
2570                params.set('quantity', '1');
2571                params.set('properties[_webcrasher]', 'true');
2572                options.body = params.toString();
2573              }
2574            } else if (options.body instanceof FormData) {
2575              options.body.set('quantity', '1');
2576              options.body.set('properties[_webcrasher]', 'true');
2577            }
2578            log('Tagged as webcrasher, qty=1');
2579          } catch (e) { /* ignore */ }
2580        }
2581      }
2582    }
2583
2584    // ─────────────────────────────────────────────────────────────────────────
2585    // CART CHANGE - Prevent increasing webcrasher qty above 1
2586    // ─────────────────────────────────────────────────────────────────────────
2587    if (urlStr.includes('/cart/change') || urlStr.includes('/cart/update')) {
2588      if (options.body && typeof options.body === 'string' && options.body.startsWith('{')) {
2589        try {
2590          const cart = await getCartData();
2591          const changeData = JSON.parse(options.body);
2592          const lineIndex = changeData.line ? changeData.line - 1 : null;
2593          const targetItem = lineIndex !== null ? cart.items[lineIndex] : null;
2594
2595          if (targetItem) {
2596            const isWC = WEBCRASHER_IDS.has(targetItem.product_id) ||
2597                         (targetItem.properties && targetItem.properties._webcrasher === 'true');
2598
2599            if (isWC && changeData.quantity > 1) {
2600              log('BLOCKED qty increase for webcrasher');
2601              changeData.quantity = 1;
2602              options.body = JSON.stringify(changeData);
2603              showQtyLimitNotification();
2604            }
2605          }
2606        } catch (e) { /* ignore parse errors */ }
2607      }
2608    }
2609
2610    // Execute the request with modified options
2611    const result = await originalFetch.call(this, url, options);
2612
2613    // Refresh UI after cart operations (only if on webcrasher page or has webcrasher cards)
2614    setTimeout(() => {
2615      if (CURRENT_PRODUCT.isWebcrasher) refreshWebcrasherUI();
2616      updateWebcrasherCards();
2617    }, 300);
2618
2619    return result;
2620  };
2621
2622  // ═══════════════════════════════════════════════════════════════════════════
2623  // ENFORCE LIMITS - Auto-fix cart if webcrasher qty > 1 (fallback protection)
2624  // ═══════════════════════════════════════════════════════════════════════════
2625  async function enforceWebcrasherLimits() {
2626    try {
2627      const cart = await getCartData();
2628
2629      for (let i = 0; i < cart.items.length; i++) {
2630        const item = cart.items[i];
2631        const isWC = WEBCRASHER_IDS.has(item.product_id) ||
2632                     (item.properties && item.properties._webcrasher === 'true');
2633
2634        if (isWC && item.quantity > 1) {
2635          log('Auto-fixing qty for:', item.product_title);
2636          await originalFetch('/cart/change.js', {
2637            method: 'POST',
2638            headers: { 'Content-Type': 'application/json' },
2639            body: JSON.stringify({ line: i + 1, quantity: 1 })
2640          });
2641          showQtyLimitNotification();
2642        }
2643      }
2644    } catch (e) { /* ignore */ }
2645  }
2646
2647  // ═══════════════════════════════════════════════════════════════════════════
2648  // NOTIFICATIONS (Modern UI)
2649  // ═══════════════════════════════════════════════════════════════════════════
2650
2651  function showToast(title, message, detail) {
2652    document.querySelectorAll('.webcrasher-toast').forEach(el => el.remove());
2653
2654    const toast = document.createElement('div');
2655    toast.className = 'webcrasher-toast';
2656    toast.innerHTML = `
2657      <div class="webcrasher-toast__inner">
2658        <div class="webcrasher-toast__icon">
2659          <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
2660            <circle cx="12" cy="12" r="10"/>
2661            <line x1="15" y1="9" x2="9" y2="15"/>
2662            <line x1="9" y1="9" x2="15" y2="15"/>
2663          </svg>
2664        </div>
2665        <div class="webcrasher-toast__content">
2666          <strong class="webcrasher-toast__title">${title}</strong>
2667          <p class="webcrasher-toast__message">${message}</p>
2668          ${detail ? `<p class="webcrasher-toast__detail">${detail}</p>` : ''}
2669        </div>
2670        <button class="webcrasher-toast__close" onclick="this.closest('.webcrasher-toast').remove()">
2671          <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
2672            <line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/>
2673          </svg>
2674        </button>
2675      </div>
2676    `;
2677    document.body.appendChild(toast);
2678    requestAnimationFrame(() => toast.classList.add('webcrasher-toast--visible'));
2679    setTimeout(() => {
2680      toast.classList.remove('webcrasher-toast--visible');
2681      setTimeout(() => toast.remove(), 300);
2682    }, 5000);
2683  }
2684
2685  // Different webcrasher in cart
2686  function showBlockedNotification(productTitle) {
2687    showToast(
2688      'Webcrasher Limit',
2689      'Only 1 webcrasher per order allowed.',
2690      `Remove <em>"${productTitle}"</em> from your cart to add this item.`
2691    );
2692  }
2693
2694  // Same webcrasher already in cart
2695  function showAlreadyInCartNotification() {
2696    showToast(
2697      'Already In Cart',
2698      'This webcrasher is already in your cart.',
2699      'Limit 1 per customer.'
2700    );
2701  }
2702
2703  // Trying to increase qty
2704  function showQtyLimitNotification() {
2705    showToast(
2706      'Quantity Limit',
2707      'Webcrashers are limited to 1 per order.',
2708      null
2709    );
2710  }
2711
2712  // ═══════════════════════════════════════════════════════════════════════════
2713  // REFRESH UI - Update button state when cart changes (only for webcrasher pages)
2714  // ═══════════════════════════════════════════════════════════════════════════
2715
2716  async function refreshWebcrasherUI() {
2717    // Skip if not on a webcrasher product page
2718    if (!CURRENT_PRODUCT.isWebcrasher || CURRENT_PRODUCT.doorcrasherSold) {
2719      return;
2720    }
2721
2722    const cartWebcrasher = await getCartWebcrasher();
2723    const addBtn = document.querySelector('product-form button[name="add"], .product-form button[name="add"]');
2724
2725    // Remove any existing inline notices
2726    document.querySelectorAll('.webcrasher-inline-notice').forEach(el => el.remove());
2727
2728    if (cartWebcrasher.has && cartWebcrasher.productId !== CURRENT_PRODUCT.id) {
2729      // Different webcrasher in cart - BLOCK this product
2730      if (addBtn && !addBtn.dataset.webcrasherDisabled) {
2731        disableButton(addBtn);
2732      }
2733      showInlineNotice(cartWebcrasher.title);
2734    } else {
2735      // No webcrasher or same product in cart - ALLOW
2736      if (addBtn && addBtn.dataset.webcrasherDisabled) {
2737        restoreButton(addBtn);
2738      }
2739    }
2740  }
2741
2742  function disableButton(btn) {
2743    btn.dataset.webcrasherDisabled = 'true';
2744    btn.dataset.originalText = btn.textContent;
2745    btn.disabled = true;
2746    btn.innerHTML = `<span class="webcrasher-btn-blocked">1 Webcrasher Per Order</span>`;
2747  }
2748
2749  function restoreButton(btn) {
2750    btn.removeAttribute('data-webcrasher-disabled');
2751    btn.disabled = false;
2752    if (btn.dataset.originalText) {
2753      btn.textContent = btn.dataset.originalText;
2754    }
2755  }
2756
2757  function showInlineNotice(existingTitle) {
2758    const target = document.querySelector('.product-form__buttons, product-form, .product__info-wrapper');
2759    if (!target || target.querySelector('.webcrasher-inline-notice')) return;
2760
2761    const notice = document.createElement('div');
2762    notice.className = 'webcrasher-inline-notice';
2763    notice.innerHTML = `
2764      <div class="webcrasher-inline-notice__inner">
2765        <svg class="webcrasher-inline-notice__icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
2766          <path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/>
2767          <line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/>
2768        </svg>
2769        <div class="webcrasher-inline-notice__text">
2770          <strong>Webcrasher Limit</strong>
2771          <span>Remove "${existingTitle}" from cart to add this item</span>
2772        </div>
2773      </div>
2774    `;
2775    target.insertBefore(notice, target.firstChild);
2776  }
2777
2778  // ═══════════════════════════════════════════════════════════════════════════
2779  // DISABLE WEBCRASHER CARDS - Block quick-add on all webcrasher product cards
2780  // when cart already has a webcrasher (handles "You May Also Like" etc.)
2781  // ═══════════════════════════════════════════════════════════════════════════
2782
2783  async function updateWebcrasherCards() {
2784    const cartWebcrasher = await getCartWebcrasher();
2785    const webcrasherCards = document.querySelectorAll('product-card[data-is-webcrasher="true"]');
2786
2787    log('Updating', webcrasherCards.length, 'webcrasher cards, cart has webcrasher:', cartWebcrasher.has);
2788
2789    webcrasherCards.forEach(card => {
2790      const cardProductId = parseInt(card.dataset.productId);
2791      const quickAddBtn = card.querySelector('.card__quick-add button, .card__quick-add .js-quick-add');
2792      const existingOverlay = card.querySelector('.webcrasher-card-overlay');
2793
2794      if (cartWebcrasher.has && cartWebcrasher.productId !== cardProductId) {
2795        // Cart has a DIFFERENT webcrasher - disable this card
2796        if (quickAddBtn && !quickAddBtn.dataset.webcrasherBlocked) {
2797          quickAddBtn.dataset.webcrasherBlocked = 'true';
2798          quickAddBtn.dataset.originalDisabled = quickAddBtn.disabled;
2799          quickAddBtn.disabled = true;
2800        }
2801        // Add badge if not exists
2802        if (!existingOverlay) {
2803          const badge = document.createElement('div');
2804          badge.className = 'webcrasher-card-overlay';
2805          badge.innerHTML = '<span>Limit 1</span>';
2806          card.querySelector('.card__media')?.appendChild(badge);
2807        }
2808      } else {
2809        // No webcrasher in cart OR this is the same product - enable
2810        if (quickAddBtn && quickAddBtn.dataset.webcrasherBlocked) {
2811          quickAddBtn.removeAttribute('data-webcrasher-blocked');
2812          quickAddBtn.disabled = quickAddBtn.dataset.originalDisabled === 'true';
2813        }
2814        existingOverlay?.remove();
2815      }
2816    });
2817  }
2818
2819  // ═══════════════════════════════════════════════════════════════════════════
2820  // CART EVENT LISTENERS - Auto-refresh UI on cart changes
2821  // ═══════════════════════════════════════════════════════════════════════════
2822
2823  function refreshAll() {
2824    refreshWebcrasherUI();
2825    updateWebcrasherCards();
2826  }
2827
2828  document.addEventListener('dispatch:cart-drawer:refresh', refreshAll);
2829  document.addEventListener('cart:updated', refreshAll);
2830  document.addEventListener('cart:change', refreshAll);
2831
2832  // ═══════════════════════════════════════════════════════════════════════════
2833  // NOTE: Multiple webcrasher validation removed from frontend.
2834  // Checkout validation (Gadget) is the real blocker - can't be bypassed.
2835  // Frontend just provides helpful UX hints, not enforcement.
2836  // ═══════════════════════════════════════════════════════════════════════════
2837
2838  // ═══════════════════════════════════════════════════════════════════════════
2839  // BLOCK QTY INCREASE - Only for webcrasher products on PRODUCT PAGE form
2840  // Does NOT affect cart drawer or other qty inputs
2841  // ═══════════════════════════════════════════════════════════════════════════
2842  function blockQtyIncrease() {
2843    // Only apply to webcrasher product pages
2844    if (!CURRENT_PRODUCT.isWebcrasher || CURRENT_PRODUCT.doorcrasherSold) return;
2845
2846    // Find the main product form qty controls (NOT cart drawer)
2847    const productForm = document.querySelector('product-form, .product-form, .product__info-container');
2848    if (!productForm) return;
2849
2850    // Block qty increase button clicks ONLY within product form
2851    productForm.addEventListener('click', function(e) {
2852      const btn = e.target.closest('button, [role="button"]');
2853      if (!btn) return;
2854
2855      const isIncrease = btn.textContent.includes('+') ||
2856                         btn.getAttribute('aria-label')?.toLowerCase().includes('increase') ||
2857                         btn.getAttribute('data-action') === 'increase' ||
2858                         btn.classList.contains('plus') ||
2859                         btn.name === 'plus';
2860
2861      if (isIncrease) {
2862        e.preventDefault();
2863        e.stopPropagation();
2864        log('Blocked product page qty increase');
2865      }
2866    }, true);
2867
2868    // Reset qty input if changed to > 1 ONLY within product form
2869    productForm.addEventListener('change', function(e) {
2870      if (e.target.name === 'quantity' && parseInt(e.target.value) > 1) {
2871        e.target.value = 1;
2872        log('Reset product page qty to 1');
2873      }
2874    }, true);
2875  }
2876
2877  // ═══════════════════════════════════════════════════════════════════════════
2878  // INIT - Only webcrasher-specific actions run on webcrasher pages
2879  // Regular products are completely unaffected
2880  // ═══════════════════════════════════════════════════════════════════════════
2881
2882  function init() {
2883    // These only run on webcrasher product pages
2884    if (CURRENT_PRODUCT.isWebcrasher && !CURRENT_PRODUCT.doorcrasherSold) {
2885      blockQtyIncrease();
2886      refreshWebcrasherUI();
2887    }
2888    // Update all webcrasher cards on the page (collections, recommendations, etc.)
2889    updateWebcrasherCards();
2890    // Auto-fix any webcrasher qty > 1 in cart
2891    enforceWebcrasherLimits();
2892  }
2893
2894  if (document.readyState === 'loading') {
2895    document.addEventListener('DOMContentLoaded', init);
2896  } else {
2897    init();
2898  }
2899
2900})();
2901</script>
2901
2902
2903<style>
2904/* ═══════════════════════════════════════════════════════════════════════════
2905   WEBCRASHER LIMIT - BOXING WEEK THEME
2906   Modern, professional UI matching your theme
2907   ═══════════════════════════════════════════════════════════════════════════ */
2908
2909/* Toast Notification */
2910.webcrasher-toast {
2911  position: fixed;
2912  top: 20px;
2913  left: 50%;
2914  transform: translateX(-50%) translateY(-120%);
2915  z-index: 999999;
2916  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
2917  pointer-events: none;
2918}
2919
2920.webcrasher-toast--visible {
2921  transform: translateX(-50%) translateY(0);
2922  pointer-events: auto;
2923}
2924
2925.webcrasher-toast__inner {
2926  display: flex;
2927  align-items: flex-start;
2928  gap: 16px;
2929  background: linear-gradient(135deg, #1a1a1a 0%, #0d0d0d 100%);
2930  border: 1px solid rgba(255, 107, 53, 0.3);
2931  border-radius: 12px;
2932  padding: 20px 24px;
2933  box-shadow:
2934    0 20px 60px rgba(0, 0, 0, 0.5),
2935    0 0 40px rgba(255, 107, 53, 0.15),
2936    inset 0 1px 0 rgba(255, 255, 255, 0.05);
2937  max-width: 420px;
2938  backdrop-filter: blur(10px);
2939}
2940
2941.webcrasher-toast__icon {
2942  flex-shrink: 0;
2943  width: 44px;
2944  height: 44px;
2945  background: linear-gradient(135deg, #ff6b35 0%, #ff4500 100%);
2946  border-radius: 10px;
2947  display: flex;
2948  align-items: center;
2949  justify-content: center;
2950  color: white;
2951  box-shadow: 0 4px 15px rgba(255, 107, 53, 0.4);
2952}
2953
2954.webcrasher-toast__content {
2955  flex: 1;
2956  min-width: 0;
2957}
2958
2959.webcrasher-toast__title {
2960  display: block;
2961  font-size: 16px;
2962  font-weight: 700;
2963  color: #ff6b35;
2964  margin-bottom: 4px;
2965  letter-spacing: -0.02em;
2966}
2967
2968.webcrasher-toast__message {
2969  font-size: 14px;
2970  color: rgba(255, 255, 255, 0.9);
2971  margin: 0 0 6px;
2972  line-height: 1.4;
2973}
2974
2975.webcrasher-toast__detail {
2976  font-size: 13px;
2977  color: rgba(255, 255, 255, 0.6);
2978  margin: 0;
2979}
2980
2981.webcrasher-toast__detail em {
2982  color: rgba(255, 255, 255, 0.8);
2983  font-style: normal;
2984  font-weight: 500;
2985}
2986
2987.webcrasher-toast__close {
2988  flex-shrink: 0;
2989  background: none;
2990  border: none;
2991  color: rgba(255, 255, 255, 0.4);
2992  cursor: pointer;
2993  padding: 4px;
2994  margin: -4px -4px 0 0;
2995  transition: color 0.2s;
2996}
2997
2998.webcrasher-toast__close:hover {
2999  color: rgba(255, 255, 255, 0.8);
3000}
3001
3002/* Inline Notice (on product page) */
3003.webcrasher-inline-notice {
3004  margin-bottom: 16px;
3005  animation: webcrasherFadeIn 0.3s ease;
3006}
3007
3008.webcrasher-inline-notice__inner {
3009  display: flex;
3010  align-items: center;
3011  gap: 12px;
3012  background: linear-gradient(135deg, #1a1a1a 0%, #141414 100%);
3013  border: 1px solid rgba(255, 107, 53, 0.25);
3014  border-left: 3px solid #ff6b35;
3015  border-radius: 8px;
3016  padding: 14px 16px;
3017}
3018
3019.webcrasher-inline-notice__icon {
3020  flex-shrink: 0;
3021  color: #ff6b35;
3022}
3023
3024.webcrasher-inline-notice__text {
3025  display: flex;
3026  flex-direction: column;
3027  gap: 2px;
3028}
3029
3030.webcrasher-inline-notice__text strong {
3031  font-size: 14px;
3032  font-weight: 600;
3033  color: #ff6b35;
3034}
3035
3036.webcrasher-inline-notice__text span {
3037  font-size: 13px;
3038  color: rgba(255, 255, 255, 0.7);
3039}
3040
3041/* Disabled Button State */
3042.webcrasher-btn-blocked {
3043  display: inline-flex;
3044  align-items: center;
3045  gap: 6px;
3046  font-size: 13px;
3047  font-weight: 600;
3048  letter-spacing: 0.02em;
3049}
3050
3051button[data-webcrasher-disabled] {
3052  background: linear-gradient(135deg, #2d2d2d 0%, #1a1a1a 100%) !important;
3053  border-color: rgba(255, 107, 53, 0.3) !important;
3054  color: rgba(255, 255, 255, 0.5) !important;
3055  cursor: not-allowed !important;
3056  opacity: 1 !important;
3057}
3058
3059button[data-webcrasher-disabled]:hover {
3060  background: linear-gradient(135deg, #2d2d2d 0%, #1a1a1a 100%) !important;
3061}
3062
3063/* Animation */
3064@keyframes webcrasherFadeIn {
3065  from {
3066    opacity: 0;
3067    transform: translateY(-8px);
3068  }
3069  to {
3070    opacity: 1;
3071    transform: translateY(0);
3072  }
3073}
3074
3075/* Webcrasher Card Badge (for product cards in recommendations/collections) */
3076.webcrasher-card-overlay {
3077  position: absolute;
3078  top: 8px;
3079  right: 8px;
3080  z-index: 10;
3081  animation: webcrasherFadeIn 0.3s ease;
3082}
3083
3084.webcrasher-card-overlay span {
3085  display: block;
3086  background: linear-gradient(135deg, rgba(0,0,0,0.85) 0%, rgba(20,20,20,0.9) 100%);
3087  color: #ff6b35;
3088  padding: 6px 10px;
3089  border-radius: 4px;
3090  font-size: 10px;
3091  font-weight: 700;
3092  text-transform: uppercase;
3093  letter-spacing: 0.03em;
3094  border: 1px solid rgba(255, 107, 53, 0.5);
3095  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
3096  white-space: nowrap;
3097}
3098
3099/* Webcrasher card styling - subtle indication */
3100product-card.card--webcrasher {
3101  position: relative;
3102}
3103
3104/* When blocked, add subtle visual cue */
3105product-card.card--webcrasher:has(.webcrasher-card-overlay) .card__media::after {
3106  content: '';
3107  position: absolute;
3108  inset: 0;
3109  background: rgba(0, 0, 0, 0.15);
3110  pointer-events: none;
3111  z-index: 5;
3112}
3113
3114product-card.card--webcrasher .card__quick-add button[data-webcrasher-blocked],
3115product-card.card--webcrasher .card__quick-add .js-quick-add[data-webcrasher-blocked] {
3116  opacity: 0.5;
3117  cursor: not-allowed;
3118  background: #333 !important;
3119  color: #999 !important;
3120}
3121
3122/* Mobile Responsive */
3123@media (max-width: 480px) {
3124  .webcrasher-toast {
3125    left: 10px;
3126    right: 10px;
3127    transform: translateX(0) translateY(-120%);
3128  }
3129
3130  .webcrasher-toast--visible {
3131    transform: translateX(0) translateY(0);
3132  }
3133
3134  .webcrasher-toast__inner {
3135    padding: 16px;
3136    gap: 12px;
3137  }
3138
3139  .webcrasher-toast__icon {
3140    width: 36px;
3141    height: 36px;
3142  }
3143
3144  .webcrasher-toast__title {
3145    font-size: 14px;
3146  }
3147
3148  .webcrasher-toast__message,
3149  .webcrasher-toast__detail {
3150    font-size: 12px;
3151  }
3152}
3153</style>
3154<link href="//frameworth.com/cdn/shop/t/157/assets/cart-framing-dropdown.css?v=57203454025037908121775850365" rel="stylesheet" type="text/css" media="all" />
3155      
3155<script src="//frameworth.com/cdn/shop/t/157/assets/cart-framing-dropdown.js?v=96076591880152112141785437678" defer="defer"></script>
3155<div class="us-tariff-popup" id="us-tariff-popup" role="dialog" aria-modal="true" aria-labelledby="us-tariff-popup-title" hidden>
3156  <div class="us-tariff-popup__overlay" data-us-tariff-dismiss></div>
3157  <div class="us-tariff-popup__panel">
3158    <button type="button" class="us-tariff-popup__close" data-us-tariff-dismiss aria-label="Close">
3159      <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 6L6 18M6 6l12 12"/></svg>
3160    </button>
3161    <p class="us-tariff-popup__eyebrow">Important notice</p>
3162    <h2 class="us-tariff-popup__title" id="us-tariff-popup-title">To our US customers</h2>
3163    <div class="us-tariff-popup__body">
3164      <p>Frameworth greatly values our relationship with collectors in the United States. With the ongoing questions surrounding the implementation of additional tariffs and duties on cross-border shipments, the current situation remains unclear as to whether or not orders placed over the coming days will incur additional fees upon delivery.</p>
3165      <p>Regrettably, if these additional measures are taken, the responsibility of these tariffs falls on the importer, which, in this case, is the purchaser. Frameworth cannot be held responsible for additional tariffs and duties owed upon receipt of goods.</p>
3166      <p>Customers who do not remit any requested payment to the US Customs and Border Protection (CBP) may have their order declined entry into the United States and returned to Frameworth. In this event, we will be unable to refund any shipping costs associated with your order.</p>
3167    </div>
3168    <button type="button" class="btn btn--primary us-tariff-popup__ack" data-us-tariff-dismiss>I understand</button>
3169  </div>
3170</div>
3171
3172<style>
3173  .us-tariff-popup {
3174    position: fixed;
3175    inset: 0;
3176    z-index: 200;
3177    display: flex;
3178    align-items: center;
3179    justify-content: center;
3180    padding: 20px;
3181  }
3182
3183  .us-tariff-popup__overlay {
3184    position: absolute;
3185    inset: 0;
3186    background: rgba(0, 10, 25, 0.6);
3187  }
3188
3189  .us-tariff-popup__panel {
3190    position: relative;
3191    max-width: 560px;
3192    max-height: 86vh;
3193    overflow-y: auto;
3194    background: #ffffff;
3195    border-radius: 12px;
3196    border-top: 4px solid #003876;
3197    padding: 28px 28px 24px;
3198    box-shadow: 0 18px 50px rgba(0, 10, 25, 0.35);
3199  }
3200
3201  .us-tariff-popup__close {
3202    position: absolute;
3203    top: 12px;
3204    right: 12px;
3205    background: none;
3206    border: 0;
3207    padding: 6px;
3208    cursor: pointer;
3209    color: #6b7280;
3210  }
3211
3212  .us-tariff-popup__close:hover { color: #111827; }
3213
3214  .us-tariff-popup__eyebrow {
3215    margin: 0 0 4px;
3216    font-size: 12px;
3217    font-weight: 700;
3218    letter-spacing: 0.12em;
3219    text-transform: uppercase;
3220    color: #b91c1c;
3221  }
3222
3223  .us-tariff-popup__title {
3224    margin: 0 0 12px;
3225    font-size: 24px;
3226    line-height: 1.2;
3227  }
3228
3229  .us-tariff-popup__body p {
3230    margin: 0 0 12px;
3231    font-size: 14px;
3232    line-height: 1.55;
3233    color: #374151;
3234  }
3235
3236  .us-tariff-popup__ack { width: 100%; margin-top: 4px; }
3237
3238  .us-tariff-note { display: none; }
3239
3240  html.fw-us-visitor .us-tariff-note {
3241    display: block;
3242    margin: 0 0 12px;
3243    padding: 10px 12px;
3244    border-left: 3px solid #b45309;
3245    border-radius: 6px;
3246    background: #fef8ec;
3247    font-size: 12.5px;
3248    line-height: 1.5;
3249    color: #57431a;
3250    text-align: left;
3251  }
3252
3253  @media (max-width: 500px) {
3254    .us-tariff-popup__panel { padding: 22px 18px 18px; }
3255    .us-tariff-popup__title { font-size: 20px; }
3256  }
3257</style>
3258
3259<script>
3260  (function () {
3261    var SEEN_KEY = 'fw-us-tariff-popup-seen';
3262    var GEO_KEY = 'fw-us-tariff-geo';
3263    var SEEN_TTL = 7 * 24 * 60 * 60 * 1000;
3264    var GEO_TTL = 24 * 60 * 60 * 1000;
3265
3266    function read(key) {
3267      try {
3268        var raw = localStorage.getItem(key);
3269        if (!raw) return null;
3270        var val = JSON.parse(raw);
3271        if (!val || Date.now() - val.at > (key === SEEN_KEY ? SEEN_TTL : GEO_TTL)) return null;
3272        return val.v;
3273      } catch (e) { return null; }
3274    }
3275
3276    function write(key, v) {
3277      try { localStorage.setItem(key, JSON.stringify({ v: v, at: Date.now() })); } catch (e) {}
3278    }
3279
3280    function apply(isUS) {
3281      if (!isUS) return;
3282      // Class on <html> so notes inside AJAX-re-rendered cart markup stay visible.
3283      document.documentElement.classList.add('fw-us-visitor');
3284      if (read(SEEN_KEY)) return;
3285      var popup = document.getElementById('us-tariff-popup');
3286      if (!popup) return;
3287      popup.hidden = false;
3288      popup.querySelectorAll('[data-us-tariff-dismiss]').forEach(function (el) {
3289        el.addEventListener('click', function () {
3290          popup.hidden = true;
3291          write(SEEN_KEY, true);
3292        });
3293      });
3294    }
3295
3296    var marketCountry = "US";
3297    if (marketCountry === 'US') { apply(true); write(GEO_KEY, 'US'); return; }
3298
3299    var cached = read(GEO_KEY);
3300    if (cached) { apply(cached === 'US'); return; }
3301
3302    fetch(window.Shopify && Shopify.routes && Shopify.routes.root
3303      ? Shopify.routes.root + 'browsing_context_suggestions.json'
3304      : '/browsing_context_suggestions.json')
3305      .then(function (r) { return r.json(); })
3306      .then(function (d) {
3307        var code = d && d.detected_values && d.detected_values.country && d.detected_values.country.handle;
3308        write(GEO_KEY, code || 'unknown');
3309        apply(code === 'US');
3310      })
3311      .catch(function () {});
3312  })();
3313</script>
3313
3314<style> .card__title {display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis;} .cart-item__total.price {display: none;} .card__subtitle {background-color: #ffebee; color: #c62828; padding: 4px 2px; font-size: 1rem; /* 14px */ font-weight: 600; display: block; text-align: center; border-top: 1px solid #ffcdd2; border-bottom: 1px solid #ffcdd2; margin: 8px 0; line-height: 1.4; word-wrap: break-word; overflow-wrap: break-word;} </style>
3315<div id="shopify-block-AUzlVZHZ4aWhmd004Z__9001612681079318840" class="shopify-block shopify-app-block">
3316
3317
3318</div><div id="shopify-block-AZFd6aGFnS21FS1hVa__13768625480086291342" class="shopify-block shopify-app-block">
3318<script>
3319  window['ShopifyForms'] = {
3320    ...window['ShopifyForms'],
3321    currentPageType: "page"
3322  };
3323</script>
3323
3324
3325
3326</div><div id="shopify-block-AcmpSTWRSSUFmcWJKb__14179548843059481025" class="shopify-block shopify-app-block">
3327<style>
3328
3329
3330</style>
3331
3332<!-- BEGIN app snippet: theme-color-vars --><!-- END app snippet --><style>
3333.auction-container {
3334  --tr-chat-bubble-color-text:#FFFFFF;
3335  --tr-chat-bubble-color-background:#3b82f6;
3336}
3337</style><!-- BEGIN app snippet: theme-button-styles --><!-- END app snippet --><!-- BEGIN app snippet: theme-styles --><!-- END app snippet -->
3338<script type="text/javascript">
3339
3340
3341</script>
3341
3342
3343
3344
3345<!-- BEGIN app snippet: vite-tag -->
3345<script src="https://cdn.shopify.com/extensions/019f8655-eaf7-7d14-ae81-c44be7221cf5/auction-plus-99/assets/bundle.js" type="module"></script>
3345
3346<!-- END app snippet --><!-- BEGIN app snippet: init -->
3347
3348<script type="text/javascript">
3349(function () {
3350      if (!window.auctionPlusSetup) {
3351        var q=Object.defineProperty;var C=(u,l,p)=>l in u?q(u,l,{enumerable:!0,configurable:!0,writable:!0,value:p}):u[l]=p;var n=(u,l,p)=>C(u,typeof l!="symbol"?l+"":l,p);(function(){"use strict";class u{constructor({theme:e,overrides:t}){n(this,"defaultSelectors",{accountWrapper:".account",accountPlacement:{target:'a[href*="account/addresses" i]',position:"afterend"},accountClasses:""});n(this,"selectors",null);n(this,"theme",null);this.theme=e,this.initSelectors(),t&&Object.assign(this.selectors,t)}initSelectors(){let e={};switch(this.theme.store_id){case 796:e={accountWrapper:".myaccount",accountPlacement:{target:".myaccount",position:"beforeend"}};break;case 887:e={accountWrapper:".account",accountPlacement:{target:'a[href*="account/addresses" i]',position:"afterend"}};break}this.setSelectors(e)}setSelectors(e){this.selectors||(this.selectors={}),Object.assign(this.selectors,this.defaultSelectors,e)}get(e){return this.selectors[e]}getSelectors(){return this.selectors}}class l{constructor({shop:e,embed:t,extension:c}){n(this,"shop",null);n(this,"embed",null);n(this,"extension",null);Object.assign(this,{shop:e,embed:t,extension:c})}}class p{constructor({theme:e,overrides:t}){n(this,"defaultSelectors",{container:null,product:null,productPlacement:null,quickAdd:null,price:null,link:null,getHandle:e=>`:is([href$='/products/${e}'],[href*='/products/${e}?'])`});n(this,"selectors",null);n(this,"theme",null);this.theme=e,this.initSelectors(),t&&Object.assign(this.selectors,t)}initSelectors(){let e={};switch(this.theme.store_id){case 380:e={product:".grid__item",price:".grid-link__meta"};break;case 578:e={product:".product",price:".product__price"};break;case 687:e={product:".\\#product-card",price:".\\#product-card-price",quickAdd:".\\#product-card-quick-view",productPlacement:{target:".\\#product-card-caption ",position:"beforeend"}};break;case 732:e={product:".product-block",price:".price",quickAdd:".product-form"};break;case 777:e={product:".product-grid-item",price:".price",quickAdd:".quick__form"};break;case 796:e={product:".product-card",price:".price"};break;case 812:e={product:"product-card",price:".product-grid--price",quickAdd:".quick-add-wrapper"};break;case 838:e={product:".productitem",quickAdd:".productitem--actions"};break;case 871:e={product:".product-item",quickAdd:".product-item__action-list"};break;case 887:e={product:".card-wrapper",productPlacement:{target:".price",position:"afterend"},price:".price",quickAdd:".quick-add"};break;case 908:e={product:".indiv-product",productPlacement:{target:".hp-title",position:"beforeend"},price:".money-styling",quickAdd:".quick-add-wrapper"};break;case 1368:e={product:".card__content",productPlacement:{target:".price",position:"afterend"},price:".price",quickAdd:".quick-add,quick-add-bulk"};break;case 1431:e={product:".card-wrapper",productPlacement:{target:".price",position:"afterend"},price:".price",quickAdd:".quick-add"};break;case 1500:e={product:".card__content",productPlacement:{target:".price",position:"afterend"},price:".price",quickAdd:".quick-add"};break;case 1567:e={product:".card__content",productPlacement:{target:".price",position:"afterend"},price:".price",quickAdd:".quick-add,quick-add-bulk"};break;case 1608:e={product:".card-product",price:".price",quickAdd:".card-product-actions"};break;case 1609:e={quickAdd:".form-card"};break;case 1621:e={product:".product-item__inner",quickAdd:":is(.product-item__hoverless-quick-view-button , .product-item__hover-action-wrap)"};break;case 1829:e={product:".product-card",price:".price .money",quickAdd:".quick-shop__trigger"};break;case 1841:e={product:".product-card-wrapper",productPlacement:{target:".card-information",position:"afterend"},price:".price",quickAdd:".quick-add"};break;case 1891:e={product:".card-wrapper",productPlacement:{target:".price",position:"afterend"},price:".price",quickAdd:".quick-add"};break;case 2348:e={product:".product-item__inner",productPlacement:{target:".product-item__product-title",position:"afterend"},quickAdd:".quick-add"};break;case 2699:e={product:".card__content",productPlacement:{target:".price",position:"afterend"}
3351,price:".price",quickAdd:".quick-add,quick-add-bulk"};break;case 2481:case 3620:case 3621:case 3622:case 3623:case 3624:case 3625:case 3626:case 3627:case 3628:e={product:".product-card",productPlacement:{target:"product-price",position:"afterend"},price:"product-price",quickAdd:"quick-add-component"};break}this.setSelectors(e)}setSelectors(e){this.selectors||(this.selectors={}),Object.assign(this.selectors,this.defaultSelectors,e)}getSelectors(){return this.selectors||this.initSelectors(),this.selectors}get(e){return this.selectors[e]}getSelectorsWithHandle(e){this.selectors||this.initSelectors();const t=this.selectors;return{...t,handle:t.getHandle(e)}}}class d{constructor(e){n(this,"observer",null);n(this,"auctionElement",null);n(this,"selectors",null);n(this,"auction",null);n(this,"productElement",null);n(this,"resolvedProductElement",null);n(this,"linkElement",null);n(this,"priceElement",null);Object.assign(this,e)}static fromLink({auction:e,selectors:t,linkElement:c}){if(!e)return null;const s=t.getSelectorsWithHandle(e.partner_product_handle);if(!s.product){const o=new d({auction:e,selectors:t,linkElement:c});return o.initWidget(),o}const a=c.closest(s.product);if(!a||a.hasAttribute("data-has-auction"))return null;const i=new d({auction:e,selectors:t,linkElement:c});return i.initWidget(),i}static get skeleton(){return`
3352          <div class="auction auction-container skeleton">
3353            <div class="mx-auto w-full max-w-sm rounded-md my-2 ">
3354              <div class="flex animate-pulse space-x-4">
3355                <div class="space-y-2 py-1">
3356                  <div class="h-2 rounded bg-slate-200"></div>
3357                  <div class="space-y-2">
3358                    <div class="flex items-center w-full gap-2">
3359                      <div class="h-2 w-10 rounded bg-slate-200"></div>
3360                      <div class="h-2 w-10 rounded bg-slate-200"></div>
3361                    </div>
3362                    <div class="flex items-center w-full gap-2">
3363                      <div class="h-2 w-2 rounded-full bg-slate-200"></div>
3364                      <div class="h-2 w-10 rounded bg-slate-200"></div>
3365                    </div>
3366                  </div>
3367                </div>
3368              </div>
3369            </div>
3370          </div>`}initProductElement(){const e=this.selectors.getSelectors();!e.product||!this.linkElement||(this.productElement||(this.productElement=this.linkElement.closest(e.product)),this.resolvedProductElement=this.productElement)}resolveProductWrapper(){var c;const e=this.selectors.getSelectors();let t=this.productElement||((c=this.linkElement)==null?void 0:c.parentElement);if(t){if(e.price&&(this.priceElement=t.querySelector(e.price)),this.priceElement||(this.priceElement=t.querySelector("[class*='price' i]")),this.priceElement){this.resolvedProductElement=t;return}this.productElement||(t=t.parentElement,t&&(this.priceElement=t.querySelector(e.price),this.priceElement||(this.priceElement=t.querySelector("[class*='price' i]")),this.priceElement&&(this.resolvedProductElement=t)))}}hideQuickAddElements(){var c;if(!this.resolvedProductElement)return;const t=this.selectors.getSelectors().quickAdd??'form[action*="cart/add" i]';t&&((c=this.resolvedProductElement.querySelectorAll(t))==null||c.forEach(s=>{s.classList.add("tw-hidden","tr-hidden")}))}initWidget(){var t;if(this.auctionElement||!this.auction.partner_product_handle||!this.linkElement)return;this.initProductElement(),this.resolveProductWrapper();const e=this.selectors.getSelectors();this.auctionElement=document.createElement("auction-info"),this.auctionElement.setAttribute("product-handle",this.auction.partner_product_handle),this.auctionElement.innerHTML=this.constructor.skeleton,this.productElement&&!d.containsWidget(this.productElement)&&e.productPlacement?((t=this.productElement.querySelector(e.productPlacement.target))==null||t.insertAdjacentElement(e.productPlacement.position,this.auctionElement),d.setContainsWidget(this.productElement)):this.productElement&&!d.containsWidget(this.productElement)?(this.productElement.appendChild(this.auctionElement),d.setContainsWidget(this.productElement)):this.resolvedProductElement&&!d.containsWidget(this.resolvedProductElement)?(this.resolvedProductElement.appendChild(this.auctionElement),d.setContainsWidget(this.resolvedProductElement)):this.linkElement&&!d.containsWidget(this.linkElement.parentElement)&&(this.linkElement.parentElement.appendChild(this.auctionElement),d.setContainsWidget(this.linkElement.parentElement)),this.priceElement&&this.priceElement.classList.add("tw-hidden","tr-hidden"),this.hideQuickAddElements()}static setContainsWidget(e){e.setAttribute("data-has-auction","")}static containsWidget(e){return e.hasAttribute("data-has-auction")||e.querySelector("auction-info")!==null}refreshWidget(){}}class m{constructor(e){n(this,"pageSelectors",null);n(this,"auctions",null);n(this,"theme",null);Object.assign(this,e)}init({overrides:e}={}){var t,c;if(!(this!=null&&this.pageSelectors))return this.initCollection({overrides:e});(t=this.pageSelectors.get("collections"))==null||t.forEach(s=>{this.initCollection({overrides:{...s}})}),(c=this.pageSelectors.get("asyncCollections"))==null||c.forEac
3370h(s=>{this.initAsyncCollection({overrides:{...s}})})}initCollection({overrides:e}={}){const t=new p({theme:this.theme,...e&&{overrides:e}});for(const c of this.auctions||[])this.processPage({auction:c,selectors:t})}initAsyncCollection({overrides:e}={}){const t=new p({theme:this.theme,...e&&{overrides:e}});t.get("container")&&this.createContainerObserver(t)}createContainerObserver(e){if(!window.MutationObserver)return;const t=document.querySelector(e.get("container"));if(!t)return;const c={childList:!0,subtree:!0};let s=!1;const a=new MutationObserver(()=>{if(s)return;s=!0;const i=this.processContainer(t,e);i!=null&&i.length&&a.disconnect(),s=!1});a.observe(t,c)}processContainer(e,t){const c=[],s=[];for(const a of e.querySelectorAll("a")){if(!a.offsetParent)continue;const i=this.getAuctionFromLinkElement(a);if(s.indexOf(i)>=0)continue;s.push(i);const o=d.fromLink({auction:i,selectors:t,linkElement:a});o&&c.indexOf(o)<0&&c.push(o)}return c}processPage({auction:e,selectors:t}){const c=t.getSelectorsWithHandle(encodeURIComponent(e.partner_product_handle)),s=document.querySelectorAll(`${c.container||""} ${c.link||""}${c.handle}`),a=[];for(const i of s){if(!i.offsetParent)continue;const o=d.fromLink({auction:e,selectors:t,linkElement:i});if(o&&a.indexOf(o)<0&&a.push(o),!c.product)break}return a}getAuctionFromLinkElement(e){return this.auctions.find(t=>e.href.endsWith(`/products/${t.partner_product_handle}`)||e.href.includes(`/products/${t.partner_product_handle}?`))}}class S{constructor({theme:e,overrides:t}){n(this,"defaultSelectors",{hide:'.product-form__quantity, form[action*="cart/add" i]',productWrapper:".product",auctionPlacement:{target:'form[action*="cart/add" i]',position:"beforebegin"},form:'form[action*="cart/add" i]',price:".price",paymentWrapper:".product-form__buttons",paymentButton:".shopify-payment-button"});n(this,"selectors",null);n(this,"theme",null);this.theme=e,this.initSelectors(),t&&Object.assign(this.selectors,t)}initSelectors(){let e={};switch(this.theme.store_id){case 380:e={productWrapper:".product-single",price:".product-single__prices"};break;case 578:e={productWrapper:".product-single",price:".product-single__price"};break;case 730:e={productWrapper:".product-single",price:".price-container"};break;case 732:e={productWrapper:".product-container",price:".product-price"};break;case 775:e={productWrapper:".product-single",price:".product-single__price-container"};break;case 777:e={productWrapper:".product-single__wrapper",price:".product__price"};break;case 796:e={productWrapper:".product-single",price:".price"};break;case 812:e={productWrapper:".product-single",price:".product-price-group"};break;case 838:e={productWrapper:":is(.product__container,.product--container)",asyncCollections:[{container:".product-recommendations--section"},{container:".recently-viewed--section"}]};break;case 857:e={productWrapper:".product-single__meta",price:".product__price"};break;case 871:e={hide:".product-form__variants, .product-form__info-list, .product-form__buy-buttons, .product-form__payment-container",productWrapper:".product-block-list",price:".product-form__info-list",auctionPlacement:{target:".product-form",position:"afterend"}};break;case 887:e={hide:'.product-form__quantity, form[action*="cart/add" i], product-info .price',price:".price__container",asyncCollections:[{container:".related-products"}]};break;case 908:e={productWrapper:".container--product-page",auctionPlacement:{target:".product-description-header",position:"afterend"},price:".product-page--pricing",hide:".product-page--submit-action, .quantity-controls__outer"};break;case 1431:e={hide:'.product-form__quantity, form[action*="cart/add" i]'};break;case 1608:e={productWrapper:".product",asyncCollections:[{container:".product-recommendations",product:"product-card"}]};break;case 1609:e={productWrapper:"#main-product",asyncCollections:[{container:".product-recommendations",product:".swiper-slide"},{container:".recently-viewed-products",product:".swiper-slide"}]};break;case 1621:e={hide:'.product__controls-group-quantity, .product-form__item--payment-button, form[action*="cart/add" i]',price:".product__price",asyncCollections:[{container:".recommended-products"},{container:".recently-viewed-products"}]};break;case 1829:e={productWrapper:".product-single__box",hide:'.product-form__qty, form[action*="cart/add" i]',price:".product-single__box__block--price"};break;case 2481:e={productWrapper:".product-information",price:"product-price",hide:'form[action*="cart/add" i], sticky-add-to-cart'};break;case 3620:case 3621:case 3622:case 3623:case 3624:case 3625:case 3626:case 3627:case 3628:e={productWrapper:".product-information",auctionPlacement:{target:"product-price",position:"afterend"},price:"product-price",hide:'form[action*="cart/add" i], sticky-add-to-cart'};break}this.setSelectors(e)}setSelectors(e){this.selectors||(this.selectors={}),Object.assign(this.selectors,this.defaultSelectors,e)}get(e){return this.selectors[e]}getSelectors(){return this.selectors}}const W="modulepreload",O=function(r){return"/"+r},T={},E=function(e,t,c){let s=Promise.resolve();function a(i){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=i,window.dispatchEvent(o),!o.defaultPrevented)throw i}return s.then(i=>{for(const o of i||[])o.status==="rejected"&&a(o.reason);return e().catch(a)})},w=r=>{r.store_id===1609&&E(()=>Promise.resolve().then(()=>v),void 0).then(e=>{y(e.default)}),r.store_id===732&&E(()=>Promise.resolve().then(()=>A),void 0).then(e=>{y(e.default)})};function y(r){const e=document.createElement("style");e.innerHTML=r,document.head.appendChild(e)}window.auctionPlusSetup={template:null,auction:null,auctions:null,product:null,products:null,selectors:null,offerRules:null,legacyCustomerAccounts:null,partnerCustomerId:null,partnerCustomerTags:null,partnerCustomerOrdersCount:null,customerId:null,theme:null,translations:null,init(r){var t,c,s,a,i,o;this.themeSelectors=null,this.template=r.template||"",this.auction=r.auction,this.auctions=r.auctions,this.product=r.product,this.products=r.products,this.selectors=r.selectors,this.offerRules=r.offerRules,this.legacyCustomerAccounts=r.legacyCustomerAccounts,this.partnerCustomerId=r.partnerCustomerId,this.partnerCustomerTags=r.partnerCustomerTags,this.partnerCustomerOrdersCount=r.partnerCustomerOrdersCount,this.customerId=r.customerId,this.theme=r.theme,this.translations=r.translations,this.settings=new l({shop:r.shopSett
3370ings,embed:r.embedSettings,extension:r.extensionSettings});const e=(c=(t=this.theme.schema_name)==null?void 0:t.toLowerCase())==null?void 0:c.replace(/[^a-z0-9_]/g,"_");switch((s=this.selectors)!=null&&s[e]?this.themeSelectors=(a=this.selectors)==null?void 0:a[e]:(i=this.selectors)!=null&&i.all&&(this.themeSelectors=(o=this.selectors)==null?void 0:o.all),this.addAuctionListener({template:r.template,auction:r.auction,auctions:r.auctions,product:r.product,products:r.products,offerRules:r.offerRules,legacyCustomerAccounts:r.legacyCustomerAccounts,partnerCustomerId:r.partnerCustomerId,partnerCustomerTags:r.partnerCustomerTags,partnerCustomerOrdersCount:r.partnerCustomerOrdersCount,customerId:r.customerId,theme:r.theme,translations:r.translations,settings:this.settings,locale:r.locale,locales:r.locales}),w(r.theme),r.template.split(".")[0]){case"product":this.handleProductPage();break;case"collection":this.handleCollectionPage();break;case"customers/account":this.handleAccountPage();break;default:this.handleAnyPage()}},addAuctionListener(r){document.addEventListener("auction.loaded",()=>{window.auctionApp.initialized||(window.auctionApp.init(r),document.querySelectorAll(".auction").forEach(e=>{e.classList.remove("tw-hidden")}),this.theme.store_id===1609&&(window.auctionApp.addThemeClass("classes.button.link","inline"),window.auctionApp.addThemeClass("classes.button.primary","grow-0"),window.auctionApp.addThemeClass("classes.button.secondary","grow-0")),this.theme.store_id===1621&&(window.auctionApp.addThemeClass("classes.button.primary","btn--primary"),window.auctionApp.addThemeClass("classes.button.secondary","btn--secondary")),this.theme.store_id===687&&(window.auctionApp.addThemeClass("classes.button.primary","#button @display-style:gradient @shadow"),window.auctionApp.addThemeClass("classes.button.secondary","#button @display-style:outline @shadow")),this.theme.store_id===2698&&(window.auctionApp.addThemeClass("classes.button.primary","button--filled"),window.auctionApp.addThemeClass("classes.button.secondary","button--outlined")))})},hideElements(r){document.querySelectorAll(r).forEach(e=>{e.classList.add("tw-hidden","tr-hidden")})},handleProductPage(){var a,i,o,f,b,k,g,_;if(!this.auction&&!this.auctions)return;const r=new S({theme:this.theme,overrides:(a=this.themeSelectors)==null?void 0:a.product}),e=r.getSelectors();if(this.auctions&&this.collectionsEnabled()){const h=new m({theme:this.theme,pageSelectors:r,auctions:this.auctions}),P=(i=this.themeSelectors)==null?void 0:i.collection;h.init({overrides:P})}if(!this.auction||(f=(o=window.auctionPlusConfig)==null?void 0:o.activeAppBlocks)!=null&&f.includes("product-auction")&&this.template.split(".")[1])return;const t=`
3371            <div class="auction auction-container tw-hidden">
3372                <div class="rounded-xl border border-solid border-gray-200 p-4">
3373                    <auction-form product-handle="${this.auction.partner_product_handle}" disable-watching></auction-form>
3374                </div>
3375            </div>`;(b=this.settings.embed)!=null&&b.productHideElements&&e.hide&&this.hideElements(e.hide),(k=this.settings.embed)!=null&&k.productSelectorsToHide&&this.hideElements(this.settings.embed.productSelectorsToHide),e.price&&this.hideElements(`${e.productWrapper} ${e.price}`);const c=document.querySelector(e.paymentButton);if(e.paymentWrapper?this.hideElements(e.paymentWrapper):c&&c.parentElement.classList.add("tw-hidden","tr-hidden"),(_=(g=window.auctionPlusConfig)==null?void 0:g.activeAppBlocks)!=null&&_.includes("product-auction"))return;const s=r.get("auctionPlacement");if(s){const h=document.querySelector(s.target);h&&h.insertAdjacentHTML(s.position,t)}},handleCollectionPage(){var t;if(!this.collectionsEnabled()||!this.auctions)return;const r=new m({theme:this.theme,auctions:this.auctions}),e=(t=this.themeSelectors)==null?void 0:t.collection;r.init({overrides:e})},handleAccountPage(){const r=`
3376            <div class="auction auction-container tw-hidden">
3377              <customer-account-button></customer-account-button>
3378            </div>`,t=new u({theme:this.theme}).get("accountPlacement"),c=document.querySelector(t.target);c&&c.insertAdjacentHTML(t.position,r)},handleAnyPage(){var t;if(!this.collectionsEnabled()||!this.auctions)return;const r=new m({theme:this.theme,auctions:this.auctions}),e=(t=this.themeSelectors)==null?void 0:t.collection;r.init({overrides:e})},collectionsEnabled(r=this.template){var t,c;return(((c=(t=this.settings.shop)==null?void 0:t.auction)==null?void 0:c.collection_component_templates)||[]).some(s=>r.startsWith(s))}};const v=Object.freeze(Object.defineProperty({__proto__:null,default:"body>:not(#root,.fancybox__container).auction-modal button:before{display:inline-flex}"},Symbol.toStringTag,{value:"Module"})),A=Object.freeze(Object.defineProperty({__proto__:null,default:".auction-container button.link{color:inherit}"},Symbol.toStringTag,{value:"Module"}))})();
3379
3380      }
3381      auctionPlusSetup.init({
3382        template: 'page.retail-store',
3383          
3384auction:false,
3385        product:false,
3386        partnerCustomerId:false,
3387        partnerCustomerTags:null,
3388        partnerCustomerOrdersCount:null,
3389        legacyCustomerAccounts: false,
3390        
3391
3392        shopSettings: {"general":{"enabled_locales":["en"],"offers_enabled":true,"subscribed":true,"watchlist_enabled":true},"auction":{"reveal_bidders":false,"collection_component_templates":["search","index","collection"]},"auctions":{"collection_handle":null,"page_handle":null,"collection_countdown_type":"three-column","bidding_requires_approval":false,"any_purchase_approves_bidder":false,"custom_registration_url":null,"enable_collection_bidding":true,"registration":{"enabled":true,"fields":["full_name","phone_number"],"phone_required":true,"logo":"https://frameworth.com/cdn/shop/files/Frameworth-Shopify-Logo_7e5798db-68ec-4d1d-9e50-e91558cdb508.jpg?v=1651937023&width=220","logo_width":null}},"watchlists":{"enabled":true,"require_login":false},"offers":{"enabled":true,"login_requirement":"on_submit","suggest_offer_amounts":true,"seller_name":"Seller","chat_bubble_background_color":"#3b82f6","chat_bubble_text_color":"#FFFFFF"},"sms":{"allowed_countries":null}},
3393        offerRules: [{"uid":"97s8wv81vh7g13mynjecyfw4fw","status":"active","max_offer_count":5,"listing_type":"product","applies_to":"all","collections":[],"products":[]}],
3394        embedSettings: {
3395            productHideElements:true,productSelectorsToHide:"",
3396        },
3397        locale:"en",
3398        locales: [
3399        
3400          {
3401            iso_code: "en",
3402            primary: true
3403          },
3404        
3405        ],
3406        extensionSettings: {
3407            
3408                socketConfig: {
3409                    port: 443,
3410                    key: '5362d1b12565f287dc7b',
3411                    cluster: 'us2'
3412                },
3413            
3414        },
3415        selectors: null,
3416        theme: {
3417          name: window.Shopify.theme.name,
3418          store_id: window.Shopify.theme.theme_store_id,
3419          schema_name: window.Shopify.theme.schema_name,
3420          schema_version: window.Shopify.theme.schema_version,
3421          role: window.Shopify.theme.role
3422        },
3423        translations: {"auctions":{"bidding":{"terms_html":"By placing a bid, you agree to purchase this item for the amount you bid plus shipping and tax if you win.  <a href=\"https://frameworth.com/pages/auction-rules\" target=\"_blank\" style=\"color: blue; text-decoration: underline;\">   Terms & Conditions apply </a>"},"countdown":{"hours":"hrs","seconds":"secs","minutes":"mins","second_initial":"s"}}},})
3424})();
3425</script>
3425<!-- END app snippet --></div><div id="shopify-block-AcFN1M1hVN1RCVTB6Y__5057006142565981955" class="shopify-block shopify-app-block">
3425<script type="text/javascript">
3426  const promoConfig = {
3427    fontSize: '14',
3428    logoType: 'logo',
3429    logoColor: 'blue',
3430    pageType: 'cart',
3431    textAlign: 'left'
3432  };
3433  const drawerAppData = '{"theme_app_configuration"=>Metafields::MetafieldDrop}';
3434  const drawerPromoAppConfig = (drawerAppData == '{}') ? {} : JSON.parse('{"region_public_keys":{"us":"","ca":"HQJXHWJUMBLE619B"}}') ;
3435  const drawerHasRegionKeys = drawerPromoAppConfig.hasOwnProperty('region_public_keys');
3436  let drawerPublicKey = null;
3437  if (Shopify.country == 'US') 
3438    drawerPublicKey = (drawerHasRegionKeys) ? drawerPromoAppConfig.region_public_keys.us : null;
3439  if (Shopify.country == 'CA') 
3440    drawerPublicKey = (drawerHasRegionKeys) ? drawerPromoAppConfig.region_public_keys.ca : null;      
3441  const affirmPublicApiKeyCartDrawer = ('') ? '' : drawerPublicKey;
3442  const customDrawerTotalSelector = ('#cart-drawer .cart-drawer__checkout-buttons .btn[name="checkout"]') ? '#cart-drawer .cart-drawer__checkout-buttons .btn[name="checkout"]' : null;
3443  const customAdjacentElementSelector = ('.cart-drawer_summary--non-stick') ? '.cart-drawer_summary--non-stick' : null;
3444  const customAddToCartSelector = ('[name="add"]') ? '[name="add"]' : null;
3445  const customCartDrawerSelector = ('#cart-drawer') ? '#cart-drawer' : null;
3446  const publicKeyEntered = ('') ? '' : null;
3447</script>
3447
3448
3449</div>
3449<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
3449
3450</body>
3451</html>

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