1<!doctype html> 2 3 4 5 6 7 8 9 10 11 12 13 14 15<html class="no-js ofc is-cart page-class-set logged-out cart" lang="en" dir="ltr"> 16<head> 17 18
18<script> 19 (function() { 20 /* START - JTM - polyfill fix broke console.log on site since its being disabled somewhere */ 21 // 1. Create a hidden iframe to grab a pristine console object 22 var iframe = document.createElement('iframe'); 23 iframe.style.display = 'none'; 24 document.documentElement.appendChild(iframe); 25 var nativeLog = iframe.contentWindow.console.log; 26 // 2. Lock console.log so nothing can change it 27 Object.defineProperty(window.console, 'log', { 28 get: function() { return nativeLog.bind(window.console); }, 29 set: function() {}, // Completely ignore any scripts trying to turn it off 30 configurable: false 31 }); 32 /* END - JTM - polyfill fix broke console.log on site since its being disabled somewhere */ 33 })(); 34 </script>
34<meta charset="utf-8"> 35 36 37 38 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=5, viewport-fit=cover"/> 39 40 41<title>Your Shopping Cart – Outdoor Fabric Central</title><link rel="canonical" href="https://www.outdoorfabriccentral.com/cart"><link rel="icon" href="//www.outdoorfabriccentral.com/cdn/shop/files/favicon-180px-by-180px.png?crop=center&height=48&v=1751289909&width=48" type="image/png"> 42 <link rel="apple-touch-icon" href="//www.outdoorfabriccentral.com/cdn/shop/files/favicon-180px-by-180px.png?crop=center&height=180&v=1751289909&width=180"><meta property="og:site_name" content="Outdoor Fabric Central"> 43<meta property="og:url" content="https://www.outdoorfabriccentral.com/cart"> 44<meta property="og:title" content="Your Shopping Cart"> 45<meta property="og:type" content="website"> 46<meta property="og:description" content="Sunbrella fabrics by the yard and custom made outdoor cushions. Free Sunbrella Samples."><meta property="og:image" content="http://www.outdoorfabriccentral.com/cdn/shop/files/ofc-logo--high-rez-mobile-no-tagline.webp?crop=center&height=1200&v=1786475351&width=1200"> 47 <meta property="og:image:secure_url" content="https://www.outdoorfabriccentral.com/cdn/shop/files/ofc-logo--high-rez-mobile-no-tagline.webp?crop=center&height=1200&v=1786475351&width=1200"> 48 <meta property="og:image:width" content="600"> 49 <meta property="og:image:height" content="184"><meta name="twitter:card" content="summary_large_image"> 50<meta name="twitter:title" content="Your Shopping Cart"> 51<meta name="twitter:description" content="Sunbrella fabrics by the yard and custom made outdoor cushions. Free Sunbrella Samples."> 52 53 54 55 <link rel="preload" href="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/main.css?v=105982328972476625381771377790" as="style"><style data-shopify> 56@font-face { 57 font-family: Poppins; 58 font-weight: 400; 59 font-style: normal; 60 font-display: swap; 61 src: url("//www.outdoorfabriccentral.com/cdn/fonts/poppins/poppins_n4.0ba78fa5af9b0e1a374041b3ceaadf0a43b41362.woff2") format("woff2"), 62 url("//www.outdoorfabriccentral.com/cdn/fonts/poppins/poppins_n4.214741a72ff2596839fc9760ee7a770386cf16ca.woff") format("woff"); 63} 64@font-face { 65 font-family: Poppins; 66 font-weight: 500; 67 font-style: normal; 68 font-display: swap; 69 src: url("//www.outdoorfabriccentral.com/cdn/fonts/poppins/poppins_n5.ad5b4b72b59a00358afc706450c864c3c8323842.woff2") format("woff2"), 70 url("//www.outdoorfabriccentral.com/cdn/fonts/poppins/poppins_n5.33757fdf985af2d24b32fcd84c9a09224d4b2c39.woff") format("woff"); 71} 72@font-face { 73 font-family: Poppins; 74 font-weight: 400; 75 font-style: italic; 76 font-display: swap; 77 src: url("//www.outdoorfabriccentral.com/cdn/fonts/poppins/poppins_i4.846ad1e22474f856bd6b81ba4585a60799a9f5d2.woff2") format("woff2"), 78 url("//www.outdoorfabriccentral.com/cdn/fonts/poppins/poppins_i4.56b43284e8b52fc64c1fd271f289a39e8477e9ec.woff") format("woff"); 79} 80@font-face { 81 font-family: Poppins; 82 font-weight: 500; 83 font-style: italic; 84 font-display: swap; 85 src: url("//www.outdoorfabriccentral.com/cdn/fonts/poppins/poppins_i5.6acfce842c096080e34792078ef3cb7c3aad24d4.woff2") format("woff2"), 86 url("//www.outdoorfabriccentral.com/cdn/fonts/poppins/poppins_i5.a49113e4fe0ad7fd7716bd237f1602cbec299b3c.woff") format("woff"); 87} 88@font-face { 89 font-family: Poppins; 90 font-weight: 400; 91 font-style: normal; 92 font-display: swap; 93 src: url("//www.outdoorfabriccentral.com/cdn/fonts/poppins/poppins_n4.0ba78fa5af9b0e1a374041b3ceaadf0a43b41362.woff2") format("woff2"), 94 url("//www.outdoorfabriccentral.com/cdn/fonts/poppins/poppins_n4.214741a72ff2596839fc9760ee7a770386cf16ca.woff") format("woff"); 95} 96@font-face { 97 font-family: Poppins; 98 font-weight: 500; 99 font-style: normal; 100 font-display: swap; 101 src: url("//www.outdoorfabriccentral.com/cdn/fonts/poppins/poppins_n5.ad5b4b72b59a00358afc706450c864c3c8323842.woff2") format("woff2"), 102 url("//www.outdoorfabriccentral.com/cdn/fonts/poppins/poppins_n5.33757fdf985af2d24b32fcd84c9a09224d4b2c39.woff") format("woff"); 103} 104:root { 105 --bg-color: 255 255 255 / 1.0; 106 --bg-color-og: 255 255 255 / 1.0; 107 --heading-color: 48 48 48; 108 --text-color: 100 100 100; 109 --text-color-og: 100 100 100; 110 --scrollbar-color: 100 100 100; 111 --link-color: 244 118 76; 112 --link-color-og: 244 118 76; 113 --star-color: 249 219 109; 114 --sale-price-color: 198 32 32;--swatch-border-color-default: 224 224 224; 115 --swatch-border-color-active: 178 178 178; 116 --swatch-card-size: 24px; 117 --swatch-variant-picker-size: 28px;--color-scheme-1-bg: 252 249 241 / 1.0; 118 --color-scheme-1-grad: ; 119 --color-scheme-1-heading: 48 48 48; 120 --color-scheme-1-text: 48 48 48; 121 --color-scheme-1-btn-bg: 231 87 35; 122 --color-scheme-1-btn-text: 255 255 255; 123 --color-scheme-1-btn-bg-hover: 236 123 82;--color-scheme-2-bg: 231 87 35 / 1.0; 124 --color-scheme-2-grad: ; 125 --color-scheme-2-heading: 252 249 241; 126 --color-scheme-2-text: 252 249 241; 127 --color-scheme-2-btn-bg: 255 255 255; 128 --color-scheme-2-btn-text: 244 118 76; 129 --color-scheme-2-btn-bg-hover: 254 245 242;--color-scheme-3-bg: 69 19 44 / 1.0; 130 --color-scheme-3-grad: ; 131 --color-scheme-3-heading: 255 255 255; 132 --color-scheme-3-text: 255 255 255; 133 --color-scheme-3-btn-bg: 231 87 35; 134 --color-scheme-3-btn-text: 255 255 255; 135 --color-scheme-3-btn-bg-hover: 236 123 82;
136 137 --drawer-bg-color: 255 255 255 / 1.0; 138 --drawer-text-color: 48 48 48; 139 140 --panel-bg-color: 252 249 241 / 1.0; 141 --panel-heading-color: 48 48 48; 142 --panel-text-color: 48 48 48; 143 144 --in-stock-text-color: 44 126 63; 145 --low-stock-text-color: 210 134 26; 146 --very-low-stock-text-color: 180 12 28; 147 --no-stock-text-color: 119 119 119; 148 --no-stock-backordered-text-color: 119 119 119; 149 150 --error-bg-color: 244 216 220; 151 --error-text-color: 180 12 28; 152 --success-bg-color: 232 246 234; 153 --success-text-color: 44 126 63; 154 --info-bg-color: 228 237 250; 155 --info-text-color: 26 102 210; 156 157 --heading-font-family: Poppins, sans-serif; 158 --heading-font-style: normal; 159 --heading-font-weight: 400; 160 --heading-scale-start: 4; 161 --heading-letter-spacing: 0.0em; 162 163 --navigation-font-family: Poppins, sans-serif; 164 --navigation-font-style: normal; 165 --navigation-font-weight: 500; 166 --navigation-letter-spacing: 0.0em;--heading-text-transform: none; 167--subheading-text-transform: none; 168 --body-font-family: Poppins, sans-serif; 169 --body-font-style: normal; 170 --body-font-weight: 400; 171 --body-font-size: 16; 172 --body-font-size-px: 16px; 173 --body-letter-spacing: 0.0em; 174 175 --section-gap: 48; 176 --heading-gap: calc(8 * var(--space-unit));--grid-column-gap: 20px; 177 --product-card-gap: 20px;--btn-bg-color: 231 87 35; 178 --btn-bg-hover-color: 236 123 82; 179 --btn-text-color: 255 255 255; 180 --btn-bg-color-og: 231 87 35; 181 --btn-text-color-og: 255 255 255; 182 --btn-alt-bg-color: 255 255 255; 183 --btn-alt-bg-alpha: 1.0; 184 --btn-alt-text-color: 48 48 48; 185 --btn-border-width: 2px; 186 --btn-padding-y: 12px; 187 --btn-text-size: 0.92em; 188 189 190 --btn-border-radius: 5px; 191 192 193 --btn-lg-border-radius: 50%; 194 --btn-icon-border-radius: 50%; 195 --input-with-btn-inner-radius: var(--btn-border-radius); 196 197 --input-bg-color: 255 255 255 / 1.0; 198 --input-text-color: 100 100 100; 199 --input-border-width: 2px; 200 --input-border-radius: 3px; 201 --textarea-border-radius: 3px; 202 --input-border-radius: 5px; 203 --input-bg-color-diff-3: #f7f7f7; 204 --input-bg-color-diff-6: #f0f0f0; 205 206 --modal-border-radius: 8px; 207 --modal-overlay-color: 0 0 0; 208 --modal-overlay-opacity: 0.4; 209 --drawer-border-radius: 8px; 210 --overlay-border-radius: 8px;--sale-label-bg-color: 251 54 64; 211 --sale-label-text-color: 255 255 255;--preorder-label-bg-color: 0 166 237; 212 --preorder-label-text-color: 255 255 255; 213 214 --page-width: 1260px; 215 --gutter-sm: 20px; 216 --gutter-md: 48px; 217 --gutter-lg: 64px; 218 219 --payment-terms-bg-color: #ffffff; 220 221 --coll-card-bg-color: #fcf9f1; 222 --coll-card-border-color: #fcf9f1; 223 224 --card-bg-color: 255 255 255; 225 --card-text-color: 48 48 48; 226 --card-border-color: #dadada; 227 228 --aos-animate-duration: 0.7s; 229 230 231 232 --aos-min-width: 600; 233 234 235 236 --reading-width: 48em; 237 --cart-savings-color: 210 0 20 238 239 }@media (max-width: 769px) { 240 :root { 241 --reading-width: 36em; 242 } 243 } 244 </style><link rel="stylesheet" href="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/main.css?v=105982328972476625381771377790"> 245
245<script src="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/main.js?v=94872541026663985831740079762" defer="defer"></script>
245<link rel="preload" href="//www.outdoorfabriccentral.com/cdn/fonts/poppins/poppins_n4.0ba78fa5af9b0e1a374041b3ceaadf0a43b41362.woff2" as="font" type="font/woff2" crossorigin fetchpriority="high"><link rel="preload" href="//www.outdoorfabriccentral.com/cdn/fonts/poppins/poppins_n4.0ba78fa5af9b0e1a374041b3ceaadf0a43b41362.woff2" as="font" type="font/woff2" crossorigin fetchpriority="high"> 246
247<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
247<meta name="google-site-verification" content="Y5XfyPTh4ektG60g3uAMp4sfezOqS9wYsw76_FFtZww"> 248<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/89613271404/digital_wallets/dialog"> 249<meta id="in-context-paypal-metadata" data-shop-id="89613271404" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 250<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
250<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=5214011756"></script>
250 251<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
252<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=5214011756&shop_id=89613271404" crossorigin="anonymous"></script>
vendor: 1 bytes, line 252
252
253<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":89613271404,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/89613271404","merchantName":"Outdoor Fabric Central","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Outdoor Fabric Central","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 253
253
254<script id="shopify-features" type="application/json">{"accessToken":"d9c23ecffab47eeca36b2c53c82baf30","betas":["rich-media-storefront-analytics"],"domain":"www.outdoorfabriccentral.com","predictiveSearch":true,"shopId":89613271404,"locale":"en"}</script>
vendor: 1 bytes, line 254
254
255<script>var Shopify = Shopify || {}; 256Shopify.shop = "outdoorfabriccentral.myshopify.com"; 257Shopify.locale = "en"; 258Shopify.currency = {"active":"USD","rate":"1.0"}; 259Shopify.country = "US"; 260Shopify.theme = {"name":"ofc-shopify\/main","id":173800259948,"schema_name":"Canopy","schema_version":"6.3.2","theme_store_id":null,"role":"main"}; 261Shopify.theme.handle = "null"; 262Shopify.theme.style = {"id":null,"handle":null}; 263Shopify.cdnHost = "www.outdoorfabriccentral.com/cdn"; 264Shopify.routes = Shopify.routes || {}; 265Shopify.routes.root = "/"; 266Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 267Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 268Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 269Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 269
269
270<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 270
270
271<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 271
271
272<script> 273 window.ShopifyPay = window.ShopifyPay || {}; 274 window.ShopifyPay.apiHost = "shop.app\/pay"; 275 window.ShopifyPay.redirectState = null; 276</script>
vendor: 1 bytes, line 276
276
277<script> 278 window.Shopify = window.Shopify || {}; 279 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 280 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 281 window.Shopify.SignInWithShop.eligible = true; 282</script>
vendor: 1 bytes, line 282
282
283<script id="shop-js-analytics" type="application/json">{"pageType":"cart"}</script>
vendor: 1 bytes, line 283
283
284<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 284
284
285<script type="module"> 286 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 287 288 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 289 290</script>
vendor: 1 bytes, line 290
290
291<script> 292 window.Shopify = window.Shopify || {}; 293 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 294 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"]}; 295</script>
vendor: 1 bytes, line 295
295
296<script>(function() { 297 var isLoaded = false; 298 function asyncLoad() { 299 if (isLoaded) return; 300 isLoaded = true; 301 var urls = ["https:\/\/node1.itoris.com\/dpo\/storefront\/include.js?shop=outdoorfabriccentral.myshopify.com","https:\/\/custompricing.axtrics.com\/minified_js.js?shop=outdoorfabriccentral.myshopify.com"]; 302 for (var i = 0; i < urls.length; i++) { 303 var s = document.createElement('script'); 304 s.type = 'text/javascript'; 305 s.async = true; 306 s.src = urls[i]; 307 var x = document.getElementsByTagName('script')[0]; 308 x.parentNode.insertBefore(s, x); 309 } 310 }; 311 if(window.attachEvent) { 312 window.attachEvent('onload', asyncLoad); 313 } else { 314 window.addEventListener('load', asyncLoad, false); 315 } 316})();</script>
vendor: 1 bytes, line 316
316
317<script id="__st">var __st={"a":89613271404,"offset":-14400,"reqid":"e394f9cb-ad37-4939-aaf9-e2082b88597c-1790578712","pageurl":"www.outdoorfabriccentral.com\/cart","u":"55047bfe98b3","p":"cart"};</script>
vendor: 1 bytes, line 317
317
318<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 318
318
319<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 319
319
320<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.outdoorfabriccentral.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 320
320
321<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 = "//www.outdoorfabriccentral.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>
321<script crossorigin="anonymous" defer="defer" src="//www.outdoorfabriccentral.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 321
321
322<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 322
322
323<script> 324 window.Shopify = window.Shopify || {}; 325 window.Shopify.MCP = window.Shopify.MCP || {}; 326 window.Shopify.MCP.enabled = true; 327 window.Shopify.MCP.shop = "outdoorfabriccentral.myshopify.com"; 328 window.Shopify.MCP.mcpEndpoint = "https:\/\/www.outdoorfabriccentral.com\/api\/mcp"; 329 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"]}}]; 330</script>
vendor: 1 bytes, line 330
330
331<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("\/\/www.outdoorfabriccentral.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 332</script>
vendor: 1 bytes, line 332
332
333<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://www.outdoorfabriccentral.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 334</script>
vendor: 1 bytes, line 334
334
335<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 336 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); 337</script>
vendor: 1 bytes, line 337
337
338<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})}})); 339</script>
339 340<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.outdoorfabriccentral.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 341<style id="shopify-accelerated-checkout-cart"> 342 #shopify-buyer-consent { 343 margin-top: 1em; 344 display: inline-block; 345 width: 100%; 346} 347 348#shopify-buyer-consent.hidden { 349 display: none; 350} 351 352#shopify-subscription-policy-button { 353 background: none; 354 border: none; 355 padding: 0; 356 text-decoration: underline; 357 font-size: inherit; 358 cursor: pointer; 359} 360 361#shopify-subscription-policy-button::before { 362 box-shadow: none; 363} 364 365 </style>
366<script id="sections-script" data-sections="header,footer" defer="defer" src="//www.outdoorfabriccentral.com/cdn/shop/t/2/compiled_assets/scripts.js?v=132263383497981015851736781228"></script>
vendor: 1 bytes, line 366
366
367<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
367 368 369
369<script src="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/animate-on-scroll.js?v=15249566486942820451736781214" defer="defer"></script>
369 370 <link rel="stylesheet" href="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/animate-on-scroll.css?v=62865576715456057531736781213"> 371 372 373
373<script>document.documentElement.className = document.documentElement.className.replace('no-js', 'js');</script>
373<!-- CC Custom Head Start --><!-- CC Custom Head End --><!-- Google Tag Manager --> 374
374<script>
vendor: 335 bytes, lines 374-378
374(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 375 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 376 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 377 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 378 })(window,document,'script','dataLayer','
378GTM-T4ZHZWT7
vendor: 3 bytes, line 378
378');
378</script>
378 379<!-- End Google Tag Manager --> 380 381<!-- MS Clarity -->
382<script type="text/javascript"> 383 (function(c,l,a,r,i,t,y){ 384 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 385 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 386 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 387 })(window, document, "clarity", "script", "w4ej0qcrb3"); 388</script>
388 389<!-- MS Clarity --> 390 391 392 393 394 395 396 <link href="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/theme-base-global-custom.css?v=137948803848000462121790270880" rel="stylesheet" type="text/css" media="all" /> 397 <link href="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/theme-base-custom-ofc.css?v=98035074144871939511782742059" rel="stylesheet" type="text/css" media="all" /> 398 399 400 <link href="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/theme-global-content-styles.css?v=88782012083199851661787764090" rel="stylesheet" type="text/css" media="all" /> 401 402 403 404<!-- BEGIN app block: shopify://apps/intelligems-a-b-testing/blocks/intelligems-script/fa83b64c-0c77-4c0c-b4b2-b94b42f5ef19 -->
404<script> 405 window._template = { 406 directory: "", 407 name: "cart", 408 suffix: "" 409 }; 410 window.__productIdFromTemplate = null; 411 window.__plpCollectionIdFromTemplate = null; 412 window.igProductData = (function() { 413 const data = {};return data; 414 })(); 415</script>
415 416
417<script type="module" blocking="render" fetchpriority="high" src="https://cdn.intelligems.io/esm/ea0fc3317f8a/bundle.js" data-em-disable async></script>
417 418 419 420<!-- END app block --><!-- BEGIN app block: shopify://apps/minmaxify-order-limits/blocks/app-embed-block/3acfba32-89f3-4377-ae20-cbb9abc48475 -->
420<script>minMaxifyContext={cartItemExtras: []}</script>
420
420<script src="https://limits.minmaxify.com/limitsv2/outdoorfabriccentral.myshopify.com?v=149&r=20260515191508" defer></script>
420 421 422<!-- END app block --><!-- BEGIN app block: shopify://apps/helpdesk-mx/blocks/chat/01999a20-9bb3-7676-91bb-93eb6727f8a4 --> 423<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 424 425 426 427 428 429 430 431 432 433 434 435 436
436<script async src="https://static.klaviyo.com/onsite/js/SVdqpr/klaviyo.js?company_id=SVdqpr"></script>
436 437
437<script>!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();</script>
437 438 439 440 441 442 443 444
444<script> 445 window.klaviyoReviewsProductDesignMode = false 446 </script>
446 447 448 449 450 451 452 453 454 455 456<!-- END app block --><!-- BEGIN app block: shopify://apps/conversios-microsoft-app/blocks/app-embed/c7cca4d4-c843-4827-abb8-322a3ff417f4 -->
456<script defer> 457window.dataLayer = window.dataLayer || []; 458 459 460 461 if(!window.jQuery){ 462 var jqueryScript = document.createElement('script'); 463 jqueryScript.setAttribute('src','https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js'); 464 document.head.appendChild(jqueryScript); 465 } 466 467dataLayer.push({ 'event':'begin_datalayer', 468 'cov_microsoft_uetq_id':'4063156' , 469 'cov_msclarity_pixel_id':'w4ej0qcrb3' , 470 471'cov_ms_ads_conversions' : { 472 473 "AddToCart" : '1', 474 475 476 "BeginCheckout": '1', 477 478 479 "Purchase": '1', 480 481}, 482 483 484 485 486});
vendor: 347 bytes, lines 486-492
486 487 488 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 489 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 490 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 491 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 492 })(window,document,'script','dataLayer','
492GTM-TCRQTPGW
vendor: 4 bytes, line 492
492');
493console.log(" Conversios Microsoft App: 1 May 2025"); 494 495</script>
495 496 497 498<!-- END app block --><!-- BEGIN app block: shopify://apps/zigpoll-customer-surveys/blocks/zigpoll-embed/019a552e-a887-7983-9977-f95313668ab3 --><!-- BEGIN app snippet: zigpoll-embed -->
498<script type="text/javascript" async src="https://cdn.zigpoll.com/zigpoll-shopify-embed.js?shop=outdoorfabriccentral.myshopify.com"></script>
498 499<!-- END app snippet --> 500 501 502<!-- END app block --><!-- BEGIN app block: shopify://apps/tinyseo-seo-speed/blocks/breadcrumbs-json-ld-embed/0605268f-f7c4-4e95-b560-e43df7d59ae4 -->
502<script type="application/ld+json" id="tinyimg-breadcrumbs-json-ld"> 503 { 504 "@context": "https://schema.org", 505 "@type": "BreadcrumbList", 506 "itemListElement": [ 507 { 508 "@type": "ListItem", 509 "position": 1, 510 "item": { 511 "@id": "https://www.outdoorfabriccentral.com", 512 "name": "Home" 513 } 514 } 515 516 ] 517 } 518 </script>
518 519<!-- END app block -->
519<script src="https://cdn.shopify.com/extensions/01a0e6c2-2403-7b1f-81f6-6600f564cc7f/customer-group-pricing-1394/assets/default.js" type="text/javascript" defer="defer"></script>
519 520<link href="https://cdn.shopify.com/extensions/01a0e6c2-2403-7b1f-81f6-6600f564cc7f/customer-group-pricing-1394/assets/product-discount-price.css" rel="stylesheet" type="text/css" media="all">
521<script src="https://cdn.shopify.com/extensions/01a01585-061e-7d53-9c3f-7255412dfeaf/helpdesk-mx-15/assets/helpdesk-mx-chat.js" type="text/javascript" defer="defer"></script>
521 522<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
523<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: 89613271404,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "cart"};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 523
523
524<script> 525 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 526</script>
vendor: 1 bytes, line 526
526
527<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}
527).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: 89613271404,storefrontBaseUrl: "https://www.outdoorfabriccentral.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.outdoorfabriccentral.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2680422764","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"861bc5270812e6cf52b3b7de2153b9de","type":"APP","apiClientId":356527079425,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
527,"dataSharingState":"unrestricted"},{"id":"2277212524","configuration":"{\"shopId\":\"outdoorfabriccentral.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"31536d5a2ef62c1887054e49fd58dba0","type":"APP","apiClientId":4845829,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2161017196","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-J0L6LFW3Z7\\\",\\\"GT-55JZCZ8T\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-J0L6LFW3Z7\\\",\\\"AW-1030846160\\\/I95SCN7qpJIcENDtxesD\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-J0L6LFW3Z7\\\",\\\"AW-1030846160\\\/4hT-COrqpJIcENDtxesD\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-J0L6LFW3Z7\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-J0L6LFW3Z7\\\",\\\"AW-1030846160\\\/ySL8COfqpJIcENDtxesD\\\",\\\"MC-WP8Z6PT2QV\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-J0L6LFW3Z7\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-J0L6LFW3Z7\\\",\\\"AW-1030846160\\\/vuUICNvqpJIcENDtxesD\\\",\\\"MC-WP8Z6PT2QV\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-J0L6LFW3Z7\\\",\\\"AW-1030846160\\\/GjCkCOTqpJIcENDtxesD\\\",\\\"MC-WP8Z6PT2QV\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-J0L6LFW3Z7\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-J0L6LFW3Z7\\\",\\\"AW-1030846160\\\/3yiXCN3spJIcENDtxesD\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-J0L6LFW3Z7\\\",\\\"AW-1030846160\\\/S9tFCOHqpJIcENDtxesD\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-J0L6LFW3Z7\\\"}],\\\"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":"1526366572","configuration":"{\"accountID\":\"SVdqpr\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"152469868","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"28","type":"CUSTOM","privacyPurposes":[],"name":"Matomo"},{"id":"178651500","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"5","type":"CUSTOM","privacyPurposes":[],"name":"OFC GTM"},{"id":"184877420","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"7","type":"CUSTOM","privacyPurposes":[],"name":"Conversios Microsoft app"},{"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":"Outdoor Fabric Central","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"outdoorfabriccentral.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.outdoorfabriccentral.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://www.outdoorfabriccentral.com/cdn","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"173800259948","themePublished":"true","eventMetadataId":"751744f4-18a4-48ef-90bf-a174e26f5027","pageType":"cart","shopId":"89613271404","storefrontBaseUrl":"https:\/\/www.outdoorfabriccentral.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
527<script> 528 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 529 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 530 window.ShopifyAnalytics.meta.currency = 'USD'; 531 var meta = {"page":{"pageType":"cart","requestId":"e394f9cb-ad37-4939-aaf9-e2082b88597c-1790578712"}}; 532 for (var attr in meta) { 533 window.ShopifyAnalytics.meta[attr] = meta[attr]; 534 } 535</script>
vendor: 1 bytes, line 535
535
536<script class="analytics"> 537 (function () { 538 var customDocumentWrite = function(content) { 539 var jquery = null; 540 541 if (window.jQuery) { 542 jquery = window.jQuery; 543 } else if (window.Checkout && window.Checkout.$) { 544 jquery = window.Checkout.$; 545 } 546 547 if (jquery) { 548 jquery('body').append(content); 549 } 550 }; 551 552 var hasLoggedConversion = function(token) { 553 if (token) { 554 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 555 } 556 return false; 557 } 558 559 var setCookieIfConversion = function(token) { 560 if (token) { 561 var twoMonthsFromNow = new Date(Date.now()); 562 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 563 564 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 565 } 566 } 567 568 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 569 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 570 if (trekkie.integrations) { 571 return; 572 } 573 trekkie.methods = [ 574 'identify', 575 'page', 576 'ready', 577 'track', 578 'trackForm', 579 'trackLink' 580 ]; 581 trekkie.factory = function(method) { 582 return function() { 583 var args = Array.prototype.slice.call(arguments); 584 args.unshift(method); 585 trekkie.push(args); 586 if (method == 'track' || method == 'page') { 587 var pageUrl; 588 try { 589 pageUrl = window.location.href; 590 } catch (e) {} 591 var pageReferrer; 592 try { 593 pageReferrer = document.referrer; 594 } catch (e) {} 595 try { 596 if (window.__TREKKIE_SHIM_QUEUE == null) { 597 window.__TREKKIE_SHIM_QUEUE = []; 598 } 599 window.__TREKKIE_SHIM_QUEUE.push({ 600 from: 'trekkie-stub', 601 method: method, 602 args: args.slice(1), 603 pageContext: { 604 url: pageUrl, 605 referrer: pageReferrer 606 } 607 }); 608 } catch (e) { 609 // no-op 610 } 611 } 612 return trekkie; 613 }; 614 }; 615 for (var i = 0; i < trekkie.methods.length; i++) { 616 var key = trekkie.methods[i]; 617 trekkie[key] = trekkie.factory(key); 618 } 619 trekkie.load = function(config) { 620 trekkie.config = config || {}; 621 trekkie.config.initialDocumentCookie = document.cookie; 622 var first = document.getElementsByTagName('script')[0]; 623var script = document.createElement('script'); 624script.type = 'text/javascript'; 625script.onerror = function(e) { 626 var scriptFallback = document.createElement('script'); 627 scriptFallback.type = 'text/javascript'; 628 scriptFallback.onerror = function(error) { 629 var Monorail = { 630 produce: function produce(monorailDomain, schemaId, payload) { 631 var currentMs = new Date().getTime(); 632 var event = { 633 schema_id: schemaId, 634 payload: payload, 635 metadata: { 636 event_created_at_ms: currentMs, 637 event_sent_at_ms: currentMs 638 } 639 }; 640 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 641 }, 642 sendRequest: function sendRequest(endpointUrl, payload) { 643 // Try the sendBeacon API 644 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 645 var blobData = new window.Blob([payload], { 646 type: 'text/plain' 647 }); 648 649 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 650 return true; 651 } // sendBeacon was not successful 652 653 } // XHR beacon 654 655 var xhr = new XMLHttpRequest(); 656 657 try { 658 xhr.open('POST', endpointUrl); 659 xhr.setRequestHeader('Content-Type', 'text/plain'); 660 xhr.send(payload); 661 } catch (e) { 662 console.log(e); 663 } 664 665 return false; 666 }, 667 isIos12: function isIos12() { 668 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 669 } 670 }; 671 Monorail.produce('monorail-edge.shopifysvc.com', 672 'trekkie_storefront_load_errors/1.1', 673 {shop_id: 89613271404, 674 theme_id: 173800259948, 675 app_name: "storefront", 676 context_url: window.location.href, 677 source_url: "//www.outdoorfabriccentral.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"}); 678 679 }; 680 scriptFallback.async = true; 681 scriptFallback.src = '//www.outdoorfabriccentral.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 682 first.parentNode.insertBefore(scriptFallback, first); 683}; 684script.async = true; 685script.src = '//www.outdoorfabriccentral.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 686first.parentNode.insertBefore(script, first); 687 688 }; 689 trekkie.load( 690 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":89613271404,"isMerchantRequest":null,"themeId":173800259948,"themeCityHash":"11058955627969784257","contentLanguage":"en","currency":"USD","eventMetadataId":"751744f4-18a4-48ef-90bf-a174e26f5027"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} 691 ); 692 693 var loaded = false;
694 trekkie.ready(function() { 695 if (loaded) return; 696 loaded = true; 697 698 window.ShopifyAnalytics.lib = window.trekkie; 699 700 var originalDocumentWrite = document.write; 701 document.write = customDocumentWrite; 702 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 703 document.write = originalDocumentWrite; 704 705 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 706 var token = match? match[1]: undefined; 707 if (!hasLoggedConversion(token)) { 708 setCookieIfConversion(token); 709 710 } 711 }); 712 713 window.ShopifyAnalytics.lib.page(null,{"pageType":"cart","requestId":"e394f9cb-ad37-4939-aaf9-e2082b88597c-1790578712","shopifyEmitted":true}); 714 715 var eventsListenerScript = document.createElement('script'); 716 eventsListenerScript.async = true; 717 eventsListenerScript.src = "//www.outdoorfabriccentral.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 718 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 719})();</script>
vendor: 1 bytes, line 719
719
720<script 721 defer 722 src="https://www.outdoorfabriccentral.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 723 data-application="storefront-renderer" 724 data-shop-id="89613271404" 725 data-render-region="gcp-us-central1" 726 data-page-type="cart" 727 data-theme-instance-id="173800259948" 728 data-theme-name="Canopy" 729 data-theme-version="6.3.2" 730 data-monorail-region="shop_domain" 731 data-resource-timing-sampling-rate="10" 732 data-shs="true" 733 data-shs-beacon="true" 734 data-shs-export-with-fetch="true" 735 data-shs-logs-sample-rate="1" 736 data-shs-beacon-endpoint="https://www.outdoorfabriccentral.com/api/collect" 737></script>
737 738<meta name="shopify-y" content="a6478138-df62-449a-8279-eea81d6ce21d" data-expiration="1822136312000"><meta name="shopify-s" content="51b49d72-7045-42ed-90a5-c9f561e8d4df" data-expiration="1790580512000"><meta name="new-cookie-storage-activated" content="t"> 739</head> 740 741 742<body class="cc-animate-enabled has-empty-cart"> 743 <!-- Google Tag Manager (noscript) -->
vendor: 72 bytes, lines 743-744
743 744 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
744GTM-T4ZHZWT7
vendor: 89 bytes, lines 744-746
744" 745 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 746
746<!-- End Google Tag Manager (noscript) --> 747 <a class="skip-link btn btn--primary visually-hidden" href="#main-content" data-cc-role="skip">Skip to content</a> 748 749 750 751<!-- BEGIN sections: header-group --> 752<section id="shopify-section-sections--24043609358700__custom_liquid_JnCwFV" class="shopify-section shopify-section-group-header-group cc-custom-liquid"><div class="section relative section--full-width section--padded-default" data-cc-animate><div class="container"> 753<div id="top-panel-header" class="top-header-panel"> 754 <div class="top-header-panel-left"> 755 <div class="phone-number phone-number-only-home"><span><a href="tel:1.7275974134" rel="nofollow">727.597.4134</a></span></div> 756 <ul class="social-links"> 757 <li><a class="pinterest" href="https://www.pinterest.com/outdoorfabriccn/" rel="nofollow noopener noreferrer" target="_blank" ><i class="fa fa-pinterest" title="Follow us on Pinterest"></i></a></li> 758 <li><a class="facebook" href="https://www.facebook.com/outdoorfabric" rel="nofollow noopener noreferrer" target="_blank" title="Follow us on Facebook"><i class="fa fa-facebook"></i></a></li> 759 <li><a class="youtube" href="https://www.youtube.com/channel/UCh26Gxi-iZQnKRU8YxnGfRg" rel="nofollow noopener noreferrer" target="_blank" title="Follow us on YouTube"><i class="fa fa-youtube"></i></a></li> 760 761 </ul> 762 <a href="/policies/shipping-policy" rel="nofollow" title="Free Shipping Policy" class="free-shipping-text">Free Shipping Over $150 *</a> 763 </div> 764 <div class="top-header-panel-right"> 765 <div id="header-phone-top" class="header-phone-top"> 766 <div class="phone-number"><span><a href="tel:1.7275974134">727.597.4134</a></span></div> 767 </div> 768 <div class="top-header-panel-links-info jonny-selectlist sortlist"> 769 <span>Company Info </span> 770 771 772 </div> 773 <ul class="top-header-panel-links-auth"> 774 775 <li class="link authorization-link"><a href="https://account.patiolane.com/" rel="nofollow noopener">Account</a></li> 776 777 <li class="link authorization-link"><a href="https://www.outdoorfabriccentral.com/customer_authentication/redirect?locale=en®ion_country=US" id="customer_login_link" rel="nofollow noopener">Login & Register</a></li> 778 779 780</ul> 781 782 </div> 783</div></div></div> 784 785 786</section><div id="shopify-section-sections--24043609358700__announcement" class="shopify-section shopify-section-group-header-group cc-announcement"> 787<link href="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/announcement.css?v=136620428896663381241736781213" rel="stylesheet" type="text/css" media="all" /> 788
788<script src="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/announcement.js?v=123267429028003703111736781212" defer="defer"></script>
788<style data-shopify>.announcement { 789 --announcement-text-color: 255 255 255; 790 background-color: #222222; 791 }</style><announcement-bar class="announcement block text-body-small" data-slide-delay="7000"> 792 <div class="container"> 793 <div class="flex"> 794 <div class="announcement__col--left announcement__col--align-center announcement__slider" aria-roledescription="carousel" aria-live="off"><div class="announcement__text flex items-center m-0" aria-roledescription="slide"> 795 <div class="rte"><p><a href="/policies/shipping-policy" title="Shipping Policy">Free Shipping on orders over $150 *</a></p></div> 796 </div><div class="announcement__text flex items-center m-0" aria-roledescription="slide"> 797 <div class="rte"><p>Contact Us: <a href="/pages/contact" title="Contact">Click Here</a> or <a href="tel:7275974141" title="727-597-4141">727.597.4141</a></p></div> 798 </div></div> 799 800 </div> 801 </div> 802 </announcement-bar> 803</div><div id="shopify-section-sections--24043609358700__header" class="shopify-section shopify-section-group-header-group cc-header"> 804<style data-shopify>.header { 805 --bg-color: 255 255 255 / 1.0; 806 --text-color: 34 34 34; 807 --mobile-menu-bg-color: 255 255 255 / 1.0; 808 --mobile-menu-text-color: 34 34 34; 809 --desktop-menu-bg-color: 255 255 255 / 1.0; 810 --desktop-menu-text-color: 34 34 34; 811 --nav-bg-color: 255 255 255; 812 --nav-text-color: 34 34 34; 813 --nav-child-bg-color: 255 255 255; 814 --nav-child-text-color: 34 34 34; 815 --header-accent-color: 175 175 175; 816 --search-bg-color: 255 255 255; 817 --search-text-color: 100 100 100; 818 819 820 }</style><store-header class="header bg-theme-bg text-theme-text has-motion search-is-collapsed" 821 data-is-sticky="true" data-hide-menu="false" 822 data-is-search-minimised="true" 823 style="--header-transition-speed: 300ms"><header class="header__grid header__grid--left-logo container flex flex-wrap items-center"> 824 <div class="header__logo header__logo--top-left logo flex js-closes-menu"><a class="logo__link inline-block" href="/"><span class="flex" style="max-width: 150px;"> 825 <picture><source media="(max-width: 768px)" srcset="//www.outdoorfabriccentral.com/cdn/shop/files/ofc-logo-small-no-tagline.png?v=1770134091&width=300" alt="Outdoor Fabric Central" loading="eager"><img src="//www.outdoorfabriccentral.com/cdn/shop/files/ofc-logo-small-no-tagline.png?v=1770134091&width=300" alt="Outdoor Fabric Central" srcset="//www.outdoorfabriccentral.com/cdn/shop/files/ofc-logo-small-no-tagline.png?v=1770134091&width=300 300w" width="300" height="91" loading="eager"> 826 </picture> 827 </span></a></div> 828<link rel="stylesheet" href="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/predictive-search.css?v=48813712353353719891736781213"> 829
829<script src="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/predictive-search.js?v=158424367886238494141736781212" defer="defer"></script>
829 830
830<script src="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/tabs.js?v=135558236254064818051736781213" defer="defer"></script>
830<div class="header__search header__search--collapsible-mob js-search-bar relative js-closes-menu" id="search-bar"><link rel="stylesheet" href="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/search-suggestions.css?v=50270288864590332791736781212" media="print" onload="this.media='all'"><link href="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/product-type-search.css?v=153328044068475290231736781213" rel="stylesheet" type="text/css" media="all" /> 831<predictive-search class="block" data-loading-text="Loading..."><form class="search relative search--speech search--product-types" role="search" action="/search" method="get"> 832 <label class="label visually-hidden" for="header-search">Search</label> 833
833<script src="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/search-form.js?v=43677551656194261111736781213" defer="defer"></script>
833 834 <search-form class="search__form block"> 835 <input type="hidden" name="options[prefix]" value="last"> 836 <input type="search" 837 class="search__input w-full input js-search-input" 838 id="header-search" 839 name="q" 840 placeholder="Search for products" 841 842 data-placeholder-one="Search for products" 843 844 845 data-placeholder-two="Search for sunbrella fabrics" 846 847 848 data-placeholder-three="Search for cushions & pillows" 849 850 data-placeholder-prompts-mob="true" 851 852 data-typing-speed="100" 853 data-deleting-speed="60" 854 data-delay-after-deleting="500" 855 data-delay-before-first-delete="2000" 856 data-delay-after-word-typed="2400" 857 858 role="combobox" 859 autocomplete="off" 860 aria-autocomplete="list" 861 aria-controls="predictive-search-results" 862 aria-owns="predictive-search-results" 863 aria-haspopup="listbox" 864 aria-expanded="false" 865 spellcheck="false"> 866<custom-select id="product_types" class="search__product-types absolute left-0 top-0 bottom-0 js-search-product-types"><label class="label visually-hidden no-js-hidden" for="product_types-button">Product type</label><div class="custom-select relative w-full no-js-hidden"><button class="custom-select__btn input items-center" type="button" 867 aria-expanded="false" aria-haspopup="listbox" id="product_types-button"> 868 <span class="text-start">All</span> 869 <svg width="20" height="20" viewBox="0 0 24 24" class="icon" role="presentation" focusable="false" aria-hidden="true"> 870 <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/> 871 </svg> 872 </button> 873 <ul class="custom-select__listbox absolute invisible" role="listbox" tabindex="-1" 874 aria-hidden="true" hidden><li class="custom-select__option js-option" id="product_types-opt-default" role="option" data-value=""> 875 <span class="pointer-events-none">All</span> 876 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-0" role="option" 877 data-value="Binding" 878> 879 <span class="pointer-events-none">Binding</span> 880 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-1" role="option" 881 data-value="Braid" 882> 883 <span class="pointer-events-none">Braid</span> 884 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-2" role="option" 885 data-value="Button|Cap" 886> 887 <span class="pointer-events-none">Button|Cap</span> 888 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-3" role="option" 889 data-value="Cleaner|Protectant" 890> 891 <span class="pointer-events-none">Cleaner|Protectant</span> 892 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-4" role="option" 893 data-value="Clear Plastic" 894> 895 <span class="pointer-events-none">Clear Plastic</span> 896 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-5" role="option" 897 data-value="Clear Vinyl" 898> 899 <span class="pointer-events-none">Clear Vinyl</span> 900 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-6" role="option" 901 data-value="Cord" 902> 903 <span class="pointer-events-none">Cord</span> 904 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-7" role="option" 905 data-value="Custom Fabrication" 906> 907 <span class="pointer-events-none">Custom Fabrication</span> 908 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-8" role="option" 909 data-value="Die|Die Set" 910>
911 <span class="pointer-events-none">Die|Die Set</span> 912 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-9" role="option" 913 data-value="Eye End" 914> 915 <span class="pointer-events-none">Eye End</span> 916 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-10" role="option" 917 data-value="Facing" 918> 919 <span class="pointer-events-none">Facing</span> 920 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-11" role="option" 921 data-value="Foam Kit" 922> 923 <span class="pointer-events-none">Foam Kit</span> 924 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-12" role="option" 925 data-value="Gimp" 926> 927 <span class="pointer-events-none">Gimp</span> 928 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-13" role="option" 929 data-value="Grommet" 930> 931 <span class="pointer-events-none">Grommet</span> 932 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-14" role="option" 933 data-value="Hardware" 934> 935 <span class="pointer-events-none">Hardware</span> 936 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-15" role="option" 937 data-value="Hot Knife" 938> 939 <span class="pointer-events-none">Hot Knife</span> 940 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-16" role="option" 941 data-value="Post" 942> 943 <span class="pointer-events-none">Post</span> 944 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-17" role="option" 945 data-value="Press Tool" 946> 947 <span class="pointer-events-none">Press Tool</span> 948 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-18" role="option" 949 data-value="Punch" 950> 951 <span class="pointer-events-none">Punch</span> 952 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-19" role="option" 953 data-value="Sample" 954> 955 <span class="pointer-events-none">Sample</span> 956 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-20" role="option" 957 data-value="Sample Cards-Books" 958> 959 <span class="pointer-events-none">Sample Cards-Books</span> 960 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-21" role="option" 961 data-value="Sample Packs" 962> 963 <span class="pointer-events-none">Sample Packs</span> 964 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-22" role="option" 965 data-value="Shears" 966> 967 <span class="pointer-events-none">Shears</span> 968 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-23" role="option" 969 data-value="Socket" 970> 971 <span class="pointer-events-none">Socket</span> 972 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-24" role="option" 973 data-value="Stud" 974> 975 <span class="pointer-events-none">Stud</span> 976 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-25" role="option" 977 data-value="Supplies" 978> 979 <span class="pointer-events-none">Supplies</span> 980 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-26" role="option" 981 data-value="Tape" 982> 983 <span class="pointer-events-none">Tape</span> 984 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-27" role="option" 985 data-value="Thread|Bobbins" 986> 987 <span class="pointer-events-none">Thread|Bobbins</span> 988 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-28" role="option" 989 data-value="Tools" 990>
991 <span class="pointer-events-none">Tools</span> 992 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-29" role="option" 993 data-value="Tools-Dies" 994> 995 <span class="pointer-events-none">Tools-Dies</span> 996 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-30" role="option" 997 data-value="Welt" 998> 999 <span class="pointer-events-none">Welt</span> 1000 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-31" role="option" 1001 data-value="Yardage" 1002> 1003 <span class="pointer-events-none">Yardage</span> 1004 </li><li class="custom-select__option flex items-center js-option" id="product_types-opt-32" role="option" 1005 data-value="Zippers" 1006> 1007 <span class="pointer-events-none">Zippers</span> 1008 </li></ul> 1009 </div></custom-select> 1010 <input type="hidden" id="product_type_input" name="filter.p.product_type"/><button type="button" class="search__reset text-current vertical-center absolute focus-inset js-search-reset" hidden> 1011 <span class="visually-hidden">Reset</span> 1012 <svg width="24" height="24" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" fill="none" fill-rule="evenodd" stroke-linejoin="round" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M5 19 19 5M5 5l14 14"/></svg> 1013 </button><speech-search-button class="search__speech focus-inset right-0 hidden" tabindex="0" title="Search by voice" 1014 style="--speech-icon-color: #e02c50"> 1015 <svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path fill="currentColor" d="M17.3 11c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.49 6-3.31 6-6.72m-8.2-6.1c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2l-.01 6.2c0 .66-.53 1.2-1.19 1.2-.66 0-1.2-.54-1.2-1.2M12 14a3 3 0 0 0 3-3V5a3 3 0 0 0-3-3 3 3 0 0 0-3 3v6a3 3 0 0 0 3 3Z"/></svg> 1016 </speech-search-button> 1017 1018 <link href="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/speech-search.css?v=47207760375520952331736781214" rel="stylesheet" type="text/css" media="all" /> 1019
1019<script src="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/speech-search.js?v=106462966657620737681736781215" defer="defer"></script>
1019</search-form><div class="js-search-results" tabindex="-1" data-predictive-search></div> 1020 <span class="js-search-status visually-hidden" role="status" aria-hidden="true"></span></form> 1021 <div class="overlay fixed top-0 right-0 bottom-0 left-0 js-search-overlay"></div></predictive-search> 1022 </div><div class="header__icons flex justify-end mis-auto js-closes-menu"><a class="header__icon md:hidden js-show-search" href="/search" aria-controls="search-bar" rel="nofollow"> 1023 <svg width="21" height="23" viewBox="0 0 21 23" fill="currentColor" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M14.398 14.483 19 19.514l-1.186 1.014-4.59-5.017a8.317 8.317 0 0 1-4.888 1.578C3.732 17.089 0 13.369 0 8.779S3.732.472 8.336.472c4.603 0 8.335 3.72 8.335 8.307a8.265 8.265 0 0 1-2.273 5.704ZM8.336 15.53c3.74 0 6.772-3.022 6.772-6.75 0-3.729-3.031-6.75-6.772-6.75S1.563 5.051 1.563 8.78c0 3.728 3.032 6.75 6.773 6.75Z"/></svg> 1024 1025 <span class="visually-hidden">Search</span> 1026 </a><a class="header__icon text-current" href="https://www.outdoorfabriccentral.com/customer_authentication/redirect?locale=en®ion_country=US" rel="nofollow"> 1027 <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M12 2a5 5 0 1 1 0 10 5 5 0 0 1 0-10zm0 1.429a3.571 3.571 0 1 0 0 7.142 3.571 3.571 0 0 0 0-7.142zm0 10c2.558 0 5.114.471 7.664 1.411A3.571 3.571 0 0 1 22 18.19v3.096c0 .394-.32.714-.714.714H2.714A.714.714 0 0 1 2 21.286V18.19c0-1.495.933-2.833 2.336-3.35 2.55-.94 5.106-1.411 7.664-1.411zm0 1.428c-2.387 0-4.775.44-7.17 1.324a2.143 2.143 0 0 0-1.401 2.01v2.38H20.57v-2.38c0-.898-.56-1.7-1.401-2.01-2.395-.885-4.783-1.324-7.17-1.324z"/></svg> 1028 <span class="visually-hidden">Log in</span> 1029 </a><a rel="nofollow" class="header__icon relative text-current" id="cart-icon" href="/cart" data-no-instant><svg width="24" height="24" viewBox="0 0 24 24" class="icon icon--cart" aria-hidden="true" focusable="false" role="presentation"><path fill="currentColor" d="M17 18a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2c0-1.11.89-2 2-2M1 2h3.27l.94 2H20a1 1 0 0 1 1 1c0 .17-.05.34-.12.5l-3.58 6.47c-.34.61-1 1.03-1.75 1.03H8.1l-.9 1.63-.03.12a.25.25 0 0 0 .25.25H19v2H7a2 2 0 0 1-2-2c0-.35.09-.68.24-.96l1.36-2.45L3 4H1V2m6 16a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2c0-1.11.89-2 2-2m9-7 2.78-5H6.14l2.36 5H16Z"/></svg><span class="visually-hidden">Cart</span><div id="cart-icon-bubble"></div> 1030 </a> 1031 </div><main-menu class="main-menu main-menu--left-mob" data-menu-sensitivity="200"> 1032 1033 1034 1035 1036<style> 1037/* hamburger menu trigger */ 1038 1039.main-menu > .hamburger-btn { 1040 position: relative; 1041 margin-inline-start: 0; 1042 margin-inline-end: 0; 1043 width: 44px; 1044 height: 44px; 1045 cursor: pointer; 1046} 1047 1048.hamburger-btn::before, 1049.hamburger-btn::after, 1050.hamburger-btn .main-menu__toggle-icon::before, 1051.hamburger-btn .main-menu__toggle-icon::after { 1052 content: ""; 1053 display: block; 1054 position: absolute; 1055 left: 12px; 1056 width: 20px; 1057 height: 2px; 1058 -webkit-transform: rotate(0) translateZ(0); 1059 transform: rotate(0) translateZ(0); 1060 -webkit-transition: .3s ease-in-out; 1061 transition: .3s ease-in-out; 1062 -webkit-transition-property: all; 1063 transition-property: all; 1064 -webkit-transition-property: -webkit-transform, width, top, left; 1065 transition-property: transform, width, top, left; 1066 background: currentColor; 1067} 1068 1069.hamburger-btn::before, 1070.hamburger-btn::after { 1071 top: 21px; 1072} 1073 1074.hamburger-btn .main-menu__toggle-icon::before { 1075 top: 14px; 1076} 1077 1078.hamburger-btn .main-menu__toggle-icon::after { 1079 top: 28px; 1080} 1081 1082html .hamburger-btn.active::before { 1083 -webkit-transform: rotate(45deg) translateZ(0); 1084 transform: rotate(45deg) translateZ(0); 1085} 1086 1087html .hamburger-btn.active::after { 1088 -webkit-transform: rotate(-45deg) translateZ(0); 1089 transform: rotate(-45deg) translateZ(0); 1090} 1091 1092.hamburger-btn.active .main-menu__toggle-icon::before, 1093.hamburger-btn.active .main-menu__toggle-icon::after { 1094 top: 21px; 1095 left: 22px; 1096 width: 0; 1097} 1098 1099/* The Fly-Out Sidebar (Off-Canvas) */ 1100.sidebar-drawer { 1101 position: fixed; 1102 top: var(--header-end, 100px); 1103 left: 0; 1104 z-index: 30; 1105 display: flex; 1106 flex-direction: column; 1107 -webkit-transform: translateX(-100%) translateZ(0); 1108 transform: translateX(-100%) translateZ(0); 1109 max-width: 100%; 1110 width: var(--viewport-width, 100vw); 1111 height: calc(var(--viewport-height) - var(--header-end, 100px)); 1112 padding: 0; 1113 background: #f7f7f7; 1114 box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1); 1115 opacity: 0; 1116 overflow-y: auto;/* scroll */ 1117 color: rgb(var(--nav-child-text-color)); 1118 transition: opacity .3s, visibility .3s; 1119 will-change: transform, opacity; 1120} 1121 1122.sidebar-drawer.active { 1123 -webkit-transform: translateX(0%) translateZ(0); 1124 transform: translateX(0%) translateZ(0); 1125 opacity: 1; 1126 transition: opacity .3s, visibility .3s; 1127} 1128 1129@media(min-width: 1451px) { /* 769px */ 1130 1131 header .main-menu:has(>.hamburger-btn) { 1132 display: grid; 1133 grid-template-columns: 44px 1fr; 1134 } 1135 1136 .main-menu > .hamburger-btn { 1137 position: relative; 1138 margin-inline-start: 0; 1139 margin-inline-end: 0; 1140 width: 44px; 1141 height: 44px; 1142 cursor: pointer; 1143 box-shadow: inset 0 -2px 0 0 transparent; 1144 transition: box-shadow .1s; 1145 } 1146 1147 .main-menu > .hamburger-btn:hover { 1148 opacity: .7; 1149 cursor: pointer; 1150 color: rgb(var(--link-color)); 1151 box-shadow: inset 0 -2px 0 0 currentColor; 1152 transition: box-shadow .1s; 1153 } 1154 1155 .main-menu > .hamburger-btn:hover { 1156 opacity: .7; 1157 cursor: pointer; 1158 } 1159 1160 .main-menu > .hamburger-btn:hover *::before, 1161 .main-menu > .hamburger-btn:hover *::after { 1162 background-color: rgb(var(--link-color)); 1163 } 1164 1165 .sidebar-drawer { 1166 position: fixed; 1167 top: 0; 1168 left: 0; 1169 z-index: 30; 1170 width: 100%; 1171 max-width: 500px; 1172 height: 100vh; 1173 opacity: 1; 1174 visibility: visible;
1175 /* PERFORMANCE OPTIMIZATIONS */ 1176 will-change: transform; /* Tells browser to prepare GPU layer */ 1177 -webkit-backface-visibility: hidden; /* Prevents flickering */ 1178 backface-visibility: hidden; 1179 /* INITIAL STATE (Hidden) */ 1180 -webkit-transform: translateX(-100%) translateZ(0); 1181 transform: translateX(-100%) translateZ(0); 1182 /*visibility: hidden; 1183 EXIT ANIMATION (Closing) 1184 - Use 'ease-in' so it accelerates off screen quickly. 1185 - Delay visibility hidden until AFTER the slide finishes (0.3s). 1186 */ 1187 -webkit-transition: -webkit-transform 0.3s ease-in; 1188 transition: transform 0.3s ease-in; 1189 } 1190 1191 .sidebar-drawer.active { 1192 opacity: 1; 1193 visibility: visible; 1194 /* ACTIVE STATE (Visible) */ 1195 -webkit-transform: translateX(0) translateZ(0); 1196 transform: translateX(0) translateZ(0); 1197 /* visibility: visible; 1198 ENTER ANIMATION (Opening) 1199 - Use a custom 'cubic-bezier' for that "snap" effect. 1200 - No delay on visibility so it appears instantly. */ 1201 1202 -webkit-transition: -webkit-transform 0.3s ease-out; 1203 transition: transform 0.3s ease-out; 1204 } 1205} 1206 1207@media (min-width: 769px) and (max-width: 1025px) { 1208 1209 1210} 1211 1212@media (min-width: 1025px) { 1213 1214 header .main-menu:has(>.hamburger-btn) { 1215 grid-template-columns: 95px 1fr; 1216 } 1217 1218 .main-menu > .hamburger-btn { 1219 width: 81px; 1220 } 1221 1222 html body .hamburger-btn .visually-hidden { 1223 position: absolute; 1224 width: auto; 1225 height: auto; 1226 padding: 5px 0; 1227 margin: 0; 1228 clip: unset; 1229 white-space: nowrap; 1230 overflow: visible; 1231 right: 0; 1232 left: auto; 1233 top: 7px; 1234 font-size: 14px; 1235 font-weight: 700; 1236 } 1237} 1238 1239 1240@media(max-width: 1450px) { /* 768px */ 1241 1242 #hamburger-btn { 1243 /*display: none !important;*/ 1244 position: absolute; 1245 top: 0px; 1246 left: 0px; 1247 z-index: -1; 1248 overflow: hidden; 1249 height: 1px !important; 1250 width: 1px !important; 1251 padding: 0 !important; 1252 margin: 0 !important; 1253 border: 0; 1254 clip: rect(1px, 1px, 1px, 1px); 1255 -webkit-clip-path: inset(0px 0px 99.9% 99.9%); 1256 clip-path: inset(0px 0px 99.9% 99.9%); 1257 pointer-events: none; 1258 } 1259 1260 .sidebar-drawer { 1261 /*display: none !important;*/ 1262 position: absolute; 1263 top: 0px; 1264 left: 0px; 1265 z-index: -1; 1266 overflow: hidden; 1267 height: 1px !important; 1268 width: 1px !important; 1269 padding: 0 !important; 1270 margin: 0 !important; 1271 border: 0; 1272 clip: rect(1px, 1px, 1px, 1px); 1273 -webkit-clip-path: inset(0px 0px 99.9% 99.9%); 1274 clip-path: inset(0px 0px 99.9% 99.9%); 1275 pointer-events: none; 1276 } 1277} 1278 1279/* Sidebar Content */ 1280 1281.sidebar-header { 1282 position: relative; 1283 padding: 1.2rem; 1284 padding-inline-start: 2rem; 1285 padding-inline-end: 1rem; 1286 display: grid; 1287 grid-template-columns: 1fr 30px; 1288 gap: 2rem; 1289 background: #1a1a1a; 1290 color: #fff; 1291 height: 47px; 1292} 1293 1294html.ofc .sidebar-header .menu-logo-ofc { 1295 1296} 1297 1298html.ofc .sidebar-header .menu-logo-pl, 1299html.ofc .sidebar-header .menu-logo-pl.menu-logo-pl-black, 1300html.ofc .sidebar-header .menu-logo-pl.menu-logo-pl-white { 1301 display: none !important; 1302} 1303 1304html.pl .sidebar-header .menu-logo-pl { 1305 height: 20px; 1306 width: auto; 1307 max-width: 100%; 1308} 1309 1310html.pl .sidebar-header .menu-logo-ofc { 1311 display: none !important; 1312} 1313 1314.sidebar-header span { 1315 font-size: 1.8rem; 1316 font-weight: 400; 1317 line-height: 2rem; 1318} 1319 1320.sidebar-header h2 { 1321 position: relative; 1322 z-index: 2; 1323 color: #777; 1324 background-color: #222; 1325 padding: 0; 1326 margin: 0; 1327 width: 100%; 1328 -webkit-box-sizing: border-box; 1329 box-sizing: border-box; 1330 text-transform: uppercase; 1331 background: #1a1a1a; 1332 font-family: "Poppins", sans-serif; 1333 font-size: 1.8rem; 1334 font-weight: 400; 1335 line-height: 2rem; 1336} 1337 1338html.ofc .sidebar-header h2 .first-word { 1339 color: var(--color-orange); 1340} 1341 1342html.ofc .sidebar-header h2 .second-word { 1343 color: #FFFFFF; 1344} 1345 1346html.ofc .sidebar-header h2 span:nth-child(3) { 1347 color: #FFFFFF; 1348} 1349 1350.sidebar-header .close-btn { 1351 /* position: absolute; 1352 top: 1rem; 1353 right: 1rem; 1354 left: auto; 1355 z-index: 31; */ 1356 background: none; 1357 border: none; 1358 font-size: 28px; 1359 cursor: pointer; 1360 line-height: 1;
1361 width: 20px; 1362} 1363 1364.sidebar-header .close-btn svg { 1365 stroke: #FFF; 1366} 1367 1368.sidebar-links ul { 1369 list-style: none; 1370 padding: 0; 1371 margin: 0; 1372} 1373 1374.sidebar-links a:hover { 1375 color: var(--link-color); 1376 transition: 0.2s; 1377} 1378 1379.site-overlay { 1380 position: fixed; 1381 top: 0; 1382 left: 0; 1383 width: 100%; 1384 height: 100%; 1385 background: rgba(var(--modal-overlay-color)/var(--modal-overlay-opacity)); 1386 z-index: 29; 1387 transition: opacity .3s, visibility .3s; 1388 opacity: 0; 1389 visibility: hidden; 1390 transition: 0.3s; 1391 -webkit-transform: translateZ(0) translateZ(0); 1392 transform: translateZ(0) translateZ(0); 1393} 1394 1395.site-overlay.active { 1396 opacity: 1; 1397 visibility: visible; 1398 transition: opacity .3s, visibility .3s; 1399} 1400 1401@media(max-width: 768px) { 1402 1403 .sidebar-header { 1404 display: none; 1405 } 1406 1407 .site-overlay { 1408 display: none; 1409 } 1410} 1411 1412/* ///////////////////// */ 1413 1414/* CONTAINER */ 1415.mobile-menu-container { 1416 position: relative; 1417 width: 100%; 1418 height: 100vh; 1419 /* Full viewport height */ 1420 overflow: hidden; 1421 /* Crucial: Hides menus waiting on the sides 1422 overflow-y: scroll;*/ 1423 background: #fff; 1424 flex: 1 1 auto; 1425} 1426 1427.mobile-menu-container .jamm-divider{ 1428 background-color: #DDD; 1429 border-top: 0px none transparent; 1430 border-bottom: 1px solid #CCC; 1431 font-size: 1.1rem; 1432 font-weight: 700; 1433 letter-spacing: 1px; 1434 color: #666; 1435 text-transform: uppercase; 1436 padding: 10px 20px 9px 20px; 1437 pointer-events: none; 1438 -webkit-transition: opacity 0.3s, -webkit-transform 0.3s; 1439 transition: opacity 0.3s, transform 0.3s; 1440} 1441 1442@media (prefers-color-scheme: dark) { 1443 1444 .dark-mode .mobile-menu-container { 1445 background: #222; 1446 } 1447 1448 .dark-mode .mobile-menu-container .jamm-divider{ 1449 background-color: #444; 1450 color: #EEE; 1451 border-color: #444; 1452 } 1453} 1454 1455/* MENU PANELS (All levels share this) */ 1456.menu-panel { 1457 position: absolute; 1458 top: 0; 1459 left: 0; 1460 width: 100%; 1461 height: 100%; 1462 background: #fff; 1463 transition: transform 0.3s ease-in-out; 1464 overflow-y: auto; 1465 /* Allow scrolling within the panel */ 1466 z-index: 10; 1467 list-style: none; 1468 padding: 0; 1469 margin: 0; 1470} 1471 1472@media (prefers-color-scheme: dark) { 1473 1474 .dark-mode .menu-panel { 1475 background: #222; 1476 } 1477} 1478 1479/* STATES */ 1480 1481/* 1. Visible (Active) */ 1482.menu-panel.is-visible { 1483 -webkit-transform: translateX(0) translateZ(0); 1484 transform: translateX(0) translateZ(0); 1485 z-index: 20; 1486} 1487 1488/* 2. Waiting (Off-screen Right) - Default State for Submenus */ 1489.menu-panel.is-hidden-right { 1490 -webkit-transform: translateX(100%) translateZ(0); 1491 transform: translateX(100%) translateZ(0); 1492 z-index: 20; 1493} 1494 1495/* 3. Parent (Off-screen Left) - Pushed away by child */ 1496.menu-panel.is-hidden-left { 1497 -webkit-transform: translateX(-30%) translateZ(0); 1498 transform: translateX(-30%) translateZ(0); 1499 /* Slight parallax effect */ 1500 opacity: 0.5; 1501 /* Fade out slightly */ 1502 pointer-events: none; 1503} 1504 1505.sidebar-drawer .menu-panel-1 { 1506 background: #f7f7f7; 1507 1508 padding: 0; 1509 padding-bottom: 60px; 1510 padding-top: 0; 1511} 1512 1513@media (prefers-color-scheme: dark) { 1514 1515 .sidebar-drawer.dark-mode .menu-panel-1 { 1516 background: #222; 1517 } 1518} 1519 1520.sidebar-drawer .menu-panel-2 { 1521 background: #f7f7f7; 1522 1523 padding: 0; 1524 padding-bottom: 60px; 1525 padding-top: 0; 1526} 1527 1528@media (prefers-color-scheme: dark) { 1529 1530 .sidebar-drawer.dark-mode .menu-panel-2 { 1531 background: #111; 1532 } 1533} 1534 1535.sidebar-drawer .menu-panel-3 { 1536 background: #f7f7f7; 1537 1538 padding: 0; 1539 padding-bottom: 60px; 1540 padding-top: 0; 1541} 1542 1543@media (prefers-color-scheme: dark) { 1544 1545 .sidebar-drawer.dark-mode .menu-panel-3 { 1546 background: #111; 1547 } 1548} 1549 1550/* LINK STYLING */ 1551.menu-item { 1552 border-bottom: 1px solid rgba(34 34 34 / .2); 1553 font-weight: 400; 1554 padding: 0; 1555 margin: 0; 1556} 1557 1558@media (prefers-color-scheme: dark) { 1559 1560 .dark-mode .menu-item { 1561 border-bottom: 1px solid rgba(255, 255, 255, 0.08); 1562 } 1563 1564 .dark-mode .menu-item:hover { 1565 color: #FFF; 1566 background-color: #333; 1567 border-right-color: #333; 1568 } 1569} 1570 1571.menu-item .all-btn { 1572 padding-inline-start: 2rem; 1573 padding-top: 2rem; 1574 padding-bottom: 2rem; 1575 text-decoration: none; 1576 color: #333; 1577 font-weight: 700; 1578 font-size: 1.7rem; 1579 padding-inline-start: 2rem; 1580 padding-top: 2rem; 1581 padding-bottom: 2rem; 1582 display: flex; 1583 align-items: center; 1584 justify-content: left; 1585 width: 100%; 1586 height: 100%; 1587} 1588 1589@media (prefers-color-scheme: dark) { 1590 1591 .dark-mode .menu-item .all-btn { 1592 color: #FFF; 1593 } 1594} 1595 1596.menu-panel .menu-link-row { 1597 display: grid; 1598 grid-template-columns: 1fr; 1599 justify-content: space-between; 1600 align-items: center; 1601 padding: 0; 1602} 1603 1604.menu-panel .menu-link-row:has(> button) { 1605 grid-template-columns: 1fr 50px; 1606} 1607 1608.menu-panel .menu-link { 1609 display: inline-flex; 1610 align-items: center !important; 1611 justify-content: space-between; 1612 padding: 2rem 0; 1613 padding-inline-end: 44px; 1614 padding-inline-start: 2rem; 1615 text-decoration: none; 1616 width: 100%; 1617 1618 position: relative; 1619 text-decoration: none; 1620 color: #333; 1621 font-size: 16px; 1622 font-weight: 300; 1623 line-height: 1.5; 1624 flex-grow: 1; 1625} 1626 1627@media (prefers-color-scheme: dark) { 1628 1629 .dark-mode .menu-panel .menu-link { 1630 color: #FFF; 1631 } 1632} 1633 1634#menu-root .menu-item .menu-link-row .menu-link { 1635 font-weight: 700; 1636} 1637 1638.menu-panel .menu-link:hover { 1639 color: var(--link-color); 1640} 1641 1642.menu-panel .icon { 1643 position: absolute; 1644 right: 10px; 1645 width: 36px; 1646 height: 20px; 1647 margin-inline-end: -4px; 1648 margin-inline-start: 5px; 1649 pointer-events: none; 1650 transition: transform .3s; 1651} 1652 1653@media (prefers-color-scheme: dark) { 1654 1655 .dark-mode .menu-panel .next-btn .icon path { 1656 stroke: #A2A2A2; 1657 } 1658} 1659 1660.menu-panel .next-btn { 1661 position: relative; 1662 background: none; 1663 border: none; 1664 padding: 0; 1665 cursor: pointer; 1666 width: 100%; 1667 display: flex; 1668 height: 100%; 1669 align-items: center; 1670 justify-content: right; 1671 background: rgba(0,0,0,0.1); 1672} 1673 1674.menu-panel .next-btn:hover { 1675 background: rgba(0,0,0,0.2); 1676} 1677 1678.menu-panel .next-btn .icon { 1679 transform: rotate(-90deg); 1680 vertical-align: top; 1681} 1682 1683/* BACK BUTTON STYLE */ 1684.menu-panel .back-header { 1685 display: grid; 1686 grid-template-columns: 1fr; 1687 justify-content: left;
1688 align-items: center; 1689 padding: 0; 1690 border-bottom: 1px solid rgba(34 34 34 / .2); 1691} 1692 1693.menu-panel .back-btn { 1694 position: relative; 1695 padding-inline-start: 4rem; 1696 padding-top: 2rem; 1697 padding-bottom: 2rem; 1698 background: none; 1699 border: none; 1700 font-weight: 400; 1701 cursor: pointer; 1702 color: rgb(var(--header-accent-color)); 1703 display: flex; 1704 gap: 1rem; 1705 align-items: center; 1706 justify-content: left; 1707 width: 100%; 1708 height: 100%; 1709} 1710 1711.menu-panel .back-btn:hover {} 1712 1713.menu-panel .back-btn .icon { 1714 margin-inline-start: -4px; 1715 right: auto; 1716 left: 2rem; 1717 width: 20px; 1718} 1719</style> 1720 1721<div id="hamburger-btn" class="hamburger-btn toggle-sidebar"> 1722 1723 <span class="main-menu__toggle-icon" aria-hidden="true"></span> 1724 <span class="visually-hidden">Shop</span> 1725</div> 1726 1727<div class="sidebar-drawer" id="sidebarDrawer"> 1728 1729 <div class="sidebar-header"> 1730 <img class="menu-logo-ofc" src="https://cdn.shopify.com/s/files/1/0896/1327/1404/files/ofc-logo-home-orange-new--one-row.png?v=1771615194aa" width="245" height="18" alt="Outdoor Fabric Central Menu"> 1731 <img class="menu-logo-pl menu-logo-pl-white" src="https://cdn.shopify.com/s/files/1/0916/0533/6362/files/patioLane-logo-horizontal-stacked_official--web-version-only-first-line-white.webp?v=1775671389" width="245" height="18" alt="Patio Lane Menu"> 1732 1733 <button class="close-btn toggle-sidebar"><svg width="24" height="24" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" fill="none" fill-rule="evenodd" stroke-linejoin="round" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M5 19 19 5M5 5l14 14"></path></svg></button> 1734 </div> 1735 1736 1737 1738 <div class="mobile-menu-container" id="mobileMenuContainer"> 1739 <ul class="menu-panel-1 menu-panel is-visible" data-depth="0" id="menu-root"> 1740 <li class="jamm-divider">Categories</li> 1741 1742 <li class="menu-item"> 1743 <div class="menu-link-row"> 1744 <a href="/collections/sunbrella-cushions-pillows" class="menu-link">Sunbrella Cushion Builder</a> 1745 1746 1747 </div> 1748 </li> 1749 1750 <li class="menu-item"> 1751 <div class="menu-link-row"> 1752 <a href="/collections/sunbrella-custom-outdoor-curtains" class="menu-link">Custom Sunbrella Curtains</a> 1753 1754 1755 </div> 1756 </li> 1757 1758 <li class="menu-item"> 1759 <div class="menu-link-row"> 1760 <a href="/collections/sunbrella-standard-size-curtains" class="menu-link">Sunbrella Standard Curtains</a> 1761 1762 1763 <button class="next-btn" data-target="menu-sunbrella-standard-curtains-3"> 1764 <svg 1765 width="24" 1766 height="24"
1767 viewBox="0 0 24 24" 1768 aria-hidden="true" 1769 focusable="false" 1770 role="presentation" 1771 class="icon" 1772 > 1773 <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"></path> 1774 </svg> 1775 </button> 1776 1777 </div> 1778 </li> 1779 1780 <li class="menu-item"> 1781 <div class="menu-link-row"> 1782 <a href="/collections/sunbrella-swing-bed-cushion-sets" class="menu-link">Sunbrella Swing Bed Cushion Sets</a> 1783 1784 1785 </div> 1786 </li> 1787 1788 <li class="menu-item"> 1789 <div class="menu-link-row"> 1790 <a href="/collections/sunbrella-outdoor-throw-pillows" class="menu-link">Pillows Made with Sunbrella</a> 1791 1792 1793 <button class="next-btn" data-target="menu-pillows-made-with-sunbrella-5"> 1794 <svg 1795 width="24" 1796 height="24"
1797 viewBox="0 0 24 24" 1798 aria-hidden="true" 1799 focusable="false" 1800 role="presentation" 1801 class="icon" 1802 > 1803 <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"></path> 1804 </svg> 1805 </button> 1806 1807 </div> 1808 </li> 1809 1810 <li class="menu-item"> 1811 <div class="menu-link-row"> 1812 <a href="/collections/all" class="menu-link">Top Sellers</a> 1813 1814 1815 </div> 1816 </li> 1817 1818 <li class="menu-item"> 1819 <div class="menu-link-row"> 1820 <a href="/collections/all" class="menu-link">Shop All Sunbrella</a> 1821 1822 1823 </div> 1824 </li> 1825 1826 <li class="menu-item"> 1827 <div class="menu-link-row"> 1828 <a href="/collections/new-sunbrella-fabrics" class="menu-link">New Sunbrella Fabrics</a> 1829 1830 1831 </div> 1832 </li> 1833 1834 <li class="menu-item"> 1835 <div class="menu-link-row"> 1836 <a href="/collections/sunbrella-awning-marine-fabric" class="menu-link">Sunbrella Awning & Marine Shade Fabric</a> 1837 1838 1839 <button class="next-btn" data-target="menu-sunbrella-awning-marine-shade-fabric-9"> 1840 <svg 1841 width="24" 1842 height="24"
1843 viewBox="0 0 24 24" 1844 aria-hidden="true" 1845 focusable="false" 1846 role="presentation" 1847 class="icon" 1848 > 1849 <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"></path> 1850 </svg> 1851 </button> 1852 1853 </div> 1854 </li> 1855 1856 <li class="menu-item"> 1857 <div class="menu-link-row"> 1858 <a href="/collections/sunbrella-upholstery-furniture-fabric" class="menu-link">Sunbrella Upholstery & Curtain Fabric</a> 1859 1860 1861 <button class="next-btn" data-target="menu-sunbrella-upholstery-curtain-fabric-10"> 1862 <svg 1863 width="24" 1864 height="24" 1865 viewBox="0 0 24 24" 1866 aria-hidden="true" 1867 focusable="false" 1868 role="presentation" 1869 class="icon" 1870 > 1871 <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"></path> 1872 </svg> 1873 </button> 1874 1875 </div> 1876 </li> 1877 1878 <li class="menu-item"> 1879 <div class="menu-link-row"> 1880 <a href="/collections/sunbrella-mesh-sheer-sling-fabric" class="menu-link">Sunbrella Mesh / Sheer / Sling Fabric</a> 1881 1882 1883 <button class="next-btn" data-target="menu-sunbrella-mesh-sheer-sling-fabric-11"> 1884 <svg 1885 width="24" 1886 height="24"
1887 viewBox="0 0 24 24" 1888 aria-hidden="true" 1889 focusable="false" 1890 role="presentation" 1891 class="icon" 1892 > 1893 <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"></path> 1894 </svg> 1895 </button> 1896 1897 </div> 1898 </li> 1899 1900 <li class="menu-item"> 1901 <div class="menu-link-row"> 1902 <a href="/collections/sunbrella-marine-vinyl" class="menu-link">Sunbrella Vinyl Seating Fabric</a> 1903 1904 1905 </div> 1906 </li> 1907 1908 <li class="menu-item"> 1909 <div class="menu-link-row"> 1910 <a href="/collections/sunbrella-waterproof-fabric" class="menu-link">Sunbrella Waterproof</a> 1911 1912 1913 </div> 1914 </li> 1915 1916 <li class="menu-item"> 1917 <div class="menu-link-row"> 1918 <a href="/collections/clear-vinyl" class="menu-link">Clear Vinyl</a> 1919 1920 1921 <button class="next-btn" data-target="menu-clear-vinyl-14"> 1922 <svg 1923 width="24" 1924 height="24"
1925 viewBox="0 0 24 24" 1926 aria-hidden="true" 1927 focusable="false" 1928 role="presentation" 1929 class="icon" 1930 > 1931 <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"></path> 1932 </svg> 1933 </button> 1934 1935 </div> 1936 </li> 1937 1938 <li class="menu-item"> 1939 <div class="menu-link-row"> 1940 <a href="/collections/finishing" class="menu-link">Embellishments / Finishing Supplies</a> 1941 1942 1943 <button class="next-btn" data-target="menu-embellishments-finishing-supplies-15"> 1944 <svg 1945 width="24" 1946 height="24" 1947 viewBox="0 0 24 24" 1948 aria-hidden="true" 1949 focusable="false" 1950 role="presentation" 1951 class="icon" 1952 > 1953 <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"></path> 1954 </svg> 1955 </button> 1956 1957 </div> 1958 </li> 1959 1960 <li class="menu-item"> 1961 <div class="menu-link-row"> 1962 <a href="/collections/hardware-tools" class="menu-link">Hardware / Tools</a> 1963 1964 1965 <button class="next-btn" data-target="menu-hardware-tools-16"> 1966 <svg 1967 width="24" 1968 height="24"
1969 viewBox="0 0 24 24" 1970 aria-hidden="true" 1971 focusable="false" 1972 role="presentation" 1973 class="icon" 1974 > 1975 <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"></path> 1976 </svg> 1977 </button> 1978 1979 </div> 1980 </li> 1981 1982 <li class="menu-item"> 1983 <div class="menu-link-row"> 1984 <a href="/collections/sunbrella-furniture-cleaners" class="menu-link">Sunbrella Cleaning & Care</a> 1985 1986 1987 </div> 1988 </li> 1989 1990 <li class="menu-item"> 1991 <div class="menu-link-row"> 1992 <a href="/collections/custom-panels" class="menu-link">Sunbrella Manufactured Products</a> 1993 1994 1995 </div> 1996 </li> 1997 1998 <li class="menu-item"> 1999 <div class="menu-link-row"> 2000 <a href="/collections/sunbrella-custom-products" class="menu-link">Custom Sunbrella Cushions & Pillows</a> 2001 2002 2003 </div> 2004 </li> 2005 2006 2007 </ul> 2008 2009 2010 2011 2012 2013 2014 2015 <ul class="menu-panel-2 menu-panel is-hidden-right" id="menu-sunbrella-standard-curtains-3" data-depth="1"> 2016 <li class="back-header"> 2017 <button class="back-btn" data-target="menu-root"> 2018 <svg 2019 width="24" 2020 height="24"
2021 viewBox="0 0 24 24" 2022 fill="currentColor" 2023 aria-hidden="true" 2024 focusable="false" 2025 role="presentation" 2026 class="icon" 2027 > 2028 <path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"></path> 2029 </svg> 2030 Back 2031 </button> 2032 </li> 2033 2034 <li class="menu-item"> 2035 <a href="/collections/sunbrella-standard-size-curtains" class="all-btn large-text">Sunbrella Standard Curtains</a> 2036 </li> 2037 2038 2039 <li class="menu-item"> 2040 <div class="menu-link-row"> 2041 <a href="/collections/sunbrella-standard-size-curtains" class="menu-link">Shop by Color</a> 2042 2043 2044 </div> 2045 </li> 2046 2047 </ul> 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 <ul class="menu-panel-2 menu-panel is-hidden-right" id="menu-pillows-made-with-sunbrella-5" data-depth="1"> 2059 <li class="back-header"> 2060 <button class="back-btn" data-target="menu-root"> 2061 <svg 2062 width="24" 2063 height="24"
2064 viewBox="0 0 24 24" 2065 fill="currentColor" 2066 aria-hidden="true" 2067 focusable="false" 2068 role="presentation" 2069 class="icon" 2070 > 2071 <path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"></path> 2072 </svg> 2073 Back 2074 </button> 2075 </li> 2076 2077 <li class="menu-item"> 2078 <a href="/collections/sunbrella-outdoor-throw-pillows" class="all-btn large-text">Pillows Made with Sunbrella</a> 2079 </li> 2080 2081 2082 <li class="menu-item"> 2083 <div class="menu-link-row"> 2084 <a href="/products/sunbrella-custom-size-throw-pillows" class="menu-link">Pillow Builder</a> 2085 2086 2087 </div> 2088 </li> 2089 2090 </ul> 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 <ul class="menu-panel-2 menu-panel is-hidden-right" id="menu-sunbrella-awning-marine-shade-fabric-9" data-depth="1"> 2106 <li class="back-header"> 2107 <button class="back-btn" data-target="menu-root"> 2108 <svg 2109 width="24" 2110 height="24"
2111 viewBox="0 0 24 24" 2112 fill="currentColor" 2113 aria-hidden="true" 2114 focusable="false" 2115 role="presentation" 2116 class="icon" 2117 > 2118 <path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"></path> 2119 </svg> 2120 Back 2121 </button> 2122 </li> 2123 2124 <li class="menu-item"> 2125 <a href="/collections/sunbrella-awning-marine-fabric" class="all-btn large-text">Sunbrella Awning & Marine Shade Fabric</a> 2126 </li> 2127 2128 2129 <li class="menu-item"> 2130 <div class="menu-link-row"> 2131 <a href="/collections/sunbrella-46-inch-solids-awning-marine-fabric" class="menu-link">46 Inch Solids</a> 2132 2133 2134 </div> 2135 </li> 2136 2137 <li class="menu-item"> 2138 <div class="menu-link-row"> 2139 <a href="/collections/sunbrella-46-inch-stripes-awning-marine-fabric" class="menu-link">46 Inch Stripes</a> 2140 2141 2142 </div> 2143 </li> 2144 2145 <li class="menu-item"> 2146 <div class="menu-link-row"> 2147 <a href="/collections/sunbrella-46-inch-textures-awning-marine-fabric" class="menu-link">46 Inch Textures</a> 2148 2149 2150 </div> 2151 </li> 2152 2153 <li class="menu-item"> 2154 <div class="menu-link-row"> 2155 <a href="/collections/sunbrella-46-inch-premium-awning-and-marine-fabric" class="menu-link">46 Inch Premium</a> 2156 2157 2158 </div> 2159 </li> 2160 2161 <li class="menu-item"> 2162 <div class="menu-link-row"> 2163 <a href="/collections/sunbrella-60-inch-awning-marine-fabric" class="menu-link">60 Inch Solids</a> 2164 2165 2166 </div> 2167 </li> 2168 2169 <li class="menu-item"> 2170 <div class="menu-link-row"> 2171 <a href="/collections/sunbrella-60-inch-premium-awning-and-marine-fabric" class="menu-link">60 Inch Premium</a> 2172 2173 2174 </div> 2175 </li> 2176 2177 <li class="menu-item"> 2178 <div class="menu-link-row"> 2179 <a href="/collections/sunbrella-plus" class="menu-link">60 Inch Plus</a> 2180 2181 2182 </div> 2183 </li> 2184 2185 <li class="menu-item"> 2186 <div class="menu-link-row"> 2187 <a href="/collections/sunbrella-seamark" class="menu-link">60 Inch Seamark Waterproof</a> 2188 2189 2190 </div> 2191 </li> 2192 2193 <li class="menu-item"> 2194 <div class="menu-link-row"> 2195 <a href="/collections/sunbrella-80-inch-awning-marine-fabric" class="menu-link">80 Inch</a> 2196 2197 2198 </div> 2199 </li> 2200 2201 <li class="menu-item"> 2202 <div class="menu-link-row"> 2203 <a href="/collections/firesist-awning-shade-fabrics" class="menu-link">Firesist 60 Inch</a> 2204 2205 2206 </div> 2207 </li> 2208 2209 <li class="menu-item"> 2210 <div class="menu-link-row"> 2211 <a href="/collections/sunbrella-mayfield" class="menu-link">Mayfield Collection</a> 2212 2213 2214 </div> 2215 </li> 2216 2217 </ul> 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 <ul class="menu-panel-2 menu-panel is-hidden-right" id="menu-sunbrella-upholstery-curtain-fabric-10" data-depth="1"> 2247 <li class="back-header"> 2248 <button class="back-btn" data-target="menu-root"> 2249 <svg 2250 width="24" 2251 height="24"
2252 viewBox="0 0 24 24" 2253 fill="currentColor" 2254 aria-hidden="true" 2255 focusable="false" 2256 role="presentation" 2257 class="icon" 2258 > 2259 <path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"></path> 2260 </svg> 2261 Back 2262 </button> 2263 </li> 2264 2265 <li class="menu-item"> 2266 <a href="/collections/sunbrella-upholstery-furniture-fabric" class="all-btn large-text">Sunbrella Upholstery & Curtain Fabric</a> 2267 </li> 2268 2269 2270 <li class="menu-item"> 2271 <div class="menu-link-row"> 2272 <a href="/collections/sunbrella-54-inch-solids-upholstery-furniture-fabric" class="menu-link">54 Inch Solids</a> 2273 2274 2275 </div> 2276 </li> 2277 2278 <li class="menu-item"> 2279 <div class="menu-link-row"> 2280 <a href="/collections/sunbrella-54-inch-stripes-upholstery-furniture-fabric" class="menu-link">54 Inch Stripes</a> 2281 2282 2283 </div> 2284 </li> 2285 2286 <li class="menu-item"> 2287 <div class="menu-link-row"> 2288 <a href="/collections/sunbrella-54-inch-prints-upholstery-furniture-fabric" class="menu-link">54 Inch Prints</a> 2289 2290 2291 </div> 2292 </li> 2293 2294 <li class="menu-item"> 2295 <div class="menu-link-row"> 2296 <a href="/collections/kravet-sunbrella-upholstery-fabric" class="menu-link">Kravet Sunbrella</a> 2297 2298 2299 </div> 2300 </li> 2301 2302 <li class="menu-item"> 2303 <div class="menu-link-row"> 2304 <a href="/collections/lee-jofa-sunbrella-upholstery-fabric" class="menu-link">Lee Jofa Modern Sunbrella</a> 2305 2306 2307 </div> 2308 </li> 2309 2310 <li class="menu-item"> 2311 <div class="menu-link-row"> 2312 <a href="/collections/silver-state-sunbrella-upholstery-fabric" class="menu-link">Silver State Sunbrella</a> 2313 2314 2315 </div> 2316 </li> 2317 2318 <li class="menu-item"> 2319 <div class="menu-link-row"> 2320 <a href="/collections/mayer-sunbrella-upholstery-fabric" class="menu-link">Sunbrella by Mayer</a> 2321 2322 2323 </div> 2324 </li> 2325 2326 <li class="menu-item"> 2327 <div class="menu-link-row"> 2328 <a href="/collections/all" class="menu-link">Shop by Style / Pattern</a> 2329 2330 2331 </div> 2332 </li> 2333 2334 <li class="menu-item"> 2335 <div class="menu-link-row"> 2336 <a href="/collections/all" class="menu-link">Shop by Collection</a> 2337 2338 2339 </div> 2340 </li> 2341 2342 <li class="menu-item"> 2343 <div class="menu-link-row"> 2344 <a href="/collections/sunbrella-upholstery-furniture-fabric" class="menu-link">Sunbrella In Stock and Ready to Ship</a> 2345 2346 2347 </div> 2348 </li> 2349 2350 <li class="menu-item"> 2351 <div class="menu-link-row"> 2352 <a href="/collections/bestselling-sunbrella-samples" class="menu-link">Sunbrella Sample Packs</a> 2353 2354 2355 </div> 2356 </li> 2357 2358 </ul> 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 <ul class="menu-panel-2 menu-panel is-hidden-right" id="menu-sunbrella-mesh-sheer-sling-fabric-11" data-depth="1"> 2388 <li class="back-header"> 2389 <button class="back-btn" data-target="menu-root"> 2390 <svg 2391 width="24" 2392 height="24"
2393 viewBox="0 0 24 24" 2394 fill="currentColor" 2395 aria-hidden="true" 2396 focusable="false" 2397 role="presentation" 2398 class="icon" 2399 > 2400 <path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"></path> 2401 </svg> 2402 Back 2403 </button> 2404 </li> 2405 2406 <li class="menu-item"> 2407 <a href="/collections/sunbrella-mesh-sheer-sling-fabric" class="all-btn large-text">Sunbrella Mesh / Sheer / Sling Fabric</a> 2408 </li> 2409 2410 2411 <li class="menu-item"> 2412 <div class="menu-link-row"> 2413 <a href="/collections/sunbrella-54-inch-shade-shadow-mesh-sheer-fabric" class="menu-link">Shadow 54 Inch</a> 2414 2415 2416 </div> 2417 </li> 2418 2419 <li class="menu-item"> 2420 <div class="menu-link-row"> 2421 <a href="/collections/sunbrella-sheer-mist-fabric" class="menu-link">Sheer Mist</a> 2422 2423 2424 </div> 2425 </li> 2426 2427 <li class="menu-item"> 2428 <div class="menu-link-row"> 2429 <a href="/collections/120-inch-mesh-sheer-fabric" class="menu-link">Sheers 118 Inch</a> 2430 2431 2432 </div> 2433 </li> 2434 2435 </ul> 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 <ul class="menu-panel-2 menu-panel is-hidden-right" id="menu-clear-vinyl-14" data-depth="1"> 2453 <li class="back-header"> 2454 <button class="back-btn" data-target="menu-root"> 2455 <svg 2456 width="24" 2457 height="24"
2458 viewBox="0 0 24 24" 2459 fill="currentColor" 2460 aria-hidden="true" 2461 focusable="false" 2462 role="presentation" 2463 class="icon" 2464 > 2465 <path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"></path> 2466 </svg> 2467 Back 2468 </button> 2469 </li> 2470 2471 <li class="menu-item"> 2472 <a href="/collections/clear-vinyl" class="all-btn large-text">Clear Vinyl</a> 2473 </li> 2474 2475 2476 <li class="menu-item"> 2477 <div class="menu-link-row"> 2478 <a href="/collections/clear-vinyl-by-the-sheet" class="menu-link">Clear Vinyl by the Sheet</a> 2479 2480 2481 </div> 2482 </li> 2483 2484 <li class="menu-item"> 2485 <div class="menu-link-row"> 2486 <a href="/collections/clear-vinyl-by-the-yard" class="menu-link">Clear Vinyl by the Yard</a> 2487 2488 2489 </div> 2490 </li> 2491 2492 </ul> 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 <ul class="menu-panel-2 menu-panel is-hidden-right" id="menu-embellishments-finishing-supplies-15" data-depth="1"> 2504 <li class="back-header"> 2505 <button class="back-btn" data-target="menu-root"> 2506 <svg 2507 width="24" 2508 height="24"
2509 viewBox="0 0 24 24" 2510 fill="currentColor" 2511 aria-hidden="true" 2512 focusable="false" 2513 role="presentation" 2514 class="icon" 2515 > 2516 <path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"></path> 2517 </svg> 2518 Back 2519 </button> 2520 </li> 2521 2522 <li class="menu-item"> 2523 <a href="/collections/finishing" class="all-btn large-text">Embellishments / Finishing Supplies</a> 2524 </li> 2525 2526 2527 <li class="menu-item"> 2528 <div class="menu-link-row"> 2529 <a href="/collections/adhesives-lubricants" class="menu-link">Adhesives & Lubricants</a> 2530 2531 2532 </div> 2533 </li> 2534 2535 <li class="menu-item"> 2536 <div class="menu-link-row"> 2537 <a href="/collections/sunbrella-binding-braid" class="menu-link">Sunbrella Binding</a> 2538 2539 2540 </div> 2541 </li> 2542 2543 <li class="menu-item"> 2544 <div class="menu-link-row"> 2545 <a href="/collections/sunbrella-facing" class="menu-link">Sunbrella Facing</a> 2546 2547 2548 </div> 2549 </li> 2550 2551 <li class="menu-item"> 2552 <div class="menu-link-row"> 2553 <a href="/collections/velcro-hook-and-loop" class="menu-link">Hook & Loop Tape</a> 2554 2555 2556 </div> 2557 </li> 2558 2559 <li class="menu-item"> 2560 <div class="menu-link-row"> 2561 <a href="/collections/seamstick-basting-tape" class="menu-link">Seamstick Basting Tape</a> 2562 2563 2564 </div> 2565 </li> 2566 2567 <li class="menu-item"> 2568 <div class="menu-link-row"> 2569 <a href="/collections/sunbrella-binding-braid" class="menu-link">Sunbrella Trimming</a> 2570 2571 2572 </div> 2573 </li> 2574 2575 <li class="menu-item"> 2576 <div class="menu-link-row"> 2577 <a href="/collections/sunbrella-sewing-thread" class="menu-link">Thread & Bobbin</a> 2578 2579 2580 </div> 2581 </li> 2582 2583 <li class="menu-item"> 2584 <div class="menu-link-row"> 2585 <a href="/collections/sunbrella-gimp-welt" class="menu-link">Vinyl Welt Cord</a> 2586 2587 2588 </div> 2589 </li> 2590 2591 </ul> 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 <ul class="menu-panel-2 menu-panel is-hidden-right" id="menu-hardware-tools-16" data-depth="1"> 2615 <li class="back-header"> 2616 <button class="back-btn" data-target="menu-root"> 2617 <svg 2618 width="24" 2619 height="24"
2620 viewBox="0 0 24 24" 2621 fill="currentColor" 2622 aria-hidden="true" 2623 focusable="false" 2624 role="presentation" 2625 class="icon" 2626 > 2627 <path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"></path> 2628 </svg> 2629 Back 2630 </button> 2631 </li> 2632 2633 <li class="menu-item"> 2634 <a href="/collections/hardware-tools" class="all-btn large-text">Hardware / Tools</a> 2635 </li> 2636 2637 2638 <li class="menu-item"> 2639 <div class="menu-link-row"> 2640 <a href="/collections/common-sense" class="menu-link">Common Sense Curtain Fasteners / Tools</a> 2641 2642 2643 <button class="next-btn" data-target="menu-common-sense-curtain-fasteners-tools-1"> 2644 <svg 2645 width="24" 2646 height="24" 2647 viewB
2647ox="0 0 24 24" 2648 aria-hidden="true" 2649 focusable="false" 2650 role="presentation" 2651 class="icon" 2652 > 2653 <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"></path> 2654 </svg> 2655 </button> 2656 2657 </div> 2658 </li> 2659 2660 <li class="menu-item"> 2661 <div class="menu-link-row"> 2662 <a href="/collections/dot-fasteners" class="menu-link">Dot Durable Fasteners / Tools</a> 2663 2664 2665 <button class="next-btn" data-target="menu-dot-durable-fasteners-tools-2"> 2666 <svg 2667 width="24" 2668 height="24" 2669 viewBox="0 0 24 24" 2670 aria-hidden="true" 2671 focusable="false" 2672 role="presentation" 2673 class="icon" 2674 > 2675 <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"></path> 2676 </svg> 2677 </button> 2678 2679 </div> 2680 </li> 2681 2682 <li class="menu-item"> 2683 <div class="menu-link-row"> 2684 <a href="/collections/fasteners-and-grommets" class="menu-link">Grommets / Tools</a> 2685 2686 2687 <button class="next-btn" data-target="menu-grommets-tools-3"> 2688 <svg 2689 width="24" 2690 height="24"
2691 viewBox="0 0 24 24" 2692 aria-hidden="true" 2693 focusable="false" 2694 role="presentation" 2695 class="icon" 2696 > 2697 <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"></path> 2698 </svg> 2699 </button> 2700 2701 </div> 2702 </li> 2703 2704 <li class="menu-item"> 2705 <div class="menu-link-row"> 2706 <a href="/collections/fastener-sets" class="menu-link">Fastener Sets</a> 2707 2708 2709 </div> 2710 </li> 2711 2712 <li class="menu-item"> 2713 <div class="menu-link-row"> 2714 <a href="/collections/tools-accessories" class="menu-link">Hand Tools</a> 2715 2716 2717 </div> 2718 </li> 2719 2720 <li class="menu-item"> 2721 <div class="menu-link-row"> 2722 <a href="/collections/lift-the-dot" class="menu-link">Lift-the-Dot Fasteners / Tools</a> 2723 2724 2725 <button class="next-btn" data-target="menu-lift-the-dot-fasteners-tools-6"> 2726 <svg 2727 width="24" 2728 height="24"
2729 viewBox="0 0 24 24" 2730 aria-hidden="true" 2731 focusable="false" 2732 role="presentation" 2733 class="icon" 2734 > 2735 <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"></path> 2736 </svg> 2737 </button> 2738 2739 </div> 2740 </li> 2741 2742 <li class="menu-item"> 2743 <div class="menu-link-row"> 2744 <a href="/collections/industrial-and-upholstery-zippers" class="menu-link">Zippers / Tools</a> 2745 2746 2747 <button class="next-btn" data-target="menu-zippers-tools-7"> 2748 <svg 2749 width="24" 2750 height="24" 2751 viewBox="0 0 24 24" 2752 aria-hidden="true" 2753 focusable="false" 2754 role="presentation" 2755 class="icon" 2756 > 2757 <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"></path> 2758 </svg> 2759 </button> 2760 2761 </div> 2762 </li> 2763 2764 <li class="menu-item"> 2765 <div class="menu-link-row"> 2766 <a href="/collections/outdoor-curtain-hardware" class="menu-link">Curtain Hardware</a> 2767 2768 2769 </div> 2770 </li> 2771 2772 </ul> 2773 2774 2775 2776 <ul class="menu-panel-3 menu-panel is-hidden-right" id="menu-common-sense-curtain-fasteners-tools-1" data-depth="2"> 2777 <li class="back-header"> 2778 <button class="back-btn" data-target="menu-hardware-tools-16"> 2779 <svg 2780 width="24" 2781 height="24"
2782 viewBox="0 0 24 24" 2783 fill="currentColor" 2784 aria-hidden="true" 2785 focusable="false" 2786 role="presentation" 2787 class="icon" 2788 > 2789 <path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"></path> 2790 </svg> 2791 Back 2792 </button> 2793 </li> 2794 2795 <li class="menu-item"> 2796 <a href="/collections/common-sense" class="all-btn large-text">Common Sense Curtain Fasteners / Tools</a> 2797 </li> 2798 2799 2800 <li class="menu-item"> 2801 <div class="menu-link-row"> 2802 <a href="/collections/common-sense-curtain-fasteners" class="menu-link">Common Sense Curtain Fasteners</a> 2803 </div> 2804 </li> 2805 2806 <li class="menu-item"> 2807 <div class="menu-link-row"> 2808 <a href="/collections/common-sense-curtain-tools" class="menu-link">Common Sense Curtain Tools</a> 2809 </div> 2810 </li> 2811 2812 </ul> 2813 2814 2815 2816 <ul class="menu-panel-3 menu-panel is-hidden-right" id="menu-dot-durable-fasteners-tools-2" data-depth="2"> 2817 <li class="back-header"> 2818 <button class="back-btn" data-target="menu-hardware-tools-16"> 2819 <svg 2820 width="24" 2821 height="24"
2822 viewBox="0 0 24 24" 2823 fill="currentColor" 2824 aria-hidden="true" 2825 focusable="false" 2826 role="presentation" 2827 class="icon" 2828 > 2829 <path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"></path> 2830 </svg> 2831 Back 2832 </button> 2833 </li> 2834 2835 <li class="menu-item"> 2836 <a href="/collections/dot-fasteners" class="all-btn large-text">Dot Durable Fasteners / Tools</a> 2837 </li> 2838 2839 2840 <li class="menu-item"> 2841 <div class="menu-link-row"> 2842 <a href="/collections/dot-durable" class="menu-link">Dot Durable Fasteners</a> 2843 </div> 2844 </li> 2845 2846 <li class="menu-item"> 2847 <div class="menu-link-row"> 2848 <a href="/collections/dies-presses-punches" class="menu-link">Dot Durable Tools</a> 2849 </div> 2850 </li> 2851 2852 </ul> 2853 2854 2855 2856 <ul class="menu-panel-3 menu-panel is-hidden-right" id="menu-grommets-tools-3" data-depth="2"> 2857 <li class="back-header"> 2858 <button class="back-btn" data-target="menu-hardware-tools-16"> 2859 <svg 2860 width="24" 2861 height="24"
2862 viewBox="0 0 24 24" 2863 fill="currentColor" 2864 aria-hidden="true" 2865 focusable="false" 2866 role="presentation" 2867 class="icon" 2868 > 2869 <path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"></path> 2870 </svg> 2871 Back 2872 </button> 2873 </li> 2874 2875 <li class="menu-item"> 2876 <a href="/collections/fasteners-and-grommets" class="all-btn large-text">Grommets / Tools</a> 2877 </li> 2878 2879 2880 <li class="menu-item"> 2881 <div class="menu-link-row"> 2882 <a href="/collections/dies-presses-punches" class="menu-link">Grommet Tools</a> 2883 </div> 2884 </li> 2885 2886 <li class="menu-item"> 2887 <div class="menu-link-row"> 2888 <a href="/collections/osborne" class="menu-link">Home Grommet Kit</a> 2889 </div> 2890 </li> 2891 2892 </ul> 2893 2894 2895 2896 2897 2898 2899 2900 <ul class="menu-panel-3 menu-panel is-hidden-right" id="menu-lift-the-dot-fasteners-tools-6" data-depth="2"> 2901 <li class="back-header"> 2902 <button class="back-btn" data-target="menu-hardware-tools-16"> 2903 <svg 2904 width="24" 2905 height="24"
2906 viewBox="0 0 24 24" 2907 fill="currentColor" 2908 aria-hidden="true" 2909 focusable="false" 2910 role="presentation" 2911 class="icon" 2912 > 2913 <path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"></path> 2914 </svg> 2915 Back 2916 </button> 2917 </li> 2918 2919 <li class="menu-item"> 2920 <a href="/collections/lift-the-dot" class="all-btn large-text">Lift-the-Dot Fasteners / Tools</a> 2921 </li> 2922 2923 2924 <li class="menu-item"> 2925 <div class="menu-link-row"> 2926 <a href="/collections/lift-the-dot-fasteners" class="menu-link">Lift-the-Dot Fasteners</a> 2927 </div> 2928 </li> 2929 2930 <li class="menu-item"> 2931 <div class="menu-link-row"> 2932 <a href="/collections/lift-the-dot-tools" class="menu-link">Lift-the-Dot Tools</a> 2933 </div> 2934 </li> 2935 2936 </ul> 2937 2938 2939 2940 <ul class="menu-panel-3 menu-panel is-hidden-right" id="menu-zippers-tools-7" data-depth="2"> 2941 <li class="back-header"> 2942 <button class="back-btn" data-target="menu-hardware-tools-16"> 2943 <svg 2944 width="24" 2945 height="24"
2946 viewBox="0 0 24 24" 2947 fill="currentColor" 2948 aria-hidden="true" 2949 focusable="false" 2950 role="presentation" 2951 class="icon" 2952 > 2953 <path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"></path> 2954 </svg> 2955 Back 2956 </button> 2957 </li> 2958 2959 <li class="menu-item"> 2960 <a href="/collections/industrial-and-upholstery-zippers" class="all-btn large-text">Zippers / Tools</a> 2961 </li> 2962 2963 2964 <li class="menu-item"> 2965 <div class="menu-link-row"> 2966 <a href="/collections/ykk-10-zippers-black" class="menu-link">YKK #10 Zippers Black</a> 2967 </div> 2968 </li> 2969 2970 <li class="menu-item"> 2971 <div class="menu-link-row"> 2972 <a href="/collections/ykk-10-zippers-white" class="menu-link">YKK #10 Zippers White</a> 2973 </div> 2974 </li> 2975 2976 <li class="menu-item"> 2977 <div class="menu-link-row"> 2978 <a href="/collections/ykk-5-cushion-zippers" class="menu-link">YKK #5 Cushion Zippers</a> 2979 </div> 2980 </li> 2981 2982 <li class="menu-item"> 2983 <div class="menu-link-row"> 2984 <a href="/collections/ykk-zipper-accessories" class="menu-link">YKK Zipper Accessories</a> 2985 </div> 2986 </li> 2987 2988 </ul> 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 </div> 3004 3005</div> 3006 3007<div class="site-overlay toggle-sidebar" id="siteOverlay"></div> 3008
3009<script> 3010 3011 ////////////////////////////////////////////////////////////// 3012 document.addEventListener('DOMContentLoaded', function () { 3013 3014 // 1. Define the reusable toggle logic 3015 const toggleSidebars = document.querySelectorAll('.toggle-sidebar'); 3016 3017 toggleSidebars.forEach(function(trigger) { 3018 trigger.addEventListener('click', function(e) { 3019 e.preventDefault(); // Prevents <a href="#"> from jumping to top 3020 3021 const hamburgerBtn = document.getElementById('hamburger-btn'); 3022 const sidebar = document.getElementById('sidebarDrawer'); 3023 const overlay = document.getElementById('siteOverlay'); 3024 const body = document.body; 3025 3026 // Toggle active states 3027 if (sidebar) { 3028 sidebar.classList.toggle('active'); 3029 } 3030 if (overlay) { 3031 overlay.classList.toggle('active'); 3032 } 3033 3034 // Toggle the hamburger icon animation (if it exists) 3035 if (hamburgerBtn) { 3036 hamburgerBtn.classList.toggle('active'); 3037 } 3038 3039 // Prevent background scrolling 3040 if (sidebar && sidebar.classList.contains('active')) { 3041 body.classList.add('overflow-hidden'); 3042 //document.querySelector('.main-menu .js-mega-nav.is-open').classList.remove('is-open'); 3043 //document.querySelector('.main-menu .js-mega-nav .main-menu__disclosure[is-open]').removeAttribute('is-open'); 3044 //document.querySelector('body > .overlay.js-overlay.overlay--nav.is-visible').classList.remove('is-visible'); 3045 $q('.main-menu .js-mega-nav.is-open').removeClass('is-open'); 3046 $q('.main-menu .js-mega-nav .main-menu__disclosure[is-open]').removeAttr('is-open'); 3047 $q('body > .overlay.js-overlay.overlay--nav.is-visible').removeClass('is-visible'); 3048 } else { 3049 body.classList.remove('overflow-hidden'); 3050 } 3051 }); 3052 }); 3053 3054 // FUNCTION 1: OPEN SUB-MENU (Slide Left) 3055 const nextBtns = document.querySelectorAll('.next-btn'); 3056 3057 nextBtns.forEach((btn) => { 3058 btn.addEventListener('click', function (e) { 3059 e.preventDefault(); 3060 3061 // 1. Identify the Current Menu (Parent) and Target Menu (Child) 3062 const currentMenu = this.closest('.menu-panel'); 3063 const targetId = this.getAttribute('data-target'); 3064 const targetMenu = document.getElementById(targetId); 3065 3066 if (targetMenu) { 3067 // 2. Animate Parent OUT to Left 3068 currentMenu.classList.remove('is-visible'); 3069 currentMenu.classList.add('is-hidden-left'); 3070 3071 // 3. Animate Child IN from Right 3072 targetMenu.classList.remove('is-hidden-right'); 3073 targetMenu.classList.add('is-visible'); 3074 3075 // 4. Reset Scroll (UX improvement) 3076 targetMenu.scrollTop = 0; 3077 } 3078 }); 3079 }); 3080 3081 // FUNCTION 2: GO BACK (Slide Right) 3082 const backBtns = document.querySelectorAll('.back-btn'); 3083 3084 backBtns.forEach((btn) => { 3085 btn.addEventListener('click', function (e) { 3086 e.preventDefault(); 3087 3088 // 1. Identify Current Menu (Child) and Target Menu (Parent) 3089 const currentMenu = this.closest('.menu-panel'); 3090 const targetId = this.getAttribute('data-target'); 3091 const targetMenu = document.getElementById(targetId); 3092 3093 if (targetMenu) { 3094 // 2. Animate Child OUT to Right 3095 currentMenu.classList.remove('is-visible'); 3096 currentMenu.classList.add('is-hidden-right'); 3097 3098 // 3. Animate Parent IN from Left 3099 targetMenu.classList.remove('is-hidden-left'); 3100 targetMenu.classList.add('is-visible'); 3101 } 3102 }); 3103 }); 3104 3105 const sidebarDrawer = document.querySelector('.sidebar-drawer'); 3106 const prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches; 3107 if (prefersDark) { 3108 // Dark mode is enabled in the system settings 3109 sidebarDrawer.classList.add('dark-mode'); 3110 } else { 3111 // Light mode (or no preference) is enabled 3112 //console.log('Light mode is on'); 3113 } 3114 3115 }); 3116</script>
3116 3117 3118 3119 3120 <details class="main-menu__disclosure has-motion" open> 3121 <summary class="main-menu__toggle md:hidden"> 3122 <span class="main-menu__toggle-icon" aria-hidden="true"></span> 3123 <span class="visually-hidden">Menu</span> 3124 </summary> 3125 <div class="main-menu__content has-motion justify-between"><nav aria-label="Primary"> 3126 <ul class="main-nav"><li><details class="js-mega-nav" > 3127 <summary class="main-nav__item--toggle relative js-nav-hover js-toggle"> 3128 <a class="main-nav__item main-nav__item--primary main-nav__item-content" href="/collections/sunbrella-cushions-pillows"> 3129 Cushions & Pillows<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 3130 </a> 3131 </summary><div class="main-nav__child mega-nav mega-nav--columns has-motion"> 3132 <div class="container"> 3133 <ul class="child-nav md:grid md:nav-gap-x-16 md:nav-gap-y-4 md:grid-cols-3 lg:grid-cols-4"> 3134 <li class="md:hidden"> 3135 <button type="button" class="main-nav__item main-nav__item--back relative js-back"> 3136 <div class="main-nav__item-content text-start"> 3137 <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"/></svg> Back</div> 3138 </button> 3139 </li> 3140 3141 <li class="md:hidden"> 3142 <a href="/collections/sunbrella-cushions-pillows" class="main-nav__item child-nav__item large-text main-nav__item-header">Cushions & Pillows</a> 3143 </li><li><nav-menu class="js-mega-nav"> 3144 <details open> 3145 <summary class="child-nav__item--toggle main-nav__item--toggle relative js-no-toggle-md"> 3146 <div class="main-nav__item-content"><a class="child-nav__item main-nav__item main-nav__item-content" href="#" data-no-instant>Most Popular<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 3147 </a> 3148 </div> 3149 </summary> 3150 3151 <div class="disclosure__panel has-motion"><ul class="main-nav__grandchild has-motion " role="list" style=""><li><a class="grandchild-nav__item main-nav__item" href="/products/custom-chair-cushions-in-sunbrella-fabric-made-in-the-usa">Chair</a> 3152 </li><li><a class="grandchild-nav__item main-nav__item" href="/products/sunbrella-outdoor-sofa-cushions">Sofa</a> 3153 </li><li><a class="grandchild-nav__item main-nav__item" href="/products/sunbrella-bench-window-cushions">Bench</a> 3154 </li><li><a class="grandchild-nav__item main-nav__item" href="/products/sunbrella-breakfast-nook-cushions">Nook</a> 3155 </li><li><a class="grandchild-nav__item main-nav__item" href="/products/sunbrella-swing-glider-cushions">Glider</a> 3156 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/sunbrella-custom-cushions">Shop All</a> 3157 </li></ul> 3158 </div> 3159 </details> 3160 </nav-menu></li><li><nav-menu class="js-mega-nav"> 3161 <details open> 3162 <summary class="child-nav__item--toggle main-nav__item--toggle relative js-no-toggle-md"> 3163 <div class="main-nav__item-content"><a class="child-nav__item main-nav__item main-nav__item-content" href="#" data-no-instant>Cushions<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 3164 </a> 3165 </div> 3166 </summary> 3167 3168 <div class="disclosure__panel has-motion"><ul class="main-nav__grandchild has-motion " role="list" style=""><li><a class="grandchild-nav__item main-nav__item" href="/collections/sunbrella-custom-cushions">Custom Size Cushions</a> 3169 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/sunbrella-swing-bed-cushion-sets">Swing Bed Cushion Sets</a> 3170 </li></ul> 3171 </div> 3172 </details> 3173 </nav-menu></li><li><nav-menu class="js-mega-nav"> 3174 <details open> 3175 <summary class="child-nav__item--toggle main-nav__item--toggle relative js-no-toggle-md"> 3176 <div class="main-nav__item-content"><a class="child-nav__item main-nav__item main-nav__item-content" href="#" data-no-instant>Pillows<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 3177 </a> 3178 </div> 3179 </summary> 3180 3181 <div class="disclosure__panel has-motion"><ul class="main-nav__grandchild has-motion " role="list" style=""><li><a class="grandchild-nav__item main-nav__item" href="/products/sunbrella-pillows">Standard Size Pillows</a> 3182 </li><li><a class="grandchild-nav__item main-nav__item" href="/products/sunbrella-custom-size-throw-pillows">Custom Odd Size Pillows</a> 3183 </li><li><a class="grandchild-nav__item main-nav__item" href="/products/sunbrella-bolster-pillows">Custom Bolsters</a> 3184 </li></ul> 3185 </div> 3186 </details> 3187 </nav-menu></li><li><nav-menu class="js-mega-nav"> 3188 <details open> 3189 <summary class="child-nav__item--toggle main-nav__item--toggle relative js-no-toggle-md"> 3190 <div class="main-nav__item-content"><a class="child-nav__item main-nav__item main-nav__item-content" href="#" data-no-instant>Get Started<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 3191 </a> 3192 </div> 3193 </summary> 3194 3195 <div class="disclosure__panel has-motion"><ul class="main-nav__grandchild has-motion " role="list" style=""><li><a class="grandchild-nav__item main-nav__item" href="/collections/bestselling-sunbrella-samples">Explore Curated Samples</a> 3196 </li><li><a class="grandchild-nav__item main-nav__item" href="/pages/sunbrella-measuring-cushion">How To Measure for Cushions</a> 3197 </li><li><a class="grandchild-nav__item main-nav__item" href="/pages/measuring-guide-for-unique-shaped-cushions">Guide for Unique Shaped Cushions</a> 3198 </li></ul> 3199 </div> 3200 </details> 3201 </nav-menu></li></ul></div></div> 3202 </details></li><li>
3202<details class="js-mega-nav" > 3203 <summary class="main-nav__item--toggle relative js-nav-hover js-toggle"> 3204 <a class="main-nav__item main-nav__item--primary main-nav__item-content" href="/collections/sunbrella-curtains-and-drapery-panels"> 3205 Curtains & Drapery<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 3206 </a> 3207 </summary><div class="main-nav__child mega-nav mega-nav--columns has-motion"> 3208 <div class="container"> 3209 <ul class="child-nav md:grid md:nav-gap-x-16 md:nav-gap-y-4 md:grid-cols-3 lg:grid-cols-4"> 3210 <li class="md:hidden"> 3211 <button type="button" class="main-nav__item main-nav__item--back relative js-back"> 3212 <div class="main-nav__item-content text-start"> 3213 <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"/></svg> Back</div> 3214 </button> 3215 </li> 3216 3217 <li class="md:hidden"> 3218 <a href="/collections/sunbrella-curtains-and-drapery-panels" class="main-nav__item child-nav__item large-text main-nav__item-header">Curtains & Drapery</a> 3219 </li><li><nav-menu class="js-mega-nav"> 3220 <details open> 3221 <summary class="child-nav__item--toggle main-nav__item--toggle relative js-no-toggle-md"> 3222 <div class="main-nav__item-content"><a class="child-nav__item main-nav__item main-nav__item-content" href="#" data-no-instant>Curtains<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 3223 </a> 3224 </div> 3225 </summary> 3226 3227 <div class="disclosure__panel has-motion"><ul class="main-nav__grandchild has-motion " role="list" style=""><li><a class="grandchild-nav__item main-nav__item" href="/collections/sunbrella-custom-outdoor-curtains">Custom Size Curtains</a> 3228 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/sunbrella-standard-size-curtains">Standard Size Curtains</a> 3229 </li></ul> 3230 </div> 3231 </details> 3232 </nav-menu></li><li><nav-menu class="js-mega-nav"> 3233 <details open> 3234 <summary class="child-nav__item--toggle main-nav__item--toggle relative js-no-toggle-md"> 3235 <div class="main-nav__item-content"><a class="child-nav__item main-nav__item main-nav__item-content" href="#" data-no-instant>Hardware<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 3236 </a> 3237 </div> 3238 </summary> 3239 3240 <div class="disclosure__panel has-motion"><ul class="main-nav__grandchild has-motion " role="list" style=""><li><a class="grandchild-nav__item main-nav__item" href="/collections/outdoor-curtain-hardware">Curtain Hardware</a> 3241 </li></ul> 3242 </div> 3243 </details> 3244 </nav-menu></li><li><nav-menu class="js-mega-nav"> 3245 <details open> 3246 <summary class="child-nav__item--toggle main-nav__item--toggle relative js-no-toggle-md"> 3247 <div class="main-nav__item-content"><a class="child-nav__item main-nav__item main-nav__item-content" href="#" data-no-instant>Get Started<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 3248 </a> 3249 </div> 3250 </summary> 3251 3252 <div class="disclosure__panel has-motion"><ul class="main-nav__grandchild has-motion " role="list" style=""><li><a class="grandchild-nav__item main-nav__item" href="/pages/sunbrella-measuring-cushion#measuring-curtains">How to Measure for Curtains</a> 3253 </li><li><a class="grandchild-nav__item main-nav__item" href="/pages/measuring-guide-for-curtain-hardware">How to Measure for Curtain Hardware</a> 3254 </li></ul> 3255 </div> 3256 </details> 3257 </nav-menu></li></ul></div></div> 3258 </details></li><li>
3258<details class="js-mega-nav" > 3259 <summary class="main-nav__item--toggle relative js-nav-hover js-toggle"> 3260 <a class="main-nav__item main-nav__item--primary main-nav__item-content" href="/collections/sunbrella-fabric-by-the-yard"> 3261 Sunbrella Fabric<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 3262 </a> 3263 </summary><div class="main-nav__child mega-nav mega-nav--columns has-motion"> 3264 <div class="container"> 3265 <ul class="child-nav md:grid md:nav-gap-x-16 md:nav-gap-y-4 md:grid-cols-3 lg:grid-cols-4"> 3266 <li class="md:hidden"> 3267 <button type="button" class="main-nav__item main-nav__item--back relative js-back"> 3268 <div class="main-nav__item-content text-start"> 3269 <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"/></svg> Back</div> 3270 </button> 3271 </li> 3272 3273 <li class="md:hidden"> 3274 <a href="/collections/sunbrella-fabric-by-the-yard" class="main-nav__item child-nav__item large-text main-nav__item-header">Sunbrella Fabric</a> 3275 </li><li><nav-menu class="js-mega-nav"> 3276 <details open> 3277 <summary class="child-nav__item--toggle main-nav__item--toggle relative js-no-toggle-md"> 3278 <div class="main-nav__item-content"><a class="child-nav__item main-nav__item main-nav__item-content" href="#" data-no-instant>Shop by Color<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 3279 </a> 3280 </div> 3281 </summary> 3282 3283 <div class="disclosure__panel has-motion"><ul class="main-nav__grandchild has-motion " role="list" style=""><li><a class="grandchild-nav__item main-nav__item" href="/collections/black-sunbrella-fabrics">Black</a> 3284 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/white-sunbrella-fabrics">White</a> 3285 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/beige-sunbrella-fabrics">Beige</a> 3286 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/grey-sunbrella-fabrics">Grey</a> 3287 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/brown-sunbrella-fabrics">Brown</a> 3288 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/all">Shop All</a> 3289 </li></ul> 3290 </div> 3291 </details> 3292 </nav-menu></li><li><nav-menu class="js-mega-nav"> 3293 <details open> 3294 <summary class="child-nav__item--toggle main-nav__item--toggle relative js-no-toggle-md"> 3295 <div class="main-nav__item-content"><a class="child-nav__item main-nav__item main-nav__item-content" href="#" data-no-instant>Shop by Design<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 3296 </a> 3297 </div> 3298 </summary> 3299 3300 <div class="disclosure__panel has-motion"><ul class="main-nav__grandchild has-motion " role="list" style=""><li><a class="grandchild-nav__item main-nav__item" href="/collections/solid-sunbrella-fabrics">Solids</a> 3301 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/striped-sunbrella-fabrics">Stripes</a> 3302 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/prints-p
3302atterned-sunbrella-fabrics">Prints / Patterns</a> 3303 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/textured-sunbrella-fabrics">Textured</a> 3304 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/botanical-floral-sunbrella-fabrics">Botanical / Floral</a> 3305 </li></ul> 3306 </div> 3307 </details> 3308 </nav-menu></li><li><nav-menu class="js-mega-nav"> 3309 <details open> 3310 <summary class="child-nav__item--toggle main-nav__item--toggle relative js-no-toggle-md"> 3311 <div class="main-nav__item-content"><a class="child-nav__item main-nav__item main-nav__item-content" href="#" data-no-instant>Shop by Use<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 3312 </a> 3313 </div> 3314 </summary> 3315 3316 <div class="disclosure__panel has-motion"><ul class="main-nav__grandchild has-motion " role="list" style=""><li><a class="grandchild-nav__item main-nav__item" href="/collections/sunbrella-indoor-outdoor-upholstery-fabric">Indoor - Outdoor Upholstery</a> 3317 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/sunbrella-awning-marine-fabric">Awnings / Canopies / Pergolas</a> 3318 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/sunbrella-marine-vinyl">Marine Vinyl</a> 3319 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/sunbrella-sling-fabric">Sling</a> 3320 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/sunbrella-rain-canvas-upholstery-fabric">Waterproof Upholstery</a> 3321 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/sunbrella-sheer-fabric">Sheer Drapery</a> 3322 </li></ul> 3323 </div> 3324 </details> 3325 </nav-menu></li><li><nav-menu class="js-mega-nav"> 3326 <details open> 3327 <summary class="child-nav__item--toggle main-nav__item--toggle relative js-no-toggle-md"> 3328 <div class="main-nav__item-content"><a class="child-nav__item main-nav__item main-nav__item-content" href="#" data-no-instant>Get Started<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 3329 </a> 3330 </div> 3331 </summary> 3332 3333 <div class="disclosure__panel has-motion"><ul class="main-nav__grandchild has-motion " role="list" style=""><li><a class="grandchild-nav__item main-nav__item" href="/collections/sunbrella-fabric-samples">Order Free Samples</a> 3334 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/sunbrella-fabric-by-the-yard">Shop Most Popular</a> 3335 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/new-sunbrella-fabrics">Explore New Sunbrella</a> 3336 </li><li><a class="grandchild-nav__item main-nav__item" href="/pages/contact">Need Help Choosing a Fabric?</a> 3337 </li></ul> 3338 </div> 3339 </details> 3340 </nav-menu></li></ul></div></div> 3341 </details></li><li>
3341<details class="js-mega-nav" > 3342 <summary class="main-nav__item--toggle relative js-nav-hover js-toggle"> 3343 <a class="main-nav__item main-nav__item--primary main-nav__item-content" href="/collections/sunbrella-samples"> 3344 Samples<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 3345 </a> 3346 </summary><div class="main-nav__child mega-nav mega-nav--columns mega-nav--no-grandchildren has-motion"> 3347 <div class="container"> 3348 <ul class="child-nav md:grid md:nav-gap-x-16 md:nav-gap-y-4 md:grid-cols-3 lg:grid-cols-4"> 3349 <li class="md:hidden"> 3350 <button type="button" class="main-nav__item main-nav__item--back relative js-back"> 3351 <div class="main-nav__item-content text-start"> 3352 <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"/></svg> Back</div> 3353 </button> 3354 </li> 3355 3356 <li class="md:hidden"> 3357 <a href="/collections/sunbrella-samples" class="main-nav__item child-nav__item large-text main-nav__item-header">Samples</a> 3358 </li><li><a class="main-nav__item child-nav__item" 3359 href="/collections/sunbrella-fabric-samples">Free Samples</a></li><li><a class="main-nav__item child-nav__item" 3360 href="/collections/bestselling-sunbrella-samples">Sample Packs</a></li><li><a class="main-nav__item child-nav__item" 3361 href="/collections/designer-samples">Designer Samples</a></li></ul></div></div> 3362 </details></li><li><details class="js-mega-nav" > 3363 <summary class="main-nav__item--toggle relative js-nav-hover js-toggle"> 3364 <a class="main-nav__item main-nav__item--primary main-nav__item-content" href="/collections/all-hardware-and-finishing-supplies"> 3365 Shade & More<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 3366 </a> 3367 </summary><div class="main-nav__child mega-nav mega-nav--columns has-motion"> 3368 <div class="container"> 3369 <ul class="child-nav md:grid md:nav-gap-x-16 md:nav-gap-y-4 md:grid-cols-3 lg:grid-cols-4"> 3370 <li class="md:hidden"> 3371 <button type="button" class="main-nav__item main-nav__item--back relative js-back"> 3372 <div class="main-nav__item-content text-start"> 3373 <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"/></svg> Back</div> 3374 </button> 3375 </li> 3376 3377 <li class="md:hidden"> 3378 <a href="/collections/all-hardware-and-finishing-supplies" class="main-nav__item child-nav__item large-text main-nav__item-header">Shade & More</a> 3379 </li><li><nav-menu class="js-mega-nav"> 3380 <details open> 3381 <summary class="child-nav__item--toggle main-nav__item--toggle relative js-no-toggle-md"> 3382 <div class="main-nav__item-content"><a class="child-nav__item main-nav__item main-nav__item-content" href="#" data-no-instant>
3382Shade<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 3383 </a> 3384 </div> 3385 </summary> 3386 3387 <div class="disclosure__panel has-motion"><ul class="main-nav__grandchild has-motion " role="list" style=""><li><a class="grandchild-nav__item main-nav__item" href="/products/custom-size-sunbrella-fabric-playset-canopy-with-grommets">Sunbrella Grommet Playset Canopy</a> 3388 </li><li><a class="grandchild-nav__item main-nav__item" href="/products/sunbrella-swingset-playset-canopy-cover-with-snaps">Sunbrella Pocket Playset Canopy</a> 3389 </li><li><a class="grandchild-nav__item main-nav__item" href="/products/custom-size-sunbrella-fabric-panel-with-grommets">Sunbrella Grommet Fabric Panel</a> 3390 </li><li><a class="grandchild-nav__item main-nav__item" href="/products/custom-size-sunbrella-fabric-panel-with-side-pockets">Sunbrella Pocket Fabric Panel</a> 3391 </li></ul> 3392 </div> 3393 </details> 3394 </nav-menu></li><li><nav-menu class="js-mega-nav"> 3395 <details open> 3396 <summary class="child-nav__item--toggle main-nav__item--toggle relative js-no-toggle-md"> 3397 <div class="main-nav__item-content"><a class="child-nav__item main-nav__item main-nav__item-content" href="#" data-no-instant>Supplies<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 3398 </a> 3399 </div> 3400 </summary> 3401 3402 <div class="disclosure__panel has-motion"><ul class="main-nav__grandchild has-motion " role="list" style=""><li><a class="grandchild-nav__item main-nav__item" href="/collections/clear-vinyl">Clear Vinyl</a> 3403 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/sunbrella-binding-braid">Binding, Facing and Braid</a> 3404 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/sunbrella-furniture-cleaners">Cleaners</a> 3405 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/sunbrella-gimp-welt">Gimp and Welt</a> 3406 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/velcro-hook-and-loop">Hook and Loop Tape</a> 3407 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/sunbrella-sewing-thread">Thread and Bobbins</a> 3408 </li></ul> 3409 </div> 3410 </details> 3411 </nav-menu></li><li><nav-menu class="js-mega-nav"> 3412 <details open> 3413 <summary class="child-nav__item--toggle main-nav__item--toggle relative js-no-toggle-md"> 3414 <div class="main-nav__item-content"><a class="child-nav__item main-nav__item main-nav__item-content" href="#" data-no-instant>Hardware<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 3415 </a> 3416 </div> 3417 </summary> 3418 3419 <div class="disclosure__panel has-motion"><ul class="main-nav__grandchild has-motion " role="list" style=""><li><a class="grandchild-nav__item main-nav__item" href="/collections/dies-presses-punches">Dies, Presses and Punches</a> 3420 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/dot-fasteners">DOT Fasteners</a> 3421 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/fasteners-and-grommets">Fasteners and Grommets</a> 3422 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/fastener-sets">Fastener Sets</a> 3423 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/industrial-and-upholstery-zippers">Zippers</a> 3424 </li><li><a class="grandchild-nav__item main-nav__item" href="/collections/tools-accessories">Tools and Accessories</a> 3425 </li></ul> 3426 </div> 3427 </details> 3428 </nav-menu></li></ul></div></div> 3429 </details></li><li>
3429<details> 3430 <summary class="main-nav__item--toggle relative js-nav-hover js-toggle"> 3431 <a class="main-nav__item main-nav__item--primary main-nav__item-content" href="#"> 3432 Company Links<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 3433 </a> 3434 </summary><div class="main-nav__child has-motion"> 3435 3436 <ul class="child-nav child-nav--dropdown"> 3437 <li class="md:hidden"> 3438 <button type="button" class="main-nav__item main-nav__item--back relative js-back"> 3439 <div class="main-nav__item-content text-start"> 3440 <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="m6.797 11.625 8.03-8.03 1.06 1.06-6.97 6.97 6.97 6.97-1.06 1.06z"/></svg> Back</div> 3441 </button> 3442 </li> 3443 3444 <li class="md:hidden"> 3445 <a href="#" class="main-nav__item child-nav__item large-text main-nav__item-header">Company Links</a> 3446 </li><li><a class="main-nav__item child-nav__item" 3447 href="/pages/contact">Contact Us</a></li><li><a class="main-nav__item child-nav__item" 3448 href="/pages/about-us">About Us</a></li><li><a class="main-nav__item child-nav__item" 3449 href="/pages/terms-conditions">Policies</a></li></ul></div> 3450 </details></li></ul> 3451 </nav></div> 3452 </details> 3453 </main-menu></header> 3454</store-header><link rel="stylesheet" href="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/navigation-mega-columns.css?v=138392974294765369581736781214" media="print" onload="this.media='all'"> 3455 3456 3457 3458 3459 3460</div><section id="shopify-section-sections--24043609358700__custom_liquid_3gXcpK" class="shopify-section shopify-section-group-header-group cc-custom-liquid"><div class="section relative section--full-width"> 3461 3462 3463 3464 3465 3466 <div data-promo-handle="fallsave" class="ecs-promo-strip container text-center flex-wrap flex-auto items-center justify-center gap-x-theme promo-strip__container cc-animate-init cc-animate-in" data-cc-animate=""> 3467 <div class="section__block rte promo-strip__rte"> 3468 <div class="metafield-rich_text_field"><p>A New Season Of Savings –<strong> 10% OFF</strong> orders $329+</p></div> 3469 </div> 3470 <link href="//outdoorfabriccentral.myshopify.com/cdn/shop/t/2/assets/discount-code.css?v=9084971361650302981736781214" rel="stylesheet" type="text/css" media="all"> 3471
3471<script src="//outdoorfabriccentral.myshopify.com/cdn/shop/t/2/assets/discount-code.js?v=67364963395034188621736781213" defer="defer"></script>
3471 3472 <div class="section__block promo-strip__discount shrink-0 text-center"> 3473 <discount-code class="discount-code inline-flex discount-code--small"> 3474 <div class="input-with-button relative"> 3475 <span class="discount-code__code input font-bold text-sm js-discount-code">FALLSAVE</span> 3476 <button class="discount-code__btn h-full btn btn--sm no-js-hidden js-copy-button"> <svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><g fill="none" fill-rule="evenodd"><path d="M0 0h24v24H0z"></path><path d="M16.363 1.25a2.75 2.75 0 0 1 2.745 2.582l.005.168h-1.5a1.25 1.25 0 0 0-1.122-1.244l-.128-.006H4a1.25 1.25 0 0 0-1.244 1.122L2.75 4v12.56c0 .648.492 1.18 1.122 1.244L4 17.81v1.5a2.75 2.75 0 0 1-2.745-2.582l-.005-.168V4a2.75 2.75 0 0 1 2.582-2.745L4 1.25h12.363z" fill="currentColor"></path><path d="M20 4.69H7.637a2.75 2.75 0 0 0-2.75 2.75V20a2.75 2.75 0 0 0 2.75 2.75H20A2.75 2.75 0 0 0 22.75 20V7.44A2.75 2.75 0 0 0 20 4.69zM7.637 6.19H20c.69 0 1.25.56 1.25 1.25V20c0 .69-.56 1.25-1.25 1.25H7.637c-.69 0-1.25-.56-1.25-1.25V7.44c0-.69.56-1.25 1.25-1.25z" fill="currentColor"></path><g fill="currentColor" fill-rule="nonzero"><path d="M17.03 12.909c.442 0 .8.363.8.81a.808.808 0 0 1-.7.806l-.1.006h-6.422a.806.806 0 0 1-.802-.811c0-.414.306-.755.701-.805l.101-.006h6.421z"></path><path d="M13.819 9.66c.408 0 .745.309.795.709l.006.101v6.5a.806.806 0 0 1-.801.81.805.805 0 0 1-.796-.71l-.006-.1v-6.5c0-.448.359-.81.802-.81z"></path></g></g></svg>Copy code</button> 3477 <div class="discount-code__success font-bold text-sm absolute top-0 left-0 right-0 bottom-0 overflow-hidden flex items-center justify-center text-theme-text js-copy-success" aria-hidden="true"> 3478 <span class="flex items-center justify-center"><svg style="width:24px;height:24px" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path fill="currentColor" d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m4.59-12.42L10 14.17l-2.59-2.58L6 13l4 4 8-8-1.41-1.42Z"></path></svg>Copied</span> 3479 </div> 3480 </div> 3481 </discount-code> 3482 </div> 3483 3484 3485 3486 3487 </div> 3488 3489 3490 3491 3492 3493 3494 3495 3496</div> 3497 3498 3499</section> 3500<!-- END sections: header-group --> 3501 3502 <main id="main-content"><div id="shopify-section-template--24043609948524__main" class="shopify-section cc-main-cart section section--template"><link href="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/cart-items.css?v=10866608773905452351736781213" rel="stylesheet" type="text/css" media="all" />
3503<script src="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/cart-note.js?v=126131321468449833931736781214" defer="defer"></script>
3503<div class="container"> 3504 <form class="cart form" id="cart" action="/cart" method="post"> 3505 <div class="cart__items"><h1 class="cart__title h2 mb-10 text-center js-cart-title">Your cart</h1><div id="free-shipping-notice" class="free-shipping-notice"></div> 3506 3507 3508 3509 <div class="alert mt-8 mb-8 bg-error-bg text-error-text" id="cart-errors" role="alert" hidden></div> 3510 3511 <cart-items id="cart-items" data-section="template--24043609948524__main" data-empty="true"><div class="cart-empty flex flex-col justify-center items-center h-full js-cart-empty"><svg width="24" height="24" viewBox="0 0 24 24" class="icon icon--cart" aria-hidden="true" focusable="false" role="presentation"><path fill="currentColor" d="M17 18a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2c0-1.11.89-2 2-2M1 2h3.27l.94 2H20a1 1 0 0 1 1 1c0 .17-.05.34-.12.5l-3.58 6.47c-.34.61-1 1.03-1.75 1.03H8.1l-.9 1.63-.03.12a.25.25 0 0 0 .25.25H19v2H7a2 2 0 0 1-2-2c0-.35.09-.68.24-.96l1.36-2.45L3 4H1V2m6 16a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2c0-1.11.89-2 2-2m9-7 2.78-5H6.14l2.36 5H16Z"/></svg><p>Your cart is empty</p><a class="btn btn--primary" href="/collections/all">Start shopping</a></div><p class="visually-hidden" id="cart-live-region-text" role="status" aria-live="polite"> 3512 Subtotal:$0.00 USD 3513</p> 3514 <p class="visually-hidden" id="cart-line-item-status" role="status" aria-live="polite" aria-hidden="true">Loading...</p></cart-items> 3515 3516 3517 3518</div></form> 3519</div> 3520</div><section id="shopify-section-template--24043609948524__custom_liquid_8VCw6H" class="shopify-section cc-custom-liquid"><div class="section relative section--full-width"><div class="container"> 3521 3522 <style> 3523 /* start - cart pretty print modal */ 3524 @media screen { 3525 :root { 3526 --border-strong: #c8c8cf; 3527 --preview-width: 980px; /* 980px */ 3528 --button-border-radius: 30px; 3529 } 3530 3531 html.cart-print-modal-active #main-content { 3532 position: relative; 3533 z-index: 40; 3534 } 3535 3536 html.cart-print-modal-active .needsclick { 3537 display: none !important; 3538 } 3539 3540 /* 3541 html.cart-print-modal-active #shopify-section-template--24043609948524__custom_liquid_8VCw6H, 3542 html.cart-print-modal-active #shopify-section-template--23954067030314__custom_liquid_6ndtFM { 3543 position: relative; 3544 z-index: 99999; 3545 }*/ 3546 3547 #pretty-print-preview-section.preview-section .preview-section-inner { 3548 width: var(--preview-width); 3549 display: grid; 3550 grid-template-columns: 250px 1fr; 3551 gap: 1rem; 3552 width: 1200px; 3553 margin: 0 auto; 3554 align-items: start; 3555 } 3556 3557 @media (max-width: 760px) { 3558 3559 } 3560 3561 #pretty-print-preview-section .pretty-print-preview-shell { 3562 padding: 2rem; 3563 } 3564 3565 /* modal */ 3566 .preview-section__modal-bar { 3567 /* display: flex; 3568 align-items: center; 3569 justify-content: space-between; */ 3570 gap: 1.2rem; 3571 margin: 0; 3572 } 3573 3574 html.is-cart.cart-print-modal-active .cc-animate-enabled [data-cc-animate] { 3575 opacity: 1 !important; 3576 } 3577 3578 .preview-section__modal-bar .preview-section__title { 3579 } 3580 3581 .preview-section__close { 3582 display: flex; 3583 z-index: 1; 3584 align-items: center; 3585 justify-content: center; 3586 width: 40px; 3587 height: 40px; 3588 padding: 0.9rem !important; 3589 border: 1px solid var(--border-strong); 3590 border-radius: var(--button-border-radius, 30px); 3591 background: #fff; 3592 color: #222 !important; 3593 font-size: 1.6rem !important; 3594 font-weight: 800 !important; 3595 text-shadow: 3596 1px 1px 1px rgba(0, 0, 0, 0.2), 3597 -1px -1px 1px rgba(0, 0, 0, 0.2); 3598 cursor: pointer; 3599 } 3600 3601 .preview-section__force-page-break { 3602 display: flex; 3603 z-index: 1; 3604 align-items: center; 3605 justify-content: center; 3606 width: 40px; 3607 height: 40px; 3608 padding: 0.9rem !important; 3609 border: 1px solid var(--border-strong); 3610 border-radius: var(--button-border-radius, 30px); 3611 background: #fff; 3612 color: #222 !important; 3613 font-size: 1.6rem !important; 3614 font-weight: 800 !important; 3615 text-shadow: 3616 1px 1px 1px rgba(0, 0, 0, 0.2), 3617 -1px -1px 1px rgba(0, 0, 0, 0.2); 3618 cursor: pointer; 3619 } 3620 3621 #pretty-print-preview-section [data-force-page-break="false"].preview-section__modal-bar .preview-section__force-page-break { 3622 /* border-color: #111; 3623 background: #333; 3624 color: #FFF !important; */ 3625 } 3626 3627 #pretty-print-preview-section .preview-section__modal-bar .preview-section__force-page-break svg { 3628 display: none; 3629 } 3630 3631 #pretty-print-preview-section [data-force-page-break="true"].preview-section__modal-bar .preview-section__force-page-break #svg-force-page-break { 3632 display: block; 3633 } 3634 3635 #pretty-print-preview-section [data-force-page-break="false"].preview-section__modal-bar .preview-section__force-page-break #svg-remove-page-break { 3636 display: block; 3637 } 3638 3639 #pretty-print-preview-section .preview-section__modal-bar .preview-section__force-page-break svg path.svg-page-break-1 { 3640 fill: none; 3641 stroke: rgb(252 46 118); 3642 stroke-linecap: round; 3643 stroke-linejoin: round; 3644 stroke-width: 2; 3645 } 3646 3647 /* #pretty-print-preview-section [data-force-page-break="false"].preview-section__modal-bar .preview-section__force-page-break svg path.svg-page-break-1 { 3648 stroke: rgb(252 46 118); 3649 } */ 3650 3651 #pretty-print-preview-section .preview-section__modal-bar .preview-section__force-page-break svg path.svg-page-break-2 { 3652 fill: none; 3653 stroke: rgb(0, 0, 0); 3654 stroke-linecap: round; 3655 stroke-linejoin: round; 3656 stroke-width: 2; 3657 } 3658 3659 /* #pretty-print-preview-section [data-force-page-break="false"].preview-section__modal-bar .preview-section__force-page-break svg path.svg-page-break-2 { 3660 stroke: #FFF; 3661 } */ 3662 3663 #pretty-print-preview-section .preview-section__modal-bar .preview-section__force-page-break svg path.svg-page-break-3 { 3664 fill: none; 3665 stroke: rgb(0, 0, 0); 3666 stroke-linecap: round; 3667 stroke-linejoin: round; 3668 stroke-width: 2; 3669 } 3670 3671 /* #pretty-print-preview-section [data-force-page-break="false"].preview-section__modal-bar .preview-section__force-page-break svg path.svg-page-break-3 { 3672 stroke: #FFF; 3673 } */ 3674 3675 #pretty-print-preview-section .preview-section__modal-bar .preview-section__force-page-break svg polygon.svg-page-break-4 { 3676 fill: none; 3677 stroke: rgb(0, 0, 0); 3678 stroke-linecap: round; 3679 stroke-linejoin: round; 3680 stroke-width: 2; 3681 } 3682 3683 /* #pretty-print-preview-section [data-force-page-break="false"].preview-section__modal-bar .preview-section__force-page-break svg polygon.svg-page-break-4 { 3684 stroke: #FFF; 3685 } */ 3686 3687 html.cart-print-modal-active, 3688 html.cart-print-modal-active body { 3689 overflow: hidden; 3690 } 3691 3692 #pretty-print-preview-section.preview-section { 3693 display: none; 3694 position: fixed; 3695 inset: 0; 3696 z-index: 0;/* 99999 */ 3697 max-width: none; 3698 width: 100%; 3699 height: 100dvh; 3700 margin: 0; 3701 padding: 0 0 2rem 0; 3702 border: 0; 3703 border-radius: 0; 3704 background: rgba(239, 239, 241, 0.98); 3705 overflow: auto; 3706 opacity: 0; 3707 visibility: hidden; 3708 pointer-events: none; 3709 transform: scale(0.985); 3710 transform-origin: center center; 3711 transition: 3712 opacity 180ms ease, 3713 transform 220ms ease, 3714 visibility 0s linear 220ms; 3715 } 3716 3717 #pretty-print-preview-section .preview-section__modal-bar,
3718 #pretty-print-preview-section .print-controls, 3719 #pretty-print-preview-section.preview-section .preview-section-inner, 3720 #pretty-print-preview-section .pretty-print-preview-shell { 3721 opacity: 0; 3722 transform: translateY(14px); 3723 transition: 3724 opacity 220ms ease, 3725 transform 260ms ease; 3726 } 3727 3728 html.cart-print-modal-active #pretty-print-preview-section.preview-section .preview-section-inner { 3729 display: grid; 3730 grid-template-columns: 350px 1fr; 3731 gap: 1rem; 3732 width: 1200px; 3733 margin: 0 auto; 3734 align-items: start; 3735 opacity: 1; 3736 visibility: visible; 3737 transition: 3738 opacity 180ms ease, 3739 transform 220ms ease, 3740 visibility 0s linear 0s; 3741 } 3742 3743 #pretty-print-preview-section .preview-section__title { 3744 margin: 0; 3745 flex: 1 1 auto; 3746 margin: 1rem 0 2rem; 3747 text-align: center; 3748 font-size: 16px; 3749 font-weight: 800; 3750 text-transform: uppercase; 3751 } 3752 3753 html.cart-print-modal-active #pretty-print-preview-section.preview-section { 3754 z-index: 99999; 3755 position: fixed; 3756 display: block; 3757 opacity: 1; 3758 visibility: visible; 3759 pointer-events: auto; 3760 transform: scale(1); 3761 transition: 3762 opacity 180ms ease, 3763 transform 220ms ease, 3764 visibility 0s linear 0s; 3765 } 3766 3767 html.cart-print-modal-active #pretty-print-preview-section .preview-section__modal-bar { 3768 position: sticky; 3769 top: 0rem; 3770 z-index: 2; 3771 padding: 0 0 7rem 0; 3772 opacity: 1; 3773 transform: translateY(0); 3774 transition-delay: 40ms; 3775 background: transparent; /* rgba(239, 239, 241, 0.98) */ 3776 display: grid; 3777 } 3778 3779 /* pretty print controls */ 3780 3781 html.is-cart h1.cart__title .print-controls.print-controls-button, 3782 html.is-cart .print-controls.print-controls-button { 3783 display: inline-block; 3784 margin-bottom: 2rem; 3785 } 3786 3787 html.is-cart h1.cart__title .print-controls.print-controls-button { 3788 display: inline-block; 3789 position: relative; 3790 top: -0.5rem; 3791 margin-left: 2rem; 3792 margin-bottom: 0; 3793 } 3794 3795 html.cart-print-modal-active #pretty-print-preview-section .print-controls { 3796 display: grid; 3797 grid-template-columns: 1fr; 3798 gap: 0; 3799 width: 100%; /* var(--preview-width) */ 3800 /*position: sticky; 3801 top: 0; 3802 z-index: 1;*/ 3803 padding: 1.5rem; 3804 margin: 0 auto; 3805 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); 3806 background: #ffffff; 3807 border-radius: var(--radius); 3808 opacity: 1; 3809 transform: translateY(0); 3810 transition-delay: 80ms; 3811 } 3812 3813 .print-controls details { 3814 padding: 0; 3815 margin: 0; 3816 position: relative; 3817 border-radius: 5px; 3818 border-bottom: 1px solid #ddd; 3819 } 3820 3821 .print-controls details[open] { 3822 padding-bottom: 1.3rem; 3823 } 3824 3825 .print-controls details:first-of-type { 3826 margin-top: -5px; 3827 } 3828 3829 .print-controls details summary { 3830 position: relative; 3831 padding: 1.5rem 5px; 3832 display: flex; 3833 font-size: 12px; 3834 font-weight: 700; 3835 line-height: 1.2rem; 3836 color: #4f4f4f; 3837 cursor: pointer; 3838 align-items: center; 3839 transition: color 0.3s 0s; 3840 } 3841 3842 .print-controls details[open] summary { 3843 padding-bottom: 1rem; 3844 } 3845 3846 .print-controls details summary:has(+ .is-accordion-content div .is-invalid) { 3847 color: #e74c3c; 3848 } 3849 3850 .print-controls details summary:hover { 3851 color: #111; 3852 transition: color 0.3s 0s; 3853 } 3854 3855 .print-controls details summary svg { 3856 content: ''; 3857 position: absolute; 3858 top: calc(50%); 3859 left: auto; 3860 right: 2px; 3861 width: 16px; 3862 height: 16px; 3863 border-top-color: #666; 3864 /* background: url(/cdn/shop/files/fp-icon-arrow.svg?v=1749735196) no-repeat center center; */ 3865 -webkit-transform: translateY(-50%) rotate(0deg); 3866 -ms-transform: translateY(-50%) rotate(0deg); 3867 transform: translateY(-50%) rotate(0); 3868 -webkit-transition: -webkit-transform 0.3s; 3869 transition: transform 0.2s; 3870 } 3871
3872 .print-controls details[open] summary svg { 3873 -webkit-transform: translateY(-50%) rotate(180deg); 3874 -ms-transform: translateY(-50%) rotate(180deg); 3875 transform: translateY(-50%) rotate(180deg); 3876 -webkit-transition: -webkit-transform 0.3s; 3877 transition: transform 0.2s; 3878 } 3879 3880 .print-controls details summary svg .st0 { 3881 fill: #8d8a8a; 3882 transition: fill 0.3s 0s; 3883 } 3884 3885 .print-controls details summary:hover svg .st0 { 3886 fill: #111; 3887 transition: fill 0.3s 0s; 3888 } 3889 3890 .print-controls .print-controls--content { 3891 display: grid; 3892 grid-template-columns: 1fr 1fr; 3893 gap: 1rem; 3894 margin-top: 5px; 3895 } 3896 3897 .print-controls .control-field { 3898 display: grid; 3899 gap: 6px; 3900 /* grid-column: span 4; */ 3901 } 3902 3903 #pretty-print-preview-section .print-controls .full-width-col { 3904 grid-column: span 2; 3905 } 3906 3907 #pretty-print-preview-section .print-controls .preview-section__buttons { 3908 /* grid-column: span 4; 3909 display: flex; 3910 flex-direction: column; */ 3911 display: grid; 3912 grid-template-columns: 38px 1fr 38px; 3913 justify-content: center; 3914 gap: 1rem; 3915 border-bottom: 1px solid #ddd; 3916 margin-bottom: 0.5rem; 3917 padding-bottom: 1.3rem; 3918 } 3919 3920 #pretty-print-preview-section [data-mode='email'][data-step='0'].preview-section__modal-bar .preview-section__buttons { 3921 /*display: none;*/ 3922 padding-bottom: 0; 3923 } 3924 3925 #pretty-print-preview-section [data-mode='email'][data-step='0'].preview-section__modal-bar .preview-section__buttons button#open-print-preview-fields, 3926 #pretty-print-preview-section [data-mode='email'][data-step='0'].preview-section__modal-bar .preview-section__buttons button.force-break-print-preview { 3927 display: none; 3928 } 3929 3930 #pretty-print-preview-section [data-mode='email'][data-step='0'].preview-section__modal-bar .preview-section__buttons button#close-print-preview-modal{ 3931 position: absolute; 3932 left: -5rem; 3933 top: 0rem; 3934 } 3935 3936 .print-controls .control-label { 3937 font-size: 12px; 3938 font-weight: 800; 3939 color: #2c3140; 3940 display: none; 3941 } 3942 3943 .print-controls .input, 3944 .print-controls .textarea { 3945 width: 100%; 3946 border: 1px solid var(--border-strong); 3947 border-width: 1px !important; 3948 border-radius: 10px; 3949 background: #fff; 3950 color: var(--text); 3951 padding: 11px 12px; 3952 font-size: 11px; 3953 } 3954 3955 .print-controls .textarea { 3956 min-height: 6.5rem; 3957 resize: vertical; 3958 } 3959 3960 .print-controls .btn { 3961 appearance: none; 3962 border: 1px solid var(--border-strong); 3963 background: #fff; 3964 color: var(--text); 3965 border-radius: var(--button-border-radius, 30px); 3966 padding: 12px 14px; 3967 font-size: 1.4rem; 3968 font-weight: 800; 3969 cursor: pointer; 3970 transition: 3971 transform 160ms var(--ease), 3972 border-color 160ms ease, 3973 box-shadow 160ms ease, 3974 opacity 160ms ease; 3975 } 3976 3977 .print-controls .btn--primary { 3978 /* background: #111; 3979 color: #fff; 3980 text-decoration: none; 3981 border-color: #111; 3982 text-align: center; 3983 width: 100%; 3984 transition: transform 160ms var(--ease), border-color 160ms ease, box-shadow 160ms ease, opacity 160ms ease; */ 3985 } 3986 3987 h1 .print-controls.print-controls-button .workflow-action, 3988 html.is-cart .print-controls.print-controls-button .workflow-action { 3989 /* .btn--primary */ 3990 text-decoration: none; 3991 padding: 12px 3rem; 3992 /* background: #111; 3993 color: #FFF; 3994 appearance: none; 3995 border: 1px solid var(--border-strong); 3996 border-radius: var(--button-border-radius, 30px); 3997 font-size: 1.4rem; 3998 font-weight: 800; 3999 cursor: pointer; 4000 transform: translateY(0); 4001 transition: transform 160ms var(--ease), background-color 350ms ease, border-color 160ms ease, box-shadow 160ms ease, opacity 160ms ease;*/ 4002 } 4003
4004 h1 .print-controls.print-controls-button .workflow-action:hover, 4005 html.is-cart .print-controls.print-controls-button .workflow-action:hover { 4006 transform: translateY(-1px); 4007 border-color: #111; 4008 box-shadow: 0 8px 18px rgba(20, 24, 32, 0.09); 4009 } 4010 4011 [data-mode='email'] #open-print-preview-fields { 4012 /* opacity: 0.12; */ 4013 appearance: none; 4014 border: 1px solid var(--border-strong); 4015 background: #fff; 4016 color: var(--text); 4017 border-radius: var(--button-border-radius, 30px); 4018 padding: 12px 14px; 4019 font-size: 1.4rem; 4020 font-weight: 800; 4021 cursor: pointer; 4022 } 4023 4024 [data-mode='email'] #open-print-preview-fields:hover { 4025 opacity: 1; 4026 } 4027 4028 #pretty-print-preview-section .preview-section__note { 4029 margin: 0 0 18px; 4030 color: var(--muted); 4031 font-size: 12px; 4032 } 4033 4034 /* print preview shell */ 4035 4036 html.cart-print-modal-active #pretty-print-preview-section .pretty-print-preview-shell { 4037 margin: 0 auto; 4038 background: #fff; 4039 border: 1px dashed #d6d6db; 4040 border-radius: var(--radius); 4041 width: 100%; 4042 max-width: var(--preview-width); 4043 min-height: calc(100dvh - 24rem); 4044 padding: 2.268rem;/* equals 0.6cm */ /* 1.5rem */ 4045 box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08); 4046 opacity: 1; 4047 transform: translateY(0); 4048 transition-delay: 120ms; 4049 } 4050 } 4051 </style> 4052 <style> 4053 /* START - EMAIL DASHBOARD STYLES */ 4054 @media screen { 4055 :root { 4056 --card-bg-soft: #f8fafc; 4057 --text: #15171c; 4058 --muted: #707786; 4059 --border: #dde1e8; 4060 --border-strong: #c9ced8; 4061 --accent: #111111; 4062 --success: #18a058; 4063 --success-soft: #e8f8ef; 4064 --warning: #c77700; 4065 --warning-soft: #fff5df; 4066 --danger: #d33b36; 4067 --danger-soft: #fff0ef; 4068 --shadow: 0 8px 24px rgba(0, 0, 0, 0.08); /* 0 22px 60px rgba(20, 24, 32, 0.14) */ 4069 --card-bg: #ffffff; 4070 --shadow-soft: 0 10px 30px rgba(20, 24, 32, 0.08); 4071 --radius: 12px; 4072 --ease: cubic-bezier(0.22, 0.75, 0.15, 1); 4073 } 4074 4075 #pretty-print-preview-section .quote-workflow { 4076 position: relative; 4077 overflow: hidden; 4078 border: 1px solid rgba(221, 225, 232, 0.95); 4079 border-radius: var(--radius); 4080 background: var(--card-bg); 4081 box-shadow: var(--shadow-soft); 4082 } 4083 4084 .quote-pretty-print-banner-img { 4085 border-radius: var(--radius); 4086 max-width: 100%; 4087 height: auto; 4088 filter: grayscale(60%); 4089 } 4090 4091 #pretty-print-preview-section .quote-workflow__header { 4092 position: relative; 4093 padding: 18px 18px 16px; 4094 background: linear-gradient(135deg, rgba(17, 17, 17, 0.96), rgba(42, 47, 58, 0.96)), #111; 4095 color: #fff; 4096 display: none; 4097 } 4098 4099 #pretty-print-preview-section .quote-workflow__kicker { 4100 margin: 0 0 6px; 4101 font-size: 11px; 4102 font-weight: 900; 4103 letter-spacing: 0.14em; 4104 text-transform: uppercase; 4105 color: rgba(255, 255, 255, 0.62); 4106 } 4107 4108 #pretty-print-preview-section .quote-workflow__title { 4109 margin: 0; 4110 font-size: 18px; 4111 line-height: 1.15; 4112 font-weight: 900; 4113 letter-spacing: -0.03em; 4114 } 4115 4116 #pretty-print-preview-section .quote-workflow__sub { 4117 margin: 7px 0 0; 4118 font-size: 12px; 4119 line-height: 1.45; 4120 color: rgba(255, 255, 255, 0.72); 4121 } 4122 4123 #pretty-print-preview-section .quote-workflow__progress { 4124 height: 8px; 4125 background: rgba(255, 255, 255, 0.16); 4126 overflow: hidden; 4127 } 4128 4129 #pretty-print-preview-section .quote-workflow__progress-bar { 4130 width: 0%; 4131 height: 100%; 4132 background: linear-gradient(90deg, #7af0ac, #18a058); 4133 border-radius: 0; /* 999px */ 4134 transition: width 420ms var(--ease); 4135 } 4136 4137 #pretty-print-preview-section .quote-workflow__meta { 4138 display: flex; 4139 justify-content: space-between; 4140 gap: 12px; 4141 padding: 12px 18px; 4142 border-bottom: 1px solid var(--border); 4143 background: var(--card-bg-soft); 4144 font-size: 12px; 4145 color: var(--muted); 4146 } 4147 4148 #pretty-print-preview-section .quote-workflow__meta strong { 4149 color: var(--text); 4150 } 4151 4152 #pretty-print-preview-section .preview-section__modal-bar[data-mode='quick'] .quote-workflow__progress, 4153 #pretty-print-preview-section .preview-section__modal-bar[data-mode='quick'] .quote-workflow__meta { 4154 display: none; 4155 } 4156 4157 #pretty-print-preview-section .quote-workflow__helpdesk-toggle { 4158 display: grid; 4159 grid-template-columns: 18px minmax(0, 1fr); 4160 gap: 9px; 4161 align-items: start; 4162 padding: 12px 18px; 4163 border-bottom: 1px solid var(--border); 4164 background: #ffffff; 4165 font-size: 12px; 4166 line-height: 1.35; 4167 font-weight: 900; 4168 color: #20242d; 4169 cursor: pointer; 4170 } 4171
4172 #pretty-print-preview-section .print-controls .quote-workflow__helpdesk-toggle { 4173 padding: 1.3rem 0 0 1px; 4174 border: none; 4175 } 4176 4177 #pretty-print-preview-section .quote-workflow__helpdesk-toggle input { 4178 width: 18px; 4179 height: 18px; 4180 margin: 0; 4181 accent-color: #222; /* var(--success) */ 4182 } 4183 4184 #pretty-print-preview-section .quote-workflow__helpdesk-toggle span { 4185 min-width: 0; 4186 pointer-events: none; 4187 } 4188 4189 #pretty-print-preview-section .quote-workflow__helpdesk-toggle small { 4190 display: block; 4191 margin-top: 3px; 4192 color: var(--muted); 4193 font-size: 11px; 4194 font-weight: 400; 4195 } 4196 4197 #pretty-print-preview-section .quote-workflow__list { 4198 display: grid; 4199 gap: 0.7rem; 4200 padding: 6px; 4201 margin: 0; 4202 list-style: none; 4203 } 4204 4205 #pretty-print-preview-section .quote-step { 4206 position: relative; 4207 display: grid; 4208 grid-template-columns: 34px minmax(0, 1fr); 4209 gap: 10px; 4210 align-items: start; 4211 padding: 12px; 4212 border-radius: var(--radius); 4213 background: transparent; 4214 transition: 4215 background 220ms ease, 4216 transform 220ms var(--ease), 4217 opacity 220ms ease; 4218 } 4219 4220 #pretty-print-preview-section .quote-step + .quote-step { 4221 margin-top: 2px; 4222 } 4223 4224 #pretty-print-preview-section .quote-step.is-complete { 4225 background: var(--success-soft); 4226 animation: stepCompletePop 360ms var(--ease); 4227 } 4228 4229 #pretty-print-preview-section .quote-step.is-active { 4230 background: var(--warning-soft); 4231 } 4232 4233 #pretty-print-preview-section .quote-step.is-error { 4234 background: var(--danger-soft); 4235 } 4236 4237 #pretty-print-preview-section .quote-step.is-locked { 4238 opacity: 0.62; 4239 } 4240 4241 #pretty-print-preview-section .quote-step__icon { 4242 position: relative; 4243 width: 28px; 4244 height: 28px; 4245 border: 2px solid var(--border-strong); 4246 border-radius: 50%; 4247 background: #fff; 4248 transition: 4249 border-color 220ms ease, 4250 background 220ms ease, 4251 transform 220ms var(--ease), 4252 box-shadow 220ms ease; 4253 } 4254 4255 #pretty-print-preview-section .quote-step.is-active .quote-step__icon { 4256 border-color: var(--warning); 4257 background: #fff; 4258 box-shadow: 0 0 0 5px rgba(199, 119, 0, 0.12); 4259 } 4260 4261 #pretty-print-preview-section .quote-step.is-error .quote-step__icon { 4262 border-color: var(--danger); 4263 background: #fff; 4264 box-shadow: 0 0 0 5px rgba(211, 59, 54, 0.12); 4265 } 4266 4267 #pretty-print-preview-section .quote-step.is-complete:not(.is-active) .quote-step__icon { 4268 border-color: var(--success); 4269 background: var(--success); 4270 transform: scale(1.03); 4271 } 4272 4273 #pretty-print-preview-section .quote-step__icon::before { 4274 content: ''; 4275 position: absolute; 4276 left: 8px; 4277 top: 4px; 4278 width: 5px; 4279 height: 10px; 4280 border-right: 3px solid #fff; 4281 border-bottom: 3px solid #fff; 4282 opacity: 0; 4283 transform: rotate(45deg) scale(0.55); 4284 transform-origin: center; 4285 } 4286 4287 #pretty-print-preview-section .quote-step.is-complete .quote-step__icon::before { 4288 animation: checkDraw 340ms var(--ease) forwards; 4289 animation-delay: 90ms; 4290 /*left: 8.6px; 4291 top: 4.5px; 4292 border-right: 3px solid #fff; 4293 border-bottom: 3px solid #fff; 4294 width: 7px; 4295 height: 12px;*/ 4296 } 4297 4298 #pretty-print-preview-section .quote-step.is-complete > .quote-step__icon::before { 4299 animation: checkDraw 340ms var(--ease) forwards; 4300 animation-delay: 90ms; 4301 /*left: 6.6px; 4302 top: 2.5px;*/ 4303 left: 8.6px; 4304 top: 4.5px; 4305 border-right: 3px solid #fff; 4306 border-bottom: 3px solid #fff; 4307 width: 7px; 4308 height: 12px; 4309 } 4310 4311 #pretty-print-preview-section .quote-step__icon::after { 4312 content: ''; 4313 position: absolute; 4314 inset: -8px; 4315 border: 2px solid var(--success); 4316 border-radius: 50%; 4317 opacity: 0; 4318 transform: scale(0.65); 4319 } 4320 4321 #pretty-print-preview-section .quote-step.is-complete .quote-step__icon::after { 4322 animation: checkPulse 520ms ease-out forwards; 4323 } 4324 4325 #pretty-print-preview-section .quote-step.is-active .quote-step__icon-dot, 4326 .quote-step.is-error .quote-step__icon-dot { 4327 position: absolute; 4328 left: 50%; 4329 top: 50%; 4330 width: 8px; 4331 height: 8px; 4332 border-radius: 50%; 4333 transform: translate(-50%, -50%); 4334 } 4335 4336 #pretty-print-preview-section .quote-step.is-active .quote-step__icon-dot { 4337 background: var(--warning); 4338 animation: activeDotPulse 900ms ease-in-out infinite; 4339 } 4340 4341 #pretty-print-preview-section .quote-step.is-error .quote-step__icon-dot { 4342 background: var(--danger); 4343 } 4344 4345 #pretty-print-preview-section .quote-step__body { 4346 min-width: 0; 4347 padding-top: 1px; 4348 } 4349 4350 #pretty-print-preview-section .quote-step__label { 4351 display: block; 4352 font-size: 13px; 4353 line-height: 1.25; 4354 font-weight: 900; 4355 color: #20242d; 4356 transition: color 180ms ease; 4357 } 4358 4359 #pretty-print-preview-section .quote-step__hint { 4360 display: block; 4361 margin-top: 3px; 4362 font-size: 11px; 4363 line-height: 1.35; 4364 color: var(--muted); 4365 transition: color 180ms ease; 4366 } 4367 4368 #pretty-print-preview-section .quote-step.is-complete .quote-step__label { 4369 color: #12683b; 4370 } 4371 4372 #pretty-print-preview-section .quote-step.is-active .quote-step__label, 4373 #pretty-print-preview-section .quote-step.is-active .quote-step__hint { 4374 color: #8b5200; 4375 } 4376 4377 #pretty-print-preview-section .quote-step.is-error .quote-step__label, 4378 #pretty-print-preview-section .quote-step.is-error .quote-step__hint { 4379 color: #9c2421; 4380 } 4381 4382 #pretty-print-preview-section .review-panel { 4383 display: none; 4384 gap: 10px; 4385 margin-top: 12px; 4386 margin-left: -4.5rem; 4387 padding: 0; 4388 transform-origin: top; 4389 animation: reviewPanelIn 280ms var(--ease); 4390 } 4391 4392 #pretty-print-preview-section .review-panel:has(> .review-confirm) { 4393 padding: 12px; 4394 border: 1px solid var(--border); 4395 border-radius: 14px; 4396 background: rgba(255, 255, 255, 0.74); 4397 } 4398 4399 #pretty-print-preview-section .quote-step.is-complete .quote-print-panel, 4400 #pretty-print-preview-section .quote-step.is-complete .quote-attach-panel:not(.quote-reset-panel) { 4401 display: none; 4402 } 4403 4404 #pretty-print-preview-section .quote-step[data-step-key='printDialog'].is-complete, 4405 #pretty-print-preview-section .quote-step[data-step-key='fileAttached'].is-complete { 4406 cursor: pointer; 4407 } 4408 4409 #pretty-print-preview-section .quote-step[data-step-key='printDialog'].is-complete .quote-print-panel, 4410 #pretty-print-preview-section .quote-step[data-step-key='fileAttached'].is-complete .quote-attach-panel { 4411 cursor: default; 4412 } 4413 4414 #pretty-print-preview-section .quote-step.is-complete.is-manually-open .quote-print-panel, 4415 #pretty-print-preview-section .quote-step.is-complete.is-manually-open .quote-attach-panel:not(.quote-reset-panel) { 4416 display: grid; 4417 } 4418 4419 #pretty-print-preview-section .quote-step.is-active .review-panel, 4420 #pretty-print-preview-section li.is-complete:last-of-type .review-panel.quote-reset-panel { 4421 display: grid; 4422 } 4423 4424 #pretty-print-preview-section .review-panel__title { 4425 display: flex; 4426 justify-content: space-between; 4427 gap: 10px; 4428 margin: 0; 4429 font-size: 12px; 4430 font-weight: 900; 4431 color: #20242d; 4432 } 4433 4434 #pretty-print-preview-section .review-panel__badge { 4435 display: inline-flex; 4436 align-items: center; 4437 flex: 0 0 auto; 4438 padding: 3px 7px; 4439 border-radius: 999px; 4440 background: var(--warning-soft); 4441 color: #8b5200; 4442 font-size: 10px; 4443 font-weight: 900; 4444 text-transform: uppercase; 4445 letter-spacing: 0.05em; 4446 } 4447 4448 #pretty-print-preview-section .review-panel__badge.is-ready { 4449 background: var(--success-soft); 4450 color: #12683b; 4451 } 4452 4453 #pretty-print-preview-section .review-field-list { 4454 display: grid !important; 4455 gap: 6px !important; 4456 margin: 0 !important; 4457 padding: 0 !important; 4458 list-style: none !important; 4459 } 4460 4461 #pretty-print-preview-section .review-field { 4462 display: grid !important; 4463 grid-template-columns: minmax(0, 99px) minmax(0, 1fr) 16px; 4464 gap: 4px; 4465 align-items: baseline; 4466 /* center */ 4467 padding: 7px 8px !important; 4468 border: 1px solid var(--border) !important; 4469 border-radius: 6px; 4470 background: #fff; 4471 font-size: 11px; 4472 cursor: pointer; 4473 } 4474 4475 #pretty-print-preview-section .review-field:hover { 4476 border-color: rgba(47, 111, 237, 0.35); 4477 box-shadow: 0 0 0 2px rgba(47, 111, 237, 0.08); 4478 } 4479 4480 #pretty-print-preview-section .review-field.is-valid { 4481 border-color: rgba(24, 160, 88, 0.3); 4482 background: rgba(232, 248, 239, 0.55); 4483 } 4484 4485 #pretty-print-preview-section .review-field.is-invalid { 4486 border-color: rgba(211, 59, 54, 0.32); 4487 background: rgba(255, 240, 239, 0.55); 4488 } 4489 4490 #pretty-print-preview-section .review-field__label { 4491 min-width: 0; 4492 font-weight: 700; 4493 color: #343946; 4494 text-align: right; 4495 } 4496 4497 #pretty-print-preview-section .review-field__label span { 4498 color: var(--danger); 4499 } 4500 4501 #pretty-print-preview-section .review-field__value { 4502 min-width: 0; 4503 overflow: hidden; 4504 color: #20242d; 4505 /*text-overflow: ellipsis; 4506 white-space: nowrap;*/ 4507 } 4508 4509 #pretty-print-preview-section .review-field__status { 4510 display: inline-flex; 4511 align-items: center; 4512 justify-content: center; 4513 width: 16px; 4514 height: 16px; 4515 border-radius: 50%; 4516 background: var(--danger-soft); 4517 color: var(--danger); 4518 font-size: 10px; 4519 font-weight: 900; 4520 } 4521 4522 #pretty-print-preview-section .review-field.is-valid .review-field__status { 4523 background: var(--success); 4524 color: #fff; 4525 } 4526 4527 #pretty-print-preview-section .review-confirm { 4528 display: grid; 4529 grid-template-columns: 18px minmax(0, 1fr); 4530 gap: 9px; 4531 align-items: anchor-center; 4532 padding: 11px; 4533 border: 1px solid var(--border-strong); 4534 border-radius: var(--radius); 4535 background: #fff; 4536 font-size: 12px; 4537 line-height: 1.35; 4538 font-weight: 400; 4539 color: #20242d; 4540 cursor: pointer; 4541 transition: 4542 border-color 160ms ease, 4543 background 160ms ease, 4544 opacity 160ms ease; 4545 } 4546 4547 #pretty-print-preview-section .review-confirm.is-disabled { 4548 opacity: 0.52; 4549 } 4550 4551 #pretty-print-preview-section .review-confirm.is-disabled-visual { 4552 opacity: 0.52; 4553 cursor: pointer; 4554 } 4555 4556 #pretty-print-preview-section .review-confirm-message { 4557 margin: -4px 0 0; 4558 color: var(--danger); 4559 line-height: 1.35; 4560 font-weight: 400; 4561 border-color: rgba(211, 59, 54, 0.32); 4562 background: rgba(255, 240, 239, 0.55); 4563 display: grid; 4564 grid-template-columns: 1fr; 4565 gap: 8px; 4566 align-items: baseline; 4567 padding: 7px 8px; 4568 border-radius: 6px; 4569 font-size: 11px; 4570 } 4571 4572 #pretty-print-preview-section .review-field.is-shaking { 4573 animation: reviewFieldShake 360ms var(--ease); 4574 } 4575 4576 #pretty-print-preview-section .review-confirm.is-ready { 4577 border-color: rgba(24, 160, 88, 0.45); 4578 /* background: rgba(232, 248, 239, 0.48); */ 4579 } 4580 4581 #pretty-print-preview-section .review-confirm input { 4582 width: 18px; 4583 height: 18px; 4584 margin: 0; 4585 accent-color: var(--success); 4586 } 4587 4588 #pretty-print-preview-section .quote-workflow__actions { 4589 display: grid; 4590 grid-template-columns: 1fr; 4591 gap: 8px; 4592 padding: 14px; 4593 border-top: 1px solid var(--border); 4594 background: var(--card-bg-soft); 4595 } 4596 4597 #pretty-print-preview-section .quote-workflow__actions-row { 4598 display: grid; 4599 grid-template-columns: 1fr 1fr; 4600 gap: 8px; 4601 } 4602 4603 #pretty-print-preview-section .workflow-action { 4604 border: 1px solid var(--border-strong); 4605 border-radius: var(--button-border-radius, 30px); 4606 padding: 12px 14px; 4607 background: #fff; 4608 color: #15171c; 4609 font-size: 14px; 4610 font-weight: 900; 4611 cursor: pointer; 4612 transition: 4613 transform 160ms var(--ease), 4614 border-color 160ms ease, 4615 box-shadow 160ms ease, 4616 opacity 160ms ease; 4617 } 4618 4619 #pretty-print-preview-section #open-print-preview-fields { 4620 font-size: 13px; 4621 } 4622 4623 #pretty-print-preview-section .quote-print-panel__actions { 4624 display: grid; 4625 grid-template-columns: minmax(0, 1fr) 38px; 4626 gap: 1rem; 4627 align-items: center; 4628 } 4629 4630 4631 #pretty-print-preview-section [data-continue-review-with-current-attachment].workflow-action { 4632 } 4633 4634 #pretty-print-preview-section .workflow-action:hover { 4635 transform: translateY(-1px); 4636 border-color: #111; 4637 box-shadow: 0 8px 18px rgba(20, 24, 32, 0.09); 4638 } 4639 4640 #pretty-print-preview-section .workflow-action:disabled { 4641 opacity: 0.45; 4642 transform: none; 4643 box-shadow: none; 4644 border-color: var(--border-strong); 4645 } 4646 4647 #pretty-print-preview-section .workflow-action.workflow-action--send:disabled { 4648 opacity: 1; 4649 } 4650 4651 #pretty-print-preview-section .workflow-action-btn { 4652 width: 100%; 4653 border: 1px solid #111; 4654 border-radius: var(--button-border-radius, 30px); 4655 padding: 12px 14px; 4656 background: #111; 4657 color: #fff; 4658 font-size: 14px; 4659 font-weight: 900; 4660 cursor: pointer; 4661 transition: 4662 transform 160ms var(--ease), 4663 box-shadow 160ms ease, 4664 opacity 160ms ease; 4665 } 4666 4667 #pretty-print-preview-section .workflow-action-btn:hover { 4668 transform: translateY(-1px); 4669 box-shadow: 0 10px 22px rgba(17, 17, 17, 0.16); 4670 } 4671 4672 #pretty-print-preview-section .workflow-action-btn:disabled { 4673 opacity: 0.45; 4674 transform: none; 4675 box-shadow: none; 4676 } 4677 4678 #pretty-print-preview-section .workflow-action--primary { 4679 /* background: #f38322; 4680 color: #fff; 4681 border-color: #f38322;*/ 4682 background: #333; 4683 color: #FFF; 4684 border-color: #111; 4685 } 4686 4687 #pretty-print-preview-section .workflow-action.workflow-action--primary:hover { 4688 /* transform: none; 4689 border-color: #ce6810; */ 4690 } 4691 4692 #pretty-print-preview-section .workflow-action-btn--secondary { 4693 background: #fff; 4694 col
4694or: #111; 4695 border-color: var(--border-strong); 4696 } 4697 4698 #pretty-print-preview-section .workflow-action-btn--success { 4699 background: var(--success); 4700 border-color: var(--success); 4701 } 4702 4703 #pretty-print-preview-section .workflow-action--send { 4704 background: #e74c3c; /* var(--success) */ 4705 color: #fff; 4706 border-color: #e74c3c; /* var(--success) */ 4707 } 4708 4709 #pretty-print-preview-section .quote-attach-file-list { 4710 display: grid; 4711 gap: 6px; 4712 margin: 0; 4713 padding: 0; 4714 list-style: none; 4715 } 4716 4717 #pretty-print-preview-section .quote-attach-file { 4718 display: grid !important; 4719 grid-template-columns: minmax(0, 1fr) 28px; 4720 gap: 8px; 4721 align-items: center; 4722 padding: 7px 8px; 4723 border: 1px solid var(--border); 4724 border-radius: 10px; 4725 background: #fff; 4726 font-size: 11px; 4727 } 4728 4729 #pretty-print-preview-section .quote-attach-file__name { 4730 min-width: 0; 4731 overflow: hidden; 4732 color: #20242d; 4733 text-overflow: ellipsis; 4734 4735 } 4736 4737 #pretty-print-preview-section .quote-attach-file__remove { 4738 display: inline-flex; 4739 align-items: center; 4740 justify-content: center; 4741 width: 28px; 4742 height: 28px; 4743 border: 1px solid rgba(211, 59, 54, 0.32); 4744 border-radius: 999px; 4745 background: var(--danger-soft); 4746 color: var(--danger); 4747 font-size: 14px; 4748 font-weight: 900; 4749 line-height: 1; 4750 cursor: pointer; 4751 } 4752 4753 #pretty-print-preview-section .quote-attach-file__remove:hover { 4754 border-color: var(--danger); 4755 } 4756 4757 .quote-attach-file.is-invalid { 4758 border-color: rgba(211, 59, 54, 0.32); 4759 background: rgba(255, 240, 239, 0.55); 4760 } 4761 4762 #pretty-print-preview-section .quote-attach-message { 4763 margin: 0; 4764 padding: 9px 10px; 4765 border: 1px solid var(--border); 4766 border-radius: 10px; 4767 background: #fff; 4768 font-size: 11px; 4769 line-height: 1.35; 4770 font-weight: 400; 4771 } 4772 4773 #pretty-print-preview-section .quote-attach-message.is-warning { 4774 border-color: rgba(199, 119, 0, 0.32); 4775 background: var(--warning-soft); 4776 color: #8b5200; 4777 } 4778 4779 #pretty-print-preview-section .quote-attach-message.is-error { 4780 border-color: rgba(211, 59, 54, 0.32); 4781 background: var(--danger-soft); 4782 color: #9c2421; 4783 } 4784 4785 #pretty-print-preview-section .quote-attach-panel__actions { 4786 display: grid; 4787 grid-template-columns: 1fr; 4788 gap: 8px; 4789 } 4790 4791 #pretty-print-preview-section .quote-workflow [data-start-new-quote-button] { 4792 /* margin-bottom: 1rem; */ 4793 } 4794 4795 html.is-cart .globo-form { 4796 display: none; 4797 } 4798 4799 @keyframes checkDraw { 4800 0% { 4801 opacity: 0; 4802 transform: rotate(45deg) scale(0.55); 4803 } 4804 4805 60% { 4806 opacity: 1; 4807 transform: rotate(45deg) scale(1.15); 4808 } 4809 4810 100% { 4811 opacity: 1; 4812 transform: rotate(45deg) scale(1); 4813 } 4814 } 4815 4816 @keyframes checkPulse { 4817 0% { 4818 opacity: 0.45; 4819 transform: scale(0.65); 4820 } 4821 4822 100% { 4823 opacity: 0; 4824 transform: scale(1.35); 4825 } 4826 } 4827 4828 @keyframes activeDotPulse { 4829 0% { 4830 opacity: 0.48; 4831 transform: translate(-50%, -50%) scale(0.85); 4832 } 4833 4834 50% { 4835 opacity: 1; 4836 transform: translate(-50%, -50%) scale(1.15); 4837 } 4838 4839 100% { 4840 opacity: 0.48; 4841 transform: translate(-50%, -50%) scale(0.85); 4842 } 4843 } 4844 4845 @keyframes stepCompletePop { 4846 0% { 4847 transform: scale(1); 4848 } 4849 4850 50% { 4851 transform: scale(1.018); 4852 } 4853 4854 100% { 4855 transform: scale(1); 4856 } 4857 } 4858 4859 @keyframes reviewPanelIn { 4860 0% { 4861 opacity: 0; 4862 transform: translateY(-4px) scaleY(0.98); 4863 } 4864 4865 100% { 4866 opacity: 1; 4867 transform: translateY(0) scaleY(1); 4868 } 4869 } 4870 4871 @keyframes reviewFieldShake { 4872 0% { 4873 transform: translateX(0); 4874 } 4875 4876 20% { 4877 transform: translateX(-4px); 4878 } 4879 4880 40% { 4881 transform: translateX(4px); 4882 } 4883 4884 60% { 4885 transform: translateX(-3px); 4886 } 4887 4888 80% { 4889 transform: translateX(3px); 4890 } 4891 4892 100% { 4893 transform: translateX(0); 4894 } 4895 } 4896 4897 /* START - SEND EMAIL ANIMATION */ 4898 4899 #pretty-print-preview-section .send-email-svg-frame { 4900 /* Add this custom easing variable to your existing .frame styles */ 4901 --soft-land: cubic-bezier(0.22, 1, 0.36, 1); 4902 /* Responsive Container Settings */ 4903 width: 100%; 4904 max-width: 100%; /* Change this to whatever you want! */ 4905 max-height: 214px; 4906 aspect-ratio: 1 / 1; /* Keeps it a perfect square */ 4907 container-type: inline-size; /* Allows us to scale text and borders relative to this box */ 4908 4909 position: relative; 4910 /* border-radius: 2px; 4911 box-shadow: 0.25cqw 0.5cqw 2.5cqw rgba(0, 0, 0, 0.3); 4912 background: #2c3e50; 4913 font-family: 'Open Sans', Helvetica, sans-serif; */ 4914 -webkit-font-smoothing: antialiased; 4915 -moz-osx-font-smoothing: grayscale; 4916 overflow: hidden; 4917 } 4918 4919 #pretty-print-preview-section .send-email-svg-frame .circle, 4920 #pretty-print-preview-section .send-email-svg-frame .circle-outer { 4921 position: absolute; 4922 width: 50%; 4923 height: 69%; 4924 top: 4.25%; 4925 left: 22%; 4926 background: #ffedc6; 4927 border-radius: 50%; 4928 /* display: none; */ 4929 } 4930 4931 #pretty-print-preview-section .send-email-svg-frame .circle-outer { 4932 box-sizing: border-box; 4933 background: none; 4934 border: max(2px, 1cqw) solid #ffedc6; 4935 } 4936 4937 #pretty-print-preview-section .send-email-svg-frame .icon { 4938 position: absolute; 4939 z-index: 2; 4940 /* Position them using percentages so they stay centered relative to the frame */ 4941 top: 24.5%; 4942 left: 31%; 4943 /* Set a responsive width. The height will automatically follow the viewBox ratio. */ 4944 width: 32%; 4945 transform: translate3d(0, 0, 0); 4946 fill: none; 4947 stroke-width: 2px; /* You can leave this as px, or use container queries (cqw) for scaling lines */ 4948 stroke: #8b5200; /* #ecf0f1 */ 4949 stroke-linecap: square; 4950 stroke-dasharray: 325 325; 4951 } 4952 4953 /* Remove fixed pixel sizes from the specific icon classes */ 4954 #pretty-print-preview-section .send-email-svg-frame .icon.mail { 4955 /* Height dictates aspect ratio scaling */ 4956 /* height: 17.5%; 4957 stroke-dashoffset: 0; */ 4958 /* width: 120px; <-- Remove this */ 4959 /* height: 70px; <-- Remove this */ 4960 stroke-dashoffset: 0; 4961 } 4962 4963 #pretty-print-preview-section .send-email-svg-frame .icon.plane { 4964 /* height: 27.5%; 4965 stroke-dashoffset: 325; */ 4966 /* width: 120px; <-- Remove this */ 4967 /* height: 110px; <-- Remove this */ 4968 stroke-dashoffset: 325; 4969 } 4970 4971 /* #pretty-print-preview-section .send-email-svg-frame #cb { 4972 display: none; 4973 } */ 4974 4975 #pretty-print-preview-section .send-email-svg-frame .button { 4976 position: absolute; 4977 z-index: 10; 4978 width: 99%; 4979 height: 45px; 4980 top: auto; 4981 bottom: 0; 4982 left: 2px; 4983 /* background: #ecf0f1; 4984 color: #2c3e50; */ 4985 display: flex; 4986 justify-content: center; 4987 align-items: center; /* Flexbox replaces rigid line-height for responsive text */ 4988 border-radius: 30px; /* 5cqw */ 4989 /* font-weight: 600; 4990 text-transform: uppercase; */ 4991 /*font-size: 3.75cqw; Text scales with container width */ 4992 cursor: pointer; 4993 transition: all 0.3s ease; 4994 } 4995 4996 #pretty-print-preview-section .send-email-svg-frame .button.reset { 4997 opacity: 0; 4998 z-index: 5; 4999 } 5000 5001 #pretty-print-preview-section .send-email-svg-frame.is-sent .button.workflow-action--send, 5002 #pretty-print-preview-section .send-email-svg-frame .button:hover { 5003 background: #fff; /* #1abc9c */ 5004 color: #222; 5005 } 5006 5007 /* Animation Triggers - .review-panel.is-sent */ 5008 5009 #pretty-print-preview-section .review-panel.is-sent .send-email-svg-frame .button { 5010 animation: button-email 1.5s ease-in-out 1.7s; 5011 animation-fill-mode: both; 5012 } 5013 5014 #pretty-print-preview-section .review-panel.is-sent .send-email-svg-frame .reset { 5015 animation: reset-email 1s ease-in-out 2s; 5016 animation-fill-mode: both; 5017 z-index: 15; 5018 } 5019 5020 #pretty-print-preview-section .review-panel.is-sent .send-email-svg-frame .circle, 5021 #pretty-print-preview-section .review-panel.is-sent .send-email-svg-frame .circle-outer { 5022 animation: circle-email 1s ease-in-out; 5023 animation-fill-mode: both; 5024 } 5025 5026 #pretty-print-preview-section .review-panel.is-sent .send-email-svg-frame .circle-outer { 5027 animation: circle-email 0.8s ease-in-out 0.2s; 5028 animation-fill-mode: both; 5029 } 5030 5031 #pretty-print-preview-section .review-panel.is-sent .send-email-svg-frame .mail { 5032 stroke-dashoffset: 326; 5033 transition: stroke-dashoffset 1s ease-in-out; 5034 } 5035 5036 #pretty-print-preview-section .review-panel.is-sent .send-email-svg-frame .plane { 5037 stroke-dashoffset: 0; 5038 transition: stroke-dashoffset 1s ease-in-out 0.6s; 5039 animation: fly-email 2.4s ease-in-out; 5040 animation-fill-mode: both; 5041 } 5042 5043 /* Target the .frame ONLY when the checkbox inside it is checked */ 5044 #pretty-print-preview-section .review-panel.is-sent .send-email-svg-frame { 5045 /* 4.7s delay ensures it waits for the reset animation to finish completely */ 5046 animation: collapseFrame 0.7s var(--soft-land) 4s forwards; 5047 } 5048 5049 /* Keyframes adjusted to use percentages */ 5050 @keyframes fly-email { 5051 0%, 5052 50% { 5053 transform: translate3d(0, 0, 0) scale(1); 5054 } 5055 60% { 5056 /* Translate % in keyframes are relative to the SVG's own width/height */ 5057 transform: translate3d(-8.3%, 4.5%, 0) scale(1.05); 5058 } 5059 70% { 5060 opacity: 1; 5061 } 5062 85% { 5063 opacity: 0; 5064 } 5065 100% { 5066 transform: translate3d(250%, -136%, 0) scale(0.4); 5067 opacity: 0; 5068 } 5069 } 5070 5071 @keyframes circle-email { 5072 0% { 5073 transform: translate3d(0, 0, 0) scale(1); 5074 } 5075 20% { 5076 transform: scale(1.1); 5077 } 5078 100% { 5079 transform: scale(0); 5080 } 5081 } 5082 5083 @keyframes button-email { 5084 0% { 5085 transform: scale(1); 5086 } 5087 30% { 5088 background: #fff; 5089 color: transparent; 5090 width: 50%; 5091 left: 25%; 5092 } 5093 50%, 5094 60% { 5095 width: 10%; 5096 left: 45%; 5097 transform: scale(1); 5098 } 5099 70% { 5100 transform: scale(1.1); 5101 } 5102 100% { 5103 width: 10%; 5104 left: 45%; 5105 background: #fff; 5106 color: transparent; 5107 transform: scale(0); 5108 } 5109 } 5110 5111 @keyframes reset-email { 5112 from { 5113 opacity: 0; 5114 width: 14%; 5115 color: transparent; 5116 border-color: transparent; 5117 left: 41%; 5118 } 5119 to { 5120 opacity: 1; 5121 } 5122 } 5123 5124 @keyframes collapseFrame { 5125 0% { 5126 aspect-ratio: 1 / 1; 5127 height: 214px; 5128 max-height: 214px; 5129 } 5130 100% { 5131 aspect-ratio: auto; /* Releases the square lock */ 5132 height: 60px; 5133 max-height: 60px; 5134 } 5135 } 5136 /* END - SEND EMAIL ANIMATION */ 5137 } 5138 /* END - EMAIL DASHBOARD STYLES */ 5139 </style> 5140 <style> 5141 /* pretty print preview and print styles */ 5142 @media screen, print { 5143 #pretty-print-preview-section #printable-quote-sheet * { 5144 font-family: Poppins, sans-serif; 5145 } 5146 5147 #pretty-print-preview-section #printable-quote-sheet .bold, 5148 #pretty-print-preview-section #printable-quote-sheet .font-bold { 5149 font-weight: 900; 5150 } 5151 5152 #pretty-print-preview-section .quote-sheet { 5153 background: #fff; 5154 color: #111; 5155 } 5156 5157 #pretty-print-preview-section .quote-header { 5158 display: grid; 5159 grid-template-columns: minmax(0, 1fr) 150px; 5160 gap: 1rem; 5161 align-items: start; 5162 padding-bottom: 0; 5163 border-bottom: 2px solid #5d5d5d; 5164 } 5165 5166 #pretty-print-preview-section .quote-company-address { 5167 text-align: right; 5168 font-size: 12px; 5169 line-height: 1.6rem; 5170 padding-top: 0; 5171 } 5172 5173 #pretty-print-preview-section .quote-company-address a { 5174 font-size: 12px; 5175 text-decoration: none; 5176 } 5177 5178 #pretty-print-preview-section .quote-brand-box { 5179 display: flex; 5180 justify-content: left; 5181 align-items: center; 5182 } 5183 5184 #pretty-print-preview-section .quote-brand { 5185 font-size: 26px; 5186 line-height: 1; 5187 font-weight: 900; 5188 letter-spacing: 0.03em; 5189 margin: 0rem; 5190 } 5191 5192 #pretty-print-preview-section .quote-brand img { 5193 width: auto; 5194 max-width: 100%; 5195 height: auto; 5196 max-height: 64px; 5197 } 5198 5199 #pretty-print-preview-section .quote-subhead { 5200 margin: 0; 5201 font-size: 12px; 5202 color: #444; 5203 } 5204 5205 #pretty-print-preview-section .quote-meta { 5206 text-align: left; 5207 font-size: 12px; 5208 line-height: 1.6rem; 5209 padding-top: 0.5rem; 5210 padding-bottom: 0.5rem; 5211 padding: 0; 5212 border-top: 2px solid #666; 5213 grid-column: span 2; 5214 display: grid; 5215 grid-template-columns: 220px 1fr; 5216 gap: 1rem; 5217 } 5218 5219 #pretty-print-preview-section .quote-meta > div { 5220 display: flex; 5221 flex-direction: row; 5222 align-items: center; 5223 justify-content: right; 5224 gap: 2rem; 5225 padding: 1.5rem 0; 5226 } 5227 5228 #pretty-print-preview-section .quote-meta > .quote-meta__title { 5229 font-size: 18px; 5230 font-weight: 900; 5231 margin: 0; 5232 justify-content: left; 5233 } 5234 5235 #pretty-print-preview-section .quote-top-row { 5236 display: grid; 5237 grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); /* 250px 1fr repeat(auto-fill,minmax(200px,1fr)); */ /* minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) */ 5238 gap: 28px; 5239 padding: 0; 5240 } 5241 5242 #pretty-print-preview-section .quote-top-row:has(> .has-value) { 5243 border-bottom: 2px solid #666; 5244 } 5245 5246 #pretty-print-preview-section .quote-top-row:has(> .pp-force-hide.has-value + .pp-force-hide.has-value) { 5247 grid-template-columns: 300px 1fr; 5248 } 5249 5250 #pretty-print-preview-section .quote-top-row > div { 5251 padding: 1rem 0; 5252 } 5253 5254 #pretty-print-preview-section .quote-top-row > div:first-child { 5255 /* grid-column: span 4; */ 5256 } 5257 5258 #pretty-print-preview-section .quote-block-title { 5259 margin: 0; 5260 font-size: 12px; 5261 font-weig
5261ht: 900; 5262 letter-spacing: 0.1em; 5263 text-transform: uppercase; 5264 } 5265 5266 #pretty-print-preview-section .quote-top-row .quote-block-title { 5267 margin-bottom: 0.5rem; 5268 } 5269 5270 #pretty-print-preview-section .quote-block-text { 5271 font-size: 12px; 5272 line-height: 1.55; 5273 color: #252525; 5274 white-space: pre-wrap; 5275 word-break: break-word; 5276 text-transform: capitalize; 5277 } 5278 5279 #pretty-print-preview-section .quote-block-text [data-quote-notes] { 5280 text-transform: unset; 5281 } 5282 5283 #pretty-print-preview-section .quote-block-text .pp-customer-rep-email-value, 5284 #pretty-print-preview-section .quote-block-text .pp-customer-email-value, 5285 #pretty-print-preview-section .quote-block-text .pp-customer-phone-value { 5286 text-transform: none; 5287 } 5288 5289 #pretty-print-preview-section .quote-block-text b { 5290 font-weight: 600; 5291 text-transform: capitalize; 5292 } 5293 5294 #pretty-print-preview-section .quote-items-table { 5295 width: 100%; 5296 border-collapse: collapse; 5297 margin-top: 0; 5298 } 5299 5300 #pretty-print-preview-section .quote-items-table thead th { 5301 text-align: left; 5302 font-size: 1.3rem;/* 11px */ 5303 letter-spacing: 0.08em; 5304 text-transform: uppercase; 5305 font-weight: 900; 5306 padding: 10px 10px; 5307 border: 0 none; 5308 border-bottom: 1px solid #d7d7d7; 5309 background: #f2f2f2; 5310 } 5311 5312 #pretty-print-preview-section .quote-items-table tbody td { 5313 vertical-align: top; 5314 padding: 12px 0; 5315 border: 0 none; 5316 border-bottom: 1px solid #e4e4e4; 5317 font-size: 1.3rem;/* 12px */ 5318 } 5319 5320 #pretty-print-preview-section .quote-items-table th:last-of-type, 5321 #pretty-print-preview-section .quote-items-table td:last-of-type { 5322 text-align: right; 5323 width: 100px; 5324 } 5325 5326 #pretty-print-preview-section .quote-items-table tr { 5327 page-break-inside: auto; 5328 } 5329 5330 #pretty-print-preview-section .quote-items-table th:nth-child(2), 5331 #pretty-print-preview-section .quote-items-table td:nth-child(2), 5332 #pretty-print-preview-section .quote-items-table th:nth-child(3), 5333 #pretty-print-preview-section .quote-items-table td:nth-child(3), 5334 #pretty-print-preview-section .quote-items-table th:nth-child(4), 5335 #pretty-print-preview-section .quote-items-table td:nth-child(4) { 5336 width: 110px; 5337 } 5338 5339 #pretty-print-preview-section .quote-items-table th:nth-child(2), 5340 #pretty-print-preview-section .quote-items-table td:nth-child(2) { 5341 text-align: center; 5342 width: 40px; 5343 } 5344 5345 #pretty-print-preview-section .quote-items-table td:nth-child(3) { 5346 padding-right: 10px; 5347 } 5348 5349 #pretty-print-preview-section .quote-item-cell { 5350 display: grid; 5351 grid-template-columns: 50px minmax(0, 1fr); 5352 gap: 10px; 5353 } 5354 5355 #pretty-print-preview-section .quote-item-image { 5356 width: 50px; 5357 height: 50px; 5358 object-fit: cover; 5359 border-radius: 6px; 5360 border: 1px solid #d8d8d8; 5361 background: #fff; 5362 } 5363 5364 #pretty-print-preview-section .quote-item-title { 5365 font-weight: 400; 5366 font-size: 1.3rem; 5367 line-height: 1.2; 5368 margin-bottom: 0.6rem; 5369 } 5370 5371 #pretty-print-preview-section .quote-item-cell .quote-item-text-wrap { 5372 padding-left: 0.5rem; 5373 } 5374 5375 #pretty-print-preview-section .quote-item-vendor, 5376 #pretty-print-preview-section .quote-item-sku, 5377 #pretty-print-preview-section .quote-item-options { 5378 color: #555; 5379 font-size: 1.1rem;/* 11px */ 5380 line-height: 1.45; 5381 } 5382 5383 #pretty-print-preview-section .quote-item-vendor { 5384 display: none; 5385 } 5386 5387 #pretty-print-preview-section .quote-item-cell .cart-item__info { 5388 /* display: flex; */ 5389 gap: 1rem; 5390 } 5391 5392 #pretty-print-preview-section .quote-item-cell .quote-item-text-wrap:has(> .quote-item-options) .cart-item__info { 5393 /* display: flex; */ 5394 } 5395 5396 #pretty-print-preview-section .quote-item-cell .cart-item__info ul { 5397 list-style: none; 5398 padding: 0; 5399 margin: 0; 5400 } 5401 5402 #pretty-print-preview-section .quote-item-cell .cart-item__info .visually-hidden { 5403 position: absolute; 5404 width: 1px; 5405 height: 1px; 5406 padding: 0; 5407 margin: -1px; 5408 overflow: hidden; 5409 clip: rect(0, 0, 0, 0); 5410 white-space: nowrap; 5411 border-width: 0; 5412 } 5413 5414 #pretty-print-preview-section .quote-item-cell .cart-item__info > dl { 5415 display: grid; 5416 margin-top: 0; 5417 margin-bottom: 1rem; 5418 } 5419 5420 #pretty-print-preview-section .quote-item-cell .cart-item__info > dl dt { 5421 padding: 0; 5422 margin: 0; 5423 } 5424 5425 #pretty-print-preview-section .quote-item-cell .cart-item__info > dl dd { 5426 padding: 0; 5427 margin: 0; 5428 } 5429 5430 #pretty-print-preview-section .quote-item-cell .cart-item__info > dl .price__current { 5431 font-weight: 700; 5432 } 5433 5434 #pretty-print-preview-section .quote-item-cell .cart-item__info > dl .inline { 5435 display: inline; 5436 } 5437 5438 #pretty-print-preview-section .quote-item-cell .cart-item__info > dl .price__was { 5439 color: rgba(var(--text-color) / 0.8); 5440 font-size: 1.2rem;/* 0.8em */ 5441 white-space: nowrap; 5442 } 5443 5444 #pretty-print-preview-section .quote-item-cell .cart-item__info .discount { 5445 padding: 6px 14px 6px 9px; 5446 background-color: rgba(51 51 51/0.1); 5447 font-size: 1.4rem; 5448 text-align: start; 5449 align-items: center; 5450 display: inline-flex; 5451 } 5452 5453 #pretty-print-preview-section .quote-item-cell .cart-item__info .discount .icon { 5454 flex-shrink: 0;
5455 width: 20px; 5456 margin-inline-end: calc(2 * 0.4rem); 5457 } 5458 5459 #pretty-print-preview-section .quote-item-options { 5460 margin-top: 1rem;/* 0.5rem */ 5461 padding: 1rem; 5462 background: #ffffff; 5463 border: 1px dashed #aaa; 5464 display: inline-block; 5465 border-radius: 2px; 5466 } 5467 5468 #pretty-print-preview-section .quote-item-cell .quote-item-options { 5469 grid-column: span 3; 5470 } 5471 5472 #pretty-print-preview-section .product-option { 5473 background: #eee; 5474 } 5475 5476 #pretty-print-preview-section .quote-item-options-row { 5477 margin-top: 0px; 5478 padding: 0.3rem 1rem 0; 5479 background: #f5f5f5; 5480 list-style-type: disc; 5481 display: list-item; 5482 list-style-position: inside; 5483 } 5484 5485 #pretty-print-preview-section .quote-item-options-row:first-child { 5486 padding-top: 0.7rem; 5487 } 5488 5489 #pretty-print-preview-section .quote-item-options-row:last-child { 5490 padding-bottom: 0.7rem; 5491 } 5492 5493 #pretty-print-preview-section .quote-item-options-label { 5494 font-weight: 600; 5495 color: #222; 5496 } 5497 5498 #pretty-print-preview-section .quote-price-cell, 5499 #pretty-print-preview-section .quote-qty-cell { 5500 font-size: 12px; 5501 color: #222; 5502 white-space: nowrap; 5503 } 5504 5505 #pretty-print-preview-section .cart-total-discount { 5506 color: rgb(210 0 20); 5507 } 5508 5509 #pretty-print-preview-section .cart-total-discount > div:first-child { 5510 font-weight: 400; 5511 } 5512 5513 #pretty-print-preview-section .cart-total-discount > div:last-child { 5514 font-weight: 700; 5515 } 5516 5517 #pretty-print-preview-section .quote-discount-box { 5518 color: rgb(10, 133, 41); 5519 } 5520 5521 #pretty-print-preview-section .page-shell .price--sale-color:has(.price__was:not(:empty)):has(.price__default:not([hidden])) .price__current, 5522 #pretty-print-preview-section .page-shell .cart-item__total.price--sale-color:has(.price__was:not(:empty)) .price__current, 5523 #pretty-print-preview-section .quote-price-cell.price--sale-color .price__current { 5524 color: rgb(198 32 32); 5525 } 5526 5527 #pretty-print-preview-section .quote-item-cell dl.cart-item__price .price__current { 5528 font-weight: 700; 5529 } 5530 5531 #pretty-print-preview-section .quote-item-cell dl.cart-item__price .inline { 5532 display: inline; 5533 } 5534 5535 #pretty-print-preview-section .quote-item-cell dl.cart-item__price .price__was { 5536 color: rgba(var(--text-color) / 0.8); 5537 font-size: 0.8em; 5538 white-space: nowrap; 5539 } 5540 5541 #pretty-print-preview-section .quote-subtotal-row { 5542 display: grid; 5543 grid-template-columns: 1fr 1fr; 5544 gap: 2rem; 5545 margin-top: 0; 5546 align-items: start; 5547 justify-content: right; 5548 padding: 1.5rem 0; 5549 font-size: 1.2rem; 5550 /* border-top: 2px solid #666; */ 5551 border-bottom: 2px solid #666; 5552 margin-bottom: 1rem; 5553 } 5554 5555 #pretty-print-preview-section .quote-subtotal-row:has(> .quote-discount-box > [data-discount]:empty) { 5556 grid-template-columns: 1fr; 5557 } 5558 5559 #pretty-print-preview-section .quote-subtotal-row > div:first-child { 5560 justify-content: left; 5561 } 5562 5563 #pretty-print-preview-section .quote-subtotal-row > div:last-child { 5564 justify-content: right; 5565 } 5566 5567 #pretty-print-preview-section .quote-subtotal-box { 5568 /* border-top: 2px solid #666; 5569 padding-top: 10px; */ 5570 display: flex; 5571 justify-content: space-between; 5572 align-items: center; 5573 gap: 1rem; 5574 font-size: 1.2rem; 5575 font-weight: 900; 5576 } 5577 5578 #pretty-print-preview-section .quote-subtotal-label { 5579 font-weight: 400; 5580 } 5581 5582 #pretty-print-preview-section .quote-footer-note { 5583 margin-top: 18px; 5584 font-size: 12px; 5585 color: #666; 5586 font-style: italic; 5587 } 5588 5589 #pretty-print-preview-section .print-only { 5590 display: none; 5591 } 5592 5593 #pretty-print-preview-section .pp-force-hide { 5594 display: none !important; 5595 } 5596 5597 #pretty-print-preview-section .pp-force-hide:has(>
5597 [data-quote-customer-rep]:not(:empty)), 5598 #pretty-print-preview-section .pp-force-hide:has(> [data-quote-notes]:not(:empty)), 5599 #pretty-print-preview-section .pp-force-hide:has(> [data-prepared-for]:not(:empty)), 5600 #pretty-print-preview-section .pp-force-hide:has(> [data-discount]:not(:empty)) { 5601 display: block !important; 5602 } 5603 5604 /* remove default outline */ 5605 #pretty-print-preview-section .pp-customer-rep-email:focus, 5606 #pretty-print-preview-section .pp-customer-email:focus { 5607 outline: none; 5608 } 5609 5610 /* custom focus style */ 5611 #pretty-print-preview-section .pp-customer-rep-email:focus-visible, 5612 #pretty-print-preview-section .pp-customer-email:focus-visible { 5613 /* outline: 2px solid #111; 5614 outline-offset: 2px; */ 5615 outline: 0; 5616 } 5617 5618 #pretty-print-preview-section .pp-customer-rep-email.is-valid, 5619 #pretty-print-preview-section .pp-customer-email.is-valid { 5620 /* border-color: #2ecc71; */ 5621 } 5622 5623 .pp-customer-rep-email.is-invalid, 5624 .pp-customer-email.is-invalid { 5625 border-color: #e74c3c; 5626 } 5627 5628 #pretty-print-preview-section .pp-customer-rep-email.is-invalid:focus-visible, 5629 #pretty-print-preview-section .pp-customer-email.is-invalid:focus-visible { 5630 /* outline: 2px solid #e74c3c; */ 5631 outline: 0; 5632 } 5633 5634 #pretty-print-preview-section .print-controls .input.is-invalid, 5635 #pretty-print-preview-section .print-controls .textarea.is-invalid { 5636 border-color: #e74c3c; 5637 } 5638 5639 #pretty-print-preview-section .print-controls .input.is-invalid:focus-visible, 5640 #pretty-print-preview-section .print-controls .textarea.is-invalid:focus-visible { 5641 /* outline: 2px solid #e74c3c; 5642 outline-offset: 2px; */ 5643 outline: 0; 5644 } 5645 5646 #pretty-print-preview-section .print-controls textarea:focus-visible { 5647 outline: 0 !important; 5648 } 5649 5650 #pretty-print-preview-section .print-controls.input:focus, 5651 #pretty-print-preview-section .print-controls select:focus, 5652 #pretty-print-preview-section .print-controls textarea:focus { 5653 outline: 0; 5654 box-shadow: 0 0 0 1px rgba(48 48 48/0.6); 5655 } 5656 5657 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form { 5658 display: none; 5659 } 5660 } 5661 5662 @media print { 5663 5664 @page { 5665 size: letter; /* 8.5in 60in */ 5666 margin: 0.2cm 0.6cm; /* 0.5cm 0.3cm 0.3cm 0 0.3cm */ 5667 } 5668 5669 /*html, 5670 body { 5671 width: 8.5in !important; 5672 } 5673 5674 #pretty-print-preview-section, 5675 #pretty-print-preview-section .pretty-print-preview-shell, 5676 #pretty-print-preview, 5677 #printable-quote-sheet { 5678 width: 100% !important; 5679 max-width: none !important; 5680 }*/ 5681 5682 /*html, 5683 body, 5684 main, 5685 #MainContent, 5686 .shopify-section, 5687 .container, 5688 .page-width, 5689 .page-shell, 5690 #pretty-print-preview-section, 5691 #pretty-print-preview-section .preview-section-inner, 5692 #pretty-print-preview-section .pretty-print-preview-shell, 5693 #pretty-print-preview, 5694 #printable-quote-sheet { 5695 margin: 0 !important; 5696 padding: 0 !important; 5697 max-width: none !important; 5698 width: 100% !important; 5699 }*/ 5700 5701 body { 5702 background: #fff !important; 5703 padding: 0; 5704 print-color-adjust: exact; 5705 -webkit-print-color-adjust: exact; 5706 } 5707 5708 #printable-quote-sheet { 5709 width: 100%; 5710 } 5711 5712 html.pl.cart-print-modal-active #shopify-section-template--23954067030314__custom_liquid_6ndtFM, 5713 html.pl.cart-print-modal-active #shopify-section-template--23954067030314__custom_liquid_6ndtFM .section, 5714 html.pl.cart-print-modal-active #shopify-section-template--23954067030314__custom_liquid_6ndtFM .container, 5715 html.ofc.cart-print-modal-active #shopify-section-template--24043609948524__custom_liquid_8VCw6H, 5716 html.ofc.cart-print-modal-active #shopify-section-template--24043609948524__custom_liquid_8VCw6H .section, 5717 html.ofc.cart-print-modal-active #shopify-section-template--24043609948524__custom_liquid_8VCw6H .container { 5718 padding: 0; 5719 margin: 0; 5720 width: 100%; 5721 } 5722 5723 /* html.cart-print-modal .cc-main-cart, */ 5724 html.cart-print-modal-active .cc-main-cart, 5725 html.cart-print-modal-active .page-title,
5726 html.cart-print-modal-active .cart-layout, 5727 html.cart-print-modal-active .preview-section__title, 5728 html.cart-print-modal-active .preview-section__note, 5729 html.cart-print-modal-active .screen-only, 5730 html.cart-print-modal-active .shopify-section.shopify-section-group-header-group.cc-header, 5731 html.cart-print-modal-active .print-controls, 5732 html.cart-print-modal-active #pretty-print-preview-section .print-controls, 5733 html.cart-print-modal-active .preview-section__modal-bar, 5734 html.cart-print-modal-active .shopify-section.shopify-section-group-footer-group, 5735 html.cart-print-modal-active .shopify-section.shopify-section-group-overlay-group { 5736 display: none !important; 5737 } 5738 5739 html:not(.cart-print-modal-active) #pretty-print-preview-section { 5740 display: none !important; 5741 } 5742 5743 html.cart-print-modal-active #main-content .shopify-section.cc-main-cart.section.section--template, 5744 html.cart-print-modal-active .shopify-section.shopify-section-group-header-group, 5745 html.cart-print-modal-active .shopify-section.shopify-section-group-header-group.cc-custom-liquid, 5746 html.cart-print-modal-active .shopify-section.shopify-section-group-header-group.cc-announcement, 5747 html.cart-print-modal-active .shopify-section.shopify-section-group-header-group.cc-header, 5748 html.cart-print-modal-active .cart-layout, 5749 html.cart-print-modal-active .page-title, 5750 html.cart-print-modal-active .cart__shipping-calculator.panel, 5751 html.cart-print-modal-active .cart-page-recommendations, 5752 html.cart-print-modal-active .shopify-section.shopify-section-group-footer-group.cc-footer, 5753 html.cart-print-modal-active body > div:has(> iframe), 5754 html.cart-print-modal-active body > div:has(> .needsclick), 5755 html.cart-print-modal-active .print-controls { 5756 display: none !important; 5757 } 5758 5759 html.cart-print-modal-active body > .shopify-section.cc-custom-liquid.has-top-panel-header, 5760 html.cart-print-modal-active #top-panel-header, 5761 html.cart-print-modal-active header #search-bar, 5762 html.cart-print-modal-active header .header__icons, 5763 html.cart-print-modal-active header main-menu, 5764 html.cart-print-modal-active .shopify-section.cc-custom-liquid:has(> div > div.ecs-promo-strip), 5765 html.cart-print-modal-active .shopify-section.cc-custom-liquid .ecs-promo-strip, 5766 html.js.cart-print-modal-active quantity-input .qty-input--combined .qty-input__btn, 5767 html.cart-print-modal-active .cart-page-recommendations, 5768 html.cart-print-modal-active .cart__shipping-calculator, 5769 html.cart-print-modal-active .shopify-section.cc-recently-viewed, 5770 html.cart-print-modal-active .shopify-section.cc-footer, 5771 html.cart-print-modal-active .overlay, 5772 html.cart-print-modal-active #cart-items .btn, 5773 html.cart-print-modal-active #cart-summary .dynamic-cart-btns, 5774 html.cart-print-modal-active #cart-summary > details-disclosure, 5775 html.cart-print-modal-active #cart-summary > details-disclosure + .mt-6.rte, 5776 html.cart-print-modal-active #cart-summary .btn, 5777 html.cart-print-modal-active body #gorgias-chat-container, 5778 html.is-csr.cart-print-modal-active #main-content #pdf-csr-button, 5779 html.cart-print-modal-active #main-content #free-shipping-notice.free-shipping-notice, 5780 html.cart-print-modal-active body .shopify-section.shopify-section-group-footer-group.cc-custom-liquid, 5781 html.cart-print-modal-active.is-cart body.cc-main-cart { 5782 display: none !important; 5783 } 5784 5785 html.is-cart .globo-formbuilder, 5786 html.is-cart.cart-print-modal .globo-formbuilder, 5787 html.is-cart .globo-formbuilder, 5788 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form { 5789 display: none !important; 5790 } 5791 5792 /* #pretty-print-preview-section.preview-section { 5793 margin-top: 0; 5794 padding: 0; 5795 border: 0; 5796 background: #fff; 5797 } */ 5798 5799 #pretty-print-preview-section { 5800 max-width: none; 5801 width: 100%; 5802 margin: 0; 5803 padding: 0; 5804 border: 0; 5805 box-shadow: none; 5806 border-radius: 0; 5807 background: #fff !important; 5808 } 5809 5810 #pretty-print-preview-section .pretty-print-preview-shell { 5811 max-width: none; 5812 width: 100%; 5813 margin: 0 !important; 5814 padding: 0 !important; 5815 border: 0; 5816 border-radius: 0; 5817 background: #fff !important; 5818 } 5819 5820 #pretty-print-preview-section.preview-section { 5821 background: #fff !important; 5822 border: 0; 5823 } 5824 5825 #pretty-print-preview-section .quote-sheet { 5826 display: block !important; 5827 } 5828 5829 #pretty-print-preview-section .print-only { 5830 display: block; 5831 } 5832 5833 #pretty-print-preview-section .quote-item-options { 5834 padding: 1rem; 5835 background: #fafafa !important; 5836 border: 1px dashed #aaa; 5837 border-radius: 5px; 5838 } 5839 5840 #pretty-print-preview-section thead { 5841 /*display: table-row-group; Changes it to act like a normal table body row */ 5842 } 5843 5844 #pretty-print-preview-section table th { 5845 background: #eee; 5846 } 5847 5848 #pretty-print-preview-section table td { 5849 } 5850 5851 #pretty-print-preview-section tr { 5852 /* display: block; Essential for many browsers to respect breaks on rows */ 5853 /*break-before: always; */ 5854 /*page-break-before: always; Legacy support */ 5855 /* break-inside: avoid; 5856 page-break-inside: avoid; */ 5857 } 5858 5859 html.cart-print-modal-active .quote-item, 5860 html.cart-print-modal-active .quote-items-table tr, 5861 html.cart-print-modal-active .quote-section { 5862 break-inside: avoid; 5863 page-break-inside: avoid; 5864 } 5865
5866 html.is-cart h1 .print-controls.print-controls-button, 5867 html.is-cart .print-controls.print-controls-button { 5868 display: none !important; 5869 } 5870 5871 html.is-cart .globo-app-extension { 5872 display: none !important; 5873 } 5874 } 5875 </style> 5876 5877 5878 <!-- DO NOT DELETE LIQUID STYLES FOR SECTION FOR PAGE BUILDER --> 5879 <style> 5880 /* 5881 ecs csr send cart pdf quote form - styles 5882 PL - #shopify-section-template--23954067030314__17771730616ffe3341 5883 OFC - #shopify-section-template--24043609948524__177717474058bae822 5884 */ 5885 5886 html.is-cart #shopify-section-template--23954067030314__17771730616ffe3341, 5887 html.is-cart #shopify-section-template--24043609948524__177717474058bae822 { 5888 padding: 0; 5889 margin: 0; 5890 } 5891 5892 html.is-cart #shopify-section-template--23954067030314__17771730616ffe3341 .section, 5893 html.is-cart #shopify-section-template--24043609948524__177717474058bae822 .section { 5894 padding: 0; 5895 margin: 0; 5896 } 5897 5898 html.is-cart #shopify-section-template--23954067030314__17771730616ffe3341 .section .container, 5899 html.is-cart #shopify-section-template--24043609948524__177717474058bae822 .section .container { 5900 padding: 0; 5901 margin: 0; 5902 } 5903 5904 html.is-cart .globo-formbuilder, 5905 html.is-cart #shopify-section-template--23954067030314__17771730616ffe3341 .globo-formbuilder, 5906 html.is-cart #shopify-section-template--24043609948524__177717474058bae822 .globo-formbuilder { 5907 padding: 0; 5908 margin: 0; 5909 } 5910 5911 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form { 5912 padding: 0; 5913 margin: 0; 5914 5915 display: none; 5916 } 5917 5918 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form .globo-form-app { 5919 padding: 0; 5920 margin: 0; 5921 } 5922 5923 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form .globo-form-app header { 5924 display: none; 5925 } 5926 5927 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form .globo-form-app .panels { 5928 height: 100% !important; 5929 position: static !important; 5930 } 5931 5932 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form .globo-form-control { 5933 margin-bottom: 1rem; 5934 } 5935 5936 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form .ecs--input { 5937 5938 } 5939 5940 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form .ecs--textarea { 5941 5942 } 5943 5944 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form .csr--field { 5945 5946 } 5947 5948 html.is-cart .globo-formbuilder/*, 5949 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form, 5950 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form .globo-form-control.csr--field, 5951 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form .globo-form-control.csr--field:not(.csr--file-attach)*/ { 5952 display: none; 5953 /*position: absolute; 5954 top: 0px; 5955 left: 0px; 5956 z-index: -1; 5957 overflow: hidden; 5958 height: 1px; 5959 width: 1px; 5960 padding: 0 !important; 5961 margin: 0 !important; 5962 border: 0; 5963 clip: rect(1px, 1px, 1px, 1px); 5964 -webkit-clip-path: inset(0px 0px 99.9% 99.9%); 5965 clip-path: inset(0px 0px 99.9% 99.9%); */ 5966 } 5967 5968 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form .csr--quote-id input { 5969 5970 } 5971 5972 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form .csr--csr-name input { 5973 5974 } 5975 5976 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form .csr--csr-notes textarea { 5977 5978 } 5979 5980 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form .csr--customer-name input { 5981 5982 } 5983 5984 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form .csr--customer-email input { 5985 5986 } 5987 5988 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form .csr--customer-phone input { 5989 5990 } 5991 5992 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form .csr--file-attach input { 5993 5994 } 5995 5996 html.is-cart .globo-formbuilder .globo-form.csr--cart-quote-form .csr--file-attach button.gfb__dropzone--placeholder--button { 5997 background-color: #FFF; 5998 } 5999 6000 </style> 6001 <!-- DO NOT DELETE LIQUID STYLES FOR SECTION FOR PAGE BUILDER --> 6002 6003<section id="pretty-print-preview-section" class="card preview-section allow-csr"> 6004 <div class="preview-section-inner"> 6005 <div class="preview-section__modal-bar" data-mode="quick" data-step="0" data-force-page-break="true"> 6006 <!-- <h2 class="preview-section__title">Pretty-Print Quote Preview</h2> --> 6007 6008 <!-- JTM - START - jonny pretty print controls and buttons -->
6009 <div class="print-controls"> 6010 <div class="preview-section__buttons"> 6011 <button id="close-print-preview-modal" class="preview-section__close workflow-action" type="button" title="Close print preview modal"> 6012 <svg width="24" height="24" viewBox="0 0 24 24" stroke="#000000" stroke-width="2" fill="none" fill-rule="evenodd" stroke-linejoin="round" aria-hidden="true" focusable="false" role="presentation" class="icon"> 6013 <path d="M5 19 19 5M5 5l14 14"></path> 6014 </svg> 6015 </button> 6016 <!-- <button id="rebuild-pretty-print" class="rebuild-pretty-print btn" type="button">Rebuild Pretty Print Quote</button> 6017 <button id="copy-quote-filename" class="copy-quote-filename btn" type="button" style="display:none;">Copy Quote Filename</button> --> 6018 <button id="open-print-preview-fields" class="open-print-preview btn btn--primary workflow-action" type="button" title="Open Print / Save PDF Dialog">Open Print / Save PDF Dialog</button> 6019 <button class="force-break-print-preview preview-section__force-page-break workflow-action" type="button" data-force-page-breaks-toggle><!-- title="Remove Page Breaks for Digital PDF" --> 6020 <svg id="svg-force-page-break" fill="#000000" width="24px" height="24px" viewBox="0 0 24 24"> 6021 <title>Force Page Breaks for Printed PDF</title> 6022 <path class="svg-page-break-1" d="M3,12H7m14,0H17m-6,0h2"></path> 6023 <path class="svg-page-break-2" d="M5,8V4A1,1,0,0,1,6,3H17l2,2V8"></path> 6024 <path class="svg-page-break-3" data-name="primary" d="M5,16v4a1,1,0,0,0,1,1H18a1,1,0,0,0,1-1V16"></path> 6025 <polygon class="svg-page-break-4" data-name="primary" points="17 3 17 5 19 5 17 3"></polygon> 6026 </svg> 6027 <svg id="svg-remove-page-break" fill="#000000" width="24px" height="24px" viewBox="0 0 24 24"> 6028 <title>Remove Page Breaks for Digital PDF</title> 6029 <path class="svg-page-break-2" d="M5,16V4A1,1,0,0,1,6,3H17l2,2V16"></path> 6030 <path class="svg-page-break-3" data-name="primary" d="M5,16v4a1,1,0,0,0,1,1H18a1,1,0,0,0,1-1V16"></path> 6031 <polygon class="svg-page-break-4" data-name="primary" points="17 3 17 5 19 5 17 3"></polygon> 6032 </svg> 6033 </button> 6034 </div> 6035 6036 <details open> 6037 <summary class="is-accordion-trigger"> 6038 CSR Fields 6039 <svg xml:space="preserve" style="enable-background: new 0 0 16 16" viewBox="0 0 16 16" height="16px" width="16px" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" id="Layer_1" version="1.1"> 6040 <style type="text/css"> 6041 .st0 { 6042 fill: #4f4f4f; 6043 } 6044 </style> 6045 <g> 6046 <polygon points="0.9,5.5 3.1,3.4 8,8.3 12.9,3.4 15.1,5.5 8,12.6" class="st0" /> 6047 </g> 6048 </svg> 6049 </summary> 6050 6051 <div class="print-controls--content csr-fields is-accordion-content"> 6052 <div class="control-field full-width-col row-csr-name"> 6053 <label class="control-label" for="pp-customer-rep-name">CSR Name:<span style="color: var(--danger)">*</span></label> 6054 <input id="pp-customer-rep-name" class="pp-customer-rep-name input" type="text" title="CSR Name" placeholder="csr name" autocomplete="name" /> 6055 </div> 6056 6057 <div class="control-field full-width-col row-csr-email"> 6058 <label class="control-label" for="pp-customer-rep-email">CSR Email:<span style="color: var(--danger)">*</span></label> 6059 <input id="pp-customer-rep-email" class="pp-customer-rep-email input" type="email" title="CSR Email" placeholder="[email protected]" autocomplete="email" inputmode="email" /> 6060 </div> 6061 6062 <div class="control-field full-width-col row-csr-notes"> 6063 <label class="control-label" for="pp-notes">Notes:</label> 6064 <textarea id="pp-notes" class="pp-notes textarea" title="CSR Notes" placeholder="enter csr print quote notes here."></textarea> 6065 </div> 6066 </div> 6067 </details> 6068 6069 <details open> 6070 <summary class="is-accordion-trigger"> 6071 Customer Fields 6072 <svg xml:space="preserve" style="enable-background: new 0 0 16 16" viewB
6072ox="0 0 16 16" height="16px" width="16px" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" id="Layer_1" version="1.1"> 6073 <style type="text/css"> 6074 .st0 { 6075 fill: #4f4f4f; 6076 } 6077 </style> 6078 <g> 6079 <polygon points="0.9,5.5 3.1,3.4 8,8.3 12.9,3.4 15.1,5.5 8,12.6" class="st0" /> 6080 </g> 6081 </svg> 6082 </summary> 6083 6084 <div class="print-controls--content customer-fields is-accordion-content"> 6085 <div class="control-field row-customer-name"> 6086 <label class="control-label" for="pp-customer-name">Customer Name:<span style="color: var(--danger)">*</span></label> 6087 <input id="pp-customer-name" class="pp-customer-name input" type="text" title="Customer Name" placeholder="customer name" /> 6088 </div> 6089 6090 <div class="control-field row-customer-phone"> 6091 <label class="control-label" for="pp-customer-phone">Customer Phone:</label> 6092 <input id="pp-customer-phone" class="pp-customer-phone input" type="tel" inputmode="tel" autocomplete="tel" pattern="^\+?[0-9\s().-]{7,20}
6092$" title="Use digits, spaces, parentheses, dashes, and optional leading +" placeholder="+1 (777) 777-7777" /> 6093 </div> 6094 6095 <div class="control-field full-width-col row-customer-email"> 6096 <label class="control-label" for="pp-customer-email">Customer Email:</label> 6097 <input id="pp-customer-email" class="pp-customer-email input" type="email" title="Customer Email" placeholder="[email protected]" autocomplete="email" inputmode="email" /> 6098 </div> 6099 </div> 6100 </details> 6101 6102 <label class="quote-workflow__helpdesk-toggle"> 6103 <input type="checkbox" autocomplete="off" data-send-to-helpdesk-toggle /> 6104 <span> 6105 Send Cart PDF Quote to Helpdesk 6106 <small>Show the print pdf, attach, review, send, and email confirmation steps.</small> 6107 </span> 6108 </label> 6109 </div> 6110 6111 <section class="quote-workflow"> 6112 <header class="quote-workflow__header"> 6113 <p class="quote-workflow__kicker">Email Dashboard</p> 6114 <!-- <h2 class="quote-workflow__title">Final Quote Workflow</h2> 6115 <p class="quote-workflow__sub">Track every step from preview to sent email.</p> --> 6116 </header> 6117 <div class="quote-workflow__progress" aria-hidden="true"> 6118 <div class="quote-workflow__progress-bar" data-progress-bar></div> 6119 </div> 6120 <div class="quote-workflow__meta"> 6121 <span><strong data-completed-count>0</strong> of <strong data-total-count>2</strong> done</span> 6122 <span data-workflow-status>Ready</span> 6123 </div> 6124 <ol class="quote-workflow__list" data-workflow-list></ol> 6125 </section> 6126 6127 <img class="quote-pretty-print-banner-img" src="https://cdn.shopify.com/s/files/1/0916/0533/6362/files/jonny-pretty-print-cart-pdf.png?v=1780624930" width="700" height="524" alt="Jonny Pretty Print" border="0"> 6128 6129 </div> 6130 <!-- JTM - END - jonny pretty print controls and buttons --> 6131 <div class="pretty-print-preview-shell"> 6132 <div id="pretty-print-preview"></div> 6133 </div> 6134 </div> 6135 </section> 6136 6137 <template id="quote-template"> 6138 <article class="quote-sheet" id="printable-quote-sheet"> 6139 <header class="quote-header"> 6140 <div class="quote-brand-box"> 6141 <h2 class="quote-brand"></h2> 6142 <!-- <p class="quote-subhead">Custom cushion quote preview built from cart line item values.</p> --> 6143 </div> 6144 <div class="quote-company-address"> 6145 <div> 6146 10820 US 19 North<br /> 6147 Clearwater, FL 33764 USA<br /> 6148 <b>Local:</b> <span data-quote-company-phone-local></span><br /> 6149 <b>Toll-Free:</b> <span data-quote-company-phone-toll-free></span> 6150 </div> 6151 </div> 6152 <div class="quote-meta"> 6153 <div class="quote-meta__title">Shopping Cart Quote</div> 6154 <div> 6155 <div><strong>Quote #:</strong> <span data-quote-id></span></div> 6156 <div><strong>Date:</strong> <span data-quote-date></span></div> 6157 <div class="pp-force-hide"><strong>CSR Name:</strong> <span data-quote-customer-rep></span></div> 6158 </div> 6159 </div> 6160 </header> 6161 6162 <section class="quote-top-row"> 6163 <div class="pp-force-hide"> 6164 <h2 class="quote-block-title">Prepared For:</h2> 6165 <div class="quote-block-text" data-prepared-for></div> 6166 </div> 6167 <div class="pp-force-hide"> 6168 <h2 class="quote-block-title">Notes:</h2> 6169 <div class="quote-block-text" data-quote-notes></div> 6170 </div> 6171 </section> 6172 6173 <section class="quote-subtotal-row"> 6174 <div class="quote-discount-box cart-total-discount pp-force-hide"> 6175 <span class="quote-discount-label">Total Savings:</span> 6176 <span class="bold" data-discount></span> 6177 </div> 6178 <div class="quote-subtotal-box">
6179 <span class="quote-subtotal-label">Subtotal:</span> 6180 <span class="bold" data-subtotal></span> 6181 </div> 6182 </section> 6183 6184 <section class="quote-main"> 6185 <table class="quote-items-table"> 6186 <thead> 6187 <tr> 6188 <th>Item</th> 6189 <th>Qty</th> 6190 <!-- <th>Unit</th> --> 6191 <th>Total</th> 6192 </tr> 6193 </thead> 6194 <tbody data-quote-items></tbody> 6195 </table> 6196 </section> 6197 6198 <footer class="quote-footer-note">This document is a quote only and not a final order confirmation. Pricing, availability, and specifications are subject to change. Final details will be confirmed prior to order processing.</footer> 6199 </article> 6200 </template> 6201 6202 6203
6203<script src="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/theme-cart-quote-print-preview-modal.js?v=67427143190070780791781545999" defer="defer"></script>
6203 6204 6205</div></div> 6206 6207 6208</section><section id="shopify-section-template--24043609948524__177717474058bae822" class="shopify-section cc-apps section"><div class="container"><div id="shopify-block-AbnlZdWFGcnNWblRyS__powerful_form_builder_app_block_NAQRBp" class="shopify-block shopify-app-block"><div></div> 6209 6210</div> 6211</div> 6212 6213 6214</section> 6215 </main><!-- BEGIN sections: overlay-group --> 6216<div id="shopify-section-sections--24043609391468__cart-drawer" class="shopify-section shopify-section-group-overlay-group cc-cart-drawer"> 6217</div><div id="shopify-section-sections--24043609391468__product-compare" class="shopify-section shopify-section-group-overlay-group cc-compare"> 6218</div> 6219<!-- END sections: overlay-group --> 6220 6221<!-- BEGIN sections: footer-group --> 6222<div id="shopify-section-sections--24043609424236__footer" class="shopify-section shopify-section-group-footer-group cc-footer"><link rel="stylesheet" href="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/footer.css?v=86884243727401719581736781213" media="print" onload="this.media='all'"><style data-shopify>.footer { 6223 --bg-color: 235 235 235 / 1.0; 6224 --heading-color: 34 34 34; 6225 --text-color: 34 34 34; 6226 }</style><footer class="footer bg-theme-bg text-theme-text"> 6227 <div class="container"><a href="#" class="back-to-top top-0 left-0 w-full text-sm block font-bold text-center text-current pt-8 pl-6 pr-6 md:pb-14" data-cc-animate> 6228 Back to top 6229 <svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 6230 </a><div class="footer__main md:flex md:flex-wrap mb-10 md:mb-8"><div class="footer-col footer-col--text footer-col--not-collapsed" data-cc-animate data-cc-animate-delay="0.07s"> 6231 <div class="footer-block mb-8 text-start"><h2 class="footer-block__heading font-body font-bold text-h6 regular-text">Contact Information</h2><div class="footer-block__text rte"> 6232 <p>Outdoor Fabric Central<br/>10820 US 19 North<br/>Clearwater, FL 33764 USA</p><p>Local: 727.597.4134<br/>Toll-Free: 1.866.712.5684<br/>Contact Us: <a href="/pages/contact" title="Contact">Click Here</a></p><p>Hours of Operation: <a href="/pages/contact#hours_of_operation" title="/pages/contact#hours_of_operation">Click Here</a></p> 6233 </div></div> 6234 </div><div class="footer-col footer-col--links footer-col--collapsed" data-cc-animate data-cc-animate-delay="0.14s"> 6235 <footer-menu> 6236 <details class="footer-menu disclosure footer-menu--first" open> 6237 <summary tabindex="-1"> 6238 <div class="flex justify-between items-center"> 6239 <h2 class="disclosure__title font-body font-bold text-h6 regular-text">Customer Support</h2> 6240 <span class="disclosure__toggle"><svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 6241</span> 6242 </div> 6243 </summary> 6244 <div class="disclosure__panel has-motion"> 6245 <ul class="footer-menu__links disclosure__content" role="list"><li> 6246 <a href="https://account.outdoorfabriccentral.com/profile?locale=en&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJvdXRkb29yZmFicmljY2VudHJhbC5teXNob3BpZnkuY29tIiwiZmxhZ3MiOltdLCJleHAiOjE3OTExODM1MTIsIm5iZiI6MTc5MDU3ODcxMn0.nJrwkNHlnOQtfFNh79B0DtowONcER_1SRm4z8diYKAc®ion_country=US" 6247 6248 rel="nofollow" 6249 > 6250 My Account 6251 </a> 6252 </li><li> 6253 <a href="/pages/track-my-order" 6254 > 6255 Track Order 6256 </a> 6257 </li><li> 6258 <a href="/pages/sunbrella-fabric-coupon" 6259 > 6260 Promotions & Coupons 6261 </a> 6262 </li><li> 6263 <a href="/pages/lowest-priced-sunbrella" 6264 > 6265 Price Match Promise 6266 </a> 6267 </li><li> 6268 <a href="/pages/shipping-information" 6269 > 6270 Shipping Information 6271 </a> 6272 </li><li> 6273 <a href="/pages/sunbrella-wholesale" 6274 > 6275 Wholesale & Trade Accounts 6276 </a> 6277 </li><li> 6278 <a href="/pages/sunbrella-fabric-faq" 6279 > 6280 Sunbrella FAQ's 6281 </a> 6282 </li><li> 6283 <a href="/pages/sunbrella-info-warranty" 6284 > 6285 Sunbrella Warranty 6286 </a> 6287 </li></ul> 6288 </div> 6289 </details> 6290 </footer-menu> 6291 </div><div class="footer-col footer-col--links footer-col--collapsed" data-cc-animate data-cc-animate-delay="0.21s"> 6292 <footer-menu> 6293 <details class="footer-menu disclosure" open> 6294 <summary tabindex="-1"> 6295 <div class="flex justify-between items-center"> 6296 <h2 class="disclosure__title font-body font-bold text-h6 regular-text">Resources</h2>
6297 <span class="disclosure__toggle"><svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 6298</span> 6299 </div> 6300 </summary> 6301 <div class="disclosure__panel has-motion"> 6302 <ul class="footer-menu__links disclosure__content" role="list"><li> 6303 <a href="/pages/free-sunbrella-samples" 6304 > 6305 Free Sunbrella Samples 6306 </a> 6307 </li><li> 6308 <a href="/pages/sunbrella-cleaning-guide" 6309 > 6310 Sunbrella Cleaning & Care 6311 </a> 6312 </li><li> 6313 <a href="/pages/sunbrella-measuring-cushion" 6314 > 6315 Cushion & Curtain Measuring 6316 </a> 6317 </li><li> 6318 <a href="/pages/custom-outdoor-curtains-made-with-sunbrella-fabric" 6319 > 6320 Custom Outdoor Curtains 6321 </a> 6322 </li><li> 6323 <a href="/collections/sunbrella-custom-products" 6324 > 6325 Sunbrella Custom Products 6326 </a> 6327 </li><li> 6328 <a href="/pages/sunbrella-umbrella-recover" 6329 > 6330 Umbrella Fabric Replacements 6331 </a> 6332 </li><li> 6333 <a href="/pages/sunbrella-reviews" 6334 > 6335 Customer Testimonials 6336 </a> 6337 </li><li> 6338 <a href="/blogs/news" 6339 > 6340 Sunbrella Blog 6341 </a> 6342 </li></ul> 6343 </div> 6344 </details> 6345 </footer-menu> 6346 </div><div class="footer-col footer-col--links footer-col--collapsed" data-cc-animate data-cc-animate-delay="0.28s"> 6347 <footer-menu> 6348 <details class="footer-menu disclosure" open> 6349 <summary tabindex="-1"> 6350 <div class="flex justify-between items-center"> 6351 <h2 class="disclosure__title font-body font-bold text-h6 regular-text">Buy Sunbrella Custom</h2> 6352 <span class="disclosure__toggle"><svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> 6353</span> 6354 </div> 6355 </summary> 6356 <div class="disclosure__panel has-motion"> 6357 <ul class="footer-menu__links disclosure__content" role="list"><li> 6358 <a href="/collections/sunbrella-custom-cushions" 6359 > 6360 Build Sunbrella Cushions 6361 </a> 6362 </li><li> 6363 <a href="/collections/sunbrella-custom-outdoor-curtains" 6364 > 6365 Shop Sunbrella Curtains 6366 </a> 6367 </li><li> 6368 <a href="/products/sunbrella-custom-size-throw-pillows" 6369 > 6370 Buy Sunbrella Pillows 6371 </a> 6372 </li><li> 6373 <a href="/collections/custom-panels" 6374 > 6375 Purchase Sunbrella Shade 6376 </a> 6377 </li></ul> 6378 </div> 6379 </details> 6380 </footer-menu> 6381 </div></div><div class="footer__base mt-8 grid grid-cols-1 lg:grid-cols-2 gap-x-theme gap-y-6 text-xs" data-cc-animate> 6382 <div><span>© 2026 <a href="/">Outdoor Fabric Central</a>.</span> 6383 | Website by: <a href="http://refueledinc.com/" target="_blank" rel="noopener nofollow">Refueled Inc.</a> All rights reserved. 6384 6385 6386 </div><div> 6387 <ul class="footer-sublinks flex flex-wrap gap-x-theme" role="list"> 6388 6389 <li class="footer-sublinks__item"> 6390 <a href="/pages/about-us" 6391 > 6392 About 6393 </a> 6394 </li> 6395 6396 <li class="footer-sublinks__item"> 6397 <a href="/pages/contact" 6398 > 6399 Contact 6400 </a> 6401 </li> 6402 6403 <li class="footer-sublinks__item"> 6404 <a href="/pages/custom-manufactured-products-info" 6405 > 6406 Cushions/Shade/Covers 6407 </a> 6408 </li> 6409 6410 <li class="footer-sublinks__item"> 6411 <a href="/policies/refund-policy" 6412 6413 rel="nofollow" 6414 > 6415 Refund / Return 6416 </a> 6417 </li> 6418 6419 <li class="footer-sublinks__item"> 6420 <a href="/pages/terms-conditions" 6421 6422 rel="nofollow" 6423 > 6424 Terms & Conditions 6425 </a> 6426 </li> 6427 6428 <li class="footer-sublinks__item"> 6429 <a href="/policies/privacy-policy" 6430 6431 rel="nofollow" 6432 > 6433 Your Privacy 6434 </a> 6435 </li> 6436 6437 <li class="footer-sublinks__item"> 6438 <a href="/tools/seo/sitemap" 6439 > 6440 Sitemap 6441 </a> 6442 </li> 6443 6444 </ul> 6445 </div></div> 6446 </div> 6447</footer> 6448 6449 6450 6451 6452</div> 6453<!-- END sections: footer-group --> 6454<quick-add-drawer class="drawer quick-add-drawer fixed top-0 right-0 flex flex-col w-full has-motion qo-sale-prices js-product" data-name="quickbuy" role="dialog" tabindex="-1" aria-labelledby="quick-add-heading" aria-modal="true" aria-hidden="true"> 6455 <header class="drawer__header quick-add__header hidden md:flex justify-between items-center relative"> 6456 <button type="button" class="drawer__back-btn js-open-cart-drawer has-ltr-icon" hidden>
6457 <span class="visually-hidden">Back</span> 6458 <svg width="24" height="24" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M19.5 12H5m6.9 7.4L4.5 12l7.4-7.4"/></svg> 6459 </button> 6460 <div class="flex-grow"> 6461 <h2 class="h5 mb-0" id="quick-add-heading">Choose options</h2> 6462 </div> 6463 <button type="button" class="drawer__close-btn js-close-drawer"> 6464 <span class="visually-hidden">Close</span> 6465 <svg width="24" height="24" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" fill="none" fill-rule="evenodd" stroke-linejoin="round" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M5 19 19 5M5 5l14 14"/></svg> 6466 </button> 6467 </header> 6468 <div class="drawer__content quick-add__content flex-auto shrink-0 relative"> 6469 <button type="button" class="drawer__close-btn quick-add__close-btn--mob js-close-drawer md:hidden"> 6470 <span class="visually-hidden">Close</span> 6471 <svg width="24" height="24" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" fill="none" fill-rule="evenodd" stroke-linejoin="round" aria-hidden="true" focusable="false" role="presentation" class="icon"><path d="M5 19 19 5M5 5l14 14"/></svg> 6472 </button> 6473 <div class="js-product-details quick-add__product-details"></div> 6474 <div class="quick-add__quick-order-list js-quick-order-list"></div> 6475 </div> 6476 <footer class="drawer__footer quick-add__footer"> 6477 <div class="alert quick-add__alert absolute left-0 right-0 bg-success-bg text-success-text js-added-to-cart" role="alert" hidden data-visible-for="2000"> 6478 <div class="flex"> 6479 <div> 6480 <svg class="icon icon--check_mark_in_circle" width="32" height="32" viewBox="0 0 16 16" aria-hidden="true" focusable="false" role="presentation"><circle stroke="currentColor" fill="none" cx="8" cy="8" r="6.6666665"/> 6481 <path stroke="currentColor" fill="none" transform="translate(5.0003335,6.0003335)" d="m 6,0 -4,4 L 0,2.1818182" /></svg> 6482 </div> 6483 <div> 6484 <p class="quick-add__alert-heading text-h5 font-bold mb-1">Item added to your cart.</p> 6485 <a rel="nofollow" class="link text-current js-open-cart-drawer" href="/cart" data-no-instant>View cart</a> 6486 </div> 6487 </div> 6488 </div> 6489 <product-form></product-form> 6490 </footer> 6491</quick-add-drawer> 6492<div class="overlay fixed top-0 right-0 bottom-0 left-0 js-overlay"></div> 6493
6493<script> 6494 window.theme = { 6495 info: { 6496 name: 'Canopy', 6497 version: '6.3.2' 6498 }, 6499 mediaQueries: { 6500 sm: '(min-width: 600px)', 6501 md: '(min-width: 769px)', 6502 lg: '(min-width: 1024px)', 6503 xl: '(min-width: 1280px)', 6504 xxl: '(min-width: 1536px)', 6505 portrait: '(orientation: portrait)' 6506 }, 6507 device: { 6508 hasTouch: window.matchMedia('(any-pointer: coarse)').matches, 6509 hasHover: window.matchMedia('(hover: hover)').matches 6510 }, 6511 routes: { 6512 cart: '/cart', 6513 cartAdd: '/cart/add', 6514 cartChange: '/cart/change', 6515 cartUpdate: '/cart/update', 6516 cartClear: '/cart/clear', 6517 predictiveSearch: '/search/suggest' 6518 }, 6519 settings: { 6520 moneyWithCurrencyFormat: "${{amount}} USD", 6521 pSearchLimit: 4, 6522 pSearchLimitScope: 'each', 6523 pSearchIncludeSkus: true, 6524 pSearchIncludeTags: true, 6525 sliderItemsPerNav: 'page', 6526 6527 vibrateOnATC: true, 6528 compareToggle: true, 6529 compareShowEmptyMetafields: false, 6530 blendProductImages: false, 6531 externalLinksNewTab: true, 6532 afterAtc: "page", 6533 cartType: "drawer", 6534 dockCartDrawer: false 6535 }, 6536 strings: { 6537 addCartNote: 'Add order note', 6538 editCartNote: 'Edit order note', 6539 cartError: 'There was an error while updating your cart. Please try again.', 6540 cartQtyError: 'You can only add [quantity] of this item to your cart.', 6541 confirmEmptyCart: 'Are you sure you want to empty your cart?', 6542 cartTermsConfirmation: 'You must agree to the terms and conditions before continuing.', 6543 imageAvailable: 'Image [index] is now available in gallery view', 6544 veryLowStock: 'Very low stock', 6545 lowStock: 'Low stock', 6546 inStock: 'In stock', 6547 noStock: 'Sold out', 6548 noVariant: 'Unavailable', 6549 onlyXLeft: '[quantity] in stock', 6550 awaitingSale: 'This product is not for sale yet.', 6551 shippingCalculator: { 6552 singleRate: 'There is one shipping rate for this destination:', 6553 multipleRates: 'There are multiple shipping rates for this destination:', 6554 noRates: 'We do not ship to this destination.' 6555 }, 6556 viewDetails: 'View details', 6557 compare: { 6558 limit: 'You can only add a maximum of [quantity] products to compare.', 6559 more: 'Select another product to compare.', 6560 empty: 'Select at least two products to compare.', 6561 continue: 'Close to continue.' 6562 }, 6563 discountCopyFail: 'Could not copy code to clipboard. Your browser may not support this.', 6564 quickNav: { 6565 button_standard: 'Search', 6566 show_products_none: 'No products :(', 6567 button_one: 'Show [quantity] product', 6568 button_other: 'Show [quantity] products', 6569 }, 6570 }, 6571 scripts: { 6572 cartItems: '//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/cart-items.js?v=90966404011074112001736781214', 6573 countryProvinceSelector: '//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/country-province-selector.js?v=24158546944577672431736781213', 6574 shippingCalculator: '//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/shipping-calculator.js?v=31725526838375758301736781213' 6575 } 6576 }; 6577 6578 // Save product ID to localStorage, for use in the 'Recently viewed products' section. 6579 </script>
6579<script src="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/instant-page.js?v=473454186210797571736781213" type="module" defer="defer"></script>
6579 6580 6581<link href="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/theme-font-icon-styles-font-awesome.css?v=73233857377840401811759848636" rel="stylesheet" type="text/css" media="all" /> 6582 6583<link href="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/theme-custom-web-font-poppins.css?v=68020270436186434281750094950" rel="stylesheet" type="text/css" media="all" /> 6584<link href="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/theme-global-custom.css?v=167215998710867703741786064745" rel="stylesheet" type="text/css" media="all" /> 6585 6586<link href="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/theme-custom-ofc.css?v=35740370486785406631788879055" rel="stylesheet" type="text/css" media="all" /> 6587<link href="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/theme-global-jonny-zoom.css?v=82373794700540794741774131332" rel="stylesheet" type="text/css" media="all" /> 6588 6589 6590
6591<script src="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/theme-global-util.js?v=15783756980496830421754592282" defer="defer"></script>
vendor: 1 bytes, line 6591
6591
6592<script src="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/theme-global-jonny-query-final.min.js?v=148349100216058883341790443728" defer="defer"></script>
vendor: 1 bytes, line 6592
6592
6593<script src="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/theme-global-jonny-zoom.min.js?v=84741324556336874501790443729" defer="defer"></script>
6593 6594 6595 6596 6597 6598 6599
6600<script src="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/theme-global-custom.js?v=165413646434342978061789517734" defer="defer"></script>
6600 6601 6602 6603 6604
6604<script src="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/theme-global-dpo-cart-overrides.js?v=16589174172039132411785425836" defer="defer"></script>
6604 6605 6606 6607 6608 6609
6610<script src="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/theme-global-custom-quantity-min-max-validation.js?v=112423518816559296311771426149" defer="defer"></script>
6610 6611 6612
6613<script src="//www.outdoorfabriccentral.com/cdn/shop/t/2/assets/ecs-theme-ga.js?v=138607198498356281311774656143" defer="defer"></script>
6613 6614 6615 6616 6617 <ul class="clearfix from-admin-menu top-header-panel-links-info-menu"> 6618 6619 <li class="nav item"> 6620 <a href="/pages/about-us" 6621 >About Us</a> 6622 </li> 6623 6624 <li class="nav item"> 6625 <a href="/pages/contact" 6626 >Contact</a> 6627 </li> 6628 6629 <li class="nav item"> 6630 <a href="/policies/shipping-policy" 6631 6632 rel="nofollow" 6633 >Shipping</a> 6634 </li> 6635 6636</ul> 6637<style> .product-info__block.has-volume-table {display: block !important; /* Ensure it is visible */} </style> 6638<div id="shopify-block-ATys2MjlvOE4yTUVaZ__6091580277106134563" class="shopify-block shopify-app-block"><div class="axt-popup-overlay" style="display:none"><div class="axt-popup-dialog axt-bxgy-card-background"><div class="d-flex align-items-center"><img src="https://cdn.shopify.com/extensions/01a0e6c2-2403-7b1f-81f6-6600f564cc7f/customer-group-pricing-1394/assets/gift_image.png" alt="gift_icon" width="24" height="24" class="axt-warning-card"><p>Adding item to the cart...</p></div><div><div class="axt-progressbar-bg"> </div></div></div></div>
6639<script>window.AXT_OBJ={axt_currency_format:"${{amount}}",axt_price_format:"$0.00 USD",axt_currency_code:"USD",axt_locale_code:"en",axt_currency_code_status:null,axt_user_currency:"USD",axt_customer_country:"US",axt_base_currency:"USD",axt_customer_tags:null,axt_shop:"outdoorfabriccentral.myshopify.com",axt_shop_domain:"www.outdoorfabriccentral.com",axt_host:"https://custompricing.axtrics.com"};</script>
6639</div><div id="shopify-block-AeWtjZE1LT2Irb3pva__7079518687644006178" class="shopify-block shopify-app-block">
6639<script> 6640 (function () { 6641 const cartAttributes = {}; 6642 6643 // Helper function to retrieve the UTM from Url 6644 function getUTMFromUrl() { 6645 const url_string = window.location.href; 6646 const url = new URL(url_string); 6647 6648 const utm_id = url.searchParams.get("utm_id"); 6649 const utm_source = url.searchParams.get("utm_source"); 6650 const utm_medium = url.searchParams.get("utm_medium"); 6651 const utm_campaign = url.searchParams.get("utm_campaign"); 6652 const utm_term = url.searchParams.get("utm_term"); 6653 const ref = url.searchParams.get("ref"); 6654 6655 if (!utm_id && !utm_source && !utm_medium && !utm_campaign && !ref) { 6656 return null; 6657 } 6658 6659 let utmParameters = {}; 6660 6661 if (utm_id) { 6662 utmParameters.utm_id = utm_id; 6663 } 6664 if (utm_source) { 6665 utmParameters.utm_source = utm_source; 6666 } 6667 if (utm_medium) { 6668 utmParameters.utm_medium = utm_medium; 6669 } 6670 if (utm_campaign) { 6671 utmParameters.utm_campaign = utm_campaign; 6672 } 6673 if (utm_term) { 6674 utmParameters.utm_term = utm_term; 6675 } 6676 if (ref) { 6677 utmParameters.ref = ref; 6678 } 6679 6680 6681 return Object.keys(utmParameters).length === 0 6682 ? null 6683 : utmParameters; 6684 } 6685 6686 // Helper function to retrieve the UTM from Cookie 6687 function getUTMAttributes() { 6688 const urlUtmParams = getUTMFromUrl(); 6689 6690 if (urlUtmParams) { 6691 return urlUtmParams; 6692 } 6693 6694 // No longer reading from deprecated Shopify cookies 6695 return undefined; 6696 } 6697 6698 function saveUtmParameters() { 6699 const utmParams = getUTMAttributes(); 6700 if (utmParams) { 6701 const cartHasUtmAttributes = Object.keys(cartAttributes).find(attributeKey => attributeKey.startsWith("utm_") || attributeKey === "ref"); 6702 if (cartHasUtmAttributes) { 6703 // Don't call API if it already contains our UTM parameters 6704 return; 6705 } 6706 6707 // Handle both Shopify.routes.root and routes.root_url for better compatibility 6708 var rootUrl = (window.Shopify && window.Shopify.routes && window.Shopify.routes.root) 6709 || (window.routes && window.routes.root_url) 6710 || '/'; 6711 6712 var updateCart = fetch(rootUrl + 'cart/update.js', 6713 { 6714 headers: { 6715 'Content-Type': 'application/json', 6716 }, 6717 method: "POST", 6718 body: JSON.stringify({ 6719 attributes: { 6720 ...utmParams 6721 }, 6722 }) 6723 }) 6724 .then(response => response.json()) 6725 .then(data => { 6726 return data 6727 }); 6728 } 6729 } 6730 6731 saveUtmParameters(); 6732 })(); 6733</script>
6733 6734 6735 6736 6737 6738</div><div id="shopify-block-ASzN3YUE1bDBPKzB0N__4271225749624253571" class="shopify-block shopify-app-block">
vendor: 71 bytes, lines 6738-6740
6738 6739 6740 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
6740GTM-TCRQTPGW
vendor: 86 bytes, lines 6740-6741
6740" height="0" width="0" style="display:none;visibility:hidden"></iframe> 6741 </noscript>
6741<!-- BEGIN app snippet: master-datalayer -->
6741<script defer> 6742 let logged_in_status = ShopifyAnalytics.meta.page.customerId ? 'logged_in' : 'non_logged_in' 6743 let userID = ShopifyAnalytics.meta.page.customerId ? ShopifyAnalytics.meta.page.customerId : 'NA' 6744 let user_type = ShopifyAnalytics.meta.page.customerId ? 'registered_user' : 'guest' 6745 6746 if(!window.jQuery){ 6747 var jqueryScript = document.createElement('script'); 6748 jqueryScript.setAttribute('src','https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js'); 6749 document.head.appendChild(jqueryScript); 6750 } 6751 6752 __DL__jQueryinterval = setInterval(function(){ 6753 if(window.jQuery){ 6754 getURLParams = function(name, url){ 6755 if (!url) url = window.location.href; 6756 name = name.replace(/[\[\]]/g, "\\$&"); 6757 var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 6758 results = regex.exec(url); 6759 if (!results) return null; 6760 if (!results[2]) return ''; 6761 return decodeURIComponent(results[2].replace(/\+/g, " ")); 6762 }; 6763 __DL__ = { dynamicCart: true, debug: false, cart: null, wishlist: null, removeCart: null }; 6764 6765 customBindings = { 6766 cartTriggers: [], 6767 viewCart: [], 6768 removeCartTrigger: [], 6769 cartVisableSelector: [], 6770 promoSubscriptionsSelectors: [], 6771 promoSuccess: [], 6772 ctaSelectors: [], 6773 newsletterSelectors: [], 6774 newsletterSuccess: [], 6775 searchPage: [], 6776 wishlistSelector: [], 6777 removeWishlist: [], 6778 wishlistPage: [], 6779 checkoutSelectors: [], 6780 selectProduct: [], 6781 searchTermQuery: [getURLParams('q')], // replace var with correct query 6782 buyProduct:[], 6783 shippingInfo:[], 6784 selectContent:['.product__description'], 6785 }; 6786 6787 /* DO NOT EDIT */ 6788 defaultBindings = { 6789 cartTriggers: ['.add-to-cart, .product-form__submit,form[action="/cart/add"][type="submit"],.cart-btn'], 6790 viewCart: ['form[action="/cart"],.my-cart,.trigger-cart,#mobileCart'], 6791 removeCartTrigger: ['[href*="/cart/change?"],.remove-cart , [name="minus"], .button button--tertiary'], 6792 shareItem: ['.share-button__button,.link list-social__link'], 6793 selectItem: ['[href*="/products/?"]'], 6794 cartVisableSelector: ['.inlinecart.is-active,.inline-cart.is-active'], 6795 promoSubscriptionsSelectors: [], 6796 viewPromotion: ['.banner__content,.button button--primary,.button button--secondary'], 6797 promoSuccess: [], 6798 ctaSelectors: [], 6799 newsletterSelectors: ['input.contact_email'], 6800 newsletterSuccess: ['.success_message'], 6801 // searchPage: ['.header__search,.search__button field__button,[type="submit"]'], 6802 searchPage: ['search'], 6803 wishlistSelector: ['.add-to-wishlist,.wishlist-engin,.wishlisthero-product-in-wishlist,#add-to-wishlist,wishlisthero-product-page-button-container,#addToWishlist,.vt-wishlist-button'], 6804 selectProduct: ['.product-card'], 6805 checkoutSelectors: ['[name="checkout"], .checkout, .slider-cart-checkout-btn,.checkout-btn, .shopify-payment-button__button'], 6806 buyProduct:['.shopify-payment-button'], 6807 contactus:['.contact__button'], 6808 selectContent:['.product__description'], 6809 }; 6810 6811 // stitch bindings 6812 objectArray = customBindings; 6813 outputObject = __DL__; 6814 6815 applyBindings = function(objectArray, outputObject){ 6816 for (var x in objectArray) { 6817 var key = x; 6818 var objs = objectArray[x]; 6819 values = []; 6820 if(objs.length > 0){ 6821 values.push(objs); 6822 if(key in outputObject){
6823 values.push(outputObject[key]); 6824 outputObject[key] = values.join(", "); 6825 }else{ 6826 outputObject[key] = values.join(", "); 6827 } 6828 } 6829 } 6830 }; 6831 6832 applyBindings(customBindings, __DL__); 6833 applyBindings(defaultBindings, __DL__); 6834 clearInterval(__DL__jQueryinterval); 6835 6836 if(__DL__.debug){ console.log('Page Template: cart'); } 6837 6838 window.dataLayer = window.dataLayer || []; 6839 6840 var template = "cart"; 6841 6842 /** COV DL : Product List Page (Collections, Category) 6843 * Fire on all product listing pages. */ 6844 6845 6846 6847 6848 6849 /** COV DL : Contact us Page hit on generate_lead from form submission. */ 6850 6851 /* COV DL : Product Page hiton all Product View & collection pages add_to_cart use this payload. */ 6852 6853 6854 /** COV DL : Cart View Fire anytime a user views their cart (non-dynamic) */ 6855 6856 console.log('COV DATALAYER: DataLayer Loaded..'); 6857 /********************** 6858 * DATALAYER EVENT BINDINGS 6859 ***********************/ 6860 6861 /** COV DL : 6862 * Add to Cart / Dynamic Cart View 6863 * Fire all pages trigger after all additional cov_ga4_dataLayers have loaded. */ 6864 6865 $(document).ready(function() { 6866 /** COV DL : Search Results */ 6867 searchPage = new RegExp(__DL__.searchPage, "g"); 6868 if(document.location.pathname.match(searchPage)){ 6869 var search = { 6870 'searchTerm' : __DL__.searchTermQuery, 6871 'pageType' : "Search", 6872 'event' : "search" 6873 }; 6874 window.dataLayer.push(search); 6875 if(__DL__.debug){ 6876 console.log("Search"+" :"+JSON.stringify(search, null, " ")); 6877 } 6878 } 6879 6880 function __DL__addtocart(){ 6881 pdp_items[0].quantity = parseInt(jQuery('.quantity__input').val()); 6882 dataLayer.push({ 6883 'event' : 'add_to_cart', 6884 'logged_in_status':logged_in_status, 6885 'userID':userID, 6886 'user_type':user_type, 6887 ecommerce: { 6888 'currency': "USD", 6889 6890 'items': pdp_items 6891 } 6892 }); 6893 } 6894 6895 $(document).on('click', __DL__.cartTriggers, function() { 6896 __DL__addtocart(); 6897 }); 6898 }); // document ready end 6899 } 6900 }, 500); 6901</script>
6901 6902 6903<!-- END app snippet --> 6904 6905 6906 6907</div>
6907<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
6907 6908</body> 6909</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.