Help
RSS
API
Feed
Maltego
Contact
Domain > breathewell.ca
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2024-07-09
104.26.10.145
(
ClassC
)
2024-07-09
172.67.74.1
(
ClassC
)
2026-01-19
34.78.38.148
(
ClassC
)
Port 443
HTTP/1.1 200 OKAlt-Svc: h3:443; ma2592000Cache-Control: no-cache, privateContent-Type: text/html;charsetUTF-8Date: Mon, 19 Jan 2026 16:15:00 GMTServer: CaddyServer: nginxStrict-Transport-Security: max-age31536000; includeSubDomainsVary: Accept-EncodingYcode-Cache: HIT - Retrieved from cacheYcode-Cache-Age: 10 days, 21 hours, 17 minutes, 45 secondsYcode-Cache-Hits: 17184 hitsYcode-Cache-Time-Added: 2026-01-08 18:57:15 UTCYcode-Cache-Time-Expire: NEVERYcode-Cache-Url: app:81882status:publishedlang:default /Transfer-Encoding: chunked !DOCTYPE html> !-- This site was created in Ycode. https://www.ycode.com --> !-- Last Published: Thursday, 08-Jan-26 18:57:07 UTC --> html langen> head> meta nameviewport contentwidthdevice-width, initial-scale1> meta namecsrf-token content$2y$10$jiS/Kys0sG.cZn1LkJsYreg.bYGLah3mawFZlA1OGgZZGlhSasf1e> meta charsetutf-8> meta http-equivContent-Type contenttext/html;charsetUTF-8> link relicon typeimage/png sizes32x32 hrefhttps://assets.ycodeapp.com/assets/app81882/favicons/kVcVTOMEki8xBZByasO50LXXXAi8MdM8zuSpWfqf.png> link relapple-touch-icon sizes256x256 hrefhttps://assets.ycodeapp.com/assets/app81882/webclips/7wj7IvwlrXK5Q2ysX5SRaMo6iept1GMnwjtAybRs.png> link relpreconnect hrefhttps://fonts.ycode.com crossorigin /> link relDNS-prefetch href//fonts.ycode.com/> link relstylesheet hrefhttps://fonts.ycode.com/css2?familyDM+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900&familyInter:wght@100;200;300;400;500;600;700;800;900&displayswap mediaprint onloadthis.onloadnull;this.removeAttribute(media); fetchpriorityhigh> link href/css/builder/ycode-generated.css?id24e2590b844f86c46bf0 relstylesheet> link href/published/main.css?id1767898627 relstylesheet> link relcanonical hrefhttps://breathewell.ca> meta propertyog:url contenthttps://breathewell.ca /> meta propertyog:type contentwebsite /> meta namegoogle-site-verification contentP7O1z8vyRFbor0EaEnQNlVrh50RxCumGGGamtMm-p0U />meta namemsvalidate.01 contentBF85F39E7ED8540076445D63168FED87 />!-- Concord -->script typetext/javascript srchttps://api.concord.tech/site-v1/33a0645a-16a5-4a7e-bdc4-003aed9d6559/site-client>/script>!-- Tarvent -->script>(function(w,d,s,o,f,js,fjs){wowo || function(){(wo.qwo.q || ).push(arguments)};jsd.createElement(s),fjsd.getElementsByTagName(s)0;js.ido;js.srcf+?v+Date.now();js.async1;fjs.parentNode.insertBefore(js, fjs);}(window,document,script,Tarvee,https://cdn.trvt.io/resource/tarvee/tarvee.0.1.0.js));Tarvee(init, { enabled: true, debug: true, accountId: 1072259716987662531});/script>!-- Leadsourcing Pixel Code -->script>!function(e,t,n,r){(ne.createElement(script)).src//visitor.leadsourcing.co/n?tid+t,(re.getElementsByTagName(script)0).parentNode.insertBefore(n,r)}(document,CGzHHSwuqdpRQQ6UpeSw);/script>!-- End Leadsourcing Pixel Code -->!-- Google Tag Manager -->script>(function(w,d,s,l,i){wlwl||;wl.push({gtm.start:new Date().getTime(),event:gtm.js});var fd.getElementsByTagName(s)0,jd.createElement(s),dll!dataLayer?&l+l:;j.asynctrue;j.srchttps://www.googletagmanager.com/gtm.js?id+i+dl;f.parentNode.insertBefore(j,f);})(window,document,script,dataLayer,GTM-W26BJVG3);/script>!-- End Google Tag Manager -->!-- PartneroJS -->script> (function(p,t,n,e,r,o){ p__partnerObjectr;function f(){ var c{ a:arguments,q:};var rthis.push(c);return number!typeof r?r:f.bind(c.q);} f.qf.q||;prpr||f.bind(f.q);pr.qpr.q||f.q;ot.createElement(n); var _t.getElementsByTagName(n)0;o.async1;o.srce+?v+(~~(new Date().getTime()/1e6)); _.parentNode.insertBefore(o,_);})(window, document, script, https://app.partnero.com/js/universal.js, po); po(settings, assets_host, https://assets.partnero.com); po(program, FQR0SVZD, load);/script>!-- End PartneroJS -->!-- Notyf-->link relstylesheet hrefhttps://cdn.jsdelivr.net/npm/notyf@3/notyf.min.css>!-- Loader -->style>.loader-page { width: 64px; height: 48px; position: relative; animation: split-page 1s ease-in infinite alternate;}.loader-page::before , .loader-page::after { content: ; position: absolute; height: 48px; width: 48px; border-radius: 50%; left: 0; top: 0; transform: translateX(-10px); background: #39AFDA; opacity: 0.75; backdrop-filter: blur(20px);}.loader-page::after { left: auto; right: 0; background: #E2E8F6; transform: translateX(10px);}.fomo-notification-powered-by{display :none !important;}@keyframes split-page { 0% , 25%{ width: 64px } 100%{ width: 148px }} /style> script typetext/javascript> (function(funnel) {var deferredEvents ;window.funnelytics {events: {trigger: function (name, attributes, callback, opts) {deferredEvents.push({name: name, attributes: attributes, callback: callback, opts: opts});}}};var insert document.getElementsByTagName(script)0,script document.createElement(script);script.addEventListener(load, function() {window.funnelytics.init(funnel, false, deferredEvents, { anonymiseUsers: false });});script.src https://cdn.funnelytics.io/track-v3.js;script.type text/javascript;script.async true;insert.parentNode.insertBefore(script, insert);})(83f381b0-b4b8-46d1-8606-5eeca4342e1e); /script>meta propertyog:title contentAir Duct, Exchanger, Mini-Split & Bathroom Vent Cleaning Company>meta propertyog:site_name contentBreathewell>meta propertyog:url contenthttps://breathewell.ca>meta propertyog:description contentEnjoy 30-day smile guarantee with Breathewell, a professional air duct cleaning company in Canada for homes & businesses. Contact us today!>meta propertyog:type contentwebsite>meta propertyog:image contenthttps://assets.ycodeapp.com/assets/app81882/images/published/breathewell-logo-standard-qlbzx5qoek-500.webp> title>Breathewell | Dust Extraction for Asthma & Allergies/title> meta namedescription contentYour house should be your safe haven. We help eliminate asthma and allergy triggers, transforming it into a comfortable home where you can truly relax. Breathe easy in the space that matters most.> meta propertyog:title contentBreathewell | Dust Extraction for Asthma & Allergies>meta propertytwitter:title contentBreathewell | Dust Extraction for Asthma & Allergies> meta propertyog:description contentYour house should be your safe haven. We help eliminate asthma and allergy triggers, transforming it into a comfortable home where you can truly relax. Breathe easy in the space that matters most.>meta propertytwitter:description contentYour house should be your safe haven. We help eliminate asthma and allergy triggers, transforming it into a comfortable home where you can truly relax. Breathe easy in the space that matters most.> /head> body classmin-h-100% font-inter antialiased flex flex-col gap-8px pl-0px pr-0px pb-0px pt-0px> div classcontents idycode-generated-app>!-- ycode-template-variable:ycode-main-content --> div classcontents idycode-main-content :keykey stylevisibility: hidden> nav classbg-white flex-col flex pt-21px pb-21px md:pt-32px md:pb-32px font-greycliff-cf-medium text-opacity-100% border-none items-center justify-center text-base font-medium leading-5 text-left text-#1f316e data-component-root> div classflex flex-col w-100% max-w-1280px mr-auto ml-auto pr-32px pl-32px> div classflex md:flex-col md:items-stretch md:gap-40px gap-75px> div classflex gap-20px items-center justify-between> a classflex items-center justify-center href/ aria-current> img classh-42px object-contain w-140px srchttps://assets.ycodeapp.com/assets/app81882/Images/published/breathewell-logo-standard-qlbzx5qoek.webp width180 srcsethttps://assets.ycodeapp.com/assets/app81882/images/published/breathewell-logo-standard-qlbzx5qoek-2000.webp 2000w, https://assets.ycodeapp.com/assets/app81882/images/published/breathewell-logo-standard-qlbzx5qoek-1600.webp 1600w, https://assets.ycodeapp.com/assets/app81882/images/published/breathewell-logo-standard-qlbzx5qoek-1080.webp 1080w, https://assets.ycodeapp.com/assets/app81882/images/published/breathewell-logo-standard-qlbzx5qoek-800.webp 800w, https://assets.ycodeapp.com/assets/app81882/images/published/breathewell-logo-standard-qlbzx5qoek-500.webp 500w, https://assets.ycodeapp.com/assets/app81882/images/published/breathewell-logo-standard-qlbzx5qoek-150.webp 150w, https://assets.ycodeapp.com/assets/app81882/Images/published/breathewell-logo-standard-qlbzx5qoek.webp 2880w sizes(max-width: 361px) 100vw, 361px>/a> div classmd:flex md:items-center md:justify-center hidden data-animation-click99acfelp5 data-associated-animation-ids-for-clickw9tn2xhon> i classblock h-auto text-opacity-100% text-#9b9b9b w-24px>svg fillcurrentColor viewbox0 0 24 24 xmlnshttp://www.w3.org/2000/svg>path dM3 4H21V6H3V4ZM3 11H21V13H3V11ZM3 18H21V20H3V18Z>/path>/svg>/i>/div>/div> div classflex flex-row gap-12px flex-1 items-center justify-between md:flex-col md:gap-24px md:items-start data-animation-id-5651s3srp> div classflex w-100% max-w-1280px mr-auto ml-auto pr-32px pl-32px flex-row text-color:var(--6771f4b03754f) gap-32px items-center justify-start md:flex-col md:items-start sm:pl-0px sm:pr-0px> a v-showshowHideElementspjh0czq7g v-cloak classno-underline focus:outline-none tracking--0.025em text-16px font-medium hover:text-opacity-100% hover:text-#1f316e text-#113541 text-opacity-100%>Home/a> div classblock relative md:w-100%> div classflex items-center gap-4px hover:text-color:var(--678737ef0454c) text-color:var(--6771f4b03754f) data-animation-click3uwyjvbd4 data-associated-animation-ids-for-clickfclzff51t,v2agk9fzu,h8v05fggj,bt2u5p9mj data-animation-hover3uwyjvbd4 data-associated-animation-ids-for-hoverlcixopus3 data-animation-id-3uwyjvbd4> span classno-underline focus:outline-none tracking--0.025em text-16px font-medium>Services/span> i classblock h-auto w-20px data-animation-id-t5142cne8>svg fillcurrentColor viewbox0 0 24 24 xmlnshttp://www.w3.org/2000/svg>path dM11.9997 13.1714L16.9495 8.22168L18.3637 9.63589L11.9997 15.9999L5.63574 9.63589L7.04996 8.22168L11.9997 13.1714Z>/path>/svg>/i>/div> div classflex flex-col gap-12px absolute bg-opacity-100% bg-#ffffff rounded-16px z-80 mt-12px border-1px border-solid border-#000000 border-opacity-10% pt-16px pb-16px pr-22px pl-22px md:static md:shadow-0px_4px_10px_0px_rgba(0,0,0,0) min-w-644px box-border border w-644px justify-start items-start p-6 rounded-md border-#F7F8FD gap-24px shadow-0_3px_10px_#00000033 left--56px md:min-w-598px sm:min-w-auto sm:max-w-640px sm:flex-nowrap sm:w-fit-content data-animation-id-bxq5d3emv> div classflex flex-row gap-40px md:gap-24px sm:flex-col> a classw-278px href/services/mini-split-ac-cleaning > div classw-44px h-44px flex items-center justify-center rounded-9999px border-1px border-opacity-100% border-#f7f8fd aspect-square> i classblock w-24px h-auto mt-0px pl-0px mr-0px text-color:var(--6771f57faff49)>svg width24.000000 height24.000000 viewbox0 0 24 24 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip2669_39238> rect width24.000000 height24.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> rect width24.000000 height24.000000 fill#FFFFFF fill-opacity0>/rect> g clip-pathurl(#clip2669_39238)> path dM18 4L6 4C3.78 4 2 5.79 2 8L2 15C2 17.2 3.78 19 6 19L18 19C20.21 19 22 17.2 22 15L22 8C22 5.79 20.21 4 18 4ZM6 6C4.89 6 4 6.89 4 8L4 15C4 16.1 4.89 17 6 17L18 17C19.1 17 20 16.1 20 15L20 8C20 6.89 19.1 6 18 6L6 6ZM7 13C6.44 13 6 13.44 6 14C6 14.55 6.44 15 7 15L17 15C17.55 15 18 14.55 18 14C18 13.44 17.55 13 17 13L7 13Z fill#39AFDA fill-opacity1.000000 fill-ruleevenodd>/path> /g>/svg>/i>/div> div classflex flex-col gap-2px> span classtext-16px block text-base font-semibold leading-6 text-left text-#23316b text-opacity-100% hover:text-#39afda>Mini-split AC cleaning/span> p classblock text-16px text-gray-500 text-sm font-medium leading-5 text-left>Restore your mini-split to peak performance/p>/div>/a> a classw-278px href/services/dryer-vent-cleaning-service > div classw-44px h-44px flex items-center justify-center rounded-9999px border-1px border-opacity-100% border-#f7f8fd aspect-square> i classblock w-24px h-auto mt-0px pl-0px mr-0px text-color:var(--6771f57faff49)>svg width24.000000 height24.000000 viewbox0 0 24 24 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip2669_39241> rect width24.000000 height24.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> rect width24.000000 height24.000000 fill#FFFFFF fill-opacity0>/rect> g clip-pathurl(#clip2669_39241)> path dM4.46 5.51C4.19 5.84 4.2 6.3 4.48 6.62L6.55 8.92L18.44 8.92L20.51 6.62C20.79 6.3 20.8 5.84 20.53 5.51L18.69 3.3C18.53 3.11 18.29 3 18.04 3L6.95 3C6.7 3 6.46 3.11 6.3 3.3L4.46 5.51ZM6.55 8.92L4.41 11.7C4.17 12.01 4.17 12.45 4.42 12.75L6.55 15.31M4.53 17.37C4.23 17.68 4.21 18.17 4.48 18.5L6.3 20.69C6.46 20.88 6.7 21 6.95 21L18.04 21C18.29 21 18.53 20.88 18.69 20.69L20.51 18.5C20.78 18.17 20.76 17.68 20.46 17.37L18.44 15.31L6.55 15.31L4.53 17.37ZM18.44 15.31L20.57 12.75C20.82 12.45 20.82 12.01 20.58 11.7L18.44 8.92 stroke#39AFDA stroke-opacity1.000000 stroke-width1.800000>/path> /g>/svg>/i>/div> div classflex flex-col gap-2px> span classtext-16px block text-base font-semibold leading-6 text-left text-#23316b text-opacity-100% hover:text-#39afda>Dryer vent cleaning/span> p classblock text-16px text-gray-500 text-sm font-medium leading-5 text-left>Maximize your dryers efficiency and prevent potential fire hazards/p>/div>/a>/div> div classflex flex-row gap-40px md:gap-24px sm:flex-col> a classw-278px href/services/air-exchanger-cleaning-service > div classw-44px h-44px flex items-center justify-center rounded-9999px border-1px border-opacity-100% border-#f7f8fd aspect-square> i classblock w-24px h-auto mt-0px pl-0px mr-0px text-color:var(--6771f57faff49)>svg width24.000000 height24.000000 viewbox0 0 24 24 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip2669_39244> rect idSwap width24.000000 height24.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> g clip-pathurl(#clip2669_39244)> path idpath dM21 4.5L21 14.25C21 14.44 20.96 14.64 20.88 14.82C20.8 15 20.7 15.16 20.56 15.31C20.42 15.45 20.25 15.55 20.07 15.63C19.89 15.71 19.69 15.75 19.5 15.75L9.3 15.75L10.28 16.71C10.35 16.78 10.4 16.87 10.44 16.96C10.48 17.05 10.5 17.15 10.5 17.25C10.5 17.34 10.48 17.44 10.44 17.53C10.4 17.62 10.35 17.7 10.28 17.78C10.21 17.85 10.12 17.9 10.03 17.94C9.94 17.98 9.84 18 9.75 18C9.65 18 9.55 17.98 9.46 17.94C9.37 17.9 9.28 17.85 9.21 17.78L6.96 15.53C6.89 15.46 6.84 15.37 6.8 15.28C6.76 15.19 6.75 15.09 6.75 15C6.75 14.9 6.76 14.8 6.8 14.71C6.84 14.62 6.89 14.53 6.96 14.46L9.21 12.21C9.28 12.14 9.37 12.09 9.46 12.05C9.55 12.01 9.65 11.99 9.75 11.99C9.84 11.99 9.94 12.01 10.03 12.05C10.12 12.09 10.21 12.14 10.28 12.21C10.35 12.28 10.4 12.37 10.44 12.46C10.48 12.55 10.5 12.65 10.5 12.75C10.5 12.84 10.48 12.94 10.44 13.03C10.4 13.12 10.35 13.21 10.28 13.28L9.3 14.25L19.5 14.25L19.5 4.5L9 4.5L9 5.25C9 5.34 8.98 5.44 8.94 5.53C8.9 5.62 8.85 5.7 8.78 5.78C8.71 5.85 8.62 5.9 8.53 5.94C8.44 5.98 8.34 6 8.25 6C8.15 6 8.05 5.98 7.96 5.94C7.87 5.9 7.78 5.85 7.71 5.78C7.64 5.7 7.59 5.62 7.55 5.53C7.51 5.44 7.5 5.34 7.5 5.25L7.5 4.5C7.5 4.3 7.53 4.1 7.61 3.92C7.69 3.74 7.79 3.58 7.93 3.43C8.07 3.29 8.24 3.19 8.42 3.11C8.6 3.03 8.8 3 9 3L19.5 3C19.69 3 19.89 3.03 20.07 3.11C20.25 3.19 20.42 3.29 20.56 3.43C20.7 3.58 20.8 3.74 20.88 3.92C20.96 4.1 21 4.3 21 4.5ZM15.75 18C15.65 18 15.55 18.01 15.46 18.05C15.37 18.09 15.28 18.14 15.21 18.21C15.14 18.29 15.09 18.37 15.05 18.46C15.01 18.55 15 18.65 15 18.75L15 19.5L4.5 19.5L4.5 9.75L14.69 9.75L13.71 10.71C13.64 10.78 13.59 10.87 13.55 10.96C13.51 11.05 13.5 11.15 13.5 11.25C13.5 11.34 13.51 11.44 13.55 11.53C13.59 11.62 13.64 11.71 13.71 11.78C13.78 11.85 13.87 11.9 13.96 11.94C14.05 11.98 14.15 12 14.25 12C14.34 12 14.44 11.98 14.53 11.94C14.62 11.9 14.71 11.85 14.78 11.78L17.03 9.53C17.1 9.46 17.15 9.37 17.19 9.28C17.23 9.19 17.25 9.09 17.25 9C17.25 8.9 17.23 8.8 17.19 8.71C17.15 8.62 17.1 8.53 17.03 8.46L14.78 6.21C14.71 6.14 14.62 6.09 14.53 6.05C14.44 6.01 14.34 6 14.25 6C14.15 6 14.05 6.01 13.96 6.05C13.87 6.09 13.78 6.14 13.71 6.21C13.64 6.29 13.59 6.37 13.55 6.46C13.51 6.55 13.5 6.65 13.5 6.75C13.5 6.84 13.51 6.94 13.55 7.03C13.59 7.12 13.64 7.21 13.71 7.28L14.69 8.25L4.5 8.25C4.3 8.25 4.1 8.28 3.92 8.36C3.74 8.44 3.57 8.54 3.43 8.68C3.29 8.83 3.19 8.99 3.11 9.17C3.03 9.35 3 9.55 3 9.75L3 19.5C3 19.69 3.03 19.89 3.11 20.07C3.19 20.25 3.29 20.41 3.43 20.56C3.57 20.7 3.74 20.8 3.92 20.88C4.1 20.96 4.3 21 4.5 21L15 21C15.19 21 15.39 20.96 15.57 20.88C15.75 20.8 15.92 20.7 16.06 20.56C16.2 20.41 16.3 20.25 16.38 20.07C16.46 19.89 16.5 19.69 16.5 19.5L16.5 18.75C16.5 18.65 16.48 18.55 16.44 18.46C16.4 18.37 16.35 18.29 16.28 18.21C16.21 18.14 16.12 18.09 16.03 18.05C15.94 18.01 15.84 18 15.75 18Z fill#39AFDA fill-opacity1.000000 fill-rulenonzero>/path> /g>/svg>/i>/div> div classflex flex-col gap-2px> span classtext-16px block text-base font-semibold leading-6 text-left text-#23316b text-opacity-100% hover:text-#39afda>Air exchanger cleaning/span> p classblock text-16px text-gray-500 text-sm font-medium leading-5 text-left>Enhance your homes air quality and reduce allergens/p>/div>/a> a classw-278px href/services/bathroom-exhaust-cleaning-service > div classw-44px h-44px flex items-center justify-center rounded-9999px border-1px border-opacity-100% border-#f7f8fd aspect-square> i classblock w-24px h-auto mt-0px pl-0px mr-0px text-color:var(--6771f57faff49)>svg width24.000000 height24.000000 viewbox0 0 24 24 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip2669_39247> rect idFan width24.000000 height24.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> g clip-pathurl(#clip2669_39247)> path idpath dM21.84 12.65C21.78 12.44 21.71 12.23 21.63 12.03C21.55 11.83 21.46 11.63 21.35 11.44C21.25 11.24 21.14 11.06 21.01 10.88C20.89 10.7 20.75 10.53 20.6 10.36C20.46 10.2 20.3 10.05 20.14 9.9C19.98 9.76 19.81 9.62 19.63 9.49C19.45 9.37 19.26 9.26 19.07 9.15C18.87 9.05 18.68 8.96 18.48 8.88C18.27 8.79 18.06 8.73 17.85 8.67C17.64 8.61 17.42 8.57 17.21 8.54C17 8.51 16.78 8.49 16.56 8.48C16.34 8.48 16.12 8.48 15.9 8.5C15.68 8.52 15.47 8.56 15.25 8.6C15.04 8.64 14.83 8.7 14.62 8.77C14.41 8.84 14.21 8.92 14.01 9.02C13.82 9.11 13.62 9.21 13.44 9.33L14.97 3.19C15.01 3.04 15 2.88 14.94 2.73C14.88 2.58 14.78 2.47 14.65 2.38C14.49 2.28 14.33 2.19 14.16 2.1C13.99 2.02 13.82 1.94 13.64 1.88C13.47 1.81 13.29 1.75 13.1 1.7C12.92 1.65 12.74 1.61 12.55 1.58C12.37 1.55 12.18 1.53 12 1.52C11.81 1.51 11.62 1.51 11.43 1.51C11.25 1.52 11.06 1.54 10.87 1.56C10.68 1.59 10.5 1.63 10.32 1.67C10.13 1.71 9.95 1.77 9.78 1.83C9.6 1.89 9.42 1.96 9.25 2.04C9.08 2.12 8.92 2.21 8.76 2.31C8.6 2.41 8.44 2.51 8.29 2.62C8.14 2.73 7.99 2.85 7.85 2.98C7.71 3.11 7.58 3.24 7.46 3.38C7.33 3.52 7.21 3.67 7.1 3.82C6.99 3.97 6.89 4.13 6.79 4.29C6.7 4.45 6.61 4.62 6.53 4.79C6.46 4.96 6.39 5.14 6.32 5.32C6.26 5.49 6.21 5.67 6.17 5.86C6.13 6.04 6.09 6.22 6.07 6.41C6.05 6.6 6.03 6.79 6.02 6.97C6.02 7.16 6.02 7.35 6.04 7.54C6.05 7.72 6.07 7.91 6.1 8.1C6.14 8.28 6.18 8.47 6.23 8.65C6.28 8.83 6.34 9.01 6.41 9.18C6.48 9.36 6.55 9.53 6.64 9.7C6.73 9.86 6.82 10.03 6.92 10.18C7.02 10.34 7.13 10.49 7.25 10.64C7.37 10.79 7.49 10.93 7.62 11.06C7.75 11.2 7.89 11.33 8.03 11.45C8.18 11.57 8.33 11.68 8.48 11.79C8.64 11.89 8.8 11.99 8.97 12.08L2.89 13.82C2.73 13.86 2.6 13.95 2.5 14.07C2.4 14.2 2.35 14.34 2.34 14.5C2.33 14.82 2.34 15.14 2.38 15.45C2.42 15.77 2.48 16.08 2.58 16.38C2.67 16.69 2.78 16.98 2.92 17.27C3.07 17.55 3.23 17.82 3.42 18.08C3.61 18.34 3.82 18.58 4.05 18.8C4.28 19.02 4.52 19.22 4.78 19.4C5.05 19.58 5.32 19.74 5.61 19.87C5.9 20 6.2 20.11 6.51 20.19C6.98 20.32 7.47 20.38 7.97 20.38C8.35 20.38 8.72 20.35 9.09 20.27C9.46 20.19 9.82 20.08 10.16 19.93C10.51 19.79 10.83 19.61 11.15 19.39C11.46 19.18 11.75 18.94 12.01 18.67C12.27 18.39 12.5 18.1 12.7 17.78C12.91 17.46 13.07 17.13 13.21 16.78C13.34 16.43 13.44 16.07 13.51 15.69C13.57 15.32 13.6 14.95 13.58 14.57L18.13 18.97C18.25 19.08 18.38 19.15 18.54 19.17C18.7 19.2 18.85 19.17 19 19.1C19.28 18.95 19.55 18.78 19.8 18.59C20.05 18.4 20.29 18.19 20.51 17.95C20.72 17.72 20.92 17.47 21.1 17.21C21.27 16.94 21.42 16.67 21.55 16.37C21.68 16.08 21.78 15.78 21.86 15.48C21.94 15.17 21.99 14.85 22.01 14.54C22.04 14.22 22.03 13.9 22.01 13.59C21.98 13.27 21.92 12.96 21.84 12.65ZM10.5 12C10.5 11.8 10.53 11.6 10.61 11.42C10.69 11.24 10.79 11.07 10.93 10.93C11.07 10.79 11.24 10.69 11.42 10.61C11.6 10.53 11.8 10.5 12 10.5C12.19 10.5 12.39 10.53 12.57 10.61C12.75 10.69 12.92 10.79 13.06 10.93C13.2 11.07 13.3 11.24 13.38 11.42C13.46 11.6 13.5 11.8 13.5 12C13.5 12.19 13.46 12.39 13.38 12.57C13.3 12.75 13.2 12.91 13.06 13.06C12.92 13.2 12.75 13.3 12.57 13.38C12.39 13.46 12.19 13.5 12 13.5C11.8 13.5 11.6 13.46 11.42 13.38C11.24 13.3 11.07 13.2 10.93 13.06C10.79 12.91 10.69 12.75 10.61 12.57C10.53 12.39 10.5 12.19 10.5 12ZM7.5 7.12C7.5 6.95 7.51 6.77 7.53 6.6C7.55 6.43 7.58 6.26 7.62 6.09C7.67 5.93 7.72 5.76 7.78 5.6C7.85 5.44 7.92 5.28 8.01 5.13C8.09 4.98 8.18 4.83 8.28 4.69C8.39 4.55 8.5 4.42 8.61 4.3C8.73 4.17 8.86 4.05 8.99 3.94C9.12 3.83 9.26 3.73 9.41 3.64C9.56 3.54 9.71 3.46 9.86 3.39C10.02 3.31 10.18 3.25 10.35 3.2C10.51 3.14 10.68 3.1 10.85 3.07C11.02 3.03 11.19 3.01 11.36 3C11.53 2.99 11.71 2.99 11.88 3C12.05 3.01 12.23 3.03 12.39 3.07C12.57 3.1 12.73 3.14 12.9 3.2C13.06 3.25 13.22 3.31 13.38 3.39L11.97 9C11.71 9 11.44 9.03 11.18 9.11C10.92 9.18 10.68 9.29 10.45 9.42C10.22 9.56 10.01 9.73 9.83 9.92C9.64 10.12 9.48 10.33 9.35 10.57C9.07 10.38 8.81 10.16 8.58 9.91C8.35 9.66 8.15 9.38 7.99 9.08C7.83 8.78 7.7 8.46 7.62 8.13C7.53 7.8 7.5 7.46 7.5 7.12ZM10.03 18.33C9.88 18.42 9.72 18.49 9.56 18.56C9.4 18.63 9.24 18.68 9.07 18.73C8.91 18.78 8.74 18.81 8.57 18.84C8.39 18.86 8.22 18.88 8.05 18.88C7.88 18.89 7.7 18.88 7.53 18.86C7.36 18.84 7.19 18.81 7.02 18.77C6.85 18.73 6.69 18.68 6.53 18.62C6.36 18.56 6.21 18.49 6.05 18.41C5.9 18.33 5.75 18.24 5.61 18.15C5.47 18.05 5.33 17.94 5.2 17.82C5.07 17.71 4.95 17.58 4.84 17.45C4.73 17.32 4.62 17.18 4.53 17.04C4.43 16.9 4.34 16.75 4.27 16.59C4.19 16.44 4.12 16.28 4.07 16.11C4.01 15.95 3.96 15.78 3.93 15.61C3.89 15.45 3.87 15.27 3.85 15.1L9.41 13.51C9.55 13.74 9.7 13.94 9.89 14.13C10.07 14.31 10.28 14.47 10.51 14.6C10.73 14.73 10.97 14.83 11.23 14.89C11.48 14.96 11.73 14.99 12 15L12.08 15C12.06 15.34 12 15.67 11.9 16C11.8 16.32 11.66 16.63 11.48 16.92C11.3 17.21 11.08 17.48 10.84 17.72C10.59 17.95 10.32 18.16 10.03 18.33ZM19.98 16.17C19.67 16.71 19.26 17.15 18.76 17.5L14.6 13.48C14.74 13.24 14.84 13 14.91 12.74C14.97 12.48 15 12.21 15 11.94C14.99 11.68 14.95 11.41 14.88 11.15C14.8 10.9 14.69 10.65 14.55 10.42C14.75 10.33 14.95 10.24 15.16 10.18C15.37 10.11 15.58 10.06 15.8 10.03C16.02 9.99 16.24 9.98 16.46 9.98C16.68 9.99 16.9 10.01 17.12 10.04C17.34 10.08 17.55 10.14 17.76 10.21C17.97 10.28 18.17 10.37 18.36 10.47C18.56 10.58 18.75 10.7 18.92 10.83C19.09 10.97 19.26 11.11 19.41 11.27C19.56 11.44 19.7 11.61 19.82 11.79C19.94 11.97 20.05 12.16 20.15 12.36C20.24 12.56 20.32 12.77 20.38 12.98C20.44 13.19 20.48 13.41 20.51 13.63C20.53 13.85 20.54 14.07 20.53 14.29C20.52 14.51 20.5 14.73 20.45 14.94C20.41 15.16 20.34 15.37 20.26 15.58C20.19 15.78 20.09 15.98 19.98 16.17Z fill#39AFDA fill-opacity1.000000 fill-rulenonzero>/path> /g>/svg>/i>/div> div classflex flex-col gap-2px> span classtext-16px block text-base font-semibold leading-6 text-left text-#23316b text-opacity-100% hover:text-#39afda>Bathroom exhaust cleaning/span> p classblock text-16px text-gray-500 text-sm font-medium leading-5 text-left>Improve ventilation and system performance/p>/div>/a>/div> div classflex flex-row gap-40px md:gap-24px sm:flex-col> a classw-278px href/services/breathe-easy-with-clean-air-ducts > div classw-44px h-44px flex items-center justify-center rounded-9999px border-1px border-opacity-100% border-#f7f8fd aspect-square> i classblock w-24px h-auto mt-0px pl-0px mr-0px text-color:var(--6771f57faff49)>svg width24.000000 height24.000000 viewbox0 0 24 24 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip2669_39250> rect idSwap width24.000000 height24.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> g clip-pathurl(#clip2669_39250)> path idVector 324 dM16.31 3L10.5 4.5L6 7.5L3 11.5L2 16.5L1.69 20.78C1.69 20.9 1.78 21 1.89 21L11.64 21C11.75 21 11.84 20.9 11.84 20.79C11.85 20.27 11.92 19.66 12.09 19C12.25 18.4 12.49 17.76 12.83 17.12C13.07 16.68 13.36 16.23 13.7 15.8C13.88 15.58 14.07 15.37 14.28 15.18C14.85 14.65 15.53 14.23 16.31 13.9C17.01 13.61 17.78 13.4 18.6 13.27C19.3 13.15 20.03 13.09 20.8 13.08C20.91 13.08 21 12.99 21 12.88L21 3.19C21 3.08 20.91 3 20.8 3L16.31 3ZM16.31 3L18.6 13.27M10.5 4.5L16.31 13.9M6 7.5L14.28 15.18M3 11.5L12.83 17.12M2 16.5L12.09 19 stroke#39AFDA stroke-opacity1.000000 stroke-width1.600000>/path> /g>/svg>/i>/div> div classflex flex-col gap-2px> span classtext-16px block text-base font-semibold leading-6 text-left text-#23316b text-opacity-100% hover:text-#39afda>Air duct cleaning/span> p classblock text-16px text-gray-500 text-sm font-medium leading-5 text-left>Breathe easier, live healthier/p>/div>/a> a classw-278px href/services/custom-service-calls > div classw-44px h-44px flex items-center justify-center rounded-9999px border-1px border-opacity-100% border-#f7f8fd aspect-square> i classblock w-24px h-auto mt-0px pl-0px mr-0px text-color:var(--6771f57faff49)>svg width24.000000 height24.000000 viewbox0 0 24 24 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip2669_39253> rect idUserCircleGear width24.000000 height24.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> g clip-pathurl(#clip2669_39253)> path idpath dM21.39 5.91L20.96 5.66C21.01 5.38 21.01 5.11 20.96 4.83L21.39 4.58C21.48 4.53 21.55 4.47 21.61 4.39C21.67 4.31 21.72 4.22 21.75 4.13C21.77 4.03 21.78 3.93 21.76 3.83C21.75 3.74 21.72 3.64 21.67 3.56C21.62 3.47 21.55 3.4 21.48 3.34C21.4 3.28 21.31 3.23 21.21 3.21C21.12 3.18 21.02 3.18 20.92 3.19C20.82 3.2 20.73 3.23 20.64 3.28L20.21 3.54C20 3.35 19.76 3.22 19.5 3.12L19.5 2.62C19.5 2.52 19.48 2.42 19.44 2.33C19.4 2.24 19.35 2.16 19.28 2.09C19.21 2.02 19.12 1.97 19.03 1.93C18.94 1.89 18.85 1.87 18.75 1.87C18.65 1.87 18.55 1.89 18.46 1.93C18.37 1.97 18.28 2.02 18.21 2.09C18.14 2.16 18.09 2.24 18.05 2.33C18.01 2.42 18 2.52 18 2.62L18 3.12C17.73 3.22 17.5 3.35 17.28 3.54L16.85 3.28C16.76 3.23 16.67 3.2 16.57 3.19C16.47 3.18 16.37 3.18 16.28 3.21C16.18 3.23 16.09 3.28 16.01 3.34C15.94 3.4 15.87 3.47 15.82 3.56C15.77 3.64 15.74 3.74 15.73 3.83C15.71 3.93 15.72 4.03 15.75 4.13C15.77 4.22 15.82 4.31 15.88 4.39C15.94 4.47 16.01 4.53 16.1 4.58L16.53 4.83C16.48 5.11 16.48 5.38 16.53 5.66L16.1 5.91C15.95 5.99 15.84 6.11 15.78 6.27C15.71 6.43 15.7 6.59 15.75 6.75C15.79 6.92 15.88 7.05 16.01 7.15C16.15 7.26 16.3 7.31 16.47 7.31C16.6 7.31 16.73 7.27 16.85 7.21L17.28 6.95C17.5 7.14 17.73 7.27 18 7.37L18 7.87C18 7.97 18.01 8.07 18.05 8.16C18.09 8.25 18.14 8.33 18.21 8.4C18.28 8.47 18.37 8.52 18.46 8.56C18.55 8.6 18.65 8.62 18.75 8.62C18.85 8.62 18.94 8.6 19.03 8.56C19.12 8.52 19.21 8.47 19.28 8.4C19.35 8.33 19.4 8.25 19.44 8.16C19.48 8.07 19.5 7.97 19.5 7.87L19.5 7.37C19.76 7.27 20 7.14 20.21 6.95L20.64 7.21C20.76 7.27 20.89 7.31 21.02 7.31C21.19 7.31 21.34 7.26 21.48 7.15C21.61 7.05 21.7 6.92 21.75 6.75C21.79 6.59 21.78 6.43 21.71 6.27C21.65 6.11 21.54 5.99 21.39 5.91ZM18 5.25C18 5.15 18.01 5.05 18.05 4.96C18.09 4.87 18.14 4.79 18.21 4.71C18.28 4.64 18.37 4.59 18.46 4.55C18.55 4.51 18.65 4.5 18.75 4.5C18.85 4.5 18.94 4.51 19.03 4.55C19.12 4.59 19.21 4.64 19.28 4.71C19.35 4.79 19.4 4.87 19.44 4.96C19.48 5.05 19.5 5.15 19.5 5.25C19.5 5.34 19.48 5.44 19.44 5.53C19.4 5.62 19.35 5.7 19.28 5.78C19.21 5.85 19.12 5.9 19.03 5.94C18.94 5.98 18.85 6 18.75 6C18.65 6 18.55 5.98 18.46 5.94C18.37 5.9 18.28 5.85 18.21 5.78C18.14 5.7 18.09 5.62 18.05 5.53C18.01 5.44 18 5.34 18 5.25ZM20.75 9.76C20.65 9.77 20.56 9.81 20.48 9.86C20.39 9.91 20.32 9.98 20.26 10.06C20.2 10.14 20.16 10.23 20.14 10.33C20.12 10.42 20.12 10.52 20.13 10.62C20.21 11.07 20.25 11.53 20.25 12C20.25 13 20.07 13.98 19.71 14.93C19.35 15.87 18.83 16.72 18.16 17.47C17.74 16.86 17.25 16.33 16.67 15.87C16.09 15.41 15.46 15.05 14.78 14.78C15.02 14.58 15.25 14.37 15.44 14.13C15.64 13.89 15.82 13.64 15.96 13.36C16.11 13.09 16.23 12.8 16.32 12.51C16.4 12.21 16.46 11.9 16.48 11.59C16.51 11.29 16.5 10.98 16.46 10.67C16.42 10.36 16.35 10.06 16.25 9.77C16.15 9.47 16.01 9.19 15.85 8.93C15.7 8.66 15.51 8.41 15.3 8.19C15.09 7.96 14.86 7.75 14.6 7.57C14.35 7.39 14.08 7.24 13.8 7.12C13.51 6.99 13.22 6.9 12.92 6.84C12.61 6.77 12.31 6.74 12 6.74C11.69 6.74 11.38 6.77 11.07 6.84C10.77 6.9 10.48 6.99 10.19 7.12C9.91 7.24 9.64 7.39 9.39 7.57C9.13 7.75 8.9 7.96 8.69 8.19C8.48 8.41 8.3 8.66 8.14 8.93C7.98 9.19 7.85 9.47 7.75 9.77C7.64 10.06 7.57 10.36 7.53 10.67C7.49 10.98 7.48 11.29 7.51 11.59C7.53 11.9 7.59 12.21 7.68 12.51C7.76 12.8 7.88 13.09 8.03 13.36C8.17 13.64 8.35 13.89 8.55 14.13C8.75 14.37 8.97 14.58 9.21 14.78C8.53 15.05 7.9 15.41 7.32 15.87C6.75 16.33 6.25 16.86 5.83 17.47C5.57 17.18 5.33 16.86 5.11 16.53C4.89 16.2 4.7 15.86 4.53 15.5C4.37 15.14 4.22 14.77 4.11 14.4C4 14.02 3.91 13.63 3.85 13.24C3.79 12.85 3.76 12.46 3.75 12.06C3.75 11.67 3.77 11.28 3.83 10.88C3.88 10.49 3.96 10.11 4.07 9.73C4.18 9.35 4.32 8.98 4.48 8.61C4.64 8.25 4.82 7.91 5.04 7.57C5.25 7.24 5.48 6.92 5.74 6.62C6 6.32 6.28 6.04 6.57 5.78C6.87 5.52 7.19 5.29 7.52 5.07C7.85 4.86 8.19 4.67 8.55 4.5C8.91 4.33 9.28 4.2 9.66 4.08C10.04 3.97 10.42 3.89 10.82 3.83C11.21 3.77 11.6 3.75 12 3.75C12.46 3.75 12.92 3.78 13.37 3.86C13.47 3.87 13.57 3.87 13.66 3.85C13.76 3.83 13.85 3.78 13.93 3.73C14.01 3.67 14.07 3.6 14.12 3.51C14.18 3.43 14.21 3.34 14.23 3.24C14.25 3.14 14.24 3.05 14.22 2.95C14.2 2.86 14.16 2.77 14.1 2.69C14.05 2.61 13.98 2.54 13.89 2.49C13.81 2.43 13.72 2.4 13.62 2.38C13.28 2.32 12.94 2.28 12.6 2.26C12.26 2.24 11.92 2.24 11.58 2.25C11.24 2.27 10.9 2.3 10.56 2.35C10.22 2.4 9.89 2.47 9.56 2.56C9.23 2.64 8.9 2.75 8.58 2.87C8.26 2.99 7.95 3.12 7.64 3.28C7.34 3.43 7.04 3.6 6.75 3.78C6.46 3.96 6.19 4.16 5.92 4.38C5.66 4.59 5.4 4.82 5.16 5.06C4.91 5.3 4.68 5.55 4.47 5.81C4.25 6.08 4.05 6.35 3.86 6.64C3.67 6.92 3.5 7.22 3.34 7.52C3.19 7.83 3.05 8.14 2.92 8.46C2.8 8.77 2.69 9.1 2.6 9.43C2.51 9.76 2.44 10.09 2.39 10.43C2.33 10.77 2.3 11.11 2.28 11.45C2.26 11.79 2.26 12.13 2.27 12.47C2.29 12.81 2.32 13.15 2.38 13.49C2.43 13.83 2.5 14.16 2.59 14.49C2.67 14.82 2.78 15.15 2.9 15.46C3.02 15.78 3.16 16.1 3.32 16.4C3.47 16.7 3.64 17 3.83 17.29C4.01 17.57 4.21 17.85 4.43 18.12C4.64 18.38 4.87 18.63 5.11 18.88C5.35 19.12 5.61 19.35 5.87 19.56C6.14 19.78 6.42 19.98 6.7 20.16C6.99 20.35 7.28 20.52 7.59 20.67C7.89 20.83 8.21 20.97 8.53 21.09C8.85 21.21 9.17 21.32 9.5 21.4C9.83 21.49 10.16 21.56 10.5 21.61C10.84 21.67 11.18 21.7 11.52 21.72C11.86 21.74 12.2 21.73 12.55 21.72C12.89 21.7 13.23 21.66 13.56 21.6C13.9 21.55 14.23 21.48 14.56 21.39C14.89 21.3 15.22 21.19 15.53 21.07C15.85 20.94 16.16 20.8 16.47 20.65C16.77 20.49 17.07 20.32 17.35 20.13C17.64 19.94 17.91 19.74 18.17 19.52C18.44 19.31 18.69 19.08 18.93 18.84C19.17 18.59 19.4 18.34 19.61 18.07C19.83 17.8 20.03 17.53 20.21 17.24C20.39 16.95 20.56 16.65 20.71 16.35C20.87 16.04 21 15.73 21.12 15.41C21.25 15.09 21.35 14.76 21.43 14.43C21.52 14.1 21.59 13.77 21.64 13.43C21.69 13.09 21.72 12.75 21.74 12.41C21.75 12.07 21.75 11.73 21.73 11.39C21.71 11.05 21.67 10.71 21.61 10.37C21.59 10.27 21.56 10.18 21.51 10.1C21.46 10.01 21.39 9.94 21.31 9.88C21.23 9.83 21.14 9.79 21.04 9.76C20.94 9.74 20.85 9.74 20.75 9.76ZM9 11.25C9 11.05 9.01 10.85 9.05 10.66C9.09 10.47 9.15 10.28 9.23 10.1C9.3 9.91 9.39 9.74 9.5 9.58C9.61 9.41 9.73 9.26 9.87 9.12C10.01 8.98 10.17 8.86 10.33 8.75C10.49 8.64 10.67 8.55 10.85 8.47C11.03 8.4 11.22 8.34 11.41 8.3C11.6 8.26 11.8 8.25 12 8.25C12.19 8.25 12.39 8.26 12.58 8.3C12.77 8.34 12.96 8.4 13.14 8.47C13.33 8.55 13.5 8.64 13.66 8.75C13.83 8.86 13.98 8.98 14.12 9.12C14.26 9.26 14.38 9.41 14.49 9.58C14.6 9.74 14.69 9.91 14.77 10.1C14.84 10.28 14.9 10.47 14.94 10.66C14.98 10.85 15 11.05 15 11.25C15 11.44 14.98 11.64 14.94 11.83C14.9 12.02 14.84 12.21 14.77 12.39C14.69 12.58 14.6 12.75 14.49 12.91C14.38 13.08 14.26 13.23 14.12 13.37C13.98 13.51 13.83 13.63 13.66 13.74C13.5 13.85 13.33 13.94 13.14 14.02C12.96 14.09 12.77 14.15 12.58 14.19C12.39 14.23 12.19 14.25 12 14.25C11.8 14.25 11.6 14.23 11.41 14.19C11.22 14.15 11.03 14.09 10.85 14.02C10.67 13.94 10.49 13.85 10.33 13.74C10.17 13.63 10.01 13.51 9.87 13.37C9.73 13.23 9.61 13.08 9.5 12.91C9.39 12.75 9.3 12.58 9.23 12.39C9.15 12.21 9.09 12.02 9.05 11.83C9.01 11.64 9 11.44 9 11.25ZM6.94 18.51C7.08 18.3 7.22 18.1 7.39 17.9C7.55 17.71 7.72 17.53 7.9 17.36C8.08 17.19 8.28 17.03 8.48 16.88C8.68 16.73 8.89 16.6 9.11 16.48C9.33 16.36 9.56 16.25 9.8 16.16C10.03 16.07 10.26 15.99 10.51 15.93C10.75 15.87 11 15.82 11.25 15.79C11.5 15.76 11.75 15.74 12 15.74C12.25 15.74 12.5 15.76 12.75 15.79C13 15.82 13.24 15.87 13.48 15.93C13.73 15.99 13.96 16.07 14.2 16.16C14.43 16.25 14.66 16.36 14.88 16.48C15.1 16.6 15.31 16.73 15.51 16.88C15.71 17.03 15.91 17.19 16.09 17.36C16.28 17.53 16.45 17.71 16.61 17.9C16.77 18.1 16.92 18.3 17.05 18.51C16.69 18.79 16.31 19.04 15.91 19.25C15.51 19.47 15.1 19.65 14.67 19.8C14.24 19.95 13.8 20.06 13.35 20.13C12.9 20.21 12.45 20.25 12 20.25C11.54 20.25 11.09 20.21 10.64 20.13C10.19 20.06 9.75 19.95 9.32 19.8C8.89 19.65 8.48 19.47 8.08 19.25C7.68 19.04 7.3 18.79 6.94 18.51Z fill#39AFDA fill-opacity1.000000 fill-rulenonzero>/path> /g>/svg>/i>/div> div classflex flex-col gap-2px> span classtext-16px block text-base font-semibold leading-6 text-left text-#23316b text-opacity-100% hover:text-#39afda>Custom service calls/span> p classblock text-16px text-gray-500 text-sm font-medium leading-5 text-left>Address your unique requirements with care/p>/div>/a>/div>/div>/div> a classno-underline focus:outline-none tracking--0.025em text-16px font-medium hover:text-opacity-100% hover:text-#1f316e text-color:var(--6771f4b03754f) href/pricing >Pricing/a> a classno-underline focus:outline-none tracking--0.025em text-16px font-medium hover:text-opacity-100% hover:text-#1f316e text-color:var(--6771f4b03754f) href/partnership >Partnership/a>/div> div classflex mr-auto ml-auto pl-32px justify-end pr-32px flex-nowrap gap-32px w-100% max-w-1280px overflow-visible flex-row md:justify-start md:flex-col sm:pl-0px sm:pr-0px> localeSelector classflex items-center pt-10px pb-10px relative border-1px pl-12px pr-12px border-opacity-0% border-#000000 w-max-content text-16px rounded-12px tracking--0.025em gap-6px font-greycliff-cf-medium hover:bg-#f9fbff hover:bg-url(-) hover:text-color:var(--6771f1b644a18) text-color:var(--6771f4b03754f) md:pl-0px> span >English/span>select classlocale-select v-on:changehandleLocaleChange>option valueen data-url/ selected>English/option>option valuefr data-url/fr >Français/option>option valuezh data-url/zh >中文/option>/select> i classinline-block w-18px h-auto>svg xmlnshttp://www.w3.org/2000/svg viewbox0 0 20 20 fillcurrentColor aria-hiddentrue> path fill-ruleevenodd dM5.23 7.21a.75.75 0 0 1 1.06.02L10 11.168l3.71-3.938a.75.75 0 1 1 1.08 1.04l-4.25 4.5a.75.75 0 0 1-1.08 0l-4.25-4.5a.75.75 0 0 1 .02-1.06Z clip-ruleevenodd>/path> /svg>/i>/localeSelector> a classpr-20px pl-20px focus:outline-none tracking--0.025em leading-1.5em pt-10px pb-10px bg-opacity-100% font-greycliff-cf-demi-bold text-16px rounded-12px bg-#f9fbff border-#e2e8f6 flex border-solid border-1px border-opacity-75% md:flex-shrink md: md:w-100% md:text-center md:justify-center hreftel:(514) 222-0320> span classflex-shrink md:text-center>Contact us/span>/a>/div>/div>/div>/div>/nav> section classflex flex-col font-greycliff-cf-medium bg-linear-gradient(180deg,rgba(255,255,255,1)5.095541401273885%,rgba(249,251,255,1)100%) text-color:var(--6771f1b644a18) sm:pt-56px sm:pb-90px md:pt-82px md:pb-72px pt-78px pb-65px> div classflex flex-col w-100% max-w-1280px mr-auto ml-auto pr-32px pl-32px md:max-w-768px> div classflex flex-col items-center gap-20px sm:items-stretch> div classflex flex-col items-center justify-center sm:items-stretch gap-20px max-w-768px> h1 classtext-center sm:text-36px tracking--0.05em leading-1.1 font-quincy-cf-bold text-72px text-opacity-100% text-#1f316e md:text-52px md:font-bold>Professional dust extraction for your home/h1> p classtext-center text-20px text-color:var(--6771f4b03754f) md:text-#576388 md:text-opacity-100% sm:text-20px>Choose a team which specializes in air duct cleaning and helps you fight against asthma and allergies—you deserve clean air and a safe home./p>/div> div classflex flex-row justify-center items-center gap-12px sm:flex-col sm:items-stretch> a classflex flex-row items-center justify-center text-white pr-20px pl-20px border-transparent border-1px border-solid inline-block focus:outline-none font-medium text-16px tracking--0.025em leading-1.5em pt-10px pb-10px bg-color:var(--6771f57faff49) rounded-8px href/quote > span classfont-greycliff-cf-bold>Get your price/span>/a>/div> div classflex-shrink flex flex-col items-center> div classflex gap-5px mt-80px> img classw-auto h-auto max-w-100% srchttps://assets.ycodeapp.com/assets/app81882/Icons/star___light___duotone_rrwkqh8e6ubt3k_4bel4x-fo6yg2zrgu.svg> img classw-auto h-auto max-w-100% srchttps://assets.ycodeapp.com/assets/app81882/Icons/star___light___duotone_rrwkqh8e6ubt3k_4bel4x-fo6yg2zrgu.svg> img classw-auto h-auto max-w-100% srchttps://assets.ycodeapp.com/assets/app81882/Icons/star___light___duotone_rrwkqh8e6ubt3k_4bel4x-fo6yg2zrgu.svg> img classw-auto h-auto max-w-100% srchttps://assets.ycodeapp.com/assets/app81882/Icons/star___light___duotone_rrwkqh8e6ubt3k_4bel4x-fo6yg2zrgu.svg> img classw-auto h-auto max-w-100% srchttps://assets.ycodeapp.com/assets/app81882/Icons/star___light___duotone_rrwkqh8e6ubt3k_4bel4x-fo6yg2zrgu.svg> span classtext-16px block text-opacity-100% text-#576388>4.9 Rating/span>/div> span classblock text-24px font-greycliff-cf-demi-bold>with over 500+ reviews/span> span classblock text-color:var(--6771f4b03754f) text-18px sm:text-center>were loved on Google and Facebook/span> a classmd:flex md:items-center md:gap-8px flex items-center gap-4px href/reviews > span classtext-16px block md:underline md:break-normal md:tracking-0px md:leading-1.625em underline>Read them/span> i classblock w-24px h-auto>svg width16.000000 height16.000000 viewbox0 0 16 16 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip1513_38094> rect idarrow-narrow-right width16.000000 height16.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> rect idarrow-narrow-right width16.000000 height16.000000 fill#FFFFFF fill-opacity0>/rect> g clip-pathurl(#clip1513_38094)> path idIcon dM2.66 8L13.33 8M9.33 4L13.33 8L9.33 12 stroke#23316B stroke-opacity1.000000 stroke-width1.333333 stroke-linejoinround stroke-linecapround>/path> /g>/svg>/i>/a>/div>/div>/div>/section> section classflex flex-col pt-120px pb-47px> div classflex flex-col w-100% max-w-1280px mr-auto ml-auto pr-32px pl-32px> div classflex flex-col gap-12px> div classflex-grow flex flex-col items-center> h3 classtext-center sm:text-36px tracking--0.05em leading-1.1 md:text-48px font-quincy-cf-bold text-opacity-100% text-#1f316e text-48px max-w-34rem>Dust extraction can drastically improve the air quality in your home./h3> p classblock text-16px text-center mt-16px text-opacity-50% text-#1f316e>It’s especially helpful when dealing with asthma or allergies./p>/div> div classflex items-center justify-center mt-60px> div classsm:grid-cols-1 place-content-center flex justify-center flex-wrap max-w-853px gap-60px items-start md:gap-56px sm:gap-24px> div classblock max-w-330px> div classflex flex-row gap-12px> img classmax-w-100% object-cover w-44px h-44px srchttps://assets.ycodeapp.com/assets/app81882/Images/published/icon_chart-le8lz3gen2.webp width40 height40 srcsethttps://assets.ycodeapp.com/assets/app81882/images/published/icon_chart-le8lz3gen2-150.webp 150w, https://assets.ycodeapp.com/assets/app81882/Images/published/icon_chart-le8lz3gen2.webp 160w sizes1408px> div classw-100%> div classflex flex-col gap-10px> span classblock text-opacity-100% text-#1f316e text-20px font-greycliff-cf-bold>Less dust, more comfort/span> p classblock text-opacity-100% text-#1f316e text-17px font-greycliff-cf-medium>By removing the buildup of dust, debris and triggers that are lining the walls of your ducts means you’re free to be yourself./p>/div>/div>/div>/div> div classblock max-w-330px> div classflex flex-row gap-12px> img classmax-w-100% object-cover w-44px h-44px srchttps://assets.ycodeapp.com/assets/app81882/Images/published/vector%20326-hka5ia3gnk.webp width40 height40 srcsethttps://assets.ycodeapp.com/assets/app81882/Images/published/vector%20326-hka5ia3gnk.webp 32w sizes1408px> div classw-100%> div classflex flex-col gap-10px> span classblock text-opacity-100% text-#1f316e text-20px font-greycliff-cf-bold>Saying “Goodbye”/span> p classblock text-opacity-100% text-#1f316e text-17px font-greycliff-cf-medium>Seeing that 80% of dust is dead skin cells, means the prior homeowners and their pets will finally move out of your home./p>/div>/div>/div>/div> div classblock max-w-330px> div classflex flex-row gap-12px> img classmax-w-100% object-cover w-44px h-44px srchttps://assets.ycodeapp.com/assets/app81882/Images/published/icon_layers-f1zxkl4mps.webp width40 height40 srcsethttps://assets.ycodeapp.com/assets/app81882/images/published/icon_layers-f1zxkl4mps-150.webp 150w, https://assets.ycodeapp.com/assets/app81882/Images/published/icon_layers-f1zxkl4mps.webp 160w sizes1408px> div classw-100%> div classflex flex-col gap-10px> span classblock text-opacity-100% text-#1f316e text-20px font-greycliff-cf-bold>Removes odors/span> p classblock text-opacity-100% text-#1f316e text-17px font-greycliff-cf-medium>Get rid of unwanted smells — such as cigarettes, urine, marijuana, and stale food./p>/div>/div>/div>/div> div classblock max-w-330px> div classflex flex-row gap-12px> img classmax-w-100% object-cover w-44px h-44px srchttps://assets.ycodeapp.com/assets/app81882/Images/published/icon_chart-le8lz3gen2.webp width40 height40 srcsethttps://assets.ycodeapp.com/assets/app81882/images/published/icon_chart-le8lz3gen2-150.webp 150w, https://assets.ycodeapp.com/assets/app81882/Images/published/icon_chart-le8lz3gen2.webp 160w sizes1408px> div classw-100%> div classflex flex-col gap-10px> span classblock text-opacity-100% text-#1f316e text-20px font-greycliff-cf-bold>Save a little on energy/span> p classblock text-opacity-100% text-#1f316e text-17px font-greycliff-cf-medium>We’ve definitely seen our share of homes and families save from extracting huge chunks of dust from their home./p>/div>/div>/div>/div>/div>/div>/div>/div>/section> section classflex flex-col bg-opacity-100% bg-#ffffff pt-100px pb-100px lg:bg-linear-gradient(180deg,rgba(255,255,255,1)0%,rgba(248,251,255,1)100%) md:pt-64px md:pb-64px> div classflex flex-col w-100% max-w-1280px mr-auto ml-auto pr-32px pl-32px> div classflex flex-col items-center gap-56px> div classgrid sm:grid-cols-1 w-100% lg:grid-cols-2 grid-cols-3 gap-24px max-w-1044px lg:gap-x-59px lg:gap-y-47px lg:max-w-auto lg:w-fit-content> div classflex flex-col items-center rounded-24px pl-0px pt-0px pr-0px pb-0px gap-32px lg:w-292px> img classmax-w-100% w-auto h-78px srchttps://assets.ycodeapp.com/assets/app81882/Images/published/frame%2053120-sp9navjsse.webp srcsethttps://assets.ycodeapp.com/assets/app81882/Images/published/frame%2053120-sp9navjsse.webp 79w sizes(max-width: 79px) 100vw, 79px> div classflex flex-col gap-4px> span classblock text-opacity-100% text-center text-14px text-rgb(35 49 107) text-xl leading-30px tracking--1% text-left text-#23316b font-greycliff-cf-bold>30 Day Smile Guarantee/span> span classblock text-center text-14px text-#8b96b6 text-opacity-100% font-greycliff-cf-medium>Were here to ensure you leave with a smile that lasts/span>/div>/div> div classflex flex-col items-center rounded-24px pl-0px pt-0px pr-0px pb-0px gap-32px w-362px lg:w-292px> img classmax-w-100% w-auto h-78px srchttps://assets.ycodeapp.com/assets/app81882/Images/published/frame%2053124%20(3)-n8kkbxmwac.webp srcsethttps://assets.ycodeapp.com/assets/app81882/Images/published/frame%2053124%20(3)-n8kkbxmwac.webp 79w sizes11584px> div classflex flex-col gap-4px> span classblock text-opacity-100% text-center text-14px text-rgb(35 49 107) text-xl leading-30px tracking--1% text-left text-#23316b font-greycliff-cf-bold>500+ Reviews on Google & Facebook/span> span classblock text-center text-14px text-#8b96b6 text-opacity-100% font-greycliff-cf-medium>Join over 500 satisfied customers who trust us/span>/div>/div> div classflex flex-col items-center rounded-24px pl-0px pt-0px pr-0px pb-0px gap-32px lg:w-292px> img classmax-w-100% h-78px w-auto srchttps://assets.ycodeapp.com/assets/app81882/Images/published/star-01-2gbi6kayag.webp srcsethttps://assets.ycodeapp.com/assets/app81882/Images/published/star-01-2gbi6kayag.webp 85w sizes(max-width: 85px) 100vw, 85px> div classflex flex-col gap-4px> span classblock text-opacity-100% text-center text-14px text-rgb(35 49 107) text-xl leading-30px tracking--1% text-left text-#23316b font-greycliff-cf-bold>4.9 Average Customer Rating/span> span classblock text-center text-14px text-#8b96b6 text-opacity-100% font-greycliff-cf-medium>Highly rated by our customers for outstanding service and reliability/span>/div>/div>/div>/div>/div>/section> section classflex flex-col pt-63px pb-63px> div classflex flex-col w-100% max-w-1280px mr-auto ml-auto pr-32px pl-32px> div classflex flex-col gap-12px> div classflex-grow flex flex-col items-center> h3 classtext-center sm:text-36px tracking--0.05em leading-1.1 md:text-48px font-quincy-cf-bold text-opacity-100% text-#1f316e text-48px max-w-35rem>We’ve made it our top priority to be the best choice possible by.../h3> p classblock text-16px text-center mt-16px text-opacity-50% text-#1f316e max-w-686px font-greycliff-cf-medium>Eliminating the most common pain points of the industry. We help clean your indoor and outdoor air at the same time./p>/div> div classflex items-center justify-center mt-60px> div classflex flex-row gap-32px md:flex-col md:items-center> ul classflex flex-col justify-start items-start flex-none order-none grow-0 my-0 rounded-lg; list-none transform shadow-0px_4px_55px_-16px_#20326e29,0px_4px_25px_-20px_#20326e4d shadow-0px_4px_55px_-16px_#20326e29 0px_4px_25px_-20px_#20326e4d pt-12 pb-12 pl-12 pr-12 gap-30px sm:w-360 sm:w-360px font-greycliff-cf-demi-bold w-50%> li classflex items-center gap-15px md:w-auto> i classblock w-24px text-color:var(--6771f57faff49) h-auto>svg width16.000000 height12.000000 viewbox0 0 16 12 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip1513_38209> rect id6343dfb82bb755104a281695_blue-check.svg width16.000000 height12.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> g clip-pathurl(#clip1513_38209)> path idVector dM14.44 1.7L5.44 10.7L1.35 6.61 stroke#39AFDA stroke-opacity1.000000 stroke-width1.840000 stroke-linejoinround stroke-linecapround>/path> /g>/svg>/i> span classtext-16px block text-xl leading-27px tracking-0% text-left text-color:var(--677dc833969ad) font-greycliff-cf-demi-bold>Planting a tree with every job/span>/li> li classflex items-center gap-15px> i classblock w-24px text-color:var(--6771f57faff49) h-auto>svg width16.000000 height12.000000 viewbox0 0 16 12 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip1513_38209> rect id6343dfb82bb755104a281695_blue-check.svg width16.000000 height12.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> g clip-pathurl(#clip1513_38209)> path idVector dM14.44 1.7L5.44 10.7L1.35 6.61 stroke#39AFDA stroke-opacity1.000000 stroke-width1.840000 stroke-linejoinround stroke-linecapround>/path> /g>/svg>/i> span classtext-16px block text-xl font-medium leading-27px tracking-0% text-left text-color:var(--677dc833969ad)>Using top of the line equipment/span>/li> li classflex items-center gap-15px> i classblock w-24px text-color:var(--6771f57faff49) h-auto transform>svg width16.000000 height12.000000 viewbox0 0 16 12 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip1513_38209> rect id6343dfb82bb755104a281695_blue-check.svg width16.000000 height12.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> g clip-pathurl(#clip1513_38209)> path idVector dM14.44 1.7L5.44 10.7L1.35 6.61 stroke#39AFDA stroke-opacity1.000000 stroke-width1.840000 stroke-linejoinround stroke-linecapround>/path> /g>/svg>/i> span classtext-16px block text-xl font-medium leading-27px tracking-0% text-left text-color:var(--677dc833969ad)>Properly training our teams/span>/li> li classflex items-center gap-15px> i classblock w-24px text-color:var(--6771f57faff49) h-auto>svg width16.000000 height12.000000 viewbox0 0 16 12 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip1513_38209> rect id6343dfb82bb755104a281695_blue-check.svg width16.000000 height12.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> g clip-pathurl(#clip1513_38209)> path idVector dM14.44 1.7L5.44 10.7L1.35 6.61 stroke#39AFDA stroke-opacity1.000000 stroke-width1.840000 stroke-linejoinround stroke-linecapround>/path> /g>/svg>/i> span classtext-16px block text-xl font-medium leading-27px tracking-0% text-left text-color:var(--677dc833969ad)>Showing before and after proof/span>/li> li classflex items-center gap-15px> i classblock w-24px text-color:var(--6771f57faff49) h-auto>svg width16.000000 height12.000000 viewbox0 0 16 12 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip1513_38209> rect id6343dfb82bb755104a281695_blue-check.svg width16.000000 height12.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> g clip-pathurl(#clip1513_38209)> path idVector dM14.44 1.7L5.44 10.7L1.35 6.61 stroke#39AFDA stroke-opacity1.000000 stroke-width1.840000 stroke-linejoinround stroke-linecapround>/path> /g>/svg>/i> span classtext-16px block text-xl font-medium leading-27px tracking-0% text-left text-color:var(--677dc833969ad)>Offering a smile guarantee/span>/li> li classflex items-center gap-15px> i classblock w-24px text-color:var(--6771f57faff49) h-auto>svg width16.000000 height12.000000 viewbox0 0 16 12 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip1513_38209> rect id6343dfb82bb755104a281695_blue-check.svg width16.000000 height12.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> g clip-pathurl(#clip1513_38209)> path idVector dM14.44 1.7L5.44 10.7L1.35 6.61 stroke#39AFDA stroke-opacity1.000000 stroke-width1.840000 stroke-linejoinround stroke-linecapround>/path> /g>/svg>/i> span classtext-16px block text-xl font-medium leading-27px tracking-0% text-left text-color:var(--677dc833969ad)>Having an emergency 24/7/span>/li>/ul> ul classflex flex-col justify-start items-start flex-none order-none grow-0 my-0 p-14 rounded-lg; list-none gap-30px lg:w-480px sm:w-360px w-50%> li classflex items-center gap-15px> i classblock w-24px h-auto>svg width17.000000 height17.000000 viewbox0 0 17 17 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip1513_38240> rect id6343dfb9da79c9ceeecbe120_wrong-icon.svg width17.000000 height17.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> g clip-pathurl(#clip1513_38240)> path idVector dM15.69 1.83L1.85 15.67M1.85 1.83L15.69 15.67 stroke#1F316E stroke-opacity0.250000 stroke-width2.300000 stroke-linejoinround stroke-linecapround>/path> /g>/svg>/i> span classtext-16px block text-xl font-medium leading-27px tracking-0% text-left text-color:var(--677dc833969ad)>Not pretending to clean/span>/li> li classflex items-center gap-15px> i classblock w-24px h-auto>svg width17.000000 height17.000000 viewbox0 0 17 17 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip1513_38240> rect id6343dfb9da79c9ceeecbe120_wrong-icon.svg width17.000000 height17.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> g clip-pathurl(#clip1513_38240)> path idVector dM15.69 1.83L1.85 15.67M1.85 1.83L15.69 15.67 stroke#1F316E stroke-opacity0.250000 stroke-width2.300000 stroke-linejoinround stroke-linecapround>/path> /g>/svg>/i> span classtext-16px block text-xl font-medium leading-27px tracking-0% text-left text-color:var(--677dc833969ad)>Not using bad cleaning methods/span>/li> li classflex items-center gap-15px> i classblock w-24px h-auto>svg width17.000000 height17.000000 viewbox0 0 17 17 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip1513_38240> rect id6343dfb9da79c9ceeecbe120_wrong-icon.svg width17.000000 height17.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> g clip-pathurl(#clip1513_38240)> path idVector dM15.69 1.83L1.85 15.67M1.85 1.83L15.69 15.67 stroke#1F316E stroke-opacity0.250000 stroke-width2.300000 stroke-linejoinround stroke-linecapround>/path> /g>/svg>/i> span classtext-16px block text-xl font-medium leading-27px tracking-0% text-left text-color:var(--677dc833969ad)>Not creating a mess while cleaning/span>/li> li classflex items-center gap-15px> i classblock w-24px h-auto>svg width17.000000 height17.000000 viewbox0 0 17 17 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip1513_38240> rect id6343dfb9da79c9ceeecbe120_wrong-icon.svg width17.000000 height17.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> g clip-pathurl(#clip1513_38240)> path idVector dM15.69 1.83L1.85 15.67M1.85 1.83L15.69 15.67 stroke#1F316E stroke-opacity0.250000 stroke-width2.300000 stroke-linejoinround stroke-linecapround>/path> /g>/svg>/i> span classtext-16px block text-xl font-medium leading-27px tracking-0% text-left text-color:var(--677dc833969ad)>Not surprising you with charges/span>/li> li classflex items-center gap-15px> i classblock w-24px h-auto>svg width17.000000 height17.000000 viewbox0 0 17 17 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip1513_38240> rect id6343dfb9da79c9ceeecbe120_wrong-icon.svg width17.000000 height17.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> g clip-pathurl(#clip1513_38240)> path idVector dM15.69 1.83L1.85 15.67M1.85 1.83L15.69 15.67 stroke#1F316E stroke-opacity0.250000 stroke-width2.300000 stroke-linejoinround stroke-linecapround>/path> /g>/svg>/i> span classtext-16px block text-xl font-medium leading-27px tracking-0% text-left text-color:var(--677dc833969ad)>No long-term commitments/span>/li> li classflex items-center gap-15px> i classblock w-24px h-auto>svg width17.000000 height17.000000 viewbox0 0 17 17 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip1513_38240> rect id6343dfb9da79c9ceeecbe120_wrong-icon.svg width17.000000 height17.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> g clip-pathurl(#clip1513_38240)> path idVector dM15.69 1.83L1.85 15.67M1.85 1.83L15.69 15.67 stroke#1F316E stroke-opacity0.250000 stroke-width2.300000 stroke-linejoinround stroke-linecapround>/path> /g>/svg>/i> span classtext-16px block text-xl font-medium leading-27px tracking-0% text-left text-color:var(--677dc833969ad)>Not having you wait endlessly for a response/span>/li>/ul>/div>/div>/div>/div>/section> section classflex flex-col bg-linear-gradient(180.00deg,#FFFFFF_-5.307%,#F8FBFF_86.259%) bg-linear-gradient(180.00deg #FFFFFF_-5.307% #F8FBFF_86.259%) pt-96px pb-41px> div classflex flex-col w-100% max-w-1280px mr-auto ml-auto pr-32px pl-32px> div classflex flex-col gap-12px> div classflex-grow flex flex-col items-center> h3 classtext-center sm:text-36px tracking--0.05em leading-1.1 md:text-48px font-quincy-cf-bold text-opacity-100% text-#1f316e text-48px max-w-30rem>Clients Experiences with Breathewell/h3> p v-showshowHideElements2idnz3omf v-cloak classblock text-16px text-center mt-16px text-opacity-50% text-#1f316e max-w-586px font-greycliff-cf-regular>Find answers to common questions about our services, features, and how we can help you./p>/div> div classflex items-center justify-center mt-60px> div classflex flex-row gap-24px lg:flex-wrap lg:justify-start lg:max-w-800px md:max-w-640px> div classstatic flex-col justify-start items-start p-6 flex-none order-none flex-grow-0 bg-white w-96 rounded-3xl flex gap-0px pt-24px pb-24px pr-24px pl-24px md:w-308 md:w-308px> div classflex gap-3px items-center order-none self-end> span classtext-16px block>5.0/span> i classblock w-24px h-auto text-color:var(--6771f57faff49)>svg width14.000000 height14.000000 viewbox0 0 14 14 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip1513_38386> rect idstar-01 width13.999999 height14.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> rect idstar-01 width13.999999 height14.000000 fill#FFFFFF fill-opacity0>/rect> g clip-pathurl(#clip1513_38386)> path idIcon dM6.58 2.01C6.71 1.74 6.78 1.6 6.87 1.56C6.95 1.52 7.04 1.52 7.12 1.56C7.21 1.6 7.28 1.74 7.41 2.01L8.69 4.59C8.73 4.67 8.75 4.71 8.78 4.75C8.8 4.77 8.83 4.8 8.87 4.81C8.91 4.83 8.95 4.84 9.04 4.85L11.89 5.27C12.19 5.31 12.34 5.33 12.41 5.41C12.47 5.47 12.5 5.56 12.49 5.64C12.48 5.74 12.37 5.85 12.15 6.06L10.09 8.07C10.02 8.13 9.99 8.17 9.97 8.2C9.95 8.24 9.94 8.27 9.94 8.31C9.93 8.35 9.94 8.4 9.95 8.49L10.44 11.32C10.49 11.62 10.52 11.77 10.47 11.86C10.43 11.94 10.35 11.99 10.27 12.01C10.17 12.03 10.03 11.96 9.76 11.82L7.21 10.48C7.13 10.43 7.09 10.41 7.05 10.4C7.01 10.4 6.98 10.4 6.94 10.4C6.9 10.41 6.86 10.43 6.78 10.48L4.23 11.82C3.96 11.96 3.82 12.03 3.72 12.01C3.64 11.99 3.56 11.94 3.52 11.86C3.47 11.77 3.5 11.62 3.55 11.32L4.04 8.49C4.05 8.4 4.06 8.35 4.05 8.31C4.05 8.27 4.04 8.24 4.02 8.2C4 8.17 3.97 8.13 3.9 8.07L1.84 6.06C1.62 5.85 1.51 5.74 1.5 5.64C1.49 5.56 1.52 5.47 1.58 5.41C1.65 5.33 1.8 5.31 2.1 5.27L4.95 4.85C5.04 4.84 5.08 4.83 5.12 4.81C5.16 4.8 5.19 4.77 5.21 4.75C5.24 4.71 5.26 4.67 5.3 4.59L6.58 2.01Z fill#39AFDA fill-opacity1.000000 fill-rulenonzero>/path> path idIcon dM8.69 4.59C8.73 4.67 8.75 4.71 8.78 4.75C8.8 4.77 8.83 4.8 8.87 4.81C8.91 4.83 8.95 4.84 9.04 4.85L11.89 5.27C12.19 5.31 12.34 5.33 12.41 5.41C12.47 5.47 12.5 5.56 12.49 5.64C12.48 5.74 12.37 5.85 12.15 6.06L10.09 8.07C10.02 8.13 9.99 8.17 9.97 8.2C9.95 8.24 9.94 8.27 9.94 8.31C9.93 8.35 9.94 8.4 9.95 8.49L10.44 11.32C10.49 11.62 10.52 11.77 10.47 11.86C10.43 11.94 10.35 11.99 10.27 12.01C10.17 12.03 10.03 11.96 9.76 11.82L7.21 10.48C7.13 10.43 7.09 10.41 7.05 10.4C7.01 10.4 6.98 10.4 6.94 10.4C6.9 10.41 6.86 10.43 6.78 10.48L4.23 11.82C3.96 11.96 3.82 12.03 3.72 12.01C3.64 11.99 3.56 11.94 3.52 11.86C3.47 11.77 3.5 11.62 3.55 11.32L4.04 8.49C4.05 8.4 4.06 8.35 4.05 8.31C4.05 8.27 4.04 8.24 4.02 8.2C4 8.17 3.97 8.13 3.9 8.07L1.84 6.06C1.62 5.85 1.51 5.74 1.5 5.64C1.49 5.56 1.52 5.47 1.58 5.41C1.65 5.33 1.8 5.31 2.1 5.27L4.95 4.85C5.04 4.84 5.08 4.83 5.12 4.81C5.16 4.8 5.19 4.77 5.21 4.75C5.24 4.71 5.26 4.67 5.3 4.59L6.58 2.01C6.71 1.74 6.78 1.6 6.87 1.56C6.95 1.52 7.04 1.52 7.12 1.56C7.21 1.6 7.28 1.74 7.41 2.01L8.69 4.59Z stroke#39AFDA stroke-opacity1.000000 stroke-width2.000000 stroke-linejoinround>/path> /g>/svg>/i>/div> span classtext-16px block mt-33px text-20px font-500 leading-30px tracking-0px text-left text-#576388 text-opacity-100% font-greycliff-cf-medium>strong classtext-opacity-100% text-#23316b yc-builder-idhv1d8tb3a>Breathewell is an excellent company/strong>, they showed up on time, very careful with the floors and the furniture, very friendly and respectful, he did a very thorough job and left the place spotless! And the price is right!!Highly recommend! Will definitely call them again./span> div classflex items-center gap-16px mt-36px> img classmax-w-100% w-62px h-62px object-cover rounded-full srchttps://assets.ycodeapp.com/assets/app81882/Images/published/unnamed-ocb4rtrbyq.webp srcsethttps://assets.ycodeapp.com/assets/app81882/images/published/unnamed-ocb4rtrbyq-150.webp 150w, https://assets.ycodeapp.com/assets/app81882/Images/published/unnamed-ocb4rtrbyq.webp 480w sizes1984px> span classtext-16px block text-#1F316E font-600 text-20px leading-24px tracking-0px text-center capitalize>Donna & Alain/span>/div>/div> div classstatic flex-col justify-start items-start p-6 flex-none order-none flex-grow-0 bg-white w-96 rounded-3xl flex gap-0px pt-24px pb-24px pr-24px pl-24px md:w-308 md:w-308px> div classflex gap-3px items-center order-none self-end> span classtext-16px block>5.0/span> i classblock w-24px h-auto text-color:var(--6771f57faff49)>svg width14.000000 height14.000000 viewbox0 0 14 14 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip1513_38386> rect idstar-01 width13.999999 height14.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> rect idstar-01 width13.999999 height14.000000 fill#FFFFFF fill-opacity0>/rect> g clip-pathurl(#clip1513_38386)> path idIcon dM6.58 2.01C6.71 1.74 6.78 1.6 6.87 1.56C6.95 1.52 7.04 1.52 7.12 1.56C7.21 1.6 7.28 1.74 7.41 2.01L8.69 4.59C8.73 4.67 8.75 4.71 8.78 4.75C8.8 4.77 8.83 4.8 8.87 4.81C8.91 4.83 8.95 4.84 9.04 4.85L11.89 5.27C12.19 5.31 12.34 5.33 12.41 5.41C12.47 5.47 12.5 5.56 12.49 5.64C12.48 5.74 12.37 5.85 12.15 6.06L10.09 8.07C10.02 8.13 9.99 8.17 9.97 8.2C9.95 8.24 9.94 8.27 9.94 8.31C9.93 8.35 9.94 8.4 9.95 8.49L10.44 11.32C10.49 11.62 10.52 11.77 10.47 11.86C10.43 11.94 10.35 11.99 10.27 12.01C10.17 12.03 10.03 11.96 9.76 11.82L7.21 10.48C7.13 10.43 7.09 10.41 7.05 10.4C7.01 10.4 6.98 10.4 6.94 10.4C6.9 10.41 6.86 10.43 6.78 10.48L4.23 11.82C3.96 11.96 3.82 12.03 3.72 12.01C3.64 11.99 3.56 11.94 3.52 11.86C3.47 11.77 3.5 11.62 3.55 11.32L4.04 8.49C4.05 8.4 4.06 8.35 4.05 8.31C4.05 8.27 4.04 8.24 4.02 8.2C4 8.17 3.97 8.13 3.9 8.07L1.84 6.06C1.62 5.85 1.51 5.74 1.5 5.64C1.49 5.56 1.52 5.47 1.58 5.41C1.65 5.33 1.8 5.31 2.1 5.27L4.95 4.85C5.04 4.84 5.08 4.83 5.12 4.81C5.16 4.8 5.19 4.77 5.21 4.75C5.24 4.71 5.26 4.67 5.3 4.59L6.58 2.01Z fill#39AFDA fill-opacity1.000000 fill-rulenonzero>/path> path idIcon dM8.69 4.59C8.73 4.67 8.75 4.71 8.78 4.75C8.8 4.77 8.83 4.8 8.87 4.81C8.91 4.83 8.95 4.84 9.04 4.85L11.89 5.27C12.19 5.31 12.34 5.33 12.41 5.41C12.47 5.47 12.5 5.56 12.49 5.64C12.48 5.74 12.37 5.85 12.15 6.06L10.09 8.07C10.02 8.13 9.99 8.17 9.97 8.2C9.95 8.24 9.94 8.27 9.94 8.31C9.93 8.35 9.94 8.4 9.95 8.49L10.44 11.32C10.49 11.62 10.52 11.77 10.47 11.86C10.43 11.94 10.35 11.99 10.27 12.01C10.17 12.03 10.03 11.96 9.76 11.82L7.21 10.48C7.13 10.43 7.09 10.41 7.05 10.4C7.01 10.4 6.98 10.4 6.94 10.4C6.9 10.41 6.86 10.43 6.78 10.48L4.23 11.82C3.96 11.96 3.82 12.03 3.72 12.01C3.64 11.99 3.56 11.94 3.52 11.86C3.47 11.77 3.5 11.62 3.55 11.32L4.04 8.49C4.05 8.4 4.06 8.35 4.05 8.31C4.05 8.27 4.04 8.24 4.02 8.2C4 8.17 3.97 8.13 3.9 8.07L1.84 6.06C1.62 5.85 1.51 5.74 1.5 5.64C1.49 5.56 1.52 5.47 1.58 5.41C1.65 5.33 1.8 5.31 2.1 5.27L4.95 4.85C5.04 4.84 5.08 4.83 5.12 4.81C5.16 4.8 5.19 4.77 5.21 4.75C5.24 4.71 5.26 4.67 5.3 4.59L6.58 2.01C6.71 1.74 6.78 1.6 6.87 1.56C6.95 1.52 7.04 1.52 7.12 1.56C7.21 1.6 7.28 1.74 7.41 2.01L8.69 4.59Z stroke#39AFDA stroke-opacity1.000000 stroke-width2.000000 stroke-linejoinround>/path> /g>/svg>/i>/div> span classtext-16px block mt-33px text-20px font-500 leading-30px tracking-0px text-left text-#576388 text-opacity-100% font-greycliff-cf-medium>strong classtext-opacity-100% text-#23316b>I really appreciate the work from Breathewell/strong>. Curtis did duct and vent cleaning in our house perfectly.He showed me pictures how our duct was dirty before cleaning and movies how he cleaned it.Absolutely I satisfied their work and recommend Breathewell./span> div classflex items-center gap-16px mt-36px> img classmax-w-100% w-62px h-62px object-cover rounded-full srchttps://assets.ycodeapp.com/assets/app81882/Images/published/unnamed%20(1)-hz3m3dfrhg.webp srcsethttps://assets.ycodeapp.com/assets/app81882/images/published/unnamed%20(1)-hz3m3dfrhg-150.webp 150w, https://assets.ycodeapp.com/assets/app81882/Images/published/unnamed%20(1)-hz3m3dfrhg.webp 450w sizes1984px> span classtext-16px block text-#1F316E font-600 text-20px leading-24px tracking-0px text-center capitalize>Pepsi Man/span>/div>/div> div classstatic justify-start items-start p-6 flex-none order-none flex-grow-0 bg-white w-96 rounded-3xl flex gap-0px pt-24px pb-24px pr-24px pl-24px flex-col md:w-308 md:w-308px> div classflex gap-3px items-center order-none self-end> span classtext-16px block>5.0/span> i classblock w-24px h-auto text-color:var(--6771f57faff49)>svg width14.000000 height14.000000 viewbox0 0 14 14 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs> clippath idclip1513_38386> rect idstar-01 width13.999999 height14.000000 fillwhite fill-opacity0>/rect> /clippath> /defs> rect idstar-01 width13.999999 height14.000000 fill#FFFFFF fill-opacity0>/rect> g clip-pathurl(#clip1513_38386)> path idIcon dM6.58 2.01C6.71 1.74 6.78 1.6 6.87 1.56C6.95 1.52 7.04 1.52 7.12 1.56C7.21 1.6 7.28 1.74 7.41 2.01L8.69 4.59C8.73 4.67 8.75 4.71 8.78 4.75C8.8 4.77 8.83 4.8 8.87 4.81C8.91 4.83 8.95 4.84 9.04 4.85L11.89 5.27C12.19 5.31 12.34 5.33 12.41 5.41C12.47 5.47 12.5 5.56 12.49 5.64C12.48 5.74 12.37 5.85 12.15 6.06L10.09 8.07C10.02 8.13 9.99 8.17 9.97 8.2C9.95 8.24 9.94 8.27 9.94 8.31C9.93 8.35 9.94 8.4 9.95 8.49L10.44 11.32C10.49 11.62 10.52 11.77 10.47 11.86C10.43 11.94 10.35 11.99 10.27 12.01C10.17 12.03 10.03 11.96 9.76 11.82L7.21 10.48C7.13 10.43 7.09 10.41 7.05 10.4C7.01 10.4 6.98 10.4 6.94 10.4C6.9 10.41 6.86 10.43 6.78 10.48L4.23 11.82C3.96 11.96 3.82 12.03 3.72 12.01C3.64 11.99 3.56 11.94 3.52 11.86C3.47 11.77 3.5 11.62 3.55 11.32L4.04 8.49C4.05 8.4 4.06 8.35 4.05 8.31C4.05 8.27 4.04 8.24 4.02 8.2C4 8.17 3.97 8.13 3.9 8.07L1.84 6.06C1.62 5.85 1.51 5.74 1.5 5.64C1.49 5.56 1.52 5.47 1.58 5.41C1.65 5.33 1.8 5.31 2.1 5.27L4.95 4.85C5.04 4.84 5.08 4.83 5.12 4.81C5.16 4.8 5.19 4.77 5.21 4.75C5.24 4.71 5.26 4.67 5.3 4.59L6.58 2.01Z fill#39AFDA fill-opacity1.000000 fill-rulenonzero>/path> path idIcon dM8.69 4.59C8.73 4.67 8.75 4.71 8.78 4.75C8.8 4.77 8.83 4.8 8.87 4.81C8.91 4.83 8.95 4.84 9.04 4.85L11.89 5.27C12.19 5.31 12.34 5.33 12.41 5.41C12.47 5.47 12.5 5.56 12.49 5.64C12.48 5.74 12.37 5.85 12.15 6.06L10.09 8.07C10.02 8.13 9.99 8.17 9.97 8.2C9.95 8.24 9.94 8.27 9.94 8.31C9.93 8.35 9.94 8.4 9.95 8.49L10.44 11.32C10.49 11.62 10.52 11.77 10.47 11.86C10.43 11.94 10.35 11.99 10.27 12.01C10.17 12.03 10.03 11.96 9.76 11.82L7.21 10.48C7.13 10.43 7.09 10.41 7.05 10.4C7.01 10.4 6.98 10.4 6.94 10.4C6.9 10.41 6.86 10.43 6.78 10.48L4.23 11.82C3.96 11.96 3.82 12.03 3.72 12.01C3.64 11.99 3.56 11.94 3.52 11.86C3.47 11.77 3.5 11.62 3.55 11.32L4.04 8.49C4.05 8.4 4.06 8.35 4.05 8.31C4.05 8.27 4.04 8.24 4.02 8.2C4 8.17 3.97 8.13 3.9 8.07L1.84 6.06C1.62 5.85 1.51 5.74 1.5 5.64C1.49 5.56 1.52 5.47 1.58 5.41C1.65 5.33 1.8 5.31 2.1 5.27L4.95 4.85C5.04 4.84 5.08 4.83 5.12 4.81C5.16 4.8 5.19 4.77 5.21 4.75C5.24 4.71 5.26 4.67 5.3 4.59L6.58 2.01C6.71 1.74 6.78 1.6 6.87 1.56C6.95 1.52 7.04 1.52 7.12 1.56C7.21 1.6 7.28 1.74 7.41 2.01L8.69 4.59Z stroke#39AFDA stroke-opacity1.000000 stroke-width2.000000 stroke-linejoinround>/path> /g>/svg>/i>/div> span classtext-16px block mt-33px text-20px font-500 leading-30px tracking-0px text-left text-#576388 text-opacity-100% font-greycliff-cf-medium>strong classtext-opacity-100% text-#23316b>Curtis was awesome/strong>. Very patient and definitely did the job the right way. No corners were cut, and I would highly recommend it to anyone who needs a routine duct cleaning./span> div classflex items-center gap-16px mt-95px> img classmax-w-100% w-62px h-62px object-cover rounded-full srchttps://assets.ycodeapp.com/assets/app81882/Images/published/unnamed%20(2)-zmedy5v5i8.webp srcsethttps://assets.ycodeapp.com/assets/app81882/images/published/unnamed%20(2)-zmedy5v5i8-150.webp 150w, https://assets.ycodeapp.com/assets/app81882/Images/published/unnamed%20(2)-zmedy5v5i8.webp 450w sizes1984px> span classtext-16px block text-#1F316E font-600 text-20px leading-24px tracking-0px text-center capitalize>Jesse Selcer/span>/div>/div>/div>/div>/div>/div>/section> section classflex pt-63px pb-63px flex-row> div classflex flex-col w-100% max-w-1280px mr-auto ml-auto pr-32px pl-32px> div classflex gap-12px flex-row md:flex-col justify-between items-start> div classflex-grow flex flex-col items-start md:items-center max-w-480px> h3 classsm:text-36px tracking--0.05em leading-1.1 md:text-48px font-quincy-cf-bold text-opacity-100% text-#1f316e max-w-35rem text-left text-52px md:text-center>Frequently Asked Questions/h3> p classblock text-16px mt-16px text-opacity-50% text-#1f316e max-w-686px text-left md:text-center font-greycliff-cf-medium>Find answers to common questions about our services, features, and how we can help you./p>/div> div classflex justify-center min-w-480px flex-col gap-24px items-start sm:min-w-auto mt-0px> div classflex flex-col gap-0px bg-opacity-100% pl-16px pr-16px pt-18px pb-18px rounded-6px bg-#f9fbff text-opacity-100% text-#23316b font-greycliff-cf-bold w-28rem sm:w-320px data-component-root> div classflex items-center justify-between pt-0px pl-0px pr-0px pb-0px current:rounded-0px current:border-t-0px current:border-r-0px current:border-l-0px current:border-b-1px data-animation-click4p3s5sj35 data-associated-animation-ids-for-click3t48jbbu7,piigabhat> span classtext-16px block font-medium>Who is Breathewell?/span> i classblock h-auto w-20px text-opacity-100% text-#737373 data-animation-id-8b6suhi6a>svg fillcurrentColor viewbox0 0 24 24 xmlnshttp://www.w3.org/2000/svg>path dM11.9997 13.1714L16.9495 8.22168L18.3637 9.63589L11.9997 15.9999L5.63574 9.63589L7.04996 8.22168L11.9997 13.1714Z>/path>/svg>/i>/div> div classblock pl-0px pb-0px pr-0px font-greycliff-cf-demi-bold max-w-auto border-r-0px border-l-0px border-b-0px border-t-1px w-26rem sm:w-300px data-animation-id-ujtos44ov> p classblock text-16px leading-1.625em rounded-tr-0px rounded-bl-0px rounded-br-0px rounded-tl-1px border-opacity-100% border-#e2e8f6 max-w-auto w-26rem sm:w-300px>Like many families dealing with asthma and allergies, weve experienced firsthand the constant worry over invisible triggers lurking in our homes. Thats why were passionate about transforming living spaces into clean-air sanctuaries. When you can breathe well, you can finally relax and truly enjoy your home - the way it was always meant to be./p>/div>/div> div classflex flex-col gap-0px bg-opacity-100% pl-16px pr-16px pt-18px pb-18px rounded-6px bg-#f9fbff text-opacity-100% text-#23316b font-greycliff-cf-bold w-28rem sm:w-320px data-component-root> div classflex items-center justify-between pt-0px pl-0px pr-0px pb-0px current:rounded-0px current:border-t-0px current:border-r-0px current:border-l-0px current:border-b-1px data-animation-click4p3s5sj35 data-associated-animation-ids-for-click3t48jbbu7,piigabhat> span classtext-16px block font-medium>Why should I choose Breathewell?/span> i classblock h-auto w-20px text-opacity-100% text-#737373 data-animation-id-8b6suhi6a>svg fillcurrentColor viewbox0 0 24 24 xmlnshttp://www.w3.org/2000/svg>path dM11.9997 13.1714L16.9495 8.22168L18.3637 9.63589L11.9997 15.9999L5.63574 9.63589L7.04996 8.22168L11.9997 13.1714Z>/path>/svg>/i>/div> div classblock pl-0px pb-0px pr-0px font-greycliff-cf-demi-bold max-w-auto border-r-0px border-l-0px border-b-0px border-t-1px w-26rem sm:w-300px data-animation-id-ujtos44ov> p classblock text-16px leading-1.625em rounded-tr-0px rounded-bl-0px rounded-br-0px rounded-tl-1px border-opacity-100% border-#e2e8f6 max-w-auto w-26rem sm:w-300px>We believe in complete transparency and your well-being is our top priority. Unlike others, we show you detailed before and after videos of our work, so you can see the real impact of our services. Our commitment to your health goes beyond just cleaning - were dedicated to creating a lasting difference in how you experience your homes air quality./p>/div>/div> div classflex flex-col gap-0px bg-opacity-100% pl-16px pr-16px pt-18px pb-18px rounded-6px bg-#f9fbff text-opacity-100% text-#23316b font-greycliff-cf-bold w-28rem sm:w-320px data-component-root> div classflex items-center justify-between pt-0px pl-0px pr-0px pb-0px current:rounded-0px current:border-t-0px current:border-r-0px current:border-l-0px current:border-b-1px data-animation-click4p3s5sj35 data-associated-animation-ids-for-click3t48jbbu7,piigabhat> span classtext-16px block font-medium>What services do you offer?/span> i classblock h-auto w-20px text-opacity-100% text-#737373 data-animation-id-8b6suhi6a>svg fillcurrentColor viewbox0 0 24 24 xmlnshttp://www.w3.org/2000/svg>path dM11.9997 13.1714L16.9495 8.22168L18.3637 9.63589L11.9997 15.9999L5.63574 9.63589L7.04996 8.22168L11.9997 13.1714Z>/path>/svg>/i>/div> div classblock pl-0px pb-0px pr-0px font-greycliff-cf-demi-bold max-w-auto border-r-0px border-l-0px border-b-0px border-t-1px w-26rem sm:w-300px data-animation-id-ujtos44ov> p classblock text-16px leading-1.625em rounded-tr-0px rounded-bl-0px rounded-br-0px rounded-tl-1px border-opacity-100% border-#e2e8f6 max-w-auto w-26rem sm:w-300px>We provide specialized dust extraction services using industrial-grade equipment with powerful airflow capabilities ranging from 5,000 to 12,000 CFM (cubic feet per minute). Our advanced system combines both negative and positive air pressure technology to effectively capture and remove airborne contaminants from your space. This professional-grade equipment and comprehensive approach ensures thorough dust extraction for cleaner, healthier indoor environments./p>/div>/div>/div>/div>/div>/section> section classflex flex-col pt-110px pb-110px> div classflex flex-col w-100% max-w-1280px mr-auto ml-auto pr-32px pl-32px sm:pl-0px sm:pr-0px> div classflex flex-col gap-12px> div classflex-grow flex flex-col items-center> h3 classtext-center sm:text-36px tracking--0.05em leading-1.1 md:text-48px font-quincy-cf-bold text-opacity-100% text-#1f316e text-48px max-w-35rem>Seeing is believing.../h3> p classblock text-16px text-center mt-16px text-opacity-50% text-#1f316e max-w-686px font-greycliff-cf-medium>Sometimes you’ve got to see it for yourself to understand all the things that get inside your ducts; even brand new homes have a ton of construction debris./p>/div> div classflex items-center justify-center mt-60px gap-24px lg:flex-wrap sm:flex-row> img classmax-w-100% w-221px h-212px object-cover sm:w-135px sm:h-135px rounded-8px object-25%_75% srchttps://assets.ycodeapp.com/assets/app81882/Images/published/_mg_5495@2x-2stqvjuddc.webp srcsethttps://assets.ycodeapp.com/assets/app81882/images/published/_mg_5495@2x-2stqvjuddc-150.webp 150w, https://assets.ycodeapp.com/assets/app81882/Images/published/_mg_5495@2x-2stqvjuddc.webp 442w sizes7072px> img classmax-w-100% w-221px h-212px object-cover sm:h-135px sm:w-135px rounded-8px object-25%_75% srchttps://assets.ycodeapp.com/assets/app81882/Images/published/_mg_5474@2x-5jdwmikqjl.webp srcsethttps://assets.ycodeapp.com/assets/app81882/images/published/_mg_5474@2x-5jdwmikqjl-150.webp 150w, https://assets.ycodeapp.com/assets/app81882/Images/published/_mg_5474@2x-5jdwmikqjl.webp 442w sizes7072px> img classmax-w-100% w-221px h-212px object-cover sm:w-135px sm:h-135px rounded-8px srchttps://assets.ycodeapp.com/assets/app81882/Images/published/328671_ad7620cbce2a49feb5320f5ee868226c~mv2%201@2x-sjx0rq4w3p.webp srcsethttps://assets.ycodeapp.com/assets/app81882/images/published/328671_ad7620cbce2a49feb5320f5ee868226c~mv2%201@2x-sjx0rq4w3p-150.webp 150w, https://assets.ycodeapp.com/assets/app81882/Images/published/328671_ad7620cbce2a49feb5320f5ee868226c~mv2%201@2x-sjx0rq4w3p.webp 442w sizes7072px> img classmax-w-100% w-221px h-212px object-cover sm:h-135px sm:w-135px object-top rounded-8px srchttps://assets.ycodeapp.com/assets/app81882/Images/published/_mg_5628@2x-rvklygbyro.webp srcsethttps://assets.ycodeapp.com/assets/app81882/images/published/_mg_5628@2x-rvklygbyro-150.webp 150w, https://assets.ycodeapp.com/assets/app81882/Images/published/_mg_5628@2x-rvklygbyro.webp 442w sizes7072px> img classmax-w-100% w-221px h-212px object-cover sm:w-135px sm:h-135px object-25%_25% rounded-8px srchttps://assets.ycodeapp.com/assets/app81882/Images/published/_mg_5675%20(1)@2x-n72asfmmsg.webp srcsethttps://assets.ycodeapp.com/assets/app81882/images/published/_mg_5675%20(1)@2x-n72asfmmsg-150.webp 150w, https://assets.ycodeapp.com/assets/app81882/Images/published/_mg_5675%20(1)@2x-n72asfmmsg.webp 450w sizes7072px>/div>/div>/div>/section> section classflex flex-col pb-80px pt-80px bg-url(https://assets.ycodeapp.com/assets/app81882/Images/magic-pattern%20(12)%201-kog1zu03ba.webp) items-center mt-24px data-component-root> span classtext-16px block text-center leading-5 uppercase font-greycliff-cf-bold text-#ffffff text-opacity-67% text-12px>Our guarantee/span> h1 classtext-48px block text-center text-white text-5xl font-quincy-cf-bold w-38rem sm:text-36px sm:w-20rem md:w-34rem>A smile on your face, or we’ll discount you $50./h1> p classblock text-16px text-base leading-6 tracking-normal text-center font-greycliff-cf-regular mt-16px sm:text-14px text-#ffffff text-opacity-45% max-w-556px>We think it’s super important to always be honest, helpful, and transparent; that’s why we cover you with our smile guarantee./p>/section> footer classrounded-12px bg-opacity-100% bg-#f8fbff relative pt-77px pb-55px mb--1rem mt--.5rem data-component-root> div classflex flex-col w-100% max-w-1280px mr-auto ml-auto pr-32px pl-32px> div classflex flex-row gap-12px justify-between sm:flex-col sm:gap-32px md:flex-wrap sm:items-start items-start> a classcontents href/ aria-current> img classh-42px object-contain w-140px srchttps://assets.ycodeapp.com/assets/app81882/Images/published/breathewell-logo-standard-qlbzx5qoek.webp width180 srcsethttps://assets.ycodeapp.com/assets/app81882/images/published/breathewell-logo-standard-qlbzx5qoek-2000.webp 2000w, https://assets.ycodeapp.com/assets/app81882/images/published/breathewell-logo-standard-qlbzx5qoek-1600.webp 1600w, https://assets.ycodeapp.com/assets/app81882/images/published/breathewell-logo-standard-qlbzx5qoek-1080.webp 1080w, https://assets.ycodeapp.com/assets/app81882/images/published/breathewell-logo-standard-qlbzx5qoek-800.webp 800w, https://assets.ycodeapp.com/assets/app81882/images/published/breathewell-logo-standard-qlbzx5qoek-500.webp 500w, https://assets.ycodeapp.com/assets/app81882/images/published/breathewell-logo-standard-qlbzx5qoek-150.webp 150w, https://assets.ycodeapp.com/assets/app81882/Images/published/breathewell-logo-standard-qlbzx5qoek.webp 2880w sizes(max-width: 361px) 100vw, 361px>/a> div classflex gap-80px items-start sm:flex-col> div v-showshowHideElementsqpj5hc12f v-cloak classflex flex-col gap-0px bg-opacity-100% rounded-20px w-248px> div classflex items-center justify-between pr-32px pb-24px pl-32px pt-0px sm:pl-0px data-animation-clickfvuyajlk5 data-associated-animation-ids-for-clickgenbcf7kc,pgkuha7o6> span classtext-16px block text-color:var(--678737ef0454c) font-quincy-cf-bold>Services/span> i classblock h-auto w-20px text-opacity-100% text-#737373 data-animation-id-mmqemzbnf>svg fillcurrentColor viewbox0 0 24 24 xmlnshttp://www.w3.org/2000/svg>path dM11.9997 13.1714L16.9495 8.22168L18.3637 9.63589L11.9997 15.9999L5.63574 9.63589L7.04996 8.22168L11.9997 13.1714Z>/path>/svg>/i>/div> div classpr-32px pl-32px pb-24px flex flex-col items-start gap-24px sm:pl-0px data-animation-id-4u1xz717a> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium href/services/mini-split-ac-cleaning >Mini-split AC cleaning/a> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium href/services/dryer-vent-cleaning-service >Dryer vent cleaning/a> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium href/services/breathe-easy-with-clean-air-ducts >Air duct cleaning/a> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium href/services/air-exchanger-cleaning-service >Air exchanger cleaning/a> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium href/services/bathroom-exhaust-cleaning-service >Bathroom exhaust cleaning/a> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium href/services/custom-service-calls >Custom service calls/a>/div>/div> div classflex flex-col gap-24px items-start> span classtext-16px block text-color:var(--678737ef0454c) font-quincy-cf-bold>Services/span> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium href/services/mini-split-ac-cleaning >Mini-split AC cleaning/a> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium href/services/dryer-vent-cleaning-service >Dryer vent cleaning/a> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium href/services/breathe-easy-with-clean-air-ducts >Air duct cleaning/a> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium href/services/air-exchanger-cleaning-service >Air exchanger cleaning/a> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium href/services/bathroom-exhaust-cleaning-service >Bathroom exhaust cleaning/a> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium href/services/custom-service-calls >Custom service calls/a>/div> div classflex flex-col gap-24px items-start> span classtext-16px block text-color:var(--678737ef0454c) font-quincy-cf-bold>Company/span> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium href/pricing >Pricing/a> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium href/partnership >Partnership/a> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium hrefhttps://breathewell.ycode.site/pricing#contact-form>Contact us/a>/div> div v-showshowHideElementsmh5apprlp v-cloak classflex flex-col gap-24px items-start> span classtext-16px block text-color:var(--678737ef0454c) font-quincy-cf-bold>Resources/span> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium>Articles/a> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium>DIY guides/a> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium>Video materials/a> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium>E-books/a>/div> div classflex flex-col gap-24px items-start> span classtext-16px block text-color:var(--678737ef0454c) font-quincy-cf-bold>Legal/span> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium href/privacy-policy >Privacy policy/a> a classfocus:outline-none text-16px text-color:var(--678737ef0454c) no-underline font-greycliff-cf-medium href/terms-and-conditions >Term of service/a>/div>/div>/div> div classflex flex-row gap-12px items-center justify-between sm:flex-col sm:gap-32px md:flex-wrap sm:items-start mt-37px> div classflex flex-col gap-12px> img classh-auto max-w-100% w-120px srchttps://assets.ycodeapp.com/assets/app81882/Images/published/image%209@2x-ryrb8u9ii0.webp srcsethttps://assets.ycodeapp.com/assets/app81882/images/published/image%209@2x-ryrb8u9ii0-150.webp 150w, https://assets.ycodeapp.com/assets/app81882/Images/published/image%209@2x-ryrb8u9ii0.webp 240w sizes3840px> p classblock text-base font-normal leading-6 tracking-normal text-left text-opacity-100% text-#8b96b6>Copyright © 2025 Breathewell/p>/div> div classflex items-center gap-25px> a classflex items-center justify-center target_blank hrefhttps://facebook.com/letsbreathewell/> i classblock w-24px h-auto text-#1f316e text-opacity-100%>svg width20.000000 height20.000000 viewbox0 0 20 20 fillnone xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink> desc> Created with Pixso. /desc> defs>/defs> rect idSocial Network/Facebook width20.000000 height20.000000 fill#FFFFFF fill-opacity0>/rect> path idFacebook dM2 0L18 0C19.1046 0 20 0.895508 20 2L20 18C20 19.1045 19.1046 20 18 20L13 20L13 12.4707L15.5629 12.4707L15.9741 9.64697L13 9.64697L13 8.44043C13 7.35815 13.3053 6.82349 14.339 6.82349L16 6.82349L16 4.12329C15.708 4.08472 15.0912 4 13.9249 4C11.4896 4 10 5.26025 10 8.13086L10 9.64697L7 9.64697L7 12.4707L10 12.4707L10 20L2 20C0.895386 20 0 19.1045 0 18L0 2C0 0.895508 0.895386 0 2 0Z clip-ruleevenodd fill#1F316E fill-opacity1.000000 fill-ruleevenodd>/path>/svg>/i>/a> a classflex items-center justify-center target_blank hrefhttps://x.com/letsbreathewell> img classmax-w-100% w-20px h-20px object-contain srchttps://assets.ycodeapp.com/assets/app81882/Images/published/socialtwitter%20x%20%20,%20stylewhite@2x-ewrzm8ckdx.webp srcsethttps://assets.ycodeapp.com/assets/app81882/Images/published/socialtwitter%20x%20%20,%20stylewhite@2x-ewrzm8ckdx.webp 40w sizes640px>/a> a classflex items-center justify-center target_blank hrefhttps://www.linkedin.com/company/letsbreathewell/> img classmax-w-100% w-20px h-20px object-contain srchttps://assets.ycodeapp.com/assets/app81882/Images/published/social%20network_linkedin@2x-5qhw8aq9p3.webp srcsethttps://assets.ycodeapp.com/assets/app81882/Images/published/social%20network_linkedin@2x-5qhw8aq9p3.webp 40w sizes640px>/a> a classflex items-center justify-center target_blank hrefhttps://instagram.com/letsbreathewell> img classmax-w-100% w-20px h-20px object-contain srchttps://assets.ycodeapp.com/assets/app81882/Images/published/social%20network_instagram@2x-kkhtgj8flw.webp srcsethttps://assets.ycodeapp.com/assets/app81882/Images/published/social%20network_instagram@2x-kkhtgj8flw.webp 40w sizes640px>/a>/div> div v-showshowHideElementsjjzf6wxbb v-cloak classflex gap-16px sm:items-center> a classfocus:outline-none text-base leading-6 tracking-normal text-right no-underline font-greycliff-cf-regular text-#8b96b6 text-opacity-100% target_blank href/privacy-policy >Privacy policy/a> a classfocus:outline-none text-base leading-6 tracking-normal text-right no-underline font-greycliff-cf-regular text-#8b96b6 text-opacity-100% target_blank href/terms-and-conditions >Term of service/a>/div> localeSelector classflex items-center pt-10px pb-10px relative border-1px pl-12px pr-12px border-opacity-0% border-#000000 w-max-content text-16px rounded-12px tracking--0.025em gap-6px font-greycliff-cf-medium hover:bg-#f9fbff hover:bg-url(-) hover:text-color:var(--6771f1b644a18) text-color:var(--6771f4b03754f) md:pl-0px> span >English/span>select classlocale-select v-on:changehandleLocaleChange>option valueen data-url/ selected>English/option>option valuefr data-url/fr >Français/option>option valuezh data-url/zh >中文/option>/select> i classinline-block w-18px h-auto>svg xmlnshttp://www.w3.org/2000/svg viewbox0 0 20 20 fillcurrentColor aria-hiddentrue> path fill-ruleevenodd dM5.23 7.21a.75.75 0 0 1 1.06.02L10 11.168l3.71-3.938a.75.75 0 1 1 1.08 1.04l-4.25 4.5a.75.75 0 0 1-1.08 0l-4.25-4.5a.75.75 0 0 1 .02-1.06Z clip-ruleevenodd>/path> /svg>/i>/localeSelector>/div>/div>/footer>/div>!-- /ycode-template-variable:ycode-main-content -->/div>div idyc-lightbox-mount>/div>script>window.lightbox/script>script>window.animationsByTriggerEl{99acfelp5:{click:{layerUid:5651s3srp,triggerEl:99acfelp5,properties:{loop:none,name:visibility,delay:0,easing:null,toValue:Visible,duration:0.5,fromValue:Invisible,breakpoints:md,sm},animationId:w9tn2xhon,triggerType:click}},3uwyjvbd4:{hover:{layerUid:3uwyjvbd4,triggerEl:3uwyjvbd4,properties:{loop:none,name:opacity,delay:0,easing:null,toUnit:%,toValue:70,duration:0.1,fromUnit:%,fromValue:100},animationId:lcixopus3,triggerType:hover},click:{layerUid:t5142cne8,triggerEl:3uwyjvbd4,properties:{loop:none,name:rotate,delay:0,easing:null,toUnit:DEG,toValue:180,duration:0.2,fromUnit:deg,fromValue:0},animationId:fclzff51t,triggerType:click},{layerUid:bxq5d3emv,triggerEl:3uwyjvbd4,properties:{loop:none,name:visibility,delay:0,easing:null,toValue:Visible,duration:0,fromValue:Invisible},animationId:v2agk9fzu,triggerType:click},{layerUid:bxq5d3emv,triggerEl:3uwyjvbd4,properties:{loop:none,name:move,delay:0,easing:null,toUnit:px,toUnit2:px,toValue:0,duration:0.2,fromUnit:px,toValue2:0,fromUnit2:PX,fromValue:0,fromValue2:-10},animationId:h8v05fggj,triggerType:click},{layerUid:bxq5d3emv,triggerEl:3uwyjvbd4,properties:{loop:none,name:opacity,delay:0,easing:null,toUnit:%,toValue:100,duration:0.1,fromUnit:%,fromValue:0},animationId:bt2u5p9mj,triggerType:click}},n5lkzkato:{click:{layerUid:isx7vyxo9,triggerEl:n5lkzkato,properties:{loop:none,name:visibility,delay:0,easing:null,toValue:Visible,duration:0.5,fromValue:Invisible,breakpoints:md,sm},animationId:va7csfk4x,triggerType:click}},4p3s5sj35:{click:{layerUid:8b6suhi6a,triggerEl:4p3s5sj35,properties:{loop:none,name:rotate,delay:0,easing:null,toUnit:DEG,toValue:180,duration:0.2,fromUnit:deg,fromValue:0},animationId:3t48jbbu7,triggerType:click},{layerUid:ujtos44ov,triggerEl:4p3s5sj35,properties:{loop:none,name:visibility,delay:0,easing:null,toValue:Visible,duration:0.5,fromValue:Invisible},animationId:piigabhat,triggerType:click}},wzdqve4x8:{click:{layerUid:gzxw2znz8,triggerEl:wzdqve4x8,properties:{loop:none,name:visibility,delay:0,easing:null,toValue:Visible,duration:0.5,fromValue:Invisible,breakpoints:md,sm},animationId:w71932gqy,triggerType:click}},fvuyajlk5:{click:{layerUid:mmqemzbnf,triggerEl:fvuyajlk5,properties:{loop:none,name:rotate,delay:0,easing:null,toUnit:DEG,toValue:180,duration:0.2,fromUnit:deg,fromValue:0},animationId:genbcf7kc,triggerType:click},{layerUid:4u1xz717a,triggerEl:fvuyajlk5,properties:{loop:none,name:visibility,delay:0,easing:null,toValue:Visible,duration:0.5,fromValue:Invisible},animationId:pgkuha7o6,triggerType:click}}}/script>script>window.sliderSettings/script>script classdataScript>window.animations{tkw8b4vb5:,5651s3srp:{layerUid:5651s3srp,triggerEl:99acfelp5,properties:{loop:none,name:visibility,delay:0,easing:null,toValue:Visible,duration:0.5,fromValue:Invisible,breakpoints:md,sm},animationId:w9tn2xhon,triggerType:click},3uwyjvbd4:{layerUid:3uwyjvbd4,triggerEl:3uwyjvbd4,properties:{loop:none,name:opacity,delay:0,easing:null,toUnit:%,toValue:70,duration:0.1,fromUnit:%,fromValue:100},animationId:lcixopus3,triggerType:hover},t5142cne8:{layerUid:t5142cne8,triggerEl:3uwyjvbd4,properties:{loop:none,name:rotate,delay:0,easing:null,toUnit:DEG,toValue:180,duration:0.2,fromUnit:deg,fromValue:0},animationId:fclzff51t,triggerType:click},bxq5d3emv:{layerUid:bxq5d3emv,triggerEl:3uwyjvbd4,properties:{loop:none,name:visibility,delay:0,easing:null,toValue:Visible,duration:0.5,fromValue:Invisible,delayForReverseOnly:0.2},animationId:v2agk9fzu,triggerType:click},{layerUid:bxq5d3emv,triggerEl:3uwyjvbd4,properties:{loop:none,name:move,delay:0,easing:null,toUnit:px,toUnit2:px,toValue:0,duration:0.2,fromUnit:px,toValue2:0,fromUnit2:PX,fromValue:0,fromValue2:-10},animationId:h8v05fggj,triggerType:click},{layerUid:bxq5d3emv,triggerEl:3uwyjvbd4,properties:{loop:none,name:opacity,delay:0,easing:null,toUnit:%,toValue:100,duration:0.1,fromUnit:%,fromValue:0},animationId:bt2u5p9mj,triggerType:click},isx7vyxo9:{layerUid:isx7vyxo9,triggerEl:n5lkzkato,properties:{loop:none,name:visibility,delay:0,easing:null,toValue:Visible,duration:0.5,fromValue:Invisible,breakpoints:md,sm},animationId:va7csfk4x,triggerType:click},8b6suhi6a:{layerUid:8b6suhi6a,triggerEl:4p3s5sj35,properties:{loop:none,name:rotate,delay:0,easing:null,toUnit:DEG,toValue:180,duration:0.2,fromUnit:deg,fromValue:0},animationId:3t48jbbu7,triggerType:click},ujtos44ov:{layerUid:ujtos44ov,triggerEl:4p3s5sj35,properties:{loop:none,name:visibility,delay:0,easing:null,toValue:Visible,duration:0.5,fromValue:Invisible},animationId:piigabhat,triggerType:click},gzxw2znz8:{layerUid:gzxw2znz8,triggerEl:wzdqve4x8,properties:{loop:none,name:visibility,delay:0,easing:null,toValue:Visible,duration:0.5,fromValue:Invisible,breakpoints:md,sm},animationId:w71932gqy,triggerType:click},z4aj4io4u:,mmqemzbnf:{layerUid:mmqemzbnf,triggerEl:fvuyajlk5,properties:{loop:none,name:rotate,delay:0,easing:null,toUnit:DEG,toValue:180,duration:0.2,fromUnit:deg,fromValue:0},animationId:genbcf7kc,triggerType:click},4u1xz717a:{layerUid:4u1xz717a,triggerEl:fvuyajlk5,properties:{loop:none,name:visibility,delay:0,easing:null,toValue:Visible,duration:0.5,fromValue:Invisible},animationId:pgkuha7o6,triggerType:click}}/script>script classdataScript>window.showHideElements{pjh0czq7g:false,2idnz3omf:false,qpj5hc12f:false,mh5apprlp:false,jjzf6wxbb:false}/script>script classdataScript>window.pageWorkflowActions{ap9yg4vfp:{workflow_uid:695ff9afd4962,actions:{id:kc7zz4enx,order:1,const:FORM_SUBMITTED,properties:{const:ELEMENT_YID,value:ap9yg4vfp}},{id:cimlar4kd,order:2,const:SEND_EMAIL,properties:{const:SEND_EMAIL_MESSAGE,value:Youve received a new form submission.},{const:SEND_EMAIL_SUBJECT,value:New submission},{const:SEND_EMAIL_RECIPIENT,value:priyanshu@rutics.com}},{id:it5h9swje,order:3,const:SHOW_ELEMENT,properties:{const:ELEMENT_YID,value:1ctwgnl2r}}},gu1d5o0pj:{workflow_uid:694d305b1360a,actions:{id:4n3in7ly4,order:1,const:FORM_SUBMITTED,properties:{const:ELEMENT_YID,value:gu1d5o0pj}},{id:pzs26i99n,order:2,const:POST,properties:{const:ENDPOINT,value:https:\/\/webhook.latenode.com\/1150\/dev\/dev\/Breathwell-messages}},{id:umg18nx55,order:3,const:SHOW_ELEMENT,properties:{const:ELEMENT_YID,value:ftx4xfa9o}}},login-submit-button:{workflow_uid:671ec5f8c2fe0,actions:{id:null,order:1,const:CLICK,properties:{const:ELEMENT_ID,value:login-submit-button}},{id:null,order:2,const:SUBMIT_FORM,properties:}},signup-submit-button:{workflow_uid:671ec5f8c7633,actions:{id:null,order:1,const:CLICK,properties:{const:ELEMENT_ID,value:signup-submit-button}},{id:null,order:2,const:SUBMIT_FORM,properties:}},reset-password-submit-button:{workflow_uid:671ec5f8cac11,actions:{id:null,order:1,const:CLICK,properties:{const:ELEMENT_ID,value:reset-password-submit-button}},{id:null,order:2,const:SUBMIT_FORM,properties:}},set-new-password-submit-button:{workflow_uid:671ec5f8cde1d,actions:{id:null,order:1,const:CLICK,properties:{const:ELEMENT_ID,value:set-new-password-submit-button}},{id:null,order:2,const:SUBMIT_FORM,properties:}},msnn8wtcd:{workflow_uid:69382fa132f28,actions:{id:4n3in7ly4,order:1,const:FORM_SUBMITTED,properties:{const:ELEMENT_YID,value:msnn8wtcd}},{id:2x7dgj6i0,order:2,const:POST,properties:{const:ENDPOINT,value:https:\/\/webhook.latenode.com\/1150\/dev\/dev\/Breathwell-messages}},{id:umg18nx55,order:3,const:SHOW_ELEMENT,properties:{const:ELEMENT_YID,value:ws5e17yv7}}},69vtip2zy:{workflow_uid:69382fa1192b6,actions:{id:4n3in7ly4,order:1,const:FORM_SUBMITTED,properties:{const:ELEMENT_YID,value:69vtip2zy}},{id:pzs26i99n,order:2,const:POST,properties:{const:ENDPOINT,value:https:\/\/webhook.latenode.com\/1150\/dev\/dev\/Breathwell-messages}},{id:umg18nx55,order:3,const:SHOW_ELEMENT,properties:{const:ELEMENT_YID,value:bfqm6yd1s}}},9rwolwjkl:{workflow_uid:6943874679447,actions:{id:4n3in7ly4,order:1,const:FORM_SUBMITTED,properties:{const:ELEMENT_YID,value:9rwolwjkl}},{id:pzs26i99n,order:2,const:POST,properties:{const:ENDPOINT,value:https:\/\/webhook.latenode.com\/1150\/dev\/39971256-0af5-4096-b05b-95c13ef7ff15}},{id:umg18nx55,order:3,const:SHOW_ELEMENT,properties:{const:ELEMENT_YID,value:ptlls7ksi}}},97aihpcnn:{workflow_uid:694387468af33,actions:{id:4n3in7ly4,order:1,const:FORM_SUBMITTED,properties:{const:ELEMENT_YID,value:97aihpcnn}},{id:2x7dgj6i0,order:2,const:POST,properties:{const:ENDPOINT,value:https:\/\/webhook.latenode.com\/1150\/dev\/39971256-0af5-4096-b05b-95c13ef7ff15}},{id:umg18nx55,order:3,const:SHOW_ELEMENT,properties:{const:ELEMENT_YID,value:4k9b2g842}}},dmefwe7fc:{workflow_uid:694387469d42d,actions:{id:kc7zz4enx,order:1,const:FORM_SUBMITTED,properties:{const:ELEMENT_YID,value:dmefwe7fc}},{id:cimlar4kd,order:2,const:SEND_EMAIL,properties:{const:SEND_EMAIL_MESSAGE,value:Youve received a new form submission.},{const:SEND_EMAIL_SUBJECT,value:New submission},{const:SEND_EMAIL_RECIPIENT,value:priyanshu@rutics.com}},{id:it5h9swje,order:3,const:SHOW_ELEMENT,properties:{const:ELEMENT_YID,value:y4rcz928x}}},npi094zyi:{workflow_uid:671f463fbbc25,actions:{id:null,order:1,const:FORM_SUBMITTED,properties:{const:ELEMENT_YID,value:npi094zyi}},{id:null,order:2,const:NEWSLETTER_SUBSCRIBE,properties:},{id:null,order:3,const:SHOW_ELEMENT,properties:{const:ELEMENT_YID,value:o4fhficl6}}},hgx8l972w:{workflow_uid:67247dd24d2f1,actions:{id:null,order:1,const:FORM_SUBMITTED,properties:{const:ELEMENT_YID,value:hgx8l972w}},{id:null,order:2,const:SEND_EMAIL,properties:{const:SEND_EMAIL_RECIPIENT,value:ignasl@ycode.com},{const:SEND_EMAIL_SUBJECT,value:New submission},{const:SEND_EMAIL_MESSAGE,value:Youve received a new form submission.}},{id:null,order:3,const:SHOW_ELEMENT,properties:{const:ELEMENT_YID,value:0r402go43}}},scmrrm3j7:{workflow_uid:677dfe2d369c1,actions:{id:oy9xjz5a1,order:1,const:FORM_SUBMITTED,properties:{const:ELEMENT_YID,value:scmrrm3j7}},{id:p495kqvti,order:2,const:SEND_EMAIL,properties:{const:SEND_EMAIL_SUBJECT,value:New submission},{const:SEND_EMAIL_MESSAGE,value:Youve received a new form submission.}},{id:edwriucmh,order:3,const:SHOW_ELEMENT,properties:{const:ELEMENT_YID,value:5qmscv7y7}}}}/script>script srchttps://cdn.ycode.com/yc/js/gsap-latest-beta.min.js defer>/script>script srchttps://cdn.ycode.com/yc/js/ScrollTrigger.min.js defer>/script>script src/js/generated.js?id5cf915afae162b952272 defer>/script>!-- Google Tag Manager (noscript) -->noscript>iframe srchttps://www.googletagmanager.com/ns.html?idGTM-W26BJVG3height0 width0 styledisplay:none;visibility:hidden>/iframe>/noscript>!-- End Google Tag Manager (noscript) -->!-- Funnelytics -->script typetext/javascript> (function(funnel) {var deferredEvents ;window.funnelytics {events: {trigger: function (name, attributes, callback, opts) {deferredEvents.push({name: name, attributes: attributes, callback: callback, opts: opts});}}};var insert document.getElementsByTagName(script)0,script document.createElement(script);script.addEventListener(load, function() {window.funnelytics.init(funnel, false, deferredEvents, { anonymiseUsers: false });});script.src https://cdn.funnelytics.io/track-v3.js;script.type text/javascript;script.async true;insert.parentNode.insertBefore(script, insert);})(83f381b0-b4b8-46d1-8606-5eeca4342e1e); /script>!-- SEO Schema -->script typeapplication/ld+json> { @context: https://schema.org, @type: LocalBusiness, name: Breathewell, url: https://breathewell.ca/?UTM_sourceGMB_listing&UTM_mediumorganic, sameAs: https://maps.google.com/?cid6347289859099779344, telephone: +1 514-222-0320, geo: { @type: GeoCoordinates, latitude: 45.3965291, longitude: -73.9579436 }, address: { @type: PostalAddress, streetAddress: 79 Grand Boulevard, LÎle-Perrot, QC J7V 4W4, Canada , addressLocality: Québec, postalCode: J7V 4W4, addressCountry: Canada } } /script>!-- Notyf -->script srchttps://cdn.jsdelivr.net/npm/notyf@3/notyf.min.js>/script>!-- UTILITY code -->script typemodule> // Utils.js - Utility functionswindow.Utils { // DOM utilities dom: { select: (selector, scope document) > scope.querySelector(selector), selectAll: (selector, scope document) > scope.querySelectorAll(selector), create: (tag, attributes {}, children ) > { const element document.createElement(tag); // Set attributes Object.entries(attributes).forEach((key, value) > { if (key class) { element.className value; } else if (key style && typeof value object) { Object.assign(element.style, value); } else if (key.startsWith(on) && typeof value function) { const eventName key.substring(2).toLowerCase(); element.addEventListener(eventName, value); } else { element.setAttribute(key, value); } }); // Add children children.forEach(child > { if (typeof child string) { element.appendChild(document.createTextNode(child)); } else if (child instanceof Node) { element.appendChild(child); } }); return element; } }, // Event utilities event: { listen: (target, event, callback, options) > { if (typeof target string) { target document.querySelector(target); } if (!target) return null; target.addEventListener(event, callback, options); return { remove: () > target.removeEventListener(event, callback, options) }; }, delegate: (container, selector, eventType, handler) > { const listener (event) > { const target event.target.closest(selector); if (target && container.contains(target)) { handler.call(target, event); } }; container.addEventListener(eventType, listener); return { remove: () > container.removeEventListener(eventType, listener) }; } }, // Form utilities form: { getValues: (formElement) > { if (typeof formElement string) { formElement document.querySelector(formElement); } if (!formElement || !formElement.elements) { return {}; } const formData new FormData(formElement); const values {}; for (let key, value of formData.entries()) { valueskey value; } return values; }, validate: (values, rules) > { const errors {}; for (const field in rules) { const value valuesfield; const fieldRules rulesfield; if (fieldRules.required && (!value || value.trim() )) { errorsfield fieldRules.message || This field is required; continue; } if (fieldRules.email && value && !Utils.validation.isEmail(value)) { errorsfield fieldRules.message || Please enter a valid email; continue; } if (fieldRules.minLength && value && value.length fieldRules.minLength) { errorsfield fieldRules.message || `Must be at least ${fieldRules.minLength} characters`; continue; } if (fieldRules.match && valuesfieldRules.match ! value) { errorsfield fieldRules.message || Fields do not match; continue; } if (fieldRules.custom && typeof fieldRules.custom function) { const customError fieldRules.custom(value, values); if (customError) { errorsfield customError; } } } return { isValid: Object.keys(errors).length 0, errors }; } }, // Validation utilities validation: { isEmail: (email) > /^^\s@+@^\s@+\.^\s@+$/.test(email), isStrongPassword: (password) > { // At least 8 characters, 1 uppercase, 1 lowercase, 1 number return /^(?.*a-z)(?.*A-Z)(?.*\d).{8,}$/.test(password); } }, // Storage utilities storage: { set: (key, value) > { try { localStorage.setItem(key, JSON.stringify(value)); return true; } catch (e) { console.error(Error storing data:, e); return false; } }, get: (key) > { try { const item localStorage.getItem(key); return item ? JSON.parse(item) : null; } catch (e) { console.error(Error retrieving data:, e); return null; } }, remove: (key) > { try { localStorage.removeItem(key); return true; } catch (e) { console.error(Error removing data:, e); return false; } }, clear: () > { try { localStorage.clear(); return true; } catch (e) { console.error(Error clearing data:, e); return false; } } }, // String utilities string: { capitalize: (str) > str.charAt(0).toUpperCase() + str.slice(1), truncate: (str, length 50, suffix ...) > { if (str.length length) return str; return str.substring(0, length).trim() + suffix; } }, // URL utilities url: { getParam: (name) > { const params new URLSearchParams(window.location.search); return params.get(name); }, setParam: (name, value) > { const url new URL(window.location.href); url.searchParams.set(name, value); window.history.replaceState({}, , url); } }, // Date utilities date: { format: (date, format YYYY-MM-DD) > { const d new Date(date); if (isNaN(d.getTime())) return ; const year d.getFullYear(); const month String(d.getMonth() + 1).padStart(2, 0); const day String(d.getDate()).padStart(2, 0); const hours String(d.getHours()).padStart(2, 0); const minutes String(d.getMinutes()).padStart(2, 0); const seconds String(d.getSeconds()).padStart(2, 0); return format .replace(YYYY, year) .replace(MM, month) .replace(DD, day) .replace(HH, hours) .replace(mm, minutes) .replace(ss, seconds); }, timeAgo: (date) > { const now new Date(); const past new Date(date); const diff Math.floor((now - past) / 1000); if (diff 60) return `${diff} seconds ago`; if (diff 3600) return `${Math.floor(diff / 60)} minutes ago`; if (diff 86400) return `${Math.floor(diff / 3600)} hours ago`; if (diff 2592000) return `${Math.floor(diff / 86400)} days ago`; if (diff 31536000) return `${Math.floor(diff / 2592000)} months ago`; return `${Math.floor(diff / 31536000)} years ago`; } }};/script>!---------- Global Js for LimitedPartnership------------------------------------>script typemodule> // Global.js - Main state management window.LimitedPartnershipApp { // Configuration config: { apiBaseUrl: https://cloud.activepieces.com/api/v1/webhooks/, apiTimeout: 30000 }, urls: { signup: R9EupqFStCbtdNNtHoANj/sync, login: 84Eyzi8Bc98fuXNGcxAkb/sync, me: x9K1FBXDscOpwylYDgGc1/sync, forgotPassword: pHCMQ6cNzB1RkDiMfvpZZ/sync, resetPassword: wg9Pl2rszwPoCrdKpJxvZ/sync, activity: sZyt5GCWzeM2VGx6IIP4k/sync }, notyf: new Notyf({ duration: 3000, position: { x: right, y: top }, types: { type: success, background: #28a745, icon: false }, { type: error, background: #dc3545, icon: false }, { type: info, background: #39afda, icon: false } }), // State state: { user: localStorage.getItem(user)?JSON.parse(localStorage.getItem(user)):null, isAuthenticated: localStorage.getItem(isAuthenticated) || null, isLoading: false, errors: {}, currentPage: null, userDashboardData: null }, // Getters get isLoggedIn() { return !!this.state.user && this.state.isAuthenticated; }, // API methods api: { async request(endpoint, options {}) { const url `${LimitedPartnershipApp.config.apiBaseUrl}/${endpoint}`; const defaultOptions { headers: { Content-Type: application/json, Accept: application/json }, timeout: LimitedPartnershipApp.config.apiTimeout }; // Add auth token if available const token Utils.storage.get(authToken); if (token) { defaultOptions.headersAuthorization `Bearer ${token}`; } // Merge options const fetchOptions { ...defaultOptions, ...options, headers: { ...defaultOptions.headers, ...(options.headers || {}) } }; try { // Create AbortController for timeout const controller new AbortController(); const timeoutId setTimeout(() > controller.abort(), LimitedPartnershipApp.config.apiTimeout); fetchOptions.signal controller.signal; const response await fetch(url, fetchOptions); clearTimeout(timeoutId); // Parse JSON response const data await response.json(); // Handle API errors if (!response.ok) { throw { status: response.status, message: data.message || An error occurred, errors: data.errors || {} }; } return data; } catch (error) { // Handle network errors, timeouts, etc. if (error.name AbortError) { throw { message: Request timed out }; } throw error; } }, // Convenience methods for common HTTP methods get(endpoint, options {}) { return this.request(endpoint, { method: GET, ...options }); }, post(endpoint, data, options {}) { return this.request(endpoint, { method: POST, body: JSON.stringify(data), ...options }); }, put(endpoint, data, options {}) { return this.request(endpoint, { method: PUT, body: JSON.stringify(data), ...options }); }, delete(endpoint, options {}) { return this.request(endpoint, { method: DELETE, ...options }); }, getToken() { return Utils.storage.get(authToken); }, postForm(endpoint, data, options {}) { return this.request(endpoint, { method: POST, body: JSON.stringify(data), ...options }); }, }, // Auth methods auth: { async login(credentials) { LimitedPartnershipApp.state.isLoading true; try { const response await LimitedPartnershipApp.api.post(LimitedPartnershipApp.urls.login, credentials); // Store auth data LimitedPartnershipApp.state.user response.user; LimitedPartnershipApp.state.isAuthenticated true; // Store in localStorage for persistence Utils.storage.set(user, response.data.user); Utils.storage.set(authToken, response.data.token); Utils.storage.set(isAuthenticated, true); // Update UI LimitedPartnershipApp.ui.updateAuthElements(); // Redirect if needed if (LimitedPartnershipApp.state.currentPage login || LimitedPartnershipApp.state.currentPage signup) { window.location.href /partnership/limited/dashboard; } return response; } catch (error) { // Handle login errors if (error.errors) { Object.entries(error.errors).forEach((field, message) > { LimitedPartnershipApp.ui.showError(field, message); }); } else { LimitedPartnershipApp.ui.showError(general, error.message || Login failed); } throw error; } finally { LimitedPartnershipApp.state.isLoading false; } }, async signup(userData) { LimitedPartnershipApp.state.isLoading true; try { const response await LimitedPartnershipApp.api.post(LimitedPartnershipApp.urls.signup, userData); // Redirect to Email Verification page if (response.success) { LimitedPartnershipApp.notyf.success(Signup successful! Please check your email for verification.); window.location.href `/partnership/limited/auth/confirmation?email${encodeURIComponent(userData.email)}`; } else { // LimitedPartnershipApp.ui.showError(general, response.message || Signup failed); LimitedPartnershipApp.notyf.error(response.message || Signup failed); } return response; } catch (error) { // Handle signup errors if (error.errors) { Object.entries(error.errors).forEach((field, message) > { LimitedPartnershipApp.notyf.error(message); }); } else { LimitedPartnershipApp.ui.showError(general, error.message || Signup failed); } throw error; } finally { LimitedPartnershipApp.state.isLoading false; } }, async logout() { try { // Call logout endpoint if needed // await LimitedPartnershipApp.api.post(auth/logout, {}); console.log(Logging out...); } catch (error) { console.error(Logout API error:, error); } finally { // Clear state regardless of API success LimitedPartnershipApp.state.user null; LimitedPartnershipApp.state.isAuthenticated false; // Clear localStorage Utils.storage.remove(user); Utils.storage.remove(authToken); Utils.storage.remove(isAuthenticated); // Update UI LimitedPartnershipApp.ui.updateAuthElements(); LimitedPartnershipApp.notyf.success(Logged out successfully!); // Redirect to login window.location.href /partnership/limited/auth/login; } }, async checkAuth() { const token Utils.storage.get(authToken); const user Utils.storage.get(user); const isAuthenticated Utils.storage.get(isAuthenticated); if (token && user && isAuthenticated) { try { // Verify token is still valid with API const response await LimitedPartnershipApp.api.get(LimitedPartnershipApp.urls.me); if (!response.success) { throw new Error(Token verification failed); } // Update user data with latest from server LimitedPartnershipApp.state.user response.data.user; LimitedPartnershipApp.state.isAuthenticated true; LimitedPartnershipApp.state.userDashboardData response.data || null; // Update storage with latest user data Utils.storage.set(user, response.data.user); return response; } catch (error) { // Token invalid or expired console.error(Auth check failed:, error); this.logout(); return false; } } else { // No token or user data LimitedPartnershipApp.state.user null; LimitedPartnershipApp.state.isAuthenticated false; } // Update UI based on auth state LimitedPartnershipApp.ui.updateAuthElements(); return LimitedPartnershipApp.isLoggedIn; }, async requestPasswordReset(email) { LimitedPartnershipApp.state.isLoading true; try { const response await LimitedPartnershipApp.api.post(LimitedPartnershipApp.urls.forgotPassword, { email }); if (response.success) { LimitedPartnershipApp.notyf.success(Password reset link has been sent to your email.); return true; } else { LimitedPartnershipApp.notyf.error(response.message || Failed to send reset link.); return false; } } catch (error) { if (error.errors) { Object.entries(error.errors).forEach((field, message) > { LimitedPartnershipApp.ui.showError(field, message); LimitedPartnershipApp.notyf.error(message); }); } else { LimitedPartnershipApp.notyf.error(error.message || Failed to send reset link.); } return false; } finally { LimitedPartnershipApp.state.isLoading false; } }, async resetPassword(passwordData) { LimitedPartnershipApp.state.isLoading true; try { const response await LimitedPartnershipApp.api.post(LimitedPartnershipApp.urls.resetPassword, passwordData); if (response.success) { LimitedPartnershipApp.notyf.success(Password has been reset successfully.); // Redirect to login page after successful reset setTimeout(() > { window.location.href /partnership/limited/auth/login; }, 2000); return true; } else { LimitedPartnershipApp.notyf.error(response.message || Failed to reset password.); return false; } } catch (error) { if (error.errors) { Object.entries(error.errors).forEach((field, message) > { LimitedPartnershipApp.ui.showError(field, message); LimitedPartnershipApp.notyf.error(message); }); } else { LimitedPartnershipApp.notyf.error(error.message || Failed to reset password.); } return false; } finally { LimitedPartnershipApp.state.isLoading false; } } }, // UI methods ui: { updateAuthElements() { // Update elements that should only be visible when logged in const authElements document.querySelectorAll(data-authtrue); authElements.forEach(el > { el.style.display LimitedPartnershipApp.isLoggedIn ? : none; }); // Update elements that should only be visible when logged out const guestElements document.querySelectorAll(data-authfalse); guestElements.forEach(el > { el.style.display LimitedPartnershipApp.isLoggedIn ? none : ; }); // Update user info elements const userNameElements document.querySelectorAll(data-username); if (LimitedPartnershipApp.state.user) { userNameElements.forEach(el > { el.textContent LimitedPartnershipApp.state.user.name || LimitedPartnershipApp.state.user.email; }); } }, showLoading(isLoading true) { LimitedPartnershipApp.state.isLoading isLoading; const loaders document.querySelectorAll(.loader); loaders.forEach(loader > { loader.style.display isLoading ? block : none; }); // Disable form buttons during loading if (isLoading) { const buttons document.querySelectorAll(buttontypesubmit); buttons.forEach(button > { button.disabled true; if (!button.dataset.originalText) { button.dataset.originalText button.textContent; button.textContent Please wait...; } }); } else { const buttons document.querySelectorAll(buttontypesubmit); buttons.forEach(button > { button.disabled false; if (button.dataset.originalText) { button.textContent button.dataset.originalText; } }); } }, showError(field, message) { LimitedPartnershipApp.notyf.error(message);// TODO: implement this LimitedPartnershipApp.state.errorsfield message; const errorElement document.querySelector(`data-error${field}`); if (errorElement) { errorElement.textContent message; errorElement.style.display message ? block : none; } const inputElement document.querySelector(`name${field}`); if (inputElement) { if (message) { inputElement.classList.add(error); } else { inputElement.classList.remove(error); } } }, clearErrors() { LimitedPartnershipApp.state.errors {}; const errorElements document.querySelectorAll(data-error); errorElements.forEach(el > { el.textContent ; el.style.display none; }); const inputElements document.querySelectorAll(.error); inputElements.forEach(el > { el.classList.remove(error); }); } }, get token() { return Utils.storage.get(authToken); }, // Initialize the application init() { // Set current page based on URL const path window.location.pathname; if (path.includes(login)) { this.state.currentPage login; } else if (path.includes(signup)) { this.state.currentPage signup; } else if (path.includes(dashboard)) { this.state.currentPage dashboard; } // Check if page is after partnership/limited/dashboard const isDashboardPage path.startsWith(/partnership/limited/dashboard); if (isDashboardPage) { LimitedPartnershipApp.auth.checkAuth() .then(isAuthenticated > { if (!isAuthenticated) { LimitedPartnershipApp.notyf.error(Session expired. Please log in again.); window.location.href /partnership/limited/auth/login; } else { // create custom event const event new CustomEvent(userLoggedIn, { detail: LimitedPartnershipApp.state.user }); document.dispatchEvent(event); // Dispatch the custom event this.ui.updateAuthElements(); } }) .catch(error > { console.error(Error checking auth:, error); }); } console.log(App initialized on page:, this.state.currentPage); } }; LimitedPartnershipApp.init();/script>!--------------------- Global Js for Team Portal for Breathewell Team >---------------------->!--------------------- Global Js for Team Portal for Breathewell >---------------------->script typemodule> // Global.js - Main state management window.BreathewellTeamApp { // Configuration config: { apiBaseUrl: https://cloud.activepieces.com/api/v1/webhooks/, apiTimeout: 30000 }, urls: { login: qfJAV9KY6v2hkGEdGcvLe/sync, me: KdCdyKmW6ESjwhX6EQvI9/sync, forgotPassword: HQhQnsf33Ar2qwwKWmH4y/sync, resetPassword: DfZOvsUkgs0arVglfojf1/sync, }, notyf: new Notyf({ duration: 3000, position: { x: right, y: top }, types: { type: success, background: #28a745, icon: false }, { type: error, background: #dc3545, icon: false }, { type: info, background: #39afda, icon: false } }), // State state: { user: localStorage.getItem(teamUser)?JSON.parse(localStorage.getItem(teamUser)):null, isAuthenticated: localStorage.getItem(isAuthenticated) || null, isLoading: false, errors: {}, currentPage: null, userDashboardData: null }, // Getters get isLoggedIn() { return !!this.state.user && this.state.isAuthenticated; }, // API methods api: { async request(endpoint, options {}) { const url `${BreathewellTeamApp.config.apiBaseUrl}/${endpoint}`; const defaultOptions { headers: { Content-Type: application/json, Accept: application/json }, timeout: BreathewellTeamApp.config.apiTimeout }; // Add auth token if available const token Utils.storage.get(teamAuthToken); if (token) { defaultOptions.headersAuthorization `Bearer ${token}`; } // Merge options const fetchOptions { ...defaultOptions, ...options, headers: { ...defaultOptions.headers, ...(options.headers || {}) } }; try { // Create AbortController for timeout const controller new AbortController(); const timeoutId setTimeout(() > controller.abort(), BreathewellTeamApp.config.apiTimeout); fetchOptions.signal controller.signal; const response await fetch(url, fetchOptions); clearTimeout(timeoutId); // Parse JSON response const data await response.json(); // Handle API errors if (!response.ok) { throw { status: response.status, message: data.message || An error occurred, errors: data.errors || {} }; } return data; } catch (error) { // Handle network errors, timeouts, etc. if (error.name AbortError) { throw { message: Request timed out }; } throw error; } }, // Convenience methods for common HTTP methods get(endpoint, options {}) { return this.request(endpoint, { method: GET, ...options }); }, post(endpoint, data, options {}) { return this.request(endpoint, { method: POST, body: JSON.stringify(data), ...options }); }, put(endpoint, data, options {}) { return this.request(endpoint, { method: PUT, body: JSON.stringify(data), ...options }); }, delete(endpoint, options {}) { return this.request(endpoint, { method: DELETE, ...options }); }, getToken() { return Utils.storage.get(teamAuthToken); }, postForm(endpoint, data, options {}) { return this.request(endpoint, { method: POST, body: JSON.stringify(data), ...options }); }, }, // Auth methods auth: { async login(credentials) { BreathewellTeamApp.state.isLoading true; try { const response await BreathewellTeamApp.api.post(BreathewellTeamApp.urls.login, credentials); // Store auth data BreathewellTeamApp.state.user response.user; BreathewellTeamApp.state.isAuthenticated true; // Store in localStorage for persistence Utils.storage.set(teamUser, response.data.user); Utils.storage.set(teamAuthToken, response.data.token); Utils.storage.set(isAuthenticated, true); // Update UI BreathewellTeamApp.ui.updateAuthElements(); // Redirect if needed if (BreathewellTeamApp.state.currentPage login || BreathewellTeamApp.state.currentPage signup) { window.location.href /team/dashboard; } return response; } catch (error) { // Handle login errors if (error.errors) { Object.entries(error.errors).forEach((field, message) > { BreathewellTeamApp.ui.showError(field, message); }); } else { BreathewellTeamApp.ui.showError(general, error.message || Login failed); } throw error; } finally { BreathewellTeamApp.state.isLoading false; } }, async logout() { try { // Call logout endpoint if needed // await BreathewellTeamApp.api.post(auth/logout, {}); console.log(Logging out...); } catch (error) { console.error(Logout API error:, error); } finally { // Clear state regardless of API success BreathewellTeamApp.state.user null; BreathewellTeamApp.state.isAuthenticated false; // Clear localStorage Utils.storage.remove(teamUser); Utils.storage.remove(teamAuthToken); Utils.storage.remove(isAuthenticated); // Update UI BreathewellTeamApp.ui.updateAuthElements(); BreathewellTeamApp.notyf.success(Logged out successfully!); // Redirect to login window.location.href /team/auth/login; } }, async checkAuth() { const token Utils.storage.get(teamAuthToken); const user Utils.storage.get(teamUser); const isAuthenticated Utils.storage.get(isAuthenticated); if (token && user && isAuthenticated) { try { // Verify token is still valid with API const response await BreathewellTeamApp.api.get(BreathewellTeamApp.urls.me); if (!response.success) { throw new Error(Token verification failed); } // Update user data with latest from server BreathewellTeamApp.state.user response.data.user; BreathewellTeamApp.state.isAuthenticated true; BreathewellTeamApp.state.userDashboardData response.data || null; // Update storage with latest user data Utils.storage.set(teamUser, response.data.user); return response; } catch (error) { // Token invalid or expired console.error(Auth check failed:, error); this.logout(); return false; } } else { // No token or user data BreathewellTeamApp.state.user null; BreathewellTeamApp.state.isAuthenticated false; } // Update UI based on auth state BreathewellTeamApp.ui.updateAuthElements(); return BreathewellTeamApp.isLoggedIn; }, async requestPasswordReset(email) { BreathewellTeamApp.state.isLoading true; try { const response await BreathewellTeamApp.api.post(BreathewellTeamApp.urls.forgotPassword, { email }); if (response.success) { BreathewellTeamApp.notyf.success(Password reset link has been sent to your email.); return true; } else { BreathewellTeamApp.notyf.error(response.message || Failed to send reset link.); return false; } } catch (error) { if (error.errors) { Object.entries(error.errors).forEach((field, message) > { BreathewellTeamApp.ui.showError(field, message); BreathewellTeamApp.notyf.error(message); }); } else { BreathewellTeamApp.notyf.error(error.message || Failed to send reset link.); } return false; } finally { BreathewellTeamApp.state.isLoading false; } }, async resetPassword(passwordData) { BreathewellTeamApp.state.isLoading true; try { const response await BreathewellTeamApp.api.post(BreathewellTeamApp.urls.resetPassword, passwordData); if (response.success) { BreathewellTeamApp.notyf.success(Password has been reset successfully.); // Redirect to login page after successful reset setTimeout(() > { window.location.href /team/auth/login; }, 2000); return true; } else { BreathewellTeamApp.notyf.error(response.message || Failed to reset password.); return false; } } catch (error) { if (error.errors) { Object.entries(error.errors).forEach((field, message) > { BreathewellTeamApp.ui.showError(field, message); BreathewellTeamApp.notyf.error(message); }); } else { BreathewellTeamApp.notyf.error(error.message || Failed to reset password.); } return false; } finally { BreathewellTeamApp.state.isLoading false; } } }, // UI methods ui: { updateAuthElements() { // Update elements that should only be visible when logged in const authElements document.querySelectorAll(data-authtrue); authElements.forEach(el > { el.style.display BreathewellTeamApp.isLoggedIn ? : none; }); // Update elements that should only be visible when logged out const guestElements document.querySelectorAll(data-authfalse); guestElements.forEach(el > { el.style.display BreathewellTeamApp.isLoggedIn ? none : ; }); // Update user info elements const userNameElements document.querySelectorAll(data-username); if (BreathewellTeamApp.state.user) { userNameElements.forEach(el > { el.textContent BreathewellTeamApp.state.user.name || BreathewellTeamApp.state.user.email; }); } }, showLoading(isLoading true) { BreathewellTeamApp.state.isLoading isLoading; const loaders document.querySelectorAll(.loader); loaders.forEach(loader > { loader.style.display isLoading ? block : none; }); // Disable form buttons during loading if (isLoading) { const buttons document.querySelectorAll(buttontypesubmit); buttons.forEach(button > { button.disabled true; if (!button.dataset.originalText) { button.dataset.originalText button.textContent; button.textContent Please wait...; } }); } else { const buttons document.querySelectorAll(buttontypesubmit); buttons.forEach(button > { button.disabled false; if (button.dataset.originalText) { button.textContent button.dataset.originalText; } }); } }, showError(field, message) { BreathewellTeamApp.notyf.error(message);// TODO: implement this BreathewellTeamApp.state.errorsfield message; const errorElement document.querySelector(`data-error${field}`); if (errorElement) { errorElement.textContent message; errorElement.style.display message ? block : none; } const inputElement document.querySelector(`name${field}`); if (inputElement) { if (message) { inputElement.classList.add(error); } else { inputElement.classList.remove(error); } } }, clearErrors() { BreathewellTeamApp.state.errors {}; const errorElements document.querySelectorAll(data-error); errorElements.forEach(el > { el.textContent ; el.style.display none; }); const inputElements document.querySelectorAll(.error); inputElements.forEach(el > { el.classList.remove(error); }); } }, get token() { return Utils.storage.get(teamAuthToken); }, // Initialize the application init() { // Set current page based on URL const path window.location.pathname; if (path.includes(login)) { this.state.currentPage login; } else if (path.includes(signup)) { this.state.currentPage signup; } else if (path.includes(dashboard)) { this.state.currentPage dashboard; } const isDashboardPage path.startsWith(/team/dashboard); if (isDashboardPage) { BreathewellTeamApp.auth.checkAuth() .then(isAuthenticated > { if (!isAuthenticated) { BreathewellTeamApp.notyf.error(Session expired. Please log in again.); window.location.href /team/auth/login; } else { // create custom event console.log(User logged in:, BreathewellTeamApp.state.user); const event new CustomEvent(team:userLoggedIn, { detail: BreathewellTeamApp.state.user }); document.dispatchEvent(event); // Dispatch the custom event this.ui.updateAuthElements(); } }) .catch(error > { console.error(Error checking auth:, error); }); } console.log(App initialized on page:, this.state.currentPage); } }; BreathewellTeamApp.init();/script>script>setTimeout(() > { const element document.querySelector(#someone-purchased > div.about.fomo-notification-powered-by); if (element) { element.style.setProperty(display, none, important); }else{ console.log(Element not found); }}, 100);/script>script>// Begin ShortPen Event Codeshr(event, testing);// End ShortPen Event Code/script>script>document.addEventListener(DOMContentLoaded, function() { // Target only buttons within FAQ section const faqSection document.querySelector(.faq-section); // Add this class to your FAQ container if (faqSection) { const faqButtons faqSection.querySelectorAll(buttontypebutton); faqButtons.forEach(button > { button.addEventListener(click, function() { const content this.nextElementSibling; const icon this.querySelector(i); const isOpen !content.classList.contains(hidden); // Close all others in this section only faqButtons.forEach(btn > { if (btn ! this) { btn.nextElementSibling.classList.add(hidden); btn.querySelector(i).classList.remove(rotate-45deg); } }); // Toggle current content.classList.toggle(hidden, isOpen); icon.classList.toggle(rotate-45deg, !isOpen); }); }); }});/script>script typetext/javascript srchttps://load.fomo.com/api/v1/c01IVpjGvSTG5HTF1gXUTw/load.js async>/script>script>window.logMonthlyVisitstrue/script>script>window.localeen/script>/body> /html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]