{"id":39660,"date":"2025-11-06T07:48:34","date_gmt":"2025-11-05T23:48:34","guid":{"rendered":"https:\/\/smartairfilters.com\/?page_id=39660"},"modified":"2025-12-05T09:19:27","modified_gmt":"2025-12-05T01:19:27","slug":"jobs","status":"publish","type":"page","link":"https:\/\/smartairfilters.com\/en\/jobs\/","title":{"rendered":"Jobs &#8211; Join Smart Air on a mission to fight air pollution!"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"39660\" class=\"elementor elementor-39660\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4262681b e-con-full banner-clouds e-flex elementor-invisible e-con e-parent\" data-id=\"4262681b\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;fadeIn&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2b9ce240 newh1-banner elementor-widget elementor-widget-heading\" data-id=\"2b9ce240\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Join Smart Air<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-73414272 elementor-widget__width-initial newh2-banner elementor-widget elementor-widget-heading\" data-id=\"73414272\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Build a future with us, creating innovative solutions for cleaner, healthier air<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8e1407b e-con-full e-flex e-con e-parent\" data-id=\"8e1407b\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-18f2686b elementor-widget__width-initial new-subheader elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"18f2686b\" data-element_type=\"widget\" data-settings=\"{&quot;_animation_mobile&quot;:&quot;fadeInDown&quot;,&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Open Positions<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6f92198 elementor-widget__width-initial new-subheader elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"6f92198\" data-element_type=\"widget\" data-settings=\"{&quot;_animation_mobile&quot;:&quot;fadeInDown&quot;,&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Product Development Engineer<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fe7fc95 elementor-widget__width-initial animated-slow elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"fe7fc95\" data-element_type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Design and develop advanced air purification technologies to enhance indoor air quality<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-43125a6 elementor-align-left elementor-widget__width-initial elementor-mobile-align-center elementor-invisible elementor-widget elementor-widget-button\" data-id=\"43125a6\" data-element_type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/hive.smartairfilters.com\/jobs\/detail\/product-engineer-30\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Apply<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6a1286ec elementor-widget__width-initial elementor-invisible elementor-widget elementor-widget-image\" data-id=\"6a1286ec\" data-element_type=\"widget\" data-settings=\"{&quot;_animation_mobile&quot;:&quot;fadeInDown&quot;,&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"585\" src=\"https:\/\/smartairfilters.com\/wordpress\/wp-content\/uploads\/2025\/11\/SCAQMD-South-Coast-Air-Quality-Management-District-12-1024x585.png\" class=\"attachment-large size-large wp-image-39665\" alt=\"\" srcset=\"https:\/\/smartairfilters.com\/wordpress\/wp-content\/uploads\/2025\/11\/SCAQMD-South-Coast-Air-Quality-Management-District-12-1024x585.png 1024w, https:\/\/smartairfilters.com\/wordpress\/wp-content\/uploads\/2025\/11\/SCAQMD-South-Coast-Air-Quality-Management-District-12-600x343.png 600w, https:\/\/smartairfilters.com\/wordpress\/wp-content\/uploads\/2025\/11\/SCAQMD-South-Coast-Air-Quality-Management-District-12-300x171.png 300w, https:\/\/smartairfilters.com\/wordpress\/wp-content\/uploads\/2025\/11\/SCAQMD-South-Coast-Air-Quality-Management-District-12-768x439.png 768w, https:\/\/smartairfilters.com\/wordpress\/wp-content\/uploads\/2025\/11\/SCAQMD-South-Coast-Air-Quality-Management-District-12.png 1400w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-33af624d e-con-full e-flex elementor-invisible e-con e-parent\" data-id=\"33af624d\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;,&quot;animation&quot;:&quot;fadeIn&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ce273ba elementor-widget__width-initial new-subheader elementor-widget elementor-widget-heading\" data-id=\"ce273ba\" data-element_type=\"widget\" data-settings=\"{&quot;_animation_mobile&quot;:&quot;fadeInDown&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Volunteer Opportunities<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-19947bb elementor-widget__width-initial animated-slow elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"19947bb\" data-element_type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Eager to help more people breathe clean air? Join our volunteer team today! We work with a gladder future in mind<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-71fa6b3 elementor-align-left elementor-widget__width-initial elementor-mobile-align-center elementor-invisible elementor-widget elementor-widget-button\" data-id=\"71fa6b3\" data-element_type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/smartairfilters.com\/en\/volunteer-at-smart-air\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Join Us<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-83724a0 elementor-widget__width-initial elementor-widget elementor-widget-image\" data-id=\"83724a0\" data-element_type=\"widget\" data-settings=\"{&quot;_animation_mobile&quot;:&quot;fadeInDown&quot;}\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1024\" height=\"512\" src=\"https:\/\/smartairfilters.com\/wordpress\/wp-content\/uploads\/2025\/11\/SCAQMD-South-Coast-Air-Quality-Management-District-11-1024x512.png\" class=\"attachment-large size-large wp-image-39666\" alt=\"\" srcset=\"https:\/\/smartairfilters.com\/wordpress\/wp-content\/uploads\/2025\/11\/SCAQMD-South-Coast-Air-Quality-Management-District-11-1024x512.png 1024w, https:\/\/smartairfilters.com\/wordpress\/wp-content\/uploads\/2025\/11\/SCAQMD-South-Coast-Air-Quality-Management-District-11-600x300.png 600w, https:\/\/smartairfilters.com\/wordpress\/wp-content\/uploads\/2025\/11\/SCAQMD-South-Coast-Air-Quality-Management-District-11-300x150.png 300w, https:\/\/smartairfilters.com\/wordpress\/wp-content\/uploads\/2025\/11\/SCAQMD-South-Coast-Air-Quality-Management-District-11-768x384.png 768w, https:\/\/smartairfilters.com\/wordpress\/wp-content\/uploads\/2025\/11\/SCAQMD-South-Coast-Air-Quality-Management-District-11.png 1400w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2a20d6a5 e-con-full quick-links-homepage e-flex elementor-invisible e-con e-parent\" data-id=\"2a20d6a5\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;,&quot;animation&quot;:&quot;fadeIn&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3793981f elementor-widget__width-initial new-subheader elementor-widget elementor-widget-heading\" data-id=\"3793981f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Quick Links<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3a5e0e6c e-grid e-con-boxed e-con e-child\" data-id=\"3a5e0e6c\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-22bec73e elementor-align-justify elementor-widget__width-inherit elementor-widget elementor-widget-button\" data-id=\"22bec73e\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/smartairfilters.com\/en\/about\/meet-the-clean-air-team\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Smart Air Team<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7d78065e elementor-align-justify elementor-widget__width-inherit elementor-widget elementor-widget-button\" data-id=\"7d78065e\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/smartairfilters.com\/en\/about\/our-impact\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Our Impact<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-70998249 e-con-full scroll-bg e-flex e-con e-parent\" data-id=\"70998249\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-72809b71 e-flex e-con-boxed e-con e-parent\" data-id=\"72809b71\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7177fc10 elementor-widget elementor-widget-html\" data-id=\"7177fc10\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n .homepage-textgradient {\r\n  background: linear-gradient(\r\n    175deg,\r\n    #8CA6DB 0%,\r\n    #8CA6DB 40%,\r\n    #111111 70%,\r\n    #333333 100%\r\n  );\r\n  -webkit-background-clip: text;\r\n  -webkit-text-fill-color: transparent;\r\n  display: inline-block;\r\n}\r\n\r\n\r\n.scroll-bg {\r\n  \r\n  background-repeat: repeat-x;\r\n  background-position: 0 0;\r\n  background-size: cover; \/* or contain, depending on your image *\/\r\n  animation: scrollBackground 30s linear infinite;\r\n  height: 300px; \/* adjust as needed *\/\r\n  width: 100%;\r\n}\r\n\r\n\/* Animation keyframes *\/\r\n@keyframes scrollBackground {\r\n  0% {\r\n    background-position: 0 0;\r\n  }\r\n  100% {\r\n    background-position: -1000px 0; \r\n  }\r\n}\r\n\r\n#homepage-tab1,\r\n#homepage-tab2,\r\n#homepage-tab3 {\r\n  border: none;\r\n \r\n  padding: 5px 40px;\r\n  border-radius: 30px;\r\n  font-size: 16px;\r\n  cursor: pointer;\r\n  transition: background 0.3s, color 0.3s;\r\n  color: black;\r\n}\r\n\r\n\/* Active tab style *\/\r\n#homepage-tab1[aria-selected=\"true\"],\r\n#homepage-tab2[aria-selected=\"true\"],\r\n#homepage-tab3[aria-selected=\"true\"] {\r\n  background-color: #5dade2; \r\n  color: white;\r\n}\r\n.e-n-tabs-heading {\r\n  display: flex;\r\n  background-color: #e0e0e0; \r\n  padding: 0px;\r\n  border-radius: 30px;\r\n  width: fit-content;\r\n}\r\n.homepage-cards-singlecard{\r\n    height:200px;\r\n}\r\n.homepage-hoverclass {\r\n  position: relative; \/* Needed for ::before to align properly *\/\r\n  background-repeat: no-repeat !important;\r\n  background-position: bottom center !important;\r\n  transition: background-size 1.3s ease !important;\r\n  will-change: background-size;\r\n  overflow: hidden; \/* Optional: hide any overflows *\/\r\n}\r\n\r\n.homepage-hoverclass.zoom-small,.homepage-hoverclass.zoom-small-3{\r\n    justify-self: self-end !important;\r\n}\r\n\/* Zoom on hover *\/\r\n.zoom-small {\r\n  background-size: 100% !important;\r\n  transition: background-size 0.4s ease-in-out;\r\n  background-position: center 10px !important;\r\n  background-repeat: no-repeat;\r\n  \r\n}\r\n\r\n\r\n\r\n.homepage-hoverclass.zoom-small, .homepage-hoverclass.zoom-large,.homepage-hoverclass.zoom-large-4{\r\n    height:413px !important;\r\n}\r\n\r\n@media (min-width: 768px) {.banner-clouds {\r\n  position: relative;\r\n}\r\n.zoom-small:hover {\r\n  background-size: 103% !important;\r\n   background-position: center 10px !important;\r\n}\r\n.zoom-small-3 {\r\n  background-size: 100% auto !important;\r\n}\r\n.zoom-small-3:hover {\r\n  background-size: 105% auto !important;\r\n}\r\n.zoom-large {\r\n  background-size: 110% auto !important;\r\n}\r\n.zoom-large:hover {\r\n  background-size: 115% auto !important;\r\n}\r\n.zoom-large-4{\r\n  background-size: 103% auto !important;\r\n}\r\n.zoom-large-4:hover {\r\n  background-size: 108% auto !important;\r\n}\r\n\r\n.fixed-b-corp {\r\n  transition: opacity 0.4s ease;\r\n  opacity: 1;\r\n}\r\n.fixed-b-corp.fade-out {\r\n  opacity: 0;\r\n  pointer-events: none; \/* optional, disables hover\/click when invisible *\/\r\n}\r\n\r\n.fixed-b-corp {\r\n  position: absolute;\r\n  bottom: 20px;\r\n  right: 20px;\r\n  z-index: 999;\r\n  transition: none;\r\n}\r\n\r\n.fixed-b-corp.sticking {\r\n  position: fixed !important;\r\n  bottom: 20px;\r\n  right: 20px;\r\n}\r\n\r\n.fixed-b-corp.stopped {\r\n  position: absolute !important;\r\n  bottom: unset !important;\r\n  top: auto !important;\r\n}\r\n}\r\n\r\n\r\n@media (max-width: 768px) {\r\n \r\n .elementor-widget-container{\r\n     text-wrap-mode: wrap; \r\n }\r\n\/* .horiz-scrol-homepage-mobile {\r\n  overflow-x: auto;\r\n  -webkit-overflow-scrolling: touch; \/* enables momentum scroll & dots on iOS \r\n  white-space: nowrap;\r\n}*\/\r\n\r\n\r\n\/* Container should behave normally *\/\r\n\/*.elementor-element-7c63c65 {\r\n  display: block !important;\r\n  overflow: hidden;\r\n}\r\n\r\n\r\n.elementor-element-1ad7031 {\r\n  float: right;\r\n}\r\n\r\n\r\n.elementor-element-958df5e {\r\n  float: left;\r\n}\r\n\r\n\r\n.elementor-button {\r\n  width: auto !important;\r\n  padding: 10px 20px;\r\n  white-space: nowrap;\r\n}*\/\r\n\r\n  .homepage-hoverclass{\r\n      box-shadow:none !important;\r\n  }\r\n  .scroll-left.disabled,\r\n.scroll-right.disabled {\r\n  opacity: 0.3;\r\n  pointer-events: none;\r\n}\r\n\r\n  .scroll-arrows {\r\n    display: none;\r\n    justify-content: center;\r\n    gap: 20px;\r\n    margin: 10px 0;\r\n  }\r\n\r\n  .scroll-arrows img {\r\n      \r\n    width: 24px;\r\n    height: 24px;\r\n    cursor: pointer;\r\n    transition: transform 0.2s ease;\r\n  }\r\n\r\n  .scroll-arrows img:hover {\r\n    transform: scale(1.1);\r\n  }\r\n\r\n  .horiz-scrol-homepage-mobile {\r\n    display: flex;\r\n    overflow-x: auto;\r\n    scroll-snap-type: x mandatory;\r\n    -webkit-overflow-scrolling: touch;\r\n    scroll-behavior: smooth;\r\n    gap: 20px;\r\n    width: 100%;\r\n     -ms-overflow-style: none;  \/* IE and Edge *\/\r\n  scrollbar-width: none;     \/* Firefox *\/\r\n  }\r\n.horiz-scrol-homepage-mobile::-webkit-scrollbar {\r\n  display: none;             \/* Chrome, Safari, Opera *\/\r\n}\r\n  .horiz-scrol-homepage-mobile > .e-con {\r\n    flex: 0 0 100%;\r\n    scroll-snap-align: center;\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  .scroll-dots {\r\n    display: flex;\r\n    justify-content: center;\r\n    gap: 8px;\r\n    margin-top: 10px;\r\n  }\r\n\r\n  .scroll-dots .dot {\r\n    width: 5px;\r\n    height: 5px;\r\n    background: #ccc;\r\n    border-radius: 50%;\r\n    cursor: pointer;\r\n    transition: background 0.3s;\r\n  }\r\n\r\n  .scroll-dots .dot.active {\r\n    background: #333;\r\n  }\r\n  \/* === Generic Button Container Centering === *\/\r\n.homepage-button-group-mobile {\r\n  display: flex !important;\r\n  justify-content: center !important;\r\n  align-items: center;\r\n  \/\/gap: 16px; \/* spacing between buttons *\/\r\n  row-gap:10px;\r\n  flex-wrap: wrap;\r\n  text-align: center;\r\n}\r\n\r\n\/* === Button Styling for all groups === *\/\r\n\/*.homepage-button-single-mobile {\r\n  width: auto !important;\r\n  min-width: auto !important;\r\n  padding: 10px 20px;\r\n  display: inline-flex;\r\n  justify-content: center;\r\n  align-items: center;\r\n  border-radius: 100px; \/* keeps pill shape *\/\r\n}*\/\r\n\r\n\/* Ensure button wrappers don\u2019t interfere *\/\r\n.elementor-button-wrapper {\r\n  display: inline-flex !important;\r\n}\r\n.site-content{\r\n        overflow-x: hidden;\r\n\r\n}\r\n}\r\n\r\n\r\n<\/style>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n    if (window.innerWidth >= 768) return;\r\n  const scrollSections = document.querySelectorAll(\".scroll-block-homepage-1, .scroll-block-homepage-2\");\r\n\r\n  scrollSections.forEach(section => {\r\n    const scrollWrapper = section.querySelector(\".horiz-scrol-homepage-mobile\");\r\n    const dotsContainer = section.querySelector(\".scroll-dots\");\r\n    const leftArrow = section.querySelector(\".scroll-left\");\r\n    const rightArrow = section.querySelector(\".scroll-right\");\r\n\r\n    if (!scrollWrapper || !leftArrow || !rightArrow || !dotsContainer) return;\r\n\r\n    const cards = Array.from(scrollWrapper.children).filter(el => el.classList.contains(\"e-con\"));\r\n    const scrollStep = scrollWrapper.offsetWidth;\r\n\r\n    \/\/ Create dots\r\n    dotsContainer.innerHTML = \"\";\r\n    cards.forEach((_, i) => {\r\n      const dot = document.createElement(\"span\");\r\n      dot.classList.add(\"dot\");\r\n      if (i === 0) dot.classList.add(\"active\");\r\n      dot.addEventListener(\"click\", () => {\r\n        scrollWrapper.scrollTo({ left: scrollStep * i, behavior: \"smooth\" });\r\n      });\r\n      dotsContainer.appendChild(dot);\r\n    });\r\n\r\n    \/\/ Sync dot and arrows\r\n    function updateState() {\r\n      const scrollLeft = scrollWrapper.scrollLeft;\r\n      const maxScrollLeft = scrollWrapper.scrollWidth - scrollWrapper.clientWidth;\r\n      const index = Math.round(scrollLeft \/ scrollStep);\r\n\r\n      \/\/ Highlight active dot\r\n      dotsContainer.querySelectorAll(\".dot\").forEach((dot, i) => {\r\n        dot.classList.toggle(\"active\", i === index);\r\n      });\r\n\r\n      \/\/ Enable\/disable arrows\r\n      if (scrollLeft <= 0) {\r\n        leftArrow.classList.add(\"disabled\");\r\n      } else {\r\n        leftArrow.classList.remove(\"disabled\");\r\n      }\r\n\r\n      if (scrollLeft >= maxScrollLeft - 1) {\r\n        rightArrow.classList.add(\"disabled\");\r\n      } else {\r\n        rightArrow.classList.remove(\"disabled\");\r\n      }\r\n    }\r\n\r\n    scrollWrapper.addEventListener(\"scroll\", updateState);\r\n\r\n    leftArrow.addEventListener(\"click\", () => {\r\n      scrollWrapper.scrollBy({ left: -scrollStep, behavior: \"smooth\" });\r\n    });\r\n\r\n    rightArrow.addEventListener(\"click\", () => {\r\n      scrollWrapper.scrollBy({ left: scrollStep, behavior: \"smooth\" });\r\n    });\r\n\r\n    \/\/ Initial state\r\n    updateState();\r\n  });\r\n});\r\n<\/script>\r\n\r\n<script>\/*\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n  const sticky = document.querySelector(\".fixed-b-corp\");\r\n  const banner = document.querySelector(\".banner-clouds\");\r\n  const stopTarget = document.querySelector(\".quick-links-homepage\");\r\n\r\n  if (!sticky || !banner || !stopTarget) return;\r\n\r\n  const bottomOffset = 20; \/\/ px from bottom of viewport\r\n  const rightOffset = 20;\r\n\r\n  function updatePosition() {\r\n    const scrollY = window.scrollY;\r\n    const viewportHeight = window.innerHeight;\r\n    const stickyHeight = sticky.offsetHeight;\r\n\r\n    const bannerTop = banner.offsetTop;\r\n    const bannerBottom = bannerTop + banner.offsetHeight;\r\n\r\n    const stopTop = stopTarget.offsetTop;\r\n    const stopHeight = stopTarget.offsetHeight;\r\n    const stopBottom = stopTop + stopHeight;\r\n\r\n    const stickyBottomIfFixed = scrollY + viewportHeight - bottomOffset;\r\n\r\n    \/\/ Case 1: Still in banner \u2014 start position\r\n    if (scrollY + viewportHeight < bannerBottom + stickyHeight) {\r\n      sticky.style.position = \"absolute\";\r\n      sticky.style.bottom = `${bottomOffset}px`;\r\n      sticky.style.top = \"auto\";\r\n      sticky.style.right = `${rightOffset}px`;\r\n    }\r\n    \/\/ Case 2: Sticky bottom would pass stop section's end \u2014 pin it at the bottom of stop section\r\n    else if (stickyBottomIfFixed >= stopBottom) {\r\n      sticky.style.position = \"absolute\";\r\n      sticky.style.top = `${stopBottom - stickyHeight - bannerTop - bottomOffset}px`;\r\n      sticky.style.bottom = \"auto\";\r\n      sticky.style.right = `${rightOffset}px`;\r\n    }\r\n    \/\/ Case 3: Normal scroll \u2014 fixed to screen\r\n    else {\r\n      sticky.style.position = \"fixed\";\r\n      sticky.style.bottom = `${bottomOffset}px`;\r\n      sticky.style.top = \"auto\";\r\n      sticky.style.right = `${rightOffset}px`;\r\n    }\r\n  }\r\n\r\n  window.addEventListener(\"scroll\", updatePosition);\r\n  window.addEventListener(\"resize\", updatePosition);\r\n  updatePosition();\r\n});\r\n*\/\r\n\r\n\/*document.addEventListener(\"DOMContentLoaded\", function () {\r\n  const sticky = document.querySelector(\".fixed-b-corp\");\r\n  const banner = document.querySelector(\".banner-clouds\");\r\n  const stopTarget = document.querySelector(\".quick-links-homepage\");\r\n\r\n  if (!sticky || !banner || !stopTarget) return;\r\n\r\n  const bottomOffset = 20; \/\/ distance from bottom of screen when fixed\r\n  const rightOffset = 20;  \/\/ distance from right of screen\r\n  const fadeOutDistance = 200; \/\/ fade-out starts this many px before stop section ends\r\n\r\n  function updatePosition() {\r\n    const scrollY = window.scrollY;\r\n    const viewportHeight = window.innerHeight;\r\n    const stickyHeight = sticky.offsetHeight;\r\n\r\n    const bannerTop = banner.offsetTop;\r\n    const bannerBottom = bannerTop + banner.offsetHeight;\r\n\r\n    const stopTop = stopTarget.offsetTop;\r\n    const stopBottom = stopTop + stopTarget.offsetHeight;\r\n\r\n    const stickyBottomIfFixed = scrollY + viewportHeight - bottomOffset;\r\n\r\n    \/\/ 1. If still within banner \u2014 absolute positioning\r\n    if (scrollY + viewportHeight < bannerBottom + stickyHeight) {\r\n      sticky.style.position = \"absolute\";\r\n      sticky.style.bottom = `${bottomOffset}px`;\r\n      sticky.style.top = \"auto\";\r\n      sticky.style.right = `${rightOffset}px`;\r\n    }\r\n    \/\/ 2. Scrolling normally \u2014 fixed position\r\n    else {\r\n      sticky.style.position = \"fixed\";\r\n      sticky.style.bottom = `${bottomOffset}px`;\r\n      sticky.style.top = \"auto\";\r\n      sticky.style.right = `${rightOffset}px`;\r\n    }\r\n\r\n    \/\/ 3. Fade out as we near the bottom of stopTarget\r\n    const fadeOutStart = stopBottom - fadeOutDistance;\r\n    const fadeOutEnd = stopBottom;\r\n\r\n    if (stickyBottomIfFixed >= fadeOutStart) {\r\n      const progress = Math.min(1, (stickyBottomIfFixed - fadeOutStart) \/ (fadeOutEnd - fadeOutStart));\r\n      sticky.style.opacity = `${1 - progress}`;\r\n      sticky.style.pointerEvents = 'none'; \/\/ optional: disables clicks while fading\r\n    } else {\r\n      sticky.style.opacity = \"1\";\r\n      sticky.style.pointerEvents = 'auto';\r\n    }\r\n  }\r\n\r\n  window.addEventListener(\"scroll\", updatePosition);\r\n  window.addEventListener(\"resize\", updatePosition);\r\n  updatePosition(); \/\/ run on load\r\n});*\/\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n  if (window.innerWidth < 768) return; \/\/ <-- prevent running on mobile\r\n\r\n  const sticky = document.querySelector(\".fixed-b-corp\");\r\n  const banner = document.querySelector(\".banner-clouds\");\r\n  const stopTarget = document.querySelector(\".quick-links-homepage\");\r\n\r\n  if (!sticky || !banner || !stopTarget) return;\r\n\r\n  const bottomOffset = 20; \/\/ distance from bottom of screen when fixed\r\n  const rightOffset = 20;\r\n  const fadeOutDistance = 200; \/\/ fade-out starts this many px before stop section ends\r\n\r\n  function updatePosition() {\r\n    const scrollY = window.scrollY;\r\n    const viewportHeight = window.innerHeight;\r\n    const stickyHeight = sticky.offsetHeight;\r\n\r\n    const bannerTop = banner.offsetTop;\r\n    const bannerBottom = bannerTop + banner.offsetHeight;\r\n\r\n    const stopTop = stopTarget.offsetTop;\r\n    const stopBottom = stopTop + stopTarget.offsetHeight;\r\n\r\n    const stickyBottomIfFixed = scrollY + viewportHeight - bottomOffset;\r\n\r\n    \/\/ Case 1: Still within banner\r\n    if (scrollY + viewportHeight < bannerBottom + stickyHeight) {\r\n      sticky.style.position = \"absolute\";\r\n      sticky.style.bottom = `${bottomOffset}px`;\r\n      sticky.style.top = \"auto\";\r\n      sticky.style.right = `${rightOffset}px`;\r\n    }\r\n    \/\/ Case 2: Normal scroll\r\n    else {\r\n      sticky.style.position = \"fixed\";\r\n      sticky.style.bottom = `${bottomOffset}px`;\r\n      sticky.style.top = \"auto\";\r\n      sticky.style.right = `${rightOffset}px`;\r\n    }\r\n\r\n    \/\/ Case 3: Fade out near stop section\r\n    const fadeOutStart = stopBottom - fadeOutDistance;\r\n    const fadeOutEnd = stopBottom;\r\n\r\n    if (stickyBottomIfFixed >= fadeOutStart) {\r\n      const progress = Math.min(1, (stickyBottomIfFixed - fadeOutStart) \/ (fadeOutEnd - fadeOutStart));\r\n      sticky.style.opacity = `${1 - progress}`;\r\n      sticky.style.pointerEvents = 'none';\r\n    } else {\r\n      sticky.style.opacity = \"1\";\r\n      sticky.style.pointerEvents = 'auto';\r\n    }\r\n  }\r\n\r\n  window.addEventListener(\"scroll\", updatePosition);\r\n  window.addEventListener(\"resize\", updatePosition);\r\n  updatePosition(); \/\/ Run on load\r\n});\r\n\r\n\r\n<\/script>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Join Smart Air Build a future with us, creating innovative solutions for cleaner, healthier air Open Positions Product Development Engineer Design and develop advanced air purification technologies to enhance indoor air quality Apply Volunteer Opportunities Eager to help more people breathe clean air? Join our volunteer team today! We work &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"Jobs &#8211; Join Smart Air on a mission to fight air pollution!\" class=\"read-more button\" href=\"https:\/\/smartairfilters.com\/en\/jobs\/#more-39660\" aria-label=\"Read more about Jobs &#8211; Join Smart Air on a mission to fight air pollution!\">Read more<\/a><\/p>\n","protected":false},"author":11231,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"23549,7928,6797,26470,19043,11621","_relevanssi_noindex_reason":"","footnotes":""},"class_list":["post-39660","page","type-page","status-publish"],"acf":[],"_links":{"self":[{"href":"https:\/\/smartairfilters.com\/en\/wp-json\/wp\/v2\/pages\/39660","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/smartairfilters.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/smartairfilters.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/smartairfilters.com\/en\/wp-json\/wp\/v2\/users\/11231"}],"replies":[{"embeddable":true,"href":"https:\/\/smartairfilters.com\/en\/wp-json\/wp\/v2\/comments?post=39660"}],"version-history":[{"count":47,"href":"https:\/\/smartairfilters.com\/en\/wp-json\/wp\/v2\/pages\/39660\/revisions"}],"predecessor-version":[{"id":40005,"href":"https:\/\/smartairfilters.com\/en\/wp-json\/wp\/v2\/pages\/39660\/revisions\/40005"}],"wp:attachment":[{"href":"https:\/\/smartairfilters.com\/en\/wp-json\/wp\/v2\/media?parent=39660"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}