PageSourceSearch

https://www.navienoptisleep.com/pages/contact

html navienoptisleep.com collected 2026-10-09 21:46:43 UTC 116,447 bytes, 1,728 lines download raw bytes

1<!doctype html>
2<html lang="en">
3<head>
4  <meta charset="utf-8">
5  <meta name="viewport" content="width=device-width,initial-scale=1"><meta name="google-site-verification" content="AwlEh7jJte8cm4MWEwML3nZMFE4uwVOiqJ_0KBqLaHw">
6  <title>Contact Us — Navien OptiSleep</title>
7  
8  <link rel="canonical" href="https://www.navienoptisleep.com/pages/contact"><link rel="icon" type="image/png" href="//www.navienoptisleep.com/cdn/shop/files/favicon-OS.png?v=1780695916&width=64">
9    <link rel="shortcut icon" type="image/png" href="//www.navienoptisleep.com/cdn/shop/files/favicon-OS.png?v=1780695916&width=64"><!-- Open Graph -->
10  <meta property="og:site_name" content="Navien OptiSleep">
11  <meta property="og:url" content="https://www.navienoptisleep.com/pages/contact">
12  <meta property="og:title" content="Contact Us — Navien OptiSleep">
13  <meta property="og:type" content="website">
14  
15    <meta property="og:description" content="Precision water-based cooling &amp; heating, precise to 1°F. No subscription. Backed by 48 years of Navien engineering.">
16  
17  
18  
19
20  <!-- Twitter / X Card -->
21  <meta name="twitter:card" content="summary_large_image">
22  <meta name="twitter:title" content="Contact Us — Navien OptiSleep">
23  
24    <meta name="twitter:description" content="Precision water-based cooling &amp; heating, precise to 1°F. No subscription. Backed by 48 years of Navien engineering.">
25  
26  
27  
27<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
27<meta name="facebook-domain-verification" content="05azein9f5gjod9ajlhs9zm6yi1rk4">
28<meta name="facebook-domain-verification" content="8nalu5htzitoros6bekk8yxpprkyt7">
29<meta name="google-site-verification" content="AwlEh7jJte8cm4MWEwML3nZMFE4uwVOiqJ_0KBqLaHw">
30<meta name="google-site-verification" content="IbMZ3Ogjaj-URKqWulkfr7FgrgQju6_Yj2FXhcUHFIg">
31<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/23185697/digital_wallets/dialog">
32<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="alternate" hreflang="x-default" href="https://www.navienoptisleep.com/pages/contact">
33<link rel="alternate" hreflang="en" href="https://www.navienoptisleep.com/pages/contact">
34<link rel="alternate" hreflang="en-CA" href="https://www.navienoptisleep.com/en-ca/pages/contact">
35<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=2256306407"></script>
35
36<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
37<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=2256306407&shop_id=23185697" crossorigin="anonymous"></script>
vendor: 1 bytes, line 37
37
38<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":23185697,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/23185697","merchantName":"Navien OptiSleep","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","discover","amex","elo","jcb"],"total":{"type":"pending","label":"Navien OptiSleep","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 38
38
39<script id="shopify-features" type="application/json">{"accessToken":"f67d79006db1c1484de8936c0f21fff2","betas":["rich-media-storefront-analytics"],"domain":"www.navienoptisleep.com","predictiveSearch":true,"shopId":23185697,"locale":"en"}</script>
vendor: 1 bytes, line 39
39
40<script>var Shopify = Shopify || {};
41Shopify.shop = "navien.myshopify.com";
42Shopify.locale = "en";
43Shopify.currency = {"active":"USD","rate":"1.0"};
44Shopify.country = "US";
45Shopify.theme = {"name":"navien-optisleep-theme\/canada","id":157971251431,"schema_name":"Navien OptiSleep v14.94","schema_version":"14.94","theme_store_id":null,"role":"main"};
46Shopify.theme.handle = "null";
47Shopify.theme.style = {"id":null,"handle":null};
48Shopify.cdnHost = "www.navienoptisleep.com/cdn";
49Shopify.routes = Shopify.routes || {};
50Shopify.routes.root = "/";
51Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
52Shopify.SignInWithShop = Shopify.SignInWithShop || {};
53Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
54Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 54
54
55<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 55
55
56<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 56
56
57<script>
58  window.ShopifyPay = window.ShopifyPay || {};
59  window.ShopifyPay.apiHost = "shop.app\/pay";
60  window.ShopifyPay.redirectState = null;
61</script>
vendor: 1 bytes, line 61
61
62<script>
63  window.Shopify = window.Shopify || {};
64  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
65  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
66  window.Shopify.SignInWithShop.eligible = true;
67</script>
vendor: 1 bytes, line 67
67
68<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 68
68
69<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 69
69
70<script type="module">
71  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
72
73  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
74
75</script>
vendor: 1 bytes, line 75
75
76<script>
77  window.Shopify = window.Shopify || {};
78  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
79  window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]};
80</script>
vendor: 1 bytes, line 80
80
81<script>(function() {
82  var isLoaded = false;
83  function asyncLoad() {
84    if (isLoaded) return;
85    isLoaded = true;
86    var urls = ["\/\/cdn.shopify.com\/proxy\/dda763bab73a7d6cc87a821e992925dc352bff7ae609a61c1a98f53a2a6025c3\/d1639lhkj5l89m.cloudfront.net\/js\/storefront\/uppromote.js?shop=navien.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA"];
87    for (var i = 0; i < urls.length; i++) {
88      var s = document.createElement('script');
89      s.type = 'text/javascript';
90      s.async = true;
91      s.src = urls[i];
92      var x = document.getElementsByTagName('script')[0];
93      x.parentNode.insertBefore(s, x);
94    }
95  };
96  if(window.attachEvent) {
97    window.attachEvent('onload', asyncLoad);
98  } else {
99    window.addEventListener('load', asyncLoad, false);
100  }
101})();</script>
vendor: 1 bytes, line 101
101
102<script id="__st">var __st={"a":23185697,"offset":-25200,"reqid":"109f0aea-3384-4096-b356-3d71bb6576e4-1791582403","pageurl":"www.navienoptisleep.com\/pages\/contact","s":"pages-133384634599","u":"a03c4efe5b24","p":"page","rtyp":"page","rid":133384634599};</script>
vendor: 1 bytes, line 102
102
103<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 103
103
104<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 104
104
105<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.navienoptisleep.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 105
105
106<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//www.navienoptisleep.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
106<script crossorigin="anonymous" defer="defer" src="//www.navienoptisleep.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-f0e26bdf.js?v=20250812"></script>
vendor: 1 bytes, line 106
106
107<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 107
107
108<script>
109  window.Shopify = window.Shopify || {};
110  window.Shopify.MCP = window.Shopify.MCP || {};
111  window.Shopify.MCP.enabled = true;
112  window.Shopify.MCP.shop = "navien.myshopify.com";
113  window.Shopify.MCP.mcpEndpoint = "https:\/\/www.navienoptisleep.com\/api\/mcp";
114  window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n  - What is your return policy?\n  - What is your shipping policy?\n  - What is your phone number?\n  - What are your hours of operation?\"\nSet policy_types to also get the store's written policies (full text and URL).\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question — e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}];
115</script>
vendor: 1 bytes, line 115
115
116<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/www.navienoptisleep.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-f427de6a.js","sha256-ypGF+5vIq4Psw4WG7nsVtdd\/TCfsJWnrNuACdqLCElY=");})();
117</script>
vendor: 1 bytes, line 117
117
118<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://www.navienoptisleep.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
119</script>
vendor: 1 bytes, line 119
119
120<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
121  function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent);
122</script>
vendor: 1 bytes, line 122
122
123<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}}));
124</script>
124
125<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.navienoptisleep.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
126<style id="shopify-accelerated-checkout-cart">
127        #shopify-buyer-consent {
128  margin-top: 1em;
129  display: inline-block;
130  width: 100%;
131}
132
133#shopify-buyer-consent.hidden {
134  display: none;
135}
136
137#shopify-subscription-policy-button {
138  background: none;
139  border: none;
140  padding: 0;
141  text-decoration: underline;
142  font-size: inherit;
143  cursor: pointer;
144}
145
146#shopify-subscription-policy-button::before {
147  box-shadow: none;
148}
149
150      </style>
151
152<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
152
153
154  <!-- Fonts: Theme 1 — DM Serif Display + Inter -->
155  <link rel="preconnect" href="https://fonts.googleapis.com">
156  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
157  <link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
158
159  <link href="//www.navienoptisleep.com/cdn/shop/t/107/assets/theme.css?v=75395027484362173501790202016" rel="stylesheet" type="text/css" media="all" />
160<!-- BEGIN app block: shopify://apps/consentmo-gdpr/blocks/gdpr_cookie_consent/4fbe573f-a377-4fea-9801-3ee0858cae41 -->
161<link rel="preconnect" href="https://app.consentmo.com" crossorigin data-csm-preconnect="app">
162<link rel="dns-prefetch" href="https://workers.consentmo.com" data-csm-preconnect="workers">
163<link rel="dns-prefetch" href="https://storage.consentmo.com" data-csm-preconnect="storage">
164<link rel="preconnect" href="https://cdn.consentmo.com" crossorigin data-csm-preconnect="cdn"><link rel="prefetch" href="https://cdn.shopify.com/extensions/01a12154-4cd8-77a6-b810-64e92981e3ee/gdpr-backpack-920/assets/layout-cookie-bar.consentmo.js" crossorigin data-csm-layout-prefetch="banner">
165  <link rel="prefetch" href="https://cdn.shopify.com/extensions/01a12154-4cd8-77a6-b810-64e92981e3ee/gdpr-backpack-920/assets/layout-cookie-dialog.consentmo.js" crossorigin data-csm-layout-prefetch="dialog">
166  <link rel="prefetch" href="https://cdn.shopify.com/extensions/01a12154-4cd8-77a6-b810-64e92981e3ee/gdpr-backpack-920/assets/layout-cookie-box.consentmo.js" crossorigin data-csm-layout-prefetch="box">
167  <link rel="prefetch" href="https://cdn.shopify.com/extensions/01a12154-4cd8-77a6-b810-64e92981e3ee/gdpr-backpack-920/assets/layout-cookie-smart-banner.consentmo.js" crossorigin data-csm-layout-prefetch="smart">
168  <link rel="prefetch" href="https://cdn.shopify.com/extensions/01a12154-4cd8-77a6-b810-64e92981e3ee/gdpr-backpack-920/assets/layout-mobile-cookie-bar.consentmo.js" crossorigin data-csm-layout-prefetch="mobile">
168<script>
169(function () {
170  try {
171    document.documentElement.classList.add('csm-cookie-embed');
172  } catch (e) {}
173})();
174</script>
174<script data-consentmo-data-src-bootstrap>
175(function () {
176  'use strict';
177  if (window.__consentmoDataSrcBootstrapInit) return;
178  window.__consentmoDataSrcBootstrapInit = true;
179
180  var DATA_SRC_SELECTOR = [
181    'script[data-src*="consentmo_cookie_consent"]',
182    'script[data-src*="gdpr_cookie_consent.min"]',
183    'script[data-src*="gdrp_cookie_consent_unlimited"]'
184  ].join(',');
185
186  function activateConsentmoDataSrcScripts() {
187    if (!window.Shopify || !window.Shopify.shop) return;
188    document.querySelectorAll(DATA_SRC_SELECTOR).forEach(function (scriptEl) {
189      // getAttribute: src="" must not count as "already has src" (.src === page URL).
190      if (scriptEl.getAttribute('src')) return;
191      var url = scriptEl.getAttribute('data-src');
192      if (!url) return;
193      if (scriptEl.getAttribute('type') === 'text/plain') {
194        scriptEl.removeAttribute('type');
195      }
196      scriptEl.src = url;
197    });
198  }
199  function scheduleActivation() {
200    activateConsentmoDataSrcScripts();
201    // Retry on next task so other DCL handlers (lazy-loaders) can finish setting Shopify.shop / data-src first.
202    setTimeout(activateConsentmoDataSrcScripts, 0);
203  }
204  if (document.readyState === 'loading') {
205    document.addEventListener('DOMContentLoaded', scheduleActivation, { once: true });
206  } else {
207    scheduleActivation();
208  }
209})();
210</script>
210
211
212
213<!-- END app block --><!-- BEGIN app block: shopify://apps/consentmo-gdpr/blocks/ada_compliance/4fbe573f-a377-4fea-9801-3ee0858cae41 -->
214<!-- 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 />
215<link rel='preconnect dns-prefetch' href='https://conf.config-security.com/' crossorigin />
216<script>
217/* >> TriplePixel :: start*/
218window.TriplePixelData={TripleName:"navien.myshopify.com",ver:"2.16",plat:"SHOPIFY",isHeadless:false,src:'SHOPIFY_EXT',product:{id:"",name:``,price:"",variant:"",av:{  }},search:"",collection:"",cart:"",template:"page",curr:"USD" || "USD", market:"215122151"},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);
219/* << TriplePixel :: end*/
220</script>
220
221
222
223
224<!-- END app block --><!-- BEGIN app block: shopify://apps/shopliveassistant/blocks/live_preview_banner_embed/019e049c-3535-7bc6-9d43-1831fd99403d -->
225
226  <!-- BEGIN app snippet: shoplive-loader -->
227<script>
228  window.__csljsloader = window.__csljsloader || {
229    _ready: false, _queue: [],
230    onReady: function(cb) { this._ready ? cb() : this._queue.push(cb); },
231    markReady: function() { this._ready = true; this._queue.forEach(function(cb){ cb(); }); this._queue = []; }
232  };
233
234  if (!window.__csljsloading) {
235    window.__csljsloading = true;
236    const _slConfig = { platform: 'SHOPIFY', accessKey: "rzg4RhUvn9bO8lhBnve4" };
237    if (window.__slMessageCallback) _slConfig.messageCallback = window.__slMessageCallback;
238    
239    const _slScript = document.createElement('script');
240    _slScript.src = 'https://static.shoplive.cloud/shoplive.js';
241    _slScript.onload = function() {
242      cloud.shoplive.initPlugin(_slConfig);
243      window.__csljsloader.markReady();
244    };
245    document.head.appendChild(_slScript);
246  }
247</script>
247
248<!-- END app snippet -->
249
250
251
252
253<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 -->
254
255
256
257
258
259
260
261
262
263
264
265
266  
266<script async src="https://static.klaviyo.com/onsite/js/MbXtNa/klaviyo.js?company_id=MbXtNa"></script>
266
267  
267<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>
267
268
269  
270
271
272
273
274  
274<script>
275    window.klaviyoReviewsProductDesignMode = false
276  </script>
276
277
278
279
280
281
282
283
284
285
286<!-- END app block --><!-- BEGIN app block: shopify://apps/uppromote-affiliate/blocks/core-script/64c32457-930d-4cb9-9641-e24c0d9cf1f4 --><!-- BEGIN app snippet: core-metafields-setting --><!--suppress ES6ConvertVarToLetConst -->
287<script type="application/json" id="core-uppromote-settings">{"active_reg_from":true,"app_env":{"env":"production"},"cx_referral_settings":{"setting":{"select_theme":1,"design_banner_image_horizontal":"\/storage\/uploads\/icons\/customer-referral\/horizontal.webp","design_banner_image_vertical":"\/storage\/uploads\/icons\/customer-referral\/vertical.webp","design_color_background":"#ffffff","design_color_text":"#092c4c","design_color_button":"#1d85e8","design_color_button_text":"#ffffff","content_sign_up_title":"REFER A FRIEND, GET A REWARD!","content_sign_up_description":"Send your friends a {friend_incentive} discount on their purchases. Once they make a purchase, you’ll earn {customer_reward} for each order! This reward can be redeemed for coupons.","content_sign_up_customer_email":"Your email","content_sign_up_customer_name":"Your name (optional)","content_sign_up_button_text":"Create account","content_sign_up_referral_guide_status":1,"content_sign_up_referral_guide_title":"How it works","content_sign_up_referral_guide_share_your_link":{"icon":"\/storage\/uploads\/icons\/customer-referral\/icon-1.svg","title":"Share your link"},"content_sign_up_referral_your_friend_purchase":{"icon":"\/storage\/uploads\/icons\/customer-referral\/icon-2.svg","title":"Your friend purchases"},"content_sign_up_referral_guide_you_get_rewarded":{"icon":"\/storage\/uploads\/icons\/customer-referral\/icon-3.svg","title":"You get rewarded"},"content_post_signup_title":"REFER A FRIEND, GET A REWARD!","content_post_signup_description":"Send your friends a {friend_incentive} discount on their purchases. Once they make a purchase, you’ll earn {customer_reward} for each order! This reward can be redeemed for coupons.","content_post_signup_referral_link":"Your referral link","content_post_signup_button_text":"Copy link","content_post_signup_referral_guide_status":1,"content_post_signup_referral_guide_title":"How it works","content_post_signup_referral_guide_share_your_link":{"icon":"\/storage\/uploads\/icons\/customer-referral\/icon-1.svg","title":"Share your link"},"content_post_signup_referral_your_friend_purchase":{"icon":"\/storage\/uploads\/icons\/customer-referral\/icon-2.svg","title":"Your friend purchases"},"content_post_signup_referral_guide_you_get_rewarded":{"icon":"\/storage\/uploads\/icons\/customer-referral\/icon-3.svg","title":"You get rewarded"},"active":1},"program":{"status":1,"refer_customer_incentive":{"type":"percentage","value":5,"price_rule_id":"1656130863335","coupon":"UPPROMOTE_CUSTOMER_REFERRAL"},"commission_type":2,"commission_amount":"15.00"},"shop":{"currency_format":"${{amount}}"},"active_customer_referral":1,"asset_url":"https:\/\/cdn.uppromote.com","extension_endpoint":"https:\/\/extensions.uppromote.com","setting_post_purchase_signup":{"active":1,"show_only_once_per_customer":0,"close_on_background_click":1,"design_banner_image":"","design_width":480,"design_height":200,"design_color_background":"#ffffff","design_color_text":"#092C4C","design_color_button":"#1D85E8","design_color_button_text":"#ffffff","content_sign_up_title":"Refer a friend, get a reward!","content_sign_up_description":"Give your friends {friend_incentive} OFF and get {customer_reward} OFF","content_sign_up_button_text":"Get referral link","content_sign_up_referral_guide_status":1,"content_sign_up_referral_guide_title":"How it works","content_sign_up_referral_guide_share_your_link":{"icon":"\/storage\/uploads\/icons\/customer-referral\/icon-1.svg","title":"Share your link"},"content_sign_up_referral_guide_your_friend_purchase":{"icon":"\/storage\/uploads\/icons\/customer-referral\/icon-2.svg","title":"Your friend purchases"},"content_sign_up_referral_guide_you_get_rewarded":{"icon":"\/storage\/uploads\/icons\/customer-referral\/icon-3.svg","title":"You get rewarded"},"content_post_signup_title":"Refer a friend, get a reward!","content_post_signup_description":"Give your friends {friend_incentive} OFF and get {customer_reward} OFF","content_post_signup_button_text":"Copy link","content_post_signup_referral_guide_status":1,"content_post_signup_referral_guide_title":"How it works","content_post_signup_referral_guide_share_your_link":{"icon":"\/storage\/uploads\/icons\/customer-referral\/icon-1.svg","title":"Share your link"},"content_post_signup_referral_guide_your_friend_purchase":{"icon":"\/storage\/uploads\/icons\/customer-referral\/icon-2.svg","title":"Your friend purchases"},"content_post_signup_referral_guide_you_get_rewarded":{"icon":"\/storage\/uploads\/icons\/customer-referral\/icon-3.svg","title":"You get rewarded"}},"branding_customer_referral":true}}</script>
vendor: 1 bytes, line 287
287
288<script type="application/json" id="core-uppromote-cart">{"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}</script>
288
289
290<script id="core-uppromote-quick-store-tracking-vars">
291    function getDocumentContext(){const{href:a,hash:b,host:c,hostname:d,origin:e,pathname:f,port:g,protocol:h,search:i}=window.location,j=document.referrer,k=document.characterSet,l=document.title;return{location:{href:a,hash:b,host:c,hostname:d,origin:e,pathname:f,port:g,protocol:h,search:i},referrer:j||document.location.href,characterSet:k,title:l}}function getNavigatorContext(){const{language:a,cookieEnabled:b,languages:c,userAgent:d}=navigator;return{language:a,cookieEnabled:b,languages:c,userAgent:d}}function getWindowContext(){const{innerHeight:a,innerWidth:b,outerHeight:c,outerWidth:d,origin:e,screen:{height:j,width:k},screenX:f,screenY:g,scrollX:h,scrollY:i}=window;return{innerHeight:a,innerWidth:b,outerHeight:c,outerWidth:d,origin:e,screen:{screenHeight:j,screenWidth:k},screenX:f,screenY:g,scrollX:h,scrollY:i,location:getDocumentContext().location}}function getContext(){return{document:getDocumentContext(),navigator:getNavigatorContext(),window:getWindowContext()}}
292    if (window.location.href.includes('?sca_ref=')) {
293        localStorage.setItem('__up_lastViewedPageContext', JSON.stringify({
294            context: getContext(),
295            timestamp: new Date().toISOString(),
296        }))
297    }
298</script>
298
299
300
301<script id="core-uppromote-setting-booster">
302    var UpPromoteCoreSettings = JSON.parse(document.getElementById('core-uppromote-settings').textContent)
303    UpPromoteCoreSettings.currentCart = JSON.parse(document.getElementById('core-uppromote-cart')?.textContent || '{}')
304    const idToClean = ['core-uppromote-settings', 'core-uppromote-cart', 'core-uppromote-setting-booster', 'core-uppromote-quick-store-tracking-vars']
305    idToClean.forEach(id => {
306        document.getElementById(id)?.remove()
307    })
308</script>
308
309<!-- END app snippet -->
310
311
312<!-- END app block -->
312<script src="https://cdn.shopify.com/extensions/01a12154-4cd8-77a6-b810-64e92981e3ee/gdpr-backpack-920/assets/consentmo_ada.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 312
312
313<script src="https://cdn.shopify.com/extensions/01a12154-4cd8-77a6-b810-64e92981e3ee/gdpr-backpack-920/assets/consentmo_cookie_consent.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 313
313
314<script src="https://cdn.shopify.com/extensions/01a10ad0-9f32-7eb2-a83e-3427bdf52ded/affliate-by-secomapp-129/assets/core.min.js" type="text/javascript" defer="defer"></script>
314
315<meta property="og:image" content="https://cdn.shopify.com/s/files/1/2318/5697/files/Navien_Photoshoot3415_de7d18f5-ddec-418b-b409-b6a05b21ec76.jpg?v=1780936114" />
316<meta property="og:image:secure_url" content="https://cdn.shopify.com/s/files/1/2318/5697/files/Navien_Photoshoot3415_de7d18f5-ddec-418b-b409-b6a05b21ec76.jpg?v=1780936114" />
317<meta property="og:image:width" content="4240" />
318<meta property="og:image:height" content="2832" />
319<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
320<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: 23185697,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};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 320
320
321<script>
322  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
323</script>
vendor: 1 bytes, line 323
323
324<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}
324).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: 23185697,storefrontBaseUrl: "https://www.navienoptisleep.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.navienoptisleep.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab"],webPixelsConfigList: [{"id":"2078671079","configuration":"{\"shopId\":\"navien.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":"2052784359","configuration":"{\"accountID\":\"MbXtNa\",\"
324webPixelConfig\":\"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":[]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"1963786471","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-KF2VVWFQDK\\\",\\\"AW-18214027576\\\",\\\"GT-5RFL4FGR\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-KF2VVWFQDK\\\",\\\"AW-18214027576\\\/HVwLCN_IrbscELiCkO1D\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-KF2VVWFQDK\\\",\\\"AW-18214027576\\\/mWwsCOvIrbscELiCkO1D\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-KF2VVWFQDK\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-KF2VVWFQDK\\\",\\\"AW-18214027576\\\/Li5SCOjIrbscELiCkO1D\\\",\\\"MC-2M02MNH12P\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-KF2VVWFQDK\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-KF2VVWFQDK\\\",\\\"AW-18214027576\\\/YuwnCJb7grkcELiCkO1D\\\",\\\"MC-2M02MNH12P\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-KF2VVWFQDK\\\",\\\"AW-18214027576\\\/nB6PCOXIrbscELiCkO1D\\\",\\\"MC-2M02MNH12P\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-KF2VVWFQDK\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-KF2VVWFQDK\\\",\\\"AW-18214027576\\\/VqJrCO7IrbscELiCkO1D\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-KF2VVWFQDK\\\",\\\"AW-18214027576\\\/2cBHCOLIrbscELiCkO1D\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-KF2VVWFQDK\\\"}],\\\"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":"1949008103","configuration":"{\"webPixelName\":\"Judge.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8acc938b1a30dc7624e304493ca567d7","type":"APP","apiClientId":683015,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1937277159","configuration":"{\"redditPixelId\":\"a2_ist1es2jpaeh\",\"dataSharingType\":\"advanced\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"27a6dc1e95874487d57379b5c016869f","type":"APP","apiClientId":304258285569,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1934098663","configuration":"{\"shopId\":\"271830\",\"env\":\"production\",\"metaData\":\"[]\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8323bee30e1ec3ae135ae5e0cef4ab6d","type":"APP","apiClientId":2773553,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1528266983","configuration":"{\"pixel_id\":\"1533191804629303\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"bd2f978c17a94bbb8a74d43de2165dc5","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]}
324,{"id":"1459224807","configuration":"{\"pixelCode\":\"D46PQKBC77UDM7TJINS0\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"22e92c2ad45662f435e4801458fb78cc","type":"APP","apiClientId":4383523,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":[]},"dataSharingState":"optimized"},{"id":"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":"Navien OptiSleep","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"navien.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.navienoptisleep.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://www.navienoptisleep.com/cdn","7ec887c8w14f9f074p854094e1m1370c602",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"157971251431","themePublished":"true","eventMetadataId":"431c9499-107a-4059-a8e8-8b0d3ae3f008","pageType":"page","resourceId":"133384634599","shopId":"23185697","storefrontBaseUrl":"https:\/\/www.navienoptisleep.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\"]","isMerchantRequest":"false","hashVersion":"7ec887c8w14f9f074p854094e1m1370c602","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
324<script>
325  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
326  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
327  window.ShopifyAnalytics.meta.currency = 'USD';
328  var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":133384634599,"requestId":"109f0aea-3384-4096-b356-3d71bb6576e4-1791582403"}};
329  for (var attr in meta) {
330    window.ShopifyAnalytics.meta[attr] = meta[attr];
331  }
332</script>
vendor: 1 bytes, line 332
332
333<script class="analytics">
334  (function () {
335    var customDocumentWrite = function(content) {
336      var jquery = null;
337
338      if (window.jQuery) {
339        jquery = window.jQuery;
340      } else if (window.Checkout && window.Checkout.$) {
341        jquery = window.Checkout.$;
342      }
343
344      if (jquery) {
345        jquery('body').append(content);
346      }
347    };
348
349    var hasLoggedConversion = function(token) {
350      if (token) {
351        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
352      }
353      return false;
354    }
355
356    var setCookieIfConversion = function(token) {
357      if (token) {
358        var twoMonthsFromNow = new Date(Date.now());
359        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
360
361        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
362      }
363    }
364
365    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
366    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
367    if (trekkie.integrations) {
368      return;
369    }
370    trekkie.methods = [
371      'identify',
372      'page',
373      'ready',
374      'track',
375      'trackForm',
376      'trackLink'
377    ];
378    trekkie.factory = function(method) {
379      return function() {
380        var args = Array.prototype.slice.call(arguments);
381        args.unshift(method);
382        trekkie.push(args);
383        if (method == 'track' || method == 'page') {
384          var pageUrl;
385          try {
386            pageUrl = window.location.href;
387          } catch (e) {}
388          var pageReferrer;
389          try {
390            pageReferrer = document.referrer;
391          } catch (e) {}
392          try {
393            if (window.__TREKKIE_SHIM_QUEUE == null) {
394              window.__TREKKIE_SHIM_QUEUE = [];
395            }
396            window.__TREKKIE_SHIM_QUEUE.push({
397              from: 'trekkie-stub',
398              method: method,
399              args: args.slice(1),
400              pageContext: {
401                url: pageUrl,
402                referrer: pageReferrer
403              }
404            });
405          } catch (e) {
406            // no-op
407          }
408        }
409        return trekkie;
410      };
411    };
412    for (var i = 0; i < trekkie.methods.length; i++) {
413      var key = trekkie.methods[i];
414      trekkie[key] = trekkie.factory(key);
415    }
416    trekkie.load = function(config) {
417      trekkie.config = config || {};
418      trekkie.config.initialDocumentCookie = document.cookie;
419      var first = document.getElementsByTagName('script')[0];
420var script = document.createElement('script');
421script.type = 'text/javascript';
422script.onerror = function(e) {
423  var scriptFallback = document.createElement('script');
424  scriptFallback.type = 'text/javascript';
425  scriptFallback.onerror = function(error) {
426          var Monorail = {
427      produce: function produce(monorailDomain, schemaId, payload) {
428        var currentMs = new Date().getTime();
429        var event = {
430          schema_id: schemaId,
431          payload: payload,
432          metadata: {
433            event_created_at_ms: currentMs,
434            event_sent_at_ms: currentMs
435          }
436        };
437        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
438      },
439      sendRequest: function sendRequest(endpointUrl, payload) {
440        // Try the sendBeacon API
441        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
442          var blobData = new window.Blob([payload], {
443            type: 'text/plain'
444          });
445
446          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
447            return true;
448          } // sendBeacon was not successful
449
450        } // XHR beacon
451
452        var xhr = new XMLHttpRequest();
453
454        try {
455          xhr.open('POST', endpointUrl);
456          xhr.setRequestHeader('Content-Type', 'text/plain');
457          xhr.send(payload);
458        } catch (e) {
459          console.log(e);
460        }
461
462        return false;
463      },
464      isIos12: function isIos12() {
465        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
466      }
467    };
468    Monorail.produce('monorail-edge.shopifysvc.com',
469      'trekkie_storefront_load_errors/1.1',
470      {shop_id: 23185697,
471      theme_id: 157971251431,
472      app_name: "storefront",
473      context_url: window.location.href,
474      source_url: "//www.navienoptisleep.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"});
475
476  };
477  scriptFallback.async = true;
478  scriptFallback.src = '//www.navienoptisleep.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js';
479  first.parentNode.insertBefore(scriptFallback, first);
480};
481script.async = true;
482script.src = '//www.navienoptisleep.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js';
483first.parentNode.insertBefore(script, first);
484
485    };
486    trekkie.load(
487      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":23185697,"isMerchantRequest":null,"themeId":157971251431,"themeCityHash":"17978121057762695582","contentLanguage":"en","currency":"USD","eventMetadataId":"431c9499-107a-4059-a8e8-8b0d3ae3f008"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}}
488    );
489
490    var loaded = false;
491    trekkie.ready(function() {
492      if (loaded) return;
493      loaded = true;
494
495      window.ShopifyAnalytics.lib = window.trekkie;
496
497      var originalDocumentWrite = document.write;
498      document.write = customDocumentWrite;
499      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
500      document.write = originalDocumentWrite;
501
502      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
503      var token = match? match[1]: undefined;
504      if (!hasLoggedConversion(token)) {
505        setCookieIfConversion(token);
506        
507      }
508    });
509
510    window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":133384634599,"requestId":"109f0aea-3384-4096-b356-3d71bb6576e4-1791582403","shopifyEmitted":true});
511
512    var eventsListenerScript = document.createElement('script');
513    eventsListenerScript.async = true;
514    eventsListenerScript.src = "//www.navienoptisleep.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
515    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
516})();</script>
vendor: 1 bytes, line 516
516
517<script
518  defer
519  src="https://www.navienoptisleep.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.10.1.min.js"
520  data-application="storefront-renderer"
521  data-shop-id="23185697"
522  data-render-region="gcp-us-central1"
523  data-page-type="page"
524  data-theme-instance-id="157971251431"
525  data-theme-name="Navien OptiSleep v14.94"
526  data-theme-version="14.94"
527  data-monorail-region="shop_domain"
528  data-resource-timing-sampling-rate="10"
529  data-shs="true"
530  data-shs-beacon="true"
531  data-shs-export-with-fetch="true"
532  data-shs-logs-sample-rate="1"
533  data-shs-beacon-endpoint="https://www.navienoptisleep.com/api/collect"
534></script>
534
535<meta name="shopify-y" content="21e381f0-aee5-4f9b-bcaa-ea0000e298e5" data-expiration="1823140003000"><meta name="shopify-s" content="9b09527e-7571-460d-af7e-f10399f9c68e" data-expiration="1791584203000">
536</head>
537
538
539
540<body>
541
542<a class="skip-link" href="#main">Skip to content</a>
543
544<!-- ═══ ANNOUNCEMENT BAR ═══ --><div class="ann-bar" id="annBar" aria-label="Promotion" data-market="US">
545  <div class="ann-bar-inner">
546    <span class="ann-bar-text" id="annBarText">
547      <strong>Fall Sleep Event</strong> &mdash; 20% off the All Season Pro, every size.
548      <a href="#" class="ann-bar-link" onclick="event.preventDefault(); if (window.btHeatOpenFromPill) btHeatOpenFromPill();">Details &rarr;</a>
549    </span>
550  </div>
551</div><!-- ═══ NAV ═══ -->
552<header id="site-nav" class="site-nav" role="banner">
553  <div class="nav-inner">
554
555    <a href="/" class="nav-logo" aria-label="Navien OptiSleep home">
556      <img
557        src="//www.navienoptisleep.com/cdn/shop/t/107/assets/logo-color.png?v=22641108523925621241784159597"
558        alt="Navien OptiSleep"
559        class="nav-logo-img"
560        width="180"
561        height="32"
562        loading="eager"
563      >
564    </a>
565
566    <nav class="nav-links" aria-label="Primary navigation">
567      <a href="/products/navien-optisleep-pro">All Season Pro</a>
568      <a href="/collections/navien-mate" class="nav-link-secondary">Heating Only</a>
569      <a href="/pages/about">About Navien</a>
570      <a href="/pages/faq">FAQ</a>
571    </nav>
572
573    <div class="nav-actions">
574      <div class="nv-header-country nv-header-country--desktop"><form method="post" action="/localization" id="NvHeaderCountry_desktop" accept-charset="UTF-8" class="nv-header-country-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/pages/contact" /><div class="nv-header-country-trigger"><svg class="nv-flag nv-flag-us" width="16" height="16" viewBox="0 0 20 20" role="img" aria-label="United States" xmlns="http://www.w3.org/2000/svg">
575      <defs>
576        <clipPath id="nvFlagUsClip16"><circle cx="10" cy="10" r="10"/></clipPath>
577      </defs>
578      <g clip-path="url(#nvFlagUsClip16)">
579        <rect width="20" height="20" fill="#fff"/>
580        <g fill="#B22234">
581          <rect y="0" width="20" height="1.54" />
582          <rect y="3.08" width="20" height="1.54" />
583          <rect y="6.15" width="20" height="1.54" />
584          <rect y="9.23" width="20" height="1.54" />
585          <rect y="12.31" width="20" height="1.54" />
586          <rect y="15.38" width="20" height="1.54" />
587          <rect y="18.46" width="20" height="1.54" />
588        </g>
589        <rect width="9" height="9.23" fill="#3C3B6E"/>
590      </g>
591    </svg><svg class="nv-header-country-caret" width="8" height="5" viewBox="0 0 8 5" fill="none" aria-hidden="true"><path d="M1 1l3 3 3-3" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/></svg>
592      </div>
593      <select
594        class="nv-header-country-select"
595        name="country_code"
596        aria-label="Country/Region — currently United States"
597        onchange="this.form.submit()"
598      ><option value="CA" >
599            Canada (CAD)
600          </option><option value="US" selected>
601            United States (USD)
602          </option></select></form></div>
603<style>
604  .nv-header-country { position: relative; display: inline-flex; align-items: center; }
605  .nv-header-country-trigger {
606    display: flex; align-items: center; gap: 5px;
607    padding: 6px; border-radius: 6px; pointer-events: none;
608    transition: background .15s ease;
609  }
610  .nv-header-country:hover .nv-header-country-trigger { background: rgba(13,31,78,0.06); }
611  .nv-flag { display: block; border-radius: 50%; flex-shrink: 0; }
612  .nv-header-country-caret { color: var(--optisleep-gray, #6E7B8F); flex-shrink: 0; }
613  .nv-header-country-select {
614    position: absolute; inset: 0; width: 100%; height: 100%;
615    opacity: 0; cursor: pointer; border: 0; appearance: none;
616  }
617  /* Desktop: sits inline among nav-actions siblings */
618  .nv-header-country--desktop { margin-right: 4px; }
619  /* Mobile: larger touch target inside the mobile nav sheet */
620  .nv-header-country--mobile {
621    width: 100%; margin: 4px 0 8px;
622    border-top: 1px solid rgba(13,31,78,0.08);
623    padding-top: 14px;
624  }
625  .nv-header-country--mobile .nv-header-country-trigger {
626    gap: 8px; padding: 8px 4px;
627  }
628  .nv-header-country--mobile .nv-flag { width: 20px !important; height: 20px !important; }
629</style>
630      <button type="button" class="nav-cart" id="navCartBtn" onclick="cartDrawer.open()" aria-label="Cart (0 items)">
631        <svg width="19" height="19" viewBox="0 0 32 32" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
632          <path d="M6 6h20l-2.5 14H8.5L6 6z"/>
633          <circle cx="11" cy="25" r="2"/>
634          <circle cx="21" cy="25" r="2"/>
635        </svg></button>
636      <a href="/products/navien-optisleep-pro" class="nav-cta">
637        Shop All Season Pro
638      </a>
639      <button class="nav-burger" id="navBurger" aria-label="Open menu" aria-expanded="false" aria-controls="mobileNav">
640        <span></span><span></span><span></span>
641      </button>
642    </div>
643
644  </div>
645
646  <!-- Mobile nav -->
647  <div class="mobile-nav" id="mobileNav" aria-hidden="true">
648    <div class="mobile-nav-inner">
649      <div class="nv-header-country nv-header-country--mobile"><form method="post" action="/localization" id="NvHeaderCountry_mobile" accept-charset="UTF-8" class="nv-header-country-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/pages/contact" /><div class="nv-header-country-trigger"><svg class="nv-flag nv-flag-us" width="16" height="16" viewBox="0 0 20 20" role="img" aria-label="United States" xmlns="http://www.w3.org/2000/svg">
650      <defs>
651        <clipPath id="nvFlagUsClip16"><circle cx="10" cy="10" r="10"/></clipPath>
652      </defs>
653      <g clip-path="url(#nvFlagUsClip16)">
654        <rect width="20" height="20" fill="#fff"/>
655        <g fill="#B22234">
656          <rect y="0" width="20" height="1.54" />
657          <rect y="3.08" width="20" height="1.54" />
658          <rect y="6.15" width="20" height="1.54" />
659          <rect y="9.23" width="20" height="1.54" />
660          <rect y="12.31" width="20" height="1.54" />
661          <rect y="15.38" width="20" height="1.54" />
662          <rect y="18.46" width="20" height="1.54" />
663        </g>
664        <rect width="9" height="9.23" fill="#3C3B6E"/>
665      </g>
666    </svg><svg class="nv-header-country-caret" width="8" height="5" viewBox="0 0 8 5" fill="none" aria-hidden="true"><path d="M1 1l3 3 3-3" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/></svg>
667      </div>
668      <select
669        class="nv-header-country-select"
670        name="country_code"
671        aria-label="Country/Region — currently United States"
672        onchange="this.form.submit()"
673      ><option value="CA" >
674            Canada (CAD)
675          </option><option value="US" selected>
676            United States (USD)
677          </option></select></form></div>
678<style>
679  .nv-header-country { position: relative; display: inline-flex; align-items: center; }
680  .nv-header-country-trigger {
681    display: flex; align-items: center; gap: 5px;
682    padding: 6px; border-radius: 6px; pointer-events: none;
683    transition: background .15s ease;
684  }
685  .nv-header-country:hover .nv-header-country-trigger { background: rgba(13,31,78,0.06); }
686  .nv-flag { display: block; border-radius: 50%; flex-shrink: 0; }
687  .nv-header-country-caret { color: var(--optisleep-gray, #6E7B8F); flex-shrink: 0; }
688  .nv-header-country-select {
689    position: absolute; inset: 0; width: 100%; height: 100%;
690    opacity: 0; cursor: pointer; border: 0; appearance: none;
691  }
692  /* Desktop: sits inline among nav-actions siblings */
693  .nv-header-country--desktop { margin-right: 4px; }
694  /* Mobile: larger touch target inside the mobile nav sheet */
695  .nv-header-country--mobile {
696    width: 100%; margin: 4px 0 8px;
697    border-top: 1px solid rgba(13,31,78,0.08);
698    padding-top: 14px;
699  }
700  .nv-header-country--mobile .nv-header-country-trigger {
701    gap: 8px; padding: 8px 4px;
702  }
703  .nv-header-country--mobile .nv-flag { width: 20px !important; height: 20px !important; }
704</style>
705      <a href="/products/navien-optisleep-pro" class="mobile-nav-featured">All Season Pro</a>
706      <a href="/collections/navien-mate" class="nav-link-secondary">Heating Only</a>
707      <a href="/pages/about">About Navien</a>
708      <a href="/pages/faq">FAQ</a>
709    </div>
710  </div>
711</header>
712
713<main id="main" tabindex="-1">
714  <section id="shopify-section-template--21551578710247__main" class="shopify-section"><div class="page-hero">
715  <div class="container">
716    <div class="page-hero-eyebrow">
717      <span style="display:block;width:24px;height:1px;background:currentColor;opacity:.4;" aria-hidden="true"></span>
718      Get in touch
719    </div>
720    <h1 class="page-hero-title">
721      We&rsquo;re here.<br><em>Real answers, fast.</em>
722    </h1>
723    <p class="page-hero-sub">
724      Questions about the product, your order, warranty, or anything else —
725      our support team responds within 2 business days.
726    </p>
727  </div>
728</div>
729
730<section class="page-body" aria-label="Contact">
731  <div class="container" style="max-width:960px;">
732
733    <div class="contact-grid sr"><div class="contact-left">
734        <div class="section-label" style="margin-bottom:24px;">
735          <span class="section-label-line" aria-hidden="true"></span>
736          Ways to reach us
737        </div>
738
739        <div class="contact-method">
740          <div class="contact-method-icon">
741            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/><polyline points="22,6 12,13 2,6"/></svg>
742          </div>
743          <div>
744            <div class="contact-method-label">Email</div>
745            <div class="contact-method-val"><a href="mailto:[email protected]" style="color:var(--navien-blue);">[email protected]</a></div>
746            <div class="contact-method-note">Response within 2 business days</div>
747          </div>
748        </div>
749
750        
751
752        <div class="contact-method">
753          <div class="contact-method-icon">
754            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07A19.5 19.5 0 0 1 4.69 13a19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 3.18 2h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L7.91 9.91a16 16 0 0 0 6.16 6.16l1.27-1.27a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 22 16.92z"/></svg>
755          </div>
756          <div>
757            <div class="contact-method-label">Phone</div>
758            <div class="contact-method-val">1-877-689-1541</div>
759            <div class="contact-method-note">Mon–Fri, 9am–5pm PT · Warranty &amp; technical support</div>
760          </div>
761        </div>
762
763        <div class="contact-method">
764          <div class="contact-method-icon">
765            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg>
766          </div>
767          <div>
768            <div class="contact-method-label">Corporate</div>
769            <div class="contact-method-val">Navien, Inc.</div>
770            <div class="contact-method-note">Irvine, California &middot; navieninc.com</div>
771          </div>
772        </div><div class="contact-social" style="margin-top:32px;">
773          <div style="font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:16px;">Follow Us</div>
774          <div style="display:flex;gap:16px;align-items:center;">
775            <a href="https://www.instagram.com/navien_optisleep" target="_blank" rel="noopener" aria-label="Instagram" class="contact-social-icon">
776              <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2" y="2" width="20" height="20" rx="5"/><circle cx="12" cy="12" r="4.5"/><circle cx="17.5" cy="6.5" r="1.2" fill="currentColor" stroke="none"/></svg>
777            </a>
778            <a href="https://www.facebook.com/KDNavienNaveMateNorthAmerica/" target="_blank" rel="noopener" aria-label="Facebook" class="contact-social-icon">
779              <svg width="28" height="28" viewBox="0 0 24 24" fill="currentColor" stroke="none" aria-hidden="true"><path d="M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12c0 4.99 3.66 9.13 8.44 9.88v-6.99H7.9V12h2.54V9.77c0-2.51 1.49-3.89 3.78-3.89 1.09 0 2.24.2 2.24.2v2.46h-1.26c-1.24 0-1.63.77-1.63 1.56V12h2.77l-.44 2.89h-2.33v6.99C18.34 21.13 22 16.99 22 12z"/></svg>
780            </a>
781            <a href="https://www.threads.com/@navien_optisleep" target="_blank" rel="noopener" aria-label="Threads" class="contact-social-icon">
782              <svg width="28" height="28" viewBox="0 0 192 192" fill="currentColor" stroke="none" aria-hidden="true"><path d="M141.537 88.988a66.667 66.667 0 0 0-2.518-1.143c-1.482-27.307-16.403-42.94-41.457-43.1h-.34c-14.986 0-27.449 6.396-35.12 18.036l13.779 9.452c5.73-8.695 14.724-10.548 21.348-10.548h.23c8.249.053 14.474 2.452 18.502 7.13 2.932 3.405 4.893 8.11 5.864 14.05-7.314-1.243-15.224-1.626-23.68-1.14-23.82 1.371-39.134 15.264-38.105 34.568.522 9.792 5.4 18.216 13.735 23.719 7.047 4.652 16.124 6.927 25.557 6.412 12.458-.683 22.231-5.436 29.049-14.127 5.178-6.6 8.453-15.153 9.899-25.93 5.937 3.583 10.337 8.298 12.767 13.966 4.132 9.635 4.373 25.468-8.546 38.376-11.319 11.308-24.925 16.2-45.488 16.351-22.809-.169-40.06-7.484-51.275-21.742C35.236 139.966 29.808 120.682 29.605 96c.203-24.682 5.63-43.966 16.133-57.317C56.954 24.425 74.204 17.11 97.013 16.94c22.975.17 40.526 7.52 52.171 21.847 5.71 7.026 10.015 15.86 12.853 26.162l16.147-4.308c-3.44-12.68-8.853-23.606-16.219-32.668C147.036 9.607 125.202.195 97.07 0h-.113C68.882.195 47.292 9.643 32.788 28.08 19.882 44.485 13.224 67.315 13.001 95.932L13 96v.067c.224 28.617 6.882 51.447 19.788 67.854C47.292 182.358 68.882 191.806 96.957 192h.113c24.96-.173 42.554-6.708 57.048-21.189 18.963-18.945 18.392-42.692 12.142-57.27-4.484-10.454-13.033-18.945-24.723-24.553zm-52.458 49.087c-10.444.588-21.3-4.098-21.85-14.135-.398-7.472 5.338-15.806 22.605-16.802 1.981-.114 3.927-.169 5.838-.169 6.097 0 11.8.558 17.018 1.624-1.934 24.117-13.974 28.884-23.611 29.482z"/></svg>
783            </a>
784          </div>
785        </div><div style="margin-top:48px;padding:32px 28px;background:var(--white);border-radius:var(--radius-md);">
786          <div style="font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:16px;">Before you write</div>
787          <p style="font-size:13px;color:var(--ink-light);margin-bottom:16px;line-height:1.6;">Many common questions are answered in our FAQ and setup guide.</p>
788          <div style="display:flex;flex-direction:column;gap:8px;">
789            <a href="/pages/faq" style="font-size:13px;font-weight:600;color:var(--navien-blue);display:flex;align-items:center;gap:6px;">
790              <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="9 18 15 12 9 6"/></svg>
791              Frequently asked questions
792            </a>
793            <a href="/pages/setup" style="font-size:13px;font-weight:600;color:var(--navien-blue);display:flex;align-items:center;gap:6px;">
794              <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="9 18 15 12 9 6"/></svg>
795              Setup guide
796            </a>
797            <a href="/pages/warranty" style="font-size:13px;font-weight:600;color:var(--navien-blue);display:flex;align-items:center;gap:6px;">
798              <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="9 18 15 12 9 6"/></svg>
799              Warranty &amp; claims
800            </a>
801          </div>
802        </div>
803      </div><div class="contact-right sr sr-delay-1">
804        <div class="contact-form-card">
805          <div style="font-family:var(--serif);font-size:22px;font-weight:400;color:var(--ink);margin-bottom:8px;">Send us a message</div>
806          <p style="font-size:13px;color:var(--ink-light);margin-bottom:28px;line-height:1.5;">We read every message and respond within 2 business days.</p><form method="post" action="/contact#contact-form" id="contact-form" accept-charset="UTF-8" class="contact-form"><input type="hidden" name="form_type" value="contact" /><input type="hidden" name="utf8" value="✓" /><div style="display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:0;">
807              <div class="customer-field">
808                <label class="customer-label" for="ContactFormName">Name</label>
809                <input class="customer-input" type="text" id="ContactFormName" name="contact[name]" value="" autocomplete="name">
810              </div>
811              <div class="customer-field">
812                <label class="customer-label" for="ContactFormEmail">Email *</label>
813                <input class="customer-input" type="email" id="ContactFormEmail" name="contact[email]" value="" required autocomplete="email">
814              </div>
815            </div>
816
817            <div class="customer-field">
818              <label class="customer-label" for="ContactFormTopic">Topic</label>
819              <select class="customer-input" id="ContactFormTopic" name="contact[topic]" style="cursor:pointer;">
820                <option value="">Select a topic&hellip;</option>
821                <option>Order &amp; shipping</option>
822                <option>Product question</option>
823                <option>Setup &amp; app support</option>
824                <option>Warranty claim</option>
825                <option>30-night trial / return</option>
826                <option>Press &amp; media</option>
827                <option>Other</option>
828              </select>
829            </div>
830
831            <div class="customer-field">
832              <label class="customer-label" for="ContactFormPhone">Phone (optional)</label>
833              <input class="customer-input" type="tel" id="ContactFormPhone" name="contact[phone]" value="" autocomplete="tel">
834            </div>
835
836            <div class="customer-field">
837              <label class="customer-label" for="ContactFormMessage">Message *</label>
838              <textarea class="customer-input" id="ContactFormMessage" name="contact[body]" rows="5" required style="resize:vertical;"></textarea>
839            </div>
840
841            <button type="submit" class="customer-submit">Send message &rarr;</button></form></div>
842      </div>
843
844    </div>
845
846  </div>
847</section>
848
849
850</section>
851</main>
852
853<!-- ═══ FOOTER ═══ -->
854<footer class="site-footer" role="contentinfo">
855  <div class="footer-inner">
856    <div class="footer-grid">
857
858      <div class="footer-brand">
859        <div class="footer-logo">
860          <img
861            src="//www.navienoptisleep.com/cdn/shop/t/107/assets/logo-white.png?v=106278576593404284081784159597"
862            alt="Navien OptiSleep"
863            class="footer-logo-img"
864            width="200"
865            height="36"
866            loading="lazy"
867          >
868        </div>
869        <p class="footer-tagline">All Season Pro Sleep System</p>
870        <p class="footer-desc">48 years of temperature engineering by Navien — now perfecting your sleep. One price. No subscription. Precise temperature, every night.</p>
871        <div class="footer-social" aria-label="Follow us on social media">
872          <a href="https://www.instagram.com/navien_optisleep" class="footer-social-link" target="_blank" rel="noopener" aria-label="Instagram">
873            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2" y="2" width="20" height="20" rx="5" ry="5"/><circle cx="12" cy="12" r="4"/><circle cx="17.5" cy="6.5" r="1" fill="currentColor" stroke="none"/></svg>
874          </a>
875          <a href="https://www.facebook.com/KDNavienNaveMateNorthAmerica/" class="footer-social-link" target="_blank" rel="noopener" aria-label="Facebook">
876            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"/></svg>
877          </a>
878          <a href="https://www.threads.com/@navien_optisleep" class="footer-social-link" target="_blank" rel="noopener" aria-label="Threads">
879            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z"/><path d="M15.5 9.5c-.8-1.2-2-1.8-3.5-1.8-2.2 0-4 1.6-4 4s1.8 4 4 4c1.8 0 3.2-.9 3.8-2.3"/><path d="M15.5 9.5c.3.7.5 1.5.5 2.3 0 .5-.1 1-.2 1.4"/></svg>
880          </a>
881        </div>
882      </div>
883
884      <div class="footer-col">
885        <div class="footer-col-title">Product</div>
886        <ul class="footer-links">
887          <li><a href="/products/navien-optisleep-pro">All Season Pro</a></li>
888          <li><a href="/pages/30-night-trial">30-Night Trial</a></li>
889          <li><a href="/pages/setup">
889Setup Guide</a></li>
890          <li><a href="/collections/navien-mate">Heating Only</a></li>
891        </ul>
892      </div>
893
894      <div class="footer-col">
895        <div class="footer-col-title">Support</div>
896        <ul class="footer-links">
897          <li><a href="/pages/support">Support Hub</a></li>
898          <li><a href="/pages/warranty">Warranty</a></li>
899          <li><a href="/pages/faq">FAQ</a></li>
900          <li><a href="/pages/contact">Contact Us</a></li>
901        </ul>
902      </div>
903
904      <div class="footer-col">
905        <div class="footer-col-title">Company</div>
906        <ul class="footer-links">
907          <li><a href="/pages/about">About Navien</a></li>
908          <li><a href="/pages/affiliate">Affiliate Program</a></li>
909          <li><a href="/pages/navien-optisleep-privacy-policy">Privacy Policy</a></li>
910          <li><a href="/pages/navien-optisleep-terms-of-use">Terms of Use</a></li>
911          <li><a href="/pages/navien-optisleep-terms-of-sale">Terms of Sale</a></li>
912          <li><a href="/pages/accessibility">Accessibility</a></li>
913          <li><a href="/pages/navien-optisleep-ccpa-cpra">Your Privacy Choices</a></li></ul>
914      </div>
915
916    </div>
917
918    <div class="nv-country-wrap">
919  <span class="nv-country-label">Country/Region</span><form method="post" action="/localization" id="NvCountryForm" accept-charset="UTF-8" class="nv-country-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/pages/contact" /><div class="nv-country-select-wrap">
920      <div class="nv-country-trigger" aria-hidden="true"><svg class="nv-flag nv-flag-us" width="16" height="16" viewBox="0 0 20 20" role="img" aria-label="United States" xmlns="http://www.w3.org/2000/svg">
921      <defs>
922        <clipPath id="nvFlagUsClip16"><circle cx="10" cy="10" r="10"/></clipPath>
923      </defs>
924      <g clip-path="url(#nvFlagUsClip16)">
925        <rect width="20" height="20" fill="#fff"/>
926        <g fill="#B22234">
927          <rect y="0" width="20" height="1.54" />
928          <rect y="3.08" width="20" height="1.54" />
929          <rect y="6.15" width="20" height="1.54" />
930          <rect y="9.23" width="20" height="1.54" />
931          <rect y="12.31" width="20" height="1.54" />
932          <rect y="15.38" width="20" height="1.54" />
933          <rect y="18.46" width="20" height="1.54" />
934        </g>
935        <rect width="9" height="9.23" fill="#3C3B6E"/>
936      </g>
937    </svg><span class="nv-country-trigger-text">
938          United States (USD)
939        </span>
940        <svg class="nv-country-caret" width="10" height="6" viewBox="0 0 10 6" fill="none"><path d="M1 1l4 4 4-4" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>
941      </div>
942      <select
943        id="NvCountrySelect"
944        class="nv-country-select"
945        name="country_code"
946        aria-label="Country/Region — currently United States"
947        onchange="this.form.submit()"
948      ><option
949            value="CA"
950            
951          >
952            Canada (CAD
953$)
954          </option><option
955            value="US"
956            selected
957          >
958            United States (USD
959$)
960          </option></select>
961    </div>
962    <noscript><button type="submit" class="nv-country-apply">Apply</button></noscript></form></div>
963<style>
964  .nv-country-wrap { margin: 0 0 18px; }
965  .nv-country-label {
966    display: block; font: 500 10.5px/1 var(--sans, 'Outfit', sans-serif);
967    letter-spacing: 0.12em; text-transform: uppercase;
968    color: var(--on-dark-faint, rgba(247,244,239,0.55)); margin-bottom: 8px;
969  }
970  .nv-country-select-wrap { position: relative; display: inline-block; }
971  .nv-country-trigger {
972    display: flex; align-items: center; gap: 8px;
973    border: 1px solid rgba(247,244,239,0.28);
974    border-radius: 6px;
975    color: var(--cream, #F7F4EF);
976    padding: 9px 12px;
977    min-width: 210px;
978    transition: border-color .18s ease;
979  }
980  .nv-country-select-wrap:hover .nv-country-trigger { border-color: rgba(247,244,239,0.6); }
981  .nv-country-trigger-text {
982    font: 400 13px/1.2 var(--sans, 'Outfit', sans-serif);
983    flex: 1;
984  }
985  .nv-country-caret { color: rgba(247,244,239,0.55); flex-shrink: 0; }
986  .nv-country-select {
987    position: absolute; inset: 0; width: 100%; height: 100%;
988    opacity: 0; cursor: pointer; border: 0; appearance: none;
989  }
990  .nv-country-apply {
991    margin-left: 8px; padding: 9px 14px; border: 1px solid rgba(247,244,239,0.28);
992    border-radius: 6px; background: transparent; color: var(--cream, #F7F4EF);
993    font: 500 12px/1 var(--sans, 'Outfit', sans-serif); cursor: pointer;
994  }
995</style>
996    <div class="footer-bottom">
997      <span class="footer-copy">© 2026 Navien, Inc. All rights reserved.</span>
998      <span class="footer-copy-sub">navienoptisleep.com</span>
999    </div>
1000  </div>
1001</footer>
1002
1003
1004<!-- ═══ CART DRAWER ═══ -->
1005<div class="cart-drawer-overlay" id="cartDrawerOverlay" aria-hidden="true" onclick="cartDrawer.close()"></div>
1006
1007<div class="cart-drawer" id="cartDrawer" role="dialog" aria-modal="true" aria-label="Shopping cart" aria-hidden="true">
1008
1009  <!-- Header -->
1010  <div class="cd-header">
1011    <div class="cd-title">
1012      Your cart
1013      <span class="cd-count" id="cdCount">0</span>
1014    </div>
1015    <button class="cd-close" onclick="cartDrawer.close()" aria-label="Close cart">
1016      <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 6L6 18M6 6l12 12"/></svg>
1017    </button>
1018  </div>
1019
1020  <!-- Items -->
1021  <div class="cd-body" id="cdBody">
1022    <div class="cd-items" id="cdItems"></div>
1023
1024    <!-- Empty state -->
1025    <div class="cd-empty" id="cdEmpty" hidden>
1026      <svg width="40" height="40" viewBox="0 0 32 32" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 6h20l-2.5 14H8.5L6 6z"/><circle cx="11" cy="25" r="2"/><circle cx="21" cy="25" r="2"/></svg>
1027      <p>Your cart is empty</p>
1028      <a href="/products/navien-optisleep-pro" class="cd-shop-link" onclick="cartDrawer.close()">Shop All Season Pro &rarr;</a>
1029    </div>
1030  </div>
1031
1032  <!-- Footer -->
1033  <div class="cd-footer" id="cdFooter" style="">
1034
1035    <!-- Discount code — informational only; the drawer subtotal never reflects a code
1036         (Shopify only evaluates discounts at checkout), so we don't offer a fake "Apply"
1037         interaction here. Direct customers to enter it at checkout instead. -->
1038    <div class="cd-discount">
1039      <div class="cd-discount-note">Have a promo code? Enter it at checkout.</div>
1040    </div>
1041
1042    <!-- Totals -->
1043    <div class="cd-totals">
1044      <div class="cd-total-row">
1045        <span>Subtotal</span>
1046        <span id="cdSubtotal">$0</span>
1047      </div>
1048      <div class="cd-total-row cd-shipping">
1049        <span>Shipping</span>
1050        <span class="cd-free">Free</span>
1051      </div>
1052    </div>
1053
1054
1055    <!-- Financing — US only (not offered in Canada). Live: native payment_terms banner
1056         (standalone cart form, doesn't touch AJAX qty logic) + Synchrony line. Design-mode:
1057         static preview text since the mock cart total here isn't a real form context. --><form method="post" action="/cart" id="cart_form" accept-charset="UTF-8" class="shopify-cart-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="cart" /><input type="hidden" name="utf8" value="✓" /><div class="cd-payment-terms"></div></form><div class="cd-financing-row">
1058        <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="1" y="4" width="22" height="16" rx="2" ry="2"/><line x1="1" y1="10" x2="23" y2="10"/></svg>
1059        <span>Financing available through <strong>Synchrony</strong> &mdash; Flex Card &amp; monthly payment options at checkout</span>
1060      </div><a href="/checkout" class="cd-checkout-btn" id="cdCheckoutBtn">
1061      Proceed to checkout &rarr;
1062    </a>
1063
1064    <!-- Trust strip -->
1065    <div class="cd-trust-strip">
1066      <div class="cd-trust-item">
1067        <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 2L3 7v5c0 5.5 3.8 10.7 9 12 5.2-1.3 9-6.5 9-12V7l-9-5z"/></svg>
1068        <span>30-night free trial</span>
1069      </div>
1070      <div class="cd-trust-item">
1071        <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12l5 5L20 7"/></svg>
1072        <span>Free shipping &amp; returns</span>
1073      </div>
1074    </div>
1075
1076  </div>
1077</div>
1078
1079<script src="//www.navienoptisleep.com/cdn/shop/t/107/assets/theme.js?v=13104515039154392241791238666" type="text/javascript"></script>
1079
1080<div class="btheat-overlay" id="btHeatOverlay" aria-hidden="true" role="dialog" aria-modal="true" aria-labelledby="btHeatTitle">
1081  <div class="btheat-modal" id="btHeatModal">
1082    <div class="btheat-top-bar">
1083      <span id="btHeatTopBarText">Limited-Time Offers</span>
1084      <button class="btheat-close" id="btHeatClose" aria-label="Close announcement">
1085        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
1086      </button>
1087    </div>
1088
1089    <div class="btheat-body"><div class="btheat-panel btheat-panel-primary" id="btPanelOS">
1090        <div class="btheat-eyebrow">Fall Sleep Event</div>
1091        <h2 class="btheat-headline" id="btHeatTitle">Save <em>20%</em></h2>
1092        <p class="btheat-sub">Settle into cooler nights. Save 20% on the Navien OptiSleep All Season Pro &mdash; every size, now through October 18.</p>
1093        <a href="/products/navien-optisleep-pro" class="btheat-cta" onclick="btHeatDismiss()">
1094          Shop Now &rarr;
1095        </a>
1096      </div><div class="btheat-panel-divider" id="btPanelDivider"></div><div class="btheat-panel btheat-panel-secondary" id="btPanelMate">
1097        <div class="btheat-eyebrow btheat-eyebrow-mate">Also on sale</div>
1098        <h3 class="btheat-headline-sm">25% off Navien Mate</h3>
1099        <p class="btheat-sub btheat-sub-sm">Save 25% on Navien Mate &mdash; now through October 18.</p>
1100        <a href="/collections/navien-mate" class="btheat-cta btheat-cta-outline" onclick="btHeatDismiss()">
1101          Shop Navien Mate &rarr;
1102        </a>
1103      </div>
1104
1105      <button class="btheat-skip" onclick="btHeatDismiss()">Maybe later</button>
1106    </div>
1107  </div>
1108</div><button class="btheat-pill" id="btHeatPill" onclick="btHeatOpenFromPill()" aria-label="View current offers" hidden>
1109  <span class="btheat-pill-sun" aria-hidden="true">&#127810;</span>
1110  <span class="btheat-pill-text" id="btHeatPillText">Fall Sleep Event &mdash; 20% off</span>
1111  <span class="btheat-pill-arrow" aria-hidden="true">
1112    <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"/></svg>
1113  </span>
1114</button>
1115
1116<style>
1117/* ── Popup overlay ── */
1118.btheat-overlay {
1119  position: fixed;
1120  inset: 0;
1121  background: rgba(13,31,78,.55);
1122  backdrop-filter: blur(3px);
1123  -webkit-backdrop-filter: blur(3px);
1124  z-index: 1200;
1125  display: flex;
1126  align-items: center;
1127  justify-content: center;
1128  padding: 20px;
1129  opacity: 0;
1130  pointer-events: none;
1131  transition: opacity .3s cubic-bezier(0,0,.2,1);
1132}
1133.btheat-overlay.open {
1134  opacity: 1;
1135  pointer-events: auto;
1136}
1137.btheat-modal {
1138  background: var(--cream, #F7F4EF);
1139  border-radius: 16px;
1140  width: 100%;
1141  max-width: 600px;
1142  position: relative;
1143  overflow: hidden;
1144  transform: translateY(20px) scale(.97);
1145  transition: transform .35s cubic-bezier(0,0,.2,1);
1146  box-shadow: 0 24px 80px rgba(13,31,78,.28), 0 4px 16px rgba(0,0,0,.08);
1147  max-height: 90vh;
1148  overflow-y: auto;
1149}
1150.btheat-overlay.open .btheat-modal {
1151  transform: translateY(0) scale(1);
1152}
1153.btheat-top-bar {
1154  background: var(--navien-blue, #1B3C87);
1155  color: white;
1156  font-size: 12px;
1157  font-weight: 600;
1158  letter-spacing: .06em;
1159  text-transform: uppercase;
1160  display: flex;
1161  align-items: center;
1162  justify-content: center;
1163  padding: 12px 16px;
1164  position: relative;
1165  min-height: 44px;
1166}
1167.btheat-close {
1168  position: absolute;
1169  right: 10px;
1170  top: 50%;
1171  transform: translateY(-50%);
1172  width: 28px;
1173  height: 28px;
1174  display: flex;
1175  align-items: center;
1176  justify-content: center;
1177  border-radius: 50%;
1178  background: rgba(255,255,255,.15);
1179  color: white;
1180  transition: background .2s;
1181  flex-shrink: 0;
1182}
1183.btheat-close:hover { background: rgba(255,255,255,.3); }
1184.btheat-body {
1185  padding: 34px 40px 32px;
1186  text-align: center;
1187}
1188.btheat-panel { }
1189.btheat-eyebrow {
1190  font-size: 11px;
1191  font-weight: 700;
1192  letter-spacing: .1em;
1193  text-transform: uppercase;
1194  color: var(--warm-amber, #C8933A);
1195  margin-bottom: 10px;
1196}
1197.btheat-eyebrow-mate {
1198  color: var(--navien-blue, #1B3C87);
1199}
1200.btheat-headline {
1201  font-family: var(--serif, 'Playfair Display', Georgia, serif);
1202  font-size: clamp(34px, 6.5vw, 50px);
1203  line-height: 1.1;
1204  color: var(--navy-deep, #0D1F4E);
1205  margin-bottom: 12px;
1206}
1207.btheat-headline em {
1208  font-style: italic;
1209  color: var(--navien-blue, #1B3C87);
1210}
1211.btheat-headline-sm {
1212  font-family: var(--serif, 'Playfair Display', Georgia, serif);
1213  font-size: 22px;
1214  line-height: 1.2;
1215  color: var(--navy-deep, #0D1F4E);
1216  margin-bottom: 8px;
1217}
1218.btheat-sub {
1219  font-size: 14px;
1220  line-height: 1.6;
1221  color: var(--ink-mid, #374151);
1222  margin-bottom: 18px;
1223}
1224.btheat-sub-sm {
1225  font-size: 13px;
1226  margin-bottom: 14px;
1227}
1228.btheat-cta {
1229  display: block;
1230  background: var(--navien-blue, #1B3C87);
1231  color: white;
1232  font-size: 15px;
1233  font-weight: 700;
1234  letter-spacing: .04em;
1235  text-align: center;
1236  padding: 16px 32px;
1237  border-radius: 8px;
1238  transition: background .2s, transform .15s;
1239}
1240.btheat-cta:hover {
1241  background: var(--navy-deep, #0D1F4E);
1242  transform: translateY(-1px);
1243}
1244.btheat-cta-outline {
1245  background: transparent;
1246  color: var(--navien-blue, #1B3C87);
1247  border: 1.5px solid var(--navien-blue, #1B3C87);
1248  padding: 13px 32px;
1249  font-size: 13px;
1250}
1251.btheat-cta-outline:hover {
1252  background: var(--navien-blue, #1B3C87);
1253  color: white;
1254  transform: translateY(-1px);
1255}
1256.btheat-panel-divider {
1257  height: 1px;
1258  background: var(--cream-deep, #E4DFD6);
1259  margin: 22px 0;
1260}
1261.btheat-panel-secondary { margin-bottom: 4px; }
1262/* If the OptiSleep panel expires first, JS promotes the Mate panel to primary sizing */
1263.btheat-panel-secondary.btheat-panel-primary .btheat-eyebrow-mate {
1264  color: var(--warm-amber, #C8933A);
1265}
1266.btheat-panel-secondary.btheat-panel-primary .btheat-headline-sm {
1267  font-size: clamp(26px, 5vw, 34px);
1268}
1269.btheat-panel-secondary.btheat-panel-primary .btheat-cta-outline {
1270  background: var(--navien-blue, #1B3C87);
1271  color: white;
1272  border: none;
1273  padding: 16px 32px;
1274  font-size: 15px;
1275}
1276.btheat-skip {
1277  margin-top: 6px;
1278  font-size: 12px;
1279  color: var(--ink-light, #6B7280);
1280  text-decoration: underline;
1281  text-underline-offset: 2px;
1282  background: none;
1283  border: none;
1284  cursor: pointer;
1285  transition: color .2s;
1286}
1287.btheat-skip:hover { color: var(--ink, #111827); }
1288@media (max-width: 480px) {
1289  .btheat-body { padding: 22px 20px 22px; }
1290  .btheat-panel-divider { margin: 18px 0; }
1291}
1292
1293/* ── Floating pill ── */
1294.btheat-pill {
1295  position: fixed;
1296  bottom: 24px;
1297  left: 24px;
1298  z-index: 1100;
1299  display: flex;
1300  align-items: center;
1301  gap: 7px;
1302  background: var(--navien-blue, #1B3C87);
1303  color: white;
1304  border: none;
1305  border-radius: 100px;
1306  padding: 10px 16px 10px 13px;
1307  font-family: var(--sans, 'Outfit', system-ui, sans-serif);
1308  font-size: 13px;
1309  font-weight: 600;
1310  letter-spacing: .01em;
1311  cursor: pointer;
1312  box-shadow: 0 4px 20px rgba(13,31,78,.35);
1313  transition: background .2s, transform .2s, box-shadow .2s;
1314  animation: btPillEntrance .4s cubic-bezier(0,0,.2,1) both;
1315}
1316@keyframes btPillEntrance {
1317  from { opacity: 0; transform: translateY(12px); }
1318  to   { opacity: 1; transform: translateY(0); }
1319}
1320.btheat-pill:hover {
1321  background: var(--navy-deep, #0D1F4E);
1322  transform: translateY(-2px);
1323  box-shadow: 0 8px 28px rgba(13,31,78,.4);
1324}
1325.btheat-pill[hidden] { display: none; }
1326.btheat-pill-sun { font-size: 11px; line-height: 1; }
1327.btheat-pill-text { white-space: nowrap; }
1328.btheat-pill-arrow { display: flex; align-items: center; opacity: .7; }
1329@media (max-width: 480px) {
1330  .btheat-pill {
1331    bottom: 16px;
1332    left: 16px;
1333    padding: 9px 13px 9px 11px;
1334    font-size: 12px;
1335  }
1336}
1337</style>
1338
1339<script>
1340(function() {
1341  var POPUP_KEY  = 'nv_fall_sleep_dismissed'; // new key — resets dismissal from the retired Fall Comfort popup
1342  var NV_MARKET  = 'US';
1343  var OS_END_TS   = 1792393200000; // Oct 19 2026 12:00 AM PDT — Fall Sleep Event (OptiSleep) end
1344  var MATE_END_TS = 1792393200000; // Oct 19 2026 12:00 AM PDT — Fall Sleep Event (Navien Mate) end
1345
1346  function osExpired()   { return Date.now() > OS_END_TS; }
1347  function mateExpired() { return Date.now() > MATE_END_TS; }
1348  function bothExpired() { return osExpired() && mateExpired(); }
1349
1350  // Adjusts which panel(s) show once one offer has ended but the other hasn't.
1351  // With current dates (OS ends Sept 21, Mate ends Sept 27) only the "OS expired,
1352  // Mate still running" branch is expected to actually fire.
1353  function applyState() {
1354    var osPanel   = document.getElementById('btPanelOS');
1355    var matePanel = document.getElementById('btPanelMate');
1356    var divider   = document.getElementById('btPanelDivider');
1357    var topBar    = document.getElementById('btHeatTopBarText');
1358    var pillText  = document.getElementById('btHeatPillText');
1359
1360    if (osExpired() && !mateExpired()) {
1361      if (osPanel) osPanel.style.display = 'none';
1362      if (divider) divider.style.display = 'none';
1363      if (matePanel) matePanel.classList.add('btheat-panel-primary');
1364      if (topBar) topBar.textContent = 'Fall Sleep Event';
1365      if (pillText) pillText.textContent = 'Fall Sleep Event \u2014 25% off Navien Mate';
1366      return;
1367    }
1368    if (mateExpired() && !osExpired()) {
1369      if (matePanel) matePanel.style.display = 'none';
1370      if (divider) divider.style.display = 'none';
1371      return;
1372    }
1373    // Both still active — static server-rendered copy (market-aware) is already correct.
1374  }
1375
1376  function openPopup() {
1377    var overlay = document.getElementById('btHeatOverlay');
1378    if (!overlay) return;
1379    var pill = document.getElementById('btHeatPill');
1380    if (pill) pill.setAttribute('hidden', '');
1381    overlay.classList.add('open');
1382    overlay.setAttribute('aria-hidden', 'false');
1383    document.body.style.overflow = 'hidden';
1384  }
1385
1386  function showPill() {
1387    var pill = document.getElementById('btHeatPill');
1388    if (!pill) return;
1389    pill.removeAttribute('hidden');
1390  }
1391
1392  window.btHeatDismiss = function() {
1393    var overlay = document.getElementById('btHeatOverlay');
1394    if (!overlay) return;
1395    overlay.classList.remove('open');
1396    overlay.setAttribute('aria-hidden', 'true');
1397    document.body.style.overflow = '';
1398    try { localStorage.setItem(POPUP_KEY, Date.now() + 12 * 3600 * 1000); } catch(e) {}
1399    showPill();
1400  };
1401
1402  window.btHeatOpenFromPill = function() {
1403    openPopup();
1404  };
1405
1406  function shouldAutoShow() {
1407    if (bothExpired()) return false;
1408    try {
1409      var val = localStorage.getItem(POPUP_KEY);
1410      if (val && Date.now() < parseInt(val, 10)) return false;
1411    } catch(e) {}
1412    return true;
1413  }
1414
1415  function shouldShowPill() {
1416    if (bothExpired()) return false;
1417    try {
1418      var val = localStorage.getItem(POPUP_KEY);
1419      return !!val;
1420    } catch(e) {}
1421    return false;
1422  }
1423
1424  document.addEventListener('DOMContentLoaded', function() {
1425    var closeBtn = document.getElementById('btHeatClose');
1426    if (closeBtn) closeBtn.addEventListener('click', window.btHeatDismiss);
1427
1428    var overlay = document.getElementById('btHeatOverlay');
1429    if (overlay) overlay.addEventListener('click', function(e) {
1430      if (e.target === overlay) window.btHeatDismiss();
1431    });
1432
1433    document.addEventListener('keydown', function(e) {
1434      if (e.key === 'Escape') {
1435        var o = document.getElementById('btHeatOverlay');
1436        if (o && o.classList.contains('open')) window.btHeatDismiss();
1437      }
1438    });
1439
1440    if (bothExpired()) {
1441      var pill = document.getElementById('btHeatPill');
1442      if (pill) pill.setAttribute('hidden', '');
1443      return;
1444    }
1445
1446    applyState();
1447
1448    if (shouldAutoShow()) {
1449      openPopup();
1450    } else if (shouldShowPill()) {
1451      showPill();
1452    }
1453  });
1454})();
1455</script>
vendor: 1 bytes, line 1455
1455
1456<script>
1457(function() {
1458  var BAR_END_TS = 1792393200000; // Oct 19 2026 12:00 AM PDT — Fall Sleep Event end (US + CA)
1459  var annBar   = document.getElementById('annBar');
1460  var siteNav  = document.getElementById('site-nav');
1461  var body     = document.body;
1462  var BAR_H    = window.innerWidth <= 480 ? 36 : 40;
1463  var hidden   = false;
1464  var ticking  = false;
1465
1466  // Hide the bar entirely once Fall Sleep Event ends — no next promo queued.
1467  if (annBar && Date.now() > BAR_END_TS) {
1468    annBar.style.display = 'none';
1469    if (siteNav) { siteNav.style.top = '0'; siteNav.classList.add('bar-hidden'); }
1470    body.classList.add('bar-hidden');
1471  }
1472
1473  function onScroll() {
1474    if (!ticking) {
1475      window.requestAnimationFrame(function() {
1476        var scrollY = window.scrollY || window.pageYOffset;
1477        if (scrollY > BAR_H && !hidden) {
1478          hidden = true;
1479          if (annBar)  annBar.classList.add('hidden');
1480          if (siteNav) siteNav.classList.add('bar-hidden');
1481          body.classList.add('bar-hidden');
1482        } else if (scrollY <= BAR_H && hidden) {
1483          hidden = false;
1484          if (annBar)  annBar.classList.remove('hidden');
1485          if (siteNav) siteNav.classList.remove('bar-hidden');
1486          body.classList.remove('bar-hidden');
1487        }
1488        // Nav scrolled state for shadow
1489        if (siteNav) {
1490          if (scrollY > 10) siteNav.classList.add('scrolled');
1491          else siteNav.classList.remove('scrolled');
1492        }
1493        ticking = false;
1494      });
1495      ticking = true;
1496    }
1497  }
1498
1499  window.addEventListener('scroll', onScroll, { passive: true });
1500})();
1501</script>
1501<script>
1502(function(){var w=window;if(w.ChannelIO){return w.console.error("ChannelIO script included twice.");}var ch=function(){ch.c(arguments);};ch.q=[];ch.c=function(args){ch.q.push(args);};w.ChannelIO=ch;function l(){if(w.ChannelIOInitialized){return;}w.ChannelIOInitialized=true;var s=document.createElement("script");s.type="text/javascript";s.async=true;s.src="https://cdn.channel.io/plugin/ch-plugin-web.js";var x=document.getElementsByTagName("script")[0];if(x.parentNode){x.parentNode.insertBefore(s,x);}}if(document.readyState==="complete"){l();}else{w.addEventListener("DOMContentLoaded",l);w.addEventListener("load",l);}})();
1503ChannelIO('boot', {
1504  "pluginKey": "2e4c5050-4a82-43a9-bfad-d81140e6befe"
1505});
1506</script>
1506
1507
1508  <div
1509  id="NvGeoBanner"
1510  class="nv-geo-banner"
1511  hidden
1512  role="dialog"
1513  aria-live="polite"
1514  aria-label="Region suggestion"
1515  data-current-country="US"
1516  data-localization-url=""
1517  data-return-to="/pages/contact"
1518>
1519  <div class="nv-geo-title-row">
1520    <span class="nv-geo-flag" id="NvGeoFlag"><span class="nv-geo-flag-icon" data-flag-for="CA" hidden><svg class="nv-flag nv-flag-ca" width="18" height="18" viewBox="0 0 20 20" role="img" aria-label="Canada" xmlns="http://www.w3.org/2000/svg">
1521      <circle cx="10" cy="10" r="10" fill="#fff"/>
1522      <path d="M0 10a10 10 0 0 1 5.2-8.77V18.77A10 10 0 0 1 0 10z" fill="#D80621"/>
1523      <path d="M20 10a10 10 0 0 1-5.2 8.77V1.23A10 10 0 0 1 20 10z" fill="#D80621"/>
1524      <path d="M10 5.4l.68 1.5 1.6-.32-.72 1.48 1.24 1.06-1.6.34.06 1.64L10 9.98l-1.26 1.12.06-1.64-1.6-.34 1.24-1.06-.72-1.48 1.6.32L10 5.4z" fill="#D80621"/>
1525      <path d="M8.9 11.7h2.2l-.2 1.3h.9v.6H8.2v-.6h.9l-.2-1.3z" fill="#D80621"/>
1526    </svg></span><span class="nv-geo-flag-icon" data-flag-for="US" hidden><svg class="nv-flag nv-flag-us" width="18" height="18" viewBox="0 0 20 20" role="img" aria-label="United States" xmlns="http://www.w3.org/2000/svg">
1527      <defs>
1528        <clipPath id="nvFlagUsClip18"><circle cx="10" cy="10" r="10"/></clipPath>
1529      </defs>
1530      <g clip-path="url(#nvFlagUsClip18)">
1531        <rect width="20" height="20" fill="#fff"/>
1532        <g fill="#B22234">
1533          <rect y="0" width="20" height="1.54" />
1534          <rect y="3.08" width="20" height="1.54" />
1535          <rect y="6.15" width="20" height="1.54" />
1536          <rect y="9.23" width="20" height="1.54" />
1537          <rect y="12.31" width="20" height="1.54" />
1538          <rect y="15.38" width="20" height="1.54" />
1539          <rect y="18.46" width="20" height="1.54" />
1540        </g>
1541        <rect width="9" height="9.23" fill="#3C3B6E"/>
1542      </g>
1543    </svg></span></span>
1544    <p class="nv-geo-title" id="NvGeoTitle">Shopping from Canada?</p>
1545  </div>
1546  <p class="nv-geo-sub" id="NvGeoSub">Shop in your local currency with free shipping.</p>
1547  <div class="nv-geo-actions">
1548    <button type="button" class="nv-geo-accept" id="NvGeoAccept">Switch region</button>
1549    <button type="button" class="nv-geo-dismiss" id="NvGeoDismiss">Stay here</button>
1550  </div>
1551  <button type="button" class="nv-geo-x" id="NvGeoX" aria-label="Dismiss">&times;</button>
1552</div>
1553<style>
1554  .nv-geo-banner {
1555    position: fixed; left: 20px; bottom: 20px; z-index: 9600;
1556    max-width: 320px; padding: 20px 40px 18px 20px;
1557    background: var(--cream, #F7F4EF);
1558    color: var(--navy-deep, #0D1F4E);
1559    border-radius: 12px;
1560    box-shadow: 0 10px 34px rgba(13,31,78,0.18), 0 2px 8px rgba(13,31,78,0.10);
1561    font-family: var(--sans, 'Outfit', sans-serif);
1562    opacity: 0; transform: translateY(10px);
1563    transition: opacity .32s ease, transform .32s ease;
1564  }
1565  .nv-geo-banner.nv-geo-show { opacity: 1; transform: translateY(0); }
1566  .nv-geo-title-row { display: flex; align-items: center; gap: 8px; margin: 0 0 4px; }
1567  .nv-geo-flag { display: inline-flex; flex-shrink: 0; }
1568  .nv-geo-flag-icon[hidden] { display: none; }
1569  .nv-geo-title {
1570    margin: 0;
1571    font: 600 15.5px/1.3 var(--serif, 'Playfair Display', Georgia, serif);
1572  }
1573  .nv-geo-sub { margin: 0 0 14px; font: 300 13px/1.5 inherit; color: rgba(13,31,78,0.72); }
1574  .nv-geo-actions { display: flex; align-items: center; gap: 14px; }
1575  .nv-geo-accept {
1576    background: var(--navien-blue, #1B3C87); color: #fff; border: 0;
1577    border-radius: 7px; padding: 10px 16px;
1578    font: 500 12.5px/1 inherit; letter-spacing: 0.02em; cursor: pointer;
1579    transition: background .18s ease;
1580  }
1581  .nv-geo-accept:hover { background: var(--navy-deep, #0D1F4E); }
1582  .nv-geo-dismiss {
1583    background: none; border: 0; padding: 4px 0; cursor: pointer;
1584    font: 400 12.5px/1 inherit; color: rgba(13,31,78,0.55);
1585    text-decoration: underline; text-underline-offset: 3px;
1586  }
1587  .nv-geo-x {
1588    position: absolute; top: 8px; right: 10px; background: none; border: 0;
1589    font-size: 18px; line-height: 1; color: rgba(13,31,78,0.4); cursor: pointer; padding: 4px;
1590  }
1591  @media (max-width: 640px) {
1592    .nv-geo-banner { left: 12px; right: 12px; bottom: 12px; max-width: none; }
1593  }
1594</style>
1595<script>
1596  (function () {
1597    'use strict';
1598    var el = document.getElementById('NvGeoBanner');
1599    if (!el) return;
1600    var KEY = 'nvGeoSnoozedAt';
1601    var SNOOZE_MS = 14 * 24 * 60 * 60 * 1000; // 14 days, matches Shopify app convention
1602    try {
1603      var t = parseInt(localStorage.getItem(KEY) || '0', 10);
1604      if (t && (Date.now() - t) < SNOOZE_MS) return;
1605    } catch (e) { /* storage unavailable — show at most this session */ }
1606
1607    var current = el.getAttribute('data-current-country');
1608    var ROOT = (window.Shopify && window.Shopify.routes && window.Shopify.routes.root) || '/';
1609    if (ROOT.charAt(ROOT.length - 1) !== '/') ROOT += '/';
1610
1611    var url = ROOT + 'browsing_context_suggestions.json' +
1612      '?source=nv_geo_banner&country%5Benabled%5D=true&country%5Bexclude%5D=' +
1613      encodeURIComponent(current);
1614
1615    fetch(url, { headers: { 'Accept': 'application/json' } })
1616      .then(function (r) { return r.ok ? r.json() : null; })
1617      .then(function (d) {
1618        if (!d || !d.suggestions || !d.suggestions.length) return;
1619        var s = d.suggestions[0];
1620        var c = s && (s.country || (s.parts && s.parts.country));
1621        if (!c || !c.handle || c.handle === current) return;
1622
1623        var name = c.name || 'your region';
1624        document.getElementById('NvGeoTitle').textContent = 'Shopping from ' + name + '?';
1625        var flagIcons = document.querySelectorAll('#NvGeoFlag .nv-geo-flag-icon');
1626        for (var fi = 0; fi < flagIcons.length; fi++) {
1627          flagIcons[fi].hidden = flagIcons[fi].getAttribute('data-flag-for') !== c.handle;
1628        }
1629        if (c.handle === 'CA') {
1630          document.getElementById('NvGeoSub').textContent =
1631            'Shop in CAD with free shipping across Canada.';
1632          document.getElementById('NvGeoAccept').textContent = 'Switch to Canada (CAD $)';
1633        } else {
1634          document.getElementById('NvGeoSub').textContent =
1635            'Shop in your local currency and region.';
1636          document.getElementById('NvGeoAccept').textContent = 'Switch to ' + name;
1637        }
1638
1639        function snooze() {
1640          try { localStorage.setItem(KEY, String(Date.now())); } catch (e) {}
1641        }
1642        function hide() {
1643          el.classList.remove('nv-geo-show');
1644          window.setTimeout(function () { el.hidden = true; }, 320);
1645        }
1646        function accept() {
1647          snooze();
1648          var form = document.getElementById('NvCountryForm');
1649          var sel = document.getElementById('NvCountrySelect');
1650          if (form && sel) {
1651            sel.value = c.handle;
1652            form.submit();
1653            return;
1654          }
1655          // Fallback: JS-built localization form per shopify.dev minimal example.
1656          // Endpoint comes from data-localization-url — never hardcoded (Rule 8).
1657          var f = document.createElement('form');
1658          f.method = 'post';
1659          f.action = el.getAttribute('data-localization-url');
1660          var fields = {
1661            _method: 'put',
1662            country_code: c.handle,
1663            return_to: el.getAttribute('data-return-to') || '/'
1664          };
1665          Object.keys(fields).forEach(function (k) {
1666            var i = document.createElement('input');
1667            i.type = 'hidden'; i.name = k; i.value = fields[k];
1668            f.appendChild(i);
1669          });
1670          document.body.appendChild(f);
1671          f.submit();
1672        }
1673
1674        document.getElementById('NvGeoAccept').addEventListener('click', accept);
1675        document.getElementById('NvGeoDismiss').addEventListener('click', function () { snooze(); hide(); });
1676        document.getElementById('NvGeoX').addEventListener('click', function () { snooze(); hide(); });
1677
1678        window.setTimeout(function () {
1679          el.hidden = false;
1680          window.requestAnimationFrame(function () { el.classList.add('nv-geo-show'); });
1681        }, 1200);
1682      })
1683      .catch(function () { /* silent — banner is best-effort */ });
1684  })();
1685</script>
1685
1686<div id="shopify-block-AK2tjVFJUNjVvbHRlU__6039504038531703324" class="shopify-block shopify-app-block">
1686<script>
1687  (function() {
1688    var connectPluginUrl = 'https://cax.channel.io/shopify/plugins/';
1689    var dwBaseUrl = 'https://api.channel.io/';
1690
1691    var shopHost = "navien.myshopify.com";
1692    var url = new URL(dwBaseUrl + 'front/app/shopify/plugin-key');
1693    url.searchParams.append('shopHost', shopHost);
1694
1695    fetch(url)
1696      .then(function(response) {
1697        if (!response.ok) {
1698          throw new Error('Network response was not ok');
1699        }
1700        return response.json();
1701      })
1702      .then(function(data) {
1703        var pluginKey = data.result;
1704
1705        if (pluginKey && connectPluginUrl) {
1706          var script = document.createElement('script');
1707          script.src = connectPluginUrl + pluginKey + '.js';
1708          script.async = true;
1709          document.body.appendChild(script);
1710          console.log('ChannelIO script loaded with plugin key:', pluginKey);
1711        } else {
1712          console.error('No ChannelIO plugin key or plugin base url');
1713        }
1714      })
1715      .catch(function(error) {
1716        console.error('There has been a problem with your fetch operation:', error);
1717      });
1718  })();
1719</script>
1719
1720
1721 
1722</div>
1722<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
1722
1723</body>
1724</html>
1725
1726
1727
1728

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.