{"id":1175,"date":"2026-09-30T10:59:23","date_gmt":"2026-09-30T10:59:23","guid":{"rendered":"https:\/\/www.zoomtech.com.sg\/staging\/?page_id=1175"},"modified":"2026-10-17T19:09:03","modified_gmt":"2026-10-17T19:09:03","slug":"configurator-new","status":"publish","type":"page","link":"https:\/\/www.zoomtech.com.sg\/staging\/configurator-new\/","title":{"rendered":"Product Configurator New"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1175\" class=\"elementor elementor-1175\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-zt_cfg_header elementor-widget elementor-widget-html\" data-id=\"zt_cfg_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_cfg_body elementor-widget elementor-widget-html\" data-id=\"zt_cfg_body\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- PORSCHE-INSPIRED PREMIUM PRODUCT CONFIGURATOR STUDIO (POST 1175) -->\n<div id=\"zt-configurator-page\" class=\"zt-cfg-root\" style=\"width: 100%; background-color: #FAFCFE; font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; box-sizing: border-box; margin: 0; padding: 0; color: #0F172A; min-height: 100vh;\">\n\n  <!-- 01 \u2014 MINIMAL TOP AREA (BREADCRUMB + DYNAMIC MODEL NAME ONLY) -->\n  <div id=\"sec-config-top-intro\" style=\"width: 100%; background: #FFFFFF; border-bottom: 1px solid #CBD5E1; padding: 1.75rem 0 1.75rem 0; box-sizing: border-box;\">\n    <div style=\"max-width: 1440px; margin: 0 auto; padding: 0 2.5rem; display: flex; flex-direction: column; gap: 0.65rem; width: 100%; box-sizing: border-box;\" class=\"zt-cfg-top-container\">\n      \n      <!-- Existing Breadcrumb (Preserved Exactly) -->\n      <div style=\"font-size: 0.82rem; font-weight: 600; color: #64748B; display: flex; align-items: center; gap: 8px;\">\n        <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/products-new\/\" style=\"color: #64748B; text-decoration: none; transition: color 0.15s ease;\">Products<\/a>\n        <span style=\"opacity: 0.4;\">\/<\/span>\n        <a href=\"https:\/\/www.zoomtech.com.sg\/staging\/zoomgate\/\" style=\"color: #64748B; text-decoration: none; transition: color 0.15s ease;\">ZoomGate<\/a>\n        <span style=\"opacity: 0.4;\">\/<\/span>\n        <a id=\"cfg-breadcrumb-product\" href=\"https:\/\/www.zoomtech.com.sg\/staging\/product\/asw-ar-24\/\" style=\"color: #059669; text-decoration: none; font-weight: 700;\">ASW-AR-24<\/a>\n        <span style=\"opacity: 0.4;\">\/<\/span>\n        <span style=\"color: #0F172A; font-weight: 700;\">Interactive Configurator<\/span>\n      <\/div>\n\n      <!-- Pure Dynamic Product Name Heading (No Marketing Text, Badges, or Meta) -->\n      <h1 id=\"cfg-display-title\" style=\"font-size: 3.2rem; font-weight: 800; color: #0F172A; letter-spacing: -0.035em; line-height: 1.05; margin: 0; padding: 0;\">\n        ASW-AR-24\n      <\/h1>\n\n    <\/div>\n  <\/div>\n\n\n  <!-- 02 \u2014 MAIN CONFIGURATOR STUDIO (2-COLUMN 62% \/ 38% HIGH-IMPACT STUDIO) -->\n  <div style=\"max-width: 1440px; margin: 0 auto; padding: 2.25rem 2.5rem 5.5rem 2.5rem; box-sizing: border-box; width: 100%;\" class=\"zt-cfg-main-container\">\n    \n    <div style=\"display: grid; grid-template-columns: 1.63fr 1fr; gap: 3rem; align-items: start; box-sizing: border-box;\" class=\"zt-cfg-layout-grid\">\n      \n      <!-- ==============================================================\n           LEFT (~62%): STICKY GRAND PRODUCT STUDIO (STATIONARY WHILE SCROLLING)\n           ============================================================== -->\n      <div class=\"zt-cfg-stage-col\" style=\"display: flex; flex-direction: column; gap: 1rem; width: 100%; position: sticky; top: 94px;\">\n        \n        <!-- Grand Studio Stage Card with Crisp Distinct Border (#CBD5E1) and 700px Height -->\n        <div class=\"zt-hero-canvas-card\" style=\"width: 100%; min-height: 700px; height: 700px; background: radial-gradient(ellipse at 50% 50%, #FFFFFF 0%, #F8FAFC 60%, #EEF2F6 100%); border: 1.5px solid #CBD5E1; border-radius: 20px; box-shadow: 0 16px 40px rgba(15, 23, 42, 0.05), 0 2px 6px rgba(15, 23, 42, 0.03); display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; padding: 1.5rem 1.75rem 1.5rem 1.75rem; box-sizing: border-box;\">\n          \n          <!-- Top Stage HUD -->\n          <div style=\"display: flex; justify-content: space-between; align-items: center; z-index: 5;\">\n            <div style=\"display: flex; align-items: center; gap: 10px;\">\n              <span style=\"font-size: 0.72rem; font-weight: 800; color: #64748B; letter-spacing: 0.12em; text-transform: uppercase;\">STUDIO PERSPECTIVE<\/span>\n              <span id=\"cfg-canvas-model-tag\" style=\"font-size: 0.85rem; font-weight: 800; color: #0F172A; background: #FFFFFF; padding: 3px 10px; border-radius: 6px; border: 1px solid #CBD5E1; box-shadow: 0 1px 3px rgba(0,0,0,0.04);\">ASW-AR-24<\/span>\n            <\/div>\n            <div style=\"font-size: 0.76rem; font-weight: 700; color: #059669; background: #FFFFFF; border: 1px solid #CBD5E1; border-radius: 9999px; padding: 4px 14px; box-shadow: 0 2px 8px rgba(0,0,0,0.03);\">\n              Interactive Viewport\n            <\/div>\n          <\/div>\n\n          <!-- Central Hero Object Stage (Product Image Substantially Enlarged: 600px Max Height Filling Stage) -->\n          <div id=\"cfg-viewer-stage\" style=\"width: 100%; height: 590px; display: flex; align-items: center; justify-content: center; position: relative; z-index: 2; margin: 0; padding: 0;\">\n            <img decoding=\"async\" id=\"cfg-stage-img\" src=\"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-asw-ar-24-hero-render.png\" alt=\"ASW-AR-24 Turnstile\" style=\"max-height: 580px; height: 95%; max-width: 98%; width: auto; object-fit: contain; display: block; filter: drop-shadow(0 32px 42px rgba(15, 23, 42, 0.14)); transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s ease;\" \/>\n          <\/div>\n\n          <!-- Bottom Floating Precision Viewport HUD -->\n          <div style=\"display: flex; justify-content: space-between; align-items: center; z-index: 5;\">\n            <div style=\"font-size: 0.76rem; color: #64748B; font-weight: 600;\">\n              High-precision engineering rendering\n            <\/div>\n            \n            <!-- Glassmorphic Viewport Controls -->\n            <div style=\"display: flex; align-items: center; gap: 6px; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(14px); border: 1px solid #CBD5E1; border-radius: 9999px; padding: 5px 8px; box-shadow: 0 4px 16px rgba(15, 23, 42, 0.08);\">\n              <button id=\"cfg-btn-rotate\" type=\"button\" class=\"zt-viewport-tool-btn\" title=\"Rotate Stage 45\u00b0\">\n                <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21.5 2v6h-6M21.34 15.57a10 10 0 1 1-.57-8.38l5.67-5.67\"\/><\/svg>\n                <span>Rotate<\/span>\n              <\/button>\n              <button id=\"cfg-btn-zoom\" type=\"button\" class=\"zt-viewport-tool-btn\" title=\"Toggle Detail Zoom\">\n                <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><line x1=\"11\" y1=\"8\" x2=\"11\" y2=\"14\"\/><line x1=\"8\" y1=\"11\" x2=\"14\" y2=\"11\"\/><\/svg>\n                <span>Zoom<\/span>\n              <\/button>\n              <button id=\"cfg-btn-reset\" type=\"button\" class=\"zt-viewport-tool-btn\" title=\"Reset Camera View\">\n                <svg width=\"15\" height=\"15\" 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                <span>Reset<\/span>\n              <\/button>\n            <\/div>\n          <\/div>\n\n        <\/div>\n\n      <\/div>\n\n\n      <!-- ==============================================================\n           RIGHT (~38%): NATURALLY SCROLLING CONFIGURATION PANEL\n           ============================================================== -->\n      <div class=\"zt-cfg-panel-col\" style=\"display: flex; flex-direction: column; gap: 1.5rem; width: 100%;\">\n        \n        <!-- Configuration Builder Sections Container (Begins Directly with Section 01, NO Steps Progress Bar) -->\n        <div style=\"background: #FFFFFF; border: 1.5px solid #CBD5E1; border-radius: 16px; box-shadow: 0 4px 20px rgba(15, 23, 42, 0.03); overflow: hidden; display: flex; flex-direction: column;\">\n          \n          <!-- SECTION 01: MATERIAL -->\n          <div class=\"zt-opt-group active\" id=\"sec-step-1\">\n            <div class=\"zt-opt-group-header\" onclick=\"toggleOptionGroup(this)\">\n              <div style=\"display: flex; align-items: center; gap: 12px;\">\n                <span class=\"zt-step-num\">01<\/span>\n                <div>\n                  <div class=\"zt-step-title\">Chassis Metallurgy &amp; Material<\/div>\n                  <div class=\"zt-step-sub\" id=\"sub-label-mat\">SUS304 Stainless Steel<\/div>\n                <\/div>\n              <\/div>\n              <span class=\"zt-step-chevron\">\u25be<\/span>\n            <\/div>\n            <div class=\"zt-opt-group-body\">\n              <div class=\"zt-option-cards-grid\">\n                \n                <div class=\"zt-pill-card active\" data-group=\"mat\" data-val=\"SUS304\" onclick=\"selectSingleOption('mat', 'SUS304', 'SUS304 Stainless Steel', this)\">\n                  <div style=\"display: flex; flex-direction: column; gap: 2px;\">\n                    <span class=\"zt-pill-val\">SUS304<\/span>\n                    <span class=\"zt-pill-desc\">Standard Grade 1.5mm<\/span>\n                  <\/div>\n                  <span class=\"zt-pill-check\">\u2713<\/span>\n                <\/div>\n\n                <div class=\"zt-pill-card\" data-group=\"mat\" data-val=\"SUS316\" onclick=\"selectSingleOption('mat', 'SUS316', 'SUS316 Marine Grade', this)\">\n                  <div style=\"display: flex; flex-direction: column; gap: 2px;\">\n                    <span class=\"zt-pill-val\">SUS316<\/span>\n                    <span class=\"zt-pill-desc\">Marine &amp; Coastal Grade<\/span>\n                  <\/div>\n                  <span class=\"zt-pill-check\">\u2713<\/span>\n                <\/div>\n\n                <div class=\"zt-pill-card\" data-group=\"mat\" data-val=\"Aluminium\" onclick=\"selectSingleOption('mat', 'Aluminium', 'Aluminium Alloy', this)\">\n                  <div style=\"display: flex; flex-direction: column; gap: 2px;\">\n                    <span class=\"zt-pill-val\">Aluminium<\/span>\n                    <span class=\"zt-pill-desc\">Lightweight Alloy<\/span>\n                  <\/div>\n                  <span class=\"zt-pill-check\">\u2713<\/span>\n                <\/div>\n\n              <\/div>\n            <\/div>\n          <\/div>\n\n          <!-- SECTION 02: FINISH -->\n          <div class=\"zt-opt-group active\" id=\"sec-step-2\">\n            <div class=\"zt-opt-group-header\" onclick=\"toggleOptionGroup(this)\">\n              <div style=\"display: flex; align-items: center; gap: 12px;\">\n                <span class=\"zt-step-num\">02<\/span>\n                <div>\n                  <div class=\"zt-step-title\">Surface Architectural Finish<\/div>\n                  <div class=\"zt-step-sub\" id=\"sub-label-fin\">Brushed Hairline<\/div>\n                <\/div>\n              <\/div>\n              <span class=\"zt-step-chevron\">\u25be<\/span>\n            <\/div>\n            <div class=\"zt-opt-group-body\">\n              <div class=\"zt-option-cards-grid\">\n                \n                <div class=\"zt-pill-card active\" data-group=\"fin\" data-val=\"Hairline\" onclick=\"selectSingleOption('fin', 'Hairline', 'Brushed Hairline', this)\">\n                  <div style=\"display: flex; align-items: center; gap: 10px;\">\n                    <div style=\"width: 24px; height: 24px; border-radius: 4px; background: linear-gradient(135deg, #CBD5E1 0%, #94A3B8 50%, #E2E8F0 100%); border: 1px solid #94A3B8;\"><\/div>\n                    <div style=\"display: flex; flex-direction: column; gap: 2px;\">\n                      <span class=\"zt-pill-val\">Hairline<\/span>\n                      <span class=\"zt-pill-desc\">Directional Satin Brushed<\/span>\n                    <\/div>\n                  <\/div>\n                  <span class=\"zt-pill-check\">\u2713<\/span>\n                <\/div>\n\n                <div class=\"zt-pill-card\" data-group=\"fin\" data-val=\"Non-directional Hairline\" onclick=\"selectSingleOption('fin', 'Non-directional Hairline', 'Non-directional Hairline', this)\">\n                  <div style=\"display: flex; align-items: center; gap: 10px;\">\n                    <div style=\"width: 24px; height: 24px; border-radius: 4px; background: radial-gradient(circle, #E2E8F0 20%, #94A3B8 80%); border: 1px solid #94A3B8;\"><\/div>\n                    <div style=\"display: flex; flex-direction: column; gap: 2px;\">\n                      <span class=\"zt-pill-val\">Non-directional<\/span>\n                      <span class=\"zt-pill-desc\">Uniform Velvet Matte<\/span>\n                    <\/div>\n                  <\/div>\n                  <span class=\"zt-pill-check\">\u2713<\/span>\n                <\/div>\n\n              <\/div>\n            <\/div>\n          <\/div>\n\n          <!-- SECTION 03: COLOUR & COATING -->\n          <div class=\"zt-opt-group active\" id=\"sec-step-3\">\n            <div class=\"zt-opt-group-header\" onclick=\"toggleOptionGroup(this)\">\n              <div style=\"display: flex; align-items: center; gap: 12px;\">\n                <span class=\"zt-step-num\">03<\/span>\n                <div>\n                  <div class=\"zt-step-title\">Colour &amp; Architectural Coating<\/div>\n                  <div class=\"zt-step-sub\" id=\"sub-label-col\">Standard Pantone<\/div>\n                <\/div>\n              <\/div>\n              <span class=\"zt-step-chevron\">\u25be<\/span>\n            <\/div>\n            <div class=\"zt-opt-group-body\">\n              <div class=\"zt-option-cards-grid\">\n                \n                <div class=\"zt-pill-card active\" data-group=\"col\" data-val=\"Pantone\" onclick=\"selectSingleOption('col', 'Pantone', 'Standard Pantone', this)\">\n                  <div style=\"display: flex; align-items: center; gap: 10px;\">\n                    <div style=\"width: 24px; height: 24px; border-radius: 50%; background: #0F172A; border: 2px solid #CBD5E1;\"><\/div>\n                    <div style=\"display: flex; flex-direction: column; gap: 2px;\">\n                      <span class=\"zt-pill-val\">Standard Pantone<\/span>\n                      <span class=\"zt-pill-desc\">Corporate Architectural Color<\/span>\n                    <\/div>\n                  <\/div>\n                  <span class=\"zt-pill-check\">\u2713<\/span>\n                <\/div>\n\n                <div class=\"zt-pill-card\" data-group=\"col\" data-val=\"Metallic\" onclick=\"selectSingleOption('col', 'Metallic', 'Metallic Colors', this)\">\n                  <div style=\"display: flex; align-items: center; gap: 10px;\">\n                    <div style=\"width: 24px; height: 24px; border-radius: 50%; background: linear-gradient(135deg, #D4AF37 0%, #AA771C 100%); border: 2px solid #CBD5E1;\"><\/div>\n                    <div style=\"display: flex; flex-direction: column; gap: 2px;\">\n                      <span class=\"zt-pill-val\">Metallic Colors<\/span>\n                      <span class=\"zt-pill-desc\">Titanium, Gold &amp; Bronze PVD<\/span>\n                    <\/div>\n                  <\/div>\n                  <span class=\"zt-pill-check\">\u2713<\/span>\n                <\/div>\n\n              <\/div>\n            <\/div>\n          <\/div>\n\n          <!-- SECTION 04: BARRIER PANEL -->\n          <div class=\"zt-opt-group active\" id=\"sec-step-4\">\n            <div class=\"zt-opt-group-header\" onclick=\"toggleOptionGroup(this)\">\n              <div style=\"display: flex; align-items: center; gap: 12px;\">\n                <span class=\"zt-step-num\">04<\/span>\n                <div>\n                  <div class=\"zt-step-title\">Barrier Wing Panel<\/div>\n                  <div class=\"zt-step-sub\" id=\"sub-label-pan\">Acrylic (10mm)<\/div>\n                <\/div>\n              <\/div>\n              <span class=\"zt-step-chevron\">\u25be<\/span>\n            <\/div>\n            <div class=\"zt-opt-group-body\">\n              <div class=\"zt-option-cards-grid\">\n                \n                <div class=\"zt-pill-card active\" data-group=\"pan\" data-val=\"Acrylic\" onclick=\"selectSingleOption('pan', 'Acrylic', 'Acrylic (10mm)', this)\">\n                  <div style=\"display: flex; flex-direction: column; gap: 2px;\">\n                    <span class=\"zt-pill-val\">Acrylic (10mm)<\/span>\n                    <span class=\"zt-pill-desc\">Lightweight High-Transparency<\/span>\n                  <\/div>\n                  <span class=\"zt-pill-check\">\u2713<\/span>\n                <\/div>\n\n                <div class=\"zt-pill-card\" data-group=\"pan\" data-val=\"Polycarbonate\" onclick=\"selectSingleOption('pan', 'Polycarbonate', 'Polycarbonate', this)\">\n                  <div style=\"display: flex; flex-direction: column; gap: 2px;\">\n                    <span class=\"zt-pill-val\">Polycarbonate<\/span>\n                    <span class=\"zt-pill-desc\">Impact &amp; Shatter Resistant<\/span>\n                  <\/div>\n                  <span class=\"zt-pill-check\">\u2713<\/span>\n                <\/div>\n\n                <div class=\"zt-pill-card\" data-group=\"pan\" data-val=\"Tempered Glass\" onclick=\"selectSingleOption('pan', 'Tempered Glass', 'Tempered Glass', this)\">\n                  <div style=\"display: flex; flex-direction: column; gap: 2px;\">\n                    <span class=\"zt-pill-val\">Tempered Glass<\/span>\n                    <span class=\"zt-pill-desc\">Architectural Toughened 10mm<\/span>\n                  <\/div>\n                  <span class=\"zt-pill-check\">\u2713<\/span>\n                <\/div>\n\n              <\/div>\n            <\/div>\n          <\/div>\n\n          <!-- SECTION 05: INTEGRATION -->\n          <div class=\"zt-opt-group active\" id=\"sec-step-5\">\n            <div class=\"zt-opt-group-header\" onclick=\"toggleOptionGroup(this)\">\n              <div style=\"display: flex; align-items: center; gap: 12px;\">\n                <span class=\"zt-step-num\">05<\/span>\n                <div>\n                  <div class=\"zt-step-title\">Access &amp; Biometric Integrations<\/div>\n                  <div class=\"zt-step-sub\" id=\"sub-label-int\">Card Reader + ZoomFace<\/div>\n                <\/div>\n              <\/div>\n              <span class=\"zt-step-chevron\">\u25be<\/span>\n            <\/div>\n            <div class=\"zt-opt-group-body\">\n              <div class=\"zt-option-cards-grid\">\n                \n                <div class=\"zt-pill-card active\" data-int=\"rfid\" onclick=\"toggleMultiOption('rfid', this)\">\n                  <div style=\"display: flex; flex-direction: column; gap: 2px;\">\n                    <span class=\"zt-pill-val\">Card Reader<\/span>\n                    <span class=\"zt-pill-desc\">RFID \/ NFC Smartcard reader<\/span>\n                  <\/div>\n                  <span class=\"zt-pill-check\">\u2713<\/span>\n                <\/div>\n\n                <div class=\"zt-pill-card\" data-int=\"qr\" onclick=\"toggleMultiOption('qr', this)\">\n                  <div style=\"display: flex; flex-direction: column; gap: 2px;\">\n                    <span class=\"zt-pill-val\">QR Code<\/span>\n                    <span class=\"zt-pill-desc\">Dynamic visitor access scanner<\/span>\n                  <\/div>\n                  <span class=\"zt-pill-check\">\u2713<\/span>\n                <\/div>\n\n                <div class=\"zt-pill-card active\" data-int=\"face\" onclick=\"toggleMultiOption('face', this)\">\n                  <div style=\"display: flex; flex-direction: column; gap: 2px;\">\n                    <span class=\"zt-pill-val\">ZoomFace Facial Recognition<\/span>\n                    <span class=\"zt-pill-desc\">AI biometric terminal integration<\/span>\n                  <\/div>\n                  <span class=\"zt-pill-check\">\u2713<\/span>\n                <\/div>\n\n              <\/div>\n            <\/div>\n          <\/div>\n\n        <\/div>\n\n        <!-- ==============================================================\n             COMPACT BUILD SPECIFICATION SUMMARY CARD\n             ============================================================== -->\n        <div style=\"background: #0F172A; border: 1.5px solid #1E293B; border-radius: 16px; padding: 24px; color: #FFFFFF; box-shadow: 0 12px 36px rgba(15, 23, 42, 0.15); display: flex; flex-direction: column; gap: 1.25rem;\">\n          \n          <div style=\"display: flex; justify-content: space-between; align-items: center;\">\n            <div style=\"display: flex; flex-direction: column; gap: 2px;\">\n              <span style=\"font-size: 0.72rem; font-weight: 800; color: #10B981; letter-spacing: 0.12em; text-transform: uppercase;\">BUILD SPECIFICATION<\/span>\n              <h3 id=\"sum-val-model\" style=\"font-size: 1.35rem; font-weight: 800; color: #FFFFFF; margin: 0;\">ASW-AR-24<\/h3>\n            <\/div>\n            <div style=\"font-size: 0.74rem; font-weight: 700; color: #94A3B8; background: rgba(255, 255, 255, 0.08); padding: 4px 10px; border-radius: 9999px;\">\n              Custom Build\n            <\/div>\n          <\/div>\n\n          <!-- Clean Minimal Spec Summary Rows -->\n          <div style=\"border-top: 1px solid rgba(255,255,255,0.12); border-bottom: 1px solid rgba(255,255,255,0.12); padding: 14px 0; display: flex; flex-direction: column; gap: 8px; font-size: 0.86rem;\">\n            <div style=\"display: flex; justify-content: space-between;\">\n              <span style=\"color: #94A3B8; font-weight: 500;\">Material<\/span>\n              <span id=\"sum-val-mat\" style=\"color: #F8FAFC; font-weight: 700;\">SUS304 Stainless Steel<\/span>\n            <\/div>\n            <div style=\"display: flex; justify-content: space-between;\">\n              <span style=\"color: #94A3B8; font-weight: 500;\">Finish<\/span>\n              <span id=\"sum-val-fin\" style=\"color: #F8FAFC; font-weight: 700;\">Brushed Hairline<\/span>\n            <\/div>\n            <div style=\"display: flex; justify-content: space-between;\">\n              <span style=\"color: #94A3B8; font-weight: 500;\">Colour<\/span>\n              <span id=\"sum-val-col\" style=\"color: #F8FAFC; font-weight: 700;\">Standard Pantone<\/span>\n            <\/div>\n            <div style=\"display: flex; justify-content: space-between;\">\n              <span style=\"color: #94A3B8; font-weight: 500;\">Panel<\/span>\n              <span id=\"sum-val-pan\" style=\"color: #F8FAFC; font-weight: 700;\">Acrylic (10mm)<\/span>\n            <\/div>\n            <div style=\"display: flex; justify-content: space-between;\">\n              <span style=\"color: #94A3B8; font-weight: 500;\">Integration<\/span>\n              <span id=\"sum-val-int\" style=\"color: #10B981; font-weight: 700; text-align: right; max-width: 60%;\">Card reader + ZoomFace<\/span>\n            <\/div>\n          <\/div>\n\n          <!-- Final Prominent Action Button -->\n          <div style=\"display: flex; flex-direction: column; gap: 8px;\">\n            <a id=\"sum-btn-quote\" href=\"https:\/\/www.zoomtech.com.sg\/staging\/contact-new\/\" class=\"zt-cfg-submit-btn\" style=\"text-decoration: none; font-family: 'Plus Jakarta Sans', sans-serif; background-color: #059669; color: #FFFFFF; font-weight: 800; font-size: 0.95rem; padding: 0.95rem 1.75rem; border-radius: 9999px; transition: all 0.2s ease; display: flex; align-items: center; justify-content: center; gap: 8px; box-shadow: 0 4px 18px rgba(5, 150, 105, 0.35);\">\n              <span>REQUEST CONFIGURED QUOTE<\/span>\n              <span style=\"font-size: 1.1rem; line-height: 1;\">&rarr;<\/span>\n            <\/a>\n            <p style=\"font-size: 0.78rem; line-height: 1.45; color: #94A3B8; margin: 0; text-align: center;\">\n              Configure your preferred specification and speak with the Zoom Tech engineering team.\n            <\/p>\n          <\/div>\n\n        <\/div>\n\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n\n<\/div>\n\n<style>\n\/* PORSCHE-INSPIRED PRODUCT CONFIGURATOR STYLES *\/\n.zt-cfg-root {\n  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;\n}\n\n\/* Floating Viewport Tool Button *\/\n.zt-viewport-tool-btn {\n  background: transparent;\n  border: none;\n  outline: none;\n  padding: 6px 12px;\n  border-radius: 9999px;\n  color: #334155;\n  font-size: 0.78rem;\n  font-weight: 700;\n  display: inline-flex;\n  align-items: center;\n  gap: 6px;\n  cursor: pointer;\n  transition: all 0.18s ease;\n}\n.zt-viewport-tool-btn:hover {\n  background: #F1F5F9;\n  color: #059669;\n}\n\n\/* Option Accordion Group *\/\n.zt-opt-group {\n  border-bottom: 1px solid #E2E8F0;\n}\n.zt-opt-group:last-child {\n  border-bottom: none;\n}\n.zt-opt-group-header {\n  padding: 16px 20px;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  cursor: pointer;\n  background: #FFFFFF;\n  transition: background-color 0.15s ease;\n  user-select: none;\n}\n.zt-opt-group-header:hover {\n  background: #F8FAFC;\n}\n.zt-step-num {\n  font-size: 0.8rem;\n  font-weight: 800;\n  color: #059669;\n  font-family: monospace;\n}\n.zt-step-title {\n  font-size: 0.92rem;\n  font-weight: 800;\n  color: #0F172A;\n}\n.zt-step-sub {\n  font-size: 0.78rem;\n  font-weight: 600;\n  color: #64748B;\n  margin-top: 1px;\n}\n.zt-step-chevron {\n  font-size: 0.85rem;\n  color: #94A3B8;\n  transition: transform 0.2s ease;\n}\n.zt-opt-group.active .zt-step-chevron {\n  transform: rotate(180deg);\n}\n.zt-opt-group-body {\n  padding: 0 20px 18px 20px;\n  display: none;\n}\n.zt-opt-group.active .zt-opt-group-body {\n  display: block;\n}\n\n\/* Option Cards Grid *\/\n.zt-option-cards-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));\n  gap: 8px;\n}\n\n\/* Option Pill Card *\/\n.zt-pill-card {\n  background: #FFFFFF;\n  border: 1px solid #CBD5E1;\n  border-radius: 8px;\n  padding: 12px 14px;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  cursor: pointer;\n  transition: all 0.18s ease;\n  user-select: none;\n}\n.zt-pill-card:hover:not(.active) {\n  border-color: #94A3B8;\n  background: #F8FAFC;\n}\n.zt-pill-card.active {\n  border-color: #059669;\n  background: rgba(5, 150, 105, 0.05);\n  box-shadow: 0 0 0 1.5px #059669, 0 2px 8px rgba(5, 150, 105, 0.1);\n}\n.zt-pill-val {\n  font-size: 0.86rem;\n  font-weight: 700;\n  color: #0F172A;\n}\n.zt-pill-card.active .zt-pill-val {\n  color: #059669;\n}\n.zt-pill-desc {\n  font-size: 0.72rem;\n  font-weight: 500;\n  color: #64748B;\n}\n.zt-pill-check {\n  font-size: 0.8rem;\n  font-weight: 800;\n  color: transparent;\n  transition: color 0.15s ease;\n}\n.zt-pill-card.active .zt-pill-check {\n  color: #059669;\n}\n\n\/* Final Submit Button *\/\n.zt-cfg-submit-btn:hover {\n  background-color: #047857 !important;\n  transform: translateY(-1px);\n  box-shadow: 0 6px 22px rgba(5, 150, 105, 0.45) !important;\n}\n\n\/* TABLET RESPONSIVE (768px - 1023px) *\/\n@media (min-width: 768px) and (max-width: 1023px) {\n  #sec-config-top-intro {\n    padding: 1.5rem 0 !important;\n  }\n  .zt-cfg-top-container {\n    padding: 0 2rem !important;\n  }\n  #cfg-display-title {\n    font-size: 2.85rem !important;\n    line-height: 1.1 !important;\n  }\n  .zt-cfg-main-container {\n    padding: 2rem 2rem 4.5rem 2rem !important;\n  }\n  .zt-cfg-layout-grid {\n    grid-template-columns: 1fr !important;\n    gap: 2.5rem !important;\n  }\n  .zt-cfg-stage-col {\n    position: static !important;\n  }\n  .zt-hero-canvas-card {\n    min-height: 520px !important;\n    height: 520px !important;\n  }\n  #cfg-viewer-stage {\n    height: 400px !important;\n  }\n}\n\n\/* MOBILE RESPONSIVE (<= 767px) *\/\n@media (max-width: 767px) {\n  #sec-config-top-intro {\n    padding: 1.25rem 0 !important;\n  }\n  .zt-cfg-top-container {\n    padding: 0 1.25rem !important;\n  }\n  #cfg-display-title {\n    font-size: clamp(2rem, 7.5vw, 2.5rem) !important;\n    line-height: 1.1 !important;\n    word-break: break-word !important;\n  }\n  .zt-cfg-main-container {\n    padding: 1.5rem 1.25rem 4rem 1.25rem !important;\n  }\n  .zt-cfg-layout-grid {\n    grid-template-columns: 1fr !important;\n    gap: 2rem !important;\n  }\n  .zt-cfg-stage-col {\n    position: static !important;\n  }\n  .zt-hero-canvas-card {\n    min-height: 380px !important;\n    height: 380px !important;\n    padding: 1rem !important;\n    border-radius: 14px !important;\n  }\n  #cfg-viewer-stage {\n    height: 270px !important;\n  }\n  .zt-viewport-tool-btn {\n    padding: 4px 8px !important;\n    font-size: 0.72rem !important;\n    gap: 4px !important;\n  }\n  .zt-opt-group-header {\n    padding: 14px 16px !important;\n  }\n  .zt-opt-group-body {\n    padding: 0 16px 14px 16px !important;\n  }\n  .zt-option-cards-grid {\n    grid-template-columns: 1fr !important;\n    gap: 8px !important;\n  }\n  .zt-summary-card {\n    padding: 24px 20px !important;\n    border-radius: 14px !important;\n  }\n  #sum-btn-quote {\n    padding: 0.85rem 1.25rem !important;\n    font-size: 0.88rem !important;\n  }\n}\n\n\/* NARROW MOBILE (<= 360px, e.g. 320px) *\/\n@media (max-width: 360px) {\n  .zt-cfg-top-container,\n  .zt-cfg-main-container {\n    padding-left: 1rem !important;\n    padding-right: 1rem !important;\n  }\n  #cfg-display-title {\n    font-size: 1.85rem !important;\n  }\n  .zt-hero-canvas-card {\n    min-height: 330px !important;\n    height: 330px !important;\n    padding: 0.75rem !important;\n  }\n  #cfg-viewer-stage {\n    height: 230px !important;\n  }\n  .zt-viewport-tool-btn {\n    padding: 3px 6px !important;\n    font-size: 0.68rem !important;\n  }\n  .zt-pill-card {\n    padding: 10px 12px !important;\n  }\n}\n\n\/* CONFIGURATOR GRID FIX *\/\n.zt-cfg-layout-grid > div {\n  min-width: 0 !important;\n}\n\n@media (min-width: 1024px) and (max-width: 1280px) {\n  .zt-cfg-layout-grid {\n    grid-template-columns: 1.45fr 1fr !important;\n    gap: 2rem !important;\n  }\n}\n\n<\/style>\n\n<script>\nvar currentConfigState = {\n  model: \"ASW-AR-24\",\n  mat: \"SUS304\",\n  matLabel: \"SUS304 Stainless Steel\",\n  fin: \"Hairline\",\n  finLabel: \"Brushed Hairline\",\n  col: \"Pantone\",\n  colLabel: \"Standard Pantone\",\n  pan: \"Acrylic\",\n  panLabel: \"Acrylic (10mm)\",\n  int: {\n    rfid: true,\n    qr: false,\n    face: true\n  }\n};\n\nvar productsDatabase = {\"TP-MD-02-A\": {\"slug\": \"tp-md-02-a\", \"code\": \"TP-MD-02-A\", \"name\": \"TRIPOD TURNSTILE\", \"family\": \"TRI\", \"img\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-tp-md-02-a-hero-render.png\", \"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/product\/tp-md-02-a\/\"}, \"ASD-SA-01\": {\"slug\": \"asd-sa-01\", \"code\": \"ASD-SA-01\", \"name\": \"DROP ARM BARRIER\", \"family\": \"SPEED\", \"img\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-asd-sa-01-hero-render.png\", \"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/product\/asd-sa-01\/\"}, \"AFH-AR-01\": {\"slug\": \"afh-ar-01\", \"code\": \"AFH-AR-01\", \"name\": \"FLAP BARRIER\", \"family\": \"WING\", \"img\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-afh-ar-01-hero-render.png\", \"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/product\/afh-ar-01\/\"}, \"ASW-AR-23\": {\"slug\": \"asw-ar-23\", \"code\": \"ASW-AR-23\", \"name\": \"OPTICAL SWING GATE\", \"family\": \"SWING\", \"img\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-asw-ar-23-hero-render.png\", \"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/product\/asw-ar-23\/\"}, \"ASW-AR-24\": {\"slug\": \"asw-ar-24\", \"code\": \"ASW-AR-24\", \"name\": \"OPTICAL SWING GATE\", \"family\": \"SWING\", \"img\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-asw-ar-24-hero-render.png\", \"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/product\/asw-ar-24\/\"}, \"ASW-AR-22\": {\"slug\": \"asw-ar-22\", \"code\": \"ASW-AR-22\", \"name\": \"OPTICAL SWING GATE\", \"family\": \"SWING\", \"img\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-asw-ar-22-hero-render.png\", \"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/product\/asw-ar-22\/\"}, \"ASW-AR-21\": {\"slug\": \"asw-ar-21\", \"code\": \"ASW-AR-21\", \"name\": \"SPEED SWING GATE\", \"family\": \"SPEED\", \"img\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-asw-ar-21-hero-render.png\", \"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/product\/asw-ar-21\/\"}, \"ASW-AR-17\": {\"slug\": \"asw-ar-17\", \"code\": \"ASW-AR-17\", \"name\": \"OPTICAL SWING GATE\", \"family\": \"SWING\", \"img\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-asw-ar-17-hero-render.png\", \"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/product\/asw-ar-17\/\"}, \"ASW-AR-15\": {\"slug\": \"asw-ar-15\", \"code\": \"ASW-AR-15\", \"name\": \"SWING GATE\", \"family\": \"SWING\", \"img\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-asw-ar-15-hero-render.png\", \"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/product\/asw-ar-15\/\"}, \"ASW-AR-11\": {\"slug\": \"asw-ar-11\", \"code\": \"ASW-AR-11\", \"name\": \"SWING GATE\", \"family\": \"SWING\", \"img\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-asw-ar-11-hero-render.png\", \"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/product\/asw-ar-11\/\"}, \"ASW-AR-13\": {\"slug\": \"asw-ar-13\", \"code\": \"ASW-AR-13\", \"name\": \"SPEED SWING GATE\", \"family\": \"SPEED\", \"img\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-asw-ar-13-hero-render.png\", \"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/product\/asw-ar-13\/\"}, \"ASW-AR-09\": {\"slug\": \"asw-ar-09\", \"code\": \"ASW-AR-09\", \"name\": \"SPEED SWING GATE\", \"family\": \"SPEED\", \"img\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-asw-ar-09-hero-render.png\", \"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/product\/asw-ar-09\/\"}, \"SG-AH-01\": {\"slug\": \"sg-ah-01\", \"code\": \"SG-AH-01\", \"name\": \"FULL HEIGHT SWING GATE\", \"family\": \"SWING\", \"img\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-sg-ah-01-hero-render.png\", \"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/product\/sg-ah-01\/\"}, \"FT-FM-90\": {\"slug\": \"ft-fm-90\", \"code\": \"FT-FM-90\", \"name\": \"FULL HEIGHT TURNSTILE\", \"family\": \"MAX\", \"img\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-ft-fm-90-hero-render.png\", \"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/product\/ft-fm-90\/\"}, \"FT-FM-02-B\": {\"slug\": \"ft-fm-02-b\", \"code\": \"FT-FM-02-B\", \"name\": \"FULL HEIGHT TURNSTILE\", \"family\": \"MAX\", \"img\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-ft-fm-02-b-hero-render.png\", \"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/product\/ft-fm-02-b\/\"}, \"FT-FM-02\": {\"slug\": \"ft-fm-02\", \"code\": \"FT-FM-02\", \"name\": \"FULL HEIGHT TURNSTILE\", \"family\": \"MAX\", \"img\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-ft-fm-02-hero-render.png\", \"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/product\/ft-fm-02\/\"}, \"ASW-AR-18\": {\"slug\": \"asw-ar-18\", \"code\": \"ASW-AR-18\", \"name\": \"OPTICAL SWING GATE\", \"family\": \"SWING\", \"img\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-asw-ar-18-hero-render.png\", \"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/product\/asw-ar-18\/\"}, \"SG-AR-02\": {\"slug\": \"sg-ar-02\", \"code\": \"SG-AR-02\", \"name\": \"SWING GATE\", \"family\": \"SWING\", \"img\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-sg-ar-02-hero-render.png\", \"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/product\/sg-ar-02\/\"}, \"SG-AR-01\": {\"slug\": \"sg-ar-01\", \"code\": \"SG-AR-01\", \"name\": \"SWING GATE\", \"family\": \"SWING\", \"img\": \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-sg-ar-01-hero-render.png\", \"url\": \"https:\/\/www.zoomtech.com.sg\/staging\/product\/sg-ar-01\/\"}};\n\nfunction toggleOptionGroup(headerEl) {\n  var group = headerEl.parentElement;\n  group.classList.toggle('active');\n}\n\nfunction selectSingleOption(groupKey, val, label, el) {\n  currentConfigState[groupKey] = val;\n  currentConfigState[groupKey + 'Label'] = label;\n\n  var subLabel = document.getElementById('sub-label-' + groupKey);\n  if (subLabel) subLabel.textContent = label;\n\n  \/\/ Toggle active class on sibling cards\n  var cards = el.parentElement.querySelectorAll('.zt-pill-card');\n  cards.forEach(function(c) { c.classList.remove('active'); });\n  el.classList.add('active');\n\n  \/\/ Trigger subtle stage pulse animation\n  triggerStagePulse();\n\n  updateConfigSummary();\n}\n\nfunction toggleMultiOption(intKey, el) {\n  currentConfigState.int[intKey] = !currentConfigState.int[intKey];\n  el.classList.toggle('active', currentConfigState.int[intKey]);\n\n  triggerStagePulse();\n  updateConfigSummary();\n}\n\nfunction triggerStagePulse() {\n  var stageImg = document.getElementById('cfg-stage-img');\n  if (stageImg) {\n    stageImg.style.opacity = '0.85';\n    setTimeout(function() {\n      stageImg.style.opacity = '1';\n    }, 100);\n  }\n}\n\nfunction updateConfigSummary() {\n  var sumModel = document.getElementById('sum-val-model');\n  var sumMat = document.getElementById('sum-val-mat');\n  var sumFin = document.getElementById('sum-val-fin');\n  var sumCol = document.getElementById('sum-val-col');\n  var sumPan = document.getElementById('sum-val-pan');\n  var sumInt = document.getElementById('sum-val-int');\n  var quoteBtn = document.getElementById('sum-btn-quote');\n\n  if (sumModel) sumModel.textContent = currentConfigState.model;\n  if (sumMat) sumMat.textContent = currentConfigState.matLabel;\n  if (sumFin) sumFin.textContent = currentConfigState.finLabel;\n  if (sumCol) sumCol.textContent = currentConfigState.colLabel;\n  if (sumPan) sumPan.textContent = currentConfigState.panLabel;\n\n  var intList = [];\n  if (currentConfigState.int.rfid) intList.push(\"Card reader\");\n  if (currentConfigState.int.qr) intList.push(\"QR scanner\");\n  if (currentConfigState.int.face) intList.push(\"ZoomFace\");\n  if (!intList.length) intList.push(\"Standard interface\");\n\n  var intStr = intList.join(\" + \");\n  if (sumInt) sumInt.textContent = intStr;\n\n  var subLabelInt = document.getElementById('sub-label-int');\n  if (subLabelInt) subLabelInt.textContent = intStr;\n\n  if (quoteBtn) {\n    var intFormalList = [];\n    if (currentConfigState.int.rfid) intFormalList.push(\"Card Reader\");\n    if (currentConfigState.int.qr) intFormalList.push(\"QR Code\");\n    if (currentConfigState.int.face) intFormalList.push(\"ZoomFace Facial Recognition\");\n    if (!intFormalList.length) intFormalList.push(\"Not specified\");\n\n    var params = new URLSearchParams();\n    params.set('product', currentConfigState.model);\n    params.set('material', currentConfigState.matLabel);\n    params.set('finish', currentConfigState.finLabel);\n    params.set('color', currentConfigState.colLabel);\n    params.set('panel', currentConfigState.panLabel);\n    params.set('integration', intFormalList.join(\", \"));\n\n    quoteBtn.href = \"https:\/\/www.zoomtech.com.sg\/staging\/contact-new\/?\" + params.toString();\n  }\n}\n\nfunction initConfiguratorEngine() {\n  var stageImg = document.getElementById('cfg-stage-img');\n  var displayTitle = document.getElementById('cfg-display-title');\n  var canvasTag = document.getElementById('cfg-canvas-model-tag');\n  var breadcrumbProd = document.getElementById('cfg-breadcrumb-product');\n\n  \/\/ Parse URL parameter ?model=...\n  var urlParams = new URLSearchParams(window.location.search);\n  var rawParam = urlParams.get('model');\n  var targetCode = \"ASW-AR-24\"; \/\/ default fallback\n\n  if (rawParam && rawParam.trim()) {\n    targetCode = rawParam.trim().toUpperCase();\n  }\n\n  var modelData = productsDatabase[targetCode];\n  if (!modelData) {\n    for (var k in productsDatabase) {\n      if (k.toUpperCase() === targetCode.toUpperCase() || productsDatabase[k].slug === rawParam.toLowerCase()) {\n        modelData = productsDatabase[k];\n        targetCode = k;\n        break;\n      }\n    }\n  }\n\n  currentConfigState.model = targetCode;\n\n  if (displayTitle) displayTitle.textContent = targetCode;\n  if (canvasTag) canvasTag.textContent = targetCode;\n\n  if (modelData) {\n    if (breadcrumbProd) {\n      breadcrumbProd.textContent = modelData.code;\n      breadcrumbProd.href = modelData.url;\n    }\n    if (stageImg && modelData.img) {\n      stageImg.src = modelData.img;\n      stageImg.alt = modelData.code + \" Turnstile\";\n    }\n  } else {\n    if (breadcrumbProd) breadcrumbProd.textContent = targetCode;\n    if (stageImg) stageImg.src = \"https:\/\/www.zoomtech.com.sg\/staging\/wp-content\/uploads\/2026\/09\/zoomtech-\" + targetCode.toLowerCase() + \"-hero-render.png\";\n  }\n\n  updateConfigSummary();\n\n  \/\/ Viewport Floating Controls\n  var btnRotate = document.getElementById('cfg-btn-rotate');\n  var btnZoom = document.getElementById('cfg-btn-zoom');\n  var btnReset = document.getElementById('cfg-btn-reset');\n  var rotDeg = 0;\n  var isZ = false;\n\n  if (btnRotate && stageImg) {\n    btnRotate.onclick = function() {\n      rotDeg = (rotDeg + 45) % 360;\n      stageImg.style.transform = (isZ ? 'scale(1.15) ' : '') + 'rotate(' + rotDeg + 'deg)';\n    };\n  }\n  if (btnZoom && stageImg) {\n    btnZoom.onclick = function() {\n      isZ = !isZ;\n      stageImg.style.transform = (isZ ? 'scale(1.15) ' : 'scale(1) ') + 'rotate(' + rotDeg + 'deg)';\n    };\n  }\n  if (btnReset && stageImg) {\n    btnReset.onclick = function() {\n      rotDeg = 0;\n      isZ = false;\n      stageImg.style.transform = 'scale(1) rotate(0deg)';\n    };\n  }\n}\n\nif (document.readyState === 'loading') {\n  document.addEventListener('DOMContentLoaded', initConfiguratorEngine);\n} else {\n  initConfiguratorEngine();\n}\nwindow.addEventListener('load', initConfiguratorEngine);\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-zt_cfg_footer elementor-widget elementor-widget-html\" data-id=\"zt_cfg_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_cfg_whatsapp elementor-widget elementor-widget-html\" data-id=\"zt_cfg_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 -->\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: 52px; height: 52px; background-color: #0F172A; color: #FFFFFF; border: 1.5px solid #059669; border-radius: 50%; box-shadow: 0 8px 24px rgba(15, 23, 42, 0.22); 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;\">\n    <!-- Precision Zoom Tech Assistant Icon (White Chat Console + Emerald Intelligent Core) -->\n    <div id=\"zt-chat-icon-open\" style=\"display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;\">\n      <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" 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\" stroke=\"#FFFFFF\" stroke-width=\"2\"><\/path>\n        <path d=\"M12 7.5l1 2.2 2.2 1-2.2 1-1 2.2-1-2.2-2.2-1 2.2-1 1-2.2z\" fill=\"#10B981\" stroke=\"#10B981\" stroke-width=\"0.5\"><\/path>\n      <\/svg>\n    <\/div>\n    <!-- Subtle Live Status Indicator Point -->\n    <span style=\"position: absolute; top: 2px; right: 2px; width: 9px; height: 9px; background: #10B981; border: 2px solid #0F172A; border-radius: 50%;\"><\/span>\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: 88px; right: 24px; z-index: 999999; 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;\">\n      \n      <!-- Left: Mobile Back Button + Brand Badge -->\n      <div style=\"display: flex; align-items: center; gap: 10px;\">\n        \n        <!-- Mobile Back Control (Visible only on mobile <= 767px) -->\n        <button id=\"zt-chat-btn-mobile-back\" type=\"button\" aria-label=\"Back to website\" style=\"display: none; background: transparent; border: none; color: #0F172A; cursor: pointer; padding: 6px 8px 6px 0; align-items: center; gap: 4px; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 0.84rem; font-weight: 700;\">\n          <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n            <polyline points=\"15 18 9 12 15 6\"><\/polyline>\n          <\/svg>\n          <span>Back<\/span>\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;\">\n          <div style=\"font-size: 0.90rem; font-weight: 800; color: #0F172A; letter-spacing: 0.01em; line-height: 1.2;\">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;\"><\/span>\n            <span>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;\">\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; padding: 6px; display: flex; align-items: center; justify-content: center; border-radius: 6px; transition: all 0.15s ease;\">\n          <svg width=\"15\" height=\"15\" 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; padding: 6px; 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=\"18\" height=\"18\" 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 10px 28px rgba(15, 23, 42, 0.28);\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 {\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-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: 88px !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  }\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: 84px !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  }\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: 50px !important;\n    height: 50px !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: 999999 !important;\n  }\n\n  #zt-chat-btn-mobile-back {\n    display: inline-flex !important;\n  }\n\n  #zt-chat-header {\n    padding: 12px 14px !important;\n  }\n\n  #zt-chat-form {\n    padding-bottom: max(10px, env(safe-area-inset-bottom, 10px)) !important;\n  }\n\n  body.zt-compare-tray-visible #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>INTERACTIVE SPECIFICATION ENGINE 360\u00b0 Product Configurator Framework Configure ZoomGate entrance barriers, materials, architectural finishes, and access integrations. Architected for future BIM-ready 3D interactive assets. 3D \/ BIM ASSET SLOT \u2014 360\u00b0 READY \ud83d\udd04 Rotate \ud83d\udd0d Zoom \u2194 Pan Showing standard baseline preview. Framework structured to plug in GLB\/GLTF 3D interactive models upon asset delivery. 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-1175","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.zoomtech.com.sg\/staging\/wp-json\/wp\/v2\/pages\/1175","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=1175"}],"version-history":[{"count":4,"href":"https:\/\/www.zoomtech.com.sg\/staging\/wp-json\/wp\/v2\/pages\/1175\/revisions"}],"predecessor-version":[{"id":1334,"href":"https:\/\/www.zoomtech.com.sg\/staging\/wp-json\/wp\/v2\/pages\/1175\/revisions\/1334"}],"wp:attachment":[{"href":"https:\/\/www.zoomtech.com.sg\/staging\/wp-json\/wp\/v2\/media?parent=1175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}