{"id":1376,"date":"2026-10-01T11:34:32","date_gmt":"2026-10-01T11:34:32","guid":{"rendered":"https:\/\/www.zoomtech.com.sg\/staging\/?page_id=1376"},"modified":"2026-10-17T19:09:04","modified_gmt":"2026-10-17T19:09:04","slug":"our-projects","status":"publish","type":"page","link":"https:\/\/www.zoomtech.com.sg\/staging\/our-projects\/","title":{"rendered":"Our Work"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1376\" class=\"elementor elementor-1376\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-zt_work_header elementor-widget elementor-widget-html\" data-id=\"zt_work_header\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ZOOM TECH CANONICAL 74PX FIXED VIEWPORT HEADER (SINGLE-ROW LOCK) -->\n<div id=\"zt-site-header-wrapper\" style=\"width: 100% !important; position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; z-index: 1000000 !important; background: #FFFFFF !important; background-color: #FFFFFF !important; border-bottom: 1px solid #E2E8F0 !important; box-shadow: 0 2px 10px rgba(15, 23, 42, 0.04) !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; display: block !important; font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;\">\n  <header id=\"zt-main-header\" style=\"max-width: 1440px !important; min-height: 74px !important; height: 74px !important; margin: 0 auto !important; padding: 0 2rem !important; display: flex !important; flex-direction: row !important; justify-content: space-between !important; align-items: center !important; box-sizing: border-box !important; flex-wrap: nowrap !important; white-space: nowrap !important;\">\n    \n    <!-- Left: Brand Master Logo -->\n    <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/home-new\/\" class=\"zt-header-logo\" style=\"text-decoration: none; display: flex; align-items: center; z-index: 1000001;\">\n      <img decoding=\"async\" src=\"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/07\/small-logo.png\" alt=\"Zoom Tech Pte Ltd\" style=\"height: 38px; width: auto; object-fit: contain; display: block;\" \/>\n    <\/a>\n\n    <!-- Center: Strict Single-Row Desktop Navigation -->\n    <nav class=\"zt-desktop-nav\" aria-label=\"Main Navigation\">\n      \n      <!-- 2. PRODUCTS (DROPDOWN TRIGGER ONLY - NO DIRECT LANDING PAGE) -->\n      <div class=\"zt-nav-dropdown-item\" id=\"nav-dropdown-products\">\n        <button type=\"button\" id=\"nav-link-products\" class=\"zt-nav-link zt-nav-parent-link\" aria-expanded=\"false\" aria-controls=\"zt-dropdown-products\" aria-label=\"Open Products menu\" style=\"background: none; border: none; cursor: pointer; padding: 0; font-family: inherit; font-size: inherit; font-weight: inherit; color: inherit; display: inline-flex; align-items: center; gap: 4px;\">\n          <span>Products<\/span>\n          <svg class=\"zt-chevron-icon\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"transition: transform 0.2s ease; margin-left: 2px;\">\n            <polyline points=\"6 9 12 15 18 9\"><\/polyline>\n          <\/svg>\n        <\/button>\n\n        <!-- Products 5-Category Master Mega Dropdown Panel -->\n        <div class=\"zt-dropdown-panel\" id=\"zt-dropdown-products\" style=\"max-width: 100vw; box-sizing: border-box;\">\n          <div style=\"max-width: 1440px; margin: 0 auto; padding: 0 2rem; box-sizing: border-box;\">\n            <div style=\"display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; width: 100%; box-sizing: border-box;\" class=\"zt-products-5cat-grid\">\n              \n              <!-- Cat 1: ZoomGate -->\n              <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/zoomgate\/\" class=\"zt-mega-item zt-mega-item-card\" style=\"text-decoration: none; display: flex; flex-direction: column; gap: 0.4rem; padding: 1.15rem 1rem; border-radius: 8px; border: 1px solid #E2E8F0; background: #FFFFFF; transition: all 0.2s ease; box-sizing: border-box;\">\n                <div style=\"font-size: 0.68rem; font-weight: 800; color: #059669; letter-spacing: 0.1em; text-transform: uppercase;\">HARDWARE<\/div>\n                <div style=\"font-size: 0.98rem; font-weight: 800; color: #0F172A;\">ZoomGate<\/div>\n                <div style=\"font-size: 0.78rem; color: #64748B; line-height: 1.45; white-space: normal;\">Pedestrian speed gates &amp; optical turnstiles.<\/div>\n              <\/a>\n\n              <!-- Cat 2: ZoomFace -->\n              <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/facial-recognition\/\" class=\"zt-mega-item zt-mega-item-card\" style=\"text-decoration: none; display: flex; flex-direction: column; gap: 0.4rem; padding: 1.15rem 1rem; border-radius: 8px; border: 1px solid #E2E8F0; background: #FFFFFF; transition: all 0.2s ease; box-sizing: border-box;\">\n                <div style=\"font-size: 0.68rem; font-weight: 800; color: #059669; letter-spacing: 0.1em; text-transform: uppercase;\">BIOMETRICS<\/div>\n                <div style=\"font-size: 0.98rem; font-weight: 800; color: #0F172A;\">ZoomFace<\/div>\n                <div style=\"font-size: 0.78rem; color: #64748B; line-height: 1.45; white-space: normal;\">AI facial recognition admission terminals.<\/div>\n              <\/a>\n\n              <!-- Cat 3: ZoomAccess -->\n              <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/access\/\" class=\"zt-mega-item zt-mega-item-card\" style=\"text-decoration: none; display: flex; flex-direction: column; gap: 0.4rem; padding: 1.15rem 1rem; border-radius: 8px; border: 1px solid #E2E8F0; background: #FFFFFF; transition: all 0.2s ease; box-sizing: border-box;\">\n                <div style=\"font-size: 0.68rem; font-weight: 800; color: #059669; letter-spacing: 0.1em; text-transform: uppercase;\">SOFTWARE<\/div>\n                <div style=\"font-size: 0.98rem; font-weight: 800; color: #0F172A;\">ZoomAccess<\/div>\n                <div style=\"font-size: 0.78rem; color: #64748B; line-height: 1.45; white-space: normal;\">Web access control &amp; lift dispatch sync.<\/div>\n              <\/a>\n\n              <!-- Cat 4: ZoomSurveillance -->\n              <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/surveillance\/\" class=\"zt-mega-item zt-mega-item-card\" style=\"text-decoration: none; display: flex; flex-direction: column; gap: 0.4rem; padding: 1.15rem 1rem; border-radius: 8px; border: 1px solid #E2E8F0; background: #FFFFFF; transition: all 0.2s ease; box-sizing: border-box;\">\n                <div style=\"font-size: 0.68rem; font-weight: 800; color: #059669; letter-spacing: 0.1em; text-transform: uppercase;\">ANALYTICS<\/div>\n                <div style=\"font-size: 0.98rem; font-weight: 800; color: #0F172A;\">ZoomSurveillance<\/div>\n                <div style=\"font-size: 0.78rem; color: #64748B; line-height: 1.45; white-space: normal;\">i-LIDS certified CMS video analytics.<\/div>\n              <\/a>\n\n              <!-- Cat 5: ZoomIOT -->\n              <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/solutions-new\/\" class=\"zt-mega-item zt-mega-item-card\" style=\"text-decoration: none; display: flex; flex-direction: column; gap: 0.4rem; padding: 1.15rem 1rem; border-radius: 8px; border: 1px solid #E2E8F0; background: #FFFFFF; transition: all 0.2s ease; box-sizing: border-box;\">\n                <div style=\"font-size: 0.68rem; font-weight: 800; color: #059669; letter-spacing: 0.1em; text-transform: uppercase;\">TELEMETRY<\/div>\n                <div style=\"font-size: 0.98rem; font-weight: 800; color: #0F172A;\">ZoomIOT<\/div>\n                <div style=\"font-size: 0.78rem; color: #64748B; line-height: 1.45; white-space: normal;\">Connected facility security telemetry.<\/div>\n              <\/a>\n\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- 3. ABOUT -->\n      <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/about-new\/\" id=\"nav-link-about\" class=\"zt-nav-link\">\n        <span>About<\/span>\n      <\/a>\n\n      <!-- 4. OUR WORK -->\n      <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/our-projects\/\" id=\"nav-link-work\" class=\"zt-nav-link\">\n        <span>Our Work<\/span>\n      <\/a>\n\n      <!-- 5. INSIGHTS -->\n      <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/pressroom\/\" id=\"nav-link-insights\" class=\"zt-nav-link\">\n        <span>Insights<\/span>\n      <\/a>\n\n    <\/nav>\n\n    <!-- Right: Header CTA + Mobile Hamburger Toggle -->\n    <div style=\"display: flex; align-items: center; gap: 12px; z-index: 1000001;\">\n      <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/contact-new\/\" id=\"nav-link-contact\" class=\"zt-header-cta-btn zt-header-desktop-cta\" style=\"text-decoration: none; font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; font-weight: 700; font-size: 0.85rem; padding: 0.6rem 1.35rem; border-radius: 9999px; transition: all 0.22s ease; white-space: nowrap;\">\n        Talk to us\n      <\/a>\n\n      <!-- Mobile Hamburger Button -->\n      <button id=\"zt-mobile-toggle\" onclick=\"window.openMobileDrawer && window.openMobileDrawer()\" type=\"button\" aria-label=\"Toggle navigation menu\" style=\"display: none; background: none; border: 1px solid #CBD5E1; border-radius: 6px; width: 42px; height: 42px; cursor: pointer; align-items: center; justify-content: center; padding: 0;\">\n        <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#0F172A\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\"><\/line><line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\"><\/line><line x1=\"3\" y1=\"18\" x2=\"21\" y2=\"18\"><\/line><\/svg>\n      <\/button>\n    <\/div>\n\n  <\/header>\n<\/div>\n\n<!-- FIXED HEADER VIEWPORT SPACER (74PX) -->\n<div id=\"zt-header-spacer\" style=\"height: 74px !important; width: 100% !important; display: block !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important;\"><\/div>\n\n<!-- FULL-SCREEN MOBILE DRAWER & OVERLAY -->\n<div id=\"zt-mobile-overlay\" onclick=\"window.closeMobileDrawer && window.closeMobileDrawer()\" style=\"display: none; position: fixed; inset: 0; width: 100vw; height: 100vh; background: rgba(15, 23, 42, 0.65); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); z-index: 10000008; opacity: 0; transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1);\"><\/div>\n\n<div id=\"zt-mobile-drawer\" style=\"position: fixed; top: 0; left: 0; right: 0; bottom: 0; inset: 0; width: 100vw; max-width: 100vw; height: 100vh; height: 100dvh; max-height: 100dvh; background: #FFFFFF; z-index: 10000010; transform: translateX(100%); transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1); display: none; flex-direction: column; justify-content: space-between; padding: 1.25rem 1.5rem max(1.25rem, env(safe-area-inset-bottom, 1.25rem)) 1.5rem; box-sizing: border-box; overflow-y: auto; -webkit-overflow-scrolling: touch; border-radius: 0; border: none; box-shadow: none;\">\n  <div style=\"display: flex; flex-direction: column; gap: 1.25rem; width: 100%; box-sizing: border-box;\">\n    \n    <!-- Drawer Header: Small Logo + X Button -->\n    <div style=\"display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #F1F5F9; padding-bottom: 1rem; width: 100%; box-sizing: border-box;\">\n      <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/home-new\/\" style=\"text-decoration: none; display: inline-flex; align-items: center; max-width: 180px;\">\n        <img decoding=\"async\" src=\"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/07\/small-logo.png\" alt=\"Zoom Tech\" style=\"height: 20px; max-height: 20px; max-width: 170px; width: auto; object-fit: contain; display: block;\" \/>\n      <\/a>\n      <button id=\"zt-mobile-close\" onclick=\"window.closeMobileDrawer && window.closeMobileDrawer()\" type=\"button\" aria-label=\"Close navigation menu\" style=\"background: #F1F5F9; border: none; border-radius: 8px; min-width: 42px; min-height: 42px; width: 42px; height: 42px; font-size: 1.6rem; color: #0F172A; cursor: pointer; display: flex; align-items: center; justify-content: center; line-height: 1; padding: 0;\">&times;<\/button>\n    <\/div>\n\n    <!-- Mobile Nav Links with Accordion -->\n    <div style=\"display: flex; flex-direction: column; gap: 0.35rem; width: 100%; box-sizing: border-box;\">\n      \n      <!-- 2. PRODUCTS ACCORDION -->\n      <div class=\"zt-drawer-acc-item\" id=\"zt-drawer-item-products\" style=\"border-radius: 6px; overflow: hidden; width: 100%;\">\n        <div class=\"zt-drawer-acc-header\" data-target=\"products\" style=\"display: flex; justify-content: space-between; align-items: center; padding: 0.75rem 0.5rem; cursor: pointer; border-radius: 6px; transition: background 0.15s ease; user-select: none;\">\n          <span style=\"font-size: 1.1rem; font-weight: 700; color: #0F172A;\">Products<\/span>\n          <span id=\"zt-drawer-icon-products\" class=\"zt-drawer-acc-icon\" style=\"font-size: 1.25rem; font-weight: 600; color: #64748B; width: 24px; text-align: right; user-select: none; line-height: 1;\">+<\/span>\n        <\/div>\n        <div id=\"zt-drawer-sub-products\" class=\"zt-drawer-submenu\" style=\"display: none; flex-direction: column; gap: 0.15rem; padding: 0.25rem 0 0.5rem 0.75rem; border-left: 2px solid #E2E8F0; margin-left: 0.5rem; margin-top: 0.15rem;\">\n          <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/zoomgate\/\" class=\"zt-mobile-sublink\" style=\"text-decoration: none; font-size: 0.95rem; font-weight: 600; color: #475569; padding: 0.5rem 0.5rem; border-radius: 4px; display: block;\">ZoomGate<\/a>\n          <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/facial-recognition\/\" class=\"zt-mobile-sublink\" style=\"text-decoration: none; font-size: 0.95rem; font-weight: 600; color: #475569; padding: 0.5rem 0.5rem; border-radius: 4px; display: block;\">ZoomFace<\/a>\n          <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/access\/\" class=\"zt-mobile-sublink\" style=\"text-decoration: none; font-size: 0.95rem; font-weight: 600; color: #475569; padding: 0.5rem 0.5rem; border-radius: 4px; display: block;\">ZoomAccess<\/a>\n          <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/surveillance\/\" class=\"zt-mobile-sublink\" style=\"text-decoration: none; font-size: 0.95rem; font-weight: 600; color: #475569; padding: 0.5rem 0.5rem; border-radius: 4px; display: block;\">ZoomSurveillance<\/a>\n          <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/solutions-new\/\" class=\"zt-mobile-sublink\" style=\"text-decoration: none; font-size: 0.95rem; font-weight: 600; color: #475569; padding: 0.5rem 0.5rem; border-radius: 4px; display: block;\">ZoomIOT<\/a>\n          <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/products-new\/\" class=\"zt-mobile-sublink\" style=\"text-decoration: none; font-size: 0.95rem; font-weight: 700; color: #059669; padding: 0.5rem 0.5rem; border-radius: 4px; display: block;\">View All Products &rarr;<\/a>\n        <\/div>\n      <\/div>\n\n      <!-- 3. ABOUT -->\n      <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/about-new\/\" class=\"zt-mobile-drawer-link\" style=\"text-decoration: none; font-size: 1.1rem; font-weight: 700; color: #0F172A; padding: 0.75rem 0.5rem; border-radius: 6px; transition: all 0.15s ease; display: block;\">About<\/a>\n\n      <!-- 4. OUR WORK -->\n      <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/our-projects\/\" class=\"zt-mobile-drawer-link\" style=\"text-decoration: none; font-size: 1.1rem; font-weight: 700; color: #0F172A; padding: 0.75rem 0.5rem; border-radius: 6px; transition: all 0.15s ease; display: block;\">Our Work<\/a>\n\n      <!-- 5. INSIGHTS -->\n      <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/pressroom\/\" class=\"zt-mobile-drawer-link\" style=\"text-decoration: none; font-size: 1.1rem; font-weight: 700; color: #0F172A; padding: 0.75rem 0.5rem; border-radius: 6px; transition: all 0.15s ease; display: block;\">Insights<\/a>\n\n      <!-- 6. TALK TO US \/ CONTACT -->\n      <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/contact-new\/\" class=\"zt-mobile-drawer-link\" style=\"text-decoration: none; font-size: 1.1rem; font-weight: 700; color: #059669; padding: 0.75rem 0.75rem; border-radius: 8px; transition: all 0.15s ease; display: block; background: #ECFDF5; margin-top: 0.25rem;\">Talk to us &rarr;<\/a>\n\n    <\/div>\n  <\/div>\n\n  <!-- Bottom Direct Quick Actions -->\n  <div style=\"display: flex; flex-direction: column; gap: 8px; width: 100%; padding-top: 1.25rem; border-top: 1px solid #F1F5F9; box-sizing: border-box;\">\n    <a href=\"tel:+6569041285\" style=\"text-decoration: none; display: flex; align-items: center; justify-content: center; gap: 8px; text-align: center; width: 100%; box-sizing: border-box; padding: 0.75rem 1rem; background-color: #0F172A; color: #FFFFFF; font-weight: 700; font-size: 0.88rem; border-radius: 8px;\">\n      <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#10B981\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"><\/path><\/svg>\n      <span style=\"white-space: nowrap;\">Call: +65 6904 1285<\/span>\n    <\/a>\n    <a href=\"https:\/\/wa.me\/6569041285?text=Hi%20Zoom%20Tech%2C%20I%27m%20interested%20in%20your%20access%20control%20solutions.%20I%27d%20like%20to%20know%20more.\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"text-decoration: none; display: flex; align-items: center; justify-content: center; gap: 8px; text-align: center; width: 100%; box-sizing: border-box; padding: 0.75rem 1rem; background-color: #25D366; color: #FFFFFF; font-weight: 700; font-size: 0.88rem; border-radius: 8px;\">\n      <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"#FFFFFF\"><path d=\"M.057 24l1.687-6.163c-1.041-1.804-1.588-3.849-1.587-5.946.003-6.556 5.338-11.891 11.893-11.891 3.181.001 6.167 1.24 8.413 3.488 2.245 2.248 3.481 5.236 3.48 8.414-.003 6.557-5.338 11.892-11.893 11.892-1.99-.001-3.951-.5-5.688-1.448l-6.305 1.654zm6.597-3.807c1.676.995 3.276 1.591 5.392 1.592 5.448 0 9.886-4.434 9.889-9.885.002-5.462-4.415-9.89-9.881-9.892-5.452 0-9.887 4.434-9.889 9.884-.001 2.225.651 3.891 1.746 5.634l-.999 3.648 3.742-.981zm11.387-5.464c-.074-.124-.272-.198-.57-.347-.297-.149-1.758-.868-2.031-.967-.272-.099-.47-.149-.669.149-.198.297-.768.967-.941 1.165-.173.198-.347.223-.644.074-.297-.149-1.255-.462-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.521.151-.172.2-.296.3-.495.099-.198.05-.372-.025-.521-.075-.148-.669-1.611-.916-2.206-.242-.579-.487-.501-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.263.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.719 2.006-1.413.248-.695.248-1.29.173-1.414z\"\/><\/svg>\n      <span style=\"white-space: nowrap;\">WhatsApp: +65 6904 1285<\/span>\n    <\/a>\n  <\/div>\n<\/div>\n\n<style>\n\/* ZERO GAP BETWEEN FIXED HEADER & HERO ACROSS ALL VIEWPORTS *\/\nhtml, body {\n  margin: 0 !important;\n  padding: 0 !important;\n}\n\n.elementor,\n.elementor-section,\n.elementor-column,\n.elementor-widget-wrap,\n.elementor-widget,\n.elementor-widget-html,\n.elementor-element {\n  margin: 0 !important;\n  padding: 0 !important;\n  --widgets-spacing: 0px 0px !important;\n}\n\n.elementor-widget:not(:last-child) {\n  margin-bottom: 0 !important;\n}\n\n.elementor-widget-html .elementor-widget-container {\n  margin: 0 !important;\n  padding: 0 !important;\n}\n\n\/* FIXED 100% VIEWPORT GLOBAL HEADER (Z-INDEX 1000000) *\/\n#zt-site-header-wrapper {\n  width: 100% !important;\n  position: fixed !important;\n  top: 0 !important;\n  left: 0 !important;\n  right: 0 !important;\n  z-index: 1000000 !important;\n  background: #FFFFFF !important;\n  background-color: #FFFFFF !important;\n  border-bottom: 1px solid #E2E8F0 !important;\n  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.04) !important;\n  margin: 0 !important;\n  padding: 0 !important;\n  box-sizing: border-box !important;\n  display: block !important;\n  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;\n}\n\n#zt-header-spacer {\n  height: 74px !important;\n  width: 100% !important;\n  display: block !important;\n  margin: 0 !important;\n  padding: 0 !important;\n  box-sizing: border-box !important;\n}\n\n#zt-main-header {\n  max-width: 1440px !important;\n  min-height: 74px !important;\n  height: 74px !important;\n  margin: 0 auto !important;\n  padding: 0 2rem !important;\n  display: flex !important;\n  flex-direction: row !important;\n  justify-content: space-between !important;\n  align-items: center !important;\n  box-sizing: border-box !important;\n  flex-wrap: nowrap !important;\n  white-space: nowrap !important;\n}\n\n\/* LOGO: STRICT INLINE ROW COMPONENT *\/\n.zt-header-logo {\n  flex-shrink: 0 !important;\n  display: inline-flex !important;\n  align-items: center !important;\n  margin: 0 !important;\n  padding: 0 !important;\n}\n\n.zt-header-logo img {\n  height: 34px !important;\n  max-height: 34px !important;\n  width: auto !important;\n  object-fit: contain !important;\n  display: block !important;\n}\n\n\/* NAVIGATION: STRICT NON-WRAPPING FLEX ROW *\/\n.zt-desktop-nav {\n  display: flex !important;\n  flex-direction: row !important;\n  align-items: center !important;\n  gap: 2rem !important;\n  height: 100% !important;\n  flex-wrap: nowrap !important;\n  white-space: nowrap !important;\n  flex-shrink: 0 !important;\n  margin: 0 !important;\n  padding: 0 !important;\n}\n\n.zt-nav-dropdown-item {\n  height: 74px !important;\n  display: inline-flex !important;\n  flex-direction: row !important;\n  align-items: center !important;\n  position: relative !important;\n  flex-shrink: 0 !important;\n  white-space: nowrap !important;\n}\n\n.zt-nav-link,\n.zt-nav-parent-link {\n  color: #1E293B !important;\n  text-decoration: none !important;\n  font-size: 0.95rem !important;\n  font-weight: 600 !important;\n  white-space: nowrap !important;\n  display: inline-flex !important;\n  align-items: center !important;\n  transition: color 0.18s ease !important;\n}\n\n.zt-nav-link:hover,\n.zt-nav-parent-link:hover {\n  color: #059669 !important;\n}\n\n.zt-nav-caret-btn {\n  color: #64748B !important;\n  background: none !important;\n  border: none !important;\n  cursor: pointer !important;\n  padding: 0.5rem 0.25rem 0.5rem 0.15rem !important;\n  display: inline-flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n}\n\n\/* RIGHT CTA BUTTON *\/\n.zt-header-cta-btn {\n  text-decoration: none !important;\n  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;\n  font-weight: 700 !important;\n  font-size: 0.85rem !important;\n  color: #FFFFFF !important;\n  background: #0F172A !important;\n  background-color: #0F172A !important;\n  padding: 0.6rem 1.35rem !important;\n  border-radius: 9999px !important;\n  display: inline-flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1) !important;\n  box-sizing: border-box !important;\n}\n\n.zt-header-cta-btn:hover {\n  background: #059669 !important;\n  background-color: #059669 !important;\n  color: #FFFFFF !important;\n}\n\n\/* ACTIVE PAGE STATE (4-6px Below Text Baseline) *\/\n.zt-nav-link.zt-active-route {\n  color: #059669 !important;\n  font-weight: 700 !important;\n  position: relative !important;\n}\n.zt-nav-link.zt-active-route::after {\n  content: '' !important;\n  position: absolute !important;\n  bottom: 2px !important;\n  left: 0 !important;\n  width: 100% !important;\n  height: 2px !important;\n  background-color: #059669 !important;\n  border-radius: 2px !important;\n}\n\n\/* FROZEN MEGA MENU INDEPENDENT STYLING (Z-INDEX 999999) *\/\n.zt-dropdown-panel {\n  max-width: 100vw !important;\n  overflow: hidden !important;\n  position: fixed !important;\n  top: 74px !important;\n  left: 0 !important;\n  right: 0 !important;\n  width: 100vw !important;\n  background: #FFFFFF !important;\n  background-color: #FFFFFF !important;\n  box-shadow: 0 20px 40px -8px rgba(15, 23, 42, 0.08) !important;\n  border-bottom: 1px solid #E2E8F0 !important;\n  padding: 2.25rem 0 2.5rem 0 !important;\n  box-sizing: border-box !important;\n  z-index: 999999 !important;\n  display: block !important;\n  opacity: 0 !important;\n  visibility: hidden !important;\n  pointer-events: none !important;\n  transform: translateY(-6px) !important;\n  transition: opacity 220ms ease, transform 260ms cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 220ms !important;\n  will-change: opacity, transform;\n}\n\n.zt-nav-dropdown-item:hover .zt-dropdown-panel,\n.zt-nav-dropdown-item:focus-within .zt-dropdown-panel,\n.zt-dropdown-panel.is-open {\n  opacity: 1 !important;\n  visibility: visible !important;\n  pointer-events: auto !important;\n  transform: translateY(0) !important;\n  transition: opacity 300ms cubic-bezier(0.16, 1, 0.3, 1), transform 300ms cubic-bezier(0.16, 1, 0.3, 1), visibility 0s linear 0s !important;\n}\n\n.zt-nav-dropdown-item:hover .zt-chevron-icon,\n.zt-nav-dropdown-item.is-open .zt-chevron-icon {\n  transform: rotate(180deg) !important;\n}\n\n.zt-dropdown-panel::before {\n  content: '';\n  position: absolute;\n  top: -20px;\n  left: 0;\n  width: 100%;\n  height: 20px;\n  background: transparent;\n  pointer-events: auto;\n}\n\n.zt-mega-item {\n  color: #1E293B !important;\n}\n.zt-mega-item:hover {\n  color: #059669 !important;\n}\n\n.zt-mega-item-card {\n  min-width: 0 !important;\n  box-sizing: border-box !important;\n  white-space: normal !important;\n}\n\n.zt-products-5cat-grid > * {\n  min-width: 0 !important;\n}\n\n.zt-mega-item-card:hover {\n  border-color: #059669 !important;\n  background-color: #FFFFFF !important;\n  box-shadow: 0 4px 16px rgba(5, 150, 105, 0.08) !important;\n}\n\n\/* SMALL DESKTOP \/ TABLET LANDSCAPE (1024px to 1140px) *\/\n@media (min-width: 1024px) and (max-width: 1140px) {\n  #zt-main-header {\n    padding: 0 1.25rem !important;\n  }\n  .zt-header-logo img {\n    height: 28px !important;\n    max-height: 28px !important;\n    max-width: 250px !important;\n  }\n  .zt-desktop-nav {\n    gap: 1.15rem !important;\n  }\n  .zt-nav-link,\n  .zt-nav-parent-link {\n    font-size: 0.88rem !important;\n  }\n  .zt-header-cta-btn {\n    padding: 0.5rem 1.15rem !important;\n    font-size: 0.82rem !important;\n  }\n}\n\n\/* DESKTOP ( >= 1024px ): DRAWER COMPLETELY INERT & HIDDEN *\/\n@media (min-width: 1024px) {\n  #zt-mobile-drawer,\n  #zt-mobile-overlay {\n    display: none !important;\n    pointer-events: none !important;\n  }\n}\n\n\/* TABLET & MOBILE ( <= 1023px ): FULL-SCREEN NAVIGATION SIDEBAR *\/\n@media (max-width: 1023px) {\n  .zt-desktop-nav {\n    display: none !important;\n  }\n  #zt-mobile-toggle {\n    display: flex !important;\n    width: 42px !important;\n    height: 42px !important;\n    min-width: 42px !important;\n    min-height: 42px !important;\n  }\n  #zt-main-header {\n    padding: 0 1.25rem !important;\n  }\n  #zt-mobile-overlay {\n    display: none;\n    position: fixed !important;\n    inset: 0 !important;\n    width: 100vw !important;\n    height: 100vh !important;\n    background: rgba(15, 23, 42, 0.65) !important;\n    backdrop-filter: blur(8px) !important;\n    -webkit-backdrop-filter: blur(8px) !important;\n    z-index: 10000008 !important;\n    opacity: 0;\n    pointer-events: none;\n    transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;\n  }\n  #zt-mobile-overlay.is-active {\n    display: block !important;\n    opacity: 1 !important;\n    pointer-events: auto !important;\n  }\n  #zt-mobile-drawer {\n    display: none;\n    position: fixed !important;\n    top: 0 !important;\n    left: 0 !important;\n    right: 0 !important;\n    bottom: 0 !important;\n    inset: 0 !important;\n    width: 100vw !important;\n    width: 100% !important;\n    max-width: 100vw !important;\n    height: 100vh !important;\n    height: 100dvh !important;\n    max-height: 100dvh !important;\n    background: #FFFFFF !important;\n    z-index: 10000010 !important;\n    transform: translateX(100%);\n    pointer-events: none;\n    transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1) !important;\n    box-shadow: none !important;\n    border-radius: 0 !important;\n    border: none !important;\n    flex-direction: column !important;\n    justify-content: space-between !important;\n    padding: 1.25rem 1.5rem max(1.25rem, env(safe-area-inset-bottom, 1.25rem)) 1.5rem !important;\n    box-sizing: border-box !important;\n    overflow-y: auto !important;\n    -webkit-overflow-scrolling: touch !important;\n  }\n  #zt-mobile-drawer.is-open {\n    display: flex !important;\n    transform: translateX(0) !important;\n    pointer-events: auto !important;\n  }\n}\n\n\/* MOBILE RESPONSIVE STYLES (<= 767px) *\/\n@media (max-width: 767px) {\n  #zt-main-header .zt-header-desktop-cta {\n    display: none !important;\n  }\n  #zt-main-header {\n    padding: 0 1rem !important;\n    height: 64px !important;\n    min-height: 64px !important;\n  }\n  #zt-header-spacer {\n    height: 64px !important;\n  }\n  .zt-header-logo {\n    max-width: calc(100% - 56px) !important;\n  }\n  .zt-header-logo img {\n    height: 24px !important;\n    max-height: 24px !important;\n    max-width: 220px !important;\n    width: auto !important;\n    object-fit: contain !important;\n  }\n  #zt-mobile-drawer {\n    padding: 1.25rem 1.25rem max(1.25rem, env(safe-area-inset-bottom, 1.25rem)) 1.25rem !important;\n  }\n}\n\n@media (max-width: 360px) {\n  .zt-header-logo img {\n    height: 20px !important;\n    max-height: 20px !important;\n    max-width: 200px !important;\n  }\n  #zt-mobile-drawer {\n    padding: 1rem 1rem max(1rem, env(safe-area-inset-bottom, 1rem)) 1rem !important;\n  }\n}\n\n\/* MOBILE DRAWER ACCORDION STYLES *\/\n.zt-drawer-acc-header {\n  -webkit-tap-highlight-color: transparent;\n}\n.zt-drawer-acc-header:hover,\n.zt-drawer-acc-header:active {\n  background-color: #F8FAFC !important;\n}\n.zt-drawer-acc-item.is-open .zt-drawer-submenu {\n  display: flex !important;\n}\n.zt-mobile-sublink {\n  transition: background-color 0.15s ease, color 0.15s ease;\n}\n.zt-mobile-sublink:hover,\n.zt-mobile-sublink:active {\n  background-color: #F1F5F9 !important;\n  color: #0F172A !important;\n}\n<\/style>\n\n<script>\n(function() {\n  \/\/ Mobile Drawer Accordion Toggle Function\n  window.ztToggleDrawerAccordion = function(targetKey, e) {\n    if (e) {\n      if (e.preventDefault) e.preventDefault();\n      if (e.stopPropagation) e.stopPropagation();\n    }\n    var targetItem = document.getElementById('zt-drawer-item-' + targetKey);\n    var targetSub = document.getElementById('zt-drawer-sub-' + targetKey);\n    var targetIcon = document.getElementById('zt-drawer-icon-' + targetKey);\n    if (!targetItem || !targetSub) return;\n\n    var isAlreadyOpen = targetItem.classList.contains('is-open') || targetSub.style.display === 'flex';\n\n    \/\/ Collapse all accordion submenus in drawer\n    var allItems = document.querySelectorAll('.zt-drawer-acc-item');\n    var allSubs = document.querySelectorAll('.zt-drawer-submenu');\n    var allIcons = document.querySelectorAll('.zt-drawer-acc-icon');\n    allItems.forEach(function(el) { el.classList.remove('is-open'); });\n    allSubs.forEach(function(el) { el.style.display = 'none'; });\n    allIcons.forEach(function(el) { el.textContent = '+'; });\n\n    if (!isAlreadyOpen) {\n      targetItem.classList.add('is-open');\n      targetSub.style.display = 'flex';\n      if (targetIcon) targetIcon.textContent = '\u2212';\n    }\n  };\n\n  function initHeaderSystem() {\n    if (window.__ztHeaderSystemInitDone) return;\n    window.__ztHeaderSystemInitDone = true;\n\n    var dropdownItems = document.querySelectorAll('.zt-nav-dropdown-item');\n    var closeTimer = null;\n    var isScrollLocked = false;\n    var scrollBlockedKeys = ['Space', ' ', 'PageDown', 'PageUp', 'ArrowDown', 'ArrowUp', 'Home', 'End'];\n\n    \/\/ 1. Active Route Highlight\n    var path = window.location.pathname.toLowerCase();\n    var navSolutions = document.getElementById('nav-link-solutions');\n    var navProducts = document.getElementById('nav-link-products');\n    var navAbout = document.getElementById('nav-link-about');\n    var navWork = document.getElementById('nav-link-work');\n    var navInsights = document.getElementById('nav-link-insights');\n\n    if (path.includes('solutions') || path.includes('facial-recognition') || path.includes('access')) {\n      if (navSolutions) navSolutions.classList.add('zt-active-route');\n    } else if (path.includes('products') || path.includes('swing-gate') || path.includes('speed-swing') || path.includes('max-turnstile') || path.includes('wing-flap') || path.includes('tri-tripod') || path.includes('compare') || path.includes('configurator') || path.includes('\/product\/') || path.includes('zoomgate')) {\n      if (navProducts) navProducts.classList.add('zt-active-route');\n    } else if (path.includes('about')) {\n      if (navAbout) navAbout.classList.add('zt-active-route');\n    } else if (path.includes('our-projects') || path.includes('projects')) {\n      if (navWork) navWork.classList.add('zt-active-route');\n    } else if (path.includes('pressroom') || path.includes('insights')) {\n      if (navInsights) navInsights.classList.add('zt-active-route');\n    }\n\n    \/\/ 2. Safe Scroll Lock Engine\n    function preventScrollEvents(e) {\n      var target = e.target;\n      var isInsidePanel = target && target.closest && (target.closest('.zt-dropdown-panel') || target.closest('#zt-mobile-drawer'));\n      \n      if (e.type === 'wheel' || e.type === 'touchmove') {\n        if (!isInsidePanel) {\n          e.preventDefault();\n        }\n      } else if (e.type === 'keydown') {\n        if (scrollBlockedKeys.indexOf(e.code) !== -1 || scrollBlockedKeys.indexOf(e.key) !== -1) {\n          var tag = target && target.tagName ? target.tagName.toLowerCase() : '';\n          if (tag !== 'input' && tag !== 'textarea' && !target.isContentEditable) {\n            e.preventDefault();\n          }\n        }\n      }\n    }\n\n    function lockDocumentScroll() {\n      if (isScrollLocked) return;\n      isScrollLocked = true;\n      document.documentElement.style.overflow = 'hidden';\n      document.body.style.overflow = 'hidden';\n      window.addEventListener('wheel', preventScrollEvents, { passive: false, capture: true });\n      window.addEventListener('touchmove', preventScrollEvents, { passive: false, capture: true });\n      window.addEventListener('keydown', preventScrollEvents, { capture: true });\n    }\n\n    function unlockDocumentScroll(force) {\n      if (!isScrollLocked) return;\n      if (!force) {\n        var anyOpen = false;\n        dropdownItems.forEach(function(item) {\n          var panel = item.querySelector('.zt-dropdown-panel');\n          if (panel && panel.classList.contains('is-open')) {\n            anyOpen = true;\n          }\n        });\n        var mobileDrawer = document.getElementById('zt-mobile-drawer');\n        if (mobileDrawer && mobileDrawer.classList.contains('is-open')) {\n          anyOpen = true;\n        }\n        if (anyOpen) return;\n      }\n      isScrollLocked = false;\n      window.removeEventListener('wheel', preventScrollEvents, { capture: true });\n      window.removeEventListener('touchmove', preventScrollEvents, { capture: true });\n      window.removeEventListener('keydown', preventScrollEvents, { capture: true });\n      document.documentElement.style.overflow = '';\n      document.body.style.overflow = '';\n    }\n\n    \/\/ 3. Dropdown Open \/ Close Handling\n    function openDropdown(item) {\n      if (closeTimer) {\n        clearTimeout(closeTimer);\n        closeTimer = null;\n      }\n\n      dropdownItems.forEach(function(other) {\n        if (other !== item) {\n          var otherPanel = other.querySelector('.zt-dropdown-panel');\n          var otherCaretBtn = other.querySelector('.zt-nav-caret-btn');\n          var otherChev = other.querySelector('.zt-chevron-icon');\n          if (otherPanel) otherPanel.classList.remove('is-open');\n          if (otherCaretBtn) otherCaretBtn.setAttribute('aria-expanded', 'false');\n          if (otherChev) otherChev.style.transform = 'rotate(0deg)';\n        }\n      });\n\n      var targetPanel = item.querySelector('.zt-dropdown-panel');\n      var targetCaretBtn = item.querySelector('.zt-nav-caret-btn');\n      var targetChev = item.querySelector('.zt-chevron-icon');\n      if (targetPanel) {\n        targetPanel.classList.add('is-open');\n        if (targetCaretBtn) targetCaretBtn.setAttribute('aria-expanded', 'true');\n        if (targetChev) targetChev.style.transform = 'rotate(180deg)';\n        lockDocumentScroll();\n      }\n    }\n\n    function scheduleClose(item) {\n      if (closeTimer) clearTimeout(closeTimer);\n      closeTimer = setTimeout(function() {\n        var panel = item.querySelector('.zt-dropdown-panel');\n        var caretBtn = item.querySelector('.zt-nav-caret-btn');\n        var chev = item.querySelector('.zt-chevron-icon');\n        if (panel) panel.classList.remove('is-open');\n        if (caretBtn) caretBtn.setAttribute('aria-expanded', 'false');\n        if (chev) chev.style.transform = 'rotate(0deg)';\n        unlockDocumentScroll(false);\n      }, 240);\n    }\n\n    dropdownItems.forEach(function(item) {\n      item.addEventListener('mouseenter', function() { openDropdown(item); });\n      item.addEventListener('mouseleave', function() { scheduleClose(item); });\n\n      var triggerBtn = item.querySelector('.zt-nav-parent-link') || item.querySelector('.zt-nav-caret-btn');\n      if (triggerBtn) {\n        triggerBtn.addEventListener('click', function(e) {\n          e.preventDefault();\n          e.stopPropagation();\n          var panel = item.querySelector('.zt-dropdown-panel');\n          var isOpen = panel && panel.classList.contains('is-open');\n          if (isOpen) {\n            scheduleClose(item);\n          } else {\n            openDropdown(item);\n          }\n        });\n      }\n\n      var panel = item.querySelector('.zt-dropdown-panel');\n      if (panel) {\n        panel.addEventListener('mouseenter', function() {\n          if (closeTimer) { clearTimeout(closeTimer); closeTimer = null; }\n          lockDocumentScroll();\n        });\n        panel.addEventListener('mouseleave', function() { scheduleClose(item); });\n      }\n    });\n\n    \/\/ Dismissal\n    document.addEventListener('click', function(e) {\n      var isInsideDropdown = e.target.closest('.zt-nav-dropdown-item') || e.target.closest('.zt-dropdown-panel');\n      if (!isInsideDropdown) {\n        if (closeTimer) clearTimeout(closeTimer);\n        dropdownItems.forEach(function(item) {\n          var panel = item.querySelector('.zt-dropdown-panel');\n          var caretBtn = item.querySelector('.zt-nav-caret-btn');\n          var chev = item.querySelector('.zt-chevron-icon');\n          if (panel) panel.classList.remove('is-open');\n          if (caretBtn) caretBtn.setAttribute('aria-expanded', 'false');\n          if (chev) chev.style.transform = 'rotate(0deg)';\n        });\n        unlockDocumentScroll(true);\n      }\n    });\n\n    document.addEventListener('keydown', function(e) {\n      if (e.key === 'Escape') {\n        if (closeTimer) clearTimeout(closeTimer);\n        dropdownItems.forEach(function(item) {\n          var panel = item.querySelector('.zt-dropdown-panel');\n          var caretBtn = item.querySelector('.zt-nav-caret-btn');\n          var chev = item.querySelector('.zt-chevron-icon');\n          if (panel) panel.classList.remove('is-open');\n          if (caretBtn) caretBtn.setAttribute('aria-expanded', 'false');\n          if (chev) chev.style.transform = 'rotate(0deg)';\n        });\n        if (window.closeMobileDrawer) window.closeMobileDrawer();\n        unlockDocumentScroll(true);\n      }\n    });\n\n    var megaLinks = document.querySelectorAll('.zt-dropdown-panel a');\n    megaLinks.forEach(function(link) {\n      link.addEventListener('click', function() {\n        dropdownItems.forEach(function(item) {\n          var panel = item.querySelector('.zt-dropdown-panel');\n          if (panel) panel.classList.remove('is-open');\n        });\n        unlockDocumentScroll(true);\n      });\n    });\n\n    window.addEventListener('beforeunload', function() {\n      unlockDocumentScroll(true);\n    });\n\n    \/\/ Mobile Navigation Controls\n    var mobileToggle = document.getElementById('zt-mobile-toggle');\n    var mobileDrawer = document.getElementById('zt-mobile-drawer');\n    var mobileOverlay = document.getElementById('zt-mobile-overlay');\n    var mobileClose = document.getElementById('zt-mobile-close');\n\n    \/\/ Drawer link auto-close\n    var drawerLinks = document.querySelectorAll('#zt-mobile-drawer a');\n    drawerLinks.forEach(function(link) {\n      link.addEventListener('click', function() {\n        if (window.closeMobileDrawer) window.closeMobileDrawer();\n      });\n    });\n\n    window.openMobileDrawer = function openMobileDrawer() {\n      var mobileDrawer = document.getElementById(\"zt-mobile-drawer\");\n      var mobileOverlay = document.getElementById(\"zt-mobile-overlay\");\n      if (mobileDrawer) {\n        mobileDrawer.style.display = 'flex';\n        mobileDrawer.style.visibility = 'visible';\n        mobileDrawer.style.pointerEvents = 'auto';\n        setTimeout(function() {\n          mobileDrawer.classList.add('is-open');\n          mobileDrawer.style.transform = 'translateX(0)';\n        }, 10);\n      }\n      if (mobileOverlay) {\n        mobileOverlay.style.display = 'block';\n        mobileOverlay.style.visibility = 'visible';\n        mobileOverlay.style.pointerEvents = 'auto';\n        setTimeout(function() {\n          mobileOverlay.classList.add('is-active');\n          mobileOverlay.style.opacity = '1';\n        }, 10);\n      }\n      lockDocumentScroll();\n    };\n\n    window.closeMobileDrawer = function closeMobileDrawer() {\n      var mobileDrawer = document.getElementById(\"zt-mobile-drawer\");\n      var mobileOverlay = document.getElementById(\"zt-mobile-overlay\");\n      if (mobileDrawer) {\n        mobileDrawer.classList.remove('is-open');\n        mobileDrawer.style.transform = 'translateX(100%)';\n        setTimeout(function() {\n          if (!mobileDrawer.classList.contains('is-open')) {\n            mobileDrawer.style.display = 'none';\n            mobileDrawer.style.visibility = 'hidden';\n            mobileDrawer.style.pointerEvents = 'none';\n          }\n        }, 300);\n      }\n      if (mobileOverlay) {\n        mobileOverlay.classList.remove('is-active');\n        mobileOverlay.style.opacity = '0';\n        setTimeout(function() {\n          if (!mobileOverlay.classList.contains('is-active')) {\n            mobileOverlay.style.display = 'none';\n            mobileOverlay.style.visibility = 'hidden';\n            mobileOverlay.style.pointerEvents = 'none';\n          }\n        }, 300);\n      }\n      unlockDocumentScroll(true);\n    };\n\n    if (mobileToggle) mobileToggle.addEventListener('click', window.openMobileDrawer);\n    if (mobileClose) mobileClose.addEventListener('click', window.closeMobileDrawer);\n    if (mobileOverlay) mobileOverlay.addEventListener('click', window.closeMobileDrawer);\n\n    \/\/ Mobile Drawer Interactions (Accordion & Link Handling)\n    if (mobileDrawer) {\n      mobileDrawer.addEventListener('click', function(e) {\n        var header = e.target.closest('.zt-drawer-acc-header');\n        if (header) {\n          e.preventDefault();\n          e.stopPropagation();\n          var targetKey = header.getAttribute('data-target');\n          if (window.ztToggleDrawerAccordion) {\n            window.ztToggleDrawerAccordion(targetKey, e);\n          }\n          return;\n        }\n\n        var link = e.target.closest('a');\n        if (link && window.closeMobileDrawer) {\n          window.closeMobileDrawer();\n        }\n      });\n    }\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initHeaderSystem);\n  } else {\n    initHeaderSystem();\n  }\n  window.addEventListener('load', initHeaderSystem);\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-zt_work_body elementor-widget elementor-widget-html\" data-id=\"zt_work_body\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- MASTER OUR WORK BODY (MATHEMATICALLY UNIFORM GAP 5-CARD CAROUSEL) -->\n<div id=\"zt-work-page\" style=\"width: 100%; background-color: #FFFFFF; font-family: 'Plus Jakarta Sans', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; box-sizing: border-box; margin: 0; padding: 0;\">\n\n  <!-- 01 \u2014 FULL-WIDTH EDITORIAL HERO -->\n  <div id=\"sec-work-hero\" style=\"width: 100%; min-height: 480px; position: relative; background-image: url('https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/07\/project-1.png'); background-size: cover; background-position: center; background-repeat: no-repeat; background-color: #0B1220; border-bottom: 1px solid #1E293B; box-sizing: border-box; margin: 0; padding: 0; display: flex; align-items: center; overflow: hidden;\">\n    \n    <!-- Directional Dark Overlay: Left Legibility -> Right Clear Architecture -->\n    <div style=\"position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7, 15, 30, 0.94) 0%, rgba(7, 15, 30, 0.86) 38%, rgba(7, 15, 30, 0.50) 65%, rgba(7, 15, 30, 0.20) 100%); pointer-events: none; z-index: 1;\"><\/div>\n\n    <!-- Centered Editorial Content Container (1440px Max Width) -->\n    <div style=\"position: relative; z-index: 2; max-width: 1440px; margin: 0 auto; padding: 4.5rem 2.5rem 4.5rem 2.5rem; width: 100%; box-sizing: border-box; display: flex; align-items: center;\" class=\"zt-work-hero-container\">\n      \n      <!-- Left Content Column -->\n      <div style=\"display: flex; flex-direction: column; gap: 1.25rem; max-width: 700px; width: 100%; box-sizing: border-box;\">\n        \n        <div style=\"display: inline-flex; align-items: center; gap: 8px; width: fit-content; font-size: 0.75rem; font-weight: 700; color: #10B981; letter-spacing: 0.14em; text-transform: uppercase;\">\n          <span style=\"width: 7px; height: 7px; border-radius: 50%; background-color: #10B981; display: inline-block;\"><\/span>\n          OUR WORK\n        <\/div>\n        \n        <h1 style=\"font-size: 3.4rem; font-weight: 800; color: #FFFFFF; letter-spacing: -0.035em; line-height: 1.08; margin: 0; text-shadow: 0 2px 14px rgba(0,0,0,0.4);\">\n          ENGINEERED FOR<br\/>REAL-WORLD ENVIRONMENTS.\n        <\/h1>\n        \n        <p style=\"font-size: 1.05rem; line-height: 1.68; color: #CBD5E1; margin: 0; font-weight: 400; text-shadow: 0 1px 4px rgba(0,0,0,0.3); max-width: 620px;\">\n          Explore selected Zoom Tech projects, installations, and access-control environments delivered across real facilities.\n        <\/p>\n\n      <\/div>\n\n    <\/div>\n  <\/div>\n\n  <!-- 02 \u2014 SELECTED PROJECTS: FULL-WIDTH 5-CARD CAROUSEL STAGE -->\n  <div id=\"sec-work-gallery\" style=\"width: 100%; padding: 5rem 0 6rem 0; background-color: #FFFFFF; box-sizing: border-box; border-bottom: 1px solid #E2E8F0; overflow: hidden;\">\n    \n    <!-- Centered Header & Category Selector Container -->\n    <div style=\"max-width: 1440px; margin: 0 auto; padding: 0 2rem; width: 100%; display: flex; flex-direction: column; gap: 2rem; box-sizing: border-box;\">\n      \n      <!-- Section Intro Header (Centered\/Editorial) -->\n      <div style=\"display: flex; flex-direction: column; gap: 8px; max-width: 800px; text-align: center; margin: 0 auto; align-items: center;\">\n        <span style=\"font-size: 0.75rem; font-weight: 700; color: #059669; letter-spacing: 0.14em; text-transform: uppercase;\">PROJECT ARCHIVE<\/span>\n        <h2 style=\"font-size: 2.5rem; font-weight: 800; color: #0F172A; letter-spacing: -0.025em; margin: 0; line-height: 1.15;\">SELECTED PROJECTS<\/h2>\n        <p style=\"font-size: 1.05rem; color: #64748B; margin: 0; line-height: 1.6; font-weight: 400; max-width: 680px;\">Explore physical access-control barrier installations across corporate headquarters, aviation terminals, and high-security infrastructure.<\/p>\n      <\/div>\n\n      <!-- Centered Horizontal Category Filter Navigation Bar -->\n      <div style=\"width: 100%; max-width: 720px; margin: 0 auto 0.5rem auto; border-bottom: 1px solid #E2E8F0; box-sizing: border-box; display: flex; justify-content: center;\">\n        <div id=\"zt-work-filter-bar\" style=\"display: flex; align-items: center; justify-content: center; gap: 32px; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 0px; box-sizing: border-box;\">\n          <button type=\"button\" class=\"zt-work-tab-btn zt-tab-active\" data-filter=\"all\" onclick=\"window.filterOurWork('all', this)\" aria-label=\"Show All Projects\">\n            <span>ALL<\/span>\n          <\/button>\n          <button type=\"button\" class=\"zt-work-tab-btn\" data-filter=\"swing\" onclick=\"window.filterOurWork('swing', this)\" aria-label=\"Filter by SWING Gate System\">\n            <span>SWING<\/span>\n          <\/button>\n          <button type=\"button\" class=\"zt-work-tab-btn\" data-filter=\"speed\" onclick=\"window.filterOurWork('speed', this)\" aria-label=\"Filter by SPEED Swing Gate System\">\n            <span>SPEED<\/span>\n          <\/button>\n          <button type=\"button\" class=\"zt-work-tab-btn\" data-filter=\"max\" onclick=\"window.filterOurWork('max', this)\" aria-label=\"Filter by MAX Full Height Turnstile\">\n            <span>MAX<\/span>\n          <\/button>\n          <button type=\"button\" class=\"zt-work-tab-btn\" data-filter=\"wing\" onclick=\"window.filterOurWork('wing', this)\" aria-label=\"Filter by WING Flap Gate System\">\n            <span>WING<\/span>\n          <\/button>\n          <button type=\"button\" class=\"zt-work-tab-btn\" data-filter=\"tri\" onclick=\"window.filterOurWork('tri', this)\" aria-label=\"Filter by TRI Tripod System\">\n            <span>TRI<\/span>\n          <\/button>\n        <\/div>\n      <\/div>\n\n    <\/div>\n\n    <!-- FULL-WIDTH CAROUSEL VIEWPORT (BREAKOUT TO 100VW EDGE-TO-EDGE) -->\n    <div id=\"zt-fullwidth-carousel-wrap\" style=\"width: 100vw; max-width: 100vw; position: relative; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; overflow: hidden; padding: 25px 0; box-sizing: border-box;\">\n      \n      <div class=\"zt-carousel-viewport\" id=\"zt-carousel-viewport\" style=\"width: 100%; position: relative; height: 500px; overflow: hidden; display: flex; align-items: center; justify-content: center; box-sizing: border-box;\">\n        \n        <!-- Navigation Buttons (Positioned near screen outer edges) -->\n        <button type=\"button\" id=\"zt-carousel-prev\" aria-label=\"Previous Project\" style=\"position: absolute; left: 28px; top: 50%; transform: translateY(-50%); z-index: 35; width: 50px; height: 50px; border-radius: 50%; background: #FFFFFF; border: 1px solid #CBD5E1; color: #0F172A; font-size: 1.6rem; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 6px 20px rgba(15,23,42,0.14); transition: all 0.2s ease; line-height: 1;\">\n          &#8249;\n        <\/button>\n        \n        <button type=\"button\" id=\"zt-carousel-next\" aria-label=\"Next Project\" style=\"position: absolute; right: 28px; top: 50%; transform: translateY(-50%); z-index: 35; width: 50px; height: 50px; border-radius: 50%; background: #FFFFFF; border: 1px solid #CBD5E1; color: #0F172A; font-size: 1.6rem; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 6px 20px rgba(15,23,42,0.14); transition: all 0.2s ease; line-height: 1;\">\n          &#8250;\n        <\/button>\n\n        <!-- Carousel Track: 5-Card Spread with Mathematically Identical Edge-to-Edge Gaps -->\n        <div id=\"zt-carousel-track\" style=\"width: 100%; height: 100%; position: relative; display: flex; align-items: center; justify-content: center;\">\n          <!-- Dynamically populated once per filter, transformed smoothly on slide -->\n        <\/div>\n\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n\n  <!-- 03 \u2014 FINAL CTA (ALIGNED TO CONTACT NEW) -->\n  <div id=\"sec-work-cta\" style=\"width: 100%; padding: 5.5rem 0 6rem 0; background-color: #F8FAFC; color: #0F172A; box-sizing: border-box; text-align: center; border-bottom: 1px solid #E2E8F0; position: relative; overflow: hidden;\">\n    \n    <!-- Subtle Watermark -->\n    <div style=\"position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 8rem; font-weight: 900; color: rgba(15, 23, 42, 0.015); letter-spacing: 0.14em; pointer-events: none; user-select: none; white-space: nowrap; z-index: 1;\">\n      ZOOM TECH\n    <\/div>\n\n    <!-- Content Container -->\n    <div style=\"position: relative; z-index: 2; max-width: 1440px; margin: 0 auto; padding: 0 2.5rem; width: 100%; box-sizing: border-box; display: flex; flex-direction: column; align-items: center;\">\n      <div style=\"max-width: 760px; display: flex; flex-direction: column; align-items: center; gap: 1.15rem;\">\n        \n        <div style=\"display: inline-flex; align-items: center; gap: 8px; font-size: 0.75rem; font-weight: 700; color: #059669; letter-spacing: 0.14em; text-transform: uppercase;\">\n          <span style=\"width: 7px; height: 7px; border-radius: 50%; background-color: #059669; display: inline-block;\"><\/span>\n          START YOUR PROJECT SPECIFICATION\n        <\/div>\n        \n        <h2 style=\"font-size: 2.45rem; font-weight: 800; color: #0F172A; letter-spacing: -0.025em; margin: 0; line-height: 1.15;\">\n          PLANNING YOUR NEXT ACCESS-CONTROL PROJECT?\n        <\/h2>\n        \n        <p style=\"font-size: 1.05rem; line-height: 1.68; color: #475569; margin: 0; max-width: 620px; font-weight: 400;\">\n          Speak directly with our Singapore engineering team for technical CAD drawings, site access assessments, and tailored project quotations.\n        <\/p>\n        \n        <div style=\"margin-top: 0.5rem;\">\n          <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/contact-new\/\" style=\"text-decoration: none; font-family: 'Plus Jakarta Sans', sans-serif; background-color: #059669; color: #FFFFFF; font-weight: 700; font-size: 0.95rem; padding: 0.85rem 2.25rem; border-radius: 9999px; transition: all 0.22s ease; display: inline-flex; align-items: center; gap: 6px; box-shadow: 0 4px 14px rgba(5, 150, 105, 0.22);\">\n            <span>Talk to us<\/span> &rarr;\n          <\/a>\n        <\/div>\n\n      <\/div>\n    <\/div>\n  <\/div>\n\n<\/div>\n\n<!-- LIGHTBOX MODAL & INTERACTIVE JAVASCRIPT -->\n<div id=\"ztLightboxModal\" style=\"display: none; position: fixed; inset: 0; z-index: 9999999; background: rgba(15, 23, 42, 0.94); backdrop-filter: blur(10px); align-items: center; justify-content: center; padding: 1.5rem; box-sizing: border-box;\">\n  <button id=\"ztLbCloseBtn\" type=\"button\" aria-label=\"Close Lightbox\" style=\"position: absolute; top: 20px; right: 24px; background: rgba(255, 255, 255, 0.12); border: 1px solid rgba(255, 255, 255, 0.25); color: #FFFFFF; font-size: 1.5rem; width: 44px; height: 44px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; z-index: 10;\">\u2715<\/button>\n  <button id=\"ztLbPrevBtn\" type=\"button\" aria-label=\"Previous Image\" style=\"position: absolute; left: 24px; top: 50%; transform: translateY(-50%); background: rgba(255, 255, 255, 0.12); border: 1px solid rgba(255, 255, 255, 0.25); color: #FFFFFF; font-size: 2.25rem; width: 52px; height: 52px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; line-height: 1; z-index: 10;\">\u2039<\/button>\n  <button id=\"ztLbNextBtn\" type=\"button\" aria-label=\"Next Image\" style=\"position: absolute; right: 24px; top: 50%; transform: translateY(-50%); background: rgba(255, 255, 255, 0.12); border: 1px solid rgba(255, 255, 255, 0.25); color: #FFFFFF; font-size: 2.25rem; width: 52px; height: 52px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; line-height: 1; z-index: 10;\">\u203a<\/button>\n  \n  <div id=\"ztLbContentBox\" style=\"max-width: 960px; width: 100%; max-height: 90vh; display: flex; flex-direction: column; align-items: center; gap: 12px; position: relative;\">\n    <div style=\"width: 100%; max-height: 68vh; display: flex; align-items: center; justify-content: center;\">\n      <img decoding=\"async\" id=\"ztLbImage\" src=\"\" alt=\"Project Photo\" style=\"max-width: 100%; max-height: 68vh; object-fit: contain; border-radius: 12px; box-shadow: 0 25px 60px rgba(0,0,0,0.6);\" \/>\n    <\/div>\n    <div style=\"display: flex; flex-direction: column; align-items: center; gap: 4px; width: 100%;\">\n      <div id=\"ztLbCaption\" style=\"font-family: 'Plus Jakarta Sans', sans-serif; font-size: 1.15rem; font-weight: 700; color: #FFFFFF; text-align: center; text-shadow: 0 2px 4px rgba(0,0,0,0.5);\"><\/div>\n      <div id=\"ztLbCounter\" style=\"font-family: 'Plus Jakarta Sans', sans-serif; font-size: 0.85rem; font-weight: 600; color: #10B981; letter-spacing: 0.05em;\"><\/div>\n    <\/div>\n    <!-- Thumbnail Navigation Strip -->\n    <div id=\"ztLbThumbs\" style=\"display: flex; flex-direction: row; gap: 8px; max-width: 100%; overflow-x: auto; padding: 4px 8px; justify-content: center; align-items: center;\"><\/div>\n  <\/div>\n<\/div>\n\n<style>\n#zt-work-page {\n  font-family: 'Plus Jakarta Sans', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;\n}\n\n\/* Filter Bar Tab Navigation (Centered) *\/\n.zt-work-tab-btn {\n  background: transparent !important;\n  border: none !important;\n  color: #64748B !important;\n  font-family: 'Plus Jakarta Sans', 'Inter', sans-serif !important;\n  font-size: 0.92rem !important;\n  font-weight: 700 !important;\n  letter-spacing: 0.08em !important;\n  padding: 10px 6px 14px 6px !important;\n  margin: 0 !important;\n  position: relative !important;\n  cursor: pointer !important;\n  transition: color 0.2s ease !important;\n  display: inline-flex !important;\n  align-items: center !important;\n  white-space: nowrap !important;\n}\n\n.zt-work-tab-btn:hover {\n  color: #059669 !important;\n}\n\n.zt-work-tab-btn.zt-tab-active {\n  color: #0F172A !important;\n  font-weight: 800 !important;\n}\n\n.zt-work-tab-btn::after {\n  content: '' !important;\n  position: absolute !important;\n  bottom: -1px !important;\n  left: 0 !important;\n  right: 0 !important;\n  height: 2.5px !important;\n  background-color: transparent !important;\n  transition: background-color 0.22s ease !important;\n}\n\n.zt-work-tab-btn.zt-tab-active::after {\n  background-color: #059669 !important;\n}\n\n\n\/* HIDE ANY REDUNDANT SLIDER CONTROLS INSIDE INDIVIDUAL CARDS *\/\n.zt-carousel-card button,\n.zt-carousel-card .slick-arrow,\n.zt-carousel-card .carousel-control {\n  display: none !important;\n}\n\n#zt-work-filter-bar::-webkit-scrollbar {\n  display: none;\n}\n\n\/* Exact Identical Base Card Dimensions for ALL 16 Project Cards *\/\n.zt-carousel-card {\n  position: absolute !important;\n  top: 50% !important;\n  left: 50% !important;\n  width: 340px !important;\n  height: 380px !important;\n  min-height: 380px !important;\n  max-height: 380px !important;\n  background: #FFFFFF !important;\n  border: 1px solid #E2E8F0 !important;\n  border-radius: 12px !important;\n  overflow: hidden !important;\n  display: flex !important;\n  flex-direction: column !important;\n  justify-content: space-between !important;\n  box-sizing: border-box !important;\n  cursor: pointer !important;\n  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.6s ease, box-shadow 0.6s ease, border-color 0.6s ease !important;\n  user-select: none !important;\n  margin: 0 !important;\n  padding: 0 !important;\n}\n\n.zt-carousel-card.is-center {\n  border-color: #059669 !important;\n  box-shadow: 0 18px 44px rgba(15, 23, 42, 0.12) !important;\n}\n\n.zt-carousel-card.is-center h3 {\n  color: #0F172A !important;\n}\n\n#zt-carousel-prev:hover, #zt-carousel-next:hover {\n  background-color: #059669 !important;\n  color: #FFFFFF !important;\n  border-color: #059669 !important;\n}\n\n\/* TABLET RESPONSIVE (768px - 1023px) *\/\n@media (min-width: 768px) and (max-width: 1023px) {\n  #sec-work-hero {\n    min-height: 420px !important;\n  }\n  #sec-work-hero .zt-work-hero-container {\n    padding: 4rem 2rem !important;\n  }\n  #sec-work-hero h1 {\n    font-size: 2.85rem !important;\n    line-height: 1.15 !important;\n  }\n  .zt-carousel-card {\n    width: 300px !important;\n    height: 360px !important;\n    min-height: 360px !important;\n    max-height: 360px !important;\n  }\n  .zt-carousel-viewport {\n    height: 470px !important;\n  }\n  #zt-carousel-prev {\n    left: 16px !important;\n    width: 46px !important;\n    height: 46px !important;\n  }\n  #zt-carousel-next {\n    right: 16px !important;\n    width: 46px !important;\n    height: 46px !important;\n  }\n  #sec-work-gallery {\n    padding: 4.5rem 0 5rem 0 !important;\n  }\n  #sec-work-cta {\n    padding: 4.5rem 2rem 5rem 2rem !important;\n  }\n}\n\n\/* MOBILE RESPONSIVE (<= 767px) *\/\n@media (max-width: 767px) {\n  #sec-work-hero {\n    min-height: 360px !important;\n    background-position: center !important;\n  }\n  #sec-work-hero .zt-work-hero-container {\n    padding: 3.5rem 1.25rem !important;\n  }\n  #sec-work-hero h1 {\n    font-size: clamp(2rem, 7.5vw, 2.5rem) !important;\n    line-height: 1.15 !important;\n    word-break: break-word !important;\n  }\n  #sec-work-hero p {\n    font-size: 0.98rem !important;\n    line-height: 1.6 !important;\n  }\n  #sec-work-gallery {\n    padding: 3.5rem 0 4.5rem 0 !important;\n  }\n  #sec-work-gallery h2 {\n    font-size: 1.85rem !important;\n  }\n  #zt-work-filter-bar {\n    gap: 16px !important;\n    justify-content: flex-start !important;\n    padding: 0 0.5rem 4px 0.5rem !important;\n  }\n  .zt-work-tab-btn {\n    font-size: 0.85rem !important;\n    padding: 8px 4px 10px 4px !important;\n  }\n  .zt-carousel-card {\n    width: 275px !important;\n    height: 340px !important;\n    min-height: 340px !important;\n    max-height: 340px !important;\n  }\n  .zt-carousel-viewport {\n    height: 440px !important;\n  }\n  #zt-carousel-prev {\n    left: 8px !important;\n    width: 40px !important;\n    height: 40px !important;\n    font-size: 1.3rem !important;\n  }\n  #zt-carousel-next {\n    right: 8px !important;\n    width: 40px !important;\n    height: 40px !important;\n    font-size: 1.3rem !important;\n  }\n  #sec-work-cta {\n    padding: 3.5rem 1.25rem 4rem 1.25rem !important;\n  }\n  #sec-work-cta h2 {\n    font-size: 1.85rem !important;\n  }\n  #ztLightboxModal {\n    padding: 1rem !important;\n  }\n  #ztLbCloseBtn {\n    top: 12px !important;\n    right: 12px !important;\n    width: 38px !important;\n    height: 38px !important;\n    font-size: 1.25rem !important;\n  }\n  #ztLbPrevBtn, #ztLbNextBtn {\n    width: 40px !important;\n    height: 40px !important;\n    font-size: 1.6rem !important;\n  }\n  #ztLbPrevBtn { left: 8px !important; }\n  #ztLbNextBtn { right: 8px !important; }\n}\n\n\/* NARROW MOBILE (<= 360px, e.g. 320px) *\/\n@media (max-width: 360px) {\n  #sec-work-hero .zt-work-hero-container {\n    padding: 3rem 1rem !important;\n  }\n  #sec-work-hero h1 {\n    font-size: 1.85rem !important;\n  }\n  .zt-carousel-card {\n    width: 245px !important;\n    height: 320px !important;\n    min-height: 320px !important;\n    max-height: 320px !important;\n  }\n  .zt-carousel-viewport {\n    height: 400px !important;\n  }\n  #zt-carousel-prev {\n    left: 4px !important;\n    width: 36px !important;\n    height: 36px !important;\n  }\n  #zt-carousel-next {\n    right: 4px !important;\n    width: 36px !important;\n    height: 36px !important;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .zt-carousel-card, .zt-work-tab-btn {\n    transition: none !important;\n  }\n}\n<\/style>\n\n<script>\n(function() {\n  var projectsData = {\n  \"1\": {\n    \"title\": \"CPF Tampines\",\n    \"category\": \"SWING & SPEED GATE SYSTEM\",\n    \"tags\": \"swing speed\",\n    \"cover\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/CPF-Tampines-.jpg\",\n    \"images\": [\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/CPF-Tampines-.jpg\"\n    ]\n  },\n  \"2\": {\n    \"title\": \"CapitaLand Honeywell HQ\",\n    \"category\": \"SWING & SPEED GATE SYSTEM\",\n    \"tags\": \"swing speed\",\n    \"cover\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/CapitaLand-Honeywell-HQ-.jpg\",\n    \"images\": [\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/CapitaLand-Honeywell-HQ-.jpg\"\n    ]\n  },\n  \"3\": {\n    \"title\": \"Singapore Bird Paradise\",\n    \"category\": \"SWING GATE SYSTEM\",\n    \"tags\": \"swing\",\n    \"cover\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Singapore-Bird-Paradise-1.jpg\",\n    \"images\": [\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Singapore-Bird-Paradise-1.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Singapore-Bird-Paradise-Park-3.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/123-1.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Singapore-Bird-Paradise-Park-1-1.jpg\"\n    ]\n  },\n  \"4\": {\n    \"title\": \"Spirit Plot\",\n    \"category\": \"SPEED SWING GATE SYSTEM\",\n    \"tags\": \"speed swing\",\n    \"cover\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Spirit-Plot-1-1.jpg\",\n    \"images\": [\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Spirit-Plot-1-1.jpg\"\n    ]\n  },\n  \"5\": {\n    \"title\": \"SIA Anniversary Gala Dinner\",\n    \"category\": \"TRI TRIPOD SYSTEM\",\n    \"tags\": \"tri\",\n    \"cover\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/SIA-Anniversary-Gala-Dinner-1.jpg\",\n    \"images\": [\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/SIA-Anniversary-Gala-Dinner-1.jpg\"\n    ]\n  },\n  \"6\": {\n    \"title\": \"Shell Bukom\",\n    \"category\": \"MAX FULL HEIGHT TURNSTILE\",\n    \"tags\": \"max\",\n    \"cover\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/image1.jpg\",\n    \"images\": [\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/image1.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/image0.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/image1-1.jpg\"\n    ]\n  },\n  \"7\": {\n    \"title\": \"Jabil Changi Plant\",\n    \"category\": \"TRI TRIPOD SYSTEM\",\n    \"tags\": \"tri\",\n    \"cover\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Jabil_feature.jpg\",\n    \"images\": [\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Jabil_feature.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/JabilChangiPlant_Tripod_TP-MD-01_2018-04-201.jpeg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/JabilChangiPlant_Tripod_TP-MD-01_2018-04-202.jpeg\"\n    ]\n  },\n  \"8\": {\n    \"title\": \"Aetos Building\",\n    \"category\": \"SWING GATE SYSTEM\",\n    \"tags\": \"swing\",\n    \"cover\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Aetos_feature.jpg\",\n    \"images\": [\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Aetos_feature.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Aetos_Building_SwingGateBarrier_-ASW-AR-02_2019-02-26.jpeg\"\n    ]\n  },\n  \"9\": {\n    \"title\": \"Chubb IRAS\",\n    \"category\": \"SWING GATE SYSTEM\",\n    \"tags\": \"swing\",\n    \"cover\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/IRAS_feature-1.jpg\",\n    \"images\": [\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/IRAS_feature-1.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Chubb_Iras_SwingGateBarrier_ASW-AR-042017-09-08.jpeg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Chubb_Iras_SwingGateBarrier_ASW-AR-042017-09-087.jpeg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Chubb_Iras_SwingGateBarrier_ASW-AR-042017-09-086.jpeg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Chubb_Iras_SwingGateBarrier_ASW-AR-042017-09-085.jpeg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Chubb_Iras_SwingGateBarrier_ASW-AR-042017-09-084.jpeg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Chubb_Iras_SwingGateBarrier_ASW-AR-042017-09-083.jpeg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Chubb_Iras_SwingGateBarrier_ASW-AR-042017-09-082.jpeg\"\n    ]\n  },\n  \"10\": {\n    \"title\": \"Ademco SPH & MOM\",\n    \"category\": \"MAX FULL HEIGHT TURNSTILE\",\n    \"tags\": \"max\",\n    \"cover\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Ademco_feature-1.jpg\",\n    \"images\": [\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Ademco_feature-1.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Ademco-SPH_DoubleFullHeightTurnstile_FT-FM-120_2019-01-18.jpeg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Ademco_MOM_-FullHeightPanelBarrier_-ZG-AHF-AR-1000_2019-03-09.jpeg\"\n    ]\n  },\n  \"11\": {\n    \"title\": \"Sri Lanka Project\",\n    \"category\": \"SPEED SWING GATE SYSTEM\",\n    \"tags\": \"speed swing\",\n    \"cover\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/srilanka_feature.jpg\",\n    \"images\": [\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/srilanka_feature.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/04.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/02.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/01.jpg\"\n    ]\n  },\n  \"12\": {\n    \"title\": \"Seletar Airport\",\n    \"category\": \"SPEED & WING FLAP BARRIER\",\n    \"tags\": \"speed wing swing\",\n    \"cover\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/07\/seletar-airport.jpg\",\n    \"images\": [\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/07\/seletar-airport.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/07\/seletar-airport.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/IMG-20180629-WA0044-1.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/IMG-20180629-WA0029.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/IMG-20180629-WA0032.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/IMG-20180629-WA0041.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/IMG-20180629-WA0042.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/IMG-20180629-WA0043.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/Seletar-Ariport-2-.jpg\"\n    ]\n  },\n  \"13\": {\n    \"title\": \"Continental Building\",\n    \"category\": \"WING FLAP GATE SYSTEM\",\n    \"tags\": \"wing\",\n    \"cover\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/07\/continental-flap.jpg\",\n    \"images\": [\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/07\/continental-flap.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/Continental.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/Continental1.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/DSC_1102.jpg\"\n    ]\n  },\n  \"14\": {\n    \"title\": \"CapitaLand Commercial Building\",\n    \"category\": \"SWING GATE SYSTEM\",\n    \"tags\": \"swing speed\",\n    \"cover\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/07\/battery.jpg\",\n    \"images\": [\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/07\/battery.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/6-Battery-Road-1-1.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/6-Battery-Road-2-1.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/6-Battery-Road1-1.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/DSC_0232-1.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/DSC_0242-1.jpg\"\n    ]\n  },\n  \"15\": {\n    \"title\": \"GSK Building\",\n    \"category\": \"SWING GATE SYSTEM\",\n    \"tags\": \"swing\",\n    \"cover\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/gsk-1.jpg\",\n    \"images\": [\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/gsk-1.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/IMG-20180628-WA0042-1.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/GSK.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/GSK2-1.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/GSK3-1.jpg\",\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/IMG-20180628-WA0041-1.jpg\"\n    ]\n  },\n  \"16\": {\n    \"title\": \"Qatar Financial Center\",\n    \"category\": \"SPEED SWING GATE SYSTEM\",\n    \"tags\": \"speed swing\",\n    \"cover\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/07\/qatar.jpg\",\n    \"images\": [\n      \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/07\/qatar.jpg\"\n    ]\n  }\n};\n  var rawProjects = [{\"index\": 1, \"title\": \"CPF Tampines\", \"category_label\": \"SWING & SPEED GATE SYSTEM\", \"filter_tags\": \"swing speed\", \"staging_images\": [{\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/CPF-Tampines-.jpg\"}]}, {\"index\": 2, \"title\": \"CapitaLand Honeywell HQ\", \"category_label\": \"SWING & SPEED GATE SYSTEM\", \"filter_tags\": \"swing speed\", \"staging_images\": [{\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/CapitaLand-Honeywell-HQ-.jpg\"}]}, {\"index\": 3, \"title\": \"Singapore Bird Paradise\", \"category_label\": \"SWING GATE SYSTEM\", \"filter_tags\": \"swing\", \"staging_images\": [{\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Singapore-Bird-Paradise-1.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Singapore-Bird-Paradise-Park-3.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/123-1.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Singapore-Bird-Paradise-Park-1-1.jpg\"}]}, {\"index\": 4, \"title\": \"Spirit Plot\", \"category_label\": \"SPEED SWING GATE SYSTEM\", \"filter_tags\": \"speed swing\", \"staging_images\": [{\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Spirit-Plot-1-1.jpg\"}]}, {\"index\": 5, \"title\": \"SIA Anniversary Gala Dinner\", \"category_label\": \"TRI TRIPOD SYSTEM\", \"filter_tags\": \"tri\", \"staging_images\": [{\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/SIA-Anniversary-Gala-Dinner-1.jpg\"}]}, {\"index\": 6, \"title\": \"Shell Bukom\", \"category_label\": \"MAX FULL HEIGHT TURNSTILE\", \"filter_tags\": \"max\", \"staging_images\": [{\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/image1.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/image0.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/image1-1.jpg\"}]}, {\"index\": 7, \"title\": \"Jabil Changi Plant\", \"category_label\": \"TRI TRIPOD SYSTEM\", \"filter_tags\": \"tri\", \"staging_images\": [{\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Jabil_feature.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/JabilChangiPlant_Tripod_TP-MD-01_2018-04-201.jpeg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/JabilChangiPlant_Tripod_TP-MD-01_2018-04-202.jpeg\"}]}, {\"index\": 8, \"title\": \"Aetos Building\", \"category_label\": \"SWING GATE SYSTEM\", \"filter_tags\": \"swing\", \"staging_images\": [{\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Aetos_feature.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Aetos_Building_SwingGateBarrier_-ASW-AR-02_2019-02-26.jpeg\"}]}, {\"index\": 9, \"title\": \"Chubb IRAS\", \"category_label\": \"SWING GATE SYSTEM\", \"filter_tags\": \"swing\", \"staging_images\": [{\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/IRAS_feature-1.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Chubb_Iras_SwingGateBarrier_ASW-AR-042017-09-08.jpeg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Chubb_Iras_SwingGateBarrier_ASW-AR-042017-09-087.jpeg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Chubb_Iras_SwingGateBarrier_ASW-AR-042017-09-086.jpeg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Chubb_Iras_SwingGateBarrier_ASW-AR-042017-09-085.jpeg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Chubb_Iras_SwingGateBarrier_ASW-AR-042017-09-084.jpeg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Chubb_Iras_SwingGateBarrier_ASW-AR-042017-09-083.jpeg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Chubb_Iras_SwingGateBarrier_ASW-AR-042017-09-082.jpeg\"}]}, {\"index\": 10, \"title\": \"Ademco SPH & MOM\", \"category_label\": \"MAX FULL HEIGHT TURNSTILE\", \"filter_tags\": \"max\", \"staging_images\": [{\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Ademco_feature-1.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Ademco-SPH_DoubleFullHeightTurnstile_FT-FM-120_2019-01-18.jpeg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/Ademco_MOM_-FullHeightPanelBarrier_-ZG-AHF-AR-1000_2019-03-09.jpeg\"}]}, {\"index\": 11, \"title\": \"Sri Lanka Project\", \"category_label\": \"SPEED SWING GATE SYSTEM\", \"filter_tags\": \"speed swing\", \"staging_images\": [{\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/srilanka_feature.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/04.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/02.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/01.jpg\"}]}, {\"index\": 12, \"title\": \"Seletar Airport\", \"category_label\": \"SPEED & WING FLAP BARRIER\", \"filter_tags\": \"speed wing swing\", \"staging_images\": [{\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/07\/seletar-airport.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/07\/seletar-airport.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/IMG-20180629-WA0044-1.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/IMG-20180629-WA0029.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/IMG-20180629-WA0032.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/IMG-20180629-WA0041.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/IMG-20180629-WA0042.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/IMG-20180629-WA0043.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/Seletar-Ariport-2-.jpg\"}]}, {\"index\": 13, \"title\": \"Continental Building\", \"category_label\": \"WING FLAP GATE SYSTEM\", \"filter_tags\": \"wing\", \"staging_images\": [{\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/07\/continental-flap.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/Continental.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/Continental1.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/DSC_1102.jpg\"}]}, {\"index\": 14, \"title\": \"CapitaLand Commercial Building\", \"category_label\": \"SWING GATE SYSTEM\", \"filter_tags\": \"swing speed\", \"staging_images\": [{\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/07\/battery.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/6-Battery-Road-1-1.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/6-Battery-Road-2-1.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/6-Battery-Road1-1.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/DSC_0232-1.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/DSC_0242-1.jpg\"}]}, {\"index\": 15, \"title\": \"GSK Building\", \"category_label\": \"SWING GATE SYSTEM\", \"filter_tags\": \"swing\", \"staging_images\": [{\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/gsk-1.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/IMG-20180628-WA0042-1.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/GSK.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/GSK2-1.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/GSK3-1.jpg\"}, {\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/09\/IMG-20180628-WA0041-1.jpg\"}]}, {\"index\": 16, \"title\": \"Qatar Financial Center\", \"category_label\": \"SPEED SWING GATE SYSTEM\", \"filter_tags\": \"speed swing\", \"staging_images\": [{\"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2018\/07\/qatar.jpg\"}]}];\n\n  var currentFilter = 'all';\n  var activeIndex = 0;\n  var currentFilteredProjects = rawProjects.slice();\n  var cardElements = [];\n  var autoplayTimer = null;\n  var isHovered = false;\n\n  var trackEl = document.getElementById('zt-carousel-track');\n  var prevBtn = document.getElementById('zt-carousel-prev');\n  var nextBtn = document.getElementById('zt-carousel-next');\n  var viewportEl = document.getElementById('zt-carousel-viewport');\n\n  \/\/ Filter projects by category\n  function getFilteredList(cat) {\n    if (!cat || cat === 'all') return rawProjects.slice();\n    var target = cat.toLowerCase();\n    return rawProjects.filter(function(p) {\n      var tags = (p.filter_tags || '').toLowerCase().split(' ');\n      return tags.indexOf(target) !== -1;\n    });\n  }\n\n  \/\/ Build card elements with strictly identical base structure and dimensions\n  function buildCards() {\n    if (!trackEl) return;\n    trackEl.innerHTML = '';\n    cardElements = [];\n    var len = currentFilteredProjects.length;\n    if (len === 0) return;\n\n    currentFilteredProjects.forEach(function(p, i) {\n      var card = document.createElement('div');\n      card.className = 'zt-carousel-card';\n      card.setAttribute('data-index', i);\n      card.setAttribute('data-proj-key', p.index);\n\n      var coverImg = p.staging_images[0].url;\n      card.innerHTML = \n        '<div class=\"zt-card-img-wrap\" style=\"width: 100%; height: 210px; min-height: 210px; max-height: 210px; background: #0F172A; overflow: hidden; position: relative; margin: 0; padding: 0; display: block; flex-shrink: 0;\">' +\n          '<img decoding=\"async\" src=\"' + coverImg + '\" alt=\"' + p.title + '\" style=\"width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; border: none; margin: 0; padding: 0;\" \/>' +\n        '<\/div>' +\n        '<div class=\"zt-card-content-wrap\" style=\"padding: 18px 22px 20px 22px; display: flex; flex-direction: column; justify-content: space-between; box-sizing: border-box; background: #FFFFFF; flex-grow: 1; gap: 10px;\">' +\n          '<div style=\"display: flex; flex-direction: column; gap: 4px;\">' +\n            '<span style=\"font-size: 0.72rem; font-weight: 800; color: #059669; letter-spacing: 0.1em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; line-height: 1.2;\">' + p.category_label + '<\/span>' +\n            '<h3 style=\"font-size: 1.15rem; font-weight: 800; color: #0F172A; margin: 0; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.6em;\">' + p.title + '<\/h3>' +\n          '<\/div>' +\n          '<div style=\"display: inline-flex; align-items: center; gap: 6px; font-size: 0.88rem; font-weight: 700; color: #059669; line-height: 1;\">' +\n            '<span>View Gallery<\/span> &rarr;' +\n          '<\/div>' +\n        '<\/div>';\n\n      card.onclick = function(e) {\n        var diff = i - activeIndex;\n        if (diff > len \/ 2) diff -= len;\n        if (diff < -len \/ 2) diff += len;\n\n        if (diff !== 0) {\n          e.preventDefault();\n          goToIndex(i);\n          resetAutoplay();\n        } else {\n          window.openProjectLightbox(String(p.index));\n        }\n      };\n\n      trackEl.appendChild(card);\n      cardElements.push(card);\n    });\n\n    updateCardPositions();\n  }\n\n  \/\/ Update card transform\/scale\/opacity WITH EXACT UNIFORM VISUAL GAPS\n  function updateCardPositions() {\n    var len = currentFilteredProjects.length;\n    if (len === 0 || cardElements.length !== len) return;\n\n    var vw = window.innerWidth;\n    var isMobile = vw <= 768;\n\n    \/\/ Define uniform geometry parameters\n    var isNarrowMobile = vw <= 360;\n    var baseW = isNarrowMobile ? 245 : (isMobile ? 275 : (vw <= 1200 ? 300 : 340));\n    var scale0 = isMobile ? 1.04 : 1.06;\n    var scale1 = isMobile ? 0.86 : 0.90;\n    var scale2 = isMobile ? 0.74 : 0.80;\n\n    var w0 = baseW * scale0;\n    var w1 = baseW * scale1;\n    var w2 = baseW * scale2;\n\n    \/\/ Constant gap between all adjacent card edges\n    var G = isMobile ? 16 : Math.round(Math.min(36, Math.max(22, vw * 0.02)));\n\n    \/\/ Calculate exact center-to-center offsets so that edge-to-edge gap is ALWAYS G\n    var x0 = 0;\n    var x1 = (w0 \/ 2) + G + (w1 \/ 2);\n    var x2 = x1 + (w1 \/ 2) + G + (w2 \/ 2);\n\n    cardElements.forEach(function(card, i) {\n      var diff = i - activeIndex;\n      if (diff > len \/ 2) diff -= len;\n      if (diff < -len \/ 2) diff += len;\n\n      var scale = 1.0;\n      var opacity = 1.0;\n      var zIndex = 10;\n      var translateX = 0;\n\n      if (diff === 0) {\n        \/\/ CENTER CARD\n        scale = scale0;\n        opacity = 1.0;\n        zIndex = 25;\n        translateX = 0;\n        card.classList.add('is-center');\n      } else if (diff === 1) {\n        \/\/ IMMEDIATE RIGHT CARD (GAP = G)\n        scale = scale1;\n        opacity = 0.80;\n        zIndex = 15;\n        translateX = x1;\n        card.classList.remove('is-center');\n      } else if (diff === -1) {\n        \/\/ IMMEDIATE LEFT CARD (GAP = G)\n        scale = scale1;\n        opacity = 0.80;\n        zIndex = 15;\n        translateX = -x1;\n        card.classList.remove('is-center');\n      } else if (diff === 2) {\n        \/\/ FAR RIGHT CARD (GAP = G FROM RIGHT CARD)\n        scale = scale2;\n        opacity = 0.60;\n        zIndex = 8;\n        translateX = x2;\n        card.classList.remove('is-center');\n      } else if (diff === -2) {\n        \/\/ FAR LEFT CARD (GAP = G FROM LEFT CARD)\n        scale = scale2;\n        opacity = 0.60;\n        zIndex = 8;\n        translateX = -x2;\n        card.classList.remove('is-center');\n      } else {\n        \/\/ Beyond 5 cards (Hidden)\n        scale = 0.6;\n        opacity = 0;\n        zIndex = 1;\n        translateX = diff > 0 ? (x2 + 300) : (-x2 - 300);\n        card.classList.remove('is-center');\n      }\n\n      card.style.transform = 'translate(-50%, -50%) translateX(' + translateX + 'px) scale(' + scale + ')';\n      card.style.opacity = opacity;\n      card.style.zIndex = zIndex;\n      card.style.pointerEvents = opacity > 0.1 ? 'auto' : 'none';\n    });\n  }\n\n  function goToIndex(idx) {\n    var len = currentFilteredProjects.length;\n    if (len === 0) return;\n    activeIndex = (idx + len) % len;\n    updateCardPositions();\n  }\n\n  function nextSlide() {\n    goToIndex(activeIndex + 1);\n  }\n\n  function prevSlide() {\n    goToIndex(activeIndex - 1);\n  }\n\n  \/\/ Autoplay functionality (4.5s Interval)\n  function startAutoplay() {\n    if (autoplayTimer) clearInterval(autoplayTimer);\n    autoplayTimer = setInterval(function() {\n      if (!isHovered && currentFilteredProjects.length > 1) {\n        nextSlide();\n      }\n    }, 4500);\n  }\n\n  function resetAutoplay() {\n    if (autoplayTimer) clearInterval(autoplayTimer);\n    startAutoplay();\n  }\n\n  if (viewportEl) {\n    viewportEl.addEventListener('mouseenter', function() { isHovered = true; });\n    viewportEl.addEventListener('mouseleave', function() { isHovered = false; });\n  }\n\n  if (prevBtn) {\n    prevBtn.onclick = function() {\n      prevSlide();\n      resetAutoplay();\n    };\n  }\n\n  if (nextBtn) {\n    nextBtn.onclick = function() {\n      nextSlide();\n      resetAutoplay();\n    };\n  }\n\n  \/\/ Filter Button Handler\n  window.filterOurWork = function(cat, btnEl) {\n    var buttons = document.querySelectorAll('.zt-work-tab-btn');\n    buttons.forEach(function(b) { b.classList.remove('zt-tab-active'); });\n    if (btnEl) btnEl.classList.add('zt-tab-active');\n\n    currentFilter = cat || 'all';\n    currentFilteredProjects = getFilteredList(currentFilter);\n    activeIndex = 0;\n    buildCards();\n    resetAutoplay();\n  };\n\n  \/\/ Touch Swipe on Carousel\n  var touchStartX = 0;\n  var touchEndX = 0;\n  if (viewportEl) {\n    viewportEl.addEventListener('touchstart', function(e) {\n      touchStartX = e.changedTouches[0].screenX;\n    }, false);\n    viewportEl.addEventListener('touchend', function(e) {\n      touchEndX = e.changedTouches[0].screenX;\n      if (touchEndX < touchStartX - 40) {\n        nextSlide();\n        resetAutoplay();\n      }\n      if (touchEndX > touchStartX + 40) {\n        prevSlide();\n        resetAutoplay();\n      }\n    }, false);\n  }\n\n  \/\/ Lightbox Modal System\n  var modal, lbImg, lbCaption, lbCounter, lbThumbs, closeBtn, lbPrevBtn, lbNextBtn;\n  var currentLbKey = \"1\";\n  var currentLbImages = [];\n  var currentLbIndex = 0;\n\n  function initLightbox() {\n    modal = document.getElementById('ztLightboxModal');\n    lbImg = document.getElementById('ztLbImage');\n    lbCaption = document.getElementById('ztLbCaption');\n    lbCounter = document.getElementById('ztLbCounter');\n    lbThumbs = document.getElementById('ztLbThumbs');\n    closeBtn = document.getElementById('ztLbCloseBtn');\n    lbPrevBtn = document.getElementById('ztLbPrevBtn');\n    lbNextBtn = document.getElementById('ztLbNextBtn');\n\n    function renderLbImage() {\n      if (!currentLbImages || currentLbImages.length === 0) return;\n      var curSrc = currentLbImages[currentLbIndex];\n      lbImg.src = curSrc;\n      lbCaption.textContent = projectsData[currentLbKey].title;\n      lbCounter.textContent = (currentLbIndex + 1) + \" \/ \" + currentLbImages.length;\n\n      if (currentLbImages.length <= 1) {\n        lbPrevBtn.style.display = 'none';\n        lbNextBtn.style.display = 'none';\n        lbThumbs.style.display = 'none';\n      } else {\n        lbPrevBtn.style.display = 'flex';\n        lbNextBtn.style.display = 'flex';\n        lbThumbs.style.display = 'flex';\n      }\n\n      if (lbThumbs) {\n        Array.from(lbThumbs.children).forEach(function(thumbEl, tIdx) {\n          if (tIdx === currentLbIndex) {\n            thumbEl.style.border = '2px solid #10B981';\n            thumbEl.style.opacity = '1';\n          } else {\n            thumbEl.style.border = '2px solid transparent';\n            thumbEl.style.opacity = '0.5';\n          }\n        });\n      }\n    }\n\n    function buildLbThumbs() {\n      if (!lbThumbs) return;\n      lbThumbs.innerHTML = '';\n      if (currentLbImages.length <= 1) return;\n\n      currentLbImages.forEach(function(src, tIdx) {\n        var tImg = document.createElement('img');\n        tImg.src = src;\n        tImg.style.cssText = 'width: 48px; height: 36px; object-fit: cover; border-radius: 6px; cursor: pointer; transition: all 0.2s ease;';\n        tImg.onclick = function(e) {\n          e.stopPropagation();\n          currentLbIndex = tIdx;\n          renderLbImage();\n        };\n        lbThumbs.appendChild(tImg);\n      });\n    }\n\n    window.openProjectLightbox = function(projKey) {\n      if (!projectsData[projKey]) return;\n      currentLbKey = String(projKey);\n      currentLbImages = projectsData[currentLbKey].images;\n      currentLbIndex = 0;\n      buildLbThumbs();\n      renderLbImage();\n      modal.style.display = 'flex';\n      document.body.style.overflow = 'hidden';\n    };\n\n    function closeLightbox() {\n      if (!modal) return;\n      modal.style.display = 'none';\n      document.body.style.overflow = 'auto';\n    }\n\n    function showPrevLb() {\n      if (currentLbImages.length <= 1) return;\n      currentLbIndex = (currentLbIndex - 1 + currentLbImages.length) % currentLbImages.length;\n      renderLbImage();\n    }\n\n    function showNextLb() {\n      if (currentLbImages.length <= 1) return;\n      currentLbIndex = (currentLbIndex + 1) % currentLbImages.length;\n      renderLbImage();\n    }\n\n    if (closeBtn) closeBtn.onclick = closeLightbox;\n    if (lbPrevBtn) lbPrevBtn.onclick = function(e) { e.stopPropagation(); showPrevLb(); };\n    if (lbNextBtn) lbNextBtn.onclick = function(e) { e.stopPropagation(); showNextLb(); };\n\n    if (modal) {\n      modal.onclick = function(e) {\n        if (e.target === modal) closeLightbox();\n      };\n    }\n\n    document.addEventListener('keydown', function(e) {\n      if (modal && modal.style.display === 'flex') {\n        if (e.key === 'Escape') closeLightbox();\n        if (e.key === 'ArrowLeft') showPrevLb();\n        if (e.key === 'ArrowRight') showNextLb();\n      } else {\n        if (e.key === 'ArrowLeft') {\n          prevSlide();\n          resetAutoplay();\n        }\n        if (e.key === 'ArrowRight') {\n          nextSlide();\n          resetAutoplay();\n        }\n      }\n    });\n  }\n\n  \/\/ Resize handler for responsive carousel spacing\n  window.addEventListener('resize', function() {\n    updateCardPositions();\n  });\n\n  \/\/ Init\n  var isWorkInitialized = false;\n  function init() {\n    if (isWorkInitialized) return;\n    isWorkInitialized = true;\n    trackEl = document.getElementById('zt-carousel-track');\n    prevBtn = document.getElementById('zt-carousel-prev');\n    nextBtn = document.getElementById('zt-carousel-next');\n    viewportEl = document.getElementById('zt-carousel-viewport');\n\n    buildCards();\n    initLightbox();\n    startAutoplay();\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n  window.addEventListener('load', init);\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-zt_work_footer elementor-widget elementor-widget-html\" data-id=\"zt_work_footer\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ZOOM TECH PREMIUM ARCHITECTURAL GLOBAL FOOTER (100VW FULL-BLEED) -->\n<div id=\"zt-footer-breakout-wrapper\" style=\"width: 100vw; max-width: 100vw; position: relative; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; background-color: #0F172A; box-sizing: border-box; overflow: hidden;\">\n  <footer id=\"sec-global-footer\" style=\"width: 100%; padding: 4.25rem 0 2.5rem 0; background-color: #0F172A; color: #FFFFFF; box-sizing: border-box; font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;\">\n    <div style=\"max-width: 1440px; margin: 0 auto; padding: 0 2.5rem; width: 100%; box-sizing: border-box; display: flex; flex-direction: column; gap: 3rem;\">\n      \n      <!-- Controlled Master Grid -->\n      <div class=\"zt-footer-master-grid\" style=\"display: grid; width: 100%; box-sizing: border-box; align-items: start;\">\n        \n        <!-- Column 1: Brand -->\n        <div class=\"zt-footer-col zt-ftr-brand-col\" style=\"display: flex; flex-direction: column; gap: 1.15rem;\">\n          <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/home-new\/\" style=\"text-decoration: none; display: inline-block;\">\n            <img decoding=\"async\" src=\"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/10\/zoomtech-logo-color-white-wordmark.png\" alt=\"Zoom Tech Pte Ltd\" style=\"height: 34px; width: auto; object-fit: contain; display: block;\" \/>\n          <\/a>\n          <p style=\"font-size: 0.88rem; color: #94A3B8; line-height: 1.65; margin: 0; max-width: 290px;\">\n            Smart access and security solutions, engineered in Singapore.\n          <\/p>\n          <div style=\"font-size: 0.78rem; font-weight: 700; color: #10B981; letter-spacing: 0.04em;\">\n            Headquarters &amp; Manufacturing: Singapore\n          <\/div>\n        <\/div>\n\n        <!-- Column 2: Solutions (Accordion on Mobile) -->\n        <div class=\"zt-footer-col zt-footer-acc-col\" id=\"zt-ftr-col-solutions\">\n          <button type=\"button\" class=\"zt-ftr-acc-toggle\" id=\"zt-ftr-toggle-solutions\" aria-expanded=\"false\" aria-controls=\"zt-ftr-sub-solutions\">\n            <span class=\"zt-ftr-heading\">SOLUTIONS<\/span>\n            <svg class=\"zt-ftr-chevron\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n              <polyline points=\"6 9 12 15 18 9\"><\/polyline>\n            <\/svg>\n          <\/button>\n          <div class=\"zt-ftr-acc-content\" id=\"zt-ftr-sub-solutions\">\n            <div class=\"zt-ftr-acc-inner\">\n              <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/facial-recognition\/\" class=\"zt-footer-link\">Facial Recognition<\/a>\n              <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/access\/\" class=\"zt-footer-link\">Access Control<\/a>\n              <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/solutions-new\/\" class=\"zt-footer-link\">View All Solutions &rarr;<\/a>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <!-- Column 3: Products (Accordion on Mobile) -->\n        <div class=\"zt-footer-col zt-footer-acc-col\" id=\"zt-ftr-col-products\">\n          <button type=\"button\" class=\"zt-ftr-acc-toggle\" id=\"zt-ftr-toggle-products\" aria-expanded=\"false\" aria-controls=\"zt-ftr-sub-products\">\n            <span class=\"zt-ftr-heading\">PRODUCTS<\/span>\n            <svg class=\"zt-ftr-chevron\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n              <polyline points=\"6 9 12 15 18 9\"><\/polyline>\n            <\/svg>\n          <\/button>\n          <div class=\"zt-ftr-acc-content\" id=\"zt-ftr-sub-products\">\n            <div class=\"zt-ftr-acc-inner\">\n              <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/zoomgate\/\" class=\"zt-footer-link\">ZoomGate<\/a>\n              <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/facial-recognition\/\" class=\"zt-footer-link\">ZoomFace<\/a>\n              <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/access\/\" class=\"zt-footer-link\">ZoomAccess<\/a>\n              <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/surveillance\/\" class=\"zt-footer-link\">ZoomSurveillance<\/a>\n              <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/solutions-new\/\" class=\"zt-footer-link\">ZoomIOT<\/a>\n              <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/products-new\/\" class=\"zt-footer-link\">View All Products &rarr;<\/a>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <!-- Column 4: Company (Accordion on Mobile) -->\n        <div class=\"zt-footer-col zt-footer-acc-col\" id=\"zt-ftr-col-company\">\n          <button type=\"button\" class=\"zt-ftr-acc-toggle\" id=\"zt-ftr-toggle-company\" aria-expanded=\"false\" aria-controls=\"zt-ftr-sub-company\">\n            <span class=\"zt-ftr-heading\">COMPANY<\/span>\n            <svg class=\"zt-ftr-chevron\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n              <polyline points=\"6 9 12 15 18 9\"><\/polyline>\n            <\/svg>\n          <\/button>\n          <div class=\"zt-ftr-acc-content\" id=\"zt-ftr-sub-company\">\n            <div class=\"zt-ftr-acc-inner\">\n              <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/about-new\/\" class=\"zt-footer-link\">About Us<\/a>\n              <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/our-projects\/\" class=\"zt-footer-link\">Our Work<\/a>\n              <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/pressroom\/\" class=\"zt-footer-link\">Insights &amp; Pressroom<\/a>\n              <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/contact-new\/\" class=\"zt-footer-link\">Contact<\/a>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <!-- Column 5: Connect -->\n        <div class=\"zt-footer-col zt-ftr-connect-col\">\n          <div class=\"zt-ftr-connect-group zt-ftr-connect-addr\">\n            <div class=\"zt-ftr-heading\">CONNECT<\/div>\n            <div style=\"font-size: 0.88rem; color: #94A3B8; line-height: 1.5;\">68 Senoko Road<br\/>Singapore 758128<\/div>\n            <div style=\"font-size: 0.86rem; color: #94A3B8; line-height: 1.5;\">\n              <a href=\"tel:+6569041285\" class=\"zt-footer-link\" style=\"color: #94A3B8; text-decoration: none;\">+65 6904 1285<\/a>\n            <\/div>\n          <\/div>\n          <div class=\"zt-ftr-connect-group zt-ftr-connect-emails\">\n            <div style=\"display: flex; flex-direction: column; gap: 3px;\">\n              <span style=\"font-size: 0.72rem; font-weight: 800; color: #10B981; letter-spacing: 0.08em; text-transform: uppercase;\">SALES<\/span>\n              <a href=\"mailto:salesteam@zoomtech.com.sg\" class=\"zt-footer-link\" style=\"white-space: nowrap;\">salesteam@zoomtech.com.sg<\/a>\n            <\/div>\n            <div style=\"display: flex; flex-direction: column; gap: 3px;\">\n              <span style=\"font-size: 0.72rem; font-weight: 800; color: #10B981; letter-spacing: 0.08em; text-transform: uppercase;\">SERVICE<\/span>\n              <a href=\"mailto:serviceteam@zoomtech.com.sg\" class=\"zt-footer-link\" style=\"white-space: nowrap;\">serviceteam@zoomtech.com.sg<\/a>\n            <\/div>\n          <\/div>\n          <div class=\"zt-ftr-connect-group zt-ftr-connect-cta\">\n            <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/contact-new\/\" class=\"zt-ftr-pill-btn\">\n              <span>Talk to us<\/span> &rarr;\n            <\/a>\n          <\/div>\n        <\/div>\n\n      <\/div>\n\n      <!-- Clean Horizontal Divider -->\n      <div style=\"width: 100%; border-top: 1px solid #1E293B;\"><\/div>\n\n      <!-- Bottom Utility Bar (Single Horizontal Row) -->\n      <div class=\"zt-footer-bottom-bar\" style=\"display: flex; flex-direction: row; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; width: 100%;\">\n        <div style=\"font-size: 0.82rem; color: #64748B; margin: 0;\">\n          &copy; 2026 Zoom Tech Pte Ltd. All rights reserved.\n        <\/div>\n        <div class=\"zt-footer-legal-links\" style=\"display: flex; flex-direction: row; gap: 1.75rem; align-items: center;\">\n          <a href=\"#privacy\" class=\"zt-footer-legal-link\">Privacy Policy<\/a>\n          <a href=\"#terms\" class=\"zt-footer-legal-link\">Terms of Service<\/a>\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/footer>\n<\/div>\n\n<style>\n\/* GLOBAL FOOTER BASE STYLES *\/\n.zt-footer-link {\n  font-size: 0.88rem;\n  color: #94A3B8 !important;\n  text-decoration: none !important;\n  line-height: 1.4;\n  transition: color 0.18s ease;\n  display: inline-block;\n  background: transparent !important;\n  background-color: transparent !important;\n}\n\n.zt-footer-link:hover, .zt-footer-link:focus {\n  color: #34D399 !important;\n  background: transparent !important;\n  background-color: transparent !important;\n}\n\n.zt-footer-legal-link {\n  font-size: 0.82rem;\n  color: #64748B !important;\n  text-decoration: none !important;\n  transition: color 0.18s ease;\n}\n\n.zt-footer-legal-link:hover, .zt-footer-legal-link:focus {\n  color: #94A3B8 !important;\n}\n\n\/* Premium Rounded Talk to Us Pill Button *\/\n.zt-ftr-pill-btn {\n  text-decoration: none;\n  font-size: 0.84rem;\n  font-weight: 700;\n  color: #FFFFFF;\n  background-color: #059669;\n  height: 42px;\n  padding: 0 1.35rem;\n  border-radius: 9999px;\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: 6px;\n  transition: background-color 0.18s ease, box-shadow 0.18s ease;\n  box-sizing: border-box;\n}\n\n.zt-ftr-pill-btn:hover {\n  background-color: #047857;\n  color: #FFFFFF;\n}\n\n#zt-footer-breakout-wrapper, #sec-global-footer {\n  margin-top: 0 !important;\n  margin-bottom: 0 !important;\n  background-color: #0F172A !important;\n}\n\n\/* DESKTOP (>= 1141px): APPROVED 5-COLUMN GRID *\/\n@media (min-width: 1141px) {\n  .zt-footer-master-grid {\n    grid-template-columns: 2.2fr 1.15fr 1.25fr 1.15fr 1.85fr !important;\n    gap: 40px !important;\n  }\n  .zt-ftr-brand-col {\n    padding-right: 1.5rem;\n  }\n  .zt-ftr-connect-col {\n    display: flex;\n    flex-direction: column;\n    gap: 0.85rem;\n  }\n  .zt-ftr-connect-addr {\n    display: flex;\n    flex-direction: column;\n    gap: 0.85rem;\n  }\n  .zt-ftr-connect-emails {\n    display: flex;\n    flex-direction: column;\n    gap: 0.85rem;\n  }\n}\n\n\/* SMALL DESKTOP \/ WIDE TABLET (835px - 1140px, e.g. 1024px): 4-COLUMN TOP + BALANCED CONNECT BAR *\/\n@media (min-width: 835px) and (max-width: 1140px) {\n  .zt-footer-master-grid {\n    grid-template-columns: 1.8fr 1fr 1.15fr 1fr !important;\n    gap: 32px 24px !important;\n  }\n  .zt-ftr-brand-col {\n    grid-column: span 1 !important;\n  }\n  .zt-ftr-connect-col {\n    grid-column: 1 \/ -1 !important;\n    border-top: 1px solid #1E293B !important;\n    padding-top: 1.75rem !important;\n    margin-top: 0.25rem !important;\n    display: flex !important;\n    flex-direction: row !important;\n    justify-content: space-between !important;\n    align-items: center !important;\n    flex-wrap: wrap !important;\n    gap: 1.5rem !important;\n  }\n  .zt-ftr-connect-addr {\n    display: flex !important;\n    flex-direction: column !important;\n    gap: 4px !important;\n  }\n  .zt-ftr-connect-emails {\n    display: flex !important;\n    flex-direction: row !important;\n    gap: 32px !important;\n    align-items: flex-start !important;\n  }\n  .zt-ftr-connect-cta {\n    display: flex !important;\n    align-items: center !important;\n  }\n}\n\n\/* TABLET (768px - 834px): BALANCED 2-COLUMN DELIBERATE GRID *\/\n@media (min-width: 768px) and (max-width: 834px) {\n  .zt-footer-master-grid {\n    grid-template-columns: 1fr 1fr !important;\n    gap: 28px 32px !important;\n  }\n  .zt-ftr-brand-col {\n    grid-column: 1 \/ -1 !important;\n    padding-right: 0 !important;\n    max-width: 520px !important;\n    padding-bottom: 0.5rem !important;\n    border-bottom: 1px solid #1E293B !important;\n  }\n  .zt-ftr-connect-col {\n    display: flex !important;\n    flex-direction: column !important;\n    gap: 0.85rem !important;\n  }\n  .zt-ftr-connect-addr {\n    display: flex !important;\n    flex-direction: column !important;\n    gap: 0.85rem !important;\n  }\n  .zt-ftr-connect-emails {\n    display: flex !important;\n    flex-direction: column !important;\n    gap: 0.85rem !important;\n  }\n}\n\n\/* ACCORDION STRUCTURE ON DESKTOP & TABLET (LOCKED OPEN WITH ZERO TAP HIGHLIGHT) *\/\n.zt-ftr-acc-toggle {\n  background: transparent !important;\n  background-color: transparent !important;\n  border: none !important;\n  padding: 0;\n  margin: 0;\n  color: inherit;\n  font: inherit;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  width: 100%;\n  cursor: default;\n  text-align: left;\n  outline: none !important;\n  box-shadow: none !important;\n  -webkit-tap-highlight-color: transparent !important;\n}\n\n.zt-ftr-acc-toggle:hover,\n.zt-ftr-acc-toggle:focus,\n.zt-ftr-acc-toggle:active {\n  background: transparent !important;\n  background-color: transparent !important;\n  outline: none !important;\n  box-shadow: none !important;\n}\n\n.zt-ftr-acc-toggle:focus-visible {\n  outline: 2px solid #10B981 !important;\n  outline-offset: 2px !important;\n}\n\n.zt-footer-acc-col,\n.zt-footer-acc-col.is-open,\n.zt-ftr-acc-content,\n.zt-ftr-acc-inner {\n  background: transparent !important;\n  background-color: transparent !important;\n  box-shadow: none !important;\n}\n\n.zt-ftr-heading {\n  font-size: 0.74rem;\n  font-weight: 800;\n  color: #FFFFFF;\n  letter-spacing: 0.12em;\n  text-transform: uppercase;\n}\n\n.zt-ftr-chevron {\n  display: none;\n  color: #94A3B8;\n  transition: transform 0.26s cubic-bezier(0.16, 1, 0.3, 1), color 0.18s ease;\n}\n\n.zt-ftr-acc-content {\n  display: block;\n}\n\n.zt-ftr-acc-inner {\n  display: flex;\n  flex-direction: column;\n  gap: 0.85rem;\n  margin-top: 0.85rem;\n}\n\n\/* MOBILE RESPONSIVE (<= 767px): MOBILE ACCORDIONS *\/\n@media (max-width: 767px) {\n  #sec-global-footer {\n    padding: 3.5rem 0 2rem 0 !important;\n    background-color: #0F172A !important;\n  }\n  #sec-global-footer > div {\n    padding: 0 1.25rem !important;\n    gap: 2rem !important;\n  }\n  .zt-footer-master-grid {\n    grid-template-columns: 1fr !important;\n    gap: 0 !important;\n  }\n  .zt-ftr-brand-col {\n    grid-column: span 1 !important;\n    padding-right: 0 !important;\n    padding-bottom: 1.25rem !important;\n    border-bottom: 1px solid #1E293B !important;\n    margin-bottom: 0.25rem !important;\n  }\n  .zt-ftr-brand-col img {\n    height: 26px !important;\n    max-height: 26px !important;\n    max-width: 190px !important;\n    width: auto !important;\n    object-fit: contain !important;\n  }\n  .zt-footer-acc-col {\n    margin: 0 !important;\n    padding: 0 !important;\n  }\n  .zt-ftr-acc-toggle {\n    cursor: pointer !important;\n    padding: 0.65rem 0 !important;\n    border-bottom: 1px solid #1E293B !important;\n    -webkit-tap-highlight-color: transparent !important;\n    background: transparent !important;\n    background-color: transparent !important;\n  }\n  .zt-ftr-chevron {\n    display: inline-block !important;\n  }\n  .zt-ftr-acc-content {\n    display: grid !important;\n    grid-template-rows: 0fr;\n    transition: grid-template-rows 260ms cubic-bezier(0.16, 1, 0.3, 1), opacity 260ms ease !important;\n    opacity: 0;\n    overflow: hidden;\n    background: transparent !important;\n    background-color: transparent !important;\n  }\n  .zt-ftr-acc-inner {\n    min-height: 0;\n    overflow: hidden;\n    margin-top: 0 !important;\n    padding-top: 0.75rem;\n    padding-bottom: 0.75rem;\n    background: transparent !important;\n    background-color: transparent !important;\n  }\n  .zt-footer-acc-col.is-open {\n    background: transparent !important;\n    background-color: transparent !important;\n  }\n  .zt-footer-acc-col.is-open .zt-ftr-acc-content {\n    grid-template-rows: 1fr !important;\n    opacity: 1 !important;\n    background: transparent !important;\n    background-color: transparent !important;\n  }\n  .zt-footer-acc-col.is-open .zt-ftr-chevron {\n    transform: rotate(180deg) !important;\n    color: #10B981 !important;\n  }\n  .zt-ftr-connect-col {\n    padding-top: 1.5rem !important;\n    display: flex !important;\n    flex-direction: column !important;\n    gap: 0.85rem !important;\n  }\n  .zt-ftr-connect-addr {\n    display: flex !important;\n    flex-direction: column !important;\n    gap: 0.85rem !important;\n  }\n  .zt-ftr-connect-emails {\n    display: flex !important;\n    flex-direction: column !important;\n    gap: 0.85rem !important;\n  }\n  .zt-footer-bottom-bar {\n    flex-direction: column !important;\n    align-items: flex-start !important;\n    gap: 0.75rem !important;\n  }\n}\n\n\/* NARROW MOBILE (<= 360px) *\/\n@media (max-width: 360px) {\n  #sec-global-footer > div {\n    padding: 0 1rem !important;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .zt-ftr-acc-content,\n  .zt-ftr-chevron {\n    transition: none !important;\n  }\n}\n<\/style>\n\n<script>\n(function() {\n  function initFooterAccordion() {\n    var footerWrap = document.getElementById('sec-global-footer');\n    if (!footerWrap) return;\n\n    var toggles = footerWrap.querySelectorAll('.zt-ftr-acc-toggle');\n    toggles.forEach(function(toggle) {\n      toggle.onclick = function(e) {\n        \/\/ Only active on mobile viewports (<= 767px)\n        if (window.innerWidth > 767) return;\n\n        e.preventDefault();\n        e.stopPropagation();\n\n        var parentCol = toggle.closest('.zt-footer-acc-col');\n        if (!parentCol) return;\n\n        var isOpen = parentCol.classList.contains('is-open');\n        if (isOpen) {\n          parentCol.classList.remove('is-open');\n          toggle.setAttribute('aria-expanded', 'false');\n        } else {\n          parentCol.classList.add('is-open');\n          toggle.setAttribute('aria-expanded', 'true');\n        }\n      };\n    });\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initFooterAccordion);\n  } else {\n    initFooterAccordion();\n  }\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-zt_work_whatsapp elementor-widget elementor-widget-html\" data-id=\"zt_work_whatsapp\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ZOOM TECH PROPRIETARY ENTERPRISE ASSISTANT CONCIERGE -->\n<div id=\"zt-chatbot-root\">\n\n  <!-- ENTERPRISE FLOATING LAUNCHER (Branded Zoom Tech Assistant Character) -->\n  <button id=\"zt-chatbot-trigger\" type=\"button\" aria-label=\"Open Zoom Tech Assistant\" style=\"position: fixed; bottom: 24px; right: 24px; z-index: 999998; width: 58px; height: 58px; background-color: #0F172A; color: #FFFFFF; border: 2px solid #10B981; border-radius: 50%; box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.85), 0 8px 24px rgba(15, 23, 42, 0.45), 0 0 20px rgba(16, 185, 129, 0.35); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, bottom 0.25s ease; outline: none; padding: 0; box-sizing: border-box;\">\n    <!-- Precision Zoom Tech Assistant Robot Chat-Bubble Icon (from Brand Reference) -->\n    <div id=\"zt-chat-icon-open\" style=\"display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;\">\n      <svg width=\"36\" height=\"36\" viewBox=\"0 0 54 54\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"display: block;\">\n        <!-- Antenna (Emerald) -->\n        <line x1=\"27\" y1=\"20\" x2=\"27\" y2=\"13.5\" stroke=\"#10B981\" stroke-width=\"3.5\" stroke-linecap=\"round\" \/>\n        <circle cx=\"27\" cy=\"11\" r=\"3.5\" fill=\"#10B981\" \/>\n        \n        <!-- Radiating Alert Rays (Emerald) -->\n        <line x1=\"36\" y1=\"12\" x2=\"38.5\" y2=\"7.5\" stroke=\"#10B981\" stroke-width=\"3.2\" stroke-linecap=\"round\" \/>\n        <line x1=\"41\" y1=\"16.5\" x2=\"46\" y2=\"14\" stroke=\"#10B981\" stroke-width=\"3.2\" stroke-linecap=\"round\" \/>\n        <line x1=\"43\" y1=\"23\" x2=\"48\" y2=\"23\" stroke=\"#10B981\" stroke-width=\"3.2\" stroke-linecap=\"round\" \/>\n\n        <!-- Speech Bubble Head (Crisp White High-DPI Outline) -->\n        <path d=\"M19 20H35C40.5228 20 45 24.4772 45 30C45 35.5228 40.5228 40 35 40H25.5L18 46.5V40C13.0294 40 9 35.9706 9 31V29C9 24.0294 13.0294 20 18 20H19Z\" fill=\"#0F172A\" stroke=\"#FFFFFF\" stroke-width=\"4.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n\n        <!-- Assistant Eyes (Emerald Rounded Vertical Capsules) -->\n        <rect x=\"19\" y=\"27\" width=\"4.2\" height=\"8.5\" rx=\"2.1\" fill=\"#10B981\" \/>\n        <rect x=\"31\" y=\"27\" width=\"4.2\" height=\"8.5\" rx=\"2.1\" fill=\"#10B981\" \/>\n      <\/svg>\n    <\/div>\n  <\/button>\n\n  <!-- REFINED CONCIERGE CHAT PANEL -->\n  <div id=\"zt-chatbot-panel\" class=\"zt-chat-window-panel\" style=\"display: none; position: fixed; bottom: 92px; right: 24px; z-index: 2000000; width: 384px; max-width: calc(100vw - 28px); height: 580px; max-height: calc(100vh - 110px); background: #FFFFFF; border: 1px solid #E2E8F0; border-radius: 16px; box-shadow: 0 20px 50px rgba(15, 23, 42, 0.16); overflow: hidden; box-sizing: border-box; flex-direction: column; font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\">\n    \n    <!-- Clean Integrated Window Header -->\n    <div id=\"zt-chat-header\" style=\"background: #FFFFFF; color: #0F172A; padding: 14px 18px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #E2E8F0; box-sizing: border-box; flex-shrink: 0; position: relative; z-index: 10;\">\n      \n      <!-- Left: Mobile Back Button + Brand Badge + Title -->\n      <div style=\"display: flex; align-items: center; gap: 8px; min-width: 0;\">\n        \n        <!-- Mobile Back Control (Visible on mobile <= 767px, 44x44px touch target) -->\n        <button id=\"zt-chat-btn-mobile-back\" type=\"button\" aria-label=\"Back to website\" class=\"zt-chat-back-btn\" style=\"display: none; background: transparent; border: none; color: #0F172A; cursor: pointer; min-width: 44px; min-height: 44px; width: 44px; height: 44px; border-radius: 8px; align-items: center; justify-content: center; padding: 0; margin-left: -6px; transition: all 0.15s ease;\">\n          <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n            <line x1=\"19\" y1=\"12\" x2=\"5\" y2=\"12\"><\/line>\n            <polyline points=\"12 19 5 12 12 5\"><\/polyline>\n          <\/svg>\n        <\/button>\n\n        <!-- Brand Icon Badge -->\n        <div id=\"zt-chat-header-badge\" style=\"width: 32px; height: 32px; border-radius: 8px; background: #ECFDF5; border: 1px solid #A7F3D0; display: flex; align-items: center; justify-content: center; box-sizing: border-box; flex-shrink: 0;\">\n          <svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#059669\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n            <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"><\/path>\n          <\/svg>\n        <\/div>\n\n        <!-- Title & Status -->\n        <div style=\"display: flex; flex-direction: column; min-width: 0;\">\n          <div style=\"font-size: 0.90rem; font-weight: 800; color: #0F172A; letter-spacing: 0.01em; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\">Zoom Tech Assistant<\/div>\n          <div style=\"font-size: 0.72rem; color: #64748B; display: flex; align-items: center; gap: 5px; line-height: 1.2; margin-top: 2px;\">\n            <span style=\"width: 6px; height: 6px; border-radius: 50%; background: #10B981; display: inline-block; flex-shrink: 0;\"><\/span>\n            <span style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\">Verified Solutions Desk<\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n      \n      <!-- Right: Action Controls (Reset & Close inside top-right corner) -->\n      <div style=\"display: flex; align-items: center; gap: 4px; flex-shrink: 0;\">\n        <button id=\"zt-chat-btn-reset\" type=\"button\" title=\"Reset Conversation\" aria-label=\"Reset Conversation\" style=\"background: transparent; border: none; color: #64748B; cursor: pointer; min-width: 36px; min-height: 36px; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border-radius: 6px; transition: all 0.15s ease;\">\n          <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\"\/><path d=\"M3 3v5h5\"\/><\/svg>\n        <\/button>\n        <button id=\"zt-chat-btn-close\" type=\"button\" title=\"Close Panel\" aria-label=\"Close Assistant Panel\" style=\"background: transparent; border: none; color: #64748B; cursor: pointer; min-width: 36px; min-height: 36px; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border-radius: 6px; transition: all 0.15s ease;\">\n          <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"><\/line><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"><\/line><\/svg>\n        <\/button>\n      <\/div>\n    <\/div>\n\n    <!-- Scrollable Messages Container -->\n    <div id=\"zt-chat-messages\" style=\"flex: 1; min-height: 0; padding: 18px 16px; overflow-y: auto; display: flex; flex-direction: column; gap: 14px; background: #F8FAFC; box-sizing: border-box;\">\n      <!-- Dynamic Messages Injected Here -->\n    <\/div>\n\n    <!-- Compact Horizontally-Scrollable Quick Action Chips -->\n    <div id=\"zt-chat-suggestions\" style=\"padding: 8px 14px; background: #FFFFFF; border-top: 1px solid #E2E8F0; display: flex; gap: 6px; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; box-sizing: border-box; flex-shrink: 0;\">\n      <button type=\"button\" class=\"zt-chat-sug-chip\" onclick=\"handleSuggestionClick('Explore Products')\">Explore Products &rarr;<\/button>\n      <button type=\"button\" class=\"zt-chat-sug-chip\" onclick=\"handleSuggestionClick('Compare Products')\">Compare Products &rarr;<\/button>\n      <button type=\"button\" class=\"zt-chat-sug-chip\" onclick=\"handleSuggestionClick('Explore ZoomAccess')\">ZoomAccess &rarr;<\/button>\n      <button type=\"button\" class=\"zt-chat-sug-chip\" onclick=\"handleSuggestionClick('Contact Zoom Tech')\">Contact Sales &rarr;<\/button>\n    <\/div>\n\n    <!-- Prominent Integrated Message Composer -->\n    <form id=\"zt-chat-form\" onsubmit=\"handleUserChatSubmit(event)\" style=\"padding: 12px 14px; background: #FFFFFF; border-top: 1px solid #E2E8F0; display: flex; gap: 8px; align-items: center; box-sizing: border-box; margin: 0; flex-shrink: 0;\">\n      <input type=\"text\" id=\"zt-chat-input\" placeholder=\"Ask Zoom Tech Assistant...\" autocomplete=\"off\" style=\"flex: 1; height: 42px; padding: 0 14px; border: 1px solid #CBD5E1; border-radius: 8px; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 0.88rem; color: #0F172A; background: #F8FAFC; outline: none; transition: border-color 0.15s ease, background 0.15s ease;\" onfocus=\"this.style.borderColor='#059669'; this.style.background='#FFFFFF';\" onblur=\"this.style.borderColor='#CBD5E1'; this.style.background='#F8FAFC';\" \/>\n      <button type=\"submit\" id=\"zt-chat-send\" aria-label=\"Send message\" style=\"width: 42px; height: 42px; border-radius: 8px; background: #059669; color: #FFFFFF; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background-color 0.15s ease, transform 0.15s ease; flex-shrink: 0;\">\n        <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\"><\/line><polygon points=\"22 2 15 22 11 13 2 9 22 2\"><\/polygon><\/svg>\n      <\/button>\n    <\/form>\n\n  <\/div>\n\n<\/div>\n\n<style>\n\/* ZOOM TECH ASSISTANT ENTERPRISE STYLES *\/\n#zt-chatbot-trigger:hover {\n  transform: translateY(-2px) scale(1.04);\n  box-shadow: 0 0 0 2.5px rgba(255, 255, 255, 0.95), 0 12px 30px rgba(15, 23, 42, 0.5), 0 0 25px rgba(16, 185, 129, 0.5);\n  border-color: #10B981;\n}\n\n#zt-chatbot-trigger:focus-visible {\n  outline: 2px solid #10B981;\n  outline-offset: 3px;\n}\n\n#zt-chat-btn-reset:hover, #zt-chat-btn-close:hover, #zt-chat-btn-mobile-back:hover {\n  color: #0F172A !important;\n  background: #F1F5F9 !important;\n}\n\n#zt-chat-btn-reset:focus-visible, #zt-chat-btn-close:focus-visible, #zt-chat-btn-mobile-back:focus-visible {\n  outline: 2px solid #059669 !important;\n  outline-offset: 2px !important;\n}\n\n#zt-chat-send:hover {\n  background-color: #047857 !important;\n}\n\n#zt-chat-send:active {\n  transform: scale(0.97) !important;\n}\n\n#zt-chat-send:focus-visible {\n  outline: 2px solid #10B981 !important;\n  outline-offset: 2px !important;\n}\n\n#zt-chat-suggestions::-webkit-scrollbar {\n  display: none;\n}\n\n.zt-chat-sug-chip {\n  background: #FFFFFF;\n  border: 1px solid #E2E8F0;\n  border-radius: 9999px;\n  padding: 6px 12px;\n  font-family: 'Plus Jakarta Sans', sans-serif;\n  font-size: 0.74rem;\n  font-weight: 700;\n  color: #334155;\n  cursor: pointer;\n  transition: all 0.15s ease;\n  white-space: nowrap;\n  flex-shrink: 0;\n  box-sizing: border-box;\n  display: inline-flex;\n  align-items: center;\n}\n.zt-chat-sug-chip:hover {\n  background: #F8FAFC;\n  border-color: #059669;\n  color: #059669;\n}\n\n\/* Assistant Message Bubble *\/\n.zt-chat-bubble-bot {\n  background: #FFFFFF;\n  border: 1px solid #E2E8F0;\n  border-radius: 12px;\n  padding: 14px 16px;\n  font-size: 0.88rem;\n  line-height: 1.6;\n  color: #1E293B;\n  width: 100%;\n  box-sizing: border-box;\n  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.03);\n  word-break: break-word;\n}\n\n\/* User Message Bubble *\/\n.zt-chat-bubble-user {\n  background: #059669;\n  color: #FFFFFF;\n  border-radius: 14px 14px 2px 14px;\n  padding: 10px 14px;\n  font-size: 0.88rem;\n  line-height: 1.45;\n  font-weight: 600;\n  align-self: flex-end;\n  max-width: 82%;\n  box-shadow: 0 2px 6px rgba(5, 150, 105, 0.2);\n  word-break: break-word;\n}\n\n.zt-chat-bubble-bot a {\n  color: #059669;\n  font-weight: 700;\n  text-decoration: underline;\n}\n\n.zt-chat-card-link {\n  display: inline-flex;\n  align-items: center;\n  gap: 4px;\n  margin-top: 8px;\n  background: #FFFFFF;\n  border: 1px solid #CBD5E1;\n  padding: 7px 14px;\n  border-radius: 6px;\n  font-size: 0.80rem;\n  font-weight: 700;\n  color: #0F172A !important;\n  text-decoration: none !important;\n  transition: all 0.15s ease;\n}\n.zt-chat-card-link:hover {\n  background: #059669;\n  color: #FFFFFF !important;\n  border-color: #059669;\n}\n\n\/* DESKTOP (>= 1024px) *\/\n@media (min-width: 1024px) {\n  #zt-chatbot-panel {\n    bottom: 92px !important;\n    right: 24px !important;\n    width: 384px !important;\n    height: 580px !important;\n    max-height: calc(100vh - 110px) !important;\n    border-radius: 16px !important;\n    border: 1px solid #E2E8F0 !important;\n    box-shadow: 0 20px 50px rgba(15, 23, 42, 0.16) !important;\n    z-index: 2000000 !important;\n  }\n  #zt-chat-btn-mobile-back {\n    display: none !important;\n  }\n}\n\n\/* TABLET (768px - 1023px) *\/\n@media (min-width: 768px) and (max-width: 1023px) {\n  #zt-chatbot-panel {\n    bottom: 88px !important;\n    right: 20px !important;\n    width: 360px !important;\n    height: 520px !important;\n    max-height: calc(100vh - 100px) !important;\n    border-radius: 14px !important;\n    z-index: 2000000 !important;\n  }\n  #zt-chat-btn-mobile-back {\n    display: none !important;\n  }\n}\n\n\/* MOBILE FULL SCREEN (<= 767px) *\/\n@media (max-width: 767px) {\n  #zt-chatbot-trigger {\n    bottom: 18px !important;\n    right: 18px !important;\n    width: 54px !important;\n    height: 54px !important;\n  }\n  \n  #zt-chatbot-panel {\n    position: fixed !important;\n    top: 0 !important;\n    left: 0 !important;\n    right: 0 !important;\n    bottom: 0 !important;\n    width: 100vw !important;\n    max-width: 100vw !important;\n    height: 100vh !important;\n    height: 100dvh !important;\n    max-height: 100dvh !important;\n    border-radius: 0 !important;\n    border: none !important;\n    box-shadow: none !important;\n    z-index: 2000000 !important;\n  }\n\n  #zt-chat-btn-mobile-back {\n    display: inline-flex !important;\n  }\n\n  #zt-chat-header {\n    padding: 10px 14px !important;\n    height: 58px !important;\n    box-sizing: border-box !important;\n  }\n\n  #zt-chat-form {\n    padding: 10px 12px max(10px, env(safe-area-inset-bottom, 10px)) 12px !important;\n    gap: 8px !important;\n  }\n\n  #zt-chat-input {\n    height: 48px !important;\n    font-size: 0.90rem !important;\n    padding: 0 14px !important;\n    border-radius: 10px !important;\n  }\n\n  #zt-chat-send {\n    width: 48px !important;\n    height: 48px !important;\n    min-width: 48px !important;\n    min-height: 48px !important;\n    border-radius: 10px !important;\n  }\n\n  #zt-chat-send svg {\n    width: 22px !important;\n    height: 22px !important;\n  }\n}\n\n\/* COMPARISON TRAY COLLISION AVOIDANCE ON MOBILE *\/\n@media (max-width: 768px) {\n  body.zt-compare-tray-visible button#zt-chatbot-trigger {\n    bottom: 155px !important;\n  }\n}\n\nbody.zt-chat-active-mobile {\n  overflow: hidden !important;\n}\n<\/style>\n\n<script>\n(function() {\n  var chatOpen = false;\n  var messagesContainer = null;\n  var chatInput = null;\n  var savedScrollY = 0;\n\n  function initChatbot() {\n    var triggerBtn = document.getElementById('zt-chatbot-trigger');\n    var closeBtn = document.getElementById('zt-chat-btn-close');\n    var backBtn = document.getElementById('zt-chat-btn-mobile-back');\n    var resetBtn = document.getElementById('zt-chat-btn-reset');\n    var panel = document.getElementById('zt-chatbot-panel');\n    messagesContainer = document.getElementById('zt-chat-messages');\n    chatInput = document.getElementById('zt-chat-input');\n\n    if (!triggerBtn || !panel) return;\n\n    triggerBtn.onclick = function() {\n      toggleChatPanel();\n    };\n\n    if (closeBtn) {\n      closeBtn.onclick = function() {\n        toggleChatPanel(false);\n      };\n    }\n\n    if (backBtn) {\n      backBtn.onclick = function() {\n        toggleChatPanel(false);\n      };\n    }\n\n    if (resetBtn) {\n      resetBtn.onclick = function() {\n        if (messagesContainer) {\n          messagesContainer.innerHTML = '';\n          sendWelcomeMessage();\n        }\n      };\n    }\n\n    \/\/ Escape key closes chat\n    document.addEventListener('keydown', function(e) {\n      if (e.key === 'Escape' && chatOpen) {\n        toggleChatPanel(false);\n      }\n    });\n\n    sendWelcomeMessage();\n  }\n\n  function toggleChatPanel(forceState) {\n    var panel = document.getElementById('zt-chatbot-panel');\n    var triggerBtn = document.getElementById('zt-chatbot-trigger');\n    if (!panel) return;\n\n    chatOpen = (forceState !== undefined) ? forceState : !chatOpen;\n\n    if (chatOpen) {\n      savedScrollY = window.scrollY || window.pageYOffset || 0;\n      panel.style.display = 'flex';\n      if (triggerBtn && window.innerWidth <= 767) {\n        triggerBtn.style.display = 'none';\n        document.body.classList.add('zt-chat-active-mobile');\n      }\n      if (chatInput) setTimeout(function() { chatInput.focus(); }, 150);\n    } else {\n      panel.style.display = 'none';\n      if (triggerBtn) triggerBtn.style.display = 'flex';\n      document.body.classList.remove('zt-chat-active-mobile');\n      if (window.innerWidth <= 767) {\n        window.scrollTo(0, savedScrollY);\n      }\n    }\n  }\n\n  function appendBotMessage(htmlContent) {\n    if (!messagesContainer) return;\n    var div = document.createElement('div');\n    div.className = 'zt-chat-bubble-bot';\n    div.innerHTML = htmlContent;\n    messagesContainer.appendChild(div);\n    messagesContainer.scrollTop = messagesContainer.scrollHeight;\n  }\n\n  function appendUserMessage(text) {\n    if (!messagesContainer) return;\n    var div = document.createElement('div');\n    div.className = 'zt-chat-bubble-user';\n    div.textContent = text;\n    messagesContainer.appendChild(div);\n    messagesContainer.scrollTop = messagesContainer.scrollHeight;\n  }\n\n  function sendWelcomeMessage() {\n    appendBotMessage(\n      \"Hi! I'm the <strong>Zoom Tech Assistant<\/strong>. I can help you explore our access-control and security solutions, compare products, or assist with your project enquiry.<br\/><br\/>How can I help you today?\"\n    );\n  }\n\n  window.handleSuggestionClick = function(type) {\n    if (type === 'Explore Products') {\n      appendUserMessage(\"Explore Products\");\n      setTimeout(function() {\n        appendBotMessage(\n          \"We offer 5 core pedestrian entrance hardware families engineered for commercial lobbies, transit, and high-security checkpoints:<br\/>\" +\n          \"\u2022 <strong>SWING:<\/strong> Architectural swing barriers<br\/>\" +\n          \"\u2022 <strong>SPEED:<\/strong> Optical speed swing gates<br\/>\" +\n          \"\u2022 <strong>MAX:<\/strong> Full height security turnstiles<br\/>\" +\n          \"\u2022 <strong>WING:<\/strong> Retractable flap barriers<br\/>\" +\n          \"\u2022 <strong>TRI:<\/strong> Robust 3-arm tripod turnstiles<br\/><br\/>\" +\n          \"<a href='https:\/\/www.zoomtech.com.sg\/staging\/products-new\/' class='zt-chat-card-link'>View Products Catalogue &rarr;<\/a>\"\n        );\n      }, 300);\n    } else if (type === 'Compare Products') {\n      appendUserMessage(\"Compare Products\");\n      setTimeout(function() {\n        appendBotMessage(\n          \"Zoom Tech supports side-by-side product comparison. Please note our engineering rule: <strong>Comparisons are strictly within the same category<\/strong> (e.g., SWING with SWING, SPEED with SPEED).<br\/><br\/>\" +\n          \"<a href='https:\/\/www.zoomtech.com.sg\/staging\/compare-new\/' class='zt-chat-card-link'>Open Comparison Tool &rarr;<\/a>\"\n        );\n      }, 300);\n    } else if (type === 'Explore ZoomAccess') {\n      appendUserMessage(\"Tell me about ZoomAccess\");\n      setTimeout(function() {\n        appendBotMessage(\n          \"<strong>ZoomAccess<\/strong> is Zoom Tech's access-control management platform for turnstiles and connected systems. Core capabilities include:<br\/>\" +\n          \"\u2022 Turnstile Management Platform &amp; Remote Lane Configuration<br\/>\" +\n          \"\u2022 Access Control Management &amp; Scheduling Policies<br\/>\" +\n          \"\u2022 Lift Control System Integration (Elevator Relay Dispatch)<br\/>\" +\n          \"\u2022 VMS and Destination Control System Sync<br\/>\" +\n          \"\u2022 Access Role Management &amp; Audit Reporting Portal<br\/><br\/>\" +\n          \"<a href='https:\/\/www.zoomtech.com.sg\/staging\/access\/' class='zt-chat-card-link'>Explore ZoomAccess &rarr;<\/a>\"\n        );\n      }, 300);\n    } else if (type === 'Contact Zoom Tech') {\n      appendUserMessage(\"How can I contact Zoom Tech?\");\n      setTimeout(function() {\n        appendBotMessage(\n          \"You can reach Zoom Tech at our Singapore headquarters:<br\/>\" +\n          \"\u2022 <strong>Address:<\/strong> 68 Senoko Road, Singapore 758128<br\/>\" +\n          \"\u2022 <strong>Phone \/ WhatsApp:<\/strong> +65 6904 1285<br\/>\" +\n          \"\u2022 <strong>Sales Desk:<\/strong> salesteam@zoomtech.com.sg<br\/>\" +\n          \"\u2022 <strong>Service Desk:<\/strong> serviceteam@zoomtech.com.sg<br\/><br\/>\" +\n          \"<a href='https:\/\/www.zoomtech.com.sg\/staging\/contact-new\/' class='zt-chat-card-link'>Open Contact Page &rarr;<\/a>\"\n        );\n      }, 300);\n    }\n  };\n\n  window.handleUserChatSubmit = function(e) {\n    if (e) e.preventDefault();\n    if (!chatInput) return;\n    var query = chatInput.value.trim();\n    if (!query) return;\n\n    appendUserMessage(query);\n    chatInput.value = '';\n\n    \/\/ Process Knowledge Response\n    setTimeout(function() {\n      processBotResponse(query);\n    }, 350);\n  };\n\n  function processBotResponse(q) {\n    var raw = q.toLowerCase();\n    var query = raw.replace(\/[?.,!\/]\/g, ' ');\n\n    \/\/ 1. Company Overview\n    var isCompanyQuery = (\n      (query.includes('zoom tech') || query.includes('zoomtech') || query.includes('this company') || query.includes('the company') || query.includes('your company') || query.includes('about you') || query.includes('who are you')) &&\n      (query.includes('about') || query.includes('what is') || query.includes('what does') || query.includes('do') || query.includes('provide') || query.includes('offer') || query.includes('kind of') || query.includes('tell me') || query.includes('who is') || query.includes('overview') || query.includes('background') || query.includes('profile'))\n    ) || (\n      query.trim() === 'zoom tech' || query.trim() === 'about zoom tech' || query.trim() === 'what is zoom tech' || query.trim() === 'what does zoom tech do'\n    );\n\n    if (isCompanyQuery && !query.includes('access') && !query.includes('face') && !query.includes('surveillance') && !query.includes('iot') && !query.includes('gate') && !query.includes('price')) {\n      appendBotMessage(\n        \"<strong>Zoom Tech Pte Ltd<\/strong> is a Singapore-based B2B access-control and security technology company specializing in pedestrian entrance control and connected security infrastructure. Our solutions include:<br\/>\" +\n        \"\u2022 <strong>ZoomGate:<\/strong> Pedestrian turnstiles and optical speed gates (SWING, SPEED, MAX, WING, TRI).<br\/>\" +\n        \"\u2022 <strong>ZoomAccess:<\/strong> Web-based turnstile management, lift control dispatch, and VMS integration.<br\/>\" +\n        \"\u2022 <strong>ZoomFace:<\/strong> AI biometric facial recognition admission terminals.<br\/>\" +\n        \"\u2022 <strong>ZoomSurveillance:<\/strong> i-LIDS\u00ae certified video analytics and Central Monitoring Station (CMS) platforms.<br\/>\" +\n        \"\u2022 <strong>ZoomIOT:<\/strong> Facility telemetry and site gateways.<br\/><br\/>\" +\n        \"<a href='https:\/\/www.zoomtech.com.sg\/staging\/about-new\/' class='zt-chat-card-link'>About Zoom Tech &rarr;<\/a>\"\n      );\n      return;\n    }\n\n    \/\/ 2. ZoomAccess Inquiries\n    if (query.includes('zoomaccess') || query.includes('zoom access') || (query.includes('access') && (query.includes('what is') || query.includes('tell me') || query.includes('platform') || query.includes('management') || query.includes('explain') || query.includes('about')))) {\n      appendBotMessage(\n        \"<strong>ZoomAccess<\/strong> is Zoom Tech's access-control management platform engineered for turnstiles and connected facility ecosystems. Verified capabilities include:<br\/>\" +\n        \"\u2022 <strong>Turnstile Management Platform:<\/strong> Centralized multi-lane oversight and status monitoring.<br\/>\" +\n        \"\u2022 <strong>Remote Control &amp; Configuration:<\/strong> Over-the-network lane tuning, speed adjustment, and operational mode control.<br\/>\" +\n        \"\u2022 <strong>Access Control Management:<\/strong> Live credential admission logic across smartcards, QR codes, and biometrics.<br\/>\" +\n        \"\u2022 <strong>Scheduling Management:<\/strong> Flexible time-zones, holiday access calendars, and free-passage hours.<br\/>\" +\n        \"\u2022 <strong>VMS &amp; Destination Control Integration:<\/strong> Direct event linking with video surveillance and intelligent elevator destination dispatch.<br\/>\" +\n        \"\u2022 <strong>Lift Control System Integration:<\/strong> Relay and protocol-level integration with elevator floor accessibility controls.<br\/>\" +\n        \"\u2022 <strong>Access Role Management:<\/strong> Granular permission assignments for employees, contractors, and visitors.<br\/>\" +\n        \"\u2022 <strong>Reporting Portal:<\/strong> Comprehensive audit logs, entrance throughput analytics, and incident reports.<br\/><br\/>\" +\n        \"<a href='https:\/\/www.zoomtech.com.sg\/staging\/access\/' class='zt-chat-card-link'>Explore ZoomAccess &rarr;<\/a>\"\n      );\n      return;\n    }\n\n    \/\/ 3. Comparison Rules & Cross-Category Handling\n    if (query.includes('compare') || query.includes('comparison')) {\n      if ((query.includes('swing') && query.includes('max')) || \n          (query.includes('facial') && query.includes('swing')) || \n          (query.includes('speed') && query.includes('tri')) ||\n          (query.includes('wing') && query.includes('max'))) {\n        appendBotMessage(\n          \"Under Zoom Tech engineering rules, <strong>products can only be compared within the same category<\/strong> (for example, comparing a Swing model with another Swing model). Mixed-category comparisons (such as Swing vs MAX) are not supported because their chassis form factors and passage mechanics differ.<br\/><br\/>\" +\n          \"<a href='https:\/\/www.zoomtech.com.sg\/staging\/compare-new\/' class='zt-chat-card-link'>Go to Product Comparison &rarr;<\/a>\"\n        );\n        return;\n      }\n      appendBotMessage(\n        \"You can compare specifications for up to 3 models simultaneously within the same product family (e.g. SWING with SWING, or SPEED with SPEED).<br\/><br\/>\" +\n        \"<a href='https:\/\/www.zoomtech.com.sg\/staging\/compare-new\/' class='zt-chat-card-link'>Launch Compare Workspace &rarr;<\/a>\"\n      );\n      return;\n    }\n\n    \/\/ 4. Specific Model Configuration Request\n    var modelMatch = query.match(\/(asw-ar-\\d+|sg-ar-\\d+|sg-ah-\\d+|ft-fm-\\d+|afh-ar-\\d+|tp-md-\\d+[\\w-]*|asd-sa-\\d+)\/i);\n    if (query.includes('config') || (modelMatch && query.includes('configure'))) {\n      var mCode = modelMatch ? modelMatch[0].toUpperCase() : \"ASW-AR-24\";\n      appendBotMessage(\n        \"You can configure chassis metallurgy (SUS304\/SUS316\/Aluminium), architectural finish, barrier wings, and biometric integrations for <strong>\" + mCode + \"<\/strong> in our Interactive Configurator Studio.<br\/><br\/>\" +\n        \"<a href='https:\/\/www.zoomtech.com.sg\/staging\/configurator-new\/?model=\" + encodeURIComponent(mCode) + \"' class='zt-chat-card-link'>Configure \" + mCode + \" &rarr;<\/a>\"\n      );\n      return;\n    }\n\n    \/\/ 5. Quotation \/ Pricing \/ Cost \/ Enquire\n    if (query.includes('quote') || query.includes('quotation') || query.includes('price') || query.includes('pricing') || query.includes('cost') || query.includes('tender') || query.includes('how much') || query.includes('enquire') || query.includes('enquiry')) {\n      appendBotMessage(\n        \"Because Zoom Tech entrance security systems are engineered to custom site dimensions, metallurgy, and access integrations, pricing is tailored per project requirements. Our Singapore engineering team will prepare an official quotation for your specification.<br\/><br\/>\" +\n        \"\u2022 <strong>Sales Desk:<\/strong> salesteam@zoomtech.com.sg<br\/>\" +\n        \"\u2022 <strong>Telephone \/ WhatsApp:<\/strong> +65 6904 1285<br\/><br\/>\" +\n        \"<a href='https:\/\/www.zoomtech.com.sg\/staging\/contact-new\/' class='zt-chat-card-link'>Request Official Quote &rarr;<\/a>\"\n      );\n      return;\n    }\n\n    \/\/ 6. ZoomFace \/ Biometrics Inquiries\n    if (query.includes('zoomface') || query.includes('zoom face') || query.includes('biometric') || query.includes('facial recognition') || query.includes('face recognition') || (query.includes('facial') && !query.includes('compare'))) {\n      appendBotMessage(\n        \"<strong>ZoomFace<\/strong> provides AI-powered biometric admission control terminals integrated directly into turnstiles and speed gates. It supports local instant facial matching in under 0.2s for contactless pedestrian admission.<br\/><br\/>\" +\n        \"<a href='https:\/\/www.zoomtech.com.sg\/staging\/facial-recognition\/' class='zt-chat-card-link'>Explore ZoomFace Biometrics &rarr;<\/a>\"\n      );\n      return;\n    }\n\n    \/\/ 7. ZoomSurveillance Inquiries\n    if (query.includes('zoomsurveillance') || query.includes('zoom surveillance') || query.includes('surveillance') || query.includes('cctv') || query.includes('camera') || query.includes('i-lids') || query.includes('hosdb') || query.includes('video analytics')) {\n      appendBotMessage(\n        \"<strong>ZoomSurveillance<\/strong> delivers intelligent video analytics and Central Monitoring Station (CMS) solutions certified as a primary detection system by the UK Home Office (HoSDB \/ i-LIDS\u00ae) for sterile zone perimeter monitoring, featuring ClickThru\u2122 3-click alarm management.<br\/><br\/>\" +\n        \"<a href='https:\/\/www.zoomtech.com.sg\/staging\/surveillance\/' class='zt-chat-card-link'>Explore ZoomSurveillance &rarr;<\/a>\"\n      );\n      return;\n    }\n\n    \/\/ Default intelligent fall-through\n    appendBotMessage(\n      \"Thank you for your question. You can explore our entrance hardware catalogue or connect directly with our engineering team for specifications, drawings, and quotations:<br\/><br\/>\" +\n      \"\u2022 <strong>Products Catalogue:<\/strong> <a href='https:\/\/www.zoomtech.com.sg\/staging\/products-new\/' class='zt-chat-card-link'>View Products &rarr;<\/a><br\/>\" +\n      \"\u2022 <strong>Engineering Consultation:<\/strong> <a href='https:\/\/www.zoomtech.com.sg\/staging\/contact-new\/' class='zt-chat-card-link'>Contact Sales Desk &rarr;<\/a>\"\n    );\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initChatbot);\n  } else {\n    initChatbot();\n  }\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>OUR WORK ENGINEERED FORREAL-WORLD ENVIRONMENTS. Explore selected Zoom Tech projects, installations, and access-control environments delivered across real facilities. PROJECT ARCHIVE SELECTED PROJECTS A selection of access-control installations and project environments from across Zoom Tech&#8217;s deployment portfolio. ALL SWING SPEED MAX WING TRI 1 Photo SWING &#038; SPEED GATE SYSTEM CPF Tampines View Gallery &rarr; 1 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-1376","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.zoomtech.com.sg\/staging\/wp-json\/wp\/v2\/pages\/1376","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zoomtech.com.sg\/staging\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.zoomtech.com.sg\/staging\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.zoomtech.com.sg\/staging\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.zoomtech.com.sg\/staging\/wp-json\/wp\/v2\/comments?post=1376"}],"version-history":[{"count":10,"href":"https:\/\/www.zoomtech.com.sg\/staging\/wp-json\/wp\/v2\/pages\/1376\/revisions"}],"predecessor-version":[{"id":1474,"href":"https:\/\/www.zoomtech.com.sg\/staging\/wp-json\/wp\/v2\/pages\/1376\/revisions\/1474"}],"wp:attachment":[{"href":"https:\/\/www.zoomtech.com.sg\/staging\/wp-json\/wp\/v2\/media?parent=1376"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}