PageSourceSearch

https://fittes.ca/

html fittes.ca collected 2026-10-08 09:16:14 UTC 848,931 bytes, 15,816 lines download raw bytes

1<!doctype html>
2<html class="js" lang="en">
3  <head>
4    
5    <meta charset="utf-8">
6    <meta http-equiv="X-UA-Compatible" content="IE=edge">
7    <meta name="viewport" content="width=device-width,initial-scale=1">
8    <meta name="theme-color" content="">
9    <link rel="canonical" href="https://fittes.ca/"><link rel="icon" type="image/png" href="//fittes.ca/cdn/shop/files/Untitled_design_66_bf3f4547-dabc-4382-8809-1783186b20ca.png?crop=center&height=32&v=1743054514&width=32"><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin><!-- google fonts -->
10    <link rel="preconnect" href="https://fonts.googleapis.com">
11    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
12    <link href="https://fonts.googleapis.com/css2?family=Outfit:[email protected]&display=swap" rel="stylesheet">
13
14    <title>
15      Fittes - Finishes that steal the show
16 &ndash; Fittes 🍁</title>
17
18    
19      <meta name="description" content="Custom air covers and air registers that are compatible with any surface - wood, laminate, tile, mosaic, carpet, vinyl, MDF, drywall, etc. Upgrade your home with a sleek, minimalist vent that compliments your interior design. It can be installed on your floor, wall, ceiling, and HVAC air vents.">
20    
21
22    
23
24<meta property="og:site_name" content="Fittes 🍁">
25<meta property="og:url" content="https://fittes.ca/">
26<meta property="og:title" content="Fittes - Finishes that steal the show">
27<meta property="og:type" content="website">
28<meta property="og:description" content="Custom air covers and air registers that are compatible with any surface - wood, laminate, tile, mosaic, carpet, vinyl, MDF, drywall, etc. Upgrade your home with a sleek, minimalist vent that compliments your interior design. It can be installed on your floor, wall, ceiling, and HVAC air vents."><meta property="og:image" content="http://fittes.ca/cdn/shop/files/Social_preview.jpg?v=1691585101">
29  <meta property="og:image:secure_url" content="https://fittes.ca/cdn/shop/files/Social_preview.jpg?v=1691585101">
30  <meta property="og:image:width" content="1200">
31  <meta property="og:image:height" content="628"><meta name="twitter:site" content="@https://x.com/fittesco"><meta name="twitter:card" content="summary_large_image">
32<meta name="twitter:title" content="Fittes - Finishes that steal the show">
33<meta name="twitter:description" content="Custom air covers and air registers that are compatible with any surface - wood, laminate, tile, mosaic, carpet, vinyl, MDF, drywall, etc. Upgrade your home with a sleek, minimalist vent that compliments your interior design. It can be installed on your floor, wall, ceiling, and HVAC air vents.">
34
35
36    
36<script src="//fittes.ca/cdn/shop/t/139/assets/constants.js?v=132983761750457495441788881638" defer="defer"></script>
36
37    
37<script src="//fittes.ca/cdn/shop/t/139/assets/pubsub.js?v=158357773527763999511788881704" defer="defer"></script>
37
38    
38<script src="//fittes.ca/cdn/shop/t/139/assets/global.js?v=95941489438249734891788881649" defer="defer"></script>
38
39    
39<script src="//fittes.ca/cdn/shop/t/139/assets/details-disclosure.js?v=13653116266235556501788881640" defer="defer"></script>
39
40    
40<script src="//fittes.ca/cdn/shop/t/139/assets/details-modal.js?v=25581673532751508451788881640" defer="defer"></script>
40
41    
41<script src="//fittes.ca/cdn/shop/t/139/assets/search-form.js?v=133129549252120666541788881709" defer="defer"></script>
41<script src="//fittes.ca/cdn/shop/t/139/assets/animations.js?v=88693664871331136111788881615" defer="defer"></script>
41<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
41<meta name="google-site-verification" content="g425LGg5__l3mU4HrRHAQtY5qIZYIJ8cOyQa5DQDApA">
42<meta name="google-site-verification" content="Vz04zHhQvq6G78-m63fET8QKUIiLUr1Ayyz5fL1y9tc">
43<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/11712102462/digital_wallets/dialog">
44<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
44<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=9404604"></script>
44
45<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
46<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=9404604&shop_id=11712102462" crossorigin="anonymous"></script>
vendor: 1 bytes, line 46
46
47<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":11712102462,"countryCode":"CA","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/11712102462","merchantName":"Fittes 🍁","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","interac","jcb"],"total":{"type":"pending","label":"Fittes 🍁","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 47
47
48<script id="shopify-features" type="application/json">{"accessToken":"d69aecbcb36f59df6603ef7001897eaa","betas":["rich-media-storefront-analytics"],"domain":"fittes.ca","predictiveSearch":true,"shopId":11712102462,"locale":"en"}</script>
vendor: 1 bytes, line 48
48
49<script>var Shopify = Shopify || {};
50Shopify.shop = "ariavent.myshopify.com";
51Shopify.locale = "en";
52Shopify.currency = {"active":"USD","rate":"0.7154025"};
53Shopify.country = "US";
54Shopify.theme = {"name":"Copy of LIVE - v2.1.7 (a9886e3) HREFLANG - bread","id":193544421746,"schema_name":"Dawn","schema_version":"15.2.0","theme_store_id":null,"role":"main"};
55Shopify.theme.handle = "null";
56Shopify.theme.style = {"id":null,"handle":null};
57Shopify.cdnHost = "fittes.ca/cdn";
58Shopify.routes = Shopify.routes || {};
59Shopify.routes.root = "/";
60Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
61Shopify.SignInWithShop = Shopify.SignInWithShop || {};
62Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
63Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 63
63
64<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 64
64
65<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 65
65
66<script>
67  window.ShopifyPay = window.ShopifyPay || {};
68  window.ShopifyPay.apiHost = "shop.app\/pay";
69  window.ShopifyPay.redirectState = null;
70</script>
vendor: 1 bytes, line 70
70
71<script>
72  window.Shopify = window.Shopify || {};
73  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
74  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
75  window.Shopify.SignInWithShop.eligible = true;
76</script>
vendor: 1 bytes, line 76
76
77<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
vendor: 1 bytes, line 77
77
78<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 78
78
79<script type="module">
80  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
81
82  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
83
84</script>
vendor: 1 bytes, line 84
84
85<script>
86  window.Shopify = window.Shopify || {};
87  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
88  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"]};
89</script>
vendor: 1 bytes, line 89
89
90<script>(function() {
91  var isLoaded = false;
92  function asyncLoad() {
93    if (isLoaded) return;
94    isLoaded = true;
95    var urls = ["https:\/\/size-charts-relentless.herokuapp.com\/js\/size-charts-relentless.js?shop=ariavent.myshopify.com","https:\/\/orderstatus.w3apps.co\/js\/orderlookup.js?shop=ariavent.myshopify.com","\/\/cdn.shopify.com\/proxy\/9b767a25daa82ae5d3d32e55e5bc5819484c73b45058b8e4898e1943df1f9fc0\/apps.bazaarvoice.com\/deployments\/fittes\/main_site\/production\/en_CA\/bv.js?shop=ariavent.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","https:\/\/config.gorgias.chat\/bundle-loader\/01H35QTQ362ZWWYP36R7VWQ0Z6?source=shopify1click\u0026shop=ariavent.myshopify.com","https:\/\/media.9gtb.com\/loader.js?g_cvt_id=9cf86c91-d35b-4f48-880c-3370e6d15cc8\u0026shop=ariavent.myshopify.com"];
96    for (var i = 0; i < urls.length; i++) {
97      var s = document.createElement('script');
98      s.type = 'text/javascript';
99      s.async = true;
100      s.src = urls[i];
101      var x = document.getElementsByTagName('script')[0];
102      x.parentNode.insertBefore(s, x);
103    }
104  };
105  if(window.attachEvent) {
106    window.attachEvent('onload', asyncLoad);
107  } else {
108    window.addEventListener('load', asyncLoad, false);
109  }
110})();</script>
vendor: 1 bytes, line 110
110
111<script id="__st">var __st={"a":11712102462,"offset":-14400,"reqid":"49b0a359-863b-4d4d-b87f-7d89adca0920-1791450973","pageurl":"fittes.ca\/","u":"445a5bf5669f","p":"home"};</script>
vendor: 1 bytes, line 111
111
112<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 112
112
113<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 113
113
114<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//fittes.ca/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 114
114
115<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 = "//fittes.ca/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
115<script crossorigin="anonymous" defer="defer" src="//fittes.ca/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-f0e26bdf.js?v=20250812"></script>
vendor: 1 bytes, line 115
115
116<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 116
116
117<script>
118  window.Shopify = window.Shopify || {};
119  window.Shopify.MCP = window.Shopify.MCP || {};
120  window.Shopify.MCP.enabled = true;
121  window.Shopify.MCP.shop = "ariavent.myshopify.com";
122  window.Shopify.MCP.mcpEndpoint = "https:\/\/fittes.ca\/api\/mcp";
123  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?\"\nSet policy_types to also get the store's written policies (full text and URL).\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."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question — e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}];
124</script>
vendor: 1 bytes, line 124
124
125<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("\/\/fittes.ca\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})();
126</script>
vendor: 1 bytes, line 126
126
127<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://fittes.ca/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
128</script>
vendor: 1 bytes, line 128
128
129<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
130  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);
131</script>
vendor: 1 bytes, line 131
131
132<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})}}));
133</script>
133
134<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://fittes.ca/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
135<style id="shopify-accelerated-checkout-cart">
136        #shopify-buyer-consent {
137  margin-top: 1em;
138  display: inline-block;
139  width: 100%;
140}
141
142#shopify-buyer-consent.hidden {
143  display: none;
144}
145
146#shopify-subscription-policy-button {
147  background: none;
148  border: none;
149  padding: 0;
150  text-decoration: underline;
151  font-size: inherit;
152  cursor: pointer;
153}
154
155#shopify-subscription-policy-button::before {
156  box-shadow: none;
157}
158
159      </style>
160<script id="sections-script" data-sections="header" defer="defer" src="//fittes.ca/cdn/shop/t/139/compiled_assets/scripts.js?v=41181609318752002771790705481"></script>
vendor: 1 bytes, line 160
160
161<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
161
162
163
164    <style data-shopify>
165      @font-face {
166  font-family: Lora;
167  font-weight: 400;
168  font-style: normal;
169  font-display: swap;
170  src: url("//fittes.ca/cdn/fonts/lora/lora_n4.9a60cb39eff3bfbc472bac5b3c5c4d7c878f0a8d.woff2") format("woff2"),
171       url("//fittes.ca/cdn/fonts/lora/lora_n4.4d935d2630ceaf34d2e494106075f8d9f1257d25.woff") format("woff");
172}
173
174      @font-face {
175  font-family: Lora;
176  font-weight: 700;
177  font-style: normal;
178  font-display: swap;
179  src: url("//fittes.ca/cdn/fonts/lora/lora_n7.58a834e7e54c895806b2ffc982e4a00af29b1b9c.woff2") format("woff2"),
180       url("//fittes.ca/cdn/fonts/lora/lora_n7.05fdf76140ca6e72e48561caf7f9893c487c3f1b.woff") format("woff");
181}
182
183      @font-face {
184  font-family: Lora;
185  font-weight: 400;
186  font-style: italic;
187  font-display: swap;
188  src: url("//fittes.ca/cdn/fonts/lora/lora_i4.a5059b22bd0a7547da84d66d2f523d17d17325d3.woff2") format("woff2"),
189       url("//fittes.ca/cdn/fonts/lora/lora_i4.cb2d2ab46128fa7f84060d5f92cf3f49dc8181bd.woff") format("woff");
190}
191
192      @font-face {
193  font-family: Lora;
194  font-weight: 700;
195  font-style: italic;
196  font-display: swap;
197  src: url("//fittes.ca/cdn/fonts/lora/lora_i7.1bf76118f47019e7581a865f0f538b8ea5900419.woff2") format("woff2"),
198       url("//fittes.ca/cdn/fonts/lora/lora_i7.1a7c7f083405ec98e57d8033d38caa748580f7ff.woff") format("woff");
199}
200
201      @font-face {
202  font-family: Lora;
203  font-weight: 400;
204  font-style: normal;
205  font-display: swap;
206  src: url("//fittes.ca/cdn/fonts/lora/lora_n4.9a60cb39eff3bfbc472bac5b3c5c4d7c878f0a8d.woff2") format("woff2"),
207       url("//fittes.ca/cdn/fonts/lora/lora_n4.4d935d2630ceaf34d2e494106075f8d9f1257d25.woff") format("woff");
208}
209
210
211      
212        :root,
213        .color-scheme-1 {
214          --color-background: 255,255,255;
215        
216          --gradient-background: #ffffff;
217        
218
219        
220
221        --color-foreground: 18,18,18;
222        --color-background-contrast: 191,191,191;
223        --color-shadow: 18,18,18;
224        --color-button: 18,18,18;
225        --color-button-text: 255,255,255;
226        --color-secondary-button: 255,255,255;
227        --color-secondary-button-text: 18,18,18;
228        --color-link: 18,18,18;
229        --color-badge-foreground: 18,18,18;
230        --color-badge-background: 255,255,255;
231        --color-badge-border: 18,18,18;
232        --payment-terms-background-color: rgb(255 255 255);
233      }
234      
235        
236        .color-scheme-2 {
237          --color-background: 243,243,243;
238        
239          --gradient-background: #f3f3f3;
240        
241
242        
243
244        --color-foreground: 18,18,18;
245        --color-background-contrast: 179,179,179;
246        --color-shadow: 18,18,18;
247        --color-button: 18,18,18;
248        --color-button-text: 243,243,243;
249        --color-secondary-button: 243,243,243;
250        --color-secondary-button-text: 18,18,18;
251        --color-link: 18,18,18;
252        --color-badge-foreground: 18,18,18;
253        --color-badge-background: 243,243,243;
254        --color-badge-border: 18,18,18;
255        --payment-terms-background-color: rgb(243 243 243);
256      }
257      
258        
259        .color-scheme-3 {
260          --color-background: 36,40,51;
261        
262          --gradient-background: #242833;
263        
264
265        
266
267        --color-foreground: 255,255,255;
268        --color-background-contrast: 47,52,66;
269        --color-shadow: 18,18,18;
270        --color-button: 255,255,255;
271        --color-button-text: 0,0,0;
272        --color-secondary-button: 36,40,51;
273        --color-secondary-button-text: 255,255,255;
274        --color-link: 255,255,255;
275        --color-badge-foreground: 255,255,255;
276        --color-badge-background: 36,40,51;
277        --color-badge-border: 255,255,255;
278        --payment-terms-background-color: rgb(36 40 51);
279      }
280      
281        
282        .color-scheme-4 {
283          --color-background: 18,18,18;
284        
285          --gradient-background: #121212;
286        
287
288        
289
290        --color-foreground: 255,255,255;
291        --color-background-contrast: 146,146,146;
292        --color-shadow: 18,18,18;
293        --color-button: 255,255,255;
294        --color-button-text: 18,18,18;
295        --color-secondary-button: 18,18,18;
296        --color-secondary-button-text: 255,255,255;
297        --color-link: 255,255,255;
298        --color-badge-foreground: 255,255,255;
299        --color-badge-background: 18,18,18;
300        --color-badge-border: 255,255,255;
301        --payment-terms-background-color: rgb(18 18 18);
302      }
303      
304        
305        .color-scheme-5 {
306          --color-background: 51,79,180;
307        
308          --gradient-background: #334fb4;
309        
310
311        
312
313        --color-foreground: 255,255,255;
314        --color-background-contrast: 23,35,81;
315        --color-shadow: 18,18,18;
316        --color-button: 255,255,255;
317        --color-button-text: 51,79,180;
318        --color-secondary-button: 51,79,180;
319        --color-secondary-button-text: 255,255,255;
320        --color-link: 255,255,255;
321        --color-badge-foreground: 255,255,255;
322        --color-badge-background: 51,79,180;
323        --color-badge-border: 255,255,255;
324        --payment-terms-background-color: rgb(51 79 180);
325      }
326      
327        
328        .color-scheme-48d3c504-3bc8-46b7-9ac3-5e0470b53020 {
329          --color-background: 231,60,62;
330        
331          --gradient-background: #e73c3e;
332        
333
334        
335
336        --color-foreground: 241,241,241;
337        --color-background-contrast: 146,18,19;
338        --color-shadow: 18,18,18;
339        --color-button: 18,18,18;
340        --color-button-text: 255,255,255;
341        --color-secondary-button: 231,60,62;
342        --color-secondary-button-text: 18,18,18;
343        --color-link: 18,18,18;
344        --color-badge-foreground: 241,241,241;
345        --color-badge-background: 231,60,62;
346        --color-badge-border: 241,241,241;
347        --payment-terms-background-color: rgb(231 60 62);
348      }
349      
350        
351        .color-scheme-e5df3eb7-2625-4b40-9b83-91290756be10 {
352          --color-background: 255,255,255;
353        
354          --gradient-background: #ffffff;
355        
356
357        
358
359        --color-foreground: 18,18,18;
360        --color-background-contrast: 191,191,191;
361        --color-shadow: 18,18,18;
362        --color-button: 231,60,62;
363        --color-button-text: 255,255,255;
364        --color-secondary-button: 255,255,255;
365        --color-secondary-button-text: 231,60,62;
366        --color-link: 231,60,62;
367        --color-badge-foreground: 18,18,18;
368        --color-badge-background: 255,255,255;
369        --color-badge-border: 18,18,18;
370        --payment-terms-background-color: rgb(255 255 255);
371      }
372      
373        
374        .color-scheme-1a1339f7-dbc7-4c1d-b3d5-fb5a708abfed {
375          --color-background: 241,241,241;
376        
377          --gradient-background: #f1f1f1;
378        
379
380        
381
382        --color-foreground: 18,18,18;
383        --color-background-contrast: 177,177,177;
384        --color-shadow: 18,18,18;
385        --color-button: 18,18,18;
386        --color-button-text: 255,255,255;
387        --color-secondary-button: 241,241,241;
388        --color-secondary-button-text: 18,18,18;
389        --color-link: 18,18,18;
390        --color-badge-foreground: 18,18,18;
391        --color-badge-background: 241,241,241;
392        --color-badge-border: 18,18,18;
393        --payment-terms-background-color: rgb(241 241 241);
394      }
395      
396        
397        .color-scheme-83cdface-5b2f-46b1-bddc-12365d0b1711 {
398          --color-background: 0,0,0;
399        
400          --gradient-background: rgba(0,0,0,0);
401        
402
403        
404
405        --color-foreground: 255,255,255;
406        --color-background-contrast: 128,128,128;
407        --color-shadow: 18,18,18;
408        --color-button: 18,18,18;
409        --color-button-text: 255,255,255;
410        --color-secondary-button: 0,0,0;
411        --color-secondary-button-text: 18,18,18;
412        --color-link: 18,18,18;
413        --color-badge-foreground: 255,255,255;
414        --color-badge-background: 0,0,0;
415        --color-badge-border: 255,255,255;
416        --payment-terms-background-color: rgb(0 0 0);
417      }
418      
419        
420        .color-scheme-167327ae-4270-4faa-8603-ddf627456d65 {
421          --color-background: 255,255,255;
422        
423          --gradient-background: #ffffff;
424        
425
426        
427
428        --color-foreground: 255,255,255;
429        --color-background-contrast: 191,191,191;
430        --color-shadow: 31,31,31;
431        --color-button: 241,241,241;
432        --color-button-text: 31,31,31;
433        --color-secondary-button: 255,255,255;
434        --color-secondary-button-text: 31,31,31;
435        --color-link: 31,31,31;
436        --color-badge-foreground: 255,255,255;
437        --color-badge-background: 255,255,255;
438        --color-badge-border: 255,255,255;
439        --payment-terms-background-color: rgb(255 255 255);
440      }
441      
442        
443        .color-scheme-921a8ae3-d913-4542-95d6-05caa8a08806 {
444          --color-background: 255,255,255;
445        
446          --gradient-background: #ffffff;
447        
448
449        
450
451        --color-foreground: 18,18,18;
452        --color-background-contrast: 191,191,191;
453        --color-shadow: 18,18,18;
454        --color-button: 18,18,18;
455        --color-button-text: 255,255,255;
456        --color-secondary-button: 255,255,255;
457        --color-secondary-button-text: 18,18,18;
458        --color-link: 18,18,18;
459        --color-badge-foreground: 18,18,18;
460        --color-badge-background: 255,255,255;
461        --color-badge-border: 18,18,18;
462        --payment-terms-background-color: rgb(255 255 255);
463      }
464      
465        
466        .color-scheme-9b7681bc-fbb6-4cc9-9480-9f1838881232 {
467          --color-background: 255,255,255;
468        
469          --gradient-background: #ffffff;
470        
471
472        
473
474        --color-foreground: 18,18,18;
475        --color-background-contrast: 191,191,191;
476        --color-shadow: 18,18,18;
477        --color-button: 231,60,62;
478        --color-button-text: 255,255,255;
479        --color-secondary-button: 255,255,255;
480        --color-secondary-button-text: 231,60,62;
481        --color-link: 231,60,62;
482        --color-badge-foreground: 18,18,18;
483        --color-badge-background: 255,255,255;
484        --color-badge-border: 18,18,18;
485        --payment-terms-background-color: rgb(255 255 255);
486      }
487      
488        
489        .color-scheme-e0268525-0fbe-43b3-a398-0e7940ddb112 {
490          --color-background: 0,0,0;
491        
492          --gradient-background: rgba(0,0,0,0);
493        
494
495        
496
497        --color-foreground: 255,255,255;
498        --color-background-contrast: 128,128,128;
499        --color-shadow: 18,18,18;
500        --color-button: 231,60,62;
501        --color-button-text: 255,255,255;
502        --color-secondary-button: 0,0,0;
503        --color-secondary-button-text: 231,60,62;
504        --color-link: 231,60,62;
505        --color-badge-foreground: 255,255,255;
506        --color-badge-background: 0,0,0;
507        --color-badge-border: 255,255,255;
508        --payment-terms-background-color: rgb(0 0 0);
509      }
510      
511        
512        .color-scheme-6a78ef8d-1d91-48a0-9209-c3a4f3707bce {
513          --color-background: 231,60,62;
514        
515          --gradient-background: #e73c3e;
516        
517
518        
519
520        --color-foreground: 255,255,255;
521        --color-background-contrast: 146,18,19;
522        --color-shadow: 18,18,18;
523        --color-button: 255,255,255;
524        --color-button-text: 231,60,62;
525        --color-secondary-button: 231,60,62;
526        --color-secondary-button-text: 255,255,255;
527        --color-link: 255,255,255;
528        --color-badge-foreground: 255,255,255;
529        --color-badge-background: 231,60,62;
530        --color-badge-border: 255,255,255;
531        --payment-terms-background-color: rgb(231 60 62);
532      }
533      
534        
535        .color-scheme-e63a4c68-3a2b-4402-9c64-ccfb820cb664 {
536          --color-background: 217,217,217;
537        
538          --gradient-background: #d9d9d9;
539        
540
541        
542
543        --color-foreground: 77,77,77;
544        --color-background-contrast: 153,153,153;
545        --color-shadow: 18,18,18;
546        --color-button: 231,60,62;
547        --color-button-text: 255,255,255;
548        --color-secondary-button: 217,217,217;
549        --color-secondary-button-text: 18,18,18;
550        --color-link: 18,18,18;
551        --color-badge-foreground: 77,77,77;
552        --color-badge-background: 217,217,217;
553        --color-badge-border: 77,77,77;
554        --payment-terms-background-color: rgb(217 217 217);
555      }
556      
557        
558        .color-scheme-92bb1434-fdc0-4c32-b455-d1dff085020f {
559          --color-background: 217,217,217;
560        
561          --gradient-background: #d9d9d9;
562        
563
564        
565
566        --color-foreground: 0,0,0;
567        --color-background-contrast: 153,153,153;
568        --color-shadow: 18,18,18;
569        --color-button: 18,18,18;
570        --color-button-text: 255,255,255;
571        --color-secondary-button: 217,217,217;
572        --color-secondary-button-text: 18,18,18;
573        --color-link: 18,18,18;
574        --color-badge-foreground: 0,0,0;
575        --color-badge-background: 217,217,217;
576        --color-badge-border: 0,0,0;
577        --payment-terms-background-color: rgb(217 217 217);
578      }
579      
580        
581        .color-scheme-6cebfd37-0a80-4085-aef4-6b55c0836836 {
582          --color-background: 255,255,255;
583        
584          --gradient-background: #ffffff;
585        
586
587        
588
589        --color-foreground: 112,115,120;
590        --color-background-contrast: 191,191,191;
591        --color-shadow: 18,18,18;
592        --color-button: 231,60,62;
593        --color-button-text: 255,255,255;
594        --color-secondary-button: 255,255,255;
595        --color-secondary-button-text: 18,18,18;
596        --color-link: 18,18,18;
597        --color-badge-foreground: 112,115,120;
598        --color-badge-background: 255,255,255;
599        --color-badge-border: 112,115,120;
600        --payment-terms-background-color: rgb(255 255 255);
601      }
602      
603        
604        .color-scheme-43d3085d-7ffc-4175-af3c-de84be6285ba {
605          --color-background: 255,255,255;
606        
607          --gradient-background: #ffffff;
608        
609
610        
611
612        --color-foreground: 0,0,0;
613        --color-background-contrast: 191,191,191;
614        --color-shadow: 18,18,18;
615        --color-button: 155,67,67;
616        --color-button-text: 255,255,255;
617        --color-secondary-button: 255,255,255;
618        --color-secondary-button-text: 0,0,0;
619        --color-link: 0,0,0;
620        --color-badge-foreground: 0,0,0;
621        --color-badge-background: 255,255,255;
622        --color-badge-border: 0,0,0;
623        --payment-terms-background-color: rgb(255 255 255);
624      }
625      
626        
627        .color-scheme-4cb5091f-cedd-4ab0-93cf-7a054dee4192 {
628          --color-background: 239,241,237;
629        
630          --gradient-background: #eff1ed;
631        
632
633        
634
635        --color-foreground: 231,60,62;
636        --color-background-contrast: 175,185,165;
637        --color-shadow: 18,18,18;
638        --color-button: 18,18,18;
639        --color-button-text: 255,255,255;
640        --color-secondary-button: 239,241,237;
641        --color-secondary-button-text: 18,18,18;
642        --color-link: 18,18,18;
643        --color-badge-foreground: 231,60,62;
644        --color-badge-background: 239,241,237;
645        --color-badge-border: 231,60,62;
646        --payment-terms-background-color: rgb(239 241 237);
647      }
648      
649        
650        .color-scheme-f8b5c3ef-6679-475c-a953-09ce657a87fe {
651          --color-background: 255,255,255;
652        
653          --gradient-background: #ffffff;
654        
655
656        
657
658        --color-foreground: 31,31,31;
659        --color-background-contrast: 191,191,191;
660        --color-shadow: 18,18,18;
661        --color-button: 231,60,62;
662        --color-button-text: 255,255,255;
663        --color-secondary-button: 255,255,255;
664        --color-secondary-button-text: 18,18,18;
665        --color-link: 18,18,18;
666        --color-badge-foreground: 31,31,31;
667        --color-badge-background: 255,255,255;
668        --color-badge-border: 31,31,31;
669        --payment-terms-background-color: rgb(255 255 255);
670      }
671      
672        
673        .color-scheme-3b025c2b-ccda-4dce-91d6-eac335d8fcde {
674          --color-background: 255,255,255;
675        
676          --gradient-background: #ffffff;
677        
678
679        
680
681        --color-foreground: 18,18,18;
682        --color-background-contrast: 191,191,191;
683        --color-shadow: 18,18,18;
684        --color-button: 215,5,5;
685        --color-button-text: 255,255,255;
686        --color-secondary-button: 255,255,255;
687        --color-secondary-button-text: 18,18,18;
688        --color-link: 18,18,18;
689        --color-badge-foregroun
689d: 18,18,18;
690        --color-badge-background: 255,255,255;
691        --color-badge-border: 18,18,18;
692        --payment-terms-background-color: rgb(255 255 255);
693      }
694      
695
696      body, .color-scheme-1, .color-scheme-2, .color-scheme-3, .color-scheme-4, .color-scheme-5, .color-scheme-48d3c504-3bc8-46b7-9ac3-5e0470b53020, .color-scheme-e5df3eb7-2625-4b40-9b83-91290756be10, .color-scheme-1a1339f7-dbc7-4c1d-b3d5-fb5a708abfed, .color-scheme-83cdface-5b2f-46b1-bddc-12365d0b1711, .color-scheme-167327ae-4270-4faa-8603-ddf627456d65, .color-scheme-921a8ae3-d913-4542-95d6-05caa8a08806, .color-scheme-9b7681bc-fbb6-4cc9-9480-9f1838881232, .color-scheme-e0268525-0fbe-43b3-a398-0e7940ddb112, .color-scheme-6a78ef8d-1d91-48a0-9209-c3a4f3707bce, .color-scheme-e63a4c68-3a2b-4402-9c64-ccfb820cb664, .color-scheme-92bb1434-fdc0-4c32-b455-d1dff085020f, .color-scheme-6cebfd37-0a80-4085-aef4-6b55c0836836, .color-scheme-43d3085d-7ffc-4175-af3c-de84be6285ba, .color-scheme-4cb5091f-cedd-4ab0-93cf-7a054dee4192, .color-scheme-f8b5c3ef-6679-475c-a953-09ce657a87fe, .color-scheme-3b025c2b-ccda-4dce-91d6-eac335d8fcde {
697        color: rgba(var(--color-foreground));
698        background-color: rgb(var(--color-background));
699      }
700
701      :root {
702        --font-body-family: "Outfit", sans-serif;
703        --font-body-style: normal;
704        --font-body-weight: 400;
705        --font-body-weight-bold: 700;
706
707        --font-heading-family: "Outfit", sans-serif;
708        --font-heading-style: normal;
709        --font-heading-weight: 400;
710
711        --font-body-scale: 1.0;
712        --font-heading-scale: 1.0;
713
714        --media-padding: px;
715        --media-border-opacity: 0.05;
716        --media-border-width: 1px;
717        --media-radius: 0px;
718        --media-shadow-opacity: 0.0;
719        --media-shadow-horizontal-offset: 0px;
720        --media-shadow-vertical-offset: 4px;
721        --media-shadow-blur-radius: 5px;
722        --media-shadow-visible: 0;
723
724        --page-width: 140rem;
725        --page-width-margin: 0rem;
726
727        --product-card-image-padding: 0.0rem;
728        --product-card-corner-radius: 0.0rem;
729        --product-card-text-alignment: left;
730        --product-card-border-width: 0.0rem;
731        --product-card-border-opacity: 0.1;
732        --product-card-shadow-opacity: 0.0;
733        --product-card-shadow-visible: 0;
734        --product-card-shadow-horizontal-offset: 0.0rem;
735        --product-card-shadow-vertical-offset: 0.4rem;
736        --product-card-shadow-blur-radius: 0.5rem;
737
738        --collection-card-image-padding: 0.0rem;
739        --collection-card-corner-radius: 0.0rem;
740        --collection-card-text-alignment: left;
741        --collection-card-border-width: 0.0rem;
742        --collection-card-border-opacity: 0.1;
743        --collection-card-shadow-opacity: 0.0;
744        --collection-card-shadow-visible: 0;
745        --collection-card-shadow-horizontal-offset: 0.0rem;
746        --collection-card-shadow-vertical-offset: 0.4rem;
747        --collection-card-shadow-blur-radius: 0.5rem;
748
749        --blog-card-image-padding: 0.0rem;
750        --blog-card-corner-radius: 0.0rem;
751        --blog-card-text-alignment: left;
752        --blog-card-border-width: 0.0rem;
753        --blog-card-border-opacity: 0.1;
754        --blog-card-shadow-opacity: 0.0;
755        --blog-card-shadow-visible: 0;
756        --blog-card-shadow-horizontal-offset: 0.0rem;
757        --blog-card-shadow-vertical-offset: 0.4rem;
758        --blog-card-shadow-blur-radius: 0.5rem;
759
760        --badge-corner-radius: 0.0rem;
761
762        --popup-border-width: 1px;
763        --popup-border-opacity: 0.1;
764        --popup-corner-radius: 0px;
765        --popup-shadow-opacity: 0.05;
766        --popup-shadow-horizontal-offset: 0px;
767        --popup-shadow-vertical-offset: 4px;
768        --popup-shadow-blur-radius: 5px;
769
770        --drawer-border-width: 1px;
771        --drawer-border-opacity: 0.1;
772        --drawer-shadow-opacity: 0.0;
773        --drawer-shadow-horizontal-offset: 0px;
774        --drawer-shadow-vertical-offset: 4px;
775        --drawer-shadow-blur-radius: 5px;
776
777        --spacing-sections-desktop: 0px;
778        --spacing-sections-mobile: 0px;
779
780        --grid-desktop-vertical-spacing: 28px;
781        --grid-desktop-horizontal-spacing: 36px;
782        --grid-mobile-vertical-spacing: 14px;
783        --grid-mobile-horizontal-spacing: 18px;
784
785        --text-boxes-border-opacity: 0.1;
786        --text-boxes-border-width: 0px;
787        --text-boxes-radius: 0px;
788        --text-boxes-shadow-opacity: 0.0;
789        --text-boxes-shadow-visible: 0;
790        --text-boxes-shadow-horizontal-offset: 0px;
791        --text-boxes-shadow-vertical-offset: 4px;
792        --text-boxes-shadow-blur-radius: 5px;
793
794        --buttons-radius: 8px;
795        --buttons-radius-outset: 9px;
796        --buttons-border-width: 1px;
797        --buttons-border-opacity: 1.0;
798        --buttons-shadow-opacity: 0.0;
799        --buttons-shadow-visible: 0;
800        --buttons-shadow-horizontal-offset: 0px;
801        --buttons-shadow-vertical-offset: 4px;
802        --buttons-shadow-blur-radius: 5px;
803        --buttons-border-offset: 0.3px;
804
805        --inputs-radius: 4px;
806        --inputs-border-width: 1px;
807        --inputs-border-opacity: 0.25;
808        --inputs-shadow-opacity: 0.0;
809        --inputs-shadow-horizontal-offset: 0px;
810        --inputs-margin-offset: 0px;
811        --inputs-shadow-vertical-offset: 4px;
812        --inputs-shadow-blur-radius: 5px;
813        --inputs-radius-outset: 5px;
814
815        --variant-pills-radius: 4px;
816        --variant-pills-border-width: 1px;
817        --variant-pills-border-opacity: 0.25;
818        --variant-pills-shadow-opacity: 0.0;
819        --variant-pills-shadow-horizontal-offset: 0px;
820        --variant-pills-shadow-vertical-offset: 4px;
821        --variant-pills-shadow-blur-radius: 5px;
822      }
823
824      *,
825      *::before,
826      *::after {
827        box-sizing: inherit;
828      }
829
830      html {
831        box-sizing: border-box;
832        font-size: calc(var(--font-body-scale) * 62.5%);
833        height: 100%;
834      }
835
836      body {
837        display: grid;
838        grid-template-rows: auto auto 1fr auto;
839        grid-template-columns: 100%;
840        min-height: 100%;
841        margin: 0;
842        font-size: 1.2rem;
843        letter-spacing: 0rem;
844        line-height: calc(1 + 0.8 / var(--font-body-scale));
845        font-family: var(--font-body-family);
846        font-style: var(--font-body-style);
847        font-weight: var(--font-body-weight);
848      }
849
850      @media screen and (min-width: 750px) {
851        body {
852          font-size: 1.4rem;
853        }
854      }
855    </style>
856
857    <style>example-counter input[name=counter]{border-radius:.8rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity, 1));padding:.8rem}body,html{overflow-x:hidden;scroll-behavior:smooth;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}</style>
858
859    <link href="//fittes.ca/cdn/shop/t/139/assets/base.css?v=62514489241200430511788881616" rel="stylesheet" type="text/css" media="all" />
860    <link rel="stylesheet" href="//fittes.ca/cdn/shop/t/139/assets/component-cart-items.css?v=123238115697927560811788881621" media="print" onload="this.media='all'"><link href="//fittes.ca/cdn/shop/t/139/assets/component-cart-drawer.css?v=85066701549514430691788881621" rel="stylesheet" type="text/css" media="all" />
861      <link href="//fittes.ca/cdn/shop/t/139/assets/component-cart.css?v=164708765130180853531788881622" rel="stylesheet" type="text/css" media="all" />
862      <link href="//fittes.ca/cdn/shop/t/139/assets/component-totals.css?v=15906652033866631521788881637" rel="stylesheet" type="text/css" media="all" />
863      <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
864      <link href="//fittes.ca/cdn/shop/t/139/assets/component-discounts.css?v=152760482443307489271788881624" rel="stylesheet" type="text/css" media="all" />
865
866      <link rel="preload" as="font" href="//fittes.ca/cdn/fonts/lora/lora_n4.9a60cb39eff3bfbc472bac5b3c5c4d7c878f0a8d.woff2" type="font/woff2" crossorigin>
867      
868
869      <link rel="preload" as="font" href="//fittes.ca/cdn/fonts/lora/lora_n4.9a60cb39eff3bfbc472bac5b3c5c4d7c878f0a8d.woff2" type="font/woff2" crossorigin>
870      
871<link href="//fittes.ca/cdn/shop/t/139/assets/component-localization-form.css?v=170315343355214948141788881628" rel="stylesheet" type="text/css" media="all" />
872      
872<script src="//fittes.ca/cdn/shop/t/139/assets/localization-form.js?v=144176611646395275351788881696" defer="defer"></script>
872<link
873        rel="stylesheet"
874        href="//fittes.ca/cdn/shop/t/139/assets/component-predictive-search.css?v=118923337488134913561788881631"
875        media="print"
876        onload="this.media='all'"
877      >
877<script>
878      if (Shopify.designMode) {
879        document.documentElement.classList.add('shopify-design-mode')
880      }
881    </script>
881
882
883    
884<script src="//fittes.ca/cdn/shop/t/139/assets/entry-theme.js?v=150731255203964217101788881647" type="module" defer></script>
884<link href="//fittes.ca/cdn/shop/t/139/assets/entry-theme.css?v=153571818334877101091788881647" rel="stylesheet" type="text/css" media="all" />
884<script>
885  window.__GLOBAL__ ||= {
886    currencyCode: "CAD",
887    moneyFormat: "${{amount}}",
888    shopifyCdn: "//fittes.ca/cdn/shop/t/139/assets/dump.png?v=24844".split('dump.png').shift(),
889    fileCdn: "//fittes.ca/cdn/shop/files/dump.png?v=24844".split('dump.png').shift(),
890    sentryDsn: null,
891    customApiBaseUrl: null,
892  }
893</script>
893
894
895
896    
896<script src="//fittes.ca/cdn/shop/t/139/assets/swiper-bundle.min.js?v=87330480114418983271788881720" defer="defer"></script>
896<link rel="alternate" hreflang="en-CA" href="https://fittes.ca/" />
897   <link rel="alternate" hreflang="en-US" href="https://fittes.com/" />
898   <link rel="alternate" hreflang="en" href="https://fittes.com/" />
899   <link rel="alternate" hreflang="x-default" href="https://fittes.com/" />
900    
901  <!-- BEGIN app block: shopify://apps/consentmo-gdpr/blocks/gdpr_cookie_consent/4fbe573f-a377-4fea-9801-3ee0858cae41 -->
902<link rel="preconnect" href="https://app.consentmo.com" crossorigin data-csm-preconnect="app">
903<link rel="dns-prefetch" href="https://workers.consentmo.com" data-csm-preconnect="workers">
904<link rel="dns-prefetch" href="https://storage.consentmo.com" data-csm-preconnect="storage">
905<link rel="preconnect" href="https://cdn.consentmo.com" crossorigin data-csm-preconnect="cdn"><link rel="prefetch" href="https://cdn.shopify.com/extensions/01a11aba-aafa-7dea-b236-635273518339/gdpr-backpack-916/assets/layout-cookie-bar.consentmo.js" crossorigin data-csm-layout-prefetch="banner">
906  <link rel="prefetch" href="https://cdn.shopify.com/extensions/01a11aba-aafa-7dea-b236-635273518339/gdpr-backpack-916/assets/layout-cookie-dialog.consentmo.js" crossorigin data-csm-layout-prefetch="dialog">
907  <link rel="prefetch" href="https://cdn.shopify.com/extensions/01a11aba-aafa-7dea-b236-635273518339/gdpr-backpack-916/assets/layout-cookie-box.consentmo.js" crossorigin data-csm-layout-prefetch="box">
908  <link rel="prefetch" href="https://cdn.shopify.com/extensions/01a11aba-aafa-7dea-b236-635273518339/gdpr-backpack-916/assets/layout-cookie-smart-banner.consentmo.js" crossorigin data-csm-layout-prefetch="smart">
909  <link rel="prefetch" href="https://cdn.shopify.com/extensions/01a11aba-aafa-7dea-b236-635273518339/gdpr-backpack-916/assets/layout-mobile-cookie-bar.consentmo.js" crossorigin data-csm-layout-prefetch="mobile">
909<script>
910(function () {
911  try {
912    document.documentElement.classList.add('csm-cookie-embed');
913  } catch (e) {}
914})();
915</script>
915<script data-consentmo-data-src-bootstrap>
916(function () {
917  'use strict';
918  if (window.__consentmoDataSrcBootstrapInit) return;
919  window.__consentmoDataSrcBootstrapInit = true;
920
921  var DATA_SRC_SELECTOR = [
922    'script[data-src*="consentmo_cookie_consent"]',
923    'script[data-src*="gdpr_cookie_consent.min"]',
924    'script[data-src*="gdrp_cookie_consent_unlimited"]'
925  ].join(',');
926
927  function activateConsentmoDataSrcScripts() {
928    if (!window.Shopify || !window.Shopify.shop) return;
929    document.querySelectorAll(DATA_SRC_SELECTOR).forEach(function (scriptEl) {
930      // getAttribute: src="" must not count as "already has src" (.src === page URL).
931      if (scriptEl.getAttribute('src')) return;
932      var url = scriptEl.getAttribute('data-src');
933      if (!url) return;
934      if (scriptEl.getAttribute('type') === 'text/plain') {
935        scriptEl.removeAttribute('type');
936      }
937      scriptEl.src = url;
938    });
939  }
940  function scheduleActivation() {
941    activateConsentmoDataSrcScripts();
942    // Retry on next task so other DCL handlers (lazy-loaders) can finish setting Shopify.shop / data-src first.
943    setTimeout(activateConsentmoDataSrcScripts, 0);
944  }
945  if (document.readyState === 'loading') {
946    document.addEventListener('DOMContentLoaded', scheduleActivation, { once: true });
947  } else {
948    scheduleActivation();
949  }
950})();
951</script>
951
952
953
954<!-- END app block --><!-- BEGIN app block: shopify://apps/geo-pro-geolocation/blocks/geopro/16fc5313-7aee-4e90-ac95-f50fc7c8b657 --><!-- This snippet is used to load Geo:Pro data on the storefront -->
955<meta class='geo-ip' content='eyJwYXJhbWV0ZXJzIjp7InJlZGlyZWN0X3RleHQiOiJJdCBzZWVtcyB5b3UmIzM5cmUgaW4gJUNPVU5UUlklLiBSZWRpcmVjdCB0byBvdXIgJVNUT1JFTkFNRSU/IiwieWVzIjoiWWVzLCBwbGVhc2UiLCJubyI6Ik5vLCB0aGFua3MiLCJwb3B1cF9kZWxheSI6IjAiLCJwZXJtYW5lbnQtcmVkaXJlY3QiOjAsImJhY2tncm91bmQtY29sb3IiOiJmZmZmZmYiLCJ0ZXh0LWNvbG9yIjoiMDAwMDAwIiwieWVzLWJhY2tncm91bmQtY29sb3IiOiIwMDAwMDAiLCJ5ZXMtdGV4dC1jb2xvciI6ImZmZmZmZiIsIm5vLWJhY2tncm91bmQtY29sb3IiOiJjMmMyYzIiLCJuby10ZXh0LWNvbG9yIjoiZmZmZmZmIiwibGF5b3V0LXNlbGVjdG9yIjoicG9wdXAifSwicnVsZXNMaXN0IjpbeyJjb3VudHJpZXMiOiJVbml0ZWQgU3RhdGVzIiwiZXhjZXB0aW9ucyI6IiIsImlwIjoiIiwic3RvcmVfbmFtZSI6IlVTIFN0b3JlIiwiaXBfZXhjZXB0aW9ucyI6IiIsImxpbmsiOiJodHRwczpcL1wvZml0dGVzLmNvbVwvIiwiZG9tYWluX3JlZGlyZWN0IjoiMCJ9XX0='>
956<!-- This snippet initializes the plugin -->
957<script async data-geopro-shop="ariavent.myshopify.com" data-geopro-design-mode="false" data-geopro-tracking-env="production">
958  // geopro loading script
959  !function(){function e(e,t,n){try{if("function"!=typeof fetch)return;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.indexOf("Baiduspider")>=0)return;var o="https://aa4cacd33be28673d7e69be559ce7ad7@o4506196830715904.ingest.us.sentry.io/4507550373445632",i=o.match(/^https:\/\/([^@]+)@([^/]+)\/(.+)$/),r={message:e,level:"error",environment:"production",transaction:location.href,user:{id:window.Shopify&&window.Shopify.shop?window.Shopify.shop:"unknown",ip_address:String.fromCharCode(123,123)+"auto"+String.fromCharCode(125,125)},extra:n||{},logger:"GeoProInline",exception:{type:t&&t.name?t.name:"Error",value:t&&t.message?t.message:String(t)}};fetch("https://"+i[2]+"/api/"+i[3]+"/envelope/?sentry_key="+i[1],{method:"POST",body:JSON.stringify({dsn:o,sent_at:(new Date).toISOString(),event_id:Math.random().toString(16).slice(2)})+'\n{"type":"event"}\n'+JSON.stringify(r)+"\n",headers:{"Content-Type":"text/plain"},keepalive:!0,referrerPolicy:"no-referrer",mode:"no-cors"}).catch((function(){}))}catch(e){}}function t(){window.geopro_cancel="1"}!function(){try{if(window.geopro_inline_tracking)return;var e=document.currentScript,t=e&&e.getAttribute("data-geopro-shop")||window.Shopify&&window.Shopify.shop;if(!t||!/^[a-z0-9][a-z0-9-]*\.myshopify\.com$/.test(t))return;if(/(^|\.)shopifypreview\.com$/.test(location.hostname))return;if(e&&"true"===e.getAttribute("data-geopro-design-mode")||window.Shopify&&window.Shopify.designMode)return;var n=new Date,o=new Date(n.getFullYear(),n.getMonth(),n.getDate()),i=new Date(n.getFullYear(),n.getMonth(),n.getDate()+1),r=function(e){return e<10?"0"+e:String(e)},a=n.getFullYear()+"-"+r(n.getMonth()+1)+"-"+r(n.getDate()),s="geoip-inline-"+(e&&"staging"===e.getAttribute("data-geopro-tracking-env")?"staging-":"")+t;function c(){try{for(var e=document.cookie.split(";"),t=0;t<e.length;t++){var n=e[t].trim();if(0===n.indexOf(s+"="))return JSON.parse(decodeURIComponent(n.slice(s.length+1)))}}catch(e){}return null}function d(e){try{document.cookie=s+"="+encodeURIComponent(JSON.stringify(e))+"; Path=/; SameSite=Lax; Expires="+i.toUTCString()+("https:"===location.protocol?"; Secure":"");var t=c();return!!t&&t.id===e.id&&t.day===e.day&&t.sent===e.sent}catch(e){return!1}}var f=c();if(!f||!/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(f.id)||f.day!==a||f.start!==o.getTime()/1e3||f.end!==i.getTime()/1e3||"boolean"!=typeof f.sent||"number"!=typeof f.time||f.time<f.start||f.time>=f.end){var p="undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}));f={id:p,day:a,start:o.getTime()/1e3,end:i.getTime()/1e3,time:Math.floor(n.getTime()/1e3),sent:!1}}f.id=f.id.toLowerCase();var u=d(f),g={id:f.id,localDate:a,cookieAvailable:u,version:1};if(window.geopro_inline_tracking=g,f.sent||"function"!=typeof fetch)return;fetch("/apps/easylocation/api/inline-visit",{method:"POST",headers:{"Content-Type":"text/plain"},credentials:"same-origin",mode:"same-origin",redirect:"error",keepalive:!0,referrerPolicy:"no-referrer",body:JSON.stringify({myshopifyDomain:t,trackingId:f.id,localDate:a,dayStart:f.start,dayEnd:f.end,clientTime:f.time,pageHost:location.host,cookieAvailable:u,version:1})}).then((function(e){if(204===e.status&&!e.redirected){var t=c();Date.now()<i.getTime()&&t&&t.id===f.id&&t.day===a&&(t.sent=!0,d(t))}})).catch((function(){}))}catch(l){}}();try{!function(){function n(n){try{if(!n||"success"!==n.message)return void t();window.geopro_inline_location_response=n}catch(o){e("GeoPro inline runtime error",o,{phase:"callback",response:n}),t()}}var o="/apps/easylocation/geo?x-api-key=91e359ab7-2b63-539e-1de2-c4bf731367a7",i=new XMLHttpRequest;i.open("GET",o,!0),i.responseType="json",i.timeout=5e3;var r=!1;function a(t){r||(r=!0,e("GeoPro inline XHR failed",new Error("XHR request failed: "+t),{url:o,eventType:t,status:i.status,readyState:i.readyState,timeout:i.timeout,responseURL:i.responseURL||null}),n(null))}i.onload=function(){if(200===i.status)return r=!0,void n(i.response);a("load")},i.onerror=function(){a("error")},i.ontimeout=function(){a("timeout")},i.onabort=function(){a("abort")},i.send()}()}catch(n){e("GeoPro inline runtime error",n,{phase:"load"}),t()}}();
960</script>
vendor: 1 bytes, line 960
960
961<script src="https://cdn.shopify.com/extensions/01a1129f-2258-786a-ae32-1c387b0ff2bc/easylocation-287/assets/easylocation-storefront.min.js" type="text/javascript" async></script>
961
962
963
964<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 -->
965
966
967
968
969
970
971
972
973
974
975
976
977  
977<script async src="https://static.klaviyo.com/onsite/js/HGhTJc/klaviyo.js?company_id=HGhTJc"></script>
977
978  
978<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>
978
979
980  
981
982
983
984
985  
985<script>
986    window.klaviyoReviewsProductDesignMode = false
987  </script>
987
988
989
990
991  <!-- BEGIN app snippet: customer-hub-data -->
991<script>
992  if (!window.customerHub) {
993    window.customerHub = {};
994  }
995  window.customerHub.storefrontRoutes = {
996    login: "https://fittes.ca/customer_authentication/redirect?locale=en&region_country=US?return_url=%2F%23k-hub",
997    register: "https://account.fittes.ca?locale=en&region_country=US&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJhcmlhdmVudC5teXNob3BpZnkuY29tIiwiZmxhZ3MiOltdLCJleHAiOjE3OTIwNTU3NzQsIm5iZiI6MTc5MTQ1MDk3NH0.wvpzUBnM_lp0gta1_7yzuF2OIOMgxeQmvyZSiJnFYV8?return_url=%2F%23k-hub",
998    logout: "/account/logout",
999    profile: "/account",
1000    addresses: "/account/addresses",
1001  };
1002  
1003  window.customerHub.userId = null;
1004  
1005  window.customerHub.storeDomain = "ariavent.myshopify.com";
1006
1007  
1008
1009  
1010    window.customerHub.storeLocale = {
1011        currentLanguage: 'en',
1012        currentCountry: 'US',
1013        availableLanguages: [
1014          
1015            {
1016              iso_code: 'en',
1017              endonym_name: 'English'
1018            }
1019          
1020        ],
1021        availableCountries: [
1022          
1023            {
1024              iso_code: 'AU',
1025              name: 'Australia',
1026              currency_code: 'AUD'
1027            },
1028          
1029            {
1030              iso_code: 'BE',
1031              name: 'Belgium',
1032              currency_code: 'EUR'
1033            },
1034          
1035            {
1036              iso_code: 'CA',
1037              name: 'Canada',
1038              currency_code: 'CAD'
1039            },
1040          
1041            {
1042              iso_code: 'DK',
1043              name: 'Denmark',
1044              currency_code: 'DKK'
1045            },
1046          
1047            {
1048              iso_code: 'IS',
1049              name: 'Iceland',
1050              currency_code: 'ISK'
1051            },
1052          
1053            {
1054              iso_code: 'SE',
1055              name: 'Sweden',
1056              currency_code: 'SEK'
1057            },
1058          
1059            {
1060              iso_code: 'GB',
1061              name: 'United Kingdom',
1062              currency_code: 'GBP'
1063            },
1064          
1065            {
1066              iso_code: 'US',
1067              name: 'United States',
1068              currency_code: 'USD'
1069            }
1070          
1071        ]
1072    };
1073  
1074</script>
1074
1075<!-- END app snippet -->
1076
1077
1078
1079
1080
1081
1082
1083<!-- END app block --><!-- BEGIN app block: shopify://apps/amplify-bundles-upsell/blocks/main-widget-loader-script/f54ff67e-3f69-4df2-845e-7476ce633252 -->  
1084  <!-- BEGIN app snippet: amplify-widget1 -->
1085<script defer src="https://widget1-cdn.heyamplify.com/widget/dist/latest/pickystory-widget.min.js"></script>
1085
1086<!-- END app snippet -->
1087
1088
1089
1090
1091
1092<script>
1093  window.pickystory = window.pickystory || {};
1094  window.pickystory.localization = {
1095  
1096    routes: {
1097      'routes.root_url': '/',
1098      'routes.account_url': '/account',
1099      'routes.account_login_url': 'https://fittes.ca/customer_authentication/redirect?locale=en&region_country=US',
1100      'routes.account_logout_url': '/account/logout',
1101      'routes.account_register_url': 'https://account.fittes.ca?locale=en&region_country=US&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJhcmlhdmVudC5teXNob3BpZnkuY29tIiwiZmxhZ3MiOltdLCJleHAiOjE3OTIwNTU3NzQsIm5iZiI6MTc5MTQ1MDk3NH0.wvpzUBnM_lp0gta1_7yzuF2OIOMgxeQmvyZSiJnFYV8',
1102      'routes.account_addresses_url': '/account/addresses',
1103      'routes.collections_url': '/collections',
1104      'routes.all_products_collection_url': '/collections/all',
1105      'routes.search_url': '/search',
1106      'routes.predictive_search_url': '/search/suggest',
1107      'routes.cart_url': '/cart',
1108      'routes.cart_add_url': '/cart/add',
1109      'routes.cart_change_url': '/cart/change',
1110      'routes.cart_clear_url': '/cart/clear',
1111      'routes.cart_update_url': '/cart/update',
1112      'routes.product_recommendations_url': '/recommendations/products',
1113    },
1114  };</script>
1114
1115
1116
1117
1118
1119
1120<!-- BEGIN app snippet: global-theme-settings -->
1120<script data-amplify="global-settings-json-data" type="application/json">
1121{
1122  "settings": {"enablePickyStoryBranding":true,"enableSwitchingLanguages":false,"enableLocalizeCurrency":true,"enableCompactVariantPicker":false,"bundleDiscountTitle":"AMPLIFY-DISCOUNT","quantityBreaksDiscountTitle":"PICKY-VOLUME-DISCOUNT","bundleNoteDescription":"Bundle “${bundle_name}” (group ${purchased_bundle_id})","bundleNotePrefix":"Part of","displayBundleNoteOnChildProducts":true,"redirectFromBuilderInlineProductPageToScenario":true,"displayShopifyCompareAtPriceOnByobProduct":false,"showByobSectionsOpenedByDefault":false,"variantPickerLook":"Pills","showProductCardImagesWithoutVariant":true,"productCardImagesAspectRatioHeight":7,"productCardImagesAspectRatioWidth":5,"enableWidgetSDK":false},
1123  "amplifyTheme": {"settings":{"showProductCardLabels":true,"showProductQuantityInput":true,"showProductCardImagesWithoutVariant":true,"widgetsHeaderAlignment":"Left","widgetsCtaAlignment":"Bottom","variantPickerLook":"Pills","variantColorPickerLook":"Dropdown","showSelectedSwatchLabel":false,"enableOptionTitleDisplay":false}
1123,"styles":{"themeBackgroundColor":"#FFFFFF","themeColor":"#1B1C30","themeAccentBackgroundColor":"#e73c3eff","themeAccentColor":"#FFFFFF","themeFontFamily":"Sans-serif","themeBorderRadiusScale":0,"productCardNameFontSizeScale":1,"productCardNameFontWeightScale":1,"productCardNameColor":null,"productCardImagesAspectRatioHeight":7,"productCardImagesAspectRatioWidth":5,"productCardTotalPriceFontSizeScale":1,"productCardTotalPriceFontWeightScale":1,"productCardTotalPriceColor":null,"productComparePriceFontSizeScale":1,"productComparePriceFontWeightScale":1,"productComparePriceColor":null,"productCheckboxBackgroundColor":null,"productCheckboxColor":null,"widgetsHeaderFontSizeScale":1,"widgetsHeaderFontWeightScale":1,"widgetsHeaderColor":null,"widgetsSubHeaderFontSizeScale":1,"widgetsSubHeaderFontWeightScale":1,"widgetsSubHeaderColor":null,"widgetsCtaFontSizeScale":1,"widgetsCtaFontWeightScale":1,"widgetsCtaBackgroundColor":null,"widgetsCtaColor":null,"widgetsCheckboxBackgroundColor":null,"widgetsCheckboxColor":null,"widgetsPriceFontSizeScale":1,"widgetsPriceFontWeightScale":1,"widgetsPriceColor":null,"widgetsDiscountPriceFontSizeScale":1,"widgetsDiscountPriceFontWeightScale":1,"widgetsDiscountPriceColor":null,"swatchesSizeScale":1,"swatchesBorderRadiusScale":1,"swatchesBorderWidthScale":0.25,"selectedSwatchLabelSizeScale":1,"pillsSizeScale":1.25,"pillsBorderRadiusScale":0.25,"pillsBorderWidthScale":0.125,"themeCustomCss":".picky-widget,\n.picky-widget.picky-cart,\n.picky-recommendations__content,\n.picky-widget.picky-bnd-pdp,\n.picky-widget.picky-byob-bundle.picky-byob-pdp,\n.picky-widget .picky-upsell-bundle,\n.picky-widget.picky-byob-bundle.picky-byob-inline,\n.picky-widget.picky-qb-bundle,\n.picky-widget.picky-fbt-inline .picky-fbt-inline__content,\n.picky-widget .picky-button,\n.picky-widget .picky-totals__title,\n.picky-widget .picky-totals__price,\n.picky-title.picky-reacted-product__title,\n.picky-title.picky-product-card__title,\n.picky-product-card__prices-wrapper .picky-product-card__price,\n.picky-upsell-bundle__content,\n.picky-subscriptions__item,\nselect,\n.picky-pill__item,\n.picky-add-discount-field__button,\n.picky-add-note-field__button {\nfont-family: Outfit;\n}\n\n\n.picky-widget.picky-cart .picky-button,\n.picky-fbt-inline__button:before,\n.picky-fbt-inline {\nbackground: #E73C3E;\n--ps-theme-accent-background-color: #E73C3E;\n}\n\n\/*Variants on different themes*\/\nbody.gradient.theme--product-floor-vents-luxe-colour .picky-fbt-inline__item .picky-pill__item:not([class*=\"_disabled_\"]):not([class*=\"_selected_\"]),\nbody.gradient.theme--product- .picky-fbt-inline__item .picky-pill__item:not([class*=\"_disabled_\"]):not([class*=\"_selected_\"]) {\n  border: 1px solid #12121240 !important;\n  box-sizing: border-box !important;\n}\n\nbody.gradient.theme--product-floor-vents-luxe-colour .picky-fbt-inline__item .picky-pill__item:hover:not([class*=\"_disabled_\"]):not([class*=\"_selected_\"]),\nbody.gradient.theme--product- .picky-fbt-inline__item .picky-pill__item:hover:not([class*=\"_disabled_\"]):not([class*=\"_selected_\"]) {\n  border-color: #000 !important;\n}\n\nbody.gradient.theme--product-floor-vents-luxe-colour .picky-fbt-inline__item .picky-pill__item:not([class*=\"_selected_\"])::before,\nbody.gradient.theme--product- .picky-fbt-inline__item .picky-pill__item:not([class*=\"_selected_\"])::before {\n  content: none !important;\n}\n\nbody.gradient.theme--product-Blackout .picky-fbt-inline__item .picky-pill__item:not([class*=\"_disabled_\"]):not([class*=\"_selected_\"]) {\n  border: 1px solid #444444 !important;\n  box-sizing: border-box !important;\n}\n\nbody.gradient.theme--product-Blackout .picky-fbt-inline__item .picky-pill__item:hover:not([class*=\"_disabled_\"]):not([class*=\"_selected_\"]) {\n  border-color: #E73C3E !important;\n}\n\nbody.gradient.theme--product-Blackout .picky-fbt-inline__item .picky-pill__item:not([class*=\"_selected_\"])::before {\n  content: none !important;\n}\n\/*End of Variants on different themes*\/\n\n\n\n.picky-fbt-inline__item .picky-pill__item {\nborder-radius: 5px;\nmin-width: fit-content;\nmin-height: fit-content;\npadding: 8px 15px 8px 15px;\n}\n\n.picky-fbt-inline__item .picky-pill__item [class*=\"_content_\"] {\nfont-size: 14px;\n}\n\n.picky-fbt-inline__item [class*=\"_selected_\"].picky-pill__item:before {\nborder-radius: 4px;\nbackground-color: transparent;\nborder-color: #E73C3E;\n}\n\n.picky-fbt-inline__item [class*=\"_selected_\"].picky-pill__item {\nbackground-color: transparent;\n}\n\n.picky-widget.picky-fbt-inline .picky-fbt-inline__footer {\nmax-width: 100% !important;\n}\n\n\/*End of FBT widget*\/\n\n\/*Cart*\/\n\n.picky-cart__footer .picky-powered-by {\ndisplay: none;\n}\n\n.picky-cart__header .picky-cart__title {\nfont-family: Outfit;
1123\nfont-weight:  700;\ncolor: black;\n}\n\n.picky-recommendations__content .picky-recommendations__title {\nfont-family: Outfit;\nfont-weight:  600;\ncolor: black;\n}\n\n.picky-product-card__title,\n.picky-cart-item__title,\n.picky-add-discount-field__button *,\n.picky-add-note-field__button *,\n.picky-product-card__price,\n.picky-totals__price {\ncolor: black;\n}\n\n.picky-cart__footer [class*=\"_integration_\"] {\ndisplay: none;\n}\n\n.picky-recommendations__content [class*=\"_detailed_\"] {\ngap: calc(var(--ps-indents) * 20px);\n}\n\n.picky-recommendations__content .picky-product-card__image {\nmin-width: 100%;\n}\n\n\/*End of Cart*\/\n\n\/*Buttons*\/\n\n.picky-button,\n.picky-button:before {\nanimation: none !important;\ntransform: none !important;\n  border: 1px solid #E73C3E;   \/* ring stays original color *\/\n  background: #E73C3E;\n  border-radius: 8px; \n  transition: background-color .15s ease, filter .15s ease;\n  background-clip: padding-box;\n}\n\n.picky-button:hover:before {\n  background: #d13436;\n}\n\n\/*End of Buttons*\/\n\n\n\/*Changing FBT backgrounds based on theme background color*\/\nbody.gradient.theme--product- .picky-widget.picky-fbt-inline [class*=\"_bundle_\"],\nbody.gradient.theme--product-floor-vents-luxe-colour .picky-widget.picky-fbt-inline [class*=\"_bundle_\"] {\nbackground: white !important;\ncolor: black !important;\n}\n\nbody.gradient.theme--product- .picky-fbt-inline__item [class*=\"_selected_\"].picky-pill__item,\nbody.gradient.theme--product- .picky-fbt-inline__item .picky-pill__item,\nbody.gradient.theme--product- .picky-header__title,\nbody.gradient.theme--product-floor-vents-luxe-colour .picky-fbt-inline__item [class*=\"_selected_\"].picky-pill__item,\nbody.gradient.theme--product-floor-vents-luxe-colour .picky-fbt-inline__item .picky-pill__item,\nbody.gradient.theme--product-floor-vents-luxe-colour .picky-header__title {\nbackground-color: transparent;\nbackground: transparent;\ncolor: black;\n}\n\/*End of Changing FBT backgrounds based on theme background color*\/"}}
1124}
1125</script>
1125
1126
1127
1128  <style data-amplify-widget-styles>
1129    .picky-widget {
1130      --ps-theme-font-family: Sans-serif;
1131      --ps-theme-color: #1B1C30;
1132      --ps-theme-background-color: #FFFFFF;
1133      --ps-theme-accent-color: #FFFFFF;
1134      --ps-theme-accent-background-color: #e73c3eff;
1135      --ps-theme-product-card-name-font-size-scale: 1;
1136      --ps-theme-product-card-name-font-weight-scale: 1;
1137      --ps-theme-widgets-header-font-size-scale: 1;
1138      --ps-theme-widgets-header-font-weight-scale: 1;
1139      --ps-theme-widgets-sub-header-font-size-scale: 1;
1140      --ps-theme-widgets-sub-header-font-weight-scale: 1;
1141      --ps-theme-widgets-cta-font-size-scale: 1;
1142      --ps-theme-widgets-cta-font-weight-scale: 1;
1143      --ps-theme-swatches-size-scale: 1;
1144      --ps-theme-swatches-radius-scale: 1;
1145      --ps-theme-swatches-border-scale: 0.25;
1146      --ps-theme-pills-size-scale: 1.25;
1147      --ps-theme-pills-radius-scale: 0.25;
1148      --ps-theme-pills-border-scale: 0.125;
1149    }
1150    .picky-widget,
1151.picky-widget.picky-cart,
1152.picky-recommendations__content,
1153.picky-widget.picky-bnd-pdp,
1154.picky-widget.picky-byob-bundle.picky-byob-pdp,
1155.picky-widget .picky-upsell-bundle,
1156.picky-widget.picky-byob-bundle.picky-byob-inline,
1157.picky-widget.picky-qb-bundle,
1158.picky-widget.picky-fbt-inline .picky-fbt-inline__content,
1159.picky-widget .picky-button,
1160.picky-widget .picky-totals__title,
1161.picky-widget .picky-totals__price,
1162.picky-title.picky-reacted-product__title,
1163.picky-title.picky-product-card__title,
1164.picky-product-card__prices-wrapper .picky-product-card__price,
1165.picky-upsell-bundle__content,
1166.picky-subscriptions__item,
1167select,
1168.picky-pill__item,
1169.picky-add-discount-field__button,
1170.picky-add-note-field__button {
1171font-family: Outfit;
1172}
1173
1174
1175.picky-widget.picky-cart .picky-button,
1176.picky-fbt-inline__button:before,
1177.picky-fbt-inline {
1178background: #E73C3E;
1179--ps-theme-accent-background-color: #E73C3E;
1180}
1181
1182/*Variants on different themes*/
1183body.gradient.theme--product-floor-vents-luxe-colour .picky-fbt-inline__item .picky-pill__item:not([class*="_disabled_"]):not([class*="_selected_"]),
1184body.gradient.theme--product- .picky-fbt-inline__item .picky-pill__item:not([class*="_disabled_"]):not([class*="_selected_"]) {
1185  border: 1px solid #12121240 !important;
1186  box-sizing: border-box !important;
1187}
1188
1189body.gradient.theme--product-floor-vents-luxe-colour .picky-fbt-inline__item .picky-pill__item:hover:not([class*="_disabled_"]):not([class*="_selected_"]),
1190body.gradient.theme--product- .picky-fbt-inline__item .picky-pill__item:hover:not([class*="_disabled_"]):not([class*="_selected_"]) {
1191  border-color: #000 !important;
1192}
1193
1194body.gradient.theme--product-floor-vents-luxe-colour .picky-fbt-inline__item .picky-pill__item:not([class*="_selected_"])::before,
1195body.gradient.theme--product- .picky-fbt-inline__item .picky-pill__item:not([class*="_selected_"])::before {
1196  content: none !important;
1197}
1198
1199body.gradient.theme--product-Blackout .picky-fbt-inline__item .picky-pill__item:not([class*="_disabled_"]):not([class*="_selected_"]) {
1200  border: 1px solid #444444 !important;
1201  box-sizing: border-box !important;
1202}
1203
1204body.gradient.theme--product-Blackout .picky-fbt-inline__item .picky-pill__item:hover:not([class*="_disabled_"]):not([class*="_selected_"]) {
1205  border-color: #E73C3E !important;
1206}
1207
1208body.gradient.theme--product-Blackout .picky-fbt-inline__item .picky-pill__item:not([class*="_selected_"])::before {
1209  content: none !important;
1210}
1211/*End of Variants on different themes*/
1212
1213
1214
1215.picky-fbt-inline__item .picky-pill__item {
1216border-radius: 5px;
1217min-width: fit-content;
1218min-height: fit-content;
1219padding: 8px 15px 8px 15px;
1220}
1221
1222.picky-fbt-inline__item .picky-pill__item [class*="_content_"] {
1223font-size: 14px;
1224}
1225
1226.picky-fbt-inline__item [class*="_selected_"].picky-pill__item:before {
1227border-radius: 4px;
1228background-color: transparent;
1229border-color: #E73C3E;
1230}
1231
1232.picky-fbt-inline__item [class*="_selected_"].picky-pill__item {
1233background-color: transparent;
1234}
1235
1236.picky-widget.picky-fbt-inline .picky-fbt-inline__footer {
1237max-width: 100% !important;
1238}
1239
1240/*End of FBT widget*/
1241
1242/*Cart*/
1243
1244.picky-cart__footer .picky-powered-by {
1245display: none;
1246}
1247
1248.picky-cart__header .picky-cart__title {
1249font-family: Outfit;
1250font-weight:  700;
1251color: black;
1252}
1253
1254.picky-recommendations__content .picky-recommendations__title {
1255font-family: Outfit;
1256font-weight:  600;
1257color: black;
1258}
1259
1260.picky-product-card__title,
1261.picky-cart-item__title,
1262.picky-add-discount-field__button *,
1263.picky-add-note-field__button *,
1264.picky-product-card__price,
1265.picky-totals__price {
1266color: black;
1267}
1268
1269.picky-cart__footer [class*="_integration_"] {
1270display: none;
1271}
1272
1273.picky-recommendations__content [class*="_detailed_"] {
1274gap: calc(var(--ps-indents) * 20px);
1275}
1276
1277.picky-recommendations__content .picky-product-card__image {
1278min-width: 100%;
1279}
1280
1281/*End of Cart*/
1282
1283/*Buttons*/
1284
1285.picky-button,
1286.picky-button:before {
1287animation: none !important;
1288transform: none !important;
1289  border: 1px solid #E73C3E;   /* ring stays original color */
1290  background: #E73C3E;
1291  border-radius: 8px; 
1292  transition: background-color .15s ease, filter .15s ease;
1293  background-clip: padding-box;
1294}
1295
1296.picky-button:hover:before {
1297  background: #d13436;
1298}
1299
1300/*End of Buttons*/
1301
1302
1303/*Changing FBT backgrounds based on theme background color*/
1304body.gradient.theme--product- .picky-widget.picky-fbt-inline [class*="_bundle_"],
1305body.gradient.theme--product-floor-vents-luxe-colour .picky-widget.picky-fbt-inline [class*="_bundle_"] {
1306background: white !important;
1307color: black !important;
1308}
1309
1310body.gradient.theme--product- .picky-fbt-inline__item [class*="_selected_"].picky-pill__item,
1311body.gradient.theme--product- .picky-fbt-inline__item .picky-pill__item,
1312body.gradient.theme--product- .picky-header__title,
1313body.gradient.theme--product-floor-vents-luxe-colour .picky-fbt-inline__item [class*="_selected_"].picky-pill__item,
1314body.gradient.theme--product-floor-vents-luxe-colour .picky-fbt-inline__item .picky-pill__item,
1315body.gradient.theme--product-floor-vents-luxe-colour .picky-header__title {
1316background-color: transparent;
1317background: transparent;
1318color: black;
1319}
1320/*End of Changing FBT backgrounds based on theme background color*/
1321  </style>
1322
1323<!-- END app snippet -->
1324
1325
1326
1327
1328<!-- BEGIN app snippet: amplify-data -->
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343  
1344<!-- BEGIN app snippet: force-byob-inline-page-redirect -->
1345
1346
1347  
1348    
1349    
1350    
1351  
1352
1353<!-- END app snippet -->
1354
1355  
1356<!-- BEGIN app snippet: amplify-products-json -->
1356<script data-amplify="bundle-products-json-data" type="application/json">
1357  {
1358    "products": []
1359  }
1360</script>
1360
1361<!-- END app snippet -->
1362
1363
1364<!-- END app snippet -->
1365<!-- END app block -->
1365<script src="https://cdn.shopify.com/extensions/019feb7b-2b89-71ba-a248-f1c8ef9b3368/stape-remix-56/assets/widget.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1365
1365
1366<script src="https://cdn.shopify.com/extensions/01a11aba-aafa-7dea-b236-635273518339/gdpr-backpack-916/assets/consentmo_cookie_consent.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1366
1366
1367<script src="https://cdn.shopify.com/extensions/01a11794-ba77-7bf4-8650-524700ae6a8e/2026-10-07-18-15-22-UTC--be93d12/assets/smile-loader.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1367
1367
1368<script src="https://cdn.shopify.com/extensions/01a11a42-f57c-7aa4-86ea-84d575224241/dealeasy-289/assets/lb-dealeasy.js" type="text/javascript" defer="defer"></script>
1368
1369<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1370<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: 11712102462,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "index"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 1370
1370
1371<script>
1372  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
1373</script>
vendor: 1 bytes, line 1373
1373
1374<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}
1374).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: 11712102462,storefrontBaseUrl: "https://fittes.ca",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://fittes.ca/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b"],webPixelsConfigList: [{"id":"2608103794","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"6e6b2e32fe6866115b7e49e2ae3c75b2","type":"APP","apiClientId":5940125,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
1374,"dataSharingState":"unrestricted"},{"id":"2416345458","configuration":"{\"accountID\":\"HGhTJc\",\"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":"2156036466","configuration":"{\"accountID\":\"11712102462\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"9cf281f576a3744d05c8685f9f7f3f72","type":"APP","apiClientId":10250649601,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"962658674","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-RMGBW5NG61\\\",\\\"AW-801492295\\\",\\\"GTM-PVWW9PP9\\\"],\\\"target_country\\\":\\\"CA\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-RMGBW5NG61\\\",\\\"AW-801492295\\\/Vy63CKvsibQaEMeal_4C\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-RMGBW5NG61\\\",\\\"AW-801492295\\\/F6BtCOf1ibQaEMeal_4C\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-RMGBW5NG61\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-RMGBW5NG61\\\",\\\"AW-801492295\\\/a_zmCOT1ibQaEMeal_4C\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-RMGBW5NG61\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-RMGBW5NG61\\\",\\\"AW-801492295\\\/zLy9CKjsibQaEMeal_4C\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-RMGBW5NG61\\\",\\\"AW-801492295\\\/JgYOCLHsibQaEMeal_4C\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-RMGBW5NG61\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-RMGBW5NG61\\\",\\\"AW-801492295\\\/n_PuCOr1ibQaEMeal_4C\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-RMGBW5NG61\\\",\\\"AW-801492295\\\/6SSACK7sibQaEMeal_4C\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-RMGBW5NG61\\\"}],\\\"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":"951288178","configuration":"{\"ti\":\"187186546\",\"endpoint\":\"https:\/\/bat.bing.com\/action\/0\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"5ee93563fe31b11d2d65e2f09a5229dc","type":"APP","apiClientId":2997493,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"885129586","configuration":"{\"tagID\":\"2612966390557\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7ae565e198624b39e0856d352b9a6b4c","type":"APP","apiClientId":3009811,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"673382770","configuration":"{\"pixelCode\":\"CN5T7VBC77U5F0DKD7A0\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"22e92c2ad45662f435e4801458fb78cc","type":"APP","apiClientId":4383523,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":[]},"dataSharingState":"optimized"},{"id":"210632892","configuration":"{\"pixel_id\":\"1200520769985907\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"bd2f978c17a94bbb8a74d43de2165dc5","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]}
1374,{"id":"195166578","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","PREFERENCES","SALE_OF_DATA"],"name":"Stape-Checkout-Events"},{"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":"Fittes 🍁","paymentSettings":{"currencyCode":"CAD"},"myshopifyDomain":"ariavent.myshopify.com","countryCode":"CA","storefrontUrl":"https:\/\/fittes.ca"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"7736371511484","handle":"flush-wall-vent-luxe-plus","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43177643049148","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"2339981099070","handle":"flush-wall-vent-luxe","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42886097567932","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7762813485244","handle":"framed-wall-vent-luxe-plus","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43177651798204","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7756734005436","handle":"framed-wall-vent-luxe","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42946179006652","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"14748889874802","handle":"flush-wall-vent-lite-plus","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52493906837874","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7488048824508","handle":"flush-wall-vent-lite","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42531349954748","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"14748886270322","handle":"framed-wall-vent-lite-plus","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52493908509042","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7488051216572","handle":"framed-wall-vent-lite","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42531455566012","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8029697212604","handle":"flush-floor-vent-luxe-plus","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42923404820668","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"2339952721982","handle":"flush-floor-vent-luxe","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"61247546818930","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8029699768508","handle":"framed-floor-vent-luxe-plus","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42923410620604","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"2339413131326","handle":"framed-floor-vent-luxe","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"61247543607666","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}
1374,{"id":"14748867461490","handle":"flush-floor-vent-lite-plus","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52357985894770","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"4465087676478","handle":"flush-floor-vent-lite","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"61247556452722","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"14738400608626","handle":"framed-floor-vent-lite-plus","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52294891995506","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"2339971203134","handle":"framed-floor-vent-lite","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"61247550030194","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7872215122108","handle":"flush-trim-mount-lite","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"60771950297458","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"14684503933298","handle":"flush-access-panel-luxe-1","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51898329137522","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"14684503343474","handle":"flush-exhaust-mount-lite","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"61247610749298","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"4530627215422","handle":"brack-kit-luxe","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43010871918780","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7724201246908","handle":"device-mount-smash-plate","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42412785631420","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"14684504195442","handle":"flush-anywhere-niche-luxe","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51898328973682","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7991683481788","handle":"device-mount-luxe","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42860472991932","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7717122015420","handle":"flush-drywall-device-mount-lite","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42394760020156","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://fittes.ca/cdn","7ec887c8w14f9f074p854094e1m1370c602",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"193544421746","themePublished":"true","eventMetadataId":"9628c7ec-0559-4bd4-8988-ab0a1c005df0","pageType":"home","shopId":"11712102462","storefrontBaseUrl":"https:\/\/fittes.ca","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\"]","isMerchantRequest":"false","hashVersion":"7ec887c8w14f9f074p854094e1m1370c602","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
1374<script>
1375  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
1376  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
1377  window.ShopifyAnalytics.meta.currency = 'USD';
1378  var meta = {"page":{"pageType":"home","requestId":"49b0a359-863b-4d4d-b87f-7d89adca0920-1791450973"}};
1379  for (var attr in meta) {
1380    window.ShopifyAnalytics.meta[attr] = meta[attr];
1381  }
1382</script>
vendor: 1 bytes, line 1382
1382
1383<script class="analytics">
1384  (function () {
1385    var customDocumentWrite = function(content) {
1386      var jquery = null;
1387
1388      if (window.jQuery) {
1389        jquery = window.jQuery;
1390      } else if (window.Checkout && window.Checkout.$) {
1391        jquery = window.Checkout.$;
1392      }
1393
1394      if (jquery) {
1395        jquery('body').append(content);
1396      }
1397    };
1398
1399    var hasLoggedConversion = function(token) {
1400      if (token) {
1401        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
1402      }
1403      return false;
1404    }
1405
1406    var setCookieIfConversion = function(token) {
1407      if (token) {
1408        var twoMonthsFromNow = new Date(Date.now());
1409        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
1410
1411        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
1412      }
1413    }
1414
1415    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
1416    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
1417    if (trekkie.integrations) {
1418      return;
1419    }
1420    trekkie.methods = [
1421      'identify',
1422      'page',
1423      'ready',
1424      'track',
1425      'trackForm',
1426      'trackLink'
1427    ];
1428    trekkie.factory = function(method) {
1429      return function() {
1430        var args = Array.prototype.slice.call(arguments);
1431        args.unshift(method);
1432        trekkie.push(args);
1433        if (method == 'track' || method == 'page') {
1434          var pageUrl;
1435          try {
1436            pageUrl = window.location.href;
1437          } catch (e) {}
1438          var pageReferrer;
1439          try {
1440            pageReferrer = document.referrer;
1441          } catch (e) {}
1442          try {
1443            if (window.__TREKKIE_SHIM_QUEUE == null) {
1444              window.__TREKKIE_SHIM_QUEUE = [];
1445            }
1446            window.__TREKKIE_SHIM_QUEUE.push({
1447              from: 'trekkie-stub',
1448              method: method,
1449              args: args.slice(1),
1450              pageContext: {
1451                url: pageUrl,
1452                referrer: pageReferrer
1453              }
1454            });
1455          } catch (e) {
1456            // no-op
1457          }
1458        }
1459        return trekkie;
1460      };
1461    };
1462    for (var i = 0; i < trekkie.methods.length; i++) {
1463      var key = trekkie.methods[i];
1464      trekkie[key] = trekkie.factory(key);
1465    }
1466    trekkie.load = function(config) {
1467      trekkie.config = config || {};
1468      trekkie.config.initialDocumentCookie = document.cookie;
1469      var first = document.getElementsByTagName('script')[0];
1470var script = document.createElement('script');
1471script.type = 'text/javascript';
1472script.onerror = function(e) {
1473  var scriptFallback = document.createElement('script');
1474  scriptFallback.type = 'text/javascript';
1475  scriptFallback.onerror = function(error) {
1476          var Monorail = {
1477      produce: function produce(monorailDomain, schemaId, payload) {
1478        var currentMs = new Date().getTime();
1479        var event = {
1480          schema_id: schemaId,
1481          payload: payload,
1482          metadata: {
1483            event_created_at_ms: currentMs,
1484            event_sent_at_ms: currentMs
1485          }
1486        };
1487        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
1488      },
1489      sendRequest: function sendRequest(endpointUrl, payload) {
1490        // Try the sendBeacon API
1491        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
1492          var blobData = new window.Blob([payload], {
1493            type: 'text/plain'
1494          });
1495
1496          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
1497            return true;
1498          } // sendBeacon was not successful
1499
1500        } // XHR beacon
1501
1502        var xhr = new XMLHttpRequest();
1503
1504        try {
1505          xhr.open('POST', endpointUrl);
1506          xhr.setRequestHeader('Content-Type', 'text/plain');
1507          xhr.send(payload);
1508        } catch (e) {
1509          console.log(e);
1510        }
1511
1512        return false;
1513      },
1514      isIos12: function isIos12() {
1515        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
1516      }
1517    };
1518    Monorail.produce('monorail-edge.shopifysvc.com',
1519      'trekkie_storefront_load_errors/1.1',
1520      {shop_id: 11712102462,
1521      theme_id: 193544421746,
1522      app_name: "storefront",
1523      context_url: window.location.href,
1524      source_url: "//fittes.ca/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"});
1525
1526  };
1527  scriptFallback.async = true;
1528  scriptFallback.src = '//fittes.ca/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js';
1529  first.parentNode.insertBefore(scriptFallback, first);
1530};
1531script.async = true;
1532script.src = '//fittes.ca/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js';
1533first.parentNode.insertBefore(script, first);
1534
1535    };
1536    trekkie.load(
1537      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":11712102462,"isMerchantRequest":null,"themeId":193544421746,"themeCityHash":"9125768973011663826","contentLanguage":"en","currency":"USD","eventMetadataId":"9628c7ec-0559-4bd4-8988-ab0a1c005df0"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}}
1538    );
1539
1540    var loaded = false;
1541    trekkie.ready(function() {
1542      if (loaded) return;
1543      loaded = true;
1544
1545      window.ShopifyAnalytics.lib = window.trekkie;
1546
1547      var originalDocumentWrite = document.write;
1548      document.write = customDocumentWrite;
1549      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
1550      document.write = originalDocumentWrite;
1551
1552      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
1553      var token = match? match[1]: undefined;
1554      if (!hasLoggedConversion(token)) {
1555        setCookieIfConversion(token);
1556        
1557      }
1558    });
1559
1560    window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"49b0a359-863b-4d4d-b87f-7d89adca0920-1791450973","shopifyEmitted":true});
1561
1562    var eventsListenerScript = document.createElement('script');
1563    eventsListenerScript.async = true;
1564    eventsListenerScript.src = "//fittes.ca/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
1565    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
1566})();</script>
1566
1567  
1567<script>
1568  if (!window.ga || (window.ga && typeof window.ga !== 'function')) {
1569    window.ga = function ga() {
1570      (window.ga.q = window.ga.q || []).push(arguments);
1571      if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
1572        window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"});
1573      }
1574      console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information.");
1575    };
1576    if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
1577      window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"});
1578    }
1579  }
1580</script>
vendor: 1 bytes, line 1580
1580
1581<script
1582  defer
1583  src="https://fittes.ca/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.10.0.min.js"
1584  data-application="storefront-renderer"
1585  data-shop-id="11712102462"
1586  data-render-region="gcp-us-central1"
1587  data-page-type="index"
1588  data-theme-instance-id="193544421746"
1589  data-theme-name="Dawn"
1590  data-theme-version="15.2.0"
1591  data-monorail-region="shop_domain"
1592  data-resource-timing-sampling-rate="10"
1593  data-shs="true"
1594  data-shs-beacon="true"
1595  data-shs-export-with-fetch="true"
1596  data-shs-logs-sample-rate="1"
1597  data-shs-beacon-endpoint="https://fittes.ca/api/collect"
1598></script>
1598
1599<meta name="shopify-y" content="b83463f2-139b-4aa9-abfb-c6eff60e3bed" data-expiration="1823008573000"><meta name="shopify-s" content="aa23718b-9a11-443b-98e1-019d96fd69b1" data-expiration="1791452773000"><meta name="new-cookie-storage-activated" content="t">
1600</head>
1601
1602  <body class="gradient theme--index-">
1603  
1604    <a class="skip-to-content-link button visually-hidden" href="#MainContent">
1605      Skip to content
1606    </a>
1607
1608<link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
1609<link href="//fittes.ca/cdn/shop/t/139/assets/component-card.css?v=26033685683467094921788881620" rel="stylesheet" type="text/css" media="all" />
1610
1611<script src="//fittes.ca/cdn/shop/t/139/assets/cart.js?v=158591686551091446861788881618" defer="defer"></script>
vendor: 1 bytes, line 1611
1611
1612<script src="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.js?v=987015268078116491788881705" defer="defer"></script>
1612
1613
1614<style>
1615  .drawer {
1616    visibility: hidden;
1617  }
1618</style>
1619
1620<cart-drawer class="drawer is-empty">
1621  <div id="CartDrawer" class="cart-drawer">
1622    <div id="CartDrawer-Overlay" class="cart-drawer__overlay"></div>
1623    <div
1624      class="drawer__inner gradient color-scheme-1"
1625      role="dialog"
1626      aria-modal="true"
1627      aria-label="Your cart"
1628      tabindex="-1"
1629    ><div class="drawer__inner-empty">
1630          <div class="cart-drawer__warnings center cart-drawer__warnings--has-collection">
1631            <div class="cart-drawer__empty-content">
1632              <h2 class="cart__empty-text">Your cart is empty</h2>
1633              <button
1634                class="drawer__close"
1635                type="button"
1636                onclick="this.closest('cart-drawer').close()"
1637                aria-label="Close"
1638              >
1639                <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
1640</span>
1641              </button>
1642              <a href="/collections/all" class="button">
1643                Continue shopping
1644              </a><p class="cart__login-title h3">Have an account?</p>
1645                <p class="cart__login-paragraph">
1646                  <a href="https://fittes.ca/customer_authentication/redirect?locale=en&region_country=US" class="link underlined-link">Log in</a> to check out faster.
1647                </p></div>
1648          </div><div class="cart-drawer__collection">
1649              
1650<div class="card-wrapper animate-arrow collection-card-wrapper">
1651  <div
1652    class="
1653      card
1654      card--standard
1655       card--media
1656      
1657      
1658      
1659    "
1660    style="--ratio-percent: 100%;"
1661  >
1662    <div
1663      class="card__inner color-scheme-2 gradient ratio"
1664      style="--ratio-percent: 100%;"
1665    ><div class="card__media">
1666          <div class="media media--transparent media--hover-effect">
1667            <img
1668              srcset="//fittes.ca/cdn/shop/files/1-FlushWallVent_Luxe__Lifestyle1_96d8c0b4-5986-406c-ba0b-9d9e6f2daa0f.jpg?v=1754022189&width=165 165w,//fittes.ca/cdn/shop/files/1-FlushWallVent_Luxe__Lifestyle1_96d8c0b4-5986-406c-ba0b-9d9e6f2daa0f.jpg?v=1754022189&width=330 330w,//fittes.ca/cdn/shop/files/1-FlushWallVent_Luxe__Lifestyle1_96d8c0b4-5986-406c-ba0b-9d9e6f2daa0f.jpg?v=1754022189&width=535 535w,//fittes.ca/cdn/shop/files/1-FlushWallVent_Luxe__Lifestyle1_96d8c0b4-5986-406c-ba0b-9d9e6f2daa0f.jpg?v=1754022189&width=750 750w,//fittes.ca/cdn/shop/files/1-FlushWallVent_Luxe__Lifestyle1_96d8c0b4-5986-406c-ba0b-9d9e6f2daa0f.jpg?v=1754022189&width=1000 1000w,//fittes.ca/cdn/shop/files/1-FlushWallVent_Luxe__Lifestyle1_96d8c0b4-5986-406c-ba0b-9d9e6f2daa0f.jpg?v=1754022189 1080w
1669              "
1670              src="//fittes.ca/cdn/shop/files/1-FlushWallVent_Luxe__Lifestyle1_96d8c0b4-5986-406c-ba0b-9d9e6f2daa0f.jpg?v=1754022189&width=1500"
1671              sizes="
1672                (min-width: 1400px) 1300px,
1673                (min-width: 750px) calc(100vw - 10rem),
1674                calc(100vw - 3rem)
1675              "
1676              alt=""
1677              height="1080"
1678              width="1080"
1679              loading="lazy"
1680              class="motion-reduce"
1681            >
1682          </div>
1683        </div><div class="card__content">
1684          <div class="card__information">
1685            <h3 class="card__heading">
1686              <a
1687                
1688                  href="/collections/best-sellers"
1689                
1690                class="full-unstyled-link"
1691              >Best Sellers<span class="icon-wrap"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
1691ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
1692</span>
1693              </a>
1694            </h3></div>
1695        </div></div><div class="card__content">
1696        <div class="card__information">
1697          <h3 class="card__heading">
1698            <a
1699              
1700                href="/collections/best-sellers"
1701              
1702              class="full-unstyled-link"
1703            >Best Sellers<span class="icon-wrap"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewBox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
1704</span>
1705            </a>
1706          </h3></div>
1707      </div></div>
1708</div>
1709
1710            </div></div><div class="drawer__header">
1711        <h2 class="drawer__heading">Your cart</h2>
1712        <button
1713          class="drawer__close"
1714          type="button"
1715          onclick="this.closest('cart-drawer').close()"
1716          aria-label="Close"
1717        >
1718          <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
1719</span>
1720        </button>
1721      </div>
1722      <cart-drawer-items
1723        
1724          class=" is-empty"
1725        
1726      >
1727        <form
1728          action="/cart"
1729          id="CartDrawer-Form"
1730          class="cart__contents cart-drawer__form"
1731          method="post"
1732        >
1733          <div id="CartDrawer-CartItems" class="drawer__contents js-contents"><p id="CartDrawer-LiveRegionText" class="visually-hidden" role="status"></p>
1734            <p id="CartDrawer-LineItemStatus" class="visually-hidden" aria-hidden="true" role="status">
1735              Loading...
1736            </p>
1737          </div>
1738          <div id="CartDrawer-CartErrors" role="alert"></div>
1739        </form>
1740      </cart-drawer-items>
1741      <div class="drawer__footer"><details id="Details-CartDrawer">
1742            <summary>
1743              <span class="summary__title">
1744                Order special instructions
1745<svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg>
1746</span>
1747            </summary>
1748            <cart-note class="cart__note field">
1749              <label class="visually-hidden" for="CartDrawer-Note">Order special instructions</label>
1750              <textarea
1751                id="CartDrawer-Note"
1752                class="text-area text-area--resize-vertical field__input"
1753                name="note"
1754                placeholder="Order special instructions"
1755              ></textarea>
1756            </cart-note>
1757          </details><!-- Start blocks -->
1758        <!-- Subtotals -->
1759
1760        <div class="cart-drawer__footer" >
1761          <div></div>
1762
1763          <div class="totals" role="status">
1764            <h2 class="totals__total">Estimated total</h2>
1765            <p class="totals__total-value">$0.00 USD</p>
1766          </div>
1767
1768          <small class="tax-note caption-large rte">Taxes, discounts and shipping calculated at checkout.
1769</small>
1770        </div>
1771
1772        <!-- CTAs -->
1773
1774        <div class="cart__ctas" >
1775          <button
1776            type="submit"
1777            id="CartDrawer-Checkout"
1778            class="cart__checkout-button button"
1779            name="checkout"
1780            form="CartDrawer-Form"
1781            
1782              disabled
1783            
1784          >
1785            Check out
1786          </button>
1787        </div>
1788      </div>
1789    </div>
1790  </div>
1791</cart-drawer>
1792<!-- BEGIN sections: header-group -->
1793<div id="shopify-section-sections--28630589604210__marquee_fEtJ7a" class="shopify-section shopify-section-group-header-group"><style>
1794  #marquee-sections--28630589604210__marquee_fEtJ7a {
1795    width: 100%;
1796    overflow: hidden;
1797    padding: 1.3rem 0;
1798    text-align: center;
1799    min-height: 3.6rem;
1800  }
1801
1802  #marquee-sections--28630589604210__marquee_fEtJ7a :is(h1,h2,h3,h4,h5,h6,p) {
1803    margin: 0;
1804  }
1805
1806  #marquee-sections--28630589604210__marquee_fEtJ7a a {
1807    color: rgba(var(--color-foreground));
1808  }
1809
1810  #marquee-sections--28630589604210__marquee_fEtJ7a .marquee-slide {
1811    display: none;
1812    padding: 0 1rem;
1813  }
1814
1815  #marquee-sections--28630589604210__marquee_fEtJ7a .marquee-slide.is-active {
1816    display: block;
1817  }
1818
1819  #marquee-sections--28630589604210__marquee_fEtJ7a .marquee-slide.marquee-fade {
1820    animation: marqueeFade-sections--28630589604210__marquee_fEtJ7a 0.6s ease-in-out;
1821  }
1822
1823  @media (prefers-reduced-motion: reduce) {
1824    #marquee-sections--28630589604210__marquee_fEtJ7a .marquee-slide.marquee-fade {
1825      animation: none;
1826    }
1827  }
1828
1829  @keyframes marqueeFade-sections--28630589604210__marquee_fEtJ7a {
1830    from { opacity: 0; }
1831    to { opacity: 1; }
1832  }
1833</style>
1834
1835<div
1836  class="color-scheme-48d3c504-3bc8-46b7-9ac3-5e0470b53020"
1837  id="marquee-sections--28630589604210__marquee_fEtJ7a"
1838  role="region"
1839  aria-label="Announcements"
1840>
1841  <div aria-live="polite" aria-atomic="true"><div
1842        class="marquee-slide is-active"
1843        data-marquee-slide
1844        
1845      >
1846        <p> <strong>Canadian Made. No Tariffs... EVER!</strong></p>
1847      </div><div
1848        class="marquee-slide"
1849        data-marquee-slide
1850        
1851      >
1852        <p><strong>Free shipping on your first order over $150. </strong><a href="https://signup.fittes.ca/l/UGN663" target="_blank"><strong>SUBSCRIBE NOW</strong></a><strong>.</strong></p>
1853      </div><div
1854        class="marquee-slide"
1855        data-marquee-slide
1856        
1857      >
1858        <p><strong>Earn points with every order — Join </strong><a href="/pages/fittes-crew" title="Fittes Crew"><strong>Fittes Crew</strong></a></p>
1859      </div></div>
1860</div>
1861
1862<script>
1863(function() {
1864  var sectionId = 'sections--28630589604210__marquee_fEtJ7a';
1865  var container = document.getElementById('marquee-' + sectionId);
1866  if (!container) return;
1867
1868
1869  function initMarquee() {
1870    var slides = container.querySelectorAll('[data-marquee-slide]');
1871    var count = slides.length;
1872    if (count <= 1) return;
1873
1874    var current = 0;
1875    var timer = null;
1876    var paused = false;
1877
1878    function rotate() {
1879      slides[current].classList.remove('is-active', 'marquee-fade');
1880      current = (current + 1) % count;
1881      slides[current].classList.add('is-active');
1882      void slides[current].offsetWidth;
1883      slides[current].classList.add('marquee-fade');
1884    }
1885
1886    function start() {
1887      if (!timer && !paused) timer = setInterval(rotate, 4500);
1888    }
1889
1890    function stop() {
1891      if (timer) { clearInterval(timer); timer = null; }
1892    }
1893
1894    /* Pause when tab is hidden */
1895    document.addEventListener('visibilitychange', function() {
1896      document.hidden ? stop() : start();
1897    });
1898
1899    /* Pause on hover so users can read */
1900    container.addEventListener('mouseenter', function() {
1901      paused = true;
1902      stop();
1903    });
1904
1905    container.addEventListener('mouseleave', function() {
1906      paused = false;
1907      start();
1908    });
1909
1910    start();
1911  }
1912
1913  initMarquee();
1914
1915  if (Shopify.designMode) {
1916    document.addEventListener('shopify:section:load', function(e) {
1917      if (e.detail.sectionId === sectionId) {
1918        container = document.getElementById('marquee-' + sectionId);
1919        if (container) initMarquee();
1920      }
1921    });
1922  }
1923})();
1924</script>
1924
1925
1926</div><div id="shopify-section-sections--28630589604210__header" class="shopify-section shopify-section-group-header-group section-header"><link rel="stylesheet" href="//fittes.ca/cdn/shop/t/139/assets/component-list-menu.css?v=151968516119678728991788881626" media="print" onload="this.media='all'">
1927<link rel="stylesheet" href="//fittes.ca/cdn/shop/t/139/assets/component-search.css?v=165164710990765432851788881634" media="print" onload="this.media='all'">
1928<link rel="stylesheet" href="//fittes.ca/cdn/shop/t/139/assets/component-menu-drawer.css?v=147478906057189667651788881629" media="print" onload="this.media='all'">
1929<link rel="stylesheet" href="//fittes.ca/cdn/shop/t/139/assets/component-cart-notification.css?v=54116361853792938221788881622" media="print" onload="this.media='all'">
1930<link rel="stylesheet" href="//fittes.ca/cdn/shop/t/139/assets/component-list-social.css?v=35792976012981934991788881627" media="print" onload="this.media='all'"><link rel="stylesheet" href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" media="print" onload="this.media='all'"><link rel="stylesheet" href="//fittes.ca/cdn/shop/t/139/assets/component-mega-menu.css?v=10110889665867715061788881628" media="print" onload="this.media='all'"><style>
1931  /* ===============================================================
1932     HORIZONTAL ALIGNMENT
1933     The header uses the exact same gutter as the collection template
1934     (and the rest of the site): 1.5rem on mobile, 5rem from 750px up.
1935     The header itself stays full-bleed, so on viewports wider than the
1936     page width the logo sits LEFT of the content edge, never right of it.
1937     No breakpoint ever changes the gutter, so nothing jumps.
1938  =============================================================== */
1939  #shopify-section-sections--28630589604210__header {
1940    --hdr-gutter: 1.5rem;
1941    --hdr-max-width: 1400px;
1942  }
1943  @media screen and (min-width: 750px) {
1944    #shopify-section-sections--28630589604210__header {
1945      --hdr-gutter: 5rem;
1946    }
1947  }
1948
1949  /* Hamburger (below 990px): the visible glyph lands exactly on the content
1950     gutter. base.css makes the icon 2.4rem and pins it at left: 1.6rem inside
1951     a 4.4rem summary; here every dimension is set explicitly so the math
1952     holds: header-drawer sits 1rem left of the gutter, the summary is a
1953     4.4rem box with no padding, the icon sits 1rem in ((4.4 - 2.4) / 2).
1954     -1rem + 1rem = 0 -> glyph on the gutter, tap target still 44px. */
1955  @media screen and (max-width: 989px) {
1956    #shopify-section-sections--28630589604210__header header-drawer {
1957      justify-self: start;
1958      margin-left: -1rem !important;
1959    }
1960    /* `>` matters: the drawer's own submenu headings are also <summary> elements */
1961    #shopify-section-sections--28630589604210__header .menu-drawer-container > summary {
1962      box-sizing: border-box !important;
1963      width: 4.4rem !important;
1964      min-width: 4.4rem !important;
1965      padding: 0 !important;
1966      margin-left: 0 !important;
1967      margin-right: 0 !important;
1968      display: flex !important;
1969      align-items: center !important;
1970      justify-content: center !important;
1971      position: relative !important;
1972    }
1973    #shopify-section-sections--28630589604210__header .menu-drawer-container > summary > span {
1974      display: block !important;
1975      width: 100% !important;
1976      height: 100% !important;
1977      margin: 0 !important;
1978      padding: 0 !important;
1979    }
1980    #shopify-section-sections--28630589604210__header .menu-drawer-container > summary .icon {
1981      position: absolute !important;
1982      left: 1rem !important;
1983      top: calc(50% - 1.2rem) !important;
1984      width: 2.4rem !important;
1985      height: 2.4rem !important;
1986      margin: 0 !important;
1987    }
1988  }
1989
1990  /* ===============================================================
1991     SCROLL-UP REVEAL (self-contained)
1992     Does not depend on Dawn's .shopify-section-header-sticky /
1993     .shopify-section-header-hidden classes or on position: sticky.
1994     The section is switched to position: fixed once it has scrolled
1995     out of view, a spacer holds its slot in the flow, and it slides
1996     in/out with a transform. Fixed positioning is immune to overflow
1997     rules on any ancestor (the usual reason a sticky header silently
1998     stops sticking), so app CSS can't break it.
1999  =============================================================== */
2000  .hdr-fixed-spacer {
2001    display: none;
2002    margin: 0;
2003    padding: 0;
2004    pointer-events: none;
2005  }
2006  /* Dawn gives every section .gradient with background-attachment: fixed.
2007     Fixed-attachment backgrounds have to be repainted on every scroll frame,
2008     and Chrome (macOS especially) flashes them black while it catches up once
2009     a composited fixed header is overlapping the page. Solid colour schemes
2010     render identically with scroll attachment, so it's turned off globally.
2011     (Cleaner long-term: delete that one line from .gradient in base.css.) */
2012  .gradient {
2013    background-attachment: scroll !important;
2014  }
2015
2016  #shopify-section-sections--28630589604210__header.hdr-is-fixed {
2017    position: fixed;
2018    top: 0;
2019    left: 0;
2020    right: 0;
2021    width: 100%;
2022    z-index: 4;
2023    /* Keep the bar on its own pre-rasterised layer while fixed so its logo,
2024       menu and icons are already painted when it slides back in. */
2025    will-change: transform;
2026  }
2027  #shopify-section-sections--28630589604210__header.hdr-is-fixed.hdr-is-hidden {
2028    transform: translateY(-100%);
2029  }
2030  #shopify-section-sections--28630589604210__header.hdr-is-fixed.hdr-animate {
2031    transition: transform 0.18s ease-out;
2032  }
2033  #shopify-section-sections--28630589604210__header.hdr-is-fixed.menu-open {
2034    transform: translateY(0);
2035  }
2036  @media (prefers-reduced-motion: reduce) {
2037    #shopify-section-sections--28630589604210__header.hdr-is-fixed.hdr-animate {
2038      transition: none;
2039    }
2040  }
2041
2042  #shopify-section-sections--28630589604210__header .hw-head-search-input::placeholder {
2043    color: #A9AEB2;
2044    opacity: 1; /* Firefox */
2045  }
2046
2047  #shopify-section-sections--28630589604210__header .hw-head-search-input::-ms-input-placeholder { /* Edge 12 -18 */
2048    color: #A9AEB2;
2049  }
2050  header-drawer {
2051    justify-self: start;
2052    margin-left: -1.2rem;
2053  }@media screen and (min-width: 990px) {
2054      header-drawer {
2055        display: none;
2056      }
2057    }.menu-drawer-container {
2058    display: flex;
2059  }
2060
2061  /* CA: grey separator line under the header (visible with the menu closed).
2062     Same rule the theme applies via .header-wrapper--border-bottom. */
2063  #shopify-section-sections--28630589604210__header .header-wrapper {
2064    border-bottom: 0.1rem solid rgba(var(--color-foreground), 0.08);
2065  }
2066
2067  .list-menu {
2068    list-style: none;
2069    padding: 0;
2070    margin: 0;
2071  }
2072
2073  .list-menu--inline {
2074    display: inline-flex;
2075    margin-right: 0;
2076    /* flex-wrap: wrap; */
2077  }
2078  .list-menu--inline li .header__menu-item > span{
2079        flex-grow: 1;
2080      flex-shrink: 0;
2081  }
2082
2083  summary.list-menu__item {
2084    padding-right: 1rem;
2085  }
2086
2087  .list-menu__item {
2088    display: flex;
2089    align-items: flex-end;
2090    line-height: calc(1 + 0.3 / var(--font-body-scale));
2091  }
2092
2093  .list-menu__item--link {
2094    text-decoration: none;
2095    padding-bottom: 1rem;
2096    padding-top: 1rem;
2097    line-height: calc(1 + 0.8 / var(--font-body-scale));
2098  }
2099
2100  @media screen and (min-width: 750px) {
2101    .list-menu__item--link {
2102      padding-bottom: 0.5rem;
2103      padding-top: 0.5rem;
2104    }
2105    #shopify-section-sections--28630589604210__header .header__icon--account{
2106      order: 3;
2107    }
2108    #shopify-section-sections--28630589604210__header details>.header__menu-item .icon-caret{
2109      margin: auto 0;
2110      transform: translateY(0%);
2111    }
2112    #shopify-section-sections--28630589604210__header details[open]>.header__menu-item .icon-caret{
2113      transform: translateY(0%) rotate(180deg);
2114    }
2115    #shopify-section-sections--28630589604210__header .header__inline-menu summary.header__menu-item *,
2116    #shopify-section-sections--28630589604210__header a.header__menu-item *{
2117      transition: all .3s ease;
2118    }
2119    #shopify-section-sections--28630589604210__header .header__inline-menu summary.header__menu-item:hover *,
2120    #shopify-section-sections--28630589604210__header a.header__menu-item:hover *{
2121      color: #e73c3e;
2122    }
2123
2124    /* Mega menu content follows the header gutter so it keeps the same
2125       relationship to the "Shop" trigger at every viewport width. */
2126    #shopify-section-sections--28630589604210__header .mega-menu__content{
2127      padding-left: calc(var(--hdr-gutter) + 7rem);
2128      padding-right: 32rem;
2129      /* CA: tighter menu — override the theme's larger default spacing
2130         above and below the link columns so it matches US */
2131      padding-top: 2rem;
2132      padding-bottom: 2.4rem;
2133    }
2134    #shopify-section-sections--28630589604210__header .mega-menu__content .mega-image-link-wrapper{
2135      margin-left: auto;
2136      gap: 2rem;
2137    }
2138    #shopify-section-sections--28630589604210__header .mega-image-link img{
2139      --size: 14rem;
2140      width: var(--size);
2141      height: var(--size);
2142      object-fit: cover;
2143    }
2144    #shopify-section-sections--28630589604210__header .header__heading-link{
2145          /* min-width: clamp(4rem, 5vw, 8rem); */
2146    }
2147
2148  }
2149
2150  /* base.css snaps three header values at 1280px with nothing set below it:
2151       .header--middle-left column-gap            0  -> 4.8rem  (moves all three tabs)
2152       .header__icons gap                         0  -> 12px
2153       .header__icon--search-span padding         0  -> 2.4rem
2154     That is the desktop jump. These ramp the same values linearly from
2155     990px to 1280px and land on the exact live-site figures at 1280px+. */
2156  @media screen and (min-width: 990px) {
2157    #shopify-section-sections--28630589604210__header .header--middle-left {
2158      column-gap: clamp(0rem, 16.55vw - 163.9px, 4.8rem);
2159    }
2160    #shopify-section-sections--28630589604210__header .header__icons {
2161      gap: clamp(0px, 4.14vw - 41px, 12px);
2162    }
2163    #shopify-section-sections--28630589604210__header .header__icon--search .header__icon--search-span {
2164      padding: 0 clamp(0rem, 8.28vw - 82px, 2.4rem);
2165    }
2166    /* Text-to-caret spacing inside a tab: constant, matching the live 1280px+ value */
2167    .list-menu__item {
2168      gap: 1rem;
2169    }
2170  }
2171</style><style data-shopify>/* Vertical padding is the same at every width: the old file doubled it at
2172     990px and then halved it again at 1280px, which both changed the bar
2173     height mid-desktop and made 990-1279 thicker than the live site. */
2174  .header {
2175    padding: 10px var(--hdr-gutter) 10px var(--hdr-gutter);
2176  }
2177
2178  .section-header {
2179    position: sticky; /* This is for fixing a Safari z-index issue. PR #2147 - also makes the section the containing block for the mega menu */
2180    margin-bottom: 0px;
2181  }
2182  .hdr-fixed-spacer {
2183    margin-bottom: 0px;
2184  }
2185
2186  @media screen and (min-width: 750px) {
2187    .section-header,
2188    .hdr-fixed-spacer {
2189      margin-bottom: 0px;
2190    }
2191  }</style><style>
2192  /* this is for pre-search */
2193  #shopify-section-sections--28630589604210__header .predictive-search{
2194    border-radius: 20px;
2195    margin-top: 4rem;
2196    padding: 1.5rem 3.3rem;
2197  }
2198  #shopify-section-sections--28630589604210__header .predictive-search__heading {
2199    color: #1F1F1F;
2200    font-weight: 500;
2201    font-size: 2.4rem;
2202    line-height: 1.2;
2203    border: none;
2204  }
2205  #shopify-section-sections--28630589604210__header .predictive-search__item-heading *{
2206    font-size: 24px;
2207    font-weight: 400;
2208    line-height: 1.2;
2209    /* color: #1f1f1f; */
2210  }
2211  #shopify-section-sections--28630589604210__header .predictive-search__list-item:hover .predictive-search__item-heading{
2212    text-decoration: none;
2213    color: #E73C3E;
2214  }
2215  #shopify-section-sections--28630589604210__header .predictive-search__list-item .predictive-search__item-heading svg{
2216    margin-right: 16px;
2217  }
2218  #shopify-section-sections--28630589604210__header .predictive-search__list-item:hover .predictive-search__item-heading svg path{
2219    fill: #E73C3E;
2220  }
2221  #shopify-section-sections--28630589604210__header .predictive-search__list-item:hover .predictive-search__item-heading *{
2222    color: inherit;
2223  }
2224
2225  #shopify-section-sections--28630589604210__header #predictive-search-results-groups-wrapper .predictive-search__result-group:nth-of-type(1){
2226    border-right: 1px solid #F1F1F1;
2227  }
2228  #shopify-section-sections--28630589604210__header #predictive-search-results-groups-wrapper .predictive-search__result-group:nth-of-type(2){
2229    padding-left: 5rem;
2230  }
2231
2232  #shopify-section-sections--28630589604210__header #predictive-search-products{
2233    margin-left: 0;
2234    margin-bottom: 24px;
2235  }
2236  #shopify-section-sections--28630589604210__header #predictive-search-results-products-list{
2237    display: grid;
2238    grid-template-columns: repeat(3, 1fr);
2239    grid-column-gap: 18.5px;
2240    grid-row-gap: 20px;
2241  }
2242  #shopify-section-sections--28630589604210__header #predictive-search-results-products-list .predictive-search__item{
2243    display: flex;
2244    flex-direction: column;
2245    padding: 0;
2246  }
2247  #shopify-section-sections--28630589604210__header #predictive-search-results-products-list .predictive-search__item img{
2248    width: 100%;
2249    object-fit: cover;
2250    aspect-ratio: 1 / 1;
2251    height: 100%;
2252    margin-bottom: 5px;
2253  }
2254  #shopify-section-sections--28630589604210__header #predictive-search-results-products-list .predictive-search__item .predictive-search__item-heading{
2255    font-size: 12px;
2256    line-height: 1.2;
2257    font-weight: 400;
2258    color: #384353;
2259  }
2260  #shopify-section-sections--28630589604210__header #predictive-search-results-products-list .predictive-search__item .predictive-search__item-heading *{
2261    font-size: 12px;
2262    line-height: 1.2;
2263    font-weight: 400;
2264    color: #384353;
2265  }
2266
2267   #shopify-section-sections--28630589604210__header #predictive-search-option-search-keywords .predictive-search__item{
2268     justify-content: center;
2269     align-items: center;
2270   }
2271   #shopify-section-sections--28630589604210__header #predictive-search-option-search-keywords .predictive-search__item span:nth-of-type(1){
2272     font-weight: 500;
2273     font-size: 20px;
2274     line-height: 25.2px;
2275     color: #E73C3E;
2276     text-decoration: underline;
2277   }
2278
2279   #shopify-section-sections--28630589604210__header  predictive-search .reset__button{
2280      display: none;
2281    }
2282    /* #shopify-section-sections--28630589604210__header  predictive-search .field__label{
2283      display: none;
2284    } */
2285    #shopify-section-sections--28630589604210__header  predictive-search .field::placeholder{
2286      opacity: 1;
2287      color: #A9AEB2;
2288    }
2289    #shopify-section-sections--28630589604210__header  predictive-search .field:before{
2290      opacity: 0;
2291    }
2292    #shopify-section-sections--28630589604210__header  predictive-search .field:after{
2293      opacity: 0;
2294    }
2295    #shopify-section-sections--28630589604210__header  predictive-search .search__button{
2296      right: unset;
2297      left: var(--inputs-border-width);
2298    }
2299    #shopify-section-sections--28630589604210__header  predictive-search .search__input.field__input {
2300      padding-left: 4.8rem;
2301    }
2302    #shopify-section-sections--28630589604210__header  predictive-search .search__input.field__input:focus,
2303    #shopify-section-sections--28630589604210__header  predictive-search .search__input.field__input{
2304      padding: 1rem 1.5rem 1rem 5rem;
2305      box-shadow: none;
2306    }
2307
2308    #shopify-section-sections--28630589604210__header #predictive-search-results-groups-wrapper{
2309      /* border-top: 1px solid #f1f1f1; */
2310    }
2311  @media screen and (min-width: 750px){
2312    #shopify-section-sections--28630589604210__header .header__search .search-modal{
2313      min-height: 95px;
2314    }
2315    #shopify-section-sections--28630589604210__header .header__search .search-modal .icon-search,
2316    #shopify-section-sections--28630589604210__header .header__search .search-modal .icon-close{
2317      width: 3.8rem;
2318      height: 3.8rem;
2319    }
2320    #shopify-section-sections--28630589604210__header .header__search .search-modal .modal__close-button.link {
2321      margin-left: 11rem;
2322    }
2323    #shopify-section-sections--28630589604210__header predictive-search .field .field__input:focus~.field__label{
2324      opacity: 0;
2325    }
2326    #shopify-section-sections--28630589604210__header predictive-search .field .field__input~.field__label{
2327      left: calc(var(--inputs-border-width) + 5rem);
2328    }
2329    #shopify-section-sections--28630589604210__header #predictive-search-option-search-keywords .predictive-search__item{
2330      gap: 5px;
2331    }
2332  }
2333
2334  @media screen and (min-width: 990px) {
2335    #shopify-section-sections--28630589604210__header predictive-search .predictive-search{
2336      width: calc(100% + 15.5rem);
2337    }
2338  }
2339
2340  @media screen and (max-width: 749px){
2341     #shopify-section-sections--28630589604210__header .header__search .search-modal{
2342        height: 60px;
2343      } 
2344 /* Balanced hamburger menu clickable area. This also styles the drawer's
2345    submenu headings, exactly as on the live site; the hamburger itself is
2346    overridden by the higher-specificity alignment block near the top. */
2347    .menu-drawer-container summary {
2348      padding: 2rem 1.5rem 2rem 1rem !important;
2349      margin-left: 0.5rem !important;
2350      margin-top: -0.5rem !important;
2351      margin-bottom: -0.5rem !important;
2352      min-height: 60px !important;
2353      display: flex !important;
2354      align-items: center !important;
2355      position: relative !important;
2356      -webkit-tap-highlight-color: rgba(0,0,0,0) !important;
2357      tap-highlight-color: rgba(0,0,0,0) !important;
2358      border: 0 !important;
2359      border-bottom: 0 !important;
2360      box-shadow: none !important;
2361      background: transparent !important;
2362      outline: 0 !important;
2363    }
2364    
2365    .menu-drawer-container summary:before {
2366      content: '';
2367      position: absolute;
2368      top: -0.5rem;
2369      left: -0.5rem;
2370      right: 0;
2371      bottom: -0.5rem;
2372      z-index: 1;
2373    }
2374    
2375    .menu-drawer-container[open] summary,
2376    .menu-drawer-container summary:focus,
2377    .menu-drawer-container summary:active {
2378      border: 0 !important;
2379      border-bottom: 0 !important;
2380      box-shadow: none !important;
2381      background: transparent !important;
2382      outline: 0 !important;
2383      -webkit-tap-highlight-color: rgba(0,0,0,0) !important;
2384    }
2385    
2386    /* Remove highlight from all menu elements */
2387    header-drawer *,
2388    .menu-drawer-container *,
2389    .menu-drawer__menu-item,
2390    .menu-drawer__menu-item *,
2391    details summary,
2392    .header__icon--summary {
2393      -webkit-tap-highlight-color: rgba(0,0,0,0) !important;
2394      tap-highlight-color: rgba(0,0,0,0) !important;
2395    }
2396    
2397/* Remove grey line - target specific pseudo-elements but keep our custom one */
2398    header-drawer::before,
2399    header-drawer::after,
2400    .menu-drawer-container::before,
2401    .menu-drawer-container::after,
2402    .menu-drawer-container summary::after,
2403    .header__icon--menu::before,
2404    .header__icon--menu::after,
2405    .header__icon--summary::after {
2406      display: none !important;
2407      content: none !important;
2408      border: none !important;
2409      background: none !important;
2410    }
2411    
2412    /* Our custom clickable area pseudo-element */
2413    .menu-drawer-container summary::before {
2414      content: '' !important;
2415      position: absolute !important;
2416      top: -0.5rem !important;
2417      left: -0.5rem !important;
2418      right: 0 !important;
2419      bottom: -0.5rem !important;
2420      z-index: 1 !important;
2421      display: block !important;
2422      border: none !important;
2423      background: transparent !important;
2424      box-shadow: none !important;
2425    }
2426
2427
2428      
2429    
2430    #shopify-section-sections--28630589604210__header predictive-search .field .field__input~.field__label{
2431      left: calc(var(--inputs-border-width) + 5rem);
2432    }
2433      #shopify-section-sections--28630589604210__header predictive-search .field .field__input:focus~.field__label{
2434      opacity: 0;
2435    }
2436    #shopify-section-sections--28630589604210__header #predictive-search-results-groups-wrapper .predictive-search__result-group:nth-of-type(1) {
2437      border: none;
2438    }
2439
2440    #shopify-section-sections--28630589604210__header .predictive-search{
2441      border-radius: 0px;
2442      margin-top: 0rem;
2443      padding: 0;
2444      border: none;
2445    }
2446    #shopify-section-sections--28630589604210__header #predictive-search-results-groups-wrapper .predictive-search__result-group:nth-of-type(2) {
2447      padding-left: 2rem;
2448      padding-right: 2rem;
2449    }
2450    #shopify-section-sections--28630589604210__header #predictive-search-results-products-list {
2451      grid-template-columns: repeat(2, 1fr);
2452    }
2453    #shopify-section-sections--28630589604210__header #predictive-search-products{
2454      margin-bottom: 20px;
2455      padding-bottom: 0;
2456    }
2457    #shopify-section-sections--28630589604210__header .predictive-search__heading{
2458      font-size: 2rem;
2459    }
2460    #shopify-section-sections--28630589604210__header .predictive-search__item-heading {
2461      font-size: 20px;
2462      /* color: #1f1f1f; */
2463    }
2464    #shopify-section-sections--28630589604210__header .predictive-search__item-heading *{
2465      font-size: 20px;
2466      /* color: #1f1f1f; */
2467    }
2468    #shopify-section-sections--28630589604210__header .predictive-search__result-group:has(.predictive-search__pages-wrapper){
2469      flex-direction: column-reverse;
2470    }
2471    #shopify-section-sections--28630589604210__header .predictive-search__pages-wrapper{
2472      border-bottom: 1px solid #F1F1F1;
2473      padding-bottom: 4rem;
2474    }
2475    #shopify-section-sections--28630589604210__header #predictive-search-pages-mobile{
2476      margin-left: 0;
2477    }
2478    #shopify-section-sections--28630589604210__header #predictive-search-results-pages-list-mobile .predictive-search__item{
2479      padding-left: 0;
2480    }
2481
2482    #shopify-section-sections--28630589604210__header  predictive-search .reset__button{
2483      display: none;
2484    }
2485    #shopify-section-sections--28630589604210__header  predictive-search .field__label{
2486      /* display: none; */
2487    }
2488    #shopify-section-sections--28630589604210__header  predictive-search .field .search__input::placeholder{
2489      opacity: 1;
2490      color: #A9AEB2;
2491    }
2492    #shopify-section-sections--28630589604210__header  predictive-search .field:before{
2493      opacity: 0;
2494    }
2495    #shopify-section-sections--28630589604210__header  predictive-search .field:after{
2496      opacity: 0;
2497    }
2498    #shopify-section-sections--28630589604210__header  predictive-search .search__button{
2499      right: unset;
2500      left: var(--inputs-border-width);
2501    }
2502    #shopify-section-sections--28630589604210__header  predictive-search .search__input.field__input {
2503      padding-left: 4.8rem;
2504    }
2505    #shopify-section-sections--28630589604210__header  predictive-search .search__input.field__input:focus,
2506    #shopify-section-sections--28630589604210__header  predictive-search .search__input.field__input{
2507      padding: 1rem 1.5rem 1rem 5rem;
2508      box-shadow: none;
2509    }
2510
2511    #shopify-section-sections--28630589604210__header #predictive-search-results-groups-wrapper{
2512      border-top: 1px solid #f1f1f1;
2513      padding-top: 2.5rem;
2514    }
2515  }
2516  /* this is for pre-search_end */
2517
2518  predictive-search[open] .predictive-search--header{
2519  display: block;
2520  }
2521  .predictive-search--header #predictive-search-results:has(.predictive-search__results-groups-wrapper) .pre-search-default{
2522    display: none;
2523  }
2524  #shopify-section-sections--28630589604210__header .pre-search-default{
2525    display: flex;
2526    flex-direction: column;
2527  }
2528  #shopify-section-sections--28630589604210__header .pre-search-default .hw-collection{
2529    display: grid;
2530    grid-template-columns: repeat(5,1fr);
2531    gap: 18px;
2532  }
2533  #shopify-section-sections--28630589604210__header .pre-search-default .hw-collection-item{
2534    position: relative;
2535  }
2536  #shopify-section-sections--28630589604210__header .pre-search-default .hw-collection-item img,
2537  #shopify-section-sections--28630589604210__header .pre-search-default .hw-product-item img{
2538    width: 100%;
2539    object-fit: cover;
2540    aspect-ratio: 1 / 1;
2541  }
2542  #shopify-section-sections--28630589604210__header .pre-search-default .hw-collection-item .heading{
2543    position: absolute;
2544    top: 50%;
2545    left: 50%;
2546    transform: translate(-50%, -50%);
2547    color: white;
2548    font-size: 14px;
2549    font-weight: 500;
2550    line-height: 1;
2551    text-transform: uppercase;
2552  }
2553  #shopify-section-sections--28630589604210__header .pre-search-default .hw-product{
2554    display: grid;
2555    grid-template-columns: repeat(5,1fr);
2556    gap: 18px;
2557    margin-bottom: 6rem;
2558  }
2559  #shopify-section-sections--28630589604210__header .pre-search-default .hw-product-item{
2560    text-decoration: none;
2561    z-index: 2;
2562  }
2563  #shopify-section-sections--28630589604210__header .pre-search-default .hw-product-item .info{
2564    display: flex;
2565    align-items: flex-end;
2566    justify-content: space-between;
2567  }
2568  #shopify-section-sections--28630589604210__header .pre-search-default .hw-product-item .info .price,
2569  #shopify-section-sections--28630589604210__header .pre-search-default .hw-product-item .info .heading{
2570    color:#384353;
2571    font-weight: 400;
2572    font-size: 12px;
2573    line-height: 1;
2574    letter-spacing: 0%;
2575  }
2576  #shopify-section-sections--28630589604210__header .pre-search-default .hw-search-title{
2577    color:#1F1F1F;
2578    font-weight: 500;
2579    font-size: 24px;
2580    line-height: 1;
2581    letter-spacing: 0%;
2582    margin-bottom: 2.4rem;
2583  }
2584
2585  @media screen and (max-width: 749px){
2586    #shopify-section-sections--28630589604210__header .pre-search-default .hw-product,
2587    #shopify-section-sections--28630589604210__header .pre-search-default .hw-collection{
2588      grid-template-columns: repeat(2,1fr);
2589    }
2590    #shopify-section-sections--28630589604210__header .pre-search-default .hw-product .hw-product-item{
2591      display: none;
2592    }
2593    #shopify-section-sections--28630589604210__header .pre-search-default .hw-product .hw-product-item:nth-of-type(1),
2594    #shopify-section-sections--28630589604210__header .pre-search-default .hw-product .hw-product-item:nth-of-type(2),
2595    #shopify-section-sections--28630589604210__header .pre-search-default .hw-product .hw-product-item:nth-of-type(3),
2596    #shopify-section-sections--28630589604210__header .pre-search-default .hw-product .hw-product-item:nth-of-type(4){
2597      display: block;
2598    }
2599    #shopify-section-sections--28630589604210__header .pre-search-default{
2600      padding: 2rem 1rem;
2601    }
2602  }
2603
2604   #shopify-section-sections--28630589604210__header .predictive-search__pages-wrapper{
2605      display: none;
2606    }
2607
2608  /* CA: drawer social icons — force a horizontal row (CA drawer was stacking them vertically) */
2609  #shopify-section-sections--28630589604210__header .menu-drawer ul.list-social,
2610  #shopify-section-sections--28630589604210__header .menu-drawer__utility-links .list-social{
2611    display: flex;
2612    flex-direction: row;
2613    flex-wrap: wrap;
2614    align-items: center;
2615    justify-content: flex-start;
2616    gap: 0 1rem;
2617    list-style: none;
2618    padding: 0;
2619    margin: 0;
2620  }
2621  #shopify-section-sections--28630589604210__header .menu-drawer .list-social__item{
2622    display: flex;
2623    align-items: center;
2624  }
2625
2626</style>
2627
2628<script src="//fittes.ca/cdn/shop/t/139/assets/cart-notification.js?v=133508293167896966491788881618" defer="defer"></script>
2628<sticky-header data-sticky-type="on-scroll-up" class="header-wrapper color-scheme-1 gradient"><header class="header header--middle-left header--mobile-center  header--has-menu header--has-social header--has-account"> 
2629
2630<header-drawer data-breakpoint="tablet">
2631  <details id="Details-menu-drawer-container" class="menu-drawer-container">
2632    <summary
2633      class="header__icon header__icon--menu header__icon--summary link focus-inset"
2634      aria-label="Menu"
2635    >
2636      <span><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-hamburger" viewBox="0 0 24 24">
2637<g clip-path="url(#clip0_545_5014)">
2638<path d="M3 6.25H2.25V7.75H3V6.25ZM3 7.75H21V6.25H3V7.75Z" fill="currentColor"/>
2639<path d="M3 15.25H2.25V16.75H3V15.25ZM3 16.75H15V15.25H3V16.75Z" fill="currentColor"/>
2640</g>
2641</svg>
2642<svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
2643</span>
2644    </summary>
2645    <div id="menu-drawer" class="gradient menu-drawer motion-reduce color-scheme-1">
2646      <div class="menu-drawer__inner-container">
2647        <div class="menu-drawer__navigation-container">
2648          <nav class="menu-drawer__navigation">
2649            <ul class="menu-drawer__menu has-submenu list-menu" role="list">
2650              
2651              
2652              
2653              
2654              
2655              
2656              
2657              <li>
2658                <details id="Details-menu-drawer-menu-item-2">
2659                  <summary
2660                    id="HeaderDrawer-shop-by-product"
2661                    class="menu-drawer__menu-item list-menu__item link link--text focus-inset"
2662                  >
2663                    Shop by Product
2664                    <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
2664ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
2665</span>
2666                    <span class="svg-wrapper"><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg>
2667</span>
2668                  </summary>
2669                  <div
2670                    id="link-shop-by-product"
2671                    class="menu-drawer__submenu has-submenu gradient motion-reduce"
2672                    tabindex="-1"
2673                  >
2674                    <div class="menu-drawer__inner-submenu">
2675                      <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
2676                        <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
2676ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
2677</span>
2678                        Shop by Product
2679                      </button>
2680                      <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li>
2681                            <a
2682                              id="HeaderDrawer-shop-by-product-wall-ceiling-vents"
2683                              href="/collections/wall-vent"
2684                              class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
2685                              
2686                            >
2687                              Wall / Ceiling Vents
2688                            </a>
2689                          </li><li>
2690                            <a
2691                              id="HeaderDrawer-shop-by-product-floor-vents"
2692                              href="/collections/floor"
2693                              class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
2694                              
2695                            >
2696                              Floor Vents
2697                            </a>
2698                          </li><li>
2699                            <a
2700                              id="HeaderDrawer-shop-by-product-exhaust-fans"
2701                              href="/collections/exhaust-mounts"
2702                              class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
2703                              
2704                            >
2705                              Exhaust Fans
2706                            </a>
2707                          </li><li>
2708                            <a
2709                              id="HeaderDrawer-shop-by-product-mounts-niches"
2710                              href="/collections/mounts-niches"
2711                              class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
2712                              
2713                            >
2714                              Mounts &amp; Niches
2715                            </a>
2716                          </li><li>
2717                            <a
2718                              id="HeaderDrawer-shop-by-product-accessories"
2719                              href="/collections/accessories"
2720                              class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
2721                              
2722                            >
2723                              Accessories
2724                            </a>
2725                          </li></ul>
2726                    </div>
2727                  </div>
2728                </details>
2729              </li>
2730
2731              
2732              <li>
2733                <details id="Details-menu-drawer-menu-item-3">
2734                  <summary
2735                    id="HeaderDrawer-shop-by-finish"
2736                    class="menu-drawer__menu-item list-menu__item link link--text focus-inset"
2737                  >
2738                    Shop by Finish
2739                    <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
2739ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
2740</span>
2741                    <span class="svg-wrapper"><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg>
2742</span>
2743                  </summary>
2744                  <div
2745                    id="link-shop-by-finish"
2746                    class="menu-drawer__submenu has-submenu gradient motion-reduce"
2747                    tabindex="-1"
2748                  >
2749                    <div class="menu-drawer__inner-submenu">
2750                      <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
2751                        <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
2751ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
2752</span>
2753                        Shop by Finish
2754                      </button>
2755                      <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li>
2756                            <a
2757                              id="HeaderDrawer-shop-by-finish-framed"
2758                              href="/collections/framed"
2759                              class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
2760                              
2761                            >
2762                              Framed
2763                            </a>
2764                          </li><li>
2765                            <a
2766                              id="HeaderDrawer-shop-by-finish-flush"
2767                              href="/collections/flush"
2768                              class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
2769                              
2770                            >
2771                              Flush
2772                            </a>
2773                          </li></ul>
2774                    </div>
2775                  </div>
2776                </details>
2777              </li>
2778
2779              
2780              <li>
2781                <details id="Details-menu-drawer-menu-item-4">
2782                  <summary
2783                    id="HeaderDrawer-specs-support"
2784                    class="menu-drawer__menu-item list-menu__item link link--text focus-inset"
2785                  >
2786                    Specs + Support
2787                    <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
2787ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
2788</span>
2789                    <span class="svg-wrapper"><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg>
2790</span>
2791                  </summary>
2792                  <div
2793                    id="link-specs-support"
2794                    class="menu-drawer__submenu has-submenu gradient motion-reduce"
2795                    tabindex="-1"
2796                  >
2797                    <div class="menu-drawer__inner-submenu">
2798                      <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
2799                        <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
2799ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
2800</span>
2801                        Specs + Support
2802                      </button>
2803                      <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li>
2804                            <a
2805                              id="HeaderDrawer-specs-support-compare-products"
2806                              href="/pages/compare-products"
2807                              class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
2808                              
2809                            >
2810                              Compare Products
2811                            </a>
2812                          </li><li>
2813                            <a
2814                              id="HeaderDrawer-specs-support-help-center"
2815                              href="https://fittes-canada.gorgias.help/en-US"
2816                              class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
2817                              
2818                            >
2819                              Help Center
2820                            </a>
2821                          </li><li>
2822                            <a
2823                              id="HeaderDrawer-specs-support-airflow-specs"
2824                              href="/pages/airflow-specs"
2825                              class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
2826                              
2827                            >
2828                              Airflow Specs
2829                            </a>
2830                          </li><li>
2831                            <a
2832                              id="HeaderDrawer-specs-support-install-guides"
2833                              href="/pages/install-guides-1"
2834                              class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
2835                              
2836                            >
2837                              Install Guides
2838                            </a>
2839                          </li><li>
2840                            <a
2841                              id="HeaderDrawer-specs-support-product-basics"
2842                              href="/pages/fittes-lingo"
2843                              class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
2844                              
2845                            >
2846                              Product Basics
2847                            </a>
2848                          </li></ul>
2849                    </div>
2850                  </div>
2851                </details>
2852              </li>
2853
2854              
2855              <li>
2856                <details id="Details-menu-drawer-menu-item-5">
2857                  <summary
2858                    id="HeaderDrawer-trade-rewards"
2859                    class="menu-drawer__menu-item list-menu__item link link--text focus-inset"
2860                  >
2861                    Trade + Rewards
2862                    <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
2862ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
2863</span>
2864                    <span class="svg-wrapper"><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg>
2865</span>
2866                  </summary>
2867                  <div
2868                    id="link-trade-rewards"
2869                    class="menu-drawer__submenu has-submenu gradient motion-reduce"
2870                    tabindex="-1"
2871                  >
2872                    <div class="menu-drawer__inner-submenu">
2873                      <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
2874                        <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
2874ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
2875</span>
2876                        Trade + Rewards
2877                      </button>
2878                      <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li>
2879                            <a
2880                              id="HeaderDrawer-trade-rewards-fittes-crew-rewards"
2881                              href="/pages/fittes-crew"
2882                              class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
2883                              
2884                            >
2885                              Fittes Crew Rewards
2886                            </a>
2887                          </li><li>
2888                            <a
2889                              id="HeaderDrawer-trade-rewards-partner-with-us"
2890                              href="/pages/partner"
2891                              class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
2892                              
2893                            >
2894                              Partner With Us
2895                            </a>
2896                          </li><li>
2897                            <a
2898                              id="HeaderDrawer-trade-rewards-trades-program"
2899                              href="/pages/trades-program"
2900                              class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
2901                              
2902                            >
2903                              Trades Program
2904                            </a>
2905                          </li></ul>
2906                    </div>
2907                  </div>
2908                </details>
2909              </li>
2910
2911              
2912              <li>
2913                <details id="Details-menu-drawer-menu-item-6">
2914                  <summary
2915                    id="HeaderDrawer-about-us"
2916                    class="menu-drawer__menu-item list-menu__item link link--text focus-inset"
2917                  >
2918                    About Us
2919                    <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
2919ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
2920</span>
2921                    <span class="svg-wrapper"><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg>
2922</span>
2923                  </summary>
2924                  <div
2925                    id="link-about-us"
2926                    class="menu-drawer__submenu has-submenu gradient motion-reduce"
2927                    tabindex="-1"
2928                  >
2929                    <div class="menu-drawer__inner-submenu">
2930                      <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
2931                        <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
2931ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg>
2932</span>
2933                        About Us
2934                      </button>
2935                      <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li>
2936                            <a
2937                              id="HeaderDrawer-about-us-our-story"
2938                              href="/pages/our-story"
2939                              class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
2940                              
2941                            >
2942                              Our Story
2943                            </a>
2944                          </li><li>
2945                            <a
2946                              id="HeaderDrawer-about-us-our-team"
2947                              href="/pages/our-team"
2948                              class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
2949                              
2950                            >
2951                              Our Team
2952                            </a>
2953                          </li><li>
2954                            <a
2955                              id="HeaderDrawer-about-us-blog"
2956                              href="/blogs/blog"
2957                              class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
2958                              
2959                            >
2960                              Blog
2961                            </a>
2962                          </li><li>
2963                            <a
2964                              id="HeaderDrawer-about-us-faq"
2965                              href="/pages/faq"
2966                              class="menu-drawer__menu-item link link--text list-menu__item focus-inset"
2967                              
2968                            >
2969                              FAQ
2970                            </a>
2971                          </li></ul>
2972                    </div>
2973                  </div>
2974                </details>
2975              </li>
2976
2977              
2978              <li>
2979                <a
2980                  id="HeaderDrawer-vent-finder"
2981                  href="#quiz-6jRk3l"
2982                  class="menu-drawer__menu-item list-menu__item link link--text focus-inset"
2983                  
2984                >
2985                  Vent Finder
2986                </a>
2987              </li>
2988
2989            </ul>
2990          </nav>
2991          <div class="menu-drawer__utility-links"><div class="menu-drawer__localization header-localization"><localization-form><form method="post" action="/localization" id="HeaderCountryMobileForm" accept-charset="UTF-8" class="localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/" /><div>
2992                        <h2 class="visually-hidden" id="HeaderCountryMobileLabel">
2993                          Country/region
2994                        </h2>
2995
2996<div class="disclosure">
2997  <button
2998    type="button"
2999    class="disclosure__button localization-form__select localization-selector link link--text caption-large"
3000    aria-expanded="false"
3001    aria-controls="HeaderCountryMobile-country-results"
3002    aria-describedby="HeaderCountryMobileLabel"
3003  >
3004    <span>United States |
3005      USD
3006      $</span>
3007    <svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg>
3008
3009  </button>
3010  <div class="disclosure__list-wrapper country-selector" hidden>
3011    <div class="country-filter country-filter--no-padding">
3012      
3013      <button
3014        class="country-selector__close-button button--small link"
3015        type="button"
3016        aria-label="Close"
3017      ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17">
3017<path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
3018</button>
3019    </div>
3020    <div id="sr-country-search-results" class="visually-hidden" aria-live="polite"></div>
3021    <div
3022      class="disclosure__list country-selector__list country-selector__list--with-multiple-currencies"
3023      id="HeaderCountryMobile-country-results"
3024    >
3025      
3026      <ul role="list" class="list-unstyled countries"><li class="disclosure__item" tabindex="-1">
3027            <a
3028              class="link link--text disclosure__link caption-large focus-inset"
3029              href="#"
3030              
3031              data-value="AU"
3032              id="Australia"
3033            >
3034              <span
3035                
3036                  class="visibility-hidden"
3037                
3038              ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg>
3039</span>
3040              <span class="country">Australia</span>
3041              <span class="localization-form__currency motion-reduce">
3042                AUD
3043                $</span>
3044            </a>
3045          </li><li class="disclosure__item" tabindex="-1">
3046            <a
3047              class="link link--text disclosure__link caption-large focus-inset"
3048              href="#"
3049              
3050              data-value="BE"
3051              id="Belgium"
3052            >
3053              <span
3054                
3055                  class="visibility-hidden"
3056                
3057              ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg>
3058</span>
3059              <span class="country">Belgium</span>
3060              <span class="localization-form__currency motion-reduce">
3061                EUR
3062                €</span>
3063            </a>
3064          </li><li class="disclosure__item" tabindex="-1">
3065            <a
3066              class="link link--text disclosure__link caption-large focus-inset"
3067              href="#"
3068              
3069              data-value="CA"
3070              id="Canada"
3071            >
3072              <span
3073                
3074                  class="visibility-hidden"
3075                
3076              ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg>
3077</span>
3078              <span class="country">Canada</span>
3079              <span class="localization-form__currency motion-reduce">
3080                CAD
3081                $</span>
3082            </a>
3083          </li><li class="disclosure__item" tabindex="-1">
3084            <a
3085              class="link link--text disclosure__link caption-large focus-inset"
3086              href="#"
3087              
3088              data-value="DK"
3089              id="Denmark"
3090            >
3091              <span
3092                
3093                  class="visibility-hidden"
3094                
3095              ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg>
3096</span>
3097              <span class="country">Denmark</span>
3098              <span class="localization-form__currency motion-reduce">
3099                DKK
3100                kr.</span>
3101            </a>
3102          </li><li class="disclosure__item" tabindex="-1">
3103            <a
3104              class="link link--text disclosure__link caption-large focus-inset"
3105              href="#"
3106              
3107              data-value="IS"
3108              id="Iceland"
3109            >
3110              <span
3111                
3112                  class="visibility-hidden"
3113                
3114              ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg>
3115</span>
3116              <span class="country">Iceland</span>
3117              <span class="localization-form__currency motion-reduce">
3118                ISK
3119                kr</span>
3120            </a>
3121          </li><li class="disclosure__item" tabindex="-1">
3122            <a
3123              class="link link--text disclosure__link caption-large focus-inset"
3124              href="#"
3125              
3126              data-value="SE"
3127              id="Sweden"
3128            >
3129              <span
3130                
3131                  class="visibility-hidden"
3132                
3133              ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg>
3134</span>
3135              <span class="country">Sweden</span>
3136              <span class="localization-form__currency motion-reduce">
3137                SEK
3138                kr</span>
3139            </a>
3140          </li><li class="disclosure__item" tabindex="-1">
3141            <a
3142              class="link link--text disclosure__link caption-large focus-inset"
3143              href="#"
3144              
3145              data-value="GB"
3146              id="United Kingdom"
3147            >
3148              <span
3149                
3150                  class="visibility-hidden"
3151                
3152              ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg>
3153</span>
3154              <span class="country">United Kingdom</span>
3155              <span class="localization-form__currency motion-reduce">
3156                GBP
3157                £</span>
3158            </a>
3159          </li><li class="disclosure__item" tabindex="-1">
3160            <a
3161              class="link link--text disclosure__link caption-large focus-inset"
3162              href="#"
3163              
3164                aria-current="true"
3165              
3166              data-value="US"
3167              id="United States"
3168            >
3169              <span
3170                
3171              ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg>
3172</span>
3173              <span class="country">United States</span>
3174              <span class="localization-form__currency motion-reduce">
3175                USD
3176                $</span>
3177            </a>
3178          </li></ul>
3179    </div>
3180  </div>
3181  <div class="country-selector__overlay"></div>
3182</div>
3183<input type="hidden" name="country_code" value="US">
3184</div></form></localization-form>
3185                
3186</div><ul class="list list-social list-unstyled" role="list"><li class="list-social__item">
3187                  <a href="https://x.com/fittesco" class="list-social__link link" target="_blank">
3188                    <span class="svg-wrapper"><svg class="icon icon-twitter" viewBox="0 0 20 20"><path fill="currentColor" fill-rule="evenodd" d="M7.273 2.8 10.8 7.822 15.218 2.8h1.768l-5.4 6.139 5.799 8.254h-4.658l-3.73-5.31-4.671 5.31H2.558l5.654-6.427L2.615 2.8zm6.242 13.125L5.07 4.109h1.405l8.446 11.816z" clip-rule="evenodd"/></svg>
3189</span>
3190                    <span class="visually-hidden">X (Twitter)</span>
3191                  </a>
3192                </li><li class="list-social__item">
3193                  <a href="https://www.facebook.com/fittes/" class="list-social__link link" target="_blank">
3194                    <span class="svg-wrapper"><svg class="icon icon-facebook" viewBox="0 0 20 20"><path fill="currentColor" d="M18 10.049C18 5.603 14.419 2 10 2s-8 3.603-8 8.049C2 14.067 4.925 17.396 8.75 18v-5.624H6.719v-2.328h2.03V8.275c0-2.017 1.195-3.132 3.023-3.132.874 0 1.79.158 1.79.158v1.98h-1.009c-.994 0-1.303.621-1.303 1.258v1.51h2.219l-.355 2.326H11.25V18c3.825-.604 6.75-3.933 6.75-7.951"/></svg>
3195</span>
3196                    <span class="visually-hidden">Facebook</span>
3197                  </a>
3198                </li><li class="list-social__item">
3199                  <a href="https://ca.pinterest.com/fittesofficial/" class="list-social__link link" target="_blank">
3200                    <span class="svg-wrapper"><svg class="icon icon-pinterest" viewBox="0 0 20 20"><path fill="currentColor" d="M10 2.01a8.1 8.1 0 0 1 5.666 2.353 8.09 8.09 0 0 1 1.277 9.68A7.95 7.95 0 0 1 10 18.04a8.2 8.2 0 0 1-2.276-.307c.403-.653.672-1.24.816-1.729l.567-2.2c.134.27.393.5.768.702.384.192.768.297 1.19.297q1.254 0 2.248-.72a4.7 4.7 0 0 0 1.537-1.969c.37-.89.554-1.848.537-2.813 0-1.249-.48-2.315-1.43-3.227a5.06 5.06 0 0 0-3.65-1.374c-.893 0-1.729.154-2.478.461a5.02 5.02 0 0 0-3.236 4.552c0 .72.134 1.355.413 1.902.269.538.672.922 1.22 1.152.096.039.182.039.25 0 .066-.028.114-.096.143-.192l.173-.653c.048-.144.02-.288-.105-.432a2.26 2.26 0 0 1-.548-1.565 3.803 3.803 0 0 1 3.976-3.861c1.047 0 1.863.288 2.44.855.585.576.883 1.315.883 2.228a6.8 6.8 0 0 1-.317 2.122 3.8 3.8 0 0 1-.893 1.556c-.384.384-.836.576-1.345.576-.413 0-.749-.144-1.018-.451-.259-.307-.345-.672-.25-1.085q.22-.77.452-1.537l.173-.701c.057-.25.086-.451.086-.624 0-.346-.096-.634-.269-.855-.192-.22-.451-.336-.797-.336-.432 0-.797.192-1.085.595-.288.394-.442.893-.442 1.499.005.374.063.746.173 1.104l.058.144c-.576 2.478-.913 3.938-1.037 4.36-.116.528-.154 1.153-.125 1.863A8.07 8.07 0 0 1 2 10.03c0-2.208.778-4.11 2.343-5.666A7.72 7.72 0 0 1 10 2.001z"/></svg>
3201</span>
3202                    <span class="visually-hidden">Pinterest</span>
3203                  </a>
3204                </li><li class="list-social__item">
3205                  <a href="https://www.instagram.com/fittes/" class="list-social__link link" target="_blank">
3206                    <span class="svg-wrapper"><svg class="icon icon-instagram" viewBox="0 0 20 20"><path fill="currentColor" fill-rule="evenodd" d="M13.23 3.492c-.84-.037-1.096-.046-3.23-.046-2.144 0-2.39.01-3.238.055-.776.027-1.195.164-1.487.273a2.4 2.4 0 0 0-.912.593 2.5 2.5 0 0 0-.602.922c-.11.282-.238.702-.274 1.486-.046.84-.046 1.095-.046 3.23s.01 2.39.046 3.229c.004.51.097 1.016.274 1.495.145.365.319.639.602.913.282.282.538.456.92.602.474.176.974.268 1.479.273.848.046 1.103.046 3.238.046s2.39-.01 3.23-.046c.784-.036 1.203-.164 1.486-.273.374-.146.648-.329.921-.602.283-.283.447-.548.602-.922.177-.476.27-.979.274-1.486.037-.84.046-1.095.046-3.23s-.01-2.39-.055-3.229c-.027-.784-.164-1.204-.274-1.495a2.4 2.4 0 0 0-.593-.913 2.6 2.6 0 0 0-.92-.602c-.284-.11-.703-.237-1.488-.273ZM6.697 2.05c.857-.036 1.131-.045 3.302-.045a63 63 0 0 1 3.302.045c.664.014 1.321.14 1.943.374a4 4 0 0 1 1.414.922c.41.397.728.88.93 1.414.23.622.354 1.279.365 1.942C18 7.56 18 7.824 18 10.005c0 2.17-.01 2.444-.046 3.292-.036.858-.173 1.442-.374 1.943-.2.53-.474.976-.92 1.423a3.9 3.9 0 0 1-1.415.922c-.51.191-1.095.337-1.943.374-.857.036-1.122.045-3.302.045-2.171 0-2.445-.009-3.302-.055-.849-.027-1.432-.164-1.943-.364a4.15 4.15 0 0 1-1.414-.922 4.1 4.1 0 0 1-.93-1.423c-.183-.51-.329-1.085-.365-1.943C2.009 12.45 2 12.167 2 10.004c0-2.161 0-2.435.055-3.302.027-.848.164-1.432.365-1.942a4.4 4.4 0 0 1 .92-1.414 4.2 4.2 0 0 1 1.415-.93c.51-.183 1.094-.33 1.943-.366Zm.427 4.806a4.105 4.105 0 1 1 5.805 5.805 4.105 4.105 0 0 1-5.805-5.805m1.882 5.371a2.668 2.668 0 1 0 2.042-4.93 2.668 2.668 0 0 0-2.042 4.93m5.922-5.942a.958.958 0 1 1-1.355-1.355.958.958 0 0 1 1.355 1.355" clip-rule="evenodd"/></svg>
3207</span>
3208                    <span class="visually-hidden">Instagram</span>
3209                  </a>
3210                </li><li class="list-social__item">
3211                  <a href="https://www.tiktok.com/@fittesofficial" class="list-social__link link" target="_blank">
3212                    <span class="svg-wrapper"><svg class="icon icon-tiktok" viewBox="0 0 20 20"><path fill="currentColor" d="M10.511 1.705h2.74s-.157 3.51 3.795 3.768v2.711s-2.114.129-3.796-1.158l.028 5.606A5.073 5.073 0 1 1 8.213 7.56h.708v2.785a2.298 2.298 0 1 0 1.618 2.205z"/></svg>
3213</span>
3214                    <span class="visually-hidden">TikTok</span>
3215                  </a>
3216                </li><li class="list-social__item">
3217                  <a href="https://www.linkedin.com/company/fittes/" class="list-social__link link" target="_blank">
3218                    <span class="svg-wrapper"><svg class="icon icon-linkedin" role="presentation" viewBox="0 0 24 24"><path fill="currentColor" d="M19 0H5a5 5 0 0 0-5 5v14a5 5 0 0 0 5 5h14a5 5 0 0 0 5-5V5a5 5 0 0 0-5-5zM8 19H5V8h3v11zM6.5 6.73a1.76 1.76 0 1 1 0-3.53 1.76 1.76 0 0 1 0 3.53zM20 19h-3v-5.6c0-3.37-4-3.12-4 0V19h-3V8h3v1.76a3.8 3.8 0 0 1 7 2.48V19z"></path></svg></span>
3219                    <span class="visually-hidden">Linkedin</span>
3220                  </a>
3221                </li><li class="list-social__item">
3222                  <a href="https://www.youtube.com/channel/UC6Z3b0jfeKE3KaOuTxUrEog/featured" class="list-social__link link" target="_blank">
3223                    <span class="svg-wrapper"><svg class="icon icon-youtube" viewBox="0 0 20 20"><path fill="currentColor" d="M18.16 5.87c.34 1.309.34 4.08.34 4.08s0 2.771-.34 4.08a2.13 2.13 0 0 1-1.53 1.53c-1.309.34-6.63.34-6.63.34s-5.321 0-6.63-.34a2.13 2.13 0 0 1-1.53-1.53c-.34-1.309-.34-4.08-.34-4.08s0-2.771.34-4.08a2.17 2.17 0 0 1 1.53-1.53C4.679 4 10 4 10 4s5.321 0 6.63.34a2.17 2.17 0 0 1 1.53 1.53M8.3 12.5l4.42-2.55L8.3 7.4z"/></svg>
3224</span>
3225                    <span class="visually-hidden">YouTube</span>
3226                  </a>
3227                </li></ul>
3228          </div>
3229        </div>
3230      </div>
3231    </div>
3232  </details>
3233</header-drawer>
3234
3235<h1 class="header__heading"><a href="/" class="header__heading-link link link--text focus-inset"><div class="header__heading-logo-wrapper">
3236                
3237                <img src="//fittes.ca/cdn/shop/files/Mask_group_97ddf3d5-dd56-4218-80dd-4c12dd719ed5.png?v=1744384378&amp;width=600" alt="Fittes 🍁" srcset="//fittes.ca/cdn/shop/files/Mask_group_97ddf3d5-dd56-4218-80dd-4c12dd719ed5.png?v=1744384378&amp;width=60 60w, //fittes.ca/cdn/shop/files/Mask_group_97ddf3d5-dd56-4218-80dd-4c12dd719ed5.png?v=1744384378&amp;width=90 90w, //fittes.ca/cdn/shop/files/Mask_group_97ddf3d5-dd56-4218-80dd-4c12dd719ed5.png?v=1744384378&amp;width=120 120w" width="60" height="34.80662983425414" loading="eager" class="header__heading-logo motion-reduce" sizes="(max-width: 120px) 50vw, 60px">
3238              </div></a></h1>
3239
3240<style>
3241  .header__inline-menu .header__menu-item,
3242  .header__inline-menu summary.header__menu-item {
3243    cursor: default;
3244  }
3245
3246  .header__inline-menu #HeaderMenu-compare-models.header__menu-item {
3247    cursor: pointer !important;
3248  }
3249
3250  .header__inline-menu .mega-menu__list {
3251    margin-right: 20px;
3252  }
3253
3254  .header__inline-menu .header__menu-item {
3255    display: inline-flex;
3256    align-items: center;
3257    white-space: nowrap;
3258    padding-right: 1.25rem; /* Increased from 0.75rem */
3259    margin-right: 0.5rem; /* Added spacing between menu items */
3260  }
3261
3262  /* Override the main header file's conflicting styles */
3263  .header__inline-menu .header__menu-item .icon-caret,
3264  #shopify-section-header details>.header__menu-item .icon-caret {
3265    flex-shrink: 0;
3266    width: 0.5em !important;
3267    height: 0.5em !important;
3268    margin-left: 0.375em !important;
3269  }
3270
3271  /* Override the 1280px breakpoint that's causing issues */
3272  @media screen and (min-width: 750px) {
3273    summary.list-menu__item {
3274      padding-right: 1.25rem !important; /* Override the 2.7rem from main file */
3275    }
3276  }
3277
3278  /* Additional overrides for structured mega menu alignment */
3279  .mega-menu__content--structured,
3280  .mega-menu__content--structured-secondary {
3281    padding-left: 0 !important; /* Remove default padding */
3282    padding-right: 0 !important;
3283  }
3284
3285  @media screen and (min-width: 1280px) {
3286    .mega-menu__content--structured,
3287    .mega-menu__content--structured-secondary {
3288      padding-left: 0 !important;
3289      padding-right: 0 !important;
3290    }
3291    
3292    .mega-menu__content--structured .mega-menu__columns,
3293    .mega-menu__content--structured-secondary .mega-menu__columns {
3294      padding: 1rem 0 2rem 6rem !important; /* Moved all columns right consistently */
3295      gap: 2.5rem !important; /* Keep consistent spacing */
3296      max-width: 800px !important; /* Prevent spreading on large screens */
3297    }
3298
3299    .mega-menu__content--structured .mega-menu__column,
3300    .mega-menu__content--structured-secondary .mega-menu__column {
3301      width: 150px !important; /* Fixed width on all screen sizes */
3302      flex: 0 0 auto !important;
3303    }
3304
3305    .mega-menu__content--structured .mega-menu__column--first,
3306    .mega-menu__content--structured-secondary .mega-menu__column--first {
3307      padding-top: 0.4rem !important; /* Perfect alignment with headers */
3308    }
3309  }
3310
3311  @media screen and (min-width: 990px) {
3312    .mega-menu__content--structured,
3313    .mega-menu__content--structured-secondary {
3314      padding-left: 0 !important;
3315      padding-right: 0 !important;
3316    }
3317    
3318    .mega-menu__content--structured .mega-menu__columns,
3319    .mega-menu__content--structured-secondary .mega-menu__columns {
3320      gap: 2.5rem !important; /* Ensure consistent spacing on all screen sizes */
3321      max-width: 800px !important;
3322      padding: 1rem 0 2rem 6rem !important; /* Moved all columns right consistently */
3323    }
3324
3325    .mega-menu__content--structured .mega-menu__column,
3326    .mega-menu__content--structured-secondary .mega-menu__column {
3327      width: 150px !important; /* Fixed width prevents auto-expansion */
3328      flex: 0 0 auto !important;
3329    }
3330
3331    .mega-menu__content--structured .mega-menu__column--first,
3332    .mega-menu__content--structured-secondary .mega-menu__column--first {
3333      padding-top: 0.4rem !important; /* Maintain perfect alignment */
3334    }
3335  }
3336
3337  .is-safari .header__inline-menu .header__menu-item > span {
3338    display: inline-block;
3339    white-space: nowrap !important;
3340    vertical-align: middle;
3341  }
3342
3343  .is-safari .header__inline-menu a.header__menu-item.link--text {
3344    text-decoration: none !important;
3345    border-bottom: none !important;
3346  }
3347
3348  .is-safari input[type="search"],
3349  .is-safari .header__search-input {
3350    -webkit-appearance: none;
3351    border: none;
3352    outline: none;
3353    background: transparent;
3354    border-bottom: 1px solid transparent;
3355    border-image-source: linear-gradient(to right, currentColor 0%, currentColor 100%);
3356    border-image-slice: 1;
3357    border-image-repeat: stretch;
3358    border-image-width: 1px;
3359  }
3360
3361  /* 4-column mega menu layout - ONLY for the first dropdown */
3362  .mega-menu__content--structured,
3363  .mega-menu__content--structured-secondary {
3364    padding-left: 0 !important; /* Remove default padding */
3365    padding-right: 0 !important;
3366  }
3367
3368  .mega-menu__content--structured .mega-menu__columns,
3369  .mega-menu__content--structured-secondary .mega-menu__columns {
3370    display: flex !important;
3371    flex-direction: row !important;
3372    gap: 2.5rem !important; /* Fixed spacing between columns - ADJUST THIS VALUE to change column spacing */
3373    width: 100% !important;
3374    padding: 1rem 0 2rem 10rem !important; /* Moved columns right - ADJUST LAST VALUE (6rem) to move all c
3374olumns left/right */
3375    justify-content: flex-start !important; /* Keep columns grouped together on left */
3376    max-width: 800px !important; /* Prevent container from getting too wide */
3377  }
3378
3379  .mega-menu__content--structured .mega-menu__column,
3380  .mega-menu__content--structured-secondary .mega-menu__column {
3381    display: flex !important;
3382    flex-direction: column !important;
3383    gap: 0.8rem !important;
3384    flex: 0 0 auto !important; /* Fixed width columns that don't expand */
3385    width: 150px !important; /* Fixed column width - ADJUST THIS VALUE to make columns wider/narrower */
3386    min-width: 150px !important;
3387  }
3388
3389  .mega-menu__content--structured .mega-menu__column-header,
3390  .mega-menu__content--structured-secondary .mega-menu__column-header {
3391    font-weight: bold !important;
3392    font-size: inherit !important;
3393    margin: 0 0 0.5rem 0 !important;
3394    color: currentColor !important;
3395    line-height: 1.4 !important;
3396    padding: 0.4rem 0 !important;
3397  }
3398
3399  .mega-menu__content--structured .mega-menu__column--first,
3400  .mega-menu__content--structured-secondary .mega-menu__column--first {
3401    padding-top: 0.4rem !important; /* Align first items exactly with column headers */
3402  }
3403
3404  .mega-menu__content--structured .mega-menu__column .mega-menu__link,
3405  .mega-menu__content--structured-secondary .mega-menu__column .mega-menu__link {
3406    display: block !important;
3407    text-decoration: none !important;
3408    padding: 0.4rem 0 !important;
3409    color: currentColor !important;
3410    line-height: 1.4 !important;
3411    font-weight: normal !important;
3412  }
3413
3414  .mega-menu__content--structured .mega-menu__column .mega-menu__link:hover,
3415  .mega-menu__content--structured-secondary .mega-menu__column .mega-menu__link:hover {
3416    text-decoration: underline !important;
3417  }
3418
3419  /* ============================================================
3420     By Finish column + hover-only lazy-loaded media panel
3421     (first dropdown, desktop only)
3422     - Images carry NO src until JS injects it on hover, so nothing
3423       is requested on page load, and nothing loads on mobile.
3424     - The panel is only visible while the cursor is actively on the
3425       finish link; it hides again on mouseleave / blur / menu close.
3426     ============================================================ */
3427  .mega-menu__content--structured .mega-menu__finish-link {
3428    cursor: pointer;
3429  }
3430
3431  .mega-menu__content--structured .mega-menu__finish-panel {
3432    display: none;
3433  }
3434
3435  /* When active, the panel is absolutely positioned inside the media column so its
3436     height NEVER adds to the mega menu height — the menu can't grow taller on hover. */
3437  .mega-menu__content--structured .mega-menu__finish-panel.is-active {
3438    display: flex;
3439    flex-direction: column;
3440    animation: megaFinishFade 0.18s ease;
3441  }
3442
3443  @keyframes megaFinishFade {
3444    from { opacity: 0; }
3445    to { opacity: 1; }
3446  }
3447
3448  .mega-menu__content--structured .mega-menu__finish-image {
3449    flex: 1 1 auto;   /* image takes whatever vertical space is left after the text */
3450    min-height: 0;    /* lets the image shrink so it always fits the current menu height */
3451    width: 100%;
3452    border-radius: 0.5em;
3453    overflow: hidden;
3454    background: rgba(0, 0, 0, 0.04); /* subtle placeholder while the image fetches */
3455  }
3456
3457  .mega-menu__content--structured .mega-menu__finish-img {
3458    width: 100%;
3459    height: 100%;
3460    object-fit: cover;
3461    display: block;
3462  }
3463
3464  .mega-menu__content--structured .mega-menu__finish-title {
3465    flex: 0 0 auto;
3466    font-weight: bold;
3467    margin: 0.7rem 0 0.2rem 0;
3468    line-height: 1.3;
3469  }
3470
3471  .mega-menu__content--structured .mega-menu__finish-desc {
3472    flex: 0 0 auto;
3473    margin: 0;
3474    line-height: 1.35;
3475    font-size: 0.9em;
3476    opacity: 0.85;
3477  }
3478
3479  @media screen and (min-width: 990px) {
3480    .mega-menu__content--structured .mega-menu__structured-inner {
3481      display: flex !important;
3482      align-items: stretch !important; /* media column matches the link columns' height */
3483      width: 100% !important;
3484    }
3485
3486    /* Stop the columns block from growing so the image sits right beside the 3rd column */
3487    .mega-menu__content--structured .mega-menu__structured-inner > .mega-menu__columns {
3488      flex: 0 0 auto !important;
3489      width: auto !important;
3490      max-width: none !important;
3491    }
3492
3493    .mega-menu__content--structured .mega-menu__finish-media {
3494      position: relative;      /* active panel is positioned against this box */
3495      align-self: stretch;     /* height = the link columns' height, so nothing extends the menu */
3496      flex: 0 0 auto;
3497      width: 12em;             /* a bit smaller. ADJUST to resize the image column horizontally */
3498      margin-left: 2.5rem;     /* same gap as between columns, so it reads as a 4th column */
3499      box-sizing: border-box;
3500    }
3501
3502    /* Fill the media column; because it's absolute, its height can't push the menu taller. */
3503    .mega-menu__content--structured .mega-menu__finish-panel.is-active {
3504      position: absolute;
3505      top: 0.4rem;             /* nudge down to align with the column text */
3506      right: 0;
3507      bottom: 0;
3508      left: 0;
3509    }
3510  }
3511</style>
3512
3513<nav class="header__inline-menu" role="navigation" aria-label="Main navigation">
3514  <ul class="list-menu list-menu--inline" role="list">
3515    
3516<li><header-menu>
3517            <details id="Details-HeaderMenu-1" class="mega-menu">
3518              <summary
3519                id="HeaderMenu-shop"
3520                class="header__menu-item list-menu__item link focus-inset"
3521                aria-expanded="false"
3522                aria-controls="MegaMenu-Content-1"
3523              >
3524                <span
3525                >Shop</span>
3526                <svg
3527                  class="icon icon-caret"
3528                  viewBox="0 0 21 21"
3529                  fill="none"
3530                  xmlns="http://www.w3.org/2000/svg"
3531                  aria-hidden="true"
3532                >
3533                  <path
3534                    fill-rule="evenodd"
3535                    clip-rule="evenodd"
3536                    d="M10.5 0C11.1443 0 11.6667 0.522334 11.6667 1.16667V19.8333C11.6667 20.4777 11.1443 21 10.5 21C9.85567 21 9.33333 20.4777 9.33333 19.8333V1.16667C9.33333 0.522334 9.85567 0 10.5 0Z"
3537                    fill="currentColor"
3538                  />
3539                  <path
3540                    fill-rule="evenodd"
3541                    clip-rule="evenodd"
3542                    d="M0 10.5C0 9.85567 0.522334 9.33333 1.16667 9.33333H19.8333C20.4777 9.33333 21 9.85567 21 10.5C21 11.1443 20.4777 11.6667 19.8333 11.6667H1.16667C0.522334 11.6667 0 11.1443 0 10.5Z"
3543                    fill="currentColor"
3544                  />
3545                </svg>
3546              </summary>
3547              <div
3548                id="MegaMenu-Content-1"
3549                class="mega-menu__content color-scheme-1 gradient motion-reduce global-settings-popup flex mega-menu__content--structured"
3550                tabindex="-1"
3551                role="region"
3552                aria-labelledby="HeaderMenu-shop"
3553              >
3554                
3555<!-- First dropdown: 3-column layout with By Finish hover images -->
3556                  <div class="mega-menu__structured-inner">
3557                    <div class="mega-menu__columns">
3558                      <!-- Column 1: First 5 items with "By Product" header -->
3559                      <div class="mega-menu__column">
3560                        <h4 class="mega-menu__column-header">By Product</h4><a
3561                            id="HeaderMenu-shop-wall-ceiling-vents"
3562                            href="/collections/wall-vent"
3563                            class="mega-menu__link mega-menu__link--level-2 link"
3564                            
3565                            rel="prefetch"
3566                          >
3567                            Wall / Ceiling Vents
3568                          </a><a
3569                            id="HeaderMenu-shop-floor-vents"
3570                            href="/collections/floor"
3571                            class="mega-menu__link mega-menu__link--level-2 link"
3572                            
3573                            rel="prefetch"
3574                          >
3575                            Floor Vents
3576                          </a><a
3577                            id="HeaderMenu-shop-exhaust-fans"
3578                            href="/collections/exhaust-mounts"
3579                            class="mega-menu__link mega-menu__link--level-2 link"
3580                            
3581                            rel="prefetch"
3582                          >
3583                            Exhaust Fans
3584                          </a><a
3585                            id="HeaderMenu-shop-mounts-niches"
3586                            href="/collections/mounts-niches"
3587                            class="mega-menu__link mega-menu__link--level-2 link"
3588                            
3589                            rel="prefetch"
3590                          >
3591                            Mounts &amp; Niches
3592                          </a><a
3593                            id="HeaderMenu-shop-accessories"
3594                            href="/collections/accessories"
3595                            class="mega-menu__link mega-menu__link--level-2 link"
3596                            
3597                            rel="prefetch"
3598                          >
3599                            Accessories
3600                          </a></div>
3601
3602                      <!-- Column 2: Next 2 items with "By Finish" header (hover swaps + lazy-loads the image) -->
3603                      <div class="mega-menu__column mega-menu__column--finish">
3604                        <h4 class="mega-menu__column-header">By Finish</h4><a
3605                            id="HeaderMenu-shop-framed"
3606                            href="/collections/framed"
3607                            class="mega-menu__link mega-menu__link--level-2 mega-menu__finish-link link"
3608                            data-finish-target="finish-2"
3609                            
3610                            rel="prefetch"
3611                          >
3612                            Framed
3613                          </a><a
3614                            id="HeaderMenu-shop-flush"
3615                            href="/collections/flush"
3616                            class="mega-menu__link mega-menu__link--level-2 mega-menu__finish-link link"
3617                            data-finish-target="finish-1"
3618                            
3619                            rel="prefetch"
3620                          >
3621                            Flush
3622                          </a></div>
3623
3624                      <!-- Column 3: Remaining items with "By Room" header (offset shifted from 8 to 7) -->
3625                      <div class="mega-menu__column">
3626                        <h4 class="mega-menu__column-header">By Room</h4><a
3627                            id="HeaderMenu-shop-bathroom"
3628                            href="/collections/bathroom"
3629                            class="mega-menu__link mega-menu__link--level-2 link"
3630                            
3631                            rel="prefetch"
3632                          >
3633                            Bathroom
3634                          </a><a
3635                            id="HeaderMenu-shop-kitchen"
3636                            href="/collections/kitchen"
3637                            class="mega-menu__link mega-menu__link--level-2 link"
3638                            
3639                            rel="prefetch"
3640                          >
3641                            Kitchen
3642                          </a><a
3643                            id="HeaderMenu-shop-living"
3644                            href="/collections/living-room"
3645                            class="mega-menu__link mega-menu__link--level-2 link"
3646                            
3647                            rel="prefetch"
3648                          >
3649                            Living
3650                          </a><a
3651                            id="HeaderMenu-shop-entryway"
3652                            href="/collections/entryway"
3653                            class="mega-menu__link mega-menu__link--level-2 link"
3654                            
3655                            rel="prefetch"
3656                          >
3657                            Entryway
3658                          </a></div>
3659                    </div><div class="mega-menu__finish-media" aria-hidden="true"><div
3660                              class="mega-menu__finish-panel"
3661                              data-finish-key="finish-1"
3662                            ><div class="mega-menu__finish-image"><img
3663                                    class="mega-menu__finish-img"
3664                                    alt="Flush"
3665                                    width="320"
3666                                    height="320"
3667                                    loading="lazy"
3668                                    decoding="async"
3669                                    data-src="//fittes.ca/cdn/shop/files/1-FlushFloorVent_Luxe__Lifestyle1.webp?v=1784899341&width=600"
3670                                    data-srcset="//fittes.ca/cdn/shop/files/1-FlushFloorVent_Luxe__Lifestyle1.webp?v=1784899341&width=300 300w, //fittes.ca/cdn/shop/files/1-FlushFloorVent_Luxe__Lifestyle1.webp?v=1784899341&width=450 450w, //fittes.ca/cdn/shop/files/1-FlushFloorVent_Luxe__Lifestyle1.webp?v=1784899341&width=600 600w, //fittes.ca/cdn/shop/files/1-FlushFloorVent_Luxe__Lifestyle1.webp?v=1784899341&width=700 700w"
3671                                    data-sizes="15em"
3672                                  >
3673                                </div><p class="mega-menu__finish-title">Flush</p><p class="mega-menu__finish-desc">Sits in the surface</p></div><div
3674                              class="mega-menu__finish-panel"
3675                              data-finish-key="finish-2"
3676                            ><div class="mega-menu__finish-image"><img
3677                                    class="mega-menu__finish-img"
3678                                    alt="Framed"
3679                                    width="320"
3680                                    height="320"
3681                                    loading="lazy"
3682                                    decoding="async"
3683                                    data-src="//fittes.ca/cdn/shop/files/Framed_Vent_FAQ.webp?v=1784293815&width=600"
3684                                    data-srcset="//fittes.ca/cdn/shop/files/Framed_Vent_FAQ.webp?v=1784293815&width=300 300w, //fittes.ca/cdn/shop/files/Framed_Vent_FAQ.webp?v=1784293815&width=450 450w, //fittes.ca/cdn/shop/files/Framed_Vent_FAQ.webp?v=1784293815&width=600 600w, //fittes.ca/cdn/shop/files/Framed_Vent_FAQ.webp?v=1784293815&width=700 700w"
3685                                    data-sizes="15em"
3686                                  >
3687                                </div><p class="mega-menu__finish-title">Framed</p><p class="mega-menu__finish-desc">Sits on the surface</p></div></div></div>
3688                
3689              </div>
3690            </details>
3691          </header-menu></li>
3692      
3693<li><header-menu>
3694            <details id="Details-HeaderMenu-2" class="mega-menu">
3695              <summary
3696                id="HeaderMenu-learn"
3697                class="header__menu-item list-menu__item link focus-inset"
3698                aria-expanded="false"
3699                aria-controls="MegaMenu-Content-2"
3700              >
3701                <span
3702                >Learn</span>
3703                <svg
3704                  class="icon icon-caret"
3705                  viewBox="0 0 21 21"
3706                  fill="none"
3707                  xmlns="http://www.w3.org/2000/svg"
3708                  aria-hidden="true"
3709                >
3710                  <path
3711                    fill-rule="evenodd"
3712                    clip-rule="evenodd"
3713                    d="M10.5 0C11.1443 0 11.6667 0.522334 11.6667 1.16667V19.8333C11.6667 20.4777 11.1443 21 10.5 21C9.85567 21 9.33333 20.4777 9.33333 19.8333V1.16667C9.33333 0.522334 9.85567 0 10.5 0Z"
3714                    fill="currentColor"
3715                  />
3716                  <path
3717                    fill-rule="evenodd"
3718                    clip-rule="evenodd"
3719                    d="M0 10.5C0 9.85567 0.522334 9.33333 1.16667 9.33333H19.8333C20.4777 9.33333 21 9.85567 21 10.5C21 11.1443 20.4777 11.6667 19.8333 11.6667H1.16667C0.522334 11.6667 0 11.1443 0 10.5Z"
3720                    fill="currentColor"
3721                  />
3722                </svg>
3723              </summary>
3724              <div
3725                id="MegaMenu-Content-2"
3726                class="mega-menu__content color-scheme-1 gradient motion-reduce global-settings-popup flex mega-menu__content--structured-secondary"
3727                tabindex="-1"
3728                role="region"
3729                aria-labelledby="HeaderMenu-learn"
3730              >
3731                
3732                  <!-- Second dropdown: 3-column layout -->
3733                  <div class="mega-menu__columns">
3734                    <!-- Column 1: First 5 items with "Specs + Support" header - UPDATED: limit changed from 6 to 5 -->
3735                    <div class="mega-menu__column">
3736                      <h4 class="mega-menu__column-header">Specs + Support</h4><a
3737                          id="HeaderMenu-learn-compare-products"
3738                          href="/pages/compare-products"
3739                          class="mega-menu__link mega-menu__link--level-2 link"
3740                          
3741                          
3742                        >
3743                          Compare Products
3744                        </a><a
3745                          id="HeaderMenu-learn-help-center"
3746                          href="https://fittes-canada.gorgias.help/en-US"
3747                          class="mega-menu__link mega-menu__link--level-2 link"
3748                          
3749                          
3750                        >
3751                          Help Center
3752                        </a><a
3753                          id="HeaderMenu-learn-airflow-specs"
3754                          href="/pages/airflow-specs"
3755                          class="mega-menu__link mega-menu__link--level-2 link"
3756                          
3757                          
3758                        >
3759                          Airflow Specs
3760                        </a><a
3761                          id="HeaderMenu-learn-install-guides"
3762                          href="/pages/install-guides-1"
3763                          class="mega-menu__link mega-menu__link--level-2 link"
3764                          
3765                          
3766                        >
3767                          Install Guides
3768                        </a><a
3769                          id="HeaderMenu-learn-product-basics"
3770                          href="/pages/fittes-lingo"
3771                          class="mega-menu__link mega-menu__link--level-2 link"
3772                          
3773                          
3774                        >
3775                          Product Basics
3776                        </a></div>
3777
3778                    <!-- Column 2: Next 2 items with "Trade + Rewards" header - UPDATED: offset changed from 6 to 5, limit changed from 3 to 2 -->
3779                    <div class="mega-menu__column">
3780                      <h4 class="mega-menu__column-header">Trade + Rewards</h4><a
3781                          id="HeaderMenu-learn-fittes-crew-rewards"
3782                          href="/pages/fittes-crew"
3783                          class="mega-menu__link mega-menu__link--level-2 link"
3784                          
3785                          
3786                        >
3787                          Fittes Crew Rewards
3788                        </a><a
3789                          id="HeaderMenu-learn-partner-with-us"
3790                          href="/pages/partner"
3791                          class="mega-menu__link mega-menu__link--level-2 link"
3792                          
3793                          
3794                        >
3795                          Partner With Us
3796                        </a><a
3797                          id="HeaderMenu-learn-trades-program"
3798                          href="/pages/trades-program"
3799                          class="mega-menu__link mega-menu__link--level-2 link"
3800                          
3801                          
3802                        >
3803                          Trades Program
3804                        </a></div>
3805
3806                    <!-- Column 3: Last 4 items with "About Us" header - UPDATED: offset changed from 9 to 7, limit changed from 2 to 4 -->
3807                    <div class="mega-menu__column">
3808                      <h4 class="mega-menu__column-header">About Us</h4><a
3809                          id="HeaderMenu-learn-our-story"
3810                          href="/pages/our-story"
3811                          class="mega-menu__link mega-menu__link--level-2 link"
3812                          
3813                          
3814                        >
3815                          Our Story
3816                        </a><a
3817                          id="HeaderMenu-learn-our-team"
3818                          href="/pages/our-team"
3819                          class="mega-menu__link mega-menu__link--level-2 link"
3820                          
3821                          
3822                        >
3823                          Our Team
3824                        </a><a
3825                          id="HeaderMenu-learn-blog"
3826                          href="/blogs/blog"
3827                          class="mega-menu__link mega-menu__link--level-2 link"
3828                          
3829                          
3830                        >
3831                          Blog
3832                        </a><a
3833                          id="HeaderMenu-learn-faq"
3834                          href="/pages/faq"
3835                          class="mega-menu__link mega-menu__link--level-2 link"
3836                          
3837                          
3838                        >
3839                          FAQ
3840                        </a></div>
3841                  </div>
3842                
3843              </div>
3844            </details>
3845          </header-menu></li>
3846      
3847<li><a
3848            id="HeaderMenu-vent-finder"
3849            href="#quiz-6jRk3l"
3850            class="header__menu-item list-menu__item link link--text focus-inset"
3851            
3852            
3853            
3854          >
3855            <span >Vent Finder</span>
3856          </a></li>
3857      
3858</ul>
3859</nav>
3860
3861<script>
3862  (function() {
3863    var ua = navigator.userAgent;
3864    var isSafari = /^((?!chrome|chromium|android).)*safari/i.test(ua);
3865    if (isSafari) {
3866      document.documentElement.classList.add('is-safari');
3867    }
3868  })();
3869</script>
3869
3870
3871<script>
3872  (function(){
3873    var prefetchedUrls = new Set();
3874    function prefetchPage(url) {
3875      if (prefetchedUrls.has(url) || !url) return;
3876      prefetchedUrls.add(url);
3877      var link = document.createElement('link');
3878      link.rel = 'prefetch';
3879      link.href = url;
3880      document.head.appendChild(link);
3881      setTimeout(function() {
3882        if (link.parentNode) link.parentNode.removeChild(link);
3883      }, 30000);
3884    }
3885    var allMenus = document.querySelectorAll('header-menu details.mega-menu');
3886    function closeAllMenusExcept(activeMenu) {
3887      allMenus.forEach(function(menu) {
3888        if (menu !== activeMenu) {
3889          clearTimeout(menu._closeTimer);
3890          menu.removeAttribute('open');
3891          menu.querySelector('summary').setAttribute('aria-expanded', 'false');
3892          menu._isHovered = false;
3893          menu._openTime = null;
3894        }
3895      });
3896    }
3897    allMenus.forEach(function(menu){
3898      menu._closeTimer = null;
3899      menu._isHovered = false;
3900      menu._openTime = null;
3901      
3902      function openMenu() {
3903        closeAllMenusExcept(menu);
3904        clearTimeout(menu._closeTimer);
3905        menu.setAttribute('open', '');
3906        menu.querySelector('summary').setAttribute('aria-expanded', 'true');
3907        menu._isHovered = true;
3908        menu._openTime = Date.now(); // Track when menu opened
3909      }
3910      function scheduleClose() {
3911        menu._isHovered = false;
3912        menu._closeTimer = setTimeout(function() {
3913          if (!menu._isHovered) {
3914            menu.removeAttribute('open');
3915            menu.querySelector('summary').setAttribute('aria-expanded', 'false');
3916            menu._openTime = null;
3917          }
3918        }, 200);
3919      }
3920      function cancelClose() {
3921        clearTimeout(menu._closeTimer);
3922        menu._isHovered = true;
3923      }
3924
3925      // Handle clicks on menu items with dropdowns
3926      var summary = menu.querySelector('summary');
3927      summary.addEventListener('click', function(e) {
3928        e.preventDefault(); // Prevent default link navigation
3929        
3930        var isOpen = menu.hasAttribute('open');
3931        var currentTime = Date.now();
3932        
3933        if (!isOpen) {
3934          // Menu is closed, open it
3935          openMenu();
3936        } else if (menu._openTime && (currentTime - menu._openTime) > 750) {
3937          // Menu has been open for more than 0.75 seconds, close it
3938          menu.removeAttribute('open');
3939          summary.setAttribute('aria-expanded', 'false');
3940          menu._isHovered = false;
3941          menu._openTime = null;
3942        }
3943        // If menu opened less than 0.75 seconds ago, do nothing (ignore click)
3944      });
3945
3946      menu.addEventListener('mouseenter', function() {
3947        openMenu();
3948        menu.querySelectorAll('a[href]').forEach(function(link) {
3949          var href = link.getAttribute('href');
3950          if (href && (href.includes('/collections/') || href.includes('/products/'))) {
3951            prefetchPage(href);
3952          }
3953        });
3954      });
3955      menu.addEventListener('mouseleave', scheduleClose);
3956      var mq = window.matchMedia('(min-width: 990px)');
3957      menu.addEventListener('focusin', function() {
3958        if (mq.matches) {
3959          clearTimeout(menu._closeTimer);
3960          menu.setAttribute('open', '');
3961          menu.querySelector('summary').setAttribute('aria-expanded', 'true');
3962          menu._openTime = Date.now();
3963        }
3964      });
3965      menu.addEventListener('focusout', function(e) {
3966        if (mq.matches && !menu.contains(e.relatedTarget)) {
3967          menu.removeAttribute('open');
3968          menu.querySelector('summary').setAttribute('aria-expanded', 'false');
3969          menu._openTime = null;
3970        }
3971      });
3972      var content = menu.querySelector('.mega-menu__content');
3973      if (content) {
3974        content.addEventListener('mouseenter', cancelClose);
3975        content.addEventListener('mouseleave', scheduleClose);
3976      }
3977    });
3978  })();
3979</script>
3979
3980
3981<script>
3982  /* ============================================================
3983     By Finish: hover-only, lazy-loaded media panel (desktop only)
3984     - Images have NO src at page load, so nothing is requested.
3985     - The image source is injected once, on the first hover/focus
3986       of that finish link, and only when the viewport is >= 990px.
3987     - The panel shows ONLY while the cursor is actively on the link.
3988       It hides on mouseleave / blur / menu close, so reopening the
3989       menu shows nothing until a finish link is hovered again.
3990     - Nothing loads on mobile (no hover + the media query gate).
3991     ============================================================ */
3992  (function () {
3993    var finishLinks = document.querySelectorAll('.mega-menu__finish-link');
3994    if (!finishLinks.length) return;
3995
3996    // Only load/show images where the media panel is actually visible (desktop).
3997    var desktop = window.matchMedia('(min-width: 990px)');
3998    var hideTimers = new WeakMap();
3999
4000    function loadPanelImage(panel) {
4001      var img = panel && panel.querySelector('.mega-menu__finish-img');
4002      if (!img || img.getAttribute('data-loaded') === 'true') return;
4003      var srcset = img.getAttribute('data-srcset');
4004      var sizes = img.getAttribute('data-sizes');
4005      var src = img.getAttribute('data-src');
4006      if (sizes) img.setAttribute('sizes', sizes);
4007      if (srcset) img.setAttribute('srcset', srcset);
4008      if (src) img.setAttribute('src', src); // <-- the only line that triggers a network request
4009      img.setAttribute('data-loaded', 'true');
4010    }
4011
4012    function hideAll(content) {
4013      if (!content) return;
4014      content.querySelectorAll('.mega-menu__finish-panel').forEach(function (panel) {
4015        panel.classList.remove('is-active');
4016      });
4017    }
4018
4019    function show(content, key) {
4020      if (!content || !key || !desktop.matches) return;
4021      content.querySelectorAll('.mega-menu__finish-panel').forEach(function (panel) {
4022        var isMatch = panel.getAttribute('data-finish-key') === key;
4023        panel.classList.toggle('is-active', isMatch);
4024        if (isMatch) loadPanelImage(panel);
4025      });
4026    }
4027
4028    var seenMenus = new Set();
4029
4030    finishLinks.forEach(function (link) {
4031      var content = link.closest('.mega-menu__content');
4032      var key = link.getAttribute('data-finish-target');
4033
4034      function onEnter() {
4035        // Cancel any pending hide so sliding between the two finish links does not flash empty.
4036        clearTimeout(hideTimers.get(content));
4037        show(content, key);
4038      }
4039      function onLeave() {
4040        // Small delay so moving directly onto the sibling finish link cancels this hide.
4041        hideTimers.set(content, setTimeout(function () { hideAll(content); }, 40));
4042      }
4043
4044      link.addEventListener('mouseenter', onEnter);
4045      link.addEventListener('mouseleave', onLeave);
4046      link.addEventListener('focus', onEnter);
4047      link.addEventListener('blur', onLeave);
4048
4049      // Safety: whenever this dropdown closes, clear the active image so a reopen starts blank.
4050      var details = link.closest('details.mega-menu');
4051      if (details && !seenMenus.has(details)) {
4052        seenMenus.add(details);
4053        details.addEventListener('toggle', function () {
4054          if (!details.open) hideAll(content);
4055        });
4056      }
4057    });
4058  })();
4059</script>
4059
4060
4061<div class="header__icons header__icons--localization header-localization">
4062      <div class="desktop-localization-wrapper">
4063</div>
4064      
4065
4066<details-modal class="header__search">
4067  <details>
4068    <summary
4069      class="header__icon header__icon--search header__icon--summary link focus-inset modal__toggle"
4070      aria-haspopup="dialog"
4071      aria-label="Search"
4072    >
4073      <span>
4074        <span class="header__icon--search-span"><svg fill="none" class="icon icon-search" viewBox="0 0 25 24">
4075<path fill-rule="evenodd" clip-rule="evenodd" d="M7.55412 2.88593C8.48833 2.49897 9.4896 2.2998 10.5008 2.2998C11.512 2.2998 12.5132 2.49897 13.4474 2.88593C14.3817 3.27289 15.2305 3.84007 15.9455 4.55508C16.6605 5.27009 17.2277 6.11893 17.6147 7.05314C18.0016 7.98735 18.2008 8.98863 18.2008 9.99981C18.2008 11.011 18.0016 12.0123 17.6147 12.9465C17.3173 13.6644 16.9135 14.3319 16.4179 14.927L22.4907 20.9998L21.5008 21.9898L15.428 15.917C14.8329 16.4125 14.1654 16.8163 13.4474 17.1137C12.5132 17.5006 11.512 17.6998 10.5008 17.6998C9.4896 17.6998 8.48833 17.5006 7.55412 17.1137C6.61991 16.7267 5.77107 16.1595 5.05606 15.4445C4.34105 14.7295 3.77387 13.8807 3.38691 12.9465C2.99995 12.0123 2.80078 11.011 2.80078 9.99981C2.80078 8.98863 2.99995 7.98735 3.38691 7.05314C3.77387 6.11894 4.34105 5.27009 5.05606 4.55508C5.77107 3.84007 6.61991 3.27289 7.55412 2.88593ZM10.5008 3.6998C9.67345 3.6998 8.85423 3.86276 8.08988 4.17936C7.32552 4.49597 6.63102 4.96002 6.04601 5.54503C5.461 6.13004 4.99695 6.82455 4.68034 7.5889C4.36374 8.35325 4.20078 9.17248 4.20078 9.9998C4.20078 10.8271 4.36374 11.6464 4.68034 12.4107C4.99695 13.1751 5.461 13.8696 6.04601 14.4546C6.63102 15.0396 7.32553 15.5036 8.08988 15.8202C8.85423 16.1369 9.67345 16.2998 10.5008 16.2998C11.3281 16.2998 12.1473 16.1369 12.9117 15.8202C13.676 15.5036 14.3705 15.0396 14.9556 14.4546C15.5406 13.8696 16.0046 13.1751 16.3212 12.4107C16.6378 11.6464 16.8008 10.8271 16.8008 9.9998C16.8008 9.17248 16.6378 8.35325 16.3212 7.5889C16.0046 6.82455 15.5406 6.13004 14.9556 5.54503C14.3705 4.96002 13.676 4.49597 12.9117 4.17936C12.1473 3.86276 11.3281 3.6998 10.5008 3.6998Z" fill="currentColor"/>
4076</svg><div class="small-hide">Search</div>
4077        </span>
4078        <span class="svg-wrapper header__icon-close"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
4079</span>
4080      </span>
4081    </summary>
4082    <div
4083      class="search-modal modal__content gradient"
4084      role="dialog"
4085      aria-modal="true"
4086      aria-label="Search"
4087    >
4088      <div class="modal-overlay"></div>
4089      <div
4090        class="search-modal__content search-modal__content-bottom"
4091        tabindex="-1"
4092      ><predictive-search class="search-modal__form" data-loading-text="Loading..."><form action="/search" method="get" role="search" class="search search-modal__form">
4093          <div class="field">
4094            <input
4095              class="search__input field__input hw-head-search-input"
4096              id="Search-In-Modal"
4097              type="search"
4098              name="q"
4099              value=""
4100              placeholder="Search Fittes.ca"role="combobox"
4101                aria-expanded="false"
4102                aria-owns="predictive-search-results"
4103                aria-controls="predictive-search-results"
4104                aria-haspopup="listbox"
4105                aria-autocomplete="list"
4106                autocorrect="off"
4107                autocomplete="off"
4108                autocapitalize="off"
4109                spellcheck="false">
4110            <input type="hidden" name="options[prefix]" value="last">
4111            <button
4112              type="reset"
4113              class="reset__button field__button hidden"
4114              aria-label="Clear search term"
4115            >
4116              <span class="svg-wrapper"><svg fill="none" stroke="currentColor" class="icon icon-close" viewBox="0 0 18 18"><circle cx="9" cy="9" r="8.5" stroke-opacity=".2"/><path stroke-linecap="round" stroke-linejoin="round" d="M11.83 11.83 6.172 6.17M6.229 11.885l5.544-5.77"/></svg>
4117</span>
4118            </button>
4119            <button class="search__button field__button" aria-label="Search">
4120              <span class="svg-wrapper"><svg fill="none" class="icon icon-search" viewBox="0 0 25 24">
4121<path fill-rule="evenodd" clip-rule="evenodd" d="M7.55412 2.88593C8.48833 2.49897 9.4896 2.2998 10.5008 2.2998C11.512 2.2998 12.5132 2.49897 13.4474 2.88593C14.3817 3.27289 15.2305 3.84007 15.9455 4.55508C16.6605 5.27009 17.2277 6.11893 17.6147 7.05314C18.0016 7.98735 18.2008 8.98863 18.2008 9.99981C18.2008 11.011 18.0016 12.0123 17.6147 12.9465C17.3173 13.6644 16.9135 14.3319 16.4179 14.927L22.4907 20.9998L21.5008 21.9898L15.428 15.917C14.8329 16.4125 14.1654 16.8163 13.4474 17.1137C12.5132 17.5006 11.512 17.6998 10.5008 17.6998C9.4896 17.6998 8.48833 17.5006 7.55412 17.1137C6.61991 16.7267 5.77107 16.1595 5.05606 15.4445C4.34105 14.7295 3.77387 13.8807 3.38691 12.9465C2.99995 12.0123 2.80078 11.011 2.80078 9.99981C2.80078 8.98863 2.99995 7.98735 3.38691 7.05314C3.77387 6.11894 4.34105 5.27009 5.05606 4.55508C5.77107 3.84007 6.61991 3.27289 7.55412 2.88593ZM10.5008 3.6998C9.67345 3.6998 8.85423 3.86276 8.08988 4.17936C7.32552 4.49597 6.63102 4.96002 6.04601 5.54503C5.461 6.13004 4.99695 6.82455 4.68034 7.5889C4.36374 8.35325 4.20078 9.17248 4.20078 9.9998C4.20078 10.8271 4.36374 11.6464 4.68034 12.4107C4.99695 13.1751 5.461 13.8696 6.04601 14.4546C6.63102 15.0396 7.32553 15.5036 8.08988 15.8202C8.85423 16.1369 9.67345 16.2998 10.5008 16.2998C11.3281 16.2998 12.1473 16.1369 12.9117 15.8202C13.676 15.5036 14.3705 15.0396 14.9556 14.4546C15.5406 13.8696 16.0046 13.1751 16.3212 12.4107C16.6378 11.6464 16.8008 10.8271 16.8008 9.9998C16.8008 9.17248 16.6378 8.35325 16.3212 7.5889C16.0046 6.82455 15.5406 6.13004 14.9556 5.54503C14.3705 4.96002 13.676 4.49597 12.9117 4.17936C12.1473 3.86276 11.3281 3.6998 10.5008 3.6998Z" fill="currentColor"/>
4122</svg></span>
4123            </button>
4124          </div><div class="predictive-search predictive-search--header" tabindex="-1" data-predictive-search>
4125              <div class="pre-search-default">
4126                <div class="hw-search-title">New product</div>
4127                <div class="hw-product">
4128                  
4129                    <a class="hw-product-item" href="/products/brack-kit-luxe">
4130                      
4131                        <img
4132                          src="//fittes.ca/cdn/shop/files/1-BrackKit_Lifestyle1.jpg?v=1754022178&width=320"
4133                          srcset="//fittes.ca/cdn/shop/files/1-BrackKit_Lifestyle1.jpg?v=1754022178&width=160 160w, //fittes.ca/cdn/shop/files/1-BrackKit_Lifestyle1.jpg?v=1754022178&width=320 320w"
4134                          sizes="(max-width: 749px) 40vw, 160px"
4135                          loading="lazy"
4136                          decoding="async"
4137                          width="160"
4138                          height="160"
4139                          alt="Brack Kit [Luxe]"
4140                        >
4141                      
4142                      <div class="info">
4143                        <div class="heading">Brack Kit [Luxe]</div>
4144                        <div class="price">$71.00</div>
4145                      </div>
4146                    </a>
4147                  
4148                    <a class="hw-product-item" href="/products/device-mount-smash-plate">
4149                      
4150                        <img
4151                          src="//fittes.ca/cdn/shop/files/2-DeviceMountSmashPlate_CloseCut1.png?v=1754022149&width=320"
4152                          srcset="//fittes.ca/cdn/shop/files/2-DeviceMountSmashPlate_CloseCut1.png?v=1754022149&width=160 160w, //fittes.ca/cdn/shop/files/2-DeviceMountSmashPlate_CloseCut1.png?v=1754022149&width=320 320w"
4153                          sizes="(max-width: 749px) 40vw, 160px"
4154                          loading="lazy"
4155                          decoding="async"
4156                          width="160"
4157                          height="160"
4158                          alt="Device Mount Smash Plate"
4159                        >
4160                      
4161                      <div class="info">
4162                        <div class="heading">Device Mount Smash Plate</div>
4163                        <div class="price">$13.00</div>
4164                      </div>
4165                    </a>
4166                  
4167                    <a class="hw-product-item" href="/products/flush-access-panel-luxe-1">
4168                      
4169                        <img
4170                          src="//fittes.ca/cdn/shop/files/1-FlushAccessPanel_Luxe__Lifestyle1_f4d44b28-1161-4
4170cbd-9bfd-f71874cb1e74.png?v=1754022088&width=320"
4171                          srcset="//fittes.ca/cdn/shop/files/1-FlushAccessPanel_Luxe__Lifestyle1_f4d44b28-1161-4cbd-9bfd-f71874cb1e74.png?v=1754022088&width=160 160w, //fittes.ca/cdn/shop/files/1-FlushAccessPanel_Luxe__Lifestyle1_f4d44b28-1161-4cbd-9bfd-f71874cb1e74.png?v=1754022088&width=320 320w"
4172                          sizes="(max-width: 749px) 40vw, 160px"
4173                          loading="lazy"
4174                          decoding="async"
4175                          width="160"
4176                          height="160"
4177                          alt="Flush Access Panel [Luxe]"
4178                        >
4179                      
4180                      <div class="info">
4181                        <div class="heading">Flush Access Panel [Luxe]</div>
4182                        <div class="price">$61.00</div>
4183                      </div>
4184                    </a>
4185                  
4186                    <a class="hw-product-item" href="/products/flush-anywhere-niche-luxe">
4187                      
4188                        <img
4189                          src="//fittes.ca/cdn/shop/files/1-FlushAnywhereNiche_Luxe__Lifestyle1_5c6ceb11-96f9-41c7-b6a6-e9b40b05f8ef.png?v=1754022083&width=320"
4190                          srcset="//fittes.ca/cdn/shop/files/1-FlushAnywhereNiche_Luxe__Lifestyle1_5c6ceb11-96f9-41c7-b6a6-e9b40b05f8ef.png?v=1754022083&width=160 160w, //fittes.ca/cdn/shop/files/1-FlushAnywhereNiche_Luxe__Lifestyle1_5c6ceb11-96f9-41c7-b6a6-e9b40b05f8ef.png?v=1754022083&width=320 320w"
4191                          sizes="(max-width: 749px) 40vw, 160px"
4192                          loading="lazy"
4193                          decoding="async"
4194                          width="160"
4195                          height="160"
4196                          alt="Flush Anywhere Niche [Luxe]"
4197                        >
4198                      
4199                      <div class="info">
4200                        <div class="heading">Flush Anywhere Niche [Luxe]</div>
4201                        <div class="price">$114.00</div>
4202                      </div>
4203                    </a>
4204                  
4205                    <a class="hw-product-item" href="/products/device-mount-luxe">
4206                      
4207                        <img
4208                          src="//fittes.ca/cdn/shop/files/1-FlushDeviceMount_Luxe__Lifestyle1.png?v=1754022116&width=320"
4209                          srcset="//fittes.ca/cdn/shop/files/1-FlushDeviceMount_Luxe__Lifestyle1.png?v=1754022116&width=160 160w, //fittes.ca/cdn/shop/files/1-FlushDeviceMount_Luxe__Lifestyle1.png?v=1754022116&width=320 320w"
4210                          sizes="(max-width: 749px) 40vw, 160px"
4211                          loading="lazy"
4212                          decoding="async"
4213                          width="160"
4214                          height="160"
4215                          alt="Flush Device Mount [Luxe]"
4216                        >
4217                      
4218                      <div class="info">
4219                        <div class="heading">Flush Device Mount [Luxe]</div>
4220                        <div class="price">$104.00</div>
4221                      </div>
4222                    </a>
4223                  
4224                    <a class="hw-product-item" href="/products/flush-drywall-device-mount-lite">
4225                      
4226                        <img
4227                          src="//fittes.ca/cdn/shop/files/1-FlushDrywallDeviceMount_Lite__Lifestyle1.png?v=1754022156&width=320"
4228                          srcset="//fittes.ca/cdn/shop/files/1-FlushDrywallDeviceMount_Lite__Lifestyle1.png?v=1754022156&width=160 160w, //fittes.ca/cdn/shop/files/1-FlushDrywallDeviceMount_Lite__Lifestyle1.png?v=1754022156&width=320 320w"
4229                          sizes="(max-width: 749px) 40vw, 160px"
4230                          loading="lazy"
4231                          decoding="async"
4232                          width="160"
4233                          height="160"
4234                          alt="Flush Drywall Device Mount [Lite]"
4235                        >
4236                      
4237                      <div class="info">
4238                        <div class="heading">Flush Drywall Device Mount [Lite]</div>
4239                        <div class="price">$14.00</div>
4240                      </div>
4241                    </a>
4242                  
4243                </div>
4244                <div class="hw-search-title">Collection</div>
4245                <div class="hw-collection">
4246                  
4247                    <a class="hw-collection-item" href="/collections/vents">
4248                      
4249                        <img
4250                          src="//fittes.ca/cdn/shop/collections/Vents_1_-_1920_720.png?v=1748267664&width=400"
4251                          srcset="//fittes.ca/cdn/shop/collections/Vents_1_-_1920_720.png?v=1748267664&width=200 200w, //fittes.ca/cdn/shop/collections/Vents_1_-_1920_720.png?v=1748267664&width=400 400w"
4252                          sizes="(max-width: 749px) 45vw, 200px"
4253                          loading="lazy"
4254                          decoding="async"
4255                          width="200"
4256                          height="200"
4257                          alt="Vents"
4258                        >
4259                      
4260                      <div class="heading">Vents</div>
4261                    </a>
4262                  
4263                    <a class="hw-collection-item" href="/collections/niche">
4264                      
4265                        <img
4266                          src="//fittes.ca/cdn/shop/collections/Murphy-Bowl-Banner-2400x600.gif?v=1744652964&width=400"
4267                          srcset="//fittes.ca/cdn/shop/collections/Murphy-Bowl-Banner-2400x600.gif?v=1744652964&width=200 200w, //fittes.ca/cdn/shop/collections/Murphy-Bowl-Banner-2400x600.gif?v=1744652964&width=400 400w"
4268                          sizes="(max-width: 749px) 45vw, 200px"
4269                          loading="lazy"
4270                          decoding="async"
4271                          width="200"
4272                          height="200"
4273                          alt="Niches"
4274                        >
4275                      
4276                      <div class="heading">Niches</div>
4277                    </a>
4278                  
4279                    <a class="hw-collection-item" href="/collections/mounts">
4280                      
4281                        <img
4282                          src="//fittes.ca/cdn/shop/collections/Mount_1_-_1920_720.png?v=1744652563&width=400"
4283                          srcset="//fittes.ca/cdn/shop/collections/Mount_1_-_1920_720.png?v=1744652563&width=200 200w, //fittes.ca/cdn/shop/collections/Mount_1_-_1920_720.png?v=1744652563&width=400 400w"
4284                          sizes="(max-width: 749px) 45vw, 200px"
4285                          loading="lazy"
4286                          decoding="async"
4287                          width="200"
4288                          height="200"
4289                          alt="Mounts"
4290                        >
4291                      
4292                      <div class="heading">Mounts</div>
4293                    </a>
4294                  
4295                    <a class="hw-collection-item" href="/collections/accessories">
4296                      
4297                        <img
4298                          src="//fittes.ca/cdn/shop/collections/Accessories_1-_1920_720.png?v=1744653297&width=400"
4299                          srcset="//fittes.ca/cdn/shop/collections/Accessories_1-_1920_720.png?v=1744653297&width=200 200w, //fittes.ca/cdn/shop/collections/Accessories_1-_1920_720.png?v=1744653297&width=400 400w"
4300                          sizes="(max-width: 749px) 45vw, 200px"
4301                          loading="lazy"
4302                          decoding="async"
4303                          width="200"
4304                          height="200"
4305                          alt="Accessories"
4306                        >
4307                      
4308                      <div class="heading">Accessories</div>
4309                    </a>
4310                  
4311                </div>
4312              </div>
4313
4314<div class="predictive-search__loading-state">
4315  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
4316
4317</div>
4318</div>
4319
4320            <span class="predictive-search-status visually-hidden" role="status" aria-hidden="true"></span></form></predictive-search><button
4321          type="button"
4322          class="search-modal__close-button modal__close-button link link--text focus-inset"
4323          aria-label="Close"
4324        >
4325          <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
4326</span>
4327        </button>
4328      </div>
4329    </div>
4330  </details>
4331</details-modal>
4332
4333<style>
4334  /* Mobile: while the search modal is open, PickyStory's cart-button
4335     overlay must not intercept taps intended for the close controls */
4336  @media screen and (max-width: 749px) {
4337    body:has(.header__search details[open]) [data-picky-cart-button-area] {
4338      pointer-events: none;
4339    }
4340  }
4341</style>
4342
4343<a
4344          href="https://fittes.ca/customer_authentication/redirect?locale=en&region_country=US"
4345          class="header__icon header__icon--account link focus-inset"
4346          rel="nofollow"
4347        ><account-icon><span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-account" viewBox="0 0 27 28">
4348<path fill-rule="evenodd" clip-rule="evenodd" d="M9.75961 4.63656C10.7512 3.64496 12.0961 3.08789 13.4984 3.08789C14.9008 3.08789 16.2457 3.64496 17.2373 4.63656C18.2289 5.62816 18.7859 6.97306 18.7859 8.37539C18.7859 9.77772 18.2289 11.1226 17.2373 12.1142C16.2457 13.1058 14.9008 13.6629 13.4984 13.6629C12.0961 13.6629 10.7512 13.1058 9.75961 12.1142C8.76801 11.1226 8.21094 9.77772 8.21094 8.37539C8.21094 6.97306 8.76801 5.62816 9.75961 4.63656ZM13.4984 4.66289C12.5138 4.66289 11.5695 5.05403 10.8733 5.75026C10.1771 6.44649 9.78594 7.39077 9.78594 8.37539C9.78594 9.36001 10.1771 10.3043 10.8733 11.0005C11.5695 11.6968 12.5138 12.0879 13.4984 12.0879C14.4831 12.0879 15.4273 11.6968 16.1236 11.0005C16.8198 10.3043 17.2109 9.36001 17.2109 8.37539C17.2109 7.39077 16.8198 6.44649 16.1236 5.75026C15.4273 5.05403 14.4831 4.66289 13.4984 4.66289ZM11.2484 18.1629C10.2638 18.1629 9.31953 18.554 8.6233 19.2503C7.92707 19.9465 7.53594 20.8908 7.53594 21.8754V24.9129H5.96094V21.8754C5.96094 20.4731 6.51801 19.1282 7.50961 18.1366C8.50121 17.145 9.8461 16.5879 11.2484 16.5879H15.7484C17.1508 16.5879 18.4957 17.145 19.4873 18.1366C20.4789 19.1282 21.0359 20.4731 21.0359 21.8754V24.9129H19.4609V21.8754C19.4609 20.8908 19.0698 19.9465 18.3736 19.2503C17.6773 18.554 16.7331 18.1629 15.7484 18.1629H11.2484Z" fill="currentColor"/>
4349</svg>
4350</span></account-icon><span class="visually-hidden">Log in</span>
4351        </a><a href="/cart" class="header__icon header__icon--cart link focus-inset" id="cart-icon-bubble">
4352          
4353            <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-cart-empty" viewBox="0 0 27 28">
4354<path fill-rule="evenodd" clip-rule="evenodd" d="M13.4994 4.66289C12.8131 4.66289 12.155 4.9355 11.6697 5.42075C11.1845 5.906 10.9119 6.56414 10.9119 7.25039V8.71289H16.0869V7.25039C16.0869 6.56414 15.8143 5.906 15.329 5.42075C14.8438 4.9355 14.1856 4.66289 13.4994 4.66289ZM17.6619 8.71289V7.25039C17.6619 6.14643 17.2233 5.08768 16.4427 4.30706C15.6621 3.52644 14.6033 3.08789 13.4994 3.08789C12.3954 3.08789 11.3367 3.52644 10.556 4.30706C9.77541 5.08768 9.33686 6.14643 9.33686 7.25039V8.71289H7.12183M9.33686 10.2879H7.12174C6.91087 10.2879 6.7024 10.3334 6.51079 10.4215C6.31918 10.5095 6.14889 10.638 6.01157 10.798C5.87425 10.958 5.77316 11.1459 5.71524 11.3486C5.65732 11.5513 5.64392 11.7642 5.67595 11.9726C5.67595 11.9726 5.67594 11.9725 5.67595 11.9726L7.08782 21.1436C7.18177 21.7545 7.4913 22.3117 7.96037 22.7141C8.42943 23.1166 9.02706 23.3379 9.64512 23.3379C9.64513 23.3379 9.6451 23.3379 9.64512 23.3379H17.3536C17.9718 23.3381 18.5699 23.1169 19.0392 22.7144C19.5084 22.3119 19.818 21.7547 19.912 21.1437L21.3239 11.9727C21.3239 11.9726 21.3239 11.9727 21.3239 11.9727C21.3559 11.7643 21.3425 11.5513 21.2846 11.3486C21.2267 11.1459 21.1256 10.958 20.9883 10.798C20.851 10.638 20.6807 10.5095 20.4891 10.4215C20.2975 10.3334 20.0891 10.2879 19.8782 10.2879H17.6619V13.6629H16.0869V10.2879H10.9119V13.6629H9.33686V10.2879ZM17.6619 8.71289H19.878C19.8781 8.71289 19.878 8.71289 19.878 8.71289C20.3159 8.71285 20.7488 8.80751 21.1467 8.99037C21.5447 9.17324 21.8984 9.44001 22.1836 9.77238C22.4688 10.1047 22.6787 10.4949 22.799 10.916C22.9193 11.3371 22.9472 11.7792 22.8806 12.2121L21.4687 21.3831C21.4687 21.3831 21.4687 21.383 21.4687 21.3831C21.3175 22.366 20.8194 23.2624 20.0646 23.9099C19.3097 24.5573 18.3481 24.9131 17.3536 24.9129C17.3535 24.9129 17.3537 24.9129 17.3536 24.9129H9.64512C8.65083 24.9128 7.68937 24.5569 6.93478 23.9094C6.
435418021 23.262 5.68231 22.3659 5.53116 21.3832C5.53115 21.3832 5.53117 21.3833 5.53116 21.3832L4.11928 12.2122C4.05271 11.7793 4.08052 11.3371 4.20083 10.916C4.32114 10.4949 4.53109 10.1047 4.81629 9.77238C5.10149 9.44001 5.45518 9.17324 5.85313 8.99037C6.25106 8.80751 6.68391 8.71285 7.12183 8.71289" fill="currentColor"/>
4355</svg>
4356</span>
4357          
4358        <span class="visually-hidden">Cart</span></a>
4359    </div>
4360  </header>
4361</sticky-header>
4362<script type="application/ld+json">
4363  {
4364    "@context": "https://schema.org",
4365    "@type": "Organization",
4366    "@id": "https:\/\/fittes.ca#organization",
4367    "name": "Fittes 🍁",
4368    "url": "https:\/\/fittes.ca",
4369    "logo": "https:\/\/fittes.ca\/cdn\/shop\/files\/Mask_group_97ddf3d5-dd56-4218-80dd-4c12dd719ed5.png?v=1744384378\u0026width=500",
4370    "sameAs": ["https://www.facebook.com/fittes/","https://www.instagram.com/fittes/","https://www.youtube.com/channel/UC6Z3b0jfeKE3KaOuTxUrEog/featured","https://www.tiktok.com/@fittesofficial","https://x.com/fittesco","https://ca.pinterest.com/fittesofficial/","https://www.linkedin.com/company/fittes/"]
4371  }
4372</script>
4372
4373  
4373<script type="application/ld+json">
4374    {
4375      "@context": "https://schema.org",
4376      "@type": "WebSite",
4377      "name": "Fittes 🍁",
4378      "publisher": { "@id": "https:\/\/fittes.ca#organization" },
4379      "potentialAction": {
4380        "@type": "SearchAction",
4381        "target": "https:\/\/fittes.ca\/search?q={search_term_string}",
4382        "query-input": "required name=search_term_string"
4383      },
4384      "url": "https:\/\/fittes.ca"
4385    }
4386  </script>
4386<script>
4387  document.addEventListener('DOMContentLoaded', () => {
4388    const search = document.querySelector('predictive-search');
4389    if (!search) return;
4390
4391    const input = search.querySelector('.field__input');
4392    const panel = search.querySelector('.predictive-search');
4393
4394    if (input) {
4395      input.addEventListener('focus', () => {
4396        search.setAttribute('open', 'true');
4397      });
4398    }
4399
4400    // Keep the input focused while interacting with results,
4401    // so blur doesn't destroy the link before the click lands.
4402    if (panel) {
4403      panel.addEventListener('mousedown', (event) => {
4404        event.preventDefault();
4405      });
4406    }
4407
4408    // Close only when focus genuinely leaves the whole component.
4409    search.addEventListener('focusout', (event) => {
4410      if (!search.contains(event.relatedTarget)) {
4411        search.removeAttribute('open');
4412      }
4413    });
4414  });
4415</script>
4415
4416
4417<style>
4418@media (max-width: 989px) {
4419  #shopify-section-sections--28630589604210__header {
4420    /* Space between the hamburger glyph and the logo. ADJUST this one value. */
4421    --hdr-mobile-logo-gap: 1.2rem;
4422  }
4423
4424  /* hamburger | logo | icons. The logo hugs the hamburger at every width below
4425     990px regardless of the "mobile logo position" theme setting; the icons
4426     column sizes to its content and stays right-aligned. */
4427  #shopify-section-sections--28630589604210__header .header {
4428    grid-template-columns: auto 1fr auto !important;
4429  }
4430  #shopify-section-sections--28630589604210__header .header__heading,
4431  #shopify-section-sections--28630589604210__header .header__heading-link {
4432    justify-self: start !important;
4433    text-align: left !important;
4434  }
4435
4436  /* The hamburger's 4.4rem tap box extends 1rem past its glyph and the logo
4437     link has 0.75rem of padding, so the margin is the desired gap minus both.
4438     Applied to the link only (the homepage wraps it in an h1) so the offset
4439     is identical on every page. */
4440  #shopify-section-sections--28630589604210__header .header__heading {
4441    margin-left: 0 !important;
4442  }
4443  #shopify-section-sections--28630589604210__header .header__heading-link {
4444    margin-left: calc(var(--hdr-mobile-logo-gap) - 1.75rem) !important;
4445  }
4446  #shopify-section-sections--28630589604210__header .header__heading-logo-wrapper {
4447    margin-left: 0 !important;
4448  }
4449}
4450@media (min-width: 990px) {
4451  .header__heading,
4452  .header__heading-link {
4453    flex: 0 0 60px !important;          
4454  }
4455
4456  .header__heading-logo,
4457  .header__heading-logo img {
4458    width: 60px  !important;            
4459    min-width: 60px !important;
4460    max-width: 60px !important;
4461    height: auto !important;
4462    object-fit: contain;
4463  }
4464}
4465</style>
4466
4467<script>
4468(function () {
4469  // Survives inside the bfcache snapshot; true only on pages
4470  // where a cart mutation occurred (i.e., drawer likely open)
4471  let drawerTainted = false;
4472
4473  async function syncHeaderCart() {
4474    try {
4475      const cart = await (await fetch('/cart.js', { cache: 'no-store' })).json();
4476      const bubbleLink = document.getElementById('cart-icon-bubble');
4477      if (!bubbleLink) return;
4478
4479      let bubble = bubbleLink.querySelector('.cart-count-bubble');
4480      if (cart.item_count > 0) {
4481        if (!bubble) {
4482          bubble = document.createElement('div');
4483          bubble.className = 'cart-count-bubble';
4484          bubbleLink.appendChild(bubble);
4485        }
4486        bubble.innerHTML =
4487          (cart.item_count < 100 ? `<span aria-hidden="true">${cart.item_count}</span>` : '') +
4488          `<span class="visually-hidden">${cart.item_count} items</span>`;
4489      } else if (bubble) {
4490        bubble.remove();
4491      }
4492    } catch (e) {
4493      console.warn('Cart sync failed', e);
4494    }
4495  }
4496
4497  // Intercept all cart mutations, irrespective of originating script
4498  const CART_ENDPOINTS = /\/cart\/(add|change|update|clear)(\.js)?/;
4499
4500  const origFetch = window.fetch;
4501  window.fetch = async function (...args) {
4502    const res = await origFetch.apply(this, args);
4503    const url = args[0] instanceof Request ? args[0].url : String(args[0]);
4504    if (CART_ENDPOINTS.test(url) && res.ok) {
4505      drawerTainted = true;
4506      syncHeaderCart();
4507    }
4508    return res;
4509  };
4510
4511  const origOpen = XMLHttpRequest.prototype.open;
4512  XMLHttpRequest.prototype.open = function (method, url, ...rest) {
4513    if (CART_ENDPOINTS.test(url)) {
4514      this.addEventListener('load', () => {
4515        if (this.status >= 200 && this.status < 300) {
4516          drawerTainted = true;
4517          syncHeaderCart();
4518        }
4519      });
4520    }
4521    return origOpen.call(this, method, url, ...rest);
4522  };
4523
4524  // Handle restoration from the back/forward cache
4525  window.addEventListener('pageshow', (event) => {
4526    if (!event.persisted) return;
4527
4528    if (drawerTainted) {
4529      // This snapshot was frozen with the cart drawer open (a cart
4530      // mutation occurred on this page). The drawer lives in a shadow
4531      // DOM / iframe we cannot reach, so discard the snapshot and
4532      // serve a fresh render — drawer closed, counts correct.
4533      location.reload();
4534      return;
4535    }
4536
4537    // Clean snapshot: merely re-synchronize the header bubble
4538    syncHeaderCart();
4539  });
4540})();
4541</script>
4541
4542
4543
4544</div>
4545<!-- END sections: header-group -->
4546
4547    
4548     
4549
4550    
4551
4552    <main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1">
4553      <section id="shopify-section-template--28630587998578__carousel_hb_DVpczF" class="shopify-section section-banner-carousel">
4554
4555<div class="banner-carousel carousel-loading"
4556     id="banner-carousel"
4557     role="region"
4558     aria-roledescription="carousel"
4559     aria-label="Homepage banner"
4560     data-autoplay="true"
4561     data-mobile-height="450px"
4562     data-desktop-height="450px"
4563     data-slide-count="3">
4564
4565  <!-- Slides Container -->
4566  <div class="carousel-slides">
4567    
4568      
4569      <div class="carousel-slide" data-slide-id="1" aria-roledescription="slide" aria-label="Slide 1 of 3" >
4570
4571        
4572          <picture>
4573            
4574              <source media="(min-width: 768px)"
4575                      srcset="//fittes.ca/cdn/shop/files/Clip-in-exhuast-hero.webp?v=1790082003&width=800 800w,
4576                              //fittes.ca/cdn/shop/files/Clip-in-exhuast-hero.webp?v=1790082003&width=1000 1000w,
4577                              //fittes.ca/cdn/shop/files/Clip-in-exhuast-hero.webp?v=1790082003&width=1200 1200w,
4578                              //fittes.ca/cdn/shop/files/Clip-in-exhuast-hero.webp?v=1790082003&width=1400 1400w,
4579                              //fittes.ca/cdn/shop/files/Clip-in-exhuast-hero.webp?v=1790082003&width=1600 1600w,
4580                              //fittes.ca/cdn/shop/files/Clip-in-exhuast-hero.webp?v=1790082003&width=1920 1920w"
4581                      sizes="100vw"
4582                      type="image/webp">
4583            
4584
4585            
4586              <img src="//fittes.ca/cdn/shop/files/mobile-hero-clip-in.webp?v=1790019469&width=750"
4587                   srcset="//fittes.ca/cdn/shop/files/mobile-hero-clip-in.webp?v=1790019469&width=375 375w,
4588                           //fittes.ca/cdn/shop/files/mobile-hero-clip-in.webp?v=1790019469&width=450 450w,
4589                           //fittes.ca/cdn/shop/files/mobile-hero-clip-in.webp?v=1790019469&width=550 550w,
4590                           //fittes.ca/cdn/shop/files/mobile-hero-clip-in.webp?v=1790019469&width=650 650w,
4591                           //fittes.ca/cdn/shop/files/mobile-hero-clip-in.webp?v=1790019469&width=750 750w"
4592                   sizes="100vw"
4593                   alt="Banner image"
4594                   width="1007"
4595                   height="1528"
4596                   loading="eager" fetchpriority="high"
4597                   decoding="async">
4598            
4599          </picture>
4600        
4601
4602        
4603
4604        <div class="carousel-text-overlays">
4605          
4606            
4607              <h2 class="carousel-text carousel-main-title"
4608                  data-secondary-color="#ffd700"
4609                  style="
4610                    --desktop-x: 8%;
4611                    --desktop-y: 35%;
4612                    --desktop-size: 70px;
4613                    --mobile-x: 6%;
4614                    --mobile-y: 18%;
4615                    --mobile-size: 42px;
4616                    color: #1f1f1f;
4617                  ">
4618                PRACTICALLY
4619INVISIBLE
4620              </h2>
4621            
4622          
4623
4624          
4625            <p class="carousel-text carousel-subtext-1"
4626               style="
4627                 --desktop-x: 8%;
4628                 --desktop-y: 64%;
4629                 --desktop-size: 24px;
4630                 --mobile-x: 6%;
4631                 --mobile-y: 100%;
4632                 --mobile-size: 18px;
4633                 color: #1f1f1f;
4634                 
4635               ">
4636              Customizable to any ceiling
4637            </p>
4638          
4639
4640          
4641            <p class="carousel-text carousel-subtext-2"
4642               style="
4643                 --desktop-x: 8%;
4644                 --desktop-y: 17%;
4645                 --desktop-size: 22px;
4646                 --mobile-x: 6%;
4647                 --mobile-y: 7%;
4648                 --mobile-size: 16px;
4649                 color: #e73c3e;
4650                 
4651               ">
4652              MINIMALIST FAN COVER THAT DISAPPEARS
4653            </p>
4654          
4655        </div>
4656
4657        
4658          <div class="carousel-slide-content"
4659               style="
4660                 --button-desktop-x: 8%;
4661                 --button-desktop-y: 82%;
4662                 --button-mobile-x: 6%;
4663                 --button-mobile-y: 44%;
4664               ">
4665            <a href="/pages/clip-in-exhaust"
4666               class="carousel-button"
4667               style="
4668                 background-color: #e73c3e;
4669                 color: #ffffff;
4670                 --btn-desktop-size: 16px;
4671                 --btn-mobile-size: 14px;
4672                 --btn-padding-v: 12px;
4673                 --btn-padding-h: 32px;
4674               ">
4675              LEARN MORE
4676            </a>
4677          </div>
4678        
4679
4680      </div>
4681
4682      
4683      
4684    
4685      
4686      <div class="carousel-slide carousel-slide--rotating" data-sli
4686de-id="2" aria-roledescription="slide" aria-label="Slide 2 of 3" >
4687
4688        
4689          <picture>
4690            
4691              <source media="(min-width: 768px)"
4692                      srcset="//fittes.ca/cdn/shop/files/homepage_gbg.webp?v=1783017350&width=800 800w,
4693                              //fittes.ca/cdn/shop/files/homepage_gbg.webp?v=1783017350&width=1000 1000w,
4694                              //fittes.ca/cdn/shop/files/homepage_gbg.webp?v=1783017350&width=1200 1200w,
4695                              //fittes.ca/cdn/shop/files/homepage_gbg.webp?v=1783017350&width=1400 1400w,
4696                              //fittes.ca/cdn/shop/files/homepage_gbg.webp?v=1783017350&width=1600 1600w,
4697                              //fittes.ca/cdn/shop/files/homepage_gbg.webp?v=1783017350&width=1920 1920w"
4698                      sizes="100vw"
4699                      type="image/webp">
4700            
4701
4702            
4703              <img src="//fittes.ca/cdn/shop/files/homepage_GG_mobile.webp?v=1783017385&width=750"
4704                   srcset="//fittes.ca/cdn/shop/files/homepage_GG_mobile.webp?v=1783017385&width=375 375w,
4705                           //fittes.ca/cdn/shop/files/homepage_GG_mobile.webp?v=1783017385&width=450 450w,
4706                           //fittes.ca/cdn/shop/files/homepage_GG_mobile.webp?v=1783017385&width=550 550w,
4707                           //fittes.ca/cdn/shop/files/homepage_GG_mobile.webp?v=1783017385&width=650 650w,
4708                           //fittes.ca/cdn/shop/files/homepage_GG_mobile.webp?v=1783017385&width=750 750w"
4709                   sizes="100vw"
4710                   alt="Banner image"
4711                   width="1000"
4712                   height="1350"
4713                   loading="lazy" fetchpriority="low"
4714                   decoding="async">
4715            
4716          </picture>
4717        
4718
4719        
4720
4721        <div class="carousel-text-overlays">
4722          
4723            
4724              <h2 class="carousel-text carousel-main-title carousel-rotating-title"
4725                  data-rotation-speed="1500"
4726                  style="
4727                    --desktop-x: 9%;
4728                    --desktop-y: 41%;
4729                    --desktop-size: 98px;
4730                    --mobile-x: 8%;
4731                    --mobile-y: 35%;
4732                    --mobile-size: 64px;
4733                    font-weight: 800;
4734                    letter-spacing: -0.05em;
4735                    font-style: italic;
4736                  ">
4737                <span class="rotating-text is-visible" style="color: #ffffff;">GOODBYE
4738GRILLES</span>
4739                <span class="rotating-text" aria-hidden="true" style="color: #ffff00;">HELLO,
4740SEXY VENTS</span>
4741              </h2>
4742            
4743          
4744
4745          
4746            <p class="carousel-text carousel-subtext-1"
4747               style="
4748                 --desktop-x: 9%;
4749                 --desktop-y: 64%;
4750                 --desktop-size: 28px;
4751                 --mobile-x: 9%;
4752                 --mobile-y: 56%;
4753                 --mobile-size: 22px;
4754                 color: #ffffff;
4755                 font-style: italic;
4756               ">
4757              Explore Our Range
4758            </p>
4759          
4760
4761          
4762        </div>
4763
4764        
4765          <div class="carousel-slide-content"
4766               style="
4767                 --button-desktop-x: 9%;
4768                 --button-desktop-y: 81%;
4769                 --button-mobile-x: 9%;
4770                 --button-mobile-y: 69%;
4771               ">
4772            <a href="/collections/vents"
4773               class="carousel-button"
4774               style="
4775                 background-color: #ffffff;
4776                 color: #e73c3e;
4777                 --btn-desktop-size: 20px;
4778                 --btn-mobile-size: 14px;
4779                 --btn-padding-v: 10px;
4780                 --btn-padding-h: 30px;
4781               ">
4782              SHOP VENTS
4783            </a>
4784          </div>
4785        
4786
4787      </div>
4788
4789      
4790      
4791    
4792      
4793      <div class="carousel-slide" data-slide-id="3" aria-roledescription="slide" aria-label="Slide 3 of 3" >
4794
4795        
4796          <picture>
4797            
4798              <source media="(min-width: 768px)"
4799                      srcset="//fittes.ca/cdn/shop/files/MAINHERO_WALLVENT_FITTES.jpg?format=webp&v=1763996504&width=800 800w,
4800                              //fittes.ca/cdn/shop/files/MAINHERO_WALLVENT_FITTES.jpg?format=webp&v=1763996504&width=1000 1000w,
4801                              //fittes.ca/cdn/shop/files/MAINHERO_WALLVENT_FITTES.jpg?format=webp&v=1763996504&width=1200 1200w,
4802                              //fittes.ca/cdn/shop/files/MAINHERO_WALLVENT_FITTES.jpg?format=webp&v=1763996504&width=1400 1400w,
4803                              //fittes.ca/cdn/shop/files/MAINHERO_WALLVENT_FITTES.jpg?format=webp&v=1763996504&width=1600 1600w,
4804                              //fittes.ca/cdn/shop/files/MAINHERO_WALLVENT_FITTES.jpg?format=webp&v=1763996504&width=1920 1920w"
4805                      sizes="100vw"
4806                      type="image/webp">
4807            
4808
4809            
4810              <img src="//fittes.ca/cdn/shop/files/MOBILE_HERO_BANNER_WALL_VENTS_1.webp?v=1771859922&width=750"
4811                   srcset="//fittes.ca/cdn/shop/files/MOBILE_HERO_BANNER_WALL_VENTS_1.webp?v=1771859922&width=375 375w,
4812                           //fittes.ca/cdn/shop/files/MOBILE_HERO_BANNER_WALL_VENTS_1.webp?v=1771859922&width=450 450w,
4813                           //fittes.ca/cdn/shop/files/MOBILE_HERO_BANNER_WALL_VENTS_1.webp?v=1771859922&width=550 550w,
4814                           //fittes.ca/cdn/shop/files/MOBILE_HERO_BANNER_WALL_VENTS_1.webp?v=1771859922&width=650 650w,
4815                           //fittes.ca/cdn/shop/files/MOBILE_HERO_BANNER_WALL_VENTS_1.webp?v=1771859922&width=750 750w"
4816                   sizes="100vw"
4817                   alt="Banner image"
4818                   width="1531"
4819                   height="1937"
4820                   loading="lazy" fetchpriority="low"
4821                   decoding="async">
4822            
4823          </picture>
4824        
4825
4826        
4827
4828        <div class="carousel-text-overlays">
4829          
4830            
4831              <h2 class="carousel-text carousel-main-title"
4832                  data-secondary-color="#ffd700"
4833                  style="
4834                    --desktop-x: 10%;
4835                    --desktop-y: 34%;
4836                    --desktop-size: 60px;
4837                    --mobile-x: 4%;
4838                    --mobile-y: 29%;
4839                    --mobile-size: 30px;
4840                    color: #ffffff;
4841                  ">
4842                Fittes makes it easy to
4843upgrade your space
4844              </h2>
4845            
4846          
4847
4848          
4849
4850          
4851            <p class="carousel-text carousel-subtext-2"
4852               style="
4853                 --desktop-x: 10%;
4854                 --desktop-y: 20%;
4855                 --desktop-size: 20px;
4856                 --mobile-x: 4%;
4857                 --mobile-y: 19%;
4858                 --mobile-size: 16px;
4859                 color: #ffffff;
4860                 
4861               ">
4862              Small Detail. Huge Impact.
4863            </p>
4864          
4865        </div>
4866
4867        
4868          <div class="carousel-slide-content"
4869               style="
4870                 --button-desktop-x: 10%;
4871                 --button-desktop-y: 69%;
4872                 --button-mobile-x: 4%;
4873                 --button-mobile-y: 51%;
4874               ">
4875            <a href="/collections/wall-vent"
4876               class="carousel-button"
4877               style="
4878                 background-color: #e73c3e;
4879                 color: #ffffff;
4880                 --btn-desktop-size: 16px;
4881                 --btn-mobile-size: 14px;
4882                 --btn-padding-v: 12px;
4883                 --btn-padding-h: 32px;
4884               ">
4885              SHOP WALL VENTS
4886            </a>
4887          </div>
4888        
4889
4890      </div>
4891
4892      
4893      
4894    
4895  </div>
4896
4897  
4898    <button class="carousel-arrow carousel-prev" aria-label="Previous slide">
4899      <svg width="32" height="32" fill="none" stroke="currentColor" viewBox="0 0 24 24">
4900        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M15 19l-7-7 7-7" />
4901      </svg>
4902    </button>
4903
4904    <button class="carousel-arrow carousel-next" aria-label="Next slide">
4905      <svg width="32" height="32" fill="none" stroke="currentColor" viewBox="0 0 24 24">
4906        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M9 5l7 7-7 7" />
4907      </svg>
4908    </button>
4909
4910        <div class="carousel-bottom-bar">
4911      <div class="carousel-dots">
4912        
4913          <button class="carousel-dot active"
4914                  aria-label="Go to slide 1"
4915                  aria-current="true"></button>
4916        
4917          <button class="carousel-dot"
4918                  aria-label="Go to slide 2"
4919                  ></button>
4920        
4921          <button class="carousel-dot"
4922                  aria-label="Go to slide 3"
4923                  ></button>
4924        
4925      </div>
4926    </div>
4927  
4928</div>
4929
4930<style>
4931  .banner-carousel {
4932    position: relative;
4933    width: 100%;
4934    height: calc(450px + 40px);
4935    overflow: hidden;
4936    background: #000;
4937    contain: layout style paint;
4938  }
4939
4940  .banner-carousel.single-slide {
4941    height: 450px;
4942  }
4943
4944  @media (min-width: 768px) {
4945    .banner-carousel {
4946      height: calc(450px + 40px);
4947    }
4948    .banner-carousel.single-slide {
4949      height: 450px;
4950    }
4951  }
4952
4953  .carousel-slides {
4954    position: relative;
4955    height: calc(100% - 40px);
4956    width: 100%;
4957  }
4958
4959  .banner-carousel.single-slide .carousel-slides {
4960    height: 100%;
4961  }
4962
4963  .carousel-slide {
4964    position: absolute;
4965    top: 0;
4966    left: 0;
4967    width: 100%;
4968    height: 100%;
4969    opacity: 0;
4970    transition: opacity 1000ms cubic-bezier(0.25, 0.1, 0.25, 1);
4971    pointer-events: none;
4972    contain: layout style paint;
4973  }
4974
4975  .carousel-loading .carousel-slide:first-child,
4976  .banner-carousel.single-slide .carousel-slide {
4977    opacity: 1;
4978    pointer-events: auto;
4979  }
4980
4981  .carousel-slide.active {
4982    opacity: 1;
4983    pointer-events: auto;
4984  }
4985
4986  .carousel-slide.active,
4987  .carousel-slide.transitioning {
4988    will-change: opacity;
4989  }
4990
4991  .carousel-slide-link {
4992    display: block;
4993    width: 100%;
4994    height: 100%;
4995    text-decoration: none;
4996    position: absolute;
4997    top: 0;
4998    left: 0;
4999    z-index: 1;
5000  }
5001
5002  .carousel-slide picture {
5003    display: block;
5004    width: 100%;
5005    height: 100%;
5006  }
5007
5008  .carousel-slide picture img {
5009    width: 100%;
5010    height: 100%;
5011    object-fit: cover;
5012    display: block;
5013  }
5014
5015/* ── Overlay image: independent fixed px for mobile & desktop ── */
5016  .carousel-overlay-image {
5017    position: absolute;
5018    transform: translateY(-50%);
5019    z-index: 3;
5020    pointer-events: none;
5021    left: var(--overlay-mobile-x);
5022    top: var(--overlay-mobile-y);
5023    width: var(--overlay-mobile-width);
5024  }
5025
5026  @media (min-width: 768px) {
5027    .carousel-overlay-image {
5028      left: var(--overlay-desktop-x);
5029      top: var(--overlay-desktop-y);
5030      width: var(--overlay-desktop-width);
5031    }
5032  }
5033
5034  .carousel-overlay-image img {
5035    width: 100%;
5036    height: auto;
5037    display: block;
5038    object-fit: contain;
5039  }
5040
5041  .carousel-text-overlays {
5042    position: absolute;
5043    top: 0;
5044    left: 0;
5045    width: 100%;
5046    height: 100%;
5047    pointer-events: none;
5048    z-index: 5;
5049  }
5050
5051  .carousel-text {
5052    position: absolute;
5053    transform: translateY(-50%);
5054    margin: 0;
5055    padding: 0;
5056    line-height: 1.2;
5057    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
5058    white-space: pre-line;
5059    text-align: left;
5060    left: var(--mobile-x);
5061    top: var(--mobile-y);
5062    font-size: var(--mobile-size);
5063  }
5064
5065  @media (min-width: 768px) {
5066    .carousel-text {
5067      left: var(--desktop-x);
5068      top: var(--desktop-y);
5069      font-size: var(--desktop-size);
5070    }
5071  }
5072
5073  @media (min-width: 768px) and (max-width: 1199px) {
5074    .carousel-text {
5075      font-size: calc(var(--desktop-size) * 0.85);
5076    }
5077  }
5078
5079  @media (min-width: 1921px) {
5080    .carousel-text {
5081      font-size: calc(var(--desktop-size) * 1.1);
5082    }
5083  }
5084
5085  .carousel-main-title {
5086    font-family: 'Outfit', sans-serif;
5087    font-weight: 700;
5088    font-display: swap;
5089  }
5090
5091  .carousel-main-title .quoted-text {
5092    display: inline;
5093  }
5094
5095  /* ── Rotating title: stacked, cross-fading text layers ── */
5096  .carousel-rotating-title {
5097    display: grid;
5098    /* 0.95 halves the visible gap between wrapped lines relative to the
5099       base 1.2 used elsewhere; single-line titles are unaffected. */
5100    line-height: 0.95;
5101  }
5102
5103  .carousel-rotating-title .rotating-text {
5104    grid-area: 1 / 1;
5105    opacity: 0;
5106    transition: opacity 0.6s ease;
5107    white-space: pre-line;
5108  }
5109
5110  .carousel-rotating-title .rotating-text.is-visible {
5111    opacity: 1;
5112  }
5113
5114  @media (prefers-reduced-motion: reduce) {
5115    .carousel-rotating-title .rotating-text {
5116      transition: none;
5117    }
5118  }
5119
5120  .carousel-subtext-1 {
5121    font-family: 'Lora', serif;
5122    font-weight: 400;
5123    font-display: swap;
5124  }
5125
5126  .carousel-subtext-2 {
5127    font-family: 'Outfit', sans-serif;
5128    font-weight: 500;
5129    font-display: swap;
5130    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
5131  }
5132
5133  /* ── Rotating slide: lighter text weights ──
5134     The title's weight comes from the schema range (default now 600);
5135     these rules thin the two subtexts relative to the base 400/500
5136     used on the static slide. Weights render only if the theme loads
5137     them for the respective fonts. ── */
5138  .carousel-slide--rotating .carousel-subtext-1 {
5139    font-weight: 300;
5140  }
5141
5142  .carousel-slide--rotating .carousel-subtext-2 {
5143    font-weight: 400;
5144  }
5145
5146  .carousel-top-text {
5147    font-family: 'Outfit', sans-serif;
5148    font-weight: 700;
5149    font-style: italic;
5150    text-transform: uppercase;
5151    letter-spacing: 0.02em;
5152    font-display: swap;
5153  }
5154
5155  /* ── Triptych text colours: resolved per breakpoint from the
5156     desktop/mobile variables set inline on each element. The active
5157     colour is assigned in the stylesheet (not inline) so the media
5158     query can switch it. ── */
5159  .carousel-slide--triptych .carousel-text {
5160    color: var(--text-color-mobile, #ffffff);
5161    --quote-color: var(--quote-color-mobile, #ffffff);
5162  }
5163
5164  @media (min-width: 768px) {
5165    .carousel-slide--triptych .carousel-text {
5166      color: var(--text-color-desktop, #ffffff);
5167      --quote-color: var(--quote-color-desktop, #ffffff);
5168    }
5169  }
5170
5171  /* ── Triptych layout: three panels desktop, video-only mobile ──
5172     Grid tracks are defined on the container so panel widths cannot
5173     be collapsed by theme-level CSS acting on the children. ── */
5174  .triptych-panels {
5175    display: grid;
5176    grid-template-columns: minmax(0, 1fr); /* mobile: middle panel only */
5177    grid-template-rows: 100%;
5178    width: 100%;
5179    height: 100%;
5180  }
5181
5182  .triptych-panel {
5183    position: relative;
5184    height: 100%;
5185    width: 100%;
5186    min-width: 0;
5187    overflow: hidden;
5188  }
5189
5190  .triptych-left,
5191  .triptych-right {
5192    display: none;
5193  }
5194
5195  .triptych-middle {
5196    grid-column: 1;
5197    grid-row: 1;
5198    background: #111;
5199  }
5200
5201  @media (min-width: 768px) {
5202    .triptych-panels {
5203      grid-template-columns:
5204        var(--left-width-desktop, 33%)
5205        var(--middle-width-desktop, 34%)
5206        minmax(0, 1fr);
5207      /* Fail-safe: the container itself is painted the left-panel colour,
5208         so track 1 shows it even if the left div is suppressed by theme CSS. */
5209      background-color: var(--left-bg, #e35d54);
5210    }
5211    .triptych-left {
5212      display: block;
5213      grid-column: 1;
5214      grid-row: 1;
5215      background-color: var(--left-bg, #e35d54);
5216    }
5217    .triptych-middle {
5218      grid-column: 2;
5219      grid-row: 1;
5220    }
5221    .triptych-right {
5222      display: block;
5223      grid-column: 3;
5224      grid-row: 1;
5225    }
5226  }
5227
5228  .triptych-video-wrap {
5229    position: absolute;
5230    inset: 0;
5231  }
5232
5233  .triptych-fallback,
5234  .triptych-video {
5235    position: absolute;
5236    inset: 0;
5237    width: 100%;
5238    height: 100%;
5239    object-fit: cover;
5240    display: block;
5241  }
5242
5243  .triptych-video {
5244    opacity: 0;
5245    transition: opacity 0.5s ease;
5246  }
5247
5248  .triptych-video-wrap.video-ready .triptych-video {
5249    opacity: 1;
5250  }
5251
5252  .triptych-right img {
5253    position: absolute;
5254    inset: 0;
5255    width: 100%;
5256    height: 100%;
5257    object-fit: cover;
5258    display: block;
5259  }
5260
5261  .carousel-slide-content {
5262    position: absolute;
5263    transform: translateY(-50%);
5264    z-index: 100;
5265    left: var(--button-mobile-x);
5266    top: var(--button-mobile-y);
5267  }
5268
5269  @media (min-width: 768px) {
5270    .carousel-slide-content {
5271      left: var(--button
5271-desktop-x);
5272      top: var(--button-desktop-y);
5273    }
5274  }
5275
5276  /* ── Button: sizes driven by CSS vars from schema ── */
5277  .carousel-button {
5278    display: inline-block;
5279    padding: var(--btn-padding-v) var(--btn-padding-h);
5280    background: #fff;
5281    color: #1a1a1a;
5282    text-decoration: none;
5283    border-radius: 4px;
5284    font-weight: 720;
5285    font-size: var(--btn-mobile-size);
5286    transition: transform 0.2s ease, box-shadow 0.2s ease;
5287    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
5288    white-space: nowrap;
5289  }
5290
5291  @media (min-width: 768px) {
5292    .carousel-button {
5293      font-size: var(--btn-desktop-size);
5294    }
5295  }
5296
5297  @media (min-width: 768px) and (max-width: 1199px) {
5298    .carousel-button {
5299      font-size: calc(var(--btn-desktop-size) * 0.85);
5300      padding: calc(var(--btn-padding-v) * 0.85) calc(var(--btn-padding-h) * 0.85);
5301    }
5302  }
5303
5304  @media (min-width: 1921px) {
5305    .carousel-button {
5306      font-size: calc(var(--btn-desktop-size) * 1.1);
5307      padding: calc(var(--btn-padding-v) * 1.1) calc(var(--btn-padding-h) * 1.1);
5308    }
5309  }
5310
5311  @media (hover: hover) {
5312    .carousel-button:hover {
5313      transform: translateY(-2px);
5314      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
5315    }
5316  }
5317
5318  .carousel-arrow {
5319    position: absolute;
5320    top: 50%;
5321    transform: translateY(-50%);
5322    z-index: 10;
5323    background: transparent;
5324    color: #fff;
5325    border: none;
5326    padding: 0;
5327    width: 32px;
5328    height: 32px;
5329    display: none;
5330    align-items: center;
5331    justify-content: center;
5332    cursor: pointer;
5333    transition: transform 0.2s ease;
5334    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.5));
5335  }
5336
5337  @media (min-width: 768px) {
5338    .carousel-arrow {
5339      display: flex;
5340    }
5341  }
5342
5343  @media (hover: hover) {
5344    .carousel-arrow:hover {
5345      transform: translateY(-50%) scale(1.3);
5346    }
5347  }
5348
5349  .carousel-arrow:focus {
5350    outline: none;
5351  }
5352
5353  .carousel-arrow:focus-visible {
5354    outline: 2px solid #fff;
5355    outline-offset: 2px;
5356  }
5357
5358  .carousel-prev { left: 20px; }
5359  .carousel-next { right: 20px; }
5360
5361  .carousel-bottom-bar {
5362    position: absolute;
5363    bottom: 0;
5364    left: 0;
5365    width: 100%;
5366    height: 40px;
5367    background: #ffffff;
5368    display: flex;
5369    align-items: center;
5370    justify-content: center;
5371    z-index: 10;
5372  }
5373
5374  .carousel-dots {
5375    display: flex;
5376    gap: 8px;
5377    align-items: center;
5378  }
5379
5380  .carousel-dot {
5381    width: 24px;
5382    height: 3px;
5383    border-radius: 0;
5384    background: #9ca3af;
5385    border: none;
5386    cursor: pointer;
5387    transition: background-color 0.3s ease;
5388    padding: 0;
5389  }
5390
5391  @media (min-width: 768px) {
5392    .carousel-dot {
5393      width: 48px;
5394    }
5395  }
5396
5397  @media (hover: hover) {
5398    .carousel-dot:hover {
5399      background: #6b7280;
5400    }
5401  }
5402
5403  .carousel-dot.active {
5404    background: #1a1a1a;
5405  }
5406
5407  .carousel-dot:focus {
5408    outline: none;
5409  }
5410
5411  .carousel-dot:focus-visible {
5412    outline: 2px solid #1a1a1a;
5413    outline-offset: 2px;
5414  }
5415</style>
5416
5417<script>
5418(function() {
5419  'use strict';
5420
5421  const carousel = document.getElementById('banner-carousel');
5422  if (!carousel) return;
5423
5424  const slides = carousel.querySelectorAll('.carousel-slide');
5425  const slideCount = slides.length;
5426  if (slideCount === 0) return;
5427
5428  const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
5429
5430  let currentSlide = 0;
5431  let carouselVisible = false;
5432  let autoplayTimer = null;
5433
5434  /* ── Quoted-text secondary colour (static titles only) ── */
5435  function processQuotedText() {
5436    const titles = carousel.querySelectorAll('.carousel-main-title:not(.carousel-rotating-title)');
5437    titles.forEach(title => {
5438      const secondaryColor = title.getAttribute('data-secondary-color');
5439      if (!secondaryColor) return;
5440      const text = title.textContent;
5441      const parts = text.split(/("(?:[^"\\]|\\.)*")/g);
5442      title.textContent = '';
5443      parts.forEach(part => {
5444        if (part.startsWith('"') && part.endsWith('"')) {
5445          const span = document.createElement('span');
5446          span.className = 'quoted-text';
5447          span.style.color = secondaryColor;
5448          span.textContent = part.slice(1, -1);
5449          title.appendChild(span);
5450        } else if (part) {
5451          title.appendChild(document.createTextNode(part));
5452        }
5453      });
5454    });
5455  }
5456
5457  /* ── Rotating titles: interval per title, active slide only ── */
5458  const rotationTimers = new Map();
5459
5460  function startRotation(slide) {
5461    slide.querySelectorAll('.carousel-rotating-title').forEach(title => {
5462      if (rotationTimers.has(title)) return;
5463      const spans = title.querySelectorAll('.rotating-text');
5464      if (spans.length < 2) return;
5465      const speed = Math.max(parseInt(title.dataset.rotationSpeed, 10) || 3500, 1000);
5466      const timer = setInterval(() => {
5467        spans.forEach(span => {
5468          const visible = span.classList.toggle('is-visible');
5469          span.setAttribute('aria-hidden', !visible);
5470        });
5471      }, speed);
5472      rotationTimers.set(title, timer);
5473    });
5474  }
5475
5476  function stopRotation(slide) {
5477    slide.querySelectorAll('.carousel-rotating-title').forEach(title => {
5478      const timer = rotationTimers.get(title);
5479      if (timer) {
5480        clearInterval(timer);
5481        rotationTimers.delete(title);
5482      }
5483    });
5484  }
5485
5486  /* ── Triptych videos: deferred load, play only when active + visible ── */
5487  function loadVideo(video) {
5488    if (video.dataset.loaded) return;
5489    video.dataset.loaded = 'true';
5490    video.querySelectorAll('source[data-src]').forEach(source => {
5491      source.src = source.dataset.src;
5492    });
5493    video.addEventListener('playing', () => {
5494      const wrap = video.closest('.triptych-video-wrap');
5495      if (wrap) wrap.classList.add('video-ready');
5496    }, { once: true });
5497    video.addEventListener('error', () => {
5498      const wrap = video.closest('.triptych-video-wrap');
5499      if (wrap) wrap.classList.remove('video-ready');
5500    });
5501    video.load();
5502  }
5503
5504  function playSlideVideo(slide) {
5505    const video = slide.querySelector('.triptych-video');
5506    if (!video || prefersReducedMotion) return;
5507    loadVideo(video);
5508    const attempt = video.play();
5509    if (attempt && typeof attempt.catch === 'function') {
5510      attempt.catch(() => { /* autoplay blocked — fallback image remains visible */ });
5511    }
5512  }
5513
5514  function pauseSlideVideo(slide) {
5515    const video = slide.querySelector('.triptych-video');
5516    if (video && !video.paused) video.pause();
5517  }
5518
5519  function activateSlideMedia(slide) {
5520    playSlideVideo(slide);
5521    startRotation(slide);
5522  }
5523
5524  function deactivateSlideMedia(slide) {
5525    pauseSlideVideo(slide);
5526    stopRotation(slide);
5527  }
5528
5529  function pauseAllMedia() {
5530    slides.forEach(deactivateSlideMedia);
5531  }
5532
5533  processQuotedText();
5534
5535  /* ── Visibility management: no media work while off-screen or tab hidden ── */
5536  let keyboardListenerActive = false;
5537
5538  const observer = new IntersectionObserver((entries) => {
5539    entries.forEach(entry => {
5540      carouselVisible = entry.isIntersecting;
5541      if (entry.isIntersecting) {
5542        activateSlideMedia(slides[currentSlide]);
5543        if (slideCount > 1 && !keyboardListenerActive) {
5544          window.addEventListener('keydown', handleKeyDown);
5545          keyboardListenerActive = true;
5546        }
5547      } else {
5548        pauseAllMedia();
5549        if (keyboardListenerActive) {
5550          window.removeEventListener('keydown', handleKeyDown);
5551          keyboardListenerActive = false;
5552        }
5553      }
5554    });
5555  }, { threshold: 0.5 });
5556
5557  observer.observe(carousel);
5558
5559  document.addEventListener('visibilitychange', () => {
5560    if (document.hidden) {
5561      pauseAllMedia();
5562    } else if (carouselVisible) {
5563      activateSlideMedia(slides[currentSlide]);
5564    }
5565  });
5566
5567  window.addEventListener('beforeunload', () => {
5568    if (autoplayTimer) clearTimeout(autoplayTimer);
5569    rotationTimers.forEach(timer => clearInterval(timer));
5570    rotationTimers.clear();
5571    observer.disconnect();
5572  });
5573
5574  /* ── Single-slide mode: activate media, skip navigation ── */
5575  if (slideCount <= 1) {
5576    slides[0].classList.add('active');
5577    return;
5578  }
5579
5580  carousel.classList.remove('carousel-loading');
5581
5582  const dotsContainer = carousel.querySelector('.carousel-dots');
5583  const prevButton = carousel.querySelector('.carousel-prev');
5584  const nextButton = carousel.querySelector('.carousel-next');
5585  const autoplay = carousel.dataset.autoplay === 'true';
5586
5587  let hasInteracted = false;
5588  let touchStartX = 0;
5589  let touchEndX = 0;
5590  let isTransitioning = false;
5591
5592    const dots = carousel.querySelectorAll('.carousel-dot');
5593  dots.forEach((dot, index) => {
5594    dot.addEventListener('click', () => goToSlide(index), { passive: true });
5595  });
5596
5597  function updateSlide(index) {
5598    if (isTransitioning) return;
5599    isTransitioning = true;
5600    const previousSlide = currentSlide;
5601    currentSlide = index;
5602
5603    deactivateSlideMedia(slides[previousSlide]);
5604    if (carouselVisible && !document.hidden) {
5605      activateSlideMedia(slides[currentSlide]);
5606    }
5607
5608    slides[previousSlide].classList.add('transitioning');
5609    slides[currentSlide].classList.add('transitioning');
5610
5611    requestAnimationFrame(() => {
5612      slides.forEach((slide, i) => {
5613        slide.classList.toggle('active', i === currentSlide);
5614        slide.setAttribute('aria-hidden', i !== currentSlide);
5615      });
5616      dots.forEach((dot, i) => {
5617        dot.classList.toggle('active', i === currentSlide);
5618        dot.setAttribute('aria-current', i === currentSlide);
5619      });
5620    });
5621
5622    setTimeout(() => {
5623      slides[previousSlide].classList.remove('transitioning');
5624      slides[currentSlide].classList.remove('transitioning');
5625      isTransitioning = false;
5626    }, 1000);
5627  }
5628
5629  function startAutoplay() {
5630    if (!autoplay) return;
5631    const delay = hasInteracted
5632      ? 7500
5633      : 6000;
5634    if (autoplayTimer) clearTimeout(autoplayTimer);
5635    autoplayTimer = setTimeout(() => {
5636      updateSlide((currentSlide + 1) % slides.length);
5637      startAutoplay();
5638    }, delay);
5639  }
5640
5641  function goToSlide(index) {
5642    if (index === currentSlide) return;
5643    hasInteracted = true;
5644    updateSlide(index);
5645    startAutoplay();
5646  }
5647
5648  function nextSlide() {
5649    hasInteracted = true;
5650    updateSlide((currentSlide + 1) % slides.length);
5651    startAutoplay();
5652  }
5653
5654  function prevSlide() {
5655    hasInteracted = true;
5656    updateSlide((currentSlide - 1 + slides.length) % slides.length);
5657    startAutoplay();
5658  }
5659
5660  function handleTouchStart(e) { touchStartX = e.touches[0].clientX; }
5661  function handleTouchMove(e) { touchEndX = e.touches[0].clientX; }
5662  function handleTouchEnd() {
5663    if (!touchStartX || !touchEndX) return;
5664    const distance = touchStartX - touchEndX;
5665    if (Math.abs(distance) > 50) {
5666      distance > 0 ? nextSlide() : prevSlide();
5667    }
5668    touchStartX = 0;
5669    touchEndX = 0;
5670  }
5671
5672  function handleKeyDown(e) {
5673    if (e.key === 'ArrowLeft') { e.preventDefault(); prevSlide(); }
5674    if (e.key === 'ArrowRight') { e.preventDefault(); nextSlide(); }
5675  }
5676
5677  if (prevButton && nextButton) {
5678    prevButton.addEventListener('click', prevSlide, { passive: true });
5679    nextButton.addEventListener('click', nextSlide, { passive: true });
5680  }
5681
5682  carousel.addEventListener('touchstart', handleTouchStart, { passive: true });
5683  carousel.addEventListener('touchmove', handleTouchMove, { passive: true });
5684  carousel.addEventListener('touchend', handleTouchEnd, { passive: true });
5685
5686    updateSlide(0);
5687  startAutoplay();
5688})();
5689</script>
5689
5690
5691
5692
5693</section><section id="shopify-section-template--28630587998578__producthomepage_sbr_GxFWVF" class="shopify-section section-shop-by-room"><style>
5694  /* Universal box-sizing */
5695  #shop-by-room-template--28630587998578__producthomepage_sbr_GxFWVF *,
5696  #shop-by-room-template--28630587998578__producthomepage_sbr_GxFWVF *::before,
5697  #shop-by-room-template--28630587998578__producthomepage_sbr_GxFWVF *::after { box-sizing: border-box; }
5698
5699  #shop-by-room-template--28630587998578__producthomepage_sbr_GxFWVF {
5700    margin: 0;
5701    padding: 40px 0 40px;
5702    text-align: center;
5703    font-family: inherit;
5704    background-color: #ffffff;
5705    overflow-x: hidden;
5706  }
5707
5708  #shop-by-room-template--28630587998578__producthomepage_sbr_GxFWVF h2 {
5709    font-size: clamp(28px, 4vw, 42px);
5710    margin: 0 0 8px;
5711    font-weight: 700;
5712    letter-spacing: .02em;
5713    color: #000000;
5714  }
5715
5716  #shop-by-room-template--28630587998578__producthomepage_sbr_GxFWVF .room-banner-subtext {
5717    margin: 0 0 24px;
5718    font-size: clamp(14px, 2.2vw, 18px);
5719    color: #444444;
5720    line-height: 1.4;
5721  }
5722
5723  /* Desktop & tablet grid */
5724  #shop-by-room-template--28630587998578__producthomepage_sbr_GxFWVF .room-grid {
5725    position: relative;
5726    width: 100%;
5727    display: grid;
5728    grid-template-columns: repeat(4, 1fr);
5729    gap: 0;
5730    overflow: hidden;
5731  }
5732  @media (max-width: 991px) {
5733    #shop-by-room-template--28630587998578__producthomepage_sbr_GxFWVF .room-grid {
5734      grid-template-columns: repeat(2, 1fr);
5735    }
5736  }
5737
5738  /* Mobile 2-column grid */
5739  @media (max-width: 575px) {
5740    #shop-by-room-template--28630587998578__producthomepage_sbr_GxFWVF .room-banner-subtext {
5741      padding: 0 16px;
5742    }
5743    #shop-by-room-template--28630587998578__producthomepage_sbr_GxFWVF .room-grid {
5744      display: grid;
5745      grid-template-columns: repeat(2, 1fr);
5746      width: 100%;
5747      gap: 0;
5748    }
5749  }
5750
5751  /* Tile styling with half-pixel overlap to prevent gaps */
5752  #shop-by-room-template--28630587998578__producthomepage_sbr_GxFWVF .room-tile {
5753    position: relative;
5754    display: block;
5755    overflow: hidden;
5756    height: 0;
5757    padding-bottom: 100%;
5758    margin: -0.5px;
5759  }
5760  #shop-by-room-template--28630587998578__producthomepage_sbr_GxFWVF .room-tile img {
5761    position: absolute;
5762    inset: -0.5px;
5763    width: calc(100% + 1px);
5764    height: calc(100% + 1px);
5765    object-fit: cover;
5766    object-position: center;
5767  }
5768  #shop-by-room-template--28630587998578__producthomepage_sbr_GxFWVF .room-tile span {
5769    position: absolute;
5770    left: 12px;
5771    top: 12px;
5772    font-size: clamp(14px, 3vw, 22px);
5773    font-weight: 700;
5774    color: #ffffff;
5775    letter-spacing: .05em;
5776    text-shadow: 0 0 8px rgba(0, 0, 0, .75), 0 1px 2px rgba(0, 0, 0, .5);
5777  }
5778  @media (max-width: 575px) {
5779    #shop-by-room-template--28630587998578__producthomepage_sbr_GxFWVF .room-tile span {
5780      font-size: clamp(17.5px, 3.75vw, 27.5px);
5781    }
5782  }
5783
5784  /* CTA button */
5785  #shop-by-room-template--28630587998578__producthomepage_sbr_GxFWVF .btn-all {
5786    display: inline-block;
5787    margin: 32px auto 0;
5788    padding: 12px 40px;
5789    font-size: 18px;
5790    font-weight: 700;
5791    color: #ffffff;
5792    background: #e73c3e;
5793    text-decoration: none;
5794    border: none;
5795    border-radius: 6px;
5796    box-shadow: 0 4px 8px rgba(0, 0, 0, .15);
5797    transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
5798  }
5799  #shop-by-room-template--28630587998578__producthomepage_sbr_GxFWVF .btn-all:hover {
5800    background: #c63c3c;
5801    transform: translateY(-3px) scale(1.04);
5802    box-shadow: 0 8px 16px rgba(0, 0, 0, .25);
5803  }
5804
5805  /* Safari on iPad z-index fix */
5806  @media (min-width: 576px) and (max-width: 991px) {
5807    #shop-by-room-template--28630587998578__producthomepage_sbr_GxFWVF .room-tile img { z-index: 0; }
5808    #shop-by-room-template--28630587998578__producthomepage_sbr_GxFWVF .room-tile span { z-index: 1; }
5809  }
5810</style>
5811
5812<section id="shop-by-room-template--28630587998578__producthomepage_sbr_GxFWVF" class="room-banner"><h2>SHOP BY ROOM</h2><p class="room-banner-subtext">Vents, mounts, niches and receptacles to elevate every corner of your home</p><div class="room-grid"><a href="/collections/bathroom"
5813           class="room-tile"
5814           aria-label="Shop BATHROOM"
5815           ><img src="//fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Bathroom.webp?v=1777311845&width=720"
5816                 srcset="//fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Bathroom.webp?v=1777311845&width=360 360w, //fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Bathroom.webp?v=1777311845&width=480 480w, //fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Bathroom.webp?v=1777311845&width=600 600w, //fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Bathroom.webp?v=1777311845&width=720 720w, //fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Bathroom.webp?v=1777311845&width=960 960w, //fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Bathroom.webp?v=1777311845&width=1200 1200w"
5817                 sizes="(max-width:575px) 50vw, (max-width:991px) 50vw, 25vw"
5818                 width="960"
5819                 height="960"
5820                 loading="eager"
5821                 decoding="async"
5822                 alt="BATHROOM" /><span>BATHROOM</span></a><a href="/collections/living-room"
5823           class="room-tile"
5824           aria-label="Shop LIVING"
5825           ><img src="//fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Living.webp?v=1777311865&width=720"
5826                 srcset="//fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Living.webp?v=1777311865&width=360 360w, //fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Living.webp?v=1777311865&width=480 480w, //fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Living.webp?v=1777311865&width=600 600w, //fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Living.webp?v=1777311865&width=720 720w, //fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Living.webp?v=1777311865&width=960 960w, //fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Living.webp?v=1777311865&width=1200 1200w"
5827                 sizes="(max-width:575px) 50vw, (max-width:991px) 50vw, 25vw"
5828                 width="960"
5829                 height="960"
5830                 loading="lazy"
5831                 decoding="async"
5832                 alt="LIVING" /><span>LIVING</span></a><a href="/collections/kitchen"
5833           class="room-tile"
5834           aria-label="Shop KITCHEN"
5835           ><img src="//fittes.ca/cdn/shop/files/Shop_ByRoom_Kitchen.jpg?v=1777312295&width=720"
5836                 srcset="//fittes.ca/cdn/shop/files/Shop_ByRoom_Kitchen.jpg?v=1777312295&width=360 360w, //fittes.ca/cdn/shop/files/Shop_ByRoom_Kitchen.jpg?v=1777312295&width=480 480w, //fittes.ca/cdn/shop/files/Shop_ByRoom_Kitchen.jpg?v=1777312295&width=600 600w, //fittes.ca/cdn/shop/files/Shop_ByRoom_Kitchen.jpg?v=1777312295&width=720 720w, //fittes.ca/cdn/shop/files/Shop_ByRoom_Kitchen.jpg?v=1777312295&width=960 960w, //fittes.ca/cdn/shop/files/Shop_ByRoom_Kitchen.jpg?v=1777312295&width=1200 1200w"
5837                 sizes="(max-width:575px) 50vw, (max-width:991px) 50vw, 25vw"
5838                 width="960"
5839                 height="960"
5840                 loading="lazy"
5841                 decoding="async"
5842                 alt="KITCHEN" /><span>KITCHEN</span></a><a href="/collections/entryway"
5843           class="room-tile"
5844           aria-label="Shop ENTRYWAY"
5845           ><img src="//fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Entry.webp?v=1777312088&width=720"
5846                 srcset="//fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Entry.webp?v=1777312088&width=360 360w, //fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Entry.webp?v=1777312088&width=480 480w, //fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Entry.webp?v=1777312088&width=600 600w, //fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Entry.webp?v=1777312088&width=720 720w, //fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Entry.webp?v=1777312088&width=960 960w, //fittes.ca/cdn/shop/files/HP_Shop_ByRoom_Entry.webp?v=1777312088&width=1200 1200w"
5847                 sizes="(max-width:575px) 50vw, (max-width:991px) 50vw, 25vw"
5848                 width="960"
5849                 height="960"
5850                 loading="lazy"
5851                 decoding="async"
5852                 alt="ENTRYWAY" /><span>ENTRYWAY</span></a></div><a href="/collections/all" class="btn-all">View All</a></section>
5853
5854
5855</section><div id="shopify-section-template--28630587998578__home_tab_product_tJDMfE" class="shopify-section"><link href="//fittes.ca/cdn/shop/t/139/assets/component-card.css?v=26033685683467094921788881620" rel="stylesheet" type="text/css" media="all" />
5856<link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
5857<style data-shopify>
5857.ffp-pills {
5858      --ffp-pill-h: 2.1rem;
5859      --ffp-gap: 0.6rem;
5860      position: relative;
5861      z-index: 2;                   /* above the full-card link overlay so pills get hover */
5862      display: flex;
5863      flex-wrap: nowrap;
5864      justify-content: flex-start;
5865      align-items: center;
5866      gap: var(--ffp-gap);
5867      list-style: none;
5868      margin: 0.5rem 0 1.3rem;      /* 0.5 + 2.1 + 1.3 = 3.9rem below the image */
5869      padding: 0;
5870      width: 100%;
5871      max-width: 100%;
5872      min-width: 0;
5873      height: var(--ffp-pill-h);    /* fixed: count never changes row height */
5874      text-align: left;
5875      overflow: hidden;             /* clip, never spill past the card edge */
5876      contain: inline-size;         /* row can't widen its parent */
5877    }
5878    .ffp-pill {
5879      flex: 0 0 auto;
5880      display: inline-flex;
5881      align-items: center;
5882      height: var(--ffp-pill-h);
5883      margin: 0;
5884      padding: 0 1rem;
5885      border: 0;
5886      border-radius: 999px;
5887      background: #EFF1ED;
5888      color: rgb(var(--color-foreground));
5889      font-family: var(--font-body-family);
5890      font-size: 1.05rem;
5891      line-height: 1;
5892      letter-spacing: 0.02em;
5893      white-space: nowrap;
5894      cursor: default;
5895      outline-offset: 2px;
5896      transition: background-color 0.15s ease;
5897    }
5898    .ffp-pill:hover,
5899    .ffp-pill:focus-visible,
5900    .ffp-pill.is-active {
5901      background: #E4E7E2;
5902    }
5903
5904    /* Applied by the sync script, per section */
5905    .ffp-pills[data-ffp-max="2"] .ffp-pill:nth-child(n+3),
5906    .ffp-pills[data-ffp-max="1"] .ffp-pill:nth-child(n+2) {
5907      display: none;
5908    }
5909
5910    /* Tooltip bubble - one element on <body>, positioned by JS */
5911    #ffp-tooltip {
5912      position: fixed;
5913      z-index: 9999;
5914      max-width: 24rem;
5915      padding: 0.8rem 1.1rem;
5916      border-radius: 0.8rem;
5917      background: #1E1E1E;
5918      color: #fff;
5919      font-family: var(--font-body-family);
5920      font-size: 1.15rem;
5921      line-height: 1.45;
5922      letter-spacing: 0.01em;
5923      text-align: left;
5924      pointer-events: none;
5925      opacity: 0;
5926      transform: translateY(4px);
5927      transition: opacity 0.15s ease, transform 0.15s ease;
5928      box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
5929    }
5930    #ffp-tooltip.is-visible {
5931      opacity: 1;
5932      transform: translateY(0);
5933    }
5934    #ffp-tooltip::after {
5935      content: '';
5936      position: absolute;
5937      left: var(--ffp-arrow-x, 50%);
5938      width: 0;
5939      height: 0;
5940      border: 6px solid transparent;
5941      transform: translateX(-50%);
5942    }
5943    #ffp-tooltip[data-placement="top"]::after {
5944      top: 100%;
5945      border-top-color: #1E1E1E;
5946    }
5947    #ffp-tooltip[data-placement="bottom"]::after {
5948      bottom: 100%;
5949      border-bottom-color: #1E1E1E;
5950    }
5951
5952    @media screen and (max-width: 749px) {
5953      .ffp-pills {
5954        --ffp-pill-h: 1.9rem;
5955        --ffp-gap: 0.5rem;
5956        margin: 0.4rem 0 1.1rem;    /* 0.4 + 1.9 + 1.1 = 3.4rem below the image */
5957      }
5958      .ffp-pill {
5959        padding: 0 0.85rem;
5960        font-size: 0.95rem;
5961      }
5962      #ffp-tooltip {
5963        max-width: 22rem;
5964        font-size: 1.1rem;
5965      }
5966    }</style>
5966<script>
5967    (function () {
5968      if (window.ffpSync) return;
5969
5970      /* ================= PILL COUNT SYNC ================= */
5971
5972      function pillWidths(row) {
5973        var prev = row.getAttribute('data-ffp-max');
5974        row.removeAttribute('data-ffp-max');
5975        var pills = row.querySelectorAll('.ffp-pill');
5976        var widths = [];
5977        for (var i = 0; i < pills.length; i++) {
5978          widths.push(pills[i].getBoundingClientRect().width);
5979        }
5980        if (prev !== null) row.setAttribute('data-ffp-max', prev);
5981        return widths;
5982      }
5983
5984      function fits(widths, gap, available, count) {
5985        var n = Math.min(count, widths.length);
5986        if (n < 1) return true;
5987        var needed = gap * (n - 1);
5988        for (var i = 0; i < n; i++) needed += widths[i];
5989        return needed <= available + 0.5;
5990      }
5991
5992      window.ffpSync = function (root) {
5993        var scope = root && root.querySelectorAll ? root : document;
5994        var groups = new Map();
5995
5996        scope.querySelectorAll('.ffp-pills').forEach(function (row) {
5997          if (!row.offsetParent) return;
5998          var key = row.closest('[id^="shopify-section-"]') || document.body;
5999          if (!groups.has(key)) groups.set(key, []);
6000          groups.get(key).push(row);
6001        });
6002
6003        groups.forEach(function (rows) {
6004          var data = rows.map(function (row) {
6005            return {
6006              row: row,
6007              widths: pillWidths(row),
6008              gap: parseFloat(getComputedStyle(row).columnGap) || 0,
6009              available: row.clientWidth
6010            };
6011          });
6012
6013          var max = 3;
6014          while (max > 1) {
6015            var ok = data.every(function (d) { return fits(d.widths, d.gap, d.available, max); });
6016            if (ok) break;
6017            max--;
6018          }
6019
6020          data.forEach(function (d) {
6021            if (max >= 3) {
6022              d.row.removeAttribute('data-ffp-max');
6023            } else {
6024              d.row.setAttribute('data-ffp-max', String(max));
6025            }
6026          });
6027        });
6028      };
6029
6030      var raf = null;
6031      function schedule() {
6032        if (raf) return;
6033        raf = requestAnimationFrame(function () {
6034          raf = null;
6035          window.ffpSync();
6036        });
6037      }
6038
6039      if (document.readyState === 'loading') {
6040        document.addEventListener('DOMContentLoaded', schedule);
6041      } else {
6042        schedule();
6043      }
6044      if (document.fonts && document.fonts.ready) {
6045        document.fonts.ready.then(schedule);
6046      }
6047
6048      var resizeTimer;
6049      window.addEventListener('resize', function () {
6050        clearTimeout(resizeTimer);
6051        resizeTimer = setTimeout(schedule, 150);
6052        hideTip();
6053      });
6054
6055      if ('MutationObserver' in window) {
6056        new MutationObserver(function (mutations) {
6057          for (var i = 0; i < mutations.length; i++) {
6058            if (mutations[i].addedNodes.length) { schedule(); return; }
6059          }
6060        }).observe(document.body, { childList: true, subtree: true });
6061      }
6062
6063      /* ================= TOOLTIPS ================= */
6064
6065      var tip = null;
6066      var activePill = null;
6067
6068      function getTip() {
6069        if (tip) return tip;
6070        tip = document.createElement('div');
6071        tip.id = 'ffp-tooltip';
6072        tip.setAttribute('role', 'tooltip');
6073        document.body.appendChild(tip);
6074        return tip;
6075      }
6076
6077      function showTip(pill) {
6078        var text = pill.getAttribute('data-ffp-tip');
6079        if (!text) return;
6080
6081        if (activePill && activePill !== pill) {
6082          activePill.classList.remove('is-active');
6083          activePill.removeAttribute('aria-describedby');
6084        }
6085        activePill = pill;
6086        pill.classList.add('is-active');
6087
6088        var el = getTip();
6089        el.textContent = text;
6090        el.classList.remove('is-visible');
6091        el.style.left = '0px';
6092        el.style.top = '0px';
6093
6094        var pr = pill.getBoundingClientRect();
6095        var tr = el.getBoundingClientRect();
6096        var margin = 8;
6097        var gap = 8;
6098
6099        var left = pr.left + pr.width / 2 - tr.width / 2;
6100        var maxLeft = window.innerWidth - tr.width - margin;
6101        left = Math.max(margin, Math.min(left, maxLeft));
6102
6103        var top = pr.top - tr.height - gap;
6104        var placement = 'top';
6105        if (top < margin) {
6106          top = pr.bottom + gap;
6107          placement = 'bottom';
6108        }
6109
6110        var arrowX = pr.left + pr.width / 2 - left;
6111        arrowX = Math.max(12, Math.min(arrowX, tr.width - 12));
6112
6113        el.style.left = left + 'px';
6114        el.style.top = top + 'px';
6115        el.style.setProperty('--ffp-arrow-x', arrowX + 'px');
6116        el.setAttribute('data-placement', placement);
6117        pill.setAttribute('aria-describedby', 'ffp-tooltip');
6118
6119        requestAnimationFrame(function () { el.classList.add('is-visible'); });
6120      }
6121
6122      function hideTip() {
6123        if (tip) tip.classList.remove('is-visible');
6124        if (activePill) {
6125          activePill.classList.remove('is-active');
6126          activePill.removeAttribute('aria-describedby');
6127          activePill = null;
6128        }
6129      }
6130
6131      document.addEventListener('mouseover', function (e) {
6132        var pill = e.target.closest && e.target.closest('.ffp-pill[data-ffp-tip]');
6133        if (pill) showTip(pill);
6134      });
6135      document.addEventListener('mouseout', function (e) {
6136        var pill = e.target.closest && e.target.closest('.ffp-pill[data-ffp-tip]');
6137        if (!pill) return;
6138        var to = e.relatedTarget;
6139        if (to && pill.contains(to)) return;
6140        hideTip();
6141      });
6142
6143      document.addEventListener('focusin', function (e) {
6144        var pill = e.target.closest && e.target.closest('.ffp-pill[data-ffp-tip]');
6145        if (pill) showTip(pill);
6146      });
6147      document.addEventListener('focusout', function (e) {
6148        var pill = e.target.closest && e.target.closest('.ffp-pill[data-ffp-tip]');
6149        if (pill) hideTip();
6150      });
6151
6152      document.addEventListener('click', function (e) {
6153        var pill = e.target.closest && e.target.closest('.ffp-pill[data-ffp-tip]');
6154        if (pill) {
6155          e.preventDefault();
6156          e.stopPropagation();
6157          if (activePill === pill && tip && tip.classList.contains('is-visible')) {
6158            hideTip();
6159          } else {
6160            showTip(pill);
6161          }
6162          return;
6163        }
6164        hideTip();
6165      }, true);
6166
6167      document.addEventListener('keydown', function (e) {
6168        if (e.key === 'Escape') hideTip();
6169      });
6170      window.addEventListener('scroll', hideTip, { passive: true });
6171    })();
6172  </script>
6172
6173
6174<link href="//fittes.ca/cdn/shop/t/139/assets/quick-add.css?v=102034667505639970811788881706" rel="stylesheet" type="text/css" media="all" />
6175  
6175<script src="//fittes.ca/cdn/shop/t/139/assets/product-form.js?v=72199052513909285881788881702" defer="defer"></script>
6175<script src="//fittes.ca/cdn/shop/t/139/assets/quick-add.js?v=73073840428863680991788881707" defer="defer"></script>
6175<style data-shopify>/* ========== SECTION PADDING VARIABLES - MATCHES HERO VIDEO SECTION ========== */
6176  #shopify-section-template--28630587998578__home_tab_product_tJDMfE {
6177    --content-padding: 20px;
6178    --slide-gap: 20px;
6179    --nav-offset: 10px;
6180  }
6181  @media (min-width: 750px) {
6182    #shopify-section-template--28630587998578__home_tab_product_tJDMfE {
6183      --content-padding: calc(2.5rem + 30px);
6184      --slide-gap: 33px;
6185      --nav-offset: 15px;
6186    }
6187  }
6188  @media (min-width: 990px) {
6189    #shopify-section-template--28630587998578__home_tab_product_tJDMfE {
6190      --content-padding: calc(2.5rem + 40px);
6191    }
6192  }
6193  @media (min-width: 1200px) {
6194    #shopify-section-template--28630587998578__home_tab_product_tJDMfE {
6195      --content-padding: calc(2.5rem + 50px);
6196    }
6197  }
6198
6199  /* ========== BASE SECTION PADDING ========== */
6200  .section-template--28630587998578__home_tab_product_tJDMfE-padding {
6201    padding-top: 24px;
6202    padding-bottom: 24px;
6203  }
6204  @media (min-width: 750px) {
6205    .section-template--28630587998578__home_tab_product_tJDMfE-padding {
6206      padding-top: 32px;
6207      padding-bottom: 32px;
6208    }
6209  }
6210
6211  /* ========== TITLE AREA - MATCHES HERO VIDEO ALIGNMENT ========== */
6212  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .series-product-top {
6213    max-width: 1420px !important;
6214    margin: 0 auto 20px !important;
6215    padding-left: var(--content-padding) !important;
6216    padding-right: var(--content-padding) !important;
6217    box-sizing: border-box;
6218    display: flex;
6219    align-items: center;
6220    justify-content: space-between;
6221    flex-wrap: wrap;
6222    gap: 15px;
6223  }
6224
6225  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .series-product-top h6 {
6226    font-weight: 500;
6227    color: #F73308;
6228    margin: 0;
6229  }
6230
6231  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .series-product-top h3 {
6232    margin: 10px 0 0;
6233  }
6234
6235  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .collage-wrapper-title {
6236    flex-shrink: 0;
6237  }
6238
6239  @media (min-width: 750px) {
6240    #shopify-section-template--28630587998578__home_tab_product_tJDMfE .series-product-top {
6241      margin-bottom: 40px !important;
6242      flex-wrap: nowrap;
6243    }
6244    #shopify-section-template--28630587998578__home_tab_product_tJDMfE .series-product-top h3 {
6245      margin: 20px 0 0;
6246    }
6247  }
6248
6249  /* ========== TABS ========== */
6250  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .series-product-tab {
6251    display: flex;
6252    gap: 10px;
6253    flex-shrink: 0;
6254  }
6255
6256  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .series-product-tab p {
6257    color: #000;
6258    cursor: pointer;
6259    padding: 5px 15px;
6260    font-size: 12px;
6261    margin: 0;
6262    white-space: nowrap;
6263  }
6264
6265  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .series-product-tab p.active {
6266    border-radius: var(--buttons-radius-outset);
6267    border: 1px solid #000;
6268  }
6269
6270  @media (min-width: 750px) {
6271    #shopify-section-template--28630587998578__home_tab_product_tJDMfE .series-product-tab {
6272      gap: 20px;
6273    }
6274    #shopify-section-template--28630587998578__home_tab_product_tJDMfE .series-product-tab p {
6275      padding: 10px 15px;
6276      font-size: 14px;
6277    }
6278  }
6279
6280  /* ========== PRODUCT GRID CONTAINER ========== */
6281  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .series-product-bottom {
6282    display: none;
6283    max-width: 1420px;
6284    margin: 0 auto;
6285    box-sizing: border-box;
6286    position: relative;
6287  }
6288
6289  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .series-product-bottom.active {
6290    display: block;
6291  }
6292
6293  /* Reserve space before hydration to avoid layout shift */
6294  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .series-product-bottom.active:not([data-hydrated]) {
6295    min-height: 300px;
6296  }
6297
6298  /* ========== SWIPER WRAPPER FOR NAVIGATION POSITIONING ========== */
6299  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .swiper-outer-wrapper {
6300    position: relative;
6301    padding: 0 var(--nav-offset);
6302  }
6303
6304  @media (min-width: 750px) {
6305    #shopify-section-template--28630587998578__home_tab_product_tJDMfE .swiper-outer-wrapper {
6306      padding: 0;
6307    }
6308  }
6309
6310  /* ========== SWIPER - STRICT OVERFLOW CONTROL ========== */
6311  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .swiper {
6312    overflow: hidden !important;
6313    position: relative;
6314    margin: 0 calc(var(--content-padding) - var(--nav-offset));
6315  }
6316
6317  @media (min-width: 750px) {
6318    #shopify-section-template--28630587998578__home_tab_product_tJDMfE .swiper {
6319      margin: 0 var(--content-padding);
6320    }
6321  }
6322
6323  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .swiper-wrapper {
6324    display: flex;
6325  }
6326
6327  /* ========== SLIDE SIZING ========== */
6328  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .swiper-slide {
6329    flex-shrink: 0;
6330    width: calc((100% - (var(--slide-gap) * 3)) / 4);
6331    box-sizing: border-box;
6332  }
6333
6334  /* Mobile: show partial slides for swipe hint */
6335  @media (max-width: 749px) {
6336    #shopify-section-template--28630587998578__home_tab_product_tJDMfE .swiper-slide {
6337      width: calc((100% - var(--slide-gap)) / 1.9);
6338    }
6339  }
6340
6341  /* ========== PRE-INIT SPACING - PREVENTS FLASH BEFORE SWIPER BOOTS ========== */
6342  /* Swiper applies spaceBetween as inline margin-right at init. Mirror that
6343     for the un-initialized state so the layout is pixel-identical before
6344     and after Swiper boots. Covers Swiper 7+ and legacy class names. */
6345  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .swiper:not(.swiper-initialized):not(.swiper-container-initialized) .swiper-slide {
6346    margin-right: var(--slide-gap);
6347  }
6348
6349  /* ========== SWIPER NAVIGATION - OUTSIDE CONTENT AREA ========== */
6350  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .swiper-button-next,
6351  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .swiper-button-prev {
6352    width: 50px;
6353    height: 50px;
6354    background: #fff;
6355    border-radius: 50px;
6356    opacity: 0.7;
6357    transition: all 0.3s;
6358    top: 30%;
6359    box-shadow: 0px 7px 20px rgba(0, 0, 0, 0.06);
6360    z-index: 10;
6361    position: absolute;
6362    cursor: pointer;
6363  }
6364
6365  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .swiper-button-next:after,
6366  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .swiper-button-prev:after {
6367    content: none;
6368  }
6369
6370  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .swiper-button-next:hover,
6371  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .swiper-button-prev:hover {
6372    opacity: 1;
6373  }
6374
6375  /* Hide disabled navigation buttons */
6376  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .swiper-button-disabled {
6377    opacity: 0 !important;
6378    pointer-events: none !important;
6379    visibility: hidden !important;
6380  }
6381
6382  /* Position navigation at the outer edges */
6383  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .swiper-button-next {
6384    right: calc(var(--content-padding) - 60px);
6385  }
6386
6387  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .swiper-button-prev {
6388    left: calc(var(--content-padding) - 60px);
6389  }
6390
6391  @media (min-width: 1500px) {
6392    #shopify-section-template--28630587998578__home_tab_product_tJDMfE .swiper-button-next {
6393      right: calc(var(--content-padding) - 70px);
6394    }
6395    #shopify-section-template--28630587998578__home_tab_product_tJDMfE .swiper-button-prev {
6396      left: calc(var(--content-padding) - 70px);
6397    }
6398  }
6399
6400  /* ========== CARD SLIDES ========== */
6401  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .card-slide {
6402    display: flex;
6403    flex-direction: column;
6404  }
6405
6406  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .card-slide .my-buy-btn {
6407    color: #fff;
6408    transform: translateY(-70%);
6409  }
6410
6411  @media (min-width: 750px) {
6412    #shopify-section-template--28630587998578__home_tab_product_tJDMfE .card-slide .my-buy-btn {
6413      transform: translateY(-100%);
6414    }
6415  }
6416
6417  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .card-slide .my-buy-btn .product-form__submit::before,
6418  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .card-slide .my-buy-btn .product-form__submit::after {
6419    content: unset;
6420  }
6421
6422  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .card-slide .my-buy-btn .product-form__submit {
6423    padding: 0;
6424    background: #E73C3E;
6425  }
6426    /* ========== LEFT ALIGN - TEXT, PILLS & PRICE FLUSH WITH IMAGE EDGE ========== */
6427  /* Dawn adds horizontal padding to .card__content / .card__information and
6428     reads --card-text-alignment for text. Zero both so every line under the
6429     image starts where the image and the Learn More button start. */
6430  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .card-slide .card > .card__content,
6431  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .card-slide .card > .card__content .card__information,
6432  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .card-slide .card > .card__content .card-information {
6433    padding-left: 0;
6434    padding-right: 0;
6435    text-align: left;
6436  }
6437
6438  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .card-slide .card__heading,
6439  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .card-slide .card__heading a {
6440    text-align: left;
6441  }
6442
6443  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .card-slide .price,
6444  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .card-slide .price__container {
6445    justify-content: flex-start;
6446    text-align: left;
6447  }
6448
6449  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .card-slide .ffp-pills {
6450    margin-left: 0;
6451    padding-left: 0;
6452  }
6453
6454  /* ========== CARD CONTENT ========== */
6455  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .card .card__heading {
6456    height: 6rem;
6457    max-height: 6rem;
6458    overflow: hidden;
6459    text-overflow: ellipsis;
6460  }
6461
6462  @media (max-width: 749px) {
6463    #shopify-section-template--28630587998578__home_tab_product_tJDMfE .card .card__heading {
6464      min-height: 8.5rem;
6465    }
6466  }
6467
6468  @media (min-width: 750px) {
6469    #shopify-section-template--28630587998578__home_tab_product_tJDMfE .card__information .card-information {
6470      min-height: 44px;
6471      display: flex;
6472    }
6473  }
6474
6475  #shopify-section-template--28630587998578__home_tab_product_tJDMfE .product-card-wrapper .card__heading {
6476    text-transform: capitalize;
6477  }
6478
6479  /* ========== PRICE QUICKADD ========== */
6480  @media (min-width: 750px) {
6481    [class^="price-quickadd"] {
6482      display: flex;
6483      justify-content: space-between;
6484    }
6485    [class^="price-quickadd"] .guide-link {
6486      display: inline-flex;
6487      gap: 5px;
6488      color: black;
6489      text-decoration: none;
6490    }
6491  }</style><div class="color-scheme-1 gradient isolate" data-open-new-tab="false">
6492  <div class="section-template--28630587998578__home_tab_product_tJDMfE-padding">
6493    <div class="series-product-top">
6493<div class="collage-wrapper-title  scroll-trigger animate--slide-in">
6494          <h3>Shop Vents</h3>
6495        </div><div class="series-product-tab  scroll-trigger animate--slide-in">
6496        
6497          <p class="active" data-tab="wall-ceiling-vents">Wall / Ceiling Vents</p>
6498        
6499          <p class="" data-tab="floor-vents">Floor Vents</p>
6500        
6501          <p class="" data-tab="lite">Lite+</p>
6502        
6503      </div>
6504    </div>
6505      <div class="series-product-bottom active" data-content="wall-ceiling-vents" data-index="0"><template data-swiper-template>
6506          <div class="swiper-outer-wrapper">
6507            <div class="swiper mySwiper series-product-product">
6508              <div class="swiper-wrapper">
6509                
6510                  <div class="swiper-slide card-slide">
6511                    <link href="//fittes.ca/cdn/shop/t/139/assets/component-rating.css?v=179577762467860590411788881634" rel="stylesheet" type="text/css" media="all" />
6512  <link href="//fittes.ca/cdn/shop/t/139/assets/component-volume-pricing.css?v=111870094811454961941788881637" rel="stylesheet" type="text/css" media="all" />
6513
6514  <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
6515  <link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
6516<div
6517    preorder-product-element="form"
6518    d-id="7736371511484"
6519    data-product-id="7736371511484"
6520    class="card-wrapper product-card-wrapper underline-links-hover"
6521    style="position: relative;"
6522  >
6523    
6524    <div
6525      class="
6526        card card--standard
6527         card--media
6528        
6529        
6530        
6531        
6532        
6533      "
6534      style="--ratio-percent: 100%;"
6535    >
6536<div class="product-badges tw-absolute tw-left-2 tw-top-2 tw-z-[1] tw-hidden tw-max-w-[90%] ">
6537    
6538<div
6539        class="product-badge tw-px-2 tw-py-1 tw-text-sm tw-uppercase "
6540        style="color: black; background-color: white;"
6541      >Airflow Increased</div>
6542    
6543  </div>
6544      <div
6545        class="card__inner color-scheme-2 gradient ratio"
6546        style="--ratio-percent: 100%;"
6547      >
6548        
6549<div class="card__media">
6550            <div class="media media--transparent media--hover-effect">
6551              
6552              <img
6553                srcset="//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Luxe___Lifestyle_1.jpg?v=1772198500&width=165 165w,//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Luxe___Lifestyle_1.jpg?v=1772198500&width=360 360w,//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Luxe___Lifestyle_1.jpg?v=1772198500&width=533 533w,//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Luxe___Lifestyle_1.jpg?v=1772198500&width=720 720w,//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Luxe___Lifestyle_1.jpg?v=1772198500&width=940 940w,//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Luxe___Lifestyle_1.jpg?v=1772198500&width=1066 1066w,//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Luxe___Lifestyle_1.jpg?v=1772198500 1080w
6554                "
6555                src="//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Luxe___Lifestyle_1.jpg?v=1772198500&width=533"
6556                sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
6557                alt="Flush Wall Vent [Luxe+]"
6558                class="motion-reduce"
6559                
6560                  loading="lazy"
6561                
6562                width="1080"
6563                height="1080"
6564              >
6565              
6566<img
6567                  srcset="//fittes.ca/cdn/shop/files/7-FlushWallVent_Luxe__Lifestyle1.png?v=1772198500&width=165 165w,//fittes.ca/cdn/shop/files/7-FlushWallVent_Luxe__Lifestyle1.png?v=1772198500&width=360 360w,//fittes.ca/cdn/shop/files/7-FlushWallVent_Luxe__Lifestyle1.png?v=1772198500&width=533 533w,//fittes.ca/cdn/shop/files/7-FlushWallVent_Luxe__Lifestyle1.png?v=1772198500&width=720 720w,//fittes.ca/cdn/shop/files/7-FlushWallVent_Luxe__Lifestyle1.png?v=1772198500&width=940 940w,//fittes.ca/cdn/shop/files/7-FlushWallVent_Luxe__Lifestyle1.png?v=1772198500&width=1066 1066w,//fittes.ca/cdn/shop/files/7-FlushWallVent_Luxe__Lifestyle1.png?v=1772198500 1080w
6568                  "
6569                  src="//fittes.ca/cdn/shop/files/7-FlushWallVent_Luxe__Lifestyle1.png?v=1772198500&width=533"
6570                  sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
6571                  alt=""
6572                  class="motion-reduce"
6573                  loading="lazy"
6574                  width="1080"
6575                  height="1080"
6576                >
6577              </div>
6578          </div><div class="card__content">
6579          <div class="card__information ss">
6580            <h3
6581              class="card__heading"
6582              
6583            >
6584              <a href="/products/flush-wall-vent-luxe-plus" id="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-7736371511484" class="full-unstyled-link" aria-labelledby="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-7736371511484 NoMediaStandardBadge-template--28630587998578__home_tab_product_tJDMfE-7736371511484">
6585                Flush Wall Vent [Luxe+]
6586              </a>
6587            </h3>
6588          </div>
6589
6590          
6591          
6592        </div>
6593      </div>
6594
6595      <div class="card__content">
6596        <div class="card__information sss"><ul class="ffp-pills" aria-label="Product features"><li class="ffp-pill" tabindex="0" data-ffp-tip="Set into the drywall and finished with mud for a seamless, flush look.">Mud-In</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Extra airflow for larger rooms or spaces with fewer vents.">Double Air Channel</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Steel construction for a premium, long-lasting finish.">Steel</li></ul>
6597<div class="bv_rating_summary ">
6598              <div data-bv-show="rating_summary" data-bv-product-id="7736371511484"></div>
6599            </div>
6600
6601          <h3
6602            class="card__heading h6"
6603            
6604              id="title-template--28630587998578__home_tab_product_tJDMfE-7736371511484"
6605            
6606          >
6607            <a href="/products/flush-wall-vent-luxe-plus" id="CardLink-template--28630587998578__home_tab_product_tJDMfE-7736371511484" class="full-unstyled-link" aria-labelledby="CardLink-template--28630587998578__home_tab_product_tJDMfE-7736371511484 Badge-template--28630587998578__home_tab_product_tJDMfE-7736371511484">
6608              Flush Wall Vent [Luxe+]
6609            </a>
6610          </h3>
6611          <div class="card-information">
6612              
6613
6614<div
6615    class="
6616      price "
6617  >
6618    <div class="price__container"><!-- REGULAR -->
6619      <div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
6620          <span class="price-item price-item--regular">
6621            $93.00 USD+
6622          </span></div>
6623
6624      
6625
6626      <small class="unit-price caption hidden">
6627        <span class="visually-hidden">Unit price</span>
6628        <span class="price-item price-item--last">
6629          <span></span>
6630          <span aria-hidden="true">/</span>
6631          <span class="visually-hidden">&nbsp;per&nbsp;</span>
6632          <span>
6633          </span>
6634        </span>
6635      </small>
6636    </div></div>
6637
6638
6639            
6640</div>
6641        </div>
6642
6643        
6644        
6645          
6646
6647          <div class="quick-add no-js-hidden"><modal-opener data-modal="#QuickAdd-7736371511484">
6648                <button
6649                  id="quick-add-template--28630587998578__home_tab_product_tJDMfE7736371511484-submit"
6650                  type="submit"
6651                  name="add"
6652                  class="quick-add__submit button button--full-width button--secondary"
6653                  aria-haspopup="dialog"
6654                  aria-labelledby="quick-add-template--28630587998578__home_tab_product_tJDMfE7736371511484-submit title-template--28630587998578__home_tab_product_tJDMfE-7736371511484"
6655                  data-product-url="/products/flush-wall-vent-luxe-plus"
6656                >
6657                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none">
6658                    <g clip-path="url(#clip0_694_4827)">
6659                      <path fill-rule="evenodd" clip-rule="evenodd" d="M3.74172 8.52891C3.71398 8.52891 3.69149 8.5514 3.69149 8.57914C3.69149 8.60687 3.71398 8.62936 3.74172 8.62936C3.76946 8.62936 3.79194 8.60687 3.79194 8.57914C3.79194 8.5514 3.76946 8.52891 3.74172 8.52891ZM2.98835 8.57914C2.98835 8.16306 3.32565 7.82577 3.74172 7.82577C4.15779 7.82577 4.49509 8.16306 4.49509 8.57914C4.49509 8.99521 4.15779 9.3325 3.74172 9.3325C3.32565 9.3325 2.98835 8.99521 2.98835 8.57914Z" fill="#333D4C"/>
6660                      <path fill-rule="evenodd" clip-rule="evenodd" d="M8.16147 8.52891C8.13373 8.52891 8.11125 8.5514 8.11125 8.57914C8.11125 8.60687 8.13373 8.62936 8.16147 8.62936C8.18921 8.62936 8.2117 8.60687 8.2117 8.57914C8.2117 8.5514 8.18921 8.52891 8.16147 8.52891ZM7.4081 8.57914C7.4081 8.16306 7.7454 7.82577 8.16147 7.82577C8.57754 7.82577 8.91484 8.16306 8.91484 8.57914C8.91484 8.99521 8.57754 9.3325 8.16147 9.3325C7.7454 9.3325 7.4081 8.99521 7.4081 8.57914Z" fill="#333D4C"/>
6661                      <path fill-rule="evenodd" clip-rule="evenodd" d="M0.175781 0.543222C0.175781 0.349054 0.333185 0.19165 0.527353 0.19165H2.13454C2.3021 0.19165 2.44638 0.309914 2.47927 0.474223L2.82481 2.20063H9.36686C9.47164 2.20063 9.57095 2.24736 9.63774 2.32809C9.70453 2.40882 9.73183 2.51514 9.71221 2.61806L9.06883 5.99176C9.01601 6.25768 8.87134 6.49654 8.66016 6.66655C8.44992 6.83578 8.1871 6.92604 7.91732 6.92173H4.01801C3.74824 6.92604 3.48541 6.83578 3.27518 6.66655C3.06407 6.49661 2.91944 6.25786 2.86657 5.99206V5.99206L2.19508 2.6371C2.19254 2.62687 2.19045 2.61646 2.18884 2.6059L1.84636 0.894793H0.527353C0.333185 0.894793 0.175781 0.737389 0.175781 0.543222ZM2.96554 2.90377L3.55618 5.85477C3.57685 5.95883 3.63346 6.0523 3.7161 6.11882C3.79873 6.18535 3.90214 6.22068 4.0082 6.21865L4.01494 6.21859H7.92039L7.92713 6.21865C8.0332 6.22068 8.1366 6.18535 8.21924 6.11882C8.30157 6.05254 8.35807 5.95952 8.37892 5.85592L8.37915 5.85477L8.94191 2.90377H2.96554Z" fill="#333D4C"/>
6662                    </g>
6663                    <defs>
6664                      <clipPath id="clip0_694_4827">
6665                        <rect width="9.6431" height="9.6431" fill="white" transform="translate(0.125 0.141357)"/>
6666                      </clipPath>
6667                    </defs>
6668                  </svg>
6669
6670<div class="loading__spinner hidden">
6671  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
6672
6673</div>
6674</button>
6675              </modal-opener>
6676              <quick-add-modal id="QuickAdd-7736371511484" class="quick-add-modal">
6677                <div
6678                  role="dialog"
6679                  aria-label="Choose options for Flush Wall Vent [Luxe+]"
6680                  aria-modal="true"
6681                  class="quick-add-modal__content global-settings-popup"
6682                  tabindex="-1"
6683                >
6684                  <button
6685                    id="ModalClose-7736371511484"
6686                    type="button"
6687                    class="quick-add-modal__toggle"
6688                    aria-label="Close"
6689                  ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
6690</button>
6691                  <div id="QuickAddInfo-7736371511484" class="quick-add-modal__content-info"></div>
6692                </div>
6693              </quick-add-modal></div>
6694
6695          
6696
6697        
6698        <div class="card__badge top left"></div>
6699      </div>
6700      
6701    </div>
6702  </div>
6703                    <div class="my-buy-btn">
6704<div class="" ><product-form
6705      class="product-form"
6706      data-hide-errors="false"
6707      data-section-id="template--28630587998578__home_tab_product_tJDMfE"
6708    >
6709      <div class="product-form__error-message-wrapper" role="alert" hidden>
6710        <span class="svg-wrapper"><svg class="icon icon-error" viewBox="0 0 13 13"><circle cx="6.5" cy="6.5" r="5.5" stroke="#fff" stroke-width="2"/><circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width=".7"/><path fill="#fff" d="m5.874 3.528.1 4.044h1.053l.1-4.044zm.627 6.133c.38 0 .68-.288.68-.656s-.3-.656-.68-.656-.681.288-.681.656.3.656.68.656"/><path fill="#fff" stroke="#EB001B" stroke-width=".7" d="M5.874 3.178h-.359l.01.359.1 4.044.008.341h1.736l.008-.341.1-4.044.01-.359H5.873Zm.627 6.833c.56 0 1.03-.432 1.03-1.006s-.47-1.006-1.03-1.006-1.031.432-1.031 1.006.47 1.006 1.03 1.006Z"/></svg>
6711</span>
6712        <span class="product-form__error-message"></span>
6713      </div><form method="post" action="/cart/add" id="product-form-template--28630587998578__home_tab_product_tJDMfE" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
6714          type="hidden"
6715          name="id"
6716          value="43177643049148"
6717          
6718          class="product-variant-id"
6719        ><div class="product-form__buttons"><button
6720            id="ProductSubmitButton-template--28630587998578__home_tab_product_tJDMfE"
6721            type="submit"
6722            name="add"
6723            class="product-form__submit button button--full-width button--primary"
6724            
6725          >
6726            <span>
6727                    Learn More
6728                  
6729</span>
6730
6731<div class="loading__spinner hidden">
6732  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
6733
6734</div>
6735</button></div><input type="hidden" name="product-id" value="7736371511484" /><input type="hidden" name="section-id" value="template--28630587998578__home_tab_product_tJDMfE" /></form></product-form></div>
6736</div>
6737                  </div>
6738                
6739                  <div class="swiper-slide card-slide">
6740                    <link href="//fittes.ca/cdn/shop/t/139/assets/component-rating.css?v=179577762467860590411788881634" rel="stylesheet" type="text/css" media="all" />
6741  <link href="//fittes.ca/cdn/shop/t/139/assets/component-volume-pricing.css?v=111870094811454961941788881637" rel="stylesheet" type="text/css" media="all" />
6742
6743  <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
6744  <link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
6745<div
6746    preorder-product-element="form"
6747    d-id="2339981099070"
6748    data-product-id="2339981099070"
6749    class="card-wrapper product-card-wrapper underline-links-hover"
6750    style="position: relative;"
6751  >
6752    
6753    <div
6754      class="
6755        card card--standard
6756         card--media
6757        
6758        
6759        
6760        
6761        
6762      "
6763      style="--ratio-percent: 100%;"
6764    >
6765
6766      <div
6767        class="card__inner color-scheme-2 gradient ratio"
6768        style="--ratio-percent: 100%;"
6769      >
6770        
6771<div class="card__media">
6772            <div class="media media--transparent media--hover-effect">
6773              
6774              <img
6775                srcset="//fittes.ca/cdn/shop/files/1-FlushWallVent_Luxe__Lifestyle1_96d8c0b4-5986-406c-ba0b-9d9e6f2daa0f.jpg?v=1754022189&width=165 165w,//fittes.ca/cdn/shop/files/1-FlushWallVent_Luxe__Lifestyle1_96d8c0b4-5986-406c-ba0b-9d9e6f2daa0f.jpg?v=1754022189&width=360 360w,//fittes.ca/cdn/shop/files/1-FlushWallVent_Luxe__Lifestyle1_96d8c0b4-5986-406c-ba0b-9d9e6f2daa0f.jpg?v=1754022189&width=533 533w,//fittes.ca/cdn/shop/files/1-FlushWallVent_Luxe__Lifestyle1_96d8c0b4-5986-406c-ba0b-9d9e6f2daa0f.jpg?v=1754022189&width=720 720w,//fittes.ca/cdn/shop/files/1-FlushWallVent_Luxe__Lifestyle1_96d8c0b4-5986-406c-ba0b-9d9e6f2daa0f.jpg?v=1754022189&width=940 940w,//fittes.ca/cdn/shop/files/1-FlushWallVent_Luxe__Lifestyle1_96d8c0b4-5986-406c-ba0b-9d9e6f2daa0f.jpg?v=1754022189&width=1066 1066w,//fittes.ca/cdn/shop/files/1-FlushWallVent_Luxe__Lifestyle1_96d8c0b4-5986-406c-ba0b-9d9e6f2daa0f.jpg?v=1754022189 1080w
6776                "
6777                src="//fittes.ca/cdn/shop/files/1-FlushWallVent_Luxe__Lifestyle1_96d8c0b4-5986-406c-ba0b-9d9e6f2daa0f.jpg?v=1754022189&width=533"
6778                sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
6779                alt="Flush Wall Vent [Luxe]"
6780                class="motion-reduce"
6781                
6782                  loading="lazy"
6783                
6784                width="1080"
6785                height="1080"
6786              >
6787              
6788<img
6789                  srcset="//fittes.ca/cdn/shop/files/Flush_Wall_Vent_Luxe_or_Lite_-_Lifestyle.webp?v=1782744429&width=165 165w,//fittes.ca/cdn/shop/files/Flush_Wall_Vent_Luxe_or_Lite_-_Lifestyle.webp?v=1782744429&width=360 360w,//fittes.ca/cdn/shop/files/Flush_Wall_Vent_Luxe_or_Lite_-_Lifestyle.webp?v=1782744429&width=533 533w,//fittes.ca/cdn/shop/files/Flush_Wall_Vent_Luxe_or_Lite_-_Lifestyle.webp?v=1782744429&width=720 720w,//fittes.ca/cdn/shop/files/Flush_Wall_Vent_Luxe_or_Lite_-_Lifestyle.webp?v=1782744429&width=940 940w,//fittes.ca/cdn/shop/files/Flush_Wall_Vent_Luxe_or_Lite_-_Lifestyle.webp?v=1782744429 1000w
6790                  "
6791                  src="//fittes.ca/cdn/shop/files/Flush_Wall_Vent_Luxe_or_Lite_-_Lifestyle.webp?v=1782744429&width=533"
6792                  sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
6793                  alt=""
6794                  class="motion-reduce"
6795                  loading="lazy"
6796                  width="1000"
6797                  height="1000"
6798                >
6799              </div>
6800          </div><div class="card__content">
6801          <div class="card__information ss">
6802            <h3
6803              class="card__heading"
6804              
6805            >
6806              <a href="/products/flush-wall-vent-luxe" id="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-2339981099070" class="full-unstyled-link" aria-labelledby="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-2339981099070 NoMediaStandardBadge-template--28630587998578__home_tab_product_tJDMfE-2339981099070">
6807                Flush Wall Vent [Luxe]
6808              </a>
6809            </h3>
6810          </div>
6811
6812          
6813          
6814        </div>
6815      </div>
6816
6817      <div class="card__content">
6818        <div class="card__information sss"><ul class="ffp-pills" aria-label="Product features"><li class="ffp-pill" tabindex="0" data-ffp-tip="Set into the drywall and finished with mud for a seamless, flush look.">Mud-In</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Standard airflow, well suited to most rooms.">Single Air Channel</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Steel construction for a premium, long-lasting finish.">Steel</li></ul>
6819<div class="bv_rating_summary ">
6820              <div data-bv-show="rating_summary" data-bv-product-id="2339981099070"></div>
6821            </div>
6822
6823          <h3
6824            class="card__heading h6"
6825            
6826              id="title-template--28630587998578__home_tab_product_tJDMfE-2339981099070"
6827            
6828          >
6829            <a href="/products/flush-wall-vent-luxe" id="CardLink-template--28630587998578__home_tab_product_tJDMfE-2339981099070" class="full-unstyled-link" aria-labelledby="CardLink-template--28630587998578__home_tab_product_tJDMfE-2339981099070 Badge-template--28630587998578__home_tab_product_tJDMfE-2339981099070">
6830              Flush Wall Vent [Luxe]
6831            </a>
6832          </h3>
6833          <div class="card-information">
6834              
6835
6836<div
6837    class="
6838      price "
6839  >
6840    <div class="price__container"><!-- REGULAR -->
6841      <div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
6842          <span class="price-item price-item--regular">
6843            $64.00 USD+
6844          </span></div>
6845
6846      
6847
6848      <small class="unit-price caption hidden">
6849        <span class="visually-hidden">Unit price</span>
6850        <span class="price-item price-item--last">
6851          <span></span>
6852          <span aria-hidden="true">/</span>
6853          <span class="visually-hidden">&nbsp;per&nbsp;</span>
6854          <span>
6855          </span>
6856        </span>
6857      </small>
6858    </div></div>
6859
6860
6861            
6862</div>
6863        </div>
6864
6865        
6866        
6867          
6868
6869          <div class="quick-add no-js-hidden"><modal-opener data-modal="#QuickAdd-2339981099070">
6870                <button
6871                  id="quick-add-template--28630587998578__home_tab_product_tJDMfE2339981099070-submit"
6872                  type="submit"
6873                  name="add"
6874                  class="quick-add__submit button button--full-width button--secondary"
6875                  aria-haspopup="dialog"
6876                  aria-labelledby="quick-add-template--28630587998578__home_tab_product_tJDMfE2339981099070-submit title-template--28630587998578__home_tab_product_tJDMfE-2339981099070"
6877                  data-product-url="/products/flush-wall-vent-luxe"
6878                >
6879                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none">
6880                    <g clip-path="url(#clip0_694_4827)">
6881                      <path fill-rule="evenodd" clip-rule="evenodd" d="M3.74172 8.52891C3.71398 8.52891 3.69149 8.5514 3.69149 8.57914C3.69149 8.60687 3.71398 8.62936 3.74172 8.62936C3.76946 8.62936 3.79194 8.60687 3.79194 8.57914C3.79194 8.5514 3.76946 8.52891 3.74172 8.52891ZM2.98835 8.57914C2.98835 8.16306 3.32565 7.82577 3.74172 7.82577C4.15779 7.82577 4.49509 8.16306 4.49509 8.57914C4.49509 8.99521 4.15779 9.3325 3.74172 9.3325C3.32565 9.3325 2.98835 8.99521 2.98835 8.57914Z" fill="#333D4C"/>
6882                      <path fill-rule="evenodd" clip-rule="evenodd" d="M8.16147 8.52891C8.13373 8.52891 8.11125 8.5514 8.11125 8.57914C8.11125 8.60687 8.13373 8.62936 8.16147 8.62936C8.18921 8.62936 8.2117 8.60687 8.2117 8.57914C8.2117 8.5514 8.18921 8.52891 8.16147 8.52891ZM7.4081 8.57914C7.4081 8.16306 7.7454 7.82577 8.16147 7.82577C8.57754 7.82577 8.91484 8.16306 8.91484 8.57914C8.91484 8.99521 8.57754 9.3325 8.16147 9.3325C7.7454 9.3325 7.4081 8.99521 7.4081 8.57914Z" fill="#333D4C"/>
6883                      <path fill-rule="evenodd" clip-rule="evenodd" d="M0.175781 0.543222C0.175781 0.349054 0.333185 0.19165 0.527353 0.19165H2.13454C2.3021 0.19165 2.44638 0.309914 2.47927 0.474223L2.82481 2.20063H9.36686C9.47164 2.20063 9.57095 2.24736 9.63774 2.32809C9.70453 2.40882 9.73183 2.51514 9.71221 2.61806L9.06883 5.99176C9.01601 6.25768 8.87134 6.49654 8.66016 6.66655C8.44992 6.83578 8.1871 6.92604 7.91732 6.92173H4.01801C3.74824 6.92604 3.48541 6.83578 3.27518 6.66655C3.06407 6.49661 2.91944 6.25786 2.86657 5.99206V5.99206L2.19508 2.6371C2.19254 2.62687 2.19045 2.61646 2.18884 2.6059L1.84636 0.894793H0.527353C0.333185 0.894793 0.175781 0.737389 0.175781 0.543222ZM2.96554 2.90377L3.55618 5.85477C3.57685 5.95883 3.63346 6.0523 3.7161 6.11882C3.79873 6.18535 3.90214 6.22068 4.0082 6.21865L4.01494 6.21859H7.92039L7.92713 6.21865C8.0332 6.22068 8.1366 6.18535 8.21924 6.11882C8.30157 6.05254 8.35807 5.95952 8.37892 5.85592L8.37915 5.85477L8.94191 2.90377H2.96554Z" fill="#333D4C"/>
6884                    </g>
6885                    <defs>
6886                      <clipPath id="clip0_694_4827">
6887                        <rect width="9.6431" height="9.6431" fill="white" transform="translate(0.125 0.141357)"/>
6888                      </clipPath>
6889                    </defs>
6890                  </svg>
6891
6892<div class="loading__spinner hidden">
6893  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
6894
6895</div>
6896</button>
6897              </modal-opener>
6898              <quick-add-modal id="QuickAdd-2339981099070" class="quick-add-modal">
6899                <div
6900                  role="dialog"
6901                  aria-label="Choose options for Flush Wall Vent [Luxe]"
6902                  aria-modal="true"
6903                  class="quick-add-modal__content global-settings-popup"
6904                  tabindex="-1"
6905                >
6906                  <button
6907                    id="ModalClose-2339981099070"
6908                    type="button"
6909                    class="quick-add-modal__toggle"
6910                    aria-label="Close"
6911                  ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
6912</button>
6913                  <div id="QuickAddInfo-2339981099070" class="quick-add-modal__content-info"></div>
6914                </div>
6915              </quick-add-modal></div>
6916
6917          
6918
6919        
6920        <div class="card__badge top left"></div>
6921      </div>
6922      
6923    </div>
6924  </div>
6925                    <div class="my-buy-btn">
6926<div class="" ><product-form
6927      class="product-form"
6928      data-hide-errors="false"
6929      data-section-id="template--28630587998578__home_tab_product_tJDMfE"
6930    >
6931      <div class="product-form__error-message-wrapper" role="alert" hidden>
6932        <span class="svg-wrapper"><svg class="icon icon-error" viewBox="0 0 13 13"><circle cx="6.5" cy="6.5" r="5.5" stroke="#fff" stroke-width="2"/><circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width=".7"/><path fill="#fff" d="m5.874 3.528.1 4.044h1.053l.1-4.044zm.627 6.133c.38 0 .68-.288.68-.656s-.3-.656-.68-.656-.681.288-.681.656.3.656.68.656"/><path fill="#fff" stroke="#EB001B" stroke-width=".7" d="M5.874 3.178h-.359l.01.359.1 4.044.008.341h1.736l.008-.341.1-4.044.01-.359H5.873Zm.627 6.833c.56 0 1.03-.432 1.03-1.006s-.47-1.006-1.03-1.006-1.031.432-1.031 1.006.47 1.006 1.03 1.006Z"/></svg>
6933</span>
6934        <span class="product-form__error-message"></span>
6935      </div><form method="post" action="/cart/add" id="product-form-template--28630587998578__home_tab_product_tJDMfE" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
6936          type="hidden"
6937          name="id"
6938          value="42886097567932"
6939          
6940          class="product-variant-id"
6941        ><div class="product-form__buttons"><button
6942            id="ProductSubmitButton-template--28630587998578__home_tab_product_tJDMfE"
6943            type="submit"
6944            name="add"
6945            class="product-form__submit button button--full-width button--primary"
6946            
6947          >
6948            <span>
6949                    Learn More
6950                  
6951</span>
6952
6953<div class="loading__spinner hidden">
6954  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
6955
6956</div>
6957</button></div><input type="hidden" name="product-id" value="2339981099070" /><input type="hidden" name="section-id" value="template--28630587998578__home_tab_product_tJDMfE" /></form></product-form></div>
6958</div>
6959                  </div>
6960                
6961                  <div class="swiper-slide card-slide">
6962                    <link href="//fittes.ca/cdn/shop/t/139/assets/component-rating.css?v=179577762467860590411788881634" rel="stylesheet" type="text/css" media="all" />
6963  <link href="//fittes.ca/cdn/shop/t/139/assets/component-volume-pricing.css?v=111870094811454961941788881637" rel="stylesheet" type="text/css" media="all" />
6964
6965  <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
6966  <link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
6967<div
6968    preorder-product-element="form"
6969    d-id="7762813485244"
6970    data-product-id="7762813485244"
6971    class="card-wrapper product-card-wrapper underline-links-hover"
6972    style="position: relative;"
6973  >
6974    
6975    <div
6976      class="
6977        card card--standard
6978         card--media
6979        
6980        
6981        
6982        
6983        
6984      "
6985      style="--ratio-percent: 100%;"
6986    >
6987<div class="product-badges tw-absolute tw-left-2 tw-top-2 tw-z-[1] tw-hidden tw-max-w-[90%] ">
6988    
6989<div
6990        class="product-badge tw-px-2 tw-py-1 tw-text-sm tw-uppercase "
6991        style="color: black; background-color: white;"
6992      >Airflow Increased</div>
6993    
6994  </div>
6995      <div
6996        class="card__inner color-scheme-2 gradient ratio"
6997        style="--ratio-percent: 100%;"
6998      >
6999        
7000<div class="card__media">
7001            <div class="media media--transparent media--hover-effect">
7002              
7003              <img
7004                srcset="//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Luxe___Lifestyle_1.jpg?v=1772198614&width=165 165w,//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Luxe___Lifestyle_1.jpg?v=1772198614&width=360 360w,//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Luxe___Lifestyle_1.jpg?v=1772198614&width=533 533w,//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Luxe___Lifestyle_1.jpg?v=1772198614&width=720 720w,//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Luxe___Lifestyle_1.jpg?v=1772198614&width=940 940w,//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Luxe___Lifestyle_1.jpg?v=1772198614&width=1066 1066w,//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Luxe___Lifestyle_1.jpg?v=1772198614 1080w
7005                "
7006                src="//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Luxe___Lifestyle_1.jpg?v=1772198614&width=533"
7007                sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
7008                alt="Framed Wall Vent [Luxe+]"
7009                class="motion-reduce"
7010                
7011                  loading="lazy"
7012                
7013                width="1080"
7014                height="1080"
7015              >
7016              
7017<img
7018                  srcset="//fittes.ca/cdn/shop/files/7-FramedWallVent_Luxe__Lifestyle1.png?v=1772198614&width=165 165w,//fittes.ca/cdn/shop/files/7-FramedWallVent_Luxe__Lifestyle1.png?v=1772198614&width=360 360w,//fittes.ca/cdn/shop/files/7-FramedWallVent_Luxe__Lifestyle1.png?v=1772198614&width=533 533w,//fittes.ca/cdn/shop/files/7-FramedWallVent_Luxe__Lifestyle1.png?v=1772198614&width=720 720w,//fittes.ca/cdn/shop/files/7-FramedWallVent_Luxe__Lifestyle1.png?v=1772198614&width=940 940w,//fittes.ca/cdn/shop/files/7-FramedWallVent_Luxe__Lifestyle1.png?v=1772198614&width=1066 1066w,//fittes.ca/cdn/shop/files/7-FramedWallVent_Luxe__Lifestyle1.png?v=1772198614 1080w
7019                  "
7020                  src="//fittes.ca/cdn/shop/files/7-FramedWallVent_Luxe__Lifestyle1.png?v=1772198614&width=533"
7021                  sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
7022                  alt=""
7023                  class="motion-reduce"
7024                  loading="lazy"
7025                  width="1080"
7026                  height="1080"
7027                >
7028              </div>
7029          </div><div class="card__content">
7030          <div class="card__information ss">
7031            <h3
7032              class="card__heading"
7033              
7034            >
7035              <a href="/products/framed-wall-vent-luxe-plus" id="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-7762813485244" class="full-unstyled-link" aria-labelledby="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-7762813485244 NoMediaStandardBadge-template--28630587998578__home_tab_product_tJDMfE-7762813485244">
7036                Framed Wall Vent [Luxe+]
7037              </a>
7038            </h3>
7039          </div>
7040
7041          
7042          
7043        </div>
7044      </div>
7045
7046      <div class="card__content">
7047        <div class="card__information sss"><ul class="ffp-pills" aria-label="Product features"><li class="ffp-pill" tabindex="0" data-ffp-tip="Drops into the opening with minimal tools. Slight lip at the edge; fully paintable.">Drop-In</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Extra airflow for larger rooms or spaces with fewer vents.">Double Air Channel</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Steel construction for a premium, long-lasting finish.">Steel</li></ul>
7048<div class="bv_rating_summary ">
7049              <div data-bv-show="rating_summary" data-bv-product-id="7762813485244"></div>
7050            </div>
7051
7052          <h3
7053            class="card__heading h6"
7054            
7055              id="title-template--28630587998578__home_tab_product_tJDMfE-7762813485244"
7056            
7057          >
7058            <a href="/products/framed-wall-vent-luxe-plus" id="CardLink-template--28630587998578__home_tab_product_tJDMfE-7762813485244" class="full-unstyled-link" aria-labelledby="CardLink-template--28630587998578__home_tab_product_tJDMfE-7762813485244 Badge-template--28630587998578__home_tab_product_tJDMfE-7762813485244">
7059              Framed Wall Vent [Luxe+]
7060            </a>
7061          </h3>
7062          <div class="card-information">
7063              
7064
7065<div
7066    class="
7067      price "
7068  >
7069    <div class="price__container"><!-- REGULAR -->
7070      <div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
7071          <span class="price-item price-item--regular">
7072            $93.00 USD+
7073          </span></div>
7074
7075      
7076
7077      <small class="unit-price caption hidden">
7078        <span class="visually-hidden">Unit price</span>
7079        <span class="price-item price-item--last">
7080          <span></span>
7081          <span aria-hidden="true">/</span>
7082          <span class="visually-hidden">&nbsp;per&nbsp;</span>
7083          <span>
7084          </span>
7085        </span>
7086      </small>
7087    </div></div>
7088
7089
7090            
7091</div>
7092        </div>
7093
7094        
7095        
7096          
7097
7098          <div class="quick-add no-js-hidden"><modal-opener data-modal="#QuickAdd-7762813485244">
7099                <button
7100                  id="quick-add-template--28630587998578__home_tab_product_tJDMfE7762813485244-submit"
7101                  type="submit"
7102                  name="add"
7103                  class="quick-add__submit button button--full-width button--secondary"
7104                  aria-haspopup="dialog"
7105                  aria-labelledby="quick-add-template--28630587998578__home_tab_product_tJDMfE7762813485244-submit title-template--28630587998578__home_tab_product_tJDMfE-7762813485244"
7106                  data-product-url="/products/framed-wall-vent-luxe-plus"
7107                >
7108                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none">
7109                    <g clip-path="url(#clip0_694_4827)">
7110                      <path fill-rule="evenodd" clip-rule="evenodd" d="M3.74172 8.52891C3.71398 8.52891 3.69149 8.5514 3.69149 8.57914C3.69149 8.60687 3.71398 8.62936 3.74172 8.62936C3.76946 8.62936 3.79194 8.60687 3.79194 8.57914C3.79194 8.5514 3.76946 8.52891 3.74172 8.52891ZM2.98835 8.57914C2.98835 8.16306 3.32565 7.82577 3.74172 7.82577C4.15779 7.82577 4.49509 8.16306 4.49509 8.57914C4.49509 8.99521 4.15779 9.3325 3.74172 9.3325C3.32565 9.3325 2.98835 8.99521 2.98835 8.57914Z" fill="#333D4C"/>
7111                      <path fill-rule="evenodd" clip-rule="evenodd" d="M8.16147 8.52891C8.13373 8.52891 8.11125 8.5514 8.11125 8.57914C8.11125 8.60687 8.13373 8.62936 8.16147 8.62936C8.18921 8.62936 8.2117 8.60687 8.2117 8.57914C8.2117 8.5514 8.18921 8.52891 8.16147 8.52891ZM7.4081 8.57914C7.4081 8.16306 7.7454 7.82577 8.16147 7.82577C8.57754 7.82577 8.91484 8.16306 8.91484 8.57914C8.91484 8.99521 8.57754 9.3325 8.16147 9.3325C7.7454 9.3325 7.4081 8.99521 7.4081 8.57914Z" fill="#333D4C"/>
7112                      <path fill-rule="evenodd" clip-rule="evenodd" d="M0.175781 0.543222C0.175781 0.349054 0.333185 0.19165 0.527353 0.19165H2.13454C2.3021 0.19165 2.44638 0.309914 2.47927 0.474223L2.82481 2.20063H9.36686C9.47164 2.20063 9.57095 2.24736 9.63774 2.32809C9.70453 2.40882 9.73183 2.51514 9.71221 2.61806L9.06883 5.99176C9.01601 6.25768 8.87134 6.49654 8.66016 6.66655C8.44992 6.83578 8.1871 6.92604 7.91732 6.92173H4.01801C3.74824 6.92604 3.48541 6.83578 3.27518 6.66655C3.06407 6.49661 2.91944 6.25786 2.86657 5.99206V5.99206L2.19508 2.6371C2.19254 2.62687 2.19045 2.61646 2.18884 2.6059L1.84636 0.894793H0.527353C0.333185 0.894793 0.175781 0.737389 0.175781 0.543222ZM2.96554 2.90377L3.55618 5.85477C3.57685 5.95883 3.63346 6.0523 3.7161 6.11882C3.79873 6.18535 3.90214 6.22068 4.0082 6.21865L4.01494 6.21859H7.92039L7.92713 6.21865C8.0332 6.22068 8.1366 6.18535 8.21924 6.11882C8.30157 6.05254 8.35807 5.95952 8.37892 5.85592L8.37915 5.85477L8.94191 2.90377H2.96554Z" fill="#333D4C"/>
7113                    </g>
7114                    <defs>
7115                      <clipPath id="clip0_694_4827">
7116                        <rect width="9.6431" height="9.6431" fill="white" transform="translate(0.125 0.141357)"/>
7117                      </clipPath>
7118                    </defs>
7119                  </svg>
7120
7121<div class="loading__spinner hidden">
7122  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
7123
7124</div>
7125</button>
7126              </modal-opener>
7127              <quick-add-modal id="QuickAdd-7762813485244" class="quick-add-modal">
7128                <div
7129                  role="dialog"
7130                  aria-label="Choose options for Framed Wall Vent [Luxe+]"
7131                  aria-modal="true"
7132                  class="quick-add-modal__content global-settings-popup"
7133                  tabindex="-1"
7134                >
7135                  <button
7136                    id="ModalClose-7762813485244"
7137                    type="button"
7138                    class="quick-add-modal__toggle"
7139                    aria-label="Close"
7140                  ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
7141</button>
7142                  <div id="QuickAddInfo-7762813485244" class="quick-add-modal__content-info"></div>
7143                </div>
7144              </quick-add-modal></div>
7145
7146          
7147
7148        
7149        <div class="card__badge top left"></div>
7150      </div>
7151      
7152    </div>
7153  </div>
7154                    <div class="my-buy-btn">
7155<div class="" ><product-form
7156      class="product-form"
7157      data-hide-errors="false"
7158      data-section-id="template--28630587998578__home_tab_product_tJDMfE"
7159    >
7160      <div class="product-form__error-message-wrapper" role="alert" hidden>
7161        <span class="svg-wrapper"><svg class="icon icon-error" viewBox="0 0 13 13"><circle cx="6.5" cy="6.5" r="5.5" stroke="#fff" stroke-width="2"/><circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width=".7"/><path fill="#fff" d="m5.874 3.528.1 4.044h1.053l.1-4.044zm.627 6.133c.38 0 .68-.288.68-.656s-.3-.656-.68-.656-.681.288-.681.656.3.656.68.656"/><path fill="#fff" stroke="#EB001B" stroke-width=".7" d="M5.874 3.178h-.359l.01.359.1 4.044.008.341h1.736l.008-.341.1-4.044.01-.359H5.873Zm.627 6.833c.56 0 1.03-.432 1.03-1.006s-.47-1.006-1.03-1.006-1.031.432-1.031 1.006.47 1.006 1.03 1.006Z"/></svg>
7162</span>
7163        <span class="product-form__error-message"></span>
7164      </div><form method="post" action="/cart/add" id="product-form-template--28630587998578__home_tab_product_tJDMfE" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
7165          type="hidden"
7166          name="id"
7167          value="43177651798204"
7168          
7169          class="product-variant-id"
7170        ><div class="product-form__buttons"><button
7171            id="ProductSubmitButton-template--28630587998578__home_tab_product_tJDMfE"
7172            type="submit"
7173            name="add"
7174            class="product-form__submit button button--full-width button--primary"
7175            
7176          >
7177            <span>
7178                    Learn More
7179                  
7180</span>
7181
7182<div class="loading__spinner hidden">
7183  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
7184
7185</div>
7186</button></div><input type="hidden" name="product-id" value="7762813485244" /><input type="hidden" name="section-id" value="template--28630587998578__home_tab_product_tJDMfE" /></form></product-form></div>
7187</div>
7188                  </div>
7189                
7190                  <div class="swiper-slide card-slide">
7191                    <link href="//fittes.ca/cdn/shop/t/139/assets/component-rating.css?v=179577762467860590411788881634" rel="stylesheet" type="text/css" media="all" />
7192  <link href="//fittes.ca/cdn/shop/t/139/assets/component-volume-pricing.css?v=111870094811454961941788881637" rel="stylesheet" type="text/css" media="all" />
7193
7194  <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
7195  <link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
7196<div
7197    preorder-product-element="form"
7198    d-id="7756734005436"
7199    data-product-id="7756734005436"
7200    class="card-wrapper product-card-wrapper underline-links-hover"
7201    style="position: relative;"
7202  >
7203    
7204    <div
7205      class="
7206        card card--standard
7207         card--media
7208        
7209        
7210        
7211        
7212        
7213      "
7214      style="--ratio-percent: 100%;"
7215    >
7216
7217      <div
7218        class="card__inner color-scheme-2 gradient ratio"
7219        style="--ratio-percent: 100%;"
7220      >
7221        
7222<div class="card__media">
7223            <div class="media media--transparent media--hover-effect">
7224              
7225              <img
7226                srcset="//fittes.ca/cdn/shop/files/1-FramedWallVent_Luxe__Lifestyle1_81a536d2-8225-4375-adb6-7c84162bcc16.png?v=1754022130&width=165 165w,//fittes.ca/cdn/shop/files/1-FramedWallVent_Luxe__Lifestyle1_81a536d2-8225-4375-adb6-7c84162bcc16.png?v=1754022130&width=360 360w,//fittes.ca/cdn/shop/files/1-FramedWallVent_Luxe__Lifestyle1_81a536d2-8225-4375-adb6-7c84162bcc16.png?v=1754022130&width=533 533w,//fittes.ca/cdn/shop/files/1-FramedWallVent_Luxe__Lifestyle1_81a536d2-8225-4375-adb6-7c84162bcc16.png?v=1754022130&width=720 720w,//fittes.ca/cdn/shop/files/1-FramedWallVent_Luxe__Lifestyle1_81a536d2-8225-4375-adb6-7c84162bcc16.png?v=1754022130&width=940 940w,//fittes.ca/cdn/shop/files/1-FramedWallVent_Luxe__Lifestyle1_81a536d2-8225-4375-adb6-7c84162bcc16.png?v=1754022130&width=1066 1066w,//fittes.ca/cdn/shop/files/1-FramedWallVent_Luxe__Lifestyle1_81a536d2-8225-4375-adb6-7c84162bcc16.png?v=1754022130 1080w
7227                "
7228                src="//fittes.ca/cdn/shop/files/1-FramedWallVent_Luxe__Lifestyle1_81a536d2-8225-4375-adb6-7c84162bcc16.png?v=1754022130&width=533"
7229                sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
7230                alt="Framed Wall Vent [Luxe]"
7231                class="motion-reduce"
7232                
7233                  loading="lazy"
7234                
7235                width="1080"
7236                height="1080"
7237              >
7238              
7239<img
7240                  srcset="//fittes.ca/cdn/shop/files/7-FramedWallVent_Luxe__Lifestyle1_8b91792c-d2f1-4fbc-aba0-eed00f9bb66e.png?v=1754061306&width=165 165w,//fittes.ca/cdn/shop/files/7-FramedWallVent_Luxe__Lifestyle1_8b91792c-d2f1-4fbc-aba0-eed00f9bb66e.png?v=1754061306&width=360 360w,//fittes.ca/cdn/shop/files/7-FramedWallVent_Luxe__Lifestyle1_8b91792c-d2f1-4fbc-aba0-eed00f9bb66e.png?v=1754061306&width=533 533w,//fittes.ca/cdn/shop/files/7-FramedWallVent_Luxe__Lifestyle1_8b91792c-d2f1-4fbc-aba0-eed00f9bb66e.png?v=1754061306&width=720 720w,//fittes.ca/cdn/shop/files/7-FramedWallVent_Luxe__Lifestyle1_8b91792c-d2f1-4fbc-aba0-eed00f9bb66e.png?v=1754061306&width=940 940w,//fittes.ca/cdn/shop/files/7-FramedWallVent_Luxe__Lifestyle1_8b91792c-d2f1-4fbc-aba0-eed00f9bb66e.png?v=1754061306&width=1066 1066w,//fittes.ca/cdn/shop/files/7-FramedWallVent_Luxe__Lifestyle1_8b91792c-d2f1-4fbc-aba0-eed00f9bb66e.png?v=1754061306 1080w
7241                  "
7242                  src="//fittes.ca/cdn/shop/files/7-FramedWallVent_Luxe__Lifestyle1_8b91792c-d2f1-4fbc-aba0-eed00f9bb66e.png?v=1754061306&width=533"
7243                  sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
7244                  alt=""
7245                  class="motion-reduce"
7246                  loading="lazy"
7247                  width="1080"
7248                  height="1080"
7249                >
7250              </div>
7251          </div><div class="card__content">
7252          <div class="card__information ss">
7253            <h3
7254              class="card__heading"
7255              
7256            >
7257              <a href="/products/framed-wall-vent-luxe" id="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-7756734005436" class="full-unstyled-link" aria-labelledby="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-7756734005436 NoMediaStandardBadge-template--28630587998578__home_tab_product_tJDMfE-7756734005436">
7258                Framed Wall Vent [Luxe]
7259              </a>
7260            </h3>
7261          </div>
7262
7263          
7264          
7265        </div>
7266      </div>
7267
7268      <div class="card__content">
7269        <div class="card__information sss"><ul class="ffp-pills" aria-label="Product features"><li class="ffp-pill" tabindex="0" data-ffp-tip="Drops into the opening with minimal tools. Slight lip at the edge; fully paintable.">Drop-In</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Standard airflow, well suited to most rooms.">Single Air Channel</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Steel construction for a premium, long-lasting finish.">Steel</li></ul>
7270<div class="bv_rating_summary ">
7271              <div data-bv-show="rating_summary" data-bv-product-id="7756734005436"></div>
7272            </div>
7273
7274          <h3
7275            class="card__heading h6"
7276            
7277              id="title-template--28630587998578__home_tab_product_tJDMfE-7756734005436"
7278            
7279          >
7280            <a href="/products/framed-wall-vent-luxe" id="CardLink-template--28630587998578__home_tab_product_tJDMfE-7756734005436" class="full-unstyled-link" aria-labelledby="CardLink-template--28630587998578__home_tab_product_tJDMfE-7756734005436 Badge-template--28630587998578__home_tab_product_tJDMfE-7756734005436">
7281              Framed Wall Vent [Luxe]
7282            </a>
7283          </h3>
7284          <div class="card-information">
7285              
7286
7287<div
7288    class="
7289      price "
7290  >
7291    <div class="price__container"><!-- REGULAR -->
7292      <div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
7293          <span class="price-item price-item--regular">
7294            $64.00 USD+
7295          </span></div>
7296
7297      
7298
7299      <small class="unit-price caption hidden">
7300        <span class="visually-hidden">Unit price</span>
7301        <span class="price-item price-item--last">
7302          <span></span>
7303          <span aria-hidden="true">/</span>
7304          <span class="visually-hidden">&nbsp;per&nbsp;</span>
7305          <span>
7306          </span>
7307        </span>
7308      </small>
7309    </div></div>
7310
7311
7312            
7313</div>
7314        </div>
7315
7316        
7317        
7318          
7319
7320          <div class="quick-add no-js-hidden"><modal-opener data-modal="#QuickAdd-7756734005436">
7321                <button
7322                  id="quick-add-template--28630587998578__home_tab_product_tJDMfE7756734005436-submit"
7323                  type="submit"
7324                  name="add"
7325                  class="quick-add__submit button button--full-width button--secondary"
7326                  aria-haspopup="dialog"
7327                  aria-labelledby="quick-add-template--28630587998578__home_tab_product_tJDMfE7756734005436-submit title-template--28630587998578__home_tab_product_tJDMfE-7756734005436"
7328                  data-product-url="/products/framed-wall-vent-luxe"
7329                >
7330                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none">
7331                    <g clip-path="url(#clip0_694_4827)">
7332                      <path fill-rule="evenodd" clip-rule="evenodd" d="M3.74172 8.52891C3.71398 8.52891 3.69149 8.5514 3.69149 8.57914C3.69149 8.60687 3.71398 8.62936 3.74172 8.62936C3.76946 8.62936 3.79194 8.60687 3.79194 8.57914C3.79194 8.5514 3.76946 8.52891 3.74172 8.52891ZM2.98835 8.57914C2.98835 8.16306 3.32565 7.82577 3.74172 7.82577C4.15779 7.82577 4.49509 8.16306 4.49509 8.57914C4.49509 8.99521 4.15779 9.3325 3.74172 9.3325C3.32565 9.3325 2.98835 8.99521 2.98835 8.57914Z" fill="#333D4C"/>
7333                      <path fill-rule="evenodd" clip-rule="evenodd" d="M8.16147 8.52891C8.13373 8.52891 8.11125 8.5514 8.11125 8.57914C8.11125 8.60687 8.13373 8.62936 8.16147 8.62936C8.18921 8.62936 8.2117 8.60687 8.2117 8.57914C8.2117 8.5514 8.18921 8.52891 8.16147 8.52891ZM7.4081 8.57914C7.4081 8.16306 7.7454 7.82577 8.16147 7.82577C8.57754 7.82577 8.91484 8.16306 8.91484 8.57914C8.91484 8.99521 8.57754 9.3325 8.16147 9.3325C7.7454 9.3325 7.4081 8.99521 7.4081 8.57914Z" fill="#333D4C"/>
7334                      <path fill-rule="evenodd" clip-rule="evenodd" d="M0.175781 0.543222C0.175781 0.349054 0.333185 0.19165 0.527353 0.19165H2.13454C2.3021 0.19165 2.44638 0.309914 2.47927 0.474223L2.82481 2.20063H9.36686C9.47164 2.20063 9.57095 2.24736 9.63774 2.32809C9.70453 2.40882 9.73183 2.51514 9.71221 2.61806L9.06883 5.99176C9.01601 6.25768 8.87134 6.49654 8.66016 6.66655C8.44992 6.83578 8.1871 6.92604 7.91732 6.92173H4.01801C3.74824 6.92604 3.48541 6.83578 3.27518 6.66655C3.06407 6.49661 2.91944 6.25786 2.86657 5.99206V5.99206L2.19508 2.6371C2.19254 2.62687 2.19045 2.61646 2.18884 2.6059L1.84636 0.894793H0.527353C0.333185 0.894793 0.175781 0.737389 0.175781 0.543222ZM2.96554 2.90377L3.55618 5.85477C3.57685 5.95883 3.63346 6.0523 3.7161 6.11882C3.79873 6.18535 3.90214 6.22068 4.0082 6.21865L4.01494 6.21859H7.92039L7.92713 6.21865C8.0332 6.22068 8.1366 6.18535 8.21924 6.11882C8.30157 6.05254 8.35807 5.95952 8.37892 5.85592L8.37915 5.85477L8.94191 2.90377H2.96554Z" fill="#333D4C"/>
7335                    </g>
7336                    <defs>
7337                      <clipPath id="clip0_694_4827">
7338                        <rect width="9.6431" height="9.6431" fill="white" transform="translate(0.125 0.141357)"/>
7339                      </clipPath>
7340                    </defs>
7341                  </svg>
7342
7343<div class="loading__spinner hidden">
7344  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
7345
7346</div>
7347</button>
7348              </modal-opener>
7349              <quick-add-modal id="QuickAdd-7756734005436" class="quick-add-modal">
7350                <div
7351                  role="dialog"
7352                  aria-label="Choose options for Framed Wall Vent [Luxe]"
7353                  aria-modal="true"
7354                  class="quick-add-modal__content global-settings-popup"
7355                  tabindex="-1"
7356                >
7357                  <button
7358                    id="ModalClose-7756734005436"
7359                    type="button"
7360                    class="quick-add-modal__toggle"
7361                    aria-label="Close"
7362                  ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
7363</button>
7364                  <div id="QuickAddInfo-7756734005436" class="quick-add-modal__content-info"></div>
7365                </div>
7366              </quick-add-modal></div>
7367
7368          
7369
7370        
7371        <div class="card__badge top left"></div>
7372      </div>
7373      
7374    </div>
7375  </div>
7376                    <div class="my-buy-btn">
7377<div class="" ><product-form
7378      class="product-form"
7379      data-hide-errors="false"
7380      data-section-id="template--28630587998578__home_tab_product_tJDMfE"
7381    >
7382      <div class="product-form__error-message-wrapper" role="alert" hidden>
7383        <span class="svg-wrapper"><svg class="icon icon-error" viewBox="0 0 13 13"><circle cx="6.5" cy="6.5" r="5.5" stroke="#fff" stroke-width="2"/><circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width=".7"/><path fill="#fff" d="m5.874 3.528.1 4.044h1.053l.1-4.044zm.627 6.133c.38 0 .68-.288.68-.656s-.3-.656-.68-.656-.681.288-.681.656.3.656.68.656"/><path fill="#fff" stroke="#EB001B" stroke-width=".7" d="M5.874 3.178h-.359l.01.359.1 4.044.008.341h1.736l.008-.341.1-4.044.01-.359H5.873Zm.627 6.833c.56 0 1.03-.432 1.03-1.006s-.47-1.006-1.03-1.006-1.031.432-1.031 1.006.47 1.006 1.03 1.006Z"/></svg>
7384</span>
7385        <span class="product-form__error-message"></span>
7386      </div><form method="post" action="/cart/add" id="product-form-template--28630587998578__home_tab_product_tJDMfE" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
7387          type="hidden"
7388          name="id"
7389          value="42946179006652"
7390          
7391          class="product-variant-id"
7392        ><div class="product-form__buttons"><button
7393            id="ProductSubmitButton-template--28630587998578__home_tab_product_tJDMfE"
7394            type="submit"
7395            name="add"
7396            class="product-form__submit button button--full-width button--primary"
7397            
7398          >
7399            <span>
7400                    Learn More
7401                  
7402</span>
7403
7404<div class="loading__spinner hidden">
7405  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
7406
7407</div>
7408</button></div><input type="hidden" name="product-id" value="7756734005436" /><input type="hidden" name="section-id" value="template--28630587998578__home_tab_product_tJDMfE" /></form></product-form></div>
7409</div>
7410                  </div>
7411                
7412                  <div class="swiper-slide card-slide">
7413                    <link href="//fittes.ca/cdn/shop/t/139/assets/component-rating.css?v=179577762467860590411788881634" rel="stylesheet" type="text/css" media="all" />
7414  <link href="//fittes.ca/cdn/shop/t/139/assets/component-volume-pricing.css?v=111870094811454961941788881637" rel="stylesheet" type="text/css" media="all" />
7415
7416  <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
7417  <link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
7418<div
7419    preorder-product-element="form"
7420    d-id="14748889874802"
7421    data-product-id="14748889874802"
7422    class="card-wrapper product-card-wrapper underline-links-hover"
7423    style="position: relative;"
7424  >
7425    
7426    <div
7427      class="
7428        card card--standard
7429         card--media
7430        
7431        
7432        
7433        
7434        
7435      "
7436      style="--ratio-percent: 100%;"
7437    >
7438<div class="product-badges tw-absolute tw-left-2 tw-top-2 tw-z-[1] tw-hidden tw-max-w-[90%] ">
7439    
7440<div
7441        class="product-badge tw-px-2 tw-py-1 tw-text-sm tw-uppercase "
7442        style="color: black; background-color: white;"
7443      >Airflow Increased</div>
7444    
7445  </div>
7446      <div
7447        class="card__inner color-scheme-2 gradient ratio"
7448        style="--ratio-percent: 100%;"
7449      >
7450        
7451<div class="card__media">
7452            <div class="media media--transparent media--hover-effect">
7453              
7454              <img
7455                srcset="//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198533&width=165 165w,//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198533&width=360 360w,//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198533&width=533 533w,//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198533&width=720 720w,//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198533&width=940 940w,//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198533&width=1066 1066w,//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198533 1080w
7456                "
7457                src="//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198533&width=533"
7458                sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
7459                alt="Flush Wall Vent [Lite+]"
7460                class="motion-reduce"
7461                
7462                  loading="lazy"
7463                
7464                width="1080"
7465                height="1080"
7466              >
7467              
7468<img
7469                  srcset="//fittes.ca/cdn/shop/files/DWLITBD10X14WHT-HP_2000_x_2000_px.webp?v=1787678925&width=165 165w,//fittes.ca/cdn/shop/files/DWLITBD10X14WHT-HP_2000_x_2000_px.webp?v=1787678925&width=360 360w,//fittes.ca/cdn/shop/files/DWLITBD10X14WHT-HP_2000_x_2000_px.webp?v=1787678925&width=533 533w,//fittes.ca/cdn/shop/files/DWLITBD10X14WHT-HP_2000_x_2000_px.webp?v=1787678925&width=720 720w,//fittes.ca/cdn/shop/files/DWLITBD10X14WHT-HP_2000_x_2000_px.webp?v=1787678925&width=940 940w,//fittes.ca/cdn/shop/files/DWLITBD10X14WHT-HP_2000_x_2000_px.webp?v=1787678925&width=1066 1066w,//fittes.ca/cdn/shop/files/DWLITBD10X14WHT-HP_2000_x_2000_px.webp?v=1787678925 2000w
7470                  "
7471                  src="//fittes.ca/cdn/shop/files/DWLITBD10X14WHT-HP_2000_x_2000_px.webp?v=1787678925&width=533"
7472                  sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
7473                  alt=""
7474                  class="motion-reduce"
7475                  loading="lazy"
7476                  width="2000"
7477                  height="2000"
7478                >
7479              </div>
7480          </div><div class="card__content">
7481          <div class="card__information ss">
7482            <h3
7483              class="card__heading"
7484              
7485            >
7486              <a href="/products/flush-wall-vent-lite-plus" id="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-14748889874802" class="full-unstyled-link" aria-labelledby="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-14748889874802 NoMediaStandardBadge-template--28630587998578__home_tab_product_tJDMfE-14748889874802">
7487                Flush Wall Vent [Lite+]
7488              </a>
7489            </h3>
7490          </div>
7491
7492          
7493          
7494        </div>
7495      </div>
7496
7497      <div class="card__content">
7498        <div class="card__information sss"><ul class="ffp-pills" aria-label="Product features"><li class="ffp-pill" tabindex="0" data-ffp-tip="Set into the drywall and finished with mud for a seamless, flush look.">Mud-In</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Extra airflow for larger rooms or spaces with fewer vents.">Double Air Channel</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Lightweight, durable ABS plastic that will not rust.">ABS Plastic</li></ul>
7499<div class="bv_rating_summary ">
7500              <div data-bv-show="rating_summary" data-bv-product-id="14748889874802"></div>
7501            </div>
7502
7503          <h3
7504            class="card__heading h6"
7505            
7506              id="title-template--28630587998578__home_tab_product_tJDMfE-14748889874802"
7507            
7508          >
7509            <a href="/products/flush-wall-vent-lite-plus" id="CardLink-template--28630587998578__home_tab_product_tJDMfE-14748889874802" class="full-unstyled-link" aria-labelledby="CardLink-template--28630587998578__home_tab_product_tJDMfE-14748889874802 Badge-template--28630587998578__home_tab_product_tJDMfE-14748889874802">
7510              Flush Wall Vent [Lite+]
7511            </a>
7512          </h3>
7513          <div class="card-information">
7514              
7515
7516<div
7517    class="
7518      price "
7519  >
7520    <div class="price__container"><!-- REGULAR -->
7521      <div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
7522          <span class="price-item price-item--regular">
7523            $34.00 USD+
7524          </span></div>
7525
7526      
7527
7528      <small class="unit-price caption hidden">
7529        <span class="visually-hidden">Unit price</span>
7530        <span class="price-item price-item--last">
7531          <span></span>
7532          <span aria-hidden="true">/</span>
7533          <span class="visually-hidden">&nbsp;per&nbsp;</span>
7534          <span>
7535          </span>
7536        </span>
7537      </small>
7538    </div></div>
7539
7540
7541            
7542</div>
7543        </div>
7544
7545        
7546        
7547          
7548
7549          <div class="quick-add no-js-hidden"><modal-opener data-modal="#QuickAdd-14748889874802">
7550                <button
7551                  id="quick-add-template--28630587998578__home_tab_product_tJDMfE14748889874802-submit"
7552                  type="submit"
7553                  name="add"
7554                  class="quick-add__submit button button--full-width button--secondary"
7555                  aria-haspopup="dialog"
7556                  aria-labelledby="quick-add-template--28630587998578__home_tab_product_tJDMfE14748889874802-submit title-template--28630587998578__home_tab_product_tJDMfE-14748889874802"
7557                  data-product-url="/products/flush-wall-vent-lite-plus"
7558                >
7559                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none">
7560                    <g clip-path="url(#clip0_694_4827)">
7561                      <path fill-rule="evenodd" clip-rule="evenodd" d="M3.74172 8.52891C3.71398 8.52891 3.69149 8.5514 3.69149 8.57914C3.69149 8.60687 3.71398 8.62936 3.74172 8.62936C3.76946 8.62936 3.79194 8.60687 3.79194 8.57914C3.79194 8.5514 3.76946 8.52891 3.74172 8.52891ZM2.98835 8.57914C2.98835 8.16306 3.32565 7.82577 3.74172 7.82577C4.15779 7.82577 4.49509 8.16306 4.49509 8.57914C4.49509 8.99521 4.15779 9.3325 3.74172 9.3325C3.32565 9.3325 2.98835 8.99521 2.98835 8.57914Z" fill="#333D4C"/>
7562                      <path fill-rule="evenodd" clip-rule="evenodd" d="M8.16147 8.52891C8.13373 8.52891 8.11125 8.5514 8.11125 8.57914C8.11125 8.60687 8.13373 8.62936 8.16147 8.62936C8.18921 8.62936 8.2117 8.60687 8.2117 8.57914C8.2117 8.5514 8.18921 8.52891 8.16147 8.52891ZM7.4081 8.57914C7.4081 8.16306 7.7454 7.82577 8.16147 7.82577C8.57754 7.82577 8.91484 8.16306 8.91484 8.57914C8.91484 8.99521 8.57754 9.3325 8.16147 9.3325C7.7454 9.3325 7.4081 8.99521 7.4081 8.57914Z" fill="#333D4C"/>
7563                      <path fill-rule="evenodd" clip-rule="evenodd" d="M0.175781 0.543222C0.175781 0.349054 0.333185 0.19165 0.527353 0.19165H2.13454C2.3021 0.19165 2.44638 0.309914 2.47927 0.474223L2.82481 2.20063H9.36686C9.47164 2.20063 9.57095 2.24736 9.63774 2.32809C9.70453 2.40882 9.73183 2.51514 9.71221 2.61806L9.06883 5.99176C9.01601 6.25768 8.87134 6.49654 8.66016 6.66655C8.44992 6.83578 8.1871 6.92604 7.91732 6.92173H4.01801C3.74824 6.92604 3.4854
75631 6.83578 3.27518 6.66655C3.06407 6.49661 2.91944 6.25786 2.86657 5.99206V5.99206L2.19508 2.6371C2.19254 2.62687 2.19045 2.61646 2.18884 2.6059L1.84636 0.894793H0.527353C0.333185 0.894793 0.175781 0.737389 0.175781 0.543222ZM2.96554 2.90377L3.55618 5.85477C3.57685 5.95883 3.63346 6.0523 3.7161 6.11882C3.79873 6.18535 3.90214 6.22068 4.0082 6.21865L4.01494 6.21859H7.92039L7.92713 6.21865C8.0332 6.22068 8.1366 6.18535 8.21924 6.11882C8.30157 6.05254 8.35807 5.95952 8.37892 5.85592L8.37915 5.85477L8.94191 2.90377H2.96554Z" fill="#333D4C"/>
7564                    </g>
7565                    <defs>
7566                      <clipPath id="clip0_694_4827">
7567                        <rect width="9.6431" height="9.6431" fill="white" transform="translate(0.125 0.141357)"/>
7568                      </clipPath>
7569                    </defs>
7570                  </svg>
7571
7572<div class="loading__spinner hidden">
7573  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
7574
7575</div>
7576</button>
7577              </modal-opener>
7578              <quick-add-modal id="QuickAdd-14748889874802" class="quick-add-modal">
7579                <div
7580                  role="dialog"
7581                  aria-label="Choose options for Flush Wall Vent [Lite+]"
7582                  aria-modal="true"
7583                  class="quick-add-modal__content global-settings-popup"
7584                  tabindex="-1"
7585                >
7586                  <button
7587                    id="ModalClose-14748889874802"
7588                    type="button"
7589                    class="quick-add-modal__toggle"
7590                    aria-label="Close"
7591                  ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
7592</button>
7593                  <div id="QuickAddInfo-14748889874802" class="quick-add-modal__content-info"></div>
7594                </div>
7595              </quick-add-modal></div>
7596
7597          
7598
7599        
7600        <div class="card__badge top left"></div>
7601      </div>
7602      
7603    </div>
7604  </div>
7605                    <div class="my-buy-btn">
7606<div class="" ><product-form
7607      class="product-form"
7608      data-hide-errors="false"
7609      data-section-id="template--28630587998578__home_tab_product_tJDMfE"
7610    >
7611      <div class="product-form__error-message-wrapper" role="alert" hidden>
7612        <span class="svg-wrapper"><svg class="icon icon-error" viewBox="0 0 13 13"><circle cx="6.5" cy="6.5" r="5.5" stroke="#fff" stroke-width="2"/><circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width=".7"/><path fill="#fff" d="m5.874 3.528.1 4.044h1.053l.1-4.044zm.627 6.133c.38 0 .68-.288.68-.656s-.3-.656-.68-.656-.681.288-.681.656.3.656.68.656"/><path fill="#fff" stroke="#EB001B" stroke-width=".7" d="M5.874 3.178h-.359l.01.359.1 4.044.008.341h1.736l.008-.341.1-4.044.01-.359H5.873Zm.627 6.833c.56 0 1.03-.432 1.03-1.006s-.47-1.006-1.03-1.006-1.031.432-1.031 1.006.47 1.006 1.03 1.006Z"/></svg>
7613</span>
7614        <span class="product-form__error-message"></span>
7615      </div><form method="post" action="/cart/add" id="product-form-template--28630587998578__home_tab_product_tJDMfE" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
7616          type="hidden"
7617          name="id"
7618          value="52493906837874"
7619          
7620          class="product-variant-id"
7621        ><div class="product-form__buttons"><button
7622            id="ProductSubmitButton-template--28630587998578__home_tab_product_tJDMfE"
7623            type="submit"
7624            name="add"
7625            class="product-form__submit button button--full-width button--primary"
7626            
7627          >
7628            <span>
7629                    Learn More
7630                  
7631</span>
7632
7633<div class="loading__spinner hidden">
7634  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
7635
7636</div>
7637</button></div><input type="hidden" name="product-id" value="14748889874802" /><input type="hidden" name="section-id" value="template--28630587998578__home_tab_product_tJDMfE" /></form></product-form></div>
7638</div>
7639                  </div>
7640                
7641                  <div class="swiper-slide card-slide">
7642                    <link href="//fittes.ca/cdn/shop/t/139/assets/component-rating.css?v=179577762467860590411788881634" rel="stylesheet" type="text/css" media="all" />
7643  <link href="//fittes.ca/cdn/shop/t/139/assets/component-volume-pricing.css?v=111870094811454961941788881637" rel="stylesheet" type="text/css" media="all" />
7644
7645  <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
7646  <link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
7647<div
7648    preorder-product-element="form"
7649    d-id="7488048824508"
7650    data-product-id="7488048824508"
7651    class="card-wrapper product-card-wrapper underline-links-hover"
7652    style="position: relative;"
7653  >
7654    
7655    <div
7656      class="
7657        card card--standard
7658         card--media
7659        
7660        
7661        
7662        
7663        
7664      "
7665      style="--ratio-percent: 100%;"
7666    >
7667
7668      <div
7669        class="card__inner color-scheme-2 gradient ratio"
7670        style="--ratio-percent: 100%;"
7671      >
7672        
7673<div class="card__media">
7674            <div class="media media--transparent media--hover-effect">
7675              
7676              <img
7677                srcset="//fittes.ca/cdn/shop/files/1-FlushWallVent_Lite__Lifestyle1.jpg?v=1754022170&width=165 165w,//fittes.ca/cdn/shop/files/1-FlushWallVent_Lite__Lifestyle1.jpg?v=1754022170&width=360 360w,//fittes.ca/cdn/shop/files/1-FlushWallVent_Lite__Lifestyle1.jpg?v=1754022170&width=533 533w,//fittes.ca/cdn/shop/files/1-FlushWallVent_Lite__Lifestyle1.jpg?v=1754022170&width=720 720w,//fittes.ca/cdn/shop/files/1-FlushWallVent_Lite__Lifestyle1.jpg?v=1754022170&width=940 940w,//fittes.ca/cdn/shop/files/1-FlushWallVent_Lite__Lifestyle1.jpg?v=1754022170&width=1066 1066w,//fittes.ca/cdn/shop/files/1-FlushWallVent_Lite__Lifestyle1.jpg?v=1754022170 1080w
7678                "
7679                src="//fittes.ca/cdn/shop/files/1-FlushWallVent_Lite__Lifestyle1.jpg?v=1754022170&width=533"
7680                sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
7681                alt="Flush Wall Vent [Lite]"
7682                class="motion-reduce"
7683                
7684                  loading="lazy"
7685                
7686                width="1080"
7687                height="1080"
7688              >
7689              
7690<img
7691                  srcset="//fittes.ca/cdn/shop/files/Flush_Wall_Vent_Lite_-_Lifestyle.webp?v=1782744267&width=165 165w,//fittes.ca/cdn/shop/files/Flush_Wall_Vent_Lite_-_Lifestyle.webp?v=1782744267&width=360 360w,//fittes.ca/cdn/shop/files/Flush_Wall_Vent_Lite_-_Lifestyle.webp?v=1782744267&width=533 533w,//fittes.ca/cdn/shop/files/Flush_Wall_Vent_Lite_-_Lifestyle.webp?v=1782744267&width=720 720w,//fittes.ca/cdn/shop/files/Flush_Wall_Vent_Lite_-_Lifestyle.webp?v=1782744267&width=940 940w,//fittes.ca/cdn/shop/files/Flush_Wall_Vent_Lite_-_Lifestyle.webp?v=1782744267 1000w
7692                  "
7693                  src="//fittes.ca/cdn/shop/files/Flush_Wall_Vent_Lite_-_Lifestyle.webp?v=1782744267&width=533"
7694                  sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
7695                  alt=""
7696                  class="motion-reduce"
7697                  loading="lazy"
7698                  width="1000"
7699                  height="1000"
7700                >
7701              </div>
7702          </div><div class="card__content">
7703          <div class="card__information ss">
7704            <h3
7705              class="card__heading"
7706              
7707            >
7708              <a href="/products/flush-wall-vent-lite" id="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-7488048824508" class="full-unstyled-link" aria-labelledby="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-7488048824508 NoMediaStandardBadge-template--28630587998578__home_tab_product_tJDMfE-7488048824508">
7709                Flush Wall Vent [Lite]
7710              </a>
7711            </h3>
7712          </div>
7713
7714          
7715          
7716        </div>
7717      </div>
7718
7719      <div class="card__content">
7720        <div class="card__information sss"><ul class="ffp-pills" aria-label="Product features"><li class="ffp-pill" tabindex="0" data-ffp-tip="Set into the drywall and finished with mud for a seamless, flush look.">Mud-In</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Standard airflow, well suited to most rooms.">Single Air Channel</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Lightweight, durable ABS plastic that will not rust.">ABS Plastic</li></ul>
7721<div class="bv_rating_summary ">
7722              <div data-bv-show="rating_summary" data-bv-product-id="7488048824508"></div>
7723            </div>
7724
7725          <h3
7726            class="card__heading h6"
7727            
7728              id="title-template--28630587998578__home_tab_product_tJDMfE-7488048824508"
7729            
7730          >
7731            <a href="/products/flush-wall-vent-lite" id="CardLink-template--28630587998578__home_tab_product_tJDMfE-7488048824508" class="full-unstyled-link" aria-labelledby="CardLink-template--28630587998578__home_tab_product_tJDMfE-7488048824508 Badge-template--28630587998578__home_tab_product_tJDMfE-7488048824508">
7732              Flush Wall Vent [Lite]
7733            </a>
7734          </h3>
7735          <div class="card-information">
7736              
7737
7738<div
7739    class="
7740      price "
7741  >
7742    <div class="price__container"><!-- REGULAR -->
7743      <div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
7744          <span class="price-item price-item--regular">
7745            $26.00 USD+
7746          </span></div>
7747
7748      
7749
7750      <small class="unit-price caption hidden">
7751        <span class="visually-hidden">Unit price</span>
7752        <span class="price-item price-item--last">
7753          <span></span>
7754          <span aria-hidden="true">/</span>
7755          <span class="visually-hidden">&nbsp;per&nbsp;</span>
7756          <span>
7757          </span>
7758        </span>
7759      </small>
7760    </div></div>
7761
7762
7763            
7764</div>
7765        </div>
7766
7767        
7768        
7769          
7770
7771          <div class="quick-add no-js-hidden"><modal-opener data-modal="#QuickAdd-7488048824508">
7772                <button
7773                  id="quick-add-template--28630587998578__home_tab_product_tJDMfE7488048824508-submit"
7774                  type="submit"
7775                  name="add"
7776                  class="quick-add__submit button button--full-width button--secondary"
7777                  aria-haspopup="dialog"
7778                  aria-labelledby="quick-add-template--28630587998578__home_tab_product_tJDMfE7488048824508-submit title-template--28630587998578__home_tab_product_tJDMfE-7488048824508"
7779                  data-product-url="/products/flush-wall-vent-lite"
7780                >
7781                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none">
7782                    <g clip-path="url(#clip0_694_4827)">
7783                      <path fill-rule="evenodd" clip-rule="evenodd" d="M3.74172 8.52891C3.71398 8.52891 3.69149 8.5514 3.69149 8.57914C3.69149 8.60687 3.71398 8.62936 3.74172 8.62936C3.76946 8.62936 3.79194 8.60687 3.79194 8.57914C3.79194 8.5514 3.76946 8.52891 3.74172 8.52891ZM2.98835 8.57914C2.98835 8.16306 3.32565 7.82577 3.74172 7.82577C4.15779 7.82577 4.49509 8.16306 4.49509 8.57914C4.49509 8.99521 4.15779 9.3325 3.74172 9.3325C3.32565 9.3325 2.98835 8.99521 2.98835 8.57914Z" fill="#333D4C"/>
7784                      <path fill-rule="evenodd" clip-rule="evenodd" d="M8.16147 8.52891C8.13373 8.52891 8.11125 8.5514 8.11125 8.57914C8.11125 8.60687 8.13373 8.62936 8.16147 8.62936C8.18921 8.62936 8.2117 8.60687 8.2117 8.57914C8.2117 8.5514 8.18921 8.52891 8.16147 8.52891ZM7.4081 8.57914C7.4081 8.16306 7.7454 7.82577 8.16147 7.82577C8.57754 7.82577 8.91484 8.16306 8.91484 8.57914C8.91484 8.99521 8.57754 9.3325 8.16147 9.3325C7.7454 9.3325 7.4081 8.99521 7.4081 8.57914Z" fill="#333D4C"/>
7785                      <path fill-rule="evenodd" clip-rule="evenodd" d="M0.175781 0.543222C0.175781 0.349054 0.333185 0.19165 0.527353 0.19165H2.13454C2.3021 0.19165 2.44638 0.309914 2.47927 0.474223L2.82481 2.20063H9.36686C9.47164 2.20063 9.57095 2.24736 9.63774 2.32809C9.70453 2.40882 9.73183 2.51514 9.71221 2.61806L9.06883 5.99176C9.01601 6.25768 8.87134 6.49654 8.66016 6.66655C8.44992 6.83578 8.1871 6.92604 7.91732 6.92173H4.01801C3.74824 6.92604 3.48541 6.83578 3.27518 6.66655C3.06407 6.49661 2.91944 6.25786 2.86657 5.99206V5.99206L2.19508 2.6371C2.19254 2.62687 2.19045 2.61646 2.18884 2.6059L1.84636 0.894793H0.527353C0.333185 0.894793 0.175781 0.737389 0.175781 0.543222ZM2.96554 2.90377L3.55618 5.85477C3.57685 5.95883 3.63346 6.0523 3.7161 6.11882C3.79873 6.18535 3.90214 6.22068 4.0082 6.21865L4.01494 6.21859H7.92039L7.92713 6.21865C8.0332 6.22068 8.1366 6.18535 8.21924 6.11882C8.30157 6.05254 8.35807 5.95952 8.37892 5.85592L8.37915 5.85477L8.94191 2.90377H2.96554Z" fill="#333D4C"/>
7786                    </g>
7787                    <defs>
7788                      <clipPath id="clip0_694_4827">
7789                        <rect width="9.6431" height="9.6431" fill="white" transform="translate(0.125 0.141357)"/>
7790                      </clipPath>
7791                    </defs>
7792                  </svg>
7793
7794<div class="loading__spinner hidden">
7795  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
7796
7797</div>
7798</button>
7799              </modal-opener>
7800              <quick-add-modal id="QuickAdd-7488048824508" class="quick-add-modal">
7801                <div
7802                  role="dialog"
7803                  aria-label="Choose options for Flush Wall Vent [Lite]"
7804                  aria-modal="true"
7805                  class="quick-add-modal__content global-settings-popup"
7806                  tabindex="-1"
7807                >
7808                  <button
7809                    id="ModalClose-7488048824508"
7810                    type="button"
7811                    class="quick-add-modal__toggle"
7812                    aria-label="Close"
7813                  ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
7814</button>
7815                  <div id="QuickAddInfo-7488048824508" class="quick-add-modal__content-info"></div>
7816                </div>
7817              </quick-add-modal></div>
7818
7819          
7820
7821        
7822        <div class="card__badge top left"></div>
7823      </div>
7824      
7825    </div>
7826  </div>
7827                    <div class="my-buy-btn">
7828<div class="" ><product-form
7829      class="product-form"
7830      data-hide-errors="false"
7831      data-section-id="template--28630587998578__home_tab_product_tJDMfE"
7832    >
7833      <div class="product-form__error-message-wrapper" role="alert" hidden>
7834        <span class="svg-wrapper"><svg class="icon icon-error" viewBox="0 0 13 13"><circle cx="6.5" cy="6.5" r="5.5" stroke="#fff" stroke-width="2"/><circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width=".7"/><path fill="#fff" d="m5.874 3.528.1 4.044h1.053l.1-4.044zm.627 6.133c.38 0 .68-.288.68-.656s-.3-.656-.68-.656-.681.288-.681.656.3.656.68.656"/><path fill="#fff" stroke="#EB001B" stroke-width=".7" d="M5.874 3.178h-.359l.01.359.1 4.044.008.341h1.736l.008-.341.1-4.044.01-.359H5.873Zm.627 6.833c.56 0 1.03-.432 1.03-1.006s-.47-1.006-1.03-1.006-1.031.432-1.031 1.006.47 1.006 1.03 1.006Z"/></svg>
7835</span>
7836        <span class="product-form__error-message"></span>
7837      </div><form method="post" action="/cart/add" id="product-form-template--28630587998578__home_tab_product_tJDMfE" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
7838          type="hidden"
7839          name="id"
7840          value="42531349954748"
7841          
7842          class="product-variant-id"
7843        ><div class="product-form__buttons"><button
7844            id="ProductSubmitButton-template--28630587998578__home_tab_product_tJDMfE"
7845            type="submit"
7846            name="add"
7847            class="product-form__submit button button--full-width button--primary"
7848            
7849          >
7850            <span>
7851                    Learn More
7852                  
7853</span>
7854
7855<div class="loading__spinner hidden">
7856  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
7857
7858</div>
7859</button></div><input type="hidden" name="product-id" value="7488048824508" /><input type="hidden" name="section-id" value="template--28630587998578__home_tab_product_tJDMfE" /></form></product-form></div>
7860</div>
7861                  </div>
7862                
7863                  <div class="swiper-slide card-slide">
7864                    <link href="//fittes.ca/cdn/shop/t/139/assets/component-rating.css?v=179577762467860590411788881634" rel="stylesheet" type="text/css" media="all" />
7865  <link href="//fittes.ca/cdn/shop/t/139/assets/component-volume-pricing.css?v=111870094811454961941788881637" rel="stylesheet" type="text/css" media="all" />
7866
7867  <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
7868  <link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
7869<div
7870    preorder-product-element="form"
7871    d-id="14748886270322"
7872    data-product-id="14748886270322"
7873    class="card-wrapper product-card-wrapper underline-links-hover"
7874    style="position: relative;"
7875  >
7876    
7877    <div
7878      class="
7879        card card--standard
7880         card--media
7881        
7882        
7883        
7884        
7885        
7886      "
7887      style="--ratio-percent: 100%;"
7888    >
7889<div class="product-badges tw-absolute tw-left-2 tw-top-2 tw-z-[1] tw-hidden tw-max-w-[90%] ">
7890    
7891<div
7892        class="product-badge tw-px-2 tw-py-1 tw-text-sm tw-uppercase "
7893        style="color: black; background-color: white;"
7894      >Airflow Increased</div>
7895    
7896  </div>
7897      <div
7898        class="card__inner color-scheme-2 gradient ratio"
7899        style="--ratio-percent: 100%;"
7900      >
7901        
7902<div class="card__media">
7903            <div class="media media--transparent media--hover-effect">
7904              
7905              <img
7906                srcset="//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198565&width=165 165w,//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198565&width=360 360w,//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198565&width=533 533w,//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198565&width=720 720w,//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198565&width=940 940w,//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198565&width=1066 1066w,//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198565 1080w
7907                "
7908                src="//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198565&width=533"
7909                sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
7910                alt="Framed Wall Vent [Lite+]"
7911                class="motion-reduce"
7912                
7913                  loading="lazy"
7914                
7915                width="1080"
7916                height="1080"
7917              >
7918              
7919<img
7920                  srcset="//fittes.ca/cdn/shop/files/preview_images/cec61f8de7b44b5e9c63e555ec680c96.thumbnail.0000000000.jpg?v=1752259765 w
7921                  "
7922                  src="//fittes.ca/cdn/shop/files/preview_images/cec61f8de7b44b5e9c63e555ec680c96.thumbnail.0000000000.jpg?v=1752259765&width=533"
7923                  sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
7924                  alt=""
7925                  class="motion-reduce"
7926                  loading="lazy"
7927                  width=""
7928                  height=""
7929                >
7930              </div>
7931          </div><div class="card__content">
7932          <div class="card__information ss">
7933            <h3
7934              class="card__heading"
7935              
7936            >
7937              <a href="/products/framed-wall-vent-lite-plus" id="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-14748886270322" class="full-unstyled-link" aria-labelledby="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-14748886270322 NoMediaStandardBadge-template--28630587998578__home_tab_product_tJDMfE-14748886270322">
7938                Framed Wall Vent [Lite+]
7939              </a>
7940            </h3>
7941          </div>
7942
7943          
7944          
7945        </div>
7946      </div>
7947
7948      <div class="card__content">
7949        <div class="card__information sss"><ul class="ffp-pills" aria-label="Product features"><li class="ffp-pill" tabindex="0" data-ffp-tip="Drops into the opening with minimal tools. Slight lip at the edge; fully paintable.">Drop-In</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Extra airflow for larger rooms or spaces with fewer vents.">Double Air Channel</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Lightweight, durable ABS plastic that will not rust.">ABS Plastic</li></ul>
7950<div class="bv_rating_summary ">
7951              <div data-bv-show="rating_summary" data-bv-product-id="14748886270322"></div>
7952            </div>
7953
7954          <h3
7955            class="card__heading h6"
7956            
7957              id="title-template--28630587998578__home_tab_product_tJDMfE-14748886270322"
7958            
7959          >
7960            <a href="/products/framed-wall-vent-lite-plus" id="CardLink-template--28630587998578__home_tab_product_tJDMfE-14748886270322" class="full-unstyled-link" aria-labelledby="CardLink-template--28630587998578__home_tab_product_tJDMfE-14748886270322 Badge-template--28630587998578__home_tab_product_tJDMfE-14748886270322">
7961              Framed Wall Vent [Lite+]
7962            </a>
7963          </h3>
7964          <div class="card-information">
7965              
7966
7967<div
7968    class="
7969      price "
7970  >
7971    <div class="price__container"><!-- REGULAR -->
7972      <div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
7973          <span class="price-item price-item--regular">
7974            $34.00 USD+
7975          </span></div>
7976
7977      
7978
7979      <small class="unit-price caption hidden">
7980        <span class="visually-hidden">Unit price</span>
7981        <span class="price-item price-item--last">
7982          <span></span>
7983          <span aria-hidden="true">/</span>
7984          <span class="visually-hidden">&nbsp;per&nbsp;</span>
7985          <span>
7986          </span>
7987        </span>
7988      </small>
7989    </div></div>
7990
7991
7992            
7993</div>
7994        </div>
7995
7996        
7997        
7998          
7999
8000          <div class="quick-add no-js-hidden"><modal-opener data-modal="#QuickAdd-14748886270322">
8001                <button
8002                  id="quick-add-template--28630587998578__home_tab_product_tJDMfE14748886270322-submit"
8003                  type="submit"
8004                  name="add"
8005                  class="quick-add__submit button button--full-width button--secondary"
8006                  aria-haspopup="dialog"
8007                  aria-labelledby="quick-add-template--28630587998578__home_tab_product_tJDMfE14748886270322-submit title-template--28630587998578__home_tab_product_tJDMfE-14748886270322"
8008                  data-product-url="/products/framed-wall-vent-lite-plus"
8009                >
8010                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none">
8011                    <g clip-path="url(#clip0_694_4827)">
8012                      <path fill-rule="evenodd" clip-rule="evenodd" d="M3.74172 8.52891C3.71398 8.52891 3.69149 8.5514 3.69149 8.57914C3.69149 8.60687 3.71398 8.62936 3.74172 8.62936C3.76946 8.62936 3.79194 8.60687 3.79194 8.57914C3.79194 8.5514 3.76946 8.52891 3.74172 8.52891ZM2.98835 8.57914C2.98835 8.16306 3.32565 7.82577 3.74172 7.82577C4.15779 7.82577 4.49509 8.16306 4.49509 8.57914C4.49509 8.99521 4.15779 9.3325 3.74172 9.3325C3.32565 9.3325 2.98835 8.99521 2.98835 8.57914Z" fill="#333D4C"/>
8013                      <path fill-rule="evenodd" clip-rule="evenodd" d="M8.16147 8.52891C8.13373 8.52891 8.11125 8.5514 8.11125 8.57914C8.11125 8.60687 8.13373 8.62936 8.16147 8.62936C8.18921 8.62936 8.2117 8.60687 8.2117 8.57914C8.2117 8.5514 8.18921 8.52891 8.16147 8.52891ZM7.4081 8.57914C7.4081 8.16306 7.7454 7.82577 8.16147 7.82577C8.57754 7.82577 8.91484 8.16306 8.91484 8.57914C8.91484 8.99521 8.57754 9.3325 8.16147 9.3325C7.7454 9.3325 7.4081 8.99521 7.4081 8.57914Z" fill="#333D4C"/>
8014                      <path fill-rule="evenodd" clip-rule="evenodd" d="M0.175781 0.543222C0.175781 0.349054 0.333185 0.19165 0.527353 0.19165H2.13454C2.3021 0.19165 2.44638 0.309914 2.47927 0.474223L2.82481 2.20063H9.36686C9.47164 2.20063 9.57095 2.24736 9.63774 2.32809C9.70453 2.40882 9.73183 2.51514 9.71221 2.61806L9.06883 5.99176C9.01601 6.25768 8.87134 6.49654 8.66016 6.66655C8.44992 6.83578 8.1871 6.92604 7.91732 6.92173H4.01801C3.74824 6.92604 3.4854
80141 6.83578 3.27518 6.66655C3.06407 6.49661 2.91944 6.25786 2.86657 5.99206V5.99206L2.19508 2.6371C2.19254 2.62687 2.19045 2.61646 2.18884 2.6059L1.84636 0.894793H0.527353C0.333185 0.894793 0.175781 0.737389 0.175781 0.543222ZM2.96554 2.90377L3.55618 5.85477C3.57685 5.95883 3.63346 6.0523 3.7161 6.11882C3.79873 6.18535 3.90214 6.22068 4.0082 6.21865L4.01494 6.21859H7.92039L7.92713 6.21865C8.0332 6.22068 8.1366 6.18535 8.21924 6.11882C8.30157 6.05254 8.35807 5.95952 8.37892 5.85592L8.37915 5.85477L8.94191 2.90377H2.96554Z" fill="#333D4C"/>
8015                    </g>
8016                    <defs>
8017                      <clipPath id="clip0_694_4827">
8018                        <rect width="9.6431" height="9.6431" fill="white" transform="translate(0.125 0.141357)"/>
8019                      </clipPath>
8020                    </defs>
8021                  </svg>
8022
8023<div class="loading__spinner hidden">
8024  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
8025
8026</div>
8027</button>
8028              </modal-opener>
8029              <quick-add-modal id="QuickAdd-14748886270322" class="quick-add-modal">
8030                <div
8031                  role="dialog"
8032                  aria-label="Choose options for Framed Wall Vent [Lite+]"
8033                  aria-modal="true"
8034                  class="quick-add-modal__content global-settings-popup"
8035                  tabindex="-1"
8036                >
8037                  <button
8038                    id="ModalClose-14748886270322"
8039                    type="button"
8040                    class="quick-add-modal__toggle"
8041                    aria-label="Close"
8042                  ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
8043</button>
8044                  <div id="QuickAddInfo-14748886270322" class="quick-add-modal__content-info"></div>
8045                </div>
8046              </quick-add-modal></div>
8047
8048          
8049
8050        
8051        <div class="card__badge top left"></div>
8052      </div>
8053      
8054    </div>
8055  </div>
8056                    <div class="my-buy-btn">
8057<div class="" ><product-form
8058      class="product-form"
8059      data-hide-errors="false"
8060      data-section-id="template--28630587998578__home_tab_product_tJDMfE"
8061    >
8062      <div class="product-form__error-message-wrapper" role="alert" hidden>
8063        <span class="svg-wrapper"><svg class="icon icon-error" viewBox="0 0 13 13"><circle cx="6.5" cy="6.5" r="5.5" stroke="#fff" stroke-width="2"/><circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width=".7"/><path fill="#fff" d="m5.874 3.528.1 4.044h1.053l.1-4.044zm.627 6.133c.38 0 .68-.288.68-.656s-.3-.656-.68-.656-.681.288-.681.656.3.656.68.656"/><path fill="#fff" stroke="#EB001B" stroke-width=".7" d="M5.874 3.178h-.359l.01.359.1 4.044.008.341h1.736l.008-.341.1-4.044.01-.359H5.873Zm.627 6.833c.56 0 1.03-.432 1.03-1.006s-.47-1.006-1.03-1.006-1.031.432-1.031 1.006.47 1.006 1.03 1.006Z"/></svg>
8064</span>
8065        <span class="product-form__error-message"></span>
8066      </div><form method="post" action="/cart/add" id="product-form-template--28630587998578__home_tab_product_tJDMfE" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
8067          type="hidden"
8068          name="id"
8069          value="52493908509042"
8070          
8071          class="product-variant-id"
8072        ><div class="product-form__buttons"><button
8073            id="ProductSubmitButton-template--28630587998578__home_tab_product_tJDMfE"
8074            type="submit"
8075            name="add"
8076            class="product-form__submit button button--full-width button--primary"
8077            
8078          >
8079            <span>
8080                    Learn More
8081                  
8082</span>
8083
8084<div class="loading__spinner hidden">
8085  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
8086
8087</div>
8088</button></div><input type="hidden" name="product-id" value="14748886270322" /><input type="hidden" name="section-id" value="template--28630587998578__home_tab_product_tJDMfE" /></form></product-form></div>
8089</div>
8090                  </div>
8091                
8092                  <div class="swiper-slide card-slide">
8093                    <link href="//fittes.ca/cdn/shop/t/139/assets/component-rating.css?v=179577762467860590411788881634" rel="stylesheet" type="text/css" media="all" />
8094  <link href="//fittes.ca/cdn/shop/t/139/assets/component-volume-pricing.css?v=111870094811454961941788881637" rel="stylesheet" type="text/css" media="all" />
8095
8096  <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
8097  <link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
8098<div
8099    preorder-product-element="form"
8100    d-id="7488051216572"
8101    data-product-id="7488051216572"
8102    class="card-wrapper product-card-wrapper underline-links-hover"
8103    style="position: relative;"
8104  >
8105    
8106    <div
8107      class="
8108        card card--standard
8109         card--media
8110        
8111        
8112        
8113        
8114        
8115      "
8116      style="--ratio-percent: 100%;"
8117    >
8118
8119      <div
8120        class="card__inner color-scheme-2 gradient ratio"
8121        style="--ratio-percent: 100%;"
8122      >
8123        
8124<div class="card__media">
8125            <div class="media media--transparent media--hover-effect">
8126              
8127              <img
8128                srcset="//fittes.ca/cdn/shop/files/1-FramedWallVent_Lite__Lifestyle1.jpg?v=1754022166&width=165 165w,//fittes.ca/cdn/shop/files/1-FramedWallVent_Lite__Lifestyle1.jpg?v=1754022166&width=360 360w,//fittes.ca/cdn/shop/files/1-FramedWallVent_Lite__Lifestyle1.jpg?v=1754022166&width=533 533w,//fittes.ca/cdn/shop/files/1-FramedWallVent_Lite__Lifestyle1.jpg?v=1754022166&width=720 720w,//fittes.ca/cdn/shop/files/1-FramedWallVent_Lite__Lifestyle1.jpg?v=1754022166&width=940 940w,//fittes.ca/cdn/shop/files/1-FramedWallVent_Lite__Lifestyle1.jpg?v=1754022166&width=1066 1066w,//fittes.ca/cdn/shop/files/1-FramedWallVent_Lite__Lifestyle1.jpg?v=1754022166 1080w
8129                "
8130                src="//fittes.ca/cdn/shop/files/1-FramedWallVent_Lite__Lifestyle1.jpg?v=1754022166&width=533"
8131                sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
8132                alt="Framed Wall Vent [Lite]"
8133                class="motion-reduce"
8134                
8135                  loading="lazy"
8136                
8137                width="1080"
8138                height="1080"
8139              >
8140              
8141<img
8142                  srcset="//fittes.ca/cdn/shop/files/7-FramedWallVent_Lite__Lifestyle2.png?v=1754060149&width=165 165w,//fittes.ca/cdn/shop/files/7-FramedWallVent_Lite__Lifestyle2.png?v=1754060149&width=360 360w,//fittes.ca/cdn/shop/files/7-FramedWallVent_Lite__Lifestyle2.png?v=1754060149&width=533 533w,//fittes.ca/cdn/shop/files/7-FramedWallVent_Lite__Lifestyle2.png?v=1754060149&width=720 720w,//fittes.ca/cdn/shop/files/7-FramedWallVent_Lite__Lifestyle2.png?v=1754060149&width=940 940w,//fittes.ca/cdn/shop/files/7-FramedWallVent_Lite__Lifestyle2.png?v=1754060149&width=1066 1066w,//fittes.ca/cdn/shop/files/7-FramedWallVent_Lite__Lifestyle2.png?v=1754060149 1080w
8143                  "
8144                  src="//fittes.ca/cdn/shop/files/7-FramedWallVent_Lite__Lifestyle2.png?v=1754060149&width=533"
8145                  sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
8146                  alt=""
8147                  class="motion-reduce"
8148                  loading="lazy"
8149                  width="1080"
8150                  height="1080"
8151                >
8152              </div>
8153          </div><div class="card__content">
8154          <div class="card__information ss">
8155            <h3
8156              class="card__heading"
8157              
8158            >
8159              <a href="/products/framed-wall-vent-lite" id="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-7488051216572" 
8159class="full-unstyled-link" aria-labelledby="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-7488051216572 NoMediaStandardBadge-template--28630587998578__home_tab_product_tJDMfE-7488051216572">
8160                Framed Wall Vent [Lite]
8161              </a>
8162            </h3>
8163          </div>
8164
8165          
8166          
8167        </div>
8168      </div>
8169
8170      <div class="card__content">
8171        <div class="card__information sss"><ul class="ffp-pills" aria-label="Product features"><li class="ffp-pill" tabindex="0" data-ffp-tip="Drops into the opening with minimal tools. Slight lip at the edge; fully paintable.">Drop-In</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Standard airflow, well suited to most rooms.">Single Air Channel</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Lightweight, durable ABS plastic that will not rust.">ABS Plastic</li></ul>
8172<div class="bv_rating_summary ">
8173              <div data-bv-show="rating_summary" data-bv-product-id="7488051216572"></div>
8174            </div>
8175
8176          <h3
8177            class="card__heading h6"
8178            
8179              id="title-template--28630587998578__home_tab_product_tJDMfE-7488051216572"
8180            
8181          >
8182            <a href="/products/framed-wall-vent-lite" id="CardLink-template--28630587998578__home_tab_product_tJDMfE-7488051216572" 
8182class="full-unstyled-link" aria-labelledby="CardLink-template--28630587998578__home_tab_product_tJDMfE-7488051216572 Badge-template--28630587998578__home_tab_product_tJDMfE-7488051216572">
8183              Framed Wall Vent [Lite]
8184            </a>
8185          </h3>
8186          <div class="card-information">
8187              
8188
8189<div
8190    class="
8191      price "
8192  >
8193    <div class="price__container"><!-- REGULAR -->
8194      <div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
8195          <span class="price-item price-item--regular">
8196            $26.00 USD+
8197          </span></div>
8198
8199      
8200
8201      <small class="unit-price caption hidden">
8202        <span class="visually-hidden">Unit price</span>
8203        <span class="price-item price-item--last">
8204          <span></span>
8205          <span aria-hidden="true">/</span>
8206          <span class="visually-hidden">&nbsp;per&nbsp;</span>
8207          <span>
8208          </span>
8209        </span>
8210      </small>
8211    </div></div>
8212
8213
8214            
8215</div>
8216        </div>
8217
8218        
8219        
8220          
8221
8222          <div class="quick-add no-js-hidden"><modal-opener data-modal="#QuickAdd-7488051216572">
8223                <button
8224                  id="quick-add-template--28630587998578__home_tab_product_tJDMfE7488051216572-submit"
8225                  type="submit"
8226                  name="add"
8227                  class="quick-add__submit button button--full-width button--secondary"
8228                  aria-haspopup="dialog"
8229                  aria-labelledby="quick-add-template--28630587998578__home_tab_product_tJDMfE7488051216572-submit title-template--28630587998578__home_tab_product_tJDMfE-7488051216572"
8230                  data-product-url="/products/framed-wall-vent-lite"
8231                >
8232                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none">
8233                    <g clip-path="url(#clip0_694_4827)">
8234                      <path fill-rule="evenodd" clip-rule="evenodd" d="M3.74172 8.52891C3.71398 8.52891 3.69149 8.5514 3.69149 8.57914C3.69149 8.60687 3.71398 8.62936 3.74172 8.62936C3.76946 8.62936 3.79194 8.60687 3.79194 8.57914C3.79194 8.5514 3.76946 8.52891 3.74172 8.52891ZM2.98835 8.57914C2.98835 8.16306 3.32565 7.82577 3.74172 7.82577C4.15779 7.82577 4.49509 8.16306 4.49509 8.57914C4.49509 8.99521 4.15779 9.3325 3.74172 9.3325C3.32565 9.3325 2.98835 8.99521 2.98835 8.57914Z" fill="#333D4C"/>
8235                      <path fill-rule="evenodd" clip-rule="evenodd" d="M8.16147 8.52891C8.13373 8.52891 8.11125 8.5514 8.11125 8.57914C8.11125 8.60687 8.13373 8.62936 8.16147 8.62936C8.18921 8.62936 8.2117 8.60687 8.2117 8.57914C8.2117 8.5514 8.18921 8.52891 8.16147 8.52891ZM7.4081 8.57914C7.4081 8.16306 7.7454 7.82577 8.16147 7.82577C8.57754 7.82577 8.91484 8.16306 8.91484 8.57914C8.91484 8.99521 8.57754 9.3325 8.16147 9.3325C7.7454 9.3325 7.4081 8.99521 7.4081 8.57914Z" fill="#333D4C"/>
8236                      <path fill-rule="evenodd" clip-rule="evenodd" d="M0.175781 0.543222C0.175781 0.349054 0.333185 0.19165 0.527353 0.19165H2.13454C2.3021 0.19165 2.44638 0.309914 2.47927 0.474223L2.82481 2.20063H9.36686C9.47164 2.20063 9.57095 2.24736 9.63774 2.32809C9.70453 2.40882 9.73183 2.51514 9.71221 2.61806L9.06883 5.99176C9.01601 6.25768 8.87134 6.49654 8.66016 6.66655C8.44992 6.83578 8.1871 6.92604 7.91732 6.92173H4.01801C3.74824 6.92604 3.48541 6.83578 3.27518 6.66655C3.06407 6.49661 2.91944 6.25786 2.86657 5.99206V5.99206L2.19508 2.6371C2.19254 2.62687 2.19045 2.61646 2.18884 2.6059L1.84636 0.894793H0.527353C0.333185 0.894793 0.175781 0.737389 0.175781 0.543222ZM2.96554 2.90377L3.55618 5.85477C3.57685 5.95883 3.63346 6.0523 3.7161 6.11882C3.79873 6.18535 3.90214 6.22068 4.0082 6.21865L4.01494 6.21859H7.92039L7.92713 6.21865C8.0332 6.22068 8.1366 6.18535 8.21924 6.11882C8.30157 6.05254 8.35807 5.95952 8.37892 5.85592L8.37915 5.85477L8.94191 2.90377H2.96554Z" fill="#333D4C"/>
8237                    </g>
8238                    <defs>
8239                      <clipPath id="clip0_694_4827">
8240                        <rect width="9.6431" height="9.6431" fill="white" transform="translate(0.125 0.141357
8240)"/>
8241                      </clipPath>
8242                    </defs>
8243                  </svg>
8244
8245<div class="loading__spinner hidden">
8246  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
8247
8248</div>
8249</button>
8250              </modal-opener>
8251              <quick-add-modal id="QuickAdd-7488051216572" class="quick-add-modal">
8252                <div
8253                  role="dialog"
8254                  aria-label="Choose options for Framed Wall Vent [Lite]"
8255                  aria-modal="true"
8256                  class="quick-add-modal__content global-settings-popup"
8257                  tabindex="-1"
8258                >
8259                  <button
8260                    id="ModalClose-7488051216572"
8261                    type="button"
8262                    class="quick-add-modal__toggle"
8263                    aria-label="Close"
8264                  ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
8265</button>
8266                  <div id="QuickAddInfo-7488051216572" class="quick-add-modal__content-info"></div>
8267                </div>
8268              </quick-add-modal></div>
8269
8270          
8271
8272        
8273        <div class="card__badge top left"></div>
8274      </div>
8275      
8276    </div>
8277  </div>
8278                    <div class="my-buy-btn">
8279<div class="" ><product-form
8280      class="product-form"
8281      data-hide-errors="false"
8282      data-section-id="template--28630587998578__home_tab_product_tJDMfE"
8283    >
8284      <div class="product-form__error-message-wrapper" role="alert" hidden>
8285        <span class="svg-wrapper"><svg class="icon icon-error" viewBox="0 0 13 13"><circle cx="6.5" cy="6.5" r="5.5" stroke="#fff" stroke-width="2"/><circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width=".7"/><path fill="#fff" d="m5.874 3.528.1 4.044h1.053l.1-4.044zm.627 6.133c.38 0 .68-.288.68-.656s-.3-.656-.68-.656-.681.288-.681.656.3.656.68.656"/><path fill="#fff" stroke="#EB001B" stroke-width=".7" d="M5.874 3.178h-.359l.01.359.1 4.044.008.341h1.736l.008-.341.1-4.044.01-.359H5.873Zm.627 6.833c.56 0 1.03-.432 1.03-1.006s-.47-1.006-1.03-1.006-1.031.432-1.031 1.006.47 1.006 1.03 1.006Z"/></svg>
8286</span>
8287        <span class="product-form__error-message"></span>
8288      </div><form method="post" action="/cart/add" id="product-form-template--28630587998578__home_tab_product_tJDMfE" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
8289          type="hidden"
8290          name="id"
8291          value="42531455566012"
8292          
8293          class="product-variant-id"
8294        ><div class="product-form__buttons"><button
8295            id="ProductSubmitButton-template--28630587998578__home_tab_product_tJDMfE"
8296            type="submit"
8297            name="add"
8298            class="product-form__submit button button--full-width button--primary"
8299            
8300          >
8301            <span>
8302                    Learn More
8303                  
8304</span>
8305
8306<div class="loading__spinner hidden">
8307  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
8308
8309</div>
8310</button></div><input type="hidden" name="product-id" value="7488051216572" /><input type="hidden" name="section-id" value="template--28630587998578__home_tab_product_tJDMfE" /></form></product-form></div>
8311</div>
8312                  </div>
8313                
8314              </div>
8315            </div>
8316            <div class="swiper-button-prev small-hide swiper-button-disabled">
8317              <svg xmlns="http://www.w3.org/2000/svg" width="27" height="27" viewBox="0 0 27 27" fill="none">
8318                <path d="M22.1953 13.9355H4.98519M4.98519 13.9355C4.98519 13.9355 9.86348 10.7272 10.8548 8.06592M4.98519 13.9355C4.98519 13.9355 9.29778 16.95 10.8548 19.805" stroke="#1E1E1E" stroke-width="2.17391" stroke-linecap="square"/>
8319              </svg>
8320            </div>
8321            <div class="swiper-button-next small-hide">
8322              <svg xmlns="http://www.w3.org/2000/svg" width="27" height="27" viewBox="0 0 27 27" fill="none">
8323                <path d="M4.80469 13.9355H22.0148M22.0148 13.9355C22.0148 13.9355 17.1365 10.7272 16.1452 8.06592M22.0148 13.9355C22.0148 13.9355 17.7022 16.95 16.1452 19.805" stroke="#1E1E1E" stroke-width="2.17391" stroke-linecap="square"/>
8324              </svg>
8325            </div>
8326          </div>
8327        </template>
8328      </div>
8329    
8330      <div class="series-product-bottom" data-content="floor-vents" data-index="1"><template data-swiper-template>
8331          <div class="swiper-outer-wrapper">
8332            <div class="swiper mySwiper series-product-product">
8333              <div class="swiper-wrapper">
8334                
8335                  <div class="swiper-slide card-slide">
8336                    <link href="//fittes.ca/cdn/shop/t/139/assets/component-rating.css?v=179577762467860590411788881634" rel="stylesheet" type="text/css" media="all" />
8337  <link href="//fittes.ca/cdn/shop/t/139/assets/component-volume-pricing.css?v=111870094811454961941788881637" rel="stylesheet" type="text/css" media="all" />
8338
8339  <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
8340  <link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
8341<div
8342    preorder-product-element="form"
8343    d-id="8029697212604"
8344    data-product-id="8029697212604"
8345    class="card-wrapper product-card-wrapper underline-links-hover"
8346    style="position: relative;"
8347  >
8348    
8349    <div
8350      class="
8351        card card--standard
8352         card--media
8353        
8354        
8355        
8356        
8357        
8358      "
8359      style="--ratio-percent: 100%;"
8360    >
8361<div class="product-badges tw-absolute tw-left-2 tw-top-2 tw-z-[1] tw-hidden tw-max-w-[90%] ">
8362    
8363<div
8364        class="product-badge tw-px-2 tw-py-1 tw-text-sm tw-uppercase "
8365        style="color: black; background-color: white;"
8366      >Airflow Increased</div>
8367    
8368  </div>
8369      <div
8370        class="card__inner color-scheme-2 gradient ratio"
8371        style="--ratio-percent: 100%;"
8372      >
8373        
8374<div class="card__media">
8375            <div class="media media--transparent media--hover-effect">
8376              
8377              <img
8378                srcset="//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Luxe___Lifestyle_1_baa012c5-72d0-4e2a-9397-b05a915b2aeb.jpg?v=1772198044&width=165 165w,//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Luxe___Lifestyle_1_baa012c5-72d0-4e2a-9397-b05a915b2aeb.jpg?v=1772198044&width=360 360w,//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Luxe___Lifestyle_1_baa012c5-72d0-4e2a-9397-b05a915b2aeb.jpg?v=1772198044&width=533 533w,//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Luxe___Lifestyle_1_baa012c5-72d0-4e2a-9397-b05a915b2aeb.jpg?v=1772198044&width=720 720w,//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Luxe___Lifestyle_1_baa012c5-72d0-4e2a-9397-b05a915b2aeb.jpg?v=1772198044&width=940 940w,//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Luxe___Lifestyle_1_baa012c5-72d0-4e2a-9397-b05a915b2aeb.jpg?v=1772198044&width=1066 1066w,//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Luxe___Lifestyle_1_baa012c5-72d0-4e2a-9397-b05a915b2aeb.jpg?v=1772198044 1080w
8379                "
8380                src="//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Luxe___Lifestyle_1_baa012c5-72d0-4e2a-9397-b05a915b2aeb.jpg?v=1772198044&width=533"
8381                sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
8382                alt="Flush Floor Vent [Luxe+]"
8383                class="motion-reduce"
8384                
8385                  loading="lazy"
8386                
8387                width="1080"
8388                height="1080"
8389              >
8390              
8391<img
8392                  srcset="//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Luxe_-_Lifestyle.webp?v=1782744011&width=165 165w,//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Luxe_-_Lifestyle.webp?v=1782744011&width=360 360w,//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Luxe_-_Lifestyle.webp?v=1782744011&width=533 533w,//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Luxe_-_Lifestyle.webp?v=1782744011&width=720 720w,//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Luxe_-_Lifestyle.webp?v=1782744011&width=940 940w,//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Luxe_-_Lifestyle.webp?v=1782744011 1000w
8393                  "
8394                  src="//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Luxe_-_Lifestyle.webp?v=1782744011&width=533"
8395                  sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
8396                  alt=""
8397                  class="motion-reduce"
8398                  loading="lazy"
8399                  width="1000"
8400                  height="1000"
8401                >
8402              </div>
8403          </div><div class="card__content">
8404          <div class="card__information ss">
8405            <h3
8406              class="card__heading"
8407              
8408            >
8409              <a href="/products/flush-floor-vent-luxe-plus" id="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-8029697212604" class="full-unstyled-link" aria-labelledby="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-8029697212604 NoMediaStandardBadge-template--28630587998578__home_tab_product_tJDMfE-8029697212604">
8410                Flush Floor Vent [Luxe+]
8411              </a>
8412            </h3>
8413          </div>
8414
8415          
8416          
8417        </div>
8418      </div>
8419
8420      <div class="card__content">
8421        <div class="card__information sss"><ul class="ffp-pills" aria-label="Product features"><li class="ffp-pill" tabindex="0" data-ffp-tip="Installs before the flooring goes down, sitting flush on the sub-floor.">Sub-Floor</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Extra airflow for larger rooms or spaces with fewer vents.">Double Air Channel</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Steel construction for a premium, long-lasting finish.">Steel</li></ul>
8422<div class="bv_rating_summary ">
8423              <div data-bv-show="rating_summary" data-bv-product-id="8029697212604"></div>
8424            </div>
8425
8426          <h3
8427            class="card__heading h6"
8428            
8429              id="title-template--28630587998578__home_tab_product_tJDMfE-8029697212604"
8430            
8431          >
8432            <a href="/products/flush-floor-vent-luxe-plus" id="CardLink-template--28630587998578__home_tab_product_tJDMfE-8029697212604" class="full-unstyled-link" aria-labelledby="CardLink-template--28630587998578__home_tab_product_tJDMfE-8029697212604 Badge-template--28630587998578__home_tab_product_tJDMfE-8029697212604">
8433              Flush Floor Vent [Luxe+]
8434            </a>
8435          </h3>
8436          <div class="card-information">
8437              
8438
8439<div
8440    class="
8441      price "
8442  >
8443    <div class="price__container"><!-- REGULAR -->
8444      <div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
8445          <span class="price-item price-item--regular">
8446            $100.00 USD+
8447          </span></div>
8448
8449      
8450
8451      <small class="unit-price caption hidden">
8452        <span class="visually-hidden">Unit price</span>
8453        <span class="price-item price-item--last">
8454          <span></span>
8455          <span aria-hidden="true">/</span>
8456          <span class="visually-hidden">&nbsp;per&nbsp;</span>
8457          <span>
8458          </span>
8459        </span>
8460      </small>
8461    </div></div>
8462
8463
8464            
8465</div>
8466        </div>
8467
8468        
8469        
8470          
8471
8472          <div class="quick-add no-js-hidden"><modal-opener data-modal="#QuickAdd-8029697212604">
8473                <button
8474                  id="quick-add-template--28630587998578__home_tab_product_tJDMfE8029697212604-submit"
8475                  type="submit"
8476                  name="add"
8477                  class="quick-add__submit button button--full-width button--secondary"
8478                  aria-haspopup="dialog"
8479                  aria-labelledby="quick-add-template--28630587998578__home_tab_product_tJDMfE8029697212604-submit title-template--28630587998578__home_tab_product_tJDMfE-8029697212604"
8480                  data-product-url="/products/flush-floor-vent-luxe-plus"
8481                >
8482                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none">
8483                    <g clip-path="url(#clip0_694_4827)">
8484                      <path fill-rule="evenodd" clip-rule="evenodd" d="M3.74172 8.52891C3.71398 8.52891 3.69149 8.5514 3.69149 8.57914C3.69149 8.60687 3.71398 8.62936 3.74172 8.62936C3.76946 8.62936 3.79194 8.60687 3.79194 8.57914C3.79194 8.5514 3.76946 8.52891 3.74172 8.52891ZM2.98835 8.57914C2.98835 8.16306 3.32565 7.82577 3.74172 7.82577C4.15779 7.82577 4.49509 8.16306 4.49509 8.57914C4.49509 8.99521 4.15779 9.3325 3.74172 9.3325C3.32565 9.3325 2.98835 8.99521 2.98835 8.57914Z" fill="#333D4C"/>
8485                      <path fill-rule="evenodd" clip-rule="evenodd" d="M8.16147 8.52891C8.13373 8.52891 8.11125 8.5514 8.11125 8.57914C8.11125 8.60687 8.13373 8.62936 8.16147 8.62936C8.18921 8.62936 8.2117 8.60687 8.2117 8.57914C8.2117 8.5514 8.18921 8.52891 8.16147 8.52891ZM7.4081 8.57914C7.4081 8.16306 7.7454 7.82577 8.16147 7.82577C8.57754 7.82577 8.91484 8.16306 8.91484 8.57914C8.91484 8.99521 8.57754 9.3325 8.16147 9.3325C7.7454 9.3325 7.4081 8.99521 7.4081 8.57914Z" fill="#333D4C"/>
8486                      <path fill-rule="evenodd" clip-rule="evenodd" d="M0.175781 0.543222C0.175781 0.349054 0.333185 0.19165 0.527353 0.19165H2.13454C2.3021 0.19165 2.44638 0.309914 2.47927 0.474223L2.82481 2.20063H9.36686C9.47164 2.20063 9.57095 2.24736 9.63774 2.32809C9.70453 2.40882 9.73183 2.51514 9.71221 2.61806L9.06883 5.99176C9.01601 6.25768 8.87134 6.49654 8.66016 6.66655C8.44992 6.83578 8.1871 6.92604 7.91732 6.92173H4.01801C3.74824 6.92604 3.48541 6.83578 3.27518 6.66655C3.06407 6.49661 2.91944 6.25786 2.86657 5.99206V5.99206L2.19508 2.6371C2.19254 2.62687 2.19045 2.61646 2.18884 2.6059L1.84636 0.894793H0.527353C0.333185 0.894793 0.175781 0.737389 0.175781 0.543222ZM2.96554 2.90377L3.55618 5.85477C3.57685 5.95883 3.63346 6.0523 3.7161 6.11882C3.79873 6.18535 3.90214 6.22068 4.0082 6.21865L4.01494 6.21859H7.92039L7.92713 6.21865C8.0332 6.22068 8.1366 6.18535 8.21924 6.11882C8.30157 6.05254 8.35807 5.95952 8.37892 5.85592L8.37915 5.85477L8.94191 2.90377H2.96554Z" fill="#333D4C"/>
8487                    </g>
8488                    <defs>
8489                      <clipPath id="clip0_694_4827">
8490                        <rect width="9.6431" height="9.6431" fill="white" transform="translate(0.125 0.141357)"/>
8491                      </clipPath>
8492                    </defs>
8493                  </svg>
8494
8495<div class="loading__spinner hidden">
8496  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
8497
8498</div>
8499</button>
8500              </modal-opener>
8501              <quick-add-modal id="QuickAdd-8029697212604" class="quick-add-modal">
8502                <div
8503                  role="dialog"
8504                  aria-label="Choose options for Flush Floor Vent [Luxe+]"
8505                  aria-modal="true"
8506                  class="quick-add-modal__content global-settings-popup"
8507                  tabindex="-1"
8508                >
8509                  <button
8510                    id="ModalClose-8029697212604"
8511                    type="button"
8512                    class="quick-add-modal__toggle"
8513                    aria-label="Close"
8514                  ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
8515</button>
8516                  <div id="QuickAddInfo-8029697212604" class="quick-add-modal__content-info"></div>
8517                </div>
8518              </quick-add-modal></div>
8519
8520          
8521
8522        
8523        <div class="card__badge top left"></div>
8524      </div>
8525      
8526    </div>
8527  </div>
8528                    <div class="my-buy-btn">
8529<div class="" ><product-form
8530      class="product-form"
8531      data-hide-errors="false"
8532      data-section-id="template--28630587998578__home_tab_product_tJDMfE"
8533    >
8534      <div class="product-form__error-message-wrapper" role="alert" hidden>
8535        <span class="svg-wrapper"><svg class="icon icon-error" viewBox="0 0 13 13"><circle cx="6.5" cy="6.5" r="5.5" stroke="#fff" stroke-width="2"/><circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width=".7"/><path fill="#fff" d="m5.874 3.528.1 4.044h1.053l.1-4.044zm.627 6.133c.38 0 .68-.288.68-.656s-.3-.656-.68-.656-.681.288-.681.656.3.656.68.656"/><path fill="#fff" stroke="#EB001B" stroke-width=".7" d="M5.874 3.178h-.359l.01.359.1 4.044.008.341h1.736l.008-.341.1-4.044.01-.359H5.873Zm.627 6.833c.56 0 1.03-.432 1.03-1.006s-.47-1.006-1.03-1.006-1.031.432-1.031 1.006.47 1.006 1.03 1.006Z"/></svg>
8536</span>
8537        <span class="product-form__error-message"></span>
8538      </div><form method="post" action="/cart/add" id="product-form-template--28630587998578__home_tab_product_tJDMfE" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
8539          type="hidden"
8540          name="id"
8541          value="42923404820668"
8542          
8543          class="product-variant-id"
8544        ><div class="product-form__buttons"><button
8545            id="ProductSubmitButton-template--28630587998578__home_tab_product_tJDMfE"
8546            type="submit"
8547            name="add"
8548            class="product-form__submit button button--full-width button--primary"
8549            
8550          >
8551            <span>
8552                    Learn More
8553                  
8554</span>
8555
8556<div class="loading__spinner hidden">
8557  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
8558
8559</div>
8560</button></div><input type="hidden" name="product-id" value="8029697212604" /><input type="hidden" name="section-id" value="template--28630587998578__home_tab_product_tJDMfE" /></form></product-form></div>
8561</div>
8562                  </div>
8563                
8564                  <div class="swiper-slide card-slide">
8565                    <link href="//fittes.ca/cdn/shop/t/139/assets/component-rating.css?v=179577762467860590411788881634" rel="stylesheet" type="text/css" media="all" />
8566  <link href="//fittes.ca/cdn/shop/t/139/assets/component-volume-pricing.css?v=111870094811454961941788881637" rel="stylesheet" type="text/css" media="all" />
8567
8568  <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
8569  <link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
8570<div
8571    preorder-product-element="form"
8572    d-id="2339952721982"
8573    data-product-id="2339952721982"
8574    class="card-wrapper product-card-wrapper underline-links-hover"
8575    style="position: relative;"
8576  >
8577    
8578    <div
8579      class="
8580        card card--standard
8581         card--media
8582        
8583        
8584        
8585        
8586        
8587      "
8588      style="--ratio-percent: 100%;"
8589    >
8590
8591      <div
8592        class="card__inner color-scheme-2 gradient ratio"
8593        style="--ratio-percent: 100%;"
8594      >
8595        
8596<div class="card__media">
8597            <div class="media media--transparent media--hover-effect">
8598              
8599              <img
8600                srcset="//fittes.ca/cdn/shop/files/1-FlushFloorVent_Luxe__Lifestyle1.jpg?v=1754022197&width=165 165w,//fittes.ca/cdn/shop/files/1-FlushFloorVent_Luxe__Lifestyle1.jpg?v=1754022197&width=360 360w,//fittes.ca/cdn/shop/files/1-FlushFloorVent_Luxe__Lifestyle1.jpg?v=1754022197&width=533 533w,//fittes.ca/cdn/shop/files/1-FlushFloorVent_Luxe__Lifestyle1.jpg?v=1754022197&width=720 720w,//fittes.ca/cdn/shop/files/1-FlushFloorVent_Luxe__Lifestyle1.jpg?v=1754022197&width=940 940w,//fittes.ca/cdn/shop/files/1-FlushFloorVent_Luxe__Lifestyle1.jpg?v=1754022197&width=1066 1066w,//fittes.ca/cdn/shop/files/1-FlushFloorVent_Luxe__Lifestyle1.jpg?v=1754022197 1080w
8601                "
8602                src="//fittes.ca/cdn/shop/files/1-FlushFloorVent_Luxe__Lifestyle1.jpg?v=1754022197&width=533"
8603                sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
8604                alt="Flush Floor Vent [Luxe]"
8605                class="motion-reduce"
8606                
8607                  loading="lazy"
8608                
8609                width="1080"
8610                height="1080"
8611              >
8612              
8613<img
8614                  srcset="//fittes.ca/cdn/shop/files/8-FlushFloorVent_Luxe__Lifestyle1.png?v=1754076362&width=165 165w,//fittes.ca/cdn/shop/files/8-FlushFloorVent_Luxe__Lifestyle1.png?v=1754076362&width=360 360w,//fittes.ca/cdn/shop/files/8-FlushFloorVent_Luxe__Lifestyle1.png?v=1754076362&width=533 533w,//fittes.ca/cdn/shop/files/8-FlushFloorVent_Luxe__Lifestyle1.png?v=1754076362&width=720 720w,//fittes.ca/cdn/shop/files/8-FlushFloorVent_Luxe__Lifestyle1.png?v=1754076362&width=940 940w,//fittes.ca/cdn/shop/files/8-FlushFloorVent_Luxe__Lifestyle1.png?v=1754076362&width=1066 1066w,//fittes.ca/cdn/shop/files/8-FlushFloorVent_Luxe__Lifestyle1.png?v=1754076362 1080w
8615                  "
8616                  src="//fittes.ca/cdn/shop/files/8-FlushFloorVent_Luxe__Lifestyle1.png?v=1754076362&width=533"
8617                  sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
8618                  alt=""
8619                  class="motion-reduce"
8620                  loading="lazy"
8621                  width="1080"
8622                  height="1080"
8623                >
8624              </div>
8625          </div><div class="card__content">
8626          <div class="card__information ss">
8627            <h3
8628              class="card__heading"
8629              
8630            >
8631              <a href="/products/flush-floor-vent-luxe" id="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-2339952721982" class="full-unstyled-link" aria-labelledby="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-2339952721982 NoMediaStandardBadge-template--28630587998578__home_tab_product_tJDMfE-2339952721982">
8632                Flush Floor Vent [Luxe]
8633              </a>
8634            </h3>
8635          </div>
8636
8637          
8638          
8639        </div>
8640      </div>
8641
8642      <div class="card__content">
8643        <div class="card__information sss"><ul class="ffp-pills" aria-label="Product features"><li class="ffp-pill" tabindex="0" data-ffp-tip="Installs before the flooring goes down, sitting flush on the sub-floor.">Sub-Floor</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Standard airflow, well suited to most rooms.">Single Air Channel</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Steel construction for a premium, long-lasting finish.">Steel</li></ul>
8644<div class="bv_rating_summary ">
8645              <div data-bv-show="rating_summary" data-bv-product-id="2339952721982"></div>
8646            </div>
8647
8648          <h3
8649            class="card__heading h6"
8650            
8651              id="title-template--28630587998578__home_tab_product_tJDMfE-2339952721982"
8652            
8653          >
8654            <a href="/products/flush-floor-vent-luxe" id="CardLink-template--28630587998578__home_tab_product_tJDMfE-2339952721982" class="full-unstyled-link" aria-labelledby="CardLink-template--28630587998578__home_tab_product_tJDMfE-2339952721982 Badge-template--28630587998578__home_tab_product_tJDMfE-2339952721982">
8655              Flush Floor Vent [Luxe]
8656            </a>
8657          </h3>
8658          <div class="card-information">
8659              
8660
8661<div
8662    class="
8663      price "
8664  >
8665    <div class="price__container"><!-- REGULAR -->
8666      <div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
8667          <span class="price-item price-item--regular">
8668            $69.00 USD+
8669          </span></div>
8670
8671      
8672
8673      <small class="unit-price caption hidden">
8674        <span class="visually-hidden">Unit price</span>
8675        <span class="price-item price-item--last">
8676          <span></span>
8677          <span aria-hidden="true">/</span>
8678          <span class="visually-hidden">&nbsp;per&nbsp;</span>
8679          <span>
8680          </span>
8681        </span>
8682      </small>
8683    </div></div>
8684
8685
8686            
8687</div>
8688        </div>
8689
8690        
8691        
8692          
8693
8694          <div class="quick-add no-js-hidden"><modal-opener data-modal="#QuickAdd-2339952721982">
8695                <button
8696                  id="quick-add-template--28630587998578__home_tab_product_tJDMfE2339952721982-submit"
8697                  type="submit"
8698                  name="add"
8699                  class="quick-add__submit button button--full-width button--secondary"
8700                  aria-haspopup="dialog"
8701                  aria-labelledby="quick-add-template--28630587998578__home_tab_product_tJDMfE2339952721982-submit title-template--28630587998578__home_tab_product_tJDMfE-2339952721982"
8702                  data-product-url="/products/flush-floor-vent-luxe"
8703                >
8704                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none">
8705                    <g clip-path="url(#clip0_694_4827)">
8706                      <path fill-rule="evenodd" clip-rule="evenodd" d="M3.74172 8.52891C3.71398 8.52891 3.69149 8.5514 3.69149 8.57914C3.69149 8.60687 3.71398 8.62936 3.74172 8.62936C3.76946 8.62936 3.79194 8.60687 3.79194 8.57914C3.79194 8.5514 3.76946 8.52891 3.74172 8.52891ZM2.98835 8.57914C2.98835 8.16306 3.32565 7.82577 3.74172 7.82577C4.15779 7.82577 4.49509 8.16306 4.49509 8.57914C4.49509 8.99521 4.15779 9.3325 3.74172 9.3325C3.32565 9.3325 2.98835 8.99521 2.98835 8.57914Z" fill="#333D4C"/>
8707                      <path fill-rule="evenodd" clip-rule="evenodd" d="M8.16147 8.52891C8.13373 8.52891 8.11125 8.5514 8.11125 8.57914C8.11125 8.60687 8.13373 8.62936 8.16147 8.62936C8.18921 8.62936 8.2117 8.60687 8.2117 8.57914C8.2117 8.5514 8.18921 8.52891 8.16147 8.52891ZM7.4081 8.57914C7.4081 8.16306 7.7454 7.82577 8.16147 7.82577C8.57754 7.82577 8.91484 8.16306 8.91484 8.57914C8.91484 8.99521 8.57754 9.3325 8.16147 9.3325C7.7454 9.3325 7.4081 8.99521 7.4081 8.57914Z" fill="#333D4C"/>
8708                      <path fill-rule="evenodd" clip-rule="evenodd" d="M0.175781 0.543222C0.175781 0.349054 0.333185 0.19165 0.527353 0.19165H2.13454C2.3021 0.19165 2.44638 0.309914 2.47927 0.474223L2.82481 2.20063H9.36686C9.47164 2.20063 9.57095 2.24736 9.63774 2.32809C9.70453 2.40882 9.73183 2.51514 9.71221 2.61806L9.06883 5.99176C9.01601 6.25768 8.87134 6.49654 8.66016 6.66655C8.44992 6.83578 8.1871 6.92604 7.91732 6.92173H4.01801C3.74824 6.92604 3.48541 6.83578 3.27518 6.66655C3.06407 6.49661 2.91944 6.25786 2.86657 5.99206V5.99206L2.19508 2.6371C2.19254 2.62687 2.19045 2.61646 2.18884 2.6059L1.84636 0.894793H0.527353C0.333185 0.894793 0.175781 0.737389 0.175781 0.543222ZM2.96554 2.90377L3.55618 5.85477C3.57685 5.95883 3.63346 6.0523 3.7161 6.11882C3.79873 6.18535 3.90214 6.22068 4.0082 6.21865L4.01494 6.21859H7.92039L7.92713 6.21865C8.0332 6.22068 8.1366 6.18535 8.21924 6.11882C8.30157 6.05254 8.35807 5.95952 8.37892 5.85592L8.37915 5.85477L8.94191 2.90377H2.96554Z" fill="#333D4C"/>
8709                    </g>
8710                    <defs>
8711                      <clipPath id="clip0_694_4827">
8712                        <rect width="9.6431" height="9.6431" fill="white" transform="translate(0.125 0.141357)"/>
8713                      </clipPath>
8714                    </defs>
8715                  </svg>
8716
8717<div class="loading__spinner hidden">
8718  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
8719
8720</div>
8721</button>
8722              </modal-opener>
8723              <quick-add-modal id="QuickAdd-2339952721982" class="quick-add-modal">
8724                <div
8725                  role="dialog"
8726                  aria-label="Choose options for Flush Floor Vent [Luxe]"
8727                  aria-modal="true"
8728                  class="quick-add-modal__content global-settings-popup"
8729                  tabindex="-1"
8730                >
8731                  <button
8732                    id="ModalClose-2339952721982"
8733                    type="button"
8734                    class="quick-add-modal__toggle"
8735                    aria-label="Close"
8736                  ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
8737</button>
8738                  <div id="QuickAddInfo-2339952721982" class="quick-add-modal__content-info"></div>
8739                </div>
8740              </quick-add-modal></div>
8741
8742          
8743
8744        
8745        <div class="card__badge top left"></div>
8746      </div>
8747      
8748    </div>
8749  </div>
8750                    <div class="my-buy-btn">
8751<div class="" ><product-form
8752      class="product-form"
8753      data-hide-errors="false"
8754      data-section-id="template--28630587998578__home_tab_product_tJDMfE"
8755    >
8756      <div class="product-form__error-message-wrapper" role="alert" hidden>
8757        <span class="svg-wrapper"><svg class="icon icon-error" viewBox="0 0 13 13"><circle cx="6.5" cy="6.5" r="5.5" stroke="#fff" stroke-width="2"/><circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width=".7"/><path fill="#fff" d="m5.874 3.528.1 4.044h1.053l.1-4.044zm.627 6.133c.38 0 .68-.288.68-.656s-.3-.656-.68-.656-.681.288-.681.656.3.656.68.656"/><path fill="#fff" stroke="#EB001B" stroke-width=".7" d="M5.874 3.178h-.359l.01.359.1 4.044.008.341h1.736l.008-.341.1-4.044.01-.359H5.873Zm.627 6.833c.56 0 1.03-.432 1.03-1.006s-.47-1.006-1.03-1.006-1.031.432-1.031 1.006.47 1.006 1.03 1.006Z"/></svg>
8758</span>
8759        <span class="product-form__error-message"></span>
8760      </div><form method="post" action="/cart/add" id="product-form-template--28630587998578__home_tab_product_tJDMfE" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
8761          type="hidden"
8762          name="id"
8763          value="61247546818930"
8764          
8765          class="product-variant-id"
8766        ><div class="product-form__buttons"><button
8767            id="ProductSubmitButton-template--28630587998578__home_tab_product_tJDMfE"
8768            type="submit"
8769            name="add"
8770            class="product-form__submit button button--full-width button--primary"
8771            
8772          >
8773            <span>
8774                    Learn More
8775                  
8776</span>
8777
8778<div class="loading__spinner hidden">
8779  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
8780
8781</div>
8782</button></div><input type="hidden" name="product-id" value="2339952721982" /><input type="hidden" name="section-id" value="template--28630587998578__home_tab_product_tJDMfE" /></form></product-form></div>
8783</div>
8784                  </div>
8785                
8786                  <div class="swiper-slide card-slide">
8787                    <link href="//fittes.ca/cdn/shop/t/139/assets/component-rating.css?v=179577762467860590411788881634" rel="stylesheet" type="text/css" media="all" />
8788  <link href="//fittes.ca/cdn/shop/t/139/assets/component-volume-pricing.css?v=111870094811454961941788881637" rel="stylesheet" type="text/css" media="all" />
8789
8790  <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
8791  <link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
8792<div
8793    preorder-product-element="form"
8794    d-id="8029699768508"
8795    data-product-id="8029699768508"
8796    class="card-wrapper product-card-wrapper underline-links-hover"
8797    style="position: relative;"
8798  >
8799    
8800    <div
8801      class="
8802        card card--standard
8803         card--media
8804        
8805        
8806        
8807        
8808        
8809      "
8810      style="--ratio-percent: 100%;"
8811    >
8812<div class="product-badges tw-absolute tw-left-2 tw-top-2 tw-z-[1] tw-hidden tw-max-w-[90%] ">
8813    
8814<div
8815        class="product-badge tw-px-2 tw-py-1 tw-text-sm tw-uppercase "
8816        style="color: black; background-color: white;"
8817      >Airflow Increased</div>
8818    
8819  </div>
8820      <div
8821        class="card__inner color-scheme-2 gradient ratio"
8822        style="--ratio-percent: 100%;"
8823      >
8824        
8825<div class="card__media">
8826            <div class="media media--transparent media--hover-effect">
8827              
8828              <img
8829                srcset="//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Luxe___Lifestyle_1_53e2fa67-6466-41c0-af0e-a9523cd921fb.jpg?v=1772197987&width=165 165w,//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Luxe___Lifestyle_1_53e2fa67-6466-41c0-af0e-a9523cd921fb.jpg?v=1772197987&width=360 360w,//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Luxe___Lifestyle_1_53e2fa67-6466-41c0-af0e-a9523cd921fb.jpg?v=1772197987&width=533 533w,//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Luxe___Lifestyle_1_53e2fa67-6466-41c0-af0e-a9523cd921fb.jpg?v=1772197987&width=720 720w,//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Luxe___Lifestyle_1_53e2fa67-6466-41c0-af0e-a9523cd921fb.jpg?v=1772197987&width=940 940w,//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Luxe___Lifestyle_1_53e2fa67-6466-41c0-af0e-a9523cd921fb.jpg?v=1772197987&width=1066 1066w,//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Luxe___Lifestyle_1_53e2fa67-6466-41c0-af0e-a9523cd921fb.jpg?v=1772197987 1080w
8830                "
8831                src="//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Luxe___Lifestyle_1_53e2fa67-6466-41c0-af0e-a9523cd921fb.jpg?v=1772197987&width=533"
8832                sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
8833                alt="Framed Floor Vent [Luxe+]"
8834                class="motion-reduce"
8835                
8836                  loading="lazy"
8837                
8838                width="1080"
8839                height="1080"
8840              >
8841              
8842<img
8843                  srcset="//fittes.ca/cdn/shop/files/8_-_Framed_Floor_Vent_Luxe___Lifestyle_1.png?v=1772197987&width=165 165w,//fittes.ca/cdn/shop/files/8_-_Framed_Floor_Vent_Luxe___Lifestyle_1.png?v=1772197987&width=360 360w,//fittes.ca/cdn/shop/files/8_-_Framed_Floor_Vent_Luxe___Lifestyle_1.png?v=1772197987&width=533 533w,//fittes.ca/cdn/shop/files/8_-_Framed_Floor_Vent_Luxe___Lifestyle_1.png?v=1772197987&width=720 720w,//fittes.ca/cdn/shop/files/8_-_Framed_Floor_Vent_Luxe___Lifestyle_1.png?v=1772197987&width=940 940w,//fittes.ca/cdn/shop/files/8_-_Framed_Floor_Vent_Luxe___Lifestyle_1.png?v=1772197987&width=1066 1066w,//fittes.ca/cdn/shop/files/8_-_Framed_Floor_Vent_Luxe___Lifestyle_1.png?v=1772197987 1080w
8844                  "
8845                  src="//fittes.ca/cdn/shop/files/8_-_Framed_Floor_Vent_Luxe___Lifestyle_1.png?v=1772197987&width=533"
8846                  sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
8847                  alt=""
8848                  class="motion-reduce"
8849                  loading="lazy"
8850                  width="1080"
8851                  height="1080"
8852                >
8853              </div>
8854          </div><div class="card__content">
8855          <div class="card__information ss">
8856            <h3
8857              class="card__heading"
8858              
8859            >
8860              <a href="/products/framed-floor-vent-luxe-plus" id="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-8029699768508" class="full-unstyled-link" aria-labelledby="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-8029699768508 NoMediaStandardBadge-template--28630587998578__home_tab_product_tJDMfE-8029699768508">
8861                Framed Floor Vent [Luxe+]
8862              </a>
8863            </h3>
8864          </div>
8865
8866          
8867          
8868        </div>
8869      </div>
8870
8871      <div class="card__content">
8872        <div class="card__information sss"><ul class="ffp-pills" aria-label="Product features"><li class="ffp-pill" tabindex="0" data-ffp-tip="Drops into the opening with minimal tools. Slight lip at the edge; fully paintable.">Drop-In</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Extra airflow for larger rooms or spaces with fewer vents.">Double Air Channel</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Steel construction for a premium, long-lasting finish.">Steel</li></ul>
8873<div class="bv_rating_summary ">
8874              <div data-bv-show="rating_summary" data-bv-product-id="8029699768508"></div>
8875            </div>
8876
8877          <h3
8878            class="card__heading h6"
8879            
8880              id="title-template--28630587998578__home_tab_product_tJDMfE-8029699768508"
8881            
8882          >
8883            <a href="/products/framed-floor-vent-luxe-plus" id="CardLink-template--28630587998578__home_tab_product_tJDMfE-8029699768508" class="full-unstyled-link" aria-labelledby="CardLink-template--28630587998578__home_tab_product_tJDMfE-8029699768508 Badge-template--28630587998578__home_tab_product_tJDMfE-8029699768508">
8884              Framed Floor Vent [Luxe+]
8885            </a>
8886          </h3>
8887          <div class="card-information">
8888              
8889
8890<div
8891    class="
8892      price "
8893  >
8894    <div class="price__container"><!-- REGULAR -->
8895      <div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
8896          <span class="price-item price-item--regular">
8897            $90.00 USD+
8898          </span></div>
8899
8900      
8901
8902      <small class="unit-price caption hidden">
8903        <span class="visually-hidden">Unit price</span>
8904        <span class="price-item price-item--last">
8905          <span></span>
8906          <span aria-hidden="true">/</span>
8907          <span class="visually-hidden">&nbsp;per&nbsp;</span>
8908          <span>
8909          </span>
8910        </span>
8911      </small>
8912    </div></div>
8913
8914
8915            
8916</div>
8917        </div>
8918
8919        
8920        
8921          
8922
8923          <div class="quick-add no-js-hidden"><modal-opener data-modal="#QuickAdd-8029699768508">
8924                <button
8925                  id="quick-add-template--28630587998578__home_tab_product_tJDMfE8029699768508-submit"
8926                  type="submit"
8927                  name="add"
8928                  class="quick-add__submit button button--full-width button--secondary"
8929                  aria-haspopup="dialog"
8930                  aria-labelledby="quick-add-template--28630587998578__home_tab_product_tJDMfE8029699768508-submit title-template--28630587998578__home_tab_product_tJDMfE-8029699768508"
8931                  data-product-url="/products/framed-floor-vent-luxe-plus"
8932                >
8933                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none">
8934                    <g clip-path="url(#clip0_694_4827)">
8935                      <path fill-rule="evenodd" clip-rule="evenodd" d="M3.74172 8.52891C3.71398 8.52891 3.69149 8.5514 3.69149 8.57914C3.69149 8.60687 3.71398 8.62936 3.74172 8.62936C3.76946 8.62936 3.79194 8.60687 3.79194 8.57914C3.79194 8.5514 3.76946 8.52891 3.74172 8.52891ZM2.98835 8.57914C2.98835 8.16306 3.32565 7.82577 3.74172 7.82577C4.15779 7.82577 4.49509 8.16306 4.49509 8.57914C4.49509 8.99521 4.15779 9.3325 3.74172 9.3325C3.32565 9.3325 2.98835 8.99521 2.98835 8.57914Z" fill="#333D4C"/>
8936                      <path fill-rule="evenodd" clip-rule="evenodd" d="M8.16147 8.52891C8.13373 8.52891 8.11125 8.5514 8.11125 8.57914C8.11125 8.60687 8.13373 8.62936 8.16147 8.62936C8.18921 8.62936 8.2117 8.60687 8.2117 8.57914C8.2117 8.5514 8.18921 8.52891 8.16147 8.52891ZM7.4081 8.57914C7.4081 8.16306 7.7454 7.82577 8.16147 7.82577C8.57754 7.82577 8.91484 8.16306 8.91484 8.57914C8.91484 8.99521 8.57754 9.3325 8.16147 9.3325C7.7454 9.3325 7.4081 8.99521 7.4081 8.57914Z" fill="#333D4C"/>
8937                      <path fill-rule="evenodd" clip-rule="evenodd" d="M0.175781 0.543222C0.175781 0.349054 0.333185 0.19165 0.527353 0.19165H2.13454C2.3021 0.19165 2.44638 0.309914 2.47927 0.474223L2.82481 2.20063H9.36686C9.47164 2.20063 9.57095 2.24736 9.63774 2.32809C9.70453 2.40882 9.73183 2.51514 9.71221 2.61806L9.06883 5.99176C9.01601 6.25768 8.87134 6.49654 8.66016 6.66655C8.44992 6.83578 8.1871 6.92604 7.91732 6.92173H4.01801C3.74824 6.92604 3.48541 6.83578 3.27518 6.66655C3.06407 6.49661 2.91944 6.25786 2.86657 5.99206V5.99206L2.19508 2.6371C2.19254 2.62687 2.19045 2.61646 2.18884 2.6059L1.84636 0.894793H0.527353C0.333185 0.894793 0.175781 0.737389 0.175781 0.543222ZM2.96554 2.90377L3.55618 5.85477C3.57685 5.95883 3.63346 6.0523 3.7161 6.11882C3.79873 6.18535 3.90214 6.22068 4.0082 6.21865L4.01494 6.21859H7.92039L7.92713 6.21865C8.0332 6.22068 8.1366 6.18535 8.21924 6.11882C8.30157 6.05254 8.35807 5.95952 8.37892 5.85592L8.37915 5.85477L8.94191 2.90377H2.96554Z" fill="#333D4C"/>
8938                    </g>
8939                    <defs>
8940                      <clipPath id="clip0_694_4827">
8941                        <rect width="9.6431" height="9.6431" fill="white" transform="translate(0.125 0.141357)"/>
8942                      </clipPath>
8943                    </defs>
8944                  </svg>
8945
8946<div class="loading__spinner hidden">
8947  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
8948
8949</div>
8950</button>
8951              </modal-opener>
8952              <quick-add-modal id="QuickAdd-8029699768508" class="quick-add-modal">
8953                <div
8954                  role="dialog"
8955                  aria-label="Choose options for Framed Floor Vent [Luxe+]"
8956                  aria-modal="true"
8957                  class="quick-add-modal__content global-settings-popup"
8958                  tabindex="-1"
8959                >
8960                  <button
8961                    id="ModalClose-8029699768508"
8962                    type="button"
8963                    class="quick-add-modal__toggle"
8964                    aria-label="Close"
8965                  ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
8966</button>
8967                  <div id="QuickAddInfo-8029699768508" class="quick-add-modal__content-info"></div>
8968                </div>
8969              </quick-add-modal></div>
8970
8971          
8972
8973        
8974        <div class="card__badge top left"></div>
8975      </div>
8976      
8977    </div>
8978  </div>
8979                    <div class="my-buy-btn">
8980<div class="" ><product-form
8981      class="product-form"
8982      data-hide-errors="false"
8983      data-section-id="template--28630587998578__home_tab_product_tJDMfE"
8984    >
8985      <div class="product-form__error-message-wrapper" role="alert" hidden>
8986        <span class="svg-wrapper"><svg class="icon icon-error" viewBox="0 0 13 13"><circle cx="6.5" cy="6.5" r="5.5" stroke="#fff" stroke-width="2"/><circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width=".7"/><path fill="#fff" d="m5.874 3.528.1 4.044h1.053l.1-4.044zm.627 6.133c.38 0 .68-.288.68-.656s-.3-.656-.68-.656-.681.288-.681.656.3.656.68.656"/><path fill="#fff" stroke="#EB001B" stroke-width=".7" d="M5.874 3.178h-.359l.01.359.1 4.044.008.341h1.736l.008-.341.1-4.044.01-.359H5.873Zm.627 6.833c.56 0 1.03-.432 1.03-1.006s-.47-1.006-1.03-1.006-1.031.432-1.031 1.006.47 1.006 1.03 1.006Z"/></svg>
8987</span>
8988        <span class="product-form__error-message"></span>
8989      </div><form method="post" action="/cart/add" id="product-form-template--28630587998578__home_tab_product_tJDMfE" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
8990          type="hidden"
8991          name="id"
8992          value="42923410620604"
8993          
8994          class="product-variant-id"
8995        ><div class="product-form__buttons"><button
8996            id="ProductSubmitButton-template--28630587998578__home_tab_product_tJDMfE"
8997            type="submit"
8998            name="add"
8999            class="product-form__submit button button--full-width button--primary"
9000            
9001          >
9002            <span>
9003                    Learn More
9004                  
9005</span>
9006
9007<div class="loading__spinner hidden">
9008  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
9009
9010</div>
9011</button></div><input type="hidden" name="product-id" value="8029699768508" /><input type="hidden" name="section-id" value="template--28630587998578__home_tab_product_tJDMfE" /></form></product-form></div>
9012</div>
9013                  </div>
9014                
9015                  <div class="swiper-slide card-slide">
9016                    <link href="//fittes.ca/cdn/shop/t/139/assets/component-rating.css?v=179577762467860590411788881634" rel="stylesheet" type="text/css" media="all" />
9017  <link href="//fittes.ca/cdn/shop/t/139/assets/component-volume-pricing.css?v=111870094811454961941788881637" rel="stylesheet" type="text/css" media="all" />
9018
9019  <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
9020  <link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
9021<div
9022    preorder-product-element="form"
9023    d-id="2339413131326"
9024    data-product-id="2339413131326"
9025    class="card-wrapper product-card-wrapper underline-links-hover"
9026    style="position: relative;"
9027  >
9028    
9029    <div
9030      class="
9031        card card--standard
9032         card--media
9033        
9034        
9035        
9036        
9037        
9038      "
9039      style="--ratio-percent: 100%;"
9040    >
9041
9042      <div
9043        class="card__inner color-scheme-2 gradient ratio"
9044        style="--ratio-percent: 100%;"
9045      >
9046        
9047<div class="card__media">
9048            <div class="media media--transparent media--hover-effect">
9049              
9050              <img
9051                srcset="//fittes.ca/cdn/shop/files/1-FramedFloorVent_Luxe__Lifestyle1_1.jpg?v=1754022200&width=165 165w,//fittes.ca/cdn/shop/files/1-FramedFloorVent_Luxe__Lifestyle1_1.jpg?v=1754022200&width=360 360w,//fittes.ca/cdn/shop/files/1-FramedFloorVent_Luxe__Lifestyle1_1.jpg?v=1754022200&width=533 533w,//fittes.ca/cdn/shop/files/1-FramedFloorVent_Luxe__Lifestyle1_1.jpg?v=1754022200&width=720 720w,//fittes.ca/cdn/shop/files/1-FramedFloorVent_Luxe__Lifestyle1_1.jpg?v=1754022200&width=940 940w,//fittes.ca/cdn/shop/files/1-FramedFloorVent_Luxe__Lifestyle1_1.jpg?v=1754022200&width=1066 1066w,//fittes.ca/cdn/shop/files/1-FramedFloorVent_Luxe__Lifestyle1_1.jpg?v=1754022200 1080w
9052                "
9053                src="//fittes.ca/cdn/shop/files/1-FramedFloorVent_Luxe__Lifestyle1_1.jpg?v=1754022200&width=533"
9054                sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
9055                alt="Framed Floor Vent [Luxe]"
9056                class="motion-reduce"
9057                
9058                  loading="lazy"
9059                
9060                width="1080"
9061                height="1080"
9062              >
9063              
9064<img
9065                  srcset="//fittes.ca/cdn/shop/files/8-FramedFloorVent_Luxe__Lifestyle2.png?v=1754076183&width=165 165w,//fittes.ca/cdn/shop/files/8-FramedFloorVent_Luxe__Lifestyle2.png?v=1754076183&width=360 360w,//fittes.ca/cdn/shop/files/8-FramedFloorVent_Luxe__Lifestyle2.png?v=1754076183&width=533 533w,//fittes.ca/cdn/shop/files/8-FramedFloorVent_Luxe__Lifestyle2.png?v=1754076183&width=720 720w,//fittes.ca/cdn/shop/files/8-FramedFloorVent_Luxe__Lifestyle2.png?v=1754076183&width=940 940w,//fittes.ca/cdn/shop/files/8-FramedFloorVent_Luxe__Lifestyle2.png?v=1754076183&width=1066 1066w,//fittes.ca/cdn/shop/files/8-FramedFloorVent_Luxe__Lifestyle2.png?v=1754076183 1080w
9066                  "
9067                  src="//fittes.ca/cdn/shop/files/8-FramedFloorVent_Luxe__Lifestyle2.png?v=1754076183&width=533"
9068                  sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
9069                  alt=""
9070                  class="motion-reduce"
9071                  loading="lazy"
9072                  width="1080"
9073                  height="1080"
9074                >
9075              </div>
9076          </div><div class="card__content">
9077          <div class="card__information ss">
9078            <h3
9079              class="card__heading"
9080              
9081            >
9082              <a href="/products/framed-floor-vent-luxe" id="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-2339413131326" class="full-unstyled-link" aria-labelledby="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-2339413131326 NoMediaStandardBadge-template--28630587998578__home_tab_product_tJDMfE-2339413131326">
9083                Framed Floor Vent [Luxe]
9084              </a>
9085            </h3>
9086          </div>
9087
9088          
9089          
9090        </div>
9091      </div>
9092
9093      <div class="card__content">
9094        <div class="card__information sss"><ul class="ffp-pills" aria-label="Product features"><li class="ffp-pill" tabindex="0" data-ffp-tip="Drops into the opening with minimal tools. Slight lip at the edge; fully paintable.">Drop-In</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Standard airflow, well suited to most rooms.">Single Air Channel</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Steel construction for a premium, long-lasting finish.">Steel</li></ul>
9095<div class="bv_rating_summary ">
9096              <div data-bv-show="rating_summary" data-bv-product-id="2339413131326"></div>
9097            </div>
9098
9099          <h3
9100            class="card__heading h6"
9101            
9102              id="title-template--28630587998578__home_tab_product_tJDMfE-2339413131326"
9103            
9104          >
9105            <a href="/products/framed-floor-vent-luxe" id="CardLink-template--28630587998578__home_tab_product_tJDMfE-2339413131326" class="full-unstyled-link" aria-labelledby="CardLink-template--28630587998578__home_tab_product_tJDMfE-2339413131326 Badge-template--28630587998578__home_tab_product_tJDMfE-2339413131326">
9106              Framed Floor Vent [Luxe]
9107            </a>
9108          </h3>
9109          <div class="card-information">
9110              
9111
9112<div
9113    class="
9114      price "
9115  >
9116    <div class="price__container"><!-- REGULAR -->
9117      <div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
9118          <span class="price-item price-item--regular">
9119            $61.00 USD+
9120          </span></div>
9121
9122      
9123
9124      <small class="unit-price caption hidden">
9125        <span class="visually-hidden">Unit price</span>
9126        <span class="price-item price-item--last">
9127          <span></span>
9128          <span aria-hidden="true">/</span>
9129          <span class="visually-hidden">&nbsp;per&nbsp;</span>
9130          <span>
9131          </span>
9132        </span>
9133      </small>
9134    </div></div>
9135
9136
9137            
9138</div>
9139        </div>
9140
9141        
9142        
9143          
9144
9145          <div class="quick-add no-js-hidden"><modal-opener data-modal="#QuickAdd-2339413131326">
9146                <button
9147                  id="quick-add-template--28630587998578__home_tab_product_tJDMfE2339413131326-submit"
9148                  type="submit"
9149                  name="add"
9150                  class="quick-add__submit button button--full-width button--secondary"
9151                  aria-haspopup="dialog"
9152                  aria-labelledby="quick-add-template--28630587998578__home_tab_product_tJDMfE2339413131326-submit title-template--28630587998578__home_tab_product_tJDMfE-2339413131326"
9153                  data-product-url="/products/framed-floor-vent-luxe"
9154                >
9155                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none">
9156                    <g clip-path="url(#clip0_694_4827)">
9157                      <path fill-rule="evenodd" clip-rule="evenodd" d="M3.74172 8.52891C3.71398 8.52891 3.69149 8.5514 3.69149 8.57914C3.69149 8.60687 3.71398 8.62936 3.74172 8.62936C3.76946 8.62936 3.79194 8.60687 3.79194 8.57914C3.79194 8.5514 3.76946 8.52891 3.74172 8.52891ZM2.98835 8.57914C2.98835 8.16306 3.32565 7.82577 3.74172 7.82577C4.15779 7.82577 4.49509 8.16306 4.49509 8.57914C4.49509 8.99521 4.15779 9.3325 3.74172 9.3325C3.32565 9.3325 2.98835 8.99521 2.98835 8.57914Z" fill="#333D4C"/>
9158                      <path fill-rule="evenodd" clip-rule="evenodd" d="M8.16147 8.52891C8.13373 8.52891 8.11125 8.5514 8.11125 8.57914C8.11125 8.60687 8.13373 8.62936 8.16147 8.62936C8.18921 8.62936 8.2117 8.60687 8.2117 8.57914C8.2117 8.5514 8.18921 8.52891 8.16147 8.52891ZM7.4081 8.57914C7.4081 8.16306 7.7454 7.82577 8.16147 7.82577C8.57754 7.82577 8.91484 8.16306 8.91484 8.57914C8.91484 8.99521 8.57754 9.3325 8.16147 9.3325C7.7454 9.3325 7.4081 8.99521 7.4081 8.57914Z" fill="#333D4C"/>
9159                      <path fill-rule="evenodd" clip-rule="evenodd" d="M0.175781 0.543222C0.175781 0.349054 0.333185 0.19165 0.527353 0.19165H2.13454C2.3021 0.19165 2.44638 0.309914 2.47927 0.474223L2.82481 2.20063H9.36686C9.47164 2.20063 9.57095 2.24736 9.63774 2.32809C9.70453 2.40882 9.73183 2.51514 9.71221 2.61806L9.06883 5.99176C9.01601 6.25768 8.87134 6.49654 8.66016 6.66655C8.44992 6.83578 8.1871 6.92604 7.91732 6.92173H4.01801C3.74824 6.92604 3.48541 6.83578 3.27518 6.66655C3.06407 6.49661 2.91944 6.25786 2.86657 5.99206V5.99206L2.19508 2.6371C2.19254 2.62687 2.19045 2.61646 2.18884 2.6059L1.84636 0.894793H0.527353C0.333185 0.894793 0.175781 0.737389 0.175781 0.543222ZM2.96554 2.90377L3.55618 5.85477C3.57685 5.95883 3.63346 6.0523 3.7161 6.11882C3.79873 6.18535 3.90214 6.22068 4.0082 6.21865L4.01494 6.21859H7.92039L7.92713 6.21865C8.0332 6.22068 8.1366 6.18535 8.21924 6.11882C8.30157 6.05254 8.35807 5.95952 8.37892 5.85592L8.37915 5.85477L8.94191 2.90377H2.96554Z" fill="#333D4C"/>
9160                    </g>
9161                    <defs>
9162                      <clipPath id="clip0_694_4827">
9163                        <rect width="9.6431" height="9.6431" fill="white" transform="translate(0.125 0.141357)"/>
9164                      </clipPath>
9165                    </defs>
9166                  </svg>
9167
9168<div class="loading__spinner hidden">
9169  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
9170
9171</div>
9172</button>
9173              </modal-opener>
9174              <quick-add-modal id="QuickAdd-2339413131326" class="quick-add-modal">
9175                <div
9176                  role="dialog"
9177                  aria-label="Choose options for Framed Floor Vent [Luxe]"
9178                  aria-modal="true"
9179                  class="quick-add-modal__content global-settings-popup"
9180                  tabindex="-1"
9181                >
9182                  <button
9183                    id="ModalClose-2339413131326"
9184                    type="button"
9185                    class="quick-add-modal__toggle"
9186                    aria-label="Close"
9187                  ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
9188</button>
9189                  <div id="QuickAddInfo-2339413131326" class="quick-add-modal__content-info"></div>
9190                </div>
9191              </quick-add-modal></div>
9192
9193          
9194
9195        
9196        <div class="card__badge top left"></div>
9197      </div>
9198      
9199    </div>
9200  </div>
9201                    <div class="my-buy-btn">
9202<div class="" ><product-form
9203      class="product-form"
9204      data-hide-errors="false"
9205      data-section-id="template--28630587998578__home_tab_product_tJDMfE"
9206    >
9207      <div class="product-form__error-message-wrapper" role="alert" hidden>
9208        <span class="svg-wrapper"><svg class="icon icon-error" viewBox="0 0 13 13"><circle cx="6.5" cy="6.5" r="5.5" stroke="#fff" stroke-width="2"/><circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width=".7"/><path fill="#fff" d="m5.874 3.528.1 4.044h1.053l.1-4.044zm.627 6.133c.38 0 .68-.288.68-.656s-.3-.656-.68-.656-.681.288-.681.656.3.656.68.656"/><path fill="#fff" stroke="#EB001B" stroke-width=".7" d="M5.874 3.178h-.359l.01.359.1 4.044.008.341h1.736l.008-.341.1-4.044.01-.359H5.873Zm.627 6.833c.56 0 1.03-.432 1.03-1.006s-.47-1.006-1.03-1.006-1.031.432-1.031 1.006.47 1.006 1.03 1.006Z"/></svg>
9209</span>
9210        <span class="product-form__error-message"></span>
9211      </div><form method="post" action="/cart/add" id="product-form-template--28630587998578__home_tab_product_tJDMfE" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
9212          type="hidden"
9213          name="id"
9214          value="61247543607666"
9215          
9216          class="product-variant-id"
9217        ><div class="product-form__buttons"><button
9218            id="ProductSubmitButton-template--28630587998578__home_tab_product_tJDMfE"
9219            type="submit"
9220            name="add"
9221            class="product-form__submit button button--full-width button--primary"
9222            
9223          >
9224            <span>
9225                    Learn More
9226                  
9227</span>
9228
9229<div class="loading__spinner hidden">
9230  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
9231
9232</div>
9233</button></div><input type="hidden" name="product-id" value="2339413131326" /><input type="hidden" name="section-id" value="template--28630587998578__home_tab_product_tJDMfE" /></form></product-form></div>
9234</div>
9235                  </div>
9236                
9237                  <div class="swiper-slide card-slide">
9238                    <link href="//fittes.ca/cdn/shop/t/139/assets/component-rating.css?v=179577762467860590411788881634" rel="stylesheet" type="text/css" media="all" />
9239  <link href="//fittes.ca/cdn/shop/t/139/assets/component-volume-pricing.css?v=111870094811454961941788881637" rel="stylesheet" type="text/css" media="all" />
9240
9241  <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
9242  <link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
9243<div
9244    preorder-product-element="form"
9245    d-id="14748867461490"
9246    data-product-id="14748867461490"
9247    class="card-wrapper product-card-wrapper underline-links-hover"
9248    style="position: relative;"
9249  >
9250    
9251    <div
9252      class="
9253        card card--standard
9254         card--media
9255        
9256        
9257        
9258        
9259        
9260      "
9261      style="--ratio-percent: 100%;"
9262    >
9263<div class="product-badges tw-absolute tw-left-2 tw-top-2 tw-z-[1] tw-hidden tw-max-w-[90%] ">
9264    
9265<div
9266        class="product-badge tw-px-2 tw-py-1 tw-text-sm tw-uppercase "
9267        style="color: black; background-color: white;"
9268      >Airflow Increased</div>
9269    
9270  </div>
9271      <div
9272        class="card__inner color-scheme-2 gradient ratio"
9273        style="--ratio-percent: 100%;"
9274      >
9275        
9276<div class="card__media">
9277            <div class="media media--transparent media--hover-effect">
9278              
9279              <img
9280                srcset="//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198094&width=165 165w,//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198094&width=360 360w,//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198094&width=533 533w,//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198094&width=720 720w,//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198094&width=940 940w,//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198094&width=1066 1066w,//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198094 1080w
9281                "
9282                src="//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198094&width=533"
9283                sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
9284                alt="Flush Floor Vent [Lite+]"
9285                class="motion-reduce"
9286                
9287                  loading="lazy"
9288                
9289                width="1080"
9290                height="1080"
9291              >
9292              
9293<img
9294                  srcset="//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Lite_-_Lifestyle.webp?v=1782754368&width=165 165w,//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Lite_-_Lifestyle.webp?v=1782754368&width=360 360w,//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Lite_-_Lifestyle.webp?v=1782754368&width=533 533w,//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Lite_-_Lifestyle.webp?v=1782754368&width=720 720w,//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Lite_-_Lifestyle.webp?v=1782754368&width=940 940w,//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Lite_-_Lifestyle.webp?v=1782754368 1000w
9295                  "
9296                  src="//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Lite_-_Lifestyle.webp?v=1782754368&width=533"
9297                  sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
9298                  alt=""
9299                  class="motion-reduce"
9300                  loading="lazy"
9301                  width="1000"
9302                  height="1000"
9303                >
9304              </div>
9305          </div><div class="card__content">
9306          <div class="card__information ss">
9307            <h3
9308              class="card__heading"
9309              
9310            >
9311              <a href="/products/flush-floor-vent-lite-plus" id="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-14748867461490" class="full-unstyled-link" aria-labelledby="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-14748867461490 NoMediaStandardBadge-template--28630587998578__home_tab_product_tJDMfE-14748867461490">
9312                Flush Floor Vent [Lite+]
9313              </a>
9314            </h3>
9315          </div>
9316
9317          
9318          
9319        </div>
9320      </div>
9321
9322      <div class="card__content">
9323        <div class="card__information sss"><ul class="ffp-pills" aria-label="Product features"><li class="ffp-pill" tabindex="0" data-ffp-tip="Installs before the flooring goes down, sitting flush on the sub-floor.">Sub-Floor</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Extra airflow for larger rooms or spaces with fewer vents.">Double Air Channel</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Lightweight, durable ABS plastic that will not rust.">ABS Plastic</li></ul>
9324<div class="bv_rating_summary ">
9325              <div data-bv-show="rating_summary" data-bv-product-id="14748867461490"></div>
9326            </div>
9327
9328          <h3
9329            class="card__heading h6"
9330            
9331              id="title-template--28630587998578__home_tab_product_tJDMfE-14748867461490"
9332            
9333          >
9334            <a href="/products/flush-floor-vent-lite-plus" id="CardLink-template--28630587998578__home_tab_product_tJDMfE-14748867461490" class="full-unstyled-link" aria-labelledby="CardLink-template--28630587998578__home_tab_product_tJDMfE-14748867461490 Badge-template--28630587998578__home_tab_product_tJDMfE-14748867461490">
9335              Flush Floor Vent [Lite+]
9336            </a>
9337          </h3>
9338          <div class="card-information">
9339              
9340
9341<div
9342    class="
9343      price "
9344  >
9345    <div class="price__container"><!-- REGULAR -->
9346      <div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
9347          <span class="price-item price-item--regular">
9348            $51.00 USD+
9349          </span></div>
9350
9351      
9352
9353      <small class="unit-price caption hidden">
9354        <span class="visually-hidden">Unit price</span>
9355        <span class="price-item price-item--last">
9356          <span></span>
9357          <span aria-hidden="true">/</span>
9358          <span class="visually-hidden">&nbsp;per&nbsp;</span>
9359          <span>
9360          </span>
9361        </span>
9362      </small>
9363    </div></div>
9364
9365
9366            
9367</div>
9368        </div>
9369
9370        
9371        
9372          
9373
9374          <div class="quick-add no-js-hidden"><modal-opener data-modal="#QuickAdd-14748867461490">
9375                <button
9376                  id="quick-add-template--28630587998578__home_tab_product_tJDMfE14748867461490-submit"
9377                  type="submit"
9378                  name="add"
9379                  class="quick-add__submit button button--full-width button--secondary"
9380                  aria-haspopup="dialog"
9381                  aria-labelledby="quick-add-template--28630587998578__home_tab_product_tJDMfE14748867461490-submit title-template--28630587998578__home_tab_product_tJDMfE-14748867461490"
9382                  data-product-url="/products/flush-floor-vent-lite-plus"
9383                >
9384                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none">
9385                    <g clip-path="url(#clip0_694_4827)">
9386                      <path fill-rule="evenodd" clip-rule="evenodd" d="M3.74172 8.52891C3.71398 8.52891 3.69149 8.5514 3.69149 8.57914C3.69149 8.60687 3.71398 8.62936 3.74172 8.62936C3.76946 8.62936 3.79194 8.60687 3.79194 8.57914C3.79194 8.5514 3.76946 8.52891 3.74172 8.52891ZM2.98835 8.57914C2.98835 8.16306 3.32565 7.82577 3.74172 7.82577C4.15779 7.82577 4.49509 8.16306 4.49509 8.57914C4.49509 8.99521 4.15779 9.3325 3.74172 9.3325C3.32565 9.3325 2.98835 8.99521 2.98835 8.57914Z" fill="#333D4C"/>
9387                      <path fill-rule="evenodd" clip-rule="evenodd" d="M8.16147 8.52891C8.13373 8.52891 8.11125 8.5514 8.11125 8.57914C8.11125 8.60687 8.13373 8.62936 8.16147 8.62936C8.18921 8.62936 8.2117 8.60687 8.2117 8.57914C8.2117 8.5514 8.18921 8.52891 8.16147 8.52891ZM7.4081 8.57914C7.4081 8.16306 7.7454 7.82577 8.16147 7.82577C8.57754 7.82577 8.91484 8.16306 8.91484 8.57914C8.91484 8.99521 8.57754 9.3325 8.16147 9.3325C7.7454 9.3325 7.4081 8.99521 7.4081 8.57914Z" fill="#333D4C"/>
9388                      <path fill-rule="evenodd" clip-rule="evenodd" d="M0.175781 0.543222C0.175781 0.349054 0.333185 0.19165 0.527353 0.19165H2.13454C2.3021 0.19165 2.44638 0.309914 2.47927 0.474223L2.82481 2.20063H9.36686C9.47164 2.20063 9.57095 2.24736 9.63774 2.32809C9.70453 2.40882 9.73183 2.51514 9.71221 2.61806L9.06883 5.99176C9.01601 6.25768 8.87134 6.49654 8.66016 6.66655C8.44992 6.83578 8.1871 6.92604 7.91732 6.92173H4.01801C3.74824 6.92604 3.4854
93881 6.83578 3.27518 6.66655C3.06407 6.49661 2.91944 6.25786 2.86657 5.99206V5.99206L2.19508 2.6371C2.19254 2.62687 2.19045 2.61646 2.18884 2.6059L1.84636 0.894793H0.527353C0.333185 0.894793 0.175781 0.737389 0.175781 0.543222ZM2.96554 2.90377L3.55618 5.85477C3.57685 5.95883 3.63346 6.0523 3.7161 6.11882C3.79873 6.18535 3.90214 6.22068 4.0082 6.21865L4.01494 6.21859H7.92039L7.92713 6.21865C8.0332 6.22068 8.1366 6.18535 8.21924 6.11882C8.30157 6.05254 8.35807 5.95952 8.37892 5.85592L8.37915 5.85477L8.94191 2.90377H2.96554Z" fill="#333D4C"/>
9389                    </g>
9390                    <defs>
9391                      <clipPath id="clip0_694_4827">
9392                        <rect width="9.6431" height="9.6431" fill="white" transform="translate(0.125 0.141357)"/>
9393                      </clipPath>
9394                    </defs>
9395                  </svg>
9396
9397<div class="loading__spinner hidden">
9398  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
9399
9400</div>
9401</button>
9402              </modal-opener>
9403              <quick-add-modal id="QuickAdd-14748867461490" class="quick-add-modal">
9404                <div
9405                  role="dialog"
9406                  aria-label="Choose options for Flush Floor Vent [Lite+]"
9407                  aria-modal="true"
9408                  class="quick-add-modal__content global-settings-popup"
9409                  tabindex="-1"
9410                >
9411                  <button
9412                    id="ModalClose-14748867461490"
9413                    type="button"
9414                    class="quick-add-modal__toggle"
9415                    aria-label="Close"
9416                  ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
9417</button>
9418                  <div id="QuickAddInfo-14748867461490" class="quick-add-modal__content-info"></div>
9419                </div>
9420              </quick-add-modal></div>
9421
9422          
9423
9424        
9425        <div class="card__badge top left"></div>
9426      </div>
9427      
9428    </div>
9429  </div>
9430                    <div class="my-buy-btn">
9431<div class="" ><product-form
9432      class="product-form"
9433      data-hide-errors="false"
9434      data-section-id="template--28630587998578__home_tab_product_tJDMfE"
9435    >
9436      <div class="product-form__error-message-wrapper" role="alert" hidden>
9437        <span class="svg-wrapper"><svg class="icon icon-error" viewBox="0 0 13 13"><circle cx="6.5" cy="6.5" r="5.5" stroke="#fff" stroke-width="2"/><circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width=".7"/><path fill="#fff" d="m5.874 3.528.1 4.044h1.053l.1-4.044zm.627 6.133c.38 0 .68-.288.68-.656s-.3-.656-.68-.656-.681.288-.681.656.3.656.68.656"/><path fill="#fff" stroke="#EB001B" stroke-width=".7" d="M5.874 3.178h-.359l.01.359.1 4.044.008.341h1.736l.008-.341.1-4.044.01-.359H5.873Zm.627 6.833c.56 0 1.03-.432 1.03-1.006s-.47-1.006-1.03-1.006-1.031.432-1.031 1.006.47 1.006 1.03 1.006Z"/></svg>
9438</span>
9439        <span class="product-form__error-message"></span>
9440      </div><form method="post" action="/cart/add" id="product-form-template--28630587998578__home_tab_product_tJDMfE" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
9441          type="hidden"
9442          name="id"
9443          value="52357985894770"
9444          
9445          class="product-variant-id"
9446        ><div class="product-form__buttons"><button
9447            id="ProductSubmitButton-template--28630587998578__home_tab_product_tJDMfE"
9448            type="submit"
9449            name="add"
9450            class="product-form__submit button button--full-width button--primary"
9451            
9452          >
9453            <span>
9454                    Learn More
9455                  
9456</span>
9457
9458<div class="loading__spinner hidden">
9459  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
9460
9461</div>
9462</button></div><input type="hidden" name="product-id" value="14748867461490" /><input type="hidden" name="section-id" value="template--28630587998578__home_tab_product_tJDMfE" /></form></product-form></div>
9463</div>
9464                  </div>
9465                
9466                  <div class="swiper-slide card-slide">
9467                    <link href="//fittes.ca/cdn/shop/t/139/assets/component-rating.css?v=179577762467860590411788881634" rel="stylesheet" type="text/css" media="all" />
9468  <link href="//fittes.ca/cdn/shop/t/139/assets/component-volume-pricing.css?v=111870094811454961941788881637" rel="stylesheet" type="text/css" media="all" />
9469
9470  <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
9471  <link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
9472<div
9473    preorder-product-element="form"
9474    d-id="4465087676478"
9475    data-product-id="4465087676478"
9476    class="card-wrapper product-card-wrapper underline-links-hover"
9477    style="position: relative;"
9478  >
9479    
9480    <div
9481      class="
9482        card card--standard
9483         card--media
9484        
9485        
9486        
9487        
9488        
9489      "
9490      style="--ratio-percent: 100%;"
9491    >
9492
9493      <div
9494        class="card__inner color-scheme-2 gradient ratio"
9495        style="--ratio-percent: 100%;"
9496      >
9497        
9498<div class="card__media">
9499            <div class="media media--transparent media--hover-effect">
9500              
9501              <img
9502                srcset="//fittes.ca/cdn/shop/files/1-FlushFloorVent_Lite__Lifestyle1.jpg?v=1754022184&width=165 165w,//fittes.ca/cdn/shop/files/1-FlushFloorVent_Lite__Lifestyle1.jpg?v=1754022184&width=360 360w,//fittes.ca/cdn/shop/files/1-FlushFloorVent_Lite__Lifestyle1.jpg?v=1754022184&width=533 533w,//fittes.ca/cdn/shop/files/1-FlushFloorVent_Lite__Lifestyle1.jpg?v=1754022184&width=720 720w,//fittes.ca/cdn/shop/files/1-FlushFloorVent_Lite__Lifestyle1.jpg?v=1754022184&width=940 940w,//fittes.ca/cdn/shop/files/1-FlushFloorVent_Lite__Lifestyle1.jpg?v=1754022184&width=1066 1066w,//fittes.ca/cdn/shop/files/1-FlushFloorVent_Lite__Lifestyle1.jpg?v=1754022184 1080w
9503                "
9504                src="//fittes.ca/cdn/shop/files/1-FlushFloorVent_Lite__Lifestyle1.jpg?v=1754022184&width=533"
9505                sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
9506                alt="Flush Floor Vent [Lite]"
9507                class="motion-reduce"
9508                
9509                  loading="lazy"
9510                
9511                width="1080"
9512                height="1080"
9513              >
9514              
9515<img
9516                  srcset="//fittes.ca/cdn/shop/files/7-FlushFloorVent_Lite__Lifestyle1.png?v=1754076327&width=165 165w,//fittes.ca/cdn/shop/files/7-FlushFloorVent_Lite__Lifestyle1.png?v=1754076327&width=360 360w,//fittes.ca/cdn/shop/files/7-FlushFloorVent_Lite__Lifestyle1.png?v=1754076327&width=533 533w,//fittes.ca/cdn/shop/files/7-FlushFloorVent_Lite__Lifestyle1.png?v=1754076327&width=720 720w,//fittes.ca/cdn/shop/files/7-FlushFloorVent_Lite__Lifestyle1.png?v=1754076327&width=940 940w,//fittes.ca/cdn/shop/files/7-FlushFloorVent_Lite__Lifestyle1.png?v=1754076327&width=1066 1066w,//fittes.ca/cdn/shop/files/7-FlushFloorVent_Lite__Lifestyle1.png?v=1754076327 1080w
9517                  "
9518                  src="//fittes.ca/cdn/shop/files/7-FlushFloorVent_Lite__Lifestyle1.png?v=1754076327&width=533"
9519                  sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
9520                  alt=""
9521                  class="motion-reduce"
9522                  loading="lazy"
9523                  width="1080"
9524                  height="1080"
9525                >
9526              </div>
9527          </div><div class="card__content">
9528          <div class="card__information ss">
9529            <h3
9530              class="card__heading"
9531              
9532            >
9533              <a href="/products/flush-floor-vent-lite" id="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-4465087676478" class="full-unstyled-link" aria-labelledby="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-4465087676478 NoMediaStandardBadge-template--28630587998578__home_tab_product_tJDMfE-4465087676478">
9534                Flush Floor Vent [Lite]
9535              </a>
9536            </h3>
9537          </div>
9538
9539          
9540          
9541        </div>
9542      </div>
9543
9544      <div class="card__content">
9545        <div class="card__information sss"><ul class="ffp-pills" aria-label="Product features"><li class="ffp-pill" tabindex="0" data-ffp-tip="Installs before the flooring goes down, sitting flush on the sub-floor.">Sub-Floor</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Standard airflow, well suited to most rooms.">Single Air Channel</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Lightweight, durable ABS plastic that will not rust.">ABS Plastic</li></ul>
9546<div class="bv_rating_summary ">
9547              <div data-bv-show="rating_summary" data-bv-product-id="4465087676478"></div>
9548            </div>
9549
9550          <h3
9551            class="card__heading h6"
9552            
9553              id="title-template--28630587998578__home_tab_product_tJDMfE-4465087676478"
9554            
9555          >
9556            <a href="/products/flush-floor-vent-lite" id="CardLink-template--28630587998578__home_tab_product_tJDMfE-4465087676478" class="full-unstyled-link" aria-labelledby="CardLink-template--28630587998578__home_tab_product_tJDMfE-4465087676478 Badge-template--28630587998578__home_tab_product_tJDMfE-4465087676478">
9557              Flush Floor Vent [Lite]
9558            </a>
9559          </h3>
9560          <div class="card-information">
9561              
9562
9563<div
9564    class="
9565      price "
9566  >
9567    <div class="price__container"><!-- REGULAR -->
9568      <div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
9569          <span class="price-item price-item--regular">
9570            $42.00 USD+
9571          </span></div>
9572
9573      
9574
9575      <small class="unit-price caption hidden">
9576        <span class="visually-hidden">Unit price</span>
9577        <span class="price-item price-item--last">
9578          <span></span>
9579          <span aria-hidden="true">/</span>
9580          <span class="visually-hidden">&nbsp;per&nbsp;</span>
9581          <span>
9582          </span>
9583        </span>
9584      </small>
9585    </div></div>
9586
9587
9588            
9589</div>
9590        </div>
9591
9592        
9593        
9594          
9595
9596          <div class="quick-add no-js-hidden"><modal-opener data-modal="#QuickAdd-4465087676478">
9597                <button
9598                  id="quick-add-template--28630587998578__home_tab_product_tJDMfE4465087676478-submit"
9599                  type="submit"
9600                  name="add"
9601                  class="quick-add__submit button button--full-width button--secondary"
9602                  aria-haspopup="dialog"
9603                  aria-labelledby="quick-add-template--28630587998578__home_tab_product_tJDMfE4465087676478-submit title-template--28630587998578__home_tab_product_tJDMfE-4465087676478"
9604                  data-product-url="/products/flush-floor-vent-lite"
9605                >
9606                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none">
9607                    <g clip-path="url(#clip0_694_4827)">
9608                      <path fill-rule="evenodd" clip-rule="evenodd" d="M3.74172 8.52891C3.71398 8.52891 3.69149 8.5514 3.69149 8.57914C3.69149 8.60687 3.71398 8.62936 3.74172 8.62936C3.76946 8.62936 3.79194 8.60687 3.79194 8.57914C3.79194 8.5514 3.76946 8.52891 3.74172 8.52891ZM2.98835 8.57914C2.98835 8.16306 3.32565 7.82577 3.74172 7.82577C4.15779 7.82577 4.49509 8.16306 4.49509 8.57914C4.49509 8.99521 4.15779 9.3325 3.74172 9.3325C3.32565 9.3325 2.98835 8.99521 2.98835 8.57914Z" fill="#333D4C"/>
9609                      <path fill-rule="evenodd" clip-rule="evenodd" d="M8.16147 8.52891C8.13373 8.52891 8.11125 8.5514 8.11125 8.57914C8.11125 8.60687 8.13373 8.62936 8.16147 8.62936C8.18921 8.62936 8.2117 8.60687 8.2117 8.57914C8.2117 8.5514 8.18921 8.52891 8.16147 8.52891ZM7.4081 8.57914C7.4081 8.16306 7.7454 7.82577 8.16147 7.82577C8.57754 7.82577 8.91484 8.16306 8.91484 8.57914C8.91484 8.99521 8.57754 9.3325 8.16147 9.3325C7.7454 9.3325 7.4081 8.99521 7.4081 8.57914Z" fill="#333D4C"/>
9610                      <path fill-rule="evenodd" clip-rule="evenodd" d="M0.175781 0.543222C0.175781 0.349054 0.333185 0.19165 0.527353 0.19165H2.13454C2.3021 0.19165 2.44638 0.309914 2.47927 0.474223L2.82481 2.20063H9.36686C9.47164 2.20063 9.57095 2.24736 9.63774 2.32809C9.70453 2.40882 9.73183 2.51514 9.71221 2.61806L9.06883 5.99176C9.01601 6.25768 8.87134 6.49654 8.66016 6.66655C8.44992 6.83578 8.1871 6.92604 7.91732 6.92173H4.01801C3.74824 6.92604 3.48541 6.83578 3.27518 6.66655C3.06407 6.49661 2.91944 6.25786 2.86657 5.99206V5.99206L2.19508 2.6371C2.19254 2.62687 2.19045 2.61646 2.18884 2.6059L1.84636 0.894793H0.527353C0.333185 0.894793 0.175781 0.737389 0.175781 0.543222ZM2.96554 2.90377L3.55618 5.85477C3.57685 5.95883 3.63346 6.0523 3.7161 6.11882C3.79873 6.18535 3.90214 6.22068 4.0082 6.21865L4.01494 6.21859H7.92039L7.92713 6.21865C8.0332 6.22068 8.1366 6.18535 8.21924 6.11882C8.30157 6.05254 8.35807 5.95952 8.37892 5.85592L8.37915 5.85477L8.94191 2.90377H2.96554Z" fill="#333D4C"/>
9611                    </g>
9612                    <defs>
9613                      <clipPath id="clip0_694_4827">
9614                        <rect width="9.6431" height="9.6431" fill="white" transform="translate(0.125 0.141357)"/>
9615                      </clipPath>
9616                    </defs>
9617                  </svg>
9618
9619<div class="loading__spinner hidden">
9620  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
9621
9622</div>
9623</button>
9624              </modal-opener>
9625              <quick-add-modal id="QuickAdd-4465087676478" class="quick-add-modal">
9626                <div
9627                  role="dialog"
9628                  aria-label="Choose options for Flush Floor Vent [Lite]"
9629                  aria-modal="true"
9630                  class="quick-add-modal__content global-settings-popup"
9631                  tabindex="-1"
9632                >
9633                  <button
9634                    id="ModalClose-4465087676478"
9635                    type="button"
9636                    class="quick-add-modal__toggle"
9637                    aria-label="Close"
9638                  ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
9639</button>
9640                  <div id="QuickAddInfo-4465087676478" class="quick-add-modal__content-info"></div>
9641                </div>
9642              </quick-add-modal></div>
9643
9644          
9645
9646        
9647        <div class="card__badge top left"></div>
9648      </div>
9649      
9650    </div>
9651  </div>
9652                    <div class="my-buy-btn">
9653<div class="" ><product-form
9654      class="product-form"
9655      data-hide-errors="false"
9656      data-section-id="template--28630587998578__home_tab_product_tJDMfE"
9657    >
9658      <div class="product-form__error-message-wrapper" role="alert" hidden>
9659        <span class="svg-wrapper"><svg class="icon icon-error" viewBox="0 0 13 13"><circle cx="6.5" cy="6.5" r="5.5" stroke="#fff" stroke-width="2"/><circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width=".7"/><path fill="#fff" d="m5.874 3.528.1 4.044h1.053l.1-4.044zm.627 6.133c.38 0 .68-.288.68-.656s-.3-.656-.68-.656-.681.288-.681.656.3.656.68.656"/><path fill="#fff" stroke="#EB001B" stroke-width=".7" d="M5.874 3.178h-.359l.01.359.1 4.044.008.341h1.736l.008-.341.1-4.044.01-.359H5.873Zm.627 6.833c.56 0 1.03-.432 1.03-1.006s-.47-1.006-1.03-1.006-1.031.432-1.031 1.006.47 1.006 1.03 1.006Z"/></svg>
9660</span>
9661        <span class="product-form__error-message"></span>
9662      </div><form method="post" action="/cart/add" id="product-form-template--28630587998578__home_tab_product_tJDMfE" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
9663          type="hidden"
9664          name="id"
9665          value="61247556452722"
9666          
9667          class="product-variant-id"
9668        ><div class="product-form__buttons"><button
9669            id="ProductSubmitButton-template--28630587998578__home_tab_product_tJDMfE"
9670            type="submit"
9671            name="add"
9672            class="product-form__submit button button--full-width button--primary"
9673            
9674          >
9675            <span>
9676                    Learn More
9677                  
9678</span>
9679
9680<div class="loading__spinner hidden">
9681  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
9682
9683</div>
9684</button></div><input type="hidden" name="product-id" value="4465087676478" /><input type="hidden" name="section-id" value="template--28630587998578__home_tab_product_tJDMfE" /></form></product-form></div>
9685</div>
9686                  </div>
9687                
9688                  <div class="swiper-slide card-slide">
9689                    <link href="//fittes.ca/cdn/shop/t/139/assets/component-rating.css?v=179577762467860590411788881634" rel="stylesheet" type="text/css" media="all" />
9690  <link href="//fittes.ca/cdn/shop/t/139/assets/component-volume-pricing.css?v=111870094811454961941788881637" rel="stylesheet" type="text/css" media="all" />
9691
9692  <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
9693  <link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
9694<div
9695    preorder-product-element="form"
9696    d-id="14738400608626"
9697    data-product-id="14738400608626"
9698    class="card-wrapper product-card-wrapper underline-links-hover"
9699    style="position: relative;"
9700  >
9701    
9702    <div
9703      class="
9704        card card--standard
9705         card--media
9706        
9707        
9708        
9709        
9710        
9711      "
9712      style="--ratio-percent: 100%;"
9713    >
9714<div class="product-badges tw-absolute tw-left-2 tw-top-2 tw-z-[1] tw-hidden tw-max-w-[90%] ">
9715    
9716<div
9717        class="product-badge tw-px-2 tw-py-1 tw-text-sm tw-uppercase "
9718        style="color: black; background-color: white;"
9719      >Airflow Increased</div>
9720    
9721  </div>
9722      <div
9723        class="card__inner color-scheme-2 gradient ratio"
9724        style="--ratio-percent: 100%;"
9725      >
9726        
9727<div class="card__media">
9728            <div class="media media--transparent media--hover-effect">
9729              
9730              <img
9731                srcset="//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198185&width=165 165w,//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198185&width=360 360w,//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198185&width=533 533w,//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198185&width=720 720w,//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198185&width=940 940w,//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198185&width=1066 1066w,//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198185 1080w
9732                "
9733                src="//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198185&width=533"
9734                sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
9735                alt="Framed Floor Vent [Lite+]"
9736                class="motion-reduce"
9737                
9738                  loading="lazy"
9739                
9740                width="1080"
9741                height="1080"
9742              >
9743              
9744<img
9745                  srcset="//fittes.ca/cdn/shop/files/preview_images/a73087210e2a4d7a9f10dbf4a9fc161f.thumbnail.0000000000.jpg?v=1756908646 w
9746                  "
9747                  src="//fittes.ca/cdn/shop/files/preview_images/a73087210e2a4d7a9f10dbf4a9fc161f.thumbnail.0000000000.jpg?v=1756908646&width=533"
9748                  sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
9749                  alt=""
9750                  class="motion-reduce"
9751                  loading="lazy"
9752                  width=""
9753                  height=""
9754                >
9755              </div>
9756          </div><div class="card__content">
9757          <div class="card__information ss">
9758            <h3
9759              class="card__heading"
9760              
9761            >
9762              <a href="/products/framed-floor-vent-lite-plus" id="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-14738400608626" class="full-unstyled-link" aria-labelledby="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-14738400608626 NoMediaStandardBadge-template--28630587998578__home_tab_product_tJDMfE-14738400608626">
9763                Framed Floor Vent [Lite+]
9764              </a>
9765            </h3>
9766          </div>
9767
9768          
9769          
9770        </div>
9771      </div>
9772
9773      <div class="card__content">
9774        <div class="card__information sss"><ul class="ffp-pills" aria-label="Product features"><li class="ffp-pill" tabindex="0" data-ffp-tip="Drops into the opening with minimal tools. Slight lip at the edge; fully paintable.">Drop-In</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Extra airflow for larger rooms or spaces with fewer vents.">Double Air Channel</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Lightweight, durable ABS plastic that will not rust.">ABS Plastic</li></ul>
9775<div class="bv_rating_summary ">
9776              <div data-bv-show="rating_summary" data-bv-product-id="14738400608626"></div>
9777            </div>
9778
9779          <h3
9780            class="card__heading h6"
9781            
9782              id="title-template--28630587998578__home_tab_product_tJDMfE-14738400608626"
9783            
9784          >
9785            <a href="/products/framed-floor-vent-lite-plus" id="CardLink-template--28630587998578__home_tab_product_tJDMfE-14738400608626" class="full-unstyled-link" aria-labelledby="CardLink-template--28630587998578__home_tab_product_tJDMfE-14738400608626 Badge-template--28630587998578__home_tab_product_tJDMfE-14738400608626">
9786              Framed Floor Vent [Lite+]
9787            </a>
9788          </h3>
9789          <div class="card-information">
9790              
9791
9792<div
9793    class="
9794      price "
9795  >
9796    <div class="price__container"><!-- REGULAR -->
9797      <div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
9798          <span class="price-item price-item--regular">
9799            $28.00 USD+
9800          </span></div>
9801
9802      
9803
9804      <small class="unit-price caption hidden">
9805        <span class="visually-hidden">Unit price</span>
9806        <span class="price-item price-item--last">
9807          <span></span>
9808          <span aria-hidden="true">/</span>
9809          <span class="visually-hidden">&nbsp;per&nbsp;</span>
9810          <span>
9811          </span>
9812        </span>
9813      </small>
9814    </div></div>
9815
9816
9817            
9818</div>
9819        </div>
9820
9821        
9822        
9823          
9824
9825          <div class="quick-add no-js-hidden"><modal-opener data-modal="#QuickAdd-14738400608626">
9826                <button
9827                  id="quick-add-template--28630587998578__home_tab_product_tJDMfE14738400608626-submit"
9828                  type="submit"
9829                  name="add"
9830                  class="quick-add__submit button button--full-width button--secondary"
9831                  aria-haspopup="dialog"
9832                  aria-labelledby="quick-add-template--28630587998578__home_tab_product_tJDMfE14738400608626-submit title-template--28630587998578__home_tab_product_tJDMfE-14738400608626"
9833                  data-product-url="/products/framed-floor-vent-lite-plus"
9834                >
9835                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none">
9836                    <g clip-path="url(#clip0_694_4827)">
9837                      <path fill-rule="evenodd" clip-rule="evenodd" d="M3.74172 8.52891C3.71398 8.52891 3.69149 8.5514 3.69149 8.57914C3.69149 8.60687 3.71398 8.62936 3.74172 8.62936C3.76946 8.62936 3.79194 8.60687 3.79194 8.57914C3.79194 8.5514 3.76946 8.52891 3.74172 8.52891ZM2.98835 8.57914C2.98835 8.16306 3.32565 7.82577 3.74172 7.82577C4.15779 7.82577 4.49509 8.16306 4.49509 8.57914C4.49509 8.99521 4.15779 9.3325 3.74172 9.3325C3.32565 9.3325 2.98835 8.99521 2.98835 8.57914Z" fill="#333D4C"/>
9838                      <path fill-rule="evenodd" clip-rule="evenodd" d="M8.16147 8.52891C8.13373 8.52891 8.11125 8.5514 8.11125 8.57914C8.11125 8.60687 8.13373 8.62936 8.16147 8.62936C8.18921 8.62936 8.2117 8.60687 8.2117 8.57914C8.2117 8.5514 8.18921 8.52891 8.16147 8.52891ZM7.4081 8.57914C7.4081 8.16306 7.7454 7.82577 8.16147 7.82577C8.57754 7.82577 8.91484 8.16306 8.91484 8.57914C8.91484 8.99521 8.57754 9.3325 8.16147 9.3325C7.7454 9.3325 7.4081 8.99521 7.4081 8.57914Z" fill="#333D4C"/>
9839                      <path fill-rule="evenodd" clip-rule="evenodd" d="M0.175781 0.543222C0.175781 0.349054 0.333185 0.19165 0.527353 0.19165H2.13454C2.3021 0.19165 2.44638 0.309914 2.47927 0.474223L2.82481 2.20063H9.36686C9.47164 2.20063 9.57095 2.24736 9.63774 2.32809C9.70453 2.40882 9.73183 2.51514 9.71221 2.61806L9.06883 5.99176C9.01601 6.25768 8.87134 6.49654 8.66016 6.66655C8.44992 6.83578 8.1871 6.92604 7.91732 6.92173H4.01801C3.74824 6.92604 3.4854
98391 6.83578 3.27518 6.66655C3.06407 6.49661 2.91944 6.25786 2.86657 5.99206V5.99206L2.19508 2.6371C2.19254 2.62687 2.19045 2.61646 2.18884 2.6059L1.84636 0.894793H0.527353C0.333185 0.894793 0.175781 0.737389 0.175781 0.543222ZM2.96554 2.90377L3.55618 5.85477C3.57685 5.95883 3.63346 6.0523 3.7161 6.11882C3.79873 6.18535 3.90214 6.22068 4.0082 6.21865L4.01494 6.21859H7.92039L7.92713 6.21865C8.0332 6.22068 8.1366 6.18535 8.21924 6.11882C8.30157 6.05254 8.35807 5.95952 8.37892 5.85592L8.37915 5.85477L8.94191 2.90377H2.96554Z" fill="#333D4C"/>
9840                    </g>
9841                    <defs>
9842                      <clipPath id="clip0_694_4827">
9843                        <rect width="9.6431" height="9.6431" fill="white" transform="translate(0.125 0.141357)"/>
9844                      </clipPath>
9845                    </defs>
9846                  </svg>
9847
9848<div class="loading__spinner hidden">
9849  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
9850
9851</div>
9852</button>
9853              </modal-opener>
9854              <quick-add-modal id="QuickAdd-14738400608626" class="quick-add-modal">
9855                <div
9856                  role="dialog"
9857                  aria-label="Choose options for Framed Floor Vent [Lite+]"
9858                  aria-modal="true"
9859                  class="quick-add-modal__content global-settings-popup"
9860                  tabindex="-1"
9861                >
9862                  <button
9863                    id="ModalClose-14738400608626"
9864                    type="button"
9865                    class="quick-add-modal__toggle"
9866                    aria-label="Close"
9867                  ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
9868</button>
9869                  <div id="QuickAddInfo-14738400608626" class="quick-add-modal__content-info"></div>
9870                </div>
9871              </quick-add-modal></div>
9872
9873          
9874
9875        
9876        <div class="card__badge top left"></div>
9877      </div>
9878      
9879    </div>
9880  </div>
9881                    <div class="my-buy-btn">
9882<div class="" ><product-form
9883      class="product-form"
9884      data-hide-errors="false"
9885      data-section-id="template--28630587998578__home_tab_product_tJDMfE"
9886    >
9887      <div class="product-form__error-message-wrapper" role="alert" hidden>
9888        <span class="svg-wrapper"><svg class="icon icon-error" viewBox="0 0 13 13"><circle cx="6.5" cy="6.5" r="5.5" stroke="#fff" stroke-width="2"/><circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width=".7"/><path fill="#fff" d="m5.874 3.528.1 4.044h1.053l.1-4.044zm.627 6.133c.38 0 .68-.288.68-.656s-.3-.656-.68-.656-.681.288-.681.656.3.656.68.656"/><path fill="#fff" stroke="#EB001B" stroke-width=".7" d="M5.874 3.178h-.359l.01.359.1 4.044.008.341h1.736l.008-.341.1-4.044.01-.359H5.873Zm.627 6.833c.56 0 1.03-.432 1.03-1.006s-.47-1.006-1.03-1.006-1.031.432-1.031 1.006.47 1.006 1.03 1.006Z"/></svg>
9889</span>
9890        <span class="product-form__error-message"></span>
9891      </div><form method="post" action="/cart/add" id="product-form-template--28630587998578__home_tab_product_tJDMfE" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
9892          type="hidden"
9893          name="id"
9894          value="52294891995506"
9895          
9896          class="product-variant-id"
9897        ><div class="product-form__buttons"><button
9898            id="ProductSubmitButton-template--28630587998578__home_tab_product_tJDMfE"
9899            type="submit"
9900            name="add"
9901            class="product-form__submit button button--full-width button--primary"
9902            
9903          >
9904            <span>
9905                    Learn More
9906                  
9907</span>
9908
9909<div class="loading__spinner hidden">
9910  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
9911
9912</div>
9913</button></div><input type="hidden" name="product-id" value="14738400608626" /><input type="hidden" name="section-id" value="template--28630587998578__home_tab_product_tJDMfE" /></form></product-form></div>
9914</div>
9915                  </div>
9916                
9917                  <div class="swiper-slide card-slide">
9918                    <link href="//fittes.ca/cdn/shop/t/139/assets/component-rating.css?v=179577762467860590411788881634" rel="stylesheet" type="text/css" media="all" />
9919  <link href="//fittes.ca/cdn/shop/t/139/assets/component-volume-pricing.css?v=111870094811454961941788881637" rel="stylesheet" type="text/css" media="all" />
9920
9921  <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
9922  <link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
9923<div
9924    preorder-product-element="form"
9925    d-id="2339971203134"
9926    data-product-id="2339971203134"
9927    class="card-wrapper product-card-wrapper underline-links-hover"
9928    style="position: relative;"
9929  >
9930    
9931    <div
9932      class="
9933        card card--standard
9934         card--media
9935        
9936        
9937        
9938        
9939        
9940      "
9941      style="--ratio-percent: 100%;"
9942    >
9943
9944      <div
9945        class="card__inner color-scheme-2 gradient ratio"
9946        style="--ratio-percent: 100%;"
9947      >
9948        
9949<div class="card__media">
9950            <div class="media media--transparent media--hover-effect">
9951              
9952              <img
9953                srcset="//fittes.ca/cdn/shop/files/1-FramedFloorVent_Lite__Lifestyle1_041cdba3-cae9-44c0-ba82-a7ecf116ddf0.png?v=1754022193&width=165 165w,//fittes.ca/cdn/shop/files/1-FramedFloorVent_Lite__Lifestyle1_041cdba3-cae9-44c0-ba82-a7ecf116ddf0.png?v=1754022193&width=360 360w,//fittes.ca/cdn/shop/files/1-FramedFloorVent_Lite__Lifestyle1_041cdba3-cae9-44c0-ba82-a7ecf116ddf0.png?v=1754022193&width=533 533w,//fittes.ca/cdn/shop/files/1-FramedFloorVent_Lite__Lifestyle1_041cdba3-cae9-44c0-ba82-a7ecf116ddf0.png?v=1754022193&width=720 720w,//fittes.ca/cdn/shop/files/1-FramedFloorVent_Lite__Lifestyle1_041cdba3-cae9-44c0-ba82-a7ecf116ddf0.png?v=1754022193&width=940 940w,//fittes.ca/cdn/shop/files/1-FramedFloorVent_Lite__Lifestyle1_041cdba3-cae9-44c0-ba82-a7ecf116ddf0.png?v=1754022193&width=1066 1066w,//fittes.ca/cdn/shop/files/1-FramedFloorVent_Lite__Lifestyle1_041cdba3-cae9-44c0-ba82-a7ecf116ddf0.png?v=1754022193 1080w
9954                "
9955                src="//fittes.ca/cdn/shop/files/1-FramedFloorVent_Lite__Lifestyle1_041cdba3-cae9-44c0-ba82-a7ecf116ddf0.png?v=1754022193&width=533"
9956                sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
9957                alt="Framed Floor Vent [Lite]"
9958                class="motion-reduce"
9959                
9960                  loading="lazy"
9961                
9962                width="1080"
9963                height="1080"
9964              >
9965              
9966<img
9967                  srcset="//fittes.ca/cdn/shop/files/8-FramedFloorVent_Lite__Lifestyle2_2_9c2bd9f4-d05a-401f-8a2d-bb09fe29db5c.png?v=1754076115&width=165 165w,//fittes.ca/cdn/shop/files/8-FramedFloorVent_Lite__Lifestyle2_2_9c2bd9f4-d05a-401f-8a2d-bb09fe29db5c.png?v=1754076115&width=360 360w,//fittes.ca/cdn/shop/files/8-FramedFloorVent_Lite__Lifestyle2_2_9c2bd9f4-d05a-401f-8a2d-bb09fe29db5c.png?v=1754076115&width=533 533w,//fittes.ca/cdn/shop/files/8-FramedFloorVent_Lite__Lifestyle2_2_9c2bd9f4-d05a-401f-8a2d-bb09fe29db5c.png?v=1754076115&width=720 720w,//fittes.ca/cdn/shop/files/8-FramedFloorVent_Lite__Lifestyle2_2_9c2bd9f4-d05a-401f-8a2d-bb09fe29db5c.png?v=1754076115&width=940 940w,//fittes.ca/cdn/shop/files/8-FramedFloorVent_Lite__Lifestyle2_2_9c2bd9f4-d05a-401f-8a2d-bb09fe29db5c.png?v=1754076115&width=1066 1066w,//fittes.ca/cdn/shop/files/8-FramedFloorVent_Lite__Lifestyle2_2_9c2bd9f4-d05a-401f-8a2d-bb09fe29db5c.png?v=1754076115 1080w
9968                  "
9969                  src="//fittes.ca/cdn/shop/files/8-FramedFloorVent_Lite__Lifestyle2_2_9c2bd9f4-d05a-401f-8a2d-bb09fe29db5c.png?v=1754076115&width=533"
9970                  sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
9971                  alt=""
9972                  class="motion-reduce"
9973                  loading="lazy"
9974                  width="1080"
9975                  height="1080"
9976                >
9977              </div>
9978          </div><div class="card__content">
9979          <div class="card__information ss">
9980            <h3
9981              class="card__heading"
9982              
9983            >
9984              <a href="/products/framed-floor-vent-lite" id="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-2339971203134" class="full-unstyled-link" aria-labelledby="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-2339971203134 NoMediaStandardBadge-template--28630587998578__home_tab_product_tJDMfE-2339971203134">
9985                Framed Floor Vent [Lite]
9986              </a>
9987            </h3>
9988          </div>
9989
9990          
9991          
9992        </div>
9993      </div>
9994
9995      <div class="card__content">
9996        <div class="card__information sss"><ul class="ffp-pills" aria-label="Product features"><li class="ffp-pill" tabindex="0" data-ffp-tip="Drops into the opening with minimal tools. Slight lip at the edge; fully paintable.">Drop-In</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Standard airflow, well suited to most rooms.">Single Air Channel</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Lightweight, durable ABS plastic that will not rust.">ABS Plastic</li></ul>
9997<div class="bv_rating_summary ">
9998              <div data-bv-show="rating_summary" data-bv-product-id="2339971203134"></div>
9999            </div>
10000
10001          <h3
10002            class="card__heading h6"
10003            
10004              id="title-template--28630587998578__home_tab_product_tJDMfE-2339971203134"
10005            
10006          >
10007            <a href="/products/framed-floor-vent-lite" id="CardLink-template--28630587998578__home_tab_product_tJDMfE-2339971203134" class="full-unstyled-link" aria-labelledby="CardLink-template--28630587998578__home_tab_product_tJDMfE-2339971203134 Badge-template--28630587998578__home_tab_product_tJDMfE-2339971203134">
10008              Framed Floor Vent [Lite]
10009            </a>
10010          </h3>
10011          <div class="card-information">
10012              
10013
10014<div
10015    class="
10016      price "
10017  >
10018    <div class="price__container"><!-- REGULAR -->
10019      <div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
10020          <span class="price-item price-item--regular">
10021            $22.00 USD+
10022          </span></div>
10023
10024      
10025
10026      <small class="unit-price caption hidden">
10027        <span class="visually-hidden">Unit price</span>
10028        <span class="price-item price-item--last">
10029          <span></span>
10030          <span aria-hidden="true">/</span>
10031          <span class="visually-hidden">&nbsp;per&nbsp;</span>
10032          <span>
10033          </span>
10034        </span>
10035      </small>
10036    </div></div>
10037
10038
10039            
10040</div>
10041        </div>
10042
10043        
10044        
10045          
10046
10047          <div class="quick-add no-js-hidden"><modal-opener data-modal="#QuickAdd-2339971203134">
10048                <button
10049                  id="quick-add-template--28630587998578__home_tab_product_tJDMfE2339971203134-submit"
10050                  type="submit"
10051                  name="add"
10052                  class="quick-add__submit button button--full-width button--secondary"
10053                  aria-haspopup="dialog"
10054                  aria-labelledby="quick-add-template--28630587998578__home_tab_product_tJDMfE2339971203134-submit title-template--28630587998578__home_tab_product_tJDMfE-2339971203134"
10055                  data-product-url="/products/framed-floor-vent-lite"
10056                >
10057                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none">
10058                    <g clip-path="url(#clip0_694_4827)">
10059                      <path fill-rule="evenodd" clip-rule="evenodd" d="M3.74172 8.52891C3.71398 8.52891 3.69149 8.5514 3.69149 8.57914C3.69149 8.60687 3.71398 8.62936 3.74172 8.62936C3.76946 8.62936 3.79194 8.60687 3.79194 8.57914C3.79194 8.5514 3.76946 8.52891 3.74172 8.52891ZM2.98835 8.57914C2.98835 8.16306 3.32565 7.82577 3.74172 7.82577C4.15779 7.82577 4.49509 8.16306 4.49509 8.57914C4.49509 8.99521 4.15779 9.3325 3.74172 9.3325C3.32565 9.3325 2.98835 8.99521 2.98835 8.57914Z" fill="#333D4C"/>
10060                      <path fill-rule="evenodd" clip-rule="evenodd" d="M8.16147 8.52891C8.13373 8.52891 8.11125 8.5514 8.11125 8.57914C8.11125 8.60687 8.13373 8.62936 8.16147 8.62936C8.18921 8.62936 8.2117 8.60687 8.2117 8.57914C8.2117 8.5514 8.18921 8.52891 8.16147 8.52891ZM7.4081 8.57914C7.4081 8.16306 7.7454 7.82577 8.16147 7.82577C8.57754 7.82577 8.91484 8.16306 8.91484 8.57914C8.91484 8.99521 8.57754 9.3325 8.16147 9.3325C7.7454 9.3325 7.4081 8.99521 7.4081 8.57914Z" fill="#333D4C"/>
10061                      <path fill-rule="evenodd" clip-rule="evenodd" d="M0.175781 0.543222C0.175781 0.349054 0.333185 0.19165 0.527353 0.19165H2.13454C2.3021 0.19165 2.44638 0.309914 2.47927 0.474223L2.82481 2.20063H9.36686C9.47164 2.20063 9.57095 2.24736 9.63774 2.32809C9.70453 2.40882 9.73183 2.51514 9.71221 2.61806L9.06883 5.99176C9.01601 6.25768 8.87134 6.49654 8.66016 6.66655C8.44992 6.83578 8.1871 6.92604 7.91732 6.92173H4.01801C3.74824 6.92604 3.48541 6.83578 3.27518 6.66655C3.06407 6.49661 2.91944 6.25786 2.86657 5.99206V5.99206L2.19508 2.6371C2.19254 2.62687 2.19045 2.61646 2.18884 2.6059L1.84636 0.894793H0.527353C0.333185 0.894793 0.175781 0.737389 0.175781 0.543222ZM2.96554 2.90377L3.55618 5.85477C3.57685 5.95883 3.63346 6.0523 3.7161 6.11882C3.79873 6.18535 3.90214 6.22068 4.0082 6.21865L4.01494 6.21859H7.92039L7.92713 6.21865C8.0332 6.22068 8.1366 6.18535 8.21924 6.11882C8.30157 6.05254 8.35807 5.95952 8.37892 5.85592L8.37915 5.85477L8.94191 2.90377H2.96554Z" fill="#333D4C"/>
10062                    </g>
10063                    <defs>
10064                      <clipPath id="clip0_694_4827">
10065                        <rect width="9.6431" height="9.6431" fill="white" transform="translate(0.125 0.141357)"/>
10066                      </clipPath>
10067                    </defs>
10068                  </svg>
10069
10070<div class="loading__spinner hidden">
10071  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
10072
10073</div>
10074</button>
10075              </modal-opener>
10076              <quick-add-modal id="QuickAdd-2339971203134" class="quick-add-modal">
10077                <div
10078                  role="dialog"
10079                  aria-label="Choose options for Framed Floor Vent [Lite]"
10080                  aria-modal="true"
10081                  class="quick-add-modal__content global-settings-popup"
10082                  tabindex="-1"
10083                >
10084                  <button
10085                    id="ModalClose-2339971203134"
10086                    type="button"
10087                    class="quick-add-modal__toggle"
10088                    aria-label="Close"
10089                  ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
10090</button>
10091                  <div id="QuickAddInfo-2339971203134" class="quick-add-modal__content-info"></div>
10092                </div>
10093              </quick-add-modal></div>
10094
10095          
10096
10097        
10098        <div class="card__badge top left"></div>
10099      </div>
10100      
10101    </div>
10102  </div>
10103                    <div class="my-buy-btn">
10104<div class="" ><product-form
10105      class="product-form"
10106      data-hide-errors="false"
10107      data-section-id="template--28630587998578__home_tab_product_tJDMfE"
10108    >
10109      <div class="product-form__error-message-wrapper" role="alert" hidden>
10110        <span class="svg-wrapper"><svg class="icon icon-error" viewBox="0 0 13 13"><circle cx="6.5" cy="6.5" r="5.5" stroke="#fff" stroke-width="2"/><circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width=".7"/><path fill="#fff" d="m5.874 3.528.1 4.044h1.053l.1-4.044zm.627 6.133c.38 0 .68-.288.68-.656s-.3-.656-.68-.656-.681.288-.681.656.3.656.68.656"/><path fill="#fff" stroke="#EB001B" stroke-width=".7" d="M5.874 3.178h-.359l.01.359.1 4.044.008.341h1.736l.008-.341.1-4.044.01-.359H5.873Zm.627 6.833c.56 0 1.03-.432 1.03-1.006s-.47-1.006-1.03-1.006-1.031.432-1.031 1.006.47 1.006 1.03 1.006Z"/></svg>
10111</span>
10112        <span class="product-form__error-message"></span>
10113      </div><form method="post" action="/cart/add" id="product-form-template--28630587998578__home_tab_product_tJDMfE" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
10114          type="hidden"
10115          name="id"
10116          value="61247550030194"
10117          
10118          class="product-variant-id"
10119        ><div class="product-form__buttons"><button
10120            id="ProductSubmitButton-template--28630587998578__home_tab_product_tJDMfE"
10121            type="submit"
10122            name="add"
10123            class="product-form__submit button button--full-width button--primary"
10124            
10125          >
10126            <span>
10127                    Learn More
10128                  
10129</span>
10130
10131<div class="loading__spinner hidden">
10132  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
10133
10134</div>
10135</button></div><input type="hidden" name="product-id" value="2339971203134" /><input type="hidden" name="section-id" value="template--28630587998578__home_tab_product_tJDMfE" /></form></product-form></div>
10136</div>
10137                  </div>
10138                
10139              </div>
10140            </div>
10141            <div class="swiper-button-prev small-hide swiper-button-disabled">
10142              <svg xmlns="http://www.w3.org/2000/svg" width="27" height="27" viewBox="0 0 27 27" fill="none">
10143                <path d="M22.1953 13.9355H4.98519M4.98519 13.9355C4.98519 13.9355 9.86348 10.7272 10.8548 8.06592M4.98519 13.9355C4.98519 13.9355 9.29778 16.95 10.8548 19.805" stroke="#1E1E1E" stroke-width="2.17391" stroke-linecap="square"/>
10144              </svg>
10145            </div>
10146            <div class="swiper-button-next small-hide">
10147              <svg xmlns="http://www.w3.org/2000/svg" width="27" height="27" viewBox="0 0 27 27" fill="none">
10148                <path d="M4.80469 13.9355H22.0148M22.0148 13.9355C22.0148 13.9355 17.1365 10.7272 16.1452 8.06592M22.0148 13.9355C22.0148 13.9355 17.7022 16.95 16.1452 19.805" stroke="#1E1E1E" stroke-width="2.17391" stroke-linecap="square"/>
10149              </svg>
10150            </div>
10151          </div>
10152        </template>
10153      </div>
10154    
10155      <div class="series-product-bottom" data-content="lite" data-index="2"><template data-swiper-template>
10156          <div class="swiper-outer-wrapper">
10157            <div class="swiper mySwiper series-product-product">
10158              <div class="swiper-wrapper">
10159                
10160                  <div class="swiper-slide card-slide">
10161                    <link href="//fittes.ca/cdn/shop/t/139/assets/component-rating.css?v=179577762467860590411788881634" rel="stylesheet" type="text/css" media="all" />
10162  <link href="//fittes.ca/cdn/shop/t/139/assets/component-volume-pricing.css?v=111870094811454961941788881637" rel="stylesheet" type="text/css" media="all" />
10163
10164  <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
10165  <link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
10166<div
10167    preorder-product-element="form"
10168    d-id="14748889874802"
10169    data-product-id="14748889874802"
10170    class="card-wrapper product-card-wrapper underline-links-hover"
10171    style="position: relative;"
10172  >
10173    
10174    <div
10175      class="
10176        card card--standard
10177         card--media
10178        
10179        
10180        
10181        
10182        
10183      "
10184      style="--ratio-percent: 100%;"
10185    >
10186<div class="product-badges tw-absolute tw-left-2 tw-top-2 tw-z-[1] tw-hidden tw-max-w-[90%] ">
10187    
10188<div
10189        class="product-badge tw-px-2 tw-py-1 tw-text-sm tw-uppercase "
10190        style="color: black; background-color: white;"
10191      >Airflow Increased</div>
10192    
10193  </div>
10194      <div
10195        class="card__inner color-scheme-2 gradient ratio"
10196        style="--ratio-percent: 100%;"
10197      >
10198        
10199<div class="card__media">
10200            <div class="media media--transparent media--hover-effect">
10201              
10202              <img
10203                srcset="//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198533&width=165 165w,//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198533&width=360 360w,//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198533&width=533 533w,//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198533&width=720 720w,//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198533&width=940 940w,//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198533&width=1066 1066w,//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198533 1080w
10204                "
10205                src="//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198533&width=533"
10206                sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
10207                alt="Flush Wall Vent [Lite+]"
10208                class="motion-reduce"
10209                
10210                  loading="lazy"
10211                
10212                width="1080"
10213                height="1080"
10214              >
10215              
10216<img
10217                  srcset="//fittes.ca/cdn/shop/files/DWLITBD10X14WHT-HP_2000_x_2000_px.webp?v=1787678925&width=165 165w,//fittes.ca/cdn/shop/files/DWLITBD10X14WHT-HP_2000_x_2000_px.webp?v=1787678925&width=360 360w,//fittes.ca/cdn/shop/files/DWLITBD10X14WHT-HP_2000_x_2000_px.webp?v=1787678925&width=533 533w,//fittes.ca/cdn/shop/files/DWLITBD10X14WHT-HP_2000_x_2000_px.webp?v=1787678925&width=720 720w,//fittes.ca/cdn/shop/files/DWLITBD10X14WHT-HP_2000_x_2000_px.webp?v=1787678925&width=940 940w,//fittes.ca/cdn/shop/files/DWLITBD10X14WHT-HP_2000_x_2000_px.webp?v=1787678925&width=1066 1066w,//fittes.ca/cdn/shop/files/DWLITBD10X14WHT-HP_2000_x_2000_px.webp?v=1787678925 2000w
10218                  "
10219                  src="//fittes.ca/cdn/shop/files/DWLITBD10X14WHT-HP_2000_x_2000_px.webp?v=1787678925&width=533"
10220                  sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
10221                  alt=""
10222                  class="motion-reduce"
10223                  loading="lazy"
10224                  width="2000"
10225                  height="2000"
10226                >
10227              </div>
10228          </div><div class="card__content">
10229          <div class="card__information ss">
10230            <h3
10231              class="card__heading"
10232              
10233            >
10234              <a href="/products/flush-wall-vent-lite-plus" id="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-14748889874802" class="full-unstyled-link" aria-labelledby="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-14748889874802 NoMediaStandardBadge-template--28630587998578__home_tab_product_tJDMfE-14748889874802">
10235                Flush Wall Vent [Lite+]
10236              </a>
10237            </h3>
10238          </div>
10239
10240          
10241          
10242        </div>
10243      </div>
10244
10245      <div class="card__content">
10246        <div class="card__information sss"><ul class="ffp-pills" aria-label="Product features"><li class="ffp-pill" tabindex="0" data-ffp-tip="Set into the drywall and finished with mud for a seamless, flush look.">Mud-In</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Extra airflow for larger rooms or spaces with fewer vents.">Double Air Channel</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Lightweight, durable ABS plastic that will not rust.">ABS Plastic</li></ul>
10247<div class="bv_rating_summary ">
10248              <div data-bv-show="rating_summary" data-bv-product-id="14748889874802"></div>
10249            </div>
10250
10251          <h3
10252            class="card__heading h6"
10253            
10254              id="title-template--28630587998578__home_tab_product_tJDMfE-14748889874802"
10255            
10256          >
10257            <a href="/products/flush-wall-vent-lite-plus" id="CardLink-template--28630587998578__home_tab_product_tJDMfE-14748889874802" class="full-unstyled-link" aria-labelledby="CardLink-template--28630587998578__home_tab_product_tJDMfE-14748889874802 Badge-template--28630587998578__home_tab_product_tJDMfE-14748889874802">
10258              Flush Wall Vent [Lite+]
10259            </a>
10260          </h3>
10261          <div class="card-information">
10262              
10263
10264<div
10265    class="
10266      price "
10267  >
10268    <div class="price__container"><!-- REGULAR -->
10269      <div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
10270          <span class="price-item price-item--regular">
10271            $34.00 USD+
10272          </span></div>
10273
10274      
10275
10276      <small class="unit-price caption hidden">
10277        <span class="visually-hidden">Unit price</span>
10278        <span class="price-item price-item--last">
10279          <span></span>
10280          <span aria-hidden="true">/</span>
10281          <span class="visually-hidden">&nbsp;per&nbsp;</span>
10282          <span>
10283          </span>
10284        </span>
10285      </small>
10286    </div></div>
10287
10288
10289            
10290</div>
10291        </div>
10292
10293        
10294        
10295          
10296
10297          <div class="quick-add no-js-hidden"><modal-opener data-modal="#QuickAdd-14748889874802">
10298                <button
10299                  id="quick-add-template--28630587998578__home_tab_product_tJDMfE14748889874802-submit"
10300                  type="submit"
10301                  name="add"
10302                  class="quick-add__submit button button--full-width button--secondary"
10303                  aria-haspopup="dialog"
10304                  aria-labelledby="quick-add-template--28630587998578__home_tab_product_tJDMfE14748889874802-submit title-template--28630587998578__home_tab_product_tJDMfE-14748889874802"
10305                  data-product-url="/products/flush-wall-vent-lite-plus"
10306                >
10307                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none">
10308                    <g clip-path="url(#clip0_694_4827)">
10309                      <path fill-rule="evenodd" clip-rule="evenodd" d="M3.74172 8.52891C3.71398 8.52891 3.69149 8.5514 3.69149 8.57914C3.69149 8.60687 3.71398 8.62936 3.74172 8.62936C3.76946 8.62936 3.79194 8.60687 3.79194 8.57914C3.79194 8.5514 3.76946 8.52891 3.74172 8.52891ZM2.98835 8.57914C2.98835 8.16306 3.32565 7.82577 3.74172 7.82577C4.15779 7.82577 4.49509 8.16306 4.49509 8.57914C4.49509 8.99521 4.15779 9.3325 3.74172 9.3325C3.32565 9.3325 2.98835 8.99521 2.98835 8.57914Z" fill="#333D4C"/>
10310                      <path fill-rule="evenodd" clip-rule="evenodd" d="M8.16147 8.52891C8.13373 8.52891 8.11125 8.5514 8.11125 8.57914C8.11125 8.60687 8.13373 8.62936 8.16147 8.62936C8.18921 8.62936 8.2117 8.60687 8.2117 8.57914C8.2117 8.5514 8.18921 8.52891 8.16147 8.52891ZM7.4081 8.57914C7.4081 8.16306 7.7454 7.82577 8.16147 7.82577C8.57754 7.82577 8.91484 8.16306 8.91484 8.57914C8.91484 8.99521 8.57754 9.3325 8.16147 9.3325C7.7454 9.3325 7.4081 8.99521 7.4081 8.57914Z" fill="#333D4C"/>
10311                      <path fill-rule="evenodd" clip-rule="evenodd" d="M0.175781 0.543222C0.175781 0.349054 0.333185 0.19165 0.527353 0.19165H2.13454C2.3021 0.19165 2.44638 0.309914 2.47927 0.474223L2.82481 2.20063H9.36686C9.47164 2.20063 9.57095 2.24736 9.63774 2.32809C9.70453 2.40882 9.73183 2.51514 9.71221 2.61806L9.06883 5.99176C9.01601 6.25768 8.87134 6.49654 8.66016 6.66655C8.44992 6.83578 8.1871 6.92604 7.91732 6.92173H4.01801C3.74824 6.92604 3.4854
103111 6.83578 3.27518 6.66655C3.06407 6.49661 2.91944 6.25786 2.86657 5.99206V5.99206L2.19508 2.6371C2.19254 2.62687 2.19045 2.61646 2.18884 2.6059L1.84636 0.894793H0.527353C0.333185 0.894793 0.175781 0.737389 0.175781 0.543222ZM2.96554 2.90377L3.55618 5.85477C3.57685 5.95883 3.63346 6.0523 3.7161 6.11882C3.79873 6.18535 3.90214 6.22068 4.0082 6.21865L4.01494 6.21859H7.92039L7.92713 6.21865C8.0332 6.22068 8.1366 6.18535 8.21924 6.11882C8.30157 6.05254 8.35807 5.95952 8.37892 5.85592L8.37915 5.85477L8.94191 2.90377H2.96554Z" fill="#333D4C"/>
10312                    </g>
10313                    <defs>
10314                      <clipPath id="clip0_694_4827">
10315                        <rect width="9.6431" height="9.6431" fill="white" transform="translate(0.125 0.141357)"/>
10316                      </clipPath>
10317                    </defs>
10318                  </svg>
10319
10320<div class="loading__spinner hidden">
10321  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
10322
10323</div>
10324</button>
10325              </modal-opener>
10326              <quick-add-modal id="QuickAdd-14748889874802" class="quick-add-modal">
10327                <div
10328                  role="dialog"
10329                  aria-label="Choose options for Flush Wall Vent [Lite+]"
10330                  aria-modal="true"
10331                  class="quick-add-modal__content global-settings-popup"
10332                  tabindex="-1"
10333                >
10334                  <button
10335                    id="ModalClose-14748889874802"
10336                    type="button"
10337                    class="quick-add-modal__toggle"
10338                    aria-label="Close"
10339                  ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
10340</button>
10341                  <div id="QuickAddInfo-14748889874802" class="quick-add-modal__content-info"></div>
10342                </div>
10343              </quick-add-modal></div>
10344
10345          
10346
10347        
10348        <div class="card__badge top left"></div>
10349      </div>
10350      
10351    </div>
10352  </div>
10353                    <div class="my-buy-btn">
10354<div class="" ><product-form
10355      class="product-form"
10356      data-hide-errors="false"
10357      data-section-id="template--28630587998578__home_tab_product_tJDMfE"
10358    >
10359      <div class="product-form__error-message-wrapper" role="alert" hidden>
10360        <span class="svg-wrapper"><svg class="icon icon-error" viewBox="0 0 13 13"><circle cx="6.5" cy="6.5" r="5.5" stroke="#fff" stroke-width="2"/><circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width=".7"/><path fill="#fff" d="m5.874 3.528.1 4.044h1.053l.1-4.044zm.627 6.133c.38 0 .68-.288.68-.656s-.3-.656-.68-.656-.681.288-.681.656.3.656.68.656"/><path fill="#fff" stroke="#EB001B" stroke-width=".7" d="M5.874 3.178h-.359l.01.359.1 4.044.008.341h1.736l.008-.341.1-4.044.01-.359H5.873Zm.627 6.833c.56 0 1.03-.432 1.03-1.006s-.47-1.006-1.03-1.006-1.031.432-1.031 1.006.47 1.006 1.03 1.006Z"/></svg>
10361</span>
10362        <span class="product-form__error-message"></span>
10363      </div><form method="post" action="/cart/add" id="product-form-template--28630587998578__home_tab_product_tJDMfE" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
10364          type="hidden"
10365          name="id"
10366          value="52493906837874"
10367          
10368          class="product-variant-id"
10369        ><div class="product-form__buttons"><button
10370            id="ProductSubmitButton-template--28630587998578__home_tab_product_tJDMfE"
10371            type="submit"
10372            name="add"
10373            class="product-form__submit button button--full-width button--primary"
10374            
10375          >
10376            <span>
10377                    Learn More
10378                  
10379</span>
10380
10381<div class="loading__spinner hidden">
10382  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
10383
10384</div>
10385</button></div><input type="hidden" name="product-id" value="14748889874802" /><input type="hidden" name="section-id" value="template--28630587998578__home_tab_product_tJDMfE" /></form></product-form></div>
10386</div>
10387                  </div>
10388                
10389                  <div class="swiper-slide card-slide">
10390                    <link href="//fittes.ca/cdn/shop/t/139/assets/component-rating.css?v=179577762467860590411788881634" rel="stylesheet" type="text/css" media="all" />
10391  <link href="//fittes.ca/cdn/shop/t/139/assets/component-volume-pricing.css?v=111870094811454961941788881637" rel="stylesheet" type="text/css" media="all" />
10392
10393  <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
10394  <link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
10395<div
10396    preorder-product-element="form"
10397    d-id="14748867461490"
10398    data-product-id="14748867461490"
10399    class="card-wrapper product-card-wrapper underline-links-hover"
10400    style="position: relative;"
10401  >
10402    
10403    <div
10404      class="
10405        card card--standard
10406         card--media
10407        
10408        
10409        
10410        
10411        
10412      "
10413      style="--ratio-percent: 100%;"
10414    >
10415<div class="product-badges tw-absolute tw-left-2 tw-top-2 tw-z-[1] tw-hidden tw-max-w-[90%] ">
10416    
10417<div
10418        class="product-badge tw-px-2 tw-py-1 tw-text-sm tw-uppercase "
10419        style="color: black; background-color: white;"
10420      >Airflow Increased</div>
10421    
10422  </div>
10423      <div
10424        class="card__inner color-scheme-2 gradient ratio"
10425        style="--ratio-percent: 100%;"
10426      >
10427        
10428<div class="card__media">
10429            <div class="media media--transparent media--hover-effect">
10430              
10431              <img
10432                srcset="//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198094&width=165 165w,//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198094&width=360 360w,//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198094&width=533 533w,//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198094&width=720 720w,//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198094&width=940 940w,//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198094&width=1066 1066w,//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198094 1080w
10433                "
10434                src="//fittes.ca/cdn/shop/files/1_-_Flush_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198094&width=533"
10435                sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
10436                alt="Flush Floor Vent [Lite+]"
10437                class="motion-reduce"
10438                
10439                  loading="lazy"
10440                
10441                width="1080"
10442                height="1080"
10443              >
10444              
10445<img
10446                  srcset="//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Lite_-_Lifestyle.webp?v=1782754368&width=165 165w,//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Lite_-_Lifestyle.webp?v=1782754368&width=360 360w,//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Lite_-_Lifestyle.webp?v=1782754368&width=533 533w,//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Lite_-_Lifestyle.webp?v=1782754368&width=720 720w,//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Lite_-_Lifestyle.webp?v=1782754368&width=940 940w,//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Lite_-_Lifestyle.webp?v=1782754368 1000w
10447                  "
10448                  src="//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Lite_-_Lifestyle.webp?v=1782754368&width=533"
10449                  sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
10450                  alt=""
10451                  class="motion-reduce"
10452                  loading="lazy"
10453                  width="1000"
10454                  height="1000"
10455                >
10456              </div>
10457          </div><div class="card__content">
10458          <div class="card__information ss">
10459            <h3
10460              class="card__heading"
10461              
10462            >
10463              <a href="/products/flush-floor-vent-lite-plus" id="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-14748867461490" class="full-unstyled-link" aria-labelledby="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-14748867461490 NoMediaStandardBadge-template--28630587998578__home_tab_product_tJDMfE-14748867461490">
10464                Flush Floor Vent [Lite+]
10465              </a>
10466            </h3>
10467          </div>
10468
10469          
10470          
10471        </div>
10472      </div>
10473
10474      <div class="card__content">
10475        <div class="card__information sss"><ul class="ffp-pills" aria-label="Product features"><li class="ffp-pill" tabindex="0" data-ffp-tip="Installs before the flooring goes down, sitting flush on the sub-floor.">Sub-Floor</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Extra airflow for larger rooms or spaces with fewer vents.">Double Air Channel</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Lightweight, durable ABS plastic that will not rust.">ABS Plastic</li></ul>
10476<div class="bv_rating_summary ">
10477              <div data-bv-show="rating_summary" data-bv-product-id="14748867461490"></div>
10478            </div>
10479
10480          <h3
10481            class="card__heading h6"
10482            
10483              id="title-template--28630587998578__home_tab_product_tJDMfE-14748867461490"
10484            
10485          >
10486            <a href="/products/flush-floor-vent-lite-plus" id="CardLink-template--28630587998578__home_tab_product_tJDMfE-14748867461490" class="full-unstyled-link" aria-labelledby="CardLink-template--28630587998578__home_tab_product_tJDMfE-14748867461490 Badge-template--28630587998578__home_tab_product_tJDMfE-14748867461490">
10487              Flush Floor Vent [Lite+]
10488            </a>
10489          </h3>
10490          <div class="card-information">
10491              
10492
10493<div
10494    class="
10495      price "
10496  >
10497    <div class="price__container"><!-- REGULAR -->
10498      <div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
10499          <span class="price-item price-item--regular">
10500            $51.00 USD+
10501          </span></div>
10502
10503      
10504
10505      <small class="unit-price caption hidden">
10506        <span class="visually-hidden">Unit price</span>
10507        <span class="price-item price-item--last">
10508          <span></span>
10509          <span aria-hidden="true">/</span>
10510          <span class="visually-hidden">&nbsp;per&nbsp;</span>
10511          <span>
10512          </span>
10513        </span>
10514      </small>
10515    </div></div>
10516
10517
10518            
10519</div>
10520        </div>
10521
10522        
10523        
10524          
10525
10526          <div class="quick-add no-js-hidden"><modal-opener data-modal="#QuickAdd-14748867461490">
10527                <button
10528                  id="quick-add-template--28630587998578__home_tab_product_tJDMfE14748867461490-submit"
10529                  type="submit"
10530                  name="add"
10531                  class="quick-add__submit button button--full-width button--secondary"
10532                  aria-haspopup="dialog"
10533                  aria-labelledby="quick-add-template--28630587998578__home_tab_product_tJDMfE14748867461490-submit title-template--28630587998578__home_tab_product_tJDMfE-14748867461490"
10534                  data-product-url="/products/flush-floor-vent-lite-plus"
10535                >
10536                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none">
10537                    <g clip-path="url(#clip0_694_4827)">
10538                      <path fill-rule="evenodd" clip-rule="evenodd" d="M3.74172 8.52891C3.71398 8.52891 3.69149 8.5514 3.69149 8.57914C3.69149 8.60687 3.71398 8.62936 3.74172 8.62936C3.76946 8.62936 3.79194 8.60687 3.79194 8.57914C3.79194 8.5514 3.76946 8.52891 3.74172 8.52891ZM2.98835 8.57914C2.98835 8.16306 3.32565 7.82577 3.74172 7.82577C4.15779 7.82577 4.49509 8.16306 4.49509 8.57914C4.49509 8.99521 4.15779 9.3325 3.74172 9.3325C3.32565 9.3325 2.98835 8.99521 2.98835 8.57914Z" fill="#333D4C"/>
10539                      <path fill-rule="evenodd" clip-rule="evenodd" d="M8.16147 8.52891C8.13373 8.52891 8.11125 8.5514 8.11125 8.57914C8.11125 8.60687 8.13373 8.62936 8.16147 8.62936C8.18921 8.62936 8.2117 8.60687 8.2117 8.57914C8.2117 8.5514 8.18921 8.52891 8.16147 8.52891ZM7.4081 8.57914C7.4081 8.16306 7.7454 7.82577 8.16147 7.82577C8.57754 7.82577 8.91484 8.16306 8.91484 8.57914C8.91484 8.99521 8.57754 9.3325 8.16147 9.3325C7.7454 9.3325 7.4081 8.99521 7.4081 8.57914Z" fill="#333D4C"/>
10540                      <path fill-rule="evenodd" clip-rule="evenodd" d="M0.175781 0.543222C0.175781 0.349054 0.333185 0.19165 0.527353 0.19165H2.13454C2.3021 0.19165 2.44638 0.309914 2.47927 0.474223L2.82481 2.20063H9.36686C9.47164 2.20063 9.57095 2.24736 9.63774 2.32809C9.70453 2.40882 9.73183 2.51514 9.71221 2.61806L9.06883 5.99176C9.01601 6.25768 8.87134 6.49654 8.66016 6.66655C8.44992 6.83578 8.1871 6.92604 7.91732 6.92173H4.01801C3.74824 6.92604 3.4854
105401 6.83578 3.27518 6.66655C3.06407 6.49661 2.91944 6.25786 2.86657 5.99206V5.99206L2.19508 2.6371C2.19254 2.62687 2.19045 2.61646 2.18884 2.6059L1.84636 0.894793H0.527353C0.333185 0.894793 0.175781 0.737389 0.175781 0.543222ZM2.96554 2.90377L3.55618 5.85477C3.57685 5.95883 3.63346 6.0523 3.7161 6.11882C3.79873 6.18535 3.90214 6.22068 4.0082 6.21865L4.01494 6.21859H7.92039L7.92713 6.21865C8.0332 6.22068 8.1366 6.18535 8.21924 6.11882C8.30157 6.05254 8.35807 5.95952 8.37892 5.85592L8.37915 5.85477L8.94191 2.90377H2.96554Z" fill="#333D4C"/>
10541                    </g>
10542                    <defs>
10543                      <clipPath id="clip0_694_4827">
10544                        <rect width="9.6431" height="9.6431" fill="white" transform="translate(0.125 0.141357)"/>
10545                      </clipPath>
10546                    </defs>
10547                  </svg>
10548
10549<div class="loading__spinner hidden">
10550  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
10551
10552</div>
10553</button>
10554              </modal-opener>
10555              <quick-add-modal id="QuickAdd-14748867461490" class="quick-add-modal">
10556                <div
10557                  role="dialog"
10558                  aria-label="Choose options for Flush Floor Vent [Lite+]"
10559                  aria-modal="true"
10560                  class="quick-add-modal__content global-settings-popup"
10561                  tabindex="-1"
10562                >
10563                  <button
10564                    id="ModalClose-14748867461490"
10565                    type="button"
10566                    class="quick-add-modal__toggle"
10567                    aria-label="Close"
10568                  ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
10569</button>
10570                  <div id="QuickAddInfo-14748867461490" class="quick-add-modal__content-info"></div>
10571                </div>
10572              </quick-add-modal></div>
10573
10574          
10575
10576        
10577        <div class="card__badge top left"></div>
10578      </div>
10579      
10580    </div>
10581  </div>
10582                    <div class="my-buy-btn">
10583<div class="" ><product-form
10584      class="product-form"
10585      data-hide-errors="false"
10586      data-section-id="template--28630587998578__home_tab_product_tJDMfE"
10587    >
10588      <div class="product-form__error-message-wrapper" role="alert" hidden>
10589        <span class="svg-wrapper"><svg class="icon icon-error" viewBox="0 0 13 13"><circle cx="6.5" cy="6.5" r="5.5" stroke="#fff" stroke-width="2"/><circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width=".7"/><path fill="#fff" d="m5.874 3.528.1 4.044h1.053l.1-4.044zm.627 6.133c.38 0 .68-.288.68-.656s-.3-.656-.68-.656-.681.288-.681.656.3.656.68.656"/><path fill="#fff" stroke="#EB001B" stroke-width=".7" d="M5.874 3.178h-.359l.01.359.1 4.044.008.341h1.736l.008-.341.1-4.044.01-.359H5.873Zm.627 6.833c.56 0 1.03-.432 1.03-1.006s-.47-1.006-1.03-1.006-1.031.432-1.031 1.006.47 1.006 1.03 1.006Z"/></svg>
10590</span>
10591        <span class="product-form__error-message"></span>
10592      </div><form method="post" action="/cart/add" id="product-form-template--28630587998578__home_tab_product_tJDMfE" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
10593          type="hidden"
10594          name="id"
10595          value="52357985894770"
10596          
10597          class="product-variant-id"
10598        ><div class="product-form__buttons"><button
10599            id="ProductSubmitButton-template--28630587998578__home_tab_product_tJDMfE"
10600            type="submit"
10601            name="add"
10602            class="product-form__submit button button--full-width button--primary"
10603            
10604          >
10605            <span>
10606                    Learn More
10607                  
10608</span>
10609
10610<div class="loading__spinner hidden">
10611  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
10612
10613</div>
10614</button></div><input type="hidden" name="product-id" value="14748867461490" /><input type="hidden" name="section-id" value="template--28630587998578__home_tab_product_tJDMfE" /></form></product-form></div>
10615</div>
10616                  </div>
10617                
10618                  <div class="swiper-slide card-slide">
10619                    <link href="//fittes.ca/cdn/shop/t/139/assets/component-rating.css?v=179577762467860590411788881634" rel="stylesheet" type="text/css" media="all" />
10620  <link href="//fittes.ca/cdn/shop/t/139/assets/component-volume-pricing.css?v=111870094811454961941788881637" rel="stylesheet" type="text/css" media="all" />
10621
10622  <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
10623  <link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
10624<div
10625    preorder-product-element="form"
10626    d-id="14748886270322"
10627    data-product-id="14748886270322"
10628    class="card-wrapper product-card-wrapper underline-links-hover"
10629    style="position: relative;"
10630  >
10631    
10632    <div
10633      class="
10634        card card--standard
10635         card--media
10636        
10637        
10638        
10639        
10640        
10641      "
10642      style="--ratio-percent: 100%;"
10643    >
10644<div class="product-badges tw-absolute tw-left-2 tw-top-2 tw-z-[1] tw-hidden tw-max-w-[90%] ">
10645    
10646<div
10647        class="product-badge tw-px-2 tw-py-1 tw-text-sm tw-uppercase "
10648        style="color: black; background-color: white;"
10649      >Airflow Increased</div>
10650    
10651  </div>
10652      <div
10653        class="card__inner color-scheme-2 gradient ratio"
10654        style="--ratio-percent: 100%;"
10655      >
10656        
10657<div class="card__media">
10658            <div class="media media--transparent media--hover-effect">
10659              
10660              <img
10661                srcset="//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198565&width=165 165w,//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198565&width=360 360w,//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198565&width=533 533w,//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198565&width=720 720w,//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198565&width=940 940w,//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198565&width=1066 1066w,//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198565 1080w
10662                "
10663                src="//fittes.ca/cdn/shop/files/1_-_Framed_Wall_Vent_Lite___Lifestyle_1.jpg?v=1772198565&width=533"
10664                sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
10665                alt="Framed Wall Vent [Lite+]"
10666                class="motion-reduce"
10667                
10668                  loading="lazy"
10669                
10670                width="1080"
10671                height="1080"
10672              >
10673              
10674<img
10675                  srcset="//fittes.ca/cdn/shop/files/preview_images/cec61f8de7b44b5e9c63e555ec680c96.thumbnail.0000000000.jpg?v=1752259765 w
10676                  "
10677                  src="//fittes.ca/cdn/shop/files/preview_images/cec61f8de7b44b5e9c63e555ec680c96.thumbnail.0000000000.jpg?v=1752259765&width=533"
10678                  sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
10679                  alt=""
10680                  class="motion-reduce"
10681                  loading="lazy"
10682                  width=""
10683                  height=""
10684                >
10685              </div>
10686          </div><div class="card__content">
10687          <div class="card__information ss">
10688            <h3
10689              class="card__heading"
10690              
10691            >
10692              <a href="/products/framed-wall-vent-lite-plus" id="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-14748886270322" class="full-unstyled-link" aria-labelledby="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-14748886270322 NoMediaStandardBadge-template--28630587998578__home_tab_product_tJDMfE-14748886270322">
10693                Framed Wall Vent [Lite+]
10694              </a>
10695            </h3>
10696          </div>
10697
10698          
10699          
10700        </div>
10701      </div>
10702
10703      <div class="card__content">
10704        <div class="card__information sss"><ul class="ffp-pills" aria-label="Product features"><li class="ffp-pill" tabindex="0" data-ffp-tip="Drops into the opening with minimal tools. Slight lip at the edge; fully paintable.">Drop-In</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Extra airflow for larger rooms or spaces with fewer vents.">Double Air Channel</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Lightweight, durable ABS plastic that will not rust.">ABS Plastic</li></ul>
10705<div class="bv_rating_summary ">
10706              <div data-bv-show="rating_summary" data-bv-product-id="14748886270322"></div>
10707            </div>
10708
10709          <h3
10710            class="card__heading h6"
10711            
10712              id="title-template--28630587998578__home_tab_product_tJDMfE-14748886270322"
10713            
10714          >
10715            <a href="/products/framed-wall-vent-lite-plus" id="CardLink-template--28630587998578__home_tab_product_tJDMfE-14748886270322" class="full-unstyled-link" aria-labelledby="CardLink-template--28630587998578__home_tab_product_tJDMfE-14748886270322 Badge-template--28630587998578__home_tab_product_tJDMfE-14748886270322">
10716              Framed Wall Vent [Lite+]
10717            </a>
10718          </h3>
10719          <div class="card-information">
10720              
10721
10722<div
10723    class="
10724      price "
10725  >
10726    <div class="price__container"><!-- REGULAR -->
10727      <div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
10728          <span class="price-item price-item--regular">
10729            $34.00 USD+
10730          </span></div>
10731
10732      
10733
10734      <small class="unit-price caption hidden">
10735        <span class="visually-hidden">Unit price</span>
10736        <span class="price-item price-item--last">
10737          <span></span>
10738          <span aria-hidden="true">/</span>
10739          <span class="visually-hidden">&nbsp;per&nbsp;</span>
10740          <span>
10741          </span>
10742        </span>
10743      </small>
10744    </div></div>
10745
10746
10747            
10748</div>
10749        </div>
10750
10751        
10752        
10753          
10754
10755          <div class="quick-add no-js-hidden"><modal-opener data-modal="#QuickAdd-14748886270322">
10756                <button
10757                  id="quick-add-template--28630587998578__home_tab_product_tJDMfE14748886270322-submit"
10758                  type="submit"
10759                  name="add"
10760                  class="quick-add__submit button button--full-width button--secondary"
10761                  aria-haspopup="dialog"
10762                  aria-labelledby="quick-add-template--28630587998578__home_tab_product_tJDMfE14748886270322-submit title-template--28630587998578__home_tab_product_tJDMfE-14748886270322"
10763                  data-product-url="/products/framed-wall-vent-lite-plus"
10764                >
10765                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none">
10766                    <g clip-path="url(#clip0_694_4827)">
10767                      <path fill-rule="evenodd" clip-rule="evenodd" d="M3.74172 8.52891C3.71398 8.52891 3.69149 8.5514 3.69149 8.57914C3.69149 8.60687 3.71398 8.62936 3.74172 8.62936C3.76946 8.62936 3.79194 8.60687 3.79194 8.57914C3.79194 8.5514 3.76946 8.52891 3.74172 8.52891ZM2.98835 8.57914C2.98835 8.16306 3.32565 7.82577 3.74172 7.82577C4.15779 7.82577 4.49509 8.16306 4.49509 8.57914C4.49509 8.99521 4.15779 9.3325 3.74172 9.3325C3.32565 9.3325 2.98835 8.99521 2.98835 8.57914Z" fill="#333D4C"/>
10768                      <path fill-rule="evenodd" clip-rule="evenodd" d="M8.16147 8.52891C8.13373 8.52891 8.11125 8.5514 8.11125 8.57914C8.11125 8.60687 8.13373 8.62936 8.16147 8.62936C8.18921 8.62936 8.2117 8.60687 8.2117 8.57914C8.2117 8.5514 8.18921 8.52891 8.16147 8.52891ZM7.4081 8.57914C7.4081 8.16306 7.7454 7.82577 8.16147 7.82577C8.57754 7.82577 8.91484 8.16306 8.91484 8.57914C8.91484 8.99521 8.57754 9.3325 8.16147 9.3325C7.7454 9.3325 7.4081 8.99521 7.4081 8.57914Z" fill="#333D4C"/>
10769                      <path fill-rule="evenodd" clip-rule="evenodd" d="M0.175781 0.543222C0.175781 0.349054 0.333185 0.19165 0.527353 0.19165H2.13454C2.3021 0.19165 2.44638 0.309914 2.47927 0.474223L2.82481 2.20063H9.36686C9.47164 2.20063 9.57095 2.24736 9.63774 2.32809C9.70453 2.40882 9.73183 2.51514 9.71221 2.61806L9.06883 5.99176C9.01601 6.25768 8.87134 6.49654 8.66016 6.66655C8.44992 6.83578 8.1871 6.92604 7.91732 6.92173H4.01801C3.74824 6.92604 3.4854
107691 6.83578 3.27518 6.66655C3.06407 6.49661 2.91944 6.25786 2.86657 5.99206V5.99206L2.19508 2.6371C2.19254 2.62687 2.19045 2.61646 2.18884 2.6059L1.84636 0.894793H0.527353C0.333185 0.894793 0.175781 0.737389 0.175781 0.543222ZM2.96554 2.90377L3.55618 5.85477C3.57685 5.95883 3.63346 6.0523 3.7161 6.11882C3.79873 6.18535 3.90214 6.22068 4.0082 6.21865L4.01494 6.21859H7.92039L7.92713 6.21865C8.0332 6.22068 8.1366 6.18535 8.21924 6.11882C8.30157 6.05254 8.35807 5.95952 8.37892 5.85592L8.37915 5.85477L8.94191 2.90377H2.96554Z" fill="#333D4C"/>
10770                    </g>
10771                    <defs>
10772                      <clipPath id="clip0_694_4827">
10773                        <rect width="9.6431" height="9.6431" fill="white" transform="translate(0.125 0.141357)"/>
10774                      </clipPath>
10775                    </defs>
10776                  </svg>
10777
10778<div class="loading__spinner hidden">
10779  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
10780
10781</div>
10782</button>
10783              </modal-opener>
10784              <quick-add-modal id="QuickAdd-14748886270322" class="quick-add-modal">
10785                <div
10786                  role="dialog"
10787                  aria-label="Choose options for Framed Wall Vent [Lite+]"
10788                  aria-modal="true"
10789                  class="quick-add-modal__content global-settings-popup"
10790                  tabindex="-1"
10791                >
10792                  <button
10793                    id="ModalClose-14748886270322"
10794                    type="button"
10795                    class="quick-add-modal__toggle"
10796                    aria-label="Close"
10797                  ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
10798</button>
10799                  <div id="QuickAddInfo-14748886270322" class="quick-add-modal__content-info"></div>
10800                </div>
10801              </quick-add-modal></div>
10802
10803          
10804
10805        
10806        <div class="card__badge top left"></div>
10807      </div>
10808      
10809    </div>
10810  </div>
10811                    <div class="my-buy-btn">
10812<div class="" ><product-form
10813      class="product-form"
10814      data-hide-errors="false"
10815      data-section-id="template--28630587998578__home_tab_product_tJDMfE"
10816    >
10817      <div class="product-form__error-message-wrapper" role="alert" hidden>
10818        <span class="svg-wrapper"><svg class="icon icon-error" viewBox="0 0 13 13"><circle cx="6.5" cy="6.5" r="5.5" stroke="#fff" stroke-width="2"/><circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width=".7"/><path fill="#fff" d="m5.874 3.528.1 4.044h1.053l.1-4.044zm.627 6.133c.38 0 .68-.288.68-.656s-.3-.656-.68-.656-.681.288-.681.656.3.656.68.656"/><path fill="#fff" stroke="#EB001B" stroke-width=".7" d="M5.874 3.178h-.359l.01.359.1 4.044.008.341h1.736l.008-.341.1-4.044.01-.359H5.873Zm.627 6.833c.56 0 1.03-.432 1.03-1.006s-.47-1.006-1.03-1.006-1.031.432-1.031 1.006.47 1.006 1.03 1.006Z"/></svg>
10819</span>
10820        <span class="product-form__error-message"></span>
10821      </div><form method="post" action="/cart/add" id="product-form-template--28630587998578__home_tab_product_tJDMfE" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
10822          type="hidden"
10823          name="id"
10824          value="52493908509042"
10825          
10826          class="product-variant-id"
10827        ><div class="product-form__buttons"><button
10828            id="ProductSubmitButton-template--28630587998578__home_tab_product_tJDMfE"
10829            type="submit"
10830            name="add"
10831            class="product-form__submit button button--full-width button--primary"
10832            
10833          >
10834            <span>
10835                    Learn More
10836                  
10837</span>
10838
10839<div class="loading__spinner hidden">
10840  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
10841
10842</div>
10843</button></div><input type="hidden" name="product-id" value="14748886270322" /><input type="hidden" name="section-id" value="template--28630587998578__home_tab_product_tJDMfE" /></form></product-form></div>
10844</div>
10845                  </div>
10846                
10847                  <div class="swiper-slide card-slide">
10848                    <link href="//fittes.ca/cdn/shop/t/139/assets/component-rating.css?v=179577762467860590411788881634" rel="stylesheet" type="text/css" media="all" />
10849  <link href="//fittes.ca/cdn/shop/t/139/assets/component-volume-pricing.css?v=111870094811454961941788881637" rel="stylesheet" type="text/css" media="all" />
10850
10851  <link href="//fittes.ca/cdn/shop/t/139/assets/component-price.css?v=23758474204081435051788881632" rel="stylesheet" type="text/css" media="all" />
10852  <link href="//fittes.ca/cdn/shop/t/139/assets/quantity-popover.css?v=129068967981937647381788881705" rel="stylesheet" type="text/css" media="all" />
10853<div
10854    preorder-product-element="form"
10855    d-id="14738400608626"
10856    data-product-id="14738400608626"
10857    class="card-wrapper product-card-wrapper underline-links-hover"
10858    style="position: relative;"
10859  >
10860    
10861    <div
10862      class="
10863        card card--standard
10864         card--media
10865        
10866        
10867        
10868        
10869        
10870      "
10871      style="--ratio-percent: 100%;"
10872    >
10873<div class="product-badges tw-absolute tw-left-2 tw-top-2 tw-z-[1] tw-hidden tw-max-w-[90%] ">
10874    
10875<div
10876        class="product-badge tw-px-2 tw-py-1 tw-text-sm tw-uppercase "
10877        style="color: black; background-color: white;"
10878      >Airflow Increased</div>
10879    
10880  </div>
10881      <div
10882        class="card__inner color-scheme-2 gradient ratio"
10883        style="--ratio-percent: 100%;"
10884      >
10885        
10886<div class="card__media">
10887            <div class="media media--transparent media--hover-effect">
10888              
10889              <img
10890                srcset="//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198185&width=165 165w,//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198185&width=360 360w,//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198185&width=533 533w,//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198185&width=720 720w,//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198185&width=940 940w,//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198185&width=1066 1066w,//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198185 1080w
10891                "
10892                src="//fittes.ca/cdn/shop/files/1_-_Framed_Floor_Vent_Lite___Lifestyle_1.jpg?v=1772198185&width=533"
10893                sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
10894                alt="Framed Floor Vent [Lite+]"
10895                class="motion-reduce"
10896                
10897                  loading="lazy"
10898                
10899                width="1080"
10900                height="1080"
10901              >
10902              
10903<img
10904                  srcset="//fittes.ca/cdn/shop/files/preview_images/a73087210e2a4d7a9f10dbf4a9fc161f.thumbnail.0000000000.jpg?v=1756908646 w
10905                  "
10906                  src="//fittes.ca/cdn/shop/files/preview_images/a73087210e2a4d7a9f10dbf4a9fc161f.thumbnail.0000000000.jpg?v=1756908646&width=533"
10907                  sizes="(min-width: 1400px) 317px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
10908                  alt=""
10909                  class="motion-reduce"
10910                  loading="lazy"
10911                  width=""
10912                  height=""
10913                >
10914              </div>
10915          </div><div class="card__content">
10916          <div class="card__information ss">
10917            <h3
10918              class="card__heading"
10919              
10920            >
10921              <a href="/products/framed-floor-vent-lite-plus" id="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-14738400608626" class="full-unstyled-link" aria-labelledby="StandardCardNoMediaLink-template--28630587998578__home_tab_product_tJDMfE-14738400608626 NoMediaStandardBadge-template--28630587998578__home_tab_product_tJDMfE-14738400608626">
10922                Framed Floor Vent [Lite+]
10923              </a>
10924            </h3>
10925          </div>
10926
10927          
10928          
10929        </div>
10930      </div>
10931
10932      <div class="card__content">
10933        <div class="card__information sss"><ul class="ffp-pills" aria-label="Product features"><li class="ffp-pill" tabindex="0" data-ffp-tip="Drops into the opening with minimal tools. Slight lip at the edge; fully paintable.">Drop-In</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Extra airflow for larger rooms or spaces with fewer vents.">Double Air Channel</li><li class="ffp-pill" tabindex="0" data-ffp-tip="Lightweight, durable ABS plastic that will not rust.">ABS Plastic</li></ul>
10934<div class="bv_rating_summary ">
10935              <div data-bv-show="rating_summary" data-bv-product-id="14738400608626"></div>
10936            </div>
10937
10938          <h3
10939            class="card__heading h6"
10940            
10941              id="title-template--28630587998578__home_tab_product_tJDMfE-14738400608626"
10942            
10943          >
10944            <a href="/products/framed-floor-vent-lite-plus" id="CardLink-template--28630587998578__home_tab_product_tJDMfE-14738400608626" class="full-unstyled-link" aria-labelledby="CardLink-template--28630587998578__home_tab_product_tJDMfE-14738400608626 Badge-template--28630587998578__home_tab_product_tJDMfE-14738400608626">
10945              Framed Floor Vent [Lite+]
10946            </a>
10947          </h3>
10948          <div class="card-information">
10949              
10950
10951<div
10952    class="
10953      price "
10954  >
10955    <div class="price__container"><!-- REGULAR -->
10956      <div class="price__regular"><span class="visually-hidden visually-hidden--inline">Regular price</span>
10957          <span class="price-item price-item--regular">
10958            $28.00 USD+
10959          </span></div>
10960
10961      
10962
10963      <small class="unit-price caption hidden">
10964        <span class="visually-hidden">Unit price</span>
10965        <span class="price-item price-item--last">
10966          <span></span>
10967          <span aria-hidden="true">/</span>
10968          <span class="visually-hidden">&nbsp;per&nbsp;</span>
10969          <span>
10970          </span>
10971        </span>
10972      </small>
10973    </div></div>
10974
10975
10976            
10977</div>
10978        </div>
10979
10980        
10981        
10982          
10983
10984          <div class="quick-add no-js-hidden"><modal-opener data-modal="#QuickAdd-14738400608626">
10985                <button
10986                  id="quick-add-template--28630587998578__home_tab_product_tJDMfE14738400608626-submit"
10987                  type="submit"
10988                  name="add"
10989                  class="quick-add__submit button button--full-width button--secondary"
10990                  aria-haspopup="dialog"
10991                  aria-labelledby="quick-add-template--28630587998578__home_tab_product_tJDMfE14738400608626-submit title-template--28630587998578__home_tab_product_tJDMfE-14738400608626"
10992                  data-product-url="/products/framed-floor-vent-lite-plus"
10993                >
10994                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none">
10995                    <g clip-path="url(#clip0_694_4827)">
10996                      <path fill-rule="evenodd" clip-rule="evenodd" d="M3.74172 8.52891C3.71398 8.52891 3.69149 8.5514 3.69149 8.57914C3.69149 8.60687 3.71398 8.62936 3.74172 8.62936C3.76946 8.62936 3.79194 8.60687 3.79194 8.57914C3.79194 8.5514 3.76946 8.52891 3.74172 8.52891ZM2.98835 8.57914C2.98835 8.16306 3.32565 7.82577 3.74172 7.82577C4.15779 7.82577 4.49509 8.16306 4.49509 8.57914C4.49509 8.99521 4.15779 9.3325 3.74172 9.3325C3.32565 9.3325 2.98835 8.99521 2.98835 8.57914Z" fill="#333D4C"/>
10997                      <path fill-rule="evenodd" clip-rule="evenodd" d="M8.16147 8.52891C8.13373 8.52891 8.11125 8.5514 8.11125 8.57914C8.11125 8.60687 8.13373 8.62936 8.16147 8.62936C8.18921 8.62936 8.2117 8.60687 8.2117 8.57914C8.2117 8.5514 8.18921 8.52891 8.16147 8.52891ZM7.4081 8.57914C7.4081 8.16306 7.7454 7.82577 8.16147 7.82577C8.57754 7.82577 8.91484 8.16306 8.91484 8.57914C8.91484 8.99521 8.57754 9.3325 8.16147 9.3325C7.7454 9.3325 7.4081 8.99521 7.4081 8.57914Z" fill="#333D4C"/>
10998                      <path fill-rule="evenodd" clip-rule="evenodd" d="M0.175781 0.543222C0.175781 0.349054 0.333185 0.19165 0.527353 0.19165H2.13454C2.3021 0.19165 2.44638 0.309914 2.47927 0.474223L2.82481 2.20063H9.36686C9.47164 2.20063 9.57095 2.24736 9.63774 2.32809C9.70453 2.40882 9.73183 2.51514 9.71221 2.61806L9.06883 5.99176C9.01601 6.25768 8.87134 6.49654 8.66016 6.66655C8.44992 6.83578 8.1871 6.92604 7.91732 6.92173H4.01801C3.74824 6.92604 3.4854
109981 6.83578 3.27518 6.66655C3.06407 6.49661 2.91944 6.25786 2.86657 5.99206V5.99206L2.19508 2.6371C2.19254 2.62687 2.19045 2.61646 2.18884 2.6059L1.84636 0.894793H0.527353C0.333185 0.894793 0.175781 0.737389 0.175781 0.543222ZM2.96554 2.90377L3.55618 5.85477C3.57685 5.95883 3.63346 6.0523 3.7161 6.11882C3.79873 6.18535 3.90214 6.22068 4.0082 6.21865L4.01494 6.21859H7.92039L7.92713 6.21865C8.0332 6.22068 8.1366 6.18535 8.21924 6.11882C8.30157 6.05254 8.35807 5.95952 8.37892 5.85592L8.37915 5.85477L8.94191 2.90377H2.96554Z" fill="#333D4C"/>
10999                    </g>
11000                    <defs>
11001                      <clipPath id="clip0_694_4827">
11002                        <rect width="9.6431" height="9.6431" fill="white" transform="translate(0.125 0.141357)"/>
11003                      </clipPath>
11004                    </defs>
11005                  </svg>
11006
11007<div class="loading__spinner hidden">
11008  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
11009
11010</div>
11011</button>
11012              </modal-opener>
11013              <quick-add-modal id="QuickAdd-14738400608626" class="quick-add-modal">
11014                <div
11015                  role="dialog"
11016                  aria-label="Choose options for Framed Floor Vent [Lite+]"
11017                  aria-modal="true"
11018                  class="quick-add-modal__content global-settings-popup"
11019                  tabindex="-1"
11020                >
11021                  <button
11022                    id="ModalClose-14738400608626"
11023                    type="button"
11024                    class="quick-add-modal__toggle"
11025                    aria-label="Close"
11026                  ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg>
11027</button>
11028                  <div id="QuickAddInfo-14738400608626" class="quick-add-modal__content-info"></div>
11029                </div>
11030              </quick-add-modal></div>
11031
11032          
11033
11034        
11035        <div class="card__badge top left"></div>
11036      </div>
11037      
11038    </div>
11039  </div>
11040                    <div class="my-buy-btn">
11041<div class="" ><product-form
11042      class="product-form"
11043      data-hide-errors="false"
11044      data-section-id="template--28630587998578__home_tab_product_tJDMfE"
11045    >
11046      <div class="product-form__error-message-wrapper" role="alert" hidden>
11047        <span class="svg-wrapper"><svg class="icon icon-error" viewBox="0 0 13 13"><circle cx="6.5" cy="6.5" r="5.5" stroke="#fff" stroke-width="2"/><circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width=".7"/><path fill="#fff" d="m5.874 3.528.1 4.044h1.053l.1-4.044zm.627 6.133c.38 0 .68-.288.68-.656s-.3-.656-.68-.656-.681.288-.681.656.3.656.68.656"/><path fill="#fff" stroke="#EB001B" stroke-width=".7" d="M5.874 3.178h-.359l.01.359.1 4.044.008.341h1.736l.008-.341.1-4.044.01-.359H5.873Zm.627 6.833c.56 0 1.03-.432 1.03-1.006s-.47-1.006-1.03-1.006-1.031.432-1.031 1.006.47 1.006 1.03 1.006Z"/></svg>
11048</span>
11049        <span class="product-form__error-message"></span>
11050      </div><form method="post" action="/cart/add" id="product-form-template--28630587998578__home_tab_product_tJDMfE" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
11051          type="hidden"
11052          name="id"
11053          value="52294891995506"
11054          
11055          class="product-variant-id"
11056        ><div class="product-form__buttons"><button
11057            id="ProductSubmitButton-template--28630587998578__home_tab_product_tJDMfE"
11058            type="submit"
11059            name="add"
11060            class="product-form__submit button button--full-width button--primary"
11061            
11062          >
11063            <span>
11064                    Learn More
11065                  
11066</span>
11067
11068<div class="loading__spinner hidden">
11069  <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg>
11070
11071</div>
11072</button></div><input type="hidden" name="product-id" value="14738400608626" /><input type="hidden" name="section-id" value="template--28630587998578__home_tab_product_tJDMfE" /></form></product-form></div>
11073</div>
11074                  </div>
11075                
11076              </div>
11077            </div>
11078            <div class="swiper-button-prev small-hide swiper-button-disabled">
11079              <svg xmlns="http://www.w3.org/2000/svg" width="27" height="27" viewB
11079ox="0 0 27 27" fill="none">
11080                <path d="M22.1953 13.9355H4.98519M4.98519 13.9355C4.98519 13.9355 9.86348 10.7272 10.8548 8.06592M4.98519 13.9355C4.98519 13.9355 9.29778 16.95 10.8548 19.805" stroke="#1E1E1E" stroke-width="2.17391" stroke-linecap="square"/>
11081              </svg>
11082            </div>
11083            <div class="swiper-button-next small-hide">
11084              <svg xmlns="http://www.w3.org/2000/svg" width="27" height="27" viewBox="0 0 27 27" fill="none">
11085                <path d="M4.80469 13.9355H22.0148M22.0148 13.9355C22.0148 13.9355 17.1365 10.7272 16.1452 8.06592M22.0148 13.9355C22.0148 13.9355 17.7022 16.95 16.1452 19.805" stroke="#1E1E1E" stroke-width="2.17391" stroke-linecap="square"/>
11086              </svg>
11087            </div>
11088          </div>
11089        </template>
11090      </div>
11091    
11092  </div>
11093</div>
11094
11095<script>
11096  (function() {
11097    const sectionId = 'template--28630587998578__home_tab_product_tJDMfE';
11098    const section = document.getElementById('shopify-section-' + sectionId);
11099    if (!section) return;
11100
11101    const tabs = section.querySelectorAll('.series-product-tab p');
11102    const contents = section.querySelectorAll('.series-product-bottom');
11103    const openInNewTab = section.querySelector('[data-open-new-tab]')?.dataset.openNewTab === 'true';
11104    let currentSwiper = null;
11105    let sectionInView = false;
11106
11107    const isMobile = () => window.innerWidth < 750;
11108    // Fully/partially visible slides at rest: 1.9 on mobile, 4 on desktop
11109    const visibleCount = () => (isMobile() ? 2 : 4);
11110
11111    /* ---------- Image deferral helpers ---------- */
11112
11113    // Called while the node is still in a detached fragment, so nothing fetches
11114    function deferImage(img) {
11115      if (img.dataset.deferred) return;
11116      if (img.hasAttribute('srcset')) {
11117        img.dataset.srcset = img.getAttribute('srcset');
11118        img.removeAttribute('srcset');
11119      }
11120      if (img.hasAttribute('src')) {
11121        img.dataset.src = img.getAttribute('src');
11122        img.removeAttribute('src');
11123      }
11124      img.dataset.deferred = 'true';
11125    }
11126
11127    function loadImage(img) {
11128      if (!img.dataset.deferred) return;
11129      img.setAttribute('loading', 'eager');
11130      if (img.dataset.srcset) {
11131        img.setAttribute('srcset', img.dataset.srcset);
11132        delete img.dataset.srcset;
11133      }
11134      if (img.dataset.src) {
11135        img.setAttribute('src', img.dataset.src);
11136        delete img.dataset.src;
11137      }
11138      delete img.dataset.deferred;
11139    }
11140
11141    /* ---------- Tab hydration ---------- */
11142
11143    function hydrateTab(content) {
11144      if (!content || content.dataset.hydrated) return;
11145
11146      const template = content.querySelector('template[data-swiper-template]');
11147      if (!template) return;
11148
11149      const fragment = template.content.cloneNode(true);
11150
11151      // Defer images on slides beyond the initially visible set (+1 buffer
11152      // so the first swipe/click feels instant)
11153      const slides = fragment.querySelectorAll('.swiper-slide');
11154      const eagerLimit = visibleCount() + 1;
11155      slides.forEach((slide, index) => {
11156        if (index >= eagerLimit) {
11157          slide.querySelectorAll('img').forEach(deferImage);
11158        }
11159      });
11160
11161      if (openInNewTab) {
11162        fragment.querySelectorAll('.card-slide a[href*="/products/"]').forEach((link) => {
11163          link.setAttribute('target', '_blank');
11164          link.setAttribute('rel', 'noopener noreferrer');
11165        });
11166      }
11167
11168      content.appendChild(fragment);
11169      template.remove();
11170      content.dataset.hydrated = 'true';
11171    }
11172
11173    /* ---------- Swiper ---------- */
11174
11175    function getActiveContent() {
11176      return section.querySelector('.series-product-bottom.active');
11177    }
11178
11179    function destroyCurrentSwiper() {
11180      if (currentSwiper && typeof currentSwiper.destroy === 'function') {
11181        currentSwiper.destroy(true, true);
11182        currentSwiper = null;
11183      }
11184    }
11185
11186    // Loads everything from slide 0 through (active + visible + 1 ahead)
11187    function loadVisibleSlideImages(swiper) {
11188      if (!swiper || !swiper.slides) return;
11189      const spv = Math.ceil(swiper.params.slidesPerView);
11190      const end = Math.min(swiper.activeIndex + spv + 1, swiper.slides.length);
11191      for (let i = 0; i < end; i++) {
11192        swiper.slides[i].querySelectorAll('img[data-deferred]').forEach(loadImage);
11193      }
11194    }
11195
11196    function initActiveSwiper() {
11197      const activeContent = getActiveContent();
11198      if (!activeContent || !activeContent.dataset.hydrated) return;
11199
11200      const swiperEl = activeContent.querySelector('.mySwiper');
11201      if (!swiperEl) return;
11202
11203      const prevBtn = activeContent.querySelector('.swiper-button-prev');
11204      const nextBtn = activeContent.querySelector('.swiper-button-next');
11205
11206      destroyCurrentSwiper();
11207
11208      const mobile = isMobile();
11209
11210      if (prevBtn) prevBtn.classList.add('swiper-button-disabled');
11211      if (nextBtn) nextBtn.classList.remove('swiper-button-disabled');
11212
11213      currentSwiper = new Swiper(swiperEl, {
11214        slidesPerView: mobile ? 1.9 : 4,
11215        spaceBetween: mobile ? 20 : 33,
11216        loop: false,
11217        initialSlide: 0,
11218        watchOverflow: true,
11219        observer: true,
11220        observeParents: true,
11221        simulateTouch: mobile,
11222        allowTouchMove: mobile,
11223        preventClicks: false,
11224        preventClicksPropagation: false,
11225        touchStartPreventDefault: false,
11226        navigation: mobile ? false : {
11227          nextEl: nextBtn,
11228          prevEl: prevBtn,
11229          disabledClass: 'swiper-button-disabled'
11230        },
11231        on: {
11232          init: function() {
11233            updateNavButtons(this, prevBtn, nextBtn);
11234            loadVisibleSlideImages(this);
11235          },
11236          slideChange: function() {
11237            updateNavButtons(this, prevBtn, nextBtn);
11238            loadVisibleSlideImages(this);
11239          },
11240          // Mobile: start loading the moment a swipe begins, not after it settles
11241          touchStart: function() {
11242            loadVisibleSlideImages(this);
11243          },
11244          reachBeginning: function() {
11245            if (prevBtn) prevBtn.classList.add('swiper-button-disabled');
11246          },
11247          reachEnd: function() {
11248            if (nextBtn) nextBtn.classList.add('swiper-button-disabled');
11249          }
11250        }
11251      });
11252    }
11253
11254    function updateNavButtons(swiper, prevBtn, nextBtn) {
11255      if (!swiper || !prevBtn || !nextBtn) return;
11256
11257      // At beginning - hide prev
11258      if (swiper.isBeginning) {
11259        prevBtn.classList.add('swiper-button-disabled');
11260      } else {
11261        prevBtn.classList.remove('swiper-button-disabled');
11262      }
11263
11264      // At end - hide next
11265      if (swiper.isEnd) {
11266        nextBtn.classList.add('swiper-button-disabled');
11267      } else {
11268        nextBtn.classList.remove('swiper-button-disabled');
11269      }
11270
11271      // If not enough slides for navigation, hide both
11272      if (swiper.slides.length <= swiper.params.slidesPerView) {
11273        prevBtn.classList.add('swiper-button-disabled');
11274        nextBtn.classList.add('swiper-button-disabled');
11275      }
11276    }
11277
11278    /* ---------- Tab switching ---------- */
11279
11280    tabs.forEach((tab) => {
11281      tab.addEventListener('click', function() {
11282        const targetName = this.dataset.tab;
11283
11284        destroyCurrentSwiper();
11285
11286        tabs.forEach((t) => t.classList.remove('active'));
11287        contents.forEach((c) => c.classList.remove('active'));
11288        this.classList.add('active');
11289
11290        const targetContent = section.querySelector('.series-product-bottom[data-content="' + targetName + '"]');
11291        if (targetContent) {
11292          targetContent.classList.add('active');
11293          hydrateTab(targetContent); // stamps template on first visit only
11294        }
11295
11296        // Synchronous init - hydrate, stamp, and boot Swiper in the same task
11297        // so the browser never paints the un-initialized state
11298        initActiveSwiper();
11299      });
11300    });
11301
11302    /* ---------- Deferred initialization via IntersectionObserver ---------- */
11303
11304    function activateSection() {
11305      if (sectionInView) return;
11306      sectionInView = true;
11307      hydrateTab(getActiveContent());
11308      initActiveSwiper();
11309    }
11310
11311    if ('IntersectionObserver' in window) {
11312      const observer = new IntersectionObserver((entries, obs) => {
11313        if (entries.some((entry) => entry.isIntersecting)) {
11314          obs.disconnect();
11315          activateSection();
11316        }
11317      }, { rootMargin: '200px 0px' });
11318      observer.observe(section);
11319    } else {
11320      // Ancient browser fallback: just load immediately
11321      if (document.readyState === 'loading') {
11322        document.addEventListener('DOMContentLoaded', activateSection);
11323      } else {
11324        activateSection();
11325      }
11326    }
11327
11328    /* ---------- Resize ---------- */
11329
11330    let resizeTimer;
11331    window.addEventListener('resize', function() {
11332      clearTimeout(resizeTimer);
11333      resizeTimer = setTimeout(() => {
11334        if (!sectionInView) return;
11335        destroyCurrentSwiper();
11336        initActiveSwiper();
11337      }, 250);
11338    });
11339  })();
11340</script>
11340
11341
11342</div><section id="shopify-section-template--28630587998578__beforeandafterslider_hp_d3gJ9B" class="shopify-section section-before-after-slider">
11343
11344<style>
11345  .flush-lite-slider-container {
11346    display: flex;
11347    justify-content: center;
11348    align-items: center;
11349    min-height: 300px;
11350    padding: 40px 20px 40px;
11351    box-sizing: border-box;
11352    background-color: #ffffff;
11353  }
11354
11355  .flush-lite-slider-container .fl-ba-item {
11356    width: 100%;
11357    max-width: 800px;
11358  }
11359
11360  .flush-lite-slider-container .fl-ba-wrapper {
11361    position: relative;
11362    overflow: hidden;
11363    border: 5px solid #000000;
11364    border-radius: 8px;
11365    box-shadow: 0 6px 20px rgba(0,0,0,.2);
11366    background-color: #000;
11367    box-sizing: border-box;
11368    transform: translateZ(0);
11369    -webkit-transform: translateZ(0);
11370  }
11371  
11372  .flush-lite-slider-container .fl-ba-wrapper::before {
11373    content: "";
11374    display: block;
11375    padding-top: 50%;
11376  }
11377
11378  .flush-lite-slider-container .fl-ba-img {
11379    position: absolute;
11380    top: 0; 
11381    left: 0;
11382    width: 100%; 
11383    height: 100%;
11384    object-fit: cover;
11385    pointer-events: none;
11386    user-select: none;
11387    -webkit-user-select: none;
11388    -moz-user-select: none;
11389    -ms-user-select: none;
11390  }
11391  
11392  .flush-lite-slider-container .fl-ba-before {
11393    z-index: 1;
11394    -webkit-clip-path: inset(0 50% 0 0);
11395    clip-path: inset(0 50% 0 0);
11396  }
11397  
11398  .flush-lite-slider-container .fl-ba-after { 
11399    z-index: 0; 
11400  }
11401
11402  .flush-lite-slider-container .fl-ba-divider {
11403    position: absolute;
11404    top: 0; 
11405    left: 50%;
11406    width: 2px; 
11407    height: 100%;
11408    background: #ffffff;
11409    mix-blend-mode: difference;
11410    z-index: 2;
11411  }
11412
11413  .flush-lite-slider-container .fl-ba-handle {
11414    position: absolute;
11415    top: 50%; 
11416    left: 50%;
11417    transform: translate(-50%, -50%);
11418    -webkit-transform: translate(-50%, -50%);
11419    -moz-transform: translate(-50%, -50%);
11420    -ms-transform: translate(-50%, -50%);
11421    width: 36px; 
11422    height: 36px;
11423    border-radius: 50%;
11424    background: #ffffff;
11425    display: flex;
11426    align-items: center;
11427    justify-content: center;
11428    cursor: pointer;
11429    user-select: none;
11430    -webkit-user-select: none;
11431    -moz-user-select: none;
11432    -ms-user-select: none;
11433    z-index: 3;
11434  }
11435  
11436  .flush-lite-slider-container .fl-ba-handle svg {
11437    width: 24px;
11438    height: 24px;
11439    display: block;
11440    color: #000000;
11441  }
11442
11443  @media (min-width: 1200px) {
11444    .flush-lite-slider-container .fl-ba-item {
11445      max-width: min(800px, 70vw);
11446    }
11447  }
11448
11449  @media (min-width: 1600px) {
11450    .flush-lite-slider-container .fl-ba-item {
11451      max-width: min(800px, 60vw);
11452    }
11453  }
11454
11455  @media (max-width: 991px) {
11456    .flush-lite-slider-container .fl-ba-wrapper { 
11457      border-width: 3px; 
11458    }
11459    .flush-lite-slider-container .fl-ba-img {
11460      top: -1px; 
11461      left: -1px;
11462      width: calc(100% + 2px);
11463      height: calc(100% + 2px);
11464    }
11465  }
11466
11467  @media (max-width: 768px) {
11468    .flush-lite-slider-container {
11469      padding: 30px 15px 30px;
11470    }
11471    
11472    .flush-lite-slider-container .fl-ba-wrapper { 
11473      border-width: 2px; 
11474    }
11475    
11476    .flush-lite-slider-container .fl-ba-handle {
11477      width: 30px; 
11478      height: 30px;
11479    }
11480    
11481    .flush-lite-slider-container .fl-ba-handle svg {
11482      width: 20px;
11483      height: 20px;
11484    }
11485  }
11486
11487  @media (max-width: 480px) {
11488    .flush-lite-slider-container {
11489      padding: 20px 5px 20px;
11490      min-height: 200px;
11491    }
11492    
11493    .flush-lite-slider-container .fl-ba-item {
11494      max-width: 95%;
11495    }
11496    
11497    .flush-lite-slider-container .fl-ba-wrapper { 
11498      border-width: 1px; 
11499    }
11500    
11501    .flush-lite-slider-container .fl-ba-handle {
11502      width: 28px;
11503      height: 28px;
11504    }
11505    
11506    .flush-lite-slider-container .fl-ba-handle svg {
11507      width: 18px;
11508      height: 18px;
11509    }
11510  }
11511</style><div class="flush-lite-slider-container" id="ba-slider-template--28630587998578__beforeandafterslider_hp_d3gJ9B">
11512  <div class="fl-ba-item">
11513    <div class="fl-ba-wrapper">
11514      
11515        <img class="fl-ba-img fl-ba-after"
11516             src="//fittes.ca/cdn/shop/files/AFTER_4.webp?v=1777318392&width=800"
11517             srcset="//fittes.ca/cdn/shop/files/AFTER_4.webp?v=1777318392&width=360 360w,
11518                     //fittes.ca/cdn/shop/files/AFTER_4.webp?v=1777318392&width=480 480w,
11519                     //fittes.ca/cdn/shop/files/AFTER_4.webp?v=1777318392&width=600 600w,
11520                     //fittes.ca/cdn/shop/files/AFTER_4.webp?v=1777318392&width=768 768w,
11521                     //fittes.ca/cdn/shop/files/AFTER_4.webp?v=1777318392&width=900 900w,
11522                     //fittes.ca/cdn/shop/files/AFTER_4.webp?v=1777318392&width=1100 1100w,
11523                     //fittes.ca/cdn/shop/files/AFTER_4.webp?v=1777318392&width=1400 1400w,
11524                     //fittes.ca/cdn/shop/files/AFTER_4.webp?v=1777318392&width=1800 1800w"
11525             sizes="(max-width: 480px) 95vw, (max-width: 768px) 90vw, (max-width: 1199px) min(800px, 92vw), (max-width: 1599px) min(800px, 70vw), min(800px, 60vw)"
11526             alt="After comparison image"
11527             width="1500"
11528             height="750"
11529             loading="lazy"
11530             decoding="async">
11531      
11532      
11533      
11534        <img class="fl-ba-img fl-ba-before"
11535             src="//fittes.ca/cdn/shop/files/AFTER_3.webp?v=1777318379&width=800"
11536             srcset="//fittes.ca/cdn/shop/files/AFTER_3.webp?v=1777318379&width=360 360w,
11537                     //fittes.ca/cdn/shop/files/AFTER_3.webp?v=1777318379&width=480 480w,
11538                     //fittes.ca/cdn/shop/files/AFTER_3.webp?v=1777318379&width=600 600w,
11539                     //fittes.ca/cdn/shop/files/AFTER_3.webp?v=1777318379&width=768 768w,
11540                     //fittes.ca/cdn/shop/files/AFTER_3.webp?v=1777318379&width=900 900w,
11541                     //fittes.ca/cdn/shop/files/AFTER_3.webp?v=1777318379&width=1100 1100w,
11542                     //fittes.ca/cdn/shop/files/AFTER_3.webp?v=1777318379&width=1400 1400w,
11543                     //fittes.ca/cdn/shop/files/AFTER_3.webp?v=1777318379&width=1800 1800w"
11544             sizes="(max-width: 480px) 95vw, (max-width: 768px) 90vw, (max-width: 1199px) min(800px, 92vw), (max-width: 1599px) min(800px, 70vw), min(800px, 60vw)"
11545             alt="Before comparison image"
11546             width="1500"
11547             height="750"
11548             loading="lazy"
11549             decoding="async">
11550      
11551      
11552      <div class="fl-ba-divider"></div>
11553      <div class="fl-ba-handle" aria-label="Drag to compare before and after">
11554        <svg width="40" height="24" viewBox="0 0 40 24" xmlns="http://www.w3.org/2000/svg">
11555          <g stroke="currentColor" stroke-width="1.5" fill="none">
11556            <polyline points="14,6 8,12 14,18" stroke-linecap="round" stroke-linejoin="round"/>
11557            <line x1="14" y1="12" x2="26" y2="12"/>
11558            <polyline points="26,6 32,12 26,18" stroke-linecap="round" stroke-linejoin="round"/>
11559          </g>
11560        </svg>
11561      </div>
11562    </div>
11563  </div>
11564</div>
11565
11566<script>
11567(function(){
11568  const wrapper = document.querySelector('#ba-slider-template--28630587998578__beforeandafterslider_hp_d3gJ9B .fl-ba-wrapper');
11569  if (!wrapper) return;
11570  
11571  const before = wrapper.querySelector('.fl-ba-before');
11572  const divider = wrapper.querySelector('.fl-ba-divider');
11573  const handle = wrapper.querySelector('.fl-ba-handle');
11574  
11575  if (!before || !divider || !handle) return;
11576  
11577  let dragging = false;
11578  
11579  function updatePosition(percentage) {
11580    const pos = (percentage * 100) + '%';
11581    const clipValue = 100 - (percentage * 100);
11582    
11583    before.style.clipPath = `inset(0 ${clipValue}% 0 0)`;
11584    before.style.webkitClipPath = `inset(0 ${clipValue}% 0 0)`;
11585    
11586    divider.style.left = pos;
11587    handle.style.left = pos;
11588  }
11589  
11590  function setPosition(clientX) {
11591    const rect = wrapper.getBoundingClientRect();
11592    let percentage = (clientX - rect.left) / rect.width;
11593    percentage = Math.max(0, Math.min(1, percentage));
11594    updatePosition(percentage);
11595  }
11596  
11597  wrapper.addEventListener('mousedown', function(e) {
11598    dragging = true;
11599    setPosition(e.clientX);
11600    e.preventDefault();
11601  });
11602  
11603  window.addEventListener('mousemove', function(e) {
11604    if (dragging) {
11605      setPosition(e.clientX);
11606      e.preventDefault();
11607    }
11608  });
11609  
11610  window.addEventListener('mouseup', function() {
11611    dragging = false;
11612  });
11613  
11614  wrapper.addEventListener('touchstart', function(e) {
11615    dragging = true;
11616    setPosition(e.touches[0].clientX);
11617    e.preventDefault();
11618  }, {passive: false});
11619  
11620  window.addEventListener('touchmove', function(e) {
11621    if (dragging) {
11622      setPosition(e.touches[0].clientX);
11623      e.preventDefault();
11624    }
11625  }, {passive: false});
11626  
11627  window.addEventListener('touchend', function() {
11628    dragging = false;
11629  });
11630  
11631  window.addEventListener('touchcancel', function() {
11632    dragging = false;
11633  });
11634  
11635  updatePosition(0.5);
11636})();
11637</script>
11637
11638
11639
11640</section><section id="shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD" class="shopify-section section"><style data-shopify>/* ========== SHARED PADDING LADDER — matches the other homepage sections ========== */
11641  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD {
11642    --content-padding: 20px;
11643    --panel-bg: #1a1a1a;
11644    --panel-fg: #f3f3f3;
11645    --accent: #e73c3e;
11646    --eyebrow-color: #e73c3e;
11647    --panel-radius: 0px;
11648    --rule: #3d3d3d;
11649    --active-title: #ffffff;
11650  }
11651  @media (min-width: 750px) {
11652    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD { --content-padding: calc(2.5rem + 30px); }
11653  }
11654  @media (min-width: 990px) {
11655    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD { --content-padding: calc(2.5rem + 40px); }
11656  }
11657  @media (min-width: 1200px) {
11658    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD { --content-padding: calc(2.5rem + 50px); }
11659  }
11660
11661  .seamless-template--28630587998578__seamless_spaces_accord_Lz6fGD-padding {
11662    padding-top: 27px;
11663    padding-bottom: 27px;
11664  }
11665  @media (min-width: 750px) {
11666    .seamless-template--28630587998578__seamless_spaces_accord_Lz6fGD-padding {
11667      padding-top: 36px;
11668      padding-bottom: 36px;
11669    }
11670  }
11671
11672  /* ========== OUTER FRAME ========== */
11673  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss {
11674    max-width: 1420px;
11675    margin: 0 auto;
11676    padding-left: var(--content-padding);
11677    padding-right: var(--content-padding);
11678    box-sizing: border-box;
11679  }
11680
11681  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__eyebrow {
11682    font-size: 1.2rem;
11683    font-weight: 500;
11684    letter-spacing: 0.08em;
11685    text-transform: uppercase;
11686    color: var(--eyebrow-color);
11687    margin: 0;
11688  }
11689
11690  /* Header sits above the panel, left aligned, matching the carousel
11691     version's heading treatment */
11692  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__header {
11693    margin-bottom: 20px;
11694  }
11695
11696  @media (min-width: 750px) {
11697    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__header {
11698      margin-bottom: 40px;
11699    }
11700  }
11701
11702  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__frame {
11703    background: var(--panel-bg);
11704    color: var(--panel-fg);
11705    border-radius: var(--panel-radius);
11706    overflow: hidden;
11707    display: grid;
11708    grid-template-columns: 1fr;
11709  }
11710
11711  @media (min-width: 990px) {
11712    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__frame {
11713      grid-template-columns: 45fr 55fr;
11714      min-height: 0;
11715    }
11716  }
11717
11718  /* ========== MEDIA PANEL ========== */
11719  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__media {
11720    position: relative;
11721    aspect-ratio: 4 / 3;
11722    background: #f3f3f30d;
11723  }
11724
11725  @media (min-width: 990px) {
11726    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__media {
11727      aspect-ratio: auto;
11728    }
11729  }
11730
11731  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__figure {
11732    position: absolute;
11733    inset: 0;
11734    margin: 0;
11735    opacity: 0;
11736    transition: opacity 0.45s ease;
11737    pointer-events: none;
11738  }
11739
11740  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__figure img,
11741  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__figure svg {
11742    width: 100%;
11743    height: 100%;
11744    object-fit: cover;
11745    display: block;
11746  }
11747
11748  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__counter {
11749    position: absolute;
11750    left: 24px;
11751    bottom: 20px;
11752    z-index: 3;
11753    font-size: 1.2rem;
11754    letter-spacing: 0.12em;
11755    font-variant-numeric: tabular-nums;
11756    opacity: 0.75;
11757  }
11758
11759  @media (min-width: 750px) {
11760    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__counter {
11761      left: 32px;
11762      bottom: 28px;
11763    }
11764  }
11765
11766  /* ========== CONTENT PANEL ========== */
11767  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__content {
11768    padding: 20px 20px 22px;
11769    display: flex;
11770    flex-direction: column;
11771  }
11772
11773  @media (min-width: 750px) {
11774    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__content {
11775      padding: 26px 28px 28px;
11776    }
11777  }
11778
11779  @media (min-width: 1200px) {
11780    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__content {
11781      padding: 30px 36px 32px;
11782      justify-content: center;
11783    }
11784  }
11785
11786  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__title {
11787    margin: 10px 0 0;
11788    letter-spacing: -0.015em;
11789    font-size: calc(var(--font-heading-scale, 1) * 3.2rem);
11790    line-height: 1.05;
11791  }
11792
11793  @media (min-width: 750px) {
11794    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__title {
11795      margin-top: 20px;
11796      font-size: calc(var(--font-heading-scale, 1) * 4.0rem);
11797    }
11798  }
11799
11800  /* Inline by default, so the heading sits on one line when there is room
11801     and wraps naturally when there is not */
11802  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__title {
11803    text-wrap: balance;
11804  }
11805
11806  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__title em {
11807    font-style: italic;
11808    font-weight: 400;
11809  }
11810
11811  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__intro {
11812    margin: 12px 0 0;
11813    max-width: 62ch;
11814    font-size: 1.5rem;
11815    line-height: 1.6;
11816    opacity: 0.8;
11817  }
11818
11819  @media (min-width: 750px) {
11820    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__intro {
11821      font-size: 1.6rem;
11822    }
11823  }
11824
11825  /* ========== ACCORDION LIST ========== */
11826  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__list {
11827    list-style: none;
11828    margin: 0;
11829    padding: 0;
11830    border-top: 1px solid var(--rule);
11831  }
11832
11833  @media (min-width: 750px) {
11834    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__list {
11835      margin-top: 0;
11836    }
11837  }
11838
11839  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__item {
11840    position: relative;
11841    border-bottom: 1px solid var(--rule);
11842  }
11843
11844  /* The radio is the state machine. Kept in the DOM, never display:none, so
11845     it stays operable; positioned off-screen rather than hidden. */
11846  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__radio {
11847    position: absolute;
11848    width: 1px;
11849    height: 1px;
11850    margin: 0;
11851    padding: 0;
11852    border: 0;
11853    clip: rect(0 0 0 0);
11854    clip-path: inset(50%);
11855    overflow: hidden;
11856    white-space: nowrap;
11857  }
11858
11859  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__trigger {
11860    display: grid;
11861    grid-template-columns: 34px 1fr;
11862    align-items: baseline;
11863    gap: 4px;
11864    padding: 16px 0;
11865    cursor: pointer;
11866    transition: opacity 0.25s ease;
11867    opacity: 0.62;
11868  }
11869
11870  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__trigger:hover {
11871    opacity: 0.9;
11872  }
11873
11874  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__num {
11875    font-size: 1.1rem;
11876    letter-spacing: 0.06em;
11877    font-variant-numeric: tabular-nums;
11878    opacity: 0.7;
11879  }
11880
11881  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__card-title {
11882    margin: 0;
11883    font-size: 1.89rem;
11884    line-height: 1.25;
11885    letter-spacing: -0.01em;
11886    color: inherit;
11887  }
11888
11889  @media (min-width: 750px) {
11890    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__card-title {
11891      font-size: 2.1rem;
11892    }
11893  }
11894
11895  /* ---- Collapsed panel: clipped, NOT hidden ----
11896     grid-template-rows 0fr keeps the text in the DOM and in the
11897     accessibility tree. No display:none, no visibility:hidden. */
11898  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__panel {
11899    display: grid;
11900    grid-template-rows: 0fr;
11901    transition: grid-template-rows 0.4s ease, opacity 0.3s ease;
11902    opacity: 0;
11903  }
11904
11905  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__panel-inner {
11906    overflow: hidden;
11907    grid-column: 1 / -1;
11908    padding-left: 38px;
11909    padding-bottom: 4px;
11910  }
11911
11912  /* Matches .reviews__quote p exactly */
11913  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__text {
11914    margin: 0 0 12px;
11915    font-size: 1.5rem;
11916    line-height: 1.6;
11917    opacity: 0.82;
11918  }
11919
11920  @media (min-width: 750px) {
11921    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__text {
11922      font-size: 1.6rem;
11923    }
11924  }
11925
11926  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__link {
11927    display: inline-flex;
11928    align-items: center;
11929    gap: 8px;
11930    margin-bottom: 16px;
11931    font-size: 1.4rem;
11932    color: inherit;
11933    text-underline-offset: 0.3em;
11934    text-decoration-thickness: 1px;
11935  }
11936
11937  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__link svg {
11938    width: 14px;
11939    height: 14px;
11940  }
11941
11942  /* ---- Open state ---- */
11943  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__radio:checked ~ .ss__trigger {
11944    opacity: 1;
11945  }
11946
11947  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__radio:checked ~ .ss__trigger .ss__card-title {
11948    color: var(--active-title);
11949    font-weight: 700;
11950  }
11951
11952  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__radio:checked ~ .ss__panel {
11953    grid-template-rows: 1fr;
11954    opacity: 1;
11955  }
11956
11957  /* Active row marker: a single accent rule on the left edge of the row,
11958     held inside the dark panel so it never crosses onto the image. Only
11959     border-left is touched, so the grey dividers stay intact. */
11960  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__item:has(.ss__radio:checked) {
11961    border-left: 2px solid var(--accent);
11962    margin-left: -8px;
11963    padding-left: 8px;
11964    z-index: 2;
11965  }
11966
11967  /* Keyboard focus lands on the radio; surface it on the visible row */
11968  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__radio:focus-visible ~ .ss__trigger {
11969    outline: 2px solid var(--accent);
11970    outline-offset: 4px;
11971    opacity: 1;
11972  }
11973
11974  @media (prefers-reduced-motion: reduce) {
11975    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__panel,
11976    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__figure,
11977    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__trigger {
11978      transition: none;
11979    }
11980  }
11981
11982  /* ========== PER-BLOCK MEDIA + COUNTER SWAPPING (CSS only) ========== */#shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__frame:has(#ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-1:checked) .ss__figure[data-index="1"] {
11983      opacity: 1;
11984    }
11985    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__frame:has(#ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-1:checked) .ss__counter::before {
11986      content: "01";
11987    }#shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__frame:has(#ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-2:checked) .ss__figure[data-index="2"] {
11988      opacity: 1;
11989    }
11990    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__frame:has(#ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-2:checked) .ss__counter::before {
11991      content: "02";
11992    }#shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__frame:has(#ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-3:checked) .ss__figure[data-index="3"] {
11993      opacity: 1;
11994    }
11995    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__frame:has(#ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-3:checked) .ss__counter::before {
11996      content: "03";
11997    }#shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__frame:has(#ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-4:checked) .ss__figure[data-index="4"] {
11998      opacity: 1;
11999    }
12000    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__frame:has(#ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-4:checked) .ss__counter::before {
12001      content: "04";
12002    }#shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__frame:has(#ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-5:checked) .ss__figure[data-index="5"] {
12003      opacity: 1;
12004    }
12005    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__frame:has(#ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-5:checked) .ss__counter::before {
12006      content: "05";
12007    }#shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__frame:has(#ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-6:checked) .ss__figure[data-index="6"] {
12008      opacity: 1;
12009    }
12010    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__frame:has(#ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-6:checked) .ss__counter::before {
12011      content: "06";
12012    }/* Fallback for browsers without :has() — first item shows by default */
12013  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__figure[data-index="1"] {
12014    opacity: 1;
12015  }
12016  @supports selector(:has(*)) {
12017    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__figure[data-index="1"] {
12018      opacity: 0;
12019    }
12020    #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__frame:has(#ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-1:checked) .ss__figure[data-index="1"] {
12021      opacity: 1;
12022    }
12023  }
12024
12025  #shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD .ss__counter::after {
12026    content: " / 06";
12027  }</style><div class="color-scheme-1 gradient isolate">
12028  <div class="seamless-template--28630587998578__seamless_spaces_accord_Lz6fGD-padding">
12029    <section class="ss" aria-labelledby="ss-title-template--28630587998578__seamless_spaces_accord_Lz6fGD">
12030      <header class="ss__header"><p class="ss__eyebrow">Seamless Spaces</p><h2 id="ss-title-template--28630587998578__seamless_spaces_accord_Lz6fGD" class="ss__title h1">Details that&#32;<em>disappear</em></h2><p class="ss__intro">Fittes makes vent covers, access doors, shadow-line baseboards and bathroom hardware designed to finish level with the surrounding surface. Paint them, paper them, or match them to your flooring and tile.</p></header>
12031
12032      <div class="ss__frame">
12033        <div class="ss__media"><figure class="ss__figure" data-index="1"><img src="//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Luxe_-_Lifestyle.webp?v=1782744011&amp;width=1400" alt="Recessed floor register set level with white oak hardwood flooring" srcset="//fittes.ca/cdn/shop/files/Flush_Floor_Vent_Luxe_-_Lifestyle.webp?v=1782744011&amp;width=480 480w, //fittes.ca/cdn/shop/files/Flush_Floor_Vent_Luxe_-_Lifestyle.webp?v=1782744011&amp;width=720 720w, //fittes.ca/cdn/shop/files/Flush_Floor_Vent_Luxe_-_Lifestyle.webp?v=1782744011&amp;width=960 960w, //fittes.ca/cdn/shop/files/Flush_Floor_Vent_Luxe_-_Lifestyle.webp?v=1782744011&amp;width=1200 1200w, //fittes.ca/cdn/shop/files/Flush_Floor_Vent_Luxe_-_Lifestyle.webp?v=1782744011&amp;width=1400 1400w" width="1400" height="1400" loading="eager" sizes="(min-width: 990px) 55vw, 100vw">
12034</figure><figure class="ss__figure" data-index="2"><img src="//fittes.ca/cdn/shop/files/flush-wall-vent-lite-plus-white-living-room.webp?v=1785943078&amp;width=1400" alt="Paintable wall return air vent blending into a painted plaster wall" srcset="//fittes.ca/cdn/shop/files/flush-wall-vent-lite-plus-white-living-room.webp?v=1785943078&amp;width=480 480w, //fittes.ca/cdn/shop/files/flush-wall-vent-lite-plus-white-living-room.webp?v=1785943078&amp;width=720 720w, //fittes.ca/cdn/shop/files/flush-wall-vent-lite-plus-white-living-room.webp?v=1785943078&amp;width=960 960w, //fittes.ca/cdn/shop/files/flush-wall-vent-lite-plus-white-living-room.webp?v=1785943078&amp;width=1200 1200w, //fittes.ca/cdn/shop/files/flush-wall-vent-lite-plus-white-living-room.webp?v=1785943078&amp;width=1400 1400w" width="1400" height="1400" loading="lazy" sizes="(min-width: 990px) 55vw, 100vw">
12035</figure><figure class="ss__figure" data-index="3"><img src="//fittes.ca/cdn/shop/files/flush-exhaust-mount-red-paint-bathroom.webp?v=1785943174&amp;width=1400" alt="Low-profile bathroom exhaust fan cover painted to match the ceiling" srcset="//fittes.ca/cdn/shop/files/flush-exhaust-mount-red-paint-bathroom.webp?v=1785943174&amp;width=480 480w, //fittes.ca/cdn/shop/files/flush-exhaust-mount-red-paint-bathroom.webp?v=1785943174&amp;width=720 720w, //fittes.ca/cdn/shop/files/flush-exhaust-mount-red-paint-bathroom.webp?v=1785943174&amp;width=960 960w, //fittes.ca/cdn/shop/files/flush-exhaust-mount-red-paint-bathroom.webp?v=1785943174&amp;width=1200 1200w, //fittes.ca/cdn/shop/files/flush-exhaust-mount-red-paint-bathroom.webp?v=1785943174&amp;width=1400 1400w" width="1400" height="1750" loading="lazy" sizes="(min-width: 990px) 55vw, 100vw">
12036</figure><figure class="ss__figure" data-index="4"><img src="//fittes.ca/cdn/shop/files/Flush_Wall_Vent_Lite_-_Lifestyle.webp?v=1782744267&amp;width=1400" alt="Floor vent tray filled with a flooring offcut so the wood grain runs uninterrupted" srcset="//fittes.ca/cdn/shop/files/Flush_Wall_Vent_Lite_-_Lifestyle.webp?v=1782744267&amp;width=480 480w, //fittes.ca/cdn/shop/files/Flush_Wall_Vent_Lite_-_Lifestyle.webp?v=1782744267&amp;width=720 720w, //fittes.ca/cdn/shop/files/Flush_Wall_Vent_Lite_-_Lifestyle.webp?v=1782744267&amp;width=960 960w, //fittes.ca/cdn/shop/files/Flush_Wall_Vent_Lite_-_Lifestyle.webp?v=1782744267&amp;width=1200 1200w, //fittes.ca/cdn/shop/files/Flush_Wall_Vent_Lite_-_Lifestyle.webp?v=1782744267&amp;width=1400 1400w" width="1400" height="1400" loading="lazy" sizes="(min-width: 990px) 55vw, 100vw">
12037</figure><figure class="ss__figure" data-index="5"><img src="//fittes.ca/cdn/shop/files/Fittes_PrimateRd_17_-_HR_photoshopped.webp?v=1788979080&amp;width=1400" alt="Shadow-line reveal detail where a recessed baseboard meets the drywall" srcset="//fittes.ca/cdn/shop/files/Fittes_PrimateRd_17_-_HR_photoshopped.webp?v=1788979080&amp;width=480 480w, //fittes.ca/cdn/shop/files/Fittes_PrimateRd_17_-_HR_photoshopped.webp?v=1788979080&amp;width=720 720w, //fittes.ca/cdn/shop/files/Fittes_PrimateRd_17_-_HR_photoshopped.webp?v=1788979080&amp;width=960 960w, //fittes.ca/cdn/shop/files/Fittes_PrimateRd_17_-_HR_photoshopped.webp?v=1788979080&amp;width=1200 1200w, //fittes.ca/cdn/shop/files/Fittes_PrimateRd_17_-_HR_photoshopped.webp?v=1788979080&amp;width=1400 1400w" width="1400" height="1400" loading="lazy" sizes="(min-width: 990px) 55vw, 100vw">
12038</figure><figure class="ss__figure" data-index="6"><img src="//fittes.ca/cdn/shop/files/1-FlushAccessPanel_Luxe__Lifestyle1_f4d44b28-1161-4
12038cbd-9bfd-f71874cb1e74.png?v=1754022088&amp;width=1400" alt="Painted drywall access panel concealing plumbing shut-off valves" srcset="//fittes.ca/cdn/shop/files/1-FlushAccessPanel_Luxe__Lifestyle1_f4d44b28-1161-4cbd-9bfd-f71874cb1e74.png?v=1754022088&amp;width=480 480w, //fittes.ca/cdn/shop/files/1-FlushAccessPanel_Luxe__Lifestyle1_f4d44b28-1161-4cbd-9bfd-f71874cb1e74.png?v=1754022088&amp;width=720 720w, //fittes.ca/cdn/shop/files/1-FlushAccessPanel_Luxe__Lifestyle1_f4d44b28-1161-4cbd-9bfd-f71874cb1e74.png?v=1754022088&amp;width=960 960w, //fittes.ca/cdn/shop/files/1-FlushAccessPanel_Luxe__Lifestyle1_f4d44b28-1161-4cbd-9bfd-f71874cb1e74.png?v=1754022088&amp;width=1200 1200w, //fittes.ca/cdn/shop/files/1-FlushAccessPanel_Luxe__Lifestyle1_f4d44b28-1161-4cbd-9bfd-f71874cb1e74.png?v=1754022088&amp;width=1400 1400w" width="1400" height="1400" loading="lazy" sizes="(min-width: 990px) 55vw, 100vw">
12039</figure><span class="ss__counter" aria-hidden="true"></span>
12040        </div>
12041
12042        <div class="ss__content">
12043          <ul class="ss__list" role="list"><li class="ss__item" >
12044                <input
12045                  type="radio"
12046                  class="ss__radio"
12047                  name="ss-template--28630587998578__seamless_spaces_accord_Lz6fGD"
12048                  id="ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-1"
12049                  checked
12050                >
12051
12052                <label class="ss__trigger" for="ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-1">
12053                  <span class="ss__num" aria-hidden="true">01</span>
12054                  <h3 class="ss__card-title">Recessed Floor Registers</h3>
12055                </label>
12056
12057                <div class="ss__panel">
12058                  <div class="ss__panel-inner">
12059                    <p class="ss__text">Sits level with your finished floor, so only a slim air channel is visible. No raised grille to catch a toe or collect dust. Works under hardwood, tile, vinyl plank, carpet and polished concrete.</p><a class="ss__link" href="/collections/floor" data-ss-link>
12060                        Shop floor vents
12061                        <svg viewBox="0 0 27 27" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
12062                          <path d="M4.80469 13.9355H22.0148M22.0148 13.9355C22.0148 13.9355 17.1365 10.7272 16.1452 8.06592M22.0148 13.9355C22.0148 13.9355 17.7022 16.95 16.1452 19.805" stroke="currentColor" stroke-width="2.17391" stroke-linecap="square"/>
12063                        </svg>
12064                        <span class="visually-hidden">Recessed Floor Registers</span>
12065                      </a></div>
12066                </div>
12067              </li><li class="ss__item" >
12068                <input
12069                  type="radio"
12070                  class="ss__radio"
12071                  name="ss-template--28630587998578__seamless_spaces_accord_Lz6fGD"
12072                  id="ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-2"
12073                  
12074                >
12075
12076                <label class="ss__trigger" for="ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-2">
12077                  <span class="ss__num" aria-hidden="true">02</span>
12078                  <h3 class="ss__card-title">Grille-Free Air Returns</h3>
12079                </label>
12080
12081                <div class="ss__panel">
12082                  <div class="ss__panel-inner">
12083                    <p class="ss__text">Return-air grilles are the largest visual interruption on most walls. Ours replaces them with a paintable plate that carries your colour or wallpaper across the opening. Full airflow, no stamped metal.</p><a class="ss__link" href="/collections/wall-vent" data-ss-link>
12084                        Shop wall and ceiling vents
12085                        <svg viewBox="0 0 27 27" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
12086                          <path d="M4.80469 13.9355H22.0148M22.0148 13.9355C22.0148 13.9355 17.1365 10.7272 16.1452 8.06592M22.0148 13.9355C22.0148 13.9355 17.7022 16.95 16.1452 19.805" stroke="currentColor" stroke-width="2.17391" stroke-linecap="square"/>
12087                        </svg>
12088                        <span class="visually-hidden">Grille-Free Air Returns</span>
12089                      </a></div>
12090                </div>
12091              </li><li class="ss__item" >
12092                <input
12093                  type="radio"
12094                  class="ss__radio"
12095                  name="ss-template--28630587998578__seamless_spaces_accord_Lz6fGD"
12096                  id="ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-3"
12097                  
12098                >
12099
12100                <label class="ss__trigger" for="ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-3">
12101                  <span class="ss__num" aria-hidden="true">03</span>
12102                  <h3 class="ss__card-title">Bathroom Exhaust, Upgraded</h3>
12103                </label>
12104
12105                <div class="ss__panel">
12106                  <div class="ss__panel-inner">
12107                    <p class="ss__text">The builder-grade fan grille is the last thing anyone updates and the easiest thing to fix. A low-profile cover paints out to match the ceiling, making it one of the fastest wins in any bathroom renovation.</p><a class="ss__link" href="/collections/exhaust-mounts" data-ss-link>
12108                        Shop exhaust mounts
12109                        <svg viewBox="0 0 27 27" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
12110                          <path d="M4.80469 13.9355H22.0148M22.0148 13.9355C22.0148 13.9355 17.1365 10.7272 16.1452 8.06592M22.0148 13.9355C22.0148 13.9355 17.7022 16.95 16.1452 19.805" stroke="currentColor" stroke-width="2.17391" stroke-linecap="square"/>
12111                        </svg>
12112                        <span class="visually-hidden">Bathroom Exhaust, Upgraded</span>
12113                      </a></div>
12114                </div>
12115              </li><li class="ss__item" >
12116                <input
12117                  type="radio"
12118                  class="ss__radio"
12119                  name="ss-template--28630587998578__seamless_spaces_accord_Lz6fGD"
12120                  id="ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-4"
12121                  
12122                >
12123
12124                <label class="ss__trigger" for="ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-4">
12125                  <span class="ss__num" aria-hidden="true">04</span>
12126                  <h3 class="ss__card-title">Match Your Material</h3>
12127                </label>
12128
12129                <div class="ss__panel">
12130                  <div class="ss__panel-inner">
12131                    <p class="ss__text">Every plate is designed to be finished in place. Paint it your wall colour, run wallpaper straight across it, or drop a flooring offcut into a floor vent tray so the grain runs uninterrupted. One product line, any material palette.</p></div>
12132                </div>
12133              </li><li class="ss__item" >
12134                <input
12135                  type="radio"
12136                  class="ss__radio"
12137                  name="ss-template--28630587998578__seamless_spaces_accord_Lz6fGD"
12138                  id="ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-5"
12139                  
12140                >
12141
12142                <label class="ss__trigger" for="ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-5">
12143                  <span class="ss__num" aria-hidden="true">05</span>
12144                  <h3 class="ss__card-title">Shadow-Line Baseboards</h3>
12145                </label>
12146
12147                <div class="ss__panel">
12148                  <div class="ss__panel-inner">
12149                    <p class="ss__text">Recessed baseboard sets the trim into the wall plane rather than on top of it. An integrated drywall bead guarantees a parallel seam, turning a specialty carpentry detail into a routine install.</p><a class="ss__link" href="/products/flush-trim-mount-lite" data-ss-link>
12150                        Shop trim mounts
12151                        <svg viewBox="0 0 27 27" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
12152                          <path d="M4.80469 13.9355H22.0148M22.0148 13.9355C22.0148 13.9355 17.1365 10.7272 16.1452 8.06592M22.0148 13.9355C22.0148 13.9355 17.7022 16.95 16.1452 19.805" stroke="currentColor" stroke-width="2.17391" stroke-linecap="square"/>
12153                        </svg>
12154                        <span class="visually-hidden">Shadow-Line Baseboards</span>
12155                      </a></div>
12156                </div>
12157              </li><li class="ss__item" >
12158                <input
12159                  type="radio"
12160                  class="ss__radio"
12161                  name="ss-template--28630587998578__seamless_spaces_accord_Lz6fGD"
12162                  id="ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-6"
12163                  
12164                >
12165
12166                <label class="ss__trigger" for="ss-template--28630587998578__seamless_spaces_accord_Lz6fGD-6">
12167                  <span class="ss__num" aria-hidden="true">06</span>
12168                  <h3 class="ss__card-title">Concealed Access</h3>
12169                </label>
12170
12171                <div class="ss__panel">
12172                  <div class="ss__panel-inner">
12173                    <p class="ss__text">Shut-off valves, breakers and junction boxes need to be reachable, not visible. A removable centre plate paints or papers to match the surrounding wall, so serviceability stays intact and the surface stays unbroken.</p><a class="ss__link" href="/products/flush-access-panel-luxe-1" data-ss-link>
12174                        Shop access panels
12175                        <svg viewBox="0 0 27 27" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
12176                          <path d="M4.80469 13.9355H22.0148M22.0148 13.9355C22.0148 13.9355 17.1365 10.7272 16.1452 8.06592M22.0148 13.9355C22.0148 13.9355 17.7022 16.95 16.1452 19.805" stroke="currentColor" stroke-width="2.17391" stroke-linecap="square"/>
12177                        </svg>
12178                        <span class="visually-hidden">Concealed Access</span>
12179                      </a></div>
12180                </div>
12181              </li></ul>
12182        </div>
12183      </div>
12184    </section>
12185  </div>
12186</div>
12186<script type="application/ld+json">
12187  {
12188  "@context": "https://schema.org",
12189  "@type": "ItemList",
12190  "name": "Details that disappear","description": "Fittes makes vent covers, access doors, shadow-line baseboards and bathroom hardware designed to finish level with the surrounding surface. Paint them, paper them, or match them to your flooring and tile.","itemListOrder": "https://schema.org/ItemListUnordered",
12191  "numberOfItems": 6,
12192  "itemListElement": [{
12193      "@type": "ListItem",
12194      "position": 1,
12195      "item": {
12196        "@type": "WebPage",
12197        "name": "Recessed Floor Registers",
12198        "description": "Sits level with your finished floor, so only a slim air channel is visible. No raised grille to catch a toe or collect dust. Works under hardwood, tile, vinyl plank, carpet and polished concrete."
12199, "url": "https:\/\/fittes.ca\/collections\/floor"
12200, "image": "https:\/\/fittes.ca\/cdn\/shop\/files\/Flush_Floor_Vent_Luxe_-_Lifestyle.webp?v=1782744011\u0026width=1200"
12201}
12202    },{
12203      "@type": "ListItem",
12204      "position": 2,
12205      "item": {
12206        "@type": "WebPage",
12207        "name": "Grille-Free Air Returns",
12208        "description": "Return-air grilles are the largest visual interruption on most walls. Ours replaces them with a paintable plate that carries your colour or wallpaper across the opening. Full airflow, no stamped metal."
12209, "url": "https:\/\/fittes.ca\/collections\/wall-vent"
12210, "image": "https:\/\/fittes.ca\/cdn\/shop\/files\/flush-wall-vent-lite-plus-white-living-room.webp?v=1785943078\u0026width=1200"
12211}
12212    },{
12213      "@type": "ListItem",
12214      "position": 3,
12215      "item": {
12216        "@type": "WebPage",
12217        "name": "Bathroom Exhaust, Upgraded",
12218        "description": "The builder-grade fan grille is the last thing anyone updates and the easiest thing to fix. A low-profile cover paints out to match the ceiling, making it one of the fastest wins in any bathroom renovation."
12219, "url": "https:\/\/fittes.ca\/collections\/exhaust-mounts"
12220, "image": "https:\/\/fittes.ca\/cdn\/shop\/files\/flush-exhaust-mount-red-paint-bathroom.webp?v=1785943174\u0026width=1200"
12221}
12222    },{
12223      "@type": "ListItem",
12224      "position": 4,
12225      "item": {
12226        "@type": "WebPage",
12227        "name": "Match Your Material",
12228        "description": "Every plate is designed to be finished in place. Paint it your wall colour, run wallpaper straight across it, or drop a flooring offcut into a floor vent tray so the grain runs uninterrupted. One product line, any material palette."
12229, "image": "https:\/\/fittes.ca\/cdn\/shop\/files\/Flush_Wall_Vent_Lite_-_Lifestyle.webp?v=1782744267\u0026width=1200"
12230}
12231    },{
12232      "@type": "ListItem",
12233      "position": 5,
12234      "item": {
12235        "@type": "WebPage",
12236        "name": "Shadow-Line Baseboards",
12237        "description": "Recessed baseboard sets the trim into the wall plane rather than on top of it. An integrated drywall bead guarantees a parallel seam, turning a specialty carpentry detail into a routine install."
12238, "url": "https:\/\/fittes.ca\/products\/flush-trim-mount-lite"
12239, "image": "https:\/\/fittes.ca\/cdn\/shop\/files\/Fittes_PrimateRd_17_-_HR_photoshopped.webp?v=1788979080\u0026width=1200"
12240}
12241    },{
12242      "@type": "ListItem",
12243      "position": 6,
12244      "item": {
12245        "@type": "WebPage",
12246        "name": "Concealed Access",
12247        "description": "Shut-off valves, breakers and junction boxes need to be reachable, not visible. A removable centre plate paints or papers to match the surrounding wall, so serviceability stays intact and the surface stays unbroken."
12248, "url": "https:\/\/fittes.ca\/products\/flush-access-panel-luxe-1"
12249, "image": "https:\/\/fittes.ca\/cdn\/shop\/files\/1-FlushAccessPanel_Luxe__Lifestyle1_f4d44b28-1161-4cbd-9bfd-f71874cb1e74.png?v=1754022088\u0026width=1200"
12250}
12251    }]
12252}
12253</script>
12253
12254
12255<script>
12256  /* Progressive enhancement only: keeps links inside collapsed panels out of
12257     the tab order. The section is fully functional without this. */
12258  (function () {
12259    var section = document.getElementById('shopify-section-template--28630587998578__seamless_spaces_accord_Lz6fGD');
12260    if (!section) return;
12261
12262    var items = section.querySelectorAll('.ss__item');
12263
12264    function sync() {
12265      items.forEach(function (item) {
12266        var radio = item.querySelector('.ss__radio');
12267        var link = item.querySelector('[data-ss-link]');
12268        if (!radio || !link) return;
12269        if (radio.checked) {
12270          link.removeAttribute('tabindex');
12271        } else {
12272          link.setAttribute('tabindex', '-1');
12273        }
12274      });
12275    }
12276
12277    section.addEventListener('change', function (e) {
12278      if (e.target && e.target.classList.contains('ss__radio')) sync();
12279    });
12280
12281    sync();
12282  })();
12283</script>
12283
12284
12285</section><section id="shopify-section-template--28630587998578__as_ohomepage_yifhLp" class="shopify-section section-as-seen-on"><div class="as-seen-on-carousel" id="as-seen-on-template--28630587998578__as_ohomepage_yifhLp"><div class="as-seen-on-title-wrapper as-seen-on-title-wrapper--center"><h2 class="as-seen-on-title-inner h1">As Seen On</h2></div><div class="carousel-wrapper">
12286      <div class="carousel-viewport">
12287        <div class="carousel-track"><div class="logo-item" ><span class="logo-frame" style="padding: 0px 0;"><img
12288                    src="//fittes.ca/cdn/shop/files/daily-mail-logo-svg-vector.svg?v=1777314434&width=600"
12289                    srcset="//fittes.ca/cdn/shop/files/daily-mail-logo-svg-vector.svg?v=1777314434&width=300 300w,
12290                            //fittes.ca/cdn/shop/files/daily-mail-logo-svg-vector.svg?v=1777314434&width=600 600w,
12291                            //fittes.ca/cdn/shop/files/daily-mail-logo-svg-vector.svg?v=1777314434&width=900 900w"
12292                    sizes="175px"
12293                    alt="Logo"
12294                    loading="lazy"
12295                    decoding="async"
12296                    width="2500"
12297                    height="2500"
12298                    style="transform: scale(1.35);"
12299                  ></span></div><div class="logo-item" ><span class="logo-frame" style="padding: 0px 0;"><img
12300                    src="https://cdn.shopify.com/s/files/1/0117/1210/2462/files/3_84f39d07-f22f-4a48-92b6-84fcf28c9450.png?v=1743055839"
12301                    alt="Property Brothers"
12302                    loading="lazy"
12303                    decoding="async"
12304                    width="175"
12305                    height="64"
12306                    style="transform: scale(1.0);"
12307                  ></span></div><div class="logo-item" ><span class="logo-frame" style="padding: 0px 0;"><img
12308                    src="https://cdn.shopify.com/s/files/1/0522/3373/2256/files/5_3caaaf72-f1e1-4a68-9945-f80a9435fcd8.png?v=1734362217"
12309                    alt="House &amp; Home"
12310                    loading="lazy"
12311                    decoding="async"
12312                    width="175"
12313                    height="64"
12314                    style="transform: scale(1.0);"
12315                  ></span></div><div class="logo-item" ><span class="logo-frame" style="padding: 0px 0;"><img
12316                    src="https://cdn.shopify.com/s/files/1/0117/1210/2462/files/4_972b1bd4-cbf5-4cf5-b686-76c01f33c1d9_1.jpg?v=1749577926"
12317                    alt="Architectural Digest"
12318                    loading="lazy"
12319                    decoding="async"
12320                    width="175"
12321                    height="64"
12322                    style="transform: scale(1.0);"
12323                  ></span></div><div class="logo-item" ><span class="logo-frame" style="padding: 0px 0;"><img
12324                    src="https://cdn.shopify.com/s/files/1/0522/3373/2256/files/6_331cb9bd-81dc-4026-8c91-5d028c2c036f.png?v=1734362217"
12325                    alt="Holmes 911"
12326                    loading="lazy"
12327                    decoding="async"
12328                    width="175"
12329                    height="64"
12330                    style="transform: scale(1.0);"
12331                  ></span></div><div class="logo-item" ><span class="logo-frame" style="padding: 0px 0;"><img
12332                    src="https://cdn.shopify.com/s/files/1/0117/1210/2462/files/dwell-logo-png_seeklogo-482948.png?v=1752087956"
12333                    alt="Dwell"
12334                    loading="lazy"
12335                    decoding="async"
12336                    width="175"
12337                    height="64"
12338                    style="transform: scale(1.0);"
12339                  ></span></div><div class="logo-item" ><span class="logo-frame" style="padding: 0px 0;"><img
12340                    src="https://cdn.shopify.com/s/files/1/0117/1210/2462/files/remodelista-logo.png?v=1752087951"
12341                    alt="Remodelista"
12342                    loading="lazy"
12343                    decoding="async"
12344                    width="175"
12345                    height="64"
12346                    style="transform: scale(1.0);"
12347                  ></span></div><div class="logo-item" aria-hidden="true" ><span class="logo-frame" style="padding: 0px 0;"><img
12348                    src="//fittes.ca/cdn/shop/files/daily-mail-logo-svg-ve
12348ctor.svg?v=1777314434&width=600"
12349                    srcset="//fittes.ca/cdn/shop/files/daily-mail-logo-svg-vector.svg?v=1777314434&width=300 300w,
12350                            //fittes.ca/cdn/shop/files/daily-mail-logo-svg-vector.svg?v=1777314434&width=600 600w,
12351                            //fittes.ca/cdn/shop/files/daily-mail-logo-svg-vector.svg?v=1777314434&width=900 900w"
12352                    sizes="175px"
12353                    alt="Logo"
12354                    loading="lazy"
12355                    decoding="async"
12356                    width="2500"
12357                    height="2500"
12358                    style="transform: scale(1.35);"
12359                  ></span></div><div class="logo-item" aria-hidden="true" ><span class="logo-frame" style="padding: 0px 0;"><img
12360                    src="https://cdn.shopify.com/s/files/1/0117/1210/2462/files/3_84f39d07-f22f-4a48-92b6-84fcf28c9450.png?v=1743055839"
12361                    alt="Property Brothers"
12362                    loading="lazy"
12363                    decoding="async"
12364                    width="175"
12365                    height="64"
12366                    style="transform: scale(1.0);"
12367                  ></span></div><div class="logo-item" aria-hidden="true" ><span class="logo-frame" style="padding: 0px 0;"><img
12368                    src="https://cdn.shopify.com/s/files/1/0522/3373/2256/files/5_3caaaf72-f1e1-4a68-9945-f80a9435fcd8.png?v=1734362217"
12369                    alt="House &amp; Home"
12370                    loading="lazy"
12371                    decoding="async"
12372                    width="175"
12373                    height="64"
12374                    style="transform: scale(1.0);"
12375                  ></span></div><div class="logo-item" aria-hidden="true" ><span class="logo-frame" style="padding: 0px 0;"><img
12376                    src="https://cdn.shopify.com/s/files/1/0117/1210/2462/files/4_972b1bd4-cbf5-4cf5-b686-76c01f33c1d9_1.jpg?v=1749577926"
12377                    alt="Architectural Digest"
12378                    loading="lazy"
12379                    decoding="async"
12380                    width="175"
12381                    height="64"
12382                    style="transform: scale(1.0);"
12383                  ></span></div><div class="logo-item" aria-hidden="true" ><span class="logo-frame" style="padding: 0px 0;"><img
12384                    src="https://cdn.shopify.com/s/files/1/0522/3373/2256/files/6_331cb9bd-81dc-4026-8c91-5d028c2c036f.png?v=1734362217"
12385                    alt="Holmes 911"
12386                    loading="lazy"
12387                    decoding="async"
12388                    width="175"
12389                    height="64"
12390                    style="transform: scale(1.0);"
12391                  ></span></div><div class="logo-item" aria-hidden="true" ><span class="logo-frame" style="padding: 0px 0;"><img
12392                    src="https://cdn.shopify.com/s/files/1/0117/1210/2462/files/dwell-logo-png_seeklogo-482948.png?v=1752087956"
12393                    alt="Dwell"
12394                    loading="lazy"
12395                    decoding="async"
12396                    width="175"
12397                    height="64"
12398                    style="transform: scale(1.0);"
12399                  ></span></div><div class="logo-item" aria-hidden="true" ><span class="logo-frame" style="padding: 0px 0;"><img
12400                    src="https://cdn.shopify.com/s/files/1/0117/1210/2462/files/remodelista-logo.png?v=1752087951"
12401                    alt="Remodelista"
12402                    loading="lazy"
12403                    decoding="async"
12404                    width="175"
12405                    height="64"
12406                    style="transform: scale(1.0);"
12407                  ></span></div><div class="logo-item" aria-hidden="true" ><span class="logo-frame" style="padding: 0px 0;"><img
12408                    src="//fittes.ca/cdn/shop/files/daily-mail-logo-svg-vector.svg?v=1777314434&width=600"
12409                    srcset="//fittes.ca/cdn/shop/files/daily-mail-logo-svg-vector.svg?v=1777314434&width=300 300w,
12410                            //fittes.ca/cdn/shop/files/daily-mail-logo-svg-vector.svg?v=1777314434&width=600 600w,
12411                            //fittes.ca/cdn/shop/files/daily-mail-logo-svg-ve
12411ctor.svg?v=1777314434&width=900 900w"
12412                    sizes="175px"
12413                    alt="Logo"
12414                    loading="lazy"
12415                    decoding="async"
12416                    width="2500"
12417                    height="2500"
12418                    style="transform: scale(1.35);"
12419                  ></span></div><div class="logo-item" aria-hidden="true" ><span class="logo-frame" style="padding: 0px 0;"><img
12420                    src="https://cdn.shopify.com/s/files/1/0117/1210/2462/files/3_84f39d07-f22f-4a48-92b6-84fcf28c9450.png?v=1743055839"
12421                    alt="Property Brothers"
12422                    loading="lazy"
12423                    decoding="async"
12424                    width="175"
12425                    height="64"
12426                    style="transform: scale(1.0);"
12427                  ></span></div><div class="logo-item" aria-hidden="true" ><span class="logo-frame" style="padding: 0px 0;"><img
12428                    src="https://cdn.shopify.com/s/files/1/0522/3373/2256/files/5_3caaaf72-f1e1-4a68-9945-f80a9435fcd8.png?v=1734362217"
12429                    alt="House &amp; Home"
12430                    loading="lazy"
12431                    decoding="async"
12432                    width="175"
12433                    height="64"
12434                    style="transform: scale(1.0);"
12435                  ></span></div><div class="logo-item" aria-hidden="true" ><span class="logo-frame" style="padding: 0px 0;"><img
12436                    src="https://cdn.shopify.com/s/files/1/0117/1210/2462/files/4_972b1bd4-cbf5-4cf5-b686-76c01f33c1d9_1.jpg?v=1749577926"
12437                    alt="Architectural Digest"
12438                    loading="lazy"
12439                    decoding="async"
12440                    width="175"
12441                    height="64"
12442                    style="transform: scale(1.0);"
12443                  ></span></div><div class="logo-item" aria-hidden="true" ><span class="logo-frame" style="padding: 0px 0;"><img
12444                    src="https://cdn.shopify.com/s/files/1/0522/3373/2256/files/6_331cb9bd-81dc-4026-8c91-5d028c2c036f.png?v=1734362217"
12445                    alt="Holmes 911"
12446                    loading="lazy"
12447                    decoding="async"
12448                    width="175"
12449                    height="64"
12450                    style="transform: scale(1.0);"
12451                  ></span></div><div class="logo-item" aria-hidden="true" ><span class="logo-frame" style="padding: 0px 0;"><img
12452                    src="https://cdn.shopify.com/s/files/1/0117/1210/2462/files/dwell-logo-png_seeklogo-482948.png?v=1752087956"
12453                    alt="Dwell"
12454                    loading="lazy"
12455                    decoding="async"
12456                    width="175"
12457                    height="64"
12458                    style="transform: scale(1.0);"
12459                  ></span></div><div class="logo-item" aria-hidden="true" ><span class="logo-frame" style="padding: 0px 0;"><img
12460                    src="https://cdn.shopify.com/s/files/1/0117/1210/2462/files/remodelista-logo.png?v=1752087951"
12461                    alt="Remodelista"
12462                    loading="lazy"
12463                    decoding="async"
12464                    width="175"
12465                    height="64"
12466                    style="transform: scale(1.0);"
12467                  ></span></div></div>
12468      </div>
12469    </div></div>
12470
12471<style data-shopify>
12472  #as-seen-on-template--28630587998578__as_ohomepage_yifhLp {
12473    --aso-logo-width-desktop: 175px;
12474    --aso-logo-width-tablet: 130px;
12475    --aso-logo-width-mobile: 145px;
12476    --aso-logo-count: 7;
12477    --aso-scroll-duration: 14s;
12478    --aso-underline-color: #d32f2f;
12479    --aso-title-color: #000000;
12480
12481    /* ===== PADDING LADDER — identical to Seamless Spaces / Reviews Carousel,
12482       so all three section headings share one left edge down the page ===== */
12483    --content-padding: 20px;
12484
12485    /* Full bleed. max-width lives on the inner boxes below so this 
12485section's
12486       box model is identical to Seamless Spaces and Reviews, where the
12487       constrained element is also the one carrying --content-padding. */
12488    width: 100%;
12489    margin: 20px auto 20px;
12490    padding: 0;
12491    box-sizing: border-box;
12492  }
12493
12494  @media (min-width: 750px) {
12495    #as-seen-on-template--28630587998578__as_ohomepage_yifhLp {
12496      --content-padding: calc(2.5rem + 30px);
12497    }
12498  }
12499  @media (min-width: 990px) {
12500    #as-seen-on-template--28630587998578__as_ohomepage_yifhLp {
12501      --content-padding: calc(2.5rem + 40px);
12502    }
12503  }
12504  @media (min-width: 1200px) {
12505    #as-seen-on-template--28630587998578__as_ohomepage_yifhLp {
12506      --content-padding: calc(2.5rem + 50px);
12507    }
12508  }
12509
12510  /* ===== TITLE BLOCK ===== */
12511  #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .as-seen-on-title-wrapper {
12512    max-width: 1420px;
12513    margin: 0 auto 20px;
12514    padding-left: var(--content-padding);
12515    padding-right: var(--content-padding);
12516    box-sizing: border-box;
12517  }
12518
12519  @media (min-width: 750px) {
12520    #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .as-seen-on-title-wrapper {
12521      margin-bottom: 40px;
12522    }
12523  }
12524
12525  #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .as-seen-on-title-wrapper--center {
12526    text-align: center;
12527  }
12528
12529  #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .as-seen-on-eyebrow {
12530    font-size: 1.2rem;
12531    font-weight: 500;
12532    letter-spacing: 0.08em;
12533    text-transform: uppercase;
12534    color: #f73308;
12535    margin: 0;
12536  }
12537
12538  /* No font-family, no font-size, no font-weight: the .h1 class and the
12539     theme's heading settings govern all three, exactly as they do in the
12540     Seamless Spaces and Reviews sections. */
12541  #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .as-seen-on-title-inner {
12542    margin: 10px 0 0;
12543    letter-spacing: -0.01em;
12544    position: relative;
12545    display: inline-block;
12546    font-size: calc(var(--font-heading-scale, 1) * 3.2rem);
12547    color: var(--aso-title-color);
12548  }
12549
12550  @media (min-width: 750px) {
12551    #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .as-seen-on-title-inner {
12552      margin-top: 20px;
12553      font-size: calc(var(--font-heading-scale, 1) * 4.0rem);
12554    }
12555  }
12556
12557  #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .as-seen-on-intro {
12558    margin: 12px 0 0;
12559    max-width: 62ch;
12560    font-size: 1.5rem;
12561    line-height: 1.5;
12562    opacity: 0.85;
12563  }
12564
12565  #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .as-seen-on-title-wrapper--center .as-seen-on-intro {
12566    margin-left: auto;
12567    margin-right: auto;
12568  }
12569
12570  @media (min-width: 750px) {
12571    #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .as-seen-on-intro {
12572      font-size: 1.6rem;
12573    }
12574  }#as-seen-on-template--28630587998578__as_ohomepage_yifhLp .as-seen-on-title-inner::after {
12575    content: "";
12576    position: absolute;
12577    bottom: -5px;
12578    left: 0;
12579    width: 56px;
12580    height: 3px;
12581    background: var(--aso-underline-color);
12582  }
12583
12584  #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .as-seen-on-title-wrapper--center .as-seen-on-title-inner::after {
12585    left: 35%;
12586    width: 30%;
12587  }/* ===== CAROUSEL ===== */
12588  /* IMPORTANT: overflow clips at the PADDING edge, not the content edge, so
12589     padding and overflow:hidden cannot live on the same element — the logos
12590     would render straight through the padding and cut off at the outer edge.
12591     The wrapper holds the gutters; the viewport inside it does the clipping,
12592     so the cut-off lands on exactly the same line as the card edges in the
12593     Seamless Spaces and Reviews sections at every breakpoint. */
12594  #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .carousel-wrapper {
12595    position: relative;
12596    width: 100%;
12597    max-width: 1420px;
12598    margin: 0 auto;
12599    padding: 0 calc(var(--content-padding) + 0px);
12600    box-sizing: border-box;
12601  }
12602
12603  #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .carousel-viewport {
12604    overflow: hidden;
12605    position: relative;
12606    width: 100%;
12607  }
12608
12609  #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .carousel-track {
12610    display: flex;
12611    width: max-content;
12612    animation: aso-scroll-template--28630587998578__as_ohomepage_yifhLp var(--aso-scroll-duration) linear infinite;
12613  }
12614
12615  @keyframes aso-scroll-template--28630587998578__as_ohomepage_yifhLp {
12616    0%   { transform: translateX(0); }
12617    100% { transform: translateX(calc(-1 * var(--aso-logo-width-desktop) * var(--aso-logo-count))); }
12618  }
12619
12620  #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .logo-item {
12621    flex: 0 0 auto;
12622    width: var(--aso-logo-width-desktop);
12623    display: flex;
12624    justify-content: center;
12625    align-items: center;
12626    padding: 0 10px;
12627    box-sizing: border-box;
12628  }
12629
12630  #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .logo-item a {
12631    display: flex;
12632    justify-content: center;
12633    align-items: center;
12634    width: 100%;
12635    height: 100%;
12636  }
12637
12638  #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .logo-frame {
12639    display: flex;
12640    justify-content: center;
12641    align-items: center;
12642    width: 100%;
12643    height: 64px;
12644    box-sizing: border-box;
12645    overflow: hidden;
12646  }
12647
12648  /* width/height attributes on the <img> reserve layout space before the
12649     bitmap arrives. These auto rules mean the FINAL rendered size is still
12650     driven by the intrinsic image dimensions clamped to the frame, so adding
12651     the attributes cannot distort or resize any logo. */
12652  #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .logo-item img {
12653    max-width: 100%;
12654    max-height: 100%;
12655    width: auto;
12656    height: auto;
12657    object-fit: contain;
12658    transform-origin: center center;
12659    image-rendering: -webkit-optimize-contrast;
12660  }
12661
12662  /* Placeholder shown only in the theme editor when a block has no image
12663     and no fallback URL. Explicitly sized so it does not reflow either. */
12664  #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .logo-frame .placeholder-svg {
12665    width: 100%;
12666    height: 100%;
12667    max-width: 100%;
12668    max-height: 100%;
12669    display: block;
12670  }#as-seen-on-template--28630587998578__as_ohomepage_yifhLp .carousel-viewport:hover .carousel-track {
12671    animation-play-state: paused;
12672  }@media (prefers-reduced-motion: reduce) {
12673    #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .carousel-track {
12674      animation: none;
12675    }
12676  }
12677
12678  @media (max-width: 991px) {
12679    #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .carousel-track {
12680      animation-name: aso-scroll-tablet-template--28630587998578__as_ohomepage_yifhLp;
12681    }
12682    #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .logo-item {
12683      width: var(--aso-logo-width-tablet);
12684      padding: 0 8px;
12685    }
12686    #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .logo-frame {
12687      height: 44px;
12688    }
12689  }
12690
12691  @keyframes aso-scroll-tablet-template--28630587998578__as_ohomepage_yifhLp {
12692    0%   { transform: translateX(0); }
12693    100% { transform: translateX(calc(-1 * var(--aso-logo-width-tablet) * var(--aso-logo-count))); }
12694  }
12695
12696  @media (max-width: 768px) {
12697    #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .logo-frame {
12698      height: 64px;
12699    }
12700  }
12701
12702  @media (max-width: 480px) {
12703    #as-seen-on-template--28630587998578__as_ohomepage_yifhLp {
12704      margin: 15px auto;
12705      width: 100%;
12706    }
12707    #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .as-seen-on-title-wrapper {
12708      margin-bottom: 20px;
12709    }
12710    #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .carousel-track {
12711      animation-name: aso-scroll-mobile-template--28630587998578__as_ohomepage_yifhLp;
12712    }
12713    #as-seen-on-template--28630587998578__as_ohomepage_yifhLp .logo-item {
12714      width: var(--aso-logo-width-mobile);
12715    }
12716  }
12717
12718  @keyframes aso-scroll-mobile-template--28630587998578__as_ohomepage_yifhLp {
12719    0%   { transform: translateX(0); }
12720    100% { transform: translateX(calc(-1 * var(--aso-logo-width-mobile) * var(--aso-logo-count))); }
12721  }
12722</style>
12723
12724</section><section id="shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3" class="shopify-section section"><style data-shopify>/* ========== SHARED PADDING LADDER ========== */
12725  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 {
12726    --content-padding: 20px;
12727    --slide-gap: 20px;
12728    --nav-offset: 10px;
12729    --card-radius: 0px;
12730    --eyebrow-color: #e73c3e;
12731    --star-color: #e73c3e;
12732    --meta-color: #8a8a8a;
12733  }
12734  @media (min-width: 750px) {
12735    #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 {
12736      --content-padding: calc(2.5rem + 30px);
12737      --slide-gap: 33px;
12738      --nav-offset: 15px;
12739    }
12740  }
12741  @media (min-width: 990px) {
12742    #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 { --content-padding: calc(2.5rem + 40px); }
12743  }
12744  @media (min-width: 1200px) {
12745    #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 { --content-padding: calc(2.5rem + 50px); }
12746  }
12747
12748  .reviews-template--28630587998578__seamless_spaces_reviews_reKBU3-padding {
12749    padding-top: 27px;
12750    padding-bottom: 27px;
12751  }
12752  @media (min-width: 750px) {
12753    .reviews-template--28630587998578__seamless_spaces_reviews_reKBU3-padding {
12754      padding-top: 36px;
12755      padding-bottom: 36px;
12756    }
12757  }
12758
12759  /* ========== HEADER ========== */
12760  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__header {
12761    max-width: 1420px;
12762    margin: 0 auto 20px;
12763    padding-left: var(--content-padding);
12764    padding-right: var(--content-padding);
12765    box-sizing: border-box;
12766  }
12767
12768  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__eyebrow {
12769    font-size: 1.2rem;
12770    font-weight: 500;
12771    letter-spacing: 0.08em;
12772    text-transform: uppercase;
12773    color: var(--eyebrow-color);
12774    margin: 0;
12775  }
12776
12777  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__title {
12778    margin: 10px 0 0;
12779    letter-spacing: -0.01em;
12780    font-size: calc(var(--font-heading-scale, 1) * 3.2rem);
12781  }
12782
12783  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__intro {
12784    margin: 12px 0 0;
12785    max-width: 62ch;
12786    font-size: 1.5rem;
12787    line-height: 1.5;
12788    opacity: 0.85;
12789  }
12790
12791  @media (min-width: 750px) {
12792    #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__header { margin-bottom: 40px; }
12793    #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__title {
12794      margin-top: 20px;
12795      font-size: calc(var(--font-heading-scale, 1) * 4.0rem);
12796    }
12797    #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__intro { font-size: 1.6rem; }
12798  }
12799
12800  /* ========== CAROUSEL SHELL ========== */
12801  /* The right gutter lives on the viewport, not on the scroller. A scroll
12802     container's padding is part of its scrollport, so a right padding on the
12803     track would render the next card inside it — that was the sliver of card
12804     five visible on wide screens. With the gutter here, anything past the
12805     track's content edge is clipped by overflow-x. */
12806  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__viewport {
12807    position: relative;
12808    max-width: 1420px;
12809    margin: 0 auto;
12810    padding-right: var(--content-padding);
12811    box-sizing: border-box;
12812  }
12813
12814  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__track {
12815    display: flex;
12816    align-items: stretch;
12817    list-style: none;
12818    margin: 0;
12819    gap: var(--slide-gap);
12820    overflow-x: auto;
12821    overflow-y: hidden;
12822    box-sizing: border-box;
12823    padding-left: var(--content-padding);
12824    padding-right: 0;
12825    padding-bottom: 6px;
12826    scroll-snap-type: x mandatory;
12827    scroll-padding-left: var(--content-padding);
12828    scroll-behavior: smooth;
12829    -webkit-overflow-scrolling: touch;
12830    scrollbar-width: none;
12831    -ms-overflow-style: none;
12832  }
12833
12834  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__track::-webkit-scrollbar { display: none; }
12835
12836  @media (prefers-reduced-motion: reduce) {
12837    #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__track { scroll-behavior: auto; }
12838  }
12839
12840  /* ========== CARD ========== */
12841  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__card {
12842    flex: 0 0 auto;
12843    box-sizing: border-box;
12844    scroll-snap-align: start;
12845    position: relative;
12846    width: calc((100% - var(--slide-gap)) / 1.25);
12847    margin: 0;
12848    display: flex;
12849    flex-direction: column;
12850    background: rgba(0,0,0,0);
12851  }
12852
12853  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__card > article {
12854    display: flex;
12855    flex-direction: column;
12856    height: 100%;
12857  }
12858
12859  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__card:has(.reviews__card-link) {
12860    cursor: pointer;
12861  }
12862
12863  @media (min-width: 600px) {
12864    #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__card { width: calc((100% - var(--slide-gap)) / 1.9); }
12865  }
12866  @media (min-width: 750px) {
12867    #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__card { width: calc((100% - (var(--slide-gap) * 2)) / 2.5); }
12868  }
12869  @media (min-width: 990px) {
12870    #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__card { width: calc((100% - (var(--slide-gap) * 2)) / 3); }
12871  }
12872  @media (min-width: 1200px) {
12873    #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__card { width: calc((100% - (var(--slide-gap) * 3)) / 4); }
12874  }
12875
12876  /* ========== IMAGE ========== */
12877  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__media {
12878    display: block;
12879    width: 100%;
12880    overflow: hidden;
12881    border-radius: var(--card-radius);
12882    background: rgba(var(--color-foreground), 0.04);
12883    aspect-ratio: 3 / 4;
12884  }
12885
12886  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__media img,
12887  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__media svg {
12888    width: 100%;
12889    height: 100%;
12890    object-fit: cover;
12891    display: block;
12892    transition: transform 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
12893  }
12894
12895  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__card:hover .reviews__media img {
12896    transform: scale(1.03);
12897  }
12898
12899  @media (prefers-reduced-motion: reduce) {
12900    #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__media img { transition: none; }
12901    #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__card:hover .reviews__media img { transform: none; }
12902  }
12903
12904  /* ========== BODY ========== */
12905  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__body {
12906    padding-top: 14px;
12907    display: flex;
12908    flex-direction: column;
12909    flex: 1 1 auto;
12910  }
12911
12912  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__product {
12913    margin: 0 0 8px;
12914    font-size: 1.3rem;
12915    line-height: 1.35;
12916    color: var(--meta-color);
12917    letter-spacing: 0.01em;
12918  }
12919
12920  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__stars {
12921    display: inline-flex;
12922    gap: 3px;
12923    margin-bottom: 10px;
12924    color: var(--star-color);
12925  }
12926
12927  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__stars svg {
12928    width: 15px;
12929    height: 15px;
12930    display: block;
12931  }
12932
12933  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__stars .is-empty { opacity: 0.22; }
12934
12935  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__headline {
12936    margin: 0 0 8px;
12937    font-size: 1.6rem;
12938    line-height: 1.3;
12939    letter-spacing: -0.01em;
12940  }
12941
12942  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__quote {
12943    margin: 0;
12944    padding: 0;
12945    border: 0;
12946    quotes: none;
12947  }
12948
12949  /* ---- Line clamp ----
12950     Clipped, not hidden. The full text remains in the DOM and in innerText,
12951     so crawlers and answer engines read the whole review. */
12952  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__quote p {
12953    margin: 0;
12954    font-size: 1.5rem;
12955    line-height: 1.6;
12956    opacity: 0.85;
12957    display: -webkit-box;
12958    -webkit-box-orient: vertical;
12959    -webkit-line-clamp: 4;
12960    line-clamp: 4;
12961    overflow: hidden;
12962  }
12963
12964  @media (min-width: 750px) {
12965    #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__headline { font-size: 1.8rem; }
12966    #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__quote p { font-size: 1.6rem; }
12967  }
12968
12969  /* Expanded state */
12970  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__expand:checked ~ .reviews__quote p {
12971    -webkit-line-clamp: unset;
12972    line-clamp: unset;
12973    display: block;
12974    overflow: visible;
12975  }
12976
12977  /* The checkbox itself: off-screen but operable, never display:none */
12978  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__expand {
12979    position: absolute;
12980    width: 1px;
12981    height: 1px;
12982    margin: 0;
12983    padding: 0;
12984    border: 0;
12985    clip: rect(0 0 0 0);
12986    clip-path: inset(50%);
12987    overflow: hidden;
12988    white-space: nowrap;
12989  }
12990
12991  /* ---- See more / See less control ----
12992     z-index lifts it above the full-card link overlay so the click toggles
12993     the quote instead of navigating to the product page. */
12994  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__more {
12995    position: relative;
12996    z-index: 2;
12997    align-self: flex-start;
12998    margin-top: 8px;
12999    padding: 2px 0;
13000    font-size: 1.3rem;
13001    line-height: 1.4;
13002    color: inherit;
13003    cursor: pointer;
13004    text-decoration: underline;
13005    text-underline-offset: 0.25em;
13006    text-decoration-thickness: 1px;
13007    opacity: 0.75;
13008    transition: opacity 0.2s ease;
13009  }
13010
13011  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__more:hover { opacity: 1; }
13012
13013  /* Label text swaps with state */
13014  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__more .is-less { display: none; }
13015  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__expand:checked ~ .reviews__more .is-more { display: none; }
13016  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__expand:checked ~ .reviews__more .is-less { display: inline; }
13017
13018  /* Set by JS on cards whose text fits within the clamp */
13019  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__more[hidden] { display: none; }
13020
13021  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__expand:focus-visible ~ .reviews__more {
13022    outline: 2px solid currentColor;
13023    outline-offset: 3px;
13024    opacity: 1;
13025  }
13026
13027  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__verified {
13028    display: inline-flex;
13029    align-items: center;
13030    gap: 5px;
13031    margin-top: auto;
13032    padding-top: 14px;
13033    font-size: 1.1rem;
13034    letter-spacing: 0.05em;
13035    text-transform: uppercase;
13036    color: var(--meta-color);
13037  }
13038
13039  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__verified svg {
13040    width: 12px;
13041    height: 12px;
13042    flex-shrink: 0;
13043  }
13044
13045  /* ========== WHOLE-CARD CLICK TARGET ==========
13046     One <a> per card wrapping the product name, so the internal anchor text
13047     is the product being reviewed. Its ::after overlay covers the card. */
13048  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__card-link {
13049    color: inherit;
13050    text-decoration: none;
13051  }
13052
13053  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__card-link::after {
13054    content: "";
13055    position: absolute;
13056    inset: 0;
13057    z-index: 1;
13058  }
13059
13060  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__card:hover .reviews__card-link {
13061    text-decoration: underline;
13062    text-underline-offset: 0.2em;
13063    text-decoration-thickness: 1px;
13064  }
13065
13066  /* Keyboard focus only. :focus-within also fires on mouse clicks, which put
13067     an outline on the card whenever See more or See less was pressed and left
13068     it there until the next click elsewhere. :has(:focus-visible) restricts
13069     the ring to keyboard navigation. */
13070  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__card:has(:focus-visible) {
13071    outline: 2px solid currentColor;
13072    outline-offset: 4px;
13073  }
13074
13075  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__card-link:focus { outline: none; }
13076
13077  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__track:focus-visible {
13078    outline: 2px solid currentColor;
13079    outline-offset: 2px;
13080  }
13081
13082  /* ========== NAVIGATION ========== */
13083  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__nav {
13084    width: 50px;
13085    height: 50px;
13086    background: #fff;
13087    border: 0;
13088    padding: 0;
13089    border-radius: 50px;
13090    opacity: 0.7;
13091    transition: opacity 0.3s;
13092    top: 30%;
13093    box-shadow: 0px 7px 20px rgba(0, 0, 0, 0.06);
13094    z-index: 10;
13095    position: absolute;
13096    cursor: pointer;
13097    display: none;
13098    align-items: center;
13099    justify-content: center;
13100    font-family: inherit;
13101  }
13102
13103  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__nav:hover { opacity: 1; }
13104
13105  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__nav[disabled] {
13106    opacity: 0 !important;
13107    pointer-events: none;
13108    visibility: hidden;
13109  }
13110
13111  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__nav--prev { left
13111: calc(var(--content-padding) - 60px); }
13112  #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__nav--next { right: calc(var(--content-padding) - 60px); }
13113
13114  @media (min-width: 750px) {
13115    #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__nav { display: flex; }
13116  }
13117
13118  @media (min-width: 1500px) {
13119    #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__nav--prev { left: calc(var(--content-padding) - 70px); }
13120    #shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3 .reviews__nav--next { right: calc(var(--content-padding) - 70px); }
13121  }</style><svg width="0" height="0" style="position:absolute" aria-hidden="true" focusable="false">
13122  <symbol id="reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3" viewBox="0 0 24 24">
13123    <path fill="currentColor" d="M12 1.6l3.09 6.9 7.41.72-5.55 5.02 1.6 7.36L12 17.9l-6.55 3.7 1.6-7.36L1.5 9.22l7.41-.72L12 1.6z"/>
13124  </symbol>
13125  <symbol id="reviews-check-template--28630587998578__seamless_spaces_reviews_reKBU3" viewBox="0 0 24 24">
13126    <path fill="currentColor" d="M12 1a11 11 0 1 0 0 22 11 11 0 0 0 0-22zm5.2 8.3l-6.1 6.1a1 1 0 0 1-1.42 0L6.8 12.5a1 1 0 1 1 1.4-1.4l2.2 2.16 5.4-5.4a1 1 0 0 1 1.4 1.44z"/>
13127  </symbol>
13128</svg>
13129
13130<div class="color-scheme-1 gradient isolate">
13131  <div class="reviews-template--28630587998578__seamless_spaces_reviews_reKBU3-padding">
13132    <section class="reviews" aria-labelledby="reviews-title-template--28630587998578__seamless_spaces_reviews_reKBU3">
13133      <header class="reviews__header"><p class="reviews__eyebrow">Reviews</p><h2 id="reviews-title-template--28630587998578__seamless_spaces_reviews_reKBU3" class="reviews__title h1">
13134          What homeowners and contractors say
13135        </h2><p class="reviews__intro">Verified reviews from homeowners, designers and trade professionals who have installed Fittes registers, air returns, exhaust covers and access panels.</p></header>
13136
13137      <div class="reviews__viewport">
13138        <button type="button" class="reviews__nav reviews__nav--prev" data-reviews-prev aria-label="Previous reviews" disabled>
13139          <svg xmlns="http://www.w3.org/2000/svg" width="27" height="27" viewBox="0 0 27 27" fill="none" aria-hidden="true" focusable="false">
13140            <path d="M22.1953 13.9355H4.98519M4.98519 13.9355C4.98519 13.9355 9.86348 10.7272 10.8548 8.06592M4.98519 13.9355C4.98519 13.9355 9.29778 16.95 10.8548 19.805" stroke="#1E1E1E" stroke-width="2.17391" stroke-linecap="square"/>
13141          </svg>
13142        </button>
13143
13144        <ul class="reviews__track" data-reviews-track role="list" tabindex="0" aria-label="What homeowners and contractors say"><li class="reviews__card" >
13145              <article>
13146                <span class="reviews__media"><img src="//fittes.ca/cdn/shop/files/Luxe_Vent_FAQ_267b84c8-3a3d-4d77-8502-8423407e558a.webp?v=1785942315&amp;width=1200" alt="Luxe-Wall-Vent-White-Living" srcset="//fittes.ca/cdn/shop/files/Luxe_Vent_FAQ_267b84c8-3a3d-4d77-8502-8423407e558a.webp?v=1785942315&amp;width=360 360w, //fittes.ca/cdn/shop/files/Luxe_Vent_FAQ_267b84c8-3a3d-4d77-8502-8423407e558a.webp?v=1785942315&amp;width=480 480w, //fittes.ca/cdn/shop/files/Luxe_Vent_FAQ_267b84c8-3a3d-4d77-8502-8423407e558a.webp?v=1785942315&amp;width=640 640w, //fittes.ca/cdn/shop/files/Luxe_Vent_FAQ_267b84c8-3a3d-4d77-8502-8423407e558a.webp?v=1785942315&amp;width=800 800w, //fittes.ca/cdn/shop/files/Luxe_Vent_FAQ_267b84c8-3a3d-4d77-8502-8423407e558a.webp?v=1785942315&amp;width=1000 1000w, //fittes.ca/cdn/shop/files/Luxe_Vent_FAQ_267b84c8-3a3d-4d77-8502-8423407e558a.webp?v=1785942315&amp;width=1200 1200w" width="1200" height="1200" loading="eager" fetchpriority="high" sizes="(min-width: 1200px) 340px, (min-width: 990px) 31vw, (min-width: 750px) 38vw, 76vw">
13147</span>
13148
13149                <div class="reviews__body"><p class="reviews__product"><a class="reviews__card-link" href="/products/flush-wall-vent-luxe">Flush Wall Vent [Luxe]</a></p><div class="reviews__stars" role="img" aria-label="Rated 5 out of 5 stars"><svg class="" aria-hidden="true" focusable="false">
13150                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13151                      </svg><svg class="" aria-hidden="true" focusable="false">
13152                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13153                      </svg><svg class="" aria-hidden="true" focusable="false">
13154                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13155                      </svg><svg class="" aria-hidden="true" focusable="false">
13156                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13157                      </svg><svg class="" aria-hidden="true" focusable="false">
13158                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13159                      </svg></div><h3 class="reviews__headline">"Smooth Operator"</h3><input
13160                    type="checkbox"
13161                    class="reviews__expand"
13162                    id="review-expand-template--28630587998578__seamless_spaces_reviews_reKBU3-1"
13163                    aria-label="Show the full review"
13164                  >
13165
13166                  <blockquote class="reviews__quote">
13167                    <p data-review-text>"Just installed Luxe, Flush Wall Vents in my clients home and I love the look! The flush design is perfect for a clean install and the ability to paint them, keeps the transitions looking clean. The installer
13167s were even commenting how easy they were to mud in and want them for their own homes. I will be using these as my new 'standard' in all my interior design projects!"</p>
13168                  </blockquote>
13169
13170                  <label class="reviews__more" for="review-expand-template--28630587998578__seamless_spaces_reviews_reKBU3-1" data-review-more>
13171                    <span class="is-more">See more</span>
13172                    <span class="is-less">See less</span>
13173                  </label>
13174
13175                  <span class="reviews__verified">
13176                    <svg aria-hidden="true" focusable="false"><use href="#reviews-check-template--28630587998578__seamless_spaces_reviews_reKBU3"></use></svg>
13177                    Verified Purchaser
13178                  </span>
13179                </div>
13180              </article>
13181            </li><li class="reviews__card" >
13182              <article>
13183                <span class="reviews__media"><img src="//fittes.ca/cdn/shop/files/Bathroom-exhaust-vent-seamless.webp?v=1785942387&amp;width=1200" alt="Bathroom-exhaust-vent-shower-niche-modern" srcset="//fittes.ca/cdn/shop/files/Bathroom-exhaust-vent-seamless.webp?v=1785942387&amp;width=360 360w, //fittes.ca/cdn/shop/files/Bathroom-exhaust-vent-seamless.webp?v=1785942387&amp;width=480 480w, //fittes.ca/cdn/shop/files/Bathroom-exhaust-vent-seamless.webp?v=1785942387&amp;width=640 640w, //fittes.ca/cdn/shop/files/Bathroom-exhaust-vent-seamless.webp?v=1785942387&amp;width=800 800w, //fittes.ca/cdn/shop/files/Bathroom-exhaust-vent-seamless.webp?v=1785942387&amp;width=1000 1000w, //fittes.ca/cdn/shop/files/Bathroom-exhaust-vent-seamless.webp?v=1785942387&amp;width=1200 1200w" width="1200" height="1308" loading="eager" fetchpriority="high" sizes="(min-width: 1200px) 340px, (min-width: 990px) 31vw, (min-width: 750px) 38vw, 76vw">
13184</span>
13185
13186                <div class="reviews__body"><p class="reviews__product"><a class="reviews__card-link" href="/products/flush-exhaust-mount-lite">Flush Exhaust Mount [Lite]</a></p><div class="reviews__stars" role="img" aria-label="Rated 5 out of 5 stars"><svg class="" aria-hidden="true" focusable="false">
13187                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13188                      </svg><svg class="" aria-hidden="true" focusable="false">
13189                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13190                      </svg><svg class="" aria-hidden="true" focusable="false">
13191                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13192                      </svg><svg class="" aria-hidden="true" focusable="false">
13193                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13194                      </svg><svg class="" aria-hidden="true" focusable="false">
13195                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13196                      </svg></div><h3 class="reviews__headline">"No more ugly plastic grate"</h3><input
13197                    type="checkbox"
13198                    class="reviews__expand"
13199                    id="review-expand-template--28630587998578__seamless_spaces_reviews_reKBU3-2"
13200                    aria-label="Show the full review"
13201                  >
13202
13203                  <blockquote class="reviews__quote">
13204                    <p data-review-text>"Can't believe no one has thought of this until now. As a designer I'm always looking to remove unsightly necessities. No more looking up at that ugly/plastic grate. I will be recommending these in every bathroom in the future. Really is a no brainer!"</p>
13205                  </blockquote>
13206
13207                  <label class="reviews__more" for="review-expand-template--28630587998578__seamless_spaces_reviews_reKBU3-2" data-review-more>
13208                    <span class="is-more">See more</span>
13209                    <span class="is-less">See less</span>
13210                  </label>
13211
13212                  <span class="reviews__verified">
13213                    <svg aria-hidden="true" focusable="false"><use href="#reviews-check-template--28630587998578__seamless_spaces_reviews_reKBU3"></use></svg>
13214                    Verified Purchaser
13215                  </span>
13216                </div>
13217              </article>
13218            </li><li class="reviews__card" >
13219              <article>
13220                <span class="reviews__media"><img src="//fittes.ca/cdn/shop/files/1-FlushFloorVent_Lite__Lifestyle1.jpg?v=1754022184&amp;width=1200" alt="Flush Floor Vent [Lite]" srcset="//fittes.ca/cdn/shop/files/1-FlushFloorVent_Lite__Lifestyle1.jpg?v=1754022184&amp;width=360 360w, //fittes.ca/cdn/shop/files/1-FlushFloorVent_Lite__Lifestyle1.jpg?v=1754022184&amp;width=480 480w, //fittes.ca/cdn/shop/files/1-FlushFloorVent_Lite__Lifestyle1.jpg?v=1754022184&amp;width=640 640w, //fittes.ca/cdn/shop/files/1-FlushFloorVent_Lite__Lifestyle1.jpg?v=1754022184&amp;width=800 800w, //fittes.ca/cdn/shop/files/1-FlushFloorVent_Lite__Lifestyle1.jpg?v=1754022184&amp;width=1000 1000w, //fittes.ca/cdn/shop/files/1-FlushFloorVent_Lite__Lifestyle1.jpg?v=1754022184&amp;width=1200 1200w" width="1200" height="1200" loading="lazy" sizes="(min-width: 1200px) 340px, (min-width: 990px) 31vw, (min-width: 750px) 38vw, 76vw">
13221</span>
13222
13223                <div class="reviews__body"><p class="reviews__product"><a class="reviews__card-link" href="/products/flush-floor-vent-lite">Flush Floor Vent [Lite]</a></p><div class="reviews__stars" role="img" aria-label="Rated 5 out of 5 stars"><svg class="" aria-hidden="true" focusable="false">
13224                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13225                      </svg><svg class="" aria-hidden="true" focusable="false">
13226                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13227                      </svg><svg class="" aria-hidden="true" focusable="false">
13228                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13229                      </svg><svg class="" aria-hidden="true" focusable="false">
13230                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13231                      </svg><svg class="" aria-hidden="true" focusable="false">
13232                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13233                      </svg></div><h3 class="reviews__headline">"The way vents should be!"</h3><input
13234                    type="checkbox"
13235                    class="reviews__expand"
13236                    id="review-expand-template--28630587998578__seamless_spaces_reviews_reKBU3-3"
13237                    aria-label="Show the full review"
13238                  >
13239
13240                  <blockquote class="reviews__quote">
13241                    <p data-review-text>"I am a contractor and recently purchased a Fittes vent to upgrade the finish of a bathroom remodel. Not only was I impressed by the quality and look of the vent, my clients loved it. Fittes vents will be my go to moving forward. Keep up the great work."</p>
13242                  </blockquote>
13243
13244                  <label class="reviews__more" for="review-expand-template--28630587998578__seamless_spaces_reviews_reKBU3-3" data-review-more>
13245                    <span class="is-more">See more</span>
13246                    <span class="is-less">See less</span>
13247                  </label>
13248
13249                  <span class="reviews__verified">
13250                    <svg aria-hidden="true" focusable="false"><use href="#reviews-check-template--28630587998578__seamless_spaces_reviews_reKBU3"></use></svg>
13251                    Verified Purchaser
13252                  </span>
13253                </div>
13254              </article>
13255            </li><li class="reviews__card" >
13256              <article>
13257                <span class="reviews__media"><img src="//fittes.ca/cdn/shop/files/Before_After_Ads_Alt1_Story_Your_Story.webp?v=1785942526&amp;width=1200" alt="Flush-Luxe-vent-pink-wall-paper" srcset="//fittes.ca/cdn/shop/files/Before_After_Ads_Alt1_Story_Your_Story.webp?v=1785942526&amp;width=360 360w, //fittes.ca/cdn/shop/files/Before_After_Ads_Alt1_Story_Your_Story.webp?v=1785942526&amp;width=480 480w, //fittes.ca/cdn/shop/files/Before_After_Ads_Alt1_Story_Your_Story.webp?v=1785942526&amp;width=640 640w, //fittes.ca/cdn/shop/files/Before_After_Ads_Alt1_Story_Your_Story.webp?v=1785942526&amp;width=800 800w, //fittes.ca/cdn/shop/files/Before_After_Ads_Alt1_Story_Your_Story.webp?v=1785942526&amp;width=1000 1000w, //fittes.ca/cdn/shop/files/Before_After_Ads_Alt1_Story_Your_Story.webp?v=1785942526&amp;width=1200 1200w" width="1200" height="1100" loading="lazy" fetchpriority="auto" sizes="(min-width: 1200px) 340px, (min-width: 990px) 31vw, (min-width: 750px) 38vw, 76vw">
13258</span>
13259
13260                <div class="reviews__body"><p class="reviews__product"><a class="reviews__card-link" href="/products/flush-wall-vent-luxe">Flush Wall Vent [Luxe]</a></p><div class="reviews__stars" role="img" aria-label="Rated 5 out of 5 stars"><svg class="" aria-hidden="true" focusable="false">
13261                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13262                      </svg><svg class="" aria-hidden="true" focusable="false">
13263                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13264                      </svg><svg class="" aria-hidden="true" focusable="false">
13265                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13266                      </svg><svg class="" aria-hidden="true" focusable="false">
13267                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13268                      </svg><svg class="" aria-hidden="true" focusable="false">
13269                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13270                      </svg></div><h3 class="reviews__headline">"Makes a room"</h3><input
13271                    type="checkbox"
13272                    class="reviews__expand"
13273                    id="review-expand-template--28630587998578__seamless_spaces_reviews_reKBU3-4"
13274                    aria-label="Show the full review"
13275                  >
13276
13277                  <blockquote class="reviews__quote">
13278                    <p data-review-text>"i got the large size to replace 2 ugly duct access vents. They turned an eyesore in the room to a feature of the room. They are now a conversation piece when we have guests. Such a simple idea that has so much impact on the design of a space."</p>
13279                  </blockquote>
13280
13281                  <label class="reviews__more" for="review-expand-template--28630587998578__seamless_spaces_reviews_reKBU3-4" data-review-more>
13282                    <span class="is-more">See more</span>
13283                    <span class="is-less">See less</span>
13284                  </label>
13285
13286                  <span class="reviews__verified">
13287                    <svg aria-hidden="true" focusable="false"><use href="#reviews-check-template--28630587998578__seamless_spaces_reviews_reKBU3"></use></svg>
13288                    Verified Purchaser
13289                  </span>
13290                </div>
13291              </article>
13292            </li><li class="reviews__card" >
13293              <article>
13294                <span class="reviews__media"><img src="//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1_6280502d-1316-455e-9940-c2e36e6eaa37.jpg?v=1754022061&amp;width=1200" alt="Flush-Wall-Vent-Lite-Plus-White-Room-Modern" srcset="//fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1_6280502d-1316-455e-9940-c2e36e6eaa37.jpg?v=1754022061&amp;width=360 360w, //fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1_6280502d-1316-455e-9940-c2e36e6eaa37.jpg?v=1754022061&amp;width=480 480w, //fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1_6280502d-1316-455e-9940-c2e36e6eaa37.jpg?v=1754022061&amp;width=640 640w, //fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1_6280502d-1316-455e-9940-c2e36e6eaa37.jpg?v=1754022061&amp;width=800 800w, //fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1_6280502d-1316-455e-9940-c2e36e6eaa37.jpg?v=1754022061&amp;width=1000 1000w, //fittes.ca/cdn/shop/files/1_-_Flush_Wall_Vent_Lite___Lifestyle_1_6280502d-1316-455e-9940-c2e36e6eaa37.jpg?v=1754022061&amp;width=1200 1200w" width="1200" height="1200" loading="lazy" fetchpriority="auto" sizes="(min-width: 1200px) 340px, (min-width: 990px) 31vw, (min-width: 750px) 38vw, 76vw">
13295</span>
13296
13297                <div class="reviews__body"><p class="reviews__product"><a class="reviews__card-link" href="/products/flush-wall-vent-lite-plus">Flush Wall Vent [Lite+]</a></p><div class="reviews__stars" role="img" aria-label="Rated 5 out of 5 stars"><svg class="" aria-hidden="true" focusable="false">
13298                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13299                      </svg><svg class="" aria-hidden="true" focusable="false">
13300                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13301                      </svg><svg class="" aria-hidden="true" focusable="false">
13302                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13303                      </svg><svg class="" aria-hidden="true" focusable="false">
13304                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13305                      </svg><svg class="" aria-hidden="true" focusable="false">
13306                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13307                      </svg></div><h3 class="reviews__headline">"Imagine building a great looking space then messing it up on the last day with a blah vent cover."</h3><input
13308                    type="checkbox"
13309                    class="reviews__expand"
13310                    id="review-expand-template--28630587998578__seamless_spaces_reviews_reKBU3-5"
13311                    aria-label="Show the full review"
13312                  >
13313
13314                  <blockquote class="reviews__quote">
13315                    <p data-review-text>"The look is unmatched, it certainly takes planning a bit more work than a standard cover but it’s totally worth it to bring the look we were going for home"</p>
13316                  </blockquote>
13317
13318                  <label class="reviews__more" for="review-expand-template--28630587998578__seamless_spaces_reviews_reKBU3-5" data-review-more>
13319                    <span class="is-more">See more</span>
13320                    <span class="is-less">See less</span>
13321                  </label>
13322
13323                  <span class="reviews__verified">
13324                    <svg aria-hidden="true" focusable="false"><use href="#reviews-check-template--28630587998578__seamless_spaces_reviews_reKBU3"></use></svg>
13325                    Verified Purchaser
13326                  </span>
13327                </div>
13328              </article>
13329            </li><li class="reviews__card" >
13330              <article>
13331                <span class="reviews__media"><img src="//fittes.ca/cdn/shop/files/1-FlushWallVent_Lite__Lifestyle1.jpg?v=1754022170&amp;width=1200" alt="Flush Wall Vent [Lite]" srcset="//fittes.ca/cdn/shop/files/1-FlushWallVent_Lite__Lifestyle1.jpg?v=1754022170&amp;width=360 360w, //fittes.ca/cdn/shop/files/1-FlushWallVent_Lite__Lifestyle1.jpg?v=1754022170&amp;width=480 480w, //fittes.ca/cdn/shop/files/1-FlushWallVent_Lite__Lifestyle1.jpg?v=1754022170&amp;width=640 640w, //fittes.ca/cdn/shop/files/1-FlushWallVent_Lite__Lifestyle1.jpg?v=1754022170&amp;width=800 800w, //fittes.ca/cdn/shop/files/1-FlushWallVent_Lite__Lifestyle1.jpg?v=1754022170&amp;width=1000 1000w, //fittes.ca/cdn/shop/files/1-FlushWallVent_Lite__Lifestyle1.jpg?v=1754022170&amp;width=1200 1200w" width="1200" height="1200" loading="lazy" sizes="(min-width: 1200px) 340px, (min-width: 990px) 31vw, (min-width: 750px) 38vw, 76vw">
13332</span>
13333
13334                <div class="reviews__body"><p class="reviews__product"><a class="reviews__card-link" href="/products/flush-wall-vent-lite">Flush Wall Vent [Lite]</a></p><div class="reviews__stars" role="img" aria-label="Rated 5 out of 5 stars"><svg class="" aria-hidden="true" focusable="false">
13335                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13336                      </svg><svg class="" aria-hidden="true" focusable="false">
13337                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13338                      </svg><svg class="" aria-hidden="true" focusable="false">
13339                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13340                      </svg><svg class="" aria-hidden="true" focusable="false">
13341                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13342                      </svg><svg class="" aria-hidden="true" focusable="false">
13343                        <use href="#reviews-star-template--28630587998578__seamless_spaces_reviews_reKBU3"></use>
13344                      </svg></div><h3 class="reviews__headline">"Fittes vents are amazing"</h3><input
13345                    type="checkbox"
13346                    class="reviews__expand"
13347                    id="review-expand-template--28630587998578__seamless_spaces_reviews_reKBU3-6"
13348                    aria-label="Show the full review"
13349                  >
13350
13351                  <blockquote class="reviews__quote">
13352                    <p data-review-text>"I am updating a home from the 80s, and the Fittes vents give it a very clean, modern look. They are so easy to install and just look amazing."</p>
13353                  </blockquote>
13354
13355                  <label class="reviews__more" for="review-expand-template--28630587998578__seamless_spaces_reviews_reKBU3-6" data-review-more>
13356                    <span class="is-more">See more</span>
13357                    <span class="is-less">See less</span>
13358                  </label>
13359
13360                  <span class="reviews__verified">
13361                    <svg aria-hidden="true" focusable="false"><use href="#reviews-check-template--28630587998578__seamless_spaces_reviews_reKBU3"></use></svg>
13362                    Verified Purchaser
13363                  </span>
13364                </div>
13365              </article>
13366            </li></ul>
13367
13368        <button type="button" class="reviews__nav reviews__nav--next" data-reviews-next aria-label="Next reviews">
13369          <svg xmlns="http://www.w3.org/2000/svg" width="27" height="27" viewBox="0 0 27 27" fill="none" aria-hidden="true" focusable="false">
13370            <path d="M4.80469 13.9355H22.0148M22.0148 13.9355C22.0148 13.9355 17.1365 10.7272 16.1452 8.06592M22.0148 13.9355C22.0148 13.9355 17.7022 16.95 16.1452 19.805" stroke="#1E1E1E" stroke-width="2.17391" stroke-linecap="square"/>
13371          </svg>
13372        </button>
13373      </div>
13374    </section>
13375  </div>
13376</div>
13376<script type="application/ld+json">
13377  {
13378  "@context": "https://schema.org",
13379  "@type": "ItemList",
13380  "name": "What homeowners and contractors say",
13381  "numberOfItems": 6,
13382  "itemListElement": [{
13383      "@type": "ListItem",
13384      "position": 1,
13385      "item": {
13386        "@type": "Review","name": "\"Smooth Operator\"","reviewBody": "\"Just installed Luxe, Flush Wall Vents in my clients home and I love the look! The flush design is perfect for a clean install and the ability to paint them, keeps the transitions looking clean. The installers were even commenting how easy they were to mud in and want them for their own homes. I will be using these as my new 'standard' in all my interior design projects!\"",
13387        "author": { "@type": "Person", "name": "Verified Purchaser" },
13388        "reviewRating": {
13389          "@type": "Rating",
13390          "ratingValue": 5,
13391          "bestRating": 5,
13392          "worstRating": 1
13393        }, "itemReviewed": {
13394            "@type": "Product",
13395            "name": "Flush Wall Vent [Luxe]",
13396            "brand": { "@type": "Brand", "name": "Fittes 🍁" }, "url": "https:\/\/fittes.ca\/products\/flush-wall-vent-luxe"
13397, "image": "https:\/\/fittes.ca\/cdn\/shop\/files\/Luxe_Vent_FAQ_267b84c8-3a3d-4d77-8502-8423407e558a.webp?v=1785942315\u0026width=1200"
13398}}
13399    },{
13400      "@type": "ListItem",
13401      "position": 2,
13402      "item": {
13403        "@type": "Review","name": "\"No more ugly plastic grate\"","reviewBody": "\"Can't believe no one has thought of this until now. As a designer I'm always looking to remove unsightly necessities. No more looking up at that ugly\/plastic grate. I will be recommending these in every bathroom in the future. Really is a no brainer!\"",
13404        "author": { "@type": "Person", "name": "Verified Purchaser" },
13405        "reviewRating": {
13406          "@type": "Rating",
13407          "ratingValue": 5,
13408          "bestRating": 5,
13409          "worstRating": 1
13410        }, "itemReviewed": {
13411            "@type": "Product",
13412            "name": "Flush Exhaust Mount [Lite]",
13413            "brand": { "@type": "Brand", "name": "Fittes 🍁" }, "url": "https:\/\/fittes.ca\/products\/flush-exhaust-mount-lite"
13414, "image": "https:\/\/fittes.ca\/cdn\/shop\/files\/Bathroom-exhaust-vent-seamless.webp?v=1785942387\u0026width=1200"
13415}}
13416    },{
13417      "@type": "ListItem",
13418      "position": 3,
13419      "item": {
13420        "@type": "Review","name": "\"The way vents should be!\"","reviewBody": "\"I am a contractor and recently purchased a Fittes vent to upgrade the finish of a bathroom remodel. Not only was I impressed by the quality and look of the vent, my clients loved it. Fittes vents will be my go to moving forward. Keep up the great work.\"",
13421        "author": { "@type": "Person", "name": "Verified Purchaser" },
13422        "reviewRating": {
13423          "@type": "Rating",
13424          "ratingValue": 5,
13425          "bestRating": 5,
13426          "worstRating": 1
13427        }, "itemReviewed": {
13428            "@type": "Product",
13429            "name": "Flush Floor Vent [Lite]",
13430            "brand": { "@type": "Brand", "name": "Fittes 🍁" }, "url": "https:\/\/fittes.ca\/products\/flush-floor-vent-lite"
13431, "image": "https:\/\/fittes.ca\/cdn\/shop\/files\/1-FlushFloorVent_Lite__Lifestyle1.jpg?v=1754022184\u0026width=1200"
13432}}
13433    },{
13434      "@type": "ListItem",
13435      "position": 4,
13436      "item": {
13437        "@type": "Review","name": "\"Makes a room\"","reviewBody": "\"i got the large size to replace 2 ugly duct access vents. They turned an eyesore in the room to a feature of the room. They are now a conversation piece when we have guests. Such a simple idea that has so much impact on the design of a space.\"",
13438        "author": { "@type": "Person", "name": "Verified Purchaser" },
13439        "reviewRating": {
13440          "@type": "Rating",
13441          "ratingValue": 5,
13442          "bestRating": 5,
13443          "worstRating": 1
13444        }, "itemReviewed": {
13445            "@type": "Product",
13446            "name": "Flush Wall Vent [Luxe]",
13447            "brand": { "@type": "Brand", "name": "Fittes 🍁" }, "url": "https:\/\/fittes.ca\/products\/flush-wall-vent-luxe"
13448, "image": "https:\/\/fittes.ca\/cdn\/shop\/files\/Before_After_Ads_Alt1_Story_Your_Story.webp?v=1785942526\u0026width=1200"
13449}}
13450    },{
13451      "@type": "ListItem",
13452      "position": 5,
13453      "item": {
13454        "@type": "Review","name": "\"Imagine building a great looking space then messing it up on the last day with a blah vent cover.\"","reviewBody": "\"The look is unmatched, it certainly takes planning a bit more work than a standard cover but it’s totally worth it to bring the look we were going for home\"",
13455        "author": { "@type": "Person", "name": "Verified Purchaser" },
13456        "reviewRating": {
13457          "@type": "Rating",
13458          "ratingValue": 5,
13459          "bestRating": 5,
13460          "worstRating": 1
13461        }, "itemReviewed": {
13462            "@type": "Product",
13463            "name": "Flush Wall Vent [Lite+]",
13464            "brand": { "@type": "Brand", "name": "Fittes 🍁" }, "url": "https:\/\/fittes.ca\/products\/flush-wall-vent-lite-plus"
13465, "image": "https:\/\/fittes.ca\/cdn\/shop\/files\/1_-_Flush_Wall_Vent_Lite___Lifestyle_1_6280502d-1316-455e
13465-9940-c2e36e6eaa37.jpg?v=1754022061\u0026width=1200"
13466}}
13467    },{
13468      "@type": "ListItem",
13469      "position": 6,
13470      "item": {
13471        "@type": "Review","name": "\"Fittes vents are amazing\"","reviewBody": "\"I am updating a home from the 80s, and the Fittes vents give it a very clean, modern look. They are so easy to install and just look amazing.\"",
13472        "author": { "@type": "Person", "name": "Verified Purchaser" },
13473        "reviewRating": {
13474          "@type": "Rating",
13475          "ratingValue": 5,
13476          "bestRating": 5,
13477          "worstRating": 1
13478        }, "itemReviewed": {
13479            "@type": "Product",
13480            "name": "Flush Wall Vent [Lite]",
13481            "brand": { "@type": "Brand", "name": "Fittes 🍁" }, "url": "https:\/\/fittes.ca\/products\/flush-wall-vent-lite"
13482, "image": "https:\/\/fittes.ca\/cdn\/shop\/files\/1-FlushWallVent_Lite__Lifestyle1.jpg?v=1754022170\u0026width=1200"
13483}}
13484    }]
13485}
13486</script>
13486
13487
13488<script>
13489  (function () {
13490    var section = document.getElementById('shopify-section-template--28630587998578__seamless_spaces_reviews_reKBU3');
13491    if (!section) return;
13492
13493    /* ---------- See more: hide the toggle where the text already fits ----------
13494       Progressive enhancement. Without this script every card shows the
13495       toggle and it still works — the clamp and the checkbox are pure CSS. */
13496    var cards = section.querySelectorAll('.reviews__card');
13497
13498    function measure() {
13499      cards.forEach(function (card) {
13500        var text = card.querySelector('[data-review-text]');
13501        var more = card.querySelector('[data-review-more]');
13502        var box = card.querySelector('.reviews__expand');
13503        if (!text || !more || !box) return;
13504
13505        // Only measure in the clamped state, otherwise heights always match
13506        var wasOpen = box.checked;
13507        if (wasOpen) box.checked = false;
13508
13509        var overflows = text.scrollHeight > text.clientHeight + 2;
13510
13511        if (wasOpen) box.checked = true;
13512
13513        if (overflows) {
13514          more.removeAttribute('hidden');
13515        } else {
13516          more.setAttribute('hidden', '');
13517          box.checked = false;
13518        }
13519      });
13520    }
13521
13522    // Fonts change line breaks, so re-measure once they have loaded
13523    if (document.fonts && document.fonts.ready) {
13524      document.fonts.ready.then(measure);
13525    }
13526
13527    var resizeTimer;
13528    window.addEventListener('resize', function () {
13529      clearTimeout(resizeTimer);
13530      resizeTimer = setTimeout(measure, 150);
13531    });
13532
13533    measure();
13534
13535    /* ---------- Carousel arrows ---------- */
13536    var track = section.querySelector('[data-reviews-track]');
13537    var prev = section.querySelector('[data-reviews-prev]');
13538    var next = section.querySelector('[data-reviews-next]');
13539    if (!track || !prev || !next) return;
13540
13541    function step() {
13542      var card = track.querySelector('.reviews__card');
13543      if (!card) return track.clientWidth;
13544      var styles = getComputedStyle(track);
13545      var gap = parseFloat(styles.columnGap || styles.gap) || 0;
13546      return card.getBoundingClientRect().width + gap;
13547    }
13548
13549    function sync() {
13550      var max = track.scrollWidth - track.clientWidth;
13551      prev.disabled = track.scrollLeft <= 1;
13552      next.disabled = track.scrollLeft >= max - 1;
13553    }
13554
13555    prev.addEventListener('click', function () {
13556      track.scrollBy({ left: -step(), behavior: 'smooth' });
13557    });
13558
13559    next.addEventListener('click', function () {
13560      track.scrollBy({ left: step(), behavior: 'smooth' });
13561    });
13562
13563    var ticking = false;
13564    track.addEventListener('scroll', function () {
13565      if (ticking) return;
13566      ticking = true;
13567      window.requestAnimationFrame(function () { sync(); ticking = false; });
13568    }, { passive: true });
13569
13570    window.addEventListener('resize', sync);
13571    sync();
13572  })();
13573</script>
13573
13574
13575
13576</section><section id="shopify-section-template--28630587998578__slideshow_gYbghc" class="shopify-section section"><link href="//fittes.ca/cdn/shop/t/139/assets/section-image-banner.css?v=124819179385751388401788881714" rel="stylesheet" type="text/css" media="all" />
13577<link href="//fittes.ca/cdn/shop/t/139/assets/component-slider.css?v=14039311878856620671788881635" rel="stylesheet" type="text/css" media="all" />
13578<link href="//fittes.ca/cdn/shop/t/139/assets/component-slideshow.css?v=76964923311900879251788881635" rel="stylesheet" type="text/css" media="all" />
13579<style data-shopify>@media screen and (max-width: 749px) {
13580      
13581   #Slider-template--28630587998578__slideshow_gYbghc .banner__buttons {
13582    order: 3;
13583  }
13584    #Slider-template--28630587998578__slideshow_gYbghc .banner__buttons .button {
13585    background: #e73c3e;
13586    color: #fff;
13587  }
13588   #Slider-template--28630587998578__slideshow_gYbghc .banner__buttons .button::before,
13589   #Slider-template--28630587998578__slideshow_gYbghc .banner__buttons .button::after {
13590    content: unset;
13591  }
13592   #Slider-template--28630587998578__slideshow_gYbghc .banner__buttons {
13593      margin-top: 1.6rem;
13594  }
13595  #Slider-template--28630587998578__slideshow_gYbghc .banner__content {
13596    align-items: flex-start;
13597  }
13598   .slider-buttons {
13599    right: 50% !important;
13600    transform: translateX(50%) !important;
13601    border: none !important;
13602  }
13603   .slider-button {
13604    width: 50px !important;
13605    height: 50px !important;
13606  }
13607   .slider-button:not([disabled]):hover {
13608    color: #e73c3e !important;
13609  }
13610  #Slider-template--28630587998578__slideshow_gYbghc .slideshow__text.banner__box {
13611    height: 100%;
13612    justify-content: flex-start;
13613  }
13614  #Slider-template--28630587998578__slideshow_gYbghc .banner--large:not(.banner--mobile-bottom):not(.banner--adapt) .banner__content{
13615    min-height:60rem;
13616  }
13617}
13618
13619    @media screen and (min-width: 750px) {
13620      #Slider-template--28630587998578__slideshow_gYbghc::before,
13621      #Slider-template--28630587998578__slideshow_gYbghc .media::before {
13622        padding-bottom: Liquid error (sections/slideshow line 64): divided by 0%;
13623        content: '';
13624        display: block;
13625      }
13626    }   
13627
13628   #Slider-template--28630587998578__slideshow_gYbghc .video_template--28630587998578__slideshow_gYbghc{
13629     object-fit: cover;
13630   }
13631   #Slider-template--28630587998578__slideshow_gYbghc .slider-buttons {
13632      border: none;
13633   }</style><slideshow-component
13634  class="hw slider-mobile-gutter"
13635  role="region"
13636  aria-roledescription="Carousel"
13637  aria-label="Slideshow about our brand"
13638><div
13639    class="slideshow banner banner--adapt_image grid grid--1-col slider slider--everywhere slideshow--placeholder scroll-trigger animate--fade-in"
13640    id="Slider-template--28630587998578__slideshow_gYbghc"
13641    aria-live="polite"
13642    aria-atomic="true"
13643    data-autoplay="false"
13644    data-speed="5"
13645  ></div></slideshow-component>
13646<style> #shopify-section-template--28630587998578__slideshow_gYbghc .banner__text p {font-family: lora;} </style></section>
13647    </main>
13648
13649    <!-- BEGIN sections: footer-group -->
13650<section id="shopify-section-sections--28630589571442__footerbenefitsbanner_R8iXTg" class="shopify-section shopify-section-group-footer-group section-benefits-banner"><style>
13651  #shopify-section-sections--28630589571442__footerbenefitsbanner_R8iXTg .benefits-banner {
13652    --icon-size: 90px;
13653    background: #EFF1ED;
13654    color: #000000;
13655    padding: 48px clamp(1rem, 6vw, 4rem) 48px;
13656    display: grid;
13657    grid-template-columns: repeat(4, minmax(0, 1fr));
13658    gap: 2rem 1.5rem;
13659    align-items: start;
13660    text-align: center;
13661    box-sizing: border-box;
13662    margin: 0;
13663    list-style: none;
13664  }#shopify-section-sections--28630589571442__footerbenefitsbanner_R8iXTg .benefits-banner {
13665    width: 100vw;
13666    margin-left: calc(50% - 50vw);
13667    margin-right: calc(50% - 50vw);
13668  }#shopify-section-sections--28630589571442__footerbenefitsbanner_R8iXTg .benefits-banner {
13669    content-visibility: auto;
13670    contain-intrinsic-size: auto 250px;
13671  }#shopify-section-sections--28630589571442__footerbenefitsbanner_R8iXTg .benefits-item {
13672    margin: 0;
13673    min-width: 0;
13674  }
13675
13676  #shopify-section-sections--28630589571442__footerbenefitsbanner_R8iXTg .benefits-icon {
13677    height: var(--icon-size);
13678    display: flex;
13679    align-items: center;
13680    justify-content: center;
13681  }
13682
13683  #shopify-section-sections--28630589571442__footerbenefitsbanner_R8iXTg .benefits-icon img,
13684  #shopify-section-sections--28630589571442__footerbenefitsbanner_R8iXTg .benefits-icon svg {
13685    max-height: 100%;
13686    max-width: 100%;
13687    width: auto;
13688    height: auto;
13689    display: block;
13690  }
13691
13692  #shopify-section-sections--28630589571442__footerbenefitsbanner_R8iXTg .benefits-item p {
13693    margin: 1.5rem 0 0;
13694    font-family: var(--font-heading-family, var(--font-body-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif));
13695    font-weight: 700;
13696    font-size: 1.4rem;
13697    line-height: 1.3;
13698    text-wrap: balance;
13699  }
13700
13701  #shopify-section-sections--28630589571442__footerbenefitsbanner_R8iXTg .benefits-link {
13702    display: block;
13703    text-decoration: none;
13704    color: inherit;
13705  }
13706  #shopify-section-sections--28630589571442__footerbenefitsbanner_R8iXTg .benefits-link:hover p {
13707    text-decoration: underline;
13708  }
13709
13710  @media (max-width: 749px) {
13711    #shopify-section-sections--28630589571442__footerbenefitsbanner_R8iXTg .benefits-banner {
13712      grid-template-columns: repeat(2, minmax(0, 1fr));
13713      gap: 2rem 1rem;
13714      padding-left: 1.5rem;
13715      padding-right: 1.5rem;
13716      contain-intrinsic-size: auto 436px;
13717    }
13718    #shopify-section-sections--28630589571442__footerbenefitsbanner_R8iXTg .benefits-item p {
13719      font-size: 1.3rem;
13720      margin-top: 1rem;
13721    }
13722  }
13723</style><ul class="benefits-banner" ><li class="benefits-item" ><div class="benefits-icon"><img src="//fittes.ca/cdn/shop/files/Earn_Clean_1.webp?v=1784903904&width=180"
13724                 srcset="//fittes.ca/cdn/shop/files/Earn_Clean_1.webp?v=1784903904&width=90 1x, //fittes.ca/cdn/shop/files/Earn_Clean_1.webp?v=1784903904&width=180 2x, //fittes.ca/cdn/shop/files/Earn_Clean_1.webp?v=1784903904&width=270 3x"
13725                 alt="Earn and Save Every Time"
13726                 width="90"
13727                 height="90"
13728                 loading="lazy"
13729                 fetchpriority="low"
13730                 decoding="async"></div><p>Earn and Save Every Time</p></li><li class="benefits-item" ><div class="benefits-icon"><img src="//fittes.ca/cdn/shop/files/3year_1.webp?v=1784903922&width=180"
13731                 srcset="//fittes.ca/cdn/shop/files/3year_1.webp?v=1784903922&width=90 1x, //fittes.ca/cdn/shop/files/3year_1.webp?v=1784903922&width=180 2x, //fittes.ca/cdn/shop/files/3year_1.webp?v=1784903922&width=270 3x"
13732                 alt="3 Year Warranty"
13733                 width="90"
13734                 height="90"
13735                 loading="lazy"
13736                 fetchpriority="low"
13737                 decoding="async"></div><p>3 Year Warranty</p></li><li class="benefits-item" ><div class="benefits-icon"><img src="//fittes.ca/cdn/shop/files/365_days.webp?v=1784903939&width=180"
13738                 srcset="//fittes.ca/cdn/shop/files/365_days.webp?v=1784903939&width=90 1x, //fittes.ca/cdn/shop/files/365_days.webp?v=1784903939&width=180 2x, //fittes.ca/cdn/shop/files/365_days.webp?v=1784903939&width=270 3x"
13739                 alt="365 Days to Return"
13740                 width="90"
13741                 height="90"
13742                 loading="lazy"
13743                 fetchpriority="low"
13744                 decoding="async"></div><p>365 Days to Return</p></li><li class="benefits-item" ><div class="benefits-icon"><img src="//fittes.ca/cdn/shop/files/north_america.webp?v=1784903965&width=180"
13745                 srcset="//fittes.ca/cdn/shop/files/north_america.webp?v=1784903965&width=90 1x, //fittes.ca/cdn/shop/files/north_america.webp?v=1784903965&width=180 2x, //fittes.ca/cdn/shop/files/north_america.webp?v=1784903965&width=270 3x"
13746                 alt="Made in North America"
13747                 width="90"
13748                 height="90"
13749                 loading="lazy"
13750                 fetchpriority="low"
13751                 decoding="async"></div><p>Made in North America</p></li></ul></section><div id="shopify-section-sections--28630589571442__footer" class="shopify-section shopify-section-group-footer-group"><style data-shopify>.footer {
13752    margin-top: 0px;
13753  }
13754
13755  .section-sections--28630589571442__footer-padding {
13756    padding-top: 27px;
13757    padding-bottom: 27px;
13758  }
13759
13760  @media screen and (min-width: 750px) {
13761    .footer {
13762      margin-top: 0px;
13763    }
13764
13765    .section-sections--28630589571442__footer-padding {
13766      padding-top: 36px;
13767      padding-bottom: 36px;
13768    }
13769  }</style><style>
13770  .footer__main-content {
13771    display: grid;
13772    grid-template-columns: 1fr;
13773    gap: 3rem;
13774    max-width: var(--page-width);
13775    margin: 0 auto;
13776    padding: 0 3rem 0 5rem;
13777  }
13778
13779  .footer__menu-column {
13780    display: flex;
13781    flex-direction: column;
13782  }
13783
13784  .footer__menu-heading {
13785    font-size: 1.65rem;
13786    font-weight: 500;
13787    letter-spacing: 0.02em;
13788    margin: 0 0 2rem;
13789  }
13790
13791  .footer__menu-list {
13792    list-style: none;
13793    padding: 0;
13794    margin: 0;
13795    display: flex;
13796    flex-direction: column;
13797    gap: 1rem;
13798  }
13799
13800  .footer__menu-link {
13801    color: rgba(var(--color-foreground), 1);
13802    text-decoration: none;
13803    font-size: 1.54rem;
13804    transition: color 0.2s ease;
13805  }
13806
13807  .footer__menu-link:hover {
13808    color: rgb(var(--color-foreground));
13809  }
13810
13811  .footer__newsletter-section {
13812    display: flex;
13813    flex-direction: column;
13814  }
13815
13816  .footer__newsletter-heading {
13817    font-size: 1.65rem;
13818    font-weight: 500;
13819    letter-spacing: 0.02em;
13820    margin: 0 0 2rem;
13821  }
13822
13823  .footer__newsletter-form {
13824    position: relative;
13825    margin-bottom: 2.5rem;
13826  }
13827
13828  .footer__newsletter-input {
13829    width: 100%;
13830    background: transparent;
13831    border: none;
13832    border-bottom: 1px solid rgba(var(--color-foreground), 0.5);
13833    padding: 1rem 4rem 1rem 0;
13834    font-size: 1.54rem;
13835    color: rgb(var(--color-foreground));
13836    outline: none;
13837    transition: border-bottom-color 0.2s ease;
13838  }
13839
13840  .footer__newsletter-input::placeholder {
13841    color: rgba(var(--color-foreground), 0.6);
13842  }
13843
13844  .footer__newsletter-input:focus {
13845    border-bottom-color: rgb(var(--color-foreground));
13846  }
13847
13848  .footer__newsletter-button {
13849    position: absolute;
13850    right: 0;
13851    top: 50%;
13852    transform: translateY(-50%);
13853    background: transparent;
13854    border: none;
13855    padding: 0.5rem;
13856    cursor: pointer;
13857    color: rgb(var(--color-foreground));
13858  }
13859
13860  .footer__newsletter-button svg {
13861    width: 2.2rem;
13862    height: 2.2rem;
13863  }
13864
13865  /* Newsletter error/success messages (self-contained; error color comes from form__message in base.css) */
13866  .footer__newsletter-form .newsletter-form__message {
13867    display: flex;
13868    align-items: center;
13869    gap: 0.5rem;
13870    margin-top: 1rem;
13871    font-size: 1.3rem;
13872    line-height: 1.4;
13873  }
13874
13875  .footer__newsletter-form .newsletter-form__message--success {
13876    color: rgb(var(--color-foreground));
13877  }
13878
13879  .footer__social-icons {
13880    display: flex;
13881    gap: 1.5rem;
13882    margin-top: 1rem;
13883  }
13884
13885  .footer__social-link {
13886    display: flex;
13887    align-items: center;
13888    justify-content: center;
13889    color: rgb(var(--color-foreground));
13890    text-decoration: none;
13891    transition: opacity 0.2s ease;
13892  }
13893
13894  .footer__social-link:hover {
13895    opacity: 0.7;
13896  }
13897
13898  .footer__social-link svg {
13899    width: 2.4rem;
13900    height: 2.4rem;
13901  }
13902
13903  .footer__logo-column {
13904    display: flex;
13905    align-items: flex-end;
13906    justify-content: flex-end;
13907    align-self: stretch;
13908  }
13909
13910  .footer__logo {
13911    width: 100%;
13912    max-width: 20rem;
13913    height: auto;
13914  }
13915
13916  .footer__logo img {
13917    width: 100%;
13918    height: auto;
13919    display: block;
13920  }
13921
13922  .footer__bottom-bar {
13923    border-top: 1px solid rgba(var(--color-foreground), 1);
13924    margin-top: 4rem;
13925    padding-top: 2.5rem;
13926    max-width: var(--page-width);
13927    margin-left: auto;
13928    margin-right: auto;
13929    padding-left: 5rem;
13930    padding-right: 3rem;
13931  }
13932
13933  .footer__bottom-content {
13934    display: flex;
13935    flex-direction: column;
13936    gap: 1.5rem;
13937  }
13938
13939  .footer__bottom-links {
13940    display: flex;
13941    align-items: center;
13942  }
13943
13944  .footer__bottom-links-list {
13945    display: flex;
13946    flex-wrap: wrap;
13947    align-items: center;
13948    gap: 0;
13949    list-style: none;
13950    padding: 0;
13951    margin: 0;
13952  }
13953
13954  .footer__bottom-links-item {
13955    display: flex;
13956    align-items: center;
13957  }
13958
13959  .footer__bottom-links-item:not(:last-child)::after {
13960    content: "|";
13961    color: rgba(var(--color-foreground), 0.5);
13962    padding: 0 1.2rem;
13963    font-size: 1.43rem;
13964  }
13965
13966  .footer__bottom-link {
13967    color: rgba(var(--color-foreground), 1);
13968    text-decoration: none;
13969    font-size: 1.43rem;
13970    transition: color 0.2s ease;
13971  }
13972
13973  .footer__bottom-link:hover {
13974    color: rgb(var(--color-foreground));
13975  }
13976
13977  .footer__copyright-row {
13978    margin-top: 1.5rem;
13979  }
13980
13981  .footer__copyright {
13982    font-size: 1.43rem;
13983    color: rgba(var(--color-foreground), 1);
13984    display: flex;
13985    align-items: center;
13986    line-height: 1;
13987  }
13988
13989  /* Smile launcher — persistent transition so fade works BOTH directions */
13990  .smile-transition-ready {
13991    transition: opacity 0.3s ease-in-out !important;
13992  }
13993
13994  /* Smile launcher — hide when overlapping footer */
13995  .smile-hidden-over-footer {
13996    opacity: 0 !important;
13997    pointer-events: none !important;
13998  }
13999
14000  /* Ensure the iframe itself can't capture clicks when parent is hidden */
14001  .smile-hidden-over-footer iframe {
14002    pointer-events: none !important;
14003  }
14004
14005  /* Desktop layout */
14006  @media screen and (min-width: 990px) {
14007    .footer__main-content {
14008      grid-template-columns: 1fr 1fr 1.5fr 1fr;
14009      gap: 3rem;
14010      align-items: start;
14011    }
14012  }
14013
14014  /* Tablet and mobile layouts */
14015  @media screen and (max-width: 989px) {
14016    .footer__main-content {
14017      grid-template-columns: 1fr 1fr;
14018      gap: 3rem;
14019    }
14020
14021    .footer__menu-column {
14022      order: 2;
14023    }
14024
14025    .footer__newsletter-section {
14026      grid-column: 1 / -1;
14027      order: 1;
14028    }
14029
14030    .footer__logo-column {
14031      grid-column: 1 / -1;
14032      justify-content: flex-start;
14033      margin-top: 2rem;
14034      order: 3;
14035    }
14036
14037    .footer__logo {
14038      max-width: 10rem;
14039    }
14040  }
14041
14042  @media screen and (max-width: 749px) {
14043    .footer__main-content {
14044      padding: 0 2rem 0 2.5rem;
14045      gap: 2rem;
14046    }
14047
14048    .footer__bottom-bar {
14049      margin-top: 3rem;
14050      padding-top: 2rem;
14051      padding-left: 2.5rem;
14052      padding-right: 2rem;
14053    }
14054
14055    .footer__bottom-links-item:not(:last-child)::after {
14056      padding: 0 0.75rem;
14057    }
14058
14059    .footer__social-link svg {
14060      width: 2.2rem;
14061      height: 2.2rem;
14062    }
14063  }
14064</style>
14065
14066<footer class="footer color-scheme-6a78ef8d-1d91-48a0-9209-c3a4f3707bce gradient section-sections--28630589571442__footer-padding"><div class="footer__main-content">
14067    <!-- Menu columns --><div class="footer__menu-column" ><div class="footer__menu-heading"><strong>Shop</strong></div><ul class="footer__menu-list"><li>
14068                <a href="/collections/wall-vent" class="footer__menu-link">Wall / Ceiling Vents</a>
14069              </li><li>
14070                <a href="/collections/floor" class="footer__menu-link">Floor Vents</a>
14071              </li><li>
14072                <a href="/collections/mounts" class="footer__menu-link">Mounts</a>
14073              </li><li>
14074                <a href="/collections/accessories" class="footer__menu-link">Accessories</a>
14075              </li><li>
14076                <a href="/collections/all" class="footer__menu-link">Shop All</a>
14077              </li></ul>
14078        </div><div class="footer__menu-column" ><div class="footer__menu-heading"><strong>Help</strong></div><ul class="footer__menu-list"><li>
14079                <a href="/pages/contact" class="footer__menu-link">Contact Us</a>
14080              </li><li>
14081                <a href="/pages/returns-exchanges" class="footer__menu-link">Returns + Exchanges</a>
14082              </li><li>
14083                <a href="/pages/customize-materials" class="footer__menu-link">Customize Materials</a>
14084              </li><li>
14085                <a href="/pages/warranty" class="footer__menu-link">Warranty</a>
14086              </li><li>
14087                <a href="/pages/faq" class="footer__menu-link">FAQ</a>
14088              </li></ul>
14089        </div><!-- Newsletter section -->
14090    <div class="footer__newsletter-section"><div class="footer__newsletter-heading"><strong>Join our newsletter</strong></div><form method="post" action="/contact#ContactFooter" id="ContactFooter" accept-charset="UTF-8" class="footer__newsletter-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="contact[tags]" value="newsletter">
14091          <input
14092            id="NewsletterForm--sections--28630589571442__footer"
14093            type="email"
14094            name="contact[email]"
14095            class="footer__newsletter-input"
14096            value=""
14097            aria-required="true"
14098            autocorrect="off"
14099            autocapitalize="off"
14100            autocomplete="email"
14101            
14102            placeholder="Email Address"
14103            required
14104          >
14105          <button type="submit" class="footer__newsletter-button" aria-label="Subscribe">
14106            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
14107              <line x1="5" y1="12" x2="19" y2="12"></line>
14108              <polyline points="12 5 19 12 12 19"></polyline>
14109            </svg>
14110          </button></form><div class="footer__social-icons"><a href="https://www.facebook.com/fittes/" class="footer__social-link" aria-label="Facebook (opens in new tab)" target="_blank" rel="noopener noreferrer">
14111              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
14112            </a><a href="https://x.com/fittesco" class="footer__social-link" aria-label="X (Twitter) (opens in new tab)" target="_blank" rel="noopener noreferrer">
14113              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"></path></svg>
14114            </a><a href="https://www.instagram.com/fittes/" class="footer__social-link" aria-label="Instagram (opens in new tab)" target="_blank" rel="noopener noreferrer">
14115              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="20" rx="5" ry="5"></rect><path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"></path><line x1="17.5" y1="6.5" x2="17.51" y2="6.5"></line></svg>
14116            </a><a href="https://www.youtube.com/channel/UC6Z3b0jfeKE3KaOuTxUrEog/featured" class="footer__social-link" aria-label="YouTube (opens in new tab)" target="_blank" rel="noopener noreferrer">
14117              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"></path></svg>
14118            </a><a href="https://www.tiktok.com/@fittesofficial" class="footer__social-link" aria-label="TikTok (opens in new tab)" target="_blank" rel="noopener noreferrer">
14119              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M19.59 6.69a4.83 4.83 0 0 1-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 0 1-5.2 1.74 2.89 2.89 0 0 1 2.31-4.64 2.93 2.93 0 0 1 .88.13V9.4a6.84 6.84 0 0 0-1-.05A6.33 6.33 0 0 0 5 20.1a6.34 
141196.34 0 0 0 10.86-4.43v-7a8.16 8.16 0 0 0 4.77 1.52v-3.4a4.85 4.85 0 0 1-1-.1z"></path></svg>
14120            </a><a href="https://ca.pinterest.com/fittesofficial/" class="footer__social-link" aria-label="Pinterest (opens in new tab)" target="_blank" rel="noopener noreferrer">
14121              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0a12 12 0 0 0-4.37 23.17c-.1-.94-.2-2.4.04-3.44l1.4-5.96s-.37-.74-.37-1.82c0-1.7 1-2.97 2.23-2.97 1.05 0 1.56.79 1.56 1.74 0 1.06-.68 2.64-1.03 4.11-.29 1.24.62 2.25 1.84 2.25 2.2 0 3.9-2.33 3.9-5.7 0-2.97-2.14-5.05-5.2-5.05-3.54 0-5.61 2.65-5.61 5.4 0 1.07.41 2.22.93 2.85a.37.37 0 0 1 .09.36l-.35 1.4c-.05.23-.18.28-.42.17-1.56-.73-2.53-3-2.53-4.84 0-3.94 2.86-7.56 8.26-7.56 4.34 0 7.7 3.09 7.7 7.22 0 4.31-2.72 7.79-6.5 7.79-1.27 0-2.46-.66-2.87-1.44l-.78 2.98c-.28 1.1-1.05 2.47-1.56 3.31A12 12 0 1 0 12 0z"></path></svg>
14122            </a><a href="https://www.linkedin.com/company/fittes/" class="footer__social-link" aria-label="LinkedIn (opens in new tab)" target="_blank" rel="noopener noreferrer">
14123              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"></path></svg>
14124            </a></div></div>
14125
14126    <!-- Logo column --><div class="footer__logo-column">
14127        <div class="footer__logo">
14128          <img
14129            src="//fittes.ca/cdn/shop/files/Mask_group_2.png?v=1743054521&width=400"
14130            alt="Fittes 🍁"
14131            width="200"
14132            height="118"
14133            loading="lazy"
14134          >
14135        </div>
14136      </div></div>
14137
14138  <!-- Bottom bar -->
14139  <div class="footer__bottom-bar">
14140    <div class="footer__bottom-content"><div class="footer__bottom-links">
14141          <ul class="footer__bottom-links-list"><li class="footer__bottom-links-item">
14142                <a href="/pages/privacy-policy" class="footer__bottom-link">Privacy Policy</a>
14143              </li><li class="footer__bottom-links-item">
14144                <a href="/pages/terms-of-service" class="footer__bottom-link">Terms of Service</a>
14145              </li><li class="footer__bottom-links-item">
14146                <a href="/pages/patents-1" class="footer__bottom-link">Patents</a>
14147              </li></ul>
14148        </div></div>
14149
14150    <div class="footer__copyright-row">
14151      <span class="footer__copyright">Copyright © 2026 Fittes 🍁.</span>
14152    </div>
14153  </div>
14154
14155  
14155<script>
14156    (function () {
14157      if (!('IntersectionObserver' in window)) return;
14158
14159      var HIDDEN_CLASS = 'smile-hidden-over-footer';
14160      var TRANSITION_CLASS = 'smile-transition-ready';
14161      var intersectionObserver = null;
14162      var mutationObserver = null;
14163      var smileElements = [];
14164
14165      function findSmileElements() {
14166        var found = [];
14167
14168        // Known container IDs Smile has used across themes
14169        ['smile-ui-lite-container', 'smile-ui-container'].forEach(function (id) {
14170          var el = document.getElementById(id);
14171          if (el && found.indexOf(el) === -1) found.push(el);
14172        });
14173
14174        // Fallback: locate the launcher iframe by title and grab a sensible container
14175        var iframe = document.querySelector(
14176          'iframe[title*="loyalty program" i], iframe[title*="Smile" i], iframe[title*="Rewards" i]'
14177        );
14178        if (iframe) {
14179          var container =
14180            iframe.closest('[id*="smile" i]') ||
14181            iframe.closest('[class*="smile" i]') ||
14182            iframe.parentElement;
14183          if (container && found.indexOf(container) === -1) found.push(container);
14184        }
14185
14186        return found;
14187      }
14188
14189      function setupObserver() {
14190        var footer = document.querySelector('.footer');
14191        if (!footer) return false;
14192
14193        smileElements = findSmileElements();
14194        if (smileElements.length === 0) return false;
14195
14196        // Apply the transition class permanently so fade works in BOTH directions
14197        smileElements.forEach(function (el) {
14198          el.classList.add(TRANSITION_CLASS);
14199        });
14200
14201        if (intersectionObserver) intersectionObserver.disconnect();
14202
14203        intersectionObserver = new IntersectionObserver(
14204          function (entries) {
14205            var isVisible = entries[0].isIntersecting;
14206            smileElements.forEach(function (el) {
14207              el.classList.toggle(HIDDEN_CLASS, isVisible);
14208            });
14209          },
14210          { rootMargin: '0px', threshold: 0.01 }
14211        );
14212
14213        intersectionObserver.observe(footer);
14214        return true;
14215      }
14216
14217      function init() {
14218        // Try immediately — works if Smile already injected
14219        if (setupObserver()) return;
14220
14221        // Otherwise watch for Smile to inject itself
14222        mutationObserver = new MutationObserver(function () {
14223          if (setupObserver()) {
14224            mutationObserver.disconnect();
14225            mutationObserver = null;
14226          }
14227        });
14228        mutationObserver.observe(document.body, { childList: true, subtree: true });
14229
14230        // Give up after 15s so we're not watching forever
14231        setTimeout(function () {
14232          if (mutationObserver) {
14233            mutationObserver.disconnect();
14234            mutationObserver = null;
14235          }
14236        }, 15000);
14237      }
14238
14239      if ('requestIdleCallback' in window) {
14240        requestIdleCallback(init, { timeout: 1000 });
14241      } else {
14242        setTimeout(init, 500);
14243      }
14244    })();
14245  </script>
14245
14246</footer>
14247
14248
14249</div>
14250<!-- END sections: footer-group -->
14251
14252    <ul hidden>
14253      <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li>
14254      <li id="a11y-new-window-message">Opens in a new window.</li>
14255    </ul>
14256
14257    
14257<script>
14258      window.shopUrl = 'https://fittes.ca'
14259      window.routes = {
14260        cart_add_url: '/cart/add',
14261        cart_change_url: '/cart/change',
14262        cart_update_url: '/cart/update',
14263        cart_url: '/cart',
14264        predictive_search_url: '/search/suggest'
14265      }
14266
14267      window.cartStrings = {
14268        error: `There was an error while updating your cart. Please try again.`,
14269        quantityError: `You can only add [quantity] of this item to your cart.`
14270      }
14271
14272      window.variantStrings = {
14273        addToCart: `Add to cart`,
14274        soldOut: `Sold out`,
14275        unavailable: `Unavailable`,
14276        unavailable_with_option: `[value] - Unavailable`
14277      }
14278
14279      window.quickOrderListStrings = {
14280        itemsAdded: `[quantity] items added`,
14281        itemAdded: `[quantity] item added`,
14282        itemsRemoved: `[quantity] items removed`,
14283        itemRemoved: `[quantity] item removed`,
14284        viewCart: `View cart`,
14285        each: `[money]/ea`,
14286        min_error: `This item has a minimum of [min]`,
14287        max_error: `This item has a maximum of [max]`,
14288        step_error: `You can only add this item in increments of [step]`
14289      }
14290
14291      window.accessibilityStrings = {
14292        imageAvailable: `Image [index] is now available in gallery view`,
14293        shareSuccess: `Link copied to clipboard`,
14294        pauseSlideshow: `Pause slideshow`,
14295        playSlideshow: `Play slideshow`,
14296        recipientFormExpanded: `Gift card recipient form expanded`,
14297        recipientFormCollapsed: `Gift card recipient form collapsed`,
14298        countrySelectorSearchCount: `[count] countries/regions found`
14299      }
14300    </script>
14300<script src="//fittes.ca/cdn/shop/t/139/assets/predictive-search.js?v=100525875448097398651788881701" defer="defer"></script>
14300<script src="//fittes.ca/cdn/shop/t/139/assets/cart-drawer.js?v=169981311261118214701788881617" defer="defer"></script>
14300<link href="//fittes.ca/cdn/shop/t/139/assets/swiper-bundle.min.css?v=39633872178562917471788881719" rel="stylesheet" type="text/css" media="all" />
14301
14302    
14303
14304    
14305  <style> @media (min-width: 1200px) {.product-card-wrapper .card--media .card__inner .card__content {height: auto; width: 23vw; } .product-card-wrapper .card--media .card__inner .card__media > img {height: auto; width: 23vw; } .page-width {padding: 0rem !important; }} @media (max-width: 768px) {.product-card-wrapper .card--media .card__inner .card__content {height: auto; width: 43vw; } .product-card-wrapper .card--media .card__inner .card__media > img {height: auto; width: 43vw; }} @media screen and (min-width: 750px) {.section-template--23517284663663__product-grid-padding {padding-right: 4rem; }} @media screen and (min-width: 750px) {.facets-vertical .facets-wrapper {padding-left: 1.5rem; padding-right: 1.5rem; }} @media screen and (min-width: 750px) {.card--standard > .card__content {padding: 1rem; } .facets-vertical-sort {margin-left: 4% !important; } .banner__content.banner__content--middle-center {margin-left: 4%; }} .page-width {margin: 0 auto;} .list-item-content {display: grid !important;} </style>
14306<div id="shopify-block-AamtXSzloQkRZWXVoN__5483944384444890901" class="shopify-block shopify-app-block">
14306<script>
14307  // Cart extensions
14308  window.pickystory = window.pickystory || {}
14309  const tryParseJSON = encoded => {
14310    try {
14311      return JSON.parse(encoded)
14312    } catch {
14313      return null
14314    }
14315  };
14316  window.pickystory.widgetSettings = {
14317    pickyCart: {
14318      enabled: 'true' === 'true',
14319      buttonReplacing: {
14320        selector: tryParseJSON('null'),
14321      },
14322      counterReplacing: {
14323        selector: tryParseJSON('null'),
14324        template: tryParseJSON('"${count} items"'),
14325      },
14326      popupHiding: {
14327        style: tryParseJSON('null'),
14328      },
14329      customHtmlSlot: "\u003cscript\u003e\n(() =\u003e {\n  \/* Script 1: UI fixes + hide duplicate PDP product in FBT + stable show\/hide 2nd vs 3rd item (no flicker) *\/\n\n  if (window.__FBT_TITLE_BASIC_V1__) return;\n  window.__FBT_TITLE_BASIC_V1__ = true;\n\n\n\/\/ --- Scope: run everywhere EXCEPT these product pages ---\nconst EXCLUDE_PATHS = [\n  '\/products\/flush-exhaust-mount-luxe',\n  '\/products\/whisperceiling®-dc™-ventilation-fan-110-130-150-cfm',\n  '\/products\/flush-exhaust-mount-lite',\n  '\/products\/whispervalue®-dc™-ideal-single-multi-family-solution-50-80-or-100-cfm'\n];\n\n\/\/ normalize pathname to be safe with ™\/® (some browsers keep them encoded)\nconst normalizePath = (p) =\u003e {\n  const raw = (p || '').split('?')[0].replace(\/\\\/$\/, '');\n  let decoded = raw;\n  try { decoded = decodeURIComponent(raw); } catch (_) {}\n  return { raw, decoded };\n};\n\nconst shouldRunHere = () =\u003e {\n  const { raw, decoded } = normalizePath(location.pathname);\n\n  return !EXCLUDE_PATHS.some((ex) =\u003e {\n    const exNorm = normalizePath(ex);\n    \/\/ match either encoded or decoded forms + allow trailing stuff like variant params\n    return raw.startsWith(exNorm.raw) || decoded.startsWith(exNorm.decoded);\n  });\n};\n\nif (!shouldRunHere()) return;\n\n\n\n\n  const SEL = {\n    \/\/ FBT\n    fbtRoot: '.picky-fbt-inline__content',\n    fbtItem: '.picky-fbt-inline__item',\n    fbtTitleInner: '.picky-product-card__title [class*=\"_inner_\"]',\n\n    \/\/ PDP title (your selector)\n    pdpTitle: '.product__title.small-hide',\n\n    \/\/ FBT Wrapper\n    wrapperInner: '.picky-fbt-inline__content [class*=\"_wrapperInner_\"]',\n\n    \/\/ Separators\n    sepAny: '[class*=\"_separator_\"], ._separator_',\n\n    \/\/ State\n    preorderBtn: '.restock-rocket-preorder-button, .product-form__buttons .restock-rocket-preorder-button',\n\n    \/\/ Triggers\n    productForm: 'form[action^=\"\/cart\/add\"]',\n    productInfo: '.product__info-container'\n  };\n\n  \/\/ 1) Always hide separators via CSS\n  (() =\u003e {\n    const style = document.createElement('style');\n    style.textContent = `\n      ${SEL.fbtRoot} ${SEL.sepAny} {\n        display: none !important;\n        pointer-events: none !important;\n        visibility: hidden !important;\n      }\n      .picky-fbt-inline__content [class*=\"_wrapperInner_\"]{\n        justify-content: center !important;\n      }\n\n      \/* Remove the checkmark AND reclaim its space *\/\n      .picky-fbt-inline__content .picky-product-card__checker {\n        display: none !important;\n      }\n\n      \/* If the card reserves left space for the checker, remove it *\/\n      .picky-fbt-inline__content .picky-product-card {\n        padding-left: 0 !important;\n        margin-left: 0 !important;\n      }\n\n      \/* If the card is grid-based and reserves a first column (common in widgets), collapse it *\/\n      .picky-fbt-inline__content .picky-product-card {\n        grid-template-columns: 1fr !important;\n      }\n    `;\n    document.head.appendChild(style);\n  })();\n\n  const clean = (s) =\u003e\n    (s || '')\n      .replace(\/\\u00A0\/g, ' ')\n      .replace(\/\\s+\/g, ' ')\n      .trim();\n\n  const firstLine = (s) =\u003e\n    (s || '')\n      .replace(\/\\u00A0\/g, ' ')\n      .split('\\n')\n      .map(l =\u003e clean(l))\n      .filter(Boolean)[0] || '';\n\n  \/\/ IMPORTANT: exact matching but normalized (spaces\/case\/nbsp\/newline)\n  const normTitle = (s) =\u003e clean(firstLine(s)).toLowerCase();\n\n  const isVisible = (el) =\u003e {\n    if (!el) return false;\n    const cs = getComputedStyle(el);\n    if (cs.display === 'none' || cs.visibility === 'hidden' || cs.opacity === '0') return false;\n    return el.getClientRects().length \u003e 0;\n  };\n\n  const resetHides = (root) =\u003e {\n    root\n      .querySelectorAll(`${SEL.fbtItem}[data-fbt-hidden=\"1\"], ${SEL.fbtItem}[data-fbt-show=\"0\"]`)\n      .forEach((it) =\u003e {\n        it.style.removeProperty('display');\n        it.removeAttribute('data-fbt-hidden');\n        it.removeAttribute('data-fbt-show');\n      });\n  };\n\n  const hide = (el, attr) =\u003e {\n    if (!el) return;\n    el.style.setProperty('display', 'none', 'important');\n    el.setAttribute(attr, '1');\n  };\n\n  const show = (el) =\u003e {\n    if (!el) return;\n    el.style.removeProperty('display');\n    el.setAttribute('data-fbt-show', '1');\n  };\n\n  const hideSepsRuntime = (root) =\u003e {\n    if (!root) return;
14329\n    root.querySelectorAll(SEL.sepAny).forEach((el) =\u003e {\n      el.style.setProperty('display', 'none', 'important');\n      el.style.setProperty('pointer-events', 'none', 'important');\n      el.style.setProperty('visibility', 'hidden', 'important');\n    });\n  };\n\n  const isPreorderActive = () =\u003e {\n    const btn = document.querySelector(SEL.preorderBtn);\n    return isVisible(btn);\n  };\n\n  const hidePdpItemInFbtByTitle = (items) =\u003e {\n    const pdpTitleEl = document.querySelector(SEL.pdpTitle);\n    const pdpT = normTitle(pdpTitleEl?.textContent || pdpTitleEl?.innerText || '');\n    if (!pdpT) return;\n\n    for (const it of items) {\n      const tEl = it.querySelector(SEL.fbtTitleInner);\n      const t = normTitle(tEl?.textContent || tEl?.innerText || '');\n      if (t \u0026\u0026 t === pdpT) {\n        hide(it, 'data-fbt-hidden');\n        return;\n      }\n    }\n  };\n\n  const run = () =\u003e {\n    const root = document.querySelector(SEL.fbtRoot);\n    if (!root) return;\n\n    hideSepsRuntime(root);\n    resetHides(root);\n\n    const items = [...root.querySelectorAll(SEL.fbtItem)];\n    if (items.length \u003c 3) return;\n\n    hidePdpItemInFbtByTitle(items);\n\n    const remaining = items.filter(it =\u003e it.getAttribute('data-fbt-hidden') !== '1');\n    if (remaining.length \u003c 2) return;\n\n    const other = remaining[0];\n    const compC = remaining[remaining.length - 1];\n\n    const preorder = isPreorderActive();\n\n    if (preorder) {\n      show(other);\n      hide(compC, 'data-fbt-show');\n    } else {\n      hide(other, 'data-fbt-show');\n      show(compC);\n    }\n  };\n\n  let raf = 0;\n  const tick = () =\u003e {\n    cancelAnimationFrame(raf);\n    raf = requestAnimationFrame(run);\n  };\n\n  const tickSoon = () =\u003e {\n    tick();\n    setTimeout(tick, 120);\n    setTimeout(tick, 320);\n  };\n\n  const attach = () =\u003e {\n    const root = document.querySelector(SEL.fbtRoot);\n    if (!root) return false;\n\n    tickSoon();\n\n    const moFbt = new MutationObserver(() =\u003e tickSoon());\n    moFbt.observe(root, { subtree: true, childList: true, attributes: true });\n\n    document.addEventListener('change', (e) =\u003e {\n      if (e.target?.closest(SEL.productForm) || e.target?.closest(SEL.productInfo)) tickSoon();\n    }, true);\n\n    document.addEventListener('click', (e) =\u003e {\n      if (e.target?.closest(SEL.productInfo)) tickSoon();\n    }, true);\n\n    const form = document.querySelector(SEL.productForm) || document.querySelector(SEL.productInfo);\n    if (form) {\n      const moForm = new MutationObserver(() =\u003e tickSoon());\n      moForm.observe(form, { subtree: true, childList: true, attributes: true });\n    }\n\n    const _push = history.pushState;\n    const _replace = history.replaceState;\n    history.pushState = function () { _push.apply(this, arguments); tickSoon(); };\n    history.replaceState = function () { _replace.apply(this, arguments); tickSoon(); };\n    window.addEventListener('popstate', tickSoon);\n\n    return true;\n  };\n\n  if (attach()) return;\n\n  const boot = new MutationObserver(() =\u003e {\n    if (attach()) boot.disconnect();\n  });\n  boot.observe(document.documentElement, { childList: true, subtree: true });\n  setTimeout(() =\u003e boot.disconnect(), 15000);\n})();\n\n\n(() =\u003e {\n  \/* Script 2 (stable)*\/\n\n  if (window.__FBT_SYNC_DAWN_ONECHECK_V2__) return;\n  window.__FBT_SYNC_DAWN_ONECHECK_V2__ = true;\n\n\n\n\/\/ --- Scope: run everywhere EXCEPT these product pages ---\nconst EXCLUDE_PATHS = [\n  '\/products\/flush-exhaust-mount-luxe',\n  '\/products\/whisperceiling®-dc™-ventilation-fan-110-130-150-cfm',\n  '\/products\/flush-exhaust-mount-lite',\n  '\/products\/whispervalue®-dc™-ideal-single-multi-family-solution-50-80-or-100-cfm'\n];\n\n\/\/ normalize pathname to be safe with ™\/® (some browsers keep them encoded)\nconst normalizePath = (p) =\u003e {\n  const raw = (p || '').split('?')[0].replace(\/\\\/$\/, '');\n  let decoded = raw;\n  try { decoded = decodeURIComponent(raw); } catch (_) {}\n  return { raw, decoded };\n};\n\nconst shouldRunHere = () =\u003e {\n  const { raw, decoded } = normalizePath(location.pathname);\n\n  return !EXCLUDE_PATHS.some((ex) =\u003e {\n    const exNorm = normalizePath(ex);\n    \/\/ match either encoded or decoded forms + allow trailing stuff like variant params\n    return raw.startsWith(exNorm.raw) || decoded.startsWith(exNorm.decoded);\n  });\n};\n\nif (!shouldRunHere()) return;\n\n\n\n\n  const SEL = {\n    fbtRoot: '.picky-fbt-inline__content',\n    fbtItem: '.picky-fbt-inline__item',\n    fbtOption: '.picky-option[data-option-name]',\n    fbtPill: 'button.picky-pill__item',\n    checker: '.picky-product-card__checker',\n\n    pdpFieldset: 'fieldset.product-form__input',\n    pdpLegend: 'legend.form__label',\n    pdpRadio: 'input[type=\"radio\"]'\n  };\n\n  const clean = (s) =\u003e (s || '').replace(\/\\u00A0\/g, ' ').replace(\/\\s+\/g, ' ').trim();\n  const key = (s) =\u003e clean(s).toLowerCase();\n\n  const simulate = (el) =\u003e {\n    if (!el) return false;\n    const o = { bubbles: true, cancelable: true, composed: true, view: window };\n    try { el.dispatchEvent(new PointerEvent('pointerdown', o)); } catch(_) {}\n    try { el.dispatchEvent(new MouseEvent('mousedown', o)); } catch(_) {}\n    try { el.dispatchEvent(new MouseEvent('mouseup', o)); } catch(_) {}\n    try { el.dispatchEvent(new MouseEvent('click', o)); } catch(_) {}\n    try { el.click(); } catch(_) {}\n    return true;\n  };\n\n  \/\/ --- DAWN: lock focus scroll (culprit in trace) ---\n  const withDawnNoJump = (fn) =\u003e {\n    const x = window.scrollX;\n    const y = window.scrollY;
14329\n\n    const oldFocus = HTMLElement.prototype.focus;\n    const oldSIV = Element.prototype.scrollIntoView;\n\n    HTMLElement.prototype.focus = function (opts) {\n      try {\n        const next = (opts \u0026\u0026 typeof opts === 'object')\n          ? { ...opts, preventScroll: true }\n          : { preventScroll: true };\n        return oldFocus.call(this, next);\n      } catch (_) {\n        return oldFocus.call(this);\n      }\n    };\n\n    Element.prototype.scrollIntoView = function () {};\n\n    const restore = () =\u003e {\n      HTMLElement.prototype.focus = oldFocus;\n      Element.prototype.scrollIntoView = oldSIV;\n    };\n\n    try {\n      fn();\n    } finally {\n      setTimeout(restore, 900);\n      requestAnimationFrame(() =\u003e window.scrollTo(x, y));\n      setTimeout(() =\u003e window.scrollTo(x, y), 30);\n      setTimeout(() =\u003e window.scrollTo(x, y), 120);\n      setTimeout(() =\u003e window.scrollTo(x, y), 260);\n      setTimeout(() =\u003e window.scrollTo(x, y), 520);\n    }\n  };\n  \/\/ ------------------------------------------------\n\n  const isSelectedPill = (pill) =\u003e pill?.getAttribute('data-option-value-is-selected') === 'true';\n  const isAvailablePill = (pill) =\u003e {\n    const v = pill?.getAttribute('data-option-value-is-available');\n    return v ? v === 'true' : true;\n  };\n\n  const getChecker = (item) =\u003e item?.querySelector?.(SEL.checker) || null;\n  const isCheckerChecked = (checker) =\u003e\n    !!checker \u0026\u0026 (checker.getAttribute('aria-checked') === 'true' || checker.className.includes('_checker_checked_'));\n\n  const clickChecker = (checker) =\u003e {\n    if (!checker) return;\n    try { checker.click(); } catch (_) {}\n  };\n\n  \/\/ Visible items (Script 1 hides the rest)\n  const getVisibleFbtItems = () =\u003e {\n    const root = document.querySelector(SEL.fbtRoot);\n    if (!root) return [];\n    return [...root.querySelectorAll(SEL.fbtItem)].filter(it =\u003e {\n      if (it.getAttribute('data-fbt-hidden') === '1') return false;\n      if (it.getAttribute('data-fbt-conditional-hidden') === '1') return false;\n      if (getComputedStyle(it).display === 'none') return false;\n      return true;\n    });\n  };\n\n  \/\/ enforce exactly one checked item (the visible one)\n  const enforceSingleVisibleChecked = () =\u003e {\n    const root = document.querySelector(SEL.fbtRoot);\n    if (!root) return;\n\n    const items = [...root.querySelectorAll(SEL.fbtItem)];\n    if (!items.length) return;\n\n    const visible = getVisibleFbtItems();\n    const keep = visible[0] || null;\n\n    for (const it of items) {\n      const c = getChecker(it);\n      const checked = isCheckerChecked(c);\n      if (!keep || it !== keep) {\n        if (checked) clickChecker(c);\n      }\n    }\n\n    if (keep) {\n      const c = getChecker(keep);\n      if (c \u0026\u0026 !isCheckerChecked(c)) clickChecker(c);\n    }\n  };\n\n  const enforceSoon = () =\u003e {\n    enforceSingleVisibleChecked();\n    setTimeout(enforceSingleVisibleChecked, 60);\n    setTimeout(enforceSingleVisibleChecked, 200);\n  };\n\n  \/\/ Visible swap detection (by visible titles)\n  let lastVisibleSig = '';\n  const getVisibleSig = () =\u003e {\n    const items = getVisibleFbtItems();\n    if (!items.length) return '(none)';\n    return items\n      .map(it =\u003e clean(it.querySelector('.picky-product-card__title [class*=\"_inner_\"]')?.textContent || ''))\n      .join('|');\n  };\n\n  const findPillInItem = (itemEl, optName, valueName) =\u003e {\n    const opt = [...itemEl.querySelectorAll(SEL.fbtOption)]\n      .find(o =\u003e key(o.getAttribute('data-option-name')) === key(optName));\n    if (!opt) return null;\n\n    const v = clean(valueName);\n    const byAttr = opt.querySelector(`${SEL.fbtPill}[data-option-value-name=\"${CSS.escape(v)}\"]`);\n    if (byAttr) return byAttr;\n\n    const pills = [...opt.querySelectorAll(SEL.fbtPill)];\n    return pills.find(b =\u003e clean(b.textContent) === v) || null;\n  };\n\n  \/\/ PDP option discovery\n  const getActiveFormId = () =\u003e {\n    const radios = [...document.querySelectorAll(`${SEL.pdpFieldset} ${SEL.pdpRadio}[form]`)];\n    const ids = [...new Set(radios.map(r =\u003e r.getAttribute('form')).filter(
14329Boolean))];\n    for (const id of ids) {\n      const form = document.getElementById(id);\n      if (form \u0026\u0026 form.offsetParent !== null) return id;\n    }\n    return ids[0] || null;\n  };\n\n  const getPdpFieldsets = () =\u003e {\n    const formId = getActiveFormId();\n    const all = [...document.querySelectorAll(SEL.pdpFieldset)];\n    if (!formId) return all;\n    return all.filter(fs =\u003e fs.querySelector(`${SEL.pdpRadio}[form=\"${CSS.escape(formId)}\"]`));\n  };\n\n  const getPdpSelections = () =\u003e {\n    const out = Object.create(null);\n    getPdpFieldsets().forEach(fs =\u003e {\n      const name = clean(fs.querySelector(SEL.pdpLegend)?.textContent);\n      if (!name) return;\n      const checked = fs.querySelector(`${SEL.pdpRadio}:checked`);\n      if (!checked) return;\n      out[key(name)] = clean(checked.value);\n    });\n    return out;\n  };\n\n  \/\/ KEEP (not used anymore but harmless if left here)\n  const setPdpOption_NoJump = (optName, optValue) =\u003e {\n    \/\/ Intentionally unused (FBT -\u003e PDP removed)\n    return false;\n  };\n\n  \/\/ ---- Sync control ----\n  let fromPdp = false;\n  let fromFbt = false;\n\n  let lastAppliedKey = '';\n  let syncTimer = 0;\n  const SYNC_DELAY = 120;\n\n  \/\/ Trusted click gating\n  let lastTrustedPill = null;\n  let lastTrustedPillAt = 0;\n  const TRUST_WINDOW_MS = 900;\n\n  const clearTrusted = () =\u003e {\n    lastTrustedPill = null;\n    lastTrustedPillAt = 0;\n  };\n\n  const applyPdpToFbtNow = () =\u003e {\n    if (fromFbt) return;\n\n    const items = getVisibleFbtItems();\n    if (!items.length) return;\n\n    const sel = getPdpSelections();\n    const curKey = JSON.stringify(sel);\n\n    if (curKey \u0026\u0026 curKey === lastAppliedKey) {\n      enforceSoon();\n      return;\n    }\n\n    fromPdp = true;\n\n    try {\n      Object.keys(sel).forEach(optKey =\u003e {\n        const val = sel[optKey];\n        items.forEach(item =\u003e {\n          const pill = findPillInItem(item, optKey, val);\n          if (!pill) return;\n          if (!isAvailablePill(pill)) return;\n          if (isSelectedPill(pill)) return;\n          simulate(pill);\n        });\n      });\n\n      lastAppliedKey = curKey;\n\n      setTimeout(enforceSoon, 0);\n      setTimeout(enforceSoon, 120);\n      setTimeout(enforceSoon, 300);\n    } finally {\n      setTimeout(() =\u003e { fromPdp = false; }, 180);\n    }\n  };\n\n  const schedulePdpToFbtSync = () =\u003e {\n    clearTimeout(syncTimer);\n    syncTimer = setTimeout(applyPdpToFbtNow, SYNC_DELAY);\n  };\n\n  \/\/ ✅ CHANGED: trusted FBT selection no longer changes PDP\n  const onFbtSelectedTrusted = (_pill) =\u003e {\n    \/\/ Do nothing to PDP.\n    \/\/ Only keep our “one visible checked” rule after the widget updates.\n    setTimeout(enforceSoon, 0);\n    setTimeout(enforceSoon, 120);\n    setTimeout(enforceSoon, 300);\n  };\n\n  const attach = () =\u003e {\n    const fbt = document.querySelector(SEL.fbtRoot);\n    if (!fbt || !fbt.querySelector(SEL.fbtPill)) return false;\n\n    enforceSoon();\n    schedulePdpToFbtSync();\n\n    fbt.addEventListener('pointerdown', (e) =\u003e {\n      const p = e.target?.closest?.(SEL.fbtPill);\n      if (e.isTrusted) {\n        lastTrustedPill = p || null;\n        lastTrustedPillAt = Date.now();\n      }\n    }, true);\n\n    const moPills = new MutationObserver((muts) =\u003e {\n      if (fromPdp) return;\n\n      for (const m of muts) {\n        if (m.type !== 'attributes') continue;\n        if (m.attributeName !== 'data-option-value-is-selected') continue;\n\n        const el = m.target;\n        if (!(el instanceof Element)) continue;\n        if (!el.matches(SEL.fbtPill)) continue;\n\n        if (el.getAttribute('data-option-value-is-selected') === 'true') {\n          const now = Date.now();\n          const isTrustedPick =\n            !!lastTrustedPill \u0026\u0026\n            (el === lastTrustedPill) \u0026\u0026\n            (now - lastTrustedPillAt \u003c= TRUST_WINDOW_MS);\n\n          clearTrusted();\n\n          if (isTrustedPick) onFbtSelectedTrusted(el);\n          break;\n        }\n      }\n    });\n\n    moPills.observe(fbt, {\n      subtree: true,\n      attributes: true,\n      attributeFilter: ['data-option-value-is-selected']\n    });\n\n    lastVisibleSig = getVisibleSig();\n\n    const moVisible = new MutationObserver((muts) =\u003e {\n      if (fromPdp || fromFbt) return;\n\n      let relevant = false;\n      for (const m of muts) {\n        if (m.type !== 'attributes') continue;\n        const t = m.target;\n        if (!(t instanceof Element)) continue;\n        if (!t.matches(SEL.fbtItem)) continue;\n\n        if (\n          m.attributeName === 'style' ||\n          m.attributeName === 'data-fbt-hidden' ||\n          m.attributeName === 'data-fbt-conditional-hidden'\n        ) {\n          relevant = true;\n          break;\n        }\n      }\n      if (!relevant) return;\n\n      const sig = getVisibleSig();\n      if (sig \u0026\u0026 sig !== lastVisibleSig) {\n        lastVisibleSig = sig;\n\n        clearTrusted();\n\n        lastAppliedKey = '';\n        schedulePdpToFbtSync();\n\n        enforceSoon();\n      } else {\n        enforceSoon();\n      }\n    });\n\n    moVisible.observe(fbt, {\n      subtree: true,\n      attributes: true,\n      attributeFilter: ['style', 'data-fbt-hidden', 'data-fbt-conditional-hidden']\n    });\n\n    document.addEventListener('change', (e) =\u003e {\n      if (fromFbt) return;\n      const t = e.target;\n      if (t \u0026\u0026 t.matches(`${SEL.pdpFieldset} ${SEL.pdpRadio}`)) {\n        clearTrusted();\n        schedulePdpToFbtSync();\n        enforceSoon();\n      }\n    }, true);\n\n    document.addEventListener('click', (e) =\u003e {\n      if (fromFbt) return;\n      const lbl = e.target?.closest?.(`${SEL.pdpFieldset} label[for]`);\n      if (lbl) {\n        clearTrusted();\n        schedulePdpToFbtSync();\n        enforceSoon();\n      }\n    }, true);\n\n    return true;\n  };\n\n  if (attach()) return;\n\n  const boot = new MutationObserver(() =\u003e {\n    if (attach()) boot.disconnect();\n  });\n  boot.observe(document.documentElement, { childList: true, subtree: true });\n  setTimeout(() =\u003e boot.disconnect(), 15000);\n})();\n\n\n\/*Script 3*\/\n(() =\u003e {\n  if (window.__FBT_INLINE_TOTAL_PRICE_V1__) return;\n  window.__FBT_INLINE_TOTAL_PRICE_V1__ = true;\n\n\n\n\/\/ --- Scope: run everywhere EXCEPT these product pages ---\nconst EXCLUDE_PATHS = [\n  '\/products\/flush-exhaust-mount-luxe',\n  '\/products\/whisperceiling®-dc™-ventilation-fan-110-130-150-cfm',\n  '\/products\/flush-exhaust-mount-lite',\n  '\/products\/whispervalue®-dc™-ideal-single-multi-family-solution-50-80-or-100-cfm'\n];\n\n\/\/ normalize pathname to be safe with ™\/® (some browsers keep them encoded)\nconst normalizePath 
14329= (p) =\u003e {\n  const raw = (p || '').split('?')[0].replace(\/\\\/$\/, '');\n  let decoded = raw;\n  try { decoded = decodeURIComponent(raw); } catch (_) {}\n  return { raw, decoded };\n};\n\nconst shouldRunHere = () =\u003e {\n  const { raw, decoded } = normalizePath(location.pathname);\n\n  return !EXCLUDE_PATHS.some((ex) =\u003e {\n    const exNorm = normalizePath(ex);\n    \/\/ match either encoded or decoded forms + allow trailing stuff like variant params\n    return raw.startsWith(exNorm.raw) || decoded.startsWith(exNorm.decoded);\n  });\n};\n\nif (!shouldRunHere()) return;\n\n\n\n\n  const SEL = {\n    root: '.picky-fbt-inline__content',\n\n    \/\/ Hide these\n    pricesWrap: '.picky-product-card__footer .picky-product-card__prices-wrapper',\n    totals:     '.picky-totals',\n\n    \/\/ ✅ Price source you want\n    cardPrice:  '.picky-product-card__price',\n\n    \/\/ Button + insertion point\n    btn:        '.picky-button.picky-fbt-inline__button',\n    btnContent: '.picky-button.picky-fbt-inline__button .picky-button__content',\n    btnTextSpan: '.picky-button.picky-fbt-inline__button .picky-button__content span'\n  };\n\n  \/\/ 1) CSS: hide the two price blocks + tiny spacing style for the inline price\n  (() =\u003e {\n    const style = document.createElement('style');\n    style.textContent = `\n      ${SEL.root} ${SEL.pricesWrap},\n      ${SEL.root} ${SEL.totals} {\n        display: none !important;\n      }\n\n      .fbt-inline-total-price {\n        white-space: nowrap;\n        margin-left: 8px;\n        opacity: 0.9;\n      }\n\n       .picky-widget.picky-fbt-inline .picky-totals {\n       display: none;\n       }\n\n      .fbt-inline-total-price__sep {\n        margin: 0 8px;\n        opacity: 0.6;\n      }\n    `;\n    document.head.appendChild(style);\n  })();\n\n  const clean = (s) =\u003e (s || '').replace(\/\\u00A0\/g, ' ').replace(\/\\s+\/g, ' ').trim();\n  const firstLine = (s) =\u003e\n    (s || '')\n      .replace(\/\\u00A0\/g, ' ')\n      .split('\\n')\n      .map(l =\u003e clean(l))\n      .filter(Boolean)[0] || '';\n\n  const isVisible = (el) =\u003e {\n    if (!el) return false;\n    const cs = getComputedStyle(el);\n    if (cs.display === 'none' || cs.visibility === 'hidden') return false;\n    return el.getClientRects().length \u003e 0;\n  };\n\n  const getVisibleFbtItem = (root) =\u003e {\n    const items = [...root.querySelectorAll('.picky-fbt-inline__item')];\n    return items.find(it =\u003e {\n      if (it.getAttribute('data-fbt-hidden') === '1') return false;\n      if (it.getAttribute('data-fbt-conditional-hidden') === '1') return false;\n      if (getComputedStyle(it).display === 'none') return false;\n      return isVisible(it);\n    }) || null;\n  };\n\n  \/\/ ✅ NEW: read the exact price text from .picky-product-card__price (no formatting)\n  const getTotalPrice = () =\u003e {\n    const root = document.querySelector(SEL.root);\n    if (!root) return '';\n\n    \/\/ 1) Preferred: the price inside the VISIBLE item\n    const visItem = getVisibleFbtItem(root);\n    const cardPriceEl = visItem?.querySelector(SEL.cardPrice) || null;\n    const cardPriceText = firstLine(cardPriceEl?.textContent || cardPriceEl?.innerText || '');\n    if (cardPriceText) return cardPriceText;\n\n    \/\/ 2) Fallback: any card price in widget (if visibility detection fails)\n    const anyCardPriceEl = root.querySelector(SEL.cardPrice);\n    const anyCardPriceText = firstLine(anyCardPriceEl?.textContent || anyCardPriceEl?.innerText || '');\n    if (anyCardPriceText) return anyCardPriceText;\n\n    \/\/ 3) Fallbacks (only if needed)\n    const totalsEl = root.querySelector(SEL.totals);\n    const totalsText = firstLine(totalsEl?.textContent || '');\n    if (totalsText) return totalsText;\n\n    const wrapEl = root.querySelector(SEL.pricesWrap);\n    const wrapText = firstLine(wrapEl?.textContent || '');\n    if (wrapText) return wrapText;\n\n    return '';\n  };\n\n  const ensureInlinePrice = () =\u003e {\n    const btn = document.querySelector(SEL.btn);\n    const content = document.querySelector(SEL.btnContent);\n    if (!btn || !content) return;\n\n    const price = getTotalPrice();\n    if (!price) return;\n\n    \/\/ Find or create our inline node\n    let node = btn.querySelector('.fbt-inline-total-price');\n    if (!node) {\n      node = document.createElement('span');\n      node.className = 'fbt-inline-total-price';\n\n      const sep = document.createElement('span');\n      sep.className = 'fbt-inline-total-price__sep';\n      sep.textContent = '|';\n\n      const priceSpan = document.createElement('span');\n      priceSpan.className = 'fbt-inline-total-price__value';\n\n      node.appendChild(sep);\n      node.appendChild(priceSpan);
14329\n\n      \/\/ Insert right after \".picky-button__content span\"\n      const textSpan = btn.querySelector(SEL.btnTextSpan);\n      if (textSpan \u0026\u0026 textSpan.parentNode) {\n        textSpan.insertAdjacentElement('afterend', node);\n      } else {\n        content.appendChild(node);\n      }\n    }\n\n    const priceValue = node.querySelector('.fbt-inline-total-price__value');\n    if (priceValue) priceValue.textContent = ` ${price}`;\n  };\n\n  const runSoon = () =\u003e {\n    ensureInlinePrice();\n    setTimeout(ensureInlinePrice, 80);\n    setTimeout(ensureInlinePrice, 240);\n  };\n\n  const attach = () =\u003e {\n    const root = document.querySelector(SEL.root);\n    if (!root) return false;\n\n    runSoon();\n\n    const mo = new MutationObserver(() =\u003e runSoon());\n    mo.observe(root, { subtree: true, childList: true, attributes: true, characterData: true });\n\n    return true;\n  };\n\n  if (attach()) return;\n\n  const boot = new MutationObserver(() =\u003e {\n    if (attach()) boot.disconnect();\n  });\n  boot.observe(document.documentElement, { childList: true, subtree: true });\n  setTimeout(() =\u003e boot.disconnect(), 15000);\n})();\n\n\n\n\/*Script 4*\/\n(() =\u003e {\n  \/\/ Exclude these product pages\n  const EXCLUDE_PATHS = [\n    '\/products\/flush-exhaust-mount-luxe',\n    '\/products\/whisperceiling®-dc™-ventilation-fan-110-130-150-cfm',\n    '\/products\/flush-exhaust-mount-lite',\n    '\/products\/whispervalue®-dc™-ideal-single-multi-family-solution-50-80-or-100-cfm'\n  ];\n\n  const normalizePath = (p) =\u003e {\n    const raw = (p || '').split('?')[0].replace(\/\\\/$\/, '');\n    let decoded = raw;\n    try { decoded = decodeURIComponent(raw); } catch (_) {}\n    return { raw, decoded };\n  };\n\n  const shouldInject = () =\u003e {\n    const { raw, decoded } = normalizePath(location.pathname);\n    return !EXCLUDE_PATHS.some((ex) =\u003e {\n      const exNorm = normalizePath(ex);\n      return raw.startsWith(exNorm.raw) || decoded.startsWith(exNorm.decoded);\n    });\n  };\n\n  if (!shouldInject()) return;\n\n  \/\/ Only apply if FBT exists on the page\n  const hasFbt = () =\u003e !!document.querySelector('.picky-widget.picky-fbt-inline, .picky-fbt-inline__content');\n\n  const inject = () =\u003e {\n    if (document.getElementById('amplify-fbt-css-v1')) return;\n    const style = document.createElement('style');\n    style.id = 'amplify-fbt-css-v1';\n    style.textContent = `\n      \/*FBT widget*\/\n      .picky-fbt-inline__item { width: 100%; }\n\n      .picky-widget.picky-fbt-inline [class*=\"_wrapperInner_\"] {\n        min-width: 100%;\n        padding: 0;\n        overflow: hidden;\n      }\n\n      .picky-widget.picky-fbt-inline [class*=\"_bundle_\"] {\n        padding-left: 0;\n        padding-right: 0;\n      }\n\n      .picky-fbt-inline__item .picky-product-card { flex-direction: row; }\n\n      .picky-fbt-inline__item .picky-product-card .picky-product-card__image { width: 190px; }\n\n      .picky-widget.picky-fbt-inline .picky-header .picky-header__title { text-align: left; }\n\n      .picky-fbt-inline__item .picky-product-card__checker {\n        position: relative;\n        top: 0;\n        margin-right: 10px;\n      }\n\n      .picky-fbt-inline__item .picky-pill__item:before { border-radius: 4px; }\n    `;\n    document.head.appendChild(style);\n  };\n\n  \/\/ Inject immediately if possible, or wait a moment for the widget to render\n  if (hasFbt()) inject();\n  else {\n    const mo = new MutationObserver(() =\u003e {\n      if (hasFbt()) {\n        inject();\n        mo.disconnect();\n      }\n    });\n    mo.observe(document.documentElement, { childList: true, subtree: true });\n    setTimeout(() =\u003e mo.disconnect(), 15000);\n  }\n})();\n\u003c\/script\u003e",
14330      enableProductPreviewDrawer: true,
14331      enableSocialSharing: true,
14332    },
14333    productCard: {
14334      enableTitleLinks: true
14335    },
14336    
14337    enableStorySessionDiscounts: 'false' !== 'false',
14338    enableBundleButton: 'true' === 'true',
14339    
14340    enablePqBndStories: true,
14341    collectionPageProductCardSelector: tryParseJSON('null'),
14342    enableComboPriceOnCollectionPages: true,
14343  };
14344  
14345    window.pickystory.strings = {};
14346  
14347  window.pickystory.translations = {"buyXGetYTag":"Buy 1 Get ${gifts_number}
14347 Free","cartShareCTA":"Share cart","cartShareLinkCopied":"Link copied!","cartTitle":"Cart","checkout":"Checkout","discountApplyButton":"Apply","discountClearButton":"Clear","discountTitle":"Enter discount code","noteTitle":"Add note","pickyCartGroupingHideItems":"Hide ${number} items","pickyCartGroupingShowItems":"Show ${number} items","recommendedAddButton":"Add","recommendedForCart":"Recommended for your cart","total":"Total:"}
14348</script>
14348
14349
14350
14351
14352
14353<!-- BEGIN app snippet: amplify-widget2 -->
14354<script defer src="https://widget2-cdn.pickystory.com/widget2/latest/pickystory-widget2.min.js"></script>
14354
14355<!-- END app snippet -->
14356
14357<!-- BEGIN app snippet: global-theme-settings -->
14357<script data-amplify="global-settings-json-data" type="application/json">
14358{
14359  "settings": {"enablePickyStoryBranding":true,"enableSwitchingLanguages":false,"enableLocalizeCurrency":true,"enableCompactVariantPicker":false,"bundleDiscountTitle":"AMPLIFY-DISCOUNT","quantityBreaksDiscountTitle":"PICKY-VOLUME-DISCOUNT","bundleNoteDescription":"Bundle “${bundle_name}” (group ${purchased_bundle_id})","bundleNotePrefix":"Part of","displayBundleNoteOnChildProducts":true,"redirectFromBuilderInlineProductPageToScenario":true,"displayShopifyCompareAtPriceOnByobProduct":false,"showByobSectionsOpenedByDefault":false,"variantPickerLook":"Pills","showProductCardImagesWithoutVariant":true,"productCardImagesAspectRatioHeight":7,"productCardImagesAspectRatioWidth":5,"enableWidgetSDK":false},
14360  "amplifyTheme": {"settings":{"showProductCardLabels":true,"showProductQuantityInput":true,"showProductCardImagesWithoutVariant":true,"widgetsHeaderAlignment":"Left","widgetsCtaAlignment":"Bottom","variantPickerLook":"Pills","variantColorPickerLook":"Dropdown","showSelectedSwatchLabel":false,"enableOptionTitleDisplay":false}
14360,"styles":{"themeBackgroundColor":"#FFFFFF","themeColor":"#1B1C30","themeAccentBackgroundColor":"#e73c3eff","themeAccentColor":"#FFFFFF","themeFontFamily":"Sans-serif","themeBorderRadiusScale":0,"productCardNameFontSizeScale":1,"productCardNameFontWeightScale":1,"productCardNameColor":null,"productCardImagesAspectRatioHeight":7,"productCardImagesAspectRatioWidth":5,"productCardTotalPriceFontSizeScale":1,"productCardTotalPriceFontWeightScale":1,"productCardTotalPriceColor":null,"productComparePriceFontSizeScale":1,"productComparePriceFontWeightScale":1,"productComparePriceColor":null,"productCheckboxBackgroundColor":null,"productCheckboxColor":null,"widgetsHeaderFontSizeScale":1,"widgetsHeaderFontWeightScale":1,"widgetsHeaderColor":null,"widgetsSubHeaderFontSizeScale":1,"widgetsSubHeaderFontWeightScale":1,"widgetsSubHeaderColor":null,"widgetsCtaFontSizeScale":1,"widgetsCtaFontWeightScale":1,"widgetsCtaBackgroundColor":null,"widgetsCtaColor":null,"widgetsCheckboxBackgroundColor":null,"widgetsCheckboxColor":null,"widgetsPriceFontSizeScale":1,"widgetsPriceFontWeightScale":1,"widgetsPriceColor":null,"widgetsDiscountPriceFontSizeScale":1,"widgetsDiscountPriceFontWeightScale":1,"widgetsDiscountPriceColor":null,"swatchesSizeScale":1,"swatchesBorderRadiusScale":1,"swatchesBorderWidthScale":0.25,"selectedSwatchLabelSizeScale":1,"pillsSizeScale":1.25,"pillsBorderRadiusScale":0.25,"pillsBorderWidthScale":0.125,"themeCustomCss":".picky-widget,\n.picky-widget.picky-cart,\n.picky-recommendations__content,\n.picky-widget.picky-bnd-pdp,\n.picky-widget.picky-byob-bundle.picky-byob-pdp,\n.picky-widget .picky-upsell-bundle,\n.picky-widget.picky-byob-bundle.picky-byob-inline,\n.picky-widget.picky-qb-bundle,\n.picky-widget.picky-fbt-inline .picky-fbt-inline__content,\n.picky-widget .picky-button,\n.picky-widget .picky-totals__title,\n.picky-widget .picky-totals__price,\n.picky-title.picky-reacted-product__title,\n.picky-title.picky-product-card__title,\n.picky-product-card__prices-wrapper .picky-product-card__price,\n.picky-upsell-bundle__content,\n.picky-subscriptions__item,\nselect,\n.picky-pill__item,\n.picky-add-discount-field__button,\n.picky-add-note-field__button {\nfont-family: Outfit;\n}\n\n\n.picky-widget.picky-cart .picky-button,\n.picky-fbt-inline__button:before,\n.picky-fbt-inline {\nbackground: #E73C3E;\n--ps-theme-accent-background-color: #E73C3E;\n}\n\n\/*Variants on different themes*\/\nbody.gradient.theme--product-floor-vents-luxe-colour .picky-fbt-inline__item .picky-pill__item:not([class*=\"_disabled_\"]):not([class*=\"_selected_\"]),\nbody.gradient.theme--product- .picky-fbt-inline__item .picky-pill__item:not([class*=\"_disabled_\"]):not([class*=\"_selected_\"]) {\n  border: 1px solid #12121240 !important;\n  box-sizing: border-box !important;\n}\n\nbody.gradient.theme--product-floor-vents-luxe-colour .picky-fbt-inline__item .picky-pill__item:hover:not([class*=\"_disabled_\"]):not([class*=\"_selected_\"]),\nbody.gradient.theme--product- .picky-fbt-inline__item .picky-pill__item:hover:not([class*=\"_disabled_\"]):not([class*=\"_selected_\"]) {\n  border-color: #000 !important;\n}\n\nbody.gradient.theme--product-floor-vents-luxe-colour .picky-fbt-inline__item .picky-pill__item:not([class*=\"_selected_\"])::before,\nbody.gradient.theme--product- .picky-fbt-inline__item .picky-pill__item:not([class*=\"_selected_\"])::before {\n  content: none !important;\n}\n\nbody.gradient.theme--product-Blackout .picky-fbt-inline__item .picky-pill__item:not([class*=\"_disabled_\"]):not([class*=\"_selected_\"]) {\n  border: 1px solid #444444 !important;\n  box-sizing: border-box !important;\n}\n\nbody.gradient.theme--product-Blackout .picky-fbt-inline__item .picky-pill__item:hover:not([class*=\"_disabled_\"]):not([class*=\"_selected_\"]) {\n  border-color: #E73C3E !important;\n}\n\nbody.gradient.theme--product-Blackout .picky-fbt-inline__item .picky-pill__item:not([class*=\"_selected_\"])::before {\n  content: none !important;\n}\n\/*End of Variants on different themes*\/\n\n\n\n.picky-fbt-inline__item .picky-pill__item {\nborder-radius: 5px;\nmin-width: fit-content;\nmin-height: fit-content;\npadding: 8px 15px 8px 15px;\n}\n\n.picky-fbt-inline__item .picky-pill__item [class*=\"_content_\"] {\nfont-size: 14px;\n}\n\n.picky-fbt-inline__item [class*=\"_selected_\"].picky-pill__item:before {\nborder-radius: 4px;\nbackground-color: transparent;\nborder-color: #E73C3E;\n}\n\n.picky-fbt-inline__item [class*=\"_selected_\"].picky-pill__item {\nbackground-color: transparent;\n}\n\n.picky-widget.picky-fbt-inline .picky-fbt-inline__footer {\nmax-width: 100% !important;\n}\n\n\/*End of FBT widget*\/\n\n\/*Cart*\/\n\n.picky-cart__footer .picky-powered-by {\ndisplay: none;\n}\n\n.picky-cart__header .picky-cart__title {\nfont-family: Outfit;
14360\nfont-weight:  700;\ncolor: black;\n}\n\n.picky-recommendations__content .picky-recommendations__title {\nfont-family: Outfit;\nfont-weight:  600;\ncolor: black;\n}\n\n.picky-product-card__title,\n.picky-cart-item__title,\n.picky-add-discount-field__button *,\n.picky-add-note-field__button *,\n.picky-product-card__price,\n.picky-totals__price {\ncolor: black;\n}\n\n.picky-cart__footer [class*=\"_integration_\"] {\ndisplay: none;\n}\n\n.picky-recommendations__content [class*=\"_detailed_\"] {\ngap: calc(var(--ps-indents) * 20px);\n}\n\n.picky-recommendations__content .picky-product-card__image {\nmin-width: 100%;\n}\n\n\/*End of Cart*\/\n\n\/*Buttons*\/\n\n.picky-button,\n.picky-button:before {\nanimation: none !important;\ntransform: none !important;\n  border: 1px solid #E73C3E;   \/* ring stays original color *\/\n  background: #E73C3E;\n  border-radius: 8px; \n  transition: background-color .15s ease, filter .15s ease;\n  background-clip: padding-box;\n}\n\n.picky-button:hover:before {\n  background: #d13436;\n}\n\n\/*End of Buttons*\/\n\n\n\/*Changing FBT backgrounds based on theme background color*\/\nbody.gradient.theme--product- .picky-widget.picky-fbt-inline [class*=\"_bundle_\"],\nbody.gradient.theme--product-floor-vents-luxe-colour .picky-widget.picky-fbt-inline [class*=\"_bundle_\"] {\nbackground: white !important;\ncolor: black !important;\n}\n\nbody.gradient.theme--product- .picky-fbt-inline__item [class*=\"_selected_\"].picky-pill__item,\nbody.gradient.theme--product- .picky-fbt-inline__item .picky-pill__item,\nbody.gradient.theme--product- .picky-header__title,\nbody.gradient.theme--product-floor-vents-luxe-colour .picky-fbt-inline__item [class*=\"_selected_\"].picky-pill__item,\nbody.gradient.theme--product-floor-vents-luxe-colour .picky-fbt-inline__item .picky-pill__item,\nbody.gradient.theme--product-floor-vents-luxe-colour .picky-header__title {\nbackground-color: transparent;\nbackground: transparent;\ncolor: black;\n}\n\/*End of Changing FBT backgrounds based on theme background color*\/"}}
14361}
14362</script>
14362
14363
14364
14365  <style data-amplify-widget-styles>
14366    .picky-widget {
14367      --ps-theme-font-family: Sans-serif;
14368      --ps-theme-color: #1B1C30;
14369      --ps-theme-background-color: #FFFFFF;
14370      --ps-theme-accent-color: #FFFFFF;
14371      --ps-theme-accent-background-color: #e73c3eff;
14372      --ps-theme-product-card-name-font-size-scale: 1;
14373      --ps-theme-product-card-name-font-weight-scale: 1;
14374      --ps-theme-widgets-header-font-size-scale: 1;
14375      --ps-theme-widgets-header-font-weight-scale: 1;
14376      --ps-theme-widgets-sub-header-font-size-scale: 1;
14377      --ps-theme-widgets-sub-header-font-weight-scale: 1;
14378      --ps-theme-widgets-cta-font-size-scale: 1;
14379      --ps-theme-widgets-cta-font-weight-scale: 1;
14380      --ps-theme-swatches-size-scale: 1;
14381      --ps-theme-swatches-radius-scale: 1;
14382      --ps-theme-swatches-border-scale: 0.25;
14383      --ps-theme-pills-size-scale: 1.25;
14384      --ps-theme-pills-radius-scale: 0.25;
14385      --ps-theme-pills-border-scale: 0.125;
14386    }
14387    .picky-widget,
14388.picky-widget.picky-cart,
14389.picky-recommendations__content,
14390.picky-widget.picky-bnd-pdp,
14391.picky-widget.picky-byob-bundle.picky-byob-pdp,
14392.picky-widget .picky-upsell-bundle,
14393.picky-widget.picky-byob-bundle.picky-byob-inline,
14394.picky-widget.picky-qb-bundle,
14395.picky-widget.picky-fbt-inline .picky-fbt-inline__content,
14396.picky-widget .picky-button,
14397.picky-widget .picky-totals__title,
14398.picky-widget .picky-totals__price,
14399.picky-title.picky-reacted-product__title,
14400.picky-title.picky-product-card__title,
14401.picky-product-card__prices-wrapper .picky-product-card__price,
14402.picky-upsell-bundle__content,
14403.picky-subscriptions__item,
14404select,
14405.picky-pill__item,
14406.picky-add-discount-field__button,
14407.picky-add-note-field__button {
14408font-family: Outfit;
14409}
14410
14411
14412.picky-widget.picky-cart .picky-button,
14413.picky-fbt-inline__button:before,
14414.picky-fbt-inline {
14415background: #E73C3E;
14416--ps-theme-accent-background-color: #E73C3E;
14417}
14418
14419/*Variants on different themes*/
14420body.gradient.theme--product-floor-vents-luxe-colour .picky-fbt-inline__item .picky-pill__item:not([class*="_disabled_"]):not([class*="_selected_"]),
14421body.gradient.theme--product- .picky-fbt-inline__item .picky-pill__item:not([class*="_disabled_"]):not([class*="_selected_"]) {
14422  border: 1px solid #12121240 !important;
14423  box-sizing: border-box !important;
14424}
14425
14426body.gradient.theme--product-floor-vents-luxe-colour .picky-fbt-inline__item .picky-pill__item:hover:not([class*="_disabled_"]):not([class*="_selected_"]),
14427body.gradient.theme--product- .picky-fbt-inline__item .picky-pill__item:hover:not([class*="_disabled_"]):not([class*="_selected_"]) {
14428  border-color: #000 !important;
14429}
14430
14431body.gradient.theme--product-floor-vents-luxe-colour .picky-fbt-inline__item .picky-pill__item:not([class*="_selected_"])::before,
14432body.gradient.theme--product- .picky-fbt-inline__item .picky-pill__item:not([class*="_selected_"])::before {
14433  content: none !important;
14434}
14435
14436body.gradient.theme--product-Blackout .picky-fbt-inline__item .picky-pill__item:not([class*="_disabled_"]):not([class*="_selected_"]) {
14437  border: 1px solid #444444 !important;
14438  box-sizing: border-box !important;
14439}
14440
14441body.gradient.theme--product-Blackout .picky-fbt-inline__item .picky-pill__item:hover:not([class*="_disabled_"]):not([class*="_selected_"]) {
14442  border-color: #E73C3E !important;
14443}
14444
14445body.gradient.theme--product-Blackout .picky-fbt-inline__item .picky-pill__item:not([class*="_selected_"])::before {
14446  content: none !important;
14447}
14448/*End of Variants on different themes*/
14449
14450
14451
14452.picky-fbt-inline__item .picky-pill__item {
14453border-radius: 5px;
14454min-width: fit-content;
14455min-height: fit-content;
14456padding: 8px 15px 8px 15px;
14457}
14458
14459.picky-fbt-inline__item .picky-pill__item [class*="_content_"] {
14460font-size: 14px;
14461}
14462
14463.picky-fbt-inline__item [class*="_selected_"].picky-pill__item:before {
14464border-radius: 4px;
14465background-color: transparent;
14466border-color: #E73C3E;
14467}
14468
14469.picky-fbt-inline__item [class*="_selected_"].picky-pill__item {
14470background-color: transparent;
14471}
14472
14473.picky-widget.picky-fbt-inline .picky-fbt-inline__footer {
14474max-width: 100% !important;
14475}
14476
14477/*End of FBT widget*/
14478
14479/*Cart*/
14480
14481.picky-cart__footer .picky-powered-by {
14482display: none;
14483}
14484
14485.picky-cart__header .picky-cart__title {
14486font-family: Outfit;
14487font-weight:  700;
14488color: black;
14489}
14490
14491.picky-recommendations__content .picky-recommendations__title {
14492font-family: Outfit;
14493font-weight:  600;
14494color: black;
14495}
14496
14497.picky-product-card__title,
14498.picky-cart-item__title,
14499.picky-add-discount-field__button *,
14500.picky-add-note-field__button *,
14501.picky-product-card__price,
14502.picky-totals__price {
14503color: black;
14504}
14505
14506.picky-cart__footer [class*="_integration_"] {
14507display: none;
14508}
14509
14510.picky-recommendations__content [class*="_detailed_"] {
14511gap: calc(var(--ps-indents) * 20px);
14512}
14513
14514.picky-recommendations__content .picky-product-card__image {
14515min-width: 100%;
14516}
14517
14518/*End of Cart*/
14519
14520/*Buttons*/
14521
14522.picky-button,
14523.picky-button:before {
14524animation: none !important;
14525transform: none !important;
14526  border: 1px solid #E73C3E;   /* ring stays original color */
14527  background: #E73C3E;
14528  border-radius: 8px; 
14529  transition: background-color .15s ease, filter .15s ease;
14530  background-clip: padding-box;
14531}
14532
14533.picky-button:hover:before {
14534  background: #d13436;
14535}
14536
14537/*End of Buttons*/
14538
14539
14540/*Changing FBT backgrounds based on theme background color*/
14541body.gradient.theme--product- .picky-widget.picky-fbt-inline [class*="_bundle_"],
14542body.gradient.theme--product-floor-vents-luxe-colour .picky-widget.picky-fbt-inline [class*="_bundle_"] {
14543background: white !important;
14544color: black !important;
14545}
14546
14547body.gradient.theme--product- .picky-fbt-inline__item [class*="_selected_"].picky-pill__item,
14548body.gradient.theme--product- .picky-fbt-inline__item .picky-pill__item,
14549body.gradient.theme--product- .picky-header__title,
14550body.gradient.theme--product-floor-vents-luxe-colour .picky-fbt-inline__item [class*="_selected_"].picky-pill__item,
14551body.gradient.theme--product-floor-vents-luxe-colour .picky-fbt-inline__item .picky-pill__item,
14552body.gradient.theme--product-floor-vents-luxe-colour .picky-header__title {
14553background-color: transparent;
14554background: transparent;
14555color: black;
14556}
14557/*End of Changing FBT backgrounds based on theme background color*/
14558  </style>
14559
14560<!-- END app snippet -->
14561
14562
14563
14564
14565
14566<script data-amplify="sxgy-json-data" type="application/json">
14567  {
14568    "story": {
14569      "labels": {}
14570    }
14571  }
14572</script>
14572
14573
14574
14575</div><div id="shopify-block-ARExFU25Wa0dyOGZGU__6251270934270006384" class="shopify-block shopify-app-block">
14575<script>
14576  console.log("Stape gtm: 1.0.4");
14577  window.lsData = {};
14578  window.dataLayer = window.dataLayer || [];
14579  window.addEventListener("message", (event) => {
14580    if (event.data?.event) {
14581      window.dataLayer.push(event.data);
14582    }
14583  });
14584  window.dataShopStape = {
14585    shop: "fittes.ca",
14586    shopId: "11712102462",
14587  }
14588</script>
14588
14589
14590
14591
14592
14593
14594
14595  
14595<script>
14596    console.log("⚠️ User not logged in");
14597    window.localStorage.removeItem('customerShopStape');
14598  </script>
14598
14599
14600
14601
14602
14603<script>
14604  window.currentShopifyMarketStapeId = null;
14605  window.currentShopifyMarketStapeCode = null;
14606  try {
14607    window.currentShopifyMarketStapeId = "2088304828";
14608    window.currentShopifyMarketStapeCode = "US";
14609    // Checkout doesn't render theme app extension blocks, so this is the
14610    // only place the market/country code is ever set. Persisting it here
14611    // lets checkout-side field mapping (country_market_code) fall back to
14612    // the last known value instead of coming up empty.
14613    localStorage.setItem('marketShopStape', JSON.stringify({
14614      id: window.currentShopifyMarketStapeId,
14615      code: window.currentShopifyMarketStapeCode
14616    }));
14617  } catch (error) {
14618    console.error("❌ Stape Error:", error);
14619  }
14620</script>
14620
14621
14622
14623
14624
14625
14626</div><div id="shopify-block-AK0h3cTVsZkRtSWZvY__back-in-stock-restock-alerts-4bb73be2-b7c2-4870-949f-c528145452a3" class="shopify-block shopify-app-block"><link rel="preconnect" href="https://app.restockrocket.io" crossorigin><link rel="preconnect" href="https://ariavent.myshopify.com" crossorigin><!-- Config and setup JS -->
14627<script id="RestockRocketConfig">
14628  window._RestockRocketConfig = window._RestockRocketConfig || {}
14629  window._RestockRocket = window._RestockRocket || {}
14630  window._Stoq = window._RestockRocket
14631  window._StoqConfig = window._RestockRocketConfig
14632  try { window._RestockRocket.inlineRanAt = performance.now(); } catch (e) { }
14633  function normalizeLocale(locale) {
14634    if (!locale || locale.trim() === '') {
14635      return '';
14636    }
14637    return locale.toString().toLowerCase().replace(/-/g, '_');
14638  }
14639
14640  window._RestockRocketConfig.locale = 'en';
14641  window._RestockRocketConfig.normalizedLocale = normalizeLocale('en');
14642  window._RestockRocketConfig.shop = 'ariavent.myshopify.com';
14643  window._RestockRocketConfig.pageType = 'index';
14644  window._RestockRocketConfig.liquidRenderedAt = 1791450974;window._RestockRocketConfig.marketId = 2088304828;window._RestockRocketConfig.countryName = 'United States';
14645    window._RestockRocketConfig.countryIsoCode = 'US';window._RestockRocketConfig.languageIsoCode = 'en';window._RestockRocketConfig.cartInventoryQuantity = {};
14646  if (!window._RestockRocketConfig.cartToken) {
14647    try {
14648      const m = document.cookie.match(/(?:^|;\s*)cart=([^;]+)/);
14649      if (m && m[1]) window._RestockRocketConfig.cartToken = decodeURIComponent(m[1]);
14650    } catch (e) { }
14651  }
14652window._RestockRocketConfig.cachedSettings = {"id":39375,"shop_id":39311,"currency":"CAD","created_at":"2025-08-06T18:16:54.852Z","updated_at":"2026-10-08T00:38:41.575Z","enable_app":true,"enable_signup_widget":true,"storefront_button_text":"Notify me when available","storefront_button_text_color":"#FFFFFF","storefront_button_background_color":"#202223","storefront_form_header":"Notify me","storefront_form_description":"Get a notification as soon as this product is back in stock by signing up below!","storefront_form_button_text":"Notify me when available","storefront_form_button_text_color":"#FFFFFF","storefront_form_button_background_color":"#202223","storefront_form_terms":"You'll only receive notifications for this product.","storefront_form_error":"Please enter a valid email address","storefront_form_success":"Thank you! We will notify you when the product is available.","enable_powered_by":false,"show_button_on_preorder":true,"sms_enabled":true,"email_enabled":true,"storefront_button_disable_tag":"rocket-hide","theme_config":{"disableDebugLoggingForNonPreorderItem":false},"storefront_form_email_placeholder":"Email address","storefront_form_phone_placeholder":"Phone number","storefront_form_phone_label":"Phone number","storefront_form_email_label":"Email","storefront_form_phone_error":"Please enter a valid phone number","storefront_form_customer_name_placeholder":"Name","storefront_form_customer_name_error":"Please enter your name","storefront_form_did_you_mean_error":"Did you mean %{suggested_email}? Or use %{current_email}","form_customer_name_enabled":false,"form_customer_name_required":false,"css_config":"","js_config":"","collect_promotion_consent":true,"storefront_form_promotion_consent_label":"Notify me about other news, sales, discounts & offers too","show_button_on_collection":false,"sms_default_country":"ca","sms_allowed_countries":[],"sms_restrict_country":false,"sms_default_channel":true,"optin_required":false,"optin_custom_domain_enabled":false,"optin_success_text":"Registration confirmed! You'll receive an alert when the product is restocked.","storefront_button_border_radius":0,"storefront_button_disable_tag_hides_button":true,"storefront_button_disable_tag_enabled":false,"quantity_required":false,"storefront_form_quantity_label":"Quantity","enable_alerts":true,"sms_allowed":true,"email_allowed":true,"collect_promotion_consent_default":true,"insert_button_after_selector":".product-form__submit","insert_button_after_selector_type":"afterend","storefront_button_position_type":"specific","storefront_form_duplicate_error":"You've already subscribed for alerts to this product.","storefront_mixed_cart_error":"Preorders must be purchased 
14652separately from regular items. Please complete your current order first, or clear your cart to continue.","storefront_error_heading":"Error","default_locale":"en","collection_page_button_text_color":"#FFFFFF","collection_page_button_background_color":"#202223","show_button_if_any_out_of_stock":false,"show_button_if_any_variant_out_of_stock_collection":false,"show_button_on_index":false,"insert_button_after_selector_collection":".card__inner","insert_button_after_selector_index":".card__inner","push_enabled":false,"push_allowed":false,"storefront_form_push_label":"Push","storefront_form_push_description":"Click 'Allow' to be notified via push notification","storefront_form_push_error":"Permission rejected! Please review notification settings and try again","storefront_font_family":"Outfit","insert_button_after_selector_collection_type":"afterend","show_channel_selector":false,"storefront_form_empty_error":"Please fill in one or more of the options above","storefront_form_push_input":"Send notification to your browser","insert_button_after_selector_page":".card__inner","show_button_on_page":false,"insert_button_after_selector_search":".card__inner","show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":".full-unstyled-link","index_link_selector":"","page_link_selector":"","search_link_selector":"","collection_check_link_visibility":true,"collection_buttons_container":"#product-grid","index_buttons_container":"","page_buttons_container":"","search_buttons_container":"","extension_enable_url_variant_detection":true,"extension_enable_value_variant_detection":true,"extension_value_variant_selector":"[name='id']","resubscribe_text":"This product is out of stock. Get notified when it's restocked again by entering your details below!","preorder_enabled":true,"preorder_buy_button_selector":".shopify-payment-button","preorder_add_to_cart_button_selector":".product-form__submit","preorder_badge_selector":".price__container","preorder_button_out_of_stock_text":"Out of stock","preorder_button_add_to_cart_text":"Add to cart","preorder_form_selector":"product-form form[action*=\"/cart/add\"]","preorder_collection_enabled":true,"preorder_collection_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_index_enabled":false,"preorder_index_form_selector":"form[action*=\"/cart/add\"]","preorder_index_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_page_enabled":false,"preorder_page_form_selector":"form[action*=\"/cart/add\"]","preorder_page_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_search_enabled":false,"preorder_search_form_selector":"form[action*=\"/cart/add\"]","preorder_search_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_collection_badge_selector":".card__inner","preorder_index_badge_selector":".card__inner","preorder_page_badge_selector":".card__inner","preorder_search_badge_selector":".card__inner","preorder_badge_selector_type":"afterend","preorder_collection_badge_selector_type":"afterend","preorder_button_child_selector":"span","preorder_button_disclaimer_insert_selector":".product-form__submit","preorder_button_disclaimer_insert_selector_type":"afterend","preorder_payment_insert_selector":".product-form__submit","preorder_payment_insert_selector_type":"beforebegin","preorder_price_container_selector":".price__container","preorder_price_container_selector_insert_type":"afterend","preorder_terms_insert_selector":"","preorder_terms_insert_selector_type":"afterend","preorder_original_price_selector":".price__regular .price-item--regular","preorder_price_format":"{{amount}} {{currency}}","show_badge_if_any_variant_is_preorder":false,"enable_console_debug":false,"inline_form_enabled":true,"inline_form_selector":".product-form__buttons","inline_form_selector_type":"afterend","storefront_form_prefill_customer":true,"storefront_form_show_image":false,"storefront_form_text_color":"#202223","storefront_form_background_color":"#FFFFFF","storefront_form_border_radius":0,"market_setup_type":"multiple_markets","shopify_app_id":5940125,"preorder_progress_bar_insert_selector":"","preorder_progress_bar_insert_selector_type":"beforebegin","countdown_timer_insert_selector":"","countdown_timer_insert_selector_type":"afterend","configure_notify_me_enabled":false,"restock_note_insert_selector":null,"restock_note_insert_selector_type":"afterend","restock_note_background_color":"#f3f4f6","restock_note_text_color":"#202223","restock_note_border_radius":4,"preorder_modal_continue_button_text":"Continue","preorder_modal_cancel_button_text":"Cancel","meta_pixel_enabled":false,"meta_pixel_id":null,"cache":true,"cached_at":"2026-10-08T00:38:41.680Z","multi_language_enabled":false,"translation_locale":"en","disable_refresh_on_stale_liquid":false,"api_host":"https://ext.stoqapp.com"};window._RestockRocketConfig.storefrontAccessToken = "d30b93cba5c5b20104f7382ac4ebeecd";
14653  window._RestockRocketConfig.metafieldNamespace = 'restockrocket_production';
14654  window._RestockRocketConfig.storefrontApiVersion = '2026-07';window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[42306650243260,44007728087228,51849725247858,52294891995506,52557491011954,60771950330226,61247613927794,62117973918066],"updated_at":"2026-10-08T09:03:34Z","market_locations_enabled":false,"market_id":2088272060,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection_id":null,"bulk_operation":true};window._RestockRocketConfig.cachedInStockVariantIds = { in_stock_variant_ids: [] };window._RestockRocketConfig.cachedOutOfStockVariantIds = {"out_of_stock_variant_ids":[42306650243260,44007728087228,51849725247858,52294891995506,52557491011954,60771950330226,61247613927794,62117973918066],"updated_at":"2026-10-08T08:46:31Z","market_locations_enabled":false,"market_id":0,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection_id":null};window._RestockRocketConfig.cachedVariantPreorderLimits = {"variant_preorder_limits":{},"updated_at":"2026-10-08T08:56:39Z","shopify_market_id":2088304828,"market_locations_enabled":false};
14655    window._RestockRocketConfig.cachedVariantPreorderLimitsMarketKey = "variant_preorder_limits_for_market_2088304828";window._RestockRocketConfig.cachedVariantShippingTexts = {"variant_shipping_texts":{},"updated_at":"2026-10-08T08:56:39Z","shopify_market_id":2088304828,"market_locations_enabled":false};
14656    window._RestockRocketConfig.cachedVariantShippingTextsMarketKey = "variant_shipping_texts_for_market_2088304828";
14657window._RestockRocketConfig.sellingPlans = [];(function() {
14658      const cachedData = {"plans":[{"shopify_selling_plan_group_id":78343668082,"shopify_selling_plan_id":691027476850,"enabled":true,"variant_ids":[51849725247858,42946179006652,42511099265212,43177643147452,52294891995506,61247613927794,62117973918066,42306650243260,60771950330226,52557491011954,44007728087228],"product_variants_source":"all","name":"⚠️ On Backorder","preorder_button_text":"On Backorder — Reserve Now","preorder_button_description":"This item is currently out of stock. Backordered items will ship separately when restocked.\n\nLook for something similar? Chat with us live — our team can confirm a match and provide an alternative.","preorder_button_description_enabled":true,"preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#E73C3E","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":0,"delivery_at":"2025-08-11T16:20:07.486Z","delivery_type":"unknown","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":false,"preorder_shipping_text":"Shipping: {{ date }}","shipping_applies_to_all_products":false,"shipping_text":"ASAP","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":"0.0","pricing_percentage":"0.0","discount_text":"Save {{ discount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"stoq","preorder_badge_enabled":false,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#FFFFFF","preorder_badge_background_color":"#000000","preorder_discounted_price_enabled":false,"payment_line_item_property_enabled":false,"shipping_line_item_property_enabled":false,"custom_line_item_property_text":"{{ disclaimer }}","preorder_button_text_color":"#ffffff","preorder_button_background_color":"#1F1F1F","preorder_button_colors_enabled":true,"markets_enabled":false,"shopify_market_ids":[],"use_shopify_selling_plan":true,"use_simplified_shipping_text":true,"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-08-11T16:20:07.486Z","billing_after_n_intervals":0,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":"0.0","pricing_percentage":"0.0","billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":691027476850,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_acknowledged":false,"acknowledgement_line_item_property_enabled":false,"acknowledgement_line_item_property_text":"Preorder Terms Accepted","preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2026-10-02T15:13:55.000Z","allow_mixed_cart":true,"mixed_cart_error_message":"Preorders must be purchased 
14658separately from regular items. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_enabled":false,"batches_enabled":false,"preorder_batches":[]}],"disabled_plan_ids":[691027050866,691026035058],"has_in_stock_offer":false,"has_preorder_offer":true,"read_flags":{"enable_storefront_product_reads":true,"enable_storefront_integrations_read":true,"enable_storefront_selling_plans_read":true,"enable_storefront_in_stock_ids_read":false,"enable_storefront_preorder_ids_read":false},"cached_at":"2026-10-07T21:02:33Z"};
14659
14660      if (cachedData && typeof cachedData === 'object' && cachedData.cached_at) {
14661        window._RestockRocketConfig.readFlags = cachedData.read_flags || {};
14662        const oldPlans = window._RestockRocketConfig.sellingPlans;
14663        const maxUpdatedAt = Array.isArray(oldPlans) && oldPlans.length > 0
14664          ? oldPlans.reduce(function(max, plan) {
14665              if (plan.updated_at) {
14666                const planDate = new Date(plan.updated_at);
14667                const maxDate = max ? new Date(max) : null;
14668                return (!maxDate || (planDate && !isNaN(planDate) && planDate > maxDate)) ? plan.updated_at : max;
14669              }
14670              return max;
14671            }, '')
14672          : null;
14673        const cachedDate = new Date(cachedData.cached_at);
14674        const maxDate = maxUpdatedAt ? new Date(maxUpdatedAt) : null;
14675        const useCached = !maxUpdatedAt || (cachedDate && !isNaN(cachedDate) && (!maxDate || cachedDate > maxDate));
14676
14677        if (useCached) {
14678          if (Array.isArray(cachedData.plans)) {
14679            window._RestockRocketConfig.sellingPlans = cachedData.plans;
14680            window._RestockRocketConfig.disabledSellingPlanIds = cachedData.disabled_plan_ids || [];
14681            console.debug('[RR] Using selling plans from cachedSellingPlans (cached_at: ' + cachedData.cached_at + ')');
14682          }
14683        } else {
14684          window._RestockRocketConfig.disabledSellingPlanIds = [];
14685          console.debug('[RR] Using selling plans from old format (max updated_at: ' + maxUpdatedAt + ')');
14686        }
14687      }
14688    })();window._RestockRocketConfig.enabledNotifyMeVariantIds = [51898328940914,52358043107698,52493907591538,20652030427198,20793342787646,52358081806706,43177643049148,43684960600252,61247636046194,61247566020978,42007196795068,42511099396284,52358081839474,51898329039218,51898329071986,51647165333874,20652038357054,43177643081916,43177643212988,43177652027580,42045981950140,51854038860146,52358081741170,61247610749298,20652036849726,20652033146942,42886103859388,42946179039420,41675735990460,41786072006844,41786072072380,41786072039612,43463715094716,43463715127484,44007734182076,42923404853436,42923404886204,43684964434108,42531409789116,40320285212860,52312711168370,42511099330748,42886097567932,42531409821884,42910519820476,42886097600700,51898328547698,44079394717884,43010871918780,20652035997758,42085189189820,42511099363516,38128298164412,31903133204542,42946179006652,42511099297980,20651640225854,42886114869436,42085188174012,20651640324158,20793228558398,20793232588862,42511099429052,42946179072188,20652038488126,39820780011708,42511099461820,31681364590654,52312533238130,42198266904764,43010899148988,41786071974076,42511099527356,52358081773938,51647167988082,42442853580988,51647168348530,42514579652796,42198266937532,39716440867004,44114744246460,42923410620604,44007728087228,42923410653372,42923410686140,42394760052924,43463814316220,51849722790258,41675422007484,38128356491452,38128358359228,42511300788412,52557489439090,51898328351090,51898327728498,51898327794034,52497703436658,42594045296828,42394771194044,43886211072188,42412785664188,43886211039420,42394771226812,51898302267762,51898329170290,51898329268594,60854050750834,60854050816370,43177643147452,43177643180220,43177643245756,43177643278524,42045981982908,43463813234876,42394762281148,43177643114684,52358043140466,52358043009394,42511099265212,52557495075186,51898329203058,42059057955004,52498416370034,42492709699772,20793231769662,20652011257918,20652011388990,52557489471858,52493906837874,42531409756348,52493908574578,42594044707004,42685940007100,429195
1468855170492,20652038455358,42531349954748,41675730026684,42306650243260,38128319398076,42531409854652,42511317827772,42492718874812,51898329137522,42860472991932,43177651863740,43177651896508,43177651994812,43177651830972,43177651962044,42514579587260,42531455566012,52498348769650,52357985894770,60854051406194,52497726243186,42048824705212,52498374721906,52294891995506,51898329334130,52557486227826,52493908509042,52557490979186,51898329465202,43177651798204,43177651929276,42923404820668,42442853613756,42511300821180,52358069780850,20652038291518,42394760020156,42412785631420,42685952590012,31636970995774,31636977877054,37682880676028,37682882117820,60854051537266,20650500227134,51898328875378,51898328973682,61247569232242,42531409887420,20651640356926,52358043042162,52358043074930,52498402804082,60854050849138,60854051176818,37682881102012,43463730823356,60854050914674,60854050881906,41744695918780,52557491011954,60854051012978,60854050980210,44114744213692,43463730790588,60854051078514,20651640258622,60854050718066,61247546851698,60854050783602,60854050652530,60854050685298,60854050947442,60854051570034,60854051045746,60854051275122,60854051209586,60854051242354,60854051307890,60854051340658,60854051373426,60854051438962,60854051111282,60854051504498,60854051471730,60854051144050,52557495468402,52557486031218,52542864556402,61247543607666,61247543640434,61247556452722,61247546818930,61247550030194,61247556354418,61247569265010,61247556387186,61247565955442,61247585026418,61247588303218,61247588335986,61247585059186,61247585091954,61247588270450,61247588368754,61247591547250,61247591580018,61247591612786,61247594922354,61247604392306,61247604425074,61247613927794,61247636013426,61247566053746,61247639257458,61247632834930,52542863933810,52557495042418,51849725247858,60771950330226,61247639224690,61247556419954,42490429079740,51898329235826,52557495501170];window._RestockRocketConfig.disabledNotifyMeVariantIds = [];window._RestockRocketConfig.backInStockTemplates = [];window._RestockRocketConfig.restockNotes = {};window._RestockRocketConfig.integrations = [{"id":"b5a1a61c-10e2-4922-aecc-894afa44f09b","shop_id":39311,"enabled":true,"page_types":["product","collection","index","search","page","cart","list-collections","article","blog"],"configuration":{"toastDuration":10000,"toastPosition":"bottom-right","enableXHRHijack":true,"enableFetchHijack":true,"quantityLimitDisabled":false},"type":"hijack","css_config":null,"js_config":null,"created_at":"2025-08-06T18:25:14.251Z","updated_at":"2025-08-06T18:25:14.251Z"},{"id":"b0a3369a-89f1-4b05-80b5-b5a449c94432","shop_id":39311,"enabled":true,"page_types":["collection"],"configuration":{"quickBuyModalSelector":".quick-add-modal[open]","quickBuyOpenFormSelector":"form[action=\"/cart/add\"]","quickBuyModalOpenDuration":1500,"quickBuyModalOpenInterval":250,"quickBuyOpenButtonSelector":".quick-add","quickBuyBadgeInsertSelector":".price","quickBuyPriceInsertSelector":".price","quickBuyVariantInputSelector":"[name=\"id\"]","quickBuyOriginalPriceSelector":".price--regular","quickBuyPaymentInsertSelector":".product-form__buttons","quickBuyModalBuyButtonSelector":".shopify-payment-button","quickBuyNotifyMeInsertSelector":".product-form__buttons","quickBuyBadgeInsertSelectorType":"afterend","quickBuyPriceInsertSelectorType":"beforeend","quickBuyDisclaimerInsertSelector":".product-form__buttons","quickBuyModalProductInputSelector":"[name=\"product-id\"]","quickBuyPaymentInsertSelectorType":"beforebegin","quickBuyNotifyMeInsertSelectorType":"afterend","quickBuyDisclaimerInsertSelectorType":"afterend","quickBuyModalAddToCartButtonSelector":"[name=\"add\"]","quickBuyModalOpenButtonSetupInterval":250,"quickBuyModalShowPreorderButtonDelay":0,"quickBuyModalAddToCartButtonTextSelector":"span"},"type":"quick_buy","css_config":null,"js_config":null,"created_at":"2025-08-11T19:32:45.843Z","updated_at":"2025-08-11T19:36:44.922Z"}];
14689  try {
14690    var _sqCfg = window._RestockRocketConfig;
14691    var _sqPlanEnabled = Array.isArray(_sqCfg.sellingPlans) &&
14692      _sqCfg.sellingPlans.some(function (p) { return p && p.enabled; });
14693    var _sqPreCount = ((_sqCfg.cachedPreorderVariantIds &&
14694      _sqCfg.cachedPreorderVariantIds.preorder_variant_ids) || []).length;
14695    _sqCfg.preordersConfigured = !!(_sqPlanEnabled && _sqPreCount);
14696  } catch (e) { }
14697  try {
14698    var _sqc = window._RestockRocketConfig;
14699    var _sqOn = !(_sqc.cachedSettings && _sqc.cachedSettings.block_accelerated_checkout === false);
14700    var _sqPre = (_sqc.cachedPreorderVariantIds &&
14701      _sqc.cachedPreorderVariantIds.preorder_variant_ids) || [];
14702    var _sqArm = false;
14703    if (_sqOn && _sqc.preordersConfigured) {
14704      if (_sqc.pageType === 'product' && _sqc.product && _sqc.product.variants) {
14705        _sqArm = _sqc.product.variants.some(function (v) { return _sqPre.indexOf(Number(v.id)) !== -1; });
14706      } else {
14707        _sqArm = (_sqc.integrations || []).some(function (i) {
14708          return i && i.type === 'featured_product' && i.enabled &&
14709            Array.isArray(i.page_types) && i.page_types.indexOf(_sqc.pageType) !== -1;
14710        });
14711      }
14712    }
14713    if (_sqArm && document.documentElement) {
14714      _sqc.acceleratedGateArmed = true;
14715      document.documentElement.classList.add('stoq-buy-now-pending');
14716      setTimeout(function () {
14717        document.documentElement.classList.remove('stoq-buy-now-pending');
14718      }, 6000);
14719    }
14720  } catch (e) { }
14721
14722  window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/01a10b23-799c-7a38-a052-ddf9175946a6/restockrocket-1-600/assets/restockrocket-product.js'
14723  window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/01a10b23-799c-7a38-a052-ddf9175946a6/restockrocket-1-600/assets/restockrocket-collection.js'
14724  window._RestockRocketConfig.scriptUrlProductBis = 'https://cdn.shopify.com/extensions/01a10b23-799c-7a38-a052-ddf9175946a6/restockrocket-1-600/assets/restockrocket-product-bis.js'
14725  window._RestockRocketConfig.scriptUrlCollectionBis = 'https://cdn.shopify.com/extensions/01a10b23-799c-7a38-a052-ddf9175946a6/restockrocket-1-600/assets/restockrocket-collection-bis.js'
14726  window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1)
14727  window._RestockRocketConfig.host = (window._RestockRocketConfig.cachedSettings && window._RestockRocketConfig.cachedSettings.api_host) || 'https://app.restockrocket.io'
14728  try {
14729    const _stoqVersionMatch = window._RestockRocketConfig.scriptHost.match(/(\d+)\/?(?:assets\/?)?$/);
14730    window._RestockRocketConfig.appVersion = (_stoqVersionMatch && _stoqVersionMatch[1]) || '';
14731  } catch (e) {
14732    window._RestockRocketConfig.appVersion = '';
14733  }
14734  const SETTINGS_CACHE_DURATION = 15 * 60 * 1000;
14735  const LIQUID_CACHE_MAX_AGE = 15 * 60;
14736  const liquidRenderedAt = window._RestockRocketConfig.liquidRenderedAt;
14737  if (!liquidRenderedAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt)) {
14738    console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh');
14739    window._RestockRocketConfig.isLiquidCacheFresh = true;
14740    window._RestockRocketConfig.liquidCacheAge = null;
14741  } else {
14742    const now = Math.floor(Date.now() / 1000);
14743    const liquidCacheAge = now - liquidRenderedAt;
14744    window._RestockRocketConfig.liquidCacheAge = Math.max(0, liquidCacheAge);
14745    if (liquidCacheAge < 0) {
14746      console.debug(`STOQ - Client clock appears ahead of server by ${Math.abs(Math.round(liquidCacheAge / 60))} minutes, assuming cache fresh`);
14747      window._RestockRocketConfig.isLiquidCacheFresh = true;
14748    } else if (liquidCacheAge <= LIQUID_CACHE_MAX_AGE) {
14749      console.debug(`STOQ - Liquid cache is fresh (${Math.round(liquidCacheAge / 60)} minutes old)`);
14750      window._RestockRocketConfig.isLiquidCacheFresh = true;
14751    } else {
14752      console.debug(`STOQ - Liquid cache is stale (${Math.round(liquidCacheAge / 60)} minutes old, max ${Math.round(LIQUID_CACHE_MAX_AGE / 60)} minutes)`);
14753      window._RestockRocketConfig.isLiquidCacheFresh = false;
14754    }
14755  }
14756
14757  function checkSettingsExpiry(settings) {
14758    try {
14759      if (!settings || !settings.updated_at) {
14760        console.debug('STOQ - Invalid settings data structure');
14761        return null;
14762      }
14763
14764      if (!settings.cache) {
14765        console.debug('STOQ - settings caching disabled');
14766        return null;
14767      }
14768      if (settings.multi_language_enabled) {
14769        if (!settings.translations) {
14770          console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh');
14771          return null;
14772        }
14773        if (window._RestockRocketConfig.normalizedLocale &&
14774            !Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) {
14775          console.debug('STOQ - locale not explicitly translated, will use default language from cache');
14776        }
14777      }
14778
14779      const updatedAt = new Date(settings.updated_at);
14780      if (isNaN(updatedAt.getTime())) {
14781        console.debug('STOQ - Invalid updated_at date format in settings');
14782        return null;
14783      }
14784
14785      const age = Date.now() - updatedAt.getTime();
14786      if (age < SETTINGS_CACHE_DURATION) {
14787        console.debug('STOQ - settings changed recently, skipping cache');
14788        return null;
14789      }
14790
14791      return settings;
14792    } catch (error) {
14793      console.debug('STOQ - Error checking settings cache:', error);
14794      return null;
14795    }
14796  }
14797
14798  function createRestockRocketContainer() {
14799    const restockRocketContainer = document.createElement('div');
14800    restockRocketContainer.id = 'restock-rocket';
14801    document.body.appendChild(restockRocketContainer);
14802  }
14803
14804  function createRestockRocketScript(scriptUrl) {
14805    const restockRocketScriptElement = document.createElement('script');
14806    restockRocketScriptElement.setAttribute('defer', 'defer');
14807    restockRocketScriptElement.src = scriptUrl;
14808    document.body.appendChild(restockRocketScriptElement);
14809  }
14810
14811  createRestockRocketContainer()
14812
14813  console.debug('STOQ - extension activated')
14814  try {
14815    const _stoqInitConfig = window._RestockRocketConfig;
14816    const _stoqDetectedVariantIds = (_stoqInitConfig.product && Array.isArray(_stoqInitConfig.product.variants)
14816)
14817      ? _stoqInitConfig.product.variants.map(function(v) { return v.id })
14818      : [];
14819    const _stoqSelectedVariantId = _stoqInitConfig.selected_variant_id;
14820    var _stoqPageSeq = 0;
14821    try {
14822      _stoqPageSeq = (parseInt(window.sessionStorage.getItem('_stoq_pls') || '0', 10) || 0) + 1;
14823      window.sessionStorage.setItem('_stoq_pls', String(_stoqPageSeq));
14824    } catch (e) { }
14825    Shopify?.analytics?.publish?.('stoq_initialized', {
14826      cart_token: _stoqInitConfig.cartToken || '',
14827      page_url: window.location.href,
14828      page_type: _stoqInitConfig.pageType || '',
14829      shop_domain: _stoqInitConfig.shop || '',
14830      market_id: _stoqInitConfig.marketId || '',
14831      country_code: _stoqInitConfig.countryIsoCode || '',
14832      detected_variant_ids: _stoqDetectedVariantIds,
14833      selected_variant_id: _stoqSelectedVariantId || '',
14834      page_load_seq: _stoqPageSeq,
14835      liquid_rendered_at: _stoqInitConfig.liquidRenderedAt || 0,
14836      app_version: _stoqInitConfig.appVersion || '',
14837      liquid_cache_age: _stoqInitConfig.liquidCacheAge,
14838      inventory_policy: (_stoqInitConfig.variantsInventoryPolicy || {})[_stoqSelectedVariantId] || '',
14839      inventory_quantity: (_stoqInitConfig.variantsInventoryQuantity || {})[_stoqSelectedVariantId],
14840    });
14841  } catch (e) {
14842    console.debug('STOQ - stoq_initialized publish failed:', e);
14843  }
14844  try {
14845    var _sqTrack = window._RestockRocketConfig;
14846    if (_sqTrack.preordersConfigured) {
14847      document.addEventListener('click', function (e) {
14848        try {
14849          var t = e.target;
14850          if (!t || !t.closest) return;
14851          var host = t.closest('.shopify-payment-button, shopify-payment-terms');
14852          if (!host) return;
14853          var channel = host.matches && host.matches('shopify-payment-terms')
14854            ? 'shop_pay_installments' : 'buy_now';
14855          var form = host.closest('form');
14856          var vidEl = form && form.querySelector('[name="id"]');
14857          var variantId = (vidEl && vidEl.value) || _sqTrack.selected_variant_id || '';
14858          var _sqVidNum = Number(variantId);
14859          var _sqPlan = null;
14860          var _sqPlans = Array.isArray(_sqTrack.sellingPlans) ? _sqTrack.sellingPlans : [];
14861          var _sqMktId = Number(_sqTrack.marketId);
14862          var _sqForVariant = function (pl) {
14863            return pl && pl.enabled && Array.isArray(pl.variant_ids) &&
14864              pl.variant_ids.indexOf(_sqVidNum) !== -1;
14865          };
14866          _sqPlans.forEach(function (pl) {
14867            if (!_sqPlan && _sqForVariant(pl) && pl.markets_enabled &&
14868                Array.isArray(pl.shopify_market_ids) &&
14869                pl.shopify_market_ids.indexOf(_sqMktId) !== -1) { _sqPlan = pl; }
14870          });
14871          if (!_sqPlan) {
14872            _sqPlans.forEach(function (pl) {
14873              if (!_sqPlan && _sqForVariant(pl) && !pl.markets_enabled) { _sqPlan = pl; }
14874            });
14875          }
14876          Shopify?.analytics?.publish?.('stoq_accelerated_checkout_clicked', {
14877            variant_id: variantId,
14878            product_id: (_sqTrack.product && _sqTrack.product.id) || '',
14879            channel: channel,
14880            market_id: _sqTrack.marketId || '',
14881            country_code: _sqTrack.countryIsoCode || '',
14882            page_type: _sqTrack.pageType || '',
14883            cart_token: _sqTrack.cartToken || '',
14884            page_url: (window.location && window.location.href) || '',
14885            properties: {
14886              is_preorder_variant: (function () {
14887                var vid = Number(variantId);
14888                var has = function (a) { return Array.isArray(a) && a.indexOf(vid) !== -1; };
14889                return has(_sqTrack.preorderVariantIds) ||
14890                  has(_sqTrack.cachedPreorderVariantIds &&
14891                    _sqTrack.cachedPreorderVariantIds.preorder_variant_ids);
14892              })(),
14893              in_enabled_plan: !!_sqPlan,
14894              is_instock_variant: (function () {
14895                var has = function (a) { return Array.isArray(a) && a.indexOf(_sqVidNum) !== -1; };
14896                return has(_sqTrack.inStockVariantIds) ||
14897                  has(_sqTrack.cachedInStockVariantIds &&
14898                    _sqTrack.cachedInStockVariantIds.in_stock_variant_ids);
14899              })(),
14900              enrolled_plan_id: (_sqPlan && (_sqPlan.shopify_selling_plan_id || _sqPlan.shopify_selling_plan_group_id)) || '',
14901              enrolled_plan_provider: (_sqPlan && _sqPlan.inventory_provider) || '',
14902              block_enabled: !(_sqTrack.cachedSettings && _sqTrack.cachedSettings.block_accelerated_checkout === false),
14903              gate_armed: !!_sqTrack.acceleratedGateArmed,
14904              gate_active_at_click: !!(document.documentElement &&
14905                document.documentElement.classList.contains('stoq-buy-now-pending')),
14906              blocked: (function () {
14907                try {
14908                  var rr = window._RestockRocket;
14909                  return !!(rr && typeof rr.willBlockAcceleratedCl
14909ick === 'function' &&
14910                    rr.willBlockAcceleratedClick(e));
14911                } catch (err) { return false; }
14912              })(),
14913            },
14914          });
14915        } catch (err) { }
14916      }, true);
14917    }
14918  } catch (e) { }
14919  function applyTranslations(settings) {
14920    try {
14921      if (!settings || !settings.multi_language_enabled) {
14922        return settings;
14923      }
14924
14925      if (!settings.translations) {
14926        console.debug('STOQ - No translations found, skipping translation');
14927        return settings;
14928      }
14929
14930      const normalizedLocale = window._RestockRocketConfig.normalizedLocale;
14931      const translations = settings.translations;
14932
14933      if (!normalizedLocale) {
14934        console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {}));
14935        delete settings.translations;
14936        return settings;
14937      }
14938
14939      console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`);
14940
14941      const translatedFields = translations[normalizedLocale];
14942      if (translatedFields && typeof translatedFields === 'object') {
14943        Object.keys(translatedFields).forEach(function(key) {
14944          const value = translatedFields[key];
14945          if (value !== null && value !== undefined && value !== '') {
14946            settings[key] = value;
14947          }
14948        });
14949      } else {
14950        console.debug('STOQ - No translated fields found for locale:', normalizedLocale);
14951      }
14952
14953      delete settings.translations;
14954      return settings;
14955    } catch (e) {
14956      console.debug('STOQ - error applying translations:', e);
14957      return settings;
14958    }
14959  }
14960  function setupCartSellingPlanUpdater(settings) {
14961    window.addEventListener('stoq:inventory-data-loaded', function(event) {
14962      console.debug('STOQ - Inventory data loaded, updating cart selling plans');
14963      if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) {
14964        window._RestockRocket.updateCartSellingPlans()
14965          .then(hasUpdates => {
14966            if (hasUpdates) {
14967              console.debug('STOQ - cart selling plans updated successfully');
14968            } else {
14969              console.debug('STOQ - no cart selling plan updates needed');
14970            }
14971          })
14972          .catch(error => {
14973            console.error('STOQ - error updating cart selling plans:', error);
14974          });
14975      }
14976    });
14977  }
14978  function storefrontGraphql(query, variables) {
14979    const cfg = window._RestockRocketConfig;
14980    if (!cfg.storefrontAccessToken || cfg.disableStorefrontApi === true) {
14981      return Promise.reject(new Error('Storefront API unavailable'));
14982    }
14983    return fetch(
14984      `https://${cfg.shop}/api/${cfg.storefrontApiVersion}/graphql.json`,
14985      {
14986        method: 'POST',
14987        headers: {
14988          'Content-Type': 'application/json',
14989          'X-Shopify-Storefront-Access-Token': cfg.storefrontAccessToken,
14990        },
14991        body: JSON.stringify({ query: query, variables: variables }),
14992      }
14993    )
14994    .then(function(response) {
14995      if (!response.ok) { throw new Error('Storefront API HTTP ' + response.status); }
14996      return response.json();
14997    })
14998    .then(function(body) {
14999      if (body && body.errors && body.errors.length) {
15000        throw new Error('Storefront API errors: ' + body.errors.map(function(e) { return e && e.message; }).join(', '));
15001      }
15002      return body && body.data;
15003    });
15004  }
15005  function fetchStorefrontShopMetafield(key) {
15006    const cfg = window._RestockRocketConfig;
15007    const query = 'query StoqShopMetafield($namespace: String!, $key: String!) { shop { metafield(namespace: $namespace, key: $key) { value } } }';
15008    return storefrontGraphql(query, { namespace: cfg.metafieldNamespace, key: key })
15009    .then(function(data) {
15010      const value = data && data.shop && data.shop.metafield && data.shop.metafield.value;
15011      if (!value) { throw new Error('Storefront API returned no ' + key + ' metafield value'); }
15012      return JSON.parse(value);
15013    });
15014  }
15015  (function loadStorefrontSettings() {
15016    const cfg = window._RestockRocketConfig;
15017    if (!cfg.storefrontAccessToken || cfg.disableStorefrontApi === true) return;
15018    function run() {
15019      // The live-settings read is one more shop-level metafield fetch, so it
15020      // shares fetchStorefrontShopMetafield with the integrations/selling_plans
15021      // reads rather than re-issuing the same query + parse.
15022      fetchStorefrontShopMetafield('settings')
15023      .then(function(settings) {
15024        cfg.storefrontSettings = settings;
15025        console.debug('STOQ - stored live settings from Storefront API on config.storefrontSettings');
15026      })
15027      .catch(function(e) {
15028        console.debug('STOQ - Storefront settings fetch failed (non-fatal):', e && e.message);
15029      });
15030    }
15031
15032    if (typeof window.requestIdleCallback === 'function') {
15033      window.requestIdleCallback(run, { timeout: 5000 });
15034    } else {
15035      setTimeout(run, 0);
15036    }
15037  })();
15038  const cachedSettings = window._RestockRocketConfig.cachedSettings;
15039  const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null;
15040
15041  if (validCachedSettings) {
15042    console.debug('STOQ - using cached settings');
15043    initializeScripts(validCachedSettings);
15044  } else {
15045    console.debug('STOQ - fetching fresh settings');
15046    const headers = {
15047      'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop,
15048      'ngrok-skip-browser-warning': 'skip'
15049    };
15050
15051    if (window.Shopify?.theme?.role === 'main') {
15052      headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name;
15053      headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version;
15054      headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id;
15055    }
15056
15057    fetch(
15058      `${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`,
15059      { headers }
15060    )
15061    .then(function(response) {
15062      if (!response.ok) {
15063        throw new Error('Network response was not ok');
15064      }
15065      return response.json();
15066    })
15067    .then(function(settings) {
15068      initializeScripts(settings);
15069    })
15070    .catch(function(error) {
15071      if (cachedSettings) {
15072        console.debug('STOQ - using expired cached settings as fallback');
15073        initializeScripts(cachedSettings);
15074      } else {
15075        console.error('STOQ - failed to load settings:', error);
15076      }
15077    })
15078    .catch(function(e) {
15079      console.error(e)
15080    })
15081  }
15082
15083  function fetchEmbedConfig(endpoint, apply) {
15084    return fetch(
15085      `${window._RestockRocketConfig.host}/api/v1/embed/${endpoint}.json`,
15086      {
15087        headers: {
15088          'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop,
15089          'ngrok-skip-browser-warning': 'skip'
15090        }
15091      }
15092    )
15093    .then(function(response) {
15094      if (!response.ok) throw new Error(`Failed to fetch ${endpoint}`);
15095      return response.json();
15096    })
15097    .then(function(data) {
15098      try {
15099        apply(data);
15100      } catch (applyError) {
15101        console.error('STOQ - apply failed for ' + endpoint + ':', applyError);
15102        throw applyError;
15103      }
15104    })
15105    .catch(function(error) {
15106      console.debug(`STOQ - using cached ${endpoint}:`, error.message);
15107    });
15108  }
15109  function refreshShopConfig(source) {
15110    const cfg = window._RestockRocketConfig;
15111    const viaEmbed = function() { return fetchEmbedConfig(source.endpoint, source.apply); };
15112    const flagOn = !!cfg.readFlags && cfg.readFlags[source.flag] === true;
15113    if (!flagOn || source.embedOnly === true) { return viaEmbed(); }
15114
15115    return fetchStorefrontShopMetafield(source.metafieldKey)
15116      .then(function(value) {
15117        if (!source.isValid(value)) { throw new Error(source.metafieldKey + ' metafield is not a valid ' + source.endpoint + ' payload'); }
15118        source.apply(value);
15119        console.debug('STOQ - refreshed ' + source.endpoint + ' from the Storefront API');
15120      })
15121      .catch(function(error) {
15122        console.debug('STOQ - Storefront ' + source.endpoint + ' read failed, using embed:', error.message);
15123        return viaEmbed();
15124      });
15125  }
15126  function refreshIntegrations() {
15127    const cfg = window._RestockRocketConfig;
15128    return refreshShopConfig({
15129      endpoint: 'integrations',
15130      metafieldKey: 'integrations',
15131      flag: 'enable_storefront_integrations_read',
15132      isValid: function(value) { return Array.isArray(value); },
15133      apply: function(data) {
15134        cfg.integrations = data;
15135      }
15136    });
15137  }
15138  function refreshSellingPlans(embedOnly) {
15139    const cfg = window._RestockRocketConfig;
15140    return refreshShopConfig({
15141      embedOnly: embedOnly === true,
15142      endpoint: 'selling_plans',
15143      metafieldKey: 'cachedSellingPlans',
15144      flag: 'enable_storefront_selling_plans_read',
15145      isValid: function(value) { return !!value && Array.isArray(value.plans); },
15146      apply: function(data) {
15147        cfg.sellingPlans = data.plans;
15148        cfg.disabledSellingPlanIds = data.disabled_plan_ids || [];
15149        if (data && data.read_flags && typeof data.read_flags === 'object' && !Array.isArray(data.read_flags)) {
15150          cfg.readFlags = data.read_flags;
15151        }
15152      }
15153    });
15154  }
15155
15156  function initializeScripts(settings) {
15157    settings = applyTranslations(settings);
15158    window._RestockRocketConfig.settings = settings;
15159    console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`);
15160    const forceEmbedSellingPlans = settings.force_embed_selling_plans === true;
15161    const staleRefresh = !window._RestockRocketConfig.isLiquidCacheFresh && !settings.disable_refresh_on_stale_liquid;
15162    if (forceEmbedSellingPlans || staleRefresh) {
15163      console.debug('STOQ - refreshing selling_plans' + (staleRefresh ? ' + integrations (Liquid cache stale)' : ' (force_embed_selling_plans)'));
15164      const refreshes = [refreshSellingPlans(forceEmbedSellingPlans)];
15165      if (staleRefresh) { refreshes.push(refreshIntegrations()); }
15166      Promise.race([
15167        Promise.all(refreshes),
15168        new Promise(function(resolve) { setTimeout(resolve, 1000); })
15169      ]).then(function() { loadScripts(settings); });
15170      return;
15171    }
15172
15173    loadScripts(settings);
15174  }
15175
15176  function loadScripts(settings) {
15177    setupCartSellingPlanUpdater(settings);
15178
15179    if(settings.enable_app) {
15180      const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) {
15181        return integration.type === 'hijack' && integration.enabled && integration.page_types.includes(window._RestockRocketConfig.pageType);
15182      })
15183      const hasEnabledOffer = Array.isArray(window._RestockRocketConfig.sellingPlans)
15184        && window._RestockRocketConfig.sellingPlans.some(function(plan) { return plan && plan.enabled; });
15185      const hasDisabledPlanIds = Array.isArray(window._RestockRocketConfig.disabledSellingPlanIds)
15186        && window._RestockRocketConfig.disabledSellingPlanIds.length > 0;
15187      const usePreorderBuild = settings.preorder_enabled || hasEnabledOffer || hasDisabledPlanIds;
15188
15189      const collectionScriptUrl = usePreorderBuild
15190        ? window._RestockRocketConfig.scriptUrlCollection
15191        : window._RestockRocketConfig.scriptUrlCollectionBis;
15192      const productScriptUrl = usePreorderBuild
15193        ? window._RestockRocketConfig.scriptUrlProduct
15194        : window._RestockRocketConfig.scriptUrlProductBis;
15195
15196      const pageType = window._RestockRocketConfig.pageType;
15197      const collectionPageTypes = ['collection', 'index', 'search', 'page'];
15198
15199      if(collectionPageTypes.indexOf(pageType) !== -1 && (settings[`show_button_on_${pageType}`] || settings[`preorder_${pageType}_enabled`])) {
15200        createRestockRocketScript(collectionScriptUrl);
15201      } else if(pageType === 'product') {
15202        createRestockRocketScript(productScriptUrl);
15203      } else if(hijackIntegration) {
15204        createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
15205      } else if(usePreorderBuild) {
15206        createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
15207      } else {
15208        console.debug(`STOQ - no scripts enabled for ${pageType}`);
15209      }
15210      const appLoadedEvent = new CustomEvent('stoq:loaded', {
15211        detail: {
15212          pageType: window._RestockRocketConfig.pageType,
15213          enabled: settings.enable_app,
15214          settings: settings,
15215          preorderEnabled: settings.preorder_enabled
15216        }
15217      });
15218      console.debug('STOQ - dispatching app loaded event');
15219      window.dispatchEvent(appLoadedEvent);
15220    }
15221  }
15222</script>
15222<style id="RestockRocketStyle">html.stoq-buy-now-pending .shopify-payment-button{pointer-events:none!important}</style>
15223
15224
15225</div><div id="shopify-block-AR2FMSW9nNERWcU9kV__6174324309569838175" class="shopify-block shopify-app-block">
15226
15227
15228<div class="smile-shopify-init"
15229  data-channel-key="channel_Qg084F1gphccKB010erN8BQL"
15230  
15231></div>
15232
15233
15234</div><div id="shopify-block-ARVZGby9xRG9peXNVY__8746983209849429782" class="shopify-block shopify-app-block">
15234<script type="module" src="https://cdn.shopify.com/extensions/01a11a42-f57c-7aa4-86ea-84d575224241/dealeasy-289/assets/dealeasy-widgets.esm.js" defer></script>
15234
15235
15236<script>
15237  var dealeasyPublicAccessToken = '3ad6d6f01c27097bb7762c159fb2295f' || '';
15238  var dealeasyUsingTranslatedHandles = false || false;
15239  var dealeasyPublicApiVersion = "2026-07";
15240
15241  window.dealeasyProduct = {
15242    id: 'gid://shopify/Product/' + '',
15243    handle: ''
15244  };
15245
15246  var editableQtySelector = '' === "true";
15247  var minimizeFreeGiftTitle = '' === "true";
15248  var isRtlLanguageStore = '' === "true";
15249  var discountRoundingMethod = '';</script>
15249
15250
15251
15252
15253
15254<!-- BEGIN app snippet: custom-css --><style></style><!-- END app snippet -->
15255<!-- BEGIN app snippet: custom-script -->
15255<script></script>
15255<!-- END app snippet -->
15256
15257
15258  
15258<script></script>
15258
15259<style></style>
15260
15261
15262
15263</div><div id="shopify-block-Aa3UrMW9IZE1TVFNUQ__5537102726230261467" class="shopify-block shopify-app-block">
15264
15265
15266  <!-- BEGIN app snippet: quiz-popup-styles --><style>
15267  #quiz-container {
15268    position: fixed;
15269    top: 0;
15270    left: 0;
15271    width: 100%;
15272    height: 100%;
15273    display: flex;
15274    flex-direction: column;
15275    justify-content: center;
15276    align-items: center;
15277    background: rgba(0, 0, 0, 0.5);
15278    z-index: var(--quiz-z-index, 100);
15279    overflow: auto;
15280    touch-action: manipulation;
15281  }
15282  #quiz-container .quiz-content {
15283    position: relative;
15284    border-radius: 8px;
15285    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
15286    z-index: var(--quiz-content-z-index, 101);
15287    max-height: 100%;
15288    overflow: auto;
15289    background: white;
15290    touch-action: manipulation;
15291  }
15292  #quiz-container .close-btn {
15293    position: absolute;
15294    top: 10px;
15295    right: 10px;
15296    background: none;
15297    border: none;
15298    font-size: 32px;
15299    cursor: pointer;
15300    z-index: var(--close-btn-z-index, 102);
15301    margin-left: auto;
15302    color: var(--close-btn-color, #777777);
15303    line-height: 32px;
15304  }
15305  body.revenuehunt-popup-open .react-dropdown-select-dropdown {
15306    z-index: var(--quiz-dropdown-z-index, 103) !important;
15307  }
15308</style>
15309<!-- END app snippet -->
15310  <!-- BEGIN app snippet: quiz-global-vars -->
15310<script>
15311  if (!window.quizUrls) window.quizUrls = {};
15312  
15313    window.quizUrls['quiz_6jRk3l'] = "https:\/\/cdn.shopify.com\/s\/files\/1\/0117\/1210\/2462\/files\/quiz-6jRk3l.json?v=1777035196";
15314  
15315
15316  if (!window.quiz_locale) {
15317    window.quiz_locale = 'en'
15318  }
15319  if (!window.quiz_country) {
15320    window.quiz_country = 'US'
15321  }
15322  if (!window.quiz_currency) {
15323    window.quiz_currency = '${{amount}} CAD'
15324  }
15325  if (!window.quiz_market_id) {
15326    window.quiz_market_id = 'gid://shopify/Market/2088304828'
15327  }
15328</script>
15328
15329<!-- END app snippet -->
15330  <!-- BEGIN app snippet: quiz-renderer-script -->
15330<script type="module" src="https://cdn.shopify.com/extensions/01a11ac7-4734-7248-af65-43709269384f/revenuehunt-202/assets/quiz-renderer.js" defer></script>
15330<!-- END app snippet -->
15331  <!-- BEGIN app snippet: quiz-popup-setup --><!-- BEGIN app snippet: quiz-url-functions -->
15331<script>
15332  /**
15333   * Quiz URL Functions
15334   *
15335   * Single source of truth for quiz URL parsing and clearing.
15336   */
15337  (function() {
15338    if (window.revenueHuntQuizUrl && window.revenueHuntQuizUrl.__initialized) {
15339      return;
15340    }
15341
15342    window.revenueHuntQuizUrl = {
15343      __initialized: true,
15344
15345      isQuizHash: function(hash) {
15346        return (
15347          hash === '#quiz' ||
15348          /^#quiz-[A-Za-z0-9]+$/.test(hash) ||
15349          /^#response-[A-Za-z0-9]+$/.test(hash)
15350        );
15351      },
15352
15353      getQuizKey: function(hash, defaultQuizKey) {
15354        if (!this.isQuizHash(hash)) return null;
15355
15356        const hashTarget = String(hash || '').replace(/^#/, '');
15357
15358        if (hashTarget === 'quiz') {
15359          return defaultQuizKey;
15360        }
15361
15362        if (hashTarget.startsWith('quiz-')) {
15363          return 'quiz_' + hashTarget.substring(5);
15364        }
15365
15366        if (hashTarget.startsWith('response-')) {
15367          return hashTarget;
15368        }
15369
15370        return null;
15371      },
15372
15373      getTarget: function(hash, search, defaultQuizKey) {
15374        const hashTarget = this.getQuizKey(hash, defaultQuizKey);
15375        if (hashTarget) return hashTarget;
15376
15377        const responseId = new URLSearchParams(String(search || '')).get('response_id');
15378        if (responseId && /^[A-Za-z0-9]+$/.test(responseId)) {
15379          return 'response-' + responseId;
15380        }
15381
15382        return null;
15383      },
15384
15385      clear: function() {
15386        const url = new URL(window.location.href);
15387        let changed = false;
15388
15389        if (this.isQuizHash(url.hash)) {
15390          url.hash = '';
15391          changed = true;
15392        }
15393
15394        if (url.searchParams.has('response_id')) {
15395          url.searchParams.delete('response_id');
15396          changed = true;
15397        }
15398
15399        if (changed) {
15400          window.history.replaceState(window.history.state, '', url.toString());
15401        }
15402      },
15403    };
15404  })();
15405</script>
15405
15406<!-- END app snippet -->
15407<!-- BEGIN app snippet: quiz-popup-functions -->
15407<script>
15408  /**
15409   * Popup Functions
15410   *
15411   * Shared, setting-free quiz popup behavior.
15412   * Individual theme extension instances register their own popup config with
15413   * window.revenueHuntQuizPopup.register(config), then open by instance id.
15414   *
15415   * Popup extensions are intentionally singleton: only one #quiz-container
15416   * exists at a time. Multiple instances can register configs, but opening a
15417   * popup replaces the current popup unless the caller chooses another policy.
15418   *
15419   * Used by: automatic popup, link popup, chat button
15420   */
15421  (function() {
15422    if (window.revenueHuntQuizPopup && window.revenueHuntQuizPopup.__initialized) {
15423      return;
15424    }
15425
15426    function getConfig(instanceId) {
15427      return window.revenueHuntQuizPopup.configs[String(instanceId)] || null;
15428    }
15429
15430    function applyPopupStyles(quizContainer, quizContent, config) {
15431      const zIndex = parseInt(config.zIndex || 100, 10);
15432      const width = parseInt(config.width || 100, 10);
15433      const height = parseInt(config.height || 100, 10);
15434
15435      quizContainer.style.setProperty('--quiz-z-index', zIndex);
15436      quizContainer.style.setProperty('--quiz-content-z-index', zIndex + 1);
15437      quizContainer.style.setProperty('--close-btn-z-index', zIndex + 2);
15438      quizContainer.style.setProperty('--close-btn-color', config.closeColor || '#777777');
15439
15440      // Quiz dropdowns are portaled to document.body, outside #quiz-container.
15441      // Keep this one popup-open body variable so portaled dropdowns stay above the modal.
15442      document.body.style.setProperty('--quiz-dropdown-z-index', zIndex + 3);
15443
15444      quizContent.style.width = `${width}%`;
15445      quizContent.style.height = `${height}%`;
15446    }
15447
15448    function markPopupShown(quizKey) {
15449      // Only mark the popup as shown when the key already targets a quiz (not for response hashes)
15450      if (typeof quizKey === 'string' && quizKey.startsWith('quiz_')) {
15451        window.revenueHuntSetStorage('revenuehunt-popup-already-shown-' + quizKey, true, 1);
15452      }
15453    }
15454
15455    window.revenueHuntQuizPopup = {
15456      __initialized: true,
15457      configs: {},
15458
15459      register: function(config) {
15460        if (!config || !config.instanceId) return;
15461
15462        this.configs[String(config.instanceId)] = {
15463          instanceId: String(config.instanceId),
15464          source: config.source || 'popup',
15465          width: config.width || 100,
15466          height: config.height || 100,
15467          zIndex: config.zIndex || 100,
15468          closeColor: config.closeColor || '#777777',
15469        };
15470      },
15471
15472      close: function(options) {
15473        const settings = options || {};
15474        const quizContainer = document.getElementById('quiz-container');
15475
15476        if (quizContainer) {
15477          quizContainer.remove();
15478        }
15479
15480        document.body.classList.remove('revenuehunt-popup-open');
15481        document.body.style.removeProperty('--quiz-dropdown-z-index');
15482
15483        if (settings.clearHash !== false && window.revenueHuntQuizUrl) {
15484          window.revenueHuntQuizUrl.clear();
15485        }
15486      },
15487
15488      getContainer: function(instanceId) {
15489        const owner = String(instanceId);
15490        const containers = document.querySelectorAll('[data-popup-owner]');
15491
15492        for (let i = 0; i < containers.length; i += 1) {
15493          if (containers[i].dataset.popupOwner === owner) {
15494            return containers[i];
15495          }
15496        }
15497
15498        return null;
15499      },
15500
15501      resize: function(instanceId) {
15502        const config = getConfig(instanceId);
15503        const quizContainer = this.getContainer(instanceId);
15504        const quizContent = quizContainer && quizContainer.querySelector('.quiz-content');
15505
15506        if (!config || !quizContainer || !quizContent) return;
15507
15508        applyPopupStyles(quizContainer, quizContent, config);
15509      },
15510
15511      open: function(instanceId, quizKey, options) {
15512        const config = getConfig(instanceId);
15513        if (!config) return null;
15514
15515        const settings = options || {};
15516
15517        const existingQuizContainer = document.getElementById('quiz-container');
15518        if (existingQuizContainer) {
15519          if (settings.ifOpen === 'mark-shown') {
15520            markPopupShown(quizKey);
15521            return null;
15522          }
15523
15524          existingQuizContainer.remove();
15525        }
15526
15527        markPopupShown(quizKey);
15528
15529        const popupRenderId = `popup-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
15530        const quizContainer = document.createElement('div');
15531        quizContainer.id = 'quiz-container';
15532        // `needsclick` opts out of FastClick, which legacy Shopify themes (e.g. Brooklyn) bundle in
15533        // theme.js. FastClick collides with the renderer's own touch handler on iOS and swallows the
15534        // first taps until a refresh.
15535        quizContainer.className = 'quiz-container needsclick';
15536        quizContainer.dataset.quizInstanceId = popupRenderId;
15537        quizContainer.dataset.popupOwner = config.instanceId;
15538        quizContainer.dataset.popupSource = config.source;
15539        if (settings.openedBy) {
15540          quizContainer.dataset.openedBy = settings.openedBy;
15541        }
15542        quizContainer.style.display = 'flex';
15543        document.body.classList.add('revenuehunt-popup-open');
15544
15545        const quizContent = document.createElement('div');
15546        quizContent.className = 'quiz-content needsclick';
15547        applyPopupStyles(quizContainer, quizContent, config);
15548
15549        const closeButton = document.createElement('button');
15550        closeButton.className = 'close-btn';
15551        closeButton.setAttribute('aria-label', 'Close quiz');
15552
15553        const closeIcon = document.createElement('span');
15554        closeIcon.textContent = '×';
15555        closeButton.appendChild(closeIcon);
15556
15557        const quizRenderer = document.createElement('quiz-renderer');
15558        quizRenderer.setAttribute('data-quiz-instance-id', popupRenderId);
15559        quizRenderer.setAttribute('target', String(quizKey));
15560        quizRenderer.setAttribute('type', 'modal');
15561        quizRenderer.setAttribute('aria-label', 'Quiz');
15562        quizRenderer.setAttribute(
15563          'over-plan-at',
15564          "",
15565        );
15566        quizRenderer.setAttribute(
15567          'execute-custom-features',
15568          'true',
15569        );
15570        quizRenderer.setAttribute('myshopify-domain', "ariavent.myshopify.com");
15571
15572        quizContent.appendChild(closeButton);
15573        quizContent.appendChild(quizRenderer);
15574        quizContainer.appendChild(quizContent);
15575        document.body.appendChild(quizContainer);
15576
15577        closeButton.addEventListener('click', function () {
15578          window.revenueHuntQuizPopup.close();
15579        });
15580
15581        quizContainer.addEventListener('click', function (event) {
15582          if (event.target === quizContainer) {
15583            window.revenueHuntQuizPopup.close();
15584          }
15585        });
15586
15587        return quizContainer;
15588      },
15589    };
15590
15591    window.revenueHuntCloseQuizContainer = function(options) {
15592      window.revenueHuntQuizPopup.close(options);
15593    };
15594  })();
15595</script>
15595
15596<!-- END app snippet -->
15597<!-- BEGIN app snippet: quiz-popup-config -->
15597<script>
15598  (function() {
15599    if (!window.revenueHuntQuizPopup) return;
15600
15601    window.revenueHuntQuizPopup.register({
15602      instanceId: "link-popup-Aa3UrMW9IZE1TVFNUQ__5537102726230261467",
15603      source: "link-popup",
15604      width: "100",
15605      height: "100",
15606      zIndex: 100,
15607      closeColor: "#777777",
15608    });
15609  })();
15610</script>
15610
15611<!-- END app snippet -->
15612<!-- END app snippet -->
15613  <!-- BEGIN app snippet: quiz-storage-helpers -->
15613<script>
15614  /**
15615   * Storage Helpers
15616   *
15617   * Provides localStorage utilities with automatic expiration.
15618   * Used to track popup display state, greeting/notification dismissals, etc.
15619   *
15620   * Functions:
15621   * - revenueHuntGetStorage(name): Get value, returns null if expired
15622   * - revenueHuntSetStorage(name, value, days): Set value with expiration
15623   */
15624  window.revenueHuntGetStorage = function(name) {
15625    try {
15626      const itemStr = localStorage.getItem(name);
15627      if (!itemStr) {
15628        return null;
15629      }
15630      const item = JSON.parse(itemStr);
15631      if (Date.now() > item.expiry) {
15632        localStorage.removeItem(name);
15633        return null;
15634      }
15635      return item.value;
15636    } catch (e) {
15637      console.warn('Failed to get localStorage:', e);
15638      return null;
15639    }
15640  };
15641
15642  window.revenueHuntSetStorage = function(name, value, days) {
15643    try {
15644      const expiry = Date.now() + (days * 24 * 60 * 60 * 1000);
15645      const data = {
15646        value: value,
15647        expiry: expiry
15648      };
15649      localStorage.setItem(name, JSON.stringify(data));
15650    } catch (e) {
15651      console.warn('Failed to set localStorage:', e);
15652    }
15653  };
15654</script>
15654<!-- END app snippet -->
15655  <!-- BEGIN app snippet: quiz-block-priority -->
15655<script>
15656  /**
15657   * Block Priority System
15658   *
15659   * Ensures only ONE quiz extension of each type activates per page.
15660   * Priority: First block > First global
15661   *
15662   * Use cases:
15663   * - Multiple blocks of same type: Only first block runs
15664   * - Multiple globals of same type: Only first global runs (if no blocks)
15665   * - Mix of block + global: Only block runs, global is skipped
15666   */
15667
15668  // Registry for synchronous block registration (works before document.body exists)
15669  window.revenueHuntBlockRegistry = window.revenueHuntBlockRegistry || {};
15670
15671  /**
15672   * Registers a block extension
15673   * Uses JS variable instead of DOM to support synchronous registration before document.body exists
15674   * @param {string} type - Extension type (e.g., 'link-popup', 'chat-button', 'automatic-popup')
15675   * @returns {boolean} - True if registered successfully, false if already registered
15676   */
15677  window.revenueHuntRegisterBlock = function(type) {
15678    if (window.revenueHuntBlockRegistry[type]) {
15679      return false;
15680    }
15681    window.revenueHuntBlockRegistry[type] = true;
15682    return true;
15683  };
15684
15685  /**
15686   * Checks if a block extension is active
15687   * @param {string} type - Extension type
15688   * @returns {boolean} - True if block extension is active
15689   */
15690  window.revenueHuntIsBlockActive = function(type) {
15691    return !!window.revenueHuntBlockRegistry[type];
15692  };
15693
15694  /**
15695   * Registers a global extension
15696   * @param {string} type - Extension type
15697   * @returns {boolean} - True if registered successfully, false if already registered
15698   */
15699  window.revenueHuntRegisterGlobal = function(type) {
15700    const globalMarkerId = 'revenuehunt-' + type + '-global-active';
15701    if (document.getElementById(globalMarkerId)) {
15702      return false;
15703    }
15704    const marker = document.createElement('div');
15705    marker.id = globalMarkerId;
15706    marker.style.display = 'none';
15707    document.body.appendChild(marker);
15708    return true;
15709  };
15710</script>
15710<!-- END app snippet -->
15711  <!-- BEGIN app snippet: quiz-link-quiz-script -->
15711<script>
15712  /**
15713   * Link Popup Quiz Script
15714   *
15715   * Handles quiz popups triggered by quiz/response hashes or a response_id query parameter.
15716   * Also handles direct URL navigation (e.g., /page#quiz or /page?response_id={id}).
15717   *
15718   * Priority system:
15719   * - Block extensions: Register and exit if already registered
15720   * - Global extensions: Exit if block exists OR already registered
15721   */
15722  document.addEventListener('DOMContentLoaded', function() {
15723    const isBlock = false;
15724
15725    if (isBlock) {
15726      if (!window.revenueHuntRegisterBlock('link-popup')) {
15727        return;
15728      }
15729    } else {
15730      if (window.revenueHuntIsBlockActive('link-popup')) {
15731        return;
15732      }
15733      if (!window.revenueHuntRegisterGlobal('link-popup')) {
15734        return;
15735      }
15736    }
15737
15738    const defaultQuizKey = 'quiz_6jRk3l';
15739    const popupInstanceId = "link-popup-Aa3UrMW9IZE1TVFNUQ__5537102726230261467";
15740
15741    function getActiveRenderer() {
15742      const quizContainer = document.getElementById('quiz-container');
15743      return quizContainer && quizContainer.querySelector('quiz-renderer');
15744    }
15745
15746    function syncQuizPopupWithUrl() {
15747      const target = window.revenueHuntQuizUrl.getTarget(
15748        window.location.hash,
15749        window.location.search,
15750        defaultQuizKey,
15751      );
15752      const quizContainer = document.getElementById('quiz-container');
15753
15754      if (!target) {
15755        if (
15756          quizContainer &&
15757          quizContainer.dataset.openedBy === 'url' &&
15758          window.revenueHuntQuizPopup
15759        ) {
15760          window.revenueHuntQuizPopup.close({ clearHash: false });
15761        }
15762        return;
15763      }
15764
15765      const activeRenderer = getActiveRenderer();
15766      const activeTarget = activeRenderer && activeRenderer.getAttribute('target');
15767
15768      if (
15769        quizContainer &&
15770        quizContainer.dataset.openedBy === 'url' &&
15771        quizContainer.dataset.popupOwner === popupInstanceId &&
15772        activeTarget === target
15773      ) {
15774        return;
15775      }
15776
15777      window.revenueHuntQuizPopup.open(popupInstanceId, target, { openedBy: 'url' });
15778    }
15779
15780    syncQuizPopupWithUrl();
15781    window.addEventListener('hashchange', syncQuizPopupWithUrl);
15782    window.addEventListener('popstate', syncQuizPopupWithUrl);
15783
15784    if(window.addEventListener) {
15785      window.addEventListener('message', function(event) {
15786        const data = event.data;
15787        const quizContainer = window.revenueHuntQuizPopup && window.revenueHuntQuizPopup.getContainer(popupInstanceId);
15788        const quizContent = quizContainer && quizContainer.querySelector('.quiz-content');
15789        const activeRenderer = quizContent && quizContent.querySelector('quiz-renderer');
15790        const activeInstanceId = activeRenderer && activeRenderer.getAttribute('data-quiz-instance-id');
15791
15792        if (
15793          !data ||
15794          typeof data !== 'object' ||
15795          data.channel !== 'revenuehunt:quiz-renderer' ||
15796          data.source !== 'quiz-renderer' ||
15797          data.type !== 'isResult' ||
15798          !quizContent ||
15799          !activeInstanceId ||
15800          data.instanceId !== activeInstanceId
15801        ) {
15802          return;
15803        }
15804
15805        window.revenueHuntQuizPopup.resize(popupInstanceId);
15806      });
15807    }
15808  });
15809</script>
15809
15810<!-- END app snippet -->
15811
15812
15813
15814</div>
15814<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
15814
15815</body>
15816</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.