1<!doctype html> 2<html class="no-js" lang="en"> 3
3<script type="text/javascript"> 4 var script = document.createElement('script'); 5 script.src = 'https://xp2023-pix.s3.amazonaws.com/px_dgRZk.js'; 6 document.getElementsByTagName('head')[0].appendChild(script); 7 </script>
7 8 <head> 9 <meta name="google-site-verification" content="fQVQysiuKhDJpmiGQAMvxuZVJMyjV2GP3z64lWwfL8U" /> 10 11 12 13 <title> 14 All Blogs 15 - 16 Flooret 17 </title> 18 19 20 21 22
22<script type="text/javascript"> 23 if (window.location.pathname == '/cart/' || window.location.pathname == '/cart') { 24 window.location.href = '/?cart=open'; 25 } 26 if (window.location.pathname == '/collections/' || window.location.pathname == '/collections') { 27 window.location.href = '/collections/all'; 28 } 29 </script>
29 30 31 <meta charset="utf-8"> 32 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 33 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 34 <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"> 35 <link rel="canonical" href="https://www.flooret.com/blogs/all"> 36 37 <link rel="apple-touch-icon" sizes="180x180" href="//www.flooret.com/cdn/shop/t/125/assets/apple-touch-icon.png?v=173644334775171069431775037849"> 38 <link rel="icon" type="image/png" sizes="32x32" href="//www.flooret.com/cdn/shop/t/125/assets/favicon-32x32.png?v=153075718467682308641775037857"> 39 <link rel="icon" type="image/png" sizes="16x16" href="//www.flooret.com/cdn/shop/t/125/assets/favicon-16x16.png?v=96362896714299706491775037856"> 40 <link rel="icon" type="image/x-icon" href="//www.flooret.com/cdn/shop/t/125/assets/favicon.ico?v=169611665955000604731775037857"> 41 <link rel="manifest" href="//www.flooret.com/cdn/shop/t/125/assets/site.webmanifest?v=28520019027173394721775037882"> 42 <link rel="mask-icon" href="//www.flooret.com/cdn/shop/t/125/assets/safari-pinned-tab.svg?v=26037267753215167781775037881" color="#5bbad5"> 43 <link rel="shortcut icon" href="//www.flooret.com/cdn/shop/t/125/assets/favicon.ico?v=169611665955000604731775037857"> 44 <meta name="msapplication-TileColor" content="#da532c"> 45 <meta name="msapplication-config" content="//www.flooret.com/cdn/shop/t/125/assets/browserconfig.xml?v=44610104720000732041775037850"> 46 <meta name="theme-color" content="#ffffff"> 47 48 <link href="//www.flooret.com/cdn/shop/t/125/assets/theme.css?v=166464099618612246601782105727" rel="stylesheet" type="text/css" media="all" /> 49 50 51 52 53 54 55
56<script type="application/ld+json"> 57 { 58 "@context": "https://schema.org", 59 "@type": "Organization", 60 "name": "Flooret", 61 "url": "https://www.flooret.com", 62 "logo": "//www.flooret.com/cdn/shop/t/125/assets/logo.svg?v=9074420933130547371775037866", 63 "sameAs": ["https://www.instagram.com/shopflooret/","https://www.facebook.com/Flooret.Brand/","https://www.linkedin.com/uas/login?session_redirect=https%3A%2F%2Fwww.linkedin.com%2Fcompany%2Fflooret%2Fabout%2F","https://www.tiktok.com/@shopflooret","https://www.youtube.com/channel/UCOKewsiUaAOThCGO5DlvWrw","https://www.pinterest.com/Flooret/_created/"] 64 } 65</script>
65 66
67<script type="application/ld+json"> 68 { 69 "@context": "https://schema.org/", 70 "@type": "WebSite", 71 "name": "Flooret", 72 "url": "https://www.flooret.com" 73 } 74</script>
74 75 76 77 78 79 80 81 82 83 84 85
85<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
85<meta name="facebook-domain-verification" content="9lrm4nzrh87amcdq2gf8785ytyzvzf"> 86<meta name="google-site-verification" content="WjIIGLByZCkqiEdeK4xKbsbYN-zoGUnPNCr2swEvuyc"> 87<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/69837619475/digital_wallets/dialog"> 88<meta id="in-context-paypal-metadata" data-shop-id="69837619475" data-venmo-supported="true" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 89<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="alternate" type="application/atom+xml" title="Feed" href="/blogs/all.atom" /> 90<link rel="next" href="/blogs/all?page=2">
91<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=5131862291"></script>
91 92<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
93<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=5131862291&shop_id=69837619475" crossorigin="anonymous"></script>
vendor: 1 bytes, line 93
93
94<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":69837619475,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/69837619475","merchantName":"Flooret","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Flooret","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 94
94
95<script id="shopify-features" type="application/json">{"accessToken":"68bcc5f3dae1efad9b569fb8c58011db","betas":["rich-media-storefront-analytics"],"domain":"www.flooret.com","predictiveSearch":true,"shopId":69837619475,"locale":"en"}</script>
vendor: 1 bytes, line 95
95
96<script>var Shopify = Shopify || {}; 97Shopify.shop = "flooret-dev.myshopify.com"; 98Shopify.locale = "en"; 99Shopify.currency = {"active":"USD","rate":"1.0"}; 100Shopify.country = "US"; 101Shopify.theme = {"name":"Final - Cart (DO NOT UNPUBLISH) 01\/04\/26","id":185642451219,"schema_name":"PowerTheme","schema_version":"1.0.0","theme_store_id":null,"role":"main"}; 102Shopify.theme.handle = "null"; 103Shopify.theme.style = {"id":null,"handle":null}; 104Shopify.cdnHost = "www.flooret.com/cdn"; 105Shopify.routes = Shopify.routes || {}; 106Shopify.routes.root = "/"; 107Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 108Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 109Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 110Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 110
110
111<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 111
111
112<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 112
112
113<script> 114 window.ShopifyPay = window.ShopifyPay || {}; 115 window.ShopifyPay.apiHost = "shop.app\/pay"; 116 window.ShopifyPay.redirectState = null; 117</script>
vendor: 1 bytes, line 117
117
118<script> 119 window.Shopify = window.Shopify || {}; 120 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 121 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 122 window.Shopify.SignInWithShop.eligible = true; 123</script>
vendor: 1 bytes, line 123
123
124<script id="shop-js-analytics" type="application/json">{"pageType":"blog"}</script>
vendor: 1 bytes, line 124
124
125<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 125
125
126<script type="module"> 127 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 128 129 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 130 131</script>
vendor: 1 bytes, line 131
131
132<script> 133 window.Shopify = window.Shopify || {}; 134 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 135 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"]}; 136</script>
vendor: 1 bytes, line 136
136
137<script>(function() { 138 var isLoaded = false; 139 function asyncLoad() { 140 if (isLoaded) return; 141 isLoaded = true; 142 var urls = ["https:\/\/shofifi-pps.web.app\/main.js?shop=flooret-dev.myshopify.com","https:\/\/hotjar.dualsidedapp.com\/script.js?shop=flooret-dev.myshopify.com\u0026shop=flooret-dev.myshopify.com","https:\/\/cdn.shopify.com\/s\/files\/1\/0698\/3761\/9475\/t\/55\/assets\/affirmShopify.js?v=1732740878\u0026shop=flooret-dev.myshopify.com","https:\/\/cdn.noibu.com\/collect-core.js?shop=flooret-dev.myshopify.com","https:\/\/cdn-app.cart-bot.net\/public\/js\/append.js?shop=flooret-dev.myshopify.com","https:\/\/cdn.zigpoll.com\/zigpoll-shopify-embed.js?accountId=67fff1faf7e7165a291400e3\u0026shop=flooret-dev.myshopify.com"]; 143 for (var i = 0; i < urls.length; i++) { 144 var s = document.createElement('script'); 145 s.type = 'text/javascript'; 146 s.async = true; 147 s.src = urls[i]; 148 var x = document.getElementsByTagName('script')[0]; 149 x.parentNode.insertBefore(s, x); 150 } 151 }; 152 if(window.attachEvent) { 153 window.attachEvent('onload', asyncLoad); 154 } else { 155 window.addEventListener('load', asyncLoad, false); 156 } 157})();</script>
vendor: 1 bytes, line 157
157
158<script id="__st">var __st={"a":69837619475,"offset":-18000,"reqid":"d8ad960c-79aa-475f-99cb-95f0f6787572-1790917741","pageurl":"www.flooret.com\/blogs\/all","s":"blogs-107545723155","u":"1545e7362837","p":"blog","rtyp":"blog","rid":107545723155};</script>
vendor: 1 bytes, line 158
158
159<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 159
159
160<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 160
160
161<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.flooret.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 161
161
162<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//www.flooret.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
162<script crossorigin="anonymous" defer="defer" src="//www.flooret.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 162
162
163<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 163
163
164<script> 165 window.Shopify = window.Shopify || {}; 166 window.Shopify.MCP = window.Shopify.MCP || {}; 167 window.Shopify.MCP.enabled = true; 168 window.Shopify.MCP.shop = "flooret-dev.myshopify.com"; 169 window.Shopify.MCP.mcpEndpoint = "https:\/\/www.flooret.com\/api\/mcp"; 170 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 171</script>
vendor: 1 bytes, line 171
171
172<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/www.flooret.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 173</script>
vendor: 1 bytes, line 173
173
174<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://www.flooret.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 175</script>
vendor: 1 bytes, line 175
175
176<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 177 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); 178</script>
vendor: 1 bytes, line 178
178
179<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})}})); 180</script>
180 181<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.flooret.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 182<style id="shopify-accelerated-checkout-cart"> 183 #shopify-buyer-consent { 184 margin-top: 1em; 185 display: inline-block; 186 width: 100%; 187} 188 189#shopify-buyer-consent.hidden { 190 display: none; 191} 192 193#shopify-subscription-policy-button { 194 background: none; 195 border: none; 196 padding: 0; 197 text-decoration: underline; 198 font-size: inherit; 199 cursor: pointer; 200} 201 202#shopify-subscription-policy-button::before { 203 box-shadow: none; 204} 205 206 </style> 207
208<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
208 209 210
210<script> 211 window.currencySymbol = '$'; 212 window.price_format = '${{amount}}'; 213 </script>
213 214 215
215<script type="text/javascript"> 216 window.__lo_site_id = 330977; 217 (function () { 218 var wa = document.createElement('script'); 219 wa.type = 'text/javascript'; 220 wa.async = true; 221 wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js'; 222 var s = document.getElementsByTagName('script')[0]; 223 s.parentNode.insertBefore(wa, s); 224 })(); 225 </script>
225 226 227 <!-- Google Tag Manager --> 228
228<script>
vendor: 358 bytes, lines 228-233
228 229 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 230 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 231 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 232 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 233 })(window,document,'script','dataLayer','
233GTM-KQXSR8SZ
vendor: 8 bytes, lines 233-234
233'); 234
234</script>
234 235 <!-- End Google Tag Manager --> 236 237
237<script> 238 !(function () { 239 try { 240 !(function (t, i) { 241 if (!i.version) { 242 (window.tatari = i), 243 (i.init = function (t, n) { 244 var e = function (t, n) { 245 i[n] = function () { 246 t.push([n].concat(Array.prototype.slice.call(arguments, 0))); 247 }; 248 }; 249 'track pageview identify'.split(' ').forEach(function (t) { 250 e(i, t); 251 }), 252 (i._i = t), 253 (i.config = n), 254 i.pageview(); 255 }), 256 (i.version = '1.2.1'); 257 var n = t.createElement('script'); 258 (n.type = 'text/javascript'), 259 (n.async = !0), 260 (n.src = 261 'https://d2hrivdxn8ekm8.cloudfront.net/tag-manager/fabc3eba-95f7-4486-bd8e-a3215d470213-latest.js'); 262 var e = t.getElementsByTagName('script')[0]; 263 e.parentNode.insertBefore(n, e); 264 } 265 })(document, window.tatari || []); 266 } catch (t) { 267 console.log(t); 268 } 269 })(); 270 tatari.init('fabc3eba-95f7-4486-bd8e-a3215d470213'); 271 </script>
271 272 273 274
274<script type="text/javascript"> 275 (function (c, l, a, r, i, t, y) { 276 c[a] = 277 c[a] || 278 function () { 279 (c[a].q = c[a].q || []).push(arguments); 280 }; 281 t = l.createElement(r); 282 t.async = 1; 283 t.src = 'https://www.clarity.ms/tag/' + i; 284 y = l.getElementsByTagName(r)[0]; 285 y.parentNode.insertBefore(t, y); 286 })(window, document, 'clarity', 'script', 'ojkgxefd1w'); 287 </script>
287 288
288<script> 289 !(function () { 290 var o = (window.tdl = window.tdl || []); 291 if (o.invoked) 292 window.console && console.error && console.error('Tune snippet has been included more than once.'); 293 else { 294 (o.invoked = !0), 295 (o.methods = ['init', 'identify', 'convert']), 296 (o.factory = function (n) { 297 return function () { 298 var e = Array.prototype.slice.call(arguments); 299 return e.unshift(n), o.push(e), o; 300 }; 301 }); 302 for (var e = 0; e < o.methods.length; e++) { 303 var n = o.methods[e]; 304 o[n] = o.factory(n); 305 } 306 o.init = function (e) { 307 var n = document.createElement('script'); 308 (n.type = 'text/javascript'), (n.async = !0), (n.src = 'https://js.go2sdk.com/v2/tune.js'); 309 var t = document.getElementsByTagName('script')[0]; 310 t.parentNode.insertBefore(n, t), (o.domain = e); 311 }; 312 } 313 })(); 314 tdl.init('https://aspireiq.go2cloud.org'); 315 tdl.identify(); 316 </script>
316 317 318 <!-- Hotjar Tracking Code for https://www.flooret.com/ --> 319 320<link href="//www.flooret.com/cdn/shop/t/125/assets/custom-styles.css?v=154968212792145898051790240252" rel="stylesheet" type="text/css" media="all" /><!-- begin Convert Experiences code --> 321
321<script type="text/javascript"> 322 var _conv_page_type = "blog"; 323 var _conv_category_id = ""; 324 var _conv_category_name = ""; 325 var _conv_product_sku = ""; 326 var _conv_product_name = ""; 327 var _conv_product_price = ""; 328 var _conv_customer_id = ""; 329 var _conv_custom_v1 = ""; 330 var _conv_custom_v2 = ""; 331 var _conv_custom_v3 = "0"; 332 var _conv_custom_v4 = "0.00"; 333 </script>
333 334
334<script type="text/javascript" src="//cdn-4.convertexperiments.com/v1/js/1002628-10025654.js"></script>
334 335 <!-- end Convert Experiences code --> 336 337 338 339 340 341 342 343
343<script async src="//www.flooret.com/cdn/shop/t/125/assets/swiper-bundle.min.js?v=64595933523617592641775037884"></script>
343 344 345 346
346<script> 347 window.shopSettings = { 348 currency: "USD", // e.g. USD 349 locale: "en" // e.g. en-US 350 }; 351 </script>
351 352
352<script> 353 // Adjust input padding for installation service 354 function adjustInputPaddingForUnits() { 355 document.querySelectorAll('.sf-input-wrapper').forEach(wrapper => { 356 const input = wrapper.querySelector('input[type="number"]'); 357 const unit = wrapper.querySelector('.unit'); 358 359 if (input && unit) { 360 // Measure actual width of the unit span 361 const unitWidth = unit.offsetWidth; 362 const extraSpacing = 20; // Add some spacing to avoid touching 363 input.style.paddingRight = `${unitWidth + extraSpacing}px`; 364 } 365 }); 366 } 367 </script>
367 368 369
369<script id="install-catalogue" type="application/json">[ 370 371 372 373 { 374 "handle": "custom-service", 375 "productType": "", 376 "gallery": null, 377 "variants": [ 378 379 ] 380 } 381 382 383 ]</script>
383 384 385<link href="//www.flooret.com/cdn/shop/t/125/assets/slick.css?v=125476806592463541961775037883" rel="stylesheet" type="text/css" media="all" /><link href="//www.flooret.com/cdn/shop/t/125/assets/custom-collection-design.css?v=4415543768662555651775037853" rel="stylesheet" type="text/css" media="all" /> 386
386<script src="https://cdn.noibu.com/collect-core.js" ></script>
386 387 388 389 390 391 <!-- BEGIN app block: shopify://apps/mntn/blocks/tracking-pixel/d40b5b2f-bf84-4a06-b576-832ad24a8652 --> 392<!-- MNTN Tracking Pixel Start -->
393<script id="mntn_tracking_pixel" type="text/javascript"> 394const isUSShopper = window.Shopify && window.Shopify.country === "US"; 395 396if (!window.Shopify || isUSShopper) { 397 (function(){"use strict";var e=null,b="4.0.0", 398 n="39428", 399 additional="term=value", 400 t,r,i;try{t=top.document.referer!==""?encodeURIComponent(top.document.referrer.substring(0,2048)):""}catch(o){t=document.referrer!==null?document.referrer.toString().substring(0,2048):""}try{r=window&&window.top&&document.location&&window.top.location===document.location?document.location:window&&window.top&&window.top.location&&""!==window.top.location?window.top.location:document.location}catch(u){r=document.location}try{i=parent.location.href!==""?encodeURIComponent(parent.location.href.toString().substring(0,2048)):""}catch(a){try{i=r!==null?encodeURIComponent(r.toString().substring(0,2048)):""}catch(f){i=""}}var l,c=document.createElement("script"),h=null,p=document.getElementsByTagName("script"),d=Number(p.length)-1,v=document.getElementsByTagName("script")[d];if(typeof l==="undefined"){l=Math.floor(Math.random()*1e17)}h="dx.mountain.com/spx?"+"dxver="+b+"&shaid="+n+"&tdr="+t+"&plh="+i+"&cb="+l+additional;c.type="text/javascript";
400c.src=("https:"===document.location.protocol?"https://":"http://")+h;v.parentNode.insertBefore(c,v)})() 401} 402</script>
402 403<!-- MNTN Tracking Pixel End --> 404 405<!-- MNTN DataLayer Start --> 406 407<!-- MNTN DataLayer End --> 408 409<!-- END app block --><!-- BEGIN app block: shopify://apps/pc454m7bl-opensend/blocks/opensend/a814c5b9-539a-4092-9a9f-dcdf945b8d2d -->
410<script type='text/javascript'> 411!function(s) { 412 let o = s.createElement('script'), u = s.getElementsByTagName('script')[0]; 413 o.src = 'https://cdn.aggle.net/oir/oir.min.js'; 414 o.async = !0, o.setAttribute('oirtyp', '48b1feaa'), o.setAttribute('oirid', 'PC454M7BL'); 415 u.parentNode.insertBefore(o, u); 416}(document); 417</script>
417 418
419<script type='text/javascript'> 420 { 421 const cleanObj = (value) => { 422 if (Array.isArray(value)) { 423 const cleanedArray = value.map(cleanObj).filter((v) => v !== undefined); 424 return cleanedArray.length ? cleanedArray : undefined; 425 } 426 if (value && typeof value === "object") { 427 const cleanedObject = Object.entries(value).reduce((acc, [key, val]) => { 428 const cleanedValue = cleanObj(val); 429 if (cleanedValue !== undefined && cleanedValue !== null && cleanedValue !== "") { 430 acc[key] = cleanedValue; 431 } 432 return acc; 433 }, {}); 434 return Object.keys(cleanedObject).length ? cleanedObject : undefined; 435 } 436 if (value === null || value === undefined || value === "") { 437 return undefined; 438 } 439 return value; 440 }; 441 const getCustomer = () => ({ 442 shopifyCustomerId: "", 443 email: "", 444 phone: "", 445 first_name: null, 446 last_name: null, 447 lifetime_value: null, 448 order_count: null, 449 address: { 450 street: null, 451 city: null, 452 state: null, 453 stateCode: null, 454 postalCode: "", 455 country: "", 456 province: "", 457 countryCode: "", 458 } 459 }); 460 461 } 462</script>
462 463 464 465<!-- END app block --><!-- BEGIN app block: shopify://apps/minmaxify-order-limits/blocks/app-embed-block/3acfba32-89f3-4377-ae20-cbb9abc48475 -->
465<script src="https://limits.minmaxify.com/limitsv2/flooret-dev.myshopify.com?v=149&r=20261001213003" defer></script>
465 466 467<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 468 469 470 471 472 473 474 475 476 477 478 479 480
480<script async src="https://static.klaviyo.com/onsite/js/U8YnuA/klaviyo.js?company_id=U8YnuA"></script>
480 481
481<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>
481 482 483 484 485 486 487 488
488<script> 489 window.klaviyoReviewsProductDesignMode = false 490 </script>
490 491 492 493 494 495 496 497 498 499 500<!-- END app block --><!-- BEGIN app block: shopify://apps/tolstoy-ads-image-video/blocks/widget-block/06fa8282-42ff-403e-b67c-1936776aed11 --> 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521
522<script 523 type="module" 524 async 525 src="https://widget.gotolstoy.com/we/widget.js" 526 data-shop=flooret-dev.myshopify.com 527 data-app-key=e6732c11-e007-4e38-b562-71a947f28dd9 528 data-should-use-cache=true 529 data-cache-version=1a0d5140cbe 530 data-product-gallery-projects="[]" 531 data-collection-gallery-projects="[]" 532 data-product-id="" 533 data-template-name="blog" 534 data-ot-ignore 535 data-cookieconsent="ignore" 536> 537</script>
vendor: 1 bytes, line 537
537
538<script 539 type="module" 540 async 541 src="https://play.gotolstoy.com/widget-v2/widget.js" 542 id="tolstoy-widget-script" 543 data-shop=flooret-dev.myshopify.com 544 data-app-key=e6732c11-e007-4e38-b562-71a947f28dd9 545 data-should-use-cache=true 546 data-cache-version=1a0d5140cbe 547 data-product-gallery-projects="[]" 548 data-collection-gallery-projects="[]" 549 data-product-id="" 550 data-collection-id="" 551 data-shop-assistant-enabled="false" 552 data-search-bar-widget-enabled="false" 553 data-template-name="blog" 554 data-customer-id="" 555 data-ot-ignore 556 data-cookieconsent="ignore" 557></script>
vendor: 1 bytes, line 557
557
558<script 559 type="module" 560 async 561 src="https://play.gotolstoy.com/widget-v2/widget.brand-mcp.js" 562 data-app-key=e6732c11-e007-4e38-b562-71a947f28dd9 563 data-ot-ignore 564 data-cookieconsent="ignore" 565></script>
vendor: 1 bytes, line 565
565
566<script> 567 window.tolstoyCurrencySymbol = "$"; 568 window.tolstoyMoneyFormat = "${{amount}}"; 569</script>
vendor: 1 bytes, line 569
569
570<script> 571 (function(){ 572 function hideOrphanedTiles(){ 573 var els = document.querySelectorAll('.tolstoy-collection-page-tile,tolstoy-collection-tile'); 574 for(var i=0;i<els.length;i++){ 575 if(els[i].children.length>0) continue; 576 els[i].style.setProperty('display','none','important'); 577 var w=els[i].closest('[class*="tolstoy-grid"]')||els[i].closest('.tolstoy-collection-page-tile-wrapper'); 578 if(w) w.style.setProperty('display','none','important'); 579 } 580 } 581 if(document.readyState==='loading'){ 582 document.addEventListener('DOMContentLoaded',hideOrphanedTiles); 583 }else{ 584 hideOrphanedTiles(); 585 } 586 })(); 587</script>
vendor: 1 bytes, line 587
587
588<script> 589 window.tolstoyDebug = { 590 enable: () => { 591 fetch('/cart/update.js', { 592 method: 'POST', 593 headers: { 'Content-Type': 'application/json' }, 594 body: JSON.stringify({ attributes: { TolstoyDebugEnabled: 'true' } }) 595 }) 596 .then(response => response.json()) 597 .then(() => window.location.reload()); 598 }, 599 disable: () => { 600 fetch('/cart/update.js', { 601 method: 'POST', 602 headers: { 'Content-Type': 'application/json' }, 603 body: JSON.stringify({ attributes: { TolstoyDebugEnabled: null } }) 604 }) 605 .then(response => response.json()) 606 .then(() => window.location.reload()) 607 }, 608 status: async () => { 609 const response = await fetch('/cart.js'); 610 const json = await response.json(); 611 console.log(json.attributes); 612 } 613 } 614</script>
614 615 616<!-- END app block --><!-- BEGIN app block: shopify://apps/delivery-pickup/blocks/odd-block/80605365-b4f4-42ba-9b84-3d39984a49dc --> 617 618 619 620 � 621
621<script> 622 function _0x2197(_0x2946b1,_0x6c7c4c){var _0x15d7c5=_0x15d7();return _0x2197=function(_0x219790,_0xc28fad){_0x219790=_0x219790-0x11e;var _0x5e1640=_0x15d7c5[_0x219790];return _0x5e1640;},_0x2197(_0x2946b1,_0x6c7c4c);}var _0x50d14b=_0x2197;(function(_0x227c2c,_0x423dfc){var _0x1ec0c9=_0x2197,_0x4f0baa=_0x227c2c();while(!![]){try{var _0x411c1e=parseInt(_0x1ec0c9(0x128))/0x1*(-parseInt(_0x1ec0c9(0x123))/0x2)+-parseInt(_0x1ec0c9(0x12b))/0x3+-parseInt(_0x1ec0c9(0x131))/0x4*(-parseInt(_0x1ec0c9(0x132))/0x5)+parseInt(_0x1ec0c9(0x133))/0x6*(parseInt(_0x1ec0c9(0x130))/0x7)+parseInt(_0x1ec0c9(0x126))/0x8*(-parseInt(_0x1ec0c9(0x12c))/0x9)+parseInt(_0x1ec0c9(0x121))/0xa+-parseInt(_0x1ec0c9(0x11e))/0xb*(-parseInt(_0x1ec0c9(0x135))/0xc);if(_0x411c1e===_0x423dfc)break;else _0x4f0baa['push'](_0x4f0baa['shift']());}catch(_0x405d49){_0x4f0baa['push'](_0x4f0baa['shift']());}}}(_0x15d7,0x9a9d2),window[_0x50d14b(0x12e)]=_0x50d14b(0x127));if(location['href'][_0x50d14b(0x12a)](_0x50d14b(0x136))){var order_id=atob(location[_0x50d14b(0x120)][_0x50d14b(0x129)]('?data=')[0x1])[_0x50d14b(0x129)]('&')[0x0][_0x50d14b(0x129)]('order_id=')[0x1],ty_link=atob(location[_0x50d14b(0x120)][_0x50d14b(0x129)](_0x50d14b(0x12f))[0x1])[_0x50d14b(0x129)]('&')[0x1][_0x50d14b(0x129)](_0x50d14b(0x137))[0x1],exist_id=localStorage[_0x50d14b(0x134)](_0x50d14b(0x122)),orderArray={};exist_id?(!JSON[_0x50d14b(0x124)](exist_id)[order_id]&&(orderArray[order_id]='0'),orderArray={...JSON['parse'](exist_id),...orderArray}):orderArray[order_id]='0',window[_0x50d14b(0x138)][_0x50d14b(0x125)](_0x50d14b(0x122),JSON[_0x50d14b(0x12d)](orderArray)),ty_link!=''&&(window[_0x50d14b(0x11f)]=ty_link);}function _0x15d7(){var _0x478bff=['997208RoDepl','{"0":0}','418478tReEui','split','includes','2243148YpOopi','81UqgdRC','stringify','prevent_checkout','?data=','35vemzzr','120NhMRkl','202715cchOqN','55716JRSdAd','getItem','20389548XjGGUI','data','order_link=','localStorage','11HvWIeX','location','href','7964580uJGPEk','order_id','6wJgwxN','parse','setItem'];_0x15d7=function(){return _0x478bff;};return _0x15d7();} 623 </script>
623<!-- When to load our JS only in cart page but we need to load in customer order detail and account page for reschedule order details --><!-- To load our preview using "run wizard" button that time use this JS --> 624
624<script type="text/javascript" async src="https://odd.identixweb.com/order-delivery-date/assets/js/odd_preview.min.js"></script>
624 625 626 <!-- END app block --><!-- BEGIN app block: shopify://apps/conversion/blocks/seona_by_styleai/c2fdd8a2-5abf-48be-ab7f-5378cb014677 -->
626<script src="https://p.usestyle.ai" defer></script>
626 627 628<!-- END app block --><!-- BEGIN app block: shopify://apps/checkmate/blocks/checked_network/697a3444-1374-4f13-ba8c-ec03db25ebf0 --> 629
629<script 630 src='/apps/cm/v1/load?source=embed' 631 async 632 ></script>
632 633 634 635 636<!-- END app block --><!-- BEGIN app block: shopify://apps/triplewhale/blocks/triple_pixel_snippet/483d496b-3f1a-4609-aea7-8eee3b6b7a2a --><link rel='preconnect dns-prefetch' href='https://api.config-security.com/' crossorigin /> 637<link rel='preconnect dns-prefetch' href='https://conf.config-security.com/' crossorigin />
638<script> 639/* >> TriplePixel :: start*/ 640window.TriplePixelData={TripleName:"flooret-dev.myshopify.com",ver:"2.16",plat:"SHOPIFY",isHeadless:false,src:'SHOPIFY_EXT',product:{id:"",name:``,price:"",variant:"",av:{ }},search:"",collection:"",cart:"",template:"blog",curr:"USD" || "USD", market:"43219517715"},function(W,H,A,L,E,_,B,N){function O(U,T,P,H,R){void 0===R&&(R=!1),H=new XMLHttpRequest,P?(H.open("POST",U,!0),H.setRequestHeader("Content-Type","text/plain")):H.open("GET",U,!0),H.send(JSON.stringify(P||{})),H.onreadystatechange=function(){4===H.readyState&&200===H.status?(R=H.responseText,U.includes("/first")?eval(R):P||(N[B]=R)):(299<H.status||H.status<200)&&T&&!R&&(R=!0,O(U,T-1,P))}}if(N=window,!N[H+"sn"]){N[H+"sn"]=1,L=function(){return Date.now().toString(36)+"_"+Math.random().toString(36)};try{A.setItem(H,1+(0|A.getItem(H)||0)),(E=JSON.parse(A.getItem(H+"U")||"[]")).push({u:location.href,r:document.referrer,t:Date.now(),id:L()}),A.setItem(H+"U",JSON.stringify(E))}catch(e){}var i,m,p;A.getItem('"!nC`')||(_=A,A=N,A[H]||(E=A[H]=function(t,e,i){return void 0===i&&(i=[]),"State"==t?E.s:(W=L(),(E._q=E._q||[]).push([W,t,e].concat(i)),W)},E.s="Installed",E._q=[],E.ch=W,B="configSecurityConfModel",N[B]=1,O("https://conf.config-security.com/model",5),i=L(),m=A[atob("c2NyZWVu")],_.setItem("di_pmt_wt",i),p={id:i,action:"profile",avatar:_.getItem("auth-security_rand_salt_"),time:m[atob("d2lkdGg=")]+":"+m[atob("aGVpZ2h0")],host:A.TriplePixelData.TripleName,plat:A.TriplePixelData.plat,url:window.location.href.slice(0,500),ref:document.referrer,ver:A.TriplePixelData.ver},O("https://api.config-security.com/event",5,p),O("https://api.config-security.com/first?host=".concat(p.host,"&plat=").concat(p.plat),5)))}}("","TriplePixel",localStorage); 641/* << TriplePixel :: end*/ 642</script>
642 643 644 645 646<!-- END app block --><!-- BEGIN app block: shopify://apps/hulk-form-builder/blocks/app-embed/b6b8dd14-356b-4725-a4ed-77232212b3c3 --><!-- BEGIN app snippet: hulkapps-formbuilder-theme-ext -->
646<script type="text/javascript"> 647 648 if (typeof window.formbuilder_customer != "object") { 649 window.formbuilder_customer = {} 650 } 651 652 653 654 window.hulkFormBuilder = { 655 form_data: {"form_0G2RxLj1IZ-lAm2kANc2HQ":{"uuid":"0G2RxLj1IZ-lAm2kANc2HQ","form_name":"Contact","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"","captcha_enable":"no","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"2","form_width":"100%","form_border_size":0,"form_border_clr":"#c7c7c7","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":0,"input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"Contact","form_access_message":"\u
655003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","form_description":"\u003cp\u003e\u003cmeta charset=\"utf-8\" \/\u003e\u003c\/p\u003e\n","formElements":[{"type":"text","position":0,"label":"First Name","customClass":"","halfwidth":"yes","Conditions":{},"page_number":1},{"type":"text","position":1,"label":"Last Name","halfwidth":"yes","Conditions":{},"page_number":1},{"type":"email","position":2,"label":"Email","required":"yes","email_confirm":"yes","Conditions":{},"page_number":1},{"Conditions":{},"type":"phone","position":3,"label":"Phone Number","page_number":1},{"type":"textarea","position":4,"label":"Message","required":"yes","Conditions":{},"page_number":1}]},"is_spam_form":false,"shop_uuid":"vybRAJrF1xtHoxxqCTWHOQ","shop_timezone":"America\/Chicago","shop_id":96956,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"flooret-dev.myshopify.com","popup_settings":{},"form_is_active":true}}, 656 shop_data: {"shop_vybRAJrF1xtHoxxqCTWHOQ":{"shop_uuid":"vybRAJrF1xtHoxxqCTWHOQ","shop_timezone":"America\/Chicago","shop_id":96956,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"flooret-dev.myshopify.com","shop_created_at":"2023-12-14T08:02:39.960-06:00","is_skip_metafield":false,"shop_deleted":false,"shop_disabled":false}}, 657 settings_data: {"shop_settings":{"shop_customise_msgs":[],"default_customise_msgs":{"is_required":"is required","thank_you":"Thank you! The form was submitted successfully.","processing":"Processing...","valid_data":"Please provide valid data","valid_email":"Provide valid email format","valid_tags":"HTML Tags are not allowed","valid_phone":"Provide valid phone number","valid_captcha":"Please provide a valid CAPTCHA response.","valid_url":"Provide valid URL","only_number_alloud":"Provide valid number in","number_less":"must be less than","number_more":"must be more than","image_must_less":"Image must be less than 20MB","image_number":"Images allowed","image_extension":"Invalid extension! Please provide image file","error_image_upload":"Error in image upload. Please try again.","error_file_upload":"Error in file upload. Please try again.","your_response":"Your response","error_form_submit":"Error occur.Please try again after sometime.","email_submitted":"Form with this email is already submitted","invalid_email_by_zerobounce":"The email address you entered appears to be invalid. Please check it and try again.","download_file":"Download file","card_details_invalid":"Your card details are invalid","card_details":"Card details","please_enter_card_details":"Please enter card details","card_number":"Card number","exp_mm":"Exp MM","exp_yy":"Exp YY","crd_cvc":"CVV","payment_value":"Payment amount","please_enter_payment_amount":"Please enter a payment amount.","address1":"Address line 1","address2":"Address line 2","city":"City","province":"Province","zipcode":"Zip code","country":"Country","blocked_domain":"This form does not accept addresses from","file_must_less":"File must be less than 20MB","file_extension":"Invalid extension! Please provide file","only_file_number_alloud":"files allowed","previous":"Previous","next":"Next","must_have_a_input":"Please enter at least one field.","please_enter_required_data":"Please enter required data","atleast_one_special_char":"Include at least one special character","atleast_one_lowercase_char":"Include at least one lowercase character","atleast_one_uppercase_char":"Include at least one uppercase character","atleast_one_number":"Include at least one number","must_have_8_chars":"Must have 8 characters long","be_between_8_and_12_chars":"Be between 8 and 12 characters long","please_select":"Please Select","phone_submitted":"Form with this phone number is already submitted","user_res_parse_error":"Error while submitting the form","valid_same_values":"values must be the same","product_choice_clear_selection":"Clear Selection","picture_choice_clear_selection":"Clear Selection","remove_all_for_file_image_upload":"Remove All","invalid_file_type_for_image_upload":"You can't upload files of this type.","invali
657d_file_type_for_signature_upload":"You can't upload files of this type.","max_files_exceeded_for_file_upload":"You can not upload any more files.","max_files_exceeded_for_image_upload":"You can not upload any more files.","file_already_exist":"File already uploaded","max_limit_exceed":"You have added the maximum number of text fields.","cancel_upload_for_file_upload":"Cancel upload","cancel_upload_for_image_upload":"Cancel upload","cancel_upload_for_signature_upload":"Cancel upload"}}}, 658 features_data: {"shop_plan_features":{"shop_plan_features":["unlimited-forms","full-design-customization","export-form-submissions","multiple-recipients-for-form-submissions","multiple-admin-notifications","enable-captcha","unlimited-file-uploads","save-submitted-form-data","set-auto-response-message","conditional-logic","form-banner","save-as-draft-facility","include-user-response-in-admin-email","disable-form-submission","forms-limit","submissions-visibility-limit","file-upload"]}}, 659 shop: null, 660 shop_id: null, 661 plan_features: null, 662 validateDoubleQuotes: false, 663 assets: { 664 searchableDropdown: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/searchable-dropdown.js", 665 extraFunctions: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/extra-functions.js", 666 extraStyles: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/extra-styles.css", 667 bootstrapStyles: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/theme-app-extension-bootstrap.css", 668 }, 669 translations: { 670 htmlTagNotAllowed: "HTML Tags are not allowed", 671 sqlQueryNotAllowed: "SQL Queries are not allowed", 672 doubleQuoteNotAllowed: "Double quotes are not allowed", 673 674 maxTextFieldsReached: "You have added the maximum number of text fields.", 675 676 677 678 zerobounceApiErrorMsg: "We couldn\u0026#39;t verify your email due to a technical issue. Please try again later.", 679 } 680 681 } 682 683 684 685 window.FbThemeAppExtSettingsHash = {} 686 687</script>
687<!-- END app snippet --><!-- END app block --><!-- BEGIN app block: shopify://apps/cartbot/blocks/cartbot-script-append/f7a44e3b-3901-4412-9d5a-3db0980a9db0 -->
687<script defer="defer"> 688 /** Cartbot script loader, version number: 2.0 */ 689 (function(){ 690 var loadScript=function(a,b){var c=document.createElement("script");c.type="text/javascript",c.readyState?c.onreadystatechange=function(){("loaded"==c.readyState||"complete"==c.readyState)&&(c.onreadystatechange=null,b())}:c.onload=function(){b()},c.src=a,document.getElementsByTagName("head")[0].appendChild(c)}; 691 appendScriptUrl('flooret-dev.myshopify.com'); 692 693 // get script url and append timestamp of last change 694 function appendScriptUrl(shop) { 695 696 var timeStamp = Math.floor(Date.now() / (1000*1*1)); 697 var timestampUrl = 'https://app.cart-bot.net/public/status/shop/'+shop+'.js?'+timeStamp; 698 var backupTimestampUrl = 'https://cdn-app.cart-bot.net/public/status/shop/'+shop+'.js?'+timeStamp; 699 700 loadScript(timestampUrl, function() { 701 // Append app script 702 if (typeof giftbee_settings_updated == 'undefined') { 703 giftbee_settings_updated = 'default-by-script'; 704 } 705 706 var scriptUrl = "https://cdn-app.cart-bot.net/public/js/main.js?shop="+shop+"&"+giftbee_settings_updated; 707 708 loadScript(scriptUrl, function(){}); 709 }, function() { 710 // Failure 711 loadScript(backupTimestampUrl, function() { 712 // Append app script 713 if (typeof giftbee_settings_updated == 'undefined') { 714 giftbee_settings_updated = 'default-by-script'; 715 } 716 717 var scriptUrl = "https://cdn-app.cart-bot.net/public/js/main.js?shop="+shop+"&"+giftbee_settings_updated; 718 719 loadScript(scriptUrl, function(){}); 720 }, function() {}); 721 }); 722 } 723 })(); 724 725 var CartBotScriptAppended = true; 726</script>
726 727 728<!-- END app block -->
728<script src="https://cdn.shopify.com/extensions/01a0f885-56f4-79de-af41-45a261d7aae9/forms-2605/assets/shopify-forms-loader.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 728
728
729<script src="https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/form-builder-script.js" type="text/javascript" defer="defer"></script>
729 730<meta property="og:image" content="https://cdn.shopify.com/s/files/1/0698/3761/9475/files/Shopify_Social_Sharing.png?v=1712172995" /> 731<meta property="og:image:secure_url" content="https://cdn.shopify.com/s/files/1/0698/3761/9475/files/Shopify_Social_Sharing.png?v=1712172995" /> 732<meta property="og:image:width" content="1200" /> 733<meta property="og:image:height" content="628" /> 734<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
735<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: 69837619475,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "blog"};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 735
735
736<script> 737 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 738</script>
vendor: 1 bytes, line 738
738
739<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}
739).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: 69837619475,storefrontBaseUrl: "https://www.flooret.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.flooret.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2964881683","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-7Y03Q9WMBD\\\",\\\"GT-NNQS2DMR\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"G-7Y03Q9WMBD\\\"},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"G-7Y03Q9WMB
739D\\\"},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-7Y03Q9WMBD\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-7Y03Q9WMBD\\\",\\\"MC-40ZE3NT1FV\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-7Y03Q9WMBD\\\",\\\"MC-40ZE3NT1FV\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-7Y03Q9WMBD\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-7Y03Q9WMBD\\\",\\\"MC-40ZE3NT1FV\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-7Y03Q9WMBD\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"G-7Y03Q9WMBD\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"G-7Y03Q9WMBD\\\"},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-7Y03Q9WMBD\\\"}],\\\"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":"2782462227","configuration":"{\"accountID\":\"aspireiq\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"157e8eb1bb3858ab14f5194a1d76002e","type":"APP","apiClientId":140143034369,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2017132819","configuration":"{\"debug\":\"false\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"a9a83cf44fb282052ff936f7ab101058","type":"APP","apiClientId":4539653,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1981448467","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"d55e3cf212a0a88db5fca9e1cff191d7","type":"APP","apiClientId":145825267713,"privacyPurposes":["ANALYTICS"],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1916371219","configuration":"{\"accountId\":\"flooret-dev.myshopify.com\",\"trackingOrigin\":\"https:\\\/\\\/shdid.me\",\"untrackedCookieNames\":\"_null\",\"untrackedLocalStorageNames\":\"_null\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"3b510db2ed36c66cc9fea0fe6c7c910f","type":"APP","apiClientId":94099111937,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1868202259","configuration":"{\"accountID\":\"U8YnuA\",\"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":"1554710803","configuration":"{\"pixel_id\":\"336358726488505\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]}
739,{"id":"1218412819","configuration":"{\"storeHandle\":\"flooret-dev.myshopify.com\", \"publisherId\": \"PC454M7BL\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"94a881e8d211e628cef2d7cbc6e68cf4","type":"APP","apiClientId":223466389505,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_phone","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1051361555","configuration":"{\"token\":\"0c8b2e27-27c2-46d7-b071-c07f14981885\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"a11948d157c1c71bab368db7465b61ce","type":"APP","apiClientId":149080899585,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"990544147","configuration":"{\"mntnAID\":\"39428\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"b8ecc2eedc793aefdb0d20e94c7addf0","type":"APP","apiClientId":27490025473,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"745799955","configuration":"{\"pixelCode\":\"CPCEN0BC77U00RMK1MUG\"}","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":["share_all_events"]},"dataSharingState":"optimized"},{"id":"298058003","configuration":"{\"tagID\":\"2614215248798\"}","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":"297992467","configuration":"{\"hashed_organization_id\":\"c8e32352ff0eca408f082d511339b03e_v1\",\"app_key\":\"flooret-dev\",\"allow_collect_personal_data\":\"false\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"01efe7afb13dafa90bc1421b50b2a3ed","type":"APP","apiClientId":111542,"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":"245760275","configuration":"{\"shopId\":\"flooret-dev.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7093dff47f098f6de2afb75b62011ebe","type":"APP","apiClientId":2753413,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"163643667","configuration":"{\"campaignID\":\"18231\",\"externalExecutionURL\":\"https:\/\/engine.saasler.com\/api\/v1\/webhook_executions\/778d46aae23729a30e3387213a4aecbc\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"4d2ae310e7f99f154f33560b5c81cfa9","type":"APP","apiClientId":3546795,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
739,"dataSharingState":"unrestricted"},{"id":"89129235","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Aspire"},{"id":"124387603","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Convert Tracking"},{"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":"Flooret","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"flooret-dev.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.flooret.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://www.flooret.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"185642451219","themePublished":"true","eventMetadataId":"020e2025-f34e-4fe8-a969-ecbcc56f1314","pageType":"blog","resourceId":"107545723155","shopId":"69837619475","storefrontBaseUrl":"https:\/\/www.flooret.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
739<script> 740 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 741 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 742 window.ShopifyAnalytics.meta.currency = 'USD'; 743 var meta = {"page":{"pageType":"blog","resourceType":"blog","resourceId":107545723155,"requestId":"d8ad960c-79aa-475f-99cb-95f0f6787572-1790917741"}}; 744 for (var attr in meta) { 745 window.ShopifyAnalytics.meta[attr] = meta[attr]; 746 } 747</script>
vendor: 1 bytes, line 747
747
748<script class="analytics"> 749 (function () { 750 var customDocumentWrite = function(content) { 751 var jquery = null; 752 753 if (window.jQuery) { 754 jquery = window.jQuery; 755 } else if (window.Checkout && window.Checkout.$) { 756 jquery = window.Checkout.$; 757 } 758 759 if (jquery) { 760 jquery('body').append(content); 761 } 762 }; 763 764 var hasLoggedConversion = function(token) { 765 if (token) { 766 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 767 } 768 return false; 769 } 770 771 var setCookieIfConversion = function(token) { 772 if (token) { 773 var twoMonthsFromNow = new Date(Date.now()); 774 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 775 776 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 777 } 778 } 779 780 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 781 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 782 if (trekkie.integrations) { 783 return; 784 } 785 trekkie.methods = [ 786 'identify', 787 'page', 788 'ready', 789 'track', 790 'trackForm', 791 'trackLink' 792 ]; 793 trekkie.factory = function(method) { 794 return function() { 795 var args = Array.prototype.slice.call(arguments); 796 args.unshift(method); 797 trekkie.push(args); 798 if (method == 'track' || method == 'page') { 799 var pageUrl; 800 try { 801 pageUrl = window.location.href; 802 } catch (e) {} 803 var pageReferrer; 804 try { 805 pageReferrer = document.referrer; 806 } catch (e) {} 807 try { 808 if (window.__TREKKIE_SHIM_QUEUE == null) { 809 window.__TREKKIE_SHIM_QUEUE = []; 810 } 811 window.__TREKKIE_SHIM_QUEUE.push({ 812 from: 'trekkie-stub', 813 method: method, 814 args: args.slice(1), 815 pageContext: { 816 url: pageUrl, 817 referrer: pageReferrer 818 } 819 }); 820 } catch (e) { 821 // no-op 822 } 823 } 824 return trekkie; 825 }; 826 }; 827 for (var i = 0; i < trekkie.methods.length; i++) { 828 var key = trekkie.methods[i]; 829 trekkie[key] = trekkie.factory(key); 830 } 831 trekkie.load = function(config) { 832 trekkie.config = config || {}; 833 trekkie.config.initialDocumentCookie = document.cookie; 834 var first = document.getElementsByTagName('script')[0]; 835var script = document.createElement('script'); 836script.type = 'text/javascript'; 837script.onerror = function(e) { 838 var scriptFallback = document.createElement('script'); 839 scriptFallback.type = 'text/javascript'; 840 scriptFallback.onerror = function(error) { 841 var Monorail = { 842 produce: function produce(monorailDomain, schemaId, payload) { 843 var currentMs = new Date().getTime(); 844 var event = { 845 schema_id: schemaId, 846 payload: payload, 847 metadata: { 848 event_created_at_ms: currentMs, 849 event_sent_at_ms: currentMs 850 } 851 }; 852 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 853 }, 854 sendRequest: function sendRequest(endpointUrl, payload) { 855 // Try the sendBeacon API 856 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 857 var blobData = new window.Blob([payload], { 858 type: 'text/plain' 859 }); 860 861 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 862 return true; 863 } // sendBeacon was not successful 864 865 } // XHR beacon 866 867 var xhr = new XMLHttpRequest(); 868 869 try { 870 xhr.open('POST', endpointUrl); 871 xhr.setRequestHeader('Content-Type', 'text/plain'); 872 xhr.send(payload); 873 } catch (e) { 874 console.log(e); 875 } 876 877 return false; 878 }, 879 isIos12: function isIos12() { 880 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 881 } 882 }; 883 Monorail.produce('monorail-edge.shopifysvc.com', 884 'trekkie_storefront_load_errors/1.1', 885 {shop_id: 69837619475, 886 theme_id: 185642451219, 887 app_name: "storefront", 888 context_url: window.location.href, 889 source_url: "//www.flooret.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 890 891 }; 892 scriptFallback.async = true; 893 scriptFallback.src = '//www.flooret.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 894 first.parentNode.insertBefore(scriptFallback, first); 895}; 896script.async = true; 897script.src = '//www.flooret.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 898first.parentNode.insertBefore(script, first); 899 900 }; 901 trekkie.load( 902 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":69837619475,"isMerchantRequest":null,"themeId":185642451219,"themeCityHash":"15323359686781438110","contentLanguage":"en","currency":"USD","eventMetadataId":"020e2025-f34e-4fe8-a969-ecbcc56f1314"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 903 ); 904 905 var loaded = false;
906 trekkie.ready(function() { 907 if (loaded) return; 908 loaded = true; 909 910 window.ShopifyAnalytics.lib = window.trekkie; 911 912 var originalDocumentWrite = document.write; 913 document.write = customDocumentWrite; 914 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 915 document.write = originalDocumentWrite; 916 917 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 918 var token = match? match[1]: undefined; 919 if (!hasLoggedConversion(token)) { 920 setCookieIfConversion(token); 921 922 } 923 }); 924 925 window.ShopifyAnalytics.lib.page(null,{"pageType":"blog","resourceType":"blog","resourceId":107545723155,"requestId":"d8ad960c-79aa-475f-99cb-95f0f6787572-1790917741","shopifyEmitted":true}); 926 927 var eventsListenerScript = document.createElement('script'); 928 eventsListenerScript.async = true; 929 eventsListenerScript.src = "//www.flooret.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 930 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 931})();</script>
vendor: 1 bytes, line 931
931
932<script 933 defer 934 src="https://www.flooret.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 935 data-application="storefront-renderer" 936 data-shop-id="69837619475" 937 data-render-region="gcp-us-central1" 938 data-page-type="blog" 939 data-theme-instance-id="185642451219" 940 data-theme-name="PowerTheme" 941 data-theme-version="1.0.0" 942 data-monorail-region="shop_domain" 943 data-resource-timing-sampling-rate="10" 944 data-shs="true" 945 data-shs-beacon="true" 946 data-shs-export-with-fetch="true" 947 data-shs-logs-sample-rate="1" 948 data-shs-beacon-endpoint="https://www.flooret.com/api/collect" 949></script>
949 950<meta name="shopify-y" content="9b23a2f0-c5f9-4c37-a6e2-3afab4b3c876" data-expiration="1822475341000"><meta name="shopify-s" content="f9d8bf8a-b996-46e3-839a-36005667bcfb" data-expiration="1790919541000"><meta name="new-cookie-storage-activated" content="t"> 951</head> 952 953 <body class="template-blog "> 954 955 956
956<script> 957 // Enhanced Global ScrollTrigger Manager 958 (function() { 959 'use strict'; 960 961 let scrollManagerInitialized = false; 962 963 // Robust reveal for elements already in view 964 function revealIfInViewAll(selector, sectionRoot = null) { 965 const root = sectionRoot || document; 966 const elements = root.querySelectorAll(selector); 967 968 elements.forEach((el) => { 969 if (!el) return; 970 971 // Check if element is in viewport 972 const rect = el.getBoundingClientRect(); 973 const inView = rect.top < window.innerHeight && rect.bottom > 0; 974 975 // If in view, reveal immediately 976 if (inView) { 977 gsap.set(el, { 978 opacity: 1, 979 y: 0 980 }); 981 } 982 }); 983 } 984 985 // Initialize ScrollTrigger with production settings 986 function safeScrollTriggerInit() { 987 if (scrollManagerInitialized) return; 988 989 // Respect user's motion preferences 990 const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; 991 if (prefersReducedMotion) { 992 gsap.set('[class*="heading"], [class*="sub"], [class*="button"], [class*="btn"]', { 993 opacity: 1, 994 y: 0 995 }); 996 return; 997 } 998 999 ScrollTrigger.config({ 1000 autoRefreshEvents: 'visibilitychange,load,resize', 1001 ignoreMobileResize: true 1002 }); 1003 1004 // Normalize scroll behavior 1005 1006 1007 scrollManagerInitialized = true; 1008 } 1009 1010 // Enhanced safe refresh with forced recalculation 1011 function safeRefresh(delay = 0) { 1012 safeScrollTriggerInit(); 1013 1014 setTimeout(() => { 1015 ScrollTrigger.getAll().forEach((trigger) => { 1016 trigger.refresh(false, true); // refresh=false means don't kill, true=force update 1017 }); 1018 ScrollTrigger.refresh(true); 1019 }, delay); 1020 } 1021 1022 // Enhanced reveal with GSAP state check 1023 function revealIfInViewAllEnhanced(selector, sectionRoot = null) { 1024 const root = sectionRoot || document; 1025 const elements = root.querySelectorAll(selector); 1026 1027 elements.forEach((el) => { 1028 if (!el) return; 1029 1030 const rect = el.getBoundingClientRect(); 1031 const inView = rect.top < window.innerHeight && rect.bottom > 0; 1032 1033 // Check if element is already animated by ScrollTrigger 1034 const st = ScrollTrigger.getById(el); 1035 if (inView && (!st || !st.isActive())) { 1036 gsap.set(el, { 1037 opacity: 1, 1038 y: 0 1039 }); 1040 } 1041 }); 1042 } 1043 1044 // Make available globally 1045 window.scrollTriggerManager = { 1046 safeScrollTriggerInit: safeScrollTriggerInit, 1047 safeRefresh: safeRefresh, 1048 revealIfInViewAll: revealIfInViewAll, 1049 revealIfInViewAllEnhanced: revealIfInViewAllEnhanced 1050 }; 1051 1052 // Initialize on DOM ready 1053 document.addEventListener('DOMContentLoaded', safeScrollTriggerInit); 1054 })(); 1055 </script>
1055 1056 1057 <div id="shopify-section-announcement-bar-new-section" class="shopify-section"><div class="anuncement-main-wrap" id="pencil-banner"> 1058 <div class="announcement-wrap-container"> 1059 <div 1060 class="announcement-wrap-out" 1061 id="promoBanner" 1062 data-start="2025-11-25" 1063 data-end="2026-12-31" 1064 style="display:none;" 1065 > 1066 1067 1068 <div class="announcement-wrap-in"> 1069 <div 1070 id="announcement-bar-announcement_8xEaEW" 1071 class="announcement-bar" 1072 style="color: #ffffff; display: none;" 1073 1074 > 1075 1076 <a href="https://try.flooret.com/early-black-friday-sale/" class="announcement-bar__inner"> 1077 1078 1079 <div class="announcement-bar__header"> 1080 1081 <p class="announcement-bar__text"> 1082 <p>Up to 40% off Sitewide | Shop the Sale</p> 1083 </p> 1084 1085 1086 </div> 1087 1088 1089 <span 1090 style="color: #ffffff" 1091 id="countdown-announcement_8xEaEW" 1092 class="announcement-bar__countdown" 1093 ></span> 1094 1095 1096 1097 1098 1099 </a> 1100 1101 1102 1103 </div> 1104 1105
1105<script> 1106 (function() { 1107 const blockId = 'announcement_8xEaEW'; 1108 const announcementBar = document.getElementById('announcement-bar-' + blockId); 1109 if (!announcementBar) return; 1110 1111 const closeIcon = document.getElementById('close-icon-' + blockId); 1112 const countdownEl = document.getElementById('countdown-' + blockId); 1113 1114 const storageKey = 'announcementClosed-' + blockId; 1115 const closedTimestamp = localStorage.getItem(storageKey); 1116 const daysToDisplay = 7; 1117 const hideDuration = daysToDisplay * 24 * 60 * 60 * 1000; 1118 1119 // Note: Hardcoding PST is not recommended as it doesn't account for daylight saving. 1120 // A more robust solution would use a library or server-side time. 1121 function getPSTDate(date) { 1122 const utcDate = date.getTime() + (date.getTimezoneOffset() * 60000); 1123 const pstOffset = 7 * 60 * 60000; // Assuming PST is UTC-7 1124 return new Date(utcDate - pstOffset); 1125 } 1126 1127 const currentTimePST = getPSTDate(new Date()).getTime(); 1128 1129 const showUntilDate = ""; 1130 const showUntilHour = "00:00"; 1131 let showUntilTimestamp = null; 1132 1133 if (showUntilDate) { 1134 const showUntilDateTime = showUntilDate + 'T' + showUntilHour + ':00'; 1135 showUntilTimestamp = new Date(showUntilDateTime).getTime(); 1136 } 1137 1138 const shouldShowBanner = () => { 1139 const isNotExpired = !showUntilTimestamp || currentTimePST < showUntilTimestamp; 1140 const isNotClosedRecently = !closedTimestamp || (currentTimePST - closedTimestamp >= hideDuration); 1141 return isNotExpired && isNotClosedRecently; 1142 }; 1143 1144 if (shouldShowBanner()) { 1145 announcementBar.style.display = 'flex'; 1146 } 1147 1148 if (closeIcon) { 1149 closeIcon.addEventListener('click', function () { 1150 announcementBar.style.display = 'none'; 1151 localStorage.setItem(storageKey, currentTimePST.toString()); 1152 }); 1153 } 1154 1155 if (countdownEl) { 1156 const countdownDate = "2026-10-07"; 1157 const countdownHour = "23:59"; 1158 1159 if (countdownDate) { 1160 const futureDateTime = countdownDate + 'T' + countdownHour + ':00'; 1161 const futureDate = new Date(futureDateTime); 1162 1163 const updateCountdown = () => { 1164 const nowPST = getPSTDate(new Date()); 1165 const diffTime = Math.max(0, futureDate - nowPST); 1166 1167 if (diffTime === 0) { 1168 countdownEl.textContent = "0:00:00"; 1169 clearInterval(countdownInterval); 1170 return; 1171 } 1172 1173 const diffDays = Math.floor(diffTime / (1000 * 60 * 60 * 24)); 1174 const diffHours = Math.floor((diffTime % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); 1175 const diffMinutes = Math.floor((diffTime % (1000 * 60 * 60)) / (1000 * 60)); 1176 const diffSeconds = Math.floor((diffTime % (1000 * 60)) / 1000); 1177 1178 countdownEl.textContent = `${diffDays}d ${diffHours}h ${diffMinutes}m ${diffSeconds}s left!`; 1179 }; 1180 1181 const countdownInterval = setInterval(updateCountdown, 1000); 1182 updateCountdown(); 1183 } 1184 } 1185 })(); 1186 </script>
1186 1187 1188 <style> 1189 #announcement-bar-announcement_8xEaEW .close-icon svg path { 1190 fill: #ffffff; 1191 } 1192 </style> 1193 1194 </div> 1195 1196 1197 1198 <div class="announcement-wrap-in"> 1199 <div 1200 id="announcement-bar-announcement_X3hMJT" 1201 class="announcement-bar" 1202 style="color: #ffffff; display: none;" 1203 1204 > 1205 1206 <a href="/collections/all-floors" class="announcement-bar__inner"> 1207 1208 1209 <div class="announcement-bar__header"> 1210 1211 <p class="announcement-bar__text"> 1212 <p>10% Off All Floors + Free Shipping</p> 1213 </p> 1214 1215 1216 </div> 1217 1218 1219 <span 1220 style="color: #ffffff" 1221 id="countdown-announcement_X3hMJT" 1222 class="announcement-bar__countdown" 1223 ></span> 1224 1225 1226 1227 1228 1229 </a> 1230 1231 1232 1233 </div> 1234 1235
1235<script> 1236 (function() { 1237 const blockId = 'announcement_X3hMJT'; 1238 const announcementBar = document.getElementById('announcement-bar-' + blockId); 1239 if (!announcementBar) return; 1240 1241 const closeIcon = document.getElementById('close-icon-' + blockId); 1242 const countdownEl = document.getElementById('countdown-' + blockId); 1243 1244 const storageKey = 'announcementClosed-' + blockId; 1245 const closedTimestamp = localStorage.getItem(storageKey); 1246 const daysToDisplay = 7; 1247 const hideDuration = daysToDisplay * 24 * 60 * 60 * 1000; 1248 1249 // Note: Hardcoding PST is not recommended as it doesn't account for daylight saving. 1250 // A more robust solution would use a library or server-side time. 1251 function getPSTDate(date) { 1252 const utcDate = date.getTime() + (date.getTimezoneOffset() * 60000); 1253 const pstOffset = 7 * 60 * 60000; // Assuming PST is UTC-7 1254 return new Date(utcDate - pstOffset); 1255 } 1256 1257 const currentTimePST = getPSTDate(new Date()).getTime(); 1258 1259 const showUntilDate = ""; 1260 const showUntilHour = "00:00"; 1261 let showUntilTimestamp = null; 1262 1263 if (showUntilDate) { 1264 const showUntilDateTime = showUntilDate + 'T' + showUntilHour + ':00'; 1265 showUntilTimestamp = new Date(showUntilDateTime).getTime(); 1266 } 1267 1268 const shouldShowBanner = () => { 1269 const isNotExpired = !showUntilTimestamp || currentTimePST < showUntilTimestamp; 1270 const isNotClosedRecently = !closedTimestamp || (currentTimePST - closedTimestamp >= hideDuration); 1271 return isNotExpired && isNotClosedRecently; 1272 }; 1273 1274 if (shouldShowBanner()) { 1275 announcementBar.style.display = 'flex'; 1276 } 1277 1278 if (closeIcon) { 1279 closeIcon.addEventListener('click', function () { 1280 announcementBar.style.display = 'none'; 1281 localStorage.setItem(storageKey, currentTimePST.toString()); 1282 }); 1283 } 1284 1285 if (countdownEl) { 1286 const countdownDate = "2026-10-07"; 1287 const countdownHour = "23:59"; 1288 1289 if (countdownDate) { 1290 const futureDateTime = countdownDate + 'T' + countdownHour + ':00'; 1291 const futureDate = new Date(futureDateTime); 1292 1293 const updateCountdown = () => { 1294 const nowPST = getPSTDate(new Date()); 1295 const diffTime = Math.max(0, futureDate - nowPST); 1296 1297 if (diffTime === 0) { 1298 countdownEl.textContent = "0:00:00"; 1299 clearInterval(countdownInterval); 1300 return; 1301 } 1302 1303 const diffDays = Math.floor(diffTime / (1000 * 60 * 60 * 24)); 1304 const diffHours = Math.floor((diffTime % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); 1305 const diffMinutes = Math.floor((diffTime % (1000 * 60 * 60)) / (1000 * 60)); 1306 const diffSeconds = Math.floor((diffTime % (1000 * 60)) / 1000); 1307 1308 countdownEl.textContent = `${diffDays}d ${diffHours}h ${diffMinutes}m ${diffSeconds}s left!`; 1309 }; 1310 1311 const countdownInterval = setInterval(updateCountdown, 1000); 1312 updateCountdown(); 1313 } 1314 } 1315 })(); 1316 </script>
1316 1317 1318 <style> 1319 #announcement-bar-announcement_X3hMJT .close-icon svg path { 1320 fill: #ffffff; 1321 } 1322 </style> 1323 1324 </div> 1325 1326 1327 1328 <div class="announcement-wrap-in"> 1329 <div 1330 id="announcement-bar-announcement_tDNUmj" 1331 class="announcement-bar" 1332 style="color: #ffffff; display: none;" 1333 1334 > 1335 1336 <a href="https://support.flooret.com/how-do-holds-work" class="announcement-bar__inner"> 1337 1338 1339 <div class="announcement-bar__header"> 1340 1341 <p class="announcement-bar__text"> 1342 <p>Not ready for your floors? Place a hold.</p> 1343 </p> 1344 1345 1346 </div> 1347 1348 1349 1350 1351 1352 1353 </a> 1354 1355 1356 1357 </div> 1358 1359
1359<script> 1360 (function() { 1361 const blockId = 'announcement_tDNUmj'; 1362 const announcementBar = document.getElementById('announcement-bar-' + blockId); 1363 if (!announcementBar) return; 1364 1365 const closeIcon = document.getElementById('close-icon-' + blockId); 1366 const countdownEl = document.getElementById('countdown-' + blockId); 1367 1368 const storageKey = 'announcementClosed-' + blockId; 1369 const closedTimestamp = localStorage.getItem(storageKey); 1370 const daysToDisplay = 7; 1371 const hideDuration = daysToDisplay * 24 * 60 * 60 * 1000; 1372 1373 // Note: Hardcoding PST is not recommended as it doesn't account for daylight saving. 1374 // A more robust solution would use a library or server-side time. 1375 function getPSTDate(date) { 1376 const utcDate = date.getTime() + (date.getTimezoneOffset() * 60000); 1377 const pstOffset = 7 * 60 * 60000; // Assuming PST is UTC-7 1378 return new Date(utcDate - pstOffset); 1379 } 1380 1381 const currentTimePST = getPSTDate(new Date()).getTime(); 1382 1383 const showUntilDate = ""; 1384 const showUntilHour = "00:00"; 1385 let showUntilTimestamp = null; 1386 1387 if (showUntilDate) { 1388 const showUntilDateTime = showUntilDate + 'T' + showUntilHour + ':00'; 1389 showUntilTimestamp = new Date(showUntilDateTime).getTime(); 1390 } 1391 1392 const shouldShowBanner = () => { 1393 const isNotExpired = !showUntilTimestamp || currentTimePST < showUntilTimestamp; 1394 const isNotClosedRecently = !closedTimestamp || (currentTimePST - closedTimestamp >= hideDuration); 1395 return isNotExpired && isNotClosedRecently; 1396 }; 1397 1398 if (shouldShowBanner()) { 1399 announcementBar.style.display = 'flex'; 1400 } 1401 1402 if (closeIcon) { 1403 closeIcon.addEventListener('click', function () { 1404 announcementBar.style.display = 'none'; 1405 localStorage.setItem(storageKey, currentTimePST.toString()); 1406 }); 1407 } 1408 1409 if (countdownEl) { 1410 const countdownDate = ""; 1411 const countdownHour = "00:00"; 1412 1413 if (countdownDate) { 1414 const futureDateTime = countdownDate + 'T' + countdownHour + ':00'; 1415 const futureDate = new Date(futureDateTime); 1416 1417 const updateCountdown = () => { 1418 const nowPST = getPSTDate(new Date()); 1419 const diffTime = Math.max(0, futureDate - nowPST); 1420 1421 if (diffTime === 0) { 1422 countdownEl.textContent = "0:00:00"; 1423 clearInterval(countdownInterval); 1424 return; 1425 } 1426 1427 const diffDays = Math.floor(diffTime / (1000 * 60 * 60 * 24)); 1428 const diffHours = Math.floor((diffTime % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); 1429 const diffMinutes = Math.floor((diffTime % (1000 * 60 * 60)) / (1000 * 60)); 1430 const diffSeconds = Math.floor((diffTime % (1000 * 60)) / 1000); 1431 1432 countdownEl.textContent = `${diffDays}d ${diffHours}h ${diffMinutes}m ${diffSeconds}s left!`; 1433 }; 1434 1435 const countdownInterval = setInterval(updateCountdown, 1000); 1436 updateCountdown(); 1437 } 1438 } 1439 })(); 1440 </script>
1440 1441 1442 <style> 1443 #announcement-bar-announcement_tDNUmj .close-icon svg path { 1444 fill: #ffffff; 1445 } 1446 </style> 1447 1448 </div> 1449 1450 1451 1452 1453 1454 1455 </div> 1456 </div> 1457 1458 <div class="floating-links"> 1459 1460 1461 1462 1463 1464 1465 1466 1467 <a 1468 style="color:#ffffff;font-size:12px" 1469 href="https://flooretcommercial.com/" 1470 >Flooret Commercial 1471 <svg xmlns="http://www.w3.org/2000/svg" fill="#ffffff" width="15px" height="15px" viewBox="0 0 32 32" version="1.1"> 1472 <title>arrow-up-right</title> 1473 <path d="M26.595 5.826l-0.001-0.013-0.002-0.002c-0.056-0.121-0.139-0.221-0.243-0.296l-0.002-0.002c-0.022-0.017-0.046-0.034-0.072-0.049l-0.003-0.002c-0.105-0.068-0.233-0.109-0.371-0.113l-0.001-0h-14.143c-0.414 0-0.75 0.336-0.75 0.75s0.336 0.75 0.75 0.75v0h12.332l-18.52 18.519c-0.136 0.136-0.22 0.324-0.22 0.531 0 0.415 0.336 0.751 0.751 0.751 0.207 0 0.394-0.084 0.53-0.219v0l18.52-18.52v12.33c0 0.414 0.336 0.75 0.75 0.75s0.75-0.336 0.75-0.75v0-14.142c-0.001-0.099-0.021-0.193-0.057-0.279l0.002 0.005z"/> 1474 </svg> 1475 1476 </a> 1477 1478 1479 1480 <a 1481 style="color:#ffffff;font-size:12px" 1482 href="https://www.flooret.com/pages/partner-plus" 1483 >Partner + 1484 </a> 1485 1486 1487 </div> 1488</div> 1489 1490<style> 1491 .announcement-wrap-out { 1492 overflow-x: hidden; 1493 max-height:34px; 1494 } 1495 .announcement-wrap-container{ 1496 position:relative; 1497 height:34px; 1498 max-height:34px; 1499 background-color:#111111; 1500 } 1501 #shopify-section-header { 1502 padding: 0px; 1503 margin-top: 0px; 1504 } 1505 #shopify-section-header .gheader__main { 1506 padding:0.5rem 3rem; 1507 } 1508 .announcement-wrap-out { 1509 margin: 0px; 1510 display: flex; 1511 flex-direction: column; 1512 width: 100%; 1513 position:relative; 1514 } 1515 .announcement-wrap-out .slick-track .slick-slide { 1516 height: inherit; 1517 } 1518 .announcement-wrap-out .slick-track .slick-slide > div { 1519 height: 100%; 1520 } 1521 .announcement-wrap-out .announcement-wrap-in { 1522 display: block; 1523 width: 100%; 1524 height:inherit; 1525 } 1526 .announcement-bar { 1527 padding: 8px 30px; 1528 display: flex; 1529 justify-content: center; 1530 align-items: center; 1531 position: relative; 1532 flex-wrap: wrap; 1533 gap: 8px; 1534 } 1535 .announcement-wrap-out .slick-arrow { 1536 position: absolute; 1537 top: 50%; 1538 transform: translateY(-50%); 1539 background: transparent; 1540 border: none; 1541 z-index:4; 1542 display:flex; 1543 } 1544 .announcement-wrap-out .slick-track { 1545 display:flex; 1546 } 1547 .announcement-wrap-out .announcement-bar { 1548 height: 100%; 1549 display:flex !important; 1550 } 1551 .announcement-wrap-out button.slick-arrow.prev { 1552 left: 0; 1553 } 1554 1555 .announcement-wrap-out button.slick-arrow.next { 1556 right: 0; 1557 transform: translateY(-50%); 1558 } 1559 .announcement-bar__countdown, 1560 .announcement-bar__header p { 1561 font-size:12px; 1562 } 1563 .anuncement-main-wrap { 1564 position: relative; 1565 } 1566 1567 .anuncement-main-wrap .floating-links { 1568 1569 } 1570 .anuncement-main-wrap .floating-links > a:nth-child(1){ 1571 position: absolute; 1572 left: 40px; 1573 top: 0; 1574 display: flex; 1575 align-items: center; 1576 justify-content: center; 1577 gap: 6px; 1578 height: 100%; 1579 } 1580 .anuncement-main-wrap .floating-links > a:nth-child(2){ 1581 position: absolute; 1582 right: 40px; 1583 top: 0; 1584 display: flex; 1585 align-items: center; 1586 justify-content: center; 1587 gap: 25px; 1588 height: 100%; 1589 } 1590 .anuncement-main-wrap .floating-links a { 1591 text-decoration: none; 1592 } 1593 @media screen and (min-width: 960px) { 1594 .announcement-bar { 1595 gap: 32px; 1596 flex-wrap: nowrap; 1597 } 1598 } 1599 .announcement-bar__inner { 1600 display: flex; 1601 gap: 8px; 1602 align-items: center; 1603 justify-content: center; 1604 text-decoration: none; 1605 flex-wrap: wrap; 1606 color: inherit; 1607 } 1608 .announcement-bar__text a { 1609 text-decoration:none; 1610 } 1611 .announcement-wrap-out { 1612 width:50%; 1613 margin:auto; 1614 } 1615 1616 @media screen and (min-width: 960px) { 1617 .announcement-bar__inner { 1618 gap: 32px; 1619 } 1620 } 1621 .announcement-bar__text, 1622 .announcement-bar .announcement-bar__button { 1623 font-size: 14px; 1624 font-weight: bold; 1625 margin: 0; 1626 } 1627 .announcement-bar__header { 1628 text-align: center; 1629 } 1630 .announcement-bar__header p { 1631 margin: 0; 1632 } 1633 .announcement-bar__subheading { 1634 font-size: 10px; 1635 font-weight: 500; 1636 margin-top: 4px; 1637 } 1638 .announcement-bar .close-icon { 1639 cursor: pointer; 1640 position: absolute; 1641 right: 15px; 1642 top: 50%; 1643 transform: translateY(-50%); 1644 } 1645 .announcement-bar__header a { 1646 text-decoration: none; 1647 } 1648 @media screen and (min-width: 960px) { 1649 .announcement-bar .close-icon { 1650 position: static; 1651 transform: none; 1652 order: 3; /* Places the close icon at the end */ 1653 } 1654 } 1655 @media screen and (max-width:768px){ 1656 .anuncement-main-wrap .floating-links { 1657 display:none; 1658 } 1659 .announcement-wrap-out .slick-arrow svg { 1660 width: 9px; 1661 height: 9px; 1662 } 1663 body.fr_07 .fr07_categoryCarousel_wrapper { 1664 margin: 1rem 1rem 1rem; 1665 } 1666 .announcement-wrap-out button.slick-arrow.next { 1667 right: 0px; 1668 } 1669 .announcement-wrap-out button.slick-arrow.prev { 1670 left: 0px; 1671 } 1672 .announcement-wrap-container{ 1673 position:relative; 1674 height:auto; 1675 max-height:unset; 1676 } 1677 1678 .announcement-wrap-out { 1679 width:100%; 1680 } 1681 .announcement-wrap-out { 1682 max-height:unset; 1683 } 1684 } 1685 @media screen and (min-width:769px) and (max-width:1024px){ 1686 .announcement-wrap-out { 1687 width:45%; 1688 margin:auto; 1689 } 1690 .anuncement-main-wrap .floating-links{ 1691 gap: 15px; 1692 } 1693 } 1694 1695</style>
1696<script> 1697 // Run on page load 1698 document.addEventListener('DOMContentLoaded', () => { 1699 function parseLocalDate(dateStr) { 1700 // dateStr = "2025-10-06" 1701 const [y, m, d] = dateStr.split('-').map(Number); 1702 return new Date(y, m - 1, d, 0, 0, 0); // local date at midnight 1703 } 1704 1705 function showHideByDate(elementId, start, end) { 1706 const el = document.getElementById(elementId); 1707 if (!el) return; 1708 1709 const startDate = parseLocalDate(start); 1710 const endDate = parseLocalDate(end); 1711 const now = new Date(); 1712 1713 console.log('start:', startDate); 1714 console.log('end:', endDate); 1715 console.log('now :', now); 1716 1717 if (now >= startDate && now <= endDate) { 1718 el.style.display = 'flex'; 1719 } else { 1720 el.style.display = 'none'; 1721 } 1722 } 1723 showHideByDate('promoBanner', `2025-11-25`, `2026-12-31`); 1724 }); 1725</script>
1725 1726 1727 1728</div> 1729 <header id="shopify-section-header" class="shopify-section gheader sticky custom-sticky"> 1730 1731 1732 1733<div class="gheader__main"> 1734 <button type="button" class="gheader__burger reset mob-only" title="Menu"> 1735 <svg width="16" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 1736 <path d="M5 16H27" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 1737 <path d="M5 8H27" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 1738 <path d="M5 24H27" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 1739</svg> 1740 1741 </button> 1742 1743 <nav class="mob-only gheader__mnav js-adjust-to-header js-header-sticky" aria-label="main navigation"> 1744 <button class="close-btn-drawer" > 1745 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M6 18L18 6" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M18 18L6 6" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> 1746 </button> 1747 <div class="overflow"> 1748 1749 1750<nav class="mnav" aria-label="Mobile navigation"> 1751 <div class="mnav__inner"><div class="mnav1 is-open" data-mnav1> 1752 <button type="button" 1753 class="mnav1__btn" 1754 aria-expanded="true"> 1755 <span class="mnav1__title">Modin Luxury Vinyl Plank 1756 1757 1758 1759 </span> 1760 <span class="mnav1__chev" aria-hidden="true"></span> 1761 </button> 1762 1763 <div class="mnav1__panel" > 1764 1765 <ul class="mnav2"> 1766 1767 1768 1769<li class="mnav2__item is-leaf "> 1770 <a class="mnav2__link" href="/collections/modin-luxury-vinyl-plank"> 1771 1772 <div class="mmcard__tags"> 1773 1774 1775 </div> 1776 1777 1778 Shop Floors 1779 1780 </a> 1781 </li> 1782 1783 1784 1785 1786 1787<li class="mnav2__item is-leaf "> 1788 <a class="mnav2__link" href="/pages/modin-learn-more"> 1789 1790 <div class="mmcard__tags"> 1791 1792 1793 </div> 1794 1795 1796 Meet Modin 1797 1798 </a> 1799 </li> 1800 1801 1802 1803 1804 1805<li class="mnav2__item is-leaf "> 1806 <a class="mnav2__link" href="/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Modin"> 1807 1808 <div class="mmcard__tags"> 1809 1810 1811 </div> 1812 1813 1814 Trim & Stairs 1815 1816 </a> 1817 </li> 1818 1819 1820 1821 1822 1823<li class="mnav2__item is-leaf "> 1824 <a class="mnav2__link" href="/collections/sample-kits"> 1825 1826 <div class="mmcard__tags"> 1827 1828 1829 </div> 1830 1831 1832 Shop Samples 1833 1834 </a> 1835 </li> 1836 1837 1838 1839 1840 1841<li class="mnav2__item is-leaf has-menu-image"> 1842 <a class="mnav2__link" href="/products/nakan"> 1843 1844 <div class="mmcard__tags"> 1845 1846 1847 <span class="mmcard__tag mmcard__tag--2">Bestseller</span> 1848 1849 </div> 1850 1851 1852 <span class="mnavTile__img"> 1853 <img src="//www.flooret.com/cdn/shop/files/1._Nakan_Signature_1.png?v=1769691099&width=360" alt="Nakan Signature" srcset="//www.flooret.com/cdn/shop/files/1._Nakan_Signature_1.png?v=1769691099&width=352 352w, //www.flooret.com/cdn/shop/files/1._Nakan_Signature_1.png?v=1769691099&width=360 360w" width="360" height="360" loading="lazy" style="object-position:50.9714% 81.3841%;"> 1854 </span> 1855 1856 Nakan Signature 1857 1858 </a> 1859 </li> 1860 1861 1862 1863 1864 1865<li class="mnav2__item is-leaf has-menu-image"> 1866 <a class="mnav2__link" href="/products/palka"> 1867 1868 <div class="mmcard__tags"> 1869 1870 1871 </div> 1872 1873
1874 <span class="mnavTile__img"> 1875 <img src="//www.flooret.com/cdn/shop/files/2._Palka_Signature_1.png?v=1769691134&width=360" alt="Palka Signature" srcset="//www.flooret.com/cdn/shop/files/2._Palka_Signature_1.png?v=1769691134&width=352 352w, //www.flooret.com/cdn/shop/files/2._Palka_Signature_1.png?v=1769691134&width=360 360w" width="360" height="360" loading="lazy"> 1876 </span> 1877 1878 Palka Signature 1879 1880 </a> 1881 </li> 1882 1883 1884 1885 1886 1887<li class="mnav2__item is-leaf has-menu-image"> 1888 <a class="mnav2__link" href="/products/kingswood"> 1889 1890 <div class="mmcard__tags"> 1891 1892 1893 </div> 1894 1895 1896 <span class="mnavTile__img"> 1897 <img src="//www.flooret.com/cdn/shop/files/3._Kingswood_Signature_1.png?v=1769691154&width=360" alt="Kingswood Signature" srcset="//www.flooret.com/cdn/shop/files/3._Kingswood_Signature_1.png?v=1769691154&width=352 352w, //www.flooret.com/cdn/shop/files/3._Kingswood_Signature_1.png?v=1769691154&width=360 360w" width="360" height="360" loading="lazy"> 1898 </span> 1899 1900 Kingswood Signature 1901 1902 </a> 1903 </li> 1904 1905 1906 1907 1908 1909<li class="mnav2__item is-leaf has-menu-image"> 1910 <a class="mnav2__link" href="/products/kora"> 1911 1912 <div class="mmcard__tags"> 1913 1914 <span class="mmcard__tag mmcard__tag--1">New</span> 1915 1916 1917 </div> 1918 1919 1920 <span class="mnavTile__img"> 1921 <img src="//www.flooret.com/cdn/shop/files/4._Kora_Signature_1.png?v=1769691176&width=360" alt="Kora Signature" srcset="//www.flooret.com/cdn/shop/files/4._Kora_Signature_1.png?v=1769691176&width=352 352w, //www.flooret.com/cdn/shop/files/4._Kora_Signature_1.png?v=1769691176&width=360 360w" width="360" height="360" loading="lazy"> 1922 </span> 1923 1924 Kora Signature 1925 1926 </a> 1927 </li> 1928 1929 1930 1931 1932 1933 </ul> 1934 1935 </div> 1936 </div><div class="mnav1 " data-mnav1> 1937 <button type="button" 1938 class="mnav1__btn" 1939 aria-expanded="false"> 1940 <span class="mnav1__title">Sample Kits 1941 1942 1943 1944 </span> 1945 <span class="mnav1__chev" aria-hidden="true"></span> 1946 </button> 1947 1948 <div class="mnav1__panel" hidden> 1949 1950 <ul class="mnav2"> 1951 1952 1953 1954<li class="mnav2__item is-parent" data-mnav2> 1955 <button type="button" 1956 class="mnav2__btn" 1957 aria-expanded="false"> 1958 <span class="mnav2__title">Bestsellers Kits 1959 1960 </span> 1961 <span class="mnav2__chev" aria-hidden="true"></span> 1962 </button> 1963 1964 <div class="mnav2__panel" hidden> 1965 <ul class="mnavGrid"> 1966 1967 1968<li class="mnavTile "> 1969 <a class="mnavTile__link" href="/products/modin-lvp-signature-bestsellers-sample-kit"> 1970 1971 1972 <span class="mnavTile__title">Modin LVP Signature Bestsellers Kits</span> 1973 </a> 1974 </li> 1975 1976 1977<li class="mnavTile "> 1978 <a class="mnavTile__link" href="/products/modin-lvp-bestsellers-kits"> 1979 1980
1981 <span class="mnavTile__title">Modin LVP Bestsellers Sample Kits</span> 1982 </a> 1983 </li> 1984 1985 1986<li class="mnavTile has-menu-image"> 1987 <a class="mnavTile__link" href="/products/arista-laminate-bestsellers-sample-kits"> 1988 1989 1990 <span class="mnavTile__img"> 1991 <img src="//www.flooret.com/cdn/shop/files/3.New_Arista_Laminate_Bestsellers_Sample_Kit.webp?v=1767810245&width=360" alt="Arista Laminate Bestsellers Kit" srcset="//www.flooret.com/cdn/shop/files/3.New_Arista_Laminate_Bestsellers_Sample_Kit.webp?v=1767810245&width=352 352w, //www.flooret.com/cdn/shop/files/3.New_Arista_Laminate_Bestsellers_Sample_Kit.webp?v=1767810245&width=360 360w" width="360" height="360" loading="lazy"> 1992 </span> 1993 1994 <span class="mnavTile__title">Arista Laminate Bestsellers Kit</span> 1995 </a> 1996 </li> 1997 1998 1999<li class="mnavTile "> 2000 <a class="mnavTile__link" href="/products/silvan-resilient-hardwood-bestsellers-sample-kits"> 2001 2002 2003 <span class="mnavTile__title">Silvan Resilient Hardwood Bestsellers Kits</span> 2004 </a> 2005 </li> 2006 2007 2008<li class="mnavTile "> 2009 <a class="mnavTile__link" href="/collections/sample-kits"> 2010 2011 2012 <span class="mnavTile__title">All Sample Kits</span> 2013 </a> 2014 </li> 2015 2016 2017<li class="mnavTile "> 2018 <a class="mnavTile__link" href="/pages/sample-rewards-by-flooret"> 2019 2020 2021 <span class="mnavTile__title">Sample Rewards</span> 2022 </a> 2023 </li> 2024 2025 2026 </ul> 2027 </div> 2028 </li> 2029 2030 2031 2032 2033 2034<li class="mnav2__item is-parent" data-mnav2> 2035 <button type="button" 2036 class="mnav2__btn" 2037 aria-expanded="false"> 2038 <span class="mnav2__title">Comparison Kits 2039 2040 </span> 2041 <span class="mnav2__chev" aria-hidden="true"></span> 2042 </button> 2043 2044 <div class="mnav2__panel" hidden> 2045 <ul class="mnavGrid"> 2046 2047 2048<li class="mnavTile "> 2049 <a class="mnavTile__link" href="/products/modin-lvp-model-comparison-sample-kit"> 2050 2051 2052 <span class="mnavTile__title">Model Comparison Kits</span> 2053 </a> 2054 </li> 2055 2056 2057<li class="mnavTile "> 2058 <a class="mnavTile__link" href="/products/modin-lvp-2-model-comparison-kit"> 2059 2060 2061 <span class="mnavTile__title">2 Model Comparison Kits</span> 2062 </a> 2063 </li> 2064 2065 2066<li class="mnavTile "> 2067 <a class="mnavTile__link" href="/products/modin-lvp-3-model-comparison-kit"> 2068 2069 2070 <span class="mnavTile__title">3 Model Comparison Kits</span> 2071 </a> 2072 </li> 2073 2074 2075<li class="mnavTile "> 2076 <a class="mnavTile__link" href="/products/modin-lvp-4-model-comparison-kit"> 2077 2078
2079 <span class="mnavTile__title">4 Model Comparison Kits</span> 2080 </a> 2081 </li> 2082 2083 2084 </ul> 2085 </div> 2086 </li> 2087 2088 2089 2090 2091 2092<li class="mnav2__item is-leaf has-menu-image"> 2093 <a class="mnav2__link" href="/products/modin-lvp-signature-bestsellers-sample-kit"> 2094 2095 <div class="mmcard__tags"> 2096 2097 2098 </div> 2099 2100 2101 <span class="mnavTile__img"> 2102 <img src="//www.flooret.com/cdn/shop/files/1._Signature_Bestsellers_Kit_1.png?v=1769691885&width=360" alt="Modin LVP Signature Bestsellers Kit" srcset="//www.flooret.com/cdn/shop/files/1._Signature_Bestsellers_Kit_1.png?v=1769691885&width=352 352w, //www.flooret.com/cdn/shop/files/1._Signature_Bestsellers_Kit_1.png?v=1769691885&width=360 360w" width="360" height="360" loading="lazy"> 2103 </span> 2104 2105 Modin LVP Signature Bestsellers Kit 2106 2107 </a> 2108 </li> 2109 2110 2111 2112 2113 2114<li class="mnav2__item is-leaf has-menu-image"> 2115 <a class="mnav2__link" href="https://www.flooret.com/products/bestsellers-sample-kits?variant=52339236241683"> 2116 2117 <div class="mmcard__tags"> 2118 2119 2120 </div> 2121 2122 2123 <span class="mnavTile__img"> 2124 <img src="//www.flooret.com/cdn/shop/files/3.New_Arista_Laminate_Bestsellers_Sample_Kit.webp?v=1767810245&width=360" alt="Arista Laminate Bestsellers Kit" srcset="//www.flooret.com/cdn/shop/files/3.New_Arista_Laminate_Bestsellers_Sample_Kit.webp?v=1767810245&width=352 352w, //www.flooret.com/cdn/shop/files/3.New_Arista_Laminate_Bestsellers_Sample_Kit.webp?v=1767810245&width=360 360w" width="360" height="360" loading="lazy"> 2125 </span> 2126 2127 Arista Laminate Bestsellers Kit 2128 2129 </a> 2130 </li> 2131 2132 2133 2134 2135 2136<li class="mnav2__item is-leaf has-menu-image"> 2137 <a class="mnav2__link" href="https://www.flooret.com/products/bestsellers-sample-kits?variant=52339236176147"> 2138 2139 <div class="mmcard__tags"> 2140 2141 2142 </div> 2143 2144 2145 <span class="mnavTile__img"> 2146 <img src="//www.flooret.com/cdn/shop/files/Bestsellers_Sample_Kits_Silvan_7__Hardwood_Bestsellers_Sample_KitNEW.webp?v=1782422189&width=360" alt="Silvan 7" Bestsellers Kit" srcset="//www.flooret.com/cdn/shop/files/Bestsellers_Sample_Kits_Silvan_7__Hardwood_Bestsellers_Sample_KitNEW.webp?v=1782422189&width=352 352w, //www.flooret.com/cdn/shop/files/Bestsellers_Sample_Kits_Silvan_7__Hardwood_Bestsellers_Sample_KitNEW.webp?v=1782422189&width=360 360w" width="360" height="360" loading="lazy"> 2147 </span> 2148 2149 Silvan 7" Bestsellers Kit 2150 2151 </a> 2152 </li> 2153 2154 2155 2156 2157 2158 </ul> 2159 2160 </div> 2161 </div><div class="mnav1 " data-mnav1> 2162 <button type="button" 2163 class="mnav1__btn" 2164 aria-expanded="false"> 2165 <span class="mnav1__title">Arista Laminate 2166 2167 2168 2169 </span> 2170 <span class="mnav1__chev" aria-hidden="true"></span> 2171 </button> 2172 2173 <div class="mnav1__panel" hidden> 2174 2175 <ul class="mnav2"> 2176 2177 2178 2179<li class="mnav2__item is-leaf "> 2180 <a class="mnav2__link" href="/collections/arista-laminate"> 2181 2182 <div class="mmcard__tags"> 2183 2184 2185 </div> 2186 2187 2188 Shop Floors 2189 2190 </a> 2191 </li> 2192 2193 2194 2195 2196 2197<li class="mnav2__item is-leaf "> 2198 <a class="mnav2__link" href="/pages/arista-laminate"> 2199 2200 <div class="mmcard__tags"> 2201 2202 2203 </div> 2204 2205 2206 Meet Arista 2207 2208 </a> 2209 </li> 2210 2211 2212 2213 2214 2215<li class="mnav2__item is-leaf "> 2216 <a class="mnav2__link" href="/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Arista"> 2217 2218 <div class="mmcard__tags"> 2219 2220 2221 </div> 2222 2223 2224 Trim & Stairs 2225 2226 </a> 2227 </li> 2228 2229 2230 2231 2232 2233<li class="mnav2__item is-leaf "> 2234 <a class="mnav2__link" href="/collections/sample-kits"> 2235 2236 <div class="mmcard__tags"> 2237 2238 2239 </div> 2240 2241 2242 Shop Samples 2243 2244 </a> 2245 </li> 2246 2247 2248 2249 2250 2251<li class="mnav2__item is-leaf has-menu-image"> 2252 <a class="mnav2__link" href="/products/russo-1"> 2253 2254 <div class="mmcard__tags"> 2255 2256
2257 <span class="mmcard__tag mmcard__tag--2">Bestseller</span> 2258 2259 </div> 2260 2261 2262 <span class="mnavTile__img"> 2263 <img src="//www.flooret.com/cdn/shop/files/1._Russo_1.png?v=1769691297&width=360" alt="Russo" srcset="//www.flooret.com/cdn/shop/files/1._Russo_1.png?v=1769691297&width=352 352w, //www.flooret.com/cdn/shop/files/1._Russo_1.png?v=1769691297&width=360 360w" width="360" height="360" loading="lazy"> 2264 </span> 2265 2266 Russo 2267 2268 </a> 2269 </li> 2270 2271 2272 2273 2274 2275<li class="mnav2__item is-leaf has-menu-image"> 2276 <a class="mnav2__link" href="/products/levant"> 2277 2278 <div class="mmcard__tags"> 2279 2280 2281 </div> 2282 2283 2284 <span class="mnavTile__img"> 2285 <img src="//www.flooret.com/cdn/shop/files/2._Levant_1.png?v=1769691339&width=360" alt="Levant" srcset="//www.flooret.com/cdn/shop/files/2._Levant_1.png?v=1769691339&width=352 352w, //www.flooret.com/cdn/shop/files/2._Levant_1.png?v=1769691339&width=360 360w" width="360" height="360" loading="lazy"> 2286 </span> 2287 2288 Levant 2289 2290 </a> 2291 </li> 2292 2293 2294 2295 2296 2297<li class="mnav2__item is-leaf has-menu-image"> 2298 <a class="mnav2__link" href="/products/opera"> 2299 2300 <div class="mmcard__tags"> 2301 2302 2303 </div> 2304 2305 2306 <span class="mnavTile__img"> 2307 <img src="//www.flooret.com/cdn/shop/files/3._Opera_1.png?v=1769691365&width=360" alt="Opera" srcset="//www.flooret.com/cdn/shop/files/3._Opera_1.png?v=1769691365&width=352 352w, //www.flooret.com/cdn/shop/files/3._Opera_1.png?v=1769691365&width=360 360w" width="360" height="360" loading="lazy"> 2308 </span> 2309 2310 Opera 2311 2312 </a> 2313 </li> 2314 2315 2316 2317 2318 2319<li class="mnav2__item is-leaf has-menu-image"> 2320 <a class="mnav2__link" href="/products/concorde"> 2321 2322 <div class="mmcard__tags"> 2323 2324 2325 </div> 2326 2327 2328 <span class="mnavTile__img"> 2329 <img src="//www.flooret.com/cdn/shop/files/4._Concorde_1.png?v=1769691389&width=360" alt="Concorde" srcset="//www.flooret.com/cdn/shop/files/4._Concorde_1.png?v=1769691389&width=352 352w, //www.flooret.com/cdn/shop/files/4._Concorde_1.png?v=1769691389&width=360 360w" width="360" height="360" loading="lazy"> 2330 </span> 2331 2332 Concorde 2333 2334 </a> 2335 </li> 2336 2337 2338 2339 2340 2341 </ul> 2342 2343 </div> 2344 </div><div class="mnav1 " data-mnav1> 2345 <button type="button" 2346 class="mnav1__btn" 2347 aria-expanded="false"> 2348 <span class="mnav1__title">Silvan Resilient Hardwood 2349 2350 2351 2352 </span> 2353 <span class="mnav1__chev" aria-hidden="true"></span> 2354 </button> 2355 2356 <div class="mnav1__panel" hidden> 2357 2358 <ul class="mnav2"> 2359 2360 2361 2362<li class="mnav2__item is-leaf "> 2363 <a class="mnav2__link" href="/collections/silvan-hardwood"> 2364 2365 <div class="mmcard__tags"> 2366 2367 2368 </div> 2369 2370 2371 Shop Floors 2372 2373 </a> 2374 </li> 2375 2376 2377 2378 2379 2380<li class="mnav2__item is-leaf "> 2381 <a class="mnav2__link" href="/pages/silvan-learn-more"> 2382 2383 <div class="mmcard__tags"> 2384 2385 2386 </div> 2387 2388 2389 Meet Silvan 2390 2391 </a> 2392 </li> 2393 2394 2395 2396 2397 2398<li class="mnav2__item is-leaf "> 2399 <a class="mnav2__link" href="/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Silvan"> 2400 2401 <div class="mmcard__tags"> 2402 2403 2404 </div> 2405 2406 2407 Trim & Stairs 2408 2409 </a> 2410 </li> 2411 2412 2413 2414 2415 2416<li class="mnav2__item is-leaf "> 2417 <a class="mnav2__link" href="/collections/sample-kits"> 2418 2419 <div class="mmcard__tags"> 2420 2421 2422 </div> 2423 2424 2425 Shop Samples 2426 2427 </a> 2428 </li> 2429 2430 2431 2432 2433 2434<li class="mnav2__item is-leaf has-menu-image"> 2435 <a class="mnav2__link" href="/products/anza-7"> 2436 2437 <div class="mmcard__tags"> 2438 2439 2440 </div> 2441 2442
2443 <span class="mnavTile__img"> 2444 <img src="//www.flooret.com/cdn/shop/files/1._Silvan_Anza_7__1.png?v=1769691423&width=360" alt="Silvan Anza 7â" srcset="//www.flooret.com/cdn/shop/files/1._Silvan_Anza_7__1.png?v=1769691423&width=352 352w, //www.flooret.com/cdn/shop/files/1._Silvan_Anza_7__1.png?v=1769691423&width=360 360w" width="360" height="360" loading="lazy"> 2445 </span> 2446 2447 Silvan Anza 7â 2448 2449 </a> 2450 </li> 2451 2452 2453 2454 2455 2456<li class="mnav2__item is-leaf has-menu-image"> 2457 <a class="mnav2__link" href="/products/balboa"> 2458 2459 <div class="mmcard__tags"> 2460 2461 2462 <span class="mmcard__tag mmcard__tag--2">Bestseller</span> 2463 2464 </div> 2465 2466 2467 <span class="mnavTile__img"> 2468 <img src="//www.flooret.com/cdn/shop/files/2._Silvan_Balboa_7__1.png?v=1769691473&width=360" alt="Silvan Balboa 7â" srcset="//www.flooret.com/cdn/shop/files/2._Silvan_Balboa_7__1.png?v=1769691473&width=352 352w, //www.flooret.com/cdn/shop/files/2._Silvan_Balboa_7__1.png?v=1769691473&width=360 360w" width="360" height="360" loading="lazy" style="object-position:51.7721% 84.1784%;"> 2469 </span> 2470 2471 Silvan Balboa 7â 2472 2473 </a> 2474 </li> 2475 2476 2477 2478 2479 2480<li class="mnav2__item is-leaf has-menu-image"> 2481 <a class="mnav2__link" href="/products/norde"> 2482 2483 <div class="mmcard__tags"> 2484 2485 2486 </div> 2487 2488 2489 <span class="mnavTile__img"> 2490 <img src="//www.flooret.com/cdn/shop/files/3._Silvan_Norde_7__1.png?v=1769691494&width=360" alt="Silvan Norde 7â" srcset="//www.flooret.com/cdn/shop/files/3._Silvan_Norde_7__1.png?v=1769691494&width=352 352w, //www.flooret.com/cdn/shop/files/3._Silvan_Norde_7__1.png?v=1769691494&width=360 360w" width="360" height="360" loading="lazy"> 2491 </span> 2492 2493 Silvan Norde 7â 2494 2495 </a> 2496 </li> 2497 2498 2499 2500 2501 2502 </ul> 2503 2504 </div> 2505 </div><div class="mnav1 " data-mnav1> 2506 <button type="button" 2507 class="mnav1__btn" 2508 aria-expanded="false"> 2509 <span class="mnav1__title">Shop Flooret Rugs 2510 2511 2512 2513 </span> 2514 <span class="mnav1__chev" aria-hidden="true"></span> 2515 </button> 2516 2517 <div class="mnav1__panel" hidden> 2518 2519 <ul class="mnav2"> 2520 2521 2522 2523<li class="mnav2__item is-leaf "> 2524 <a class="mnav2__link" href="/collections/rugs"> 2525 2526 <div class="mmcard__tags"> 2527 2528 2529 </div> 2530 2531 2532 Shop Rugs 2533 2534 </a> 2535 </li> 2536 2537 2538 2539 2540 2541<li class="mnav2__item is-leaf "> 2542 <a class="mnav2__link" href="/pages/meet-flooret-rugs"> 2543 2544 <div class="mmcard__tags"> 2545 2546 2547 </div> 2548 2549 2550 Meet Rugs 2551 2552 </a> 2553 </li> 2554 2555 2556 2557 2558 2559<li class="mnav2__item is-leaf has-menu-image"> 2560 <a class="mnav2__link" href="https://www.flooret.com/products/palomar?variant=54445245104403"> 2561 2562 <div class="mmcard__tags"> 2563 2564 2565 </div> 2566 2567
2568 <span class="mnavTile__img"> 2569 <img src="//www.flooret.com/cdn/shop/files/Palomar_Juniper_Green_8x10_-_Pacific_Northwest_Living_Room.webp?v=1784696753&width=360" alt="Palomar Juniper Green" srcset="//www.flooret.com/cdn/shop/files/Palomar_Juniper_Green_8x10_-_Pacific_Northwest_Living_Room.webp?v=1784696753&width=352 352w, //www.flooret.com/cdn/shop/files/Palomar_Juniper_Green_8x10_-_Pacific_Northwest_Living_Room.webp?v=1784696753&width=360 360w" width="360" height="450" loading="lazy"> 2570 </span> 2571 2572 Palomar Juniper Green 2573 2574 </a> 2575 </li> 2576 2577 2578 2579 2580 2581<li class="mnav2__item is-leaf has-menu-image"> 2582 <a class="mnav2__link" href="https://www.flooret.com/products/oceanside?variant=54445318537491"> 2583 2584 <div class="mmcard__tags"> 2585 2586 2587 </div> 2588 2589 2590 <span class="mnavTile__img"> 2591 <img src="//www.flooret.com/cdn/shop/files/Oceanside_Deep_Blue_8_x_10_-_Mid-Century_Dining_Room.webp?v=1784697000&width=360" alt="Oceanside Deep Blue" srcset="//www.flooret.com/cdn/shop/files/Oceanside_Deep_Blue_8_x_10_-_Mid-Century_Dining_Room.webp?v=1784697000&width=352 352w, //www.flooret.com/cdn/shop/files/Oceanside_Deep_Blue_8_x_10_-_Mid-Century_Dining_Room.webp?v=1784697000&width=360 360w" width="360" height="450" loading="lazy"> 2592 </span> 2593 2594 Oceanside Deep Blue 2595 2596 </a> 2597 </li> 2598 2599 2600 2601 2602 2603<li class="mnav2__item is-leaf has-menu-image"> 2604 <a class="mnav2__link" href="https://www.flooret.com/products/encinitas?variant=54445222986003"> 2605 2606 <div class="mmcard__tags"> 2607 2608 2609 </div> 2610 2611 2612 <span class="mnavTile__img"> 2613 <img src="//www.flooret.com/cdn/shop/files/Encinitas_Clay_Red_8x10_-_Coastal_Great_Room.webp?v=1784696027&width=360" alt="Encinitas Clay Red" srcset="//www.flooret.com/cdn/shop/files/Encinitas_Clay_Red_8x10_-_Coastal_Great_Room.webp?v=1784696027&width=352 352w, //www.flooret.com/cdn/shop/files/Encinitas_Clay_Red_8x10_-_Coastal_Great_Room.webp?v=1784696027&width=360 360w" width="360" height="450" loading="lazy"> 2614 </span> 2615 2616 Encinitas Clay Red 2617 2618 </a> 2619 </li> 2620 2621 2622 2623 2624 2625<li class="mnav2__item is-leaf has-menu-image"> 2626 <a class="mnav2__link" href="https://www.flooret.com/products/del-mar?variant=54445329776915"> 2627 2628 <div class="mmcard__tags"> 2629 2630 2631 </div> 2632 2633 2634 <span class="mnavTile__img"> 2635 <img src="//www.flooret.com/cdn/shop/files/Del_Mar_Soft_Creme_8_x_10_-_New_England_Cottage_Dining_Room.webp?v=1784697119&width=360" alt="Del Mar Soft Creme" srcset="//www.flooret.com/cdn/shop/files/Del_Mar_Soft_Creme_8_x_10_-_New_England_Cottage_Dining_Room.webp?v=1784697119&width=352 352w, //www.flooret.com/cdn/shop/files/Del_Mar_Soft_Creme_8_x_10_-_New_England_Cottage_Dining_Room.webp?v=1784697119&width=360 360w" width="360" height="450" loading="lazy"> 2636 </span> 2637 2638 Del Mar Soft Creme 2639 2640 </a> 2641 </li> 2642 2643 2644 2645 2646 2647 </ul> 2648 2649 </div> 2650 </div><div class="mnav1 " data-mnav1> 2651 <button type="button" 2652 class="mnav1__btn" 2653 aria-expanded="false">
2654 <span class="mnav1__title">Collaborations 2655 2656 2657 2658 </span> 2659 <span class="mnav1__chev" aria-hidden="true"></span> 2660 </button> 2661 2662 <div class="mnav1__panel" hidden> 2663 2664 <ul class="mnav2"> 2665 2666 2667 2668<li class="mnav2__item is-leaf has-menu-image"> 2669 <a class="mnav2__link" href="https://www.flooret.com/pages/flooret-x-jungalow?_pos=1&_psq=jungalo&_psid=d53d00a25&_ss=e"> 2670 2671 <div class="mmcard__tags"> 2672 2673 2674 </div> 2675 2676 2677 <span class="mnavTile__img"> 2678 <img src="//www.flooret.com/cdn/shop/files/Jungalow_1.webp?v=1790287853&width=360" alt="Jungalow" srcset="//www.flooret.com/cdn/shop/files/Jungalow_1.webp?v=1790287853&width=352 352w, //www.flooret.com/cdn/shop/files/Jungalow_1.webp?v=1790287853&width=360 360w" width="360" height="360" loading="lazy"> 2679 </span> 2680 2681 Jungalow 2682 2683 </a> 2684 </li> 2685 2686 2687 2688 2689 2690<li class="mnav2__item is-leaf has-menu-image"> 2691 <a class="mnav2__link" href="/pages/flooret-x-farah-merhi"> 2692 2693 <div class="mmcard__tags"> 2694 2695 2696 </div> 2697 2698 2699 <span class="mnavTile__img"> 2700 <img src="//www.flooret.com/cdn/shop/files/Collaborations_Nav_Menu_Images.png?v=1772005802&width=360" alt="Farah Merhi" srcset="//www.flooret.com/cdn/shop/files/Collaborations_Nav_Menu_Images.png?v=1772005802&width=352 352w, //www.flooret.com/cdn/shop/files/Collaborations_Nav_Menu_Images.png?v=1772005802&width=360 360w" width="360" height="360" loading="lazy"> 2701 </span> 2702 2703 Farah Merhi 2704 2705 </a> 2706 </li> 2707 2708 2709 2710 2711 2712<li class="mnav2__item is-leaf has-menu-image"> 2713 <a class="mnav2__link" href="/pages/flooret-x-oakavehouse"> 2714 2715 <div class="mmcard__tags"> 2716 2717 2718 </div> 2719 2720 2721 <span class="mnavTile__img"> 2722 <img src="//www.flooret.com/cdn/shop/files/Oak_Ave_House_1.png?v=1769692429&width=360" alt="Oak Ave House" srcset="//www.flooret.com/cdn/shop/files/Oak_Ave_House_1.png?v=1769692429&width=352 352w, //www.flooret.com/cdn/shop/files/Oak_Ave_House_1.png?v=1769692429&width=360 360w" width="360" height="360" loading="lazy"> 2723 </span> 2724 2725 Oak Ave House 2726 2727 </a> 2728 </li> 2729 2730 2731 2732 2733 2734<li class="mnav2__item is-leaf has-menu-image"> 2735 <a class="mnav2__link" href="/pages/flooret-x-rene-ceretto-landing-page"> 2736 2737 <div class="mmcard__tags"> 2738 2739 2740 </div> 2741 2742 2743 <span class="mnavTile__img"> 2744 <img src="//www.flooret.com/cdn/shop/files/Pleasantly_Built_1.png?v=1769692435&width=360" alt="Pleasantly Built" srcset="//www.flooret.com/cdn/shop/files/Pleasantly_Built_1.png?v=1769692435&width=352 352w, //www.flooret.com/cdn/shop/files/Pleasantly_Built_1.png?v=1769692435&width=360 360w" width="360" height="360" loading="lazy"> 2745 </span> 2746 2747 Pleasantly Built 2748 2749 </a> 2750 </li> 2751 2752 2753 2754 2755 2756<li class="mnav2__item is-leaf has-menu-image"> 2757 <a class="mnav2__link" href="/pages/flooret-before-and-after-transformations"> 2758 2759 <div class="mmcard__tags"> 2760 2761 2762 </div> 2763 2764
2765 <span class="mnavTile__img"> 2766 <img src="//www.flooret.com/cdn/shop/files/Transformations.png?v=1788271901&width=360" alt="Before & After Transformations" srcset="//www.flooret.com/cdn/shop/files/Transformations.png?v=1788271901&width=352 352w, //www.flooret.com/cdn/shop/files/Transformations.png?v=1788271901&width=360 360w" width="360" height="360" loading="lazy"> 2767 </span> 2768 2769 Before & After Transformations 2770 2771 </a> 2772 </li> 2773 2774 2775 2776 2777 2778<li class="mnav2__item is-leaf has-menu-image"> 2779 <a class="mnav2__link" href="/pages/dallas-mavericks"> 2780 2781 <div class="mmcard__tags"> 2782 2783 2784 </div> 2785 2786 2787 <span class="mnavTile__img"> 2788 <img src="//www.flooret.com/cdn/shop/files/Dallas_Mavericks_1.png?v=1769692448&width=360" alt="Dallas Mavericks" srcset="//www.flooret.com/cdn/shop/files/Dallas_Mavericks_1.png?v=1769692448&width=352 352w, //www.flooret.com/cdn/shop/files/Dallas_Mavericks_1.png?v=1769692448&width=360 360w" width="360" height="360" loading="lazy"> 2789 </span> 2790 2791 Dallas Mavericks 2792 2793 </a> 2794 </li> 2795 2796 2797 2798 2799 2800 </ul> 2801 2802 </div> 2803 </div><div class="mnav1 " data-mnav1> 2804 <button type="button" 2805 class="mnav1__btn" 2806 aria-expanded="false"> 2807 <span class="mnav1__title">Resources 2808 2809 2810 2811 </span> 2812 <span class="mnav1__chev" aria-hidden="true"></span> 2813 </button> 2814 2815 <div class="mnav1__panel" hidden> 2816 2817 <ul class="mnav2"> 2818 2819 2820 2821<li class="mnav2__item is-leaf has-menu-image"> 2822 <a class="mnav2__link" href="/pages/technical-documents"> 2823 2824 <div class="mmcard__tags"> 2825 2826 2827 </div> 2828 2829 2830 <span class="mnavTile__img"> 2831 <img src="//www.flooret.com/cdn/shop/files/xif7cfgnfzhzskhp1c1o.webp?v=1770046340&width=360" alt="Technical Documents" srcset="//www.flooret.com/cdn/shop/files/xif7cfgnfzhzskhp1c1o.webp?v=1770046340&width=352 352w, //www.flooret.com/cdn/shop/files/xif7cfgnfzhzskhp1c1o.webp?v=1770046340&width=360 360w" width="360" height="360" loading="lazy"> 2832 </span> 2833 2834 Technical Documents 2835 2836 </a> 2837 </li> 2838 2839 2840 2841 2842 2843<li class="mnav2__item is-leaf has-menu-image"> 2844 <a class="mnav2__link" href="/pages/shipping"> 2845 2846 <div class="mmcard__tags"> 2847 2848 2849 </div> 2850 2851 2852 <span class="mnavTile__img"> 2853 <img src="//www.flooret.com/cdn/shop/files/rz5zz67phgxwnliajwg3.webp?v=1770046340&width=360" alt="Shipping" srcset="//www.flooret.com/cdn/shop/files/rz5zz67phgxwnliajwg3.webp?v=1770046340&width=352 352w, //www.flooret.com/cdn/shop/files/rz5zz67phgxwnliajwg3.webp?v=1770046340&width=360 360w" width="360" height="360" loading="lazy"> 2854 </span> 2855 2856 Shipping 2857 2858 </a> 2859 </li> 2860 2861 2862 2863 2864 2865<li class="mnav2__item is-leaf has-menu-image"> 2866 <a class="mnav2__link" href="https://support.flooret.com/"> 2867 2868 <div class="mmcard__tags"> 2869 2870 2871 </div> 2872 2873
2874 <span class="mnavTile__img"> 2875 <img src="//www.flooret.com/cdn/shop/files/grw9hvgobii68ofxibk2.webp?v=1770046349&width=360" alt="FAQs" srcset="//www.flooret.com/cdn/shop/files/grw9hvgobii68ofxibk2.webp?v=1770046349&width=352 352w, //www.flooret.com/cdn/shop/files/grw9hvgobii68ofxibk2.webp?v=1770046349&width=360 360w" width="360" height="360" loading="lazy"> 2876 </span> 2877 2878 FAQs 2879 2880 </a> 2881 </li> 2882 2883 2884 2885 2886 2887<li class="mnav2__item is-leaf has-menu-image"> 2888 <a class="mnav2__link" href="/pages/ten-year-anniversary"> 2889 2890 <div class="mmcard__tags"> 2891 2892 2893 </div> 2894 2895 2896 <span class="mnavTile__img"> 2897 <img src="//www.flooret.com/cdn/shop/files/10_Years_of_Flooret.png?v=1779944098&width=360" alt="10 Years of Flooret" srcset="//www.flooret.com/cdn/shop/files/10_Years_of_Flooret.png?v=1779944098&width=352 352w, //www.flooret.com/cdn/shop/files/10_Years_of_Flooret.png?v=1779944098&width=360 360w" width="360" height="360" loading="lazy"> 2898 </span> 2899 2900 10 Years of Flooret 2901 2902 </a> 2903 </li> 2904 2905 2906 2907 2908 2909<li class="mnav2__item is-leaf has-menu-image"> 2910 <a class="mnav2__link" href="/blogs/all"> 2911 2912 <div class="mmcard__tags"> 2913 2914 2915 </div> 2916 2917 2918 <span class="mnavTile__img"> 2919 <img src="//www.flooret.com/cdn/shop/files/fp2awnfc4uyxaq5oeayr.webp?v=1770046349&width=360" alt="Blogs" srcset="//www.flooret.com/cdn/shop/files/fp2awnfc4uyxaq5oeayr.webp?v=1770046349&width=352 352w, //www.flooret.com/cdn/shop/files/fp2awnfc4uyxaq5oeayr.webp?v=1770046349&width=360 360w" width="360" height="360" loading="lazy"> 2920 </span> 2921 2922 Blogs 2923 2924 </a> 2925 </li> 2926 2927 2928 2929 2930 2931<li class="mnav2__item is-leaf has-menu-image"> 2932 <a class="mnav2__link" href="/collections/inspiration"> 2933 2934 <div class="mmcard__tags"> 2935 2936 2937 </div> 2938 2939 2940 <span class="mnavTile__img"> 2941 <img src="//www.flooret.com/cdn/shop/files/pnvsws32e5fop0c70umm.webp?v=1770046349&width=360" alt="Gallery" srcset="//www.flooret.com/cdn/shop/files/pnvsws32e5fop0c70umm.webp?v=1770046349&width=352 352w, //www.flooret.com/cdn/shop/files/pnvsws32e5fop0c70umm.webp?v=1770046349&width=360 360w" width="360" height="360" loading="lazy"> 2942 </span> 2943 2944 Gallery 2945 2946 </a> 2947 </li> 2948 2949 2950 2951 2952 2953<li class="mnav2__item is-leaf has-menu-image"> 2954 <a class="mnav2__link" href="/pages/referral-program"> 2955 2956 <div class="mmcard__tags"> 2957 2958 2959 </div> 2960 2961 2962 <span class="mnavTile__img"> 2963 <img src="//www.flooret.com/cdn/shop/files/Referral_Program.png?v=1779944195&width=360" alt="Referral Program" srcset="//www.flooret.com/cdn/shop/files/Referral_Program.png?v=1779944195&width=352 352w, //www.flooret.com/cdn/shop/files/Referral_Program.png?v=1779944195&width=360 360w" width="360" height="360" loading="lazy"> 2964 </span> 2965 2966 Referral Program 2967 2968 </a> 2969 </li> 2970 2971 2972 2973 2974 2975<li class="mnav2__item is-leaf has-menu-image"> 2976 <a class="mnav2__link" href="https://www.flooret.com/pages/find-an-installer"> 2977 2978 <div class="mmcard__tags"> 2979 2980 2981 </div> 2982 2983
2984 <span class="mnavTile__img"> 2985 <img src="//www.flooret.com/cdn/shop/files/bzaumryf8scy4kg24lhi.webp?v=1770046345&width=360" alt="Find an Installer" srcset="//www.flooret.com/cdn/shop/files/bzaumryf8scy4kg24lhi.webp?v=1770046345&width=352 352w, //www.flooret.com/cdn/shop/files/bzaumryf8scy4kg24lhi.webp?v=1770046345&width=360 360w" width="360" height="360" loading="lazy"> 2986 </span> 2987 2988 Find an Installer 2989 2990 </a> 2991 </li> 2992 2993 2994 2995 2996 2997 </ul> 2998 2999 </div> 3000 </div></div> 3001</nav> 3002 3003 3004<style> 3005 .gheader__mnav { 3006 background: #F4F2EC; 3007} 3008 3009.gheader__mnav button.close-btn-drawer { 3010 margin: 20px; 3011 margin-left: auto; 3012 width: fit-content; 3013 display: block; 3014 border: none; 3015 background: none; 3016} 3017.mnavGrid li.mnavTile a.mnavTile__link { 3018 display: flex !important; 3019 align-items: center; 3020} 3021.mnavGrid li.mnavTile a.mnavTile__link span.custom-badge-new { 3022 right: 0; 3023 top: -12px; 3024 position: relative; 3025 order: 2; 3026 margin-left: 14px; 3027} 3028.gheader__mnav__fixed { 3029 margin-top: 30px; 3030} 3031 3032.gheader__mnav > .overflow { 3033 display: grid; 3034 grid-template-rows: auto 1fr; 3035 height: calc(100% - 70px ); 3036} 3037ul.mnav2 li.mnav2__item.is-parent { 3038 width: 100%; 3039} 3040 3041 .gheader__mnav { 3042 background: #F4F2EC; 3043 } 3044 3045 .gheader__mnav button.close-btn-drawer { 3046 margin: 20px; 3047 margin-left: auto; 3048 width: fit-content; 3049 display: block; 3050 border: none; 3051 background: none; 3052 } 3053 3054 .gheader__mnav.active { overflow-y:auto; } 3055 .mnav { width: 100%; } 3056 body .gheader__nav ul li button.mega-menu-button { 3057 position: relative; 3058 padding-bottom: 5px !important; 3059} 3060 3061li.mega-menu-li button::after { 3062 content: ''; 3063 display: block; 3064 position: absolute; 3065 left: 0; 3066 right: 0; 3067 bottom: 0px; 3068 height: 1px; 3069 width: 100%; 3070 background: #000; 3071 transform: scaleX(0); 3072 transform-origin: right center; 3073 transition: transform 0.5s linear; 3074} 3075 3076li.mega-menu-li button:hover::after { 3077 transform: scaleX(1); 3078 transform-origin: left center; 3079} 3080 3081 3082.mnav__inner { padding: 0px; } 3083 3084.mnav2__item li.mnavTile.has-menu-image .mnavTile__img { 3085 display: none; 3086} 3087.mnav2__item li.mnavTile.has-menu-image a.mnavTile__link .mnavTile__title { 3088 display: block; 3089 font-family: Montserrat; 3090 font-weight: 500; 3091 font-style: Medium; 3092 font-size: 14px; 3093 leading-trim: NONE; 3094 line-height: 130%; 3095 letter-spacing: 1%; 3096 text-decoration: none; 3097 color: #000000; 3098} 3099.mnav2__item li.mnavTile.has-menu-image { 3100 margin: 0px !important; 3101} 3102 3103/* L1 accordion */ 3104.mnav1.is-open { border-bottom: 1px solid #000; } 3105.mnav1__btn{ 3106 width:100%; padding:14px 0; 3107 display:flex; align-items:center; justify-content:space-between; 3108 border:0; background:transparent; text-align:left; cursor:pointer;border-bottom: 1px solid #F3F4F6; 3109} 3110.mnav1__title { 3111 font-family: Playfair Display; 3112 font-weight: 500; 3113 font-style: Medium; 3114 font-size: 18px; 3115 leading-trim: NONE; 3116 line-height: 28px; 3117 letter-spacing: 0px; 3118 color: #000000; 3119 position:relative; 3120} 3121.mnav1__chev { 3122 width: 8px; 3123 height: 8px; 3124 border-right: 1px solid #99A1AF; 3125 border-bottom: 1px solid #99A1AF; 3126 transform: rotate(45deg); 3127 transition: transform .2s ease; 3128} 3129ul.mnav2 { 3130 display: flex; 3131 flex-wrap: wrap; 3132} 3133 3134ul.mnav2 li.mnav2__item.is-leaf { 3135 width: 100%; 3136} 3137 3138ul.mnav2 li.mnav2__item.is-leaf.has-menu-image { 3139 width: calc(50% - 10px); 3140 margin: 0px 5px; 3141} 3142 3143ul.mnav2 li.mnav2__item.is-leaf.has-menu-image > a.mnav2__link { 3144 font-family: Playfair Display; 3145 font-weight: 500; 3146 font-style: Medium; 3147 font-size: 13px; 3148 leading-trim: NONE; 3149 line-height: 24px; 3150 letter-spacing: 0px; 3151 color: #000000; 3152} 3153.mnav1.is-open .mnav1__chev{ transform: rotate(-135deg); } 3154.mnav1__panel{ padding: 0 0 12px; } 3155 3156/* L2 list */ 3157.mnav2{ list-style:none; padding:0; margin:0; } 3158 3159 3160/* L2 leaf link (no dropdown) */ 3161.mnav2__link { 3162 display: block; 3163 padding: 12px 0; 3164 font-family: Montserrat; 3165 font-weight: 500; 3166 font-style: Medium; 3167 font-size: 14px;
3168 leading-trim: NONE; 3169 line-height: 130%; 3170 letter-spacing: 1%; 3171 text-decoration: none; 3172 color: #000000; 3173} 3174 3175/* L2 parent (dropdown) */ 3176.mnav2__btn{ 3177 width:100%; 3178 padding:12px 0; 3179 display:flex; 3180 align-items:center; 3181 justify-content:space-between; 3182 border:0; 3183 background:transparent; 3184 text-align:left; 3185 cursor:pointer; 3186} 3187ul.mnav2 li.mnav2__item.is-parent { 3188 width: 100%; 3189} 3190.mnav2__title { 3191font-family: Playfair Display; 3192 font-weight: 500; 3193 font-style: Medium; 3194 font-size: 18px; 3195 leading-trim: NONE; 3196 line-height: 28px; 3197 letter-spacing: 0px; 3198 color: #000000; 3199 position:relative; 3200} 3201.mnav2__chev{ 3202 width: 8px; 3203 height: 8px; 3204 border-right: 1px solid #99A1AF; 3205 border-bottom: 1px solid #99A1AF; 3206 transform: rotate(45deg); 3207 transition: transform .2s ease; 3208} 3209.mnav2__btn.is-open .mnav2__chev{ transform: rotate(-135deg); } 3210 3211.mnav2__panel{ padding: 0px 0 14px; } 3212 3213/* Grid */ 3214.mnavGrid { 3215 list-style: none; 3216 padding: 0; 3217 margin: 0; 3218 display: flex; 3219 flex-wrap: wrap; 3220} 3221.mnavGrid li.mnavTile { 3222 width: 100%; 3223 3224} 3225 3226.mnavGrid li.mnavTile a.mnavTile__link { 3227 display: block; 3228 padding: 12px 0; 3229 font-family: Montserrat; 3230 font-weight: 500; 3231 font-style: Medium; 3232 font-size: 14px; 3233 leading-trim: NONE; 3234 line-height: 130%; 3235 letter-spacing: 1%; 3236 text-decoration: none; 3237 color: #000000; 3238} 3239.mnavGrid li.mnavTile.has-menu-image { 3240 width: calc(50% - 10px); 3241 margin: 0px 5px; 3242 border-top:none; 3243} 3244 3245 3246.mnavTile__link{ display:block; text-decoration:none; } 3247.mnavTile__img{ 3248 display:block; 3249 border-radius:6px; 3250 overflow:hidden; 3251 background:#f4f3f1; 3252} 3253.mnavTile__img img{ 3254 width:100%; 3255 3256 object-fit:cover; 3257 display:block; 3258} 3259.mnavTile__title{ 3260 display:block; 3261 font-family: Montserrat; 3262 font-weight: 500; 3263 font-style: Medium; 3264 font-size: 14px; 3265 leading-trim: NONE; 3266 line-height: 130%; 3267 letter-spacing: 1%; 3268 text-decoration: none; 3269 color: #000000; 3270} 3271.mnavGrid li.mnavTile.has-menu-image span.mnavTile__title { 3272 font-family: Playfair Display; 3273 font-weight: 500; 3274 font-style: Medium; 3275 font-size: 13px; 3276 leading-trim: NONE; 3277 line-height: 24px; 3278 letter-spacing: 0px; 3279 color: #000000; 3280 margin-top: 0px; 3281} 3282.mnavTile:not(.has-menu-image) .mnavTile__title{ margin-top:0; } 3283 3284@media (max-width:768px) { 3285.mnavGrid li.mnavTile.has-menu-image { 3286 width: 100%; 3287 margin: 0px !important; 3288 border-top: none; 3289} 3290} 3291</style> 3292
3293<script> 3294 document.addEventListener('DOMContentLoaded', () => { 3295 const root = document.querySelector('.mnav'); 3296 if (!root) return; 3297 3298 // L1 accordion (single open) 3299 root.querySelectorAll('[data-mnav1]').forEach(section => { 3300 const btn = section.querySelector('.mnav1__btn'); 3301 const panel = section.querySelector('.mnav1__panel'); 3302 if (!btn || !panel) return; 3303 3304 btn.addEventListener('click', () => { 3305 const isOpen = section.classList.contains('is-open'); 3306 3307 root.querySelectorAll('[data-mnav1]').forEach(s => { 3308 s.classList.remove('is-open'); 3309 const b = s.querySelector('.mnav1__btn'); 3310 const p = s.querySelector('.mnav1__panel'); 3311 if (b) b.setAttribute('aria-expanded', 'false'); 3312 if (p) p.setAttribute('hidden', ''); 3313 }); 3314 3315 if (!isOpen) { 3316 section.classList.add('is-open'); 3317 btn.setAttribute('aria-expanded', 'true'); 3318 panel.removeAttribute('hidden'); 3319 } 3320 }); 3321 }); 3322 3323 // L2 accordion only for items that actually have children (data-mnav2) 3324 root.querySelectorAll('[data-mnav1]').forEach(section => { 3325 const rows = section.querySelectorAll('[data-mnav2]'); 3326 3327 rows.forEach(row => { 3328 const btn = row.querySelector('.mnav2__btn'); 3329 const panel = row.querySelector('.mnav2__panel'); 3330 if (!btn || !panel) return; 3331 3332 btn.addEventListener('click', () => { 3333 const isOpen = btn.classList.contains('is-open'); 3334 3335 // close all L2 dropdowns within this L1 3336 rows.forEach(r => { 3337 const b = r.querySelector('.mnav2__btn'); 3338 const p = r.querySelector('.mnav2__panel'); 3339 if (b) { b.classList.remove('is-open'); b.setAttribute('aria-expanded', 'false'); } 3340 if (p) p.setAttribute('hidden', ''); 3341 }); 3342 3343 if (!isOpen) { 3344 btn.classList.add('is-open'); 3345 btn.setAttribute('aria-expanded', 'true'); 3346 panel.removeAttribute('hidden'); 3347 } 3348 }); 3349 }); 3350 }); 3351}); 3352 3353</script>
3353 3354
3355<script> 3356 document.addEventListener('DOMContentLoaded', () => { 3357 var closeBtnMenuDrawer = document.querySelector('.close-btn-drawer'); 3358 var menuDrawer = document.querySelector('.mob-only.gheader__mnav'); 3359 var mainDrawerBtn = document.querySelector('.gheader__burger') 3360 3361 closeBtnMenuDrawer.addEventListener('click', ()=>{ 3362 document.querySelector('body').classList.remove('no-scroll') 3363 menuDrawer.classList.remove('active'); 3364 menuDrawer.classList.remove('is-stuck'); 3365 mainDrawerBtn.classList.remove('active'); 3366 }) 3367 }) 3368</script>
3368 3369 <div class="gheader__mnav__fixed"> 3370 <a class="" href="/account">My Account</a> 3371 <a class="" target="_blank" href="https://flooretcommercial.com/">Flooret Commercial</a> 3372 <a class="" href="/pages/partner-plus">Partner +</a> 3373 </div> 3374 </div> 3375 </nav> 3376 3377 <a class="gheader__logo" href="/"> 3378 <img style="display:none;" src="//www.flooret.com/cdn/shop/t/125/assets/logo.svg?v=9074420933130547371775037866" width="110" height="23" alt="Flooret"> 3379 <img src="//www.flooret.com/cdn/shop/t/125/assets/new-logo.svg?v=161378473033427586771775037877" width="110" height="23" alt="Flooret"> 3380 </a> 3381 3382 3383 <li class="singlemenu only-mob"> 3384 <a class="menu__link pill-menu-active" href="https://try.flooret.com/early-black-friday-sale/?utm_source=flooret-site&utm_medium=onsite-pill&utm_campaign=ebf-2026">Early Black Friday</a> 3385 </li> 3386 3387 3388 <div class="gheader__nav desk-only"> 3389 <ul> 3390 3391 3392 <div class="wrap"> 3393 3394 3395 3396 3397 <li class="mega-menu-li " > 3398 <button class="reset mega-menu-button " data-menu="modin-lvp"> 3399 3400 <a href="/collections/modin-luxury-vinyl-plank" >Modin LVP</a> 3401 3402 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3403<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 3404</svg> 3405 3406 </button> 3407 </li> 3408 3409 3410 3411 3412 3413 3414 3415 <li class="mega-menu-li " > 3416 <button class="reset mega-menu-button " data-menu="arista-laminate"> 3417 3418 <a href="/collections/arista-laminate" >Arista Laminate</a> 3419 3420 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3421<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 3422</svg> 3423 3424 </button> 3425 </li> 3426 3427 3428 3429 3430 3431 3432 3433 <li class="mega-menu-li " > 3434 <button class="reset mega-menu-button " data-menu="silvan-hardwood"> 3435 3436 <a href="/collections/silvan-hardwood" >Silvan Hardwood</a> 3437 3438 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3439<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 3440</svg> 3441 3442 </button> 3443 </li> 3444 3445 3446 3447 3448 3449 3450 3451 <li class="mega-menu-li " > 3452 <button class="reset mega-menu-button " data-menu="flooret-rugs"> 3453 3454 Flooret Rugs 3455 3456 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3457<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 3458</svg> 3459 3460 <span class="custom-badge-new" style="background:;color:;">NEW</span> 3461 3462 </button> 3463 </li> 3464 3465 3466 3467 3468 3469 3470 3471 <li class="mega-menu-li " > 3472 <button class="reset mega-menu-button " data-menu="trim-stairs"> 3473 3474 <a href="/collections/trim-accessories" >Trim & Stairs</a> 3475 3476 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3477<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 3478</svg> 3479 3480 </button> 3481 </li> 3482 3483 3484 3485 3486 3487 3488 3489 <li class="mega-menu-li " > 3490 <button class="reset mega-menu-button " data-menu="sample-kits"> 3491 3492 <a href="/collections/sample-kits" >Sample Kits</a> 3493 3494 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3495<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 3496</svg> 3497 3498 </button> 3499 </li> 3500 3501 3502 3503 3504 3505 <li class="singlemenu " > 3506 <a class="menu__link pill-menu-active " href="https://try.flooret.com/early-black-friday-sale/?utm_source=flooret-site&utm_medium=onsite-pill&utm_campaign=ebf-2026" >Early Black Friday 3507 3508 </a> 3509 </li> 3510 3511 3512 3513 3514 3515 3516 3517 <li class="mega-menu-li " style="margin-left:auto !important;"> 3518 <button class="reset mega-menu-button " data-menu="collaborations"> 3519 3520 Collaborations 3521 3522 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3523<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 3524</svg> 3525 3526 </button> 3527 </li> 3528 3529 3530 3531 3532 3533 3534 3535 <li class="mega-menu-li " > 3536 <button class="reset mega-menu-button " data-menu="resources"> 3537 3538 Resources 3539 3540 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3541<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 3542</svg> 3543 3544 </button> 3545 </li> 3546 3547 3548 3549 3550 </div> 3551 3552 3553 3554 3555 3556 </ul> 3557 </div> 3558 3559 <div class="gheader__actions"> 3560 3561 <div class="gheader__icons"> 3562 <a class="menu-icon menu-icon--phone" href="tel:1-800-700-8122"> 3563 <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 24"> 3564 <path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="1.5" d="M12.531 20.217c-.3-.137-.599-.274-.898-.437a18.6 18.6 0 0 1-4.005-3.044a17.6 17.6 0 0 1-3.743-5.078a11 11 0 0 1-.998-3.243a5.8 5.8 0 0 1 .362-3.381a6.2 6.2 0 0 1 1.01-1.248A1.76 1.76 0 0 1 5.508 3.2c.493.074.94.332 1.248.723c.674.749 1.397 1.423 2.108 2.134c.28.24.455.58.487.948c-.012.31-.131.605-.337.836c-.237.3-.524.574-.798.86a1.5 1.5 0 0 0-.45 1.248c.172.535.467 1.023.861 1.423a34 34 0 0 0 1.485 1.883a13.3 13.3 0 0 0 3.38 2.795a1.25 1.25 0 0 0 1.249.15c.423-.237.8-.55 1.11-.923a1.64 1.64 0 0 1 1.073-.587c.374.02.726.18.986.45c.336.286.623.623.935.935s.562.537.824.823q.471.416.885.886c.214.277.317.625.287.973a2.05 2.05 0 0 1-.686 1.06a4.67 4.67 0 0 1-3.668 1.423a10.4 10.4 0 0 1-3.955-1.023Zm5.22-9.019a5.06 5.06 0 0 0-5.059-5.059m8.527 4.705a8.094 8.094 0 0 0-8.095-8.094"/> 3565</svg> 3566 3567 </a> 3568 3569 <button class="menu-icon menu-icon--search js-site-search__open reset"><svg xmlns="http://www.w3.org/2000/svg" width="16" fill="none" viewBox="0 0 32 32"> 3570 <g stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"> 3571 <path d="M14 24c5.523 0 10-4.477 10-10S19.523 4 14 4 4 8.477 4 14s4.477 10 10 10ZM21.071 21.071 28 28"/> 3572 </g> 3573</svg></button> 3574 3575 <a class="menu-icon menu-icon--account desk-only" href="/account"><svg xmlns="http://www.w3.org/2000/svg" width="16" fill="none" viewBox="0 0 32 32"> 3576 <g stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"> 3577 <path d="M16 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16ZM4 27c2.421-4.184 6.819-7 12-7s9.579 2.816 12 7"/> 3578 </g> 3579</svg></a> 3580 3581 <a class="menu-icon menu-icon--cart js-cart-drawer-trigger" href="/cart"> 3582 <svg xmlns="http://www.w3.org/2000/svg" width="16" fill="none" viewBox="0 0 32 32"> 3583 <g stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2">
3584 <path d="M22.5 23H10.396a2 2 0 0 1-1.967-1.642L5.24 3.82A1 1 0 0 0 4.256 3H2M10.5 28a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM22.5 28a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"/> 3585 <path d="M7.819 18h15.694a2 2 0 0 0 1.967-1.642L27 8H6"/> 3586 </g> 3587</svg> 3588 <span class="cart-count cart-empty"> 3589 <span class="cart-count__count js-cart-count">0</span> 3590 </span> 3591 </a> 3592 </div> 3593 </div> 3594</div> 3595 3596 3597 3598 3599 3600 3601 <div class="mega-menu desk-only " data-menu="modin-lvp"> 3602 <div class="mega-menu__wrap"> 3603 3604 <div class="mega-menu__menu"> 3605 <span class="h3">Modin Luxury Vinyl Plank</span> 3606 3607 3608 3609 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 3610 �<li class=" http_link parent-link "> 3611 <a itemprop="url" 3612 3613 href="/collections/modin-luxury-vinyl-plank" 3614 3615 ><span itemprop="name">Shop Floors</span><span class="custom-badge-new">New</span></a> 3616 �</li> 3617 3618 �<li class=" http_link parent-link "> 3619 <a itemprop="url" 3620 3621 href="/pages/modin-learn-more" 3622 3623 ><span itemprop="name">Meet Modin</span></a> 3624 �</li> 3625 3626 �<li class=" http_link parent-link "> 3627 <a itemprop="url" 3628 3629 href="/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Modin" 3630 3631 ><span itemprop="name">Trim & Stairs</span></a> 3632 �</li> 3633 3634 �<li class=" http_link parent-link "> 3635 <a itemprop="url" 3636 3637 href="/collections/sample-kits" 3638 3639 ><span itemprop="name">Shop Samples</span></a> 3640 �</li> 3641 3642 3643 3644</ul> 3645 3646 3647 3648 3649 3650 </div> 3651 3652 <div class="mega-menu__cards"> 3653 3654 3655 3656 <a class="mmcard mmcard--large" href="/products/nakan"> 3657 3658 <div class="mmcard__tags"> 3659 3660 <span class="mmcard__tag mmcard__tag--1"></span> 3661 3662 3663 <span class="mmcard__tag mmcard__tag--2">Most Popular</span> 3664 3665 </div> 3666 3667 <div class="mmcard__image"> 3668 3669 3670 3671 <img src="//www.flooret.com/cdn/shop/files/1._Nakan_Signature_1.png?v=1769691099&width=600" srcset="//www.flooret.com/cdn/shop/files/1._Nakan_Signature_1.png?v=1769691099&width=352 352w, //www.flooret.com/cdn/shop/files/1._Nakan_Signature_1.png?v=1769691099&width=600 600w" width="600" height="600" loading="lazy" style="object-position:50.9714% 81.3841%;"> 3672 3673 3674 </div> 3675 <div class="mmcard__content"> 3676 3677 <span class="h5">Nakan Signature</span> 3678 3679 3680 3681 3682 3683 <span class="mmcard__cta"></span> 3684 3685 </div> 3686 </a> 3687 3688 3689 3690 3691 <a class="mmcard mmcard--large" href="/products/palka"> 3692 3693 <div class="mmcard__tags"> 3694 3695 <span class="mmcard__tag mmcard__tag--1"></span> 3696 3697 3698 <span class="mmcard__tag mmcard__tag--2"></span> 3699 3700 </div> 3701 3702 <div class="mmcard__image"> 3703 3704 3705 3706 <img src="//www.flooret.com/cdn/shop/files/2._Palka_Signature_1.png?v=1769691134&width=600" srcset="//www.flooret.com/cdn/shop/files/2._Palka_Signature_1.png?v=1769691134&width=352 352w, //www.flooret.com/cdn/shop/files/2._Palka_Signature_1.png?v=1769691134&width=600 600w" width="600" height="600" loading="lazy"> 3707 3708 3709 </div> 3710 <div class="mmcard__content"> 3711 3712 <span class="h5">Palka Signature</span> 3713 3714 3715 3716 3717 3718 <span class="mmcard__cta"></span> 3719 3720 </div> 3721 </a> 3722 3723 3724 3725 3726 <a class="mmcard mmcard--large" href="/products/kingswood"> 3727 3728 <div class="mmcard__tags"> 3729
3730 <span class="mmcard__tag mmcard__tag--1"></span> 3731 3732 3733 <span class="mmcard__tag mmcard__tag--2"></span> 3734 3735 </div> 3736 3737 <div class="mmcard__image"> 3738 3739 3740 3741 <img src="//www.flooret.com/cdn/shop/files/3._Kingswood_Signature_1.png?v=1769691154&width=600" srcset="//www.flooret.com/cdn/shop/files/3._Kingswood_Signature_1.png?v=1769691154&width=352 352w, //www.flooret.com/cdn/shop/files/3._Kingswood_Signature_1.png?v=1769691154&width=600 600w" width="600" height="600" loading="lazy"> 3742 3743 3744 </div> 3745 <div class="mmcard__content"> 3746 3747 <span class="h5">Kingswood Signature</span> 3748 3749 3750 3751 3752 3753 <span class="mmcard__cta"></span> 3754 3755 </div> 3756 </a> 3757 3758 3759 3760 3761 <a class="mmcard mmcard--large" href="https://www.flooret.com/products/sable?variant=49913225773331"> 3762 3763 <div class="mmcard__tags"> 3764 3765 <span class="mmcard__tag mmcard__tag--1"></span> 3766 3767 3768 <span class="mmcard__tag mmcard__tag--2">Farah's Pick</span> 3769 3770 </div> 3771 3772 <div class="mmcard__image"> 3773 3774 3775 3776 <img src="//www.flooret.com/cdn/shop/files/Screenshot_2026-02-25_at_2.39.12_PM.png?v=1772059159&width=600" srcset="//www.flooret.com/cdn/shop/files/Screenshot_2026-02-25_at_2.39.12_PM.png?v=1772059159&width=352 352w, //www.flooret.com/cdn/shop/files/Screenshot_2026-02-25_at_2.39.12_PM.png?v=1772059159&width=600 600w" width="600" height="397" loading="lazy"> 3777 3778 3779 </div> 3780 <div class="mmcard__content"> 3781 3782 <span class="h5">Sable Signature</span> 3783 3784 3785 3786 3787 3788 <span class="mmcard__cta"></span> 3789 3790 </div> 3791 </a> 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 <a class="mmcard text-only" href="https://www.flooret.com/collections/modin-luxury-vinyl-plank"> 3808 <span>Shop All Modin</span> 3809 <svg xmlns="http://www.w3.org/2000/svg" width="11" height="10" viewBox="0 0 11 10" fill="none"> 3810 <path d="M10.5 4.66665L0.5 4.66665M10.5 4.66665L6.33333 8.83331M10.5 4.66665L6.33333 0.49998" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 3811 </svg> 3812 </a> 3813 3814 </div> 3815 </div> 3816 </div> 3817 3818 3819 <div class="mega-menu desk-only " data-menu="arista-laminate"> 3820 <div class="mega-menu__wrap"> 3821 3822 <div class="mega-menu__menu"> 3823 <span class="h3">Arista Laminate</span> 3824 3825 3826 3827 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 3828 �<li class=" http_link parent-link "> 3829 <a itemprop="url" 3830 3831 href="/collections/arista-laminate" 3832 3833 ><span itemprop="name">Shop Floors</span></a> 3834 �</li> 3835 3836 �<li class=" http_link parent-link "> 3837 <a itemprop="url" 3838 3839 href="/pages/arista-laminate" 3840 3841 ><span itemprop="name">Meet Arista</span></a> 3842 �</li> 3843 3844 �<li class=" http_link parent-link "> 3845 <a itemprop="url" 3846 3847 href="/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Arista" 3848 3849 ><span itemprop="name">Trim & Stairs</span></a> 3850 �</li> 3851 3852 �<li class=" http_link parent-link "> 3853 <a itemprop="url" 3854 3855 href="/collections/sample-kits" 3856 3857 ><span itemprop="name">Shop Samples</span></a> 3858 �</li> 3859 3860 3861 3862</ul> 3863 3864 3865 3866 3867 3868 </div> 3869 3870 <div class="mega-menu__cards"> 3871 3872 3873 3874 <a class="mmcard " href="/products/russo-1"> 3875 3876 <div class="mmcard__tags"> 3877
3878 <span class="mmcard__tag mmcard__tag--1"></span> 3879 3880 3881 <span class="mmcard__tag mmcard__tag--2">Bestseller</span> 3882 3883 </div> 3884 3885 <div class="mmcard__image"> 3886 3887 3888 3889 <img src="//www.flooret.com/cdn/shop/files/1._Russo_1.png?v=1769691297&width=600" srcset="//www.flooret.com/cdn/shop/files/1._Russo_1.png?v=1769691297&width=352 352w, //www.flooret.com/cdn/shop/files/1._Russo_1.png?v=1769691297&width=600 600w" width="600" height="600" loading="lazy"> 3890 3891 3892 </div> 3893 <div class="mmcard__content"> 3894 3895 <span class="h5">Russo</span> 3896 3897 3898 3899 3900 3901 <span class="mmcard__cta"></span> 3902 3903 </div> 3904 </a> 3905 3906 3907 3908 3909 <a class="mmcard " href="/products/levant"> 3910 3911 <div class="mmcard__tags"> 3912 3913 <span class="mmcard__tag mmcard__tag--1"></span> 3914 3915 3916 <span class="mmcard__tag mmcard__tag--2"></span> 3917 3918 </div> 3919 3920 <div class="mmcard__image"> 3921 3922 3923 3924 <img src="//www.flooret.com/cdn/shop/files/2._Levant_1.png?v=1769691339&width=600" srcset="//www.flooret.com/cdn/shop/files/2._Levant_1.png?v=1769691339&width=352 352w, //www.flooret.com/cdn/shop/files/2._Levant_1.png?v=1769691339&width=600 600w" width="600" height="600" loading="lazy"> 3925 3926 3927 </div> 3928 <div class="mmcard__content"> 3929 3930 <span class="h5">Levant</span> 3931 3932 3933 3934 3935 3936 <span class="mmcard__cta"></span> 3937 3938 </div> 3939 </a> 3940 3941 3942 3943 3944 <a class="mmcard " href="/products/opera"> 3945 3946 <div class="mmcard__tags"> 3947 3948 <span class="mmcard__tag mmcard__tag--1"></span> 3949 3950 3951 <span class="mmcard__tag mmcard__tag--2"></span> 3952 3953 </div> 3954 3955 <div class="mmcard__image"> 3956 3957 3958 3959 <img src="//www.flooret.com/cdn/shop/files/3._Opera_1.png?v=1769691365&width=600" srcset="//www.flooret.com/cdn/shop/files/3._Opera_1.png?v=1769691365&width=352 352w, //www.flooret.com/cdn/shop/files/3._Opera_1.png?v=1769691365&width=600 600w" width="600" height="600" loading="lazy"> 3960 3961 3962 </div> 3963 <div class="mmcard__content"> 3964 3965 <span class="h5">Opera</span> 3966 3967 3968 3969 3970 3971 <span class="mmcard__cta"></span> 3972 3973 </div> 3974 </a> 3975 3976 3977 3978 3979 <a class="mmcard " href="/products/concorde"> 3980 3981 <div class="mmcard__tags"> 3982 3983 <span class="mmcard__tag mmcard__tag--1"></span> 3984 3985 3986 <span class="mmcard__tag mmcard__tag--2"></span> 3987 3988 </div> 3989 3990 <div class="mmcard__image"> 3991 3992 3993 3994 <img src="//www.flooret.com/cdn/shop/files/4._Concorde_1.png?v=1769691389&width=600" srcset="//www.flooret.com/cdn/shop/files/4._Concorde_1.png?v=1769691389&width=352 352w, //www.flooret.com/cdn/shop/files/4._Concorde_1.png?v=1769691389&width=600 600w" width="600" height="600" loading="lazy"> 3995 3996 3997 </div> 3998 <div class="mmcard__content"> 3999 4000 <span class="h5">Concorde</span> 4001 4002 4003 4004 4005
4006 <span class="mmcard__cta"></span> 4007 4008 </div> 4009 </a> 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 <a class="mmcard text-only" href="https://www.flooret.com/collections/arista-laminate"> 4026 <span>Shop All Arista</span> 4027 <svg xmlns="http://www.w3.org/2000/svg" width="11" height="10" viewBox="0 0 11 10" fill="none"> 4028 <path d="M10.5 4.66665L0.5 4.66665M10.5 4.66665L6.33333 8.83331M10.5 4.66665L6.33333 0.49998" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4029 </svg> 4030 </a> 4031 4032 </div> 4033 </div> 4034 </div> 4035 4036 4037 <div class="mega-menu desk-only " data-menu="silvan-hardwood"> 4038 <div class="mega-menu__wrap"> 4039 4040 <div class="mega-menu__menu"> 4041 <span class="h3">Silvan Resilient Hardwood</span> 4042 4043 4044 4045 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 4046 �<li class=" http_link parent-link "> 4047 <a itemprop="url" 4048 4049 href="/collections/silvan-hardwood" 4050 4051 ><span itemprop="name">Shop Floors</span></a> 4052 �</li> 4053 4054 �<li class=" http_link parent-link "> 4055 <a itemprop="url" 4056 4057 href="/pages/silvan-learn-more" 4058 4059 ><span itemprop="name">Meet Silvan</span></a> 4060 �</li> 4061 4062 �<li class=" http_link parent-link "> 4063 <a itemprop="url" 4064 4065 href="/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Silvan" 4066 4067 ><span itemprop="name">Trim & Stairs</span></a> 4068 �</li> 4069 4070 �<li class=" http_link parent-link "> 4071 <a itemprop="url" 4072 4073 href="/collections/sample-kits" 4074 4075 ><span itemprop="name">Shop Samples</span></a> 4076 �</li> 4077 4078 4079 4080</ul> 4081 4082 4083 4084 4085 4086 </div> 4087 4088 <div class="mega-menu__cards"> 4089 4090 4091 4092 <a class="mmcard " href="/products/anza-7"> 4093 4094 <div class="mmcard__tags"> 4095 4096 <span class="mmcard__tag mmcard__tag--1"></span> 4097 4098 4099 <span class="mmcard__tag mmcard__tag--2"></span> 4100 4101 </div> 4102 4103 <div class="mmcard__image"> 4104 4105 4106 4107 <img src="//www.flooret.com/cdn/shop/files/1._Silvan_Anza_7__1.png?v=1769691423&width=600" srcset="//www.flooret.com/cdn/shop/files/1._Silvan_Anza_7__1.png?v=1769691423&width=352 352w, //www.flooret.com/cdn/shop/files/1._Silvan_Anza_7__1.png?v=1769691423&width=600 600w" width="600" height="600" loading="lazy"> 4108 4109 4110 </div> 4111 <div class="mmcard__content"> 4112 4113 <span class="h5">Silvan Anza 7â</span> 4114 4115 4116 4117 4118 4119 <span class="mmcard__cta"></span> 4120 4121 </div> 4122 </a> 4123 4124 4125 4126 4127 <a class="mmcard " href="/products/balboa"> 4128 4129 <div class="mmcard__tags"> 4130 4131 <span class="mmcard__tag mmcard__tag--1"></span> 4132 4133 4134 <span class="mmcard__tag mmcard__tag--2">Bestseller</span> 4135 4136 </div> 4137 4138 <div class="mmcard__image"> 4139 4140 4141 4142 <img src="//www.flooret.com/cdn/shop/files/2._Silvan_Balboa_7__1.png?v=1769691473&width=600" srcset="//www.flooret.com/cdn/shop/files/2._Silvan_Balboa_7__1.png?v=1769691473&width=352 352w, //www.flooret.com/cdn/shop/files/2._Silvan_Balboa_7__1.png?v=1769691473&width=600 600w" width="600" height="600" loading="lazy" style="object-position:51.7721% 84.1784%;"> 4143 4144 4145 </div> 4146 <div class="mmcard__content"> 4147
4148 <span class="h5">Silvan Balboa 7â</span> 4149 4150 4151 4152 4153 4154 <span class="mmcard__cta"></span> 4155 4156 </div> 4157 </a> 4158 4159 4160 4161 4162 <a class="mmcard " href="/products/norde"> 4163 4164 <div class="mmcard__tags"> 4165 4166 <span class="mmcard__tag mmcard__tag--1"></span> 4167 4168 4169 <span class="mmcard__tag mmcard__tag--2"></span> 4170 4171 </div> 4172 4173 <div class="mmcard__image"> 4174 4175 4176 4177 <img src="//www.flooret.com/cdn/shop/files/3._Silvan_Norde_7__1.png?v=1769691494&width=600" srcset="//www.flooret.com/cdn/shop/files/3._Silvan_Norde_7__1.png?v=1769691494&width=352 352w, //www.flooret.com/cdn/shop/files/3._Silvan_Norde_7__1.png?v=1769691494&width=600 600w" width="600" height="600" loading="lazy"> 4178 4179 4180 </div> 4181 <div class="mmcard__content"> 4182 4183 <span class="h5">Silvan Norde 7â</span> 4184 4185 4186 4187 4188 4189 <span class="mmcard__cta"></span> 4190 4191 </div> 4192 </a> 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 <a class="mmcard text-only" href="https://www.flooret.com/collections/silvan-hardwood"> 4212 <span>Shop All Silvan</span> 4213 <svg xmlns="http://www.w3.org/2000/svg" width="11" height="10" viewBox="0 0 11 10" fill="none"> 4214 <path d="M10.5 4.66665L0.5 4.66665M10.5 4.66665L6.33333 8.83331M10.5 4.66665L6.33333 0.49998" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4215 </svg> 4216 </a> 4217 4218 </div> 4219 </div> 4220 </div> 4221 4222 4223 <div class="mega-menu desk-only " data-menu="flooret-rugs"> 4224 <div class="mega-menu__wrap"> 4225 4226 <div class="mega-menu__menu"> 4227 <span class="h3">Flooret Rugs</span> 4228 4229 4230 4231 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 4232 �<li class=" collection_link parent-link "> 4233 <a itemprop="url" 4234 4235 href="/collections/rugs" 4236 4237 ><span itemprop="name">Shop Rugs</span></a> 4238 �</li> 4239 4240 �<li class=" page_link parent-link "> 4241 <a itemprop="url" 4242 4243 href="/pages/meet-flooret-rugs" 4244 4245 ><span itemprop="name">Meet Rugs</span></a> 4246 �</li> 4247 4248 4249 4250</ul> 4251 4252 4253 4254 4255 4256 </div> 4257 4258 <div class="mega-menu__cards"> 4259 4260 4261 4262 <a class="mmcard " href="https://www.flooret.com/products/encinitas?variant=54445222986003"> 4263 4264 <div class="mmcard__tags"> 4265 4266 <span class="mmcard__tag mmcard__tag--1"></span> 4267 4268 4269 <span class="mmcard__tag mmcard__tag--2"></span> 4270 4271 </div> 4272 4273 <div class="mmcard__image"> 4274 4275 4276 4277 <img src="//www.flooret.com/cdn/shop/files/Encinitas_Clay_Red_8x10_-_Coastal_Great_Room.webp?v=1784696027&width=600" srcset="//www.flooret.com/cdn/shop/files/Encinitas_Clay_Red_8x10_-_Coastal_Great_Room.webp?v=1784696027&width=352 352w, //www.flooret.com/cdn/shop/files/Encinitas_Clay_Red_8x10_-_Coastal_Great_Room.webp?v=1784696027&width=600 600w" width="600" height="750" loading="lazy"> 4278 4279 4280 </div> 4281 <div class="mmcard__content"> 4282 4283 <span class="h5">Encinitas Clay Red</span> 4284 4285 4286 4287 4288 4289 <span class="mmcard__cta"></span> 4290 4291 </div> 4292 </a> 4293 4294 4295 4296 4297 <a class="mmcard " href="https://www.flooret.com/products/oceanside?variant=54445318537491"> 4298 4299 <div class="mmcard__tags"> 4300
4301 <span class="mmcard__tag mmcard__tag--1"></span> 4302 4303 4304 <span class="mmcard__tag mmcard__tag--2"></span> 4305 4306 </div> 4307 4308 <div class="mmcard__image"> 4309 4310 4311 4312 <img src="//www.flooret.com/cdn/shop/files/Oceanside_Deep_Blue_8_x_10_-_Mid-Century_Dining_Room.webp?v=1784697000&width=600" srcset="//www.flooret.com/cdn/shop/files/Oceanside_Deep_Blue_8_x_10_-_Mid-Century_Dining_Room.webp?v=1784697000&width=352 352w, //www.flooret.com/cdn/shop/files/Oceanside_Deep_Blue_8_x_10_-_Mid-Century_Dining_Room.webp?v=1784697000&width=600 600w" width="600" height="750" loading="lazy"> 4313 4314 4315 </div> 4316 <div class="mmcard__content"> 4317 4318 <span class="h5">Oceanside Deep Blue</span> 4319 4320 4321 4322 4323 4324 <span class="mmcard__cta"></span> 4325 4326 </div> 4327 </a> 4328 4329 4330 4331 4332 <a class="mmcard " href="https://www.flooret.com/products/palomar?variant=54445245104403"> 4333 4334 <div class="mmcard__tags"> 4335 4336 <span class="mmcard__tag mmcard__tag--1"></span> 4337 4338 4339 <span class="mmcard__tag mmcard__tag--2"></span> 4340 4341 </div> 4342 4343 <div class="mmcard__image"> 4344 4345 4346 4347 <img src="//www.flooret.com/cdn/shop/files/Palomar_Juniper_Green_8x10_-_Pacific_Northwest_Living_Room.webp?v=1784696753&width=600" srcset="//www.flooret.com/cdn/shop/files/Palomar_Juniper_Green_8x10_-_Pacific_Northwest_Living_Room.webp?v=1784696753&width=352 352w, //www.flooret.com/cdn/shop/files/Palomar_Juniper_Green_8x10_-_Pacific_Northwest_Living_Room.webp?v=1784696753&width=600 600w" width="600" height="750" loading="lazy"> 4348 4349 4350 </div> 4351 <div class="mmcard__content"> 4352 4353 <span class="h5">Palomar Juniper Green</span> 4354 4355 4356 4357 4358 4359 <span class="mmcard__cta"></span> 4360 4361 </div> 4362 </a> 4363 4364 4365 4366 4367 <a class="mmcard " href="https://www.flooret.com/products/del-mar?variant=54445329776915"> 4368 4369 <div class="mmcard__tags"> 4370 4371 <span class="mmcard__tag mmcard__tag--1"></span> 4372 4373 4374 <span class="mmcard__tag mmcard__tag--2"></span> 4375 4376 </div> 4377 4378 <div class="mmcard__image"> 4379 4380 4381 4382 <img src="//www.flooret.com/cdn/shop/files/Del_Mar_Soft_Creme_8_x_10_-_New_England_Cottage_Dining_Room.webp?v=1784697119&width=600" srcset="//www.flooret.com/cdn/shop/files/Del_Mar_Soft_Creme_8_x_10_-_New_England_Cottage_Dining_Room.webp?v=1784697119&width=352 352w, //www.flooret.com/cdn/shop/files/Del_Mar_Soft_Creme_8_x_10_-_New_England_Cottage_Dining_Room.webp?v=1784697119&width=600 600w" width="600" height="750" loading="lazy"> 4383 4384 4385 </div> 4386 <div class="mmcard__content"> 4387 4388 <span class="h5">Del Mar Soft Creme</span> 4389 4390 4391 4392 4393 4394 <span class="mmcard__cta"></span> 4395 4396 </div> 4397 </a> 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 <a class="mmcard text-only" href="/collections/rugs"> 4414 <span>Shop All Rugs</span> 4415 <svg xmlns="http://www.w3.org/2000/svg" width="11" height="10" viewBox="0 0 11 10" fill="none"> 4416 <path d="M10.5 4.66665L0.5 4.66665M10.5 4.66665L6.33333 8.83331M10.5 4.66665L6.33333 0.49998" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4417 </svg> 4418 </a> 4419 4420 </div> 4421 </div> 4422 </div> 4423 4424 4425 <div class="mega-menu desk-only " data-menu="trim-stairs"> 4426 <div class="mega-menu__wrap"> 4427 4428 <div class="mega-menu__menu">
4429 <span class="h3">Trim & Stair Solutions</span> 4430 4431 4432 4433 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 4434 �<li class=" product_link parent-link "> 4435 <a itemprop="url" 4436 4437 href="/products/truestep-stair-treads" 4438 4439 ><span itemprop="name">TrueStep⢠LVP Stair Tread </span></a> 4440 �</li> 4441 4442 �<li class=" http_link parent-link "> 4443 <a itemprop="url" 4444 4445 href="https://www.flooret.com/collections/trueplank-stair-nosings" 4446 4447 ><span itemprop="name">TruePlank ⢠LVP Stair Nosing</span></a> 4448 �</li> 4449 4450 �<li class=" http_link parent-link "> 4451 <a itemprop="url" 4452 4453 href="https://www.flooret.com/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Modin" 4454 4455 ><span itemprop="name">Modin LVP Trim & Stairs</span></a> 4456 �</li> 4457 4458 �<li class=" http_link parent-link "> 4459 <a itemprop="url" 4460 4461 href="https://www.flooret.com/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Silvan" 4462 4463 ><span itemprop="name">Silvan Resilient Hardwood Trim & Stairs</span></a> 4464 �</li> 4465 4466 �<li class=" http_link parent-link "> 4467 <a itemprop="url" 4468 4469 href="https://www.flooret.com/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Arista" 4470 4471 ><span itemprop="name">Arista Laminate Trim & Stairs</span></a> 4472 �</li> 4473 4474 4475 4476</ul> 4477 4478 4479 4480 4481 4482 </div> 4483 4484 <div class="mega-menu__cards"> 4485 4486 4487 4488 <a class="mmcard " href="https://www.flooret.com/pages/meet-trueplank-truestep?_pos=1&_psq=tru&_psid=d17060643&_ss=e"> 4489 4490 <div class="mmcard__tags"> 4491 4492 <span class="mmcard__tag mmcard__tag--1"></span> 4493 4494 4495 <span class="mmcard__tag mmcard__tag--2">Bestseller</span> 4496 4497 </div> 4498 4499 <div class="mmcard__image"> 4500 4501 4502 4503 <img src="//www.flooret.com/cdn/shop/files/TrueStep_TruePlank_1000x1000_dab7a425-a3b2-4d1c-904e-4f7a27fe973a.webp?v=1776698858&width=600" srcset="//www.flooret.com/cdn/shop/files/TrueStep_TruePlank_1000x1000_dab7a425-a3b2-4d1c-904e-4f7a27fe973a.webp?v=1776698858&width=352 352w, //www.flooret.com/cdn/shop/files/TrueStep_TruePlank_1000x1000_dab7a425-a3b2-4d1c-904e-4f7a27fe973a.webp?v=1776698858&width=600 600w" width="600" height="600" loading="lazy" style="object-position:28.2855% 35.8908%;"> 4504 4505 4506 </div> 4507 <div class="mmcard__content"> 4508 4509 <span class="h5">TruePlank⢠& TrueStep⢠<br> Stair Solutions</span> 4510 4511 4512 4513 4514 4515 <span class="mmcard__cta"></span> 4516 4517 </div> 4518 </a> 4519 4520 4521 4522 4523 <a class="mmcard " href="https://www.flooret.com/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Modin"> 4524 4525 <div class="mmcard__tags"> 4526 4527 <span class="mmcard__tag mmcard__tag--1"></span> 4528 4529 4530 <span class="mmcard__tag mmcard__tag--2"></span> 4531 4532 </div> 4533 4534 <div class="mmcard__image"> 4535 4536 4537 4538 <img src="//www.flooret.com/cdn/shop/files/endcap-1.jpg?v=1759500100&width=600" srcset="//www.flooret.com/cdn/shop/files/endcap-1.jpg?v=1759500100&width=352 352w, //www.flooret.com/cdn/shop/files/endcap-1.jpg?v=1759500100&width=600 600w" width="600" height="683" loading="lazy"> 4539 4540 4541 </div> 4542 <div class="mmcard__content"> 4543 4544 <span class="h5">Modin LVP Trim & Stairs</span> 4545 4546 4547 4548 4549
4550 <span class="mmcard__cta"></span> 4551 4552 </div> 4553 </a> 4554 4555 4556 4557 4558 <a class="mmcard " href="https://www.flooret.com/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Silvan"> 4559 4560 <div class="mmcard__tags"> 4561 4562 <span class="mmcard__tag mmcard__tag--1"></span> 4563 4564 4565 <span class="mmcard__tag mmcard__tag--2"></span> 4566 4567 </div> 4568 4569 <div class="mmcard__image"> 4570 4571 4572 4573 <img src="//www.flooret.com/cdn/shop/files/Norde_End_Cap_1.png?v=1775492661&width=600" srcset="//www.flooret.com/cdn/shop/files/Norde_End_Cap_1.png?v=1775492661&width=352 352w, //www.flooret.com/cdn/shop/files/Norde_End_Cap_1.png?v=1775492661&width=600 600w" width="600" height="600" loading="lazy"> 4574 4575 4576 </div> 4577 <div class="mmcard__content"> 4578 4579 <span class="h5">Silvan Resilient Hardwood Trim & Stairs</span> 4580 4581 4582 4583 4584 4585 <span class="mmcard__cta"></span> 4586 4587 </div> 4588 </a> 4589 4590 4591 4592 4593 <a class="mmcard " href="https://www.flooret.com/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Arista"> 4594 4595 <div class="mmcard__tags"> 4596 4597 <span class="mmcard__tag mmcard__tag--1"></span> 4598 4599 4600 <span class="mmcard__tag mmcard__tag--2"></span> 4601 4602 </div> 4603 4604 <div class="mmcard__image"> 4605 4606 4607 4608 <img src="//www.flooret.com/cdn/shop/files/NosingRound_Levant_top_2000x_c81f38f3-8b4c-45cc-9e50-6e0163075d2a.jpg?v=1759500127&width=600" srcset="//www.flooret.com/cdn/shop/files/NosingRound_Levant_top_2000x_c81f38f3-8b4c-45cc-9e50-6e0163075d2a.jpg?v=1759500127&width=352 352w, //www.flooret.com/cdn/shop/files/NosingRound_Levant_top_2000x_c81f38f3-8b4c-45cc-9e50-6e0163075d2a.jpg?v=1759500127&width=600 600w" width="600" height="600" loading="lazy"> 4609 4610 4611 </div> 4612 <div class="mmcard__content"> 4613 4614 <span class="h5">Arista Laminate Trim & Stairs</span> 4615 4616 4617 4618 4619 4620 <span class="mmcard__cta"></span> 4621 4622 </div> 4623 </a> 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 <a class="mmcard text-only" href="/collections/trim-accessories"> 4640 <span>Shop All Trim</span> 4641 <svg xmlns="http://www.w3.org/2000/svg" width="11" height="10" viewBox="0 0 11 10" fill="none"> 4642 <path d="M10.5 4.66665L0.5 4.66665M10.5 4.66665L6.33333 8.83331M10.5 4.66665L6.33333 0.49998" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4643 </svg> 4644 </a> 4645 4646 </div> 4647 </div> 4648 </div> 4649 4650 4651 <div class="mega-menu desk-only only-image-grid" data-menu="collaborations"> 4652 <div class="mega-menu__wrap"> 4653 4654 <div class="mega-menu__cards"> 4655 4656 4657 4658 <a class="mmcard " href="https://www.flooret.com/pages/flooret-x-jungalow?_pos=1&_psq=jungalo&_psid=d53d00a25&_ss=e"> 4659 4660 <div class="mmcard__tags"> 4661 4662 <span class="mmcard__tag mmcard__tag--1"></span> 4663 4664 4665 <span class="mmcard__tag mmcard__tag--2"></span> 4666 4667 </div> 4668 4669 <div class="mmcard__image"> 4670 4671 4672 4673 <img src="//www.flooret.com/cdn/shop/files/Jungalow_1.webp?v=1790287853&width=600" srcset="//www.flooret.com/cdn/shop/files/Jungalow_1.webp?v=1790287853&width=352 352w, //www.flooret.com/cdn/shop/files/Jungalow_1.webp?v=1790287853&width=600 600w" width="600" height="599" loading="lazy"> 4674 4675 4676 </div> 4677 <div class="mmcard__content"> 4678
4679 <span class="h5">Jungalow</span> 4680 4681 4682 4683 4684 4685 <span class="mmcard__cta"></span> 4686 4687 </div> 4688 </a> 4689 4690 4691 4692 4693 <a class="mmcard " href="https://www.flooret.com/pages/tailored-by-tails"> 4694 4695 <div class="mmcard__tags"> 4696 4697 <span class="mmcard__tag mmcard__tag--1"></span> 4698 4699 4700 <span class="mmcard__tag mmcard__tag--2"></span> 4701 4702 </div> 4703 4704 <div class="mmcard__image"> 4705 4706 4707 4708 <img src="//www.flooret.com/cdn/shop/files/Hamm_x_Olivia_Collab_Thumbnail.jpg?v=1782152353&width=600" srcset="//www.flooret.com/cdn/shop/files/Hamm_x_Olivia_Collab_Thumbnail.jpg?v=1782152353&width=352 352w, //www.flooret.com/cdn/shop/files/Hamm_x_Olivia_Collab_Thumbnail.jpg?v=1782152353&width=600 600w" width="600" height="599" loading="lazy"> 4709 4710 4711 </div> 4712 <div class="mmcard__content"> 4713 4714 <span class="h5">Hammy & Olivia</span> 4715 4716 4717 4718 4719 4720 <span class="mmcard__cta"></span> 4721 4722 </div> 4723 </a> 4724 4725 4726 4727 4728 <a class="mmcard " href="https://www.flooret.com/pages/flooret-x-farah-merhi"> 4729 4730 <div class="mmcard__tags"> 4731 4732 <span class="mmcard__tag mmcard__tag--1"></span> 4733 4734 4735 <span class="mmcard__tag mmcard__tag--2"></span> 4736 4737 </div> 4738 4739 <div class="mmcard__image"> 4740 4741 4742 4743 <img src="//www.flooret.com/cdn/shop/files/Farah_Collaborations_Nav_Menu_Image_1.png?v=1772083822&width=600" srcset="//www.flooret.com/cdn/shop/files/Farah_Collaborations_Nav_Menu_Image_1.png?v=1772083822&width=352 352w, //www.flooret.com/cdn/shop/files/Farah_Collaborations_Nav_Menu_Image_1.png?v=1772083822&width=600 600w" width="600" height="599" loading="lazy"> 4744 4745 4746 </div> 4747 <div class="mmcard__content"> 4748 4749 <span class="h5">Farah Merhi</span> 4750 4751 4752 4753 4754 4755 <span class="mmcard__cta"></span> 4756 4757 </div> 4758 </a> 4759 4760 4761 4762 4763 <a class="mmcard " href="https://www.flooret.com/pages/flooret-x-oakavehouse"> 4764 4765 <div class="mmcard__tags"> 4766 4767 <span class="mmcard__tag mmcard__tag--1"></span> 4768 4769 4770 <span class="mmcard__tag mmcard__tag--2"></span> 4771 4772 </div> 4773 4774 <div class="mmcard__image"> 4775 4776 4777 4778 <img src="//www.flooret.com/cdn/shop/files/Oak_Ave_House_1.png?v=1769692429&width=600" srcset="//www.flooret.com/cdn/shop/files/Oak_Ave_House_1.png?v=1769692429&width=352 352w, //www.flooret.com/cdn/shop/files/Oak_Ave_House_1.png?v=1769692429&width=600 600w" width="600" height="600" loading="lazy"> 4779 4780 4781 </div> 4782 <div class="mmcard__content"> 4783 4784 <span class="h5">Oak Ave House</span> 4785 4786 4787 4788 4789 4790 <span class="mmcard__cta"></span> 4791 4792 </div> 4793 </a> 4794 4795 4796 4797 4798 <a class="mmcard " href="https://www.flooret.com/pages/flooret-x-rene-ceretto-landing-page?_pos=1&_psq=rene&_psid=3cab8d56f&_ss=e"> 4799 4800 <div class="mmcard__tags"> 4801 4802 <span class="mmcard__tag mmcard__tag--1"></span> 4803 4804
4805 <span class="mmcard__tag mmcard__tag--2"></span> 4806 4807 </div> 4808 4809 <div class="mmcard__image"> 4810 4811 4812 4813 <img src="//www.flooret.com/cdn/shop/files/Pleasantly_Built_1.png?v=1769692435&width=600" srcset="//www.flooret.com/cdn/shop/files/Pleasantly_Built_1.png?v=1769692435&width=352 352w, //www.flooret.com/cdn/shop/files/Pleasantly_Built_1.png?v=1769692435&width=600 600w" width="600" height="600" loading="lazy"> 4814 4815 4816 </div> 4817 <div class="mmcard__content"> 4818 4819 <span class="h5">Pleasantly Built</span> 4820 4821 4822 4823 4824 4825 <span class="mmcard__cta"></span> 4826 4827 </div> 4828 </a> 4829 4830 4831 4832 4833 4834 4835 4836 <a class="mmcard " href="https://www.flooret.com/pages/flooret-before-and-after-transformations?_pos=1&_psq=transfo&_psid=2551948ee&_ss=e"> 4837 4838 <div class="mmcard__tags"> 4839 4840 <span class="mmcard__tag mmcard__tag--1"></span> 4841 4842 4843 <span class="mmcard__tag mmcard__tag--2"></span> 4844 4845 </div> 4846 4847 <div class="mmcard__image"> 4848 4849 4850 4851 <img src="//www.flooret.com/cdn/shop/files/Transformations.png?v=1788271901&width=600" srcset="//www.flooret.com/cdn/shop/files/Transformations.png?v=1788271901&width=352 352w, //www.flooret.com/cdn/shop/files/Transformations.png?v=1788271901&width=600 600w" width="600" height="600" loading="lazy"> 4852 4853 4854 </div> 4855 <div class="mmcard__content"> 4856 4857 <span class="h5">Before & After <br>Transformations</span> 4858 4859 4860 4861 4862 4863 <span class="mmcard__cta"></span> 4864 4865 </div> 4866 </a> 4867 4868 4869 4870 4871 <a class="mmcard " href="https://www.flooret.com/pages/dallas-mavericks"> 4872 4873 <div class="mmcard__tags"> 4874 4875 <span class="mmcard__tag mmcard__tag--1"></span> 4876 4877 4878 <span class="mmcard__tag mmcard__tag--2"></span> 4879 4880 </div> 4881 4882 <div class="mmcard__image"> 4883 4884 4885 4886 <img src="//www.flooret.com/cdn/shop/files/Dallas_Mavericks_1.png?v=1769692448&width=600" srcset="//www.flooret.com/cdn/shop/files/Dallas_Mavericks_1.png?v=1769692448&width=352 352w, //www.flooret.com/cdn/shop/files/Dallas_Mavericks_1.png?v=1769692448&width=600 600w" width="600" height="600" loading="lazy"> 4887 4888 4889 </div> 4890 <div class="mmcard__content"> 4891 4892 <span class="h5">Dallas Mavericks</span> 4893 4894 4895 4896 4897 4898 <span class="mmcard__cta"></span> 4899 4900 </div> 4901 </a> 4902 4903 4904 4905 </div> 4906 </div> 4907 </div> 4908 4909 4910 <div class="mega-menu desk-only only-image-grid" data-menu="resources"> 4911 <div class="mega-menu__wrap"> 4912 4913 <div class="mega-menu__cards"> 4914 4915 4916 4917 <a class="mmcard " href="/pages/technical-documents"> 4918 4919 <div class="mmcard__tags"> 4920 4921 <span class="mmcard__tag mmcard__tag--1"></span> 4922 4923 4924 <span class="mmcard__tag mmcard__tag--2"></span> 4925 4926 </div> 4927 4928 <div class="mmcard__image"> 4929 4930 4931 4932 <img src="//www.flooret.com/cdn/shop/files/xif7cfgnfzhzskhp1c1o.webp?v=1770046340&width=600" srcset="//www.flooret.com/cdn/shop/files/xif7cfgnfzhzskhp1c1o.webp?v=1770046340&width=352 352w, //www.flooret.com/cdn/shop/files/xif7cfgnfzhzskhp1c1o.webp?v=1770046340&width=600 600w" width="600" height="600" loading="lazy"> 4933 4934 4935 </div> 4936 <div class="mmcard__content"> 4937
4938 <span class="h5">Technical Documents</span> 4939 4940 4941 4942 4943 4944 <span class="mmcard__cta"></span> 4945 4946 </div> 4947 </a> 4948 4949 4950 4951 4952 <a class="mmcard " href="/pages/shipping"> 4953 4954 <div class="mmcard__tags"> 4955 4956 <span class="mmcard__tag mmcard__tag--1"></span> 4957 4958 4959 <span class="mmcard__tag mmcard__tag--2"></span> 4960 4961 </div> 4962 4963 <div class="mmcard__image"> 4964 4965 4966 4967 <img src="//www.flooret.com/cdn/shop/files/rz5zz67phgxwnliajwg3.webp?v=1770046340&width=600" srcset="//www.flooret.com/cdn/shop/files/rz5zz67phgxwnliajwg3.webp?v=1770046340&width=352 352w, //www.flooret.com/cdn/shop/files/rz5zz67phgxwnliajwg3.webp?v=1770046340&width=600 600w" width="600" height="600" loading="lazy"> 4968 4969 4970 </div> 4971 <div class="mmcard__content"> 4972 4973 <span class="h5">Shipping</span> 4974 4975 4976 4977 4978 4979 <span class="mmcard__cta"></span> 4980 4981 </div> 4982 </a> 4983 4984 4985 4986 4987 <a class="mmcard " href="https://support.flooret.com/"> 4988 4989 <div class="mmcard__tags"> 4990 4991 <span class="mmcard__tag mmcard__tag--1"></span> 4992 4993 4994 <span class="mmcard__tag mmcard__tag--2"></span> 4995 4996 </div> 4997 4998 <div class="mmcard__image"> 4999 5000 5001 5002 <img src="//www.flooret.com/cdn/shop/files/grw9hvgobii68ofxibk2.webp?v=1770046349&width=600" srcset="//www.flooret.com/cdn/shop/files/grw9hvgobii68ofxibk2.webp?v=1770046349&width=352 352w, //www.flooret.com/cdn/shop/files/grw9hvgobii68ofxibk2.webp?v=1770046349&width=600 600w" width="600" height="600" loading="lazy"> 5003 5004 5005 </div> 5006 <div class="mmcard__content"> 5007 5008 <span class="h5">FAQs</span> 5009 5010 5011 5012 5013 5014 <span class="mmcard__cta"></span> 5015 5016 </div> 5017 </a> 5018 5019 5020 5021 5022 <a class="mmcard " href="https://www.flooret.com/pages/ten-year-anniversary"> 5023 5024 <div class="mmcard__tags"> 5025 5026 <span class="mmcard__tag mmcard__tag--1"></span> 5027 5028 5029 <span class="mmcard__tag mmcard__tag--2"></span> 5030 5031 </div> 5032 5033 <div class="mmcard__image"> 5034 5035 5036 5037 <img src="//www.flooret.com/cdn/shop/files/10_Years_of_Flooret.png?v=1779944098&width=600" srcset="//www.flooret.com/cdn/shop/files/10_Years_of_Flooret.png?v=1779944098&width=352 352w, //www.flooret.com/cdn/shop/files/10_Years_of_Flooret.png?v=1779944098&width=600 600w" width="600" height="600" loading="lazy"> 5038 5039 5040 </div> 5041 <div class="mmcard__content"> 5042 5043 <span class="h5">10 Years of Flooret</span> 5044 5045 5046 5047 5048 5049 <span class="mmcard__cta"></span> 5050 5051 </div> 5052 </a> 5053 5054 5055 5056 5057 <a class="mmcard " href="/blogs/all"> 5058 5059 <div class="mmcard__tags"> 5060 5061 <span class="mmcard__tag mmcard__tag--1"></span> 5062 5063 5064 <span class="mmcard__tag mmcard__tag--2"></span> 5065 5066 </div> 5067 5068 <div class="mmcard__image"> 5069 5070 5071 5072 <img src="//www.flooret.com/cdn/shop/files/fp2awnfc4uyxaq5oeayr.webp?v=1770046349&width=600" srcset="//www.flooret.com/cdn/shop/files/fp2awnfc4uyxaq5oeayr.webp?v=1770046349&width=352 352w, //www.flooret.com/cdn/shop/files/fp2awnfc4uyxaq5oeayr.webp?v=1770046349&width=600 600w" width="600" height="600" loading="lazy"> 5073 5074 5075 </div> 5076 <div class="mmcard__content"> 5077
5078 <span class="h5">Blogs</span> 5079 5080 5081 5082 5083 5084 <span class="mmcard__cta"></span> 5085 5086 </div> 5087 </a> 5088 5089 5090 5091 5092 <a class="mmcard " href="/collections/inspiration"> 5093 5094 <div class="mmcard__tags"> 5095 5096 <span class="mmcard__tag mmcard__tag--1"></span> 5097 5098 5099 <span class="mmcard__tag mmcard__tag--2"></span> 5100 5101 </div> 5102 5103 <div class="mmcard__image"> 5104 5105 5106 5107 <img src="//www.flooret.com/cdn/shop/files/pnvsws32e5fop0c70umm.webp?v=1770046349&width=600" srcset="//www.flooret.com/cdn/shop/files/pnvsws32e5fop0c70umm.webp?v=1770046349&width=352 352w, //www.flooret.com/cdn/shop/files/pnvsws32e5fop0c70umm.webp?v=1770046349&width=600 600w" width="600" height="600" loading="lazy"> 5108 5109 5110 </div> 5111 <div class="mmcard__content"> 5112 5113 <span class="h5">Gallery</span> 5114 5115 5116 5117 5118 5119 <span class="mmcard__cta"></span> 5120 5121 </div> 5122 </a> 5123 5124 5125 5126 5127 <a class="mmcard " href="https://www.flooret.com/pages/referral-program"> 5128 5129 <div class="mmcard__tags"> 5130 5131 <span class="mmcard__tag mmcard__tag--1"></span> 5132 5133 5134 <span class="mmcard__tag mmcard__tag--2"></span> 5135 5136 </div> 5137 5138 <div class="mmcard__image"> 5139 5140 5141 5142 <img src="//www.flooret.com/cdn/shop/files/Referral_Program.png?v=1779944195&width=600" srcset="//www.flooret.com/cdn/shop/files/Referral_Program.png?v=1779944195&width=352 352w, //www.flooret.com/cdn/shop/files/Referral_Program.png?v=1779944195&width=600 600w" width="600" height="600" loading="lazy"> 5143 5144 5145 </div> 5146 <div class="mmcard__content"> 5147 5148 <span class="h5">Referral Program</span> 5149 5150 5151 5152 5153 5154 <span class="mmcard__cta"></span> 5155 5156 </div> 5157 </a> 5158 5159 5160 5161 5162 <a class="mmcard " href="https://www.flooret.com/pages/find-an-installer"> 5163 5164 <div class="mmcard__tags"> 5165 5166 <span class="mmcard__tag mmcard__tag--1"></span> 5167 5168 5169 <span class="mmcard__tag mmcard__tag--2"></span> 5170 5171 </div> 5172 5173 <div class="mmcard__image"> 5174 5175 5176 5177 <img src="//www.flooret.com/cdn/shop/files/6._Find_an_Installer_1.png?v=1770008501&width=600" srcset="//www.flooret.com/cdn/shop/files/6._Find_an_Installer_1.png?v=1770008501&width=352 352w, //www.flooret.com/cdn/shop/files/6._Find_an_Installer_1.png?v=1770008501&width=600 600w" width="600" height="600" loading="lazy"> 5178 5179 5180 </div> 5181 <div class="mmcard__content"> 5182 5183 <span class="h5">Find an Installer</span> 5184 5185 5186 5187 5188 5189 <span class="mmcard__cta"></span> 5190 5191 </div> 5192 </a> 5193 5194 5195 5196 </div> 5197 </div> 5198 </div> 5199 5200 5201 5202 5203 <div class="mega-menu desk-only two-menus" data-menu="sample-kits"> 5204 <div class="mega-menu__wrap"> 5205 <div class="mega-menu__menu"> 5206 <div class="one-wrap"> 5207 <span class="h3">Sample Kits</span> 5208 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 5209 �<li class=" http_link parent-link "> 5210 <a itemprop="url" 5211 5212 href="/products/modin-lvp-signature-bestsellers-sample-kit" 5213 5214 ><span itemprop="name">Modin LVP Signature Bestsellers Kits</span></a> 5215 �</li> 5216 5217 �<li class=" product_link parent-link "> 5218 <a itemprop="url" 5219 5220 href="/products/modin-lvp-bestsellers-kits" 5221 5222 ><span itemprop="name">All Modin LVP Bestsellers Kits</span></a> 5223 �</li> 5224 5225 �<li class=" collection_link parent-link "> 5226 <a itemprop="url" 5227 5228 href="/collections/sample-kits" 5229 5230 ><span itemprop="name">All Sample Kits</span></a> 5231 �</li> 5232 5233 �<li class=" page_link parent-link "> 5234 <a itemprop="url" 5235 5236 href="/pages/sample-rewards-by-flooret" 5237 5238 ><span itemprop="name">Sample Rewards</span></a> 5239 �</li> 5240 5241 5242 5243</ul> 5244 5245 5246 5247 5248 5249 </div> 5250 <div class="two-wrap">
5251 <span class="h3 ">Comparison Kits 5252 5253 </span> 5254 5255 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 5256 �<li class=" http_link parent-link "> 5257 <a itemprop="url" 5258 5259 href="/products/modin-lvp-model-comparison-sample-kit" 5260 5261 ><span itemprop="name">Model Comparison Kits</span></a> 5262 �</li> 5263 5264 �<li class=" http_link parent-link "> 5265 <a itemprop="url" 5266 5267 href="/products/modin-lvp-2-model-comparison-kit" 5268 5269 ><span itemprop="name">2 Model Comparison Kits</span></a> 5270 �</li> 5271 5272 �<li class=" http_link parent-link "> 5273 <a itemprop="url" 5274 5275 href="/products/modin-lvp-3-model-comparison-kit" 5276 5277 ><span itemprop="name">3 Model Comparison Kits</span></a> 5278 �</li> 5279 5280 �<li class=" product_link parent-link "> 5281 <a itemprop="url" 5282 5283 href="/products/modin-lvp-4-model-comparison-kit" 5284 5285 ><span itemprop="name">4 Model Comparison Kits</span></a> 5286 �</li> 5287 5288 5289 5290</ul> 5291 5292 5293 5294 5295 5296 </div> 5297 </div> 5298 <div class="mega-menu__cards four-tiles"> 5299 5300 5301 5302 <a class="mmcard " href="/products/modin-lvp-signature-bestsellers-sample-kit"> 5303 5304 <div class="mmcard__tags"> 5305 5306 <span class="mmcard__tag mmcard__tag--1"></span> 5307 5308 5309 <span class="mmcard__tag mmcard__tag--2"></span> 5310 5311 </div> 5312 5313 <div class="mmcard__image"> 5314 5315 5316 5317 <img src="//www.flooret.com/cdn/shop/files/1._Signature_Bestsellers_Kit_1.png?v=1769691885&width=1100" srcset="//www.flooret.com/cdn/shop/files/1._Signature_Bestsellers_Kit_1.png?v=1769691885&width=352 352w, //www.flooret.com/cdn/shop/files/1._Signature_Bestsellers_Kit_1.png?v=1769691885&width=832 832w, //www.flooret.com/cdn/shop/files/1._Signature_Bestsellers_Kit_1.png?v=1769691885&width=1100 1100w" width="1100" height="1100" loading="lazy"> 5318 5319 5320 </div> 5321 <div class="mmcard__content"> 5322 5323 <span class="h5">Modin LVP Signature Bestsellers Kits</span> 5324 5325 5326 <span class="mmcard__cta"></span> 5327 5328 </div> 5329 </a> 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 <a class="mmcard " href="https://www.flooret.com/products/modin-lvp-bestsellers-kits?variant=54552912888083"> 5349 5350 <div class="mmcard__tags"> 5351 5352 <span class="mmcard__tag mmcard__tag--1"></span> 5353 5354 5355 <span class="mmcard__tag mmcard__tag--2"></span> 5356 5357 </div> 5358 5359 <div class="mmcard__image"> 5360 5361 5362 5363 <img src="//www.flooret.com/cdn/shop/files/Base_Bestsellers_Sample_Kit.webp?v=1767810030&width=1100" srcset="//www.flooret.com/cdn/shop/files/Base_Bestsellers_Sample_Kit.webp?v=1767810030&width=352 352w, //www.flooret.com/cdn/shop/files/Base_Bestsellers_Sample_Kit.webp?v=1767810030&width=832 832w, //www.flooret.com/cdn/shop/files/Base_Bestsellers_Sample_Kit.webp?v=1767810030&width=1100 1100w" width="1100" height="1100" loading="lazy"> 5364 5365 5366 </div> 5367 <div class="mmcard__content"> 5368 5369 <span class="h5">Modin LVP Bestsellers Sample Kits</span> 5370 5371 5372 <span class="mmcard__cta"></span> 5373 5374 </div> 5375 </a> 5376 5377 5378 5379 5380 5381 5382 <a class="mmcard " href="https://www.flooret.com/products/arista-laminate-bestsellers-sample-kits?variant=54552916394259"> 5383 5384 <div class="mmcard__tags"> 5385
5386 <span class="mmcard__tag mmcard__tag--1"></span> 5387 5388 5389 <span class="mmcard__tag mmcard__tag--2"></span> 5390 5391 </div> 5392 5393 <div class="mmcard__image"> 5394 5395 5396 5397 <img src="//www.flooret.com/cdn/shop/files/3.New_Arista_Laminate_Bestsellers_Sample_Kit.webp?v=1767810245&width=1100" srcset="//www.flooret.com/cdn/shop/files/3.New_Arista_Laminate_Bestsellers_Sample_Kit.webp?v=1767810245&width=352 352w, //www.flooret.com/cdn/shop/files/3.New_Arista_Laminate_Bestsellers_Sample_Kit.webp?v=1767810245&width=832 832w, //www.flooret.com/cdn/shop/files/3.New_Arista_Laminate_Bestsellers_Sample_Kit.webp?v=1767810245&width=1100 1100w" width="1100" height="1100" loading="lazy"> 5398 5399 5400 </div> 5401 <div class="mmcard__content"> 5402 5403 <span class="h5">Arista Laminate Bestsellers Kit</span> 5404 5405 5406 <span class="mmcard__cta"></span> 5407 5408 </div> 5409 </a> 5410 5411 5412 5413 5414 5415 5416 <a class="mmcard " href="https://www.flooret.com/products/silvan-resilient-hardwood-bestsellers-sample-kits?variant=54552915116307"> 5417 5418 <div class="mmcard__tags"> 5419 5420 <span class="mmcard__tag mmcard__tag--1"></span> 5421 5422 5423 <span class="mmcard__tag mmcard__tag--2"></span> 5424 5425 </div> 5426 5427 <div class="mmcard__image"> 5428 5429 5430 5431 <img src="//www.flooret.com/cdn/shop/files/Bestsellers_Sample_Kits_Silvan_7__Hardwood_Bestsellers_Sample_KitNEW.webp?v=1782422189&width=1100" srcset="//www.flooret.com/cdn/shop/files/Bestsellers_Sample_Kits_Silvan_7__Hardwood_Bestsellers_Sample_KitNEW.webp?v=1782422189&width=352 352w, //www.flooret.com/cdn/shop/files/Bestsellers_Sample_Kits_Silvan_7__Hardwood_Bestsellers_Sample_KitNEW.webp?v=1782422189&width=832 832w, //www.flooret.com/cdn/shop/files/Bestsellers_Sample_Kits_Silvan_7__Hardwood_Bestsellers_Sample_KitNEW.webp?v=1782422189&width=1100 1100w" width="1100" height="1100" loading="lazy"> 5432 5433 5434 </div> 5435 <div class="mmcard__content"> 5436 5437 <span class="h5">Silvan Hardwood Bestsellers Kits</span> 5438 5439 5440 <span class="mmcard__cta"></span> 5441 5442 </div> 5443 </a> 5444 5445 5446 5447 5448 5449 5450 5451 </div> 5452 </div> 5453 </div> 5454 5455 5456 5457
5458<script> 5459 // Redirect mega-menu button to its inner <a href="..."> 5460document.addEventListener('click', (e) => { 5461 const btn = e.target.closest('button.mega-menu-button'); 5462 if (!btn) return; 5463 5464 const link = btn.querySelector('a[href]'); 5465 if (!link) return; 5466 5467 // If your mega menu uses this button to toggle a dropdown, this will override that behavior. 5468 // If you only want redirect in some cases, add conditions here. 5469 window.location.href = link.href; 5470}); 5471 5472</script>
5472 5473 5474<style> 5475 .menu-dropdown { 5476 position: relative; /* For absolute positioning of dropdown */ 5477 } 5478 5479 .dropdown-menu { 5480 display: none; /* Initially hidden */ 5481 opacity: 0; /* For fade effect */ 5482 max-height: 0; /* For slide effect */ 5483 overflow: hidden; /* Hide content during animation */ 5484 transition: opacity 0.2s ease, max-height 0.2s ease; /* Animation duration */ 5485 position: absolute; /* Position below main item */ 5486 background-color: white; 5487 border: 1px solid #ccc; 5488 z-index: 1000; 5489 min-width: 200px; 5490 /* Add padding/margin as needed */ 5491 } 5492 5493 .dropdown-menu li { 5494 margin-bottom: 5px; 5495 } 5496 5497 .dropdown-menu a { 5498 text-decoration: none; 5499 color: black; 5500 } 5501 5502 .dropdown-menu a:hover { 5503 text-decoration: underline; 5504 } 5505 a.main-menu-item { 5506 text-decoration: none; 5507 color: #000; 5508 text-align: center; 5509 font-size: 16px; 5510 font-weight: 500; 5511 line-height: 2.5; 5512 /* white-space: nowrap; */ 5513 } 5514 5515 .gheader__nav ul li.singlemenu .menu__link { 5516 text-decoration: none; 5517 color: #000; 5518 text-align: center; 5519 font-size: 16px; 5520 font-weight: 500; 5521 line-height: normal; 5522 border: none !important; 5523 padding: 0px !important; 5524 line-height:25px; 5525 } 5526 .gheader__nav.desk-only ul .singlemenu { 5527 top: 0px; 5528 } 5529 5530 .gheader__nav.desk-only { 5531 width: 100%; 5532 margin: 0px 0px 0px 12px; 5533 } 5534 5535 5536 5537 .gheader__nav.desk-only ul .menu-dropdown, .gheader__nav.desk-only ul .singlemenu { 5538 text-align: center; 5539 margin-left: 15px; 5540 } 5541 5542 .gheader__actions { 5543 min-width: 175px; 5544 } 5545 5546 .gheader__icons { 5547 justify-content: start; 5548 width: fit-content; 5549 margin-left: auto; 5550 } 5551 5552 .gheader__actions a.btn.btn--outline.trade-button {padding: 0.5rem 0rem;width: 105px;display: block;} 5553 5554 .gheader__icons svg { 5555 width: 20px !important; 5556 height: 20px; 5557 } 5558 5559 .gheader__nav .dropdown-menu a { 5560 border: none !important; 5561 } 5562 5563 .gheader__nav ul .menu-dropdown .dropdown-menu li a { 5564 border: none !important; 5565 display: block; 5566 padding: 15px !important; 5567 text-decoration: none; 5568 color: #000; 5569 background-color: #fff; 5570 text-align: start; 5571 font-weight: 100; 5572 } 5573 .gheader__nav ul .menu-dropdown .dropdown-menu li a:hover, 5574 .gheader__nav ul li.singlemenu .menu__link:hover { 5575 background-color:transparent !important; 5576 } 5577 .gheader__nav.desk-only ul { 5578 width: 100%; 5579 justify-content: start; 5580 gap: 1%; 5581 } 5582 5583 .gheader__nav.desk-only .wrap { 5584 display: flex; 5585 position: relative; 5586 align-items: center; 5587 padding-right: 0px; 5588 } 5589 5590 .gheader__nav.desk-only .mega-menu-wrap { 5591 display: flex; 5592 padding-left:15px; 5593 } 5594 5595 .gheader__nav.desk-only .wrap::after { 5596 content: none !important; 5597 position: absolute; 5598 width: 1px; 5599 background-color: rgba(0, 0, 0, 0.2); 5600 height: 100%; 5601 right: -10px; 5602 } 5603 .main-menu-item .tag, .dropdown-menu li a .tag { 5604 display: inline-block; 5605 margin-left: 0.5rem; 5606 padding: 0.2rem 0.5rem; 5607 font-size: 0.7rem; 5608 font-weight: 600; 5609 text-transform: uppercase; 5610 background-color: #226B99; 5611 color: #fff; 5612 border-radius: 0.25rem; 5613 line-height: 1; 5614 vertical-align: super; 5615} 5616.mega-menu-button > a { 5617 text-decoration: none; 5618} 5619.gheader__nav ul .menu-dropdown .dropdown-menu li a span.tag { 5620 position: absolute; 5621} 5622 5623.gheader__nav ul .menu-dropdown .dropdown-menu li a { 5624 border-radius:0px !important; 5625} 5626 5627.gheader__nav ul .menu-dropdown .dropdown-menu li a:hover { 5628 background: #e8dcdc !important; 5629 border-radius: 0px; 5630} 5631@media (min-width: 768px) { 5632 .gfooter-menus 5633 .accordion:nth-child(3) 5634 .accordion__content 5635 ul 5636 li:last-of-type { 5637 display: none; 5638 } 5639} 5640</style> 5641 5642 5643 5644<style> 5645 .new-badge { 5646 display: inline-block; 5647 font-size: 0.75rem; 5648 font-weight: 600; 5649 color: #226B99; 5650 background-color: transparent; 5651 border-radius: 0.25rem; 5652 padding: 0.1rem 0.5rem; 5653 margin-left: 0.5rem; 5654 border: 1px solid #226B99; 5655 } 5656 <style> 5657 .announcement-bar { 5658 padding: 8px 30px; 5659 display: flex; 5660 justify-content: center;
5661 align-items: center; 5662 position: relative; 5663 flex-wrap: wrap; 5664 gap: 8px; 5665 } 5666 @media screen and (min-width: 960px) { 5667 .announcement-bar { 5668 gap: 32px; 5669 flex-wrap: nowrap; 5670 } 5671 } 5672 .announcement-bar__inner { 5673 display: flex; 5674 gap: 8px; 5675 align-items: center; 5676 justify-content: center; 5677 text-decoration: none; 5678 flex-wrap: wrap; 5679 color: inherit; 5680 } 5681 @media screen and (min-width: 960px) { 5682 .announcement-bar__inner { 5683 gap: 32px; 5684 } 5685 } 5686 .announcement-bar__text, 5687 .announcement-bar .announcement-bar__button { 5688 font-size: 14px; 5689 font-weight: bold; 5690 margin: 0; 5691 } 5692 .announcement-bar__header { 5693 text-align: center; 5694 } 5695 .announcement-bar__header p { 5696 margin: 0; 5697 } 5698 .announcement-bar__subheading { 5699 font-size: 10px; 5700 font-weight: 500; 5701 margin-top: 4px; 5702 } 5703 .announcement-bar .close-icon { 5704 cursor: pointer; 5705 position: absolute; 5706 right: 15px; 5707 top: 50%; 5708 transform: translateY(-50%); 5709 } 5710 @media screen and (min-width: 960px) { 5711 .announcement-bar .close-icon { 5712 position: static; 5713 transform: none; 5714 order: 3; /* Places the close icon at the end */ 5715 } 5716 } 5717 @media (max-width:1290px){ 5718 .mega-menu__cards { 5719 padding-right: 0px; 5720 justify-content: start; 5721 } 5722 } 5723 @media (max-width:1100px){ 5724 .gheader__nav.desk-only{ 5725 width:calc(100% + 50px); 5726 } 5727 } 5728 @media (max-width:990px){ 5729 .gheader__mnav > .overflow { 5730 padding-bottom: 120px; 5731 } 5732 } 5733 @media (max-width:768px){ 5734 .template-index.no-scroll header#shopify-section-header { 5735 top: 0px !important; 5736 } 5737 #shopify-section-header .gheader__main { 5738 5739 padding: 1rem 1rem; 5740 } 5741 .gheader.sticky { 5742 5743 } 5744 } 5745 5746} 5747 @media (max-width:550px){ 5748 .gheader.sticky { 5749 5750 } 5751 } 5752 5753 @media (max-width:435px){ 5754 .gheader.sticky { 5755 5756 } 5757 } 5758</style> 5759 5760 5761
5762<script> 5763 document.addEventListener("DOMContentLoaded", function () { 5764 console.log('%c=== DOMContentLoaded: Starting dropdown hover initialization ===', 'color: blue; font-weight: bold;'); // Highlighted start log 5765 5766 // Vanilla JS for hover dropdown functionality 5767 const menuDropdowns = document.querySelectorAll('.menu-dropdown'); 5768 console.log('%cFound ' + menuDropdowns.length + ' menu-dropdown elements', 'color: purple;'); // Log number of menus found 5769 5770 menuDropdowns.forEach(function(menu, index) { 5771 const mainItem = menu.querySelector('.main-menu-item'); 5772 const dropdown = menu.querySelector('.dropdown-menu'); 5773 5774 if (!mainItem) { 5775 console.log('%cWarning: No .main-menu-item found in menu-dropdown #' + (index + 1), 'color: orange; font-weight: bold;'); // Warning if missing 5776 return; // Skip if no main item 5777 } 5778 if (!dropdown) { 5779 console.log('%cWarning: No .dropdown-menu found in menu-dropdown #' + (index + 1), 'color: orange; font-weight: bold;'); // Warning if missing 5780 return; // Skip if no dropdown 5781 } 5782 5783 // Log dropdown details even if empty 5784 console.log('%cMenu-dropdown #' + (index + 1) + ' has ' + dropdown.children.length + ' sub-items.', 'color: cyan;'); // Log sub-item count 5785 5786 let hideTimeout; // For adding a slight delay on hide 5787 5788 // Mouse enter on the entire menu container: Show dropdown with animation 5789 menu.addEventListener('mouseenter', function() { 5790 console.log('%cMouseenter: Showing dropdown for menu-dropdown #' + (index + 1), 'color: teal; font-weight: bold;'); // Highlighted event log 5791 clearTimeout(hideTimeout); // Cancel any pending hide 5792 dropdown.style.display = 'block'; // Make visible 5793 dropdown.style.opacity = '1'; // Fade in 5794 dropdown.style.maxHeight = dropdown.scrollHeight + 'px'; // Slide down 5795 }); 5796 5797 // Mouse leave on the entire menu container: Hide dropdown with animation (with a short delay for usability) 5798 menu.addEventListener('mouseleave', function() { 5799 console.log('%cMouseleave: Preparing to hide dropdown for menu-dropdown #' + (index + 1), 'color: teal; font-weight: bold;'); // Highlighted event log 5800 hideTimeout = setTimeout(() => { 5801 dropdown.style.opacity = '0'; // Fade out 5802 dropdown.style.maxHeight = '0'; // Slide up 5803 setTimeout(() => { 5804 dropdown.style.display = 'none'; 5805 console.log('%cDropdown hidden after animation for menu-dropdown #' + (index + 1), 'color: gray;'); // Log after hide 5806 }, 200); // Hide after animation 5807 }, 100); // 100ms delay to allow moving to dropdown without flicker 5808 }); 5809 5810 // Optional: Close dropdown if clicking outside (for better UX) 5811 document.addEventListener('click', function(e) { 5812 if (!menu.contains(e.target)) { 5813 console.log('%cClick outside: Closing dropdown for menu-dropdown #' + (index + 1), 'color: teal;'); // Log event trigger 5814 dropdown.style.opacity = '0'; 5815 dropdown.style.maxHeight = '0'; 5816 setTimeout(() => { 5817 dropdown.style.display = 'none'; 5818 console.log('%cDropdown closed on outside click for menu-dropdown #' + (index + 1), 'color: gray;'); // Log after close 5819 }, 200); 5820 } 5821 }); 5822 }); 5823 5824 console.log('%c=== Dropdown hover initialization complete ===', 'color: blue; font-weight: bold;'); // Highlighted end log 5825 5826 // Rest of your existing code... 5827 }); 5828</script>
5828 5829 5830 5831 5832<!--
5832<script> 5833 document.addEventListener('DOMContentLoaded', function () { 5834 const parentLinks = document.querySelectorAll('li.parent-link.haslinks'); 5835 if (parentLinks.length > 1) { 5836 const segundoLi = parentLinks[1]; 5837 const span = segundoLi.querySelector('span[itemprop="name"]'); 5838 if (span) { 5839 const newBadge = document.createElement('span'); 5840 newBadge.textContent = ' NEW'; 5841 newBadge.classList.add('new-badge'); 5842 span.appendChild(newBadge); 5843 } 5844 } 5845}); 5846</script>
5846 --> 5847
5848<script> 5849document.addEventListener('DOMContentLoaded', function() { 5850 // 1. Select all the target link elements 5851 const links = document.querySelectorAll('.child .child-link a'); 5852 5853 // 2. Loop through each link found 5854 links.forEach(link => { 5855 // 3. Find the first span inside the link 5856 const textSpan = link.querySelector('span'); 5857 5858 // 4. Proceed only if a span actually exists 5859 if (textSpan) { 5860 const textContent = textSpan.textContent.trim(); 5861 5862 // 5. Check if the text is one of the ones you want to target 5863 if ( textContent === 'Sample Kit') { 5864 5865 // 6. Safety Check: Only add the badge if one doesn't already exist 5866 if (!link.querySelector('.custom-badge-new')) { 5867 5868 // 7. Create the new badge element 5869 const newBadge = document.createElement('span'); 5870 newBadge.className = 'custom-badge-new'; 5871 newBadge.textContent = 'new'; 5872 5873 // 8. Append the new badge to the link. It will appear next to the existing span. 5874 link.appendChild(newBadge); 5875 } 5876 } 5877 } 5878 }); 5879}); 5880</script>
5880 5881 5882 5883 5884<style> 5885 5886 a.main-menu-item, .gheader__nav ul li.singlemenu .menu__link { 5887 font-size:12px; 5888 font-family: Montserrat; 5889 font-weight: 500; 5890 leading-trim: NONE; 5891 line-height: 100%; 5892 letter-spacing: 1%; 5893 } 5894 5895 body .gheader__nav ul li button.mega-menu-button { 5896 font-size:12px; 5897 align-items: center; 5898 font-family: Montserrat; 5899 font-weight: 500; 5900 leading-trim: NONE; 5901 line-height: 100%; 5902 letter-spacing: 1%; 5903 color:#000000; 5904 } 5905 5906 body .gheader__nav ul li button.pill-menu-active { 5907 font-size:12px; 5908 border: 1px solid currentColor !important; 5909 } 5910 5911 .gheader__nav ul .menu-dropdown .dropdown-menu li a { 5912 font-size:14px; 5913 } 5914 5915 .gheader__nav ul li.singlemenu a.menu__link.pill-menu-active { 5916 font-size:12px !important; 5917 border: 1px solid currentColor !important; 5918 padding: 5px 16px !important; 5919 transition:all 300ms ease; 5920 } 5921 .gheader__nav ul li.singlemenu a.menu__link.pill-menu-active:hover { 5922 background: #000 !important; 5923 color: #fff; 5924 } 5925 .gheader__actions { 5926 min-width: 175px; 5927 } 5928 .mega-menu-li { 5929 margin-left:15px !important; 5930 } 5931 5932 .divider-in-front { 5933 position: relative; 5934 } 5935 5936 .divider-in-front::before { 5937 content: ""; 5938 position: absolute; 5939 width: 1px; 5940 background-color: rgba(0, 0, 0, 0.2); 5941 height: calc(100% + 10px ); 5942 left: 0px; 5943 top: -5px; 5944 } 5945 5946 .divider-in-end { 5947 position: relative; 5948 } 5949 5950 .divider-in-end::after { 5951 content: ""; 5952 position: absolute; 5953 width: 1px; 5954 background-color: rgba(0, 0, 0, 0.2); 5955 height: calc(100% + 10px ); 5956 right: 0px; 5957 top: -5px; 5958 } 5959 5960 .gheader__nav.desk-only ul .menu-dropdown, .gheader__nav.desk-only ul .singlemenu, .mega-menu-li { 5961 margin-left:0px !important; 5962 padding: 0px 10px; 5963 } 5964 5965 .gheader__nav ul li a, .gheader__nav ul li button { 5966 padding:0px !important; 5967 } 5968 5969 .gheader__nav ul li a, .gheader__nav ul li button { 5970 line-height:normal; 5971 background: none !important; 5972 border: none !important; 5973 } 5974 .gheader__nav ul li a.active, .gheader__nav ul li button.active, 5975 .gheader__nav ul li a:hover, .gheader__nav ul li button:hover { 5976 background: none !important; 5977 border: none !important; 5978 } 5979 a.main-menu-item, .gheader__nav ul li.singlemenu .menu__link { 5980 white-space: nowrap; 5981 } 5982 .gheader__nav.desk-only .wrap { 5983 row-gap: 5px; 5984 } 5985 5986 body .gheader__nav ul li button.mega-menu-button svg { 5987 display: none; 5988} 5989 5990 @media (max-width:1390px){ 5991 5992 } 5993 5994 @media (max-width:1340px) { 5995 .gheader__nav.desk-only .wrap { 5996 flex-wrap:wrap; 5997 justify-content:start; 5998 } 5999 } 6000 6001 @media (max-width:1100px){ 6002 .divider-in-front::before, 6003 .divider-in-end::after { 6004 content:none; 6005 } 6006 } 6007 6008 @media (max-width:768px){ 6009 .divider-in-end::after , 6010 .divider-in-front::before { 6011 contnet:none; 6012 } 6013 } 6014 6015</style> 6016
6017<script> 6018 document.addEventListener('DOMContentLoaded', function() { 6019 const allMegaMenu = document.querySelectorAll('.mega-menu-li .mega-menu-button'); 6020 const allMegaMenuDrop = document.querySelectorAll('.mega-menu.desk-only'); 6021 6022 let activeMenuData = null; // Track the currently active menu globally 6023 let hideTimeout; // Shared timeout for all menus 6024 6025 // Function to deactivate all menus 6026 function deactivateAll() { 6027 allMegaMenu.forEach(button => button.classList.remove('active')); 6028 allMegaMenuDrop.forEach(drop => drop.classList.remove('active')); 6029 activeMenuData = null; 6030 if (hideTimeout) { 6031 clearTimeout(hideTimeout); 6032 } 6033 } 6034 6035 // Function to activate a specific menu 6036 function activateMenu(menuData, button) { 6037 deactivateAll(); // Close others first 6038 const matchingDrop = document.querySelector(`.mega-menu.desk-only[data-menu="${menuData}"]`); 6039 if (matchingDrop) { 6040 button.classList.add('active'); 6041 matchingDrop.classList.add('active'); 6042 activeMenuData = menuData; 6043 } 6044 } 6045 6046 // Click handler (for mobile/accessibility) 6047 allMegaMenu.forEach(button => { 6048 button.addEventListener('click', function(e) { 6049 e.preventDefault(); 6050 const menuData = this.getAttribute('data-menu'); 6051 if (activeMenuData === menuData) { 6052 deactivateAll(); // Toggle off if already active 6053 } else { 6054 activateMenu(menuData, this); 6055 } 6056 }); 6057 }); 6058 6059 // Hover handlers for all buttons 6060 allMegaMenu.forEach(button => { 6061 const menuData = button.getAttribute('data-menu'); 6062 6063 button.addEventListener('mouseenter', function() { 6064 clearTimeout(hideTimeout); 6065 activateMenu(menuData, this); 6066 }); 6067 6068 button.addEventListener('mouseleave', function(e) { 6069 // Start hide timeout, but only if not moving toward dropdown 6070 hideTimeout = setTimeout(() => { 6071 if (activeMenuData === menuData) { 6072 deactivateAll(); 6073 } 6074 }, 100); // Short delay to allow mouse movement to dropdown 6075 }); 6076 }); 6077 6078 // Hover handlers for all dropdowns to keep menu open 6079 allMegaMenuDrop.forEach(drop => { 6080 const menuData = drop.getAttribute('data-menu'); 6081 6082 drop.addEventListener('mouseenter', function() { 6083 clearTimeout(hideTimeout); 6084 if (activeMenuData !== menuData) { 6085 // Find and activate the corresponding button if not already 6086 const matchingButton = document.querySelector(`.mega-menu-button[data-menu="${menuData}"]`); 6087 if (matchingButton) { 6088 activateMenu(menuData, matchingButton); 6089 } 6090 } 6091 }); 6092 6093 drop.addEventListener('mouseleave', function() { 6094 // Delay hide to account for mouse leaving the entire area 6095 hideTimeout = setTimeout(() => { 6096 deactivateAll(); 6097 }, 150); // Slightly longer delay here for smoother UX 6098 }); 6099 }); 6100 6101 // Optional: Close all on outside click 6102 document.addEventListener('click', function(e) { 6103 if (!e.target.closest('.mega-menu-li')) { 6104 deactivateAll(); 6105 } 6106 }); 6107}); 6108 6109</script>
6109 6110<style> 6111span.mmcard__tag { 6112 font-family: Montserrat; 6113 font-weight: 600; 6114 font-style: Medium; 6115 font-size: 8px; 6116 leading-trim: NONE; 6117 line-height: 100%; 6118 letter-spacing: 1%; 6119 background: #fff; 6120 padding: 3px 3px; 6121 border-radius: 2px; 6122 text-transform: uppercase; 6123} 6124 6125span.mmcard__tag.mmcard__tag--1 { 6126 background: #F4F2EC; 6127} 6128 6129span.mmcard__tag.mmcard__tag--2 { 6130 background: #FAAF4F; 6131} 6132 6133span.mmcard__tag.mmcard__tag--1:empty, 6134span.mmcard__tag.mmcard__tag--2:empty { 6135 display:none 6136} 6137 6138.mmcard__tags { 6139 position: absolute; 6140 top: 5px; 6141 left: 6px; 6142 z-index:9; 6143 display: flex; 6144} 6145.mega-menu__cards.four-tiles { 6146 padding-right: 0; 6147} 6148.singlemenu { 6149 margin-bottom: 5px !important; 6150} 6151.mnav1__title span.custom-badge-new { 6152 top: -12px; 6153} 6154@media (max-width:768px){ 6155.mmcard__tags { 6156 top: 20px; 6157 left: 6px; 6158} 6159} 6160</style> 6161 6162 6163 6164</header> 6165 6166 <!-- Google Tag Manager (noscript) -->
vendor: 87 bytes, lines 6166-6169
6166 6167 <noscript 6168 ><iframe 6169 src="https://www.googletagmanager.com/ns.html?id=
6169GTM-KQXSR8SZ
vendor: 123 bytes, lines 6169-6175
6169" 6170 height="0" 6171 width="0" 6172 style="display:none;visibility:hidden" 6173 ></iframe 6174 ></noscript> 6175
6175<!-- End Google Tag Manager (noscript) --> 6176 6177 <main id="dev"> 6178 <div id="shopify-section-template--26590839111955__main-blog" class="shopify-section reg-section"><section class="blog-heading"> 6179 <div class="container container--small"> 6180 <h1>Let Us Inspire You</h1> 6181 </div> 6182 </section> 6183 6184 <section class="featured-posts-slider"> 6185 <div class="container container--large"> 6186 <div class="bg-overlay"></div> 6187 <div class="container"> 6188 <div class="swiper"> 6189 <div class="swiper-wrapper"><div class="swiper-slide"><div class="feat-article-card "> 6190 <div class="row"> 6191 <div class="col col--left"> 6192 <a href="/blogs/all/design-trends-to-watch-in-2026" class="feat-article-card__image"> 6193 6194 6195 6196 <img src="//www.flooret.com/cdn/shop/articles/Design_Trends_to_Watch_in_2026_Featured_Image.png?height=720&v=1768241983" alt="Design Trends to Watch in 2026" srcset="//www.flooret.com/cdn/shop/articles/Design_Trends_to_Watch_in_2026_Featured_Image.png?height=352&v=1768241983 352w, //www.flooret.com/cdn/shop/articles/Design_Trends_to_Watch_in_2026_Featured_Image.png?height=720&v=1768241983 720w" width="720" height="720" loading="lazy"> 6197 6198 6199 </a> 6200 </div> 6201 <div class="col col--right"> 6202 <div class="feat-article-card__content"> 6203 <div class="feat-article-card__category"><a 6204 href="/blogs/all/tagged/cat-knowledge-base" 6205 class="btn btn--small btn--outline btn--orange" 6206 >Knowledge Base</a></div> 6207 <div class="feat-article-card__meta"> 6208 <span class="feat-article-card__date">January 12, 2026</span> 6209 • 6210 <span class="feat-article-card__author">By Bay Thompson</span> 6211 </div> 6212 6213 <h2 class="feat-article-card__heading"> 6214 <a href="/blogs/all/design-trends-to-watch-in-2026">Design Trends to Watch in 2026</a> 6215 </h2> 6216 <a href="/blogs/all/design-trends-to-watch-in-2026" class="btn btn--text">Read More</a> 6217 </div> 6218 </div> 6219 </div> 6220</div> 6221</div><div class="swiper-slide"><div class="feat-article-card "> 6222 <div class="row"> 6223 <div class="col col--left"> 6224 <a href="" class="feat-article-card__image"> 6225 6226 6227 </a> 6228 </div> 6229 <div class="col col--right"> 6230 <div class="feat-article-card__content"> 6231 <div class="feat-article-card__category"></div> 6232 <div class="feat-article-card__meta"> 6233 <span class="feat-article-card__date"></span> 6234 • 6235 <span class="feat-article-card__author">By </span> 6236 </div> 6237 6238 <h2 class="feat-article-card__heading"> 6239 <a href=""></a> 6240 </h2> 6241 <a href="" class="btn btn--text">Read More</a> 6242 </div> 6243 </div> 6244 </div> 6245</div> 6246</div></div> 6247 <div class="swiper-controls"> 6248 <button class="swiper-button-prev" type="button"></button> 6249 <button class="swiper-button-next" type="button"></button> 6250 </div> 6251 </div> 6252 </div> 6253 </div> 6254 </section><div class="featured-posts"> 6255 <div class="container swiper"> 6256 <div class="swiper-wrapper"><div class="swiper-slide"></div><div class="swiper-slide"></div></div> 6257 </div> 6258</div> 6259 6260<section class="blog"> 6261 <div class="container"> 6262 <div class="section__header"> 6263 <div class="blog__header"> 6264 <h2 class="blog__title">All Blogs</h2> 6265 6266 6267 <div class="blog__description"></div> 6268 </div> 6269 6270 <div class="blog__filters"><div class="blog__tags blog__filters-filter"> 6271 <div class="select-menu"> 6272 <select name="" id="blog-tag-select" class="js-select-redirects"> 6273 <option value="/blogs/all" selected>Select a Category</option><option 6274 value="/blogs/all/tagged/cat-customer-stories" 6275 6276 > 6277 Customer Stories 6278 </option><option 6279 value="/blogs/all/tagged/cat-behind-the-scenes" 6280 6281 > 6282 Behind the Scenes 6283 </option><option 6284 value="/blogs/all/tagged/cat-knowledge-base" 6285 6286 > 6287 Knowledge Base 6288 </option></select> 6289 </div> 6290 </div></div><ul class="tag-filters"><li class="tag-filter tag-filter--filter-arista-laminate"> 6291 <input type="checkbox" name="tag-filter__input" id="filter-filter-arista-laminate" class="tag-filter__input" value="filter-arista-laminate" > 6292 <label for="filter-filter-arista-laminate" class="tag-filter__label"> 6293 <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 6294 <path d="M5 18L12 25L28 9" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 6295</svg> 6296 6297 Arista Laminate 6298 </label> 6299 </li><li class="tag-filter tag-filter--filter-modin-lvp"> 6300 <input type="checkbox" name="tag-filter__input" id="filter-filter-modin-lvp" class="tag-filter__input" value="filter-modin-lvp" > 6301 <label for="filter-filter-modin-lvp" class="tag-filter__label"> 6302 <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 6303 <path d="M5 18L12 25L28 9" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 6304</svg> 6305 6306 Modin LVP 6307 </label> 6308 </li><li class="tag-filter tag-filter--filter-provence-natural-hardwood"> 6309 <input type="checkbox" name="tag-filter__input" id="filter-filter-provence-natural-hardwood" class="tag-filter__input" value="filter-provence-natural-hardwood" > 6310 <label for="filter-filter-provence-natural-hardwood" class="tag-filter__label"> 6311 <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 6312 <path d="M5 18L12 25L28 9" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 6313</svg> 6314 6315 Provence Natural Hardwood 6316 </label> 6317 </li><li class="tag-filter tag-filter--filter-silvan-hardwood"> 6318 <input type="checkbox" name="tag-filter__input" id="filter-filter-silvan-hardwood" class="tag-filter__input" value="filter-silvan-hardwood" > 6319 <label for="filter-filter-silvan-hardwood" class="tag-filter__label"> 6320 <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 6321 <path d="M5 18L12 25L28 9" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 6322</svg> 6323 6324 Silvan Hardwood 6325 </label> 6326 </li></ul></div> 6327 <div class="section__content"><div class="blog__loop" id="blog-loop"><div class="article-card "> 6328 <a href="/blogs/all/why-justina-blakeney-chose-flooret-for-the-jungalow-casita" class="article-card__image"> 6329 6330 6331 6332 <img src="//www.flooret.com/cdn/shop/articles/Flooret_x_Jungalow_8e68fcfc-66ad-4c50-b567-6a311c4ba456.png?height=400&v=1789537265" alt="Why Justina Blakeney Chose Flooret for the Jungalow Casita" srcset="//www.flooret.com/cdn/shop/articles/Flooret_x_Jungalow_8e68fcfc-66ad-4c50-b567-6a311c4ba456.png?height=352&v=1789537265 352w, //www.flooret.com/cdn/shop/articles/Flooret_x_Jungalow_8e68fcfc-66ad-4c50-b567-6a311c4ba456.png?height=400&v=1789537265 400w" width="400" height="400" loading="lazy"> 6333 6334 6335 </a> 6336 6337 <div class="article-card__content"> 6338 <ul class="article-card__category tag-filters"><li class="tag-filter tag-filter--cat-customer-stories"><a href="/blogs/all/tagged/cat-customer-stories" title="Show articles tagged Customer Stories"> Customer Stories</a></li><li class="tag-filter tag-filter--cat-behind-the-scenes"><a href="/blogs/all/tagged/cat-behind-the-scenes" title="Show articles tagged Behind the Scenes">Behind the Scenes</a></li></ul> 6339 6340 <h5 class="article-card__heading"> 6341 <a href="/blogs/all/why-justina-blakeney-chose-flooret-for-the-jungalow-casita">Why Justina Blakeney Chose Flooret for the Jungalow Casita</a> 6342 </h5> 6343 </div> 6344</div> 6345 6346<div class="article-card "> 6347 <a href="/blogs/all/our-favorite-rug-pairings-for-floorets-bestselling-floors" class="article-card__image"> 6348 6349 6350 6351 <img src="//www.flooret.com/cdn/shop/articles/Rugs_General_Lifestyle.11_1_ecff590b-e165-461e-b902-f6c62f886929.png?height=400&v=1788906458" alt="Our Favorite Rug Pairings with Flooret's Bestselling Floors" srcset="//www.flooret.com/cdn/shop/articles/Rugs_General_Lifestyle.11_1_ecff590b-e165-461e-b902-f6c62f886929.png?height=373&v=1788906458 352w, //www.flooret.com/cdn/shop/articles/Rugs_General_Lifestyle.11_1_ecff590b-e165-461e-b902-f6c62f886929.png?height=400&v=1788906458 377w" width="377" height="400" loading="lazy"> 6352 6353 6354 </a> 6355 6356 <div class="article-card__content"> 6357 <ul class="article-card__category tag-filters"><li class="tag-filter tag-filter--cat-knowledge-base"><a href="/blogs/all/tagged/cat-knowledge-base" title="Show articles tagged Knowledge Base">Knowledge Base</a></li><li class="tag-filter tag-filter--filter-arista-laminate"><a href="/blogs/all/tagged/filter-arista-laminate" title="Show articles tagged Arista Laminate">Arista Laminate</a></li><li class="tag-filter tag-filter--filter-modin-lvp"><a href="/blogs/all/tagged/filter-modin-lvp" title="Show articles tagged Modin LVP">Modin LVP</a></li><li class="tag-filter tag-filter--filter-silvan-hardwood"><a href="/blogs/all/tagged/filter-silvan-hardwood" title="Show articles tagged Silvan Hardwood">Silvan Hardwood</a></li></ul> 6358 6359 <h5 class="article-card__heading"> 6360 <a href="/blogs/all/our-favorite-rug-pairings-for-floorets-bestselling-floors">Our Favorite Rug Pairings with Flooret's Bestselling Floors</a> 6361 </h5> 6362 </div> 6363</div> 6364 6365<div class="article-card "> 6366 <a href="/blogs/all/myflooret-contest-info-and-faq" class="article-card__image"> 6367 6368 6369 6370 <img src="//www.flooret.com/cdn/shop/articles/MyFlooret_Contest_Blog-_Featured_Image_89f8010d-a343-43ca-a446-c8c3c003896d.png?height=400&v=1787168827" alt="#MyFlooret Contest Rules & FAQ" srcset="//www.flooret.com/cdn/shop/articles/MyFlooret_Contest_Blog-_Featured_Image_89f8010d-a343-43ca-a446-c8c3c003896d.png?height=352&v=1787168827 352w, //www.flooret.com/cdn/shop/articles/MyFlooret_Contest_Blog-_Featured_Image_89f8010d-a343-43ca-a446-c8c3c003896d.png?height=400&v=1787168827 400w" width="400" height="400" loading="lazy"> 6371 6372 6373 </a> 6374 6375 <div class="article-card__content"> 6376 <ul class="article-card__category tag-filters"><li class="tag-filter tag-filter--cat-behind-the-scenes"><a href="/blogs/all/tagged/cat-behind-the-scenes" title="Show articles tagged Behind the Scenes">Behind the Scenes</a></li></ul> 6377 6378 <h5 class="article-card__heading"> 6379 <a href="/blogs/all/myflooret-contest-info-and-faq">#MyFlooret Contest Rules & FAQ</a> 6380 </h5> 6381 </div> 6382</div> 6383 6384<div class="article-card "> 6385 <a href="/blogs/all/why-longevity-is-one-of-the-most-sustainable-choices-you-can-make" class="article-card__image"> 6386 6387 6388 6389 <img src="//www.flooret.com/cdn/shop/articles/Why_Longevity_Is_One_of_the_Most_Sustainable_Choices_You_Can_Make_Featured_Image_17c97b8f-0c8b-43fd-b111-7caec0a8e17d.png?height=400&v=1783365631" alt="Why Longevity Is One of the Most Sustainable Choices You Can Make" srcset="//www.flooret.com/cdn/shop/articles/Why_Longevity_Is_One_of_the_Most_Sustainable_Choices_You_Can_Make_Featured_Image_17c97b8f-0c8b-43fd-b111-7caec0a8e17d.png?height=352&v=1783365631 352w, //www.flooret.com/cdn/shop/articles/Why_Longevity_Is_One_of_the_Most_Sustainable_Choices_You_Can_Make_Featured_Image_17c97b8f-0c8b-43fd-b111-7caec0a8e17d.png?height=400&v=1783365631 400w" width="400" height="400" loading="lazy"> 6390 6391 6392 </a> 6393 6394 <div class="article-card__content"> 6395 <ul class="article-card__category tag-filters"><li class="tag-filter tag-filter--cat-knowledge-base"><a href="/blogs/all/tagged/cat-knowledge-base" title="Show articles tagged Knowledge Base">Knowledge Base</a></li><li class="tag-filter tag-filter--filter-arista-laminate"><a href="/blogs/all/tagged/filter-arista-laminate" title="Show articles tagged Arista Laminate">Arista Laminate</a></li><li class="tag-filter tag-filter--filter-modin-lvp"><a href="/blogs/all/tagged/filter-modin-lvp" title="Show articles tagged Modin LVP">Modin LVP</a></li><li class="tag-filter tag-filter--filter-provence-natural-hardwood"><a href="/blogs/all/tagged/filter-provence-natural-hardwood" title="Show articles tagged Provence Natural Hardwood">Provence Natural Hardwood</a></li><li class="tag-filter tag-filter--filter-silvan-hardwood"><a href="/blogs/all/tagged/filter-silvan-hardwood" title="Show articles tagged Silvan Hardwood">Silvan Hardwood</a></li></ul> 6396 6397 <h5 class="article-card__heading"> 6398 <a href="/blogs/all/why-longevity-is-one-of-the-most-sustainable-choices-you-can-make">Why Longevity Is One of the Most Sustainable Choices You Can Make</a> 6399 </h5> 6400 </div> 6401</div> 6402 6403<div class="article-card "> 6404 <a href="/blogs/all/introducing-dorset-windsor-sutton-craftsman" class="article-card__image"> 6405 6406 6407 6408 <img src="//www.flooret.com/cdn/shop/articles/Sutton_Craftsman_1_5a7611ed-3a26-4964-917d-6546c4afd91b.jpg?height=400&v=1779309545" alt="Introducing Dorset, Windsor & Sutton Craftsman" srcset="//www.flooret.com/cdn/shop/articles/Sutton_Craftsman_1_5a7611ed-3a26-4964-917d-6546c4afd91b.jpg?height=352&v=1779309545 352w, //www.flooret.com/cdn/shop/articles/Sutton_Craftsman_1_5a7611ed-3a26-4964-917d-6546c4afd91b.jpg?height=400&v=1779309545 400w" width="400" height="400" loading="lazy"> 6409 6410 6411 </a> 6412 6413 <div class="article-card__content"> 6414 <ul class="article-card__category tag-filters"><li class="tag-filter tag-filter--cat-behind-the-scenes"><a href="/blogs/all/tagged/cat-behind-the-scenes" title="Show articles tagged Behind the Scenes">Behind the Scenes</a></li><li class="tag-filter tag-filter--filter-modin-lvp"><a href="/blogs/all/tagged/filter-modin-lvp" title="Show articles tagged Modin LVP">Modin LVP</a></li></ul> 6415 6416 <h5 class="article-card__heading"> 6417 <a href="/blogs/all/introducing-dorset-windsor-sutton-craftsman">Introducing Dorset, Windsor & Sutton Craftsman</a> 6418 </h5> 6419 </div> 6420</div> 6421 6422<div class="article-card "> 6423 <a href="/blogs/all/best-flooring-projects-to-start-over-memorial
6423-day-weekend" class="article-card__image"> 6424 6425 6426 6427 <img src="//www.flooret.com/cdn/shop/articles/AshleySmith-NakanBase-Customer-13_c660bef6-416e-4908-9f09-7194a5f468d5.jpg?height=400&v=1779309166" alt="Best Flooring Projects For Memorial Day Weekend" srcset="//www.flooret.com/cdn/shop/articles/AshleySmith-NakanBase-Customer-13_c660bef6-416e-4908-9f09-7194a5f468d5.jpg?height=400&v=1779309166 298w" width="298" height="400" loading="lazy"> 6428 6429 6430 </a> 6431 6432 <div class="article-card__content"> 6433 <ul class="article-card__category tag-filters"><li class="tag-filter tag-filter--cat-behind-the-scenes"><a href="/blogs/all/tagged/cat-behind-the-scenes" title="Show articles tagged Behind the Scenes">Behind the Scenes</a></li><li class="tag-filter tag-filter--filter-modin-lvp"><a href="/blogs/all/tagged/filter-modin-lvp" title="Show articles tagged Modin LVP">Modin LVP</a></li></ul> 6434 6435 <h5 class="article-card__heading"> 6436 <a href="/blogs/all/best-flooring-projects-to-start-over-memorial-day-weekend">Best Flooring Projects For Memorial Day Weekend</a> 6437 </h5> 6438 </div> 6439</div> 6440 6441<div class="article-card "> 6442 <a href="/blogs/all/start-with-the-floor-finish-with-the-room" class="article-card__image"> 6443 6444 6445 6446 <img src="//www.flooret.com/cdn/shop/articles/Bloghero_76da373a-4bd4-4c35-9027-fd7a37633ef2.png?height=400&v=1778688614" alt="Start With The Floor. Finish With The Room." srcset="//www.flooret.com/cdn/shop/articles/Bloghero_76da373a-4bd4-4c35-9027-fd7a37633ef2.png?height=352&v=1778688614 352w, //www.flooret.com/cdn/shop/articles/Bloghero_76da373a-4bd4-4c35-9027-fd7a37633ef2.png?height=400&v=1778688614 400w" width="400" height="400" loading="lazy"> 6447 6448 6449 </a> 6450 6451 <div class="article-card__content"> 6452 <ul class="article-card__category tag-filters"><li class="tag-filter tag-filter--filter-arista-laminate"><a href="/blogs/all/tagged/filter-arista-laminate" title="Show articles tagged Arista Laminate">Arista Laminate</a></li><li class="tag-filter tag-filter--filter-modin-lvp"><a href="/blogs/all/tagged/filter-modin-lvp" title="Show articles tagged Modin LVP">Modin LVP</a></li><li class="tag-filter tag-filter--filter-provence-natural-hardwood"><a href="/blogs/all/tagged/filter-provence-natural-hardwood" title="Show articles tagged Provence Natural Hardwood">Provence Natural Hardwood</a></li><li class="tag-filter tag-filter--filter-silvan-hardwood"><a href="/blogs/all/tagged/filter-silvan-hardwood" title="Show articles tagged Silvan Hardwood">Silvan Hardwood</a></li></ul> 6453 6454 <h5 class="article-card__heading"> 6455 <a href="/blogs/all/start-with-the-floor-finish-with-the-room">Start With The Floor. Finish With The Room.</a> 6456 </h5> 6457 </div> 6458</div> 6459 6460<div class="article-card "> 6461 <a href="/blogs/all/designer-edit-inside-farah-merhi-s-transformation-with-sable-signature" class="article-card__image"> 6462 6463 6464 6465 <img src="//www.flooret.com/cdn/shop/articles/Farah_Merhi_Designer_Edit_Featured_Image.png?height=400&v=1772068323" alt="Designer Edit: Inside Farah Merhiâs Transformation with Sable Signature" srcset="//www.flooret.com/cdn/shop/articles/Farah_Merhi_Designer_Edit_Featured_Image.png?height=352&v=1772068323 352w, //www.flooret.com/cdn/shop/articles/Farah_Merhi_Designer_Edit_Featured_Image.png?height=400&v=1772068323 400w" width="400" height="400" loading="lazy"> 6466 6467 6468 </a> 6469 6470 <div class="article-card__content"> 6471 <ul class="article-card__category tag-filters"></ul> 6472 6473 <h5 class="article-card__heading"> 6474 <a href="/blogs/all/designer-edit-inside-farah-merhi-s-transformation-with-sable-signature">Designer Edit: Inside Farah Merhiâs Transformation with Sable Signature</a> 6475 </h5> 6476 </div> 6477</div> 6478 6479<div class="article-card "> 6480 <a href="/blogs/all/design-trends-to-watch-in-2026" class="article-card__image"> 6481 6482 6483 6484 <img src="//www.flooret.com/cdn/shop/articles/Design_Trends_to_Watch_in_2026_Featured_Image.png?height=400&v=1768241983" alt="Design Trends to Watch in 2026" srcset="//www.flooret.com/cdn/shop/articles/Design_Trends_to_Watch_in_2026_Featured_Image.png?height=352&v=1768241983 352w, //www.flooret.com/cdn/shop/articles/Design_Trends_to_Watch_in_2026_Featured_Image.png?height=400&v=1768241983 400w" width="400" height="400" loading="lazy"> 6485 6486 6487 </a> 6488 6489 <div class="article-card__content"> 6490 <ul class="article-card__category tag-filters"><li class="tag-filter tag-filter--cat-knowledge-base"><a href="/blogs/all/tagged/cat-knowledge-base" title="Show articles tagged Knowledge Base">Knowledge Base</a></li></ul> 6491 6492 <h5 class="article-card__heading"> 6493 <a href="/blogs/all/design-trends-to-watch-in-2026">Design Trends to Watch in 2026</a> 6494 </h5> 6495 </div> 6496</div> 6497 6498<div class="article-card "> 6499 <a href="/blogs/all/planning-a-renovation-why-flooring-should-come-first"
6499class="article-card__image"> 6500 6501 6502 6503 <img src="//www.flooret.com/cdn/shop/articles/Planning_a_Renovation_Why_Flooring_Should_Come_First_Featured_Image_e594480b-098d-4a3a-8419-5ba544ef3f72.png?height=400&v=1766460864" alt="Planning a Renovation? Why Flooring Should Come First" srcset="//www.flooret.com/cdn/shop/articles/Planning_a_Renovation_Why_Flooring_Should_Come_First_Featured_Image_e594480b-098d-4a3a-8419-5ba544ef3f72.png?height=352&v=1766460864 352w, //www.flooret.com/cdn/shop/articles/Planning_a_Renovation_Why_Flooring_Should_Come_First_Featured_Image_e594480b-098d-4a3a-8419-5ba544ef3f72.png?height=400&v=1766460864 400w" width="400" height="400" loading="lazy"> 6504 6505 6506 </a> 6507 6508 <div class="article-card__content"> 6509 <ul class="article-card__category tag-filters"><li class="tag-filter tag-filter--cat-knowledge-base"><a href="/blogs/all/tagged/cat-knowledge-base" title="Show articles tagged Knowledge Base">Knowledge Base</a></li><li class="tag-filter tag-filter--filter-arista-laminate"><a href="/blogs/all/tagged/filter-arista-laminate" title="Show articles tagged Arista Laminate">Arista Laminate</a></li><li class="tag-filter tag-filter--filter-modin-lvp"><a href="/blogs/all/tagged/filter-modin-lvp" title="Show articles tagged Modin LVP">Modin LVP</a></li><li class="tag-filter tag-filter--filter-silvan-hardwood"><a href="/blogs/all/tagged/filter-silvan-hardwood" title="Show articles tagged Silvan Hardwood">Silvan Hardwood</a></li></ul> 6510 6511 <h5 class="article-card__heading"> 6512 <a href="/blogs/all/planning-a-renovation-why-flooring-should-come-first">Planning a Renovation? Why Flooring Should Come First</a> 6513 </h5> 6514 </div> 6515</div> 6516 6517<div class="article-card "> 6518 <a href="/blogs/all/customer-story-from-rental-to-retreat-with-nakan" class="article-card__image"> 6519 6520 6521 6522 <img src="//www.flooret.com/cdn/shop/articles/Customer_Story_Vivenne_Nelson_Featured_Image_d9e1a036-fadd-4de6-a383-a4c45b31c274.png?height=400&v=1754361800" alt="Customer Story: From Rental to Retreat with Flooret's Worry-Free Installation" srcset="//www.flooret.com/cdn/shop/articles/Customer_Story_Vivenne_Nelson_Featured_Image_d9e1a036-fadd-4de6-a383-a4c45b31c274.png?height=352&v=1754361800 352w, //www.flooret.com/cdn/shop/articles/Customer_Story_Vivenne_Nelson_Featured_Image_d9e1a036-fadd-4de6-a383-a4c45b31c274.png?height=400&v=1754361800 400w" width="400" height="400" loading="lazy"> 6523 6524 6525 </a> 6526 6527 <div class="article-card__content"> 6528 <ul class="article-card__category tag-filters"><li class="tag-filter tag-filter--cat-customer-stories"><a href="/blogs/all/tagged/cat-customer-stories" title="Show articles tagged Customer Stories"> Customer Stories</a></li><li class="tag-filter tag-filter--filter-modin-lvp"><a href="/blogs/all/tagged/filter-modin-lvp" title="Show articles tagged Modin LVP">Modin LVP</a></li></ul> 6529 6530 <h5 class="article-card__heading"> 6531 <a href="/blogs/all/customer-story-from-rental-to-retreat-with-nakan">Customer Story: From Rental to Retreat with Flooret's Worry-Free Installation</a> 6532 </h5> 6533 </div> 6534</div> 6535 6536<div class="article-card "> 6537 <a href="/blogs/all/now-in-craftsman-palka-jova-and-arbor" class="article-card__image"> 6538 6539 6540 6541 <img src="//www.flooret.com/cdn/shop/articles/New_Craftsman_Colors_Palka_Jova_Arbor_Featured_Image_2fc8a282-ab49-4eb7-b800-8c5e828e28eb.png?height=400&v=1750868523" alt="Now in Craftsman: Palka, Jova, and Arbor" srcset="//www.flooret.com/cdn/shop/articles/New_Craftsman_Colors_Palka_Jova_Arbor_Featured_Image_2fc8a282-ab49-4eb7-b800-8c5e828e28eb.png?height=352&v=1750868523 352w, //www.flooret.com/cdn/shop/articles/New_Craftsman_Colors_Palka_Jova_Arbor_Featured_Image_2fc8a282-ab49-4eb7-b800-8c5e828e28eb.png?height=400&v=1750868523 400w" width="400" height="400" loading="lazy"> 6542 6543 6544 </a> 6545 6546 <div class="article-card__content"> 6547 <ul class="article-card__category tag-filters"><li class="tag-filter tag-filter--cat-behind-the-scenes"><a href="/blogs/all/tagged/cat-behind-the-scenes" title="Show articles tagged Behind the Scenes">Behind the Scenes</a></li><li class="tag-filter tag-filter--filter-modin-lvp"><a href="/blogs/all/tagged/filter-modin-lvp" title="Show articles tagged Modin LVP">Modin LVP</a></li></ul> 6548 6549 <h5 class="article-card__heading"> 6550 <a href="/blogs/all/now-in-craftsman-palka-jova-and-arbor">Now in Craftsman: Palka, Jova, and Arbor</a> 6551 </h5> 6552 </div> 6553</div> 6554 6555</div> 6556 6557 6558<div class="pagination" id="pagination"> 6559 <a class="btn btn--black load-more" href="/blogs/all?page=2">Load More</a> 6560 </div> 6561</div> 6562 </div> 6563</section> 6564 6565 6566</div><div id="shopify-section-template--26590839111955__6160d0c1-6805-4351-843c-9c11ecb1d2f4" class="shopify-section newsletter-signup-section"><section class="newsletter-signup"> 6567 <div class="container"> 6568 <div class="row"> 6569 <div class="col col--left"> 6570 <h2 class="newsletter-signup__heading">Discover Endless Inspiration for Your Home</h2> 6571 <p>Explore our curated collection of trends, insights, and innovative projects. Subscribe to our newsletter for the latest updates and expert advice to transform your space.</p> 6572 6573 <div class="newsletter-signup__form"> 6574 <form method="post" action="/contact#contact_form" id="contact_form" accept-charset="UTF-8" class="contact-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /> 6575 <div class="input-group"> 6576 <input placeholder="Email Address" type="email" required id="email" name="email"> 6577 </div> 6578 <input type="submit" class="btn btn--black" value="Submit"> 6579 </form> 6580 </div> 6581 </div> 6582 <div class="col col--right"> 6583 <div class="newsletter-signup__img"> 6584 6585 6586 <img src="//www.flooret.com/cdn/shop/files/Sweetbungalow-LatoBase-55.jpg?v=1704845466&width=600" srcset="//www.flooret.com/cdn/shop/files/Sweetbungalow-LatoBase-55.jpg?v=1704845466&width=352 352w, //www.flooret.com/cdn/shop/files/Sweetbungalow-LatoBase-55.jpg?v=1704845466&width=600 600w" width="600" height="900" loading="lazy"> 6587 6588</div> 6589 </div> 6590 </div> 6591 </div> 6592</section> 6593 6594 6595</div> 6596 </main> 6597 6598 <footer id="shopify-section-footer" class="shopify-section gfooter"> 6599 6600<div class="container container--large"> 6601 6602 <div class="gfooter-main"> 6603 <div class="gfooter-logo"> 6604 6605 6606 6607 <img src="//www.flooret.com/cdn/shop/files/Group_6_1.png?v=1773320811&width=141" srcset="//www.flooret.com/cdn/shop/files/Group_6_1.png?v=1773320811&width=141 141w" width="141" height="59" loading="lazy"> 6608 6609 6610 </div> 6611 6612 <div class="gfooter-row"> 6613 <div class="gfooter-menus"> 6614 6615 6616 <div class="accordion js-dropdown gfooter__menu"> 6617 <div class="accordion__trigger js-dropdown__trigger"> 6618 <h4>About</h4> 6619 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 6620<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 6621</svg> 6622 </div> 6623 <div class="accordion__content js-dropdown__content"> 6624 <div class="spacer"> 6625 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 6626 �<li class=" page_link parent-link "> 6627 <a itemprop="url" 6628 6629 href="/pages/about" 6630 6631 ><span itemprop="name">Our Story</span></a> 6632 �</li> 6633 6634 �<li class=" page_link parent-link "> 6635 <a itemprop="url" 6636 6637 href="/pages/meet-the-team" 6638 6639 ><span itemprop="name">Meet the Team </span></a> 6640 �</li> 6641 6642 �<li class=" page_link parent-link "> 6643 <a itemprop="url" 6644 6645 href="/pages/contact" 6646 6647 ><span itemprop="name">Contact</span></a> 6648 �</li> 6649 6650 �<li class=" page_link parent-link "> 6651 <a itemprop="url" 6652 6653 href="/pages/reviews" 6654 6655 ><span itemprop="name">Reviews</span></a> 6656 �</li> 6657 6658 �<li class=" http_link parent-link "> 6659 <a itemprop="url" 6660 6661 href="/pages/sustainability" 6662 6663 ><span itemprop="name">Sustainability</span></a> 6664 �</li> 6665 6666 6667 6668</ul> 6669 6670 6671 6672 6673 </div> 6674 </div> 6675 6676 </div> 6677 6678 6679 <div class="accordion js-dropdown gfooter__menu"> 6680 <div class="accordion__trigger js-dropdown__trigger"> 6681 <h4>Products</h4> 6682 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 6683<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 6684</svg> 6685 </div> 6686 <div class="accordion__content js-dropdown__content"> 6687 <div class="spacer"> 6688 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 6689 �<li class=" http_link parent-link "> 6690 <a itemprop="url" 6691 6692 href="https://www.flooret.com/collections/all-floors" 6693 6694 ><span itemprop="name">Shop</span></a> 6695 �</li> 6696 6697 �<li class=" http_link parent-link "> 6698 <a itemprop="url" 6699 6700 href="https://support.flooret.com/" 6701 6702 ><span itemprop="name">FAQs</span></a> 6703 �</li> 6704 6705 �<li class=" http_link parent-link "> 6706 <a itemprop="url" 6707 6708 href="javascript:roomvo.startStandaloneVisualizer('floor');" 6709 6710 ><span itemprop="name">See it in Your Home</span></a> 6711 �</li> 6712 6713 6714 6715</ul> 6716 6717 6718 6719 6720 </div> 6721 </div> 6722 6723 </div> 6724 6725 6726 <div class="accordion js-dropdown gfooter__menu"> 6727 <div class="accordion__trigger js-dropdown__trigger"> 6728 <h4>Resources</h4> 6729 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 6730<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 6731</svg> 6732 </div> 6733 <div class="accordion__content js-dropdown__content"> 6734 <div class="spacer"> 6735 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 6736 �<li class=" page_link parent-link "> 6737 <a itemprop="url" 6738 6739 href="/pages/technical-documents" 6740 6741 ><span itemprop="name">Technical Documents</span></a> 6742 �</li> 6743 6744 �<li class=" page_link parent-link "> 6745 <a itemprop="url" 6746 6747 href="/pages/shipping" 6748 6749 ><span itemprop="name">Shipping</span></a> 6750 �</li> 6751 6752 �<li class=" page_link parent-link "> 6753 <a itemprop="url" 6754 6755 href="/pages/ten-year-anniversary" 6756 6757 ><span itemprop="name">
6757A Decade of Flooret</span></a> 6758 �</li> 6759 6760 �<li class=" page_link parent-link "> 6761 <a itemprop="url" 6762 6763 href="/pages/finance" 6764 6765 ><span itemprop="name">Financing</span></a> 6766 �</li> 6767 6768 �<li class=" page_link parent-link "> 6769 <a itemprop="url" 6770 6771 href="/pages/find-a-retailer" 6772 6773 ><span itemprop="name">Find a Retailer</span></a> 6774 �</li> 6775 6776 6777 6778</ul> 6779 6780 6781 6782
6783<script> 6784 (function () { 6785 async function getHelpCode() { 6786 if (!window.NOIBUJS) { 6787 await new Promise(resolve => window.addEventListener('noibuSDKReady', resolve, { once: true })); 6788 } 6789 const helpCode = await window.NOIBUJS.requestHelpCode(false); 6790 console.log('HelpCode:', helpCode); 6791 return helpCode; 6792 } 6793 6794 // auto-generate on load (optional) 6795 getHelpCode(); 6796 6797 // wire your button 6798 window.addEventListener('noibuSDKReady', () => { 6799 const button = document.getElementById('request-help-code'); 6800 const label = document.getElementById('help-code-result'); 6801 if (!button || !label) return; 6802 6803 button.addEventListener('click', async () => { 6804 const helpCode = await window.NOIBUJS.requestHelpCode(false); 6805 label.innerText = helpCode; 6806 }); 6807 }); 6808 })(); 6809</script>
6809 6810
6811<script> 6812 (function () { 6813 // Generate a unique session ID for this browser session 6814 function getOrCreateSessionId() { 6815 try { 6816 let sessionId = sessionStorage.getItem('noibu_session_id'); 6817 if (!sessionId) { 6818 sessionId = 'sess_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9); 6819 sessionStorage.setItem('noibu_session_id', sessionId); 6820 console.log('[Noibu] Created new session ID:', sessionId); 6821 } 6822 return sessionId; 6823 } catch (e) { 6824 console.error('[Noibu] Error with session ID:', e); 6825 } 6826 return null; 6827 } 6828 6829 function getGladlyIdentifier() { 6830 try { 6831 if (window.Gladly && typeof window.Gladly.getUser === 'function') { 6832 const user = window.Gladly.getUser(); 6833 if (user && user.id) { 6834 console.log('[Noibu] Found Gladly user ID:', user.id); 6835 return String(user.id); 6836 } 6837 if (user && user.email) { 6838 console.log('[Noibu] Found Gladly user email:', user.email); 6839 return String(user.email); 6840 } 6841 } 6842 } catch (e) { 6843 console.error('[Noibu] Error getting Gladly identifier:', e); 6844 } 6845 return null; 6846 } 6847 6848 function getShopifyCustomerId() { 6849 try { 6850 if (window.ShopifyAnalytics?.meta?.page?.customerId) { 6851 return String(window.ShopifyAnalytics.meta.page.customerId); 6852 } 6853 if (window.Shopify?.customer?.id) { 6854 return String(window.Shopify.customer.id); 6855 } 6856 if (window.Shopify?.checkout?.customer_id) { 6857 return String(window.Shopify.checkout.customer_id); 6858 } 6859 } catch (e) { 6860 console.error('[Noibu] Error getting Shopify customer ID:', e); 6861 } 6862 return null; 6863 } 6864 6865 function getOrderName() { 6866 try { 6867 if (window.Shopify?.checkout?.order_id) { 6868 return String(window.Shopify.checkout.order_id); 6869 } 6870 if (window.Shopify?.checkout?.order_name) { 6871 return String(window.Shopify.checkout.order_name); 6872 } 6873 } catch (e) { 6874 console.error('[Noibu] Error getting order name:', e); 6875 } 6876 return null; 6877 } 6878 6879 function getContactSessionId() { 6880 try { 6881 // window variable 6882 if (window.contact_session_id) { 6883 return String(window.contact_session_id); 6884 } 6885 // localStorage 6886 let csid = localStorage.getItem('contact_session_id'); 6887 if (csid) return String(csid); 6888 // cookie 6889 const match = document.cookie.match(/(?:^|;\s*)contact_session_id=([^;]+)/); 6890 if (match) return decodeURIComponent(match[1]); 6891 } catch (e) { 6892 console.error('[Noibu] Error getting contact_session_id:', e); 6893 } 6894 return null; 6895 } 6896 6897 function addAttributesToNoibu() { 6898 if (!window.NOIBUJS || typeof window.NOIBUJS.addCustomAttribute !== 'function') { 6899 console.error('[Noibu] NOIBUJS.addCustomAttribute is not available'); 6900 return; 6901 } 6902 try { 6903 console.log('[Noibu] Adding custom attributes...'); 6904 // 1. Session ID 6905 const sessionId = getOrCreateSessionId(); 6906 if (sessionId) { 6907 window.NOIBUJS.addCustomAttribute('sessionID', sessionId); 6908 console.log('[Noibu] â Added sessionID:', sessionId); 6909 } 6910 // 2. Shopify customer ID 6911 const customerId = getShopifyCustomerId(); 6912 if (customerId) { 6913 window.NOIBUJS.addCustomAttribute('customerID', customerId); 6914 console.log('[Noibu] â Added customerID:', customerId); 6915 } else { 6916 console.log('[Noibu] â No Shopify customer ID found (customer may not be logged in)'); 6917 } 6918 // 3. Gladly user ID 6919 const gladlyId = getGladlyIdentifier(); 6920 if (gladlyId) { 6921 window.NOIBUJS.addCustomAttribute('gladlyUserID', gladlyId); 6922 console.log('[Noibu] â Added gladlyUserID:', gladlyId); 6923 } else { 6924 console.log('[Noibu] â No Gladly user identifier found'); 6925 } 6926 // 4. Order name 6927 const orderName = getOrderName(); 6928 if (orderName) { 6929 window.NOIBUJS.addCustomAttribute('orderName', orderName); 6930 console.log('[Noibu] â Added orderName:', orderName); 6931 } else { 6932 console.log('[Noibu] â No order name found (not on checkout page)'); 6933 } 6934 // 5. contact_session_id 6935 const contactSessionId = getContactSessionId(); 6936 if (contactSessionId) { 6937 window.NOIBUJS.addCustomAttribute('contact_session_id', contactSessionId); 6938 console.log('[Noibu] â Added contact_session_id:', contactSessionId); 6939 } else { 6940 console.log('[Noibu] â No contact_session_id found'); 6941 } 6942 console.log('[Noibu] Custom attributes added successfully'); 6943 } catch (e) { 6944 console.error('[Noibu] Error adding attributes:', e); 6945 } 6946 } 6947 6948 function waitForGladlyAndUpdate() { 6949 if (window.Gladly) { 6950 console.log('[Noibu] Gladly detected, checking for Gladly user...'); 6951 const gladlyId = getGladlyIdentifier(); 6952 if (gladlyId && window.NOIBUJS) { 6953 window.NOIBUJS.addCustomAttribute('gladlyUserID', gladlyId); 6954 console.log('[Noibu] â Added gladlyUserID after Gladly loaded:', gladlyId); 6955 } 6956 } else { 6957 setTimeout(() => { 6958 if (window.Gladly) { 6959 console.log('[Noibu] Gladly loaded late, checking for Gladly user...'); 6960 const gladlyId = getGladlyIdentifier(); 6961 if (gladlyId && window.NOIBUJS) { 6962 window.NOIBUJS.addCustomAttribute('gladlyUserID', gladlyId); 6963 console.log('[Noibu] â Added gladlyUserID after delayed load:', gladlyId); 6964 } 6965 } 6966 }, 2000); 6967 } 6968 } 6969
6970 function init() { 6971 if (window.NOIBUJS && typeof window.NOIBUJS.addCustomAttribute === 'function') { 6972 console.log('[Noibu] NOIBUJS ready, adding attributes...'); 6973 addAttributesToNoibu(); 6974 waitForGladlyAndUpdate(); 6975 } else { 6976 console.log('[Noibu] Waiting for NOIBUJS SDK...'); 6977 window.addEventListener('noibuSDKReady', () => { 6978 console.log('[Noibu] NOIBUJS SDK ready'); 6979 addAttributesToNoibu(); 6980 waitForGladlyAndUpdate(); 6981 }, { once: true }); 6982 } 6983 } 6984 init(); 6985 })(); 6986</script>
6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 </div> 7000 </div> 7001 7002<a 7003 class="custom-btn" 7004 href="https://www.flooret.com/pages/become-a-retailer" 7005 > 7006 Become a Retailer 7007 </a> 7008 </div> 7009 7010 </div> 7011 <div class="gfooter-email"> 7012 <span class="h5">Stay in the know about Flooret updates</span> 7013 <form method="post" action="/contact#contact_form" id="contact_form" accept-charset="UTF-8" class="contact-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /> 7014 <div class="input-group"> 7015 <input placeholder="Email Address" type="email" required id="email" name="email"> 7016 </div> 7017 <input type="submit" class="btn btn--black" value="Submit"> 7018 </form> 7019 7020 <div class="gfooter-email__imgs"> 7021 7022 7023 7024 <img src="//www.flooret.com/cdn/shop/files/GREENGUARD_Gold_Black_1.png?v=1702577021&width=60" srcset="//www.flooret.com/cdn/shop/files/GREENGUARD_Gold_Black_1.png?v=1702577021&width=60 60w" width="60" height="56" loading="lazy"> 7025 7026 7027 7028 7029 7030 <img src="//www.flooret.com/cdn/shop/files/logo-leed-usgbc_1.png?v=1702577034&width=60" srcset="//www.flooret.com/cdn/shop/files/logo-leed-usgbc_1.png?v=1702577034&width=60 60w" width="60" height="60" loading="lazy"> 7031 7032 7033 7034 7035 7036 <img src="//www.flooret.com/cdn/shop/files/floorscore_transparent_logo.png?v=1704744684&width=60" srcset="//www.flooret.com/cdn/shop/files/floorscore_transparent_logo.png?v=1704744684&width=60 60w" width="60" height="60" loading="lazy"> 7037 7038 7039 </div> 7040 </div> 7041 </div> 7042 7043 <div class="gfooter-bottom"> 7044 <p>Copyright 2026 © Flooret</p> 7045 7046 7047<ul class="social-links"> 7048 7049 7050 7051 7052 7053 7054 7055 7056 <li><a href="https://www.instagram.com/shopflooret/" target="_blank">
7056<svg xmlns="http://www.w3.org/2000/svg" width="16" viewBox="0 0 24 24"> 7057 <path fill="currentColor" d="M21.58 16.85a4.74 4.74 0 01-4.73 4.74h-9.7a4.74 4.74 0 01-4.74-4.74v-9.7a4.74 4.74 0 014.74-4.74h9.7a4.73 4.73 0 014.73 4.74v9.7zM16.85 0h-9.7A7.16 7.16 0 000 7.15v9.7C0 20.8 3.2 24 7.15 24h9.7c3.94 0 7.15-3.2 7.15-7.15v-9.7C24 3.21 20.8 0 16.85 0z"/> 7058 <path fill="currentColor" d="M12 15.8a3.79 3.79 0 110-7.59 3.79 3.79 0 010 7.58zm0-10a6.21 6.21 0 10.01 12.42A6.21 6.21 0 0012 5.79zM16.73 5.84a1.49 1.49 0 012.97 0 1.48 1.48 0 11-2.97 0z"/> 7059</svg></a></li> 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 <li><a href="https://www.facebook.com/Flooret.Brand/" target="_blank"><svg xmlns="http://www.w3.org/2000/svg" width="16" viewBox="0 0 24 24"> 7072 <path fill="currentColor" d="M6.33 12.78h2.63v10.83c0 .22.17.39.38.39h4.46c.22 0 .4-.17.4-.39V12.83h3.01c.2 0 .37-.14.39-.34l.46-3.99a.39.39 0 00-.38-.43h-3.49v-2.5c0-.75.4-1.13 1.2-1.13h2.28c.22 0 .4-.17.4-.39V.4a.39.39 0 00-.4-.39H14.4c-.54 0-2.44.1-3.93 1.48a4.13 4.13 0 00-1.37 3.67v2.92H6.33a.39.39 0 00-.4.39v3.93c0 .22.18.4.4.4z"/> 7073</svg></a></li> 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 <li><a href="https://www.linkedin.com/uas/login?session_redirect=https%3A%2F%2Fwww.linkedin.com%2Fcompany%2Fflooret%2Fabout%2F" target="_blank">
7085<svg xmlns="http://www.w3.org/2000/svg" width="16" viewBox="0 0 24 24"> 7086 <path fill="currentColor" d="M5.59 7.71H.77a.39.39 0 00-.39.39V23.6c0 .22.18.39.39.39h4.82c.21 0 .38-.17.38-.39V8.1a.39.39 0 00-.38-.39zM3.18 0a3.18 3.18 0 10.01 6.37A3.18 3.18 0 003.18 0zM17.84 7.33c-1.93 0-3.36.83-4.23 1.78V8.1a.39.39 0 00-.39-.39H8.61a.39.39 0 00-.39.39V23.6c0 .22.17.39.39.39h4.8c.22 0 .4-.17.4-.39v-7.67c0-2.59.7-3.6 2.5-3.6 1.95 0 2.1 1.62 2.1 3.73v7.54c0 .22.18.39.4.39h4.8c.22 0 .39-.17.39-.39v-8.5c0-3.85-.73-7.78-6.16-7.78z"/> 7087</svg></a></li> 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 <li><a href="https://www.tiktok.com/@shopflooret" target="_blank"><svg xmlns="http://www.w3.org/2000/svg" width="16" viewBox="0 0 24 24"> 7100 <path fill="currentColor" d="M16.5 0c0 2.4 1.3 4.8 4.3 5.6l1.6.4v4c-2 0-4-.7-5.8-2v7.2l-.1 2.7a7.5 7.5 0 0 1-6.4 6c-4 .6-7.6-2-8.4-5.9a7.5 7.5 0 0 1 8.5-9l.1.2v4.3H10a3.4 3.4 0 1 0 2.5 4.3v-1.2l.1-14V0h4z"/> 7101</svg></a></li> 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 <li><a href="https://www.youtube.com/channel/UCOKewsiUaAOThCGO5DlvWrw" target="_blank">
7113<svg xmlns="http://www.w3.org/2000/svg" width="16" viewBox="0 0 24 24"> 7114 <path fill="currentColor" d="M23 5c-.8-1-2.4-1.4-5.5-1.4h-11C3.3 3.6 1.7 4 .8 5 0 6.1 0 7.7 0 9.9v4.2c0 4.2 1 6.3 6.5 6.3h11c2.7 0 4.2-.3 5.1-1.2 1-1 1.4-2.5 1.4-5.1V9.9C24 7.6 24 6 23 5zm-7.6 7.6l-5 2.6a.8.8 0 01-1.2-.7V9.3a.8.8 0 011.2-.7l5 2.6a.8.8 0 010 1.4z"/> 7115</svg></a></li> 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 <li><a href="https://twitter.com/i/flow/login?redirect_after_login=%2FFlooretBrand" target="_blank"><svg width="16" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"> 7128 <path fill="currentColor" d="M31.5023 2H37.6359L24.2359 17.3154L40 38.1562H27.6568L17.9892 25.5164L6.92718 38.1562H0.789876L15.1226 21.7747L0 2H12.6566L21.3953 13.5533L31.5023 2ZM29.3497 34.485H32.7483L10.8098 5.47842H7.16266L29.3497 34.485Z" /> 7129</svg></a></li> 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 <li><a href="https://www.pinterest.com/Flooret/_created/" target="_blank">
7141<svg xmlns="http://www.w3.org/2000/svg" width="16" viewBox="0 0 24 24"> 7142 <path fill="currentColor" d="M18.98 2.46A9.2 9.2 0 0012.55 0C8.73 0 6.38 1.56 5.08 2.88a8.5 8.5 0 00-2.51 5.9c0 2.66 1.12 4.71 2.99 5.48.12.05.25.07.37.07.4 0 .71-.26.82-.67l.27-1.08c.14-.5.03-.74-.27-1.1-.54-.63-.8-1.39-.8-2.38a6 6 0 016.23-6.04c3.2 0 5.2 1.83 5.2 4.76 0 1.85-.4 3.56-1.13 4.82-.5.88-1.39 1.93-2.74 1.93-.6 0-1.12-.24-1.45-.67-.32-.4-.42-.9-.3-1.44.15-.6.34-1.24.53-1.85.35-1.11.67-2.16.67-3 0-1.44-.88-2.4-2.2-2.4C9.1 5.2 7.8 6.9 7.8 9.07c0 1.06.28 1.85.4 2.16-.2.89-1.45 6.19-1.7 7.18-.13.59-.95 5.2.41 5.56 1.54.42 2.91-4.07 3.05-4.58.12-.4.51-1.97.75-2.93.75.72 1.94 1.2 3.1 1.2a6.9 6.9 0 005.55-2.77 11.13 11.13 0 002.08-6.81c0-2.08-.89-4.13-2.45-5.62z"/> 7143</svg></a></li> 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 <li><a href="https://www.houzz.com/professionals/building-supplies/flooret-pfvwus-pf~311545242?" target="_blank"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 7162 <path d="M11.5593 17.5H16.5674V8.97966L6.54282 6.09147V2.5H3.22266V17.5H8.23078V12.7773H11.5593V17.5Z" fill="currentColor"/> 7163</svg> 7164</a></li> 7165 7166 7167 7168 7169</ul> 7170 <nav class="legal"> 7171 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 7172 7173 7174</ul> 7175 7176 7177 7178 7179 </nav> 7180 </div> 7181 </div> 7182</div> 7183 7184<style data-shopify> 7185 #shopify-section-footer .custom-btn { 7186 display: inline-flex; 7187 align-items: center; 7188 position:absolute; 7189 justify-content: center; 7190 text-decoration: none; 7191 cursor: pointer; 7192 border-radius:50px; 7193 margin-left: -10px; 7194 color: #ffffff; 7195 background-color: #000000; 7196 margin-top:20px; 7197 font-weight: 500; 7198 line-height: 1.3; 7199 letter-spacing: 0px; 7200 7201 font-size: 16px; 7202 7203 padding: 4px 15px; 7204 7205 7206 height: 40px; 7207 7208 7209 transition: color 0.2s ease, background-color 0.2s ease, opacity 0.2s ease; 7210 } 7211 7212 #shopify-section-footer .custom-btn:hover { 7213 color: #ffffff; 7214 background-color: #111111; 7215 } 7216 7217 #shopify-section-footer .custom-btn[aria-disabled="true"] { 7218 pointer-events: none; 7219 opacity: 0.6; 7220 } 7221 7222 @media (max-width: 990px) { 7223 #shopify-section-footer .custom-btn { 7224 display:none; 7225 } 7226 } 7227 @media (max-width: 749px) { 7228 #shopify-section-footer .custom-btn { 7229 font-size: 15px; 7230 } 7231 } 7232</style> 7233 7234 7235 7236<style data-shopify> 7237 .gfooter .gfooter-bottom .social-links li { 7238 margin-right: 0.5rem !important; 7239 margin-left: 0.5rem !important; 7240 } 7241 .gfooter .gfooter-bottom p, 7242 .gfooter .gfooter-bottom .social-links, 7243 .gfooter .gfooter-bottom nav { 7244 min-width: 315px; 7245 text-align: center; 7246 justify-content: center !important; 7247 display: flex; 7248 } 7249 .gfooter-bottom { 7250 flex-direction: column !important; 7251 gap: 10px; 7252 } 7253 @media (min-width: 1024px) { 7254 .gfooter-main .gfooter-bottom { 7255 flex-direction: row !important; 7256 } 7257 .gfooter .gfooter-bottom p { 7258 justify-content: flex-start !important; 7259 } 7260 } 7261</style> 7262 7263 7264<!-- Start of HubSpot Embed Code -->
7265<script type="text/javascript" id="hs-script-loader" async defer src="//js-na2.hs-scripts.com/46941662.js"></script>
7265 7266<!-- End of HubSpot Embed Code --> 7267 7268 7269</footer> 7270 7271 <div class="site-overlay js-site-overlay"></div> 7272 7273 <div id="shopify-section-pop-cart" class="shopify-section"> 7274 7275 7276 7277<section class="pop-cart"> 7278 <form class="overflow" id="fr24-pop-cart-form" action="/checkout" method="post" novalidate> 7279 7280 <div class="pop-cart__top"> 7281 <div class="pop-cart__intro"> 7282 <button class="pop-cart__close js-cart-drawer-close reset" type="button"> 7283 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"> 7284 <path d="M3.825 9L9.425 14.6L8 16L-1.09896e-07 8L8 4.76837e-07L9.425 1.4L3.825 7H16V9H3.825Z" fill="#0F172A"/> 7285 </svg> 7286 </button> 7287 <span class="h5">My Cart (<span class="cart-item__count js-cart-count">0</span>)</span> 7288 <button class="pop-cart__close js-cart-drawer-close reset" type="button"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 7289 <path d="M15.1421 1.00151L0.999954 15.1436" stroke="#111111" stroke-width="1.5" stroke-linecap="round"/> 7290 <path d="M15.1421 15.1421L0.999955 0.999999" stroke="#111111" stroke-width="1.5" stroke-linecap="round"/> 7291</svg> </button> 7292 </div> 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 <div class="pop-cart__items"> 7361 <style> 7362 .install-product { 7363 display: flex; 7364 gap: 16px; 7365 position: relative; 7366 border-radius: 10px; 7367 background: #F4F3F1; 7368 padding: 20px 14px; 7369 flex-direction: column; 7370 margin-top: 1rem; 7371 } 7372 .install-product h3 { 7373 color: #000; 7374 font-family: Montserrat; 7375 font-size: 16px; 7376 font-style: normal; 7377 font-weight: 700; 7378 line-height: normal; 7379 } 7380 .install-product .install-product-image-box { 7381 position: relative; 7382 width: 113px; 7383 height: 113px; 7384 } 7385 7386 .install-product .install-product-image-box .install-tier { 7387 position: absolute; 7388 top: -7px; 7389 border-radius: 4px; 7390 text-align: center; 7391 color: #1B1B1B; 7392 font-family: "Playfair Display"; 7393 font-size: 9px; 7394 font-style: normal; 7395 font-weight: 700; 7396 line-height: normal; 7397 letter-spacing: 0.27px; 7398 text-transform: uppercase; 7399 width: 83px; 7400 height: 15px; 7401 left: 15px; 7402 right: 15px; 7403 } 7404 7405 .install-product-image-box .install-tier.bronze { 7406 background: linear-gradient(90deg, #5B442F 0%, #D09762 24.04%, #CB935D 49.04%, #E5A974 75%, #66492C 100%); 7407 } 7408 7409 .install-product-image-box .install-tier.silver { 7410 background: linear-gradient(90deg, #8C8D8D 0%, #969696 24.04%, #E9E9E9 49.04%, #939393 75%, #BDBDBD 100%); 7411 } 7412 .install-product-image-box .install-tier.gold { 7413 background: linear-gradient(90deg, #FBDB5E 0%, #FAF3C2 38.46%, #D2A748 71.15%, #F1DD94 100%); 7414 } 7415 7416 .bundle-container { 7417 display: flex; 7418 gap: 16px; 7419 } 7420 7421 .cart-item-hidden { 7422 display: none !important; 7423 } 7424 7425 .bundle-summary { 7426 padding: 12px; 7427 border-radius: 8px; 7428 margin-top: 8px; 7429 } 7430 7431 .bundle-summary ul { 7432 margin: 0; 7433 padding-left: 16px; 7434 font-size: 12px; 7435 } 7436 7437 .cart-remove-bundle { 7438 border: none; 7439 cursor: pointer; 7440 font-size: 12px; 7441 margin-top: 8px; 7442 background: transparent; 7443 padding: 0; 7444 position: absolute; 7445 top: -2px; 7446 right: 6px; 7447 } 7448 7449 .cart-remove-bundle:hover { 7450 } 7451 .cart-installation-details { 7452 display: flex; 7453 flex-direction: column; 7454 float: right; 7455 } 7456 .cart-installation-details summary { 7457 color: #1050D0; 7458 text-align: right; 7459 font-family: Inter; 7460 font-size: 14px; 7461 font-style: normal; 7462 font-weight: 600; 7463 line-height: normal; 7464 } 7465
7466 .cart-installation-details summary { 7467 list-style: none; 7468 display: flex; 7469 justify-content: flex-end; 7470 align-items: center; 7471 color: #1050D0; 7472 text-align: right; 7473 font-family: Inter; 7474 font-size: 14px; 7475 font-style: normal; 7476 font-weight: 600; 7477 line-height: normal; 7478 cursor: pointer; 7479 padding-right: 16px; 7480 position: relative; 7481 } 7482 7483 .cart-installation-details summary>.chevron { 7484 transform: rotate(180deg); 7485 } 7486 7487 /* Hide ::marker */ 7488 .cart-installation-details summary::marker { 7489 content: ''; 7490 } 7491 7492 /* Rotate arrow when open */ 7493 .cart-installation-details[open] summary>.chevron { 7494 transform: rotate(0deg); 7495 } 7496 7497 .bundle-service-included { 7498 display: flex; 7499 flex-direction: column; 7500 gap: 2px; 7501 padding-top: 4px; 7502 color: #000; 7503 font-family: Montserrat; 7504 font-size: 12px; 7505 font-style: normal; 7506 font-weight: 400; 7507 line-height: 20px; 7508 } 7509 .bundle-cost-summary { 7510 color: #000; 7511 font-family: Montserrat; 7512 font-size: 12px; 7513 font-style: normal; 7514 font-weight: 400; 7515 line-height: 20px; 7516 padding-top: 4px; 7517 } 7518 .remaining-info { 7519 color: #A3A3A3; 7520 font-style: italic; 7521 font-size: 11px; 7522 } 7523 .bundle-breakdown li { 7524 border-bottom: 1px solid #6D6D6D; 7525 color: #6D6D6D; 7526 font-family: "Helvetica Neue"; 7527 font-size: 14px; 7528 font-style: normal; 7529 font-weight: 500; 7530 line-height: normal; 7531 } 7532 7533 .bundle-breakdown li:last-child { 7534 border-bottom: none; 7535 } 7536 7537 .bundle-breakdown .breakdown-item { 7538 display: flex; 7539 justify-content: space-between; 7540 align-items: center; 7541 padding: 0.5rem 0; 7542 } 7543 7544 .bundle-breakdown .breakdown-item .price { 7545 font-size: 12px; 7546 } 7547 7548 .cart-card__content.fix_install_item .cart-card__meta li::before { 7549 content: "-"; 7550 position:relative; 7551 } 7552 7553 .cart-card__content.fix_install_item .cart-card__meta li { 7554 margin-left: 0px; 7555 font-size: 12px; 7556 font-weight: 500; 7557 display:flex; 7558 gap:5px; 7559 } 7560 7561 .cart-card.js-cart-card.fix_install_item_card { 7562 display: flex; 7563 gap: 16px; 7564 position: relative; 7565 border-radius: 10px; 7566 background: #F4F3F1; 7567 padding: 20px 14px; 7568 flex-direction: column; 7569 margin-top: 1rem; 7570 } 7571 7572 .cart-card.js-cart-card.fix_install_item_card .cart-card__quantity { 7573 display: none; 7574 } 7575 7576 @media (max-width:768px){ 7577 .cart-card__content.fix_install_item { 7578 padding-top: 20px; 7579 } 7580 } 7581 .cart-card__meta li.on { 7582 display: none; 7583 } 7584 7585 .cart-card__meta li.on + li::before { 7586 content: ""; 7587 } 7588 7589 .cart-card__meta li.\33 30 { 7590 display: none; 7591 } 7592</style> 7593 7594<div class="js-cart-item-wrap"> 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611</div> 7612 7613 7614 7615 7616
7617<script> 7618 // Handle bundle removal 7619 document.querySelectorAll('.cart-remove-bundle').forEach(button => { 7620 button.addEventListener('click', async (e) => { 7621 e.preventDefault(); 7622 const button = e.target.closest('.cart-remove-bundle'); 7623 const bundleId = button?.dataset.bundleId; 7624 7625 if (!confirm('Remove the service bundle?')) return; 7626 7627 try { 7628 // Get current cart 7629 const cartResponse = await fetch('/cart.js'); 7630 const cart = await cartResponse.json(); 7631 7632 // Find all items with this bundle ID and set quantity to 0 7633 const updates = {}; 7634 cart.items.forEach((item, index) => { 7635 if (item.properties && item.properties._bundle_id === bundleId) { 7636 updates[item.key] = 0; 7637 } 7638 }); 7639 7640 // Remove all bundle items 7641 for (const [key, quantity] of Object.entries(updates)) { 7642 await fetch('/cart/change.js', { 7643 method: 'POST', 7644 headers: { 'Content-Type': 'application/json' }, 7645 body: JSON.stringify({ id: key, quantity: quantity }) 7646 }); 7647 } 7648 7649 window.location.reload(); 7650 } catch (error) { 7651 console.error('Error removing bundle:', error); 7652 alert('Error removing installation service. Please try again.'); 7653 } 7654 }); 7655 }); 7656</script>
7656 7657 7658 </div> 7659 </div> 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 <style>@font-face { 7689 font-family: Montserrat; 7690 font-weight: 600; 7691 font-style: normal; 7692 font-display: swap; 7693 src: url("//www.flooret.com/cdn/fonts/montserrat/montserrat_n6.1326b3e84230700ef15b3a29fb520639977513e0.woff2") format("woff2"), 7694 url("//www.flooret.com/cdn/fonts/montserrat/montserrat_n6.652f051080eb14192330daceed8cd53dfdc5ead9.woff") format("woff"); 7695} 7696 7697 7698 #cart-promo-pop-cart .cart-promo__heading { 7699 font-family: Montserrat, sans-serif; 7700 font-style: normal; 7701 font-size: 11px; 7702 font-weight: 600; 7703 color: #111111; 7704 }@font-face { 7705 font-family: "Playfair Display"; 7706 font-weight: 400; 7707 font-style: normal; 7708 font-display: swap; 7709 src: url("//www.flooret.com/cdn/fonts/playfair_display/playfairdisplay_n4.9980f3e16959dc89137cc1369bfc3ae98af1deb9.woff2") format("woff2"), 7710 url("//www.flooret.com/cdn/fonts/playfair_display/playfairdisplay_n4.c562b7c8e5637886a811d2a017f9e023166064ee.woff") format("woff"); 7711} 7712 7713 7714 #cart-promo-pop-cart .cart-promo__subheading { 7715 font-family: "Playfair Display", serif; 7716 font-style: normal; 7717 font-size: 22px; 7718 font-weight: 400; 7719 color: #111111; 7720 }@font-face { 7721 font-family: Montserrat; 7722 font-weight: 600; 7723 font-style: normal; 7724 font-display: swap; 7725 src: url("//www.flooret.com/cdn/fonts/montserrat/montserrat_n6.1326b3e84230700ef15b3a29fb520639977513e0.woff2") format("woff2"), 7726 url("//www.flooret.com/cdn/fonts/montserrat/montserrat_n6.652f051080eb14192330daceed8cd53dfdc5ead9.woff") format("woff"); 7727} 7728 7729 7730 #cart-promo-pop-cart .cart-promo__title { 7731 font-family: Montserrat, sans-serif; 7732 font-style: normal; 7733 font-size: 14px; 7734 font-weight: 600; 7735 color: #111111; 7736 }@font-face { 7737 font-family: Montserrat; 7738 font-weight: 600; 7739 font-style: normal; 7740 font-display: swap; 7741 src: url("//www.flooret.com/cdn/fonts/montserrat/montserrat_n6.1326b3e84230700ef15b3a29fb520639977513e0.woff2") format("woff2"), 7742 url("//www.flooret.com/cdn/fonts/montserrat/montserrat_n6.652f051080eb14192330daceed8cd53dfdc5ead9.woff") format("woff"); 7743} 7744 7745 7746 #cart-promo-pop-cart .cart-promo__link { 7747 font-family: Montserrat, sans-serif; 7748 font-style: normal; 7749 font-size: 11px; 7750 font-weight: 600; 7751 color: #111111; 7752 }</style> 7753 7754 <div 7755 class="cart-promo" 7756 id="cart-promo-pop-cart" 7757 style="--promo-card-w: 40; --promo-ratio: 1.25; --promo-media-bg: #f5f5f5;" 7758 ><p class="cart-promo__heading">EARLY BLACK FRIDAY</p><h3 class="cart-promo__subheading">Complete your project for less.</h3><div class="cart-promo__wrap" data-promo-slider-wrap data-at-start> 7759 <div class="cart-promo__track" data-promo-slider><a href="/collections/trim-accessories" class="cart-promo__card" ><div class="cart-promo__media"><img src="//www.flooret.com/cdn/shop/files/Photo.png?v=1790670772&width=600" alt="Up to 40% off Stairs" srcset="//www.flooret.com/cdn/shop/files/Photo.png?v=1790670772&width=300 300w, //www.flooret.com/cdn/shop/files/Photo.png?v=1790670772&width=450 450w, //www.flooret.com/cdn/shop/files/Photo.png?v=1790670772&width=600 600w" width="600" height="750" loading="lazy" sizes="(max-width: 480px) 45vw, 240px"> 7760</div><p class="cart-promo__title">Up to 40% off Stairs</p><span class="cart-promo__link">Shop stairs</span></a><a href="/collections/rugs" class="cart-promo__card" ><div class="cart-promo__media"><img src="//www.flooret.com/cdn/shop/files/Photo_1.png?v=1790670881&width=600" alt="30% off Rugs" srcset="//www.flooret.com/cdn/shop/files/Photo_1.png?v=1790670881&width=300 300w, //www.flooret.com/cdn/shop/files/Photo_1.png?v=1790670881&width=450 450w, //www.flooret.com/cdn/shop/files/Photo_1.png?v=1790670881&width=600 600w" width="600" height="750" loading="lazy" sizes="(max-width: 480px) 45vw, 240px"> 7761</div><p class="cart-promo__title">30% off Rugs</p><span class="cart-promo__link">Shop rugs</span></a><a href="/collections/trim-accessories" class="cart-promo__card" ><div class="cart-promo__media"><img src="//www.flooret.com/cdn/shop/files/d9bf5a57e0ceef05c0c92654f169166dd8db668d.jpg?v=1790670951&width=600" alt="10% off Trim" srcset="//www.flooret.com/cdn/shop/files/d9bf5a57e0ceef05c0c92654f169166dd8db668d.jpg?v=1790670951&width=300 300w, //www.flooret.com/cdn/shop/files/d9bf5a57e0ceef05c0c92654f169166dd8db668d.jpg?v=1790670951&width=450 450w, //www.flooret.com/cdn/shop/files/d9bf5a57e0ceef05c0c92654f169166dd8db668d.jpg?v=1790670951&width=600 600w" width="600" height="683" loading="lazy" sizes="(max-width: 480px) 45vw, 240px"> 7762</div><p class="cart-promo__title">10% off Trim</p><span class="cart-promo__link">Shop trim</span></a></div><button type="button" class="cart-promo__nav cart-promo__nav--prev" data-promo-prev aria-label="Previous"> 7763 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewB
7763ox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M15 18l-6-6 6-6"/></svg> 7764 </button> 7765 <button type="button" class="cart-promo__nav cart-promo__nav--next" data-promo-next aria-label="Next"> 7766 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 18l6-6-6-6"/></svg> 7767 </button></div> 7768 </div> 7769 7770 7771 7772 <div class="pop-cart__footer js-pop-cart-actions "> 7773 <div class="pop-cart__actions"> 7774 <table> 7775 7776 <tr> 7777 <td class="center">Your cart is empty</td> 7778 </tr> 7779 7780 </table> 7781 7782 7783 <a href="/collections/all" class="btn btn--black">Shop All Products</a> 7784 7785 </div> 7786 </div><!-- Hidden original-order updates for correct Shopify checkout submission --><div style="display:none;" aria-hidden="true"> 7787 7788<!-- Hidden submit â gives Minmaxify its real submit hook --><button type="submit" class="js-hidden-submit" tabindex="-1" aria-hidden="true">Checkout</button> 7789 </div> 7790 7791 </form> 7792</section> 7793
7794<script> 7795(function () { 7796 document.addEventListener("click", function (e) { 7797 var scroller = document.querySelector("[data-upsell-scroll]"); 7798 if (!scroller) return; 7799 7800 var prevBtn = e.target.closest("[data-upsell-prev]"); 7801 var nextBtn = e.target.closest("[data-upsell-next]"); 7802 if (!prevBtn && !nextBtn) return; 7803 7804 var card = scroller.querySelector(".pop-cart__upsell-card"); 7805 var step = card ? card.getBoundingClientRect().width + 14 : 200; 7806 7807 scroller.scrollBy({ 7808 left: nextBtn ? step : -step, 7809 behavior: "smooth" 7810 }); 7811 }); 7812})(); 7813</script>
7813 7814 7815 7816
7817<script> 7818(function () { 7819 document.addEventListener("click", function (e) { 7820 const btn = e.target.closest(".js-fr24-checkout-btn"); 7821 if (!btn || btn.disabled) return; 7822 7823 e.preventDefault(); 7824 7825 const visibleInputs = document.querySelectorAll(".js-qty__input"); 7826 const hiddenInputs = document.querySelectorAll(".js-original-update"); 7827 7828 const qtyMap = {}; 7829 visibleInputs.forEach((input) => { 7830 const card = input.closest(".js-cart-card"); 7831 if (card) { 7832 const variantId = card.dataset.id; 7833 if (variantId) qtyMap[variantId] = input.value; 7834 } 7835 }); 7836 7837 hiddenInputs.forEach((input) => { 7838 const variantId = input.dataset.variantId; 7839 if (variantId && qtyMap[variantId] !== undefined) { 7840 input.value = qtyMap[variantId]; 7841 } 7842 }); 7843 7844 fetch("/cart.js", { 7845 method: "GET", 7846 headers: { Accept: "application/json" } 7847 }) 7848 .then((res) => res.json()) 7849 .then((cart) => { 7850 if (!cart || cart.item_count === 0) return; 7851 7852 const hiddenSubmit = document.querySelector(".js-hidden-submit"); 7853 if (hiddenSubmit) { 7854 sessionStorage.setItem("fr24_came_from_checkout_flow", "true"); 7855 hiddenSubmit.click(); 7856 } 7857 }) 7858 .catch(() => { 7859 const hiddenSubmit = document.querySelector(".js-hidden-submit"); 7860 if (hiddenSubmit) { 7861 sessionStorage.setItem("fr24_came_from_checkout_flow", "true"); 7862 hiddenSubmit.click(); 7863 } 7864 }); 7865 }); 7866})(); 7867</script>
7867 7868 7869<style> 7870.fr_24_upsell_minicart { 7871 margin: 0px 24px 0; 7872 padding: 20px 0 0; 7873 border-top: 1px solid #F1F5F9; 7874} 7875 7876.fr_24_upsell_minicart h2 { 7877 font-size: 18px; 7878 line-height: 1.3; 7879 color: #0f172a; 7880 font-weight: 700; 7881 font-size: 14px; 7882 line-height: 16px; 7883 text-wrap: auto; 7884 text-transform: capitalize; 7885 padding: 4px 12px 20px; 7886} 7887 7888.fr_24_upsell_products_container { 7889 display: grid; 7890 gap: 16px; 7891} 7892 7893.fr_24_upsell_product { 7894 display: grid; 7895 grid-template-columns: 84px 1fr; 7896 gap: 12px; 7897 align-items: start; 7898} 7899 7900.fr_24_upsell_product img { 7901 width: 84px; 7902 height: auto; 7903 display: block; 7904} 7905 7906.fr_24_upsell_product_name { 7907 margin-bottom: 10px; 7908 font-size: 14px; 7909 font-weight: 600; 7910 color: #0f172a; 7911} 7912 7913.fr_24_upsell_product_info_wrapper { 7914 display: flex; 7915 gap: 8px; 7916 align-items: center; 7917 flex-direction: column; 7918} 7919 7920.fr_24_upsell_product_dropdown { 7921 flex: 1; 7922} 7923 7924.fr_24_upsell_product_dropdown_select { 7925 width: 100%; 7926 min-height: 40px; 7927} 7928 7929.fr_24_upsell_addtocartbtn { 7930 min-height: 40px; 7931 padding: 0 14px; 7932 border: 0; 7933 background: #111827; 7934 color: #fff; 7935 cursor: pointer; 7936} 7937 7938#shopify-section-pop-cart .pop-cart { 7939 z-index: 9999999 7940} 7941 7942#shopify-section-pop-cart .pop-cart .pop-cart__footer .pop-cart__actions button { 7943 max-width: 100%; 7944 font-size: 15px; 7945 margin-top: 0px; 7946} 7947 7948#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart { 7949 padding: 12px; 7950 margin:0px; 7951} 7952 7953#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart h2 { 7954 font-weight: 700; 7955 font-size: 14px; 7956 line-height: 16px; 7957 text-wrap: auto; 7958 text-transform: capitalize 7959} 7960 7961#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_products_container { 7962 display: flex; 7963 overflow-x: auto; 7964 gap: 7px; 7965 padding: 0px 0px 0px 0px; 7966 cursor: grab; 7967 user-select: none; 7968} 7969 7970#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_products_container.is-dragging { 7971 cursor: grabbing; 7972 scroll-behavior: auto; 7973} 7974 7975#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_products_container::-webkit-scrollbar {
7976 display: none 7977} 7978 7979#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product_add { 7980 flex: 1; 7981 display: flex; 7982 justify-content: space-between; 7983 flex-direction: column; 7984 width:100%; 7985} 7986 7987#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_addtocartbtn { 7988 font-size: 11px; 7989 color: #fff; 7990 padding: 8px 15px; 7991 width: 100%; 7992 border-radius: 20px; 7993 border: none; 7994 background: #2576a2; 7995 font-weight: 500; 7996} 7997 7998span.fr_24_upsell_product_price_wrap { 7999 display: flex; 8000 gap: 6px; 8001 margin-top: 3px; 8002 justify-content: center; 8003} 8004 8005.fr_24_upsell_form { 8006 width: 100%; 8007} 8008 8009#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_addtocartbtn .fr_24_upsell_product_price .compare-at-price { 8010 -webkit-text-decoration: line-through; 8011 text-decoration: line-through 8012} 8013 8014#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_addtocartbtn .fr_24_upsell_product_price .savings { 8015 vertical-align: baseline !important; 8016 vertical-align: initial !important 8017} 8018 8019#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product_name { 8020 font-weight: 700; 8021 font-size: 12px; 8022 margin: 7px 0px 8023} 8024 8025#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product_dropdown { 8026 position: relative; 8027 font-size: 8px; 8028 font-weight: 400; 8029 width:100%; 8030} 8031 8032#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product > a { 8033 width: 100%; 8034} 8035 8036#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product > a > img { 8037 width: 100%; 8038} 8039 8040#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product_dropdown_select { 8041 border-radius: 22px; 8042 padding: 7px 18px 7px 5px; 8043 text-wrap: wrap; 8044 color: #000 8045} 8046 8047#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product_dropdown::after { 8048 content: url("data:image/svg+xml,%3Csvg%20width%3D%226%22%20height%3D%224%22%20viewBox%3D%220%200%204%203%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org/2000/svg%22%3E%3Cpath%20d%3D%22M3.53%20-2.92844e-05L2%201.52664L0.47%20-2.90169e-05L-1.74846e-07%200.469971L2%202.46997L4%200.469971L3.53%20-2.92844e-05Z%22%20fill%3D%22black%22/%3E%3C/svg%3E"); 8049 position: absolute; 8050 right: 10px; 8051 top: 50%; 8052 pointer-events: none 8053} 8054 8055#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product { 8056 min-width: 38%; 8057 max-width: 38%; 8058 background-color: #f4f3f1; 8059 border-radius: 5px; 8060 padding: 10px 7px; 8061 display: flex; 8062 flex-direction: column; 8063 justify-content: space-between 8064} 8065 8066#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product img { 8067 max-width: 100%; 8068 aspect-ratio: 1/1 8069} 8070 8071#gladlyChat_container.preload { 8072 z-index: 999999 !important 8073} 8074 8075/* Castlery gift card promo */ 8076.castlery-gift-progress { 8077 margin: 12px; 8078 padding: 16px; 8079 border-radius: 10px; 8080 background: #f8f6f2; 8081 border: 1px solid #e7e1d6; 8082} 8083 8084.castlery-gift-progress h3 { 8085 font-size: 15px; 8086 line-height: 1.4; 8087 color: #0f172a; 8088 font-weight: 700; 8089 margin: 0 0 6px; 8090 text-wrap: auto; 8091} 8092 8093.castlery-gift-progress p { 8094 margin: 0; 8095 font-size: 13px; 8096 line-height: 1.5; 8097 color: #334155; 8098} 8099 8100.castlery-gift-progress__eyebrow { 8101 display: inline-flex; 8102 align-items: center; 8103 gap: 8px; 8104 font-size: 12px; 8105 font-weight: 700; 8106 color: #047857; 8107 text-transform: uppercase; 8108 margin-bottom: 4px; 8109} 8110 8111.castlery-gift-progress__title { 8112 display: block; 8113} 8114 8115.castlery-gift-progress__meta { 8116 display: flex; 8117 justify-content: space-between; 8118 gap: 12px; 8119 margin-top: 14px; 8120 margin-bottom: 8px; 8121 font-size: 11px; 8122 line-height: 1.4; 8123 font-weight: 700; 8124 color: #475569; 8125 text-transform: uppercase; 8126} 8127 8128.castlery-gift-progress__bar-wrap { 8129 position: relative; 8130 margin-top: 10px; 8131 padding-bottom: 0px; 8132} 8133 8134.castlery-gift-progress__bar {
8135 position: relative; 8136 height: 8px; 8137 border-radius: 999px; 8138 background: #E2E8F0; 8139 overflow: visible; 8140} 8141 8142.castlery-gift-progress__fill { 8143 display: block; 8144 height: 100%; 8145 background: linear-gradient(90deg, #e8ac5eff 0%, #FAAF4F 100%); 8146 border-radius: 999px; 8147} 8148 8149.castlery-gift-progress__marker { 8150 position: absolute; 8151 top: 50%; 8152 width: 14px; 8153 height: 14px; 8154 border-radius: 50%; 8155 background: #fff; 8156 border: 2px solid #94a3b8; 8157 transform: translate(-50%, -50%); 8158 z-index: 2; 8159} 8160 8161.castlery-gift-progress__marker.is-active { 8162 background: #f9af4f; 8163 border-color: #f9af4f; 8164} 8165 8166.castlery-gift-progress__labels { 8167 position: relative; 8168 margin-top: 12px; 8169 height: 34px; 8170} 8171 8172.castlery-gift-progress__label { 8173 position: absolute; 8174 top: 0; 8175 transform: translateX(-50%); 8176 text-align: center; 8177 min-width: 92px; 8178} 8179 8180.castlery-gift-progress__label strong { 8181 display: block; 8182 font-size: 12px; 8183 line-height: 1.2; 8184 color: #0f172a; 8185 font-weight: 700; 8186} 8187 8188.castlery-gift-progress__label span { 8189 display: block; 8190 margin-top: 2px; 8191 font-size: 11px; 8192 line-height: 1.2; 8193 color: #64748b; 8194} 8195 8196.castlery-gift-progress__label.is-active strong, 8197.castlery-gift-progress__label.is-active span { 8198 color: #df8f28; 8199} 8200 8201.castlery-gift-progress__label--500 { 8202 transform: translateX(-100%); 8203 text-align: right; 8204} 8205.castlery-earned-card h4 { 8206 font-size: 15px; 8207 margin: 0px; 8208 text-transform: capitalize; 8209} 8210.castlery-earned-card { 8211 margin: 0 12px 12px; 8212 padding: 12px 13px; 8213 border-radius: 12px; 8214 background: #faf7f2; 8215 border: 1px solid #eadfce; 8216 text-align: center; 8217} 8218 8219.castlery-earned-card__badge { 8220 display: inline-block; 8221 margin-bottom: 8px; 8222 padding: 4px 8px; 8223 border-radius: 999px; 8224 background: #efe7da; 8225 color: #6b4f2a; 8226 font-size: 11px; 8227 font-weight: 700; 8228 line-height: 1.2; 8229 text-transform: uppercase; 8230} 8231 8232.castlery-earned-card h3 { 8233 margin: 0 0 6px; 8234 font-size: 18px; 8235 line-height: 1.3; 8236 color: #0f172a; 8237} 8238 8239.castlery-earned-card p { 8240 margin: 5px 0px 0px; 8241 font-size: 13px; 8242 line-height: 1.2; 8243 color: #000; 8244} 8245.castlery-gift-progress__bar.green-col span.castlery-gift-progress__fill { 8246 background: linear-gradient(90deg, #10B981 0%, #10B981 100%); 8247} 8248.castlery-gift-progress__bar.green-col .castlery-gift-progress__marker.is-active { 8249 background: #10B981; 8250 border-color: #10B981; 8251} 8252.castlery-gift-progress__bar.green-col + .castlery-gift-progress__labels .castlery-gift-progress__label.is-active strong, .castlery-gift-progress__bar.green-col + .castlery-gift-progress__labels .castlery-gift-progress__label.is-active span { 8253 color: #10B981; 8254} 8255.flooring-rug-progress { 8256 margin: 12px; 8257 padding: 16px; 8258 border-radius: 10px; 8259 background: #fdf8ee; 8260 border: 1px solid #f0e0b8; 8261} 8262.flooring-rug-progress h3 { 8263 font-size: 15px; 8264 line-height: 1.4; 8265 color: #0f172a; 8266 font-weight: 700; 8267 margin: 0 0 6px; 8268} 8269.flooring-rug-progress p { 8270 margin: 0; 8271 font-size: 13px; 8272 line-height: 1.5; 8273 color: #334155; 8274} 8275.flooring-rug-progress .unlockd-text { 8276 display: block; 8277} 8278.flooring-rug-progress__meta { 8279 display: flex; 8280 justify-content: space-between; 8281 gap: 12px; 8282 margin-top: 14px; 8283 margin-bottom: 8px; 8284 font-size: 11px; 8285 font-weight: 700; 8286 color: #475569; 8287 text-transform: uppercase; 8288} 8289.flooring-rug-progress__bar {
8290 position: relative; 8291 height: 8px; 8292 border-radius: 999px; 8293 background: #E2E8F0; 8294 overflow: hidden; 8295} 8296.flooring-rug-progress__fill { 8297 display: block; 8298 height: 100%; 8299 background: linear-gradient(90deg, #f0c069 0%, #FAAF4F 100%); 8300 border-radius: 999px; 8301} 8302/* Both locked states (no spend, or spend-met-no-rug) stay yellow â no extra rule needed, 8303 is-locked just doesn't override the default fill color above */ 8304.flooring-rug-progress.is-unlocked { 8305 background: #eefaf3; 8306 border-color: #b9e9cd; 8307} 8308.flooring-rug-progress.is-unlocked .flooring-rug-progress__fill { 8309 background: linear-gradient(90deg, #10B981 0%, #10B981 100%); 8310} 8311@media (min-width:768px){ 8312 #shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product_dropdown_select { 8313 border-radius: 22px; 8314 padding: 7px 18px 7px 10px; 8315 text-wrap: wrap; 8316 color: #000; 8317 font-size: 14px; 8318 } 8319} 8320@media (max-width:768px){ 8321 #shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product_dropdown_select { 8322 font-size: 12px; 8323 } 8324} 8325@media (max-width: 768px) { 8326 span.fr_24_upsell_product_price_wrap { 8327 flex-wrap: wrap; 8328 } 8329 8330 span.fr_24_upsell_product_price_wrap > .fr_24_upsell_product_discount { 8331 flex: 0 0 100%; 8332 width: 100%; 8333 text-align: center; 8334 } 8335 8336 .castlery-gift-progress { 8337 margin: 12px 16px 12px; 8338 } 8339 8340 .castlery-earned-card { 8341 margin: 0 16px 10px; 8342 } 8343 8344 .castlery-gift-progress__labels { 8345 height: 12px; 8346 } 8347 8348 .castlery-gift-progress__label { 8349 min-width: 78px; 8350 } 8351 8352 .castlery-gift-progress__label strong { 8353 font-size: 11px; 8354 } 8355 8356 .castlery-gift-progress__label span { 8357 font-size: 10px; 8358 } 8359} 8360@media only screen and (max-width: 400px) { 8361 #shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product_dropdown_select { 8362 font-size: 12px; 8363 padding: 7px 18px 7px 10px; 8364 } 8365 8366 .castlery-gift-progress__label { 8367 min-width: 70px; 8368 } 8369 8370 .castlery-gift-progress__label--500 { 8371 transform: translateX(-100%); 8372 } 8373} 8374 8375@media only screen and (max-width: 360px){ 8376 #shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product_dropdown_select { 8377 font-size: 10px 8378 } 8379 8380 #shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product { 8381 min-width: 42%; 8382 max-width: 42% 8383 } 8384 8385 .castlery-gift-progress__label strong { 8386 font-size: 10px; 8387 } 8388 8389 .castlery-gift-progress__label span { 8390 font-size: 9px; 8391 } 8392} 8393.pop-cart__upsell { 8394 margin: 0 16px 16px; 8395 padding-top: 12px; 8396 border-top: 1px solid #e5e7eb; 8397} 8398 8399.pop-cart__upsell-heading { 8400 margin: 0 0 12px; 8401 font-size: 20px; 8402 font-weight: 700; 8403 color: #0f172a; 8404} 8405 8406.pop-cart__upsell-wrap { 8407 position: relative; 8408} 8409 8410.pop-cart__upsell-scroll { 8411 display: flex; 8412 gap: 14px; 8413 overflow-x: auto; 8414 scroll-behavior: smooth; 8415 scroll-snap-type: x proximity; 8416 -webkit-overflow-scrolling: touch; 8417 padding-bottom: 4px; 8418} 8419 8420.pop-cart__upsell-scroll::-webkit-scrollbar { display: none; } 8421 8422.pop-cart__upsell-card { 8423 flex: 0 0 calc(33.333% - 10px); 8424 scroll-snap-align: start; 8425 text-decoration: none; 8426 color: inherit; 8427 display: block; 8428 text-align:center; 8429} 8430 8431.pop-cart__upsell-media { 8432 width: 100%; 8433 aspect-ratio: 1 / 1; 8434 border-radius: 8px; 8435 overflow: hidden; 8436 background: #f1f5f9; 8437 margin-bottom: 8px; 8438} 8439 8440.pop-cart__upsell-media img { 8441 width: 100%; 8442 height: 100%; 8443 object-fit: cover; 8444 display: block; 8445} 8446 8447.pop-cart__upsell-title { 8448 font-size: 13px; 8449 font-weight: 500; 8450 color: #0f172a; 8451 line-height: 1.35; 8452 margin-bottom: 2px; 8453} 8454 8455.pop-cart__upsell-price { 8456 font-size: 13px; 8457 color: #475569; 8458} 8459 8460.pop-cart__upsell-nav { 8461 position: absolute; 8462 top: 35%; 8463 transform: translateY(-50%); 8464 width: 32px; 8465 height: 32px; 8466 border-radius: 50%; 8467 background: #fff; 8468 border: 1px solid #e2e8f0; 8469 box-shadow: 0 2px 6px rgba(0,0,0,.12); 8470 display: flex; 8471 align-items: center; 8472 justify-content: center; 8473 cursor: pointer; 8474 color: #0f172a; 8475 padding: 0; 8476} 8477
8478.pop-cart__upsell-nav--prev { left: -6px; } 8479.pop-cart__upsell-nav--next { right: -6px; } 8480 8481@media (max-width: 480px) { 8482 .pop-cart__upsell-card { flex: 0 0 calc(50% - 7px); } 8483} 8484</style> 8485 8486<style> 8487.free-rug-progress { 8488 margin: 12px; 8489 padding: 16px; 8490 border-radius: 10px; 8491 background: #fdf8ee; 8492 border: 1px solid #f0e0b8; 8493} 8494.free-rug-progress h3 { 8495 font-size: 15px; 8496 line-height: 1.4; 8497 color: #0f172a; 8498 font-weight: 700; 8499 margin: 0 0 6px; 8500 text-wrap: auto; 8501} 8502.free-rug-progress h3 span { 8503 display: inline-flex; 8504 align-items: center; 8505 gap: 8px; 8506} 8507.free-rug-progress p { 8508 margin: 0; 8509 font-size: 13px; 8510 line-height: 1.5; 8511 color: #334155; 8512} 8513.free-rug-progress__meta { 8514 display: flex; 8515 justify-content: space-between; 8516 gap: 12px; 8517 margin-top: 14px; 8518 margin-bottom: 8px; 8519 font-size: 11px; 8520 font-weight: 700; 8521 color: #475569; 8522 text-transform: uppercase; 8523} 8524.free-rug-progress__bar { 8525 position: relative; 8526 height: 8px; 8527 border-radius: 999px; 8528 background: #E2E8F0; 8529 overflow: hidden; 8530} 8531.free-rug-progress__fill { 8532 display: block; 8533 height: 100%; 8534 background: linear-gradient(90deg, #f0c069 0%, #FAAF4F 100%); 8535 border-radius: 999px; 8536} 8537.free-rug-progress.is-unlocked { 8538 background: #eefaf3; 8539 border-color: #b9e9cd; 8540} 8541.free-rug-progress.is-unlocked .free-rug-progress__fill { 8542 background: linear-gradient(90deg, #10B981 0%, #10B981 100%); 8543} 8544@media (max-width: 768px) { 8545 .free-rug-progress { margin: 12px 16px; } 8546} 8547</style> 8548 8549<style> 8550/* Promo slider */ 8551.pop-cart .cart-promo { 8552 margin: 16px; 8553 padding-top: 16px; 8554 border-top: 1px solid #e5e7eb; 8555} 8556.pop-cart .cart-promo__heading { 8557 margin: 0 0 6px; 8558 line-height: 1.3; 8559 letter-spacing: 0.08em; 8560 text-transform: uppercase; 8561} 8562.pop-cart .cart-promo__subheading { 8563 margin: 0 0 16px; 8564 line-height: 1.2; 8565 text-transform: none; 8566 text-wrap: auto; 8567} 8568.pop-cart .cart-promo__wrap { 8569 position: relative; 8570 container-type: inline-size; 8571} 8572.pop-cart .cart-promo__track { 8573 display: flex; 8574 gap: 12px; 8575 overflow-x: auto; 8576 scroll-snap-type: x mandatory; 8577 scroll-behavior: smooth; 8578 -webkit-overflow-scrolling: touch; 8579 scrollbar-width: none; 8580} 8581.pop-cart .cart-promo__track::-webkit-scrollbar { display: none; } 8582.pop-cart .cart-promo__card { 8583 flex: 0 0 calc(var(--promo-card-w, 40) * 1%); 8584 scroll-snap-align: start; 8585 display: block; 8586 text-align: center; 8587 text-decoration: none; 8588 color: inherit; 8589} 8590.pop-cart .cart-promo__media { 8591 aspect-ratio: 1 / var(--promo-ratio, 1.25); 8592 overflow: hidden; 8593 background: var(--promo-media-bg, #f5f5f5); 8594 margin-bottom: 12px; 8595} 8596.pop-cart .cart-promo__media img, 8597.pop-cart .cart-promo__placeholder { 8598 width: 100%; 8599 height: 100%; 8600 object-fit: cover; 8601 display: block; 8602} 8603.pop-cart .cart-promo__title { 8604 margin: 0 0 6px; 8605 line-height: 1.3; 8606} 8607.pop-cart .cart-promo__link { 8608 display: inline-block; 8609 letter-spacing: 0.06em; 8610 text-transform: uppercase; 8611 text-decoration: underline; 8612 text-underline-offset: 4px; 8613} 8614.pop-cart .cart-promo__card:hover .cart-promo__link { 8615 text-decoration-thickness: 2px; 8616} 8617.pop-cart .cart-promo__nav { 8618 position: absolute; 8619 top: 40%; 8620 top: calc(var(--promo-card-w, 40) * 1cqw * var(--promo-ratio, 1.25) / 2); 8621 transform: translateY(-50%); 8622 width: 36px; 8623 height: 36px; 8624 border-radius: 50%; 8625 background: #fff; 8626 border: 1px solid #e2e8f0; 8627 box-shadow: 0 2px 6px rgba(0, 0, 0, .12); 8628 display: flex; 8629 align-items: center; 8630 justify-content: center; 8631 padding: 0; 8632 color: #0f172a; 8633 cursor: pointer; 8634 transition: opacity .2s; 8635 z-index: 2; 8636} 8637.pop-cart .cart-promo__nav--prev { left: 8px; } 8638.pop-cart .cart-promo__nav--next { right: 8px; } 8639.pop-cart [data-at-start] .cart-promo__nav--prev, 8640.pop-cart [data-at-end] .cart-promo__nav--next { 8641 opacity: 0; 8642 pointer-events: none; 8643} 8644</style> 8645
8646<script> 8647(function () { 8648 if (window.__cartPromoSliderInit) return; 8649 window.__cartPromoSliderInit = true; 8650 8651 function updateArrows(wrap) { 8652 var track = wrap && wrap.querySelector("[data-promo-slider]"); 8653 if (!track) return; 8654 var max = track.scrollWidth - track.clientWidth; 8655 wrap.toggleAttribute("data-at-start", track.scrollLeft <= 2); 8656 wrap.toggleAttribute("data-at-end", track.scrollLeft >= max - 2); 8657 } 8658 8659 // Arrow clicks (delegated so it keeps working after the cart re-renders) 8660 document.addEventListener("click", function (e) { 8661 var btn = e.target.closest("[data-promo-prev], [data-promo-next]"); 8662 if (!btn) return; 8663 e.preventDefault(); 8664 8665 var wrap = btn.closest("[data-promo-slider-wrap]"); 8666 var track = wrap.querySelector("[data-promo-slider]"); 8667 var card = track.querySelector(".cart-promo__card"); 8668 var gap = parseFloat(getComputedStyle(track).columnGap) || 0; 8669 var step = card ? card.getBoundingClientRect().width + gap : track.clientWidth * 0.8; 8670 8671 track.scrollBy({ 8672 left: btn.hasAttribute("data-promo-next") ? step : -step, 8673 behavior: "smooth" 8674 }); 8675 }); 8676 8677 // Hide prev/next at the start/end of the slider 8678 document.addEventListener("scroll", function (e) { 8679 if (e.target.matches && e.target.matches("[data-promo-slider]")) { 8680 updateArrows(e.target.closest("[data-promo-slider-wrap]")); 8681 } 8682 }, true); 8683 8684 ["mouseover", "touchstart", "focusin"].forEach(function (type) { 8685 document.addEventListener(type, function (e) { 8686 var wrap = e.target.closest && e.target.closest("[data-promo-slider-wrap]"); 8687 if (wrap) updateArrows(wrap); 8688 }, { passive: true }); 8689 }); 8690})(); 8691</script>
8691 8692 8693 8694</div> 8695 8696 <div id="shopify-section-site-search" class="shopify-section"><div class="site-search js-site-search"> 8697 <div class="site-search__bar" id="predictive-search"> 8698 <div class="container container--large"> 8699 <form class="js-site-search__form" action="/search" method="get" role="search"> 8700 <input type="text" class="js-site-search__input" id="search" name="q" placeholder="Search..."> 8701 <button type="button" class="menu-icon reset js-site-search__close"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 8702 <path d="M15.1421 1.00151L0.999954 15.1436" stroke="#111111" stroke-width="1.5" stroke-linecap="round"/> 8703 <path d="M15.1421 15.1421L0.999955 0.999999" stroke="#111111" stroke-width="1.5" stroke-linecap="round"/> 8704</svg> </button> 8705 <button type="submit" class="hidden">Submit</button> 8706 </form> 8707 </div> 8708 </div> 8709 8710 <div class="site-search__results js-site-search__results" id="predictive-search-results"> 8711 <div class="container container--large"> 8712 8713 </div> 8714 </div> 8715</div> 8716</div> 8717 8718 <div class="pdm-lightbox pdm-lightbox--reset"> 8719 <div class="pdm-lightbox__container"> 8720 <button class="pdm-lightbox__close" type="button">Close Popup</button> 8721 <div class="pdm-lightbox__content"></div> 8722 </div> 8723</div> 8724 8725 8726<div class="pdm-lightbox product-addsamplepopup"> 8727 <div class="pdm-lightbox__container"> 8728 <button class="pdm-lightbox__close" type="button">Close Popup</button> 8729 <div class="pdm-lightbox__content"></div> 8730 </div> 8731</div> 8732 8733 8734<div class="pdm-lightbox gallerypopup"> 8735 <div class="pdm-lightbox__container"> 8736 <button class="pdm-lightbox__close" type="button">Close Popup</button> 8737 <div class="pdm-lightbox__content"></div> 8738 </div> 8739</div> 8740 8741 8742 8743 8744<div id="quick-view-modal" style="display:none;" class="quick-view-modal" data-product-handle=""> 8745 <div class="quick-view-modal__content"> 8746 <div class="quick-view-loader"></div> 8747 <button class="quick-view-modal__close">×</button> 8748 <div class="quick-view-product"> 8749 <div class="quick-view-product__images"> 8750 </div> 8751 <div class="quick-view-product__info"> 8752 <div class="wrap-quick-view"> 8753 <h2 class="quick-view-product__title"> 8754 </h2> 8755 <div class="quick-view-product__price"> 8756 <span><span class=main-price price js-product__price></span></span> 8757 <span>(for box)</span> 8758 </div> 8759 </div> 8760 <form id="quick-view-add-to-cart-form" action="/cart/add" method="post" enctype="multipart/form-data"> 8761 8762 <div class="quick-view-product__variants"> 8763 </div> 8764 8765 8766 <input type="hidden" name="id" class="quick-view-product__variant-id"> 8767 <button type="submit" class="quick-view-product__add-to-cart">Add Sample</button> 8768 <a href="#" class="quick-view-product__view-details">View Details</a> 8769 8770 </form> 8771 8772 </div> 8773 </div> 8774 </div> 8775</div> 8776 8777 8778 8779<style> 8780 #quick-view-modal.provence-natural-hardwood .quick-view-product__price { 8781 display: none; 8782 } 8783 .quick-view-modal { 8784 position: fixed; 8785 z-index: 1000; 8786 left: 0; 8787 top: 0; 8788 width: 100%; 8789 height: 100%; 8790 overflow: auto; 8791 background-color: rgb(0 0 0 / 94%); 8792 display: flex; 8793 align-items: center; 8794 justify-content: center; 8795 } 8796 8797 8798 .quick-view-modal__content { 8799 background-color: #fefefe; 8800 margin: auto; 8801 padding: 30px; 8802 border: 1px solid #888; 8803 width: 80%; 8804 max-width: 1180px; 8805 8806 border-radius: 40px; 8807 height: 700px; 8808 overflow-y: auto; 8809 } 8810 8811 8812 .quick-view-modal__close { 8813 color: #aaa; 8814 position: absolute; 8815 top: 10px; 8816 right: 20px; 8817 font-size: 28px; 8818 font-weight: bold; 8819 border: none; 8820 background: none; 8821 cursor: pointer; 8822 background: #fff; 8823 z-index: 1; 8824 padding: 0px; 8825 line-height: 1; 8826 height: 17px; 8827 width: 17px; 8828 display: flex; 8829 align-items: center; 8830 justify-content: center; 8831 } 8832 8833 8834 .quick-view-modal__close:hover, 8835 .quick-view-modal__close:focus { 8836 color: black; 8837 text-decoration: none; 8838 cursor: pointer; 8839 } 8840 8841 8842 .quick-view-product { 8843 display: flex; 8844 gap: 20px; 8845 } 8846 8847 8848 .quick-view-product__images { 8849 width: 50%; 8850 overflow: hidden; 8851 position:relative; 8852 } 8853 8854 8855 .quick-view-product__images .slick-track { 8856 display: flex; 8857 } 8858 8859 8860 .quick-view-product__images img { 8861 max-width: 100%; 8862 height: auto; 8863 margin-bottom: 10px; 8864 width: 100%; 8865 } 8866 8867 8868 .quick-view-product__info { 8869 width: 50%; 8870 padding-top: 50px; 8871 } 8872 8873 8874 .quick-view-product__variants .quick-view-product__option { 8875 margin-bottom: 15px; 8876 } 8877 8878 8879 .quick-view-product__price > span:nth-child(2) { 8880 display: none; 8881 } 8882 8883 8884 .quick-view-product__price.is-box-variant > span:nth-child(2) { 8885 display: block; 8886 } 8887 8888 .quick-view-product__add-to-cart, .quick-view-product__view-details { 8889 display: inline-flex; 8890 margin-top: 0px; 8891 padding: .75rem .5rem; 8892 text-decoration: none; 8893 color: #fff; 8894 border: 1px solid #000; 8895 cursor: pointer; 8896 border-radius: 25px; 8897 width: 42%; 8898 align-items: center; 8899 justify-content: center; 8900 min-height: 47px; 8901 } 8902 8903 8904 .quick-view-product__add-to-cart { 8905 background:#000; 8906 color:#fff; 8907 } 8908 .quick-view-product__add-to-cart:hover { 8909 background:#fff; 8910 color:#000; 8911 } 8912 .quick-view-product__view-details { 8913 background:#fff; 8914 color:#000; 8915 } 8916 .quick-view-product__view-details:hover { 8917 background:#000; 8918 color:#fff; 8919 } 8920 8921 8922 .quick-view-product__view-details { 8923 /* background-color: #555; */ 8924 margin-left: 10px; 8925 } 8926 h4.quick-view-option-title { 8927 font-size: 14px; 8928 margin: 0px; 8929 } 8930 8931 8932 h4.quick-view-option-title + .pdp-atc__group__buttons { 8933 margin: 5px 0px 20px; 8934 } 8935 8936 8937 h4.quick-view-option-title:nth-child(1) { 8938 margin-top: 25px; 8939 } 8940 h2.quick-view-product__title { 8941 font-size: 1.75rem; 8942 line-height: 1 !important; 8943 padding-bottom: 8px !important; 8944 text-align: start !important; 8945 font-weight: 600; 8946 } 8947 8948 8949 .quick-view-product__price { 8950 display: flex; 8951 flex-direction: column; 8952 align-items: center; 8953 } 8954 8955 8956 .wrap-quick-view { 8957 display: flex; 8958 align-items: center; 8959 justify-content: space-between; 8960 } 8961 8962 8963 .quick-view-product__price > span:nth-child(1) { 8964 font-weight: 600; 8965 } 8966 8967 8968 .quick-view-product__price > span:nth-child(2) { 8969 text-wrap: nowrap; 8970 font-weight: 100; 8971 font-size: 14px; 8972 } 8973 button.quick-view-btn { 8974 display: inline-block; 8975 text-decoration: none; 8976 border-radius: 2rem; 8977 transition: all .3s ease; 8978 color: #000000; 8979 background: #fff; 8980 cursor: pointer; 8981 border: 1px solid #000000; 8982 min-width: 130px; 8983 font-family: Montserrat; 8984 font-weight: 500; 8985 font-style: Medium; 8986 font-size: 14px !important; 8987 line-height: 20px; 8988 letter-spacing: -0.15px; 8989 padding: 0px 0px !important; 8990 min-height: 48px; 8991 } 8992 button.quick-view-btn:hover { 8993 background: #000; 8994 color: #fff; 8995 } 8996 /* Spinner for loading state */ 8997 .quick-view-loader { 8998 border: 4px solid #f3f3f3; /* Light grey */
8999 border-top: 4px solid #3498db; /* Blue */ 9000 border-radius: 50%; 9001 width: 40px; 9002 height: 40px; 9003 animation: spin 1s linear infinite; 9004 position: absolute; 9005 top: calc(50% - 20px); 9006 left: calc(50% - 20px); 9007 display: none; /* Hidden by default */ 9008 } 9009 9010 9011 9012 .quick-view-product__variants .pdp-atc__groups .pdp-atc__group__buttons li input + label { 9013 display: -webkit-box; 9014 display: -ms-flexbox; 9015 display: flex; 9016 align-items: start; 9017 padding: .5rem 1rem; 9018 border: 1px solid #acacac; 9019 border-radius: 3px; 9020 background-color: #fff; 9021 margin: .25rem auto; 9022 flex-direction: column; 9023 } 9024 9025 9026 .quick-view-product__variants .pdp-atc__groups .pdp-atc__group__buttons li input + label ul.product-option__meta { 9027 margin: 0px; 9028 padding: 0px; 9029 width: 100%; 9030 display: flex; 9031 gap: 8px; 9032 } 9033 9034 9035 .quick-view-product__variants .pdp-atc__groups .pdp-atc__group__buttons li input + label > span { 9036 display: block; 9037 width: 100%; 9038 font-size: 1rem; 9039 font-weight: 700; 9040 } 9041 9042 9043 .quick-view-product__variants .pdp-atc__groups .pdp-atc__group__buttons li input + label > span ul.product-option__meta { 9044 margin: 0px; 9045 padding: 0px; 9046 } 9047 9048 9049 .quick-view-product__variants .pdp-atc__groups .pdp-atc__group__buttons li input + label ul.product-option__meta li { 9050 color: #717171; 9051 font-size: 12.8px; 9052 } 9053 .quick-view-product__variants .pdp-atc__groups .pdp-atc__group__buttons li input + label ul.product-option__meta li { 9054 text-wrap-mode: nowrap; 9055 } 9056 .pdp-atc__group__buttons li input[type=radio]:checked + label {border-color: #faaf4f;-webkit-box-shadow: 0 0 0 1px #faaf4f;box-shadow: 0 0 0 1px #faaf4f;} 9057 9058 9059 .quick-view-product__images .slick-button.slick-arrow { 9060 position: absolute; 9061 top: 50%; 9062 z-index: 999; 9063 } 9064 9065 9066 .quick-view-product__images .button-prev { 9067 left: 0; 9068 } 9069 9070 9071 .quick-view-product__images .button-next { 9072 right: 0; 9073 } 9074 9075 9076 @keyframes spin { 9077 0% { transform: rotate(0deg); } 9078 100% { transform: rotate(360deg); } 9079 } 9080 9081 9082 #quick-view-modal.quick-view--loading .quick-view-product { 9083 visibility: hidden; 9084 opacity: 0; 9085 } 9086 #quick-view-modal.quick-view--loading .quick-view-loader { 9087 display: block; 9088 } 9089 9090 9091 #quick-view-modal.quick-view--loaded .quick-view-product { 9092 visibility: visible; 9093 opacity: 1; 9094 transition: opacity 0.3s ease-in-out; 9095 } 9096 9097 9098 .quick-view-modal .js-product-form__group.pdp-atc__group--type { 9099 display: none; 9100 } 9101 9102 9103 @media (max-width:768px){ 9104 9105 9106 .quick-view-product__info{ 9107 padding-top:0px; 9108 } 9109 .quick-view-modal__content { 9110 padding: 40px 15px 15px; 9111 width: 95%; 9112 border-radius: 4px; 9113 } 9114 .quick-view-product__images .slick-arrow svg { 9115 width: 25px; 9116 height: 25px; 9117 } 9118 9119 button.quick-view-btn { 9120 font-family: Montserrat; 9121 font-weight: 500; 9122 font-size: 12px !important; 9123 line-height: 20px; 9124 letter-spacing: -0.15px; 9125 min-height: 28px !important; 9126 width: 100%; 9127 } 9128 .quick-view-product { 9129 flex-direction: column; 9130 } 9131 .quick-view-product__images { 9132 width: 100%; 9133 } 9134 9135 .quick-view-product__info { 9136 width: 100%; 9137 } 9138 } 9139 @media (max-height: 700px) { 9140 .quick-view-modal__content { 9141 padding-bottom: 20%; 9142 } 9143 } 9144 9145 9146 9147</style> 9148 9149 9150
9151<script> 9152 document.querySelector('.quick-view-product__view-details').addEventListener('click', ()=>{ 9153 window.location = document.querySelector('.quick-view-product__view-details').getAttribute('href') 9154}) 9155</script>
9155 9156
9157<script> 9158// Make core refs/functions globally reachable 9159window.quickView = (function () { 9160 let modal, isUpdating = false; 9161 let currentProductData = null; 9162 let currentMetaObjectPrices = null; 9163 let currentCollectionClass = null; 9164 9165 9166 function init() { 9167 modal = document.getElementById('quick-view-modal'); 9168 if (!modal) return; 9169 9170 9171 const closeModalBtn = modal.querySelector('.quick-view-modal__close'); 9172 closeModalBtn?.addEventListener('click', closeAndResetModal); 9173 window.addEventListener('click', (e) => { if (e.target === modal) closeAndResetModal(); }); 9174 9175 9176 // Delegated click survives DOM swaps from filter/sort 9177 document.addEventListener('click', (e) => { 9178 const btn = e.target.closest('.quick-view-btn'); 9179 if (!btn) return; 9180 const handle = btn.dataset.productHandle; 9181 if (handle) openQuickView(handle); 9182 }); 9183 } 9184 9185 9186 // NEW: swap the collection class on the modal, removing whatever was there before 9187 function setCollectionClass(cls) { 9188 if (!modal) return; 9189 if (currentCollectionClass) modal.classList.remove(currentCollectionClass); 9190 currentCollectionClass = (cls && String(cls).trim()) ? String(cls).trim() : null; 9191 if (currentCollectionClass) modal.classList.add(currentCollectionClass); 9192 } 9193 9194 9195 function openQuickView(handle) { 9196 if (!modal) return; 9197 modal.classList.add('quick-view--loading'); 9198 modal.classList.remove('quick-view--loaded'); 9199 modal.style.display = 'flex'; 9200 document.documentElement.classList.add('quick-view-is-open'); 9201 9202 9203 // NEW: clear any leftover class from the previously opened product 9204 setCollectionClass(null); 9205 9206 9207 fetch(`/products/${handle}.js`) 9208 .then(r => r.json()) 9209 .then(productJson => { 9210 currentProductData = productJson; 9211 9212 9213 const preloadedData = window.quickViewData?.[handle] || null; 9214 currentMetaObjectPrices = preloadedData ? preloadedData.metaobject_prices : {}; 9215 9216 9217 // NEW: apply the collection class for this product 9218 setCollectionClass(preloadedData ? preloadedData.collection_class : null); 9219 9220 9221 populateQuickView(productJson, preloadedData ? preloadedData.html : null); 9222 console.log('------------'); 9223 console.log(currentProductData); 9224 console.log('%cQV collection class:', 'color: magenta; font-weight: bold;', currentCollectionClass); 9225 }) 9226 .catch(err => { 9227 console.error('Quick view fetch error', err); 9228 closeAndResetModal(); 9229 }); 9230 } 9231 9232 9233 function buildImages(product, prevArrowHTML, nextArrowHTML) { 9234 const wrap = modal.querySelector('.quick-view-product__images'); 9235 if (!wrap) return; 9236 9237 9238 // Clean re-init of Slick 9239 if ($(wrap).hasClass('slick-initialized')) $(wrap).slick('unslick'); 9240 wrap.innerHTML = product.media 9241 .filter(m => m.media_type === 'image') 9242 .map(m => `<div class="pro-img" data-media-id="${m.id}"><img src="${m.src}" alt="${m.alt || product.title}"></div>`) 9243 .join(''); 9244 9245 9246 const count = product.media.filter(m => m.media_type === 'image').length; 9247 if (count > 1) { 9248 $(wrap) 9249 .one('init', () => { 9250 modal.classList.remove('quick-view--loading'); 9251 modal.classList.add('quick-view--loaded'); 9252 }) 9253 .slick({ 9254 infinite: false, 9255 arrows: false, 9256 prevArrow: prevArrowHTML, 9257 nextArrow: nextArrowHTML, 9258 slidesToShow: 1, 9259 slidesToScroll: 1 9260 }); 9261 } else { 9262 modal.classList.remove('quick-view--loading'); 9263 modal.classList.add('quick-view--loaded'); 9264 } 9265 } 9266 9267 9268 function populateQuickView(product, html) { 9269 const prevArrowHTML = ` 9270 <div class="button-prev slick-button">â¦</div> 9271 `; 9272 const nextArrowHTML = ` 9273 <div class="button-next slick-button">â¦</div> 9274 `; 9275 9276 9277 buildImages(product, prevArrowHTML, nextArrowHTML); 9278 9279 9280 modal.querySelector('.quick-view-product__title').textContent = product.title; 9281 9282 9283 // (You still have this line; it shows product.price initially, then updateVariantState overwrites it) 9284 modal.querySelector('.quick-view-product__price .main-price').textContent = 9285 new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(product.price / 100); 9286 9287 9288 modal.querySelector('.quick-view-product__view-details').href = product.url; 9289 9290 9291 const variantsContainer = modal.querySelector('.quick-view-product__variants'); 9292 variantsContainer.innerHTML = html || '<p style="color:red;text-align:center;">Error: Variant options could not be loaded.</p>'; 9293 9294 9295 setupVariantSelection(); 9296 } 9297 9298 9299 function setupVariantSelection() { 9300 modal.querySelectorAll('.quick-view-product__variants .js-product-form__group').forEach(group => { 9301 const firstRadio = group.querySelector('input[type="radio"]'); 9302 if (firstRadio) firstRadio.checked = true; 9303 }); 9304 modal.querySelectorAll('.quick-view-product__variants input[type="radio"]').forEach(radio => { 9305 radio.addEventListener('change', () => updateVariantState()); 9306 });
9307 updateVariantState(); 9308 } 9309 9310 9311 // Helper: find option index by option name (Model can be option1 or option2) 9312 // Supports productData.options as ["Model","Type"] OR [{name:"Model"}, {name:"Type"}] 9313 function getOptionIndexByName(productData, optionName) { 9314 const opts = (productData && Array.isArray(productData.options)) ? productData.options : []; 9315 const target = (optionName || '').toLowerCase(); 9316 9317 9318 for (let i = 0; i < opts.length; i++) { 9319 const o = opts[i]; 9320 9321 9322 if (typeof o === 'string') { 9323 if (o.toLowerCase() === target) return i; 9324 continue; 9325 } 9326 9327 9328 if (o && typeof o === 'object') { 9329 const name = (o.name != null) ? String(o.name).toLowerCase() : ''; 9330 if (name === target) return i; 9331 } 9332 } 9333 return -1; 9334 } 9335 9336 9337 // FULL: metaobject fallback + logs 9338 function updateVariantState() { 9339 console.log('%c=== QV updateVariantState() START ===', 'color: blue; font-weight: bold;'); 9340 9341 9342 if (isUpdating) { 9343 console.log('%cQV blocked (isUpdating=true)', 'color: orange; font-weight: bold;'); 9344 return; 9345 } 9346 isUpdating = true; 9347 9348 9349 try { 9350 if (!modal) { 9351 console.warn('%cQV modal missing', 'color: red; font-weight: bold;'); 9352 return; 9353 } 9354 if (!currentProductData) { 9355 console.warn('%cQV currentProductData missing', 'color: red; font-weight: bold;'); 9356 return; 9357 } 9358 9359 9360 const selectedOptions = Array 9361 .from(modal.querySelectorAll('.quick-view-product__variants input[type="radio"]:checked')) 9362 .map(r => r.value); 9363 9364 9365 console.log('%cQV selectedOptions:', 'color: purple; font-weight: bold;', selectedOptions); 9366 console.log('%cQV product handle:', 'color: purple; font-weight: bold;', currentProductData.handle); 9367 console.log('%cQV product options (raw):', 'color: purple; font-weight: bold;', currentProductData.options); 9368 9369 9370 const selectedVariant = (currentProductData.variants || []).find(v => 9371 selectedOptions.every((opt, i) => v.options[i] === opt) 9372 ); 9373 9374 9375 console.log('%cQV selectedVariant:', 'color: teal; font-weight: bold;', selectedVariant); 9376 9377 9378 const variantIdInput = modal.querySelector('.quick-view-product__variant-id'); 9379 const addToCartButton = modal.querySelector('.quick-view-product__add-to-cart'); 9380 const priceContainer = modal.querySelector('.quick-view-product__price'); 9381 const priceDisplay = modal.querySelector('.quick-view-product__price .main-price'); 9382 9383 9384 console.log('%cQV DOM found:', 'color: gray; font-weight: bold;', { 9385 variantIdInput: !!variantIdInput, 9386 addToCartButton: !!addToCartButton, 9387 priceContainer: !!priceContainer, 9388 priceDisplay: !!priceDisplay 9389 }); 9390 9391 9392 if (!priceDisplay) return; 9393 9394 9395 if (selectedVariant) { 9396 // Basic wiring 9397 if (variantIdInput) variantIdInput.value = selectedVariant.id; 9398 9399 9400 // 1) Variant metafields (dollars as strings) 9401 const variantMeta = (window.variantMetafields || {})[selectedVariant.id] || {}; 9402 const rawSqftPrice = variantMeta.sqft_price; 9403 const rawSqftCompare = variantMeta.sqft_compare_at_price; 9404 9405 9406 const variantSqftPriceCents = 9407 rawSqftPrice && !isNaN(parseFloat(rawSqftPrice)) 9408 ? Math.round(parseFloat(rawSqftPrice) * 100) 9409 : 0; 9410 9411 9412 const variantSqftCompareCents = 9413 rawSqftCompare && !isNaN(parseFloat(rawSqftCompare)) 9414 ? Math.round(parseFloat(rawSqftCompare) * 100) 9415 : 0; 9416 9417 9418 console.log('%cQV variantMeta:', 'color: brown; font-weight: bold;', variantMeta); 9419 console.log('%cQV variantSqft cents:', 'color: brown; font-weight: bold;', { 9420 rawSqftPrice, 9421 rawSqftCompare, 9422 variantSqftPriceCents, 9423 variantSqftCompareCents 9424 }); 9425 9426 9427 // 1.5) Metaobject fallback (CENTS) from window.quickViewData[handle].metaobject_prices[modelValue] 9428 const modelIdx = getOptionIndexByName(currentProductData, 'Model'); 9429 const modelValue = 9430 (modelIdx > -1 && selectedVariant.options && selectedVariant.options[modelIdx]) 9431 ? selectedVariant.options[modelIdx] 9432 : ''; 9433 9434 9435 // Prefer preloaded quickViewData but also allow currentMetaObjectPrices 9436 const qvHandle = currentProductData.handle; 9437 const qv = (window.quickViewData && window.quickViewData[qvHandle]) ? window.quickViewData[qvHandle] : null; 9438 const metaPricesMap = (qv && qv.metaobject_prices) ? qv.metaobject_prices : currentMetaObjectPrices; 9439 9440
9441 const keyRaw = modelValue || ''; 9442 const moPrices = metaPricesMap ? (metaPricesMap[keyRaw] || null) : null; 9443 9444 9445 console.log('%cQV metaobject lookup:', 'color: darkgreen; font-weight: bold;', { 9446 modelIdx, 9447 modelValue, 9448 keyRaw, 9449 hasQuickViewData: !!qv, 9450 metaKeys: metaPricesMap ? Object.keys(metaPricesMap) : [], 9451 moPrices 9452 }); 9453 9454 9455 // Metaobject prices must be cents in JS: { price_cents, compare_cents } 9456 const metaSqftPriceCents = 9457 (moPrices && moPrices.price_cents != null && moPrices.price_cents !== '') 9458 ? Number(moPrices.price_cents) 9459 : 0; 9460 9461 9462 const metaSqftCompareCents = 9463 (moPrices && moPrices.compare_cents != null && moPrices.compare_cents !== '') 9464 ? Number(moPrices.compare_cents) 9465 : 0; 9466 9467 9468 console.log('%cQV meta cents:', 'color: darkgreen; font-weight: bold;', { 9469 metaSqftPriceCents, 9470 metaSqftCompareCents 9471 }); 9472 9473 9474 // 2) Final price/compare in cents: 9475 // Variant metafields -> Metaobject -> 0 (NO fallback to variant.price) 9476 let priceInCents = 9477 variantSqftPriceCents > 0 9478 ? variantSqftPriceCents 9479 : (metaSqftPriceCents > 0 ? metaSqftPriceCents : 0); 9480 9481 9482 let comparePriceInCents = 9483 variantSqftCompareCents > 0 9484 ? variantSqftCompareCents 9485 : (metaSqftCompareCents > 0 ? metaSqftCompareCents : 0); 9486 9487 9488 console.log('%cQV final cents:', 'color: teal; font-weight: bold;', { 9489 priceInCents, 9490 comparePriceInCents 9491 }); 9492 9493 9494 // 3) Render HTML 9495 const priceFormatted = new Intl.NumberFormat('en-US', { 9496 style: 'currency', 9497 currency: 'USD' 9498 }).format(priceInCents / 100); 9499 9500 9501 let priceHtml = `<span class='p-r-ice'>${priceFormatted}`; 9502 9503 9504 if (comparePriceInCents > priceInCents && comparePriceInCents > 0) { 9505 const compareFormatted = new Intl.NumberFormat('en-US', { 9506 style: 'currency', 9507 currency: 'USD' 9508 }).format(comparePriceInCents / 100); 9509 9510 9511 const pct = Math.round(((comparePriceInCents - priceInCents) / comparePriceInCents) * 100); 9512 priceHtml += ` <del>${compareFormatted}</del> <span class="sqft-text">per sq ft</span> <span class="off-percent">${pct}% Off</span>`; 9513 } else { 9514 priceHtml += ' <span class="sqft-text">per sq ft</span>'; 9515 } 9516 9517 9518 priceHtml += '</span>'; 9519 priceDisplay.innerHTML = priceHtml; 9520 9521 9522 console.log('%cQV rendered priceHtml:', 'color: green; font-weight: bold;', priceHtml); 9523 9524 9525 // 4) Box label + ATC button 9526 const isBoxVariant = selectedOptions.some(o => (o || '').toLowerCase() === 'box'); 9527 if (priceContainer) priceContainer.classList.toggle('is-box-variant', isBoxVariant); 9528 9529 9530 console.log('%cQV isBoxVariant:', 'color: gray; font-weight: bold;', isBoxVariant); 9531 9532 9533 if (addToCartButton) { 9534 addToCartButton.textContent = selectedVariant.available ? 'Add Sample' : 'Sold Out'; 9535 addToCartButton.disabled = !selectedVariant.available; 9536 } 9537 9538 9539 // 5) Sync gallery image (unchanged) 9540 if (selectedVariant.featured_media?.id) { 9541 const target = modal.querySelector(`.pro-img[data-media-id="${selectedVariant.featured_media.id}"]`); 9542 if (target) { 9543 const slide = target.closest('.slick-slide'); 9544 const idx = $(slide).data('slick-index'); 9545 if (idx !== undefined) { 9546 $('.quick-view-product__images').slick('slickGoTo', idx, true); 9547 } 9548 } 9549 } 9550 } else { 9551 console.warn('%cQV No matching variant for selectedOptions', 'color: orange; font-weight: bold;', selectedOptions); 9552 9553 9554 if (variantIdInput) variantIdInput.value = ''; 9555 if (addToCartButton) { 9556 addToCartButton.textContent = 'Unavailable'; 9557 addToCartButton.disabled = true; 9558 } 9559 if (priceContainer) priceContainer.classList.remove('is-box-variant'); 9560 } 9561 9562 9563 updateOptionAvailability(); 9564 } finally { 9565 isUpdating = false;
9566 console.log('%c=== QV updateVariantState() END ===', 'color: blue; font-weight: bold;'); 9567 } 9568 } 9569 9570 9571 function updateOptionAvailability() { 9572 const optionGroups = modal.querySelectorAll('.quick-view-product__variants .js-product-form__group'); 9573 const selectedOptions = Array.from(modal.querySelectorAll('.quick-view-product__variants input[type="radio"]:checked')).map(r => r.value); 9574 9575 9576 optionGroups.forEach((group, groupIndex) => { 9577 const radios = group.querySelectorAll('input[type="radio"]'); 9578 radios.forEach(radio => { 9579 const test = [...selectedOptions]; 9580 test[groupIndex] = radio.value; 9581 const match = currentProductData?.variants?.find(v => test.every((opt, i) => v.options[i] === opt)); 9582 const optionEl = radio.closest('li') || radio.parentElement; 9583 if (match && match.available) { 9584 optionEl.style.display = ''; 9585 radio.disabled = false; 9586 } else { 9587 optionEl.style.display = 'none'; 9588 radio.disabled = true; 9589 if (radio.checked) radio.checked = false; 9590 } 9591 }); 9592 9593 9594 const checked = group.querySelector('input[type="radio"]:checked'); 9595 if (!checked) { 9596 const firstAvailable = group.querySelector('input[type="radio"]:not(:disabled)'); 9597 if (firstAvailable) { 9598 firstAvailable.checked = true; 9599 firstAvailable.dispatchEvent(new Event('change', { bubbles: true })); // triggers updateVariantState 9600 } 9601 } 9602 }); 9603 } 9604 9605 9606 function closeAndResetModal() { 9607 const $wrap = $('.quick-view-product__images'); 9608 if ($wrap.hasClass('slick-initialized')) $wrap.slick('unslick'); 9609 9610 9611 // NEW: drop the collection class so it doesn't leak into the next product 9612 setCollectionClass(null); 9613 9614 9615 modal.style.display = 'none'; 9616 document.documentElement.classList.remove('quick-view-is-open'); 9617 modal.classList.remove('quick-view--loading', 'quick-view--loaded'); 9618 } 9619 9620 9621 // expose only what is needed 9622 return { init, openQuickView }; 9623})(); 9624 9625 9626// Initialize once on page load 9627document.addEventListener('DOMContentLoaded', () => { 9628 window.quickView.init(); 9629}); 9630</script>
9630 9631 9632 9633 9634 9635 9636 9637 9638 9639 9640
9640<script defer src="//www.flooret.com/cdn/shop/t/125/assets/jquery-3.3.1.min.js?v=37498620508928320191775037866"></script>
9640<script defer src="//www.flooret.com/cdn/shopifycloud/storefront/assets/themes_support/api.jquery-7ab1a3a4.js"></script>
9640 9641 9642
9642<script type="text/javascript" src="https://cdn.roomvo.com/static/scripts/b2b/flooret.js" async></script>
9642 9643 9644 9645
9645<script defer src="//www.flooret.com/cdn/shop/t/125/assets/theme.min.js?v=55372478134099235641788247093"></script>
9645 9646
9646<script defer src="//www.flooret.com/cdn/shop/t/125/assets/vendor.min.js?v=89093744200730767801775037889"></script>
9646 9647 9648
9648<script defer src="//www.flooret.com/cdn/shop/t/125/assets/slick.min.js?v=174105044941521274161775037884"></script>
9648 9649 9650
9650<script src="//embed.typeform.com/next/embed.js"></script>
9650 9651 9652
9652<script src="https://cdn.attn.tv/flooret/dtag.js"></script>
9652 9653 9654 9655 9656
9656<script> 9657 !(function (c, n, r, t) { 9658 if (!c[r]) { 9659 var i, 9660 d, 9661 p = []; 9662 (d = 9663 'PROD' !== t && t 9664 ? 'STAGING' === t 9665 ? 'https://cdn.gladly.qa/gladly/chat-sdk/widget.js' 9666 : t 9667 : 'https://cdn.gladly.com/chat-sdk/widget.js'), 9668 (c[r] = { 9669 init: function () { 9670 i = arguments; 9671 var e = { 9672 then: function (t) { 9673 return p.push({ type: 't', next: t }), e; 9674 }, 9675 catch: function (t) { 9676 return p.push({ type: 'c', next: t }), e; 9677 }, 9678 }; 9679 return e; 9680 }, 9681 }), 9682 (c.__onHelpAppHostReady__ = function (t) { 9683 if ((delete c.__onHelpAppHostReady__, ((c[r] = t).loaderCdn = d), i)) 9684 for (var e = t.init.apply(t, i), n = 0; n < p.length; n++) { 9685 var a = p[n]; 9686 e = 't' === a.type ? e.then(a.next) : e.catch(a.next); 9687 } 9688 }), 9689 (function () { 9690 try { 9691 var t = n.getElementsByTagName('script')[0], 9692 e = n.createElement('script'); 9693 (e.async = !0), (e.src = d + '?q=' + new Date().getTime()), t.parentNode.insertBefore(e, t); 9694 } catch (t) {} 9695 })(); 9696 } 9697 })(window, document, 'Gladly', 'PROD'); 9698 window.gladlyConfig = { 9699 appId: 'flooret.com', 9700 }; 9701 </script>
9701 9702 9703 9704 9705 9706
9706<script src="https://widget.reviews.io/rating-snippet/dist.js"></script>
9706 9707 <link rel="stylesheet" href="https://widget.reviews.io/rating-snippet/dist.css"> 9708
9708<script> 9709 ratingSnippet('ruk_rating_snippet', { 9710 store: 'flooret', 9711 mode: 'default', 9712 color: '#0E1311', 9713 linebreak: false, 9714 text: 'Reviews', 9715 singularText: 'Review', 9716 lang: 'en', 9717 usePolaris: true, 9718 showEmptyStars: false, 9719 }); 9720 </script>
9720 9721 9722
9722<script> 9723 document.addEventListener('DOMContentLoaded', function() { 9724 $('.announcement-wrap-out').slick({ 9725 infinite: true, 9726 slidesToShow: 1, 9727 slidesToScroll: 1, 9728 arrows:true, 9729 autoplay: true, 9730 adaptiveHeight: true, 9731 autoplaySpeed: 5000, 9732 pauseOnFocus:false, 9733 pauseOnHover:false, 9734 prevArrow: "<button class='slick-arrow prev'><svg xmlns='http://www.w3.org/2000/svg' width='6' height='11' viewBox='0 0 6 11' fill='none'> <path d='M5.94496 0.883335L5.06079 1.90735e-06L0.244959 4.81417C0.16733 4.89131 0.105723 4.98304 0.0636827 5.08408C0.0216428 5.18512 0 5.29348 0 5.40292C0 5.51236 0.0216428 5.62071 0.0636827 5.72176C0.105723 5.8228 0.16733 5.91453 0.244959 5.99167L5.06079 10.8083L5.94413 9.925L1.42413 5.40417L5.94496 0.883335Z' fill='white'/> </svg></button>", 9735 nextArrow: "<button class='slick-arrow next'><svg xmlns='http://www.w3.org/2000/svg' width='6' height='11' viewBox='0 0 6 11' fill='none'> <path d='M-1.23978e-05 0.883335L0.884154 1.90735e-06L5.69999 4.81417C5.77762 4.89131 5.83922 4.98304 5.88126 5.08408C5.9233 5.18512 5.94495 5.29348 5.94495 5.40292C5.94495 5.51236 5.9233 5.62071 5.88126 5.72176C5.83922 5.8228 5.77762 5.91453 5.69999 5.99167L0.884154 10.8083L0.000820637 9.925L4.52082 5.40417L-1.23978e-05 0.883335Z' fill='white'/> </svg></button>" 9736 }); 9737 }); 9738 </script>
9738 9739 9740
9740<script> 9741 9742 </script>
9742 9743 <style> 9744 .fr_21_nav_block { 9745 position: relative; 9746 } 9747 9748 .fr_21_subnav_link { 9749 position: relative; 9750 } 9751 9752 .fr_21_subnav_link .custom-badge-new { 9753 position: absolute; 9754 } 9755 9756 .fr_21_subnav { 9757 display: none; 9758 position: absolute; 9759 top: 100%; 9760 left: 0; 9761 background-color: white; 9762 border: 1px solid #ccc; 9763 z-index: 1000; 9764 min-width: 200px; 9765 } 9766 9767 .fr_21_subnav_link { 9768 display: block; 9769 padding: 15px; 9770 text-decoration: none; 9771 color: #000; 9772 background-color: #fff; 9773 text-align: start; 9774 } 9775 9776 .fr_21_subnav_link:hover { 9777 background-color: #ddd; 9778 } 9779 9780 .fr_21_nav_block:hover .fr_21_subnav { 9781 display: block; 9782 } 9783 .custom-badge-new { 9784 display: inline-block; 9785 border: 1px solid currentColor; 9786 padding: 2px 6px; 9787 font-size: 0.7rem; 9788 font-weight: 600; 9789 text-transform: uppercase; 9790 background-color: #226B99; 9791 color: #fff; 9792 border-radius: 0.25rem; 9793 line-height: 1; 9794 vertical-align: middle; 9795 position: absolute; 9796 right: -15px; 9797 top: -11px; 9798 border-radius: 6px; 9799 font-family: Montserrat; 9800 font-weight: 500; 9801 font-style: Medium; 9802 font-size: 8px; 9803 leading-trim: NONE; 9804 line-height: 100%; 9805 letter-spacing: -5%; 9806 font-variant: small-caps; 9807 } 9808 </style> 9809 9810
9810<script src="//www.flooret.com/cdn/shop/t/125/assets/custom-mw.js?v=117413435437969956151775037854" type="text/javascript"></script>
9810 9811 9812 9813 9814 9815 9816 9817 9818
9818<script> 9819 9820 function updateHeaderPositions() { 9821 const mainHead = document.querySelector('.gheader.sticky'); 9822 const announcement = document.querySelector('.announcement-wrap-out'); 9823 const topUsp = document.querySelector('.top_usp'); 9824 const colModelSilvan = document.querySelector('.collection-modal-section'); 9825 9826 if (!mainHead || !announcement) return; 9827 9828 const announcementHeight = announcement.getBoundingClientRect().height; 9829 const isMobile = window.innerWidth < 768; 9830 9831 if (isMobile) { 9832 if (topUsp) { 9833 const topUspHeight = topUsp.getBoundingClientRect().height; 9834 topUsp.style.top = `${announcementHeight}px`; 9835 mainHead.style.top = `${announcementHeight + topUspHeight}px`; 9836 9837 const mainHeadHeight = mainHead.getBoundingClientRect().height; 9838 if (colModelSilvan) { 9839 colModelSilvan.style.top = `${mainHeadHeight + announcementHeight + topUspHeight}px`; 9840 } 9841 } else { 9842 mainHead.style.top = `${announcementHeight}px`; 9843 const mainHeadHeight = mainHead.getBoundingClientRect().height; 9844 if (colModelSilvan) { 9845 colModelSilvan.style.top = `${mainHeadHeight + announcementHeight}px`; 9846 } 9847 } 9848 } else { 9849 mainHead.style.top = `${announcementHeight}px`; 9850 const mainHeadHeight = mainHead.getBoundingClientRect().height; 9851 if (colModelSilvan) { 9852 colModelSilvan.style.top = `${mainHeadHeight + announcementHeight}px`; 9853 } 9854 } 9855 } 9856 9857 document.addEventListener('DOMContentLoaded', () => { 9858 setTimeout(updateHeaderPositions, 2000); 9859 }); 9860 window.addEventListener('resize', updateHeaderPositions); 9861 9862 </script>
9862 9863 9864 9865 9866
9866<script> 9867 // A reusable function to add or remove the class 9868 function handleScrollClass() { 9869 if (window.scrollY > 5) { 9870 document.body.classList.add('body-scrolled'); 9871 } else { 9872 document.body.classList.remove('body-scrolled'); 9873 } 9874 } 9875 9876 // 1. Run the check when the user scrolls 9877 window.addEventListener('scroll', handleScrollClass); 9878 9879 // 2. Run the check once the page has loaded 9880 document.addEventListener('DOMContentLoaded', handleScrollClass); 9881 9882 (function() { 9883 const userAgent = navigator.userAgent; 9884 9885 // Check for Safari while excluding Chrome and other WebKit browsers 9886 const isSafari = userAgent.includes('Safari') && !userAgent.includes('Chrome'); 9887 9888 if (isSafari) { 9889 document.documentElement.classList.add('is-safari'); 9890 } 9891 })(); 9892 </script>
9892 9893 9894 9895 9896
9896<script> 9897 9898 // Assuming Swiper is already included via CDN or script tag 9899 // This is a clean, readable version of your Swiper initialization 9900 // It handles mobile/desktop breakpoints with different controls 9901 9902 document.addEventListener("DOMContentLoaded", function () { 9903 // Select all sections with class 'ft-prod-col' 9904 const sections = document.querySelectorAll(".ft-prod-col"); 9905 9906 sections.forEach((section) => { 9907 // Find the slider within this section 9908 const slider = section.querySelector(".ft-prod-col__slider"); 9909 if (!slider) return; // Skip if no slider found 9910 9911 // Define Swiper options with breakpoints 9912 const swiperOptions = { 9913 slidesPerView: 1.2, // Default for small screens 9914 spaceBetween: 16, 9915 // Mobile-specific scrollbar and navigation (default) 9916 scrollbar: { 9917 el: section.querySelector(".swiper-controls.mob-only .swiper-scrollbar"), 9918 draggable: true, 9919 }, 9920 navigation: { 9921 nextEl: section.querySelector(".swiper-controls.mob-only .swiper-button-next"), 9922 prevEl: section.querySelector(".swiper-controls.mob-only .swiper-button-prev"), 9923 }, 9924 // Responsive breakpoints 9925 breakpoints: { 9926 // When window width >= 720px (desktop) 9927 720: { 9928 slidesPerView: 2, // Show 2 slides on desktop 9929 // Switch to desktop-specific scrollbar and navigation 9930 scrollbar: { 9931 el: section.querySelector(".swiper-controls.desk-only .swiper-scrollbar"), 9932 draggable: true, 9933 }, 9934 navigation: { 9935 nextEl: section.querySelector(".swiper-controls.desk-only .swiper-button-next"), 9936 prevEl: section.querySelector(".swiper-controls.desk-only .swiper-button-prev"), 9937 }, 9938 }, 9939 }, 9940 }; 9941 9942 // Initialize Swiper 9943 const swiper = new Swiper(slider, swiperOptions); 9944 9945 // Show controls if Swiper is enabled (e.g., multiple slides) 9946 if (swiper.enabled) { 9947 const controls = slider.parentElement.querySelector(".swiper-controls"); 9948 if (controls) controls.style.display = "block"; // Or use classList.add('visible') if you prefer CSS 9949 } 9950 9951 // Optional: Update on resize (in case of dynamic changes) 9952 window.addEventListener("resize", () => swiper.update()); 9953 }); 9954 }); 9955 9956 9957 document.addEventListener("DOMContentLoaded", function () { 9958 // Select all sliders with class 'image-card-slider' 9959 const sliders = document.querySelectorAll(".image-card-slider"); 9960 9961 if (sliders.length === 0) { 9962 console.log("No image-card-slider found."); 9963 return; // Exit if no sliders 9964 } 9965 9966 sliders.forEach((slider) => { 9967 // Find the parent section (assumes one section per slider or shared) 9968 const section = slider.closest(".image-card-block") || document.querySelector(".image-card-block"); 9969 if (!section) { 9970 console.error("No .image-card-block found for slider:", slider); 9971 return; // Skip if no section 9972 } 9973 9974 // Define Swiper options 9975 const swiperOptions = { 9976 slidesPerView: 1, // Show 1 slide by default 9977 spaceBetween: 0, // No space between slides 9978 scrollbar: { 9979 el: section.querySelector(".swiper-scrollbar"), // Scrollbar from section 9980 draggable: true, // Allow dragging the scrollbar 9981 }, 9982 navigation: { 9983 nextEl: section.querySelector(".swiper-button-next"), // Next button from section 9984 prevEl: section.querySelector(".swiper-button-prev"), // Prev button from section 9985 }, 9986 // Optional: Add breakpoints if needed (e.g., for responsiveness) 9987 // breakpoints: { 9988 // 768: { slidesPerView: 2 } // Example: Show 2 slides on larger screens 9989 // } 9990 }; 9991 9992 // Initialize Swiper 9993 const swiper = new Swiper(slider, swiperOptions); 9994 9995 // Optional: Log for debugging 9996 swiper.on("init", () => { 9997 console.log("Image Card Swiper initialized:", slider); 9998 }); 9999 10000 // Optional: Update on resize 10001 window.addEventListener("resize", () =>
10001 swiper.update()); 10002 }); 10003 }); 10004 10005 10006 // Assuming Swiper is already included via CDN or script tag 10007 // This is a clean, readable vanilla JS version of your Swiper initializations 10008 // It handles multiple sliders with error handling and resize updates 10009 10010 document.addEventListener("DOMContentLoaded", function () { 10011 // Helper function to init a Swiper with error handling 10012 function initSwiper(container, options) { 10013 try { 10014 const swiper = new Swiper(container, options); 10015 swiper.on("init", () => console.log("Swiper initialized:", container.className)); 10016 return swiper; 10017 } catch (error) { 10018 console.error("Swiper init failed:", error); 10019 return null; 10020 } 10021 } 10022 10023 // 1. Recent Blog Wrapper Slider 10024 function initRecentBlogSlider() { 10025 const sliders = document.querySelectorAll(".recent-blog-wrapper__slider"); 10026 const section = document.querySelector(".recent-posts"); // Shared section for controls 10027 10028 if (sliders.length === 0) { 10029 console.log("No recent-blog-wrapper__slider found."); 10030 return; 10031 } 10032 10033 sliders.forEach((slider) => { 10034 if (!section) { 10035 console.error("No .recent-posts found for controls."); 10036 return; 10037 } 10038 10039 const swiperOptions = { 10040 slidesPerView: 1.1, 10041 spaceBetween: 32, 10042 scrollbar: { el: ".swiper-scrollbar", draggable: true }, // Assumes global or per-slider scrollbar 10043 navigation: { 10044 nextEl: section.querySelector(".swiper-button-next"), 10045 prevEl: section.querySelector(".swiper-button-prev"), 10046 }, 10047 breakpoints: { 10048 960: { slidesPerView: 2 }, 10049 }, 10050 }; 10051 10052 const swiper = initSwiper(slider, swiperOptions); 10053 window.addEventListener("resize", () => swiper?.update()); 10054 }); 10055 } 10056 initRecentBlogSlider(); 10057 10058 // 2. Customer Stories Loop (cstories__loop) 10059 function initCstoriesSlider() { 10060 const sliders = document.querySelectorAll(".cstories__loop"); 10061 10062 if (sliders.length === 0) { 10063 console.log("No cstories__loop found."); 10064 return; 10065 } 10066 10067 sliders.forEach((slider) => { 10068 const swiperOptions = { 10069 slidesPerView: 1.4, 10070 centeredSlides: true, 10071 loop: true, 10072 navigation: { 10073 nextEl: slider.querySelector(".swiper-button-next"), // Assumes controls inside each slider 10074 prevEl: slider.querySelector(".swiper-button-prev"), 10075 }, 10076 breakpoints: { 10077 960: { slidesPerView: 2.8 }, 10078 1400: { slidesPerView: 3.25 }, 10079 1600: { slidesPerView: 4 }, 10080 }, 10081 }; 10082 10083 const swiper = initSwiper(slider, swiperOptions); 10084 window.addEventListener("resize", () => swiper?.update()); 10085 }); 10086 } 10087 initCstoriesSlider(); 10088 10089 // 3. Testimonials Slider 10090 function initTestimonialsSlider() { 10091 const sliders = document.querySelectorAll(".testimonials-slider"); 10092 const section = document.querySelector(".testimonials-block"); // Shared section for controls 10093 10094 if (sliders.length === 0) { 10095 console.log("No testimonials-slider found."); 10096 return; 10097 } 10098 10099 sliders.forEach((slider) => { 10100 if (!section) { 10101 console.error("No .testimonials-block found for controls."); 10102 return; 10103 } 10104 10105 const swiperOptions = { 10106 slidesPerView: 1, 10107 spaceBetween: 0, 10108 autoHeight: true, 10109 scrollbar: { el: section.querySelector(".swiper-scrollbar"), draggable: true }, 10110 navigation: { 10111 nextEl: section.querySelector(".swiper-button-next"), 10112 prevEl: section.querySelector(".swiper-button-prev"), 10113 }, 10114 }; 10115 10116 const swiper = initSwiper(slider, swiperOptions); 10117 window.addEventListener("resize", () =>
10117 swiper?.update()); 10118 }); 10119 } 10120 initTestimonialsSlider(); 10121 10122 // 4. Image Card Slider (from your query, already handled similarly in previous response) 10123 function initImageCardSlider() { 10124 const sliders = document.querySelectorAll(".image-card-slider"); 10125 const section = document.querySelector(".image-card-block"); // Shared section 10126 10127 if (sliders.length === 0) { 10128 console.log("No image-card-slider found."); 10129 return; 10130 } 10131 10132 sliders.forEach((slider) => { 10133 if (!section) { 10134 console.error("No .image-card-block found for controls."); 10135 return; 10136 } 10137 10138 const swiperOptions = { 10139 slidesPerView: 1, 10140 spaceBetween: 0, 10141 scrollbar: { el: section.querySelector(".swiper-scrollbar"), draggable: true }, 10142 navigation: { 10143 nextEl: section.querySelector(".swiper-button-next"), 10144 prevEl: section.querySelector(".swiper-button-prev"), 10145 }, 10146 }; 10147 10148 const swiper = initSwiper(slider, swiperOptions); 10149 window.addEventListener("resize", () => swiper?.update()); 10150 }); 10151 } 10152 initImageCardSlider(); 10153 }); 10154 10155 // Assuming Swiper is already included via CDN or script tag 10156 // This is an updated custom gallery Swiper: shows 1 slide at a time, scrolls 1 slide on button click 10157 // Fixed selectors to match your HTML: ".button-next" and ".button-prev" for navigation 10158 10159 document.addEventListener("DOMContentLoaded", function () { 10160 // Select all custom gallery sliders (adjust selector as needed, e.g., '.custom-gallery-slider') 10161 const sliders = document.querySelectorAll(".custom-gallery-slider"); // Change this to your actual class 10162 10163 if (sliders.length === 0) { 10164 console.log("No custom-gallery-slider found."); 10165 return; // Exit if no sliders 10166 } 10167 10168 sliders.forEach((slider) => { 10169 // Find the parent section or controls container (assumes controls are siblings or inside) 10170 const controls = slider.closest(".swiper-controls") || document.querySelector(".swiper-controls"); 10171 // If controls are not found, log and skip navigation 10172 if (!controls) { 10173 console.warn("No .swiper-controls found for navigation buttons."); 10174 } 10175 10176 // Define Swiper options 10177 const swiperOptions = { 10178 slidesPerView: 1, // Show only 1 slide at a time 10179 slidesPerGroup: 1, // Scroll 1 slide per navigation click or swipe 10180 spaceBetween: 0, // No space between slides (adjust if needed) 10181 loop: true, // Optional: Enable infinite looping 10182 navigation: { 10183 // Use your exact class names from HTML 10184 nextEl: controls ? controls.querySelector(".button-next") : null, 10185 prevEl: controls ? controls.querySelector(".button-prev") : null, 10186 }, 10187 // Optional: Add scrollbar if you want drag-to-scroll (add <div class="swiper-scrollbar"></div> to HTML) 10188 // scrollbar: { 10189 // el: '.swiper-scrollbar', // Add this class to your HTML if needed 10190 // draggable: true, 10191 // }, 10192 // Optional: Add breakpoints for responsiveness (e.g., still 1 slide on mobile/desktop) 10193 breakpoints: { 10194 768: { slidesPerView: 1 }, // Keep 1 slide on larger screens (customize as needed) 10195 }, 10196 }; 10197 10198 // Initialize Swiper 10199 try { 10200 const swiper = new Swiper(slider, swiperOptions); 10201 swiper.on("init", () => { 10202 console.log("Custom Gallery Swiper initialized:", slider); 10203 }); 10204 10205 // Test navigation manually (for debugging) 10206 if (swiper.navigation.nextEl) { 10207 swiper.navigation.nextEl.addEventListener("click", () => swiper.slideNext()); 10208 } 10209 if (swiper.navigation.prevEl) { 10210 swiper.navigation.prevEl.addEventListener("click", () => swiper.slidePrev()); 10211 } 10212 10213 // Update on resize 10214 window.addEventListener("resize", () =>
10214 swiper.update()); 10215 } catch (error) { 10216 console.error("Custom Gallery Swiper init failed:", error); 10217 } 10218 }); 10219 }); 10220 10221 10222 10223 </script>
10223 10224 10225
10225<script> 10226 // Watch for .pop-cart active class and update cart count 10227(function() { 10228 function updateCartCount() { 10229 fetch('/cart.js') 10230 .then(res => res.json()) 10231 .then(cart => { 10232 document.querySelectorAll('.js-cart-count').forEach(el => { 10233 el.textContent = cart.item_count; 10234 }); 10235 10236 const cartCountWrapper = document.querySelector('.cart-count'); 10237 if (cartCountWrapper) { 10238 if (cart.item_count > 0) { 10239 cartCountWrapper.classList.remove('cart-empty'); 10240 } else { 10241 cartCountWrapper.classList.add('cart-empty'); 10242 } 10243 } 10244 }) 10245 .catch(err => { 10246 console.error('Failed to fetch cart count:', err); 10247 }); 10248 } 10249 10250 // â Monitor .pop-cart for 'active' class changes 10251 const observer = new MutationObserver(function(mutations) { 10252 mutations.forEach(function(mutation) { 10253 if (mutation.type === 'attributes' && mutation.attributeName === 'class') { 10254 const target = mutation.target; 10255 if (target.classList.contains('pop-cart') && target.classList.contains('active')) { 10256 updateCartCount(); 10257 } 10258 } 10259 }); 10260 }); 10261 10262 // Start observing .pop-cart element 10263 const popCart = document.querySelector('.pop-cart'); 10264 if (popCart) { 10265 observer.observe(popCart, { 10266 attributes: true, 10267 attributeFilter: ['class'] 10268 }); 10269 } 10270 10271 // Also watch for newly added .pop-cart elements 10272 const bodyObserver = new MutationObserver(function(mutations) { 10273 mutations.forEach(function(mutation) { 10274 mutation.addedNodes.forEach(function(node) { 10275 if (node.nodeType === 1) { // Element node 10276 if (node.matches && node.matches('.pop-cart')) { 10277 observer.observe(node, { 10278 attributes: true, 10279 attributeFilter: ['class'] 10280 }); 10281 } 10282 // Check children too 10283 node.querySelectorAll('.pop-cart').forEach(el => { 10284 observer.observe(el, { 10285 attributes: true, 10286 attributeFilter: ['class'] 10287 }); 10288 }); 10289 } 10290 }); 10291 }); 10292 }); 10293 10294 bodyObserver.observe(document.body, { 10295 childList: true, 10296 subtree: true 10297 }); 10298 10299 // jQuery fallback (if you prefer) 10300 $(document).on('DOMNodeInserted', function(e) { 10301 if ($(e.target).hasClass('pop-cart') || $(e.target).find('.pop-cart').length) { 10302 $('.pop-cart').each(function() { 10303 if ($(this).hasClass('active')) { 10304 updateCartCount(); 10305 } 10306 }); 10307 } 10308 }); 10309 10310})(); 10311 10312 </script>
10312 10313 10314 10315 10316
10316<script> 10317 function showCartNotification(message, type = 'success') { 10318 var existing = document.getElementById('cart-action-notification'); 10319 if (existing) { 10320 existing.remove(); 10321 } 10322 10323 var notification = document.createElement('div'); 10324 notification.id = 'cart-action-notification'; 10325 notification.setAttribute('role', 'status'); 10326 notification.setAttribute('aria-live', 'polite'); 10327 notification.className = 'cart-action-notification--' + type; 10328 notification.innerHTML = message; // innerHTML so the "go to cart" link renders 10329 notification.style.opacity = '1'; 10330 10331 document.body.appendChild(notification); 10332 10333 setTimeout(function () { 10334 notification.style.opacity = '0'; 10335 10336 setTimeout(function () { 10337 if (notification && notification.parentNode) { 10338 notification.remove(); 10339 } 10340 }, 300); 10341 }, 5000); 10342 } 10343 10344 async function addToCartByUrl(productUrl, quantity = 1, properties = {}) { 10345 try { 10346 const storeOrigin = window.location.origin; 10347 const url = new URL(productUrl, storeOrigin); 10348 10349 let variantId = url.searchParams.get('variant'); 10350 10351 if (!variantId) { 10352 const productPath = url.pathname.replace(/\/$/, ''); 10353 const response = await fetch(`${productPath}.js`, { 10354 credentials: 'same-origin', 10355 headers: { 10356 Accept: 'application/json' 10357 } 10358 }); 10359 10360 if (!response.ok) { 10361 const text = await response.text(); 10362 const message = `Product request failed. Status: ${response.status}. ${text.slice(0, 150)}`; 10363 showCartNotification(message, 'error'); 10364 throw new Error(message); 10365 } 10366 10367 const product = await response.json(); 10368 10369 if (!product.variants || !product.variants.length) { 10370 const message = `No variants found for ${productUrl}`; 10371 showCartNotification(message, 'error'); 10372 throw new Error(message); 10373 } 10374 10375 const availableVariant = product.variants.find(function (v) { 10376 return v.available; 10377 }); 10378 10379 variantId = availableVariant ? availableVariant.id : product.variants[0].id; 10380 } 10381 10382 const cartResponse = await fetch('/cart/add.js', { 10383 method: 'POST', 10384 credentials: 'same-origin', 10385 headers: { 10386 'Content-Type': 'application/json', 10387 Accept: 'application/json' 10388 }, 10389 body: JSON.stringify({ 10390 id: Number(variantId), 10391 quantity: quantity, 10392 properties: properties 10393 }) 10394 }); 10395 10396 if (!cartResponse.ok) { 10397 let err = {}; 10398 10399 try { 10400 err = await cartResponse.json(); 10401 } catch (e) {} 10402 10403 const errorMessage = 10404 err.description || 10405 err.message || 10406 `Cart add failed with status ${cartResponse.status}`; 10407 10408 showCartNotification(errorMessage, 'error'); 10409 throw new Error(errorMessage); 10410 } 10411 10412 const cartItem = await cartResponse.json(); 10413 console.log('Added to cart:', cartItem); 10414 10415 showCartNotification('Product added to cart successfully.- <a href="/cart">go to cart</a>', 'success'); 10416 10417 return cartItem; 10418 } catch (error) { 10419 console.error('addToCartByUrl error:', error); 10420 10421 if (!document.getElementById('cart-action-notification')) { 10422 showCartNotification(error.message || 'Something went wrong.', 'error'); 10423 } 10424 10425 throw error; 10426 } 10427 } 10428 </script>
10428 10429 <style> 10430 #cart-action-notification { 10431 position: fixed; 10432 z-index: 9999999999999999 !important; 10433 top: 80px; 10434 left: 0; 10435 right: 0; 10436 margin: 0px auto; 10437 width: fit-content; 10438 background: #ffb04d; 10439 padding: 8px 15px; 10440 border-radius: 5px; 10441 box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px; 10442 } 10443 </style> 10444 <style> </style> 10445<div id="shopify-block-AQm9TRHFSWXVWZkxWc__15316669992541710076" class="shopify-block shopify-app-block">
10445<script defer src="https://widget.reviews.io/rating-snippet/dist.js"></script>
10445 10446<link rel="stylesheet" href="https://widget.reviews.io/rating-snippet/dist.css" />
10447<script> 10448 (function () { 10449 function initRatingSnippet() { 10450 var hasStore = typeof reviewsIoStore !== 'undefined' && !!reviewsIoStore; 10451 if (!hasStore) return; 10452 10453 if (typeof ratingSnippet !== 'function') return; 10454 10455 // Ensure the target element exists (rating-output block may render after this app embed). 10456 if (!document.querySelector('.ruk_rating_snippet')) return; 10457 10458 var storeOverride = window.__REVIEWSIO_RATING_SNIPPET_STORE_OVERRIDE__; 10459 var storeForSnippet = storeOverride || reviewsIoStore; 10460 10461 ratingSnippet("ruk_rating_snippet",{ 10462 store: storeForSnippet, 10463 color: '#faaf4f', 10464 10465 textClr: '#333', 10466 10467 linebreak: false, 10468 10469 usePolaris: true, 10470 10471 10472 10473 10474 10475 text: 'Reviews', 10476 10477 lang: (typeof reviewsIoLang !== 'undefined' && reviewsIoLang) ? reviewsIoLang : 'en', 10478 mode: 'default', 10479 showEmptyStars: false, 10480 10481 enableSyndication: (typeof reviewsIoEnableSyndication !== 'undefined') ? reviewsIoEnableSyndication : false 10482 }); 10483 10484 const reviewsIoModal = document.getElementById('reviews_fade'); 10485 if (reviewsIoModal) { 10486 reviewsIoModal.classList.add('rio-withoutBranding'); 10487 } 10488 } 10489 10490 // Retry to survive slow network/script timing. 10491 var attempts = 0; 10492 var MAX_RATING_SNIPPET_INIT_ATTEMPTS = 20; 10493 var MAX_TIMEOUT_RETRY = 200; 10494 10495 function tick() { 10496 attempts += 1; 10497 initRatingSnippet(); 10498 if (attempts < MAX_RATING_SNIPPET_INIT_ATTEMPTS && (typeof ratingSnippet !== 'function' || !document.querySelector('.ruk_rating_snippet'))) { 10499 window.setTimeout(tick, MAX_TIMEOUT_RETRY); 10500 } 10501 } 10502 10503 // Use window load to maximize chance that the external script executed. 10504 window.addEventListener('load', tick); 10505 })(); 10506</script>
10506 10507 10508 10509</div><div id="shopify-block-AZFd6aGFnS21FS1hVa__13768625480086291342" class="shopify-block shopify-app-block">
10509<script> 10510 window['ShopifyForms'] = { 10511 ...window['ShopifyForms'], 10512 currentPageType: "blog" 10513 }; 10514</script>
10514 10515 10516 10517</div><div id="shopify-block-AMVd3SDN1bkU2MU1yc__8984515417408071758" class="shopify-block shopify-app-block"> 10518
10519<script> 10520 document.addEventListener('DOMContentLoaded', function () { 10521 // Only apply the embed on pages with "landing-page" in the URL 10522 if (window.location.href.includes('pages/landing-page-') || window.location.href.includes('pages/offers-')) { 10523 // Add Swiper CSS (replacing Bootstrap carousel) 10524 const swiperCSS = document.createElement('link'); 10525 swiperCSS.rel = 'stylesheet'; 10526 swiperCSS.href = 'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css'; 10527 document.head.appendChild(swiperCSS); 10528 10529 // Add custom carousel CSS (for overrides) 10530 const carouselCSS = document.createElement('link'); 10531 carouselCSS.rel = 'stylesheet'; 10532 carouselCSS.href = 'https://cdn.shopify.com/extensions/019d9bde-3b5f-7110-a959-0f21b89f5d22/aspire-links-105/assets/carousel.css'; 10533 document.head.appendChild(carouselCSS); 10534 10535 // Add Swiper JS (replacing jQuery + Bootstrap) 10536 const swiperScript = document.createElement('script'); 10537 swiperScript.src = 'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js'; 10538 swiperScript.defer = true; 10539 document.body.appendChild(swiperScript); 10540 10541 // Load your custom CSS and JS 10542 const styleLink = document.createElement('link'); 10543 styleLink.rel = 'stylesheet'; 10544 styleLink.href = 'https://cdn.shopify.com/extensions/019d9bde-3b5f-7110-a959-0f21b89f5d22/aspire-links-105/assets/landing-page.css'; 10545 document.head.appendChild(styleLink); 10546 10547 // Function to load the main landing page script 10548 function loadMainScript() { 10549 const script = document.createElement('script'); 10550 script.src = 'https://cdn.shopify.com/extensions/019d9bde-3b5f-7110-a959-0f21b89f5d22/aspire-links-105/assets/landing-page.js'; 10551 script.defer = true; 10552 document.body.appendChild(script); 10553 } 10554 10555 // Load shared utilities first (optional - main script has fallbacks) 10556 const utilsScript = document.createElement('script'); 10557 utilsScript.src = 'https://cdn.shopify.com/extensions/019d9bde-3b5f-7110-a959-0f21b89f5d22/aspire-links-105/assets/landing-page-utils.js'; 10558 utilsScript.onload = function() { 10559 loadMainScript(); 10560 }; 10561 utilsScript.onerror = function() { 10562 // Load main script anyway (has fallbacks) 10563 loadMainScript(); 10564 }; 10565 document.body.appendChild(utilsScript); 10566 10567 // Store template script URLs for dynamic loading 10568 window.TEMPLATE1_SCRIPT_URL = 'https://cdn.shopify.com/extensions/019d9bde-3b5f-7110-a959-0f21b89f5d22/aspire-links-105/assets/landing-page-1.js'; 10569 window.TEMPLATE2_SCRIPT_URL = 'https://cdn.shopify.com/extensions/019d9bde-3b5f-7110-a959-0f21b89f5d22/aspire-links-105/assets/landing-page-2.js'; 10570 window.TEMPLATE3_SCRIPT_URL = 'https://cdn.shopify.com/extensions/019d9bde-3b5f-7110-a959-0f21b89f5d22/aspire-links-105/assets/landing-page-3.js'; 10571 10572 // Inject the landing page content (using Shopify Liquid) 10573 const aspireDiv = document.createElement('div'); 10574 aspireDiv.innerHTML = ` 10575 <!-- BEGIN app snippet: landing-page-content --><link rel="preconnect" href="https://fonts.googleapis.com"> 10576<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 10577 10578<div class="loading-wrapper"> 10579 <div class="loading-spinner"></div> 10580 <div>Loading...</div> 10581</div> 10582 10583<div class="customer-s-landing"> 10584 <div class="header-background"> 10585 <div class="frame-wrapper page-width"> 10586 <div class="frame-4"> 10587 <div class="div-wrapper"> 10588 <div class="frame-5"> 10589 <div class="frame-6"> 10590 <div id="creator-tag" class="frame hidden"> 10591 <div class="div" style="height: 100%;"> 10592 <div id="creator-image-container" class="hidden"> 10593 <img 10594 id="creator-image" 10595 src="" 10596 class="creator-image-style" 10597 width="36px" 10598 height="36px" 10599 /> 10600 <span class="creator-heart-icon"> 10601 â¤ï¸ï¸ 10602 </span> 10603 </div> 10604 <div 10605 id="creator-initial" 10606 class="ellipse creator-initial hidden" 10607 >
10608 <span class="creator-heart-icon"> 10609 â¤ï¸ï¸ 10610 </span> 10611 </div> 10612 </div> 10613 <div id="loved-by-creator" class="loved-by-lokesh">LOVED BY JOHN DOE</div> 10614 </div> 10615 <div class="frame-7"> 10616 <div class="frame-8"> 10617 <div class="frame-9"> 10618 <div id="offer-title" class="text-wrapper"></div> 10619 </div> 10620 </div> 10621 </div> 10622 <p id="offer-description" class="p"> 10623 </p> 10624 </div> 10625 <div class="discount-container-class"> 10626 <div id="hero-feature-product" class="frame-10 hidden"> 10627 <div id="bestseller-tag" class="bestseller-badge hidden"> 10628 Bestseller 10629 </div> 10630 <div class="frame-11"> 10631 <img 10632 id="hero-featured-product-image" 10633 class="img" 10634 src="https://cdn.shopify.com/extensions/019d9bde-3b5f-7110-a959-0f21b89f5d22/aspire-links-105/assets/image-6.png" 10635 width="100" 10636 height="100" 10637 > 10638 <div class="frame-12"> 10639 <div class="frame-13"> 10640 <div class="frame-14"> 10641 <div id="hero-featured-product-name" class="text-wrapper-2"></div> 10642 </div> 10643 <div class="frame-15"> 10644 <span id="hero-featured-product-rating" class="text-wrapper-4"></span> 10645 <span id="hero-feature-product-reviews-count">(2,521 reviews)</span> 10646 </div> 10647 <div class="frame-16"> 10648 <div id="hero-featured-product-discounted-price" class="text-wrapper-5"></div> 10649 <div id="hero-featured-product-price" class="text-wrapper-6"></div> 10650 </div> 10651 </div> 10652 </div> 10653 </div> 10654 <div id="discount-button-container" class="span-1"> 10655 <a 10656 id="hero-featured-product-discount-button" 10657 target="_blank" 10658 class="text-wrapper-7" 10659 > 10660 <span name="add">Start Shopping</span> 10661 </a> 10662 </div> 10663 10664 </div> 10665 </div> 10666 <div class="discount-container-class"> 10667 <div id="discount-button-container-only" class="span-1 hidden"> 10668 <a 10669 id="hero-featured-product-discount-button-only" 10670 target="_blank" 10671 class="text-wrapper-7" 10672 > 10673 <span name="add">Start Shopping</span> 10674 </a> 10675 </div> 10676 </div> 10677 </div> 10678 </div> 10679 <div id="featured-content-carousel" class="frame-19 hidden"> 10680 <div id="contentCarousel" class="swiper"> 10681 <div class="swiper-wrapper"> 10682 <!-- Content will be dynamically inserted here --> 10683 </div> 10684 <div class="swiper-button-prev"></div> 10685 <div class="swiper-button-next"></div> 10686 </div> 10687 </div> 10688 </div> 10689 </div> 10690 </div> 10691 10692 10693 <div class="frame-27 hidden page-width" id="creators-favourite-product"> 10694 <div id="creator-favourite" class="text-wrapper-20">Creator's Favorite</div> 10695 <div class="frame-28"> 10696 <div class="frame-29"> 10697 <div class="frame-30"> 10698 <div class="frame-31"> 10699 <img 10700 id="favorite-featured-product-image" 10701 class="image-6" 10702 src="https://cdn.shopify.com/extensions/019d9bde-3b5f-7110-a959-0f21b89f5d22/aspire-links-105/assets/image-6.png" 10703 width="400" 10704 height="500" 10705 > 10706 </div> 10707 </div> 10708 <div class="frame-32"> 10709 <div class="frame-7"> 10710 <div class="frame-33"> 10711 <div class="frame-9"> 10712 <div id="favorite-featured-product-name" class="text-wrapper-21 hero-featured-product-name"> 10713 </div> 10714 <div class="frame-34"> 10715 10716 <div id="favorite-featured-product-discounted-price" class="text-wrapper-23"></div> 10717 <div id="favorite-featured-product-price" class="text-wrapper-22"></div> 10718 </div> 10719 </div> 10720 <div class="div"> 10721 <div id="favorite-featured-product-rating-container" class="frame-35"> 10722 </div> 10723 <div id="favorite-featured-product-reviews-count" class="text-wrapper-25"></div> 10724 </div> 10725 <div id="favorite-featured-product-description" class="p"> 10726 </div> 10727 </div> 10728 </div> 10729 <div class="frame-49 span-2">
10730 <a id="featured-product-shop-now" target="_blank" class="text-wrapper-7"> 10731 <span name="add">Shop now</span> 10732 </a> 10733 </div> 10734 </div> 10735 </div> 10736 </div> 10737 </div> 10738 10739 10740 <div class="frame-50 page-width"> 10741 <div id="all-products-title" class="text-wrapper-20 hidden">Shape your home's story</div> 10742 <div id="products-container"></div> 10743 <div id="load-more-button" class="frame-61 hidden"> 10744 <p class="text-wrapper-38" id="product-count">Viewing 1-8 of 23 products</p> 10745 <div class="span-3"> 10746 <div class="text-wrapper-39">Load More</div> 10747 </div> 10748 </div> 10749 </div> 10750</div> 10751<!-- END app snippet --> 10752 `; 10753 10754 const mainContent = document.querySelector('main') || document.body; 10755 if (mainContent) { 10756 mainContent.insertBefore(aspireDiv, mainContent.firstChild); 10757 } 10758 } 10759 }); 10760</script>
10760 10761</div><div id="shopify-block-ATEtpUjBUSkREcmZIV__4903255192656362701" class="shopify-block shopify-app-block">
10762<script> 10763 window.aiod_widget_registry = window.aiod_widget_registry || { apps: {}, order: [] }; 10764 (function () { 10765 var ns = "aiod"; 10766 if (!ns) return; // namespace comes from the variant (block setting) â no fallback 10767 var app = window.aiod_widget_registry.apps[ns] || (window.aiod_widget_registry.apps[ns] = { namespace: ns }); 10768 10769 app.widgetPlacementSettings = null; 10770 app.automaticDiscounts = []; 10771 app.bannerWidgets = []; 10772 app.bannerTranslations = []; 10773 app.globalBannerSettings = null; 10774 app.globalSettings = null; 10775 app.globalMetafieldJson = {"accessToken":"3b8818e36c59616726e6f9ae843b3550"}; 10776 app.giftBanners = []; 10777 app.freeGiftConfig = []; 10778 app.giftSettings = null; 10779 app.giftProductHandles = ["coronado","del-mar","encinitas","la-jolla","oceanside","palomar","torrey","venice"]; 10780 10781 app.collections = app.collections || {}; 10782 // product id -> [collection ids] for items currently in the cart 10783 10784 // products belonging to this app's configured collections 10785 10786 10787 10788 if (window.aiod_widget_registry.order.indexOf(ns) === -1) window.aiod_widget_registry.order.push(ns); 10789 })(); 10790</script>
vendor: 1 bytes, line 10790
10790
10791<script src="https://cdn.shopify.com/extensions/01a0f75f-1972-7041-9754-0e716bfdc93b/aiod-automatic-discounts-895/assets/widget-registry.js"></script>
10791 10792 10793 10794<!-- Deprecated: This app embed's functionality has been merged into "Free Gift Manager". Please disable this and enable "Free Gift Manager" instead. -->
10795<script> 10796 window.IS_AIOD_WIDGET_MANAGER_ENABLED = true; 10797 window.AIOD_WASM_URL = "https://cdn.shopify.com/extensions/01a0f75f-1972-7041-9754-0e716bfdc93b/aiod-automatic-discounts-895/assets/discount-rust.wasm"; 10798</script>
10798 10799<link rel="modulepreload" href="https://cdn.shopify.com/extensions/01a0f75f-1972-7041-9754-0e716bfdc93b/aiod-automatic-discounts-895/assets/discount-rust.js" crossorigin> 10800<link href="https://cdn.shopify.com/extensions/01a0f75f-1972-7041-9754-0e716bfdc93b/aiod-automatic-discounts-895/assets/discount-rust.wasm" as="fetch" crossorigin="anonymous" rel="preload">
10801<script type="module" src="https://cdn.shopify.com/extensions/01a0f75f-1972-7041-9754-0e716bfdc93b/aiod-automatic-discounts-895/assets/discount-engine-wasm-loader.js" crossorigin></script>
10801 10802
10803<script> 10804 if (!window._AIOD_WIDGET_DEPRECATION_WARNED) { 10805 console.warn('AIOD: "Widget Manager" app embed is deprecated. Please disable it and use "Latest Widget Manager" instead.'); 10806 window._AIOD_WIDGET_DEPRECATION_WARNED = true; 10807 } 10808</script>
10808 10809 10810<link defer rel="stylesheet" href="https://cdn.shopify.com/extensions/01a0f75f-1972-7041-9754-0e716bfdc93b/aiod-automatic-discounts-895/assets/widgets.css">
10810<script defer> 10811 window.aiod_shop_currency = "USD"; 10812 window.aiod_locale = "en"; 10813</script>
10813 10814
10815<script defer src="https://cdn.shopify.com/extensions/01a0f75f-1972-7041-9754-0e716bfdc93b/aiod-automatic-discounts-895/assets/global_settings.js"></script>
10815 10816
10817<script defer src="https://cdn.shopify.com/extensions/01a0f75f-1972-7041-9754-0e716bfdc93b/aiod-automatic-discounts-895/assets/exclude-item-marker.js"></script>
vendor: 1 bytes, line 10817
10817
10818<script defer src="https://cdn.shopify.com/extensions/01a0f75f-1972-7041-9754-0e716bfdc93b/aiod-automatic-discounts-895/assets/discount-manager-v3.js"></script>
vendor: 1 bytes, line 10818
10818
10819<script defer src="https://cdn.shopify.com/extensions/01a0f75f-1972-7041-9754-0e716bfdc93b/aiod-automatic-discounts-895/assets/cart-update-listener.js"></script>
vendor: 1 bytes, line 10819
10819
10820<script defer src="https://cdn.shopify.com/extensions/01a0f75f-1972-7041-9754-0e716bfdc93b/aiod-automatic-discounts-895/assets/test-discount-session.js"></script>
10820 10821
10822<script> 10823 if (typeof window.aiod_product_data === 'undefined') { 10824 10825 } 10826 10827 10828</script>
10828 10829
10830<script defer src="https://cdn.shopify.com/extensions/01a0f75f-1972-7041-9754-0e716bfdc93b/aiod-automatic-discounts-895/assets/variant-change-detector.js"></script>
vendor: 1 bytes, line 10830
10830
10831<script defer src="https://cdn.shopify.com/extensions/01a0f75f-1972-7041-9754-0e716bfdc93b/aiod-automatic-discounts-895/assets/widget-engine.js"></script>
vendor: 1 bytes, line 10831
10831
10832<script defer src="https://cdn.shopify.com/extensions/01a0f75f-1972-7041-9754-0e716bfdc93b/aiod-automatic-discounts-895/assets/text-link-utils.js"></script>
vendor: 1 bytes, line 10832
10832
10833<script defer src="https://cdn.shopify.com/extensions/01a0f75f-1972-7041-9754-0e716bfdc93b/aiod-automatic-discounts-895/assets/product-promo-widget-utils.js"></script>
vendor: 1 bytes, line 10833
10833
10834<script defer src="https://cdn.shopify.com/extensions/01a0f75f-1972-7041-9754-0e716bfdc93b/aiod-automatic-discounts-895/assets/discount-pricing-core.js"></script>
vendor: 1 bytes, line 10834
10834
10835<script defer src="https://cdn.shopify.com/extensions/01a0f75f-1972-7041-9754-0e716bfdc93b/aiod-automatic-discounts-895/assets/banner-manager.js"></script>
10835 10836</div><div id="shopify-block-AbmZNMkJoZTRRcUIvb__10830403595879607806" class="shopify-block shopify-app-block"><style> 10837 .rio-withoutBranding .FloatingWidget .R-Logo, 10838 .rio-withoutBranding .CarouselWidget .R-ReviewsioLogo, 10839 .rio-withoutBranding .ElementsWidget .footer__reviewsLogo-container, 10840 .rio-withoutBranding .QnaWidget .footer__reviewsLogo-container, 10841 .rio-withoutBranding .MediaGalleryWidget-prefix .R-ReviewsioLogo, 10842 .rio-withoutBranding .RatingBarWidget .R-PlatformIcon { 10843 display: none !important; 10844 } 10845</style>
10846<script> 10847 window.__REVIEWS_EDITOR__ = false; 10848 window.__REVIEWS_DEMO_CONFIG__ = { 10849 store: 'ecommerce-demo-store', 10850 sku: 'bunch_of_flowers_sku;blue_flowers_sku;white_flowers_sku;pastel_flowers_sku;summer_selection_sku', 10851 widgetIds: { 10852 nuggets: 'W10cpKyjl72VtHv6', 10853 ugc: '7sG9C5qNeKpvhykZ', 10854 floating: 'GBvqmKV1Zy9H4Mpd', 10855 ratingBar: 'pxNMXi7FTlODgr8Q', 10856 survey: 'uLJcD7bFpGMf1Z0C' 10857 }, 10858 surveyCampaignId: '392' 10859 }; 10860 10861 10862 var reviewsIoStore = 'flooret'; 10863 10864 10865 var reviewsIoEnableSyndication = false; 10866 10867 10868 10869 10870 var reviewsIoLang = 'en'; 10871 10872 10873</script>
10873 10874
10875<script defer src="https://cdn.shopify.com/extensions/01a0f781-40b0-734a-a579-a6ab0f7a7741/reviews-co-uk-product-and-merchant-review-collection-60/assets/reviewsio-preview.js"></script>
10875 10876 10877 10878 10879</div><div id="shopify-block-AeXVWZkJYL1lXSVVhM__9022822286719573313" class="shopify-block shopify-app-block"> 10880</div>
10880<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
10880 10881</body> 10882</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.