1<!doctype html> 2<html class="no-js" lang="en"> 3 <head> 4 <meta charset="utf-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="width=device-width,initial-scale=1"> 7 <meta name="theme-color" content=""> 8 <meta name="google-site-verification" content="s_gByZ_tkiWwgcTc7ZcQHWSDbEw3SJOKPicCG5hwLwY" /> 9 <link rel="canonical" href="https://thejoinery.com/"> 10 <link rel="preconnect" href="https://cdn.shopify.com" crossorigin> 11 <link rel="stylesheet" type="text/css" href="https://cloud.typography.com/85394/6673792/css/fonts.css" /> 12
12<script async src="//thejoinery.com/cdn/shop/t/2/assets/avada-cookiebar-gcm-integration.js?v=126193589784249790441774984290"></script>
12<link rel="icon" type="image/png" href="//thejoinery.com/cdn/shop/files/favicon.png?crop=center&height=32&v=1694552311&width=32"><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin><title> 13 Solid Wood Furniture Handcrafted in Portland, Oregon 14 – The Joinery</title> 15 16 17 <meta name="description" content="For over 40 years, our team has handcrafted solid wood furniture that brings joy to your home. Handmade in Portland, OR. Order furniture online or visit our showroom in Portland today. Open Daily."> 18 19 20 21 22<meta property="og:site_name" content="The Joinery"> 23<meta property="og:url" content="https://thejoinery.com/"> 24<meta property="og:title" content="Solid Wood Furniture Handcrafted in Portland, Oregon"> 25<meta property="og:type" content="website"> 26<meta property="og:description" content="For over 40 years, our team has handcrafted solid wood furniture that brings joy to your home. Handmade in Portland, OR. Order furniture online or visit our showroom in Portland today. Open Daily."><meta property="og:image" content="http://thejoinery.com/cdn/shop/files/joinery_logo.png?height=628&pad_color=fff&v=1675283678&width=1200"> 27 <meta property="og:image:secure_url" content="https://thejoinery.com/cdn/shop/files/joinery_logo.png?height=628&pad_color=fff&v=1675283678&width=1200"> 28 <meta property="og:image:width" content="1200"> 29 <meta property="og:image:height" content="628"><meta name="twitter:card" content="summary_large_image"> 30<meta name="twitter:title" content="Solid Wood Furniture Handcrafted in Portland, Oregon"> 31<meta name="twitter:description" content="For over 40 years, our team has handcrafted solid wood furniture that brings joy to your home. Handmade in Portland, OR. Order furniture online or visit our showroom in Portland today. Open Daily."> 32 33 34
34<script src="//thejoinery.com/cdn/shop/t/2/assets/global.js?v=8626684112604297181787328045" defer="defer"></script>
34 35
35<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
35<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/71252869408/digital_wallets/dialog"> 36<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
36<script async="async" src="/checkouts/internal/preloads.js?locale=en-US"></script>
36 37<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
38<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&shop_id=71252869408" crossorigin="anonymous"></script>
vendor: 1 bytes, line 38
38
39<script id="shopify-features" type="application/json">{"accessToken":"e2101e7f079a3b7a535dd09b65b629ca","betas":["rich-media-storefront-analytics"],"domain":"thejoinery.com","predictiveSearch":true,"shopId":71252869408,"locale":"en"}</script>
vendor: 1 bytes, line 39
39
40<script>var Shopify = Shopify || {}; 41Shopify.shop = "the-joinery-pdx.myshopify.com"; 42Shopify.locale = "en"; 43Shopify.currency = {"active":"USD","rate":"1.0"}; 44Shopify.country = "US"; 45Shopify.theme = {"name":"The Joinery","id":143128330528,"schema_name":"Dawn","schema_version":"7.0.1","theme_store_id":887,"role":"main"}; 46Shopify.theme.handle = "null"; 47Shopify.theme.style = {"id":null,"handle":null}; 48Shopify.cdnHost = "thejoinery.com/cdn"; 49Shopify.routes = Shopify.routes || {}; 50Shopify.routes.root = "/"; 51Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 52Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 53Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 54Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 54
54
55<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 55
55
56<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 56
56
57<script> 58 window.ShopifyPay = window.ShopifyPay || {}; 59 window.ShopifyPay.apiHost = "shop.app\/pay"; 60 window.ShopifyPay.redirectState = null; 61</script>
vendor: 1 bytes, line 61
61
62<script> 63 window.Shopify = window.Shopify || {}; 64 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 65 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 66 window.Shopify.SignInWithShop.eligible = true; 67</script>
vendor: 1 bytes, line 67
67
68<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
vendor: 1 bytes, line 68
68
69<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 69
69
70<script type="module"> 71 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 72 73 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 74 75</script>
vendor: 1 bytes, line 75
75
76<script> 77 window.Shopify = window.Shopify || {}; 78 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 79 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"]}; 80</script>
vendor: 1 bytes, line 80
80
81<script>(function() { 82 var isLoaded = false; 83 function asyncLoad() { 84 if (isLoaded) return; 85 isLoaded = true; 86 var urls = ["https:\/\/chimpstatic.com\/mcjs-connected\/js\/users\/47c9d532e46348143093864ca\/3975fb87bc741c35fdc79136d.js?shop=the-joinery-pdx.myshopify.com","https:\/\/cdn.nfcube.com\/instafeed-41da8e67d9795a479d691cbca592320d.js?shop=the-joinery-pdx.myshopify.com"]; 87 for (var i = 0; i < urls.length; i++) { 88 var s = document.createElement('script'); 89 s.type = 'text/javascript'; 90 s.async = true; 91 s.src = urls[i]; 92 var x = document.getElementsByTagName('script')[0]; 93 x.parentNode.insertBefore(s, x); 94 } 95 }; 96 if(window.attachEvent) { 97 window.attachEvent('onload', asyncLoad); 98 } else { 99 window.addEventListener('load', asyncLoad, false); 100 } 101})();</script>
vendor: 1 bytes, line 101
101
102<script id="__st">var __st={"a":71252869408,"offset":-25200,"reqid":"b7446b4f-8575-4ed9-be4b-ef1ebe50cc49-1791073438","pageurl":"thejoinery.com\/","u":"be249487e0b6","p":"home"};</script>
vendor: 1 bytes, line 102
102
103<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 103
103
104<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 104
104
105<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//thejoinery.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 105
105
106<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 = "//thejoinery.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>
106<script crossorigin="anonymous" defer="defer" src="//thejoinery.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 106
106
107<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 107
107
108<script> 109 window.Shopify = window.Shopify || {}; 110 window.Shopify.MCP = window.Shopify.MCP || {}; 111 window.Shopify.MCP.enabled = true; 112 window.Shopify.MCP.shop = "the-joinery-pdx.myshopify.com"; 113 window.Shopify.MCP.mcpEndpoint = "https:\/\/thejoinery.com\/api\/mcp"; 114 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"]}}]; 115</script>
vendor: 1 bytes, line 115
115
116<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("\/\/thejoinery.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 117</script>
vendor: 1 bytes, line 117
117
118<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://thejoinery.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 119</script>
vendor: 1 bytes, line 119
119
120<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 121 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); 122</script>
vendor: 1 bytes, line 122
122
123<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})}})); 124</script>
124 125<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://thejoinery.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 126<style id="shopify-accelerated-checkout-cart"> 127 #shopify-buyer-consent { 128 margin-top: 1em; 129 display: inline-block; 130 width: 100%; 131} 132 133#shopify-buyer-consent.hidden { 134 display: none; 135} 136 137#shopify-subscription-policy-button { 138 background: none; 139 border: none; 140 padding: 0; 141 text-decoration: underline; 142 font-size: inherit; 143 cursor: pointer; 144} 145 146#shopify-subscription-policy-button::before { 147 box-shadow: none; 148} 149 150 </style>
151<script id="sections-script" data-sections="header,footer" defer="defer" src="//thejoinery.com/cdn/shop/t/2/compiled_assets/scripts.js?v=61936181921355174781756421203"></script>
vendor: 1 bytes, line 151
151
152<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
152 153 154 155 <style data-shopify> 156 @font-face { 157 font-family: Assistant; 158 font-weight: 400; 159 font-style: normal; 160 font-display: swap; 161 src: url("//thejoinery.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2") format("woff2"), 162 url("//thejoinery.com/cdn/fonts/assistant/assistant_n4.6e9875ce64e0fefcd3f4446b7ec9036b3ddd2985.woff") format("woff"); 163} 164 165 @font-face { 166 font-family: Assistant; 167 font-weight: 700; 168 font-style: normal; 169 font-display: swap; 170 src: url("//thejoinery.com/cdn/fonts/assistant/assistant_n7.bf44452348ec8b8efa3aa3068825305886b1c83c.woff2") format("woff2"), 171 url("//thejoinery.com/cdn/fonts/assistant/assistant_n7.0c887fee83f6b3bda822f1150b912c72da0f7b64.woff") format("woff"); 172} 173 174 175 176 @font-face { 177 font-family: Assistant; 178 font-weight: 400; 179 font-style: normal; 180 font-display: swap; 181 src: url("//thejoinery.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2") format("woff2"), 182 url("//thejoinery.com/cdn/fonts/assistant/assistant_n4.6e9875ce64e0fefcd3f4446b7ec9036b3ddd2985.woff") format("woff"); 183} 184 185 186 :root { 187 --font-body-family: Assistant, sans-serif; 188 --font-body-style: normal; 189 --font-body-weight: 400; 190 --font-body-weight-bold: 700; 191 192 --font-heading-family: Assistant, sans-serif; 193 --font-heading-style: normal; 194 --font-heading-weight: 400; 195 196 --font-body-scale: 1.0; 197 --font-heading-scale: 1.0; 198 199 --color-base-text: 18, 18, 18; 200 --color-shadow: 18, 18, 18; 201 --color-base-background-1: 255, 255, 255; 202 --color-base-background-2: 243, 243, 243; 203 --color-base-solid-button-labels: 255, 255, 255; 204 --color-base-outline-button-labels: 18, 18, 18; 205 --color-base-accent-1: 18, 18, 18; 206 --color-base-accent-2: 68, 68, 68; 207 --payment-terms-background-color: #ffffff; 208 209 --gradient-base-background-1: #ffffff; 210 --gradient-base-background-2: #f3f3f3; 211 --gradient-base-accent-1: #121212; 212 --gradient-base-accent-2: #444444; 213 214 --media-padding: px; 215 --media-border-opacity: 0.05; 216 --media-border-width: 1px; 217 --media-radius: 0px; 218 --media-shadow-opacity: 0.0; 219 --media-shadow-horizontal-offset: 0px; 220 --media-shadow-vertical-offset: 4px; 221 --media-shadow-blur-radius: 5px; 222 --media-shadow-visible: 0; 223 224 --page-width: 130rem; 225 --page-width-margin: 0rem; 226 227 --product-card-image-padding: 0.0rem; 228 --product-card-corner-radius: 0.0rem; 229 --product-card-text-alignment: left; 230 --product-card-border-width: 0.0rem; 231 --product-card-border-opacity: 0.1; 232 --product-card-shadow-opacity: 0.0; 233 --product-card-shadow-visible: 0; 234 --product-card-shadow-horizontal-offset: 0.0rem; 235 --product-card-shadow-vertical-offset: 0.4rem; 236 --product-card-shadow-blur-radius: 0.5rem; 237 238 --collection-card-image-padding: 0.0rem; 239 --collection-card-corner-radius: 0.0rem; 240 --collection-card-text-alignment: left; 241 --collection-card-border-width: 0.0rem; 242 --collection-card-border-opacity: 0.1; 243 --collection-card-shadow-opacity: 0.0; 244 --collection-card-shadow-visible: 0; 245 --collection-card-shadow-horizontal-offset: 0.0rem; 246 --collection-card-shadow-vertical-offset: 0.4rem; 247 --collection-card-shadow-blur-radius: 0.5rem; 248 249 --blog-card-image-padding: 0.0rem; 250 --blog-card-corner-radius: 0.0rem; 251 --blog-card-text-alignment: left; 252 --blog-card-border-width: 0.0rem; 253 --blog-card-border-opacity: 0.1; 254 --blog-card-shadow-opacity: 0.0; 255 --blog-card-shadow-visible: 0; 256 --blog-card-shadow-horizontal-offset: 0.0rem; 257 --blog-card-shadow-vertical-offset: 0.4rem; 258 --blog-card-shadow-blur-radius: 0.5rem; 259 260 --badge-corner-radius: 4.0rem; 261 262 --popup-border-width: 1px; 263 --popup-border-opacity: 0.1; 264 --popup-corner-radius: 0px; 265 --popup-shadow-opacity: 0.0; 266 --popup-shadow-horizontal-offset: 0px; 267 --popup-shadow-vertical-offset: 4px; 268 --popup-shadow-blur-radius: 5px; 269 270 --drawer-border-width: 1px; 271 --drawer-border-opacity: 0.1; 272 --drawer-shadow-opacity: 0.0; 273 --drawer-shadow-horizontal-offset: 0px; 274 --drawer-shadow-vertical-offset: 4px; 275 --drawer-shadow-blur-radius: 5px; 276 277 --spacing-sections-desktop: 0px; 278 --spacing-sections-mobile: 0px; 279 280 --grid-desktop-vertical-spacing: 8px; 281 --grid-desktop-horizontal-spacing: 20px; 282 --grid-mobile-vertical-spacing: 4px; 283 --grid-mobile-horizontal-spacing: 10px; 284 285 --text-boxes-border-opacity: 0.1; 286 --text-boxes-border-width: 0px; 287 --text-boxes-radius: 0px; 288 --text-boxes-shadow-opacity: 0.0; 289 --text-boxes-shadow-visible: 0; 290 --text-boxes-shadow-horizontal-offset: 0px; 291 --text-boxes-shadow-vertical-offset: 4px; 292 --text-boxes-shadow-blur-radius: 5px; 293 294 --buttons-radius: 0px; 295 --buttons-radius-outset: 0px; 296 --buttons-border-width: 1px; 297 --buttons-border-opacity: 1.0; 298 --buttons-shadow-opacity: 0.0; 299 --buttons-shadow-visible: 0; 300 --buttons-shadow-horizontal-offset: 0px; 301 --buttons-shadow-vertical-offset: 4px; 302 --buttons-shadow-blur-radius: 5px; 303 --buttons-border-offset: 0px; 304 305 --inputs-radius: 0px; 306 --inputs-border-width: 1px; 307 --inputs-border-opacity: 0.55; 308 --inputs-shadow-opacity: 0.0; 309 --inputs-shadow-horizontal-offset: 0px; 310 --inputs-margin-offset: 0px; 311 --inputs-shadow-vertical-offset: 4px; 312 --inputs-shadow-blur-radius: 5px; 313 --inputs-radius-outset: 0px; 314 315 --variant-pills-radius: 40px; 316 --variant-pills-border-width: 1px; 317 --variant-pills-border-opacity: 0.55; 318 --variant-pills-shadow-opacity: 0.0; 319 --variant-pills-shadow-horizontal-offset: 0px; 320 --variant-pills-shadow-vertical-offset: 4px; 321 --variant-pills-shadow-blur-radius: 5px; 322 } 323 324 *, 325 *::before, 326 *::after { 327 box-sizing: inherit; 328 } 329 330 html { 331 box-sizing: border-box; 332 font-size: calc(var(--font-body-scale) * 62.5%); 333 height: 100%; 334 } 335 336 body { 337 display: grid; 338 grid-template-rows: auto auto 1fr auto; 339 grid-template-columns: 100%; 340 min-height: 100%; 341 margin: 0; 342 font-size: 1.5rem; 343 letter-spacing: 0.06rem; 344 line-height: calc(1 + 0.8 / var(--font-body-scale)); 345 font-family: var(--font-body-family); 346 font-style: var(--font-body-style); 347 font-weight: var(--font-body-weight); 348 } 349 350 @media screen and (min-width: 750px) { 351 body { 352 font-size: 1.6rem; 353 } 354 } 355 </style> 356 357 <link href="//thejoinery.com/cdn/shop/t/2/assets/base.css?v=126851806606018146531787328194" rel="stylesheet" type="text/css" media="all" /> 358<link rel="preload" as="font" href="//thejoinery.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2" type="font/woff2" crossorigin><link rel="preload" as="font" href="//thejoinery.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2" type="font/woff2" crossorigin>
358<script>document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 359 if (Shopify.designMode) { 360 document.documentElement.classList.add('shopify-design-mode'); 361 } 362 </script>
362 363
363<script src="https://cdn.shopify.com/extensions/01a0f6b9-396a-713a-ba86-3c9e67328667/avada-cookie-bar-63/assets/avada-cookie.js" type="text/javascript" defer="defer"></script>
363 364<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
365<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: 71252869408,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "index"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 365
365
366<script> 367 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 368</script>
vendor: 1 bytes, line 368
368
369<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}
369).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: 71252869408,storefrontBaseUrl: "https://thejoinery.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://thejoinery.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2426372384","configuration":"{\"mailchimp_store_id\":\"store_71b7acsh7ncrvzj6k1qb\", \"mailchimp_user_id\":\"838177\",\"mailchimp_list_id\":\"68e8b886da\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"e357a49eadeb6216a959d63fa3fb8f55","type":"APP","apiClientId":2585307,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"846430496","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-RHGLHXQD0F\\\"],\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"G-RHGLHXQD0F\\\"},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"G-RHGLHXQD0F\\\"},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-RHGLHXQD0F\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":\\\"G-RHGLHXQD0F\\\"},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-RHGLHXQD0F\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":\\\"G-RHGLHXQD0F\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":\\\"G-RHGLHXQD0F\\\"},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-RHGLHXQD0F\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"G-RHGLHXQD0F\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"G-RHGLHXQD0F\\\"},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-RHGLHXQD0F\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"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":"The Joinery","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"the-joinery-pdx.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/thejoinery.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"
36910313131262240","handle":"alameda-coffee-table","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51609694208288","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://thejoinery.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"143128330528","themeStoreId":"887","themePublished":"true","eventMetadataId":"5f3382e9-dd0a-4211-8a2f-6d65be270d44","pageType":"home","shopId":"71252869408","storefrontBaseUrl":"https:\/\/thejoinery.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
369<script> 370 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 371 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 372 window.ShopifyAnalytics.meta.currency = 'USD'; 373 var meta = {"page":{"pageType":"home","requestId":"b7446b4f-8575-4ed9-be4b-ef1ebe50cc49-1791073438"}}; 374 for (var attr in meta) { 375 window.ShopifyAnalytics.meta[attr] = meta[attr]; 376 } 377</script>
vendor: 1 bytes, line 377
377
378<script class="analytics"> 379 (function () { 380 var customDocumentWrite = function(content) { 381 var jquery = null; 382 383 if (window.jQuery) { 384 jquery = window.jQuery; 385 } else if (window.Checkout && window.Checkout.$) { 386 jquery = window.Checkout.$; 387 } 388 389 if (jquery) { 390 jquery('body').append(content); 391 } 392 }; 393 394 var hasLoggedConversion = function(token) { 395 if (token) { 396 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 397 } 398 return false; 399 } 400 401 var setCookieIfConversion = function(token) { 402 if (token) { 403 var twoMonthsFromNow = new Date(Date.now()); 404 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 405 406 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 407 } 408 } 409 410 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 411 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 412 if (trekkie.integrations) { 413 return; 414 } 415 trekkie.methods = [ 416 'identify', 417 'page', 418 'ready', 419 'track', 420 'trackForm', 421 'trackLink' 422 ]; 423 trekkie.factory = function(method) { 424 return function() { 425 var args = Array.prototype.slice.call(arguments); 426 args.unshift(method); 427 trekkie.push(args); 428 if (method == 'track' || method == 'page') { 429 var pageUrl; 430 try { 431 pageUrl = window.location.href; 432 } catch (e) {} 433 var pageReferrer; 434 try { 435 pageReferrer = document.referrer; 436 } catch (e) {} 437 try { 438 if (window.__TREKKIE_SHIM_QUEUE == null) { 439 window.__TREKKIE_SHIM_QUEUE = []; 440 } 441 window.__TREKKIE_SHIM_QUEUE.push({ 442 from: 'trekkie-stub', 443 method: method, 444 args: args.slice(1), 445 pageContext: { 446 url: pageUrl, 447 referrer: pageReferrer 448 } 449 }); 450 } catch (e) { 451 // no-op 452 } 453 } 454 return trekkie; 455 }; 456 }; 457 for (var i = 0; i < trekkie.methods.length; i++) { 458 var key = trekkie.methods[i]; 459 trekkie[key] = trekkie.factory(key); 460 } 461 trekkie.load = function(config) { 462 trekkie.config = config || {}; 463 trekkie.config.initialDocumentCookie = document.cookie; 464 var first = document.getElementsByTagName('script')[0]; 465var script = document.createElement('script'); 466script.type = 'text/javascript'; 467script.onerror = function(e) { 468 var scriptFallback = document.createElement('script'); 469 scriptFallback.type = 'text/javascript'; 470 scriptFallback.onerror = function(error) { 471 var Monorail = { 472 produce: function produce(monorailDomain, schemaId, payload) { 473 var currentMs = new Date().getTime(); 474 var event = { 475 schema_id: schemaId, 476 payload: payload, 477 metadata: { 478 event_created_at_ms: currentMs, 479 event_sent_at_ms: currentMs 480 } 481 }; 482 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 483 }, 484 sendRequest: function sendRequest(endpointUrl, payload) { 485 // Try the sendBeacon API 486 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 487 var blobData = new window.Blob([payload], { 488 type: 'text/plain' 489 }); 490 491 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 492 return true; 493 } // sendBeacon was not successful 494 495 } // XHR beacon 496 497 var xhr = new XMLHttpRequest(); 498 499 try { 500 xhr.open('POST', endpointUrl); 501 xhr.setRequestHeader('Content-Type', 'text/plain'); 502 xhr.send(payload); 503 } catch (e) { 504 console.log(e); 505 } 506 507 return false; 508 }, 509 isIos12: function isIos12() { 510 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 511 } 512 }; 513 Monorail.produce('monorail-edge.shopifysvc.com', 514 'trekkie_storefront_load_errors/1.1', 515 {shop_id: 71252869408, 516 theme_id: 143128330528, 517 app_name: "storefront", 518 context_url: window.location.href, 519 source_url: "//thejoinery.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 520 521 }; 522 scriptFallback.async = true; 523 scriptFallback.src = '//thejoinery.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 524 first.parentNode.insertBefore(scriptFallback, first); 525}; 526script.async = true; 527script.src = '//thejoinery.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 528first.parentNode.insertBefore(script, first); 529 530 }; 531 trekkie.load( 532 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":71252869408,"isMerchantRequest":null,"themeId":143128330528,"themeCityHash":"2081972048381258026","contentLanguage":"en","currency":"USD","eventMetadataId":"5f3382e9-dd0a-4211-8a2f-6d65be270d44"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} 533 ); 534 535 var loaded = false;
536 trekkie.ready(function() { 537 if (loaded) return; 538 loaded = true; 539 540 window.ShopifyAnalytics.lib = window.trekkie; 541 542 var originalDocumentWrite = document.write; 543 document.write = customDocumentWrite; 544 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 545 document.write = originalDocumentWrite; 546 547 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 548 var token = match? match[1]: undefined; 549 if (!hasLoggedConversion(token)) { 550 setCookieIfConversion(token); 551 552 } 553 }); 554 555 window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"b7446b4f-8575-4ed9-be4b-ef1ebe50cc49-1791073438","shopifyEmitted":true}); 556 557 var eventsListenerScript = document.createElement('script'); 558 eventsListenerScript.async = true; 559 eventsListenerScript.src = "//thejoinery.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 560 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 561})();</script>
vendor: 1 bytes, line 561
561
562<script 563 defer 564 src="https://thejoinery.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 565 data-application="storefront-renderer" 566 data-shop-id="71252869408" 567 data-render-region="gcp-us-central1" 568 data-page-type="index" 569 data-theme-instance-id="143128330528" 570 data-theme-name="Dawn" 571 data-theme-version="7.0.1" 572 data-monorail-region="shop_domain" 573 data-resource-timing-sampling-rate="10" 574 data-shs="true" 575 data-shs-beacon="true" 576 data-shs-export-with-fetch="true" 577 data-shs-logs-sample-rate="1" 578 data-shs-beacon-endpoint="https://thejoinery.com/api/collect" 579></script>
579 580<meta name="shopify-y" content="c48bc52a-522e-4c9c-87d4-6dc5f924448c" data-expiration="1822631038000"><meta name="shopify-s" content="f780a307-890d-4d53-9302-8a988de3b611" data-expiration="1791075238000"><meta name="new-cookie-storage-activated" content="t"> 581</head> 582 583 <body class="gradient" id="solid-wood-furniture-handcrafted-in-portland-oregon"> 584 <a class="skip-to-content-link button visually-hidden" href="#MainContent"> 585 Skip to content 586 </a><div id="shopify-section-announcement-bar" class="shopify-section"><div class="announcement-bar color-accent-1 gradient" role="region" aria-label="Announcement" ><a href="/products/alameda-coffee-table" class="announcement-bar__link link link--text focus-inset animate-arrow"><div class="page-width"> 587 <p class="announcement-bar__message center h5"> 588 View our collboration with Pratt and Larson 589<svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg"> 590 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 591</svg> 592 593</p> 594 </div></a></div><div class="announcement-bar color-background-1 gradient" role="region" aria-label="Announcement" ><a href="/pages/stores" class="announcement-bar__link link link--text focus-inset animate-arrow"><div class="page-width"> 595 <p class="announcement-bar__message right h5"> 596 Store Locations 597<svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg"> 598 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 599</svg> 600 601</p> 602 </div></a></div> 603</div> 604 <div id="shopify-section-header" class="shopify-section section-header"><link rel="stylesheet" href="//thejoinery.com/cdn/shop/t/2/assets/component-list-menu.css?v=151968516119678728991675285420" media="print" onload="this.media='all'"> 605<link rel="stylesheet" href="//thejoinery.com/cdn/shop/t/2/assets/component-search.css?v=96455689198851321781675285420" media="print" onload="this.media='all'"> 606<link rel="stylesheet" href="//thejoinery.com/cdn/shop/t/2/assets/component-menu-drawer.css?v=182311192829367774911675285420" media="print" onload="this.media='all'"> 607<link rel="stylesheet" href="//thejoinery.com/cdn/shop/t/2/assets/component-cart-notification.css?v=183358051719344305851675285420" media="print" onload="this.media='all'"> 608<link rel="stylesheet" href="//thejoinery.com/cdn/shop/t/2/assets/component-cart-items.css?v=23917223812499722491675285420" media="print" onload="this.media='all'"> 609<link href="//thejoinery.com/cdn/shop/t/2/assets/joinery-global.css?v=48811663012346725191777836830" rel="stylesheet" type="text/css" media="all" /> 610<noscript><link href="//thejoinery.com/cdn/shop/t/2/assets/component-list-menu.css?v=151968516119678728991675285420" rel="stylesheet" type="text/css" media="all" /></noscript> 611<noscript><link href="//thejoinery.com/cdn/shop/t/2/assets/component-search.css?v=96455689198851321781675285420" rel="stylesheet" type="text/css" media="all" /></noscript> 612<noscript><link href="//thejoinery.com/cdn/shop/t/2/assets/component-menu-drawer.css?v=182311192829367774911675285420" rel="stylesheet" type="text/css" media="all" /></noscript> 613<noscript><link href="//thejoinery.com/cdn/shop/t/2/assets/component-cart-notification.css?v=183358051719344305851675285420" rel="stylesheet" type="text/css" media="all" /></noscript> 614<noscript><link href="//thejoinery.com/cdn/shop/t/2/assets/component-cart-items.css?v=23917223812499722491675285420" rel="stylesheet" type="text/css" media="all" /></noscript> 615 616<style> 617 header-drawer { 618 justify-self: start; 619 margin-left: -1.2rem; 620 } 621 622 .header__heading-logo { 623 max-width: 250px; 624 } 625 626 @media screen and (min-width: 990px) { 627 header-drawer { 628 display: none; 629 } 630 } 631 632 .menu-drawer-container { 633 display: flex; 634 } 635 636 .list-menu { 637 list-style: none; 638 padding: 0; 639 margin: 0; 640 } 641 642 .list-menu--inline { 643 display: inline-flex; 644 flex-wrap: wrap; 645 } 646 647 summary.list-menu__item { 648 padding-right: 2.7rem; 649 } 650 651 .list-menu__item { 652 display: flex; 653 align-items: center; 654 line-height: calc(1 + 0.3 / var(--font-body-scale)); 655 } 656 657 .list-menu__item--link { 658 text-decoration: none; 659 padding-bottom: 1rem; 660 padding-top: 1rem; 661 line-height: calc(1 + 0.8 / var(--font-body-scale)); 662 } 663 664 @media screen and (min-width: 750px) { 665 .list-menu__item--link { 666 padding-bottom: 0.5rem; 667 padding-top: 0.5rem; 668 } 669 } 670</style><style data-shopify>.header { 671 padding-top: 10px; 672 padding-bottom: 10px; 673 } 674 675 .section-header { 676 margin-bottom: 0px; 677 } 678 679 @media screen and (min-width: 750px) { 680 .section-header { 681 margin-bottom: 0px; 682 } 683 } 684 685 @media screen and (min-width: 990px) { 686 .header { 687 padding-top: 20px; 688 padding-bottom: 20px; 689 } 690 }</style>
690<script src="//thejoinery.com/cdn/shop/t/2/assets/details-disclosure.js?v=153497636716254413831675285420" defer="defer"></script>
vendor: 1 bytes, line 690
690
691<script src="//thejoinery.com/cdn/shop/t/2/assets/details-modal.js?v=161897927113593009591787921693" defer="defer"></script>
vendor: 1 bytes, line 691
691
692<script src="//thejoinery.com/cdn/shop/t/2/assets/cart-notification.js?v=160453272920806432391675285420" defer="defer"></script>
692<svg xmlns="https://www.w3.org/2000/svg" class="hidden"> 693 <symbol id="icon-search" viewbox="0 0 18 19" fill="none"> 694 <path fill-rule="evenodd" clip-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 112.85 3.5a5.784 5.784 0 018.18 8.18zm.26 1.12a6.78 6.78 0 11.72-.7l5.4 5.4a.5.5 0 11-.71.7l-5.41-5.4z" fill="currentColor"/> 695 </symbol> 696 697 <symbol id="icon-close" class="icon icon-close" fill="none" viewBox="0 0 18 17"> 698 <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor"> 699 </symbol> 700</svg> 701<sticky-header class="header-wrapper color-background-1 gradient header-wrapper--border-bottom"> 702 <header class="header header--top-left header--mobile-center page-width header--has-menu"><header-drawer data-breakpoint="tablet"> 703 <details id="Details-menu-drawer-container" class="menu-drawer-container"> 704 <summary class="header__icon header__icon--menu header__icon--summary link focus-inset" aria-label="Menu"> 705 <span> 706 <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-hamburger" fill="none" viewBox="0 0 18 16"> 707 <path d="M1 .5a.5.5 0 100 1h15.71a.5.5 0 000-1H1zM.5 8a.5.5 0 01.5-.5h15.71a.5.5 0 010 1H1A.5.5 0 01.5 8zm0 7a.5.5 0 01.5-.5h15.71a.5.5 0 010 1H1a.5.5 0 01-.5-.5z" fill="currentColor"> 708</svg> 709 710 <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" fill="none" viewBox="0 0 18 17"> 711 <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor"> 712</svg> 713 714 </span> 715 </summary> 716 <div id="menu-drawer" class="gradient menu-drawer motion-reduce" tabindex="-1"> 717 <div class="menu-drawer__inner-container"> 718 <div class="menu-drawer__navigation-container"> 719 <nav class="menu-drawer__navigation"> 720 <ul class="menu-drawer__menu has-submenu list-menu" role="list"><li><details id="Details-menu-drawer-menu-item-1"> 721 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 722 About Us 723 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg"> 724 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 725</svg> 726 727 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6"> 728 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 729</svg> 730 731 </summary> 732 <div id="link-about-us" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1"> 733 <div class="menu-drawer__inner-submenu"> 734 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 735 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg"> 736 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 737</svg> 738 739 About Us 740 </button> 741 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/pages/about" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 742 Our Story 743 </a></li><li><a href="/pages/craft" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 744 Craft & Process 745 </a></li><li><a href="/pages/furniture-guarantee-warranty" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 746 Lifetime Promise 747 </a></li><li><a href="/pages/better-because-of-us" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 748 Sustainability & Impact 749 </a></li></ul> 750 </div> 751 </div> 752 </details></li><li>
752<details id="Details-menu-drawer-menu-item-2"> 753 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 754 Bedroom 755 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg"> 756 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 757</svg> 758 759 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6"> 760 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 761</svg> 762 763 </summary> 764 <div id="link-bedroom" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1"> 765 <div class="menu-drawer__inner-submenu"> 766 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 767 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg"> 768 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 769</svg> 770 771 Bedroom 772 </button> 773 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/collections/bed" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 774 Beds 775 </a></li><li><a href="/collections/nightstands-1" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 776 Nightstands 777 </a></li><li><a href="/collections/dressers" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 778 Dressers 779 </a></li></ul> 780 </div> 781 </div> 782 </details></li><li><details id="Details-menu-drawer-menu-item-3"> 783 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 784 Dining Room 785 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg"> 786 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 787</svg> 788 789 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6"> 790 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 791</svg> 792 793 </summary> 794 <div id="link-dining-room" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1"> 795 <div class="menu-drawer__inner-submenu"> 796 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 797 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg"> 798 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 799</svg> 800 801 Dining Room 802 </button> 803 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/collections/dining-tables" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 804 Dining Tables 805 </a></li><li><a href="/collections/dining-chairs" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 806 Dining Chairs 807 </a></li><li><a href="/collections/dining-benches" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 808 Dining Benches 809 </a></li><li><a href="/collections/sideboards-and-hutches" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 810 Sideboards and Hutches 811 </a></li><li><a href="/collections/stools" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 812 Stools 813 </a></li></ul> 814 </div> 815 </div> 816 </details></li><li>
816<details id="Details-menu-drawer-menu-item-4"> 817 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 818 Living Room 819 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg"> 820 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 821</svg> 822 823 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6"> 824 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 825</svg> 826 827 </summary> 828 <div id="link-living-room" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1"> 829 <div class="menu-drawer__inner-submenu"> 830 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 831 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg"> 832 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 833</svg> 834 835 Living Room 836 </button> 837 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/collections/sofas-and-loveseats" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 838 Sofas and Loveseats 839 </a></li><li><a href="/collections/lounge-chairs-and-ottomans" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 840 Lounge Chairs and Ottomans 841 </a></li><li><a href="/collections/benches" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 842 Benches 843 </a></li><li><a href="/collections/media-console-and-storage" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 844 Media Console and Storage 845 </a></li><li><a href="/collections/coffee-tables" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 846 Coffee Tables 847 </a></li><li><a href="/collections/end-tables" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 848 End Tables 849 </a></li><li><a href="/collections/entry-tables" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 850 Entry Tables 851 </a></li></ul> 852 </div> 853 </div> 854 </details></li><li><details id="Details-menu-drawer-menu-item-5"> 855 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 856 Office 857 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg"> 858 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 859</svg> 860 861 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6"> 862 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 863</svg> 864 865 </summary> 866 <div id="link-office" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1"> 867 <div class="menu-drawer__inner-submenu"> 868 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 869 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg"> 870 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 871</svg> 872 873 Office 874 </button> 875 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/collections/desks" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 876 Desks 877 </a></li><li><a href="/collections/bookcases-and-storage" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 878 Bookcases and Storage 879 </a></li></ul> 880 </div> 881 </div> 882 </details></li><li>
882<details id="Details-menu-drawer-menu-item-6"> 883 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 884 Accessories 885 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg"> 886 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 887</svg> 888 889 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6"> 890 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 891</svg> 892 893 </summary> 894 <div id="link-accessories" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1"> 895 <div class="menu-drawer__inner-submenu"> 896 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 897 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg"> 898 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 899</svg> 900 901 Accessories 902 </button> 903 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/collections/home-accessories" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 904 Home Accessories 905 </a></li><li><a href="/collections/finish" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 906 Finish 907 </a></li><li><a href="/collections/gift-guide" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 908 Gift Guide 909 </a></li></ul> 910 </div> 911 </div> 912 </details></li><li><a href="/pages/customize" class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 913 Customize 914 </a></li><li><a href="/blogs/news" class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 915 News 916 </a></li><li><a href="/pages/contact" class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 917 Contact 918 </a></li></ul> 919 </nav> 920 <div class="menu-drawer__utility-links"><a href="https://thejoinery.com/customer_authentication/redirect?locale=en®ion_country=US" class="menu-drawer__account link focus-inset h5"> 921 <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-account" fill="none" viewBox="0 0 18 19"> 922 <path fill-rule="evenodd" clip-rule="evenodd" d="M6 4.5a3 3 0 116 0 3 3 0 01-6 0zm3-4a4 4 0 100 8 4 4 0 000-8zm5.58 12.15c1.12.82 1.83 2.24 1.91 4.85H1.51c.08-2.6.79-4.03 1.9-4.85C4.66 11.75 6.5 11.5 9 11.5s4.35.26 5.58 1.15zM9 10.5c-2.5 0-4.65.24-6.17 1.35C1.27 12.98.5 14.93.5 18v.5h17V18c0-3.07-.77-5.02-2.33-6.15-1.52-1.1-3.67-1.35-6.17-1.35z" fill="currentColor"> 923</svg> 924 925Log in</a><ul class="list list-social list-unstyled" role="list"><li class="list-social__item"> 926 <a href="https://www.facebook.com/thejoinerypdx" class="list-social__link link"><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-facebook" viewB
926ox="0 0 18 18"> 927 <path fill="currentColor" d="M16.42.61c.27 0 .5.1.69.28.19.2.28.42.28.7v15.44c0 .27-.1.5-.28.69a.94.94 0 01-.7.28h-4.39v-6.7h2.25l.31-2.65h-2.56v-1.7c0-.4.1-.72.28-.93.18-.2.5-.32 1-.32h1.37V3.35c-.6-.06-1.27-.1-2.01-.1-1.01 0-1.83.3-2.45.9-.62.6-.93 1.44-.93 2.53v1.97H7.04v2.65h2.24V18H.98c-.28 0-.5-.1-.7-.28a.94.94 0 01-.28-.7V1.59c0-.27.1-.5.28-.69a.94.94 0 01.7-.28h15.44z"> 928</svg> 929<span class="visually-hidden">Facebook</span> 930 </a> 931 </li><li class="list-social__item"> 932 <a href="https://www.instagram.com/thejoinery/" class="list-social__link link"><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-instagram" viewBox="0 0 18 18"> 933 <path fill="currentColor" d="M8.77 1.58c2.34 0 2.62.01 3.54.05.86.04 1.32.18 1.63.3.41.17.7.35 1.01.66.3.3.5.6.65 1 .12.32.27.78.3 1.64.05.92.06 1.2.06 3.54s-.01 2.62-.05 3.54a4.79 4.79 0 01-.3 1.63c-.17.41-.35.7-.66 1.01-.3.3-.6.5-1.01.66-.31.12-.77.26-1.63.3-.92.04-1.2.05-3.54.05s-2.62 0-3.55-.05a4.79 4.79 0 01-1.62-.3c-.42-.16-.7-.35-1.01-.66-.31-.3-.5-.6-.66-1a4.87 4.87 0 01-.3-1.64c-.04-.92-.05-1.2-.05-3.54s0-2.62.05-3.54c.04-.86.18-1.32.3-1.63.16-.41.35-.7.66-1.01.3-.3.6-.5 1-.65.32-.12.78-.27 1.63-.3.93-.05 1.2-.06 3.55-.06zm0-1.58C6.39 0 6.09.01 5.15.05c-.93.04-1.57.2-2.13.4-.57.23-1.06.54-1.55 1.02C1 1.96.7 2.45.46 3.02c-.22.56-.37 1.2-.4 2.13C0 6.1 0 6.4 0 8.77s.01 2.68.05 3.61c.04.94.2 1.57.4 2.13.23.58.54 1.07 1.02 1.56.49.48.98.78 1.55 1.01.56.22 1.2.37 2.13.4.94.05 1.24.06 3.62.06 2.39 0 2.68-.01 3.62-.05.93-.04 1.57-.2 2.13-.41a4.27 4.27 0 001.55-1.01c.49-.49.79-.98 1.01-1.56.22-.55.37-1.19.41-2.13.04-.93.05-1.23.05-3.61 0-2.39 0-2.68-.05-3.62a6.47 6.47 0 00-.4-2.13 4.27 4.27 0 00-1.02-1.55A4.35 4.35 0 0014.52.46a6.43 6.43 0 00-2.13-.41A69 69 0 008.77 0z"/> 934 <path fill="currentColor" d="M8.8 4a4.5 4.5 0 100 9 4.5 4.5 0 000-9zm0 7.43a2.92 2.92 0 110-5.85 2.92 2.92 0 010 5.85zM13.43 5a1.05 1.05 0 100-2.1 1.05 1.05 0 000 2.1z"> 935</svg> 936<span class="visually-hidden">Instagram</span> 937 </a> 938 </li></ul> 939 </div> 940 </div> 941 </div> 942 </div> 943 </details> 944 </header-drawer><h1 class="header__heading"><a href="/" class="header__heading-link link link--text focus-inset"><img src="//thejoinery.com/cdn/shop/files/joinery_logo.png?v=1675283678" alt="The Joinery" srcset="//thejoinery.com/cdn/shop/files/joinery_logo.png?v=1675283678&width=50 50w, //thejoinery.com/cdn/shop/files/joinery_logo.png?v=1675283678&width=100 100w, //thejoinery.com/cdn/shop/files/joinery_logo.png?v=1675283678&width=150 150w, //thejoinery.com/cdn/shop/files/joinery_logo.png?v=1675283678&width=200 200w, //thejoinery.com/cdn/shop/files/joinery_logo.png?v=1675283678&width=250 250w, //thejoinery.com/cdn/shop/files/joinery_logo.png?v=1675283678&width=300 300w, //thejoinery.com/cdn/shop/files/joinery_logo.png?v=1675283678&width=400 400w" width="250" height="42.934782608695656" class="header__heading-logo"> 945</a></h1><nav class="header__inline-menu"> 946 <ul class="list-menu list-menu--inline" role="list"><li><header-menu> 947 <details id="Details-HeaderMenu-1"> 948 <summary class="header__menu-item list-menu__item link focus-inset"> 949 <span>About Us</span> 950 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6"> 951 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 952</svg> 953 954 </summary> 955 <ul id="HeaderMenu-MenuList-1" class="header__submenu list-menu list-menu--disclosure gradient caption-large motion-reduce global-settings-popup" role="list" tabindex="-1"><li><a href="/pages/about" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 956 Our Story 957 </a></li><li><a href="/pages/craft" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 958 Craft & Process 959 </a></li><li><a href="/pages/furniture-guarantee-warranty" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 960 Lifetime Promise 961 </a></li><li><a href="/pages/better-because-of-us" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 962 Sustainability & Impact 963 </a></li></ul> 964 </details> 965 </header-menu></li><li><header-menu> 966 <details id="Details-HeaderMenu-2"> 967 <summary class="header__menu-item list-menu__item link focus-inset">
968 <span>Bedroom</span> 969 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6"> 970 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 971</svg> 972 973 </summary> 974 <ul id="HeaderMenu-MenuList-2" class="header__submenu list-menu list-menu--disclosure gradient caption-large motion-reduce global-settings-popup" role="list" tabindex="-1"><li><a href="/collections/bed" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 975 Beds 976 </a></li><li><a href="/collections/nightstands-1" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 977 Nightstands 978 </a></li><li><a href="/collections/dressers" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 979 Dressers 980 </a></li></ul> 981 </details> 982 </header-menu></li><li><header-menu> 983 <details id="Details-HeaderMenu-3"> 984 <summary class="header__menu-item list-menu__item link focus-inset"> 985 <span>Dining Room</span> 986 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6"> 987 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 988</svg> 989 990 </summary> 991 <ul id="HeaderMenu-MenuList-3" class="header__submenu list-menu list-menu--disclosure gradient caption-large motion-reduce global-settings-popup" role="list" tabindex="-1"><li><a href="/collections/dining-tables" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 992 Dining Tables 993 </a></li><li><a href="/collections/dining-chairs" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 994 Dining Chairs 995 </a></li><li><a href="/collections/dining-benches" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 996 Dining Benches 997 </a></li><li><a href="/collections/sideboards-and-hutches" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 998 Sideboards and Hutches 999 </a></li><li><a href="/collections/stools" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1000 Stools 1001 </a></li></ul> 1002 </details> 1003 </header-menu></li><li><header-menu> 1004 <details id="Details-HeaderMenu-4"> 1005 <summary class="header__menu-item list-menu__item link focus-inset"> 1006 <span>Living Room</span> 1007 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6"> 1008 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 1009</svg> 1010 1011 </summary> 1012 <ul id="HeaderMenu-MenuList-4" class="header__submenu list-menu list-menu--disclosure gradient caption-large motion-reduce global-settings-popup" role="list" tabindex="-1"><li><a href="/collections/sofas-and-loveseats" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1013 Sofas and Loveseats 1014 </a></li><li><a href="/collections/lounge-chairs-and-ottomans" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1015 Lounge Chairs and Ottomans 1016 </a></li><li><a href="/collections/benches" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1017 Benches 1018 </a></li><li><a href="/collections/media-console-and-storage" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1019 Media Console and Storage 1020 </a></li><li><a href="/collections/coffee-tables" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1021 Coffee Tables 1022 </a></li><li><a href="/collections/end-tables" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1023 End Tables 1024 </a></li><li><a href="/collections/entry-tables" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1025 Entry Tables 1026 </a></li></ul> 1027 </details> 1028 </header-menu></li><li><header-menu> 1029 <details id="Details-HeaderMenu-5"> 1030 <summary class="header__menu-item list-menu__item link focus-inset">
1031 <span>Office</span> 1032 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6"> 1033 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 1034</svg> 1035 1036 </summary> 1037 <ul id="HeaderMenu-MenuList-5" class="header__submenu list-menu list-menu--disclosure gradient caption-large motion-reduce global-settings-popup" role="list" tabindex="-1"><li><a href="/collections/desks" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1038 Desks 1039 </a></li><li><a href="/collections/bookcases-and-storage" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1040 Bookcases and Storage 1041 </a></li></ul> 1042 </details> 1043 </header-menu></li><li><header-menu> 1044 <details id="Details-HeaderMenu-6"> 1045 <summary class="header__menu-item list-menu__item link focus-inset"> 1046 <span>Accessories</span> 1047 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret" viewBox="0 0 10 6"> 1048 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 1049</svg> 1050 1051 </summary> 1052 <ul id="HeaderMenu-MenuList-6" class="header__submenu list-menu list-menu--disclosure gradient caption-large motion-reduce global-settings-popup" role="list" tabindex="-1"><li><a href="/collections/home-accessories" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1053 Home Accessories 1054 </a></li><li><a href="/collections/finish" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1055 Finish 1056 </a></li><li><a href="/collections/gift-guide" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1057 Gift Guide 1058 </a></li></ul> 1059 </details> 1060 </header-menu></li><li><a href="/pages/customize" class="header__menu-item list-menu__item link link--text focus-inset"> 1061 <span>Customize</span> 1062 </a></li><li><a href="/blogs/news" class="header__menu-item list-menu__item link link--text focus-inset"> 1063 <span>News</span> 1064 </a></li><li><a href="/pages/contact" class="header__menu-item list-menu__item link link--text focus-inset"> 1065 <span>Contact</span> 1066 </a></li></ul> 1067 </nav><div class="header__icons"> 1068 <details-modal class="header__search"> 1069 <details> 1070 <summary class="header__icon header__icon--search header__icon--summary link focus-inset modal__toggle" aria-haspopup="dialog" aria-label="Search"> 1071 <span> 1072 <svg class="modal__toggle-open icon icon-search" aria-hidden="true" focusable="false" role="presentation"> 1073 <use href="#icon-search"> 1074 </svg> 1075 <svg class="modal__toggle-close icon icon-close" aria-hidden="true" focusable="false" role="presentation"> 1076 <use href="#icon-close"> 1077 </svg> 1078 </span> 1079 </summary> 1080 <div class="search-modal modal__content gradient" role="dialog" aria-modal="true" aria-label="Search"> 1081 <div class="modal-overlay"></div> 1082 <div class="search-modal__content search-modal__content-bottom" tabindex="-1"><form action="/search" method="get" role="search" class="search search-modal__form"> 1083 <div class="field"> 1084 <input class="search__input field__input" 1085 id="Search-In-Modal" 1086 type="search" 1087 name="q" 1088 value="" 1089 placeholder="Search"> 1090 <label class="field__label" for="Search-In-Modal">Search</label> 1091 <input type="hidden" name="options[prefix]" value="last"> 1092 <button class="search__button field__button" aria-label="Search"> 1093 <svg class="icon icon-search" aria-hidden="true" focusable="false" role="presentation"> 1094 <use href="#icon-search"> 1095 </svg> 1096 </button> 1097 </div></form><button type="button" class="search-modal__close-button modal__close-button link link--text focus-inset" aria-label="Close"> 1098 <svg class="icon icon-close" aria-hidden="true" focusable="false" role="presentation"> 1099 <use href="#icon-close"> 1100 </svg> 1101 </button> 1102 </div> 1103 </div> 1104 </details> 1105 </details-modal><a href="https://thejoinery.com/customer_authentication/redirect?locale=en®ion_country=US" class="header__icon header__icon--account link focus-inset small-hide"> 1106 <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-account" fill="none" viewBox="0 0 18 19"> 1107 <path fill-rule="evenodd" clip-rule="evenodd" d="M6 4.5a3 3 0 116 0 3 3 0 01-6 0zm3-4a4 4 0 100 8 4 4 0 000-8zm5.58 12.15c1.12.82 1.83 2.24 1.91 4.85H1.51c.08-2.6.79-4.03 1.9-4.85C4.66 11.75 6.5 11.5 9 11.5s4.35.26 5.58 1.15zM9 10.5c-2.5 0-4.65.24-6.17 1.35C1.27 12.98.5 14.93.5 18v.5h17V18c0-3.07-.77-5.02-2.33-6.15-1.52-1.
11071-3.67-1.35-6.17-1.35z" fill="currentColor"> 1108</svg> 1109 1110 <span class="visually-hidden">Log in</span> 1111 </a><a href="/cart" class="header__icon header__icon--cart link focus-inset" id="cart-icon-bubble"><svg class="icon icon-cart-empty" aria-hidden="true" focusable="false" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" fill="none"> 1112 <path d="m15.75 11.8h-3.16l-.77 11.6a5 5 0 0 0 4.99 5.34h7.38a5 5 0 0 0 4.99-5.33l-.78-11.61zm0 1h-2.22l-.71 10.67a4 4 0 0 0 3.99 4.27h7.38a4 4 0 0 0 4-4.27l-.72-10.67h-2.22v.63a4.75 4.75 0 1 1 -9.5 0zm8.5 0h-7.5v.63a3.75 3.75 0 1 0 7.5 0z" fill="currentColor" fill-rule="evenodd"/> 1113</svg> 1114<span class="visually-hidden">Cart</span></a> 1115 </div> 1116 </header> 1117</sticky-header> 1118 1119<cart-notification> 1120 <div class="cart-notification-wrapper page-width"> 1121 <div id="cart-notification" class="cart-notification focus-inset color-background-1 gradient" aria-modal="true" aria-label="Item added to your cart" role="dialog" tabindex="-1"> 1122 <div class="cart-notification__header"> 1123 <h2 class="cart-notification__heading caption-large text-body"><svg class="icon icon-checkmark color-foreground-text" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 9" fill="none"> 1124 <path fill-rule="evenodd" clip-rule="evenodd" d="M11.35.643a.5.5 0 01.006.707l-6.77 6.886a.5.5 0 01-.719-.006L.638 4.845a.5.5 0 11.724-.69l2.872 3.011 6.41-6.517a.5.5 0 01.707-.006h-.001z" fill="currentColor"/> 1125</svg> 1126Item added to your cart</h2> 1127 <button type="button" class="cart-notification__close modal__close-button link link--text focus-inset" aria-label="Close"> 1128 <svg class="icon icon-close" aria-hidden="true" focusable="false"><use href="#icon-close"></svg> 1129 </button> 1130 </div> 1131 <div id="cart-notification-product" class="cart-notification-product"></div> 1132 <div class="cart-notification__links"> 1133 <a href="/cart" id="cart-notification-button" class="button button--secondary button--full-width"></a> 1134 <form action="/cart" method="post" id="cart-notification-form"> 1135 <button class="button button--primary button--full-width" name="checkout">Check out</button> 1136 </form> 1137 <button type="button" class="link button-label">Continue shopping</button> 1138 </div> 1139 </div> 1140 </div> 1141</cart-notification> 1142<style data-shopify> 1143 .cart-notification { 1144 display: none; 1145 } 1146</style> 1147 1148
1149<script type="application/ld+json"> 1150 { 1151 "@context": "https://schema.org", 1152 "@type": "Organization", 1153 "name": "The Joinery", 1154 1155 "logo": "https:\/\/thejoinery.com\/cdn\/shop\/files\/joinery_logo.png?v=1675283678\u0026width=460", 1156 1157 "sameAs": [ 1158 "", 1159 "https:\/\/www.facebook.com\/thejoinerypdx", 1160 "", 1161 "https:\/\/www.instagram.com\/thejoinery\/", 1162 "", 1163 "", 1164 "", 1165 "", 1166 "" 1167 ], 1168 "url": "https:\/\/thejoinery.com" 1169 } 1170</script>
1170 1171
1171<script type="application/ld+json"> 1172 { 1173 "@context": "https://schema.org", 1174 "@type": "WebSite", 1175 "name": "The Joinery", 1176 "potentialAction": { 1177 "@type": "SearchAction", 1178 "target": "https:\/\/thejoinery.com\/search?q={search_term_string}", 1179 "query-input": "required name=search_term_string" 1180 }, 1181 "url": "https:\/\/thejoinery.com" 1182 } 1183 </script>
1183 1184</div> 1185 <main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1"> 1186 <section id="shopify-section-template--17787349532960__f63438b5-811e-4e01-a3e0-b000a8b74656" class="shopify-section section"><link href="//thejoinery.com/cdn/shop/t/2/assets/section-image-banner.css?v=170916557215809668651675285420" rel="stylesheet" type="text/css" media="all" /> 1187<style data-shopify>@media screen and (max-width: 749px) { 1188 #Banner-template--17787349532960__f63438b5-811e-4e01-a3e0-b000a8b74656::before, 1189 #Banner-template--17787349532960__f63438b5-811e-4e01-a3e0-b000a8b74656 .banner__media::before, 1190 #Banner-template--17787349532960__f63438b5-811e-4e01-a3e0-b000a8b74656:not(.banner--mobile-bottom) .banner__content::before { 1191 padding-bottom: 50.0%; 1192 content: ''; 1193 display: block; 1194 } 1195 } 1196 1197 @media screen and (min-width: 750px) { 1198 #Banner-template--17787349532960__f63438b5-811e-4e01-a3e0-b000a8b74656::before, 1199 #Banner-template--17787349532960__f63438b5-811e-4e01-a3e0-b000a8b74656 .banner__media::before { 1200 padding-bottom: 50.0%; 1201 content: ''; 1202 display: block; 1203 } 1204 }</style><style data-shopify>#Banner-template--17787349532960__f63438b5-811e-4e01-a3e0-b000a8b74656::after { 1205 opacity: 0.0; 1206 }</style><div id="Banner-template--17787349532960__f63438b5-811e-4e01-a3e0-b000a8b74656" class="banner banner--content-align-center banner--content-align-mobile-center banner--large banner--adapt banner--desktop-transparent"><div class="banner__media media"><img src="//thejoinery.com/cdn/shop/files/Studio-Maple-Table-version3_d75a892c-0b48-410e-be23-dbd1a5dc207a.jpg?v=1790362201&width=1500" srcset="//thejoinery.com/cdn/shop/files/Studio-Maple-Table-version3_d75a892c-0b48-410e-be23-dbd1a5dc207a.jpg?v=1790362201&width=375 375w, //thejoinery.com/cdn/shop/files/Studio-Maple-Table-version3_d75a892c-0b48-410e-be23-dbd1a5dc207a.jpg?v=1790362201&width=550 550w, //thejoinery.com/cdn/shop/files/Studio-Maple-Table-version3_d75a892c-0b48-410e-be23-dbd1a5dc207a.jpg?v=1790362201&width=750 750w, //thejoinery.com/cdn/shop/files/Studio-Maple-Table-version3_d75a892c-0b48-410e-be23-dbd1a5dc207a.jpg?v=1790362201&width=1100 1100w, //thejoinery.com/cdn/shop/files/Studio-Maple-Table-version3_d75a892c-0b48-410e-be23-dbd1a5dc207a.jpg?v=1790362201&width=1500 1500w" width="2000" height="1000.0" loading="lazy" sizes="100vw"> 1207 </div><div class="banner__content banner__content--bottom-right page-width"> 1208 <div class="banner__box content-container content-container--full-width-mobile color-background-1 gradient"><div class="banner__buttons" ><a href="/collections/dining-tables" class="button button--secondary">Handcrafted Dining Tables</a></div><div class="banner__text subtitle" > 1209 <span></span> 1210 </div></div> 1211 </div> 1212</div> 1213 1214 1215<style> #shopify-section-template--17787349532960__f63438b5-811e-4e01-a3e0-b000a8b74656 .banner__buttons {max-width: unset;} #shopify-section-template--17787349532960__f63438b5-811e-4e01-a3e0-b000a8b74656 .banner--desktop-transparent .button--secondary {background: rgba(255, 255, 255, 0.7); color: #000; font-size: 3rem; font-weight: 500; letter-spacing: 0.5px; padding: 2rem 3rem; white-space: nowrap;} #shopify-section-template--17787349532960__f63438b5-811e-4e01-a3e0-b000a8b74656 .banner--desktop-transparent .button--secondary:hover {background: #fff;} @media screen and (max-width: 749px) {#shopify-section-template--17787349532960__f63438b5-811e-4e01-a3e0-b000a8b74656 .banner--desktop-transparent .button--secondary {font-size: 1.5rem; padding: 1rem 2rem; }} </style></section><section id="shopify-section-template--17787349532960__abe9a5cd-53f3-4116-b1e9-a745a99e8d50" class="shopify-section section"><link href="//thejoinery.com/cdn/shop/t/2/assets/section-multicolumn.css?v=138363567467112740511675285420" rel="stylesheet" type="text/css" media="all" /> 1216<link rel="stylesheet" href="//thejoinery.com/cdn/shop/t/2/assets/component-slider.css?v=111384418465749404671675285420" media="print" onload="this.media='all'"> 1217<noscript><link href="//thejoinery.com/cdn/shop/t/2/assets/component-slider.css?v=111384418465749404671675285420" rel="stylesheet" type="text/css" media="all" /></noscript><style data-shopify>.section-template--17787349532960__abe9a5cd-53f3-4116-b1e9-a745a99e8d50-padding { 1218 padding-top: 39px; 1219 padding-bottom: 39px; 1220 } 1221 1222 @media screen and (min-width: 750px) { 1223 .section-template--17787349532960__abe9a5cd-53f3-4116-b1e9-a745a99e8d50-padding { 1224 padding-top: 52px; 1225 padding-bottom: 52px; 1226 } 1227 }</style><div class="multicolumn color-background-2 gradient background-none no-heading"> 1228 <div class="page-width section-template--17787349532960__abe9a5cd-53f3-4116-b1e9-a745a99e8d50-padding isolate"><slider-component class="slider-mobile-gutter"> 1229 <ul class="multicolumn-list contains-content-container grid grid--1-col-tablet-down grid--1-col-desktop" 1230 id="Slider-template--17787349532960__abe9a5cd-53f3-4116-b1e9-a745a99e8d50" 1231 role="list" 1232 ><li id="Slide-template--17787349532960__abe9a5cd-53f3-4116-b1e9-a745a99e8d50-1" class="multicolumn-list__item grid__item center" > 1233 <div class="multicolumn-card content-container"> 1234 <div class="multicolumn-card__image-wrapper multicolumn-card__image-wrapper--full-width multicolumn-card-spacing"> 1235 <a href="/pages/about"> 1236 <div class="media media--transparent media--adapt" 1237 1238 style="padding-bottom: 60.16666666666667%;" 1239 ><img src="//thejoinery.com/cdn/shop/files/joinery_furniture_here_for_good.jpg?v=1696254423&width=1420" alt="Image of Western Walnut with the text: "Since 1982 The Joinery has created handcrafted furniture that's here for good. Designed and built in Portland, Oregon" Link to About us page at thejoinery.com" srcset="//thejoinery.com/cdn/shop/files/joinery_furniture_here_for_good.jpg?v=1696254423&width=275 275w, //thejoinery.com/cdn/shop/files/joinery_furniture_here_for_good.jpg?v=1696254423&width=550 550w, //thejoinery.com/cdn/shop/files/joinery_furniture_here_for_good.jpg?v=1696254423&width=710 710w, //thejoinery.com/cdn/shop/files/joinery_furniture_here_for_good.jpg?v=1696254423&width=1420 1420w" width="1420" height="854" loading="lazy" sizes="(min-width: 990px) 710px, (min-width: 750px) 710px, calc(100vw - 30px)" class="multicolumn-card__image"> 1240 </div> 1241 </a> 1242 </div><div class="multicolumn-card__info"></div> 1243 </div> 1244 </li></ul></slider-component> 1245 <div class="center"></div> 1246 </div> 1247</div> 1248 1249 1250<style> #shopify-section-template--17787349532960__abe9a5cd-53f3-4116-b1e9-a745a99e8d50 .color-background-2 {background: #e5e5e1 !important;} #shopify-section-template--17787349532960__abe9a5cd-53f3-4116-b1e9-a745a99e8d50 .multicolumn-list__item:only-child {max-width: 85%;} </style></section><section id="shopify-section-template--17787349532960__image_banner_rr4jxG" class="shopify-section section"><link href="//thejoinery.com/cdn/shop/t/2/assets/section-image-banner.css?v=170916557215809668651675285420" rel="stylesheet" type="text/css" media="all" /> 1251<style data-shopify>@media screen and (max-width: 749px) { 1252 #Banner-template--17787349532960__image_banner_rr4jxG::before, 1253 #Banner-template--17787349532960__image_banner_rr4jxG .banner__media::before, 1254 #Banner-template--17787349532960__image_banner_rr4jxG:not(.banner--mobile-bottom) .banner__content::before { 1255 padding-bottom: 50.0%; 1256 content: ''; 1257 display: block; 1258 } 1259 } 1260 1261 @media screen and (min-width: 750px) { 1262 #Banner-template--17787349532960__image_banner_rr4jxG::before, 1263 #Banner-template--17787349532960__image_banner_rr4jxG .banner__media::before { 1264 padding-bottom: 50.0%; 1265 content: ''; 1266 display: block; 1267 } 1268 }</style><style data-shopify>#Banner-template--17787349532960__image_banner_rr4jxG::after { 1269 opacity: 0.0; 1270 }</style><div id="Banner-template--17787349532960__image_banner_rr4jxG" class="banner banner--content-align-center banner--content-align-mobile-center banner--large banner--adapt banner--mobile-bottom banner--desktop-trans
1270parent"><div class="banner__media media"><img src="//thejoinery.com/cdn/shop/files/CT7A_ALAMEDA-COFFEE-TABLE.jpg?v=1778733881&width=1500" alt="Burnt orange sofa with colorful cushions and a wooden coffee table with a mosaic design in a room with large windows." srcset="//thejoinery.com/cdn/shop/files/CT7A_ALAMEDA-COFFEE-TABLE.jpg?v=1778733881&width=375 375w, //thejoinery.com/cdn/shop/files/CT7A_ALAMEDA-COFFEE-TABLE.jpg?v=1778733881&width=550 550w, //thejoinery.com/cdn/shop/files/CT7A_ALAMEDA-COFFEE-TABLE.jpg?v=1778733881&width=750 750w, //thejoinery.com/cdn/shop/files/CT7A_ALAMEDA-COFFEE-TABLE.jpg?v=1778733881&width=1100 1100w, //thejoinery.com/cdn/shop/files/CT7A_ALAMEDA-COFFEE-TABLE.jpg?v=1778733881&width=1500 1500w" width="2000" height="1000.0" loading="lazy" sizes="100vw"> 1271 </div><div class="banner__content banner__content--bottom-center page-width"> 1272 <div class="banner__box content-container content-container--full-width-mobile color-background-1 gradient"><div class="banner__buttons" ><a href="/blogs/news/introducing-the-alameda-coffee-table" class="button button--primary">Meet the Alameda</a></div></div> 1273 </div> 1274</div> 1275 1276 1277<style> #shopify-section-template--17787349532960__image_banner_rr4jxG #Banner-template--17787349532960__image_banner_rr4jxG .banner__buttons a.button--primary {background: rgba(255, 255, 255, 0.7); color: #000; font-size: 2.125rem; font-weight: 500; letter-spacing: 0.5px; padding: 2rem 3rem; white-space: nowrap;} #shopify-section-template--17787349532960__image_banner_rr4jxG #Banner-template--17787349532960__image_banner_rr4jxG .banner__buttons a.button--primary:hover {background: #fff;} </style></section><section id="shopify-section-template--17787349532960__304feae2-2a25-41e1-80f6-ee7f8a40263e" class="shopify-section section"><link href="//thejoinery.com/cdn/shop/t/2/assets/section-multicolumn.css?v=138363567467112740511675285420" rel="stylesheet" type="text/css" media="all" /> 1278<link rel="stylesheet" href="//thejoinery.com/cdn/shop/t/2/assets/component-slider.css?v=111384418465749404671675285420" media="print" onload="this.media='all'"> 1279<noscript><link href="//thejoinery.com/cdn/shop/t/2/assets/component-slider.css?v=111384418465749404671675285420" rel="stylesheet" type="text/css" media="all" /></noscript><style data-shopify>.section-template--17787349532960__304feae2-2a25-41e1-80f6-ee7f8a40263e-padding { 1280 padding-top: 39px; 1281 padding-bottom: 39px; 1282 } 1283 1284 @media screen and (min-width: 750px) { 1285 .section-template--17787349532960__304feae2-2a25-41e1-80f6-ee7f8a40263e-padding { 1286 padding-top: 52px; 1287 padding-bottom: 52px; 1288 } 1289 }</style><div class="multicolumn color-background-1 gradient background-none"> 1290 <div class="page-width section-template--17787349532960__304feae2-2a25-41e1-80f6-ee7f8a40263e-padding isolate"><div class="title-wrapper-with-link title-wrapper--self-padded-mobile title-wrapper--no-top-margin"> 1291 <h2 class="title h1"> 1292 featured press 1293 </h2></div><slider-component class="slider-mobile-gutter"> 1294 <ul class="multicolumn-list contains-content-container grid grid--2-col-tablet-down grid--6-col-desktop" 1295 id="Slider-template--17787349532960__304feae2-2a25-41e1-80f6-ee7f8a40263e" 1296 role="list" 1297 ><li id="Slide-template--17787349532960__304feae2-2a25-41e1-80f6-ee7f8a40263e-1" class="multicolumn-list__item grid__item center" > 1298 <div class="multicolumn-card content-container"> 1299 <div class="multicolumn-card__image-wrapper multicolumn-card__image-wrapper--full-width multicolumn-card-spacing"> 1300 <a href="https://www.washingtonpost.com/graphics/2020/road-to-recovery/supply-chain-wood/"> 1301 <div class="media media--transparent media--adapt" 1302 1303 style="padding-bottom: 100.0%;" 1304 ><img src="//thejoinery.com/cdn/shop/files/press_wapo.png?v=1694090109&width=1420" alt="Link to The Washington Post Website" srcset="//thejoinery.com/cdn/shop/files/press_wapo.png?v=1694090109&width=275 275w, //thejoinery.com/cdn/shop/files/press_wapo.png?v=1694090109&width=550 550w, //thejoinery.com/cdn/shop/files/press_wapo.png?v=1694090109&width=710 710w, //thejoinery.com/cdn/shop/files/press_wapo.png?v=1694090109&width=1420 1420w" width="1420" height="1420" loading="lazy" sizes="(min-width: 990px) 550px, (min-width: 750px) 550px, calc(100vw - 30px)" class="multicolumn-card__image"> 1305 </div> 1306 </a> 1307 </div><div class="multicolumn-card__info"></div> 1308 </div> 1309 </li><li id="Slide-template--17787349532960__304feae2-2a25-41e1-80f6-ee7f8a40263e-2" class="multicolumn-list__item grid__item center" > 1310 <div class="multicolumn-card content-container"> 1311 <div class="multicolumn-card__image-wrapper multicolumn-card__image-wrapper--full-width multicolumn-card-spacing"> 1312 <a href="https://issuu.com/graymag/docs/gray_magazine_issue_3/16"> 1313 <div class="media media--transparent media--adapt" 1314 1315 style="padding-bottom: 100.0%;" 1316 ><img src="//thejoinery.com/cdn/shop/files/press_gray.png?v=1694091748&width=1420" alt="Link to Gray Magazine website" srcset="//thejoinery.com/cdn/shop/files/press_gray.png?v=1694091748&width=275 275w, //thejoinery.com/cdn/shop/files/press_gray.png?v=1694091748&width=550 550w, //thejoinery.com/cdn/shop/files/press_gray.png?v=1694091748&width=710 710w, //thejoinery.com/cdn/shop/files/press_gray.png?v=1694091748&width=1420 1420w" width="1420" height="1420" loading="lazy" sizes="(min-width: 990px) 550px, (min-width: 750px) 550px, calc(100vw - 30px)" class="multicolumn-card__image"> 1317 </div> 1318 </a> 1319 </div><div class="multicolumn-card__info"></div> 1320 </div> 1321 </li><li id="Slide-template--17787349532960__304feae2-2a25-41e1-80f6-ee7f8a40263e-3" class="multicolumn-list__item grid__item center" > 1322 <div class="multicolumn-card content-container"> 1323 <div class="multicolumn-card__image-wrapper multicolumn-card__image-wrapper--full-width multicolumn-card-spacing"> 1324 <a href="https://www.bhg.com/best-places-to-buy-furniture-7564618"> 1325 <div class="media media--transparent media--adapt" 1326 1327 style="padding-bottom: 100.0%;" 1328 ><img src="//thejoinery.com/cdn/shop/files/press_bhg.png?v=1694091747&width=1420" alt="Link to Better Homes & Garden website" srcset="//thejoinery.com/cdn/shop/files/press_bhg.png?v=1694091747&width=275 275w, //thejoinery.com/cdn/shop/files/press_bhg.png?v=1694091747&width=550 550w, //thejoinery.com/cdn/shop/files/press_bhg.png?v=1694091747&width=710 710w, //thejoinery.com/cdn/shop/files/press_bhg.png?v=1694091747&width=1420 1420w" width="1420" height="1420" loading="lazy" sizes="(min-width: 990px) 550px, (min-width: 750px) 550px, calc(100vw - 30px)" class="multicolumn-card__image"> 1329 </div> 1330 </a> 1331 </div><div class="multicolumn-card__info"></div> 1332 </div> 1333 </li><li id="Slide-template--17787349532960__304feae2-2a25-41e1-80f6-ee7f8a40263e-4" class="multicolumn-list__item grid__item center" > 1334 <div class="multicolumn-card content-container"> 1335 <div class="multicolumn-card__image-wrapper multicolumn-card__image-wrapper--full-width multicolumn-card-spacing"> 1336 <a href="https://www.architecturaldigest.com/story/shopping-tariffs"> 1337 <div class="media media--transparent media--adapt" 1338 1339 style="padding-bottom: 100.0%;" 1340 ><img src="//thejoinery.com/cdn/shop/files/press_ad.png?v=1694091858&width=1420" alt="Link to Architectural Digest (AD) website" srcset="//thejoinery.com/cdn/shop/files/press_ad.png?v=1694091858&width=275 275w, //thejoinery.com/cdn/shop/files/press_ad.png?v=1694091858&width=550 550w, //thejoinery.com/cdn/shop/files/press_ad.png?v=1694091858&width=710 710w, //thejoinery.com/cdn/shop/files/press_ad.png?v=1694091858&width=1420 1420w" width="1420" height="1420" loading="lazy" sizes="(min-width: 990px) 550px, (min-width: 750px) 550px, calc(100vw - 30px)" class="multicolumn-card__image"> 1341 </div> 1342 </a> 1343 </div><div class="multicolumn-card__info"></div> 1344 </div> 1345 </li><li id="Slide-template--17787349532960__304feae2-2a25-41e1-80f6-ee7f8a40263e-5" class="multicolumn-list__item grid__item center" > 1346 <div class="multicolumn-card content-container"> 1347 <div class="multicolumn-card__image-wrapper multicolumn-card__image-wrapper--full-width multicolumn-card-spacing"> 1348 <a href="https://www.sunset.com/home-garden/home-tours/berkeley-craftsman-remodel-empty-nest"> 1349 <div class="media media--transparent media--adapt" 1350 1351 style="padding-bottom: 100.0%;" 1352 ><img src="//thejoinery.com/cdn/shop/files/press_sunset.png?v=1694091747&width=1420" alt="Link to Sunset Magazine website" srcset="//thejoinery.com/cdn/shop/files/press_sunset.png?v=1694091747&width=275 275w, //thejoinery.com/cdn/shop/files/press_sunset.png?v=1694091747&width=550 550w, //thejoinery.com/cdn/shop/files/press_sunset.png?v=1694091747&width=710 710w, //thejoinery.com/cdn/shop/files/press_sunset.png?v=1694091747&width=1420 1420w" width="1420" height="1420" loading="lazy" sizes="(min-width: 990px) 550px, (min-width: 750px) 550px, calc(100vw - 30px)" class="multicolumn-card__image"> 1353 </div> 1354 </a> 1355 </div><div class="multicolumn-card__info"></div> 1356 </div> 1357 </li><li id="Slide-template--17787349532960__304feae2-2a25-41e1-80f6-ee7f8a40263e-6" class="multicolumn-list__item grid__item center" > 1358 <div class="multicolumn-card content-container"> 1359 <div class="multicolumn-card__image-wrapper multicolumn-card__image-wrapper--full-width multicolumn-card-spacing"> 1360 <a href="https://www.thespruce.com/best-made-in-america-furniture-1391263"> 1361 <div class="media media--transparent media--adapt" 1362 1363 style="padding-bottom: 100.0%;" 1364 ><img src="//thejoinery.com/cdn/shop/files/press_spruce.png?v=1694091747&width=1420" alt="Link to The Spruce Website" srcset="//thejoinery.com/cdn/shop/files/press_spruce.png?v=1694091747&width=275 275w, //thejoinery.com/cdn/shop/files/press_spruce.png?v=1694091747&width=550 550w, //thejoinery.com/cdn/shop/files/press_spruce.png?v=1694091747&width=710 710w, //thejoinery.com/cdn/shop/files/press_spruce.png?v=1694091747&width=1420 1420w" width="1420" height="1420" loading="lazy" sizes="(min-width: 990px) 550px, (min-width: 750px) 550px, calc(100vw - 30px)" class="multicolumn-card__image"> 1365 </div> 1366 </a> 1367 </div><div class="multicolumn-card__info"></div> 1368 </div> 1369 </li></ul></slider-component> 1370 <div class="center"></div> 1371 </div> 1372</div> 1373 1374 1375<style> #shopify-section-template--17787349532960__304feae2-2a25-41e1-80f6-ee7f8a40263e h2 {font-size: 3.25rem; margin: 0 auto; text-align: center; text-transform: lowercase;} </style></section><section id="shopify-section-template--17787349532960__ba7b0bea-8479-426c-91a6-22161ab6e340" class="shopify-section section"><link href="//thejoinery.com/cdn/shop/t/2/assets/section-image-banner.css?v=170916557215809668651675285420" rel="stylesheet" type="text/css" media="all" /> 1376<style data-shopify>#Banner-template--17787349532960__ba7b0bea-8479-426c-91a6-22161ab6e340::after { 1377 opacity: 0.0; 1378 }</style><div id="Banner-template--17787349532960__ba7b0bea-8479-426c-91a6-22161ab6e340" class="banner banner--content-align-right banner--content-align-mobile-center banner--large banner--mobile-bottom"><div class="banner__media media">
1378<img src="//thejoinery.com/cdn/shop/files/Modern-Nightstand.jpg?v=1777672854&width=1500" alt="Wooden dresser with open drawer on a light wooden floor" srcset="//thejoinery.com/cdn/shop/files/Modern-Nightstand.jpg?v=1777672854&width=375 375w, //thejoinery.com/cdn/shop/files/Modern-Nightstand.jpg?v=1777672854&width=550 550w, //thejoinery.com/cdn/shop/files/Modern-Nightstand.jpg?v=1777672854&width=750 750w, //thejoinery.com/cdn/shop/files/Modern-Nightstand.jpg?v=1777672854&width=1100 1100w, //thejoinery.com/cdn/shop/files/Modern-Nightstand.jpg?v=1777672854&width=1500 1500w" width="2000" height="1000.0" loading="lazy" sizes="100vw"> 1379 </div><div class="banner__content banner__content--bottom-left page-width"> 1380 <div class="banner__box content-container content-container--full-width-mobile color-background-2 gradient"><div class="banner__text body" > 1381 <span>"This is our ninth purchase in 20 years and completes our master bedroom set." -Susan</span> 1382 </div><div class="banner__buttons" ><a href="/pages/furniture-guarantee-warranty" class="button button--primary">Learn about our guarantee</a></div></div> 1383 </div> 1384</div> 1385 1386 1387<style> @media screen and (min-width: 1400px) {#shopify-section-template--17787349532960__ba7b0bea-8479-426c-91a6-22161ab6e340 .banner__box {max-width: 70rem; }} #shopify-section-template--17787349532960__ba7b0bea-8479-426c-91a6-22161ab6e340 .banner__text span {font-size: 3rem; color: #000; letter-spacing: 0; font-style: italic; line-height: 1.3; margin-bottom: 2rem; display: block;} #shopify-section-template--17787349532960__ba7b0bea-8479-426c-91a6-22161ab6e340 .banner__buttons {background: #000;} #shopify-section-template--17787349532960__ba7b0bea-8479-426c-91a6-22161ab6e340 .banner__buttons a {opacity: 1; font-size: 2rem; font-weight: 700; text-transform: uppercase;} @media screen and (max-width: 749px) {#shopify-section-template--17787349532960__ba7b0bea-8479-426c-91a6-22161ab6e340 .banner__text span, #shopify-section-template--17787349532960__ba7b0bea-8479-426c-91a6-22161ab6e340 .banner__buttons a {font-size: 1.75rem; }} </style></section><section id="shopify-section-template--17787349532960__79f945c2-0a48-4c0e-b035-cf812fe82ead" class="shopify-section section"><link href="//thejoinery.com/cdn/shop/t/2/assets/section-multicolumn.css?v=138363567467112740511675285420" rel="stylesheet" type="text/css" media="all" /> 1388<link rel="stylesheet" href="//thejoinery.com/cdn/shop/t/2/assets/component-slider.css?v=111384418465749404671675285420" media="print" onload="this.media='all'"> 1389<noscript><link href="//thejoinery.com/cdn/shop/t/2/assets/component-slider.css?v=111384418465749404671675285420" rel="stylesheet" type="text/css" media="all" /></noscript><style data-shopify>.section-template--17787349532960__79f945c2-0a48-4c0e-b035-cf812fe82ead-padding { 1390 padding-top: 39px; 1391 padding-bottom: 39px; 1392 } 1393 1394 @media screen and (min-width: 750px) { 1395 .section-template--17787349532960__79f945c2-0a48-4c0e-b035-cf812fe82ead-padding { 1396 padding-top: 52px; 1397 padding-bottom: 52px; 1398 } 1399 }</style><div class="multicolumn color-background-1 gradient background-none no-heading"> 1400 <div class="page-width section-template--17787349532960__79f945c2-0a48-4c0e-b035-cf812fe82ead-padding isolate"><slider-component class="slider-mobile-gutter"> 1401 <ul class="multicolumn-list contains-content-container grid grid--1-col-tablet-down grid--1-col-desktop" 1402 id="Slider-template--17787349532960__79f945c2-0a48-4c0e-b035-cf812fe82ead" 1403 role="list" 1404 ><li id="Slide-template--17787349532960__79f945c2-0a48-4c0e-b035-cf812fe82ead-1" class="multicolumn-list__item grid__item center" > 1405 <div class="multicolumn-card content-container"> 1406 <div class="multicolumn-card__image-wrapper multicolumn-card__image-wrapper--full-width multicolumn-card-spacing"> 1407 <a href="/pages/craft"> 1408 <div class="media media--transparent media--adapt" 1409 1410 style="padding-bottom: 62.85714285714287%;" 1411 ><img src="//thejoinery.com/cdn/shop/files/Tenon_with-text.jpg?v=1760131930&width=1420" alt="Close-up of a craftspersonâs hands holding a piece of wood with the phrase "Meet the artists behind the craft" overlayed. Links to Craft page at www.thejoinery.com" srcset="//thejoinery.com/cdn/shop/files/Tenon_with-text.jpg?v=1760131930&width=275 275w, //thejoinery.com/cdn/shop/files/Tenon_with-text.jpg?v=1760131930&width=550 550w, //thejoinery.com/cdn/shop/files/Tenon_with-text.jpg?v=1760131930&width=710 710w, //thejoinery.com/cdn/shop/files/Tenon_with-text.jpg?v=1760131930&width=1420 1420w" width="1420" height="893" loading="lazy" sizes="(min-width: 990px) 710px, (min-width: 750px) 710px, calc(100vw - 30px)" class="multicolumn-card__image"> 1412 </div> 1413 </a> 1414 </div><div class="multicolumn-card__info"></div> 1415 </div> 1416 </li></ul></slider-component> 1417 <div class="center"></div> 1418 </div> 1419</div> 1420 1421 1422<style> #shopify-section-template--17787349532960__79f945c2-0a48-4c0e-b035-cf812fe82ead .multicolumn-list__item:only-child {max-width: 85%;} </style></section><section id="shopify-section-template--17787349532960__1753713492b8732cdb" class="shopify-section section"><div class="page-width"><div id="shopify-block-AempKVDJmL3Q2THgzQ__instafeed_app_block_6LAe4p" class="shopify-block shopify-app-block"> 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438<style> 1439 div[id*="instafeed_app_block"] { 1440 width: 100%; 1441 } 1442 div.shopify-section:has(>
1442 [id*="instafeed_app_block"]) { 1443 width: 100%; 1444 } 1445 1446 body #insta-feed { 1447 1448 1449 1450 1451 margin-bottom: 0px!important; 1452 1453 1454 1455 1456 1457 1458 1459 } 1460 1461 body #insta-feed h2 { 1462 1463 1464 1465 text-align: center; 1466 } 1467 1468 1469 1470</style> 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 <div id="insta-feed"></div> 1483
1483<script> 1484 if (typeof instafeedLocalTitle === 'undefined') var instafeedLocalTitle = ""; 1485 1486 </script>
1486 1487 1488 1489<!-- BEGIN app snippet: storefront-script --> 1490 1491 1492 1493
1493<script> 1494 var instafeedScriptSrc = "https:\/\/cdn.nfcube.com\/instafeed-41da8e67d9795a479d691cbca592320d.js"; 1495 var instafeedScriptMode = "defer"; 1496 !function(e,n){if(!window.instafeedStorefrontScheduled&&(window.instafeedStorefrontScheduled=!0,e))if("defer"!==n){if("consent"===n){var t=!1;function o(){t||(t=!0,a())}function i(){window.Shopify&&window.Shopify.customerPrivacy&&window.Shopify.customerPrivacy.marketingAllowed()&&o()}function d(){document.addEventListener("visitorConsentCollected",function(e){e.detail&&e.detail.marketingAllowed&&o()}),window.Shopify&&window.Shopify.loadFeatures?window.Shopify.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],i):i()}return void("loading"===document.readyState?document.addEventListener("DOMContentLoaded",d):d())}"complete"===document.readyState?a():window.addEventListener("load",function(){a()})}else"loading"===document.readyState?document.addEventListener("DOMContentLoaded",a):a();function r(e){return String(e).split("?")[0]}function a(){if(!function(){for(var n=document.getElementsByTagName("script"),t=r(e),o=0;o!==n.length;o++)if(r(n[o].src)===t)return!0;return!1}()){var n=document.createElement("script");n.async=!0,n.src=e,document.body.appendChild(n)}}}(instafeedScriptSrc,instafeedScriptMode); 1497 </script>
1497 1498 1499 1500<!-- END app snippet --> 1501 1502 1503 1504 1505 1506 1507</div> 1508</div> 1509 1510 1511</section><section id="shopify-section-template--17787349532960__324c3d63-9284-49be-ac8e-f024b4a56b8b" class="shopify-section section"><style data-shopify>.section-template--17787349532960__324c3d63-9284-49be-ac8e-f024b4a56b8b-padding { 1512 padding-top: calc(0px * 0.75); 1513 padding-bottom: calc(0px * 0.75); 1514} 1515 1516@media screen and (min-width: 750px) { 1517 .section-template--17787349532960__324c3d63-9284-49be-ac8e-f024b4a56b8b-padding { 1518 padding-top: 0px; 1519 padding-bottom: 0px; 1520 } 1521}</style><div class="color-background-2 gradient"> 1522 <div class="section-template--17787349532960__324c3d63-9284-49be-ac8e-f024b4a56b8b-padding"> 1523 <div id="newsletter"> 1524 1525<div id="newsletter-left"><img alt="Hands working on furniture" src="https://cdn.shopify.com/s/files/1/0712/5286/9408/files/joinery_newsletter.jpg?v=1694097530" /></div> 1526 1527<div id="newsletter-right"><h3>Stay in the Know</h3> 1528<p>Sign up for our newsletter to receive information about our new designs, events, special promotions, and our team.</p> 1529 1530 1531<div id="mc_embed_signup"> 1532<form action="//thejoinery.us1.list-manage.com/subscribe/post?u=47c9d532e46348143093864ca&id=68e8b886da" class="validate" id="mc-embedded-subscribe-form" method="post" name="mc-embedded-subscribe-form" novalidate target="_blank"> 1533<div id="mc_embed_signup_scroll"> 1534<input class="email" id="mce-EMAIL" name="EMAIL" placeholder="Email address" required type="email" value /> 1535<div style="position: absolute; left: -5000px;"> 1536<input aria-label="Hidden field inserted by Mailchimp" name="b_47c9d532e46348143093864ca_68e8b886da" tabindex="-1" type="text" value /></div> 1537<input class="button" id="mc-embedded-subscribe" name="subscribe" type="submit" value="Sign Up" /></div> 1538</form> 1539</div> 1540</div> 1541</div> 1542 </div> 1543</div> 1544 1545 1546<style> #shopify-section-template--17787349532960__324c3d63-9284-49be-ac8e-f024b4a56b8b #newsletter {background: #e5e5e1; float: left; margin-bottom: -5rem; width: 100%;} #shopify-section-template--17787349532960__324c3d63-9284-49be-ac8e-f024b4a56b8b #newsletter-left {float: left; line-height: 0.75; width: 50%;} #shopify-section-template--17787349532960__324c3d63-9284-49be-ac8e-f024b4a56b8b #newsletter-left img {max-width: 100%;} #shopify-section-template--17787349532960__324c3d63-9284-49be-ac8e-f024b4a56b8b #newsletter-right {float: left; padding: 3% 5%; width: 40%;} #shopify-section-template--17787349532960__324c3d63-9284-49be-ac8e-f024b4a56b8b #mc_embed_signup input {border: 1px solid #999; display: block; font-size: 18px; padding: 8px; margin: 0 0 10px; width: 58%; min-width: 130px; width: 100%;} #shopify-section-template--17787349532960__324c3d63-9284-49be-ac8e-f024b4a56b8b #mc_embed_signup input.button {background: #000; float: left; font-weight: 400; line-height: 100%; padding: 12px 0 10px; text-transform: uppercase; width: 70%;} </style></section><section id="shopify-section-template--17787349532960__1695825653c5a712b4" class="shopify-section section"><div class="page-width"></div> 1547 1548 1549</section><section id="shopify-section-template--17787349532960__17537134926eeaf03e" class="shopify-section section"><div class="page-width"><div id="shopify-block-Aclpqb2dFeE56d0l0a__shop_shop_login_button_app_block_V3kYBb" class="shopify-block shopify-app-block"> 1550
1550<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.shop-login-button.en.esm.js"></script>
vendor: 1 bytes, line 1550
1550
1551<script type="module"> 1552 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.shop-login-button.en.esm.js"); 1553 1554 1555</script>
1555 1556 1557<shop-login-button ux-mode="windoid" return-uri="https://thejoinery.com/account/redirect" source="app_block" persist-after-sign-in="false" proxy="true" proxy-core-idp="true" redirect-type="iframe" response-type="code"></shop-login-button> 1558 1559 1560 1561 1562</div> 1563</div> 1564 1565 1566</section> 1567 </main> 1568 1569 <div id="shopify-section-footer" class="shopify-section"> 1570<link href="//thejoinery.com/cdn/shop/t/2/assets/section-footer.css?v=83777583229853969691675285420" rel="stylesheet" type="text/css" media="all" /> 1571<link rel="stylesheet" href="//thejoinery.com/cdn/shop/t/2/assets/component-newsletter.css?v=103472482056003053551675285420" media="print" onload="this.media='all'"> 1572<link rel="stylesheet" href="//thejoinery.com/cdn/shop/t/2/assets/component-list-menu.css?v=151968516119678728991675285420" media="print" onload="this.media='all'"> 1573<link rel="stylesheet" href="//thejoinery.com/cdn/shop/t/2/assets/component-list-payment.css?v=69253961410771838501675285420" media="print" onload="this.media='all'"> 1574<link rel="stylesheet" href="//thejoinery.com/cdn/shop/t/2/assets/component-list-social.css?v=52211663153726659061675285420" media="print" onload="this.media='all'"> 1575<link rel="stylesheet" href="//thejoinery.com/cdn/shop/t/2/assets/component-rte.css?v=69919436638515329781675285420" media="print" onload="this.media='all'"> 1576<link rel="stylesheet" href="//thejoinery.com/cdn/shop/t/2/assets/disclosure.css?v=646595190999601341675285420" media="print" onload="this.media='all'"> 1577 1578<noscript><link href="//thejoinery.com/cdn/shop/t/2/assets/component-newsletter.css?v=103472482056003053551675285420" rel="stylesheet" type="text/css" media="all" /></noscript> 1579<noscript><link href="//thejoinery.com/cdn/shop/t/2/assets/component-list-menu.css?v=151968516119678728991675285420" rel="stylesheet" type="text/css" media="all" /></noscript> 1580<noscript><link href="//thejoinery.com/cdn/shop/t/2/assets/component-list-payment.css?v=69253961410771838501675285420" rel="stylesheet" type="text/css" media="all" /></noscript> 1581<noscript><link href="//thejoinery.com/cdn/shop/t/2/assets/component-list-social.css?v=52211663153726659061675285420" rel="stylesheet" type="text/css" media="all" /></noscript> 1582<noscript><link href="//thejoinery.com/cdn/shop/t/2/assets/component-rte.css?v=69919436638515329781675285420" rel="stylesheet" type="text/css" media="all" /></noscript> 1583<noscript><link href="//thejoinery.com/cdn/shop/t/2/assets/disclosure.css?v=646595190999601341675285420" rel="stylesheet" type="text/css" media="all" /></noscript><style data-shopify>.footer { 1584 margin-top: 36px; 1585 } 1586 1587 .section-footer-padding { 1588 padding-top: 27px; 1589 padding-bottom: 27px; 1590 } 1591 1592 @media screen and (min-width: 750px) { 1593 .footer { 1594 margin-top: 48px; 1595 } 1596 1597 .section-footer-padding { 1598 padding-top: 36px; 1599 padding-bottom: 36px; 1600 } 1601 }</style><footer class="footer color-background-1 gradient section-footer-padding"> 1602 <!-- Begin custom Joinery footer markup --> 1603 1604 <div class="footer__blocks-wrapper footer__content-top page-width"> 1605 <div class="footer-region-left"> 1606 <div id="b-corp"> 1607 <img 1608 src="https://cdn.shopify.com/s/files/1/0712/5286/9408/files/b-corp-logo-black-rgb.png?v=1778847034" 1609 alt="Certified B Corporation" 1610 loading="lazy" 1611 > 1612 </div> 1613 1614 <div class="footer-menu"> 1615 <ul class="menu clearfix"> 1616 <li><a href="/pages/purchasing" class="link link--text list-menu__item list-menu__item--link">Purchasing</a></li> 1617 <li><a href="https://issuu.com/thejoinery/docs/final_catalog" class="link link--text list-menu__item list-menu__item--link">Catalog</a></li> 1618 <li><a href="/collections/sale" class="link link--text list-menu__item list-menu__item--link">Outlet</a></li> 1619 <li><a href="/pages/request-samples" class="link link--text list-menu__item list-menu__item--link">Request Samples</a></li> 1620 <li><a href="/pages/the-joinery-lifetime-furniture-guarantee" class="link link--text list-menu__item list-menu__item--link">Lifetime Guarantee</a></li> 1621 <li><a href="/pages/careers" class="link link--text list-menu__item list-menu__item--link">Careers</a></li> 1622 <li><a href="/pages/product-care" class="link link--text list-menu__item list-menu__item--link">Product Care</a></li> 1623 <li><a href="/collections/commercial-furniture-design-services" class="link link--text list-menu__item list-menu__item--link">Commercial Projects</a></li> 1624 <li><a href="/pages/for-the-trade" class="link link--text list-menu__item list-menu__item--link">For the Trade</a></li> 1625 </ul> 1626 </div> 1627 </div> 1628 <!-- end footer region left --> 1629 1630 <div class="footer-region-right"> 1631 <div id="social"> 1632 <ul> 1633 <li><a id="facebook" href="https://www.facebook.com/thejoinerypdx" target="_blank">Facebook <span class="visually-hidden">(opens in a new window)</span></a></li> 1634 <li><a id="instagram" href="https://www.instagram.com/thejoinery/" target="_blank">Instagram <span class="visually-hidden">(opens in a new window)</span></a></li> 1635 </ul> 1636 1637 </div> 1638 1639 1640 <div id="copyright"> 1641 <ul> 1642 <li><a href="/">© The Joinery</a></li> 1643 <li><a href="/pages/sitemap">Site Map</a></li> 1644 <li> 1645 <a href="/pages/privacy-policy-and-terms-of-use" title="Privacy Policy and Terms of Use">Privacy Policy | Terms of Use</a> 1646 </li> 1647 </ul> 1648 </div> 1649 </div> 1650 </div> 1651 1652 <!-- End custom Joinery footer markup -->
1652<div class="footer__content-top page-width"><div class="footer-block--newsletter"><div class="footer-block__newsletter"><h2 class="footer-block__heading">Get Our Newsletter</h2><form method="post" action="/contact#ContactFooter" id="ContactFooter" accept-charset="UTF-8" class="footer__newsletter newsletter-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="contact[tags]" value="newsletter"> 1653 <div class="newsletter-form__field-wrapper"> 1654 <div class="field"> 1655 <input 1656 id="NewsletterForm--footer" 1657 type="email" 1658 name="contact[email]" 1659 class="field__input" 1660 value="" 1661 aria-required="true" 1662 autocorrect="off" 1663 autocapitalize="off" 1664 autocomplete="email" 1665 1666 placeholder="Email" 1667 required 1668 > 1669 <label class="field__label" for="NewsletterForm--footer"> 1670 Email 1671 </label> 1672 <button 1673 type="submit" 1674 class="newsletter-form__button field__button" 1675 name="commit" 1676 id="Subscribe" 1677 aria-label="Subscribe" 1678 > 1679 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg"> 1680 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 1681</svg> 1682 1683 </button> 1684 </div></div></form></div></div> 1685 </div><div class="footer__content-bottom"> 1686 <div class="footer__content-bottom-wrapper page-width"> 1687 <div class="footer__column footer__localization isolate"></div> 1688 <div class="footer__column footer__column--info"><div class="footer__payment"> 1689 <span class="visually-hidden">Payment methods</span> 1690 <ul class="list list-payment" role="list"><li class="list-payment__item"> 1691 <svg class="icon icon--full-color" 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> 1692 1693 </li><li class="list-payment__item"> 1694 <svg class="icon icon--full-color" 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-.114
1694c-.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> 1695 1696 </li><li class="list-payment__item"> 1697 <svg class="icon icon--full-color" 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
169716.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> 1698 1699 </li></ul> 1700 </div><div class="footer__copyright caption"> 1701 <small class="copyright__content" 1702 >© 2026 <a href="/" title="">The Joinery</a>. 1703 </small> 1704 <small class="copyright__content"><a target="_blank" rel="nofollow" href="https://www.shopify.com?utm_campaign=poweredby&utm_medium=shopify&utm_source=onlinestore">Powered by Shopify <span class="visually-hidden">(opens in a new window)</span></a></small> 1705 <small class="copyright__content"> | <a href="https://www.shopify.com/legal/privacy">Shopify Privacy Policy</a></small> 1706 </div> 1707 </div> 1708 </div> 1709 </div> 1710</footer> 1711 1712 1713 1714 1715<style> #shopify-section-footer .footer-block__details-content.rte {font-size: 1.4rem; letter-spacing: 0;} #shopify-section-footer .footer-block__details-content.rte a {color: rgba(0, 0, 0, 0.75); text-decoration: none;} #shopify-section-footer h2.footer-block__heading {font-weight: 500; margin: 0 0 10px; text-transform: uppercase;} #shopify-section-footer .list-social__item .icon {height: 3rem; width: 3rem;} </style></div> 1716 1717 <ul hidden> 1718 <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li> 1719 <li id="a11y-new-window-message">Opens in a new window.</li> 1720 </ul> 1721 1722
1722<script> 1723 window.shopUrl = 'https://thejoinery.com'; 1724 window.routes = { 1725 cart_add_url: '/cart/add', 1726 cart_change_url: '/cart/change', 1727 cart_update_url: '/cart/update', 1728 cart_url: '/cart', 1729 predictive_search_url: '/search/suggest' 1730 }; 1731 1732 window.cartStrings = { 1733 error: `There was an error while updating your cart. Please try again.`, 1734 quantityError: `You can only add [quantity] of this item to your cart.` 1735 } 1736 1737 window.variantStrings = { 1738 addToCart: `Add to cart`, 1739 soldOut: `Sold`, 1740 unavailable: `Unavailable`, 1741 } 1742 1743 window.accessibilityStrings = { 1744 imageAvailable: `Image [index] is now available in gallery view`, 1745 shareSuccess: `Link copied to clipboard`, 1746 pauseSlideshow: `Pause slideshow`, 1747 playSlideshow: `Play slideshow`, 1748 } 1749 </script>
1749<script> 1750function mwApoCustom() { 1751 window.mwApoInit = window.mwApoInit || {}; 1752 window.mwApoInit.onEvent = function (event, args) { 1753 if (event == "init::finish") { 1754 if (document.querySelector(".shopify-payment-button")) { 1755 document.querySelector(".shopify-payment-button").style.display = 1756 "none"; 1757 1758 var mutationObserver = new MutationObserver(function (mutations) { 1759 mutations.forEach(function (mutation) { 1760 document.querySelector(".shopify-payment-button").style.display = 1761 "none"; 1762 }); 1763 }); 1764 1765 mutationObserver.observe( 1766 document.getElementsByClassName("shopify-payment-button")[0], 1767 { 1768 attributes: true, 1769 characterData: true, 1770 childList: true, 1771 subtree: true, 1772 attributeOldValue: true, 1773 characterDataOldValue: true, 1774 } 1775 ); 1776 } 1777 } 1778 }; 1779 window.mwApoInit.onCallback = function (event, data) { 1780 return data; 1781 }; 1782 window.mwApoInit.settings.selectors.product.gallery_container = '.custom_selector'; 1783} 1784</script>
1784 1785 1786<style> 1787</style> 1788 1789 <style> body#site-map .rte {display: flex; flex-direction: row;} body#site-map .rte .column {width: 50%;} </style> 1790<div id="shopify-block-AWlIvdkFVaWsydStBQ__4804304946286255945" class="shopify-block shopify-app-block"> 1791 1792
1792<script> 1793 const cookieBarMetaFields = {"shopId":"01Iy2kiZTwR7I2uY9BkN","settings":{"theme":"light_theme","message":"This website uses cookies and similar technologies to operate our store, analyze traffic, and improve your experience. You can accept, decline or adjust your preferences below. ","showPrivacyPolicy":true,"googlePrivacyLink":"https://business.safety.google/privacy/","privacyLink":"/policies/privacy-policy","privacyLinkText":"Learn more","googlePrivacyPolicy":true,"googlePrivacyText":"Visit Google policy","agreeButtonText":"Accept","denyButtonText":"Decline","showOnCountry":"all","displayType":"float_card","desktopFloatCardPosition":"bottom_left","desktopPosition":"bottom","mobilePositions":"bottom","themeName":"Light theme","textFont":"Noto+Sans","serveFontViaCDN":false,"showIcon":false,"customCss":"","removeBranding":true,"specificRegions":{"pipeda":false,"gdpr":false,"appi":false,"lgpd":false,"ccpa":false},"specificCountries":["DZA","AGO","BEN","BWA","IOT","BFA","BDI","CPV","CMR","CAF","TCD","COM","COG","COD","CIV","DJI","EGY","GNQ","ERI","SWZ","ETH","ATF","GAB","GMB","GHA","GIN","GNB","KEN","LSO","LBR","LBY","MDG","MWI","MLI","MRT","MUS","MYT","MAR","MOZ","NAM","NER","NGA","REU","RWA","STP","SEN","SYC","SLE","SOM","ZAF","SSD","SHN","SDN","TZA","TGO","TAA","TUN","UGA","ESH","ZMB","ZWE","AFG","ARM","AZE","BHR","BGD","BTN","BRN","KHM","CHN","GEO","HKG","IND","IDN","IRQ","ISR","JPN","JOR","KAZ","KWT","KGZ","LAO","LBN","MAC","MYS","MDV","MNG","MMR","NPL","OMN","PAK","PSE","PHL","QAT","SAU","SGP","KOR","LKA","TWN","TJK","THA","TLS","TUR","TKM","ARE","UZB","VNM","YEM","ALA","ALB","AND","AUT","BLR","BEL","BIH","BGR","HRV","CYP","CZE","DNK","EST","FRO","FIN","FRA","DEU","GIB","GRC","GGY","HUN","ISL","IRL","IMN","ITA","JEY","UNK","LVA","LIE","LTU","LUX","MLT","MDA","MCO","MNE","NLD","MKD","NOR","POL","PRT","ROU","RUS","SMR","SRB","SVK","SVN","ESP","SJM","SWE","CHE","UKR","GBR","VAT","AIA","ATG","ABW","BHS","BRB","BLZ","BMU","BES","VGB","CAN","CYM","CRI","CUW","DMA","DOM","SLV","GRL","GRD","GLP","GTM","HTI","HND","JAM","MTQ","MEX","MSR","NIC","PAN","PRI","SXM","KNA","LCA","SPM","VCT","TTO","TCA","Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Carolina","North Dakota","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","Washington DC","West Virginia","Wisconsin","Wyoming","VIR","AUS","CXR","CCK","COK","FJI","PYF","GUM","HMD","KIR","MHL","FSM","NRU","NCL","NZL","NIU","NFK","MNP","PLW","PNG","PCN","WSM","SLB","ARG","BOL","BRA","CHL","COL","ECU","FLK","GUF","GUY","PRY","PER","SGS","SUR","URY","VEN"],"specificUsCountries":["California","Colorado","Connecticut","Delaware","Florida","Iowa","Montana","Nebraska","New Hampshire","New Jersey","Oregon","Texas","Utah","Virginia"],"specificEuCountries":[],"regionLanguageMap":null,"customPrivacyLink":"","icon":"cookie_bar_icon_1","customIcon":false,"customIconUrl":"","textAlignment":"center","fontSize":16,"displayAfter":"3","optionPolicyLink":"select","bannerType":"accept-or-preferences","showReOpenButton":true,"reOpenPosition":"bottom-right","displayButtonAs":"text","iconReOpen":"image-icon-1","reOpenImpliedConsent":["gdpr","nonGdpr"],"isRevertPreferences":true,"textColor":"#000000","denyTextColor":"#000000","privacyLinkColor":"#000000","bgColor":"#FFFFFF","messageColor":"#2C332F","agreeBtnTextColor":"#F8F8F8","agreeBtnBgColor":"#000000","agreeBtnBorder":"#2C332F","iconColor":"#000000","textAvada":"rgba(0, 0, 0, 0.8)","textBtnColor":"#000000","checkoutBannerTitle":"We keep your privacy","notificationAfterConsent":"Privacy updated","visibleAfterConsent":true,"collapsedBannerContent":true,"showCloseIcon":true,"dataSalesCheckboxTitle":"Do not Sell or Share My Personal Information","showAtConsentBanner":true,"showAtPrefPopup":false,"isUseVipTheme":false,"isUseVipLogo":false,"geoCompl
1793iance":{"enabled":false,"countryOverrides":{},"gdpr":{"enabled":true,"bannerType":"preferences","dataSaleOptOut":false,"countries":null,"regionOverrides":{}},"ccpa":{"enabled":true,"bannerType":"decline-only","dataSaleOptOut":true,"countries":null,"regionOverrides":{}},"lgpd":{"enabled":true,"bannerType":"accept-or-decline","dataSaleOptOut":false,"countries":null,"regionOverrides":{}},"pipeda":{"enabled":true,"bannerType":"accept-or-decline","dataSaleOptOut":false,"countries":null,"regionOverrides":{}},"appi":{"enabled":true,"bannerType":"accept-only","dataSaleOptOut":false,"countries":null,"regionOverrides":{}},"others":{"bannerType":"informative","hideBanner":false}},"forceConsentOnFirstVisit":false,"scrollThreshold":20,"skipInitialClicks":0,"autoBlocker":{"enabled":true,"pixelIframeRemoval":true,"riskyPixelIds":[],"allowedPixelIds":[]},"customerAccountBannerEnabled":false,"customerAccountVisibleAfterConsent":false,"customerAccountShowCollapseIcon":false,"customerAccountShowCloseIcon":false,"customerAccountNotificationAfterConsent":"Privacy updated","preferencesButtonText":"Preferences","preferencesPopHeaderTitle":"Select type of Cookies you accept using.","preferencesPopHeaderDesc":"","strictCookiesTitle":"Essential Strictly Required","strictCookiesDesc":"These cookies are required to run our website properly for checkout, security and fraud prevention and cannot be switched off.","analyticCookiesTitle":"Analytics","analyticCookiesDesc":"These cookies help us to understand how visitors interact with websites by collecting and reporting information, including Shopify Analytics and Google Analytics","marketingCookiesTitle":"Marketing","marketingCookiesDesc":"These cookies are usually set by our marketing and advertising partners to show you relevant ads including Google Ads.","functionalCookiesTitle":"Functional","functionalCookiesDesc":"Functional cookies enable our website to offer additional functions and personal settings.","acceptSelectedButtonText":"Save consent","acceptAllButtonText":"Accept All","reopenButtonText":"Cookie consent","preferenceStyleCustom":"default","iconType":"default_icon","shopId":"01Iy2kiZTwR7I2uY9BkN","urlIcon":"","advancedSetting":false,"fontStore":[{"label":"Assistant","value":"Assistant"}],"boxShadow":"0px 3px 8px rgba(0, 0, 0, 0.2)","borderColor":"","display":"","textAvadaMobile":"rgba(0, 0, 0, 0.8)","borderRadius":"32px","btnColor":"#F8F8F8","id":"gny2vX3YDRAn35ExgYLl","fontWeight":"500","illustrations":"Illustrations","dataTrackingMethod":"Data tracking method","tcfPrivacyText":"Privacy policy","tcfAcceptAllButtonText":"Accept all","maxDurationCookie":"Maximum duration of cookies","tcfMessage3":"You may modify or withdraw your preferences at any time by clicking the \"Cookies Consent\" button (or Cookies icon) at the bottom of this site. For more details, please refer to our {tcfPrivacyText} and {tcfGooglePolicyText}.","tcfMessage2":"Store and/or access information on a device. Use limited data to select advertising. Use profiles to select personalised advertising. Create profiles for personalised advertising. Use profiles to select personalised content. Create profiles to personalise content. Measure advertising performance. Measure content performance. Understand audiences through statistics or combinations of data from different sources. Develop and improve services. Use limited data to select content. We may also use precise geolocation data and identify devices through scanning.","tcfMessage1":"We and our {partnersText} process data that concerns you. We may process data essential for the proper functioning of the site or for security reasons, classified as Strictly required, which does not require your consent. In addition to this data, we will process personal data (e.g. login-based identifiers, non-precise location, interaction with ads or content) only if you have given your consent. You express your consent by clicking âAcceptâ or manage your preferences by clicking on \"Customize preferences\".","tcfConsent":"Consent","tcfHeader":"We keep your privacy","tcfAcceptButtonText":"Accept","deviceStorageOverview":"Device Storage Overview","tcfLegIntClaim":"Legitimate interest claim:","lifeTimeCookieRefresh":"Cookie lifetime is being refreshed","tcfPreferencesContent1":"Customize your consent preferences below. Granular consent for Purposes & Features and Vendors is supported.","cookieProvider":"Provider","tcfSaveButtonText":"Save consent","tcfPreferencesContent2":"Most {vendorText} require your explicit consent to process personal data, while some rely on legitimate interest. However, you have the right to object to their use of legitimate interest at anytime.","tcfPreferencesContent3":"The choices you make regarding the purposes and entities listed below are saved in a cookie named âavada-tcfâ in Local Storage and expire after 12 months.","tcfSpecialPeriodInfo":"Some purposes and/or special purposes may have different retention periods that are reported next to their descriptions.","cookieDescription":"Description","numberVendor":"{number} vendors","tcfPurposes":"Purposes","tcfPrivacyPolicyText":"Privacy policy","tcfDeclineAllButtonText":"Decline all","tcfPartnerText":"{number} partners","tcfGooglePolicyText":"Google policy","tcfThirdPartyVendors":"TCF Third party vendors","tcfVendorTitle":"Vendors","tcfDeviceStorage":"Device storage information:","cookieName":"Cookie name","tcfSpecialPurposes":"Special purposes","tcfCategoryTitle":"Categories","tcfPeriod":"{days} days","tcfDenyButtonText":"Decline","tcfFeatures":"Features","cookieDuration":"Duration","tcfPreferencesButtonText":"Customize preferences","tcfDataRetention":"Data retention period:","dataCategories":"Data categories","vendorText":"vendors","tcfFeaturesAndPurposesTitle":"Features & Purposes","tcfFlexiblePurposes":"Flexible purposes","tcfHeader2":"We and our partners process data to provide:","tcfSpecialFeatureOptins":"Special features","tcfHeader3":"Withdraw consent","tcfLegIntPurposes":"Legitimate interest","tcfLegitimate":"Legitimate interest","showCookieInfo":true,"label":"Light theme","value":"light_theme","impliedConsent":[],"scannerSetting":{"type":"weekly","scanDay":"monday","scanHour":"0","enabled":false,"serverScanTime":{"_seconds":1783321200,"_nanoseconds":0}}},"status":true,"translations":{"defaultLanguage":"en","detectMethod":"browser"}
1793,"cookies":{"strictly-required":[{"description":"Merchant authentication: Identity session cookie.","duration":"session","provider":"Shopify","name":"__Host-_identity_session_same_site"},{"description":"Merchant authentication: Main session cookie for Identity authentication. This is the underlying Rails session cookie. It contains the SID.","duration":"2y","provider":"Shopify","name":"_identity_session"},{"description":"Permanent device identifier.","duration":"session","provider":"Shopify","name":"_master_udr"},{"description":"Contains essential information for the correct functionality of merchant surfaces such as the admin area.","duration":"1y","provider":"Shopify","name":"_merchant_essential"},{"description":"Used to store session id in core for auth Legacy Admin","duration":"12w","provider":"Shopify","name":"_secure_admin_session_id"},{"description":"Used to store session id in core for auth Legacy Admin","duration":"12w","provider":"Shopify","name":"_secure_admin_session_id_csrf"},{"description":"Contains essential information for the correct functionality of Shop.app.","duration":"1y","provider":"Shopify","name":"_shop_app_essential"},{"description":"Contains essential information for the correct functionality of a store such as session and checkout information and anti-tampering data.","duration":"1y","provider":"Shopify","name":"_shopify_essential"},{"description":"Contains an opaque token that is used to identify a device for all essential purposes.","duration":"1y","provider":"Shopify","name":"_shopify_essential_"},{"description":"Used to check cookie capabilities on the client.","duration":"1min","provider":"Shopify","name":"_shopify_test"},{"description":"","duration":"-","provider":"Avada","name":"avada_cookie_consent"},{"description":"Helps detect fraud and provides continuity between each of your checkout attempts with Affirm. This data is necessary for Affirm to improve your experience by understanding where you and other customers are experiencing friction as you use our product.","duration":"1y","provider":"Affirm","name":"checkout_continuity_service"},{"description":"Used in connection with GDPR acceptance.","duration":"-","provider":"Oberlo","name":"gdpr_accepted"},{"description":"","duration":"-","provider":"Avada","name":"integration"},{"description":"Remembers a user's privacy choices about cookies and online tracking, especially for marketing and advertising, based on user's regional privacy laws.","duration":"1y","provider":"Shopify","name":"privacy_signal"},{"description":"This cookie is typically used to maintain an anonymized user session by the server.","duration":"session","provider":"Affirm","name":"session"}],"reporting-analytics":[{"description":"ID used to identify users","duration":"2 years","provider":"Google","name":"_ga"},{"description":"Contains analytics data for the merchant session.","duration":"1y","provider":"Shopify","name":"_merchant_analytics"},{"description":"Contains analytics data for Shop.app.","duration":"1y","provider":"Shopify","name":"_shop_app_analytics"},{"description":"Contains analytics data for buyer surfaces such as the storefront or checkout.","duration":"1y","provider":"Shopify","name":"_shopify_analytics"},{"description":"Shopify analytics.","duration":"2 years","provider":"Shopify","name":"_shopify_s"},{"description":"Shopify analytics.","duration":"-","provider":"Oberlo","name":"_shopify_t"},{"description":"Shopify analytics.","duration":"2 years","provider":"Shopify","name":"_shopify_y"},{"description":"Contains the required buyer information for analytics in Shop.","duration":"1y","provider":"Shopify","name":"shop_analytics"},{"description":"First-party analytics identifier set client-side by the Shopify Web Pixel Manager. It stores the visitor's client ID (a UUID) to track an anonymous visitor across sessions for analytics and conversion attribution.","duration":"1y","provider":"Shopify","name":"shopify_client_id"}],"marketing-retargeting":[{"description":"Contains marketing data for buyer surfaces such as the storefront or checkout.","duration":"1y","provider":"Shopify","name":"_shopify_marketing"}],"functional":[{"description":"Set after a checkout is completed to ensure that new carts are in the same currency as the last checkout.","duration":"14 days","provider":"Shopify","name":"cart_currency"},{"description":"Used in connection with checkout.","duration":"2 weeks","provider":"Shopify","name":"localization"},{"description":"Used as a mechanism to set User locale in admin.","duration":"1y","provider":"Shopify","name":"shopify_override_user_locale"}]},"integration":{"shopify":{"connected":true},"globalPrivacyControl":{"enabled":false},"metaPixel":{"enabled":false,"script":"\n !function(f,b,e,v,n,t,s)\n {n=f.fbq=function(){n.callMethod?\n n.callMethod.apply(n,arguments):n.queue.push(arguments)};\n if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\n n.queue=[];t=b.createElement(e);t.async=!0;\n t.src=v;s=b.getElementsByTagName(e)[0];\n s.parentNode.insertBefore(t,s)}(window, document,'script',\n 'https://connect.facebook.net/en_US/fbevents.js');\n fbq('consent', 'revoke');\n \n fbq('track', 'PageView');\n "},"tiktokPixel":{"enabled":false,"script":""},"microsoftConsentMode":{"enabled":false},"tcf":{"enabled":false},"pinterestConsent":{"enabled":false,"script":""},"klaviyo":{"enabled":false},"headlessCommerce":{"enabled":false},"swym":{"enabled":false},"shopId":"01Iy2kiZTwR7I2uY9BkN","createdAt":"2026-01-28T20:27:48.165Z","googleConsentMode":{"enabled":true,"ga4":"G-RHGLHXQD0F","script":""},"updatedAt":"2026-03-31T19:11:57.656Z","id":"dFun9X4c1r0kiW9foB78"},"autoBlocker":{"enabled":true,"defaultConsentGranted":true,"blockedCookies":{"exact":["_gcl_au","_gcl_aw","_gcl_dc","_ga","_gid"],"prefixes":["_gac_","_ga_","_gat_"]},"blockedScriptHosts":["googletagmanager.com","google-analytics.com","analytics.google.com","googleadservices.com","googlesyndication.com","doubleclick.net"],"pixelIframeRemoval"
1793:true,"riskyPixelIds":[],"allowedPixelIds":[],"knownVendorPixelIds":[]}} || {}; 1794 const resetMetafields = false || {}; 1795 const {integration: avadaCbIntegration} = cookieBarMetaFields; 1796 const shopNameCookie = 'The Joinery'; 1797 window.AVADA_COOKIES_BAR = { 1798 shopName: shopNameCookie, 1799 shopId: cookieBarMetaFields.shopId, 1800 status: cookieBarMetaFields.status, 1801 ...(window.AVADA_COOKIES_BAR || {}), 1802 ...cookieBarMetaFields.settings, 1803 translation: cookieBarMetaFields.translations, 1804 cookies: cookieBarMetaFields.cookies, 1805 integration: avadaCbIntegration, 1806 customer: { 1807 id: null, 1808 email: null, 1809 first_name: null, 1810 last_name: null, 1811 phone: null, 1812 emailSignature: null 1813 }, 1814 reset: resetMetafields, 1815 brandData: { 1816 primaryBackground: "#000000", 1817 primaryForeground: "#ffffff", 1818 secondaryBackground: "#6e6e6e", 1819 secondaryForeground: "#ffffff", 1820 logo: "\/\/thejoinery.com\/cdn\/shop\/files\/joinery_logo.png?v=1675283678" 1821 } 1822 }; 1823 1824 // Single definition of "a Meta pixel id Avada manages". Kept deliberately 1825 // loose about what follows the id so `fbq('init','123',{em:'...'})` counts â 1826 // an earlier stricter copy required a literal `);` and silently disagreed 1827 // with this one. Mirrors extractKnownVendorPixelIds in 1828 // packages/functions/src/helpers/utils/autoBlocker.js. 1829 function extractMetaPixelIds(code) { 1830 return Array.from( 1831 String(code || '').matchAll(/fbq\(\s*['"]init['"]\s*,\s*['"](\d+)['"]/g), 1832 match => match[1] 1833 ); 1834 } 1835 1836 if (avadaCbIntegration?.pinterestConsent?.enabled && typeof pintrk === 'function') { 1837 console.log('Disabled pinterest consent'); 1838 pintrk('setconsent', false); 1839 } 1840 1841 (() => { 1842 const getCookie= (name) => { 1843 const nameEQ = name + '='; 1844 const ca = document.cookie.split(';'); 1845 for (let i = 0; i < ca.length; i++) { 1846 let c = ca[i]; 1847 while (c.charAt(0) === ' ') c = c.substring(1, c.length); 1848 if (c.indexOf(nameEQ) === 0) return JSON.parse(decodeURIComponent(c.substring(nameEQ.length, c.length))); 1849 } 1850 return {}; 1851 } 1852 window.AVADA_COOKIE_CONSENT = getCookie('avada_cookie_consent'); 1853 })(); 1854 1855 try { 1856 // Ownership is "the merchant handed us a tag id AND the integration is on". 1857 // The backend decides it that way â readVendorScript in autoBlocker.js 1858 // returns '' for a disabled vendor, so a disabled one never reaches the 1859 // denylist. Testing only the script here made the two disagree whenever an 1860 // integration was switched off with its script still saved: the storefront 1861 // published "we own this pixel" while blockedScriptHosts said we did not. 1862 // Nothing acted on the difference, because every use site below also ANDs 1863 // with `enabled` â but the flag is what verification, the e2e suite and CS 1864 // read, so it has to be the same answer. 1865 const metaPixelEnabled = !!avadaCbIntegration?.metaPixel?.enabled; 1866 const metaPixelScript = metaPixelEnabled ? avadaCbIntegration?.metaPixel?.script || '' : ''; 1867 window.__avadaManagesMetaPixel = extractMetaPixelIds(metaPixelScript).length > 0; 1868 window.metaPixelFunc = window.__avadaManagesMetaPixel 1869 ? new Function(metaPixelScript) 1870 : null; 1871 if(window.__avadaManagesMetaPixel && avadaCbIntegration?.metaPixel?.enabled && window.AVADA_COOKIE_CONSENT.analytics && window.AVADA_COOKIE_CONSENT.marketing) { 1872 window.metaPixelFunc(); 1873 } 1874 } catch (e) { 1875 console.error('Something went wrong in Meta Pixel:', e) 1876 } 1877 1878 try { 1879 if(avadaCbIntegration?.pinterestConsent?.enabled && window.AVADA_COOKIE_CONSENT.analytics && window.AVADA_COOKIE_CONSENT.marketing) { 1880 pintrk('setconsent', true); 1881 console.log('Enabled pinterest consent'); 1882 } 1883 } catch (e) { 1884 console.error('Something went wrong in Pinterest integration:', e) 1885 } 1886 1887 try { 1888 const tiktokPixelScript = avadaCbIntegration?.tiktokPixel?.script || ''; 1889 // Same ownership test as Meta: no ttq.load() id means the merchant runs the 1890 // official TikTok sales channel, so the pixel lives in Shopify's Web Pixel 1891 // sandbox and Customer Privacy governs it. Taking over window.ttq there is 1892 // exactly the interference SB-16468 is about. 1893 window.__avadaManagesTiktokPixel = 1894 !!avadaCbIntegration?.tiktokPixel?.enabled && 1895 /ttq\.load\(\s*['"][^'"]+['"]/.test(tiktokPixelScript); 1896 if(avadaCbIntegration?.tiktokPixel?.enabled && window.__avadaManagesTiktokPixel) { 1897 window.tiktokPixelFunc = new Function(tiktokPixelScript); 1898 1899 // Extract pixel IDs from script for loading when theme pixel already exists 1900 const tiktokIdRegex = /ttq\.load\('([^']+)'\)/g; 1901 window._avadaTiktokPixelIds = []; 1902 let tiktokIdMatch; 1903 while ((tiktokIdMatch = tiktokIdRegex.exec(tiktokPixelScript)) !== null) { 1904 window._avadaTiktokPixelIds.push(tiktokIdMatch[1]); 1905 } 1906 1907 const manageTikTokConsent = () => { 1908 if (!window.ttq) return; 1909 try { 1910 const hasConsent = window.AVADA_COOKIE_CONSENT?.analytics && window.AVADA_COOKIE_CONSENT?.marketing; 1911 if (hasConsent) { 1912 if (typeof window.ttq.grantConsent === 'function') window.ttq.grantConsent(); 1913 window._tiktokConsentRevoked = false;
1914 } else { 1915 if (typeof window.ttq.holdConsent === 'function') window.ttq.holdConsent(); 1916 if (typeof window.ttq.revokeConsent === 'function') window.ttq.revokeConsent(); 1917 window._tiktokConsentRevoked = true; 1918 } 1919 } catch (e) { 1920 console.error('Error managing TikTok consent:', e); 1921 } 1922 }; 1923 1924 if (window.ttq) { 1925 // Theme pixel already loaded ttq - load app pixel IDs that aren't loaded yet 1926 let hasNewPixels = false; 1927 (window._avadaTiktokPixelIds || []).forEach(function(id) { 1928 if (!window.ttq._i || !window.ttq._i[id]) { 1929 window.ttq.load(id); 1930 hasNewPixels = true; 1931 } 1932 }); 1933 if (hasNewPixels) window.ttq.page(); 1934 manageTikTokConsent(); 1935 } else { 1936 // Intercept ttq creation to apply consent before SDK processes queued events. 1937 // Self-removes after first interception to avoid conflicts with other scripts. 1938 try { 1939 let _ttqValue = undefined; 1940 Object.defineProperty(window, 'ttq', { 1941 get() { return _ttqValue; }, 1942 set(val) { 1943 _ttqValue = val; 1944 if (val) { 1945 // Restore normal property immediately to prevent conflicts 1946 try { 1947 Object.defineProperty(window, 'ttq', { 1948 value: val, writable: true, configurable: true, enumerable: true 1949 }); 1950 } catch(e) {} 1951 manageTikTokConsent(); 1952 } 1953 }, 1954 configurable: true, 1955 enumerable: true 1956 }); 1957 // Coordination with Avada auto-blocker: if the TikTok sandbox is ever 1958 // removed before ttq initializes, drop the accessor so the property can 1959 // behave normally again (prevents a stranded interceptor). 1960 setTimeout(function () { 1961 if (_ttqValue === undefined) { 1962 try { delete window.ttq; } catch (e) {} 1963 } 1964 }, 10000); 1965 } catch (e) { 1966 // defineProperty failed - fallback to DOMContentLoaded 1967 const onReady = () => manageTikTokConsent(); 1968 if (document.readyState === 'loading') { 1969 document.addEventListener('DOMContentLoaded', onReady, {once: true}); 1970 } else { 1971 setTimeout(onReady, 0); 1972 } 1973 } 1974 } 1975 } 1976 } catch (e) { 1977 console.error('Error handling TikTok Pixel consent:', e); 1978 } 1979 1980 // handle for customer add metaPixel script in theme 1981 try { 1982 if(avadaCbIntegration?.metaPixel?.enabled && window.__avadaManagesMetaPixel && window.fbq) { 1983 window.pixelIds = []; 1984 window.fbq = function () { 1985 console.log('Meta/FB Pixel disabled'); 1986 }; 1987 function savePixelIds() { 1988 const scripts = document.querySelectorAll('script'); 1989 for (let script of scripts) { 1990 const contentScript = script.innerHTML.trim(); 1991 if (contentScript.includes("!function(f,b,e,v,n,t,s)")) { 1992 window.pixelIds.push(...extractMetaPixelIds(contentScript)); 1993 } 1994 } 1995 } 1996 savePixelIds(); 1997 } 1998 } catch (e) { 1999 console.error('Something went wrong in Meta Pixel:', e) 2000 } 2001 2002 </script>
2002 2003 2004 2005 2006</div><div id="shopify-block-AaW9lWkh5dkhRTzhKW__14656832010101544780" class="shopify-block shopify-app-block"> 2007 <link rel="preload" as="style" href="https://cdn.shopify.com/extensions/01a0f216-2326-7b23-bf83-dc69f22b39e1/apo-product-options-299/assets/mws_apo_bundle.css" onload="this.onload=null;this.rel='stylesheet'"> 2008 2009 <noscript><link href="//cdn.shopify.com/extensions/01a0f216-2326-7b23-bf83-dc69f22b39e1/apo-product-options-299/assets/mws_apo_bundle.css" rel="stylesheet" type="text/css" media="all" /></noscript>
2009<script type="module" defer src="https://cdn.shopify.com/extensions/01a0f216-2326-7b23-bf83-dc69f22b39e1/apo-product-options-299/assets/mws_apo_bundle.js"></script>
2009 2010
2011<script> 2012 window.mwApoSelectors = { 2013 "cart_row": [ 2014 ".has-popup-tab .popup-tab .detail .item", 2015 "#main #cartform .cart-list .item", 2016 ".topBar__miniCart #mini_cart_form .cart_items .miniCart__item", 2017 "#cart_form .container .cart__itemList .cart__card", 2018 ".cart-mini-sidebar .cart-mini-content .cart-mini-item", 2019 ".template-cart .section-cart .cart .cart-table tbody .table-row", 2020 ".container.clearfix > div .twelve .twelve .cart-table.bottompad .item-row", 2021 "#header-cart .mini-products-list:first-child .grid", 2022 ".cart .grid table tbody tr.cart__row", 2023 ".recently-added table tbody tr", 2024 ".custom .row .columns .cart-table tbody tr", 2025 ".cart-summary .cart-summary__product:first-child", 2026 "form .cart-items .cart-item-container", 2027 "#CartForm #CartOuter table tbody .item", 2028 "#your-shopping-cart .page-container .main-content .items > .item:not(:last-child)", 2029 "#cart-summary .inner .cart-summary-item-list .cart-summary-item", 2030 "#cartform .cart-items .item", 2031 ".cart-form .cart-content > div .cart-item-wrapper .cart-item", 2032 ".ajaxcart .max-width--4 .cart .cart__row.mt3 .grid:first-child", 2033 "form .cart .cart__row:nth-child(2) .grid:first-child", 2034 ".ajaxcart .items .item", 2035 ".cart .items .item", 2036 ".cart-preview .product-container .box.product", 2037 ".cart-form .cart-items .cart-item", 2038 "#cart-form table tbody .cart-row", 2039 ".ajaxcart .ajaxcart__inner .ajaxcart__product .ajaxcart__row", 2040 ".cart .cart-table tbody .cart__row", 2041 ".halo-modal-body .cart-popup-content .cart-form .scroll-content .cart_items .cart-list li", 2042 "#dropdown-cart .has-items .mini-products-list .item", 2043 ".cart-form .cart_items .cart-list li", 2044 "#dropdown-cart .has-items .mini-products-list .item", 2045 ".shopify-section form .wrapper-cart .cart-list li", 2046 "#shopify-section-static-cart form .cartitems--container .cartitems .cart-item", 2047 "#cartform .cart-table tbody tr.even", 2048 ".standard-page form .cart-items.row", 2049 ".ajaxcart .ajaxcart__inner .ajaxcart__product .ajaxcart.row", 2050 "#cartform table tbody tr", 2051 "#CartDrawer #CartContainer .ajaxcart .ajaxcart__product .ajaxcart__row", 2052 "#your-shopping-cart #PageContainer .cart .cart-table .cart__row", 2053 ".cart__form .cart__table .cart__items .cart__item", 2054 ".modal-cart-form table.table-shopping-cart tbody .cart-line-item", 2055 ".main-cart-form table.table-shopping-cart tbody .cart-line-item", 2056 ".cart-form .cart-items tbody tr.cart-item", 2057 ".site-main #shopify-section-static-cart .cart-form .cart-items .cart-item", 2058 ".ajaxcart .drawer__inner .ajaxcart__product .ajaxcart__row", 2059 ".cart .cart__row:nth-child(2) .grid.cart__row--table-large", 2060 ".cart .ajaxcart__inner .ajaxcart__product .ajaxcart__row", 2061 "form.cart .cart__row:not(.cart__header-labels) .grid--full.cart__row--table-large", 2062 ".mini-cart .mini-cart__content .mini-cart__full .mini-cart__items .mini-cart__item", 2063 "form table tbody tr", 2064 "form .cart--mobile .cart__items .cart-item", 2065 "#cart-form .cart-row", 2066 ".cart .cart-table tbody tr.cart__row", 2067 "form .cart-items-container .cart-items tbody tr.cart-item", 2068 ".modal--window .modal--container form .variant-id", 2069 ".template--cart .layout--main-content form .content .variant-id", 2070 ".template-cart .cart .cart-items", 2071 ".header-cart .header-cart-items .header-cart-item", 2072 ".grid #cartForm .cartRow", 2073 ".modal--container .fw--cart form .content .variant-id", 2074 ".panel div form .content .variant-id", 2075 ".shopify-section .reading-container #cartform ul li.item", 2076 ".cart #shopify-section-cart-template #cart_form ul li", 2077 ".container-wrap .container #Cart form .cart-table #CartItems .line-item", 2078 ".cartContainer .scroll #Cart form .cart-table #CartItems .line-item", 2079 ".ajaxcart .ajaxcart__inner .ajaxcart__product .ajaxcart__row .grid", 2080 "#shopping-cart #cartform .desktop-8.tablet-6 .cart-item", 2081 "form .cart-items tbody .cart-item", 2082 ".ajaxcart .ajaxcart__inner .ajaxcart__product .ajaxcart__row .grid", 2083 ".cart.table-wrap .cart-table tbody .cart__row", 2084 ".mm-panels .mm-opened .cart_item", 2085 ".ajaxcart__content .cart__body .cart__row:not(:first-child)", 2086 ".template-cart .cartForm .cart__body .cart__row:not(:first-child)", 2087 ".cart-wrapper .cart-inner > div .cart-content .clearfix .item-cart", 2088 ".cart div .cart-table-wrap .data-table tbody tr", 2089 "#shopify-section-cart-template .cart .line-items .line-item", 2090 ".static-cart-wrapper .cart .cart-container .cart-container-scrollable .cart-items .cart-item-row", 2091 "#site-header-drawer-cart .cart-mini .cart-container .cart-container-scrollable .cart-items .cart-item-row", 2092 "#cart_form ul li", 2093 "#cart .mm-panels .mm-panel ul.mm-listview .cart_item", 2094 "#cart_form .section .cart_items", 2095 "#cartform .cart-list .item.clearfix", 2096 ".cart_menu form .cart_row:first-child ul:last-child", 2097 ".cart_tbl form .con_row ul", 2098 "#site-cart .site-nav-container-last .top .cart .cart-items .cart-item", 2099 ".site-box-content .cart .cart-items .cart-item", 2100 "#shopify-section-template-cart form table.cart-items tbody tr.cart-item", 2101 ".cartForm .cart__body .cart__row:last-child .cart__row--table-large:first-child", 2102 "#cartform .cart-contents .clearfix", 2103 ".template-product #cart-summary-overlay .cart-summary-overlay__column-item .cart-summary-overlay__variants",
2104 "#cartform .item-list .item .desc div .name", 2105 "#ajaxifyCart .cart-form .ajaxifyCart--products .ajaxifyCart--product", 2106 ".cart #shopping-cart #cartform table tbody tr", 2107 ".mini-cart .mini-cart__inner .mini-cart__items .mini-cart__item-wrapper .mini-cart__item", 2108 ".container form .cart__items tbody tr.cart-item", 2109 "#cart_form .section .columns .section.clearfix:first-child", 2110 ".cart_container .cart_content form.js-cart_content__form ul.js-cart_items .cart_item ", 2111 "#cartform table.desktop-9 tbody tr", 2112 ".cart-form .cart__products .cart__product .cart__row", 2113 ".ajaxcart__form .ajaxcart__inner .ajaxcart__products .ajaxcart__product .ajaxcart__row", 2114 ".container-widget .shopping-cart-table tbody tr", 2115 ".cart-items__wrapper .cart-form .cart-items__table tbody > tr[data-key]" 2116 ], 2117 "product_form": [ 2118 ".product-form form", 2119 ".nav-shift .shopify-section .product .container #main form", 2120 ".product__container div .product__section .product_form .shopify-product-form", 2121 ".template-product .page-body-content .section-product .product-details-wrapper .product-form", 2122 ".container.clearfix > div .product-grid-product-template .twelve .bottompad .product-variants #add-item-form-product-template", 2123 ".pageWrapper .page-container .main-content .shopify-section .product-template__container .grid .grid__item .product-single__meta .product-form", 2124 ".product-page--main-content .product-page--cart-form-block .product-page--cart-form .shopify-product-form", 2125 ".section-product .grid .product-info div:nth-child(3) .AddToCartForm", 2126 ".form__width .product__form .product-form", 2127 ".template-product .page-container .main-content .item .shopify-product-form", 2128 ".row.light-space-above .product-details .product-section .product-form", 2129 ".page-wrapper .product-wrapper .product-options #product-options .product-form .shopify-product-form", 2130 ".grid .grid__item.five-twelfths .product-form", 2131 ".item .right .shopify-product-form", 2132 ".main-content > div .grid .product-aside .purchase-box .product-form", 2133 "#shopify-section-page-product .product-page .product-details-wrap .product-form", 2134 ".product-page--form #AddToCartForm--product-template .shopify-product-form:first-child", 2135 ".product .row .product-shop .shopify-product-form", 2136 ".product .row .product-shop div #add-to-cart-form", 2137 ".product--container .product--outer .product-form--alt div form", 2138 "#product-box .col-md-5 .product-description-main-wrapper #add-to-cart-form", 2139 ".grid .grid__item.five-twelfths .product-form", 2140 ".product-page #product-right #product-description div .product_form", 2141 ".product-sticky-wrapper .product-details-wrapper .product-details--form-wrapper #AddToCartForm", 2142 ".product.container .inner .product__details.clearfix .product__info .product__form", 2143 ".desktop-flex-wrapper .product-description-product-template .product-item-caption-white .shopify-product-form", 2144 ".product-container .product .product-details-wrapper .shopify-product-form", 2145 ".page-template-product .site-main #shopify-section-static-product form", 2146 ".desktop-flex-wrapper .product-description-product-template .product-item-caption-white .shopify-product-form", 2147 ".sidebarColumn-inner .content-wrapper--title > div #AddToCartForm .shopify-product-form", 2148 ".product__details .inner .grid .product__info .product__form", 2149 ".product-description div #add-to-cart-product-page .shopify-product-form", 2150 ".section-product .grid .product-info div:nth-child(3) .AddToCartForm", 2151 "#shopify-section-static-product .module-wrapper .product-wrap .product-form", 2152 "#shopify-section-product .product-page--main .product-page--info-box--container .product-page--cart-form .shopify-product-form", 2153 ".section-product-template .form-vertical", 2154 "#productTop .grid .productInfo #prodForm", 2155 ".partial--product .details .add-to-cart .shopify-product-form", 2156 ".shopify-section > div .product-container .product-info .inner .product-form", 2157 ".product .product_section .product__description .product_form .shopify-product-form", 2158 ".product-info .product-info--wrapper .product-form .productForm", 2159 ".product-template .product-top .product-right #AddToCartForm", 2160 "#shopify-section-page-product div .product-form .shopify-product-form", 2161 ".product--product-template .grid__item .grid .grid__item .product-form", 2162 ".product .product-template-section .main-wrapper div.sixteen:last-child > div:first-child .product_form .shopify-product-form", 2163 "#shopify-section-product #ProductSection-product .product-single #productInfo-product .shopify-product-form",
2164 ".product-page-area .product-essential .row .product-shop .product-shop-wrapper .product-type-main .product-form", 2165 ".Product__Wrapper .Product__InfoWrapper .Product__Info .Container .ProductForm", 2166 "#shopify-section-product-template .shopify-product-form", 2167 ".product-atc .product-atc-steps .product-atc-step-form .product-form", 2168 ".section .six.columns .product_form .shopify-product-form:first-child", 2169 ".product_section.product_images_position--left .seven.columns.omega .product_form .shopify-product-form", 2170 ".product-area .product-detail .product-detail__form .feedback-go_to_cart", 2171 ".pro_main_c .row div form", 2172 "#section-product .site-box .site-box-content div #add-to-cart-product .shopify-product-form", 2173 ".main-content #shopify-section-module-product .product-details-inline .product-wrap .product-form .shopify-product-form", 2174 ".product__form__wrapper > div .product__form .shopify-product-form", 2175 "#main #shopify-section-product-template div .product-details .shopify-product-form", 2176 ".product-detail .detail .product-form form:first-child", 2177 ".product #content #product-description #AddToCartForm", 2178 ".container .grid .grid__cell .product__details .product__form ", 2179 "#shopify-section-product-template > div .js-product_section > div .product_form .shopify-product-form:first-child", 2180 ".product-top #product-description div .shopify-product-form", 2181 ".container .product-single__bottom > div .js-cart-replace .product-single__box .js-product-form", 2182 ".product-info-outer .col-sm-12 .row .product-info div:nth-child(3) #add-item-form", 2183 '.page-container .grid .grid__item .product-form[action="/cart/add"]', 2184 'form[action="/cart/add"]', 2185 ".product-single__form", 2186 ], 2187 "add_to_cart": [ 2188 "form .row.clearfix .column.full:last-child .product-form .quadd-wrapper .product-add .button", 2189 ".product_form .shopify-product-form .add_to_cart:first-child", 2190 ".template-product .page-body-content .section-product .product-details-wrapper .product-form .addtocart-button-active", 2191 "#add-item-form-product-template .purchase-section div.four:last-child .purchase .bottompad-quarter #add-to-cart-product-template", 2192 ".product-form .product-action .product-form__item--submit #AddToCart-product-template", 2193 ".shopify-product-form .quanity-cart-row .add-to-cart #add", 2194 ".product-form .product-detail__quantity-row .btn", 2195 ".product-form .product__submit .product__submit__buttons .product__submit__add", 2196 ".template-product .page-container .main-content .item .shopify-product-form .add-to-cart", 2197 ".product-form .payment-and-quantity--with-quantity .payment-and-quantity__add .product-add", 2198 ".shopify-product-form .form-actions .button", 2199 ".shopify-product-form .add-to-cart-container .btn--add-to-cart", 2200 ".shopify-product-form .row .add-to-cart", 2201 ".main-content > div .grid .product-aside .purchase-box .product-form .shopify-product-form .cart-buttons .button-wrapper .default-cart-button__button", 2202 ".product-form .product-add-to-cart .product-add .add-to-cart", 2203 ".shopify-product-form .cta-content--pay-buttons #AddToCart--product-template:first-child", 2204 ".shopify-product-form .groups-btn .btn", 2205 ".product-shop div #add-to-cart-form #product-add-to-cart", 2206 ".product-form--alt div form .product-form--atc .product-form--atc-button", 2207 "#add-to-cart-form .row .product-page--submit-action #purchase", 2208 ".product-form div:nth-child(2) .btn", 2209 ".product_form #product-add #AddToCart", 2210 ".product-sticky-wrapper .product-details-wrapper .product-details--form-wrapper #AddToCartForm .paymentButtonsWrapper #AddToCart", 2211 ".product__form .product__buy .button:first-child", 2212 ".shopify-product-form .row .product-form__item #AddToCart-product-template", 2213 ".shopify-product-form .product-add-to-cart .add-to-cart", 2214 ".product-menu .product-menu-buttons .product-menu-buttons-content .product-menu-buttons-addtocart .product-menu-button", 2215 ".product-single__meta .product-single__form .add-to-cart", 2216 ".shopify-product-form .product-selectors #AddToCart", 2217 ".product__form .product__buy .product__add-to-cart", 2218 ".shopify-product-form .buttons-holder .addToCart", 2219 ".AddToCartForm .cta-content .AddToCart", 2220 ".product-form .add-to-cart .product-form-add-to-cart .product-form-submit-wrap .add-to-cart-button", 2221 "#shopify-section-product .product-page--main .product-page--info-box--container .product-page--cart-form .shopify-product-form .product-page--add-to-cart", 2222 ".section-product-template .form-vertical .product-template__container .product-details .product-smart-wrapper .add-to-cart-btn", 2223 "#productTop .grid .productInfo #prodForm #AddToCart", 2224 ".shopify-product-form .product-page--cart-container .product-page--cart--column-b span .add", 2225 ".product-form .productoptions .with-payment-button .add-to-cart", 2226 ".product .product_section .product__description .product_form .shopify-product-form .purchase-details .add_to_cart", 2227 "form.productForm .productForm-block div .productForm-submit", 2228 "#AddToCartForm .product-add .AddtoCart", 2229 ".shopify-product-form .product-submit .payment-buttons-container .add-to-cart", 2230 ".grid__item .product-form #AddToCart", 2231 ".product .product-template-section .main-wrapper div.sixteen:last-child > div:first-child .product_form .shopify-product-form .add_to_cart", 2232 "#shopify-section-product #ProductSection-product .product-single #productInfo-product .shopify-product-form .add-to-cart__wrapper #AddToCart-product", 2233 ".product-form .product-options-bottom .add-to-cart-box .actions > div .button-wrapper-content .add-to-cart", 2234 ".Product__Wrapper .Product__InfoWrapper .Product__Info .Container .ProductForm .ProductForm__AddToCart", 2235 "#shopify-section-product-template .shopify-product-form .item .add-to-cart", 2236 ".product-form > div .product-form-atc .form-element-wrapper .form-element-quantity-submit .form-element-submit-button", 2237 ".shopify-product-form .purchase-details .purchase-details__buttons .add_to_cart:first-child", 2238 "#product-form .purchase-details .purchase-details__buttons .add_to_cart", 2239 ".feedback-go_to_cart .cf .product-detail__form__action .button", 2240 ".shopify-section > div .shopify-product-form .desc_blk .desc_blk_bot .btn_c", 2241 ".shopify-product-form .cart-functions .button", 2242 ".shopify-product-form .input-wrapper .product-quantity-container .add-to-cart .product-form-submit-wrap .button", 2243 ".shopify-product-form .product__submit .product__submit__buttons .product__submit__add", 2244 ".shopify-product-form .quick-actions .button", 2245 "form .quantity-submit-row__submit .button:first-child", 2246 ".product #content #product-description #AddToCartForm #addToCart", 2247 ".grid__cell .product__details .product__form .product__add-to-cart", 2248 ".shopify-product-form .purchase-details .purchase-details__buttons .add_to_cart:first-child", 2249 ".shopify-product-form .product-add .add", 2250 ".js-product-form .product-single__add .js-product-add",
2251 "#add-item-form .wrapper .pull-left:last-child .addtocart", 2252 '.product-form[action="/cart/add"] .product-form__item .btn[name="add"]', 2253 ".product-form .product-form__buttons .product-form__add-to-cart:first-child", 2254 ".product-main .product-form--atc .product-form--atc-button", 2255 ".product__content .product__content-main .product__form-wrapper .product__add-to-cart-button", 2256 ".product-wrapper #AddToCart--product-template", 2257 ".page-margin--product .product__form #klaviyo_sensor_pro", 2258 '.product:first-child .variations_form .single_add_to_cart_button[type="submit"]', 2259 ".product-form__buttons .product-form__submit", 2260 "add-to-cart-component .add-to-cart-button", 2261 ".mws-addtocart", 2262 'form[action="/cart/add"] [name="add"]', 2263 ".product-form__add-button", 2264 ".buy-buttons .button", 2265 "gp-product-button button", 2266 "#addToCartButton", 2267 ".product-buy-buttons--primary button", 2268 'form[action="/cart/add"] .add_to_cart', 2269 ".f8pr-button button", 2270 'form[action="/cart/add"] .product-form__payment-container .product-form__add-button', 2271 ], 2272 "price": [ 2273 "form .title-row .product-price .theme-money", 2274 ".product__container div .product__section .product__details .product__price span .current_price .money", 2275 ".template-product .page-body-content .section-product .product-details-wrapper .price .money", 2276 "#product-id-product-template > div .relative-product-template > div .content-height-product-template > div .twelve .offers #price-product-template", 2277 ".shopify-section .product-template__container .grid .grid__item .product-single__meta .product-single__price .product-price__price #ProductPrice-product-template", 2278 ".product-page--main-content .product-page--cart-form-block .prices div p .actual-price", 2279 ".product-detail__detail > div .product-detail__title-area .product-detail__price span .theme-money", 2280 ".form__inner__wrapper .form__width .product__title__wrapper .product__price span", 2281 ".template-product .page-container .main-content .item .info .price .money span", 2282 ".row.light-space-above .product-details .product-section .product-price .current-price", 2283 ".page-wrapper .product-wrapper .product-options .product-price .money:first-child", 2284 ".max-site-width .lg--up--seven-eighths .grid .grid__item:nth-child(2) .wd--pt3 .mt3 div #AddToCartForm--product .shopify-product-form", 2285 ".item .right div #productPrice-product-template .money", 2286 ".main-content > div .grid .product-aside .purchase-box .product-form .shopify-product-form .price #ProductPrice-product-template", 2287 ".product-form .product-add-to-cart .product-price .product-price-minimum", 2288 ".wrapper .grid .grid__item .product-page--form .f--main .ProductPrice:first-child", 2289 ".row .product-shop .prices .price .money", 2290 ".product-shop div #add-to-cart-form .prices .price", 2291 ".product-main .product-details .product-pricing .product--price .price--main .money", 2292 "#add-to-cart-form .product-page--pricing .product-page--pricing--variant-price #price-field .money", 2293 ".grid .grid__item.five-twelfths .product-price span .theme-money", 2294 ".product-page #product-right #product-description div .product-prices .product-price", 2295 ".product-sticky-wrapper .product-details-wrapper .product-details--form-wrapper #AddToCartForm #ProductPrice .money", 2296 ".product.container .inner .product__details.clearfix .product__meta.product__meta--mobile .product__prices .product__price:not(.product__price--old):not(.product__price--new)", 2297 ".desktop-flex-wrapper > div .mobile-hidden-sm .product-item-caption-header .product-item-caption-price #ProductPrice-product-template .money", 2298 ".product-details-wrapper .product-details .product-price .product-price-minimum", 2299 ".product-menu .product-menu-buttons .product-menu-buttons-content .product-menu-buttons-addtocart .product-menu-button .money", 2300 ".product-details .product-price .money:last-child", 2301 ".main-content #shopify-section-product-template .product-section .page-content--product .page-width .grid .grid__item .product-single__meta .product__price .money:first-child", 2302 ".shopify-product-form .medium-down--text-center .medium-down--text-center", 2303 ".product__details .inner .grid .product__info .product-meta .product-meta__prices .product-meta__price", 2304 "#shopify-section-product-page .product-page .product-content .product-header .product-price .productPrice", 2305 ".section-product .grid .product-info .priceWrapper #ProductPrice", 2306 ".module-product .product-wrap .product-details .product-price .price .money:first-child", 2307 "#shopify-section-product .product-page--main .product-page--info-box--container .product-page--cart-form .shopify-product-form .product-page--price span", 2308 ".section-product-template .form-vertical .product-template__container .js-prod-price span", 2309 "#productTop .grid .productInfo .price #ProductPrice", 2310 ".shopify-product-form .product-page--cart-container .product-page--cart--column-a .price .actual-price", 2311 ".shopify-section > div .product-container .product-info .inner .majorinfo .pricearea .current-price", 2312 ".product .product_section .product__description .current_price .money span", 2313 ".product-info .product-info--wrapper .block .product-price .product-normal-price .money", 2314 "#AddToCartForm #product-price .product-price .money", 2315 ".shopify-product-form .product-submit .product-price .product-price-minimum", 2316 ".grid__item .product-form #ProductPrice", 2317 ".product .product-template-section .main-wrapper div.sixteen:last-child > div:first-child .modal_price .current_price .money span", 2318 "#shopify-section-product #ProductSection-product .product-single #productInfo-product .text-center .product__price .money #ProductPrice-product .money span",
2319 ".product-page-area .product-essential .row .product-shop .product-shop-wrapper .product-type-data .price-box .detail-price .price .money", 2320 ".Product__Wrapper .Product__InfoWrapper .Product__Info .Container .ProductForm .ProductForm__AddToCart span:last-child", 2321 ".Product__Wrapper .Product__InfoWrapper .Product__Info .Container .ProductMeta .ProductMeta__PriceList .ProductMeta__Price", 2322 "#shopify-section-product-template .pricing .price span", 2323 ".product-main-content .product-header-desktop .product-price .price-main", 2324 ".product .product-header-mobile .product-price .price-main", 2325 ".section .six.columns .modal_price span .current_price .money:first-child", 2326 ".product_section.product_images_position--left .seven.columns.omega p.modal_price span:nth-child(1) .money", 2327 ".form__inner__wrapper .form__width .product__title__wrapper .product__price span", 2328 ".shopify-section > div .shopify-product-form .desc_blk .desc_blk_bot .price .money", 2329 "#section-product .site-box .site-box-content .price .product-price", 2330 ".main-content #shopify-section-module-product .product-details-inline .product-details .product-price .price .money", 2331 ".product__form__wrapper > div .product__title__wrapper .product__price span", 2332 "#shopify-section-product-template div .product-details .product-price-wrap #productPrice-product-template .price-money .money", 2333 ".product-detail .detail .price-area .theme-money .money:first-child", 2334 ".product #content #product-description #AddToCartForm .product-price .money span", 2335 ".grid__cell .product__details .product__meta .product__prices .product__price", 2336 ".product-template .main div div div .js-product_section div .modal_price span .current_price .money:first-child", 2337 ".product-top #product-description div .shopify-product-form #product-price .product-price", 2338 ".section--product-single > div .product-single__bottom > div .js-cart-replace > div .js-product-price-number .product-single__price-number .money", 2339 ".product-info-outer .col-sm-12 .row .product-info div:nth-child(3) .product-info__price .price-box__new .money", 2340 ".page-container .product__price .price:not(.price--on-sale) .price__pricing-group .price__regular .price-item.price-item--regular", 2341 ".page-container .product__price .price--on-sale .price__pricing-group .price__sale .price-item.price-item--sale", 2342 ".page-container .product-single__price", 2343 ".product__content .price .price__pricing-group .price__regular .price-item--regular:first-child", 2344 "#shopify-section-product-template .Product__Wrapper .ProductMeta .ProductMeta__PriceList .ProductMeta__Price", 2345 ".product__content .product__price .product__current-price", 2346 ".product-wrapper #ProductPrice", 2347 ".product-single .product__price .price__regular .price-item--regular", 2348 ".page-margin--product [data-form-wrapper] [data-price-wrapper] [data-product-price]", 2349 "#shopify-section-product-template .product-single__meta .product-single__prices .product-single__price", 2350 ".product:first-child .price-review .price_range", 2351 ".modal_price span .current_price .money", 2352 "product-price .price", 2353 ".mws-price", 2354 "product-info .price--on-sale .price__sale .price-item--sale", 2355 "product-info .price__container .price__regular .price-item--regular", 2356 ".price-container .price__current", 2357 ".product__price .price__current--on-sale", 2358 ".price--highlight", 2359 ".product-page-price .price__current .money", 2360 ".prices .price", 2361 ".total-price .total-money", 2362 ".product__price__main .product__price", 2363 ".product-template .money[data-price]", 2364 ".price-list .price", 2365 "gp-product-price", 2366 ".product-price--wrapper .product-price--original", 2367 ".price--on-sale .price-item--sale", 2368 ".product__price [data-price]", 2369 ".yv-main-product-detail .yv-prizebox .yv-product-price", 2370 ".product-info__price .price .price__default .price__current", 2371 ".t4s-product__price-review .t4s-product-price .money", 2372 ".product-form__info-content .price-list .price--highlight", 2373 ], 2374 "compare_price": [ 2375 ".page-container .product__price .price--on-sale .price__pricing-group .price__sale .price-item.price-item--regular", 2376 ".product-single .product__price .price__sale .price-item--sale", 2377 "product-price .compare-at-price", 2378 ".mws-compare", 2379 "product-info .price--on-sale .price__sale .price-item--regular", 2380 ".product__price .price__compare-at .price__compare-at--single", 2381 ".price--compare", 2382 ".product-page-price .price__compare-at .money", 2383 ".price--on-sale .price-item--regular", 2384 ], 2385 "cart_properties": [ 2386 ".cart-popup-wrapper .cart-popup-item .product-details .product-details__item", 2387 ".cart .cart__row .cart__meta .product-details .product-details__item", 2388 ".has-popup-tab .popup-tab .detail .item .detail .variant", 2389 "#main #cartform .cart-list .item .col-desc .text .title", 2390 ".topBar__miniCart #mini_cart_form .cart_items .miniCart__item .miniCart__itemDetails", 2391 "#cart_form .container .cart__itemList .cart__card .cart__info .cart__text .meta",
2392 ".cart-mini-sidebar .cart-mini-content .cart-mini-item .cart-mini-item-row .cart-mini-item-variant", 2393 ".template-cart .section-cart .cart .cart-table tbody .table-row .product-item .variant", 2394 ".container.clearfix > div .twelve .twelve .cart-table.bottompad .item-row .item-details .three h6", 2395 ".cart .grid table tbody td.cart__meta .list-view-item__title", 2396 ".block-cart .mini-products-list:first-child .grid .product-details .pName", 2397 ".recently-added table tbody tr .cart-detail h2", 2398 ".custom .row .columns .cart-table tbody tr .title p", 2399 ".cart-summary .cart-summary__product:first-child .cart-summary__product__description .cart-summary__product__variants", 2400 "form .cart-items .description .description__variant:last-child", 2401 "#CartForm #CartOuter table tbody .item .desc a", 2402 "#your-shopping-cart .page-container .main-content .item .product .subtitle", 2403 "#cart-summary .inner .cart-summary-item-list .cart-summary-item .title-variant .variant", 2404 "#cartform .cart-items .item .description .variant", 2405 ".cart-form .cart-content > div .cart-item-wrapper .cart-item .cart-item-info-wrapper .cart-item-options ul li:nth-last-child(2)", 2406 ".ajaxcart .max-width--4 .cart .cart__row.mt3 .grid:last-child .grid__item.three-quarters .pl2 .table.full--w", 2407 "form .cart .cart__row:nth-child(2) .grid:last-child .grid__item.three-quarters .pl2 .table.full--w", 2408 ".ajaxcart .items .item .right .description:last-child", 2409 ".cart .items .item .right .description:last-child", 2410 ".cart-preview .product-container .product figure figcaption", 2411 ".cart-form .cart-items .cart-item .grid .cart-item-product .cart-item-title", 2412 "#cart-form table tbody .cart-row .cart-detail a", 2413 ".ajaxcart .ajaxcart__inner .ajaxcart__product .ajaxcart__row .grid .grid__item.grid__item.three-quarters .mb1 ", 2414 ".cart .cart-table tbody .cart__row td:first-child .cart__info .product-grid-title", 2415 ".halo-modal-body .cart-popup-content .cart-form .scroll-content .cart_items .cart-list li .cart-title .product-name", 2416 "#dropdown-cart .has-items .mini-products-list .item .product-details .product-name", 2417 ".cart-form .cart_items .cart-list li .details .cart-details .product-name", 2418 ".shopify-section form .wrapper-cart .cart-list li .product-details p.size", 2419 "#dropdown-cart .has-items .mini-products-list .item .product-details .product-name a", 2420 "#shopify-section-static-cart form .cartitems--container .cartitems .cart-item .cart-item--inner .cart-item--content .cart-item--content-title", 2421 ".atc-banner--container .atc-banner--outer .atc-banner--inner .atc-banner--product .atc--product .atc--product-details .atc--product-details--title", 2422 "#cartform .cart-table tbody .cart-table-title .cart__meta-text", 2423 ".standard-page form .cart-items.row > div .cart-item .cart-column--detail .cart-column--title-and-price .cart-variant", 2424 ".ajaxcart .ajaxcart__inner .ajaxcart__product .ajaxcart.row .desktop-8.tablet-4 p .ajaxcart__product-meta", 2425 "#cartform table tbody tr .cart-item .cart-title p", 2426 "#CartDrawer #CartContainer .ajaxcart .ajaxcart__product .ajaxcart__row .ajaxcart__product-meta", 2427 "#your-shopping-cart #PageContainer .cart .cart-table .cart__row td:nth-child(2) small", 2428 ".cart__form .cart__table .cart__items .cart__item .cart-item__left .cart-item__title", 2429 ".modal-cart-form table.table-shopping-cart tbody .cart-line-item .table-shopping-cart-img .table-shopping-cart-item", 2430 ".main-cart-form table.table-shopping-cart tbody .cart-line-item .table-shopping-cart-img .table-shopping-cart-item", 2431 ".cart-form .cart-items tbody tr.cart-item .product-item .product-item-details .cart-variant", 2432 ".site-main #shopify-section-static-cart .cart-form .cart-items .cart-item .cart-item-column-2 .cart-item-title", 2433 ".ajaxcart .drawer__inner .ajaxcart__product .ajaxcart__row .grid:first-child .grid__item.grid__item.two-thirds .ajaxcart__product-name--wrapper .ajaxcart__product-meta",
2434 ".cart .cart__row:nth-child(2) .grid.cart__row--table-large .grid__item:first-child .grid .grid__item.three-quarters .cart__product-meta:first-child", 2435 ".cart .ajaxcart__inner .ajaxcart__product .ajaxcart__row > div .grid__item:nth-child(2) .display-table-cell p .ajaxcart__product-title", 2436 "form.cart .cart__row:nth-child(3) .grid--full.cart__row--table-large .grid__item:first-child .grid .grid__item:nth-child(2) a", 2437 ".mini-cart .mini-cart__content .mini-cart__full .mini-cart__items .mini-cart__item .product-meta .product-meta__title", 2438 "form table tbody tr td.cart-item__info .cart-item__variant", 2439 "form .cart--mobile .cart__items .cart-item .cart-item__right .cart-item__title", 2440 "#cart-form .cart-row .content > div h3", 2441 ".cart .cart-table tbody tr.cart__row td:first-child .cart__info .product-grid-title", 2442 "form .cart-items-container .cart-items tbody tr.cart-item .cart-item-product-wrap .cart-variant", 2443 ".modal--window .modal--container form .variant-id .title a", 2444 ".template--cart .layout--main-content form .content .variant-id .title a", 2445 ".template-cart .cart .cart-product-info-wrapper .cart-product-info-wrapper .cart-price-wrapper + p", 2446 ".header-cart .header-cart-items .header-cart-item .header-cart-item-info .header-cart-item-options span:first-child", 2447 ".grid #cartForm .cartRow li:nth-child(2) a", 2448 ".modal--container .fw--cart form .content .variant-id .right-column .title", 2449 ".panel div form .content .variant-id .right-column .title", 2450 ".shopify-section .reading-container #cartform ul li .desc .name", 2451 ".cart #shopify-section-cart-template #cart_form ul li .title_column p a", 2452 ".container-wrap .container #Cart form .cart-table #CartItems .line-item .cart-product-desc a", 2453 ".cartContainer .scroll #Cart form .cart-table #CartItems .line-item .cart-product-desc a", 2454 ".ajaxcart .ajaxcart__inner .ajaxcart__product .ajaxcart.row .desktop-8.tablet-4 p:first-child", 2455 "#shopping-cart #cartform .desktop-8.tablet-6 .cart-title h4", 2456 "form .cart-items tbody .cart-item .cart-item-product .cart-item-title a", 2457 ".ajaxcart .ajaxcart__inner .ajaxcart__product .ajaxcart__row .grid .grid__item:nth-child(2) p .ajaxcart__product-name", 2458 ".cart.table-wrap .cart-table tbody .cart__row td:nth-child(3) a", 2459 ".mm-panels .mm-opened .cart_item .item_info", 2460 ".cart #content_wrapper .main #cart_form .cart_items .omega > p:first-child", 2461 ".ajaxcart__content .cart__body .cart__row:not(:first-child) .cart__item__title p", 2462 ".template-cart .cartForm .cart__body .cart__row .cart__item__title p", 2463 ".cart-wrapper .cart-inner > div .cart-content .clearfix .item-cart .product-details .product-name", 2464 ".cart div .cart-table-wrap .data-table tbody tr .product-name-td .product-name", 2465 ".PageContent > .Cart > .Cart__ItemList > .CartItem > .CartItem__Info > .CartItem__Meta", 2466 ".Drawer__Container .CartItem > .CartItem__Info > .CartItem__Title", 2467 "#shopify-section-cart-template .cart .line-items .line-item .variant-title", 2468 ".static-cart-wrapper .cart .cart-container .cart-container-scrollable .cart-items .cart-item-row .cart-item-col-product .cart-item-column-slide .cart-item-details .cart-item-product-title", 2469 "#site-header-drawer-cart .cart-mini .cart-container .cart-container-scrollable .cart-items .cart-item-row .cart-item-col-product .cart-item-column-slide .cart-item-details .cart-item-product-title", 2470 ".fancybox-skin > div .container .cart_notification_content p:first-child", 2471 "#cart_form ul li .title_column .meta", 2472 "#cart .mm-panels .mm-panel ul.mm-listview .cart_item a .item_info", 2473 "#cart_form .section .cart_items .five.columns.omega p:first-child", 2474 "#cartform .cart-list .item.clearfix .col-desc .text .title", 2475 ".cart_menu form .cart_row ul:not(:first-child) li:nth-child(2) p", 2476 ".cart_tbl form .con_row ul li:nth-child(2) p", 2477 "#site-cart .site-nav-container-last .top .cart .cart-items .cart-item .content .title", 2478 ".site-box-content .cart .cart-items .cart-item .content .title", 2479 "#shopify-section-template-cart form table.cart-items tbody tr.cart-item .cart-item-product .cart
2479-item-product-wrap .cart-variant", 2480 ".cartForm .cart__body .cart__row:last-child .cart__row--table-large:first-child > div .cart__description__wrapper .cart__description a:first-child", 2481 "#cartform .cart-contents .clearfix .cart-col2 .short-desc", 2482 ".has-popup-tab .popup-tab .detail .item .detail .variant", 2483 "#main #cartform .cart-list .item .col-desc .text .title", 2484 "#ajaxifyCart .cart-form .ajaxifyCart--products .ajaxifyCart--product .large--two-thirds .three-quarters p", 2485 ".mini-cart .mini-cart__inner .mini-cart__items .mini-cart__item-wrapper .mini-cart__item .mini-cart-item__info .mini-cart-item__variant", 2486 ".container form .cart__items tbody tr.cart-item .cart-item__product .cart-item__info .cart-item__title", 2487 "#cart_form > div .cart_content_info h3", 2488 ".cart_container .cart_content form.js-cart_content__form .js-cart_items .cart_item .cart_item__title a", 2489 "#cartform table.desktop-9 tbody tr td .cart-item .cart-title p:last-child", 2490 ".ajaxcart__form .ajaxcart__inner .ajaxcart__products .ajaxcart__product .ajaxcart__row > div .o-layout__item:nth-child(2) .ajaxcart__product-meta", 2491 ".cart-form .cart__products .cart__product .cart__row > div .o-layout__item:nth-child(2) .cart__product-meta", 2492 ".container-widget .shopping-cart-table tbody tr td:nth-child(2) .shopping-cart-table__product-name", 2493 ], 2494 "cart_line_remove": [ 2495 '.cart-items__quantity .cart-items__remove', 2496 'a[href*="quantity=0"]' 2497 ], 2498 "cart_line_qty": [ 2499 "tr.cart-items__table-row > td.cart-items__quantity", 2500 "quantity-popover", 2501 "cart-item-quantity", 2502 ".cart-items__quantity quantity-selector-component input", 2503 "td.cart-item__quantity", 2504 '[name="updates[]"]' 2505 ], 2506 "cart_count": [ 2507 ".cart-bubble__text-count", 2508 "#cart-icon-bubble .cart-count-bubble span[aria-hidden]" 2509 ], 2510 "product_qty": [ 2511 "form .row.clearfix .column.full:last-child .product-form .quadd-wrapper .quantity-area .quantity", 2512 ".product_form .shopify-product-form .productForm__quantity .productForm__quantityInput", 2513 "#add-item-form-product-template .purchase-section div.four:first-child .quantity .item-qty", 2514 ".product-form .product-action .product-form__item--quantity .wrapQtyBtn .qtyField .product-form__input", 2515 ".shopify-product-form .quanity-cart-row .quantity #quantity", 2516 ".product-form .product-detail__quantity-row .input-wrapper .quantity-proxy", 2517 ".product-form .quantity-selector .js-qty__num", 2518 ".product-form .payment-and-quantity--with-quantity .quantity .select-on-focus", 2519 ".shopify-product-form .product-quantity .form-label .form-input", 2520 ".shopify-product-form .items--center .js-qty-wrapper .js-qty .relative .js-qty__num", 2521 ".main-content > div .grid .product-aside .purchase-box .product-form .shopify-product-form .variant > div .input-wrapper .quantity", 2522 ".product-form .product-add-to-cart .product-quantity .quantity-field", 2523 ".shopify-product-form .js-qty .js-qty__controls .table .full--w .js-qty__num:first-child", 2524 ".shopify-product-form .quantity .qty-group input:first-child", 2525 ".product-shop div #add-to-cart-form #quantity", 2526 ".product-form--alt div form .product-form--atc .product-form--atc-qty .form-field--qty-select .form-field-select-wrapper select.form-field-input", 2527 ".product-form div:nth-child(1) .select2-container .selection .select2-selection .select2-selection__rendered", 2528 ".product_form #product-add .js-qty .js-qty__num", 2529 ".product-sticky-wrapper .product-details-wrapper .product-details--form-wrapper #AddToCartForm .js-qty #Quantity", 2530 ".product__form .product__buy .form__control .product__quantity:first-child", 2531 ".shopify-product-form .row .product-form__item #Quantity-product-template", 2532 ".shopify-product-form .product-options .product-option-quantity", 2533 ".product-menu .product-menu-buttons .product-menu-buttons-content .product-menu-buttons-addtocart .product-menu-quantity .quantity-input", 2534 ".shopify-product-form .product-selectors .quantity-selector:last-child", 2535 ".product__form .product__buy .product__quantity input", 2536 ".shopify-product-form .buttons-holder .quantity-selector", 2537 ".AddToCartForm .quantity-wrapper .js-qty .js-qty__num", 2538 ".product-form .product-form-nav .product-quantity .number-input-field #quantity", 2539 ".section-product-template .form-vertical .product-template__container .product-details .quantity-selector .qty", 2540 ".product-form .productoptions .with-payment-button div .quantity", 2541 ".product .product_section .product__description .product_form .shopify-product-form .purchase-details .quantity", 2542 "#AddToCartForm .product-add .js-qty .js-qty__num", 2543 ".grid__item .product-form .variants-wrapper .qtydiv .quantity-input", 2544 "#shopify-section-product #ProductSection-product .product-single #productInfo-product .shopify-product-form .quantity-selector__wrapper .QuantityInput", 2545 ".product-form .product-options-bottom .add-to-cart-box .input-box .quantity-selector", 2546 ".ProductForm .ProductForm__Variants .ProductForm__QuantitySelector .QuantitySelector .QuantitySelector__CurrentQuantity", 2547 "#shopify-section-product-template .shopify-product-form #quantity", 2548 ".product-form > div .product-form-atc .form-element-wrapper .form-element-quantity-submit .form-element", 2549 ".shopify-product-form .purchase-details .purchase-details__quantity .quantity:first-child", 2550 ".feedback-go_to_cart .cf .product-detail__form__options .quantity-wrapper #quantity", 2551 ".shopify-section > div .shopify-product-form .desc_blk .desc_blk_bot .product-page-qty .txtbox", 2552 ".shopify-product-form .cart-functions .quantity-selector-holder .quantity-selector", 2553 ".shopify-product-form .input-wrapper .product-quantity-container .product-quantity-input", 2554 ".shopify-product-form .product__submit .js-qty .js-qty__num", 2555 ".shopify-product-form .quick-actions .qty-field input", 2556 "form .quantity-submit-row .quantity-submit-row__quantity #quantity", 2557 ".grid__cell .product__details .product__form .form__control .quantity-selector .quantity-selector__current-quantity", 2558 ".shopify-product-form .purchase-details .purchase-details__quantity .quantity:first-child", 2559 ".shopify-product-form .quantity-selector .quantity", 2560 ".js-product-form .product-single__qty .product-single__qty-input .js-qty .js-qty__num",
2561 "#add-item-form .wrapper .pull-left:nth-child(2) .qty-input", 2562 'form[action="/cart/add"] [name="quantity"]', 2563 'quantity-input .quantity__input', 2564 "quantity-selector-component input", 2565 ".quantity__input", 2566 ".quantity-selector__input", 2567 ], 2568 "shopify_variants": [ 2569 'form[action="/cart/add"] [name="id"]', 2570 ], 2571 "visible_variants": [ 2572 'form[action="/cart/add"] .product-form__controls-group select.single-option-selector', 2573 'form[action="/cart/add"] .variant-wrapper select.single-option-selector-product-template', 2574 ".no-js-hidden .product-form__input label", 2575 ".variant-picker__form .variant-option .variant-option__button-label", 2576 ".block-swatch-list .block-swatch .label", 2577 "variant-selects .product-form__input label", 2578 ".swatch-element label", 2579 ".variant-picker__option-values input", 2580 ".block-swatch-list .block-swatch", 2581 ], 2582 "buy_it_now": [ 2583 ".shopify-payment-button" 2584 ], 2585 "place_options": [ 2586 ".mws-options" 2587 ], 2588 "sticky_add_to_cart": [ 2589 ".hdt-sticky-atc__submit", 2590 "#product-sticky-add-to-cart", 2591 "#t4s-sticky-atc__atc", 2592 ".t4s-sticky-atc__atc", 2593 "form[id^='sticky-addcart-form-template'] .product-form__buttons .product-form__submit", 2594 "[data-sticky-addtocart] .t4s-sticky-atc__atc", 2595 ".footbar-product .footbar-product__controls .footbar-product__button-add-to-cart .btn--status", 2596 "form[id^='product-sticky-form-template'] .product-form__buttons .product__add__cart__button .button", 2597 ".tt-fixed-product-wrapper .col-item .btn", 2598 ".fkt-cart-plus.add_to_cart_button.addItemAjax", 2599 "#satcb_bar .satcb_btn .product-form__submit", 2600 ".sticky-add-to-cart__button", 2601 ], 2602 "gallery_container": [ 2603 ".product__modal-opener .product__media", 2604 "media-gallery .media-gallery__grid .product-media-container .product-media", 2605 "slideshow-container slideshow-slides slideshow-slide .product-media" 2606 ], 2607 "gallery_image": [ 2608 ".product__modal-opener .product__media img", 2609 "media-gallery .media-gallery__grid .product-media-container .product-media img", 2610 "slideshow-container slideshow-slides slideshow-slide .product-media img" 2611 ], 2612 }; 2613</script>
2613 2614
2615<script> 2616 2617</script>
2617 2618
2619<script type="application/json" id="mwsApoInventoryVariants"> 2620 2621 2622 { 2623 2624 } 2625 2626</script>
2626 2627
2628<script type="application/json" id="mwsApoProduct"> 2629 2630 2631 null 2632 2633</script>
2633 2634
2635<script> 2636 (function() { 2637 const config = {"cache_hash":"1524da3b9257485e8bead43c58aaceec","settings":{"currency_format":"amount","selectors":{"place_options":"","add_to_cart":".product-form__buttons .product-form__submit","sticky_add_to_cart":"","quantity":" .product-form__quantity .quantity .quantity__input","price":".product__info-container .price__regular .price-item.price-item--regular , .product__info-wrapper .price__sale .price-item--sale ","compare_price":"","gallery_container":".product__media ","gallery_image":".product__media img","variants":"","visible_variants":"","form":"","buy_it_now":"","lines":"","line_quantity":"","line_remove":"","cart_count":"","own_variants":""},"translations":{"i18n_configure_link":"Edit Options","i18n_buy_again_link":"Buy again","i18n_buy_again_modal_submit_btn":"Add to cart","i18n_buy_again_reopen_error":"Your cart or options have changed. Refresh the cart and reopen Buy again.","i18n_buy_again_recovery_error":"Your cart has an unfinished update. Please refresh the cart and check your items before trying again.","i18n_buy_again_refresh_cart_btn":"Refresh cart","i18n_separator_title_value":",","i18n_separator_sku":"-","i18n_modal_cancel_btn":"Cancel","i18n_modal_submit_btn":"Submit","i18n_qty_label":"Qty: ","i18n_characters_left":"Characters left: ","i18n_per_character":"per character","i18n_default_select_title":"-- Please Select --","i18n_select_compare_at_title":"(Compare at: [compare_at_price])","i18n_allowed_extensions":"Allowed extensions: ","i18n_required_option_warning":"\"[option_name_or_option_title]\" is required","i18n_selection_limit_warning":"Selection limit, min=[option_limit_min]; max=[option_limit_max]","i18n_number_range_warning":"Number range, min=[option_range_min]; max=[option_range_max]","i18n_length_range_warning":"Length range, min=[option_length_min]; max=[option_length_max]","i18n_buy_now_button":"Buy now","i18n_reset_to_default":"Reset to defaults","i18n_not_available":"Not available","i18n_add_to_cart_error":"Sorry, we could not add this to your cart. Please try again.","i18n_phone_required_warning":"Please enter a number","i18n_phone_invalid_dial_code_warning":"Invalid dial code","i18n_phone_too_short_warning":"Too short","i18n_phone_too_long_warning":"Too long","i18n_phone_invalid_number_warning":"Invalid number","i18n_phone_optional_invalid_warning":"Please enter a valid phone number or clear the field","i18n_cta_bundle_title":"","i18n_custom_price_label":"Total:","i18n_file_upload_select_files":"Select files","i18n_file_upload_or_drop_here":"Or drop here","i18n_file_upload_per_file":"per file","i18n_min_files_to_upload_warning":"Min number of files to be uploaded: {{num}}","i18n_upload_below_files_warning":"Please upload below {{num}} file.","i18n_max_files_allowed_warning":"The max number of files allowed is {{num}}.","i18n_file_upload_limit_warning":"Upload limit: min:{{min}}; max:{{max}}","i18n_max_files_to_upload_warning":"Max number of files to be uploaded: {{num}}","i18n_share_config_btn":"Share Configuration","i18n_share_config_copied":"Configuration link copied","i18n_share_config_error":"Could not copy share link"},"custom_css_mode":"on","custom_css":".mw-apo-configure-link {\n color: black;\n font-size: smaller;\n position: absolute;\n top: 5px;\n white-space: nowrap;\n}\n\n.cart-item__media {\n position: relative;\n}\n\n@media screen and (max-width: 749px) {\n .mw-apo-configure-link {\ntop: 110px;\n }\n}\n","custom_js_mode":"no","custom_js":"","beta_features":{"use_buy_now":"no","use_custom_select":"no","multi_currency":"no","multi_currency_warning":"The actual price in the cart may vary slightly due to conversion rate fluctuations","sync_inventory":null,"show_full_sku":"no","full_sku_placement":"above_options","full_sku_selector":""},"dev_settings":{"cart_request":"no","show_options_for_out_of_stock":"no","update_cart_ignore_form":"no","force_calc_set_qty":false,"extended_step_title":false,"skip_cart_child_validation":false,"report_cart_errors":false,"server_timing":false,"early_start":false},"i18n":null,"swatch_custom_style":{"enabled":false,"shape":"square","spacing":"12","corner_radius":"20","unselected_border":"1","selected_border":"2","unselected_border_color":"#C9CCCF","selected_border_color":"#0070C9","swatch_width":"40","swatch_height":"60","border_padding_size":"0","design_version":"base"},"button_custom_style":{"design_version":"base","button_height":"36","button_radius":"4","unselected_border":"2","unselected_border_color":"#C9CCCF","unselected_background_color":"#FFFFFF","unselected_text_color":"#202223","selected_border":"2","selected_border_color":"#0070C9","selected_background_color":"#FFFFFF","selected_text_color":"#202223"},"is_create_variant_cta":false,"store_front_token":"7c456caeca2b7d02e84001fdbfc5e444","wide_image_card_style":{"swatch_size":"30","border_padding":"10","swatch_radius":"4","card_radius":"4","button_background_color":"#121212","button_border_color":"#121212","button_text_color":"#FFFFFF","selected_button_background_color":"#FFFFFF","selected_button_border_color":"#121212","selected_button_text_color":"#121212","card_spacing":"12","card_border":"1","swatch_border":"1","card_border_color":"#C9CCCF","swatch_border_color":"#C9CCCF","card_background_color":"#FFFFFF","text_color":"#121212","link_color":"#005BD3","selected_card_border":"2","selected_swatch_border":"1","selected_card_border_color":"#121212","selected_swatch_border_color":"#C9CCCF","selected_card_background_color":"#FFFFFF","selected_text_color":"#121212","selected_link_color":"#005BD3"},"tile_card_style":{"corner_radius":"4","button_background_color":"#121212","tile_spacing":"12","card_border":"1","card_background_color":"#FFFFFF","card_border_color":"#C9CCCF","text_color":"#121212","radio_button_border_color":"#C9CCCF","selected_card_border":"2","selected_card_background_color":"#FFFFFF","selected_card_border_color":"#121212","selected_text_color":"#121212","selected_radio_button_background_color":"#121212","selected_radio_button_tick_color":"#FFFFFF"},"modal_style":{"button_image_size":24,"button_image_radius":0,"button_border_padding":6,"button_text_size":14,"button_background_color":"#FFFFFF","button_border_color":"#121212","button_text_color":"#121212","button_radius":0,"button_border_size":1,"modal_background_color":"#FFFFFF","modal_title_color":"#121212","modal_close_icon_color":"#4A4A4A","modal_title_size":14,"modal_corner_radius":10,"link_text_color":"#121212","link_text_size":14,"link_image_size":24},"uses_option_visibility":false,"reset_to_default_enabled":false,"buy_again_enabled":false,"share_enabled":false,"share_default_state":"Copy custom product link","share_default_color":"#005BD3","share_success_state":"Custom product link copied","share_success_color":"#29845A","calendar_format":"m\/d\/Y","calendar_disable_mobile":"no","currency_html_format":"without_currency"}}; 2638 2639 if (config.settings.button_custom_style && config.settings.button_custom_style.design_version === 'version-1') { 2640 const buttonSettings = config.settings.button_custom_style; 2641 const buttonRadius = Math.min(16, Math.max(0, Number(buttonSettings.button_radius) || 0)); 2642 const styleEl = document.createElement('style'); 2643 styleEl.setAttribute('data-mw-apo-button-custom-style', ''); 2644 styleEl.textContent = ` 2645 .mw-option--button-style-version-1 .mw-option__container { 2646 gap: 10px; 2647 margin-top: 0; 2648 margin-left: 0; 2649 align-items: flex-start; 2650 } 2651 2652 .mw-option--button-style-version-1 .mw-option__value, 2653 .mw-option--button-style-version-1 .mw-option__value.mw-option__value--has-media, 2654 .mw-option--button-style-version-1 .mw-option__value.mw-option__value--has-media:first-child { 2655 margin-top: 0; 2656 margin-left: 0; 2657 } 2658 2659 .mw-option--button-style-version-1 .mw-option__button { 2660 --mw-apo-button-border-radius: ${buttonRadius}
2660px; 2661 --mw-apo-color-border: ${buttonSettings.unselected_border_color}; 2662 --mw-apo-color-interactive: ${buttonSettings.selected_border_color}; 2663 box-sizing: border-box; 2664 display: flex; 2665 align-items: center; 2666 min-height: ${buttonSettings.button_height}px; 2667 border-radius: var(--mw-apo-button-border-radius); 2668 border: ${buttonSettings.unselected_border}px solid var(--mw-apo-color-border); 2669 background-color: ${buttonSettings.unselected_background_color}; 2670 color: ${buttonSettings.unselected_text_color}; 2671 } 2672 2673 .mw-option--button-style-version-1 .mw-option__button .mw-text { 2674 color: inherit; 2675 } 2676 2677 .mw-option--button-style-version-1 .mw-option__control:checked + .mw-option__button, 2678 .mw-option--button-style-version-1 .mw-option__value--selected .mw-option__button { 2679 border: ${buttonSettings.selected_border}px solid var(--mw-apo-color-interactive); 2680 background-color: ${buttonSettings.selected_background_color}; 2681 color: ${buttonSettings.selected_text_color}; 2682 box-shadow: none; 2683 } 2684 `; 2685 document.body.appendChild(styleEl); 2686 } 2687 2688 if (['on', 'yes'].includes(config.settings.custom_css_mode) && config.settings.custom_css.length) { 2689 const styleEl = document.createElement('style'); 2690 styleEl.innerHTML = config.settings.custom_css; 2691 document.body.appendChild(styleEl); 2692 } 2693 2694 // Merchant-supplied custom JS (gated, OFF by default). The code is wrapped in 2695 // a try/catch so a runtime error in it can never break the storefront page. 2696 if (['on', 'yes'].includes(config.settings.custom_js_mode) && config.settings.custom_js && config.settings.custom_js.length) { 2697 const runCustomJs = function() { 2698 if (window.__mwApoCustomJsInjected) return; 2699 window.__mwApoCustomJsInjected = true; 2700 const scriptEl = document.createElement('script'); 2701 scriptEl.setAttribute('data-mw-apo-custom-js', ''); 2702 scriptEl.textContent = 'try{' + config.settings.custom_js + '}catch(e){if(window.console&&console.error)console.error("[APO] custom JS error:",e);}'; 2703 (document.body || document.head).appendChild(scriptEl); 2704 }; 2705 if (document.readyState === 'complete') runCustomJs(); 2706 else window.addEventListener('load', runCustomJs); 2707 } 2708 2709 if (config.settings.swatch_custom_style && config.settings.swatch_custom_style.enabled) { 2710 const des_settings = config.settings.swatch_custom_style; 2711 const borderPaddingSize = config.settings.swatch_custom_style.border_padding_size && Number(config.settings.swatch_custom_style.border_padding_size) > 0; 2712 2713 const borderRadius = config.settings.swatch_custom_style.shape !== 'circle' ? `${config.settings.swatch_custom_style.corner_radius}%` : '50%'; 2714 const styleEl = document.createElement('style'); 2715 const swatchStyles = `.mw-option__swatch-image--padding { border-radius: ${borderPaddingSize ? borderRadius : 'inherit'}; padding: ${`${borderPaddingSize ? config.settings.swatch_custom_style.border_padding_size : 0}px;`}} .mw-option__swatch-color--padding {border-radius: ${borderPaddingSize ? borderRadius: 'inherit'}; background-clip: padding-box; box-shadow: ${borderPaddingSize ? `inset 0px 0px 0px ${config.settings.swatch_custom_style.border_padding_size}px #fff;` : `none`}} .mw-option--type-swatch .mw-option__value, .mw-option--type-multiswatch .mw-option__value {margin-left: 0;} .mw-option--type-swatch .mw-option__container, .mw-option--type-multiswatch .mw-option__container { margin-left: 0; } .mw-option--type-swatch .mw-option__container, .mw-option--type-multiswatch .mw-option__container {column-gap: ${des_settings.spacing}px; row-gap: ${des_settings.spacing}px; } .mw-option__value .mw-stack__item .mw-option__swatch-media.mw-option__swatch-media--swatch-custom-style {border: ${des_settings.unselected_border}px solid ${des_settings.unselected_border_color}; border-radius: ${borderRadius}} .mw-option__value.mw-option__value--selected .mw-stack__item .mw-option__swatch-media.mw-option__swatch-media--swatch-custom-style {box-shadow: none; border: ${des_settings.selected_border}px solid ${des_settings.selected_border_color}; border-radius: ${borderRadius}}`; 2716 styleEl.innerHTML = swatchStyles; 2717 document.body.appendChild(styleEl); 2718 } 2719 2720 if (config.settings.wide_image_card_style) { 2721 const des_settings = config.settings.wide_image_card_style; 2722 const borderRadius = `${des_settings.card_radius}px`; 2723 const padding = `${des_settings.border_padding}px`; 2724 const selectedColorLink = des_settings.selected_link_color; 2725 const colorLink = des_settings.link_color; 2726 2727 const styleEl = document.createElement('style'); 2728 2729 const ÑardStyles = ` 2730 .mw-option--type-wideimagecard .mw-option__value .mw-label__c
2730ard-wrapper, 2731 .mw-option--type-multiwideimagecard .mw-option__value .mw-label__card-wrapper { 2732 display: flex; 2733 flex-direction: row; 2734 width: 100%; 2735 min-width: auto; 2736 border-radius: ${borderRadius}; 2737 padding: ${padding}; 2738 margin-left: 0; 2739 } 2740 2741 .mw-option--type-multiwideimagecard .mw-option__container, .mw-option--type-wideimagecard .mw-option__container { 2742 gap: ${des_settings.card_spacing}px; 2743 } 2744 2745 .mw-option--type-wideimagecard .mw-option__value .mw-stack--wide__media, 2746 .mw-option--type-multiwideimagecard .mw-option__value .mw-stack--wide__media { 2747 flex: 0 0 ${des_settings.swatch_size}%; 2748 aspect-ratio: 1 / 1; 2749 position: relative; 2750 overflow: hidden; 2751 border-radius: ${des_settings.swatch_radius}%; 2752 display: flex; 2753 } 2754 2755 .mw-option--type-wideimagecard .mw-option__value:not(.mw-option__value--selected), 2756 .mw-option--type-multiwideimagecard .mw-option__value:not(.mw-option__value--selected) { 2757 border-radius: ${borderRadius}; 2758 border: ${des_settings.card_border}px solid ${des_settings.card_border_color}; 2759 background-color: ${des_settings.card_background_color}; 2760 color: ${des_settings.text_color}; 2761 } 2762 2763 .mw-option--type-wideimagecard .mw-option__value:not(.mw-option__value--selected) .mw-stack--wide__media, 2764 .mw-option--type-multiwideimagecard .mw-option__value:not(.mw-option__value--selected) .mw-stack--wide__media { 2765 border: ${des_settings.swatch_border}px solid ${des_settings.swatch_border_color}; 2766 } 2767 2768 .mw-option--type-wideimagecard .mw-option__value:not(.mw-option__value--selected) .mw-stack--wide__content-link a:-webkit-any-link, 2769 .mw-option--type-multiwideimagecard .mw-option__value:not(.mw-option__value--selected) .mw-stack--wide__content-link a:-webkit-any-link { 2770 color: ${colorLink}; 2771 } 2772 2773 .mw-option--type-wideimagecard .mw-option__value.mw-option__value--selected .mw-stack--wide__content-link a:-webkit-any-link, 2774 .mw-option--type-multiwideimagecard .mw-option__value.mw-option__value--selected .mw-stack--wide__content-link a:-webkit-any-link { 2775 color: ${selectedColorLink}; 2776 } 2777 2778 .mw-option--type-wideimagecard .mw-option__value.mw-option__value--selected, 2779 .mw-option--type-multiwideimagecard .mw-option__value.mw-option__value--selected { 2780 border-radius: ${borderRadius}; 2781 border: ${des_settings.selected_card_border}px solid ${des_settings.selected_card_border_color}; 2782 background-color: ${des_settings.selected_card_background_color}; 2783 color: ${des_settings.selected_text_color}; 2784 } 2785 2786 .mw-option--type-wideimagecard .mw-option__value.mw-option__value--selected .mw-stack--wide__media, 2787 .mw-option--type-multiwideimagecard .mw-option__value.mw-option__value--selected .mw-stack--wide__media { 2788 border: ${des_settings.selected_swatch_border}px solid ${des_settings.selected_swatch_border_color}; 2789 } 2790 2791 .mw-option--type-wideimagecard .mw-stack--wide__content-button--select, 2792 .mw-option--type-multiwideimagecard .mw-stack--wide__content-button--select { 2793 color: ${des_settings.button_text_color}; 2794 border: 1px solid ${des_settings.button_border_color}; 2795 background: ${des_settings.button_background_color}; 2796 } 2797 2798 .mw-option--type-wideimagecard .mw-option__value-qty--with-buttons, 2799 .mw-option--type-multiwideimagecard .mw-option__value-qty--with-buttons { 2800 border: 1px solid ${des_settings.button_border_color}; 2801 background: ${des_settings.button_background_color}; 2802 } 2803 2804 .mw-option--type-wideimagecard .mw-stack__item--qty .mw-option__value-qty-control, 2805 .mw-option--type-wideimagecard .mw-stack__item--qty .mw-option__value-qty-button, 2806 .mw-option--type-multiwideimagecard .mw-stack__item--qty .mw-option__value-qty-control, 2807 .mw-option--type-multiwideimagecard .mw-stack__item--qty .mw-option__value-qty-button { 2808 color: ${des_settings.button_text_color}; 2809 } 2810 2811 .mw-option--type-wideimagecard .mw-stack--wide__content-button--unselect, 2812 .mw-option--type-multiwideimagecard .mw-stack--wide__content-button--unselect { 2813 color: ${des_settings.selected_button_text_color}; 2814 border: 1px solid ${des_settings.selected_button_border_color}; 2815 background: ${des_settings.selected_button_background_color}; 2816 } 2817 2818 .mw-option--type-wideimagecard .mw-option__value--selected .mw-option__value-qty--with-buttons, 2819 .mw-option--type-multiwideimagecard .mw-option__value--selected .mw-option__value-qty--with-buttons { 2820 border: 1px solid ${des_settings.selected_button_border_color}; 2821 background: ${des_settings.selected_button_background_color}; 2822 } 2823 2824 .mw-option--type-wideimagecard .mw-option__value--selected .mw-stack__item--qty .mw-option__value-qty-control, 2825 .mw-option--type-wideimagecard .mw-option__value--selected .mw-stack__item--qty .mw-option__value-qty-button, 2826 .mw-option--type-multiwideimagecard .mw-option__value--selected .mw-stack__item--qty .mw-option__value-qty-control, 2827 .mw-option--type-multiwideimagecard .mw-option__value--selected .mw-stack__item--qty .mw-option__value-qty-button { 2828 color: ${des_settings.selected_button_text_color}; 2829 } 2830 `; 2831 2832 2833 styleEl.innerHTML = ÑardStyles; 2834 document.body.appendChild(styleEl); 2835 } 2836 2837 if (config.settings.tile_card_style) { 2838 const tileSettings = config.settings.tile_card_style; 2839 const borderRadius = `${tileSettings.corner_radius}px`; 2840 const tileSpacing = `${tileSettings.tile_spacing}px`; 2841 2842 const styleEl = document.createElement('style'); 2843 2844 styleEl.innerHTML = ` 2845 .mw-option--type-choicetile .mw-option__container, 2846 .mw-option--type-multichoicetile .mw-option__container { 2847 gap: ${tileSpacing}; 2848 } 2849 2850 .mw-option--type-choicetile .mw-option__container .mw-label__c
2850ard-wrapper, 2851 .mw-option--type-multichoicetile .mw-option__container .mw-label__card-wrapper, 2852 .mw-option--type-choicetile .mw-option__container .mw-apo-expand-button, 2853 .mw-option--type-multichoicetile .mw-option__container .mw-apo-expand-button { 2854 background-color: ${tileSettings.card_background_color}; 2855 border: ${tileSettings.card_border}px solid ${tileSettings.card_border_color}; 2856 color: ${tileSettings.text_color}; 2857 border-radius: ${tileSettings.corner_radius}px; 2858 } 2859 2860 .mw-option--type-choicetile .mw-option__value--selected .mw-label__card-wrapper, 2861 .mw-option--type-multichoicetile .mw-option__value--selected .mw-label__card-wrapper { 2862 border: ${tileSettings.selected_card_border}px solid ${tileSettings.selected_card_border_color}; 2863 background-color: ${tileSettings.selected_card_background_color}; 2864 color: ${tileSettings.selected_text_color}; 2865 } 2866 2867 .mw-option--type-choicetile .mw-stack--card__radio, 2868 .mw-option--type-multichoicetile .mw-stack--card__radio { 2869 border: 1px solid ${tileSettings.radio_button_border_color}; 2870 } 2871 2872 .mw-option--type-choicetile .mw-option__value--selected .mw-stack--card__radio, 2873 .mw-option--type-multichoicetile .mw-option__value--selected .mw-stack--card__radio { 2874 background-color: ${tileSettings.selected_radio_button_background_color}; 2875 } 2876 2877 .mw-option--type-choicetile .mw-option__value--selected .mw-stack--card__radio:after, 2878 .mw-option--type-multichoicetile .mw-option__value--selected .mw-stack--card__radio:after { 2879 border-color: ${tileSettings.selected_radio_button_tick_color}; 2880 } 2881 2882 .mw-option--type-choicetile .mw-stack--card__title, 2883 .mw-option--type-multichoicetile .mw-stack--card__title { 2884 font-weight: 700; 2885 font-size: 14px; 2886 white-space: normal; 2887 } 2888 2889 .mw-option--type-choicetile .mw-stack--card__description, 2890 .mw-option--type-multichoicetile .mw-stack--card__description { 2891 font-size: 13px; 2892 opacity: 0.7; 2893 white-space: normal; 2894 overflow-wrap: break-word; 2895 word-break: break-word; 2896 line-height: 1.4; 2897 } 2898 `; 2899 2900 document.body.appendChild(styleEl); 2901 } 2902 2903 2904 const curr_loc = {"shop_locale":{"locale":"en","enabled":true,"primary":true,"published":true}}; 2905 2906 const getSelectors = () => { 2907 return window.mwApoSelectors || {}; 2908 }; 2909 2910 // The product and the inventory map are already printed above, in the 2911 // #mwsApoProduct / #mwsApoInventoryVariants tags (entry.ts re-reads those 2912 // two on SPA navigation, so they have to stay). Printing them a second time 2913 // here doubled the weight of every product page: on a large catalogue the 2914 // product JSON alone is hundreds of KB, and gzip cannot dedupe the copies 2915 // because its 32 KB window does not reach that far back. 2916 const readInlineJson = (id) => { 2917 const el = document.getElementById(id); 2918 if (!el) return null; 2919 try { 2920 return JSON.parse(el.textContent); 2921 } catch (e) { 2922 if (window.console && console.error) console.error('[APO] bad inline JSON in #' + id, e); 2923 return null; 2924 } 2925 }; 2926
2927 window.mwApoInit = window.mwApoInit || Object.assign({ 2928 "version": "1.1", 2929 "product": readInlineJson('mwsApoProduct'), 2930 "mws_inventory": readInlineJson('mwsApoInventoryVariants') || {}, 2931 "cart": {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}, 2932 "template_name": "index", 2933 "shop_domain": "the-joinery-pdx.myshopify.com", 2934 "shop_domain_primary": "thejoinery.com", 2935 "shop_money_format": "${{amount}}", 2936 "shop_money_with_currency_format": "${{amount}} USD", 2937 "shop_currency": "USD", 2938 "locale": curr_loc && curr_loc["shop_locale"] ? curr_loc["shop_locale"]["locale"] : "", 2939 "locale_primary": curr_loc && curr_loc["shop_locale"] ? curr_loc["shop_locale"]["primary"] : "", 2940 "customer_tags": [], 2941 "market_id": 46055948576, 2942 "selectors": getSelectors() 2943 }, config); 2944 })(); 2945</script>
2945 2946
2947<script> 2948 // Start the options request now instead of when the bundle gets to it: the 2949 // bundle only runs after the page is parsed and every deferred script above it 2950 // ran. The url is built the same way as loadOptions() in front/src/entry.ts 2951 // does it; the bundle uses this response only when its own url is identical, 2952 // otherwise it sends the request itself, so a mismatch costs one cached GET. 2953 (function() { 2954 try { 2955 var init = window.mwApoInit; 2956 var apiUrl = "https:\/\/apo-admin.mageworx.com\/front"; 2957 if (!/^https?:\/\/[^\s<>"']+$/.test(apiUrl) || !window.fetch || !init || init.template_name !== 'product' || !init.product || !init.cache_hash) return; 2958 2959 var settings = init.settings || {}; 2960 var devSettings = settings.dev_settings || {}; 2961 var variantId = null; 2962 if (!variantId) return; 2963 2964 var variant = (init.product.variants || []).filter(function(v) { return String(v.id) === String(variantId); })[0]; 2965 if (!variant || String(variant.title).indexOf('#MWS Options') !== -1) return; 2966 if (devSettings.show_options_for_out_of_stock === 'no' && !variant.available) return; 2967 2968 var toBase64Url = function(obj) { 2969 var bytes = new TextEncoder().encode(JSON.stringify(obj)); 2970 return btoa(String.fromCharCode.apply(null, bytes)).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, ''); 2971 }; 2972 2973 // getMultiCurrencyObj() in front/src/utils/currency.ts 2974 var multiCurrency = null; 2975 var betaFeatures = settings.beta_features || {}; 2976 var isCta = settings.is_create_variant_cta; 2977 var shopifyCurrency = window.Shopify && window.Shopify.currency; 2978 if ((betaFeatures.multi_currency && betaFeatures.multi_currency !== 'no') || isCta) { 2979 var currencyChanged = shopifyCurrency && init.shop_currency !== shopifyCurrency.active; 2980 if (isCta !== undefined || (currencyChanged && shopifyCurrency && shopifyCurrency.rate)) { 2981 var ctaMode = isCta !== undefined ? isCta : false; 2982 var rate = shopifyCurrency && shopifyCurrency.rate != null ? shopifyCurrency.rate : ''; 2983 if (ctaMode || Number(rate) !== 1) { 2984 multiCurrency = { 2985 curr: shopifyCurrency && shopifyCurrency.active != null ? shopifyCurrency.active : '', 2986 curr_rate: rate, 2987 fmt_money: init.shop_money_format, 2988 fmt_money_curr: init.shop_money_with_currency_format 2989 }; 2990 } 2991 } 2992 } 2993 2994 var url = apiUrl + '/product/' + init.shop_domain + '/' + String(init.cache_hash) + '/' + String(init.product.id) + '/' + String(variantId) + '.js'; 2995 var params = new URLSearchParams(); 2996 if (multiCurrency) params.append('curr_hash', toBase64Url(multiCurrency)); 2997 if (!init.locale_primary && init.locale) params.append('locale', init.locale); 2998 if (settings.uses_option_visibility === true) { 2999 params.append('visibility_hash', toBase64Url({ 3000 customer_tags: init.customer_tags != null ? init.customer_tags : [], 3001 market_id: init.market_id != null ? init.market_id : null 3002 })); 3003 } 3004 var query = params.toString(); 3005 if (query) url += '?' + query; 3006 3007 var promise = fetch(url).then(function(response) { 3008 if (response.status === 204) return { status: 204, data: '' }; 3009 if (!response.ok) throw new Error('APO options prefetch failed with status ' + response.status); 3010 return response.json().then(function(data) { return { status: response.status, data: data }; }); 3011 }); 3012 // The bundle falls back to its own request on failure; keep a rejection 3013 // that nobody consumed out of the console. 3014 promise.catch(function() {}); 3015 window.mwApoOptionsPrefetch = { url: url, promise: promise }; 3016 } catch (e) { 3017 if (window.console && console.warn) console.warn('[APO] options prefetch skipped', e); 3018 } 3019 })(); 3020 3021 // Everything the bundle needs is on the page now; an early-started bundle waits for this. 3022 window.mwApoInitReady = true; 3023 document.dispatchEvent(new Event('mwApo:init-ready')); 3024</script>
3024 3025 3026 3027</div>
3027<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
3027 3028</body> 3029</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.