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":"68d10135-11c8-45c6-8ff2-f3eff16b0c1a-1790276779","pageurl":"www.flooret.com\/blogs\/all","s":"blogs-107545723155","u":"65fc8a960c83","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/checkmate/blocks/checked_network/697a3444-1374-4f13-ba8c-ec03db25ebf0 --> 410
410<script 411 src='/apps/cm/v1/load?source=embed' 412 async 413 ></script>
413 414 415 416 417<!-- 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 -->
417<script type="text/javascript"> 418 419 if (typeof window.formbuilder_customer != "object") { 420 window.formbuilder_customer = {} 421 } 422 423 424 425 window.hulkFormBuilder = { 426 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
426003cp\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}}, 427 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}}, 428 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
428d_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"}}}, 429 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"]}}, 430 shop: null, 431 shop_id: null, 432 plan_features: null, 433 validateDoubleQuotes: false, 434 assets: { 435 searchableDropdown: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/searchable-dropdown.js", 436 extraFunctions: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/extra-functions.js", 437 extraStyles: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/extra-styles.css", 438 bootstrapStyles: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/theme-app-extension-bootstrap.css", 439 }, 440 translations: { 441 htmlTagNotAllowed: "HTML Tags are not allowed", 442 sqlQueryNotAllowed: "SQL Queries are not allowed", 443 doubleQuoteNotAllowed: "Double quotes are not allowed", 444 445 maxTextFieldsReached: "You have added the maximum number of text fields.", 446 447 448 449 zerobounceApiErrorMsg: "We couldn\u0026#39;t verify your email due to a technical issue. Please try again later.", 450 } 451 452 } 453 454 455 456 window.FbThemeAppExtSettingsHash = {} 457 458</script>
458<!-- END app snippet --><!-- 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 /> 459<link rel='preconnect dns-prefetch' href='https://conf.config-security.com/' crossorigin />
460<script> 461/* >> TriplePixel :: start*/ 462window.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); 463/* << TriplePixel :: end*/ 464</script>
464 465 466 467 468<!-- END app block --><!-- BEGIN app block: shopify://apps/minmaxify-order-limits/blocks/app-embed-block/3acfba32-89f3-4377-ae20-cbb9abc48475 -->
468<script src="https://limits.minmaxify.com/limitsv2/flooret-dev.myshopify.com?v=149&r=20260923214021" defer></script>
468 469 470<!-- END app block --><!-- BEGIN app block: shopify://apps/conversion/blocks/seona_by_styleai/c2fdd8a2-5abf-48be-ab7f-5378cb014677 -->
470<script src="https://p.usestyle.ai" defer></script>
470 471 472<!-- END app block --><!-- BEGIN app block: shopify://apps/tolstoy-ads-image-video/blocks/widget-block/06fa8282-42ff-403e-b67c-1936776aed11 --> 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493
494<script 495 type="module" 496 async 497 src="https://widget.gotolstoy.com/we/widget.js" 498 data-shop=flooret-dev.myshopify.com 499 data-app-key=e6732c11-e007-4e38-b562-71a947f28dd9 500 data-should-use-cache=true 501 data-cache-version=19e274b062d 502 data-product-gallery-projects="[]" 503 data-collection-gallery-projects="[]" 504 data-product-id="" 505 data-template-name="blog" 506 data-ot-ignore 507 data-cookieconsent="ignore" 508> 509</script>
vendor: 1 bytes, line 509
509
510<script 511 type="module" 512 async 513 src="https://play.gotolstoy.com/widget-v2/widget.js" 514 id="tolstoy-widget-script" 515 data-shop=flooret-dev.myshopify.com 516 data-app-key=e6732c11-e007-4e38-b562-71a947f28dd9 517 data-should-use-cache=true 518 data-cache-version=19e274b062d 519 data-product-gallery-projects="[]" 520 data-collection-gallery-projects="[]" 521 data-product-id="" 522 data-collection-id="" 523 data-shop-assistant-enabled="false" 524 data-search-bar-widget-enabled="false" 525 data-template-name="blog" 526 data-customer-id="" 527 data-ot-ignore 528 data-cookieconsent="ignore" 529></script>
vendor: 1 bytes, line 529
529
530<script 531 type="module" 532 async 533 src="https://play.gotolstoy.com/widget-v2/widget.brand-mcp.js" 534 data-app-key=e6732c11-e007-4e38-b562-71a947f28dd9 535 data-ot-ignore 536 data-cookieconsent="ignore" 537></script>
vendor: 1 bytes, line 537
537
538<script> 539 window.tolstoyCurrencySymbol = "$"; 540 window.tolstoyMoneyFormat = "${{amount}}"; 541</script>
vendor: 1 bytes, line 541
541
542<script> 543 (function(){ 544 function hideOrphanedTiles(){ 545 var els = document.querySelectorAll('.tolstoy-collection-page-tile,tolstoy-collection-tile'); 546 for(var i=0;i<els.length;i++){ 547 if(els[i].children.length>0) continue; 548 els[i].style.setProperty('display','none','important'); 549 var w=els[i].closest('[class*="tolstoy-grid"]')||els[i].closest('.tolstoy-collection-page-tile-wrapper'); 550 if(w) w.style.setProperty('display','none','important'); 551 } 552 } 553 if(document.readyState==='loading'){ 554 document.addEventListener('DOMContentLoaded',hideOrphanedTiles); 555 }else{ 556 hideOrphanedTiles(); 557 } 558 })(); 559</script>
vendor: 1 bytes, line 559
559
560<script> 561 window.tolstoyDebug = { 562 enable: () => { 563 fetch('/cart/update.js', { 564 method: 'POST', 565 headers: { 'Content-Type': 'application/json' }, 566 body: JSON.stringify({ attributes: { TolstoyDebugEnabled: 'true' } }) 567 }) 568 .then(response => response.json()) 569 .then(() => window.location.reload()); 570 }, 571 disable: () => { 572 fetch('/cart/update.js', { 573 method: 'POST', 574 headers: { 'Content-Type': 'application/json' }, 575 body: JSON.stringify({ attributes: { TolstoyDebugEnabled: null } }) 576 }) 577 .then(response => response.json()) 578 .then(() => window.location.reload()) 579 }, 580 status: async () => { 581 const response = await fetch('/cart.js'); 582 const json = await response.json(); 583 console.log(json.attributes); 584 } 585 } 586</script>
586 587 588<!-- END app block --><!-- BEGIN app block: shopify://apps/cartbot/blocks/cartbot-script-append/f7a44e3b-3901-4412-9d5a-3db0980a9db0 -->
588<script defer="defer"> 589 /** Cartbot script loader, version number: 2.0 */ 590 (function(){ 591 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)}; 592 appendScriptUrl('flooret-dev.myshopify.com'); 593 594 // get script url and append timestamp of last change 595 function appendScriptUrl(shop) { 596 597 var timeStamp = Math.floor(Date.now() / (1000*1*1)); 598 var timestampUrl = 'https://app.cart-bot.net/public/status/shop/'+shop+'.js?'+timeStamp; 599 var backupTimestampUrl = 'https://cdn-app.cart-bot.net/public/status/shop/'+shop+'.js?'+timeStamp; 600 601 loadScript(timestampUrl, function() { 602 // Append app script 603 if (typeof giftbee_settings_updated == 'undefined') { 604 giftbee_settings_updated = 'default-by-script'; 605 } 606 607 var scriptUrl = "https://cdn-app.cart-bot.net/public/js/main.js?shop="+shop+"&"+giftbee_settings_updated; 608 609 loadScript(scriptUrl, function(){}); 610 }, function() { 611 // Failure 612 loadScript(backupTimestampUrl, function() { 613 // Append app script 614 if (typeof giftbee_settings_updated == 'undefined') { 615 giftbee_settings_updated = 'default-by-script'; 616 } 617 618 var scriptUrl = "https://cdn-app.cart-bot.net/public/js/main.js?shop="+shop+"&"+giftbee_settings_updated; 619 620 loadScript(scriptUrl, function(){}); 621 }, function() {}); 622 }); 623 } 624 })(); 625 626 var CartBotScriptAppended = true; 627</script>
627 628 629<!-- END app block --><!-- BEGIN app block: shopify://apps/delivery-pickup/blocks/odd-block/80605365-b4f4-42ba-9b84-3d39984a49dc --> 630 631 632 633 � 634
634<script> 635 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();} 636 </script>
636<!-- 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 --> 637
637<script type="text/javascript" async src="https://odd.identixweb.com/order-delivery-date/assets/js/odd_preview.min.js"></script>
637 638 639 <!-- END app block --><!-- BEGIN app block: shopify://apps/pc454m7bl-opensend/blocks/opensend/a814c5b9-539a-4092-9a9f-dcdf945b8d2d -->
640<script type='text/javascript'> 641!function(s) { 642 let o = s.createElement('script'), u = s.getElementsByTagName('script')[0]; 643 o.src = 'https://cdn.aggle.net/oir/oir.min.js'; 644 o.async = !0, o.setAttribute('oirtyp', '48b1feaa'), o.setAttribute('oirid', 'PC454M7BL'); 645 u.parentNode.insertBefore(o, u); 646}(document); 647</script>
647 648
649<script type='text/javascript'> 650 { 651 const cleanObj = (value) => { 652 if (Array.isArray(value)) { 653 const cleanedArray = value.map(cleanObj).filter((v) => v !== undefined); 654 return cleanedArray.length ? cleanedArray : undefined; 655 } 656 if (value && typeof value === "object") { 657 const cleanedObject = Object.entries(value).reduce((acc, [key, val]) => { 658 const cleanedValue = cleanObj(val); 659 if (cleanedValue !== undefined && cleanedValue !== null && cleanedValue !== "") { 660 acc[key] = cleanedValue; 661 } 662 return acc; 663 }, {}); 664 return Object.keys(cleanedObject).length ? cleanedObject : undefined; 665 } 666 if (value === null || value === undefined || value === "") { 667 return undefined; 668 } 669 return value; 670 }; 671 const getCustomer = () => ({ 672 shopifyCustomerId: "", 673 email: "", 674 phone: "", 675 first_name: null, 676 last_name: null, 677 lifetime_value: null, 678 order_count: null, 679 address: { 680 street: null, 681 city: null, 682 state: null, 683 stateCode: null, 684 postalCode: "", 685 country: "", 686 province: "", 687 countryCode: "", 688 } 689 }); 690 691 } 692</script>
692 693 694 695<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 696 697 698 699 700 701 702 703 704 705 706 707 708
708<script async src="https://static.klaviyo.com/onsite/js/U8YnuA/klaviyo.js?company_id=U8YnuA"></script>
708 709
709<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>
709 710 711 712 713 714 715 716
716<script> 717 window.klaviyoReviewsProductDesignMode = false 718 </script>
718 719 720 721 722 723 724 725 726 727 728<!-- END app block -->
728<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>
vendor: 1 bytes, line 728
728
729<script src="https://cdn.shopify.com/extensions/01a0d474-b3d4-7e57-acf6-716ebce18796/forms-2595/assets/shopify-forms-loader.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: ["16072cab","8450a54b"],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\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"ebf932729e55df621053f2896dbe44a7","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":"7a47b06116c806e4367c27d301f4f458","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":[{"id":"10466006663443","handle":"encinitas","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54445222887699","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10466021146899","handle":"palomar","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54445245104403","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10465974321427","handle":"la-jolla","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54445067239699","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10466063155475","handle":"del-mar","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54445329776915","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10466054471955","handle":"oceanside","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54445318537491","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10465999356179","handle":"coronado","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54445209518355","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10466014134547","handle":"torrey","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54445233635603","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10466059419923","handle":"venice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54445324566803","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://www.flooret.com/cdn","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"185642451219","themePublished":"true","eventMetadataId":"be201d43-7bcb-47dc-97ad-5f4284052f6b","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":"[\"16072cab\", \"8450a54b\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","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":"68d10135-11c8-45c6-8ff2-f3eff16b0c1a-1790276779"}}; 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 try { 800 if (window.__TREKKIE_SHIM_QUEUE == null) { 801 window.__TREKKIE_SHIM_QUEUE = []; 802 } 803 window.__TREKKIE_SHIM_QUEUE.push({ 804 from: 'trekkie-stub', 805 method: method, 806 args: args.slice(1) 807 }); 808 } catch (e) { 809 // no-op 810 } 811 } 812 return trekkie; 813 }; 814 }; 815 for (var i = 0; i < trekkie.methods.length; i++) { 816 var key = trekkie.methods[i]; 817 trekkie[key] = trekkie.factory(key); 818 } 819 trekkie.load = function(config) { 820 trekkie.config = config || {}; 821 trekkie.config.initialDocumentCookie = document.cookie; 822 var first = document.getElementsByTagName('script')[0]; 823var script = document.createElement('script'); 824script.type = 'text/javascript'; 825script.onerror = function(e) { 826 var scriptFallback = document.createElement('script'); 827 scriptFallback.type = 'text/javascript'; 828 scriptFallback.onerror = function(error) { 829 var Monorail = { 830 produce: function produce(monorailDomain, schemaId, payload) { 831 var currentMs = new Date().getTime(); 832 var event = { 833 schema_id: schemaId, 834 payload: payload, 835 metadata: { 836 event_created_at_ms: currentMs, 837 event_sent_at_ms: currentMs 838 } 839 }; 840 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 841 }, 842 sendRequest: function sendRequest(endpointUrl, payload) { 843 // Try the sendBeacon API 844 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 845 var blobData = new window.Blob([payload], { 846 type: 'text/plain' 847 }); 848 849 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 850 return true; 851 } // sendBeacon was not successful 852 853 } // XHR beacon 854 855 var xhr = new XMLHttpRequest(); 856 857 try { 858 xhr.open('POST', endpointUrl); 859 xhr.setRequestHeader('Content-Type', 'text/plain'); 860 xhr.send(payload); 861 } catch (e) { 862 console.log(e); 863 } 864 865 return false; 866 }, 867 isIos12: function isIos12() { 868 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 869 } 870 }; 871 Monorail.produce('monorail-edge.shopifysvc.com', 872 'trekkie_storefront_load_errors/1.1', 873 {shop_id: 69837619475, 874 theme_id: 185642451219, 875 app_name: "storefront", 876 context_url: window.location.href, 877 source_url: "//www.flooret.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"}); 878 879 }; 880 scriptFallback.async = true; 881 scriptFallback.src = '//www.flooret.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 882 first.parentNode.insertBefore(scriptFallback, first); 883}; 884script.async = true; 885script.src = '//www.flooret.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 886first.parentNode.insertBefore(script, first); 887 888 }; 889 trekkie.load( 890 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":69837619475,"isMerchantRequest":null,"themeId":185642451219,"themeCityHash":"13003483640738321681","contentLanguage":"en","currency":"USD","eventMetadataId":"be201d43-7bcb-47dc-97ad-5f4284052f6b"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 891 ); 892 893 var loaded = false;
894 trekkie.ready(function() { 895 if (loaded) return; 896 loaded = true; 897 898 window.ShopifyAnalytics.lib = window.trekkie; 899 900 var originalDocumentWrite = document.write; 901 document.write = customDocumentWrite; 902 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 903 document.write = originalDocumentWrite; 904 905 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 906 var token = match? match[1]: undefined; 907 if (!hasLoggedConversion(token)) { 908 setCookieIfConversion(token); 909 910 } 911 }); 912 913 window.ShopifyAnalytics.lib.page(null,{"pageType":"blog","resourceType":"blog","resourceId":107545723155,"requestId":"68d10135-11c8-45c6-8ff2-f3eff16b0c1a-1790276779","shopifyEmitted":true}); 914 915 var eventsListenerScript = document.createElement('script'); 916 eventsListenerScript.async = true; 917 eventsListenerScript.src = "//www.flooret.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 918 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 919})();</script>
vendor: 1 bytes, line 919
919
920<script 921 defer 922 src="https://www.flooret.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 923 data-application="storefront-renderer" 924 data-shop-id="69837619475" 925 data-render-region="gcp-us-central1" 926 data-page-type="blog" 927 data-theme-instance-id="185642451219" 928 data-theme-name="PowerTheme" 929 data-theme-version="1.0.0" 930 data-monorail-region="shop_domain" 931 data-resource-timing-sampling-rate="10" 932 data-shs="true" 933 data-shs-beacon="true" 934 data-shs-export-with-fetch="true" 935 data-shs-logs-sample-rate="1" 936 data-shs-beacon-endpoint="https://www.flooret.com/api/collect" 937></script>
937 938<meta name="shopify-y" content="efd99525-f0d3-463c-8714-5374c7ba9437" data-expiration="1821834379000"><meta name="shopify-s" content="1e2035d5-91be-4203-8122-d5856bcd919e" data-expiration="1790278579000"><meta name="new-cookie-storage-activated" content="t"> 939</head> 940 941 <body class="template-blog "> 942 943 944
944<script> 945 // Enhanced Global ScrollTrigger Manager 946 (function() { 947 'use strict'; 948 949 let scrollManagerInitialized = false; 950 951 // Robust reveal for elements already in view 952 function revealIfInViewAll(selector, sectionRoot = null) { 953 const root = sectionRoot || document; 954 const elements = root.querySelectorAll(selector); 955 956 elements.forEach((el) => { 957 if (!el) return; 958 959 // Check if element is in viewport 960 const rect = el.getBoundingClientRect(); 961 const inView = rect.top < window.innerHeight && rect.bottom > 0; 962 963 // If in view, reveal immediately 964 if (inView) { 965 gsap.set(el, { 966 opacity: 1, 967 y: 0 968 }); 969 } 970 }); 971 } 972 973 // Initialize ScrollTrigger with production settings 974 function safeScrollTriggerInit() { 975 if (scrollManagerInitialized) return; 976 977 // Respect user's motion preferences 978 const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; 979 if (prefersReducedMotion) { 980 gsap.set('[class*="heading"], [class*="sub"], [class*="button"], [class*="btn"]', { 981 opacity: 1, 982 y: 0 983 }); 984 return; 985 } 986 987 ScrollTrigger.config({ 988 autoRefreshEvents: 'visibilitychange,load,resize', 989 ignoreMobileResize: true 990 }); 991 992 // Normalize scroll behavior 993 994 995 scrollManagerInitialized = true; 996 } 997 998 // Enhanced safe refresh with forced recalculation 999 function safeRefresh(delay = 0) { 1000 safeScrollTriggerInit(); 1001 1002 setTimeout(() => { 1003 ScrollTrigger.getAll().forEach((trigger) => { 1004 trigger.refresh(false, true); // refresh=false means don't kill, true=force update 1005 }); 1006 ScrollTrigger.refresh(true); 1007 }, delay); 1008 } 1009 1010 // Enhanced reveal with GSAP state check 1011 function revealIfInViewAllEnhanced(selector, sectionRoot = null) { 1012 const root = sectionRoot || document; 1013 const elements = root.querySelectorAll(selector); 1014 1015 elements.forEach((el) => { 1016 if (!el) return; 1017 1018 const rect = el.getBoundingClientRect(); 1019 const inView = rect.top < window.innerHeight && rect.bottom > 0; 1020 1021 // Check if element is already animated by ScrollTrigger 1022 const st = ScrollTrigger.getById(el); 1023 if (inView && (!st || !st.isActive())) { 1024 gsap.set(el, { 1025 opacity: 1, 1026 y: 0 1027 }); 1028 } 1029 }); 1030 } 1031 1032 // Make available globally 1033 window.scrollTriggerManager = { 1034 safeScrollTriggerInit: safeScrollTriggerInit, 1035 safeRefresh: safeRefresh, 1036 revealIfInViewAll: revealIfInViewAll, 1037 revealIfInViewAllEnhanced: revealIfInViewAllEnhanced 1038 }; 1039 1040 // Initialize on DOM ready 1041 document.addEventListener('DOMContentLoaded', safeScrollTriggerInit); 1042 })(); 1043 </script>
1043 1044 1045 <div id="shopify-section-announcement-bar-new-section" class="shopify-section"><div class="anuncement-main-wrap" id="pencil-banner"> 1046 <div class="announcement-wrap-container"> 1047 <div 1048 class="announcement-wrap-out" 1049 id="promoBanner" 1050 data-start="2025-11-25" 1051 data-end="2026-12-31" 1052 style="display:none;" 1053 > 1054 1055 1056 <div class="announcement-wrap-in"> 1057 <div 1058 id="announcement-bar-announcement_8xEaEW" 1059 class="announcement-bar" 1060 style="color: #ffffff; display: none;" 1061 1062 > 1063 1064 <a href="https://try.flooret.com/early-black-friday-sale/" class="announcement-bar__inner"> 1065 1066 1067 <div class="announcement-bar__header"> 1068 1069 <p class="announcement-bar__text"> 1070 <p>Up to 40% off Sitewide | Shop the Sale</p> 1071 </p> 1072 1073 1074 </div> 1075 1076 1077 1078 1079 1080 1081 </a> 1082 1083 1084 1085 </div> 1086 1087
1087<script> 1088 (function() { 1089 const blockId = 'announcement_8xEaEW'; 1090 const announcementBar = document.getElementById('announcement-bar-' + blockId); 1091 if (!announcementBar) return; 1092 1093 const closeIcon = document.getElementById('close-icon-' + blockId); 1094 const countdownEl = document.getElementById('countdown-' + blockId); 1095 1096 const storageKey = 'announcementClosed-' + blockId; 1097 const closedTimestamp = localStorage.getItem(storageKey); 1098 const daysToDisplay = 7; 1099 const hideDuration = daysToDisplay * 24 * 60 * 60 * 1000; 1100 1101 // Note: Hardcoding PST is not recommended as it doesn't account for daylight saving. 1102 // A more robust solution would use a library or server-side time. 1103 function getPSTDate(date) { 1104 const utcDate = date.getTime() + (date.getTimezoneOffset() * 60000); 1105 const pstOffset = 7 * 60 * 60000; // Assuming PST is UTC-7 1106 return new Date(utcDate - pstOffset); 1107 } 1108 1109 const currentTimePST = getPSTDate(new Date()).getTime(); 1110 1111 const showUntilDate = ""; 1112 const showUntilHour = "00:00"; 1113 let showUntilTimestamp = null; 1114 1115 if (showUntilDate) { 1116 const showUntilDateTime = showUntilDate + 'T' + showUntilHour + ':00'; 1117 showUntilTimestamp = new Date(showUntilDateTime).getTime(); 1118 } 1119 1120 const shouldShowBanner = () => { 1121 const isNotExpired = !showUntilTimestamp || currentTimePST < showUntilTimestamp; 1122 const isNotClosedRecently = !closedTimestamp || (currentTimePST - closedTimestamp >= hideDuration); 1123 return isNotExpired && isNotClosedRecently; 1124 }; 1125 1126 if (shouldShowBanner()) { 1127 announcementBar.style.display = 'flex'; 1128 } 1129 1130 if (closeIcon) { 1131 closeIcon.addEventListener('click', function () { 1132 announcementBar.style.display = 'none'; 1133 localStorage.setItem(storageKey, currentTimePST.toString()); 1134 }); 1135 } 1136 1137 if (countdownEl) { 1138 const countdownDate = ""; 1139 const countdownHour = "00:00"; 1140 1141 if (countdownDate) { 1142 const futureDateTime = countdownDate + 'T' + countdownHour + ':00'; 1143 const futureDate = new Date(futureDateTime); 1144 1145 const updateCountdown = () => { 1146 const nowPST = getPSTDate(new Date()); 1147 const diffTime = Math.max(0, futureDate - nowPST); 1148 1149 if (diffTime === 0) { 1150 countdownEl.textContent = "0:00:00"; 1151 clearInterval(countdownInterval); 1152 return; 1153 } 1154 1155 const diffDays = Math.floor(diffTime / (1000 * 60 * 60 * 24)); 1156 const diffHours = Math.floor((diffTime % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); 1157 const diffMinutes = Math.floor((diffTime % (1000 * 60 * 60)) / (1000 * 60)); 1158 const diffSeconds = Math.floor((diffTime % (1000 * 60)) / 1000); 1159 1160 countdownEl.textContent = `${diffDays}d ${diffHours}h ${diffMinutes}m ${diffSeconds}s left!`; 1161 }; 1162 1163 const countdownInterval = setInterval(updateCountdown, 1000); 1164 updateCountdown(); 1165 } 1166 } 1167 })(); 1168 </script>
1168 1169 1170 <style> 1171 #announcement-bar-announcement_8xEaEW .close-icon svg path { 1172 fill: #ffffff; 1173 } 1174 </style> 1175 1176 </div> 1177 1178 1179 1180 <div class="announcement-wrap-in"> 1181 <div 1182 id="announcement-bar-announcement_X3hMJT" 1183 class="announcement-bar" 1184 style="color: #ffffff; display: none;" 1185 1186 > 1187 1188 <a href="/collections/all-floors" class="announcement-bar__inner"> 1189 1190 1191 <div class="announcement-bar__header"> 1192 1193 <p class="announcement-bar__text"> 1194 <p>10% Off All Floors + Free Shipping</p> 1195 </p> 1196 1197 1198 </div> 1199 1200 1201 1202 1203 1204 1205 </a> 1206 1207 1208 1209 </div> 1210 1211
1211<script> 1212 (function() { 1213 const blockId = 'announcement_X3hMJT'; 1214 const announcementBar = document.getElementById('announcement-bar-' + blockId); 1215 if (!announcementBar) return; 1216 1217 const closeIcon = document.getElementById('close-icon-' + blockId); 1218 const countdownEl = document.getElementById('countdown-' + blockId); 1219 1220 const storageKey = 'announcementClosed-' + blockId; 1221 const closedTimestamp = localStorage.getItem(storageKey); 1222 const daysToDisplay = 7; 1223 const hideDuration = daysToDisplay * 24 * 60 * 60 * 1000; 1224 1225 // Note: Hardcoding PST is not recommended as it doesn't account for daylight saving. 1226 // A more robust solution would use a library or server-side time. 1227 function getPSTDate(date) { 1228 const utcDate = date.getTime() + (date.getTimezoneOffset() * 60000); 1229 const pstOffset = 7 * 60 * 60000; // Assuming PST is UTC-7 1230 return new Date(utcDate - pstOffset); 1231 } 1232 1233 const currentTimePST = getPSTDate(new Date()).getTime(); 1234 1235 const showUntilDate = ""; 1236 const showUntilHour = "00:00"; 1237 let showUntilTimestamp = null; 1238 1239 if (showUntilDate) { 1240 const showUntilDateTime = showUntilDate + 'T' + showUntilHour + ':00'; 1241 showUntilTimestamp = new Date(showUntilDateTime).getTime(); 1242 } 1243 1244 const shouldShowBanner = () => { 1245 const isNotExpired = !showUntilTimestamp || currentTimePST < showUntilTimestamp; 1246 const isNotClosedRecently = !closedTimestamp || (currentTimePST - closedTimestamp >= hideDuration); 1247 return isNotExpired && isNotClosedRecently; 1248 }; 1249 1250 if (shouldShowBanner()) { 1251 announcementBar.style.display = 'flex'; 1252 } 1253 1254 if (closeIcon) { 1255 closeIcon.addEventListener('click', function () { 1256 announcementBar.style.display = 'none'; 1257 localStorage.setItem(storageKey, currentTimePST.toString()); 1258 }); 1259 } 1260 1261 if (countdownEl) { 1262 const countdownDate = ""; 1263 const countdownHour = "00:00"; 1264 1265 if (countdownDate) { 1266 const futureDateTime = countdownDate + 'T' + countdownHour + ':00'; 1267 const futureDate = new Date(futureDateTime); 1268 1269 const updateCountdown = () => { 1270 const nowPST = getPSTDate(new Date()); 1271 const diffTime = Math.max(0, futureDate - nowPST); 1272 1273 if (diffTime === 0) { 1274 countdownEl.textContent = "0:00:00"; 1275 clearInterval(countdownInterval); 1276 return; 1277 } 1278 1279 const diffDays = Math.floor(diffTime / (1000 * 60 * 60 * 24)); 1280 const diffHours = Math.floor((diffTime % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); 1281 const diffMinutes = Math.floor((diffTime % (1000 * 60 * 60)) / (1000 * 60)); 1282 const diffSeconds = Math.floor((diffTime % (1000 * 60)) / 1000); 1283 1284 countdownEl.textContent = `${diffDays}d ${diffHours}h ${diffMinutes}m ${diffSeconds}s left!`; 1285 }; 1286 1287 const countdownInterval = setInterval(updateCountdown, 1000); 1288 updateCountdown(); 1289 } 1290 } 1291 })(); 1292 </script>
1292 1293 1294 <style> 1295 #announcement-bar-announcement_X3hMJT .close-icon svg path { 1296 fill: #ffffff; 1297 } 1298 </style> 1299 1300 </div> 1301 1302 1303 1304 1305 1306 1307 </div> 1308 </div> 1309 1310 <div class="floating-links"> 1311 1312 1313 1314 1315 1316 1317 <a 1318 style="color:#ffffff;font-size:12px" 1319 href="https://flooretcommercial.com/" 1320 >Flooret Commercial 1321 <svg xmlns="http://www.w3.org/2000/svg" fill="#ffffff" width="15px" height="15px" viewBox="0 0 32 32" version="1.1"> 1322 <title>arrow-up-right</title> 1323 <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"/> 1324 </svg> 1325 1326 </a> 1327 1328 1329 1330 <a 1331 style="color:#ffffff;font-size:12px" 1332 href="https://www.flooret.com/pages/partner-plus" 1333 >Partner + 1334 </a> 1335 1336 1337 </div> 1338</div> 1339 1340<style> 1341 .announcement-wrap-out { 1342 overflow-x: hidden; 1343 max-height:34px; 1344 } 1345 .announcement-wrap-container{ 1346 position:relative; 1347 height:34px; 1348 max-height:34px; 1349 background-color:#111111; 1350 } 1351 #shopify-section-header { 1352 padding: 0px; 1353 margin-top: 0px; 1354 } 1355 #shopify-section-header .gheader__main { 1356 padding:0.5rem 3rem; 1357 } 1358 .announcement-wrap-out { 1359 margin: 0px; 1360 display: flex; 1361 flex-direction: column; 1362 width: 100%; 1363 position:relative; 1364 } 1365 .announcement-wrap-out .slick-track .slick-slide { 1366 height: inherit; 1367 } 1368 .announcement-wrap-out .slick-track .slick-slide > div { 1369 height: 100%; 1370 } 1371 .announcement-wrap-out .announcement-wrap-in { 1372 display: block; 1373 width: 100%; 1374 height:inherit; 1375 } 1376 .announcement-bar { 1377 padding: 8px 30px; 1378 display: flex; 1379 justify-content: center; 1380 align-items: center; 1381 position: relative; 1382 flex-wrap: wrap; 1383 gap: 8px; 1384 } 1385 .announcement-wrap-out .slick-arrow { 1386 position: absolute; 1387 top: 50%; 1388 transform: translateY(-50%); 1389 background: transparent; 1390 border: none; 1391 z-index:4; 1392 display:flex; 1393 } 1394 .announcement-wrap-out .slick-track { 1395 display:flex; 1396 } 1397 .announcement-wrap-out .announcement-bar { 1398 height: 100%; 1399 display:flex !important; 1400 } 1401 .announcement-wrap-out button.slick-arrow.prev { 1402 left: 0; 1403 } 1404 1405 .announcement-wrap-out button.slick-arrow.next { 1406 right: 0; 1407 transform: translateY(-50%); 1408 } 1409 .announcement-bar__countdown, 1410 .announcement-bar__header p { 1411 font-size:12px; 1412 } 1413 .anuncement-main-wrap { 1414 position: relative; 1415 } 1416 1417 .anuncement-main-wrap .floating-links { 1418 1419 } 1420 .anuncement-main-wrap .floating-links > a:nth-child(1){ 1421 position: absolute; 1422 left: 40px; 1423 top: 0; 1424 display: flex; 1425 align-items: center; 1426 justify-content: center; 1427 gap: 6px; 1428 height: 100%; 1429 } 1430 .anuncement-main-wrap .floating-links > a:nth-child(2){ 1431 position: absolute; 1432 right: 40px; 1433 top: 0; 1434 display: flex; 1435 align-items: center; 1436 justify-content: center; 1437 gap: 25px; 1438 height: 100%; 1439 } 1440 .anuncement-main-wrap .floating-links a { 1441 text-decoration: none; 1442 } 1443 @media screen and (min-width: 960px) { 1444 .announcement-bar { 1445 gap: 32px; 1446 flex-wrap: nowrap; 1447 } 1448 } 1449 .announcement-bar__inner { 1450 display: flex; 1451 gap: 8px; 1452 align-items: center; 1453 justify-content: center; 1454 text-decoration: none; 1455 flex-wrap: wrap; 1456 color: inherit; 1457 } 1458 .announcement-bar__text a { 1459 text-decoration:none; 1460 } 1461 .announcement-wrap-out { 1462 width:50%; 1463 margin:auto; 1464 } 1465 1466 @media screen and (min-width: 960px) { 1467 .announcement-bar__inner { 1468 gap: 32px; 1469 } 1470 } 1471 .announcement-bar__text, 1472 .announcement-bar .announcement-bar__button { 1473 font-size: 14px; 1474 font-weight: bold; 1475 margin: 0; 1476 } 1477 .announcement-bar__header { 1478 text-align: center; 1479 } 1480 .announcement-bar__header p { 1481 margin: 0; 1482 } 1483 .announcement-bar__subheading { 1484 font-size: 10px; 1485 font-weight: 500; 1486 margin-top: 4px; 1487 } 1488 .announcement-bar .close-icon { 1489 cursor: pointer; 1490 position: absolute; 1491 right: 15px; 1492 top: 50%; 1493 transform: translateY(-50%); 1494 } 1495 .announcement-bar__header a { 1496 text-decoration: none; 1497 } 1498 @media screen and (min-width: 960px) { 1499 .announcement-bar .close-icon { 1500 position: static; 1501 transform: none; 1502 order: 3; /* Places the close icon at the end */ 1503 } 1504 } 1505 @media screen and (max-width:768px){ 1506 .anuncement-main-wrap .floating-links { 1507 display:none; 1508 } 1509 .announcement-wrap-out .slick-arrow svg { 1510 width: 9px; 1511 height: 9px; 1512 } 1513 body.fr_07 .fr07_categoryCarousel_wrapper { 1514 margin: 1rem 1rem 1rem; 1515 } 1516 .announcement-wrap-out button.slick-arrow.next { 1517 right: 0px; 1518 } 1519 .announcement-wrap-out button.slick-arrow.prev { 1520 left: 0px; 1521 } 1522 .announcement-wrap-container{ 1523 position:relative; 1524 height:auto; 1525 max-height:unset; 1526 } 1527 1528 .announcement-wrap-out { 1529 width:100%; 1530 } 1531 .announcement-wrap-out { 1532 max-height:unset; 1533 } 1534 } 1535 @media screen and (min-width:769px) and (max-width:1024px){ 1536 .announcement-wrap-out { 1537 width:45%; 1538 margin:auto; 1539 } 1540 .anuncement-main-wrap .floating-links{ 1541 gap: 15px; 1542 } 1543 } 1544 1545</style>
1546<script> 1547 // Run on page load 1548 document.addEventListener('DOMContentLoaded', () => { 1549 function parseLocalDate(dateStr) { 1550 // dateStr = "2025-10-06" 1551 const [y, m, d] = dateStr.split('-').map(Number); 1552 return new Date(y, m - 1, d, 0, 0, 0); // local date at midnight 1553 } 1554 1555 function showHideByDate(elementId, start, end) { 1556 const el = document.getElementById(elementId); 1557 if (!el) return; 1558 1559 const startDate = parseLocalDate(start); 1560 const endDate = parseLocalDate(end); 1561 const now = new Date(); 1562 1563 console.log('start:', startDate); 1564 console.log('end:', endDate); 1565 console.log('now :', now); 1566 1567 if (now >= startDate && now <= endDate) { 1568 el.style.display = 'flex'; 1569 } else { 1570 el.style.display = 'none'; 1571 } 1572 } 1573 showHideByDate('promoBanner', `2025-11-25`, `2026-12-31`); 1574 }); 1575</script>
1575 1576 1577 1578</div> 1579 <header id="shopify-section-header" class="shopify-section gheader sticky custom-sticky"> 1580 1581 1582 1583<div class="gheader__main"> 1584 <button type="button" class="gheader__burger reset mob-only" title="Menu"> 1585 <svg width="16" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 1586 <path d="M5 16H27" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 1587 <path d="M5 8H27" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 1588 <path d="M5 24H27" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 1589</svg> 1590 1591 </button> 1592 1593 <nav class="mob-only gheader__mnav js-adjust-to-header js-header-sticky" aria-label="main navigation"> 1594 <button class="close-btn-drawer" > 1595 <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> 1596 </button> 1597 <div class="overflow"> 1598 1599 1600<nav class="mnav" aria-label="Mobile navigation"> 1601 <div class="mnav__inner"><div class="mnav1 is-open" data-mnav1> 1602 <button type="button" 1603 class="mnav1__btn" 1604 aria-expanded="true"> 1605 <span class="mnav1__title">Modin Luxury Vinyl Plank 1606 1607 1608 1609 </span> 1610 <span class="mnav1__chev" aria-hidden="true"></span> 1611 </button> 1612 1613 <div class="mnav1__panel" > 1614 1615 <ul class="mnav2"> 1616 1617 1618 1619<li class="mnav2__item is-leaf "> 1620 <a class="mnav2__link" href="/collections/modin-luxury-vinyl-plank"> 1621 1622 <div class="mmcard__tags"> 1623 1624 1625 </div> 1626 1627 1628 Shop Floors 1629 1630 </a> 1631 </li> 1632 1633 1634 1635 1636 1637<li class="mnav2__item is-leaf "> 1638 <a class="mnav2__link" href="/pages/modin-learn-more"> 1639 1640 <div class="mmcard__tags"> 1641 1642 1643 </div> 1644 1645 1646 Meet Modin 1647 1648 </a> 1649 </li> 1650 1651 1652 1653 1654 1655<li class="mnav2__item is-leaf "> 1656 <a class="mnav2__link" href="/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Modin"> 1657 1658 <div class="mmcard__tags"> 1659 1660 1661 </div> 1662 1663 1664 Trim & Stairs 1665 1666 </a> 1667 </li> 1668 1669 1670 1671 1672 1673<li class="mnav2__item is-leaf "> 1674 <a class="mnav2__link" href="/collections/sample-kits"> 1675 1676 <div class="mmcard__tags"> 1677 1678 1679 </div> 1680 1681 1682 Shop Samples 1683 1684 </a> 1685 </li> 1686 1687 1688 1689 1690 1691<li class="mnav2__item is-leaf has-menu-image"> 1692 <a class="mnav2__link" href="/products/nakan"> 1693 1694 <div class="mmcard__tags"> 1695 1696 1697 <span class="mmcard__tag mmcard__tag--2">Bestseller</span> 1698 1699 </div> 1700 1701 1702 <span class="mnavTile__img"> 1703 <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%;"> 1704 </span> 1705 1706 Nakan Signature 1707 1708 </a> 1709 </li> 1710 1711 1712 1713 1714 1715<li class="mnav2__item is-leaf has-menu-image"> 1716 <a class="mnav2__link" href="/products/palka"> 1717 1718 <div class="mmcard__tags"> 1719 1720 1721 </div> 1722 1723
1724 <span class="mnavTile__img"> 1725 <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"> 1726 </span> 1727 1728 Palka Signature 1729 1730 </a> 1731 </li> 1732 1733 1734 1735 1736 1737<li class="mnav2__item is-leaf has-menu-image"> 1738 <a class="mnav2__link" href="/products/kingswood"> 1739 1740 <div class="mmcard__tags"> 1741 1742 1743 </div> 1744 1745 1746 <span class="mnavTile__img"> 1747 <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"> 1748 </span> 1749 1750 Kingswood Signature 1751 1752 </a> 1753 </li> 1754 1755 1756 1757 1758 1759<li class="mnav2__item is-leaf has-menu-image"> 1760 <a class="mnav2__link" href="/products/kora"> 1761 1762 <div class="mmcard__tags"> 1763 1764 <span class="mmcard__tag mmcard__tag--1">New</span> 1765 1766 1767 </div> 1768 1769 1770 <span class="mnavTile__img"> 1771 <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"> 1772 </span> 1773 1774 Kora Signature 1775 1776 </a> 1777 </li> 1778 1779 1780 1781 1782 1783 </ul> 1784 1785 </div> 1786 </div><div class="mnav1 " data-mnav1> 1787 <button type="button" 1788 class="mnav1__btn" 1789 aria-expanded="false"> 1790 <span class="mnav1__title">Sample Kits 1791 1792 1793 1794 </span> 1795 <span class="mnav1__chev" aria-hidden="true"></span> 1796 </button> 1797 1798 <div class="mnav1__panel" hidden> 1799 1800 <ul class="mnav2"> 1801 1802 1803 1804<li class="mnav2__item is-parent" data-mnav2> 1805 <button type="button" 1806 class="mnav2__btn" 1807 aria-expanded="false"> 1808 <span class="mnav2__title">Bestsellers Kits 1809 1810 </span> 1811 <span class="mnav2__chev" aria-hidden="true"></span> 1812 </button> 1813 1814 <div class="mnav2__panel" hidden> 1815 <ul class="mnavGrid"> 1816 1817 1818<li class="mnavTile "> 1819 <a class="mnavTile__link" href="/products/modin-lvp-signature-bestsellers-sample-kit"> 1820 1821 1822 <span class="mnavTile__title">Modin LVP Signature Bestsellers Kits</span> 1823 </a> 1824 </li> 1825 1826 1827<li class="mnavTile "> 1828 <a class="mnavTile__link" href="/products/modin-lvp-bestsellers-kits"> 1829 1830
1831 <span class="mnavTile__title">Modin LVP Bestsellers Sample Kits</span> 1832 </a> 1833 </li> 1834 1835 1836<li class="mnavTile has-menu-image"> 1837 <a class="mnavTile__link" href="/products/arista-laminate-bestsellers-sample-kits"> 1838 1839 1840 <span class="mnavTile__img"> 1841 <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"> 1842 </span> 1843 1844 <span class="mnavTile__title">Arista Laminate Bestsellers Kit</span> 1845 </a> 1846 </li> 1847 1848 1849<li class="mnavTile "> 1850 <a class="mnavTile__link" href="/products/silvan-resilient-hardwood-bestsellers-sample-kits"> 1851 1852 1853 <span class="mnavTile__title">Silvan Resilient Hardwood Bestsellers Kits</span> 1854 </a> 1855 </li> 1856 1857 1858<li class="mnavTile "> 1859 <a class="mnavTile__link" href="/collections/sample-kits"> 1860 1861 1862 <span class="mnavTile__title">All Sample Kits</span> 1863 </a> 1864 </li> 1865 1866 1867<li class="mnavTile "> 1868 <a class="mnavTile__link" href="/pages/sample-rewards-by-flooret"> 1869 1870 1871 <span class="mnavTile__title">Sample Rewards</span> 1872 </a> 1873 </li> 1874 1875 1876 </ul> 1877 </div> 1878 </li> 1879 1880 1881 1882 1883 1884<li class="mnav2__item is-parent" data-mnav2> 1885 <button type="button" 1886 class="mnav2__btn" 1887 aria-expanded="false"> 1888 <span class="mnav2__title">Comparison Kits 1889 1890 </span> 1891 <span class="mnav2__chev" aria-hidden="true"></span> 1892 </button> 1893 1894 <div class="mnav2__panel" hidden> 1895 <ul class="mnavGrid"> 1896 1897 1898<li class="mnavTile "> 1899 <a class="mnavTile__link" href="/products/modin-lvp-model-comparison-sample-kit"> 1900 1901 1902 <span class="mnavTile__title">Model Comparison Kits</span> 1903 </a> 1904 </li> 1905 1906 1907<li class="mnavTile "> 1908 <a class="mnavTile__link" href="/products/modin-lvp-2-model-comparison-kit"> 1909 1910 1911 <span class="mnavTile__title">2 Model Comparison Kits</span> 1912 </a> 1913 </li> 1914 1915 1916<li class="mnavTile "> 1917 <a class="mnavTile__link" href="/products/modin-lvp-3-model-comparison-kit"> 1918 1919 1920 <span class="mnavTile__title">3 Model Comparison Kits</span> 1921 </a> 1922 </li> 1923 1924 1925<li class="mnavTile "> 1926 <a class="mnavTile__link" href="/products/modin-lvp-4-model-comparison-kit"> 1927 1928
1929 <span class="mnavTile__title">4 Model Comparison Kits</span> 1930 </a> 1931 </li> 1932 1933 1934 </ul> 1935 </div> 1936 </li> 1937 1938 1939 1940 1941 1942<li class="mnav2__item is-leaf has-menu-image"> 1943 <a class="mnav2__link" href="/products/modin-lvp-signature-bestsellers-sample-kit"> 1944 1945 <div class="mmcard__tags"> 1946 1947 1948 </div> 1949 1950 1951 <span class="mnavTile__img"> 1952 <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"> 1953 </span> 1954 1955 Modin LVP Signature Bestsellers Kit 1956 1957 </a> 1958 </li> 1959 1960 1961 1962 1963 1964<li class="mnav2__item is-leaf has-menu-image"> 1965 <a class="mnav2__link" href="https://www.flooret.com/products/bestsellers-sample-kits?variant=52339236241683"> 1966 1967 <div class="mmcard__tags"> 1968 1969 1970 </div> 1971 1972 1973 <span class="mnavTile__img"> 1974 <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"> 1975 </span> 1976 1977 Arista Laminate Bestsellers Kit 1978 1979 </a> 1980 </li> 1981 1982 1983 1984 1985 1986<li class="mnav2__item is-leaf has-menu-image"> 1987 <a class="mnav2__link" href="https://www.flooret.com/products/bestsellers-sample-kits?variant=52339236176147"> 1988 1989 <div class="mmcard__tags"> 1990 1991 1992 </div> 1993 1994 1995 <span class="mnavTile__img"> 1996 <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"> 1997 </span> 1998 1999 Silvan 7" Bestsellers Kit 2000 2001 </a> 2002 </li> 2003 2004 2005 2006 2007 2008 </ul> 2009 2010 </div> 2011 </div><div class="mnav1 " data-mnav1> 2012 <button type="button" 2013 class="mnav1__btn" 2014 aria-expanded="false"> 2015 <span class="mnav1__title">Arista Laminate 2016 2017 2018 2019 </span> 2020 <span class="mnav1__chev" aria-hidden="true"></span> 2021 </button> 2022 2023 <div class="mnav1__panel" hidden> 2024 2025 <ul class="mnav2"> 2026 2027 2028 2029<li class="mnav2__item is-leaf "> 2030 <a class="mnav2__link" href="/collections/arista-laminate"> 2031 2032 <div class="mmcard__tags"> 2033 2034 2035 </div> 2036 2037 2038 Shop Floors 2039 2040 </a> 2041 </li> 2042 2043 2044 2045 2046 2047<li class="mnav2__item is-leaf "> 2048 <a class="mnav2__link" href="/pages/modin-learn-more"> 2049 2050 <div class="mmcard__tags"> 2051 2052 2053 </div> 2054 2055 2056 Meet Arista 2057 2058 </a> 2059 </li> 2060 2061 2062 2063 2064 2065<li class="mnav2__item is-leaf "> 2066 <a class="mnav2__link" href="/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Arista"> 2067 2068 <div class="mmcard__tags"> 2069 2070 2071 </div> 2072 2073 2074 Trim & Stairs 2075 2076 </a> 2077 </li> 2078 2079 2080 2081 2082 2083<li class="mnav2__item is-leaf "> 2084 <a class="mnav2__link" href="/collections/sample-kits"> 2085 2086 <div class="mmcard__tags"> 2087 2088 2089 </div> 2090 2091 2092 Shop Samples 2093 2094 </a> 2095 </li> 2096 2097 2098 2099 2100 2101<li class="mnav2__item is-leaf has-menu-image"> 2102 <a class="mnav2__link" href="/products/russo-1"> 2103 2104 <div class="mmcard__tags"> 2105 2106
2107 <span class="mmcard__tag mmcard__tag--2">Bestseller</span> 2108 2109 </div> 2110 2111 2112 <span class="mnavTile__img"> 2113 <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"> 2114 </span> 2115 2116 Russo 2117 2118 </a> 2119 </li> 2120 2121 2122 2123 2124 2125<li class="mnav2__item is-leaf has-menu-image"> 2126 <a class="mnav2__link" href="/products/levant"> 2127 2128 <div class="mmcard__tags"> 2129 2130 2131 </div> 2132 2133 2134 <span class="mnavTile__img"> 2135 <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"> 2136 </span> 2137 2138 Levant 2139 2140 </a> 2141 </li> 2142 2143 2144 2145 2146 2147<li class="mnav2__item is-leaf has-menu-image"> 2148 <a class="mnav2__link" href="/products/opera"> 2149 2150 <div class="mmcard__tags"> 2151 2152 2153 </div> 2154 2155 2156 <span class="mnavTile__img"> 2157 <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"> 2158 </span> 2159 2160 Opera 2161 2162 </a> 2163 </li> 2164 2165 2166 2167 2168 2169<li class="mnav2__item is-leaf has-menu-image"> 2170 <a class="mnav2__link" href="/products/concorde"> 2171 2172 <div class="mmcard__tags"> 2173 2174 2175 </div> 2176 2177 2178 <span class="mnavTile__img"> 2179 <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"> 2180 </span> 2181 2182 Concorde 2183 2184 </a> 2185 </li> 2186 2187 2188 2189 2190 2191 </ul> 2192 2193 </div> 2194 </div><div class="mnav1 " data-mnav1> 2195 <button type="button" 2196 class="mnav1__btn" 2197 aria-expanded="false"> 2198 <span class="mnav1__title">Silvan Resilient Hardwood 2199 2200 2201 2202 </span> 2203 <span class="mnav1__chev" aria-hidden="true"></span> 2204 </button> 2205 2206 <div class="mnav1__panel" hidden> 2207 2208 <ul class="mnav2"> 2209 2210 2211 2212<li class="mnav2__item is-leaf "> 2213 <a class="mnav2__link" href="/collections/silvan-hardwood"> 2214 2215 <div class="mmcard__tags"> 2216 2217 2218 </div> 2219 2220 2221 Shop Floors 2222 2223 </a> 2224 </li> 2225 2226 2227 2228 2229 2230<li class="mnav2__item is-leaf "> 2231 <a class="mnav2__link" href="/pages/silvan-learn-more"> 2232 2233 <div class="mmcard__tags"> 2234 2235 2236 </div> 2237 2238 2239 Meet Silvan 2240 2241 </a> 2242 </li> 2243 2244 2245 2246 2247 2248<li class="mnav2__item is-leaf "> 2249 <a class="mnav2__link" href="/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Silvan"> 2250 2251 <div class="mmcard__tags"> 2252 2253 2254 </div> 2255 2256 2257 Trim & Stairs 2258 2259 </a> 2260 </li> 2261 2262 2263 2264 2265 2266<li class="mnav2__item is-leaf "> 2267 <a class="mnav2__link" href="/collections/sample-kits"> 2268 2269 <div class="mmcard__tags"> 2270 2271 2272 </div> 2273 2274 2275 Shop Samples 2276 2277 </a> 2278 </li> 2279 2280 2281 2282 2283 2284<li class="mnav2__item is-leaf has-menu-image"> 2285 <a class="mnav2__link" href="/products/anza-7"> 2286 2287 <div class="mmcard__tags"> 2288 2289 2290 </div> 2291 2292
2293 <span class="mnavTile__img"> 2294 <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"> 2295 </span> 2296 2297 Silvan Anza 7â 2298 2299 </a> 2300 </li> 2301 2302 2303 2304 2305 2306<li class="mnav2__item is-leaf has-menu-image"> 2307 <a class="mnav2__link" href="/products/balboa"> 2308 2309 <div class="mmcard__tags"> 2310 2311 2312 <span class="mmcard__tag mmcard__tag--2">Bestseller</span> 2313 2314 </div> 2315 2316 2317 <span class="mnavTile__img"> 2318 <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%;"> 2319 </span> 2320 2321 Silvan Balboa 7â 2322 2323 </a> 2324 </li> 2325 2326 2327 2328 2329 2330<li class="mnav2__item is-leaf has-menu-image"> 2331 <a class="mnav2__link" href="/products/norde"> 2332 2333 <div class="mmcard__tags"> 2334 2335 2336 </div> 2337 2338 2339 <span class="mnavTile__img"> 2340 <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"> 2341 </span> 2342 2343 Silvan Norde 7â 2344 2345 </a> 2346 </li> 2347 2348 2349 2350 2351 2352 </ul> 2353 2354 </div> 2355 </div><div class="mnav1 " data-mnav1> 2356 <button type="button" 2357 class="mnav1__btn" 2358 aria-expanded="false"> 2359 <span class="mnav1__title">Shop Flooret Rugs 2360 2361 2362 2363 </span> 2364 <span class="mnav1__chev" aria-hidden="true"></span> 2365 </button> 2366 2367 <div class="mnav1__panel" hidden> 2368 2369 <ul class="mnav2"> 2370 2371 2372 2373<li class="mnav2__item is-leaf "> 2374 <a class="mnav2__link" href="/collections/rugs"> 2375 2376 <div class="mmcard__tags"> 2377 2378 2379 </div> 2380 2381 2382 Shop Rugs 2383 2384 </a> 2385 </li> 2386 2387 2388 2389 2390 2391<li class="mnav2__item is-leaf "> 2392 <a class="mnav2__link" href="/pages/meet-flooret-rugs"> 2393 2394 <div class="mmcard__tags"> 2395 2396 2397 </div> 2398 2399 2400 Meet Rugs 2401 2402 </a> 2403 </li> 2404 2405 2406 2407 2408 2409<li class="mnav2__item is-leaf has-menu-image"> 2410 <a class="mnav2__link" href="https://www.flooret.com/products/palomar?variant=54445245104403"> 2411 2412 <div class="mmcard__tags"> 2413 2414 2415 </div> 2416 2417
2418 <span class="mnavTile__img"> 2419 <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"> 2420 </span> 2421 2422 Palomar Juniper Green 2423 2424 </a> 2425 </li> 2426 2427 2428 2429 2430 2431<li class="mnav2__item is-leaf has-menu-image"> 2432 <a class="mnav2__link" href="https://www.flooret.com/products/oceanside?variant=54445318537491"> 2433 2434 <div class="mmcard__tags"> 2435 2436 2437 </div> 2438 2439 2440 <span class="mnavTile__img"> 2441 <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"> 2442 </span> 2443 2444 Oceanside Deep Blue 2445 2446 </a> 2447 </li> 2448 2449 2450 2451 2452 2453<li class="mnav2__item is-leaf has-menu-image"> 2454 <a class="mnav2__link" href="https://www.flooret.com/products/encinitas?variant=54445222986003"> 2455 2456 <div class="mmcard__tags"> 2457 2458 2459 </div> 2460 2461 2462 <span class="mnavTile__img"> 2463 <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"> 2464 </span> 2465 2466 Encinitas Clay Red 2467 2468 </a> 2469 </li> 2470 2471 2472 2473 2474 2475<li class="mnav2__item is-leaf has-menu-image"> 2476 <a class="mnav2__link" href="https://www.flooret.com/products/del-mar?variant=54445329776915"> 2477 2478 <div class="mmcard__tags"> 2479 2480 2481 </div> 2482 2483 2484 <span class="mnavTile__img"> 2485 <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"> 2486 </span> 2487 2488 Del Mar Soft Creme 2489 2490 </a> 2491 </li> 2492 2493 2494 2495 2496 2497 </ul> 2498 2499 </div> 2500 </div><div class="mnav1 " data-mnav1> 2501 <button type="button" 2502 class="mnav1__btn" 2503 aria-expanded="false">
2504 <span class="mnav1__title">Collaborations 2505 2506 2507 2508 </span> 2509 <span class="mnav1__chev" aria-hidden="true"></span> 2510 </button> 2511 2512 <div class="mnav1__panel" hidden> 2513 2514 <ul class="mnav2"> 2515 2516 2517 2518<li class="mnav2__item is-leaf has-menu-image"> 2519 <a class="mnav2__link" href="/pages/flooret-x-farah-merhi"> 2520 2521 <div class="mmcard__tags"> 2522 2523 2524 </div> 2525 2526 2527 <span class="mnavTile__img"> 2528 <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"> 2529 </span> 2530 2531 Farah Merhi 2532 2533 </a> 2534 </li> 2535 2536 2537 2538 2539 2540<li class="mnav2__item is-leaf has-menu-image"> 2541 <a class="mnav2__link" href="/pages/flooret-x-oakavehouse"> 2542 2543 <div class="mmcard__tags"> 2544 2545 2546 </div> 2547 2548 2549 <span class="mnavTile__img"> 2550 <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"> 2551 </span> 2552 2553 Oak Ave House 2554 2555 </a> 2556 </li> 2557 2558 2559 2560 2561 2562<li class="mnav2__item is-leaf has-menu-image"> 2563 <a class="mnav2__link" href="/pages/flooret-x-rene-ceretto-landing-page"> 2564 2565 <div class="mmcard__tags"> 2566 2567 2568 </div> 2569 2570 2571 <span class="mnavTile__img"> 2572 <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"> 2573 </span> 2574 2575 Pleasantly Built 2576 2577 </a> 2578 </li> 2579 2580 2581 2582 2583 2584<li class="mnav2__item is-leaf has-menu-image"> 2585 <a class="mnav2__link" href="/pages/flooret-x-agar-family"> 2586 2587 <div class="mmcard__tags"> 2588 2589 2590 </div> 2591 2592 2593 <span class="mnavTile__img"> 2594 <img src="//www.flooret.com/cdn/shop/files/Team_Agar_1.png?v=1769692439&width=360" alt="Agar Family" srcset="//www.flooret.com/cdn/shop/files/Team_Agar_1.png?v=1769692439&width=352 352w, //www.flooret.com/cdn/shop/files/Team_Agar_1.png?v=1769692439&width=360 360w" width="360" height="360" loading="lazy"> 2595 </span> 2596 2597 Agar Family 2598 2599 </a> 2600 </li> 2601 2602 2603 2604 2605 2606<li class="mnav2__item is-leaf has-menu-image"> 2607 <a class="mnav2__link" href="/pages/dallas-mavericks"> 2608 2609 <div class="mmcard__tags"> 2610 2611 2612 </div> 2613 2614
2615 <span class="mnavTile__img"> 2616 <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"> 2617 </span> 2618 2619 Dallas Mavericks 2620 2621 </a> 2622 </li> 2623 2624 2625 2626 2627 2628<li class="mnav2__item is-leaf has-menu-image"> 2629 <a class="mnav2__link" href="/pages/flooret-before-and-after-transformations"> 2630 2631 <div class="mmcard__tags"> 2632 2633 2634 </div> 2635 2636 2637 <span class="mnavTile__img"> 2638 <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"> 2639 </span> 2640 2641 Before & After Transformations 2642 2643 </a> 2644 </li> 2645 2646 2647 2648 2649 2650 </ul> 2651 2652 </div> 2653 </div><div class="mnav1 " data-mnav1> 2654 <button type="button" 2655 class="mnav1__btn" 2656 aria-expanded="false"> 2657 <span class="mnav1__title">Resources 2658 2659 2660 2661 </span> 2662 <span class="mnav1__chev" aria-hidden="true"></span> 2663 </button> 2664 2665 <div class="mnav1__panel" hidden> 2666 2667 <ul class="mnav2"> 2668 2669 2670 2671<li class="mnav2__item is-leaf has-menu-image"> 2672 <a class="mnav2__link" href="/pages/technical-documents"> 2673 2674 <div class="mmcard__tags"> 2675 2676 2677 </div> 2678 2679 2680 <span class="mnavTile__img"> 2681 <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"> 2682 </span> 2683 2684 Technical Documents 2685 2686 </a> 2687 </li> 2688 2689 2690 2691 2692 2693<li class="mnav2__item is-leaf has-menu-image"> 2694 <a class="mnav2__link" href="/pages/shipping"> 2695 2696 <div class="mmcard__tags"> 2697 2698 2699 </div> 2700 2701 2702 <span class="mnavTile__img"> 2703 <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"> 2704 </span> 2705 2706 Shipping 2707 2708 </a> 2709 </li> 2710 2711 2712 2713 2714 2715<li class="mnav2__item is-leaf has-menu-image"> 2716 <a class="mnav2__link" href="https://support.flooret.com/"> 2717 2718 <div class="mmcard__tags"> 2719 2720 2721 </div> 2722 2723
2724 <span class="mnavTile__img"> 2725 <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"> 2726 </span> 2727 2728 FAQs 2729 2730 </a> 2731 </li> 2732 2733 2734 2735 2736 2737<li class="mnav2__item is-leaf has-menu-image"> 2738 <a class="mnav2__link" href="/pages/ten-year-anniversary"> 2739 2740 <div class="mmcard__tags"> 2741 2742 2743 </div> 2744 2745 2746 <span class="mnavTile__img"> 2747 <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"> 2748 </span> 2749 2750 10 Years of Flooret 2751 2752 </a> 2753 </li> 2754 2755 2756 2757 2758 2759<li class="mnav2__item is-leaf has-menu-image"> 2760 <a class="mnav2__link" href="/blogs/all"> 2761 2762 <div class="mmcard__tags"> 2763 2764 2765 </div> 2766 2767 2768 <span class="mnavTile__img"> 2769 <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"> 2770 </span> 2771 2772 Blogs 2773 2774 </a> 2775 </li> 2776 2777 2778 2779 2780 2781<li class="mnav2__item is-leaf has-menu-image"> 2782 <a class="mnav2__link" href="/collections/inspiration"> 2783 2784 <div class="mmcard__tags"> 2785 2786 2787 </div> 2788 2789 2790 <span class="mnavTile__img"> 2791 <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"> 2792 </span> 2793 2794 Gallery 2795 2796 </a> 2797 </li> 2798 2799 2800 2801 2802 2803<li class="mnav2__item is-leaf has-menu-image"> 2804 <a class="mnav2__link" href="/pages/referral-program"> 2805 2806 <div class="mmcard__tags"> 2807 2808 2809 </div> 2810 2811 2812 <span class="mnavTile__img"> 2813 <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"> 2814 </span> 2815 2816 Referral Program 2817 2818 </a> 2819 </li> 2820 2821 2822 2823 2824 2825<li class="mnav2__item is-leaf has-menu-image"> 2826 <a class="mnav2__link" href="https://www.flooret.com/pages/find-an-installer"> 2827 2828 <div class="mmcard__tags"> 2829 2830 2831 </div> 2832 2833
2834 <span class="mnavTile__img"> 2835 <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"> 2836 </span> 2837 2838 Find an Installer 2839 2840 </a> 2841 </li> 2842 2843 2844 2845 2846 2847 </ul> 2848 2849 </div> 2850 </div></div> 2851</nav> 2852 2853 2854<style> 2855 .gheader__mnav { 2856 background: #F4F2EC; 2857} 2858 2859.gheader__mnav button.close-btn-drawer { 2860 margin: 20px; 2861 margin-left: auto; 2862 width: fit-content; 2863 display: block; 2864 border: none; 2865 background: none; 2866} 2867.mnavGrid li.mnavTile a.mnavTile__link { 2868 display: flex !important; 2869 align-items: center; 2870} 2871.mnavGrid li.mnavTile a.mnavTile__link span.custom-badge-new { 2872 right: 0; 2873 top: -12px; 2874 position: relative; 2875 order: 2; 2876 margin-left: 14px; 2877} 2878.gheader__mnav__fixed { 2879 margin-top: 30px; 2880} 2881 2882.gheader__mnav > .overflow { 2883 display: grid; 2884 grid-template-rows: auto 1fr; 2885 height: calc(100% - 70px ); 2886} 2887ul.mnav2 li.mnav2__item.is-parent { 2888 width: 100%; 2889} 2890 2891 .gheader__mnav { 2892 background: #F4F2EC; 2893 } 2894 2895 .gheader__mnav button.close-btn-drawer { 2896 margin: 20px; 2897 margin-left: auto; 2898 width: fit-content; 2899 display: block; 2900 border: none; 2901 background: none; 2902 } 2903 2904 .gheader__mnav.active { overflow-y:auto; } 2905 .mnav { width: 100%; } 2906 body .gheader__nav ul li button.mega-menu-button { 2907 position: relative; 2908 padding-bottom: 5px !important; 2909} 2910 2911li.mega-menu-li button::after { 2912 content: ''; 2913 display: block; 2914 position: absolute; 2915 left: 0; 2916 right: 0; 2917 bottom: 0px; 2918 height: 1px; 2919 width: 100%; 2920 background: #000; 2921 transform: scaleX(0); 2922 transform-origin: right center; 2923 transition: transform 0.5s linear; 2924} 2925 2926li.mega-menu-li button:hover::after { 2927 transform: scaleX(1); 2928 transform-origin: left center; 2929} 2930 2931 2932.mnav__inner { padding: 0px; } 2933 2934.mnav2__item li.mnavTile.has-menu-image .mnavTile__img { 2935 display: none; 2936} 2937.mnav2__item li.mnavTile.has-menu-image a.mnavTile__link .mnavTile__title { 2938 display: block; 2939 font-family: Montserrat; 2940 font-weight: 500; 2941 font-style: Medium; 2942 font-size: 14px; 2943 leading-trim: NONE; 2944 line-height: 130%; 2945 letter-spacing: 1%; 2946 text-decoration: none; 2947 color: #000000; 2948} 2949.mnav2__item li.mnavTile.has-menu-image { 2950 margin: 0px !important; 2951} 2952 2953/* L1 accordion */ 2954.mnav1.is-open { border-bottom: 1px solid #000; } 2955.mnav1__btn{ 2956 width:100%; padding:14px 0; 2957 display:flex; align-items:center; justify-content:space-between; 2958 border:0; background:transparent; text-align:left; cursor:pointer;border-bottom: 1px solid #F3F4F6; 2959} 2960.mnav1__title { 2961 font-family: Playfair Display; 2962 font-weight: 500; 2963 font-style: Medium; 2964 font-size: 18px; 2965 leading-trim: NONE; 2966 line-height: 28px; 2967 letter-spacing: 0px; 2968 color: #000000; 2969 position:relative; 2970} 2971.mnav1__chev { 2972 width: 8px; 2973 height: 8px; 2974 border-right: 1px solid #99A1AF; 2975 border-bottom: 1px solid #99A1AF; 2976 transform: rotate(45deg); 2977 transition: transform .2s ease; 2978} 2979ul.mnav2 { 2980 display: flex; 2981 flex-wrap: wrap; 2982} 2983 2984ul.mnav2 li.mnav2__item.is-leaf { 2985 width: 100%; 2986} 2987 2988ul.mnav2 li.mnav2__item.is-leaf.has-menu-image { 2989 width: calc(50% - 10px); 2990 margin: 0px 5px; 2991} 2992 2993ul.mnav2 li.mnav2__item.is-leaf.has-menu-image > a.mnav2__link { 2994 font-family: Playfair Display; 2995 font-weight: 500; 2996 font-style: Medium; 2997 font-size: 13px; 2998 leading-trim: NONE; 2999 line-height: 24px; 3000 letter-spacing: 0px; 3001 color: #000000; 3002} 3003.mnav1.is-open .mnav1__chev{ transform: rotate(-135deg); } 3004.mnav1__panel{ padding: 0 0 12px; } 3005 3006/* L2 list */ 3007.mnav2{ list-style:none; padding:0; margin:0; } 3008 3009 3010/* L2 leaf link (no dropdown) */ 3011.mnav2__link { 3012 display: block; 3013 padding: 12px 0; 3014 font-family: Montserrat; 3015 font-weight: 500; 3016 font-style: Medium; 3017 font-size: 14px;
3018 leading-trim: NONE; 3019 line-height: 130%; 3020 letter-spacing: 1%; 3021 text-decoration: none; 3022 color: #000000; 3023} 3024 3025/* L2 parent (dropdown) */ 3026.mnav2__btn{ 3027 width:100%; 3028 padding:12px 0; 3029 display:flex; 3030 align-items:center; 3031 justify-content:space-between; 3032 border:0; 3033 background:transparent; 3034 text-align:left; 3035 cursor:pointer; 3036} 3037ul.mnav2 li.mnav2__item.is-parent { 3038 width: 100%; 3039} 3040.mnav2__title { 3041font-family: Playfair Display; 3042 font-weight: 500; 3043 font-style: Medium; 3044 font-size: 18px; 3045 leading-trim: NONE; 3046 line-height: 28px; 3047 letter-spacing: 0px; 3048 color: #000000; 3049 position:relative; 3050} 3051.mnav2__chev{ 3052 width: 8px; 3053 height: 8px; 3054 border-right: 1px solid #99A1AF; 3055 border-bottom: 1px solid #99A1AF; 3056 transform: rotate(45deg); 3057 transition: transform .2s ease; 3058} 3059.mnav2__btn.is-open .mnav2__chev{ transform: rotate(-135deg); } 3060 3061.mnav2__panel{ padding: 0px 0 14px; } 3062 3063/* Grid */ 3064.mnavGrid { 3065 list-style: none; 3066 padding: 0; 3067 margin: 0; 3068 display: flex; 3069 flex-wrap: wrap; 3070} 3071.mnavGrid li.mnavTile { 3072 width: 100%; 3073 3074} 3075 3076.mnavGrid li.mnavTile a.mnavTile__link { 3077 display: block; 3078 padding: 12px 0; 3079 font-family: Montserrat; 3080 font-weight: 500; 3081 font-style: Medium; 3082 font-size: 14px; 3083 leading-trim: NONE; 3084 line-height: 130%; 3085 letter-spacing: 1%; 3086 text-decoration: none; 3087 color: #000000; 3088} 3089.mnavGrid li.mnavTile.has-menu-image { 3090 width: calc(50% - 10px); 3091 margin: 0px 5px; 3092 border-top:none; 3093} 3094 3095 3096.mnavTile__link{ display:block; text-decoration:none; } 3097.mnavTile__img{ 3098 display:block; 3099 border-radius:6px; 3100 overflow:hidden; 3101 background:#f4f3f1; 3102} 3103.mnavTile__img img{ 3104 width:100%; 3105 3106 object-fit:cover; 3107 display:block; 3108} 3109.mnavTile__title{ 3110 display:block; 3111 font-family: Montserrat; 3112 font-weight: 500; 3113 font-style: Medium; 3114 font-size: 14px; 3115 leading-trim: NONE; 3116 line-height: 130%; 3117 letter-spacing: 1%; 3118 text-decoration: none; 3119 color: #000000; 3120} 3121.mnavGrid li.mnavTile.has-menu-image span.mnavTile__title { 3122 font-family: Playfair Display; 3123 font-weight: 500; 3124 font-style: Medium; 3125 font-size: 13px; 3126 leading-trim: NONE; 3127 line-height: 24px; 3128 letter-spacing: 0px; 3129 color: #000000; 3130 margin-top: 0px; 3131} 3132.mnavTile:not(.has-menu-image) .mnavTile__title{ margin-top:0; } 3133 3134@media (max-width:768px) { 3135.mnavGrid li.mnavTile.has-menu-image { 3136 width: 100%; 3137 margin: 0px !important; 3138 border-top: none; 3139} 3140} 3141</style> 3142
3143<script> 3144 document.addEventListener('DOMContentLoaded', () => { 3145 const root = document.querySelector('.mnav'); 3146 if (!root) return; 3147 3148 // L1 accordion (single open) 3149 root.querySelectorAll('[data-mnav1]').forEach(section => { 3150 const btn = section.querySelector('.mnav1__btn'); 3151 const panel = section.querySelector('.mnav1__panel'); 3152 if (!btn || !panel) return; 3153 3154 btn.addEventListener('click', () => { 3155 const isOpen = section.classList.contains('is-open'); 3156 3157 root.querySelectorAll('[data-mnav1]').forEach(s => { 3158 s.classList.remove('is-open'); 3159 const b = s.querySelector('.mnav1__btn'); 3160 const p = s.querySelector('.mnav1__panel'); 3161 if (b) b.setAttribute('aria-expanded', 'false'); 3162 if (p) p.setAttribute('hidden', ''); 3163 }); 3164 3165 if (!isOpen) { 3166 section.classList.add('is-open'); 3167 btn.setAttribute('aria-expanded', 'true'); 3168 panel.removeAttribute('hidden'); 3169 } 3170 }); 3171 }); 3172 3173 // L2 accordion only for items that actually have children (data-mnav2) 3174 root.querySelectorAll('[data-mnav1]').forEach(section => { 3175 const rows = section.querySelectorAll('[data-mnav2]'); 3176 3177 rows.forEach(row => { 3178 const btn = row.querySelector('.mnav2__btn'); 3179 const panel = row.querySelector('.mnav2__panel'); 3180 if (!btn || !panel) return; 3181 3182 btn.addEventListener('click', () => { 3183 const isOpen = btn.classList.contains('is-open'); 3184 3185 // close all L2 dropdowns within this L1 3186 rows.forEach(r => { 3187 const b = r.querySelector('.mnav2__btn'); 3188 const p = r.querySelector('.mnav2__panel'); 3189 if (b) { b.classList.remove('is-open'); b.setAttribute('aria-expanded', 'false'); } 3190 if (p) p.setAttribute('hidden', ''); 3191 }); 3192 3193 if (!isOpen) { 3194 btn.classList.add('is-open'); 3195 btn.setAttribute('aria-expanded', 'true'); 3196 panel.removeAttribute('hidden'); 3197 } 3198 }); 3199 }); 3200 }); 3201}); 3202 3203</script>
3203 3204
3205<script> 3206 document.addEventListener('DOMContentLoaded', () => { 3207 var closeBtnMenuDrawer = document.querySelector('.close-btn-drawer'); 3208 var menuDrawer = document.querySelector('.mob-only.gheader__mnav'); 3209 var mainDrawerBtn = document.querySelector('.gheader__burger') 3210 3211 closeBtnMenuDrawer.addEventListener('click', ()=>{ 3212 document.querySelector('body').classList.remove('no-scroll') 3213 menuDrawer.classList.remove('active'); 3214 menuDrawer.classList.remove('is-stuck'); 3215 mainDrawerBtn.classList.remove('active'); 3216 }) 3217 }) 3218</script>
3218 3219 <div class="gheader__mnav__fixed"> 3220 <a class="" href="/account">My Account</a> 3221 <a class="" target="_blank" href="https://flooretcommercial.com/">Flooret Commercial</a> 3222 <a class="" href="/pages/partner-plus">Partner +</a> 3223 </div> 3224 </div> 3225 </nav> 3226 3227 <a class="gheader__logo" href="/"> 3228 <img style="display:none;" src="//www.flooret.com/cdn/shop/t/125/assets/logo.svg?v=9074420933130547371775037866" width="110" height="23" alt="Flooret"> 3229 <img src="//www.flooret.com/cdn/shop/t/125/assets/new-logo.svg?v=161378473033427586771775037877" width="110" height="23" alt="Flooret"> 3230 </a> 3231 3232 3233 <li class="singlemenu only-mob"> 3234 <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> 3235 </li> 3236 3237 3238 <div class="gheader__nav desk-only"> 3239 <ul> 3240 3241 3242 <div class="wrap"> 3243 3244 3245 3246 3247 <li class="mega-menu-li " > 3248 <button class="reset mega-menu-button " data-menu="modin-lvp"> 3249 3250 <a href="/collections/modin-luxury-vinyl-plank" >Modin LVP</a> 3251 3252 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3253<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 3254</svg> 3255 3256 </button> 3257 </li> 3258 3259 3260 3261 3262 3263 3264 3265 <li class="mega-menu-li " > 3266 <button class="reset mega-menu-button " data-menu="arista-laminate"> 3267 3268 <a href="/collections/arista-laminate" >Arista Laminate</a> 3269 3270 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3271<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 3272</svg> 3273 3274 </button> 3275 </li> 3276 3277 3278 3279 3280 3281 3282 3283 <li class="mega-menu-li " > 3284 <button class="reset mega-menu-button " data-menu="silvan-hardwood"> 3285 3286 <a href="/collections/silvan-hardwood" >Silvan Hardwood</a> 3287 3288 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3289<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 3290</svg> 3291 3292 </button> 3293 </li> 3294 3295 3296 3297 3298 3299 3300 3301 <li class="mega-menu-li " > 3302 <button class="reset mega-menu-button " data-menu="flooret-rugs"> 3303 3304 Flooret Rugs 3305 3306 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3307<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 3308</svg> 3309 3310 <span class="custom-badge-new" style="background:;color:;">NEW</span> 3311 3312 </button> 3313 </li> 3314 3315 3316 3317 3318 3319 3320 3321 <li class="mega-menu-li " > 3322 <button class="reset mega-menu-button " data-menu="trim-stairs"> 3323 3324 <a href="/collections/trim-accessories" >Trim & Stairs</a> 3325 3326 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3327<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 3328</svg> 3329 3330 </button> 3331 </li> 3332 3333 3334 3335 3336 3337 3338 3339 <li class="mega-menu-li " > 3340 <button class="reset mega-menu-button " data-menu="sample-kits"> 3341 3342 <a href="/collections/sample-kits" >Sample Kits</a> 3343 3344 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3345<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 3346</svg> 3347 3348 </button> 3349 </li> 3350 3351 3352 3353 3354 3355 <li class="singlemenu " > 3356 <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 3357 3358 </a> 3359 </li> 3360 3361 3362 3363 3364 3365 3366 3367 <li class="mega-menu-li " style="margin-left:auto !important;"> 3368 <button class="reset mega-menu-button " data-menu="collaborations"> 3369 3370 Collaborations 3371 3372 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3373<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 3374</svg> 3375 3376 </button> 3377 </li> 3378 3379 3380 3381 3382 3383 3384 3385 <li class="mega-menu-li " > 3386 <button class="reset mega-menu-button " data-menu="resources"> 3387 3388 Resources 3389 3390 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3391<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 3392</svg> 3393 3394 </button> 3395 </li> 3396 3397 3398 3399 3400 </div> 3401 3402 3403 3404 3405 3406 </ul> 3407 </div> 3408 3409 <div class="gheader__actions"> 3410 3411 <div class="gheader__icons"> 3412 <a class="menu-icon menu-icon--phone" href="tel:1-800-700-8122"> 3413 <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 24"> 3414 <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"/> 3415</svg> 3416 3417 </a> 3418 3419 <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"> 3420 <g stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"> 3421 <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"/> 3422 </g> 3423</svg></button> 3424 3425 <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"> 3426 <g stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"> 3427 <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"/> 3428 </g> 3429</svg></a> 3430 3431 <a class="menu-icon menu-icon--cart js-cart-drawer-trigger" href="/cart"> 3432 <svg xmlns="http://www.w3.org/2000/svg" width="16" fill="none" viewBox="0 0 32 32"> 3433 <g stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2">
3434 <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"/> 3435 <path d="M7.819 18h15.694a2 2 0 0 0 1.967-1.642L27 8H6"/> 3436 </g> 3437</svg> 3438 <span class="cart-count cart-empty"> 3439 <span class="cart-count__count js-cart-count">0</span> 3440 </span> 3441 </a> 3442 </div> 3443 </div> 3444</div> 3445 3446 3447 3448 3449 3450 3451 <div class="mega-menu desk-only " data-menu="modin-lvp"> 3452 <div class="mega-menu__wrap"> 3453 3454 <div class="mega-menu__menu"> 3455 <span class="h3">Modin Luxury Vinyl Plank</span> 3456 3457 3458 3459 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 3460 �<li class=" http_link parent-link "> 3461 <a itemprop="url" 3462 3463 href="/collections/modin-luxury-vinyl-plank" 3464 3465 ><span itemprop="name">Shop Floors</span><span class="custom-badge-new">New</span></a> 3466 �</li> 3467 3468 �<li class=" http_link parent-link "> 3469 <a itemprop="url" 3470 3471 href="/pages/modin-learn-more" 3472 3473 ><span itemprop="name">Meet Modin</span></a> 3474 �</li> 3475 3476 �<li class=" http_link parent-link "> 3477 <a itemprop="url" 3478 3479 href="/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Modin" 3480 3481 ><span itemprop="name">Trim & Stairs</span></a> 3482 �</li> 3483 3484 �<li class=" http_link parent-link "> 3485 <a itemprop="url" 3486 3487 href="/collections/sample-kits" 3488 3489 ><span itemprop="name">Shop Samples</span></a> 3490 �</li> 3491 3492 3493 3494</ul> 3495 3496 3497 3498 3499 3500 </div> 3501 3502 <div class="mega-menu__cards"> 3503 3504 3505 3506 <a class="mmcard mmcard--large" href="/products/nakan"> 3507 3508 <div class="mmcard__tags"> 3509 3510 <span class="mmcard__tag mmcard__tag--1"></span> 3511 3512 3513 <span class="mmcard__tag mmcard__tag--2">Most Popular</span> 3514 3515 </div> 3516 3517 <div class="mmcard__image"> 3518 3519 3520 3521 <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%;"> 3522 3523 3524 </div> 3525 <div class="mmcard__content"> 3526 3527 <span class="h5">Nakan Signature</span> 3528 3529 3530 3531 3532 3533 <span class="mmcard__cta"></span> 3534 3535 </div> 3536 </a> 3537 3538 3539 3540 3541 <a class="mmcard mmcard--large" href="/products/palka"> 3542 3543 <div class="mmcard__tags"> 3544 3545 <span class="mmcard__tag mmcard__tag--1"></span> 3546 3547 3548 <span class="mmcard__tag mmcard__tag--2"></span> 3549 3550 </div> 3551 3552 <div class="mmcard__image"> 3553 3554 3555 3556 <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"> 3557 3558 3559 </div> 3560 <div class="mmcard__content"> 3561 3562 <span class="h5">Palka Signature</span> 3563 3564 3565 3566 3567 3568 <span class="mmcard__cta"></span> 3569 3570 </div> 3571 </a> 3572 3573 3574 3575 3576 <a class="mmcard mmcard--large" href="/products/kingswood"> 3577 3578 <div class="mmcard__tags"> 3579
3580 <span class="mmcard__tag mmcard__tag--1"></span> 3581 3582 3583 <span class="mmcard__tag mmcard__tag--2"></span> 3584 3585 </div> 3586 3587 <div class="mmcard__image"> 3588 3589 3590 3591 <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"> 3592 3593 3594 </div> 3595 <div class="mmcard__content"> 3596 3597 <span class="h5">Kingswood Signature</span> 3598 3599 3600 3601 3602 3603 <span class="mmcard__cta"></span> 3604 3605 </div> 3606 </a> 3607 3608 3609 3610 3611 <a class="mmcard mmcard--large" href="https://www.flooret.com/products/sable?variant=49913225773331"> 3612 3613 <div class="mmcard__tags"> 3614 3615 <span class="mmcard__tag mmcard__tag--1"></span> 3616 3617 3618 <span class="mmcard__tag mmcard__tag--2">Farah's Pick</span> 3619 3620 </div> 3621 3622 <div class="mmcard__image"> 3623 3624 3625 3626 <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"> 3627 3628 3629 </div> 3630 <div class="mmcard__content"> 3631 3632 <span class="h5">Sable Signature</span> 3633 3634 3635 3636 3637 3638 <span class="mmcard__cta"></span> 3639 3640 </div> 3641 </a> 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 <a class="mmcard text-only" href="https://www.flooret.com/collections/modin-luxury-vinyl-plank"> 3658 <span>Shop All Modin</span> 3659 <svg xmlns="http://www.w3.org/2000/svg" width="11" height="10" viewBox="0 0 11 10" fill="none"> 3660 <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"/> 3661 </svg> 3662 </a> 3663 3664 </div> 3665 </div> 3666 </div> 3667 3668 3669 <div class="mega-menu desk-only " data-menu="arista-laminate"> 3670 <div class="mega-menu__wrap"> 3671 3672 <div class="mega-menu__menu"> 3673 <span class="h3">Arista Laminate</span> 3674 3675 3676 3677 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 3678 �<li class=" http_link parent-link "> 3679 <a itemprop="url" 3680 3681 href="/collections/arista-laminate" 3682 3683 ><span itemprop="name">Shop Floors</span></a> 3684 �</li> 3685 3686 �<li class=" http_link parent-link "> 3687 <a itemprop="url" 3688 3689 href="/pages/arista-laminate" 3690 3691 ><span itemprop="name">Meet Arista</span></a> 3692 �</li> 3693 3694 �<li class=" http_link parent-link "> 3695 <a itemprop="url" 3696 3697 href="/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Arista" 3698 3699 ><span itemprop="name">Trim & Stairs</span></a> 3700 �</li> 3701 3702 �<li class=" http_link parent-link "> 3703 <a itemprop="url" 3704 3705 href="/collections/sample-kits" 3706 3707 ><span itemprop="name">Shop Samples</span></a> 3708 �</li> 3709 3710 3711 3712</ul> 3713 3714 3715 3716 3717 3718 </div> 3719 3720 <div class="mega-menu__cards"> 3721 3722 3723 3724 <a class="mmcard " href="/products/russo-1"> 3725 3726 <div class="mmcard__tags"> 3727
3728 <span class="mmcard__tag mmcard__tag--1"></span> 3729 3730 3731 <span class="mmcard__tag mmcard__tag--2">Bestseller</span> 3732 3733 </div> 3734 3735 <div class="mmcard__image"> 3736 3737 3738 3739 <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"> 3740 3741 3742 </div> 3743 <div class="mmcard__content"> 3744 3745 <span class="h5">Russo</span> 3746 3747 3748 3749 3750 3751 <span class="mmcard__cta"></span> 3752 3753 </div> 3754 </a> 3755 3756 3757 3758 3759 <a class="mmcard " href="/products/levant"> 3760 3761 <div class="mmcard__tags"> 3762 3763 <span class="mmcard__tag mmcard__tag--1"></span> 3764 3765 3766 <span class="mmcard__tag mmcard__tag--2"></span> 3767 3768 </div> 3769 3770 <div class="mmcard__image"> 3771 3772 3773 3774 <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"> 3775 3776 3777 </div> 3778 <div class="mmcard__content"> 3779 3780 <span class="h5">Levant</span> 3781 3782 3783 3784 3785 3786 <span class="mmcard__cta"></span> 3787 3788 </div> 3789 </a> 3790 3791 3792 3793 3794 <a class="mmcard " href="/products/opera"> 3795 3796 <div class="mmcard__tags"> 3797 3798 <span class="mmcard__tag mmcard__tag--1"></span> 3799 3800 3801 <span class="mmcard__tag mmcard__tag--2"></span> 3802 3803 </div> 3804 3805 <div class="mmcard__image"> 3806 3807 3808 3809 <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"> 3810 3811 3812 </div> 3813 <div class="mmcard__content"> 3814 3815 <span class="h5">Opera</span> 3816 3817 3818 3819 3820 3821 <span class="mmcard__cta"></span> 3822 3823 </div> 3824 </a> 3825 3826 3827 3828 3829 <a class="mmcard " href="/products/concorde"> 3830 3831 <div class="mmcard__tags"> 3832 3833 <span class="mmcard__tag mmcard__tag--1"></span> 3834 3835 3836 <span class="mmcard__tag mmcard__tag--2"></span> 3837 3838 </div> 3839 3840 <div class="mmcard__image"> 3841 3842 3843 3844 <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"> 3845 3846 3847 </div> 3848 <div class="mmcard__content"> 3849 3850 <span class="h5">Concorde</span> 3851 3852 3853 3854 3855
3856 <span class="mmcard__cta"></span> 3857 3858 </div> 3859 </a> 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 <a class="mmcard text-only" href="https://www.flooret.com/collections/arista-laminate"> 3876 <span>Shop All Arista</span> 3877 <svg xmlns="http://www.w3.org/2000/svg" width="11" height="10" viewBox="0 0 11 10" fill="none"> 3878 <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"/> 3879 </svg> 3880 </a> 3881 3882 </div> 3883 </div> 3884 </div> 3885 3886 3887 <div class="mega-menu desk-only " data-menu="silvan-hardwood"> 3888 <div class="mega-menu__wrap"> 3889 3890 <div class="mega-menu__menu"> 3891 <span class="h3">Silvan Resilient Hardwood</span> 3892 3893 3894 3895 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 3896 �<li class=" http_link parent-link "> 3897 <a itemprop="url" 3898 3899 href="/collections/silvan-hardwood" 3900 3901 ><span itemprop="name">Shop Floors</span></a> 3902 �</li> 3903 3904 �<li class=" http_link parent-link "> 3905 <a itemprop="url" 3906 3907 href="/pages/silvan-learn-more" 3908 3909 ><span itemprop="name">Meet Silvan</span></a> 3910 �</li> 3911 3912 �<li class=" http_link parent-link "> 3913 <a itemprop="url" 3914 3915 href="/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Silvan" 3916 3917 ><span itemprop="name">Trim & Stairs</span></a> 3918 �</li> 3919 3920 �<li class=" http_link parent-link "> 3921 <a itemprop="url" 3922 3923 href="/collections/sample-kits" 3924 3925 ><span itemprop="name">Shop Samples</span></a> 3926 �</li> 3927 3928 3929 3930</ul> 3931 3932 3933 3934 3935 3936 </div> 3937 3938 <div class="mega-menu__cards"> 3939 3940 3941 3942 <a class="mmcard " href="/products/anza-7"> 3943 3944 <div class="mmcard__tags"> 3945 3946 <span class="mmcard__tag mmcard__tag--1"></span> 3947 3948 3949 <span class="mmcard__tag mmcard__tag--2"></span> 3950 3951 </div> 3952 3953 <div class="mmcard__image"> 3954 3955 3956 3957 <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"> 3958 3959 3960 </div> 3961 <div class="mmcard__content"> 3962 3963 <span class="h5">Silvan Anza 7â</span> 3964 3965 3966 3967 3968 3969 <span class="mmcard__cta"></span> 3970 3971 </div> 3972 </a> 3973 3974 3975 3976 3977 <a class="mmcard " href="/products/balboa"> 3978 3979 <div class="mmcard__tags"> 3980 3981 <span class="mmcard__tag mmcard__tag--1"></span> 3982 3983 3984 <span class="mmcard__tag mmcard__tag--2">Bestseller</span> 3985 3986 </div> 3987 3988 <div class="mmcard__image"> 3989 3990 3991 3992 <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%;"> 3993 3994 3995 </div> 3996 <div class="mmcard__content"> 3997
3998 <span class="h5">Silvan Balboa 7â</span> 3999 4000 4001 4002 4003 4004 <span class="mmcard__cta"></span> 4005 4006 </div> 4007 </a> 4008 4009 4010 4011 4012 <a class="mmcard " href="/products/norde"> 4013 4014 <div class="mmcard__tags"> 4015 4016 <span class="mmcard__tag mmcard__tag--1"></span> 4017 4018 4019 <span class="mmcard__tag mmcard__tag--2"></span> 4020 4021 </div> 4022 4023 <div class="mmcard__image"> 4024 4025 4026 4027 <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"> 4028 4029 4030 </div> 4031 <div class="mmcard__content"> 4032 4033 <span class="h5">Silvan Norde 7â</span> 4034 4035 4036 4037 4038 4039 <span class="mmcard__cta"></span> 4040 4041 </div> 4042 </a> 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 <a class="mmcard text-only" href="https://www.flooret.com/collections/silvan-hardwood"> 4062 <span>Shop All Silvan</span> 4063 <svg xmlns="http://www.w3.org/2000/svg" width="11" height="10" viewBox="0 0 11 10" fill="none"> 4064 <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"/> 4065 </svg> 4066 </a> 4067 4068 </div> 4069 </div> 4070 </div> 4071 4072 4073 <div class="mega-menu desk-only " data-menu="flooret-rugs"> 4074 <div class="mega-menu__wrap"> 4075 4076 <div class="mega-menu__menu"> 4077 <span class="h3">Flooret Rugs</span> 4078 4079 4080 4081 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 4082 �<li class=" collection_link parent-link "> 4083 <a itemprop="url" 4084 4085 href="/collections/rugs" 4086 4087 ><span itemprop="name">Shop Rugs</span></a> 4088 �</li> 4089 4090 �<li class=" page_link parent-link "> 4091 <a itemprop="url" 4092 4093 href="/pages/meet-flooret-rugs" 4094 4095 ><span itemprop="name">Meet Rugs</span></a> 4096 �</li> 4097 4098 4099 4100</ul> 4101 4102 4103 4104 4105 4106 </div> 4107 4108 <div class="mega-menu__cards"> 4109 4110 4111 4112 <a class="mmcard " href="https://www.flooret.com/products/encinitas?variant=54445222986003"> 4113 4114 <div class="mmcard__tags"> 4115 4116 <span class="mmcard__tag mmcard__tag--1"></span> 4117 4118 4119 <span class="mmcard__tag mmcard__tag--2"></span> 4120 4121 </div> 4122 4123 <div class="mmcard__image"> 4124 4125 4126 4127 <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"> 4128 4129 4130 </div> 4131 <div class="mmcard__content"> 4132 4133 <span class="h5">Encinitas Clay Red</span> 4134 4135 4136 4137 4138 4139 <span class="mmcard__cta"></span> 4140 4141 </div> 4142 </a> 4143 4144 4145 4146 4147 <a class="mmcard " href="https://www.flooret.com/products/oceanside?variant=54445318537491"> 4148 4149 <div class="mmcard__tags"> 4150
4151 <span class="mmcard__tag mmcard__tag--1"></span> 4152 4153 4154 <span class="mmcard__tag mmcard__tag--2"></span> 4155 4156 </div> 4157 4158 <div class="mmcard__image"> 4159 4160 4161 4162 <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"> 4163 4164 4165 </div> 4166 <div class="mmcard__content"> 4167 4168 <span class="h5">Oceanside Deep Blue</span> 4169 4170 4171 4172 4173 4174 <span class="mmcard__cta"></span> 4175 4176 </div> 4177 </a> 4178 4179 4180 4181 4182 <a class="mmcard " href="https://www.flooret.com/products/palomar?variant=54445245104403"> 4183 4184 <div class="mmcard__tags"> 4185 4186 <span class="mmcard__tag mmcard__tag--1"></span> 4187 4188 4189 <span class="mmcard__tag mmcard__tag--2"></span> 4190 4191 </div> 4192 4193 <div class="mmcard__image"> 4194 4195 4196 4197 <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"> 4198 4199 4200 </div> 4201 <div class="mmcard__content"> 4202 4203 <span class="h5">Palomar Juniper Green</span> 4204 4205 4206 4207 4208 4209 <span class="mmcard__cta"></span> 4210 4211 </div> 4212 </a> 4213 4214 4215 4216 4217 <a class="mmcard " href="https://www.flooret.com/products/del-mar?variant=54445329776915"> 4218 4219 <div class="mmcard__tags"> 4220 4221 <span class="mmcard__tag mmcard__tag--1"></span> 4222 4223 4224 <span class="mmcard__tag mmcard__tag--2"></span> 4225 4226 </div> 4227 4228 <div class="mmcard__image"> 4229 4230 4231 4232 <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"> 4233 4234 4235 </div> 4236 <div class="mmcard__content"> 4237 4238 <span class="h5">Del Mar Soft Creme</span> 4239 4240 4241 4242 4243 4244 <span class="mmcard__cta"></span> 4245 4246 </div> 4247 </a> 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 <a class="mmcard text-only" href="/collections/rugs"> 4264 <span>Shop All Rugs</span> 4265 <svg xmlns="http://www.w3.org/2000/svg" width="11" height="10" viewBox="0 0 11 10" fill="none"> 4266 <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"/> 4267 </svg> 4268 </a> 4269 4270 </div> 4271 </div> 4272 </div> 4273 4274 4275 <div class="mega-menu desk-only " data-menu="trim-stairs"> 4276 <div class="mega-menu__wrap"> 4277 4278 <div class="mega-menu__menu">
4279 <span class="h3">Trim & Stair Solutions</span> 4280 4281 4282 4283 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 4284 �<li class=" product_link parent-link "> 4285 <a itemprop="url" 4286 4287 href="/products/truestep-stair-treads" 4288 4289 ><span itemprop="name">TrueStep⢠LVP Stair Tread </span></a> 4290 �</li> 4291 4292 �<li class=" http_link parent-link "> 4293 <a itemprop="url" 4294 4295 href="https://www.flooret.com/collections/trueplank-stair-nosings" 4296 4297 ><span itemprop="name">TruePlank ⢠LVP Stair Nosing</span></a> 4298 �</li> 4299 4300 �<li class=" http_link parent-link "> 4301 <a itemprop="url" 4302 4303 href="https://www.flooret.com/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Modin" 4304 4305 ><span itemprop="name">Modin LVP Trim & Stairs</span></a> 4306 �</li> 4307 4308 �<li class=" http_link parent-link "> 4309 <a itemprop="url" 4310 4311 href="https://www.flooret.com/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Silvan" 4312 4313 ><span itemprop="name">Silvan Resilient Hardwood Trim & Stairs</span></a> 4314 �</li> 4315 4316 �<li class=" http_link parent-link "> 4317 <a itemprop="url" 4318 4319 href="https://www.flooret.com/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Arista" 4320 4321 ><span itemprop="name">Arista Laminate Trim & Stairs</span></a> 4322 �</li> 4323 4324 4325 4326</ul> 4327 4328 4329 4330 4331 4332 </div> 4333 4334 <div class="mega-menu__cards"> 4335 4336 4337 4338 <a class="mmcard " href="https://www.flooret.com/pages/meet-trueplank-truestep?_pos=1&_psq=tru&_psid=d17060643&_ss=e"> 4339 4340 <div class="mmcard__tags"> 4341 4342 <span class="mmcard__tag mmcard__tag--1"></span> 4343 4344 4345 <span class="mmcard__tag mmcard__tag--2">Bestseller</span> 4346 4347 </div> 4348 4349 <div class="mmcard__image"> 4350 4351 4352 4353 <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%;"> 4354 4355 4356 </div> 4357 <div class="mmcard__content"> 4358 4359 <span class="h5">TruePlank⢠& TrueStep⢠<br> Stair Solutions</span> 4360 4361 4362 4363 4364 4365 <span class="mmcard__cta"></span> 4366 4367 </div> 4368 </a> 4369 4370 4371 4372 4373 <a class="mmcard " href="https://www.flooret.com/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Modin"> 4374 4375 <div class="mmcard__tags"> 4376 4377 <span class="mmcard__tag mmcard__tag--1"></span> 4378 4379 4380 <span class="mmcard__tag mmcard__tag--2"></span> 4381 4382 </div> 4383 4384 <div class="mmcard__image"> 4385 4386 4387 4388 <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"> 4389 4390 4391 </div> 4392 <div class="mmcard__content"> 4393 4394 <span class="h5">Modin LVP Trim & Stairs</span> 4395 4396 4397 4398 4399
4400 <span class="mmcard__cta"></span> 4401 4402 </div> 4403 </a> 4404 4405 4406 4407 4408 <a class="mmcard " href="https://www.flooret.com/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Silvan"> 4409 4410 <div class="mmcard__tags"> 4411 4412 <span class="mmcard__tag mmcard__tag--1"></span> 4413 4414 4415 <span class="mmcard__tag mmcard__tag--2"></span> 4416 4417 </div> 4418 4419 <div class="mmcard__image"> 4420 4421 4422 4423 <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"> 4424 4425 4426 </div> 4427 <div class="mmcard__content"> 4428 4429 <span class="h5">Silvan Resilient Hardwood Trim & Stairs</span> 4430 4431 4432 4433 4434 4435 <span class="mmcard__cta"></span> 4436 4437 </div> 4438 </a> 4439 4440 4441 4442 4443 <a class="mmcard " href="https://www.flooret.com/collections/trim-accessories?sort_by=manual&filter.p.m.custom.product_collection=Arista"> 4444 4445 <div class="mmcard__tags"> 4446 4447 <span class="mmcard__tag mmcard__tag--1"></span> 4448 4449 4450 <span class="mmcard__tag mmcard__tag--2"></span> 4451 4452 </div> 4453 4454 <div class="mmcard__image"> 4455 4456 4457 4458 <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"> 4459 4460 4461 </div> 4462 <div class="mmcard__content"> 4463 4464 <span class="h5">Arista Laminate Trim & Stairs</span> 4465 4466 4467 4468 4469 4470 <span class="mmcard__cta"></span> 4471 4472 </div> 4473 </a> 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 <a class="mmcard text-only" href="/collections/trim-accessories"> 4490 <span>Shop All Trim</span> 4491 <svg xmlns="http://www.w3.org/2000/svg" width="11" height="10" viewBox="0 0 11 10" fill="none"> 4492 <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"/> 4493 </svg> 4494 </a> 4495 4496 </div> 4497 </div> 4498 </div> 4499 4500 4501 <div class="mega-menu desk-only only-image-grid" data-menu="collaborations"> 4502 <div class="mega-menu__wrap"> 4503 4504 <div class="mega-menu__cards"> 4505 4506 4507 4508 <a class="mmcard " href="https://www.flooret.com/pages/tailored-by-tails"> 4509 4510 <div class="mmcard__tags"> 4511 4512 <span class="mmcard__tag mmcard__tag--1"></span> 4513 4514 4515 <span class="mmcard__tag mmcard__tag--2"></span> 4516 4517 </div> 4518 4519 <div class="mmcard__image"> 4520 4521 4522 4523 <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"> 4524 4525 4526 </div> 4527 <div class="mmcard__content"> 4528
4529 <span class="h5">Hammy & Olivia</span> 4530 4531 4532 4533 4534 4535 <span class="mmcard__cta"></span> 4536 4537 </div> 4538 </a> 4539 4540 4541 4542 4543 <a class="mmcard " href="https://www.flooret.com/pages/flooret-x-farah-merhi"> 4544 4545 <div class="mmcard__tags"> 4546 4547 <span class="mmcard__tag mmcard__tag--1"></span> 4548 4549 4550 <span class="mmcard__tag mmcard__tag--2"></span> 4551 4552 </div> 4553 4554 <div class="mmcard__image"> 4555 4556 4557 4558 <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"> 4559 4560 4561 </div> 4562 <div class="mmcard__content"> 4563 4564 <span class="h5">Farah Merhi</span> 4565 4566 4567 4568 4569 4570 <span class="mmcard__cta"></span> 4571 4572 </div> 4573 </a> 4574 4575 4576 4577 4578 <a class="mmcard " href="https://www.flooret.com/pages/flooret-x-oakavehouse"> 4579 4580 <div class="mmcard__tags"> 4581 4582 <span class="mmcard__tag mmcard__tag--1"></span> 4583 4584 4585 <span class="mmcard__tag mmcard__tag--2"></span> 4586 4587 </div> 4588 4589 <div class="mmcard__image"> 4590 4591 4592 4593 <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"> 4594 4595 4596 </div> 4597 <div class="mmcard__content"> 4598 4599 <span class="h5">Oak Ave House</span> 4600 4601 4602 4603 4604 4605 <span class="mmcard__cta"></span> 4606 4607 </div> 4608 </a> 4609 4610 4611 4612 4613 <a class="mmcard " href="https://www.flooret.com/pages/flooret-x-rene-ceretto-landing-page"> 4614 4615 <div class="mmcard__tags"> 4616 4617 <span class="mmcard__tag mmcard__tag--1"></span> 4618 4619 4620 <span class="mmcard__tag mmcard__tag--2"></span> 4621 4622 </div> 4623 4624 <div class="mmcard__image"> 4625 4626 4627 4628 <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"> 4629 4630 4631 </div> 4632 <div class="mmcard__content"> 4633 4634 <span class="h5">Pleasantly Built</span> 4635 4636 4637 4638 4639 4640 <span class="mmcard__cta"></span> 4641 4642 </div> 4643 </a> 4644 4645 4646 4647 4648 <a class="mmcard " href="https://www.flooret.com/pages/flooret-x-agar-family"> 4649 4650 <div class="mmcard__tags"> 4651 4652 <span class="mmcard__tag mmcard__tag--1"></span> 4653 4654
4655 <span class="mmcard__tag mmcard__tag--2"></span> 4656 4657 </div> 4658 4659 <div class="mmcard__image"> 4660 4661 4662 4663 <img src="//www.flooret.com/cdn/shop/files/Team_Agar_1.png?v=1769692439&width=600" srcset="//www.flooret.com/cdn/shop/files/Team_Agar_1.png?v=1769692439&width=352 352w, //www.flooret.com/cdn/shop/files/Team_Agar_1.png?v=1769692439&width=600 600w" width="600" height="600" loading="lazy"> 4664 4665 4666 </div> 4667 <div class="mmcard__content"> 4668 4669 <span class="h5">Agar Family</span> 4670 4671 4672 4673 4674 4675 <span class="mmcard__cta"></span> 4676 4677 </div> 4678 </a> 4679 4680 4681 4682 4683 <a class="mmcard " href="https://www.flooret.com/pages/dallas-mavericks"> 4684 4685 <div class="mmcard__tags"> 4686 4687 <span class="mmcard__tag mmcard__tag--1"></span> 4688 4689 4690 <span class="mmcard__tag mmcard__tag--2"></span> 4691 4692 </div> 4693 4694 <div class="mmcard__image"> 4695 4696 4697 4698 <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"> 4699 4700 4701 </div> 4702 <div class="mmcard__content"> 4703 4704 <span class="h5">Dallas Mavericks</span> 4705 4706 4707 4708 4709 4710 <span class="mmcard__cta"></span> 4711 4712 </div> 4713 </a> 4714 4715 4716 4717 4718 <a class="mmcard " href="https://www.flooret.com/pages/flooret-before-and-after-transformations?_pos=1&_psq=transfo&_psid=2551948ee&_ss=e"> 4719 4720 <div class="mmcard__tags"> 4721 4722 <span class="mmcard__tag mmcard__tag--1"></span> 4723 4724 4725 <span class="mmcard__tag mmcard__tag--2"></span> 4726 4727 </div> 4728 4729 <div class="mmcard__image"> 4730 4731 4732 4733 <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"> 4734 4735 4736 </div> 4737 <div class="mmcard__content"> 4738 4739 <span class="h5">Before & After <br>Transformations</span> 4740 4741 4742 4743 4744 4745 <span class="mmcard__cta"></span> 4746 4747 </div> 4748 </a> 4749 4750 4751 4752 4753 4754 4755 </div> 4756 </div> 4757 </div> 4758 4759 4760 <div class="mega-menu desk-only only-image-grid" data-menu="resources"> 4761 <div class="mega-menu__wrap"> 4762 4763 <div class="mega-menu__cards"> 4764 4765 4766 4767 <a class="mmcard " href="/pages/technical-documents"> 4768 4769 <div class="mmcard__tags"> 4770 4771 <span class="mmcard__tag mmcard__tag--1"></span> 4772 4773 4774 <span class="mmcard__tag mmcard__tag--2"></span> 4775 4776 </div> 4777 4778 <div class="mmcard__image"> 4779 4780 4781 4782 <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"> 4783 4784 4785 </div> 4786 <div class="mmcard__content"> 4787
4788 <span class="h5">Technical Documents</span> 4789 4790 4791 4792 4793 4794 <span class="mmcard__cta"></span> 4795 4796 </div> 4797 </a> 4798 4799 4800 4801 4802 <a class="mmcard " href="/pages/shipping"> 4803 4804 <div class="mmcard__tags"> 4805 4806 <span class="mmcard__tag mmcard__tag--1"></span> 4807 4808 4809 <span class="mmcard__tag mmcard__tag--2"></span> 4810 4811 </div> 4812 4813 <div class="mmcard__image"> 4814 4815 4816 4817 <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"> 4818 4819 4820 </div> 4821 <div class="mmcard__content"> 4822 4823 <span class="h5">Shipping</span> 4824 4825 4826 4827 4828 4829 <span class="mmcard__cta"></span> 4830 4831 </div> 4832 </a> 4833 4834 4835 4836 4837 <a class="mmcard " href="https://support.flooret.com/"> 4838 4839 <div class="mmcard__tags"> 4840 4841 <span class="mmcard__tag mmcard__tag--1"></span> 4842 4843 4844 <span class="mmcard__tag mmcard__tag--2"></span> 4845 4846 </div> 4847 4848 <div class="mmcard__image"> 4849 4850 4851 4852 <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"> 4853 4854 4855 </div> 4856 <div class="mmcard__content"> 4857 4858 <span class="h5">FAQs</span> 4859 4860 4861 4862 4863 4864 <span class="mmcard__cta"></span> 4865 4866 </div> 4867 </a> 4868 4869 4870 4871 4872 <a class="mmcard " href="https://www.flooret.com/pages/ten-year-anniversary"> 4873 4874 <div class="mmcard__tags"> 4875 4876 <span class="mmcard__tag mmcard__tag--1"></span> 4877 4878 4879 <span class="mmcard__tag mmcard__tag--2"></span> 4880 4881 </div> 4882 4883 <div class="mmcard__image"> 4884 4885 4886 4887 <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"> 4888 4889 4890 </div> 4891 <div class="mmcard__content"> 4892 4893 <span class="h5">10 Years of Flooret</span> 4894 4895 4896 4897 4898 4899 <span class="mmcard__cta"></span> 4900 4901 </div> 4902 </a> 4903 4904 4905 4906 4907 <a class="mmcard " href="/blogs/all"> 4908 4909 <div class="mmcard__tags"> 4910 4911 <span class="mmcard__tag mmcard__tag--1"></span> 4912 4913 4914 <span class="mmcard__tag mmcard__tag--2"></span> 4915 4916 </div> 4917 4918 <div class="mmcard__image"> 4919 4920 4921 4922 <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"> 4923 4924 4925 </div> 4926 <div class="mmcard__content"> 4927
4928 <span class="h5">Blogs</span> 4929 4930 4931 4932 4933 4934 <span class="mmcard__cta"></span> 4935 4936 </div> 4937 </a> 4938 4939 4940 4941 4942 <a class="mmcard " href="/collections/inspiration"> 4943 4944 <div class="mmcard__tags"> 4945 4946 <span class="mmcard__tag mmcard__tag--1"></span> 4947 4948 4949 <span class="mmcard__tag mmcard__tag--2"></span> 4950 4951 </div> 4952 4953 <div class="mmcard__image"> 4954 4955 4956 4957 <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"> 4958 4959 4960 </div> 4961 <div class="mmcard__content"> 4962 4963 <span class="h5">Gallery</span> 4964 4965 4966 4967 4968 4969 <span class="mmcard__cta"></span> 4970 4971 </div> 4972 </a> 4973 4974 4975 4976 4977 <a class="mmcard " href="https://www.flooret.com/pages/referral-program"> 4978 4979 <div class="mmcard__tags"> 4980 4981 <span class="mmcard__tag mmcard__tag--1"></span> 4982 4983 4984 <span class="mmcard__tag mmcard__tag--2"></span> 4985 4986 </div> 4987 4988 <div class="mmcard__image"> 4989 4990 4991 4992 <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"> 4993 4994 4995 </div> 4996 <div class="mmcard__content"> 4997 4998 <span class="h5">Referral Program</span> 4999 5000 5001 5002 5003 5004 <span class="mmcard__cta"></span> 5005 5006 </div> 5007 </a> 5008 5009 5010 5011 5012 <a class="mmcard " href="https://www.flooret.com/pages/find-an-installer"> 5013 5014 <div class="mmcard__tags"> 5015 5016 <span class="mmcard__tag mmcard__tag--1"></span> 5017 5018 5019 <span class="mmcard__tag mmcard__tag--2"></span> 5020 5021 </div> 5022 5023 <div class="mmcard__image"> 5024 5025 5026 5027 <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"> 5028 5029 5030 </div> 5031 <div class="mmcard__content"> 5032 5033 <span class="h5">Find an Installer</span> 5034 5035 5036 5037 5038 5039 <span class="mmcard__cta"></span> 5040 5041 </div> 5042 </a> 5043 5044 5045 5046 </div> 5047 </div> 5048 </div> 5049 5050 5051 5052 5053 <div class="mega-menu desk-only two-menus" data-menu="sample-kits"> 5054 <div class="mega-menu__wrap"> 5055 <div class="mega-menu__menu"> 5056 <div class="one-wrap"> 5057 <span class="h3">Sample Kits</span> 5058 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 5059 �<li class=" http_link parent-link "> 5060 <a itemprop="url" 5061 5062 href="/products/modin-lvp-signature-bestsellers-sample-kit" 5063 5064 ><span itemprop="name">Modin LVP Signature Bestsellers Kits</span></a> 5065 �</li> 5066 5067 �<li class=" product_link parent-link "> 5068 <a itemprop="url" 5069 5070 href="/products/modin-lvp-bestsellers-kits" 5071 5072 ><span itemprop="name">All Modin LVP Bestsellers Kits</span></a> 5073 �</li> 5074 5075 �<li class=" collection_link parent-link "> 5076 <a itemprop="url" 5077 5078 href="/collections/sample-kits" 5079 5080 ><span itemprop="name">All Sample Kits</span></a> 5081 �</li> 5082 5083 �<li class=" page_link parent-link "> 5084 <a itemprop="url" 5085 5086 href="/pages/sample-rewards-by-flooret" 5087 5088 ><span itemprop="name">Sample Rewards</span></a> 5089 �</li> 5090 5091 5092 5093</ul> 5094 5095 5096 5097 5098 5099 </div> 5100 <div class="two-wrap">
5101 <span class="h3 ">Comparison Kits 5102 5103 </span> 5104 5105 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 5106 �<li class=" http_link parent-link "> 5107 <a itemprop="url" 5108 5109 href="/products/modin-lvp-model-comparison-sample-kit" 5110 5111 ><span itemprop="name">Model Comparison Kits</span></a> 5112 �</li> 5113 5114 �<li class=" http_link parent-link "> 5115 <a itemprop="url" 5116 5117 href="/products/modin-lvp-2-model-comparison-kit" 5118 5119 ><span itemprop="name">2 Model Comparison Kits</span></a> 5120 �</li> 5121 5122 �<li class=" http_link parent-link "> 5123 <a itemprop="url" 5124 5125 href="/products/modin-lvp-3-model-comparison-kit" 5126 5127 ><span itemprop="name">3 Model Comparison Kits</span></a> 5128 �</li> 5129 5130 �<li class=" product_link parent-link "> 5131 <a itemprop="url" 5132 5133 href="/products/modin-lvp-4-model-comparison-kit" 5134 5135 ><span itemprop="name">4 Model Comparison Kits</span></a> 5136 �</li> 5137 5138 5139 5140</ul> 5141 5142 5143 5144 5145 5146 </div> 5147 </div> 5148 <div class="mega-menu__cards four-tiles"> 5149 5150 5151 5152 <a class="mmcard " href="/products/modin-lvp-signature-bestsellers-sample-kit"> 5153 5154 <div class="mmcard__tags"> 5155 5156 <span class="mmcard__tag mmcard__tag--1"></span> 5157 5158 5159 <span class="mmcard__tag mmcard__tag--2"></span> 5160 5161 </div> 5162 5163 <div class="mmcard__image"> 5164 5165 5166 5167 <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"> 5168 5169 5170 </div> 5171 <div class="mmcard__content"> 5172 5173 <span class="h5">Modin LVP Signature Bestsellers Kits</span> 5174 5175 5176 <span class="mmcard__cta"></span> 5177 5178 </div> 5179 </a> 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 <a class="mmcard " href="https://www.flooret.com/products/modin-lvp-bestsellers-kits?variant=54552912888083"> 5199 5200 <div class="mmcard__tags"> 5201 5202 <span class="mmcard__tag mmcard__tag--1"></span> 5203 5204 5205 <span class="mmcard__tag mmcard__tag--2"></span> 5206 5207 </div> 5208 5209 <div class="mmcard__image"> 5210 5211 5212 5213 <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"> 5214 5215 5216 </div> 5217 <div class="mmcard__content"> 5218 5219 <span class="h5">Modin LVP Bestsellers Sample Kits</span> 5220 5221 5222 <span class="mmcard__cta"></span> 5223 5224 </div> 5225 </a> 5226 5227 5228 5229 5230 5231 5232 <a class="mmcard " href="https://www.flooret.com/products/arista-laminate-bestsellers-sample-kits?variant=54552916394259"> 5233 5234 <div class="mmcard__tags"> 5235
5236 <span class="mmcard__tag mmcard__tag--1"></span> 5237 5238 5239 <span class="mmcard__tag mmcard__tag--2"></span> 5240 5241 </div> 5242 5243 <div class="mmcard__image"> 5244 5245 5246 5247 <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"> 5248 5249 5250 </div> 5251 <div class="mmcard__content"> 5252 5253 <span class="h5">Arista Laminate Bestsellers Kit</span> 5254 5255 5256 <span class="mmcard__cta"></span> 5257 5258 </div> 5259 </a> 5260 5261 5262 5263 5264 5265 5266 <a class="mmcard " href="https://www.flooret.com/products/silvan-resilient-hardwood-bestsellers-sample-kits?variant=54552915116307"> 5267 5268 <div class="mmcard__tags"> 5269 5270 <span class="mmcard__tag mmcard__tag--1"></span> 5271 5272 5273 <span class="mmcard__tag mmcard__tag--2"></span> 5274 5275 </div> 5276 5277 <div class="mmcard__image"> 5278 5279 5280 5281 <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"> 5282 5283 5284 </div> 5285 <div class="mmcard__content"> 5286 5287 <span class="h5">Silvan Hardwood Bestsellers Kits</span> 5288 5289 5290 <span class="mmcard__cta"></span> 5291 5292 </div> 5293 </a> 5294 5295 5296 5297 5298 5299 5300 5301 </div> 5302 </div> 5303 </div> 5304 5305 5306 5307
5308<script> 5309 // Redirect mega-menu button to its inner <a href="..."> 5310document.addEventListener('click', (e) => { 5311 const btn = e.target.closest('button.mega-menu-button'); 5312 if (!btn) return; 5313 5314 const link = btn.querySelector('a[href]'); 5315 if (!link) return; 5316 5317 // If your mega menu uses this button to toggle a dropdown, this will override that behavior. 5318 // If you only want redirect in some cases, add conditions here. 5319 window.location.href = link.href; 5320}); 5321 5322</script>
5322 5323 5324<style> 5325 .menu-dropdown { 5326 position: relative; /* For absolute positioning of dropdown */ 5327 } 5328 5329 .dropdown-menu { 5330 display: none; /* Initially hidden */ 5331 opacity: 0; /* For fade effect */ 5332 max-height: 0; /* For slide effect */ 5333 overflow: hidden; /* Hide content during animation */ 5334 transition: opacity 0.2s ease, max-height 0.2s ease; /* Animation duration */ 5335 position: absolute; /* Position below main item */ 5336 background-color: white; 5337 border: 1px solid #ccc; 5338 z-index: 1000; 5339 min-width: 200px; 5340 /* Add padding/margin as needed */ 5341 } 5342 5343 .dropdown-menu li { 5344 margin-bottom: 5px; 5345 } 5346 5347 .dropdown-menu a { 5348 text-decoration: none; 5349 color: black; 5350 } 5351 5352 .dropdown-menu a:hover { 5353 text-decoration: underline; 5354 } 5355 a.main-menu-item { 5356 text-decoration: none; 5357 color: #000; 5358 text-align: center; 5359 font-size: 16px; 5360 font-weight: 500; 5361 line-height: 2.5; 5362 /* white-space: nowrap; */ 5363 } 5364 5365 .gheader__nav ul li.singlemenu .menu__link { 5366 text-decoration: none; 5367 color: #000; 5368 text-align: center; 5369 font-size: 16px; 5370 font-weight: 500; 5371 line-height: normal; 5372 border: none !important; 5373 padding: 0px !important; 5374 line-height:25px; 5375 } 5376 .gheader__nav.desk-only ul .singlemenu { 5377 top: 0px; 5378 } 5379 5380 .gheader__nav.desk-only { 5381 width: 100%; 5382 margin: 0px 0px 0px 12px; 5383 } 5384 5385 5386 5387 .gheader__nav.desk-only ul .menu-dropdown, .gheader__nav.desk-only ul .singlemenu { 5388 text-align: center; 5389 margin-left: 15px; 5390 } 5391 5392 .gheader__actions { 5393 min-width: 175px; 5394 } 5395 5396 .gheader__icons { 5397 justify-content: start; 5398 width: fit-content; 5399 margin-left: auto; 5400 } 5401 5402 .gheader__actions a.btn.btn--outline.trade-button {padding: 0.5rem 0rem;width: 105px;display: block;} 5403 5404 .gheader__icons svg { 5405 width: 20px !important; 5406 height: 20px; 5407 } 5408 5409 .gheader__nav .dropdown-menu a { 5410 border: none !important; 5411 } 5412 5413 .gheader__nav ul .menu-dropdown .dropdown-menu li a { 5414 border: none !important; 5415 display: block; 5416 padding: 15px !important; 5417 text-decoration: none; 5418 color: #000; 5419 background-color: #fff; 5420 text-align: start; 5421 font-weight: 100; 5422 } 5423 .gheader__nav ul .menu-dropdown .dropdown-menu li a:hover, 5424 .gheader__nav ul li.singlemenu .menu__link:hover { 5425 background-color:transparent !important; 5426 } 5427 .gheader__nav.desk-only ul { 5428 width: 100%; 5429 justify-content: start; 5430 gap: 1%; 5431 } 5432 5433 .gheader__nav.desk-only .wrap { 5434 display: flex; 5435 position: relative; 5436 align-items: center; 5437 padding-right: 0px; 5438 } 5439 5440 .gheader__nav.desk-only .mega-menu-wrap { 5441 display: flex; 5442 padding-left:15px; 5443 } 5444 5445 .gheader__nav.desk-only .wrap::after { 5446 content: none !important; 5447 position: absolute; 5448 width: 1px; 5449 background-color: rgba(0, 0, 0, 0.2); 5450 height: 100%; 5451 right: -10px; 5452 } 5453 .main-menu-item .tag, .dropdown-menu li a .tag { 5454 display: inline-block; 5455 margin-left: 0.5rem; 5456 padding: 0.2rem 0.5rem; 5457 font-size: 0.7rem; 5458 font-weight: 600; 5459 text-transform: uppercase; 5460 background-color: #226B99; 5461 color: #fff; 5462 border-radius: 0.25rem; 5463 line-height: 1; 5464 vertical-align: super; 5465} 5466.mega-menu-button > a { 5467 text-decoration: none; 5468} 5469.gheader__nav ul .menu-dropdown .dropdown-menu li a span.tag { 5470 position: absolute; 5471} 5472 5473.gheader__nav ul .menu-dropdown .dropdown-menu li a { 5474 border-radius:0px !important; 5475} 5476 5477.gheader__nav ul .menu-dropdown .dropdown-menu li a:hover { 5478 background: #e8dcdc !important; 5479 border-radius: 0px; 5480} 5481@media (min-width: 768px) { 5482 .gfooter-menus 5483 .accordion:nth-child(3) 5484 .accordion__content 5485 ul 5486 li:last-of-type { 5487 display: none; 5488 } 5489} 5490</style> 5491 5492 5493 5494<style> 5495 .new-badge { 5496 display: inline-block; 5497 font-size: 0.75rem; 5498 font-weight: 600; 5499 color: #226B99; 5500 background-color: transparent; 5501 border-radius: 0.25rem; 5502 padding: 0.1rem 0.5rem; 5503 margin-left: 0.5rem; 5504 border: 1px solid #226B99; 5505 } 5506 <style> 5507 .announcement-bar { 5508 padding: 8px 30px; 5509 display: flex; 5510 justify-content: center;
5511 align-items: center; 5512 position: relative; 5513 flex-wrap: wrap; 5514 gap: 8px; 5515 } 5516 @media screen and (min-width: 960px) { 5517 .announcement-bar { 5518 gap: 32px; 5519 flex-wrap: nowrap; 5520 } 5521 } 5522 .announcement-bar__inner { 5523 display: flex; 5524 gap: 8px; 5525 align-items: center; 5526 justify-content: center; 5527 text-decoration: none; 5528 flex-wrap: wrap; 5529 color: inherit; 5530 } 5531 @media screen and (min-width: 960px) { 5532 .announcement-bar__inner { 5533 gap: 32px; 5534 } 5535 } 5536 .announcement-bar__text, 5537 .announcement-bar .announcement-bar__button { 5538 font-size: 14px; 5539 font-weight: bold; 5540 margin: 0; 5541 } 5542 .announcement-bar__header { 5543 text-align: center; 5544 } 5545 .announcement-bar__header p { 5546 margin: 0; 5547 } 5548 .announcement-bar__subheading { 5549 font-size: 10px; 5550 font-weight: 500; 5551 margin-top: 4px; 5552 } 5553 .announcement-bar .close-icon { 5554 cursor: pointer; 5555 position: absolute; 5556 right: 15px; 5557 top: 50%; 5558 transform: translateY(-50%); 5559 } 5560 @media screen and (min-width: 960px) { 5561 .announcement-bar .close-icon { 5562 position: static; 5563 transform: none; 5564 order: 3; /* Places the close icon at the end */ 5565 } 5566 } 5567 @media (max-width:1290px){ 5568 .mega-menu__cards { 5569 padding-right: 0px; 5570 justify-content: start; 5571 } 5572 } 5573 @media (max-width:1100px){ 5574 .gheader__nav.desk-only{ 5575 width:calc(100% + 50px); 5576 } 5577 } 5578 @media (max-width:990px){ 5579 .gheader__mnav > .overflow { 5580 padding-bottom: 120px; 5581 } 5582 } 5583 @media (max-width:768px){ 5584 .template-index.no-scroll header#shopify-section-header { 5585 top: 0px !important; 5586 } 5587 #shopify-section-header .gheader__main { 5588 5589 padding: 1rem 1rem; 5590 } 5591 .gheader.sticky { 5592 5593 } 5594 } 5595 5596} 5597 @media (max-width:550px){ 5598 .gheader.sticky { 5599 5600 } 5601 } 5602 5603 @media (max-width:435px){ 5604 .gheader.sticky { 5605 5606 } 5607 } 5608</style> 5609 5610 5611
5612<script> 5613 document.addEventListener("DOMContentLoaded", function () { 5614 console.log('%c=== DOMContentLoaded: Starting dropdown hover initialization ===', 'color: blue; font-weight: bold;'); // Highlighted start log 5615 5616 // Vanilla JS for hover dropdown functionality 5617 const menuDropdowns = document.querySelectorAll('.menu-dropdown'); 5618 console.log('%cFound ' + menuDropdowns.length + ' menu-dropdown elements', 'color: purple;'); // Log number of menus found 5619 5620 menuDropdowns.forEach(function(menu, index) { 5621 const mainItem = menu.querySelector('.main-menu-item'); 5622 const dropdown = menu.querySelector('.dropdown-menu'); 5623 5624 if (!mainItem) { 5625 console.log('%cWarning: No .main-menu-item found in menu-dropdown #' + (index + 1), 'color: orange; font-weight: bold;'); // Warning if missing 5626 return; // Skip if no main item 5627 } 5628 if (!dropdown) { 5629 console.log('%cWarning: No .dropdown-menu found in menu-dropdown #' + (index + 1), 'color: orange; font-weight: bold;'); // Warning if missing 5630 return; // Skip if no dropdown 5631 } 5632 5633 // Log dropdown details even if empty 5634 console.log('%cMenu-dropdown #' + (index + 1) + ' has ' + dropdown.children.length + ' sub-items.', 'color: cyan;'); // Log sub-item count 5635 5636 let hideTimeout; // For adding a slight delay on hide 5637 5638 // Mouse enter on the entire menu container: Show dropdown with animation 5639 menu.addEventListener('mouseenter', function() { 5640 console.log('%cMouseenter: Showing dropdown for menu-dropdown #' + (index + 1), 'color: teal; font-weight: bold;'); // Highlighted event log 5641 clearTimeout(hideTimeout); // Cancel any pending hide 5642 dropdown.style.display = 'block'; // Make visible 5643 dropdown.style.opacity = '1'; // Fade in 5644 dropdown.style.maxHeight = dropdown.scrollHeight + 'px'; // Slide down 5645 }); 5646 5647 // Mouse leave on the entire menu container: Hide dropdown with animation (with a short delay for usability) 5648 menu.addEventListener('mouseleave', function() { 5649 console.log('%cMouseleave: Preparing to hide dropdown for menu-dropdown #' + (index + 1), 'color: teal; font-weight: bold;'); // Highlighted event log 5650 hideTimeout = setTimeout(() => { 5651 dropdown.style.opacity = '0'; // Fade out 5652 dropdown.style.maxHeight = '0'; // Slide up 5653 setTimeout(() => { 5654 dropdown.style.display = 'none'; 5655 console.log('%cDropdown hidden after animation for menu-dropdown #' + (index + 1), 'color: gray;'); // Log after hide 5656 }, 200); // Hide after animation 5657 }, 100); // 100ms delay to allow moving to dropdown without flicker 5658 }); 5659 5660 // Optional: Close dropdown if clicking outside (for better UX) 5661 document.addEventListener('click', function(e) { 5662 if (!menu.contains(e.target)) { 5663 console.log('%cClick outside: Closing dropdown for menu-dropdown #' + (index + 1), 'color: teal;'); // Log event trigger 5664 dropdown.style.opacity = '0'; 5665 dropdown.style.maxHeight = '0'; 5666 setTimeout(() => { 5667 dropdown.style.display = 'none'; 5668 console.log('%cDropdown closed on outside click for menu-dropdown #' + (index + 1), 'color: gray;'); // Log after close 5669 }, 200); 5670 } 5671 }); 5672 }); 5673 5674 console.log('%c=== Dropdown hover initialization complete ===', 'color: blue; font-weight: bold;'); // Highlighted end log 5675 5676 // Rest of your existing code... 5677 }); 5678</script>
5678 5679 5680 5681 5682<!--
5682<script> 5683 document.addEventListener('DOMContentLoaded', function () { 5684 const parentLinks = document.querySelectorAll('li.parent-link.haslinks'); 5685 if (parentLinks.length > 1) { 5686 const segundoLi = parentLinks[1]; 5687 const span = segundoLi.querySelector('span[itemprop="name"]'); 5688 if (span) { 5689 const newBadge = document.createElement('span'); 5690 newBadge.textContent = ' NEW'; 5691 newBadge.classList.add('new-badge'); 5692 span.appendChild(newBadge); 5693 } 5694 } 5695}); 5696</script>
5696 --> 5697
5698<script> 5699document.addEventListener('DOMContentLoaded', function() { 5700 // 1. Select all the target link elements 5701 const links = document.querySelectorAll('.child .child-link a'); 5702 5703 // 2. Loop through each link found 5704 links.forEach(link => { 5705 // 3. Find the first span inside the link 5706 const textSpan = link.querySelector('span'); 5707 5708 // 4. Proceed only if a span actually exists 5709 if (textSpan) { 5710 const textContent = textSpan.textContent.trim(); 5711 5712 // 5. Check if the text is one of the ones you want to target 5713 if ( textContent === 'Sample Kit') { 5714 5715 // 6. Safety Check: Only add the badge if one doesn't already exist 5716 if (!link.querySelector('.custom-badge-new')) { 5717 5718 // 7. Create the new badge element 5719 const newBadge = document.createElement('span'); 5720 newBadge.className = 'custom-badge-new'; 5721 newBadge.textContent = 'new'; 5722 5723 // 8. Append the new badge to the link. It will appear next to the existing span. 5724 link.appendChild(newBadge); 5725 } 5726 } 5727 } 5728 }); 5729}); 5730</script>
5730 5731 5732 5733 5734<style> 5735 5736 a.main-menu-item, .gheader__nav ul li.singlemenu .menu__link { 5737 font-size:12px; 5738 font-family: Montserrat; 5739 font-weight: 500; 5740 leading-trim: NONE; 5741 line-height: 100%; 5742 letter-spacing: 1%; 5743 } 5744 5745 body .gheader__nav ul li button.mega-menu-button { 5746 font-size:12px; 5747 align-items: center; 5748 font-family: Montserrat; 5749 font-weight: 500; 5750 leading-trim: NONE; 5751 line-height: 100%; 5752 letter-spacing: 1%; 5753 color:#000000; 5754 } 5755 5756 body .gheader__nav ul li button.pill-menu-active { 5757 font-size:12px; 5758 border: 1px solid currentColor !important; 5759 } 5760 5761 .gheader__nav ul .menu-dropdown .dropdown-menu li a { 5762 font-size:14px; 5763 } 5764 5765 .gheader__nav ul li.singlemenu a.menu__link.pill-menu-active { 5766 font-size:12px !important; 5767 border: 1px solid currentColor !important; 5768 padding: 5px 16px !important; 5769 transition:all 300ms ease; 5770 } 5771 .gheader__nav ul li.singlemenu a.menu__link.pill-menu-active:hover { 5772 background: #000 !important; 5773 color: #fff; 5774 } 5775 .gheader__actions { 5776 min-width: 175px; 5777 } 5778 .mega-menu-li { 5779 margin-left:15px !important; 5780 } 5781 5782 .divider-in-front { 5783 position: relative; 5784 } 5785 5786 .divider-in-front::before { 5787 content: ""; 5788 position: absolute; 5789 width: 1px; 5790 background-color: rgba(0, 0, 0, 0.2); 5791 height: calc(100% + 10px ); 5792 left: 0px; 5793 top: -5px; 5794 } 5795 5796 .divider-in-end { 5797 position: relative; 5798 } 5799 5800 .divider-in-end::after { 5801 content: ""; 5802 position: absolute; 5803 width: 1px; 5804 background-color: rgba(0, 0, 0, 0.2); 5805 height: calc(100% + 10px ); 5806 right: 0px; 5807 top: -5px; 5808 } 5809 5810 .gheader__nav.desk-only ul .menu-dropdown, .gheader__nav.desk-only ul .singlemenu, .mega-menu-li { 5811 margin-left:0px !important; 5812 padding: 0px 10px; 5813 } 5814 5815 .gheader__nav ul li a, .gheader__nav ul li button { 5816 padding:0px !important; 5817 } 5818 5819 .gheader__nav ul li a, .gheader__nav ul li button { 5820 line-height:normal; 5821 background: none !important; 5822 border: none !important; 5823 } 5824 .gheader__nav ul li a.active, .gheader__nav ul li button.active, 5825 .gheader__nav ul li a:hover, .gheader__nav ul li button:hover { 5826 background: none !important; 5827 border: none !important; 5828 } 5829 a.main-menu-item, .gheader__nav ul li.singlemenu .menu__link { 5830 white-space: nowrap; 5831 } 5832 .gheader__nav.desk-only .wrap { 5833 row-gap: 5px; 5834 } 5835 5836 body .gheader__nav ul li button.mega-menu-button svg { 5837 display: none; 5838} 5839 5840 @media (max-width:1390px){ 5841 5842 } 5843 5844 @media (max-width:1340px) { 5845 .gheader__nav.desk-only .wrap { 5846 flex-wrap:wrap; 5847 justify-content:start; 5848 } 5849 } 5850 5851 @media (max-width:1100px){ 5852 .divider-in-front::before, 5853 .divider-in-end::after { 5854 content:none; 5855 } 5856 } 5857 5858 @media (max-width:768px){ 5859 .divider-in-end::after , 5860 .divider-in-front::before { 5861 contnet:none; 5862 } 5863 } 5864 5865</style> 5866
5867<script> 5868 document.addEventListener('DOMContentLoaded', function() { 5869 const allMegaMenu = document.querySelectorAll('.mega-menu-li .mega-menu-button'); 5870 const allMegaMenuDrop = document.querySelectorAll('.mega-menu.desk-only'); 5871 5872 let activeMenuData = null; // Track the currently active menu globally 5873 let hideTimeout; // Shared timeout for all menus 5874 5875 // Function to deactivate all menus 5876 function deactivateAll() { 5877 allMegaMenu.forEach(button => button.classList.remove('active')); 5878 allMegaMenuDrop.forEach(drop => drop.classList.remove('active')); 5879 activeMenuData = null; 5880 if (hideTimeout) { 5881 clearTimeout(hideTimeout); 5882 } 5883 } 5884 5885 // Function to activate a specific menu 5886 function activateMenu(menuData, button) { 5887 deactivateAll(); // Close others first 5888 const matchingDrop = document.querySelector(`.mega-menu.desk-only[data-menu="${menuData}"]`); 5889 if (matchingDrop) { 5890 button.classList.add('active'); 5891 matchingDrop.classList.add('active'); 5892 activeMenuData = menuData; 5893 } 5894 } 5895 5896 // Click handler (for mobile/accessibility) 5897 allMegaMenu.forEach(button => { 5898 button.addEventListener('click', function(e) { 5899 e.preventDefault(); 5900 const menuData = this.getAttribute('data-menu'); 5901 if (activeMenuData === menuData) { 5902 deactivateAll(); // Toggle off if already active 5903 } else { 5904 activateMenu(menuData, this); 5905 } 5906 }); 5907 }); 5908 5909 // Hover handlers for all buttons 5910 allMegaMenu.forEach(button => { 5911 const menuData = button.getAttribute('data-menu'); 5912 5913 button.addEventListener('mouseenter', function() { 5914 clearTimeout(hideTimeout); 5915 activateMenu(menuData, this); 5916 }); 5917 5918 button.addEventListener('mouseleave', function(e) { 5919 // Start hide timeout, but only if not moving toward dropdown 5920 hideTimeout = setTimeout(() => { 5921 if (activeMenuData === menuData) { 5922 deactivateAll(); 5923 } 5924 }, 100); // Short delay to allow mouse movement to dropdown 5925 }); 5926 }); 5927 5928 // Hover handlers for all dropdowns to keep menu open 5929 allMegaMenuDrop.forEach(drop => { 5930 const menuData = drop.getAttribute('data-menu'); 5931 5932 drop.addEventListener('mouseenter', function() { 5933 clearTimeout(hideTimeout); 5934 if (activeMenuData !== menuData) { 5935 // Find and activate the corresponding button if not already 5936 const matchingButton = document.querySelector(`.mega-menu-button[data-menu="${menuData}"]`); 5937 if (matchingButton) { 5938 activateMenu(menuData, matchingButton); 5939 } 5940 } 5941 }); 5942 5943 drop.addEventListener('mouseleave', function() { 5944 // Delay hide to account for mouse leaving the entire area 5945 hideTimeout = setTimeout(() => { 5946 deactivateAll(); 5947 }, 150); // Slightly longer delay here for smoother UX 5948 }); 5949 }); 5950 5951 // Optional: Close all on outside click 5952 document.addEventListener('click', function(e) { 5953 if (!e.target.closest('.mega-menu-li')) { 5954 deactivateAll(); 5955 } 5956 }); 5957}); 5958 5959</script>
5959 5960<style> 5961span.mmcard__tag { 5962 font-family: Montserrat; 5963 font-weight: 600; 5964 font-style: Medium; 5965 font-size: 8px; 5966 leading-trim: NONE; 5967 line-height: 100%; 5968 letter-spacing: 1%; 5969 background: #fff; 5970 padding: 3px 3px; 5971 border-radius: 2px; 5972 text-transform: uppercase; 5973} 5974 5975span.mmcard__tag.mmcard__tag--1 { 5976 background: #F4F2EC; 5977} 5978 5979span.mmcard__tag.mmcard__tag--2 { 5980 background: #FAAF4F; 5981} 5982 5983span.mmcard__tag.mmcard__tag--1:empty, 5984span.mmcard__tag.mmcard__tag--2:empty { 5985 display:none 5986} 5987 5988.mmcard__tags { 5989 position: absolute; 5990 top: 5px; 5991 left: 6px; 5992 z-index:9; 5993 display: flex; 5994} 5995.mega-menu__cards.four-tiles { 5996 padding-right: 0; 5997} 5998.singlemenu { 5999 margin-bottom: 5px !important; 6000} 6001.mnav1__title span.custom-badge-new { 6002 top: -12px; 6003} 6004@media (max-width:768px){ 6005.mmcard__tags { 6006 top: 20px; 6007 left: 6px; 6008} 6009} 6010</style> 6011 6012 6013 6014</header> 6015 6016 <!-- Google Tag Manager (noscript) -->
vendor: 87 bytes, lines 6016-6019
6016 6017 <noscript 6018 ><iframe 6019 src="https://www.googletagmanager.com/ns.html?id=
6019GTM-KQXSR8SZ
vendor: 123 bytes, lines 6019-6025
6019" 6020 height="0" 6021 width="0" 6022 style="display:none;visibility:hidden" 6023 ></iframe 6024 ></noscript> 6025
6025<!-- End Google Tag Manager (noscript) --> 6026 6027 <main id="dev"> 6028 <div id="shopify-section-template--26590839111955__main-blog" class="shopify-section reg-section"><section class="blog-heading"> 6029 <div class="container container--small"> 6030 <h1>Let Us Inspire You</h1> 6031 </div> 6032 </section> 6033 6034 <section class="featured-posts-slider"> 6035 <div class="container container--large"> 6036 <div class="bg-overlay"></div> 6037 <div class="container"> 6038 <div class="swiper"> 6039 <div class="swiper-wrapper"><div class="swiper-slide"><div class="feat-article-card "> 6040 <div class="row"> 6041 <div class="col col--left"> 6042 <a href="/blogs/all/design-trends-to-watch-in-2026" class="feat-article-card__image"> 6043 6044 6045 6046 <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"> 6047 6048 6049 </a> 6050 </div> 6051 <div class="col col--right"> 6052 <div class="feat-article-card__content"> 6053 <div class="feat-article-card__category"><a 6054 href="/blogs/all/tagged/cat-knowledge-base" 6055 class="btn btn--small btn--outline btn--orange" 6056 >Knowledge Base</a></div> 6057 <div class="feat-article-card__meta"> 6058 <span class="feat-article-card__date">January 12, 2026</span> 6059 • 6060 <span class="feat-article-card__author">By Bay Thompson</span> 6061 </div> 6062 6063 <h2 class="feat-article-card__heading"> 6064 <a href="/blogs/all/design-trends-to-watch-in-2026">Design Trends to Watch in 2026</a> 6065 </h2> 6066 <a href="/blogs/all/design-trends-to-watch-in-2026" class="btn btn--text">Read More</a> 6067 </div> 6068 </div> 6069 </div> 6070</div> 6071</div><div class="swiper-slide"><div class="feat-article-card "> 6072 <div class="row"> 6073 <div class="col col--left"> 6074 <a href="" class="feat-article-card__image"> 6075 6076 6077 </a> 6078 </div> 6079 <div class="col col--right"> 6080 <div class="feat-article-card__content"> 6081 <div class="feat-article-card__category"></div> 6082 <div class="feat-article-card__meta"> 6083 <span class="feat-article-card__date"></span> 6084 • 6085 <span class="feat-article-card__author">By </span> 6086 </div> 6087 6088 <h2 class="feat-article-card__heading"> 6089 <a href=""></a> 6090 </h2> 6091 <a href="" class="btn btn--text">Read More</a> 6092 </div> 6093 </div> 6094 </div> 6095</div> 6096</div></div> 6097 <div class="swiper-controls"> 6098 <button class="swiper-button-prev" type="button"></button> 6099 <button class="swiper-button-next" type="button"></button> 6100 </div> 6101 </div> 6102 </div> 6103 </div> 6104 </section><div class="featured-posts"> 6105 <div class="container swiper"> 6106 <div class="swiper-wrapper"><div class="swiper-slide"></div><div class="swiper-slide"></div></div> 6107 </div> 6108</div> 6109 6110<section class="blog"> 6111 <div class="container"> 6112 <div class="section__header"> 6113 <div class="blog__header"> 6114 <h2 class="blog__title">All Blogs</h2> 6115 6116 6117 <div class="blog__description"></div> 6118 </div> 6119 6120 <div class="blog__filters"></div></div> 6121 <div class="section__content"><div class="blog__loop" id="blog-loop"><div class="article-card "> 6122 <a href="/blogs/all/why-justina-blakeney-chose-flooret-for-the-jungalow-casita" class="article-card__image"> 6123 6124 6125 6126 <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"> 6127 6128 6129 </a> 6130 6131 <div class="article-card__content"> 6132 <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> 6133 6134 <h5 class="article-card__heading"> 6135 <a href="/blogs/all/why-justina-blakeney-chose-flooret-for-the-jungalow-casita">Why Justina Blakeney Chose Flooret for the Jungalow Casita</a> 6136 </h5> 6137 </div> 6138</div> 6139 6140<div class="article-card "> 6141 <a href="/blogs/all/our-favorite-rug-pairings-for-floorets-bestselling-floors" class="article-card__image"> 6142 6143 6144 6145 <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"> 6146 6147 6148 </a> 6149 6150 <div class="article-card__content"> 6151 <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> 6152 6153 <h5 class="article-card__heading"> 6154 <a href="/blogs/all/our-favorite-rug-pairings-for-floorets-bestselling-floors">Our Favorite Rug Pairings with Flooret's Bestselling Floors</a> 6155 </h5> 6156 </div> 6157</div> 6158 6159<div class="article-card "> 6160 <a href="/blogs/all/myflooret-contest-info-and-faq" class="article-card__image"> 6161 6162 6163 6164 <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"> 6165 6166 6167 </a> 6168 6169 <div class="article-card__content"> 6170 <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> 6171 6172 <h5 class="article-card__heading"> 6173 <a href="/blogs/all/myflooret-contest-info-and-faq">#MyFlooret Contest Rules & FAQ</a> 6174 </h5> 6175 </div> 6176</div> 6177 6178<div class="article-card "> 6179 <a href="/blogs/all/why-longevity-is-one-of-the-most-sustainable-choices-you-can-make" class="article-card__image"> 6180 6181 6182 6183 <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"> 6184 6185 6186 </a> 6187 6188 <div class="article-card__content"> 6189 <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> 6190 6191 <h5 class="article-card__heading"> 6192 <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> 6193 </h5> 6194 </div> 6195</div> 6196 6197<div class="article-card "> 6198 <a href="/blogs/all/introducing-dorset-windsor-sutton-craftsman" class="article-card__image"> 6199 6200 6201 6202 <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"> 6203 6204 6205 </a> 6206 6207 <div class="article-card__content"> 6208 <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> 6209 6210 <h5 class="article-card__heading"> 6211 <a href="/blogs/all/introducing-dorset-windsor-sutton-craftsman">Introducing Dorset, Windsor & Sutton Craftsman</a> 6212 </h5> 6213 </div> 6214</div> 6215 6216<div class="article-card "> 6217 <a href="/blogs/all/best-flooring-projects-to-start-over-memorial
6217-day-weekend" class="article-card__image"> 6218 6219 6220 6221 <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"> 6222 6223 6224 </a> 6225 6226 <div class="article-card__content"> 6227 <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> 6228 6229 <h5 class="article-card__heading"> 6230 <a href="/blogs/all/best-flooring-projects-to-start-over-memorial-day-weekend">Best Flooring Projects For Memorial Day Weekend</a> 6231 </h5> 6232 </div> 6233</div> 6234 6235<div class="article-card "> 6236 <a href="/blogs/all/start-with-the-floor-finish-with-the-room" class="article-card__image"> 6237 6238 6239 6240 <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"> 6241 6242 6243 </a> 6244 6245 <div class="article-card__content"> 6246 <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> 6247 6248 <h5 class="article-card__heading"> 6249 <a href="/blogs/all/start-with-the-floor-finish-with-the-room">Start With The Floor. Finish With The Room.</a> 6250 </h5> 6251 </div> 6252</div> 6253 6254<div class="article-card "> 6255 <a href="/blogs/all/designer-edit-inside-farah-merhi-s-transformation-with-sable-signature" class="article-card__image"> 6256 6257 6258 6259 <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"> 6260 6261 6262 </a> 6263 6264 <div class="article-card__content"> 6265 <ul class="article-card__category tag-filters"></ul> 6266 6267 <h5 class="article-card__heading"> 6268 <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> 6269 </h5> 6270 </div> 6271</div> 6272 6273<div class="article-card "> 6274 <a href="/blogs/all/design-trends-to-watch-in-2026" class="article-card__image"> 6275 6276 6277 6278 <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"> 6279 6280 6281 </a> 6282 6283 <div class="article-card__content"> 6284 <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> 6285 6286 <h5 class="article-card__heading"> 6287 <a href="/blogs/all/design-trends-to-watch-in-2026">Design Trends to Watch in 2026</a> 6288 </h5> 6289 </div> 6290</div> 6291 6292<div class="article-card "> 6293 <a href="/blogs/all/planning-a-renovation-why-flooring-should-come-first"
6293class="article-card__image"> 6294 6295 6296 6297 <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"> 6298 6299 6300 </a> 6301 6302 <div class="article-card__content"> 6303 <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> 6304 6305 <h5 class="article-card__heading"> 6306 <a href="/blogs/all/planning-a-renovation-why-flooring-should-come-first">Planning a Renovation? Why Flooring Should Come First</a> 6307 </h5> 6308 </div> 6309</div> 6310 6311<div class="article-card "> 6312 <a href="/blogs/all/customer-story-from-rental-to-retreat-with-nakan" class="article-card__image"> 6313 6314 6315 6316 <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"> 6317 6318 6319 </a> 6320 6321 <div class="article-card__content"> 6322 <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> 6323 6324 <h5 class="article-card__heading"> 6325 <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> 6326 </h5> 6327 </div> 6328</div> 6329 6330<div class="article-card "> 6331 <a href="/blogs/all/now-in-craftsman-palka-jova-and-arbor" class="article-card__image"> 6332 6333 6334 6335 <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"> 6336 6337 6338 </a> 6339 6340 <div class="article-card__content"> 6341 <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> 6342 6343 <h5 class="article-card__heading"> 6344 <a href="/blogs/all/now-in-craftsman-palka-jova-and-arbor">Now in Craftsman: Palka, Jova, and Arbor</a> 6345 </h5> 6346 </div> 6347</div> 6348 6349</div> 6350 6351 6352<div class="pagination" id="pagination"> 6353 <a class="btn btn--black load-more" href="/blogs/all?page=2">Load More</a> 6354 </div> 6355</div> 6356 </div> 6357</section> 6358 6359 6360</div><div id="shopify-section-template--26590839111955__6160d0c1-6805-4351-843c-9c11ecb1d2f4" class="shopify-section newsletter-signup-section"><section class="newsletter-signup"> 6361 <div class="container"> 6362 <div class="row"> 6363 <div class="col col--left"> 6364 <h2 class="newsletter-signup__heading">Discover Endless Inspiration for Your Home</h2> 6365 <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> 6366 6367 <div class="newsletter-signup__form"> 6368 <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="â" /> 6369 <div class="input-group"> 6370 <input placeholder="Email Address" type="email" required id="email" name="email"> 6371 </div> 6372 <input type="submit" class="btn btn--black" value="Submit"> 6373 </form> 6374 </div> 6375 </div> 6376 <div class="col col--right"> 6377 <div class="newsletter-signup__img"> 6378 6379 6380 <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"> 6381 6382</div> 6383 </div> 6384 </div> 6385 </div> 6386</section> 6387 6388 6389</div> 6390 </main> 6391 6392 <footer id="shopify-section-footer" class="shopify-section gfooter"> 6393 6394<div class="container container--large"> 6395 6396 <div class="gfooter-main"> 6397 <div class="gfooter-logo"> 6398 6399 6400 6401 <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"> 6402 6403 6404 </div> 6405 6406 <div class="gfooter-row"> 6407 <div class="gfooter-menus"> 6408 6409 6410 <div class="accordion js-dropdown gfooter__menu"> 6411 <div class="accordion__trigger js-dropdown__trigger"> 6412 <h4>About</h4> 6413 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 6414<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 6415</svg> 6416 </div> 6417 <div class="accordion__content js-dropdown__content"> 6418 <div class="spacer"> 6419 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 6420 �<li class=" page_link parent-link "> 6421 <a itemprop="url" 6422 6423 href="/pages/about" 6424 6425 ><span itemprop="name">Our Story</span></a> 6426 �</li> 6427 6428 �<li class=" page_link parent-link "> 6429 <a itemprop="url" 6430 6431 href="/pages/meet-the-team" 6432 6433 ><span itemprop="name">Meet the Team </span></a> 6434 �</li> 6435 6436 �<li class=" page_link parent-link "> 6437 <a itemprop="url" 6438 6439 href="/pages/contact" 6440 6441 ><span itemprop="name">Contact</span></a> 6442 �</li> 6443 6444 �<li class=" page_link parent-link "> 6445 <a itemprop="url" 6446 6447 href="/pages/reviews" 6448 6449 ><span itemprop="name">Reviews</span></a> 6450 �</li> 6451 6452 �<li class=" http_link parent-link "> 6453 <a itemprop="url" 6454 6455 href="/pages/sustainability" 6456 6457 ><span itemprop="name">Sustainability</span></a> 6458 �</li> 6459 6460 6461 6462</ul> 6463 6464 6465 6466 6467 </div> 6468 </div> 6469 6470 </div> 6471 6472 6473 <div class="accordion js-dropdown gfooter__menu"> 6474 <div class="accordion__trigger js-dropdown__trigger"> 6475 <h4>Products</h4> 6476 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 6477<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 6478</svg> 6479 </div> 6480 <div class="accordion__content js-dropdown__content"> 6481 <div class="spacer"> 6482 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 6483 �<li class=" http_link parent-link "> 6484 <a itemprop="url" 6485 6486 href="https://www.flooret.com/collections/all-floors" 6487 6488 ><span itemprop="name">Shop</span></a> 6489 �</li> 6490 6491 �<li class=" http_link parent-link "> 6492 <a itemprop="url" 6493 6494 href="https://support.flooret.com/" 6495 6496 ><span itemprop="name">FAQs</span></a> 6497 �</li> 6498 6499 �<li class=" http_link parent-link "> 6500 <a itemprop="url" 6501 6502 href="javascript:roomvo.startStandaloneVisualizer('floor');" 6503 6504 ><span itemprop="name">See it in Your Home</span></a> 6505 �</li> 6506 6507 6508 6509</ul> 6510 6511 6512 6513 6514 </div> 6515 </div> 6516 6517 </div> 6518 6519 6520 <div class="accordion js-dropdown gfooter__menu"> 6521 <div class="accordion__trigger js-dropdown__trigger"> 6522 <h4>Resources</h4> 6523 <svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 6524<path d="M1 0.75L5.5 5.25L10 0.75" stroke="#111111"/> 6525</svg> 6526 </div> 6527 <div class="accordion__content js-dropdown__content"> 6528 <div class="spacer"> 6529 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 6530 �<li class=" page_link parent-link "> 6531 <a itemprop="url" 6532 6533 href="/pages/technical-documents" 6534 6535 ><span itemprop="name">Technical Documents</span></a> 6536 �</li> 6537 6538 �<li class=" page_link parent-link "> 6539 <a itemprop="url" 6540 6541 href="/pages/shipping" 6542 6543 ><span itemprop="name">Shipping</span></a> 6544 �</li> 6545 6546 �<li class=" page_link parent-link "> 6547 <a itemprop="url" 6548 6549 href="/pages/ten-year-anniversary" 6550 6551 ><span itemprop="name">
6551A Decade of Flooret</span></a> 6552 �</li> 6553 6554 �<li class=" page_link parent-link "> 6555 <a itemprop="url" 6556 6557 href="/pages/finance" 6558 6559 ><span itemprop="name">Financing</span></a> 6560 �</li> 6561 6562 �<li class=" page_link parent-link "> 6563 <a itemprop="url" 6564 6565 href="/pages/find-a-retailer" 6566 6567 ><span itemprop="name">Find a Retailer</span></a> 6568 �</li> 6569 6570 6571 6572</ul> 6573 6574 6575 6576
6577<script> 6578 (function () { 6579 async function getHelpCode() { 6580 if (!window.NOIBUJS) { 6581 await new Promise(resolve => window.addEventListener('noibuSDKReady', resolve, { once: true })); 6582 } 6583 const helpCode = await window.NOIBUJS.requestHelpCode(false); 6584 console.log('HelpCode:', helpCode); 6585 return helpCode; 6586 } 6587 6588 // auto-generate on load (optional) 6589 getHelpCode(); 6590 6591 // wire your button 6592 window.addEventListener('noibuSDKReady', () => { 6593 const button = document.getElementById('request-help-code'); 6594 const label = document.getElementById('help-code-result'); 6595 if (!button || !label) return; 6596 6597 button.addEventListener('click', async () => { 6598 const helpCode = await window.NOIBUJS.requestHelpCode(false); 6599 label.innerText = helpCode; 6600 }); 6601 }); 6602 })(); 6603</script>
6603 6604
6605<script> 6606 (function () { 6607 // Generate a unique session ID for this browser session 6608 function getOrCreateSessionId() { 6609 try { 6610 let sessionId = sessionStorage.getItem('noibu_session_id'); 6611 if (!sessionId) { 6612 sessionId = 'sess_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9); 6613 sessionStorage.setItem('noibu_session_id', sessionId); 6614 console.log('[Noibu] Created new session ID:', sessionId); 6615 } 6616 return sessionId; 6617 } catch (e) { 6618 console.error('[Noibu] Error with session ID:', e); 6619 } 6620 return null; 6621 } 6622 6623 function getGladlyIdentifier() { 6624 try { 6625 if (window.Gladly && typeof window.Gladly.getUser === 'function') { 6626 const user = window.Gladly.getUser(); 6627 if (user && user.id) { 6628 console.log('[Noibu] Found Gladly user ID:', user.id); 6629 return String(user.id); 6630 } 6631 if (user && user.email) { 6632 console.log('[Noibu] Found Gladly user email:', user.email); 6633 return String(user.email); 6634 } 6635 } 6636 } catch (e) { 6637 console.error('[Noibu] Error getting Gladly identifier:', e); 6638 } 6639 return null; 6640 } 6641 6642 function getShopifyCustomerId() { 6643 try { 6644 if (window.ShopifyAnalytics?.meta?.page?.customerId) { 6645 return String(window.ShopifyAnalytics.meta.page.customerId); 6646 } 6647 if (window.Shopify?.customer?.id) { 6648 return String(window.Shopify.customer.id); 6649 } 6650 if (window.Shopify?.checkout?.customer_id) { 6651 return String(window.Shopify.checkout.customer_id); 6652 } 6653 } catch (e) { 6654 console.error('[Noibu] Error getting Shopify customer ID:', e); 6655 } 6656 return null; 6657 } 6658 6659 function getOrderName() { 6660 try { 6661 if (window.Shopify?.checkout?.order_id) { 6662 return String(window.Shopify.checkout.order_id); 6663 } 6664 if (window.Shopify?.checkout?.order_name) { 6665 return String(window.Shopify.checkout.order_name); 6666 } 6667 } catch (e) { 6668 console.error('[Noibu] Error getting order name:', e); 6669 } 6670 return null; 6671 } 6672 6673 function getContactSessionId() { 6674 try { 6675 // window variable 6676 if (window.contact_session_id) { 6677 return String(window.contact_session_id); 6678 } 6679 // localStorage 6680 let csid = localStorage.getItem('contact_session_id'); 6681 if (csid) return String(csid); 6682 // cookie 6683 const match = document.cookie.match(/(?:^|;\s*)contact_session_id=([^;]+)/); 6684 if (match) return decodeURIComponent(match[1]); 6685 } catch (e) { 6686 console.error('[Noibu] Error getting contact_session_id:', e); 6687 } 6688 return null; 6689 } 6690 6691 function addAttributesToNoibu() { 6692 if (!window.NOIBUJS || typeof window.NOIBUJS.addCustomAttribute !== 'function') { 6693 console.error('[Noibu] NOIBUJS.addCustomAttribute is not available'); 6694 return; 6695 } 6696 try { 6697 console.log('[Noibu] Adding custom attributes...'); 6698 // 1. Session ID 6699 const sessionId = getOrCreateSessionId(); 6700 if (sessionId) { 6701 window.NOIBUJS.addCustomAttribute('sessionID', sessionId); 6702 console.log('[Noibu] â Added sessionID:', sessionId); 6703 } 6704 // 2. Shopify customer ID 6705 const customerId = getShopifyCustomerId(); 6706 if (customerId) { 6707 window.NOIBUJS.addCustomAttribute('customerID', customerId); 6708 console.log('[Noibu] â Added customerID:', customerId); 6709 } else { 6710 console.log('[Noibu] â No Shopify customer ID found (customer may not be logged in)'); 6711 } 6712 // 3. Gladly user ID 6713 const gladlyId = getGladlyIdentifier(); 6714 if (gladlyId) { 6715 window.NOIBUJS.addCustomAttribute('gladlyUserID', gladlyId); 6716 console.log('[Noibu] â Added gladlyUserID:', gladlyId); 6717 } else { 6718 console.log('[Noibu] â No Gladly user identifier found'); 6719 } 6720 // 4. Order name 6721 const orderName = getOrderName(); 6722 if (orderName) { 6723 window.NOIBUJS.addCustomAttribute('orderName', orderName); 6724 console.log('[Noibu] â Added orderName:', orderName); 6725 } else { 6726 console.log('[Noibu] â No order name found (not on checkout page)'); 6727 } 6728 // 5. contact_session_id 6729 const contactSessionId = getContactSessionId(); 6730 if (contactSessionId) { 6731 window.NOIBUJS.addCustomAttribute('contact_session_id', contactSessionId); 6732 console.log('[Noibu] â Added contact_session_id:', contactSessionId); 6733 } else { 6734 console.log('[Noibu] â No contact_session_id found'); 6735 } 6736 console.log('[Noibu] Custom attributes added successfully'); 6737 } catch (e) { 6738 console.error('[Noibu] Error adding attributes:', e); 6739 } 6740 } 6741 6742 function waitForGladlyAndUpdate() { 6743 if (window.Gladly) { 6744 console.log('[Noibu] Gladly detected, checking for Gladly user...'); 6745 const gladlyId = getGladlyIdentifier(); 6746 if (gladlyId && window.NOIBUJS) { 6747 window.NOIBUJS.addCustomAttribute('gladlyUserID', gladlyId); 6748 console.log('[Noibu] â Added gladlyUserID after Gladly loaded:', gladlyId); 6749 } 6750 } else { 6751 setTimeout(() => { 6752 if (window.Gladly) { 6753 console.log('[Noibu] Gladly loaded late, checking for Gladly user...'); 6754 const gladlyId = getGladlyIdentifier(); 6755 if (gladlyId && window.NOIBUJS) { 6756 window.NOIBUJS.addCustomAttribute('gladlyUserID', gladlyId); 6757 console.log('[Noibu] â Added gladlyUserID after delayed load:', gladlyId); 6758 } 6759 } 6760 }, 2000); 6761 } 6762 } 6763
6764 function init() { 6765 if (window.NOIBUJS && typeof window.NOIBUJS.addCustomAttribute === 'function') { 6766 console.log('[Noibu] NOIBUJS ready, adding attributes...'); 6767 addAttributesToNoibu(); 6768 waitForGladlyAndUpdate(); 6769 } else { 6770 console.log('[Noibu] Waiting for NOIBUJS SDK...'); 6771 window.addEventListener('noibuSDKReady', () => { 6772 console.log('[Noibu] NOIBUJS SDK ready'); 6773 addAttributesToNoibu(); 6774 waitForGladlyAndUpdate(); 6775 }, { once: true }); 6776 } 6777 } 6778 init(); 6779 })(); 6780</script>
6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 </div> 6794 </div> 6795 6796<a 6797 class="custom-btn" 6798 href="https://www.flooret.com/pages/become-a-retailer" 6799 > 6800 Become a Retailer 6801 </a> 6802 </div> 6803 6804 </div> 6805 <div class="gfooter-email"> 6806 <span class="h5">Stay in the know about Flooret updates</span> 6807 <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="â" /> 6808 <div class="input-group"> 6809 <input placeholder="Email Address" type="email" required id="email" name="email"> 6810 </div> 6811 <input type="submit" class="btn btn--black" value="Submit"> 6812 </form> 6813 6814 <div class="gfooter-email__imgs"> 6815 6816 6817 6818 <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"> 6819 6820 6821 6822 6823 6824 <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"> 6825 6826 6827 6828 6829 6830 <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"> 6831 6832 6833 </div> 6834 </div> 6835 </div> 6836 6837 <div class="gfooter-bottom"> 6838 <p>Copyright 2026 © Flooret</p> 6839 6840 6841<ul class="social-links"> 6842 6843 6844 6845 6846 6847 6848 6849 6850 <li><a href="https://www.instagram.com/shopflooret/" target="_blank">
6850<svg xmlns="http://www.w3.org/2000/svg" width="16" viewBox="0 0 24 24"> 6851 <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"/> 6852 <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"/> 6853</svg></a></li> 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 <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"> 6866 <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"/> 6867</svg></a></li> 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 <li><a href="https://www.linkedin.com/uas/login?session_redirect=https%3A%2F%2Fwww.linkedin.com%2Fcompany%2Fflooret%2Fabout%2F" target="_blank">
6879<svg xmlns="http://www.w3.org/2000/svg" width="16" viewBox="0 0 24 24"> 6880 <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"/> 6881</svg></a></li> 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 <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"> 6894 <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"/> 6895</svg></a></li> 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 <li><a href="https://www.youtube.com/channel/UCOKewsiUaAOThCGO5DlvWrw" target="_blank">
6907<svg xmlns="http://www.w3.org/2000/svg" width="16" viewBox="0 0 24 24"> 6908 <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"/> 6909</svg></a></li> 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 <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"> 6922 <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" /> 6923</svg></a></li> 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 <li><a href="https://www.pinterest.com/Flooret/_created/" target="_blank">
6935<svg xmlns="http://www.w3.org/2000/svg" width="16" viewBox="0 0 24 24"> 6936 <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"/> 6937</svg></a></li> 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 <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"> 6956 <path d="M11.5593 17.5H16.5674V8.97966L6.54282 6.09147V2.5H3.22266V17.5H8.23078V12.7773H11.5593V17.5Z" fill="currentColor"/> 6957</svg> 6958</a></li> 6959 6960 6961 6962 6963</ul> 6964 <nav class="legal"> 6965 <ul itemscope itemtype="http://www.schema.org/SiteNavigationElement"> 6966 6967 6968</ul> 6969 6970 6971 6972 6973 </nav> 6974 </div> 6975 </div> 6976</div> 6977 6978<style data-shopify> 6979 #shopify-section-footer .custom-btn { 6980 display: inline-flex; 6981 align-items: center; 6982 position:absolute; 6983 justify-content: center; 6984 text-decoration: none; 6985 cursor: pointer; 6986 border-radius:50px; 6987 margin-left: -10px; 6988 color: #ffffff; 6989 background-color: #000000; 6990 margin-top:20px; 6991 font-weight: 500; 6992 line-height: 1.3; 6993 letter-spacing: 0px; 6994 6995 font-size: 16px; 6996 6997 padding: 4px 15px; 6998 6999 7000 height: 40px; 7001 7002 7003 transition: color 0.2s ease, background-color 0.2s ease, opacity 0.2s ease; 7004 } 7005 7006 #shopify-section-footer .custom-btn:hover { 7007 color: #ffffff; 7008 background-color: #111111; 7009 } 7010 7011 #shopify-section-footer .custom-btn[aria-disabled="true"] { 7012 pointer-events: none; 7013 opacity: 0.6; 7014 } 7015 7016 @media (max-width: 990px) { 7017 #shopify-section-footer .custom-btn { 7018 display:none; 7019 } 7020 } 7021 @media (max-width: 749px) { 7022 #shopify-section-footer .custom-btn { 7023 font-size: 15px; 7024 } 7025 } 7026</style> 7027 7028 7029 7030<style data-shopify> 7031 .gfooter .gfooter-bottom .social-links li { 7032 margin-right: 0.5rem !important; 7033 margin-left: 0.5rem !important; 7034 } 7035 .gfooter .gfooter-bottom p, 7036 .gfooter .gfooter-bottom .social-links, 7037 .gfooter .gfooter-bottom nav { 7038 min-width: 315px; 7039 text-align: center; 7040 justify-content: center !important; 7041 display: flex; 7042 } 7043 .gfooter-bottom { 7044 flex-direction: column !important; 7045 gap: 10px; 7046 } 7047 @media (min-width: 1024px) { 7048 .gfooter-main .gfooter-bottom { 7049 flex-direction: row !important; 7050 } 7051 .gfooter .gfooter-bottom p { 7052 justify-content: flex-start !important; 7053 } 7054 } 7055</style> 7056 7057 7058<!-- Start of HubSpot Embed Code -->
7059<script type="text/javascript" id="hs-script-loader" async defer src="//js-na2.hs-scripts.com/46941662.js"></script>
7059 7060<!-- End of HubSpot Embed Code --> 7061 7062 7063</footer> 7064 7065 <div class="site-overlay js-site-overlay"></div> 7066 7067 <div id="shopify-section-pop-cart" class="shopify-section"> 7068 7069<section class="pop-cart"> 7070 <form class="overflow" id="fr24-pop-cart-form" action="/checkout" method="post" novalidate> 7071 7072 <div class="pop-cart__top"> 7073 <div class="pop-cart__intro"> 7074 <button class="pop-cart__close js-cart-drawer-close reset" type="button"> 7075 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"> 7076 <path d="M3.825 9L9.425 14.6L8 16L-1.09896e-07 8L8 4.76837e-07L9.425 1.4L3.825 7H16V9H3.825Z" fill="#0F172A"/> 7077 </svg> 7078 </button> 7079 <span class="h5">My Cart (<span class="cart-item__count js-cart-count">0</span>)</span> 7080 <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"> 7081 <path d="M15.1421 1.00151L0.999954 15.1436" stroke="#111111" stroke-width="1.5" stroke-linecap="round"/> 7082 <path d="M15.1421 15.1421L0.999955 0.999999" stroke="#111111" stroke-width="1.5" stroke-linecap="round"/> 7083</svg> </button> 7084 </div> 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 <div class="pop-cart__items"> 7151 <style> 7152 .install-product { 7153 display: flex; 7154 gap: 16px; 7155 position: relative; 7156 border-radius: 10px; 7157 background: #F4F3F1; 7158 padding: 20px 14px; 7159 flex-direction: column; 7160 margin-top: 1rem; 7161 } 7162 .install-product h3 { 7163 color: #000; 7164 font-family: Montserrat; 7165 font-size: 16px; 7166 font-style: normal; 7167 font-weight: 700; 7168 line-height: normal; 7169 } 7170 .install-product .install-product-image-box { 7171 position: relative; 7172 width: 113px; 7173 height: 113px; 7174 } 7175 7176 .install-product .install-product-image-box .install-tier { 7177 position: absolute; 7178 top: -7px; 7179 border-radius: 4px; 7180 text-align: center; 7181 color: #1B1B1B; 7182 font-family: "Playfair Display"; 7183 font-size: 9px; 7184 font-style: normal; 7185 font-weight: 700; 7186 line-height: normal; 7187 letter-spacing: 0.27px; 7188 text-transform: uppercase; 7189 width: 83px; 7190 height: 15px; 7191 left: 15px; 7192 right: 15px; 7193 } 7194 7195 .install-product-image-box .install-tier.bronze { 7196 background: linear-gradient(90deg, #5B442F 0%, #D09762 24.04%, #CB935D 49.04%, #E5A974 75%, #66492C 100%); 7197 } 7198 7199 .install-product-image-box .install-tier.silver { 7200 background: linear-gradient(90deg, #8C8D8D 0%, #969696 24.04%, #E9E9E9 49.04%, #939393 75%, #BDBDBD 100%); 7201 } 7202 .install-product-image-box .install-tier.gold { 7203 background: linear-gradient(90deg, #FBDB5E 0%, #FAF3C2 38.46%, #D2A748 71.15%, #F1DD94 100%); 7204 } 7205 7206 .bundle-container { 7207 display: flex; 7208 gap: 16px; 7209 } 7210 7211 .cart-item-hidden { 7212 display: none !important; 7213 } 7214 7215 .bundle-summary { 7216 padding: 12px; 7217 border-radius: 8px; 7218 margin-top: 8px; 7219 } 7220 7221 .bundle-summary ul { 7222 margin: 0; 7223 padding-left: 16px; 7224 font-size: 12px; 7225 } 7226 7227 .cart-remove-bundle { 7228 border: none; 7229 cursor: pointer; 7230 font-size: 12px; 7231 margin-top: 8px; 7232 background: transparent; 7233 padding: 0; 7234 position: absolute; 7235 top: -2px; 7236 right: 6px; 7237 } 7238 7239 .cart-remove-bundle:hover { 7240 } 7241 .cart-installation-details { 7242 display: flex; 7243 flex-direction: column; 7244 float: right; 7245 } 7246 .cart-installation-details summary { 7247 color: #1050D0; 7248 text-align: right; 7249 font-family: Inter; 7250 font-size: 14px; 7251 font-style: normal; 7252 font-weight: 600; 7253 line-height: normal; 7254 } 7255
7256 .cart-installation-details summary { 7257 list-style: none; 7258 display: flex; 7259 justify-content: flex-end; 7260 align-items: center; 7261 color: #1050D0; 7262 text-align: right; 7263 font-family: Inter; 7264 font-size: 14px; 7265 font-style: normal; 7266 font-weight: 600; 7267 line-height: normal; 7268 cursor: pointer; 7269 padding-right: 16px; 7270 position: relative; 7271 } 7272 7273 .cart-installation-details summary>.chevron { 7274 transform: rotate(180deg); 7275 } 7276 7277 /* Hide ::marker */ 7278 .cart-installation-details summary::marker { 7279 content: ''; 7280 } 7281 7282 /* Rotate arrow when open */ 7283 .cart-installation-details[open] summary>.chevron { 7284 transform: rotate(0deg); 7285 } 7286 7287 .bundle-service-included { 7288 display: flex; 7289 flex-direction: column; 7290 gap: 2px; 7291 padding-top: 4px; 7292 color: #000; 7293 font-family: Montserrat; 7294 font-size: 12px; 7295 font-style: normal; 7296 font-weight: 400; 7297 line-height: 20px; 7298 } 7299 .bundle-cost-summary { 7300 color: #000; 7301 font-family: Montserrat; 7302 font-size: 12px; 7303 font-style: normal; 7304 font-weight: 400; 7305 line-height: 20px; 7306 padding-top: 4px; 7307 } 7308 .remaining-info { 7309 color: #A3A3A3; 7310 font-style: italic; 7311 font-size: 11px; 7312 } 7313 .bundle-breakdown li { 7314 border-bottom: 1px solid #6D6D6D; 7315 color: #6D6D6D; 7316 font-family: "Helvetica Neue"; 7317 font-size: 14px; 7318 font-style: normal; 7319 font-weight: 500; 7320 line-height: normal; 7321 } 7322 7323 .bundle-breakdown li:last-child { 7324 border-bottom: none; 7325 } 7326 7327 .bundle-breakdown .breakdown-item { 7328 display: flex; 7329 justify-content: space-between; 7330 align-items: center; 7331 padding: 0.5rem 0; 7332 } 7333 7334 .bundle-breakdown .breakdown-item .price { 7335 font-size: 12px; 7336 } 7337 7338 .cart-card__content.fix_install_item .cart-card__meta li::before { 7339 content: "-"; 7340 position:relative; 7341 } 7342 7343 .cart-card__content.fix_install_item .cart-card__meta li { 7344 margin-left: 0px; 7345 font-size: 12px; 7346 font-weight: 500; 7347 display:flex; 7348 gap:5px; 7349 } 7350 7351 .cart-card.js-cart-card.fix_install_item_card { 7352 display: flex; 7353 gap: 16px; 7354 position: relative; 7355 border-radius: 10px; 7356 background: #F4F3F1; 7357 padding: 20px 14px; 7358 flex-direction: column; 7359 margin-top: 1rem; 7360 } 7361 7362 .cart-card.js-cart-card.fix_install_item_card .cart-card__quantity { 7363 display: none; 7364 } 7365 7366 @media (max-width:768px){ 7367 .cart-card__content.fix_install_item { 7368 padding-top: 20px; 7369 } 7370 } 7371 .cart-card__meta li.on { 7372 display: none; 7373 } 7374 7375 .cart-card__meta li.on + li::before { 7376 content: ""; 7377 } 7378 7379 .cart-card__meta li.\33 30 { 7380 display: none; 7381 } 7382</style> 7383 7384<div class="js-cart-item-wrap"> 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401</div> 7402 7403 7404 7405 7406
7407<script> 7408 // Handle bundle removal 7409 document.querySelectorAll('.cart-remove-bundle').forEach(button => { 7410 button.addEventListener('click', async (e) => { 7411 e.preventDefault(); 7412 const button = e.target.closest('.cart-remove-bundle'); 7413 const bundleId = button?.dataset.bundleId; 7414 7415 if (!confirm('Remove the service bundle?')) return; 7416 7417 try { 7418 // Get current cart 7419 const cartResponse = await fetch('/cart.js'); 7420 const cart = await cartResponse.json(); 7421 7422 // Find all items with this bundle ID and set quantity to 0 7423 const updates = {}; 7424 cart.items.forEach((item, index) => { 7425 if (item.properties && item.properties._bundle_id === bundleId) { 7426 updates[item.key] = 0; 7427 } 7428 }); 7429 7430 // Remove all bundle items 7431 for (const [key, quantity] of Object.entries(updates)) { 7432 await fetch('/cart/change.js', { 7433 method: 'POST', 7434 headers: { 'Content-Type': 'application/json' }, 7435 body: JSON.stringify({ id: key, quantity: quantity }) 7436 }); 7437 } 7438 7439 window.location.reload(); 7440 } catch (error) { 7441 console.error('Error removing bundle:', error); 7442 alert('Error removing installation service. Please try again.'); 7443 } 7444 }); 7445 }); 7446</script>
7446 7447 7448 </div> 7449 </div> 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 <div class="pop-cart__upsell"> 7478 7479 <h3 class="pop-cart__upsell-heading">Browse All-in-One Rugs</h3> 7480 7481 <div class="pop-cart__upsell-wrap"> 7482 <div class="pop-cart__upsell-scroll" data-upsell-scroll> 7483 7484 7485 7486 <a href="/products/encinitas" class="pop-cart__upsell-card" > 7487 <div class="pop-cart__upsell-media"> 7488 7489 <img 7490 src="//www.flooret.com/cdn/shop/files/Encinitas_Olive_Green_8x10_45_ratio.webp?v=1784660358&width=400" 7491 alt="Encinitas" 7492 loading="lazy" 7493 > 7494 7495 </div> 7496 <div class="pop-cart__upsell-title">Encinitas</div> 7497 <div class="pop-cart__upsell-price"> 7498 7499 $104.30–$349.30 7500 7501 </div> 7502 </a> 7503 7504 7505 7506 7507 <a href="/products/palomar" class="pop-cart__upsell-card" > 7508 <div class="pop-cart__upsell-media"> 7509 7510 <img 7511 src="//www.flooret.com/cdn/shop/files/Palomar_Juniper_Green_8x10_45_ratio.webp?v=1784661066&width=400" 7512 alt="Palomar" 7513 loading="lazy" 7514 > 7515 7516 </div> 7517 <div class="pop-cart__upsell-title">Palomar</div> 7518 <div class="pop-cart__upsell-price"> 7519 7520 $104.30–$349.30 7521 7522 </div> 7523 </a> 7524 7525 7526 7527 7528 <a href="/products/la-jolla" class="pop-cart__upsell-card" > 7529 <div class="pop-cart__upsell-media"> 7530 7531 <img 7532 src="//www.flooret.com/cdn/shop/files/La_Jolla_Canopy_Green_5x7_45_ratio.webp?v=1784658899&width=400" 7533 alt="La Jolla" 7534 loading="lazy" 7535 > 7536 7537 </div> 7538 <div class="pop-cart__upsell-title">La Jolla</div> 7539 <div class="pop-cart__upsell-price"> 7540 7541 $104.30–$349.30 7542 7543 </div> 7544 </a> 7545 7546 7547 7548 7549 <a href="/products/del-mar" class="pop-cart__upsell-card" > 7550 <div class="pop-cart__upsell-media"> 7551 7552 <img 7553 src="//www.flooret.com/cdn/shop/files/Del_Mar_Soft_Creme_8_x_10_Contrast_45_ratio.webp?v=1784661633&width=400" 7554 alt="Del Mar" 7555 loading="lazy" 7556 > 7557 7558 </div> 7559 <div class="pop-cart__upsell-title">Del Mar</div> 7560 <div class="pop-cart__upsell-price"> 7561 7562 $279.30–$489.30 7563 7564 </div> 7565 </a> 7566 7567 7568 7569 7570 <a href="/products/oceanside" class="pop-cart__upsell-card" > 7571 <div class="pop-cart__upsell-media"> 7572 7573 <img 7574 src="//www.flooret.com/cdn/shop/files/Oceanside_Deep_Blue_8_x_10_w__Contrast_97f16021-d911-4240-bb7b-15c0554918eb.webp?v=1784657109&width=400" 7575 alt="Oceanside" 7576 loading="lazy" 7577 > 7578 7579 </div> 7580 <div class="pop-cart__upsell-title">Oceanside</div> 7581 <div class="pop-cart__upsell-price"> 7582 7583 $279.30–$489.30 7584 7585 </div> 7586 </a> 7587 7588 7589 7590 7591 <a href="/products/coronado" class="pop-cart__upsell-card" > 7592 <div class="pop-cart__upsell-media"> 7593 7594 <img 7595 src="//www.flooret.com/cdn/shop/files/Coronado_Pebble_Tan_8x10_45_ratio.webp?v=1784657931&width=400" 7596 alt="Coronado" 7597 loading="lazy" 7598 > 7599 7600 </div> 7601 <div class="pop-cart__upsell-title">Coronado</div> 7602 <div class="pop-cart__upsell-price"> 7603 7604 $104.30–$349.30 7605 7606 </div> 7607 </a> 7608 7609 7610 7611 7612 <a href="/products/torrey" class="pop-cart__upsell-card" > 7613 <div class="pop-cart__upsell-media"> 7614 7615 <img 7616 src="//www.flooret.com/cdn/shop/files/Torrey_Soft_Charcoal_8x10_e1619900-309e-4188-a5e9-af6bc9f9d312.webp?v=1784655912&width=400" 7617 alt="Torrey" 7618 loading="lazy" 7619 > 7620 7621 </div> 7622 <div class="pop-cart__upsell-title">Torrey</div> 7623 <div class="pop-cart__upsell-price"> 7624 7625 $104.30–$349.30 7626 7627 </div> 7628 </a> 7629 7630 7631 7632 7633 <a href="/products/venice" class="pop-cart__upsell-card" > 7634 <div class="pop-cart__upsell-media"> 7635 7636 <img 7637 src="//www.flooret.com/cdn/shop/files/Venice_Black_Creme_8_x_10_w__Contrast_45_ratio..webp?v=1784662055&width=400" 7638 alt="Venice" 7639 loading="lazy" 7640 > 7641 7642 </div> 7643 <div class="pop-cart__upsell-title">Venice</div> 7644 <div class="pop-cart__upsell-price"> 7645 7646 $279.30–$489.30 7647 7648 </div> 7649 </a> 7650 7651 7652 </div> 7653 <button type="button" class="pop-cart__upsell-nav pop-cart__upsell-nav--prev" data-upsell-prev aria-label="Previous"> 7654 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewB
7654ox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M15 18l-6-6 6-6"/></svg> 7655 </button> 7656 <button type="button" class="pop-cart__upsell-nav pop-cart__upsell-nav--next" data-upsell-next aria-label="Next"> 7657 <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> 7658 </button> 7659 </div> 7660 </div> 7661 7662 7663 7664 <div class="pop-cart__footer js-pop-cart-actions "> 7665 <div class="pop-cart__actions"> 7666 <table> 7667 7668 <tr> 7669 <td class="center">Your cart is empty</td> 7670 </tr> 7671 7672 </table> 7673 7674 7675 <a href="/collections/all" class="btn btn--black">Shop All Products</a> 7676 7677 </div> 7678 </div><!-- Hidden original-order updates for correct Shopify checkout submission --><div style="display:none;" aria-hidden="true"> 7679 7680<!-- Hidden submit â gives Minmaxify its real submit hook --><button type="submit" class="js-hidden-submit" tabindex="-1" aria-hidden="true">Checkout</button> 7681 </div> 7682 7683 </form> 7684</section> 7685
7686<script> 7687(function () { 7688 document.addEventListener("click", function (e) { 7689 var scroller = document.querySelector("[data-upsell-scroll]"); 7690 if (!scroller) return; 7691 7692 var prevBtn = e.target.closest("[data-upsell-prev]"); 7693 var nextBtn = e.target.closest("[data-upsell-next]"); 7694 if (!prevBtn && !nextBtn) return; 7695 7696 var card = scroller.querySelector(".pop-cart__upsell-card"); 7697 var step = card ? card.getBoundingClientRect().width + 14 : 200; 7698 7699 scroller.scrollBy({ 7700 left: nextBtn ? step : -step, 7701 behavior: "smooth" 7702 }); 7703 }); 7704})(); 7705</script>
7705 7706 7707 7708
7709<script> 7710(function () { 7711 document.addEventListener("click", function (e) { 7712 const btn = e.target.closest(".js-fr24-checkout-btn"); 7713 if (!btn || btn.disabled) return; 7714 7715 e.preventDefault(); 7716 7717 const visibleInputs = document.querySelectorAll(".js-qty__input"); 7718 const hiddenInputs = document.querySelectorAll(".js-original-update"); 7719 7720 const qtyMap = {}; 7721 visibleInputs.forEach((input) => { 7722 const card = input.closest(".js-cart-card"); 7723 if (card) { 7724 const variantId = card.dataset.id; 7725 if (variantId) qtyMap[variantId] = input.value; 7726 } 7727 }); 7728 7729 hiddenInputs.forEach((input) => { 7730 const variantId = input.dataset.variantId; 7731 if (variantId && qtyMap[variantId] !== undefined) { 7732 input.value = qtyMap[variantId]; 7733 } 7734 }); 7735 7736 fetch("/cart.js", { 7737 method: "GET", 7738 headers: { Accept: "application/json" } 7739 }) 7740 .then((res) => res.json()) 7741 .then((cart) => { 7742 if (!cart || cart.item_count === 0) return; 7743 7744 const hiddenSubmit = document.querySelector(".js-hidden-submit"); 7745 if (hiddenSubmit) { 7746 sessionStorage.setItem("fr24_came_from_checkout_flow", "true"); 7747 hiddenSubmit.click(); 7748 } 7749 }) 7750 .catch(() => { 7751 const hiddenSubmit = document.querySelector(".js-hidden-submit"); 7752 if (hiddenSubmit) { 7753 sessionStorage.setItem("fr24_came_from_checkout_flow", "true"); 7754 hiddenSubmit.click(); 7755 } 7756 }); 7757 }); 7758})(); 7759</script>
7759 7760 7761<style> 7762.fr_24_upsell_minicart { 7763 margin: 0px 24px 0; 7764 padding: 20px 0 0; 7765 border-top: 1px solid #F1F5F9; 7766} 7767 7768.fr_24_upsell_minicart h2 { 7769 font-size: 18px; 7770 line-height: 1.3; 7771 color: #0f172a; 7772 font-weight: 700; 7773 font-size: 14px; 7774 line-height: 16px; 7775 text-wrap: auto; 7776 text-transform: capitalize; 7777 padding: 4px 12px 20px; 7778} 7779 7780.fr_24_upsell_products_container { 7781 display: grid; 7782 gap: 16px; 7783} 7784 7785.fr_24_upsell_product { 7786 display: grid; 7787 grid-template-columns: 84px 1fr; 7788 gap: 12px; 7789 align-items: start; 7790} 7791 7792.fr_24_upsell_product img { 7793 width: 84px; 7794 height: auto; 7795 display: block; 7796} 7797 7798.fr_24_upsell_product_name { 7799 margin-bottom: 10px; 7800 font-size: 14px; 7801 font-weight: 600; 7802 color: #0f172a; 7803} 7804 7805.fr_24_upsell_product_info_wrapper { 7806 display: flex; 7807 gap: 8px; 7808 align-items: center; 7809 flex-direction: column; 7810} 7811 7812.fr_24_upsell_product_dropdown { 7813 flex: 1; 7814} 7815 7816.fr_24_upsell_product_dropdown_select { 7817 width: 100%; 7818 min-height: 40px; 7819} 7820 7821.fr_24_upsell_addtocartbtn { 7822 min-height: 40px; 7823 padding: 0 14px; 7824 border: 0; 7825 background: #111827; 7826 color: #fff; 7827 cursor: pointer; 7828} 7829 7830#shopify-section-pop-cart .pop-cart { 7831 z-index: 9999999 7832} 7833 7834#shopify-section-pop-cart .pop-cart .pop-cart__footer .pop-cart__actions button { 7835 max-width: 100%; 7836 font-size: 15px; 7837 margin-top: 0px; 7838} 7839 7840#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart { 7841 padding: 12px; 7842 margin:0px; 7843} 7844 7845#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart h2 { 7846 font-weight: 700; 7847 font-size: 14px; 7848 line-height: 16px; 7849 text-wrap: auto; 7850 text-transform: capitalize 7851} 7852 7853#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_products_container { 7854 display: flex; 7855 overflow-x: auto; 7856 gap: 7px; 7857 padding: 0px 0px 0px 0px; 7858 cursor: grab; 7859 user-select: none; 7860} 7861 7862#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_products_container.is-dragging { 7863 cursor: grabbing; 7864 scroll-behavior: auto; 7865} 7866 7867#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_products_container::-webkit-scrollbar {
7868 display: none 7869} 7870 7871#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product_add { 7872 flex: 1; 7873 display: flex; 7874 justify-content: space-between; 7875 flex-direction: column; 7876 width:100%; 7877} 7878 7879#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_addtocartbtn { 7880 font-size: 11px; 7881 color: #fff; 7882 padding: 8px 15px; 7883 width: 100%; 7884 border-radius: 20px; 7885 border: none; 7886 background: #2576a2; 7887 font-weight: 500; 7888} 7889 7890span.fr_24_upsell_product_price_wrap { 7891 display: flex; 7892 gap: 6px; 7893 margin-top: 3px; 7894 justify-content: center; 7895} 7896 7897.fr_24_upsell_form { 7898 width: 100%; 7899} 7900 7901#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_addtocartbtn .fr_24_upsell_product_price .compare-at-price { 7902 -webkit-text-decoration: line-through; 7903 text-decoration: line-through 7904} 7905 7906#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_addtocartbtn .fr_24_upsell_product_price .savings { 7907 vertical-align: baseline !important; 7908 vertical-align: initial !important 7909} 7910 7911#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product_name { 7912 font-weight: 700; 7913 font-size: 12px; 7914 margin: 7px 0px 7915} 7916 7917#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product_dropdown { 7918 position: relative; 7919 font-size: 8px; 7920 font-weight: 400; 7921 width:100%; 7922} 7923 7924#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product > a { 7925 width: 100%; 7926} 7927 7928#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product > a > img { 7929 width: 100%; 7930} 7931 7932#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product_dropdown_select { 7933 border-radius: 22px; 7934 padding: 7px 18px 7px 5px; 7935 text-wrap: wrap; 7936 color: #000 7937} 7938 7939#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product_dropdown::after { 7940 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"); 7941 position: absolute; 7942 right: 10px; 7943 top: 50%; 7944 pointer-events: none 7945} 7946 7947#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product { 7948 min-width: 38%; 7949 max-width: 38%; 7950 background-color: #f4f3f1; 7951 border-radius: 5px; 7952 padding: 10px 7px; 7953 display: flex; 7954 flex-direction: column; 7955 justify-content: space-between 7956} 7957 7958#shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product img { 7959 max-width: 100%; 7960 aspect-ratio: 1/1 7961} 7962 7963#gladlyChat_container.preload { 7964 z-index: 999999 !important 7965} 7966 7967/* Castlery gift card promo */ 7968.castlery-gift-progress { 7969 margin: 12px; 7970 padding: 16px; 7971 border-radius: 10px; 7972 background: #f8f6f2; 7973 border: 1px solid #e7e1d6; 7974} 7975 7976.castlery-gift-progress h3 { 7977 font-size: 15px; 7978 line-height: 1.4; 7979 color: #0f172a; 7980 font-weight: 700; 7981 margin: 0 0 6px; 7982 text-wrap: auto; 7983} 7984 7985.castlery-gift-progress p { 7986 margin: 0; 7987 font-size: 13px; 7988 line-height: 1.5; 7989 color: #334155; 7990} 7991 7992.castlery-gift-progress__eyebrow { 7993 display: inline-flex; 7994 align-items: center; 7995 gap: 8px; 7996 font-size: 12px; 7997 font-weight: 700; 7998 color: #047857; 7999 text-transform: uppercase; 8000 margin-bottom: 4px; 8001} 8002 8003.castlery-gift-progress__title { 8004 display: block; 8005} 8006 8007.castlery-gift-progress__meta { 8008 display: flex; 8009 justify-content: space-between; 8010 gap: 12px; 8011 margin-top: 14px; 8012 margin-bottom: 8px; 8013 font-size: 11px; 8014 line-height: 1.4; 8015 font-weight: 700; 8016 color: #475569; 8017 text-transform: uppercase; 8018} 8019 8020.castlery-gift-progress__bar-wrap { 8021 position: relative; 8022 margin-top: 10px; 8023 padding-bottom: 0px; 8024} 8025 8026.castlery-gift-progress__bar {
8027 position: relative; 8028 height: 8px; 8029 border-radius: 999px; 8030 background: #E2E8F0; 8031 overflow: visible; 8032} 8033 8034.castlery-gift-progress__fill { 8035 display: block; 8036 height: 100%; 8037 background: linear-gradient(90deg, #e8ac5eff 0%, #FAAF4F 100%); 8038 border-radius: 999px; 8039} 8040 8041.castlery-gift-progress__marker { 8042 position: absolute; 8043 top: 50%; 8044 width: 14px; 8045 height: 14px; 8046 border-radius: 50%; 8047 background: #fff; 8048 border: 2px solid #94a3b8; 8049 transform: translate(-50%, -50%); 8050 z-index: 2; 8051} 8052 8053.castlery-gift-progress__marker.is-active { 8054 background: #f9af4f; 8055 border-color: #f9af4f; 8056} 8057 8058.castlery-gift-progress__labels { 8059 position: relative; 8060 margin-top: 12px; 8061 height: 34px; 8062} 8063 8064.castlery-gift-progress__label { 8065 position: absolute; 8066 top: 0; 8067 transform: translateX(-50%); 8068 text-align: center; 8069 min-width: 92px; 8070} 8071 8072.castlery-gift-progress__label strong { 8073 display: block; 8074 font-size: 12px; 8075 line-height: 1.2; 8076 color: #0f172a; 8077 font-weight: 700; 8078} 8079 8080.castlery-gift-progress__label span { 8081 display: block; 8082 margin-top: 2px; 8083 font-size: 11px; 8084 line-height: 1.2; 8085 color: #64748b; 8086} 8087 8088.castlery-gift-progress__label.is-active strong, 8089.castlery-gift-progress__label.is-active span { 8090 color: #df8f28; 8091} 8092 8093.castlery-gift-progress__label--500 { 8094 transform: translateX(-100%); 8095 text-align: right; 8096} 8097.castlery-earned-card h4 { 8098 font-size: 15px; 8099 margin: 0px; 8100 text-transform: capitalize; 8101} 8102.castlery-earned-card { 8103 margin: 0 12px 12px; 8104 padding: 12px 13px; 8105 border-radius: 12px; 8106 background: #faf7f2; 8107 border: 1px solid #eadfce; 8108 text-align: center; 8109} 8110 8111.castlery-earned-card__badge { 8112 display: inline-block; 8113 margin-bottom: 8px; 8114 padding: 4px 8px; 8115 border-radius: 999px; 8116 background: #efe7da; 8117 color: #6b4f2a; 8118 font-size: 11px; 8119 font-weight: 700; 8120 line-height: 1.2; 8121 text-transform: uppercase; 8122} 8123 8124.castlery-earned-card h3 { 8125 margin: 0 0 6px; 8126 font-size: 18px; 8127 line-height: 1.3; 8128 color: #0f172a; 8129} 8130 8131.castlery-earned-card p { 8132 margin: 5px 0px 0px; 8133 font-size: 13px; 8134 line-height: 1.2; 8135 color: #000; 8136} 8137.castlery-gift-progress__bar.green-col span.castlery-gift-progress__fill { 8138 background: linear-gradient(90deg, #10B981 0%, #10B981 100%); 8139} 8140.castlery-gift-progress__bar.green-col .castlery-gift-progress__marker.is-active { 8141 background: #10B981; 8142 border-color: #10B981; 8143} 8144.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 { 8145 color: #10B981; 8146} 8147.flooring-rug-progress { 8148 margin: 12px; 8149 padding: 16px; 8150 border-radius: 10px; 8151 background: #fdf8ee; 8152 border: 1px solid #f0e0b8; 8153} 8154.flooring-rug-progress h3 { 8155 font-size: 15px; 8156 line-height: 1.4; 8157 color: #0f172a; 8158 font-weight: 700; 8159 margin: 0 0 6px; 8160} 8161.flooring-rug-progress p { 8162 margin: 0; 8163 font-size: 13px; 8164 line-height: 1.5; 8165 color: #334155; 8166} 8167.flooring-rug-progress .unlockd-text { 8168 display: block; 8169} 8170.flooring-rug-progress__meta { 8171 display: flex; 8172 justify-content: space-between; 8173 gap: 12px; 8174 margin-top: 14px; 8175 margin-bottom: 8px; 8176 font-size: 11px; 8177 font-weight: 700; 8178 color: #475569; 8179 text-transform: uppercase; 8180} 8181.flooring-rug-progress__bar {
8182 position: relative; 8183 height: 8px; 8184 border-radius: 999px; 8185 background: #E2E8F0; 8186 overflow: hidden; 8187} 8188.flooring-rug-progress__fill { 8189 display: block; 8190 height: 100%; 8191 background: linear-gradient(90deg, #f0c069 0%, #FAAF4F 100%); 8192 border-radius: 999px; 8193} 8194/* Both locked states (no spend, or spend-met-no-rug) stay yellow â no extra rule needed, 8195 is-locked just doesn't override the default fill color above */ 8196.flooring-rug-progress.is-unlocked { 8197 background: #eefaf3; 8198 border-color: #b9e9cd; 8199} 8200.flooring-rug-progress.is-unlocked .flooring-rug-progress__fill { 8201 background: linear-gradient(90deg, #10B981 0%, #10B981 100%); 8202} 8203@media (min-width:768px){ 8204 #shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product_dropdown_select { 8205 border-radius: 22px; 8206 padding: 7px 18px 7px 10px; 8207 text-wrap: wrap; 8208 color: #000; 8209 font-size: 14px; 8210 } 8211} 8212@media (max-width:768px){ 8213 #shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product_dropdown_select { 8214 font-size: 12px; 8215 } 8216} 8217@media (max-width: 768px) { 8218 span.fr_24_upsell_product_price_wrap { 8219 flex-wrap: wrap; 8220 } 8221 8222 span.fr_24_upsell_product_price_wrap > .fr_24_upsell_product_discount { 8223 flex: 0 0 100%; 8224 width: 100%; 8225 text-align: center; 8226 } 8227 8228 .castlery-gift-progress { 8229 margin: 12px 16px 12px; 8230 } 8231 8232 .castlery-earned-card { 8233 margin: 0 16px 10px; 8234 } 8235 8236 .castlery-gift-progress__labels { 8237 height: 12px; 8238 } 8239 8240 .castlery-gift-progress__label { 8241 min-width: 78px; 8242 } 8243 8244 .castlery-gift-progress__label strong { 8245 font-size: 11px; 8246 } 8247 8248 .castlery-gift-progress__label span { 8249 font-size: 10px; 8250 } 8251} 8252@media only screen and (max-width: 400px) { 8253 #shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product_dropdown_select { 8254 font-size: 12px; 8255 padding: 7px 18px 7px 10px; 8256 } 8257 8258 .castlery-gift-progress__label { 8259 min-width: 70px; 8260 } 8261 8262 .castlery-gift-progress__label--500 { 8263 transform: translateX(-100%); 8264 } 8265} 8266 8267@media only screen and (max-width: 360px){ 8268 #shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product_dropdown_select { 8269 font-size: 10px 8270 } 8271 8272 #shopify-section-pop-cart .pop-cart .fr_24_upsell_minicart .fr_24_upsell_product { 8273 min-width: 42%; 8274 max-width: 42% 8275 } 8276 8277 .castlery-gift-progress__label strong { 8278 font-size: 10px; 8279 } 8280 8281 .castlery-gift-progress__label span { 8282 font-size: 9px; 8283 } 8284} 8285.pop-cart__upsell { 8286 margin: 0 16px 16px; 8287 padding-top: 12px; 8288 border-top: 1px solid #e5e7eb; 8289} 8290 8291.pop-cart__upsell-heading { 8292 margin: 0 0 12px; 8293 font-size: 20px; 8294 font-weight: 700; 8295 color: #0f172a; 8296} 8297 8298.pop-cart__upsell-wrap { 8299 position: relative; 8300} 8301 8302.pop-cart__upsell-scroll { 8303 display: flex; 8304 gap: 14px; 8305 overflow-x: auto; 8306 scroll-behavior: smooth; 8307 scroll-snap-type: x proximity; 8308 -webkit-overflow-scrolling: touch; 8309 padding-bottom: 4px; 8310} 8311 8312.pop-cart__upsell-scroll::-webkit-scrollbar { display: none; } 8313 8314.pop-cart__upsell-card { 8315 flex: 0 0 calc(33.333% - 10px); 8316 scroll-snap-align: start; 8317 text-decoration: none; 8318 color: inherit; 8319 display: block; 8320 text-align:center; 8321} 8322 8323.pop-cart__upsell-media { 8324 width: 100%; 8325 aspect-ratio: 1 / 1; 8326 border-radius: 8px; 8327 overflow: hidden; 8328 background: #f1f5f9; 8329 margin-bottom: 8px; 8330} 8331 8332.pop-cart__upsell-media img { 8333 width: 100%; 8334 height: 100%; 8335 object-fit: cover; 8336 display: block; 8337} 8338 8339.pop-cart__upsell-title { 8340 font-size: 13px; 8341 font-weight: 500; 8342 color: #0f172a; 8343 line-height: 1.35; 8344 margin-bottom: 2px; 8345} 8346 8347.pop-cart__upsell-price { 8348 font-size: 13px; 8349 color: #475569; 8350} 8351 8352.pop-cart__upsell-nav { 8353 position: absolute; 8354 top: 35%; 8355 transform: translateY(-50%); 8356 width: 32px; 8357 height: 32px; 8358 border-radius: 50%; 8359 background: #fff; 8360 border: 1px solid #e2e8f0; 8361 box-shadow: 0 2px 6px rgba(0,0,0,.12); 8362 display: flex; 8363 align-items: center; 8364 justify-content: center; 8365 cursor: pointer; 8366 color: #0f172a; 8367 padding: 0; 8368} 8369
8370.pop-cart__upsell-nav--prev { left: -6px; } 8371.pop-cart__upsell-nav--next { right: -6px; } 8372 8373@media (max-width: 480px) { 8374 .pop-cart__upsell-card { flex: 0 0 calc(50% - 7px); } 8375} 8376</style> 8377 8378<style> 8379.free-rug-progress { 8380 margin: 12px; 8381 padding: 16px; 8382 border-radius: 10px; 8383 background: #fdf8ee; 8384 border: 1px solid #f0e0b8; 8385} 8386.free-rug-progress h3 { 8387 font-size: 15px; 8388 line-height: 1.4; 8389 color: #0f172a; 8390 font-weight: 700; 8391 margin: 0 0 6px; 8392 text-wrap: auto; 8393} 8394.free-rug-progress h3 span { 8395 display: inline-flex; 8396 align-items: center; 8397 gap: 8px; 8398} 8399.free-rug-progress p { 8400 margin: 0; 8401 font-size: 13px; 8402 line-height: 1.5; 8403 color: #334155; 8404} 8405.free-rug-progress__meta { 8406 display: flex; 8407 justify-content: space-between; 8408 gap: 12px; 8409 margin-top: 14px; 8410 margin-bottom: 8px; 8411 font-size: 11px; 8412 font-weight: 700; 8413 color: #475569; 8414 text-transform: uppercase; 8415} 8416.free-rug-progress__bar { 8417 position: relative; 8418 height: 8px; 8419 border-radius: 999px; 8420 background: #E2E8F0; 8421 overflow: hidden; 8422} 8423.free-rug-progress__fill { 8424 display: block; 8425 height: 100%; 8426 background: linear-gradient(90deg, #f0c069 0%, #FAAF4F 100%); 8427 border-radius: 999px; 8428} 8429.free-rug-progress.is-unlocked { 8430 background: #eefaf3; 8431 border-color: #b9e9cd; 8432} 8433.free-rug-progress.is-unlocked .free-rug-progress__fill { 8434 background: linear-gradient(90deg, #10B981 0%, #10B981 100%); 8435} 8436@media (max-width: 768px) { 8437 .free-rug-progress { margin: 12px 16px; } 8438} 8439</style> 8440 8441</div> 8442 8443 <div id="shopify-section-site-search" class="shopify-section"><div class="site-search js-site-search"> 8444 <div class="site-search__bar" id="predictive-search"> 8445 <div class="container container--large"> 8446 <form class="js-site-search__form" action="/search" method="get" role="search"> 8447 <input type="text" class="js-site-search__input" id="search" name="q" placeholder="Search..."> 8448 <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"> 8449 <path d="M15.1421 1.00151L0.999954 15.1436" stroke="#111111" stroke-width="1.5" stroke-linecap="round"/> 8450 <path d="M15.1421 15.1421L0.999955 0.999999" stroke="#111111" stroke-width="1.5" stroke-linecap="round"/> 8451</svg> </button> 8452 <button type="submit" class="hidden">Submit</button> 8453 </form> 8454 </div> 8455 </div> 8456 8457 <div class="site-search__results js-site-search__results" id="predictive-search-results"> 8458 <div class="container container--large"> 8459 8460 </div> 8461 </div> 8462</div> 8463</div> 8464 8465 <div class="pdm-lightbox pdm-lightbox--reset"> 8466 <div class="pdm-lightbox__container"> 8467 <button class="pdm-lightbox__close" type="button">Close Popup</button> 8468 <div class="pdm-lightbox__content"></div> 8469 </div> 8470</div> 8471 8472 8473<div class="pdm-lightbox product-addsamplepopup"> 8474 <div class="pdm-lightbox__container"> 8475 <button class="pdm-lightbox__close" type="button">Close Popup</button> 8476 <div class="pdm-lightbox__content"></div> 8477 </div> 8478</div> 8479 8480 8481<div class="pdm-lightbox gallerypopup"> 8482 <div class="pdm-lightbox__container"> 8483 <button class="pdm-lightbox__close" type="button">Close Popup</button> 8484 <div class="pdm-lightbox__content"></div> 8485 </div> 8486</div> 8487 8488 8489 8490 8491<div id="quick-view-modal" style="display:none;" class="quick-view-modal" data-product-handle=""> 8492 <div class="quick-view-modal__content"> 8493 <div class="quick-view-loader"></div> 8494 <button class="quick-view-modal__close">×</button> 8495 <div class="quick-view-product"> 8496 <div class="quick-view-product__images"> 8497 </div> 8498 <div class="quick-view-product__info"> 8499 <div class="wrap-quick-view"> 8500 <h2 class="quick-view-product__title"> 8501 </h2> 8502 <div class="quick-view-product__price"> 8503 <span><span class=main-price price js-product__price></span></span> 8504 <span>(for box)</span> 8505 </div> 8506 </div> 8507 <form id="quick-view-add-to-cart-form" action="/cart/add" method="post" enctype="multipart/form-data"> 8508 8509 <div class="quick-view-product__variants"> 8510 </div> 8511 8512 8513 <input type="hidden" name="id" class="quick-view-product__variant-id"> 8514 <button type="submit" class="quick-view-product__add-to-cart">Add Sample</button> 8515 <a href="#" class="quick-view-product__view-details">View Details</a> 8516 8517 </form> 8518 8519 </div> 8520 </div> 8521 </div> 8522</div> 8523 8524 8525 8526<style> 8527 #quick-view-modal.provence-natural-hardwood .quick-view-product__price { 8528 display: none; 8529 } 8530 .quick-view-modal { 8531 position: fixed; 8532 z-index: 1000; 8533 left: 0; 8534 top: 0; 8535 width: 100%; 8536 height: 100%; 8537 overflow: auto; 8538 background-color: rgb(0 0 0 / 94%); 8539 display: flex; 8540 align-items: center; 8541 justify-content: center; 8542 } 8543 8544 8545 .quick-view-modal__content { 8546 background-color: #fefefe; 8547 margin: auto; 8548 padding: 30px; 8549 border: 1px solid #888; 8550 width: 80%; 8551 max-width: 1180px; 8552 8553 border-radius: 40px; 8554 height: 700px; 8555 overflow-y: auto; 8556 } 8557 8558 8559 .quick-view-modal__close { 8560 color: #aaa; 8561 position: absolute; 8562 top: 10px; 8563 right: 20px; 8564 font-size: 28px; 8565 font-weight: bold; 8566 border: none; 8567 background: none; 8568 cursor: pointer; 8569 background: #fff; 8570 z-index: 1; 8571 padding: 0px; 8572 line-height: 1; 8573 height: 17px; 8574 width: 17px; 8575 display: flex; 8576 align-items: center; 8577 justify-content: center; 8578 } 8579 8580 8581 .quick-view-modal__close:hover, 8582 .quick-view-modal__close:focus { 8583 color: black; 8584 text-decoration: none; 8585 cursor: pointer; 8586 } 8587 8588 8589 .quick-view-product { 8590 display: flex; 8591 gap: 20px; 8592 } 8593 8594 8595 .quick-view-product__images { 8596 width: 50%; 8597 overflow: hidden; 8598 position:relative; 8599 } 8600 8601 8602 .quick-view-product__images .slick-track { 8603 display: flex; 8604 } 8605 8606 8607 .quick-view-product__images img { 8608 max-width: 100%; 8609 height: auto; 8610 margin-bottom: 10px; 8611 width: 100%; 8612 } 8613 8614 8615 .quick-view-product__info { 8616 width: 50%; 8617 padding-top: 50px; 8618 } 8619 8620 8621 .quick-view-product__variants .quick-view-product__option { 8622 margin-bottom: 15px; 8623 } 8624 8625 8626 .quick-view-product__price > span:nth-child(2) { 8627 display: none; 8628 } 8629 8630 8631 .quick-view-product__price.is-box-variant > span:nth-child(2) { 8632 display: block; 8633 } 8634 8635 .quick-view-product__add-to-cart, .quick-view-product__view-details { 8636 display: inline-flex; 8637 margin-top: 0px; 8638 padding: .75rem .5rem; 8639 text-decoration: none; 8640 color: #fff; 8641 border: 1px solid #000; 8642 cursor: pointer; 8643 border-radius: 25px; 8644 width: 42%; 8645 align-items: center; 8646 justify-content: center; 8647 min-height: 47px; 8648 } 8649 8650 8651 .quick-view-product__add-to-cart { 8652 background:#000; 8653 color:#fff; 8654 } 8655 .quick-view-product__add-to-cart:hover { 8656 background:#fff; 8657 color:#000; 8658 } 8659 .quick-view-product__view-details { 8660 background:#fff; 8661 color:#000; 8662 } 8663 .quick-view-product__view-details:hover { 8664 background:#000; 8665 color:#fff; 8666 } 8667 8668 8669 .quick-view-product__view-details { 8670 /* background-color: #555; */ 8671 margin-left: 10px; 8672 } 8673 h4.quick-view-option-title { 8674 font-size: 14px; 8675 margin: 0px; 8676 } 8677 8678 8679 h4.quick-view-option-title + .pdp-atc__group__buttons { 8680 margin: 5px 0px 20px; 8681 } 8682 8683 8684 h4.quick-view-option-title:nth-child(1) { 8685 margin-top: 25px; 8686 } 8687 h2.quick-view-product__title { 8688 font-size: 1.75rem; 8689 line-height: 1 !important; 8690 padding-bottom: 8px !important; 8691 text-align: start !important; 8692 font-weight: 600; 8693 } 8694 8695 8696 .quick-view-product__price { 8697 display: flex; 8698 flex-direction: column; 8699 align-items: center; 8700 } 8701 8702 8703 .wrap-quick-view { 8704 display: flex; 8705 align-items: center; 8706 justify-content: space-between; 8707 } 8708 8709 8710 .quick-view-product__price > span:nth-child(1) { 8711 font-weight: 600; 8712 } 8713 8714 8715 .quick-view-product__price > span:nth-child(2) { 8716 text-wrap: nowrap; 8717 font-weight: 100; 8718 font-size: 14px; 8719 } 8720 button.quick-view-btn { 8721 display: inline-block; 8722 text-decoration: none; 8723 border-radius: 2rem; 8724 transition: all .3s ease; 8725 color: #000000; 8726 background: #fff; 8727 cursor: pointer; 8728 border: 1px solid #000000; 8729 min-width: 130px; 8730 font-family: Montserrat; 8731 font-weight: 500; 8732 font-style: Medium; 8733 font-size: 14px !important; 8734 line-height: 20px; 8735 letter-spacing: -0.15px; 8736 padding: 0px 0px !important; 8737 min-height: 48px; 8738 } 8739 button.quick-view-btn:hover { 8740 background: #000; 8741 color: #fff; 8742 } 8743 /* Spinner for loading state */ 8744 .quick-view-loader { 8745 border: 4px solid #f3f3f3; /* Light grey */
8746 border-top: 4px solid #3498db; /* Blue */ 8747 border-radius: 50%; 8748 width: 40px; 8749 height: 40px; 8750 animation: spin 1s linear infinite; 8751 position: absolute; 8752 top: calc(50% - 20px); 8753 left: calc(50% - 20px); 8754 display: none; /* Hidden by default */ 8755 } 8756 8757 8758 8759 .quick-view-product__variants .pdp-atc__groups .pdp-atc__group__buttons li input + label { 8760 display: -webkit-box; 8761 display: -ms-flexbox; 8762 display: flex; 8763 align-items: start; 8764 padding: .5rem 1rem; 8765 border: 1px solid #acacac; 8766 border-radius: 3px; 8767 background-color: #fff; 8768 margin: .25rem auto; 8769 flex-direction: column; 8770 } 8771 8772 8773 .quick-view-product__variants .pdp-atc__groups .pdp-atc__group__buttons li input + label ul.product-option__meta { 8774 margin: 0px; 8775 padding: 0px; 8776 width: 100%; 8777 display: flex; 8778 gap: 8px; 8779 } 8780 8781 8782 .quick-view-product__variants .pdp-atc__groups .pdp-atc__group__buttons li input + label > span { 8783 display: block; 8784 width: 100%; 8785 font-size: 1rem; 8786 font-weight: 700; 8787 } 8788 8789 8790 .quick-view-product__variants .pdp-atc__groups .pdp-atc__group__buttons li input + label > span ul.product-option__meta { 8791 margin: 0px; 8792 padding: 0px; 8793 } 8794 8795 8796 .quick-view-product__variants .pdp-atc__groups .pdp-atc__group__buttons li input + label ul.product-option__meta li { 8797 color: #717171; 8798 font-size: 12.8px; 8799 } 8800 .quick-view-product__variants .pdp-atc__groups .pdp-atc__group__buttons li input + label ul.product-option__meta li { 8801 text-wrap-mode: nowrap; 8802 } 8803 .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;} 8804 8805 8806 .quick-view-product__images .slick-button.slick-arrow { 8807 position: absolute; 8808 top: 50%; 8809 z-index: 999; 8810 } 8811 8812 8813 .quick-view-product__images .button-prev { 8814 left: 0; 8815 } 8816 8817 8818 .quick-view-product__images .button-next { 8819 right: 0; 8820 } 8821 8822 8823 @keyframes spin { 8824 0% { transform: rotate(0deg); } 8825 100% { transform: rotate(360deg); } 8826 } 8827 8828 8829 #quick-view-modal.quick-view--loading .quick-view-product { 8830 visibility: hidden; 8831 opacity: 0; 8832 } 8833 #quick-view-modal.quick-view--loading .quick-view-loader { 8834 display: block; 8835 } 8836 8837 8838 #quick-view-modal.quick-view--loaded .quick-view-product { 8839 visibility: visible; 8840 opacity: 1; 8841 transition: opacity 0.3s ease-in-out; 8842 } 8843 8844 8845 .quick-view-modal .js-product-form__group.pdp-atc__group--type { 8846 display: none; 8847 } 8848 8849 8850 @media (max-width:768px){ 8851 8852 8853 .quick-view-product__info{ 8854 padding-top:0px; 8855 } 8856 .quick-view-modal__content { 8857 padding: 40px 15px 15px; 8858 width: 95%; 8859 border-radius: 4px; 8860 } 8861 .quick-view-product__images .slick-arrow svg { 8862 width: 25px; 8863 height: 25px; 8864 } 8865 8866 button.quick-view-btn { 8867 font-family: Montserrat; 8868 font-weight: 500; 8869 font-size: 12px !important; 8870 line-height: 20px; 8871 letter-spacing: -0.15px; 8872 min-height: 28px !important; 8873 width: 100%; 8874 } 8875 .quick-view-product { 8876 flex-direction: column; 8877 } 8878 .quick-view-product__images { 8879 width: 100%; 8880 } 8881 8882 .quick-view-product__info { 8883 width: 100%; 8884 } 8885 } 8886 @media (max-height: 700px) { 8887 .quick-view-modal__content { 8888 padding-bottom: 20%; 8889 } 8890 } 8891 8892 8893 8894</style> 8895 8896 8897
8898<script> 8899 document.querySelector('.quick-view-product__view-details').addEventListener('click', ()=>{ 8900 window.location = document.querySelector('.quick-view-product__view-details').getAttribute('href') 8901}) 8902</script>
8902 8903
8904<script> 8905// Make core refs/functions globally reachable 8906window.quickView = (function () { 8907 let modal, isUpdating = false; 8908 let currentProductData = null; 8909 let currentMetaObjectPrices = null; 8910 let currentCollectionClass = null; 8911 8912 8913 function init() { 8914 modal = document.getElementById('quick-view-modal'); 8915 if (!modal) return; 8916 8917 8918 const closeModalBtn = modal.querySelector('.quick-view-modal__close'); 8919 closeModalBtn?.addEventListener('click', closeAndResetModal); 8920 window.addEventListener('click', (e) => { if (e.target === modal) closeAndResetModal(); }); 8921 8922 8923 // Delegated click survives DOM swaps from filter/sort 8924 document.addEventListener('click', (e) => { 8925 const btn = e.target.closest('.quick-view-btn'); 8926 if (!btn) return; 8927 const handle = btn.dataset.productHandle; 8928 if (handle) openQuickView(handle); 8929 }); 8930 } 8931 8932 8933 // NEW: swap the collection class on the modal, removing whatever was there before 8934 function setCollectionClass(cls) { 8935 if (!modal) return; 8936 if (currentCollectionClass) modal.classList.remove(currentCollectionClass); 8937 currentCollectionClass = (cls && String(cls).trim()) ? String(cls).trim() : null; 8938 if (currentCollectionClass) modal.classList.add(currentCollectionClass); 8939 } 8940 8941 8942 function openQuickView(handle) { 8943 if (!modal) return; 8944 modal.classList.add('quick-view--loading'); 8945 modal.classList.remove('quick-view--loaded'); 8946 modal.style.display = 'flex'; 8947 document.documentElement.classList.add('quick-view-is-open'); 8948 8949 8950 // NEW: clear any leftover class from the previously opened product 8951 setCollectionClass(null); 8952 8953 8954 fetch(`/products/${handle}.js`) 8955 .then(r => r.json()) 8956 .then(productJson => { 8957 currentProductData = productJson; 8958 8959 8960 const preloadedData = window.quickViewData?.[handle] || null; 8961 currentMetaObjectPrices = preloadedData ? preloadedData.metaobject_prices : {}; 8962 8963 8964 // NEW: apply the collection class for this product 8965 setCollectionClass(preloadedData ? preloadedData.collection_class : null); 8966 8967 8968 populateQuickView(productJson, preloadedData ? preloadedData.html : null); 8969 console.log('------------'); 8970 console.log(currentProductData); 8971 console.log('%cQV collection class:', 'color: magenta; font-weight: bold;', currentCollectionClass); 8972 }) 8973 .catch(err => { 8974 console.error('Quick view fetch error', err); 8975 closeAndResetModal(); 8976 }); 8977 } 8978 8979 8980 function buildImages(product, prevArrowHTML, nextArrowHTML) { 8981 const wrap = modal.querySelector('.quick-view-product__images'); 8982 if (!wrap) return; 8983 8984 8985 // Clean re-init of Slick 8986 if ($(wrap).hasClass('slick-initialized')) $(wrap).slick('unslick'); 8987 wrap.innerHTML = product.media 8988 .filter(m => m.media_type === 'image') 8989 .map(m => `<div class="pro-img" data-media-id="${m.id}"><img src="${m.src}" alt="${m.alt || product.title}"></div>`) 8990 .join(''); 8991 8992 8993 const count = product.media.filter(m => m.media_type === 'image').length; 8994 if (count > 1) { 8995 $(wrap) 8996 .one('init', () => { 8997 modal.classList.remove('quick-view--loading'); 8998 modal.classList.add('quick-view--loaded'); 8999 }) 9000 .slick({ 9001 infinite: false, 9002 arrows: false, 9003 prevArrow: prevArrowHTML, 9004 nextArrow: nextArrowHTML, 9005 slidesToShow: 1, 9006 slidesToScroll: 1 9007 }); 9008 } else { 9009 modal.classList.remove('quick-view--loading'); 9010 modal.classList.add('quick-view--loaded'); 9011 } 9012 } 9013 9014 9015 function populateQuickView(product, html) { 9016 const prevArrowHTML = ` 9017 <div class="button-prev slick-button">â¦</div> 9018 `; 9019 const nextArrowHTML = ` 9020 <div class="button-next slick-button">â¦</div> 9021 `; 9022 9023 9024 buildImages(product, prevArrowHTML, nextArrowHTML); 9025 9026 9027 modal.querySelector('.quick-view-product__title').textContent = product.title; 9028 9029 9030 // (You still have this line; it shows product.price initially, then updateVariantState overwrites it) 9031 modal.querySelector('.quick-view-product__price .main-price').textContent = 9032 new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(product.price / 100); 9033 9034 9035 modal.querySelector('.quick-view-product__view-details').href = product.url; 9036 9037 9038 const variantsContainer = modal.querySelector('.quick-view-product__variants'); 9039 variantsContainer.innerHTML = html || '<p style="color:red;text-align:center;">Error: Variant options could not be loaded.</p>'; 9040 9041 9042 setupVariantSelection(); 9043 } 9044 9045 9046 function setupVariantSelection() { 9047 modal.querySelectorAll('.quick-view-product__variants .js-product-form__group').forEach(group => { 9048 const firstRadio = group.querySelector('input[type="radio"]'); 9049 if (firstRadio) firstRadio.checked = true; 9050 }); 9051 modal.querySelectorAll('.quick-view-product__variants input[type="radio"]').forEach(radio => { 9052 radio.addEventListener('change', () => updateVariantState()); 9053 });
9054 updateVariantState(); 9055 } 9056 9057 9058 // Helper: find option index by option name (Model can be option1 or option2) 9059 // Supports productData.options as ["Model","Type"] OR [{name:"Model"}, {name:"Type"}] 9060 function getOptionIndexByName(productData, optionName) { 9061 const opts = (productData && Array.isArray(productData.options)) ? productData.options : []; 9062 const target = (optionName || '').toLowerCase(); 9063 9064 9065 for (let i = 0; i < opts.length; i++) { 9066 const o = opts[i]; 9067 9068 9069 if (typeof o === 'string') { 9070 if (o.toLowerCase() === target) return i; 9071 continue; 9072 } 9073 9074 9075 if (o && typeof o === 'object') { 9076 const name = (o.name != null) ? String(o.name).toLowerCase() : ''; 9077 if (name === target) return i; 9078 } 9079 } 9080 return -1; 9081 } 9082 9083 9084 // FULL: metaobject fallback + logs 9085 function updateVariantState() { 9086 console.log('%c=== QV updateVariantState() START ===', 'color: blue; font-weight: bold;'); 9087 9088 9089 if (isUpdating) { 9090 console.log('%cQV blocked (isUpdating=true)', 'color: orange; font-weight: bold;'); 9091 return; 9092 } 9093 isUpdating = true; 9094 9095 9096 try { 9097 if (!modal) { 9098 console.warn('%cQV modal missing', 'color: red; font-weight: bold;'); 9099 return; 9100 } 9101 if (!currentProductData) { 9102 console.warn('%cQV currentProductData missing', 'color: red; font-weight: bold;'); 9103 return; 9104 } 9105 9106 9107 const selectedOptions = Array 9108 .from(modal.querySelectorAll('.quick-view-product__variants input[type="radio"]:checked')) 9109 .map(r => r.value); 9110 9111 9112 console.log('%cQV selectedOptions:', 'color: purple; font-weight: bold;', selectedOptions); 9113 console.log('%cQV product handle:', 'color: purple; font-weight: bold;', currentProductData.handle); 9114 console.log('%cQV product options (raw):', 'color: purple; font-weight: bold;', currentProductData.options); 9115 9116 9117 const selectedVariant = (currentProductData.variants || []).find(v => 9118 selectedOptions.every((opt, i) => v.options[i] === opt) 9119 ); 9120 9121 9122 console.log('%cQV selectedVariant:', 'color: teal; font-weight: bold;', selectedVariant); 9123 9124 9125 const variantIdInput = modal.querySelector('.quick-view-product__variant-id'); 9126 const addToCartButton = modal.querySelector('.quick-view-product__add-to-cart'); 9127 const priceContainer = modal.querySelector('.quick-view-product__price'); 9128 const priceDisplay = modal.querySelector('.quick-view-product__price .main-price'); 9129 9130 9131 console.log('%cQV DOM found:', 'color: gray; font-weight: bold;', { 9132 variantIdInput: !!variantIdInput, 9133 addToCartButton: !!addToCartButton, 9134 priceContainer: !!priceContainer, 9135 priceDisplay: !!priceDisplay 9136 }); 9137 9138 9139 if (!priceDisplay) return; 9140 9141 9142 if (selectedVariant) { 9143 // Basic wiring 9144 if (variantIdInput) variantIdInput.value = selectedVariant.id; 9145 9146 9147 // 1) Variant metafields (dollars as strings) 9148 const variantMeta = (window.variantMetafields || {})[selectedVariant.id] || {}; 9149 const rawSqftPrice = variantMeta.sqft_price; 9150 const rawSqftCompare = variantMeta.sqft_compare_at_price; 9151 9152 9153 const variantSqftPriceCents = 9154 rawSqftPrice && !isNaN(parseFloat(rawSqftPrice)) 9155 ? Math.round(parseFloat(rawSqftPrice) * 100) 9156 : 0; 9157 9158 9159 const variantSqftCompareCents = 9160 rawSqftCompare && !isNaN(parseFloat(rawSqftCompare)) 9161 ? Math.round(parseFloat(rawSqftCompare) * 100) 9162 : 0; 9163 9164 9165 console.log('%cQV variantMeta:', 'color: brown; font-weight: bold;', variantMeta); 9166 console.log('%cQV variantSqft cents:', 'color: brown; font-weight: bold;', { 9167 rawSqftPrice, 9168 rawSqftCompare, 9169 variantSqftPriceCents, 9170 variantSqftCompareCents 9171 }); 9172 9173 9174 // 1.5) Metaobject fallback (CENTS) from window.quickViewData[handle].metaobject_prices[modelValue] 9175 const modelIdx = getOptionIndexByName(currentProductData, 'Model'); 9176 const modelValue = 9177 (modelIdx > -1 && selectedVariant.options && selectedVariant.options[modelIdx]) 9178 ? selectedVariant.options[modelIdx] 9179 : ''; 9180 9181 9182 // Prefer preloaded quickViewData but also allow currentMetaObjectPrices 9183 const qvHandle = currentProductData.handle; 9184 const qv = (window.quickViewData && window.quickViewData[qvHandle]) ? window.quickViewData[qvHandle] : null; 9185 const metaPricesMap = (qv && qv.metaobject_prices) ? qv.metaobject_prices : currentMetaObjectPrices; 9186 9187
9188 const keyRaw = modelValue || ''; 9189 const moPrices = metaPricesMap ? (metaPricesMap[keyRaw] || null) : null; 9190 9191 9192 console.log('%cQV metaobject lookup:', 'color: darkgreen; font-weight: bold;', { 9193 modelIdx, 9194 modelValue, 9195 keyRaw, 9196 hasQuickViewData: !!qv, 9197 metaKeys: metaPricesMap ? Object.keys(metaPricesMap) : [], 9198 moPrices 9199 }); 9200 9201 9202 // Metaobject prices must be cents in JS: { price_cents, compare_cents } 9203 const metaSqftPriceCents = 9204 (moPrices && moPrices.price_cents != null && moPrices.price_cents !== '') 9205 ? Number(moPrices.price_cents) 9206 : 0; 9207 9208 9209 const metaSqftCompareCents = 9210 (moPrices && moPrices.compare_cents != null && moPrices.compare_cents !== '') 9211 ? Number(moPrices.compare_cents) 9212 : 0; 9213 9214 9215 console.log('%cQV meta cents:', 'color: darkgreen; font-weight: bold;', { 9216 metaSqftPriceCents, 9217 metaSqftCompareCents 9218 }); 9219 9220 9221 // 2) Final price/compare in cents: 9222 // Variant metafields -> Metaobject -> 0 (NO fallback to variant.price) 9223 let priceInCents = 9224 variantSqftPriceCents > 0 9225 ? variantSqftPriceCents 9226 : (metaSqftPriceCents > 0 ? metaSqftPriceCents : 0); 9227 9228 9229 let comparePriceInCents = 9230 variantSqftCompareCents > 0 9231 ? variantSqftCompareCents 9232 : (metaSqftCompareCents > 0 ? metaSqftCompareCents : 0); 9233 9234 9235 console.log('%cQV final cents:', 'color: teal; font-weight: bold;', { 9236 priceInCents, 9237 comparePriceInCents 9238 }); 9239 9240 9241 // 3) Render HTML 9242 const priceFormatted = new Intl.NumberFormat('en-US', { 9243 style: 'currency', 9244 currency: 'USD' 9245 }).format(priceInCents / 100); 9246 9247 9248 let priceHtml = `<span class='p-r-ice'>${priceFormatted}`; 9249 9250 9251 if (comparePriceInCents > priceInCents && comparePriceInCents > 0) { 9252 const compareFormatted = new Intl.NumberFormat('en-US', { 9253 style: 'currency', 9254 currency: 'USD' 9255 }).format(comparePriceInCents / 100); 9256 9257 9258 const pct = Math.round(((comparePriceInCents - priceInCents) / comparePriceInCents) * 100); 9259 priceHtml += ` <del>${compareFormatted}</del> <span class="sqft-text">per sq ft</span> <span class="off-percent">${pct}% Off</span>`; 9260 } else { 9261 priceHtml += ' <span class="sqft-text">per sq ft</span>'; 9262 } 9263 9264 9265 priceHtml += '</span>'; 9266 priceDisplay.innerHTML = priceHtml; 9267 9268 9269 console.log('%cQV rendered priceHtml:', 'color: green; font-weight: bold;', priceHtml); 9270 9271 9272 // 4) Box label + ATC button 9273 const isBoxVariant = selectedOptions.some(o => (o || '').toLowerCase() === 'box'); 9274 if (priceContainer) priceContainer.classList.toggle('is-box-variant', isBoxVariant); 9275 9276 9277 console.log('%cQV isBoxVariant:', 'color: gray; font-weight: bold;', isBoxVariant); 9278 9279 9280 if (addToCartButton) { 9281 addToCartButton.textContent = selectedVariant.available ? 'Add Sample' : 'Sold Out'; 9282 addToCartButton.disabled = !selectedVariant.available; 9283 } 9284 9285 9286 // 5) Sync gallery image (unchanged) 9287 if (selectedVariant.featured_media?.id) { 9288 const target = modal.querySelector(`.pro-img[data-media-id="${selectedVariant.featured_media.id}"]`); 9289 if (target) { 9290 const slide = target.closest('.slick-slide'); 9291 const idx = $(slide).data('slick-index'); 9292 if (idx !== undefined) { 9293 $('.quick-view-product__images').slick('slickGoTo', idx, true); 9294 } 9295 } 9296 } 9297 } else { 9298 console.warn('%cQV No matching variant for selectedOptions', 'color: orange; font-weight: bold;', selectedOptions); 9299 9300 9301 if (variantIdInput) variantIdInput.value = ''; 9302 if (addToCartButton) { 9303 addToCartButton.textContent = 'Unavailable'; 9304 addToCartButton.disabled = true; 9305 } 9306 if (priceContainer) priceContainer.classList.remove('is-box-variant'); 9307 } 9308 9309 9310 updateOptionAvailability(); 9311 } finally { 9312 isUpdating = false;
9313 console.log('%c=== QV updateVariantState() END ===', 'color: blue; font-weight: bold;'); 9314 } 9315 } 9316 9317 9318 function updateOptionAvailability() { 9319 const optionGroups = modal.querySelectorAll('.quick-view-product__variants .js-product-form__group'); 9320 const selectedOptions = Array.from(modal.querySelectorAll('.quick-view-product__variants input[type="radio"]:checked')).map(r => r.value); 9321 9322 9323 optionGroups.forEach((group, groupIndex) => { 9324 const radios = group.querySelectorAll('input[type="radio"]'); 9325 radios.forEach(radio => { 9326 const test = [...selectedOptions]; 9327 test[groupIndex] = radio.value; 9328 const match = currentProductData?.variants?.find(v => test.every((opt, i) => v.options[i] === opt)); 9329 const optionEl = radio.closest('li') || radio.parentElement; 9330 if (match && match.available) { 9331 optionEl.style.display = ''; 9332 radio.disabled = false; 9333 } else { 9334 optionEl.style.display = 'none'; 9335 radio.disabled = true; 9336 if (radio.checked) radio.checked = false; 9337 } 9338 }); 9339 9340 9341 const checked = group.querySelector('input[type="radio"]:checked'); 9342 if (!checked) { 9343 const firstAvailable = group.querySelector('input[type="radio"]:not(:disabled)'); 9344 if (firstAvailable) { 9345 firstAvailable.checked = true; 9346 firstAvailable.dispatchEvent(new Event('change', { bubbles: true })); // triggers updateVariantState 9347 } 9348 } 9349 }); 9350 } 9351 9352 9353 function closeAndResetModal() { 9354 const $wrap = $('.quick-view-product__images'); 9355 if ($wrap.hasClass('slick-initialized')) $wrap.slick('unslick'); 9356 9357 9358 // NEW: drop the collection class so it doesn't leak into the next product 9359 setCollectionClass(null); 9360 9361 9362 modal.style.display = 'none'; 9363 document.documentElement.classList.remove('quick-view-is-open'); 9364 modal.classList.remove('quick-view--loading', 'quick-view--loaded'); 9365 } 9366 9367 9368 // expose only what is needed 9369 return { init, openQuickView }; 9370})(); 9371 9372 9373// Initialize once on page load 9374document.addEventListener('DOMContentLoaded', () => { 9375 window.quickView.init(); 9376}); 9377</script>
9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387
9387<script defer src="//www.flooret.com/cdn/shop/t/125/assets/jquery-3.3.1.min.js?v=37498620508928320191775037866"></script>
9387<script defer src="//www.flooret.com/cdn/shopifycloud/storefront/assets/themes_support/api.jquery-7ab1a3a4.js"></script>
9387 9388 9389
9389<script type="text/javascript" src="https://cdn.roomvo.com/static/scripts/b2b/flooret.js" async></script>
9389 9390 9391 9392
9392<script defer src="//www.flooret.com/cdn/shop/t/125/assets/theme.min.js?v=55372478134099235641788247093"></script>
9392 9393
9393<script defer src="//www.flooret.com/cdn/shop/t/125/assets/vendor.min.js?v=89093744200730767801775037889"></script>
9393 9394 9395
9395<script defer src="//www.flooret.com/cdn/shop/t/125/assets/slick.min.js?v=174105044941521274161775037884"></script>
9395 9396 9397
9397<script src="//embed.typeform.com/next/embed.js"></script>
9397 9398 9399
9399<script src="https://cdn.attn.tv/flooret/dtag.js"></script>
9399 9400 9401 9402 9403
9403<script> 9404 !(function (c, n, r, t) { 9405 if (!c[r]) { 9406 var i, 9407 d, 9408 p = []; 9409 (d = 9410 'PROD' !== t && t 9411 ? 'STAGING' === t 9412 ? 'https://cdn.gladly.qa/gladly/chat-sdk/widget.js' 9413 : t 9414 : 'https://cdn.gladly.com/chat-sdk/widget.js'), 9415 (c[r] = { 9416 init: function () { 9417 i = arguments; 9418 var e = { 9419 then: function (t) { 9420 return p.push({ type: 't', next: t }), e; 9421 }, 9422 catch: function (t) { 9423 return p.push({ type: 'c', next: t }), e; 9424 }, 9425 }; 9426 return e; 9427 }, 9428 }), 9429 (c.__onHelpAppHostReady__ = function (t) { 9430 if ((delete c.__onHelpAppHostReady__, ((c[r] = t).loaderCdn = d), i)) 9431 for (var e = t.init.apply(t, i), n = 0; n < p.length; n++) { 9432 var a = p[n]; 9433 e = 't' === a.type ? e.then(a.next) : e.catch(a.next); 9434 } 9435 }), 9436 (function () { 9437 try { 9438 var t = n.getElementsByTagName('script')[0], 9439 e = n.createElement('script'); 9440 (e.async = !0), (e.src = d + '?q=' + new Date().getTime()), t.parentNode.insertBefore(e, t); 9441 } catch (t) {} 9442 })(); 9443 } 9444 })(window, document, 'Gladly', 'PROD'); 9445 window.gladlyConfig = { 9446 appId: 'flooret.com', 9447 }; 9448 </script>
9448 9449 9450 9451 9452 9453
9453<script src="https://widget.reviews.io/rating-snippet/dist.js"></script>
9453 9454 <link rel="stylesheet" href="https://widget.reviews.io/rating-snippet/dist.css"> 9455
9455<script> 9456 ratingSnippet('ruk_rating_snippet', { 9457 store: 'flooret', 9458 mode: 'default', 9459 color: '#0E1311', 9460 linebreak: false, 9461 text: 'Reviews', 9462 singularText: 'Review', 9463 lang: 'en', 9464 usePolaris: true, 9465 showEmptyStars: false, 9466 }); 9467 </script>
9467 9468 9469
9469<script> 9470 document.addEventListener('DOMContentLoaded', function() { 9471 $('.announcement-wrap-out').slick({ 9472 infinite: true, 9473 slidesToShow: 1, 9474 slidesToScroll: 1, 9475 arrows:true, 9476 autoplay: true, 9477 adaptiveHeight: true, 9478 autoplaySpeed: 5000, 9479 pauseOnFocus:false, 9480 pauseOnHover:false, 9481 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>", 9482 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>" 9483 }); 9484 }); 9485 </script>
9485 9486 9487
9487<script> 9488 9489 </script>
9489 9490 <style> 9491 .fr_21_nav_block { 9492 position: relative; 9493 } 9494 9495 .fr_21_subnav_link { 9496 position: relative; 9497 } 9498 9499 .fr_21_subnav_link .custom-badge-new { 9500 position: absolute; 9501 } 9502 9503 .fr_21_subnav { 9504 display: none; 9505 position: absolute; 9506 top: 100%; 9507 left: 0; 9508 background-color: white; 9509 border: 1px solid #ccc; 9510 z-index: 1000; 9511 min-width: 200px; 9512 } 9513 9514 .fr_21_subnav_link { 9515 display: block; 9516 padding: 15px; 9517 text-decoration: none; 9518 color: #000; 9519 background-color: #fff; 9520 text-align: start; 9521 } 9522 9523 .fr_21_subnav_link:hover { 9524 background-color: #ddd; 9525 } 9526 9527 .fr_21_nav_block:hover .fr_21_subnav { 9528 display: block; 9529 } 9530 .custom-badge-new { 9531 display: inline-block; 9532 border: 1px solid currentColor; 9533 padding: 2px 6px; 9534 font-size: 0.7rem; 9535 font-weight: 600; 9536 text-transform: uppercase; 9537 background-color: #226B99; 9538 color: #fff; 9539 border-radius: 0.25rem; 9540 line-height: 1; 9541 vertical-align: middle; 9542 position: absolute; 9543 right: -15px; 9544 top: -11px; 9545 border-radius: 6px; 9546 font-family: Montserrat; 9547 font-weight: 500; 9548 font-style: Medium; 9549 font-size: 8px; 9550 leading-trim: NONE; 9551 line-height: 100%; 9552 letter-spacing: -5%; 9553 font-variant: small-caps; 9554 } 9555 </style> 9556 9557
9557<script src="//www.flooret.com/cdn/shop/t/125/assets/custom-mw.js?v=117413435437969956151775037854" type="text/javascript"></script>
9557 9558 9559 9560 9561 9562 9563 9564 9565
9565<script> 9566 9567 function updateHeaderPositions() { 9568 const mainHead = document.querySelector('.gheader.sticky'); 9569 const announcement = document.querySelector('.announcement-wrap-out'); 9570 const topUsp = document.querySelector('.top_usp'); 9571 const colModelSilvan = document.querySelector('.collection-modal-section'); 9572 9573 if (!mainHead || !announcement) return; 9574 9575 const announcementHeight = announcement.getBoundingClientRect().height; 9576 const isMobile = window.innerWidth < 768; 9577 9578 if (isMobile) { 9579 if (topUsp) { 9580 const topUspHeight = topUsp.getBoundingClientRect().height; 9581 topUsp.style.top = `${announcementHeight}px`; 9582 mainHead.style.top = `${announcementHeight + topUspHeight}px`; 9583 9584 const mainHeadHeight = mainHead.getBoundingClientRect().height; 9585 if (colModelSilvan) { 9586 colModelSilvan.style.top = `${mainHeadHeight + announcementHeight + topUspHeight}px`; 9587 } 9588 } else { 9589 mainHead.style.top = `${announcementHeight}px`; 9590 const mainHeadHeight = mainHead.getBoundingClientRect().height; 9591 if (colModelSilvan) { 9592 colModelSilvan.style.top = `${mainHeadHeight + announcementHeight}px`; 9593 } 9594 } 9595 } else { 9596 mainHead.style.top = `${announcementHeight}px`; 9597 const mainHeadHeight = mainHead.getBoundingClientRect().height; 9598 if (colModelSilvan) { 9599 colModelSilvan.style.top = `${mainHeadHeight + announcementHeight}px`; 9600 } 9601 } 9602 } 9603 9604 document.addEventListener('DOMContentLoaded', () => { 9605 setTimeout(updateHeaderPositions, 2000); 9606 }); 9607 window.addEventListener('resize', updateHeaderPositions); 9608 9609 </script>
9609 9610 9611 9612 9613
9613<script> 9614 // A reusable function to add or remove the class 9615 function handleScrollClass() { 9616 if (window.scrollY > 5) { 9617 document.body.classList.add('body-scrolled'); 9618 } else { 9619 document.body.classList.remove('body-scrolled'); 9620 } 9621 } 9622 9623 // 1. Run the check when the user scrolls 9624 window.addEventListener('scroll', handleScrollClass); 9625 9626 // 2. Run the check once the page has loaded 9627 document.addEventListener('DOMContentLoaded', handleScrollClass); 9628 9629 (function() { 9630 const userAgent = navigator.userAgent; 9631 9632 // Check for Safari while excluding Chrome and other WebKit browsers 9633 const isSafari = userAgent.includes('Safari') && !userAgent.includes('Chrome'); 9634 9635 if (isSafari) { 9636 document.documentElement.classList.add('is-safari'); 9637 } 9638 })(); 9639 </script>
9639 9640 9641 9642 9643
9643<script> 9644 9645 // Assuming Swiper is already included via CDN or script tag 9646 // This is a clean, readable version of your Swiper initialization 9647 // It handles mobile/desktop breakpoints with different controls 9648 9649 document.addEventListener("DOMContentLoaded", function () { 9650 // Select all sections with class 'ft-prod-col' 9651 const sections = document.querySelectorAll(".ft-prod-col"); 9652 9653 sections.forEach((section) => { 9654 // Find the slider within this section 9655 const slider = section.querySelector(".ft-prod-col__slider"); 9656 if (!slider) return; // Skip if no slider found 9657 9658 // Define Swiper options with breakpoints 9659 const swiperOptions = { 9660 slidesPerView: 1.2, // Default for small screens 9661 spaceBetween: 16, 9662 // Mobile-specific scrollbar and navigation (default) 9663 scrollbar: { 9664 el: section.querySelector(".swiper-controls.mob-only .swiper-scrollbar"), 9665 draggable: true, 9666 }, 9667 navigation: { 9668 nextEl: section.querySelector(".swiper-controls.mob-only .swiper-button-next"), 9669 prevEl: section.querySelector(".swiper-controls.mob-only .swiper-button-prev"), 9670 }, 9671 // Responsive breakpoints 9672 breakpoints: { 9673 // When window width >= 720px (desktop) 9674 720: { 9675 slidesPerView: 2, // Show 2 slides on desktop 9676 // Switch to desktop-specific scrollbar and navigation 9677 scrollbar: { 9678 el: section.querySelector(".swiper-controls.desk-only .swiper-scrollbar"), 9679 draggable: true, 9680 }, 9681 navigation: { 9682 nextEl: section.querySelector(".swiper-controls.desk-only .swiper-button-next"), 9683 prevEl: section.querySelector(".swiper-controls.desk-only .swiper-button-prev"), 9684 }, 9685 }, 9686 }, 9687 }; 9688 9689 // Initialize Swiper 9690 const swiper = new Swiper(slider, swiperOptions); 9691 9692 // Show controls if Swiper is enabled (e.g., multiple slides) 9693 if (swiper.enabled) { 9694 const controls = slider.parentElement.querySelector(".swiper-controls"); 9695 if (controls) controls.style.display = "block"; // Or use classList.add('visible') if you prefer CSS 9696 } 9697 9698 // Optional: Update on resize (in case of dynamic changes) 9699 window.addEventListener("resize", () => swiper.update()); 9700 }); 9701 }); 9702 9703 9704 document.addEventListener("DOMContentLoaded", function () { 9705 // Select all sliders with class 'image-card-slider' 9706 const sliders = document.querySelectorAll(".image-card-slider"); 9707 9708 if (sliders.length === 0) { 9709 console.log("No image-card-slider found."); 9710 return; // Exit if no sliders 9711 } 9712 9713 sliders.forEach((slider) => { 9714 // Find the parent section (assumes one section per slider or shared) 9715 const section = slider.closest(".image-card-block") || document.querySelector(".image-card-block"); 9716 if (!section) { 9717 console.error("No .image-card-block found for slider:", slider); 9718 return; // Skip if no section 9719 } 9720 9721 // Define Swiper options 9722 const swiperOptions = { 9723 slidesPerView: 1, // Show 1 slide by default 9724 spaceBetween: 0, // No space between slides 9725 scrollbar: { 9726 el: section.querySelector(".swiper-scrollbar"), // Scrollbar from section 9727 draggable: true, // Allow dragging the scrollbar 9728 }, 9729 navigation: { 9730 nextEl: section.querySelector(".swiper-button-next"), // Next button from section 9731 prevEl: section.querySelector(".swiper-button-prev"), // Prev button from section 9732 }, 9733 // Optional: Add breakpoints if needed (e.g., for responsiveness) 9734 // breakpoints: { 9735 // 768: { slidesPerView: 2 } // Example: Show 2 slides on larger screens 9736 // } 9737 }; 9738 9739 // Initialize Swiper 9740 const swiper = new Swiper(slider, swiperOptions); 9741 9742 // Optional: Log for debugging 9743 swiper.on("init", () => { 9744 console.log("Image Card Swiper initialized:", slider); 9745 }); 9746 9747 // Optional: Update on resize 9748 window.addEventListener("resize", () =>
9748 swiper.update()); 9749 }); 9750 }); 9751 9752 9753 // Assuming Swiper is already included via CDN or script tag 9754 // This is a clean, readable vanilla JS version of your Swiper initializations 9755 // It handles multiple sliders with error handling and resize updates 9756 9757 document.addEventListener("DOMContentLoaded", function () { 9758 // Helper function to init a Swiper with error handling 9759 function initSwiper(container, options) { 9760 try { 9761 const swiper = new Swiper(container, options); 9762 swiper.on("init", () => console.log("Swiper initialized:", container.className)); 9763 return swiper; 9764 } catch (error) { 9765 console.error("Swiper init failed:", error); 9766 return null; 9767 } 9768 } 9769 9770 // 1. Recent Blog Wrapper Slider 9771 function initRecentBlogSlider() { 9772 const sliders = document.querySelectorAll(".recent-blog-wrapper__slider"); 9773 const section = document.querySelector(".recent-posts"); // Shared section for controls 9774 9775 if (sliders.length === 0) { 9776 console.log("No recent-blog-wrapper__slider found."); 9777 return; 9778 } 9779 9780 sliders.forEach((slider) => { 9781 if (!section) { 9782 console.error("No .recent-posts found for controls."); 9783 return; 9784 } 9785 9786 const swiperOptions = { 9787 slidesPerView: 1.1, 9788 spaceBetween: 32, 9789 scrollbar: { el: ".swiper-scrollbar", draggable: true }, // Assumes global or per-slider scrollbar 9790 navigation: { 9791 nextEl: section.querySelector(".swiper-button-next"), 9792 prevEl: section.querySelector(".swiper-button-prev"), 9793 }, 9794 breakpoints: { 9795 960: { slidesPerView: 2 }, 9796 }, 9797 }; 9798 9799 const swiper = initSwiper(slider, swiperOptions); 9800 window.addEventListener("resize", () => swiper?.update()); 9801 }); 9802 } 9803 initRecentBlogSlider(); 9804 9805 // 2. Customer Stories Loop (cstories__loop) 9806 function initCstoriesSlider() { 9807 const sliders = document.querySelectorAll(".cstories__loop"); 9808 9809 if (sliders.length === 0) { 9810 console.log("No cstories__loop found."); 9811 return; 9812 } 9813 9814 sliders.forEach((slider) => { 9815 const swiperOptions = { 9816 slidesPerView: 1.4, 9817 centeredSlides: true, 9818 loop: true, 9819 navigation: { 9820 nextEl: slider.querySelector(".swiper-button-next"), // Assumes controls inside each slider 9821 prevEl: slider.querySelector(".swiper-button-prev"), 9822 }, 9823 breakpoints: { 9824 960: { slidesPerView: 2.8 }, 9825 1400: { slidesPerView: 3.25 }, 9826 1600: { slidesPerView: 4 }, 9827 }, 9828 }; 9829 9830 const swiper = initSwiper(slider, swiperOptions); 9831 window.addEventListener("resize", () => swiper?.update()); 9832 }); 9833 } 9834 initCstoriesSlider(); 9835 9836 // 3. Testimonials Slider 9837 function initTestimonialsSlider() { 9838 const sliders = document.querySelectorAll(".testimonials-slider"); 9839 const section = document.querySelector(".testimonials-block"); // Shared section for controls 9840 9841 if (sliders.length === 0) { 9842 console.log("No testimonials-slider found."); 9843 return; 9844 } 9845 9846 sliders.forEach((slider) => { 9847 if (!section) { 9848 console.error("No .testimonials-block found for controls."); 9849 return; 9850 } 9851 9852 const swiperOptions = { 9853 slidesPerView: 1, 9854 spaceBetween: 0, 9855 autoHeight: true, 9856 scrollbar: { el: section.querySelector(".swiper-scrollbar"), draggable: true }, 9857 navigation: { 9858 nextEl: section.querySelector(".swiper-button-next"), 9859 prevEl: section.querySelector(".swiper-button-prev"), 9860 }, 9861 }; 9862 9863 const swiper = initSwiper(slider, swiperOptions); 9864 window.addEventListener("resize", () =>
9864 swiper?.update()); 9865 }); 9866 } 9867 initTestimonialsSlider(); 9868 9869 // 4. Image Card Slider (from your query, already handled similarly in previous response) 9870 function initImageCardSlider() { 9871 const sliders = document.querySelectorAll(".image-card-slider"); 9872 const section = document.querySelector(".image-card-block"); // Shared section 9873 9874 if (sliders.length === 0) { 9875 console.log("No image-card-slider found."); 9876 return; 9877 } 9878 9879 sliders.forEach((slider) => { 9880 if (!section) { 9881 console.error("No .image-card-block found for controls."); 9882 return; 9883 } 9884 9885 const swiperOptions = { 9886 slidesPerView: 1, 9887 spaceBetween: 0, 9888 scrollbar: { el: section.querySelector(".swiper-scrollbar"), draggable: true }, 9889 navigation: { 9890 nextEl: section.querySelector(".swiper-button-next"), 9891 prevEl: section.querySelector(".swiper-button-prev"), 9892 }, 9893 }; 9894 9895 const swiper = initSwiper(slider, swiperOptions); 9896 window.addEventListener("resize", () => swiper?.update()); 9897 }); 9898 } 9899 initImageCardSlider(); 9900 }); 9901 9902 // Assuming Swiper is already included via CDN or script tag 9903 // This is an updated custom gallery Swiper: shows 1 slide at a time, scrolls 1 slide on button click 9904 // Fixed selectors to match your HTML: ".button-next" and ".button-prev" for navigation 9905 9906 document.addEventListener("DOMContentLoaded", function () { 9907 // Select all custom gallery sliders (adjust selector as needed, e.g., '.custom-gallery-slider') 9908 const sliders = document.querySelectorAll(".custom-gallery-slider"); // Change this to your actual class 9909 9910 if (sliders.length === 0) { 9911 console.log("No custom-gallery-slider found."); 9912 return; // Exit if no sliders 9913 } 9914 9915 sliders.forEach((slider) => { 9916 // Find the parent section or controls container (assumes controls are siblings or inside) 9917 const controls = slider.closest(".swiper-controls") || document.querySelector(".swiper-controls"); 9918 // If controls are not found, log and skip navigation 9919 if (!controls) { 9920 console.warn("No .swiper-controls found for navigation buttons."); 9921 } 9922 9923 // Define Swiper options 9924 const swiperOptions = { 9925 slidesPerView: 1, // Show only 1 slide at a time 9926 slidesPerGroup: 1, // Scroll 1 slide per navigation click or swipe 9927 spaceBetween: 0, // No space between slides (adjust if needed) 9928 loop: true, // Optional: Enable infinite looping 9929 navigation: { 9930 // Use your exact class names from HTML 9931 nextEl: controls ? controls.querySelector(".button-next") : null, 9932 prevEl: controls ? controls.querySelector(".button-prev") : null, 9933 }, 9934 // Optional: Add scrollbar if you want drag-to-scroll (add <div class="swiper-scrollbar"></div> to HTML) 9935 // scrollbar: { 9936 // el: '.swiper-scrollbar', // Add this class to your HTML if needed 9937 // draggable: true, 9938 // }, 9939 // Optional: Add breakpoints for responsiveness (e.g., still 1 slide on mobile/desktop) 9940 breakpoints: { 9941 768: { slidesPerView: 1 }, // Keep 1 slide on larger screens (customize as needed) 9942 }, 9943 }; 9944 9945 // Initialize Swiper 9946 try { 9947 const swiper = new Swiper(slider, swiperOptions); 9948 swiper.on("init", () => { 9949 console.log("Custom Gallery Swiper initialized:", slider); 9950 }); 9951 9952 // Test navigation manually (for debugging) 9953 if (swiper.navigation.nextEl) { 9954 swiper.navigation.nextEl.addEventListener("click", () => swiper.slideNext()); 9955 } 9956 if (swiper.navigation.prevEl) { 9957 swiper.navigation.prevEl.addEventListener("click", () => swiper.slidePrev()); 9958 } 9959 9960 // Update on resize 9961 window.addEventListener("resize", () =>
9961 swiper.update()); 9962 } catch (error) { 9963 console.error("Custom Gallery Swiper init failed:", error); 9964 } 9965 }); 9966 }); 9967 9968 9969 9970 </script>
9970 9971 9972
9972<script> 9973 // Watch for .pop-cart active class and update cart count 9974(function() { 9975 function updateCartCount() { 9976 fetch('/cart.js') 9977 .then(res => res.json()) 9978 .then(cart => { 9979 document.querySelectorAll('.js-cart-count').forEach(el => { 9980 el.textContent = cart.item_count; 9981 }); 9982 9983 const cartCountWrapper = document.querySelector('.cart-count'); 9984 if (cartCountWrapper) { 9985 if (cart.item_count > 0) { 9986 cartCountWrapper.classList.remove('cart-empty'); 9987 } else { 9988 cartCountWrapper.classList.add('cart-empty'); 9989 } 9990 } 9991 }) 9992 .catch(err => { 9993 console.error('Failed to fetch cart count:', err); 9994 }); 9995 } 9996 9997 // â Monitor .pop-cart for 'active' class changes 9998 const observer = new MutationObserver(function(mutations) { 9999 mutations.forEach(function(mutation) { 10000 if (mutation.type === 'attributes' && mutation.attributeName === 'class') { 10001 const target = mutation.target; 10002 if (target.classList.contains('pop-cart') && target.classList.contains('active')) { 10003 updateCartCount(); 10004 } 10005 } 10006 }); 10007 }); 10008 10009 // Start observing .pop-cart element 10010 const popCart = document.querySelector('.pop-cart'); 10011 if (popCart) { 10012 observer.observe(popCart, { 10013 attributes: true, 10014 attributeFilter: ['class'] 10015 }); 10016 } 10017 10018 // Also watch for newly added .pop-cart elements 10019 const bodyObserver = new MutationObserver(function(mutations) { 10020 mutations.forEach(function(mutation) { 10021 mutation.addedNodes.forEach(function(node) { 10022 if (node.nodeType === 1) { // Element node 10023 if (node.matches && node.matches('.pop-cart')) { 10024 observer.observe(node, { 10025 attributes: true, 10026 attributeFilter: ['class'] 10027 }); 10028 } 10029 // Check children too 10030 node.querySelectorAll('.pop-cart').forEach(el => { 10031 observer.observe(el, { 10032 attributes: true, 10033 attributeFilter: ['class'] 10034 }); 10035 }); 10036 } 10037 }); 10038 }); 10039 }); 10040 10041 bodyObserver.observe(document.body, { 10042 childList: true, 10043 subtree: true 10044 }); 10045 10046 // jQuery fallback (if you prefer) 10047 $(document).on('DOMNodeInserted', function(e) { 10048 if ($(e.target).hasClass('pop-cart') || $(e.target).find('.pop-cart').length) { 10049 $('.pop-cart').each(function() { 10050 if ($(this).hasClass('active')) { 10051 updateCartCount(); 10052 } 10053 }); 10054 } 10055 }); 10056 10057})(); 10058 10059 </script>
10059 10060 10061 10062 10063
10063<script> 10064 function showCartNotification(message, type = 'success') { 10065 var existing = document.getElementById('cart-action-notification'); 10066 if (existing) { 10067 existing.remove(); 10068 } 10069 10070 var notification = document.createElement('div'); 10071 notification.id = 'cart-action-notification'; 10072 notification.setAttribute('role', 'status'); 10073 notification.setAttribute('aria-live', 'polite'); 10074 notification.className = 'cart-action-notification--' + type; 10075 notification.innerHTML = message; // innerHTML so the "go to cart" link renders 10076 notification.style.opacity = '1'; 10077 10078 document.body.appendChild(notification); 10079 10080 setTimeout(function () { 10081 notification.style.opacity = '0'; 10082 10083 setTimeout(function () { 10084 if (notification && notification.parentNode) { 10085 notification.remove(); 10086 } 10087 }, 300); 10088 }, 5000); 10089 } 10090 10091 async function addToCartByUrl(productUrl, quantity = 1, properties = {}) { 10092 try { 10093 const storeOrigin = window.location.origin; 10094 const url = new URL(productUrl, storeOrigin); 10095 10096 let variantId = url.searchParams.get('variant'); 10097 10098 if (!variantId) { 10099 const productPath = url.pathname.replace(/\/$/, ''); 10100 const response = await fetch(`${productPath}.js`, { 10101 credentials: 'same-origin', 10102 headers: { 10103 Accept: 'application/json' 10104 } 10105 }); 10106 10107 if (!response.ok) { 10108 const text = await response.text(); 10109 const message = `Product request failed. Status: ${response.status}. ${text.slice(0, 150)}`; 10110 showCartNotification(message, 'error'); 10111 throw new Error(message); 10112 } 10113 10114 const product = await response.json(); 10115 10116 if (!product.variants || !product.variants.length) { 10117 const message = `No variants found for ${productUrl}`; 10118 showCartNotification(message, 'error'); 10119 throw new Error(message); 10120 } 10121 10122 const availableVariant = product.variants.find(function (v) { 10123 return v.available; 10124 }); 10125 10126 variantId = availableVariant ? availableVariant.id : product.variants[0].id; 10127 } 10128 10129 const cartResponse = await fetch('/cart/add.js', { 10130 method: 'POST', 10131 credentials: 'same-origin', 10132 headers: { 10133 'Content-Type': 'application/json', 10134 Accept: 'application/json' 10135 }, 10136 body: JSON.stringify({ 10137 id: Number(variantId), 10138 quantity: quantity, 10139 properties: properties 10140 }) 10141 }); 10142 10143 if (!cartResponse.ok) { 10144 let err = {}; 10145 10146 try { 10147 err = await cartResponse.json(); 10148 } catch (e) {} 10149 10150 const errorMessage = 10151 err.description || 10152 err.message || 10153 `Cart add failed with status ${cartResponse.status}`; 10154 10155 showCartNotification(errorMessage, 'error'); 10156 throw new Error(errorMessage); 10157 } 10158 10159 const cartItem = await cartResponse.json(); 10160 console.log('Added to cart:', cartItem); 10161 10162 showCartNotification('Product added to cart successfully.- <a href="/cart">go to cart</a>', 'success'); 10163 10164 return cartItem; 10165 } catch (error) { 10166 console.error('addToCartByUrl error:', error); 10167 10168 if (!document.getElementById('cart-action-notification')) { 10169 showCartNotification(error.message || 'Something went wrong.', 'error'); 10170 } 10171 10172 throw error; 10173 } 10174 } 10175 </script>
10175 10176 <style> 10177 #cart-action-notification { 10178 position: fixed; 10179 z-index: 9999999999999999 !important; 10180 top: 80px; 10181 left: 0; 10182 right: 0; 10183 margin: 0px auto; 10184 width: fit-content; 10185 background: #ffb04d; 10186 padding: 8px 15px; 10187 border-radius: 5px; 10188 box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px; 10189 } 10190 </style> 10191 <style> </style> 10192<div id="shopify-block-AMVd3SDN1bkU2MU1yc__8984515417408071758" class="shopify-block shopify-app-block"> 10193
10194<script> 10195 document.addEventListener('DOMContentLoaded', function () { 10196 // Only apply the embed on pages with "landing-page" in the URL 10197 if (window.location.href.includes('pages/landing-page-') || window.location.href.includes('pages/offers-')) { 10198 // Add Swiper CSS (replacing Bootstrap carousel) 10199 const swiperCSS = document.createElement('link'); 10200 swiperCSS.rel = 'stylesheet'; 10201 swiperCSS.href = 'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css'; 10202 document.head.appendChild(swiperCSS); 10203 10204 // Add custom carousel CSS (for overrides) 10205 const carouselCSS = document.createElement('link'); 10206 carouselCSS.rel = 'stylesheet'; 10207 carouselCSS.href = 'https://cdn.shopify.com/extensions/019d9bde-3b5f-7110-a959-0f21b89f5d22/aspire-links-105/assets/carousel.css'; 10208 document.head.appendChild(carouselCSS); 10209 10210 // Add Swiper JS (replacing jQuery + Bootstrap) 10211 const swiperScript = document.createElement('script'); 10212 swiperScript.src = 'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js'; 10213 swiperScript.defer = true; 10214 document.body.appendChild(swiperScript); 10215 10216 // Load your custom CSS and JS 10217 const styleLink = document.createElement('link'); 10218 styleLink.rel = 'stylesheet'; 10219 styleLink.href = 'https://cdn.shopify.com/extensions/019d9bde-3b5f-7110-a959-0f21b89f5d22/aspire-links-105/assets/landing-page.css'; 10220 document.head.appendChild(styleLink); 10221 10222 // Function to load the main landing page script 10223 function loadMainScript() { 10224 const script = document.createElement('script'); 10225 script.src = 'https://cdn.shopify.com/extensions/019d9bde-3b5f-7110-a959-0f21b89f5d22/aspire-links-105/assets/landing-page.js'; 10226 script.defer = true; 10227 document.body.appendChild(script); 10228 } 10229 10230 // Load shared utilities first (optional - main script has fallbacks) 10231 const utilsScript = document.createElement('script'); 10232 utilsScript.src = 'https://cdn.shopify.com/extensions/019d9bde-3b5f-7110-a959-0f21b89f5d22/aspire-links-105/assets/landing-page-utils.js'; 10233 utilsScript.onload = function() { 10234 loadMainScript(); 10235 }; 10236 utilsScript.onerror = function() { 10237 // Load main script anyway (has fallbacks) 10238 loadMainScript(); 10239 }; 10240 document.body.appendChild(utilsScript); 10241 10242 // Store template script URLs for dynamic loading 10243 window.TEMPLATE1_SCRIPT_URL = 'https://cdn.shopify.com/extensions/019d9bde-3b5f-7110-a959-0f21b89f5d22/aspire-links-105/assets/landing-page-1.js'; 10244 window.TEMPLATE2_SCRIPT_URL = 'https://cdn.shopify.com/extensions/019d9bde-3b5f-7110-a959-0f21b89f5d22/aspire-links-105/assets/landing-page-2.js'; 10245 window.TEMPLATE3_SCRIPT_URL = 'https://cdn.shopify.com/extensions/019d9bde-3b5f-7110-a959-0f21b89f5d22/aspire-links-105/assets/landing-page-3.js'; 10246 10247 // Inject the landing page content (using Shopify Liquid) 10248 const aspireDiv = document.createElement('div'); 10249 aspireDiv.innerHTML = ` 10250 <!-- BEGIN app snippet: landing-page-content --><link rel="preconnect" href="https://fonts.googleapis.com"> 10251<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 10252 10253<div class="loading-wrapper"> 10254 <div class="loading-spinner"></div> 10255 <div>Loading...</div> 10256</div> 10257 10258<div class="customer-s-landing"> 10259 <div class="header-background"> 10260 <div class="frame-wrapper page-width"> 10261 <div class="frame-4"> 10262 <div class="div-wrapper"> 10263 <div class="frame-5"> 10264 <div class="frame-6"> 10265 <div id="creator-tag" class="frame hidden"> 10266 <div class="div" style="height: 100%;"> 10267 <div id="creator-image-container" class="hidden"> 10268 <img 10269 id="creator-image" 10270 src="" 10271 class="creator-image-style" 10272 width="36px" 10273 height="36px" 10274 /> 10275 <span class="creator-heart-icon"> 10276 â¤ï¸ï¸ 10277 </span> 10278 </div> 10279 <div 10280 id="creator-initial" 10281 class="ellipse creator-initial hidden" 10282 >
10283 <span class="creator-heart-icon"> 10284 â¤ï¸ï¸ 10285 </span> 10286 </div> 10287 </div> 10288 <div id="loved-by-creator" class="loved-by-lokesh">LOVED BY JOHN DOE</div> 10289 </div> 10290 <div class="frame-7"> 10291 <div class="frame-8"> 10292 <div class="frame-9"> 10293 <div id="offer-title" class="text-wrapper"></div> 10294 </div> 10295 </div> 10296 </div> 10297 <p id="offer-description" class="p"> 10298 </p> 10299 </div> 10300 <div class="discount-container-class"> 10301 <div id="hero-feature-product" class="frame-10 hidden"> 10302 <div id="bestseller-tag" class="bestseller-badge hidden"> 10303 Bestseller 10304 </div> 10305 <div class="frame-11"> 10306 <img 10307 id="hero-featured-product-image" 10308 class="img" 10309 src="https://cdn.shopify.com/extensions/019d9bde-3b5f-7110-a959-0f21b89f5d22/aspire-links-105/assets/image-6.png" 10310 width="100" 10311 height="100" 10312 > 10313 <div class="frame-12"> 10314 <div class="frame-13"> 10315 <div class="frame-14"> 10316 <div id="hero-featured-product-name" class="text-wrapper-2"></div> 10317 </div> 10318 <div class="frame-15"> 10319 <span id="hero-featured-product-rating" class="text-wrapper-4"></span> 10320 <span id="hero-feature-product-reviews-count">(2,521 reviews)</span> 10321 </div> 10322 <div class="frame-16"> 10323 <div id="hero-featured-product-discounted-price" class="text-wrapper-5"></div> 10324 <div id="hero-featured-product-price" class="text-wrapper-6"></div> 10325 </div> 10326 </div> 10327 </div> 10328 </div> 10329 <div id="discount-button-container" class="span-1"> 10330 <a 10331 id="hero-featured-product-discount-button" 10332 target="_blank" 10333 class="text-wrapper-7" 10334 > 10335 <span name="add">Start Shopping</span> 10336 </a> 10337 </div> 10338 10339 </div> 10340 </div> 10341 <div class="discount-container-class"> 10342 <div id="discount-button-container-only" class="span-1 hidden"> 10343 <a 10344 id="hero-featured-product-discount-button-only" 10345 target="_blank" 10346 class="text-wrapper-7" 10347 > 10348 <span name="add">Start Shopping</span> 10349 </a> 10350 </div> 10351 </div> 10352 </div> 10353 </div> 10354 <div id="featured-content-carousel" class="frame-19 hidden"> 10355 <div id="contentCarousel" class="swiper"> 10356 <div class="swiper-wrapper"> 10357 <!-- Content will be dynamically inserted here --> 10358 </div> 10359 <div class="swiper-button-prev"></div> 10360 <div class="swiper-button-next"></div> 10361 </div> 10362 </div> 10363 </div> 10364 </div> 10365 </div> 10366 10367 10368 <div class="frame-27 hidden page-width" id="creators-favourite-product"> 10369 <div id="creator-favourite" class="text-wrapper-20">Creator's Favorite</div> 10370 <div class="frame-28"> 10371 <div class="frame-29"> 10372 <div class="frame-30"> 10373 <div class="frame-31"> 10374 <img 10375 id="favorite-featured-product-image" 10376 class="image-6" 10377 src="https://cdn.shopify.com/extensions/019d9bde-3b5f-7110-a959-0f21b89f5d22/aspire-links-105/assets/image-6.png" 10378 width="400" 10379 height="500" 10380 > 10381 </div> 10382 </div> 10383 <div class="frame-32"> 10384 <div class="frame-7"> 10385 <div class="frame-33"> 10386 <div class="frame-9"> 10387 <div id="favorite-featured-product-name" class="text-wrapper-21 hero-featured-product-name"> 10388 </div> 10389 <div class="frame-34"> 10390 10391 <div id="favorite-featured-product-discounted-price" class="text-wrapper-23"></div> 10392 <div id="favorite-featured-product-price" class="text-wrapper-22"></div> 10393 </div> 10394 </div> 10395 <div class="div"> 10396 <div id="favorite-featured-product-rating-container" class="frame-35"> 10397 </div> 10398 <div id="favorite-featured-product-reviews-count" class="text-wrapper-25"></div> 10399 </div> 10400 <div id="favorite-featured-product-description" class="p"> 10401 </div> 10402 </div> 10403 </div> 10404 <div class="frame-49 span-2">
10405 <a id="featured-product-shop-now" target="_blank" class="text-wrapper-7"> 10406 <span name="add">Shop now</span> 10407 </a> 10408 </div> 10409 </div> 10410 </div> 10411 </div> 10412 </div> 10413 10414 10415 <div class="frame-50 page-width"> 10416 <div id="all-products-title" class="text-wrapper-20 hidden">Shape your home's story</div> 10417 <div id="products-container"></div> 10418 <div id="load-more-button" class="frame-61 hidden"> 10419 <p class="text-wrapper-38" id="product-count">Viewing 1-8 of 23 products</p> 10420 <div class="span-3"> 10421 <div class="text-wrapper-39">Load More</div> 10422 </div> 10423 </div> 10424 </div> 10425</div> 10426<!-- END app snippet --> 10427 `; 10428 10429 const mainContent = document.querySelector('main') || document.body; 10430 if (mainContent) { 10431 mainContent.insertBefore(aspireDiv, mainContent.firstChild); 10432 } 10433 } 10434 }); 10435</script>
10435 10436</div><div id="shopify-block-AQm9TRHFSWXVWZkxWc__15316669992541710076" class="shopify-block shopify-app-block">
10436<script defer src="https://widget.reviews.io/rating-snippet/dist.js"></script>
10436 10437<link rel="stylesheet" href="https://widget.reviews.io/rating-snippet/dist.css" />
10438<script> 10439 (function () { 10440 function initRatingSnippet() { 10441 var hasStore = typeof reviewsIoStore !== 'undefined' && !!reviewsIoStore; 10442 if (!hasStore) return; 10443 10444 if (typeof ratingSnippet !== 'function') return; 10445 10446 // Ensure the target element exists (rating-output block may render after this app embed). 10447 if (!document.querySelector('.ruk_rating_snippet')) return; 10448 10449 var storeOverride = window.__REVIEWSIO_RATING_SNIPPET_STORE_OVERRIDE__; 10450 var storeForSnippet = storeOverride || reviewsIoStore; 10451 10452 ratingSnippet("ruk_rating_snippet",{ 10453 store: storeForSnippet, 10454 color: '#faaf4f', 10455 10456 textClr: '#333', 10457 10458 linebreak: false, 10459 10460 usePolaris: true, 10461 10462 10463 10464 10465 10466 text: 'Reviews', 10467 10468 lang: (typeof reviewsIoLang !== 'undefined' && reviewsIoLang) ? reviewsIoLang : 'en', 10469 mode: 'default', 10470 showEmptyStars: false, 10471 10472 enableSyndication: (typeof reviewsIoEnableSyndication !== 'undefined') ? reviewsIoEnableSyndication : false 10473 }); 10474 10475 const reviewsIoModal = document.getElementById('reviews_fade'); 10476 if (reviewsIoModal) { 10477 reviewsIoModal.classList.add('rio-withoutBranding'); 10478 } 10479 } 10480 10481 // Retry to survive slow network/script timing. 10482 var attempts = 0; 10483 var MAX_RATING_SNIPPET_INIT_ATTEMPTS = 20; 10484 var MAX_TIMEOUT_RETRY = 200; 10485 10486 function tick() { 10487 attempts += 1; 10488 initRatingSnippet(); 10489 if (attempts < MAX_RATING_SNIPPET_INIT_ATTEMPTS && (typeof ratingSnippet !== 'function' || !document.querySelector('.ruk_rating_snippet'))) { 10490 window.setTimeout(tick, MAX_TIMEOUT_RETRY); 10491 } 10492 } 10493 10494 // Use window load to maximize chance that the external script executed. 10495 window.addEventListener('load', tick); 10496 })(); 10497</script>
10497 10498 10499 10500</div><div id="shopify-block-ATEtpUjBUSkREcmZIV__4903255192656362701" class="shopify-block shopify-app-block">
10501<script> 10502 window.aiod_widget_registry = window.aiod_widget_registry || { apps: {}, order: [] }; 10503 (function () { 10504 var ns = "aiod"; 10505 if (!ns) return; // namespace comes from the variant (block setting) â no fallback 10506 var app = window.aiod_widget_registry.apps[ns] || (window.aiod_widget_registry.apps[ns] = { namespace: ns }); 10507 10508 app.widgetPlacementSettings = null; 10509 app.automaticDiscounts = []; 10510 app.bannerWidgets = []; 10511 app.bannerTranslations = []; 10512 app.globalBannerSettings = null; 10513 app.globalSettings = null; 10514 app.globalMetafieldJson = {"accessToken":"3b8818e36c59616726e6f9ae843b3550"}; 10515 app.giftBanners = []; 10516 app.freeGiftConfig = []; 10517 app.giftSettings = null; 10518 app.giftProductHandles = ["coronado","del-mar","encinitas","la-jolla","oceanside","palomar","torrey","venice"]; 10519 10520 app.collections = app.collections || {}; 10521 // product id -> [collection ids] for items currently in the cart 10522 10523 // products belonging to this app's configured collections 10524 10525 10526 10527 if (window.aiod_widget_registry.order.indexOf(ns) === -1) window.aiod_widget_registry.order.push(ns); 10528 })(); 10529</script>
vendor: 1 bytes, line 10529
10529
10530<script src="https://cdn.shopify.com/extensions/01a0d22a-180e-7543-8fb6-8b4c6ef9749f/aiod-automatic-discounts-887/assets/widget-registry.js"></script>
10530 10531 10532 10533<!-- Deprecated: This app embed's functionality has been merged into "Free Gift Manager". Please disable this and enable "Free Gift Manager" instead. -->
10534<script> 10535 window.IS_AIOD_WIDGET_MANAGER_ENABLED = true; 10536 window.AIOD_WASM_URL = "https://cdn.shopify.com/extensions/01a0d22a-180e-7543-8fb6-8b4c6ef9749f/aiod-automatic-discounts-887/assets/discount-rust.wasm"; 10537</script>
10537 10538<link rel="modulepreload" href="https://cdn.shopify.com/extensions/01a0d22a-180e-7543-8fb6-8b4c6ef9749f/aiod-automatic-discounts-887/assets/discount-rust.js" crossorigin> 10539<link href="https://cdn.shopify.com/extensions/01a0d22a-180e-7543-8fb6-8b4c6ef9749f/aiod-automatic-discounts-887/assets/discount-rust.wasm" as="fetch" crossorigin="anonymous" rel="preload">
10540<script type="module" src="https://cdn.shopify.com/extensions/01a0d22a-180e-7543-8fb6-8b4c6ef9749f/aiod-automatic-discounts-887/assets/discount-engine-wasm-loader.js" crossorigin></script>
10540 10541
10542<script> 10543 if (!window._AIOD_WIDGET_DEPRECATION_WARNED) { 10544 console.warn('AIOD: "Widget Manager" app embed is deprecated. Please disable it and use "Latest Widget Manager" instead.'); 10545 window._AIOD_WIDGET_DEPRECATION_WARNED = true; 10546 } 10547</script>
10547 10548 10549<link defer rel="stylesheet" href="https://cdn.shopify.com/extensions/01a0d22a-180e-7543-8fb6-8b4c6ef9749f/aiod-automatic-discounts-887/assets/widgets.css">
10549<script defer> 10550 window.aiod_shop_currency = "USD"; 10551 window.aiod_locale = "en"; 10552</script>
10552 10553
10554<script defer src="https://cdn.shopify.com/extensions/01a0d22a-180e-7543-8fb6-8b4c6ef9749f/aiod-automatic-discounts-887/assets/global_settings.js"></script>
10554 10555
10556<script defer src="https://cdn.shopify.com/extensions/01a0d22a-180e-7543-8fb6-8b4c6ef9749f/aiod-automatic-discounts-887/assets/exclude-item-marker.js"></script>
vendor: 1 bytes, line 10556
10556
10557<script defer src="https://cdn.shopify.com/extensions/01a0d22a-180e-7543-8fb6-8b4c6ef9749f/aiod-automatic-discounts-887/assets/cart-update-listener.js"></script>
vendor: 1 bytes, line 10557
10557
10558<script defer src="https://cdn.shopify.com/extensions/01a0d22a-180e-7543-8fb6-8b4c6ef9749f/aiod-automatic-discounts-887/assets/discount-manager-v3.js"></script>
vendor: 1 bytes, line 10558
10558
10559<script defer src="https://cdn.shopify.com/extensions/01a0d22a-180e-7543-8fb6-8b4c6ef9749f/aiod-automatic-discounts-887/assets/test-discount-session.js"></script>
10559 10560
10561<script> 10562 if (typeof window.aiod_product_data === 'undefined') { 10563 10564 } 10565 10566 10567</script>
10567 10568
10569<script defer src="https://cdn.shopify.com/extensions/01a0d22a-180e-7543-8fb6-8b4c6ef9749f/aiod-automatic-discounts-887/assets/variant-change-detector.js"></script>
vendor: 1 bytes, line 10569
10569
10570<script defer src="https://cdn.shopify.com/extensions/01a0d22a-180e-7543-8fb6-8b4c6ef9749f/aiod-automatic-discounts-887/assets/widget-engine.js"></script>
vendor: 1 bytes, line 10570
10570
10571<script defer src="https://cdn.shopify.com/extensions/01a0d22a-180e-7543-8fb6-8b4c6ef9749f/aiod-automatic-discounts-887/assets/text-link-utils.js"></script>
vendor: 1 bytes, line 10571
10571
10572<script defer src="https://cdn.shopify.com/extensions/01a0d22a-180e-7543-8fb6-8b4c6ef9749f/aiod-automatic-discounts-887/assets/product-promo-widget-utils.js"></script>
vendor: 1 bytes, line 10572
10572
10573<script defer src="https://cdn.shopify.com/extensions/01a0d22a-180e-7543-8fb6-8b4c6ef9749f/aiod-automatic-discounts-887/assets/discount-pricing-core.js"></script>
vendor: 1 bytes, line 10573
10573
10574<script defer src="https://cdn.shopify.com/extensions/01a0d22a-180e-7543-8fb6-8b4c6ef9749f/aiod-automatic-discounts-887/assets/banner-manager.js"></script>
10574 10575</div><div id="shopify-block-AeXVWZkJYL1lXSVVhM__9022822286719573313" class="shopify-block shopify-app-block"> 10576</div><div id="shopify-block-AbmZNMkJoZTRRcUIvb__10830403595879607806" class="shopify-block shopify-app-block"><style> 10577 .rio-withoutBranding .FloatingWidget .R-Logo, 10578 .rio-withoutBranding .CarouselWidget .R-ReviewsioLogo, 10579 .rio-withoutBranding .ElementsWidget .footer__reviewsLogo-container, 10580 .rio-withoutBranding .QnaWidget .footer__reviewsLogo-container, 10581 .rio-withoutBranding .MediaGalleryWidget-prefix .R-ReviewsioLogo, 10582 .rio-withoutBranding .RatingBarWidget .R-PlatformIcon { 10583 display: none !important; 10584 } 10585</style>
10586<script> 10587 window.__REVIEWS_EDITOR__ = false; 10588 window.__REVIEWS_DEMO_CONFIG__ = { 10589 store: 'ecommerce-demo-store', 10590 sku: 'bunch_of_flowers_sku;blue_flowers_sku;white_flowers_sku;pastel_flowers_sku;summer_selection_sku', 10591 widgetIds: { 10592 nuggets: 'W10cpKyjl72VtHv6', 10593 ugc: '7sG9C5qNeKpvhykZ', 10594 floating: 'GBvqmKV1Zy9H4Mpd', 10595 ratingBar: 'pxNMXi7FTlODgr8Q', 10596 survey: 'uLJcD7bFpGMf1Z0C' 10597 }, 10598 surveyCampaignId: '392' 10599 }; 10600 10601 10602 var reviewsIoStore = 'flooret'; 10603 10604 10605 var reviewsIoEnableSyndication = false; 10606 10607 10608 10609 10610 var reviewsIoLang = 'en'; 10611 10612 10613</script>
10613 10614
10615<script defer src="https://cdn.shopify.com/extensions/019f1dcd-2e41-759b-8190-d404bf58416d/reviews-co-uk-product-and-merchant-review-collection-59/assets/reviewsio-preview.js"></script>
10615 10616 10617 10618 10619</div><div id="shopify-block-AZFd6aGFnS21FS1hVa__13768625480086291342" class="shopify-block shopify-app-block">
10619<script> 10620 window['ShopifyForms'] = { 10621 ...window['ShopifyForms'], 10622 currentPageType: "blog" 10623 }; 10624</script>
10624 10625 10626 10627</div>
10627<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
10627 10628</body> 10629</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.