{"id":9722,"date":"2025-09-23T09:32:32","date_gmt":"2025-09-23T09:32:32","guid":{"rendered":"https:\/\/www.eviewconnect.com\/?page_id=9722"},"modified":"2026-08-13T07:31:05","modified_gmt":"2026-08-13T07:31:05","slug":"app","status":"publish","type":"page","link":"https:\/\/www.eviewconnect.com\/ja\/app\/","title":{"rendered":"\u30a2\u30d7\u30ea"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"9722\" class=\"elementor elementor-9722\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1e8a513 e-flex e-con-boxed e-con e-parent\" data-id=\"1e8a513\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-67a83da elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"67a83da\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Smart Locator: Enterprise Device Management Platform &amp; APP<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9805d10 e-con-full e-flex e-con e-child\" data-id=\"9805d10\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2f1e9fe elementor-widget elementor-widget-html\" data-id=\"2f1e9fe\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"UTF-8\">\n    <title>App Download Buttons<\/title>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@400;600;700&display=swap\" rel=\"stylesheet\">\n    <style>\n        \/* reset \u4ec5\u4f5c\u7528\u4e8e\u6309\u94ae\u6a21\u5757\u5185\u90e8\uff0c\u907f\u514d\u5f71\u54cd WordPress \u5176\u4ed6\u6a21\u5757 *\/\n        .download-btn-group,\n        .download-btn-group *,\n        .download-btn-group *::before,\n        .download-btn-group *::after {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n        }\n\n        \/* \u6ce8\u610f\uff1a\u4e0d\u5199 body \u89c4\u5219\u3002\u5d4c\u5165 WordPress \u65f6 body \u9009\u62e9\u5668\u4f1a\u4f5c\u7528\u4e8e\n           \u4e3b\u9898\u7684 <body>\uff0c\u7ed9\u6574\u9875\u52a0\u80cc\u666f\u8272\/\u5185\u8fb9\u8ddd\uff0c\u5bfc\u81f4\u5176\u4ed6\u6a21\u5757\u88ab\u6491\u9ad8\u3001\n           \u5e03\u5c40\u9519\u4e71\u3002\u6837\u5f0f\u53ea\u4f5c\u7528\u4e8e\u6a21\u5757\u5bb9\u5668 .download-btn-group\u3002\n           \u72ec\u7acb\u9884\u89c8\u65f6\u5982\u9700\u80cc\u666f\uff0c\u53ef\u5728\u9875\u9762\u5bb9\u5668\u4e0a\u4e34\u65f6\u52a0\u80cc\u666f\u8272\u3002 *\/\n\n        .download-btn-group {\n            font-family: \"Montserrat\";\n            display: flex;\n            flex-direction: column;\n            gap: 20px;\n        }\n\n        .download-btn {\n            width: 100%;\n            max-width: 220px;\n            height: 64px;\n            background: linear-gradient(90deg, #36c2b8 0%, #1b3b64 100%);\n            border-radius: 12px;\n            \/* \u5916\u5c42\u6d45\u8272\u7ec6\u8fb9\u6846 *\/\n            box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.45);\n            display: flex;\n            align-items: center;\n            padding: 0 16px;\n            color: #ffffff;\n            cursor: pointer;\n            user-select: none;\n            text-decoration: none;\n            -webkit-tap-highlight-color: transparent;\n            \/* \u60ac\u505c\u52a8\u6548 *\/\n            transition: transform 0.25s ease, box-shadow 0.25s ease, filter 0.25s ease;\n            will-change: transform;\n        }\n\n        \/* \u60ac\u505c\uff1a\u4e0a\u6d6e + \u5149\u6655 + \u63d0\u4eae *\/\n        .download-btn:hover {\n            transform: translateY(-3px);\n            box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.45),\n                0 10px 20px rgba(27, 59, 100, 0.35);\n            filter: brightness(1.06);\n        }\n\n        \/* \u6309\u4e0b\uff1a\u56de\u5f39\u538b\u611f *\/\n        .download-btn:active {\n            transform: translateY(-1px) scale(0.985);\n            box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.45),\n                0 4px 10px rgba(27, 59, 100, 0.25);\n            filter: brightness(0.98);\n        }\n\n        \/* ============================================================\n           \u5d4c\u5165 WP \u517c\u5bb9\uff08\u91cd\u8981\uff09\uff1a\n           WordPress \u4e3b\u9898\u5e38\u76f4\u63a5\u5bf9 a \/ .content a \u8bbe\u7f6e color\u3001background\u3001\n           text-decoration\u3001display \u7b49\u6837\u5f0f\uff0c\u4f18\u5148\u7ea7\u4e0e\u52a0\u8f7d\u987a\u5e8f\u90fd\u4f1a\u76d6\u8fc7\n           .download-btn \u4e0a\u7684\u5b9a\u4e49\u3002\u8fd9\u91cc\u7528\u9ad8\u7279\u5f02\u6027\u9009\u62e9\u5668 + !important\n           \u515c\u5e95\uff0c\u786e\u4fdd\u5d4c\u5165\u4e3b\u9898\u540e\u6309\u94ae\u89c6\u89c9\u4e0e\u672c\u7ad9\u4e00\u81f4\u3002\n           ============================================================ *\/\n        a.download-btn {\n            display: flex !important;\n            box-sizing: border-box !important;\n            text-decoration: none !important;\n            background: linear-gradient(90deg, #36c2b8 0%, #1b3b64 100%) !important;\n        }\n        a.download-btn,\n        a.download-btn .big-text,\n        a.download-btn .small-text,\n        a.download-btn:link .big-text,\n        a.download-btn:link .small-text,\n        a.download-btn:visited .big-text,\n        a.download-btn:visited .small-text,\n        a.download-btn:hover .big-text,\n        a.download-btn:hover .small-text,\n        a.download-btn:active .big-text,\n        a.download-btn:active .small-text {\n            color: #ffffff !important;\n        }\n\n        \/* \u56fe\u6807\u5fae\u52a8\uff1a\u60ac\u505c\u65f6\u56fe\u6807\u8f7b\u5fae\u653e\u5927 *\/\n        .download-btn .icon {\n            transition: transform 0.25s ease;\n        }\n        .download-btn:hover .icon {\n            transform: scale(1.08);\n        }\n\n        .download-btn .icon {\n            width: 40px;\n            height: 40px;\n            flex-shrink: 0;\n            margin-right: 12px;\n        }\n\n        \/* \u81ea\u5b9a\u4e49\u56fe\u6807\uff08icon \u914d\u7f6e\u4e3a\u56fe\u7247 URL \u65f6\uff09 *\/\n        .download-btn .icon img {\n            width: 100%;\n            height: 100%;\n            object-fit: contain;\n            display: block;\n        }\n\n        \/* \u81ea\u5b9a\u4e49\u56fe\u6807\uff08icon \u914d\u7f6e\u4e3a\u56fe\u7247 URL \u65f6\uff09 *\/\n        .download-btn .icon img {\n            width: 100%;\n            height: 100%;\n            object-fit: contain;\n            display: block;\n        }\n\n        .btn-text-wrap {\n            display: flex;\n            flex-direction: column;\n            justify-content: center;\n        }\n\n        .small-text {\n            font-size: 12px;\n            opacity: 0.95;\n            line-height: 1;\n            white-space: nowrap;\n        }\n\n        .big-text {\n            font-size: 20px;\n            font-weight: 600;\n            line-height: 1.1;\n            white-space: nowrap;\n        }\n\n        \/* ========== \u79fb\u52a8\u7aef\u9002\u914d ========== *\/\n\n        \/* \u5e73\u677f \/ \u5c0f\u5c4f\u7b14\u8bb0\u672c *\/\n        @media (max-width: 768px) {\n\n            .download-btn {\n                height: 56px;\n                padding: 0 14px;\n            }\n\n            .download-btn .icon {\n                width: 34px;\n                height: 34px;\n                margin-right: 10px;\n            }\n\n            .small-text {\n                font-size: 11px;\n            }\n\n            .big-text {\n                font-size: 18px;\n            }\n        }\n\n        \/* \u624b\u673a *\/\n        @media (max-width: 480px) {\n\n            .download-btn {\n                height: 50px;\n                padding: 0 12px;\n                border-radius: 10px;\n            }\n\n            .download-btn .icon {\n                width: 30px;\n                height: 30px;\n                margin-right: 8px;\n            }\n\n            .small-text {\n                font-size: 10px;\n            }\n\n            .big-text {\n                font-size: 16px;\n            }\n        }\n\n        \/* \u89e6\u5c4f\u8bbe\u5907\uff1a\u7981\u7528 hover \u60ac\u505c\u7c98\u6ede\uff08\u4fdd\u7559\u70b9\u51fb\u6309\u538b\u7f29\u611f\uff09 *\/\n        @media (hover: none) {\n            .download-btn:hover {\n                transform: none;\n                box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.45);\n                filter: none;\n            }\n\n            .download-btn:hover .icon {\n                transform: none;\n            }\n        }\n    <\/style>\n<\/head>\n\n<body>\n    <div class=\"download-btn-group\">\n        <!-- App Store \u6309\u94ae -->\n        <a class=\"download-btn\" id=\"btn-ios\" href=\"#\" target=\"_blank\" rel=\"noopener\">\n            <svg class=\"icon\" viewBox=\"0 0 24 24\" fill=\"#fff\">\n                <path\n                    d=\"M18.71 19.5c-.83 1.24-1.71 2.45-3.05 2.47-1.34.03-1.77-.79-3.29-.79-1.53 0-2 .77-3.27.82-1.31.05-2.3-1.32-3.14-2.53C4.25 17 2.94 12.45 4.7 9.39c.87-1.52 2.43-2.48 4.12-2.51 1.28-.02 2.5.87 3.29.87.78 0 2.26-1.07 3.81-.91.65.03 2.47.26 3.64 1.98-.09.06-2.17 1.28-2.15 3.81.03 3.02 2.65 4.05 2.68 4.06-.03.07-.42 1.44-1.38 2.83M13 3.5c.73-.83 1.94-1.46 2.94-1.5.13 1.17-.34 2.35-1.04 3.19-.69.85-1.83 1.51-2.95 1.42-.15-1.15.41-2.35 1.05-3.11z\" \/>\n            <\/svg>\n            <div class=\"btn-text-wrap\">\n                <div class=\"small-text\" id=\"btn-ios-subtitle\">Download on the<\/div>\n                <div class=\"big-text\" id=\"btn-ios-title\">APP Store<\/div>\n            <\/div>\n        <\/a>\n\n        <!-- Android \u6309\u94ae -->\n        <a class=\"download-btn\" id=\"btn-android\" href=\"#\" target=\"_blank\" rel=\"noopener\">\n            <svg class=\"icon\" viewBox=\"0 0 24 24\" fill=\"#fff\">\n                <path\n                    d=\"M17.523 15.3414c-.5511 0-.9993.4486-.9993.9999s.4482.9993.9993.9993c.5517 0 .9999-.448.9999-.9993 0-.5513-.4482-.9999-.9999-.9999m-11.046 0c-.5517 0-.9999.4486-.9999.9999s.4482.9993.9999.9993c.5511 0 .9993-.448.9993-.9993 0-.5513-.4482-.9999-.9993-.9999m11.4045-6.02l1.9973-3.459a.416.416 0 00-.1521-.5676.416.416 0 00-.5676.1521l-2.0223 3.503C15.5902 8.2439 13.8533 7.8508 12 7.8508s-3.5902.3931-5.1366 1.0991L4.8411 5.4469a.4161.4161 0 00-.5677-.1521.4157.4157 0 00-.1521.5676l1.9973 3.459C2.6887 11.1867.3432 14.6589 0 18.761h24c-.3435-4.1021-2.6889-7.5743-6.1185-9.4396M7 18.125h-.875v-5.25H7v5.25zm10.875 0H17v-5.25h.875v5.25z\" \/>\n            <\/svg>\n            <div class=\"btn-text-wrap\">\n                <div class=\"small-text\" id=\"btn-android-subtitle\" style=\"display:none\"><\/div>\n                <div class=\"big-text\" id=\"btn-android-title\">Android<\/div>\n            <\/div>\n        <\/a>\n    <\/div>\n\n            <script>\n        \/\/ ============================================================\n        \/\/ \u6309\u94ae\u914d\u7f6e\uff08\u8fd0\u8425\u7ef4\u62a4\u533a\uff09\n        \/\/ \u65b9\u5f0f\u4e00\uff1a\u76f4\u63a5\u4fee\u6539\u4e0b\u65b9 DOWNLOAD_CONFIG\uff08\u5d4c\u5165 WP \u524d\u6539\u597d\u5373\u53ef\uff09\n        \/\/   url      - \u4e0b\u8f7d\u94fe\u63a5\n        \/\/   title    - \u4e3b\u6807\u9898\uff08\u6309\u94ae\u540d\u79f0\uff0c\u5fc5\u586b\uff09\n        \/\/   subtitle - \u526f\u6807\u9898\uff1b\u7559\u7a7a\u5219\u4e0d\u663e\u793a\uff0c\u6309\u94ae\u4ec5\u5c55\u793a\u4e3b\u6807\u9898\n        \/\/   icon     - \u81ea\u5b9a\u4e49\u56fe\u6807\u56fe\u7247 URL\uff1b\u7559\u7a7a\u4f7f\u7528\u5185\u7f6e\u54c1\u724c SVG\n        \/\/ ============================================================\n        var DOWNLOAD_CONFIG = {\n            ios: {\n                url: 'https:\/\/apps.apple.com\/us\/app\/smart-locator\/id1160196225',\n                title: 'App Store',\n                subtitle: 'Download on the',\n                icon: ''\n            },\n            android: {\n                url: 'https:\/\/play.google.com\/store\/search?q=smart%20locator&c=apps&utm_source=na_Med',\n                title: 'Android',\n                subtitle: '',\n                icon: ''\n            }\n        };\n\n        \/\/ \u65b9\u5f0f\u4e8c\uff08\u63a8\u8350\uff09\uff1a\u5d4c\u5165 WP \u65f6\u901a\u8fc7 URL \u53c2\u6570\u8986\u76d6\uff0c\u65e0\u9700\u6539\u4ee3\u7801\n        \/\/ \u53c2\u6570\u547d\u540d\u9075\u5faa kebab-case \u89c4\u8303\uff1a<\u5e73\u53f0>_<\u5b57\u6bb5>\n        \/\/   \u5e73\u53f0: ios \/ android\n        \/\/   \u5b57\u6bb5: url \/ title \/ subtitle \/ icon\uff08subtitle\u3001icon \u4f20\u7a7a\u503c\u53ef\u6e05\u9664\uff09\n        \/\/ \u4f8b: <iframe src=\"buttons.html?ios_url=...&ios_title=...&ios_subtitle=...&ios_icon=...\"><\/iframe>\n        (function () {\n            try {\n                var p = new URLSearchParams(location.search);\n                ['ios', 'android'].forEach(function (key) {\n                    var cfg = DOWNLOAD_CONFIG[key];\n                    var url = p.get(key + '_url'); if (url) cfg.url = url;\n                    var title = p.get(key + '_title'); if (title) cfg.title = title;\n                    var subtitle = p.get(key + '_subtitle'); if (subtitle !== null) cfg.subtitle = subtitle;\n                    var icon = p.get(key + '_icon'); if (icon !== null) cfg.icon = icon;\n                });\n            } catch (e) {}\n        })();\n\n        function applyLinks() {\n            ['ios', 'android'].forEach(function (key) {\n                var btn = document.getElementById('btn-' + key);\n                if (btn) btn.href = DOWNLOAD_CONFIG[key].url;\n            });\n        }\n\n        \/\/ \u6587\u6848\uff1a\u4e3b\u6807\u9898 + \u526f\u6807\u9898\uff1b\u65e0\u526f\u6807\u9898\u65f6\u4ec5\u5c55\u793a\u4e3b\u6807\u9898\n        function applyTexts() {\n            ['ios', 'android'].forEach(function (key) {\n                var cfg = DOWNLOAD_CONFIG[key];\n                var titleEl = document.getElementById('btn-' + key + '-title');\n                var subEl = document.getElementById('btn-' + key + '-subtitle');\n                if (titleEl) titleEl.textContent = cfg.title;\n                if (subEl) {\n                    if (cfg.subtitle) {\n                        subEl.textContent = cfg.subtitle;\n                        subEl.style.display = '';\n                    } else {\n                        subEl.style.display = 'none';\n                    }\n                }\n            });\n        }\n\n        \/\/ \u56fe\u6807\uff1a\u914d\u7f6e\u4e86\u56fe\u7247 URL \u5219\u66ff\u6362\u5185\u7f6e SVG\uff0c\u5426\u5219\u4f7f\u7528\u5185\u7f6e\u54c1\u724c\u56fe\u6807\n        function applyIcons() {\n            ['ios', 'android'].forEach(function (key) {\n                var cfg = DOWNLOAD_CONFIG[key];\n                var btn = document.getElementById('btn-' + key);\n                if (!btn) return;\n                var svg = btn.querySelector('svg.icon');\n                var img = btn.querySelector('img.icon-img');\n                if (cfg.icon) {\n                    if (!img) {\n                        img = document.createElement('img');\n                        img.className = 'icon-img';\n                        btn.insertBefore(img, btn.firstChild);\n                    }\n                    img.src = cfg.icon;\n                    img.alt = cfg.title + ' icon';\n                    if (svg) svg.style.display = 'none';\n                } else if (img) {\n                    img.remove();\n                    if (svg) svg.style.display = '';\n                }\n            });\n        }\n\n        \/\/ \u6587\u5b57\u4e0d\u6362\u884c\uff1a\u653e\u4e0d\u4e0b\u65f6\u81ea\u52a8\u7f29\u5c0f\u5b57\u53f7\n        function fitText(el, maxSize) {\n            if (!el) return;\n            var size = maxSize;\n            el.style.fontSize = size + 'px';\n            while (el.scrollWidth > el.clientWidth && size > 12) {\n                size -= 1;\n                el.style.fontSize = size + 'px';\n            }\n        }\n\n        function fitAll() {\n            document.querySelectorAll('.download-btn').forEach(function (btn) {\n                \/\/ \u65e0\u526f\u6807\u9898\u65f6\u4e3b\u6807\u9898\u53ef\u52a0\u5927 2px\n                var noSubtitle = false;\n                var subEl = btn.querySelector('.small-text');\n                if (subEl && getComputedStyle(subEl).display === 'none') noSubtitle = true;\n                ['.small-text', '.big-text'].forEach(function (sel) {\n                    var el = btn.querySelector(sel);\n                    if (!el) return;\n                    \/\/ \u5148\u6e05\u9664\u5185\u8054\u7f29\u653e\uff0c\u53d6 CSS\uff08\u542b\u5a92\u4f53\u67e5\u8be2\uff09\u5b9a\u4e49\u7684\u5b57\u53f7\u4f5c\u4e3a\u4e0a\u9650\n                    el.style.fontSize = '';\n                    var maxSize = parseFloat(getComputedStyle(el).fontSize);\n                    if (noSubtitle && sel === '.big-text') maxSize += 6;\n                    fitText(el, maxSize);\n                });\n            });\n        }\n\n        window.addEventListener('load', function () {\n            applyLinks();\n            applyTexts();\n            applyIcons();\n            fitAll();\n        });\n        window.addEventListener('resize', fitAll);\n        applyLinks();\n        applyTexts();\n        applyIcons();\n        fitAll();\n    <\/script>\n<\/body>\n\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-86b93f0 e-flex e-con-boxed e-con e-parent\" data-id=\"86b93f0\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-e1eeccd e-con-full e-flex e-con e-child\" data-id=\"e1eeccd\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dd2c434 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"dd2c434\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"margin: 0; font-family: Montserrat, sans-serif; font-size: 20px; font-weight: 600; line-height: 28px; color: #123b69;\"><br \/><span style=\"display: inline-block; font-family: Montserrat, sans-serif; font-size: 36px; font-weight: 600; line-height: 28px; vertical-align: baseline;\">Access<\/span> the platform directly at smart-locator.com. Available on Web browsers, iOS, and Android. Compatible with all Eview enterprise tracking terminals.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-63bfcfc elementor-align-center elementor-widget elementor-widget-button\" data-id=\"63bfcfc\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.smart-locator.com\uff09\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M6 2L15 10L6 18\" stroke=\"#4CC7C4\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Web Portal<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e6358b7 e-flex e-con-boxed e-con e-parent\" data-id=\"e6358b7\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-204abb0 elementor-widget elementor-widget-html\" data-id=\"204abb0\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"UTF-8\" \/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n    <title>Highlights<\/title>\n\n    <!-- Montserrat \u5b57\u4f53 CDN -->\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\" \/>\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin \/>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@400;500;600;700&display=swap\"\n        rel=\"stylesheet\" \/>\n    <!-- Font Awesome CDN -->\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.2\/css\/all.min.css\" \/>\n\n    <style>\n        * {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n        }\n\n        body {\n            font-family: \"Montserrat\", sans-serif;\n            background: linear-gradient(180deg, #FFFFFF 0%, #E7F9FD 100%);\n            min-height: 100vh;\n            color: #15395E;\n        }\n\n        .hl {\n            max-width: 1440px;\n            margin: 0 auto;\n            \/* \u5de6\u53f3 padding \u4ea4\u7ed9 WordPress \u5916\u5c42\u5bb9\u5668 *\/\n            padding: 40px 0 0px;\n            text-align: center;\n        }\n\n        \/* ========== \u6807\u9898 + \u7b80\u4ecb ========== *\/\n        .hl__title {\n            font-size: 40px;\n            font-weight: 700;\n            font-style: normal;\n            color: #15395E;\n            margin-bottom: 20px;\n        }\n\n        .hl__intro {\n            max-width: 940px;\n            margin: 0 auto 30px;\n            font-family: \"Montserrat\", sans-serif;\n            font-size: 16px;\n            font-weight: 600;\n            font-style: normal;\n            line-height: 22px;\n            color: #15395E;\n        }\n\n        \/* ========== \u624b\u673a\u6837\u673a\uff08JS \u6309 Tab \u6e32\u67d3\u5bf9\u5e94\u56fe\u7247\uff09 ========== *\/\n        .hl__phone {\n            width: 230px;\n            height: 442px;\n            margin: 0 auto 24px;\n            border-radius: 44px;\n            \/* background: #ffffff; *\/\n            \/* box-shadow: 0 18px 44px rgba(21, 57, 94, 0.12); *\/\n            overflow: hidden;\n            position: relative;\n            \/* 3D \u9f20\u6807\u8ddf\u968f\uff08JS \u8bbe\u7f6e rotateX \/ rotateY\uff09 *\/\n            transform-style: preserve-3d;\n            transition: transform 0.25s ease;\n        }\n\n        @media (hover: hover) {\n            .hl__phone {\n                will-change: transform;\n            }\n        }\n\n        .hl__phone-img {\n            position: absolute;\n            inset: 0;\n            width: 100%;\n            height: 100%;\n            object-fit: cover;\n        }\n\n        \/* \u5207\u6362 Tab \u6362\u56fe\uff1a\u65b0\u56fe\u653e\u5927\u6de1\u5165\u3001\u65e7\u56fe\u7f29\u5c0f\u6de1\u51fa\uff08\u4ea4\u53c9\u8fc7\u6e21\uff09 *\/\n        .hl__phone-img.is-entering {\n            animation: phoneEnter 0.35s cubic-bezier(0.22, 1, 0.36, 1) both;\n        }\n\n        .hl__phone-img.is-leaving {\n            animation: phoneLeave 0.25s ease-in both;\n        }\n\n        @keyframes phoneEnter {\n            from {\n                opacity: 0;\n                transform: scale(1.06);\n            }\n            to {\n                opacity: 1;\n                transform: scale(1);\n            }\n        }\n\n        @keyframes phoneLeave {\n            from {\n                opacity: 1;\n                transform: scale(1);\n            }\n            to {\n                opacity: 0;\n                transform: scale(0.96);\n            }\n        }\n\n        \/* ========== Tab \u6807\u7b7e\u680f ========== *\/\n        .hl__tabs {\n            display: flex;\n            justify-content: center;\n            \/* flex-wrap: wrap; *\/\n            gap: 14px;\n            max-width: 940px;\n            margin: 0 auto 36px;\n        }\n\n        .hl__tab {\n            display: inline-flex;\n            align-items: center;\n            gap: 10px;\n            padding: 14px 26px;\n            border: 0;\n            border-radius: 20px;\n            background: transparent;\n            font-family: \"Montserrat\", sans-serif;\n            font-size: 18px;\n            font-weight: 500;\n            font-style: normal;\n            color: #15395E66;\n            cursor: pointer;\n            box-shadow: none;\n            transition: background 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;\n        }\n\n        .hl__tab i {\n            font-size: 24px;\n            color: #15395E66;\n            transition: color 0.25s ease;\n        }\n\n        \/* \u6fc0\u6d3b\uff1a\u767d\u5e95\u9ad8\u4eae + \u6df1\u84dd\u6587\u5b57\u56fe\u6807\uff08\u5b57\u91cd\u4e0e\u672a\u6fc0\u6d3b\u4e00\u81f4\uff0c\u4ec5\u989c\u8272\u533a\u5206\uff0c\u907f\u514d\u5207\u6362\u65f6\u5bbd\u5ea6\u53d8\u5316\uff09 *\/\n        .hl__tab.is-active {\n            background: #ffffff;\n            font-family: \"Montserrat\", sans-serif;\n            font-size: 18px;\n            font-weight: 500;\n            font-style: normal;\n            color: #15395E;\n            box-shadow: 0 8px 24px rgba(21, 57, 94, 0.12);\n        }\n\n        .hl__tab.is-active i {\n            color: #4CC7C4;\n        }\n\n        \/* \u5df2\u6fc0\u6d3b\u6309\u94ae hover \u4fdd\u6301\u767d\u5e95\uff08\u4e0d\u88ab hover \u900f\u660e\u80cc\u666f\u8986\u76d6\uff09 *\/\n        .hl__tab.is-active:hover {\n            background: #ffffff;\n        }\n\n        .hl__tab:hover {\n            \/* \u663e\u5f0f\u8986\u76d6\u80cc\u666f\uff0c\u9632\u6b62 WordPress \u5168\u5c40 button:hover \u80cc\u666f\u6e17\u900f *\/\n            color: #15395E;\n            background-color: transparent;\n        }\n\n        .hl__tab:active {\n            \/* \u663e\u5f0f\u8986\u76d6\uff0c\u9632\u6b62 WordPress \u5168\u5c40 button:active \u6837\u5f0f\u6e17\u900f *\/\n            background-color: transparent;\n            transform: none;\n        }\n\n        .hl__tab:focus-visible {\n            outline: 2px solid #4CC7C4;\n            outline-offset: 2px;\n        }\n\n        \/* ========== \u8be6\u60c5\u63cf\u8ff0 ========== *\/\n        .hl__desc {\n            max-width: 940px;\n            margin: 0 auto;\n            min-height: 76px;\n            font-family: \"Montserrat\", sans-serif;\n            font-size: 18px;\n            font-weight: 600;\n            font-style: normal;\n            line-height: 1.8;\n            color: #15395E;\n            transition: opacity 0.25s ease, transform 0.25s ease;\n        }\n\n        \/* \u63cf\u8ff0\u9010\u8bcd\u63ed\u793a\uff1a\u6bcf\u4e2a\u8bcd\u5e26\u9012\u589e\u5ef6\u8fdf\u4e0a\u79fb\u6de1\u5165 *\/\n        .hl__desc .hl__word {\n            display: inline-block;\n            opacity: 0;\n            transform: translateY(10px);\n            transition: opacity 0.4s ease, transform 0.4s ease;\n        }\n\n        .hl__desc.is-anim .hl__word {\n            opacity: 1;\n            transform: translateY(0);\n        }\n\n        \/* ========== \u54cd\u5e94\u5f0f ========== *\/\n        @media (max-width: 640px) {\n            .hl {\n                \/* \u5de6\u53f3 padding \u4ea4\u7ed9 WordPress \u5916\u5c42\u5bb9\u5668 *\/\n                padding: 40px 0 56px;\n                \/* iPhone \u5e95\u90e8\u5b89\u5168\u533a\u9002\u914d *\/\n                padding-bottom: calc(56px + env(safe-area-inset-bottom));\n            }\n\n            .hl__title {\n                font-size: 32px;\n            }\n\n            .hl__phone {\n                width: 240px;\n                height: 480px;\n            }\n\n            .hl__tabs {\n                flex-wrap: wrap; \/* \u79fb\u52a8\u7aef\u6362\u884c\uff0c\u907f\u514d Tab \u6a2a\u5411\u6ea2\u51fa *\/\n                gap: 10px;\n            }\n\n            .hl__tab {\n                padding: 12px 18px;\n                font-size: 14px;\n                \/* \u53bb\u6389\u79fb\u52a8\u7aef\u70b9\u6309\u9ad8\u4eae\u95ea\u70c1 *\/\n                -webkit-tap-highlight-color: transparent;\n            }\n\n            .hl__tab:active {\n                background: rgba(76, 199, 196, 0.14);\n            }\n\n            .hl__tab i {\n                font-size: 16px;\n            }\n\n            .hl__desc {\n                font-size: 15px;\n                line-height: 1.7;\n            }\n        }\n\n        \/* \u7cfb\u7edf\u5f00\u542f\u201c\u51cf\u5f31\u52a8\u6001\u6548\u679c\u201d\u65f6\u5173\u95ed\u52a8\u753b *\/\n        @media (prefers-reduced-motion: reduce) {\n\n            .hl__desc,\n            .hl__tab,\n            .hl__word {\n                transition: none;\n            }\n\n            .hl__phone {\n                transform: none !important;\n            }\n        }\n    <\/style>\n<\/head>\n\n<body>\n\n    <main class=\"hl\">\n        <h1 class=\"hl__title\">Highlights<\/h1>\n        <p class=\"hl__intro\">Smart Locator is a comprehensive, scalable tracking and management ecosystem designed for\n            enterprise deployments. Available as both a powerful web platform and an intuitive mobile app, it empowers\n            administrators to centrally monitor, configure, and manage over 10,000 devices with zero friction.<\/p>\n\n        <!-- ===== \u624b\u673a\u6837\u673a\uff08JS \u6309 Tab \u6e32\u67d3\u5bf9\u5e94\u56fe\u7247\uff09 ===== -->\n        <div class=\"hl__phone\" id=\"phone\"><\/div>\n\n        <!-- ===== Tab \u6807\u7b7e\u680f\uff08JS \u6e32\u67d3\uff09 ===== -->\n        <div class=\"hl__tabs\" id=\"tabs\"><\/div>\n\n        <!-- ===== \u5f53\u524d Tab \u8be6\u60c5\u63cf\u8ff0 ===== -->\n        <p class=\"hl__desc\" id=\"desc\"><\/p>\n    <\/main>\n\n    <script>\n        \/\/ ============================================================\n        \/\/ Highlights Tab \u6570\u636e\n        \/\/\n        \/\/ \u26a0 \u540e\u7eed\u4fee\u6539 Tab \u540d\u79f0 \/ \u63cf\u8ff0 \/ \u624b\u673a\u56fe\u7247\uff1a\u76f4\u63a5\u7f16\u8f91 highlightsData \u6570\u7ec4\u5373\u53ef\uff0c\n        \/\/ \u65e0\u9700\u4fee\u6539 HTML \u4e0e JS \u903b\u8f91\u3002image \u4e3a\u6bcf\u4e2a Tab \u5bf9\u5e94\u7684\u624b\u673a\u6837\u673a\u56fe\u7247\u3002\n        \/\/ ============================================================\n        var highlightsData = [\n            {\n                label: \"Real-Time Location\",\n                icon: \"fa-location-dot\",\n                desc: \"View live device coordinates and statuses instantly on an interactive map.\",\n                image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/08\/Group-35877.png\"\n            },\n            {\n                label: \"Historical Data Playback\",\n                icon: \"fa-clock-rotate-left\",\n                desc: \"Retrieve and review all device data or movement routes by specific dates and times .\",\n                image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/08\/Group-35878.png\"\n            },\n            {\n                label: \"Comprehensive Settings\",\n                icon: \"fa-gear\",\n                desc: \"Access all function controls in one organized list for quick adjustments. \",\n                image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/08\/Group-35759.png\"\n            }\n        ];\n\n        var tabsBox = document.getElementById(\"tabs\");\n        var descBox = document.getElementById(\"desc\");\n        var phoneBox = document.getElementById(\"phone\");\n        var reduceMotion = window.matchMedia && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\n        \/\/ \u6e32\u67d3 Tab \u6807\u7b7e\u680f\n        tabsBox.innerHTML = highlightsData.map(function (item, i) {\n            return (\n                '<button class=\"hl__tab' + (i === 0 ? \" is-active\" : \"\") + '\" data-index=\"' + i + '\" role=\"tab\" aria-selected=\"' + (i === 0) + '\">' +\n                '<i class=\"fa-solid ' + item.icon + '\"><\/i>' +\n                item.label +\n                '<\/button>'\n            );\n        }).join(\"\");\n\n        var tabs = tabsBox.querySelectorAll(\".hl__tab\");\n        var active = 0;\n\n        \/\/ \u6e32\u67d3\u624b\u673a\u6837\u673a\uff08\u521d\u59cb\u663e\u793a\u7b2c\u4e00\u4e2a Tab \u7684\u56fe\u7247\uff09\n        var phoneImg = document.createElement(\"img\");\n        phoneImg.className = \"hl__phone-img\";\n        phoneImg.alt = highlightsData[0].label;\n        phoneImg.src = highlightsData[0].image;\n        phoneBox.appendChild(phoneImg);\n\n        \/\/ \u5207\u6362 Tab\uff1a\u66f4\u65b0\u6fc0\u6d3b\u6837\u5f0f + \u624b\u673a\u56fe\u4ea4\u53c9\u8fc7\u6e21 + \u63cf\u8ff0\u6de1\u5165\u6de1\u51fa\n        function swapPhone(i) {\n            \/\/ \u7cfb\u7edf\u5f00\u542f\u201c\u51cf\u5f31\u52a8\u6001\u6548\u679c\u201d\uff1a\u76f4\u63a5\u6362\u56fe\uff0c\u65e0\u52a8\u753b\n            if (reduceMotion) {\n                phoneImg.src = highlightsData[i].image;\n                phoneImg.alt = highlightsData[i].label;\n                return;\n            }\n            \/\/ \u65b0\u56fe\u653e\u5927\u6de1\u5165\uff0c\u65e7\u56fe\u540c\u6b65\u7f29\u5c0f\u6de1\u51fa\uff0c\u52a8\u753b\u7ed3\u675f\u540e\u79fb\u9664\u65e7\u56fe\n            var next = document.createElement(\"img\");\n            next.className = \"hl__phone-img is-entering\";\n            next.alt = highlightsData[i].label;\n            next.src = highlightsData[i].image;\n            phoneBox.appendChild(next);\n\n            var prev = phoneImg;\n            prev.classList.add(\"is-leaving\");\n            window.setTimeout(function () { prev.remove(); }, 300);\n\n            phoneImg = next;\n        }\n\n        \/\/ \u63cf\u8ff0\u9010\u8bcd\u6e32\u67d3\uff1a\u6309\u7a7a\u683c\u62c6\u8bcd\uff0c\u6bcf\u4e2a\u8bcd\u5e26\u9012\u589e\u5ef6\u8fdf\uff08i * 30ms\uff09\n        function setDescWords(text) {\n            var words = text.split(\" \");\n            descBox.innerHTML = words.map(function (w, i) {\n                return '<span class=\"hl__word\" style=\"transition-delay:' + (i * 30) + 'ms\">' + w + '<\/span>';\n            }).join(\" \");\n        }\n\n        \/\/ \u5207\u6362\u7ade\u6001\u4fdd\u62a4\uff1a\u5feb\u901f\u8fde\u70b9 Tab \u65f6\uff0c\u65e7\u5207\u6362\u7684\u5b9a\u65f6\u5668\u4e0d\u518d\u751f\u6548\n        var descToken = 0;\n        function showDesc(i) {\n            var token = ++descToken;\n            swapPhone(i);\n\n            var show = function () {\n                if (token !== descToken) return; \/\/ \u5df2\u88ab\u66f4\u65b0\u7684\u5207\u6362\u53d6\u4ee3\n                var prevH = descBox.offsetHeight;\n                if (reduceMotion) {\n                    descBox.textContent = highlightsData[i].desc;\n                    var h = descBox.offsetHeight;\n                    if (h > prevH) descBox.style.minHeight = h + \"px\";\n                    return;\n                }\n                setDescWords(highlightsData[i].desc);\n                \/\/ \u65b0\u5185\u5bb9\u884c\u6570\u66f4\u591a\u65f6\u9501\u5b9a\u9ad8\u5ea6\uff0c\u9632\u6b62\u9875\u9762\u8df3\u52a8\n                window.requestAnimationFrame(function () {\n                    var h = descBox.offsetHeight;\n                    if (h > prevH) descBox.style.minHeight = h + \"px\";\n                });\n                descBox.classList.remove(\"is-anim\");\n                void descBox.offsetWidth; \/\/ \u5f3a\u5236\u91cd\u7ed8\uff0c\u4fdd\u8bc1\u9010\u8bcd\u52a8\u753b\u53ef\u91cd\u590d\u89e6\u53d1\n                window.requestAnimationFrame(function () {\n                    window.requestAnimationFrame(function () {\n                        descBox.classList.add(\"is-anim\");\n                        descBox.style.opacity = \"1\";\n                        descBox.style.transform = \"translateY(0)\";\n                    });\n                });\n            };\n\n            if (reduceMotion) {\n                descBox.textContent = highlightsData[i].desc;\n                return;\n            }\n            descBox.style.opacity = \"0\";\n            descBox.style.transform = \"translateY(6px)\";\n            window.setTimeout(show, 180);\n        }\n\n        \/\/ \u9884\u9501\u63cf\u8ff0\u533a\u9ad8\u5ea6\uff1a\u53d6\u6240\u6709 Tab \u63cf\u8ff0\u7684\u6700\u5927\u9ad8\u5ea6\uff0c\u4efb\u4f55\u5207\u6362\u90fd\u4e0d\u518d\u5f15\u8d77\u9875\u9762\u8df3\u52a8\n        (function () {\n            var probe = document.createElement(\"p\");\n            probe.className = \"hl__desc\";\n            probe.style.cssText = \"position:absolute;visibility:hidden;left:-9999px;top:0;\";\n            probe.style.width = descBox.offsetWidth + \"px\";\n            probe.style.minHeight = \"0\";\n            document.body.appendChild(probe);\n            var maxH = 0;\n            highlightsData.forEach(function (item) {\n                probe.textContent = item.desc;\n                maxH = Math.max(maxH, probe.offsetHeight);\n            });\n            probe.remove();\n            descBox.style.minHeight = maxH + \"px\";\n        })();\n\n        \/\/ ===== \u624b\u673a\u6837\u673a 3D \u9f20\u6807\u8ddf\u968f\uff08\u4ec5\u684c\u9762 hover \u8bbe\u5907\uff0c\u51cf\u5f31\u52a8\u6001\u65f6\u5173\u95ed\uff09 =====\n        if (!reduceMotion && window.matchMedia(\"(hover: hover)\").matches) {\n            phoneBox.addEventListener(\"mousemove\", function (e) {\n                var r = phoneBox.getBoundingClientRect();\n                var px = (e.clientX - r.left) \/ r.width - 0.5; \/\/ -0.5 ~ 0.5\n                var py = (e.clientY - r.top) \/ r.height - 0.5;\n                phoneBox.style.transform =\n                    \"perspective(800px) rotateX(\" + (-py * 12).toFixed(2) + \"deg) rotateY(\" + (px * 12).toFixed(2) + \"deg)\";\n            });\n            phoneBox.addEventListener(\"mouseleave\", function () {\n                phoneBox.style.transform = \"perspective(800px) rotateX(0deg) rotateY(0deg)\";\n            });\n        }\n\n        tabsBox.addEventListener(\"click\", function (e) {\n            var tab = e.target.closest(\".hl__tab\");\n            if (!tab) return;\n            var i = parseInt(tab.getAttribute(\"data-index\"), 10);\n            if (i === active) return;\n            active = i;\n            tabs.forEach(function (t, j) {\n                t.classList.toggle(\"is-active\", j === i);\n                t.setAttribute(\"aria-selected\", j === i);\n            });\n            showDesc(i);\n        });\n\n        \/\/ \u521d\u59cb\u663e\u793a\u7b2c\u4e00\u4e2a Tab \u63cf\u8ff0\n        descBox.textContent = highlightsData[0].desc;\n    <\/script>\n\n<\/body>\n\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-62b1557 e-con-full e-flex e-con e-parent\" data-id=\"62b1557\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-53083bb elementor-widget elementor-widget-html\" data-id=\"53083bb\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"UTF-8\" \/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n    <title>App Detail<\/title>\n    <!-- Montserrat \u5b57\u4f53 CDN -->\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\" \/>\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin \/>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@400;500;600;700&display=swap\"\n        rel=\"stylesheet\" \/>\n    <style>\n        \/* reset \u4ec5\u4f5c\u7528\u4e8e\u6a21\u5757\u5185\u90e8\uff0c\u907f\u514d\u5f71\u54cd WordPress \u4e3b\u9898\u5168\u5c40\u5e03\u5c40 *\/\n        .sp,\n        .sp *,\n        .sp *::before,\n        .sp *::after {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n        }\n\n        \/* \u72ec\u7acb\u9884\u89c8\u4e13\u7528\uff1a\u6e05\u6389 body \u9ed8\u8ba4\u8fb9\u8ddd\uff08\u5d4c\u5165 WordPress \u65f6\u8bf7\u52ff\u7c98\u8d34\u6b64\u6761\uff09 *\/\n        body {\n            margin: 0;\n        }\n\n        \/* ========== \u6eda\u52a8\u5bb9\u5668\uff08scroll-snap \u6574\u5c4f\u5438\u9644\uff09 ==========\n           \u5d4c\u5165 WordPress \u65f6\uff1a\u6a21\u5757\u81ea\u8eab\u4f5c\u4e3a\u6eda\u52a8\u5bb9\u5668\uff0c\u6eda\u52a8\u6761\u8ddf\u968f\u6a21\u5757\u3002\n           height \/ overflow \u52a0 !important\uff0c\u9632\u6b62\u4e3b\u9898\u5bf9 main\/\u5bb9\u5668\u8bbe\u7f6e\n           height\u3001overflow: hidden \u7b49\u8986\u76d6\u5bfc\u81f4\u6eda\u52a8\u6761\"\u7f6e\u9876\"\uff08\u8dd1\u5230\u9875\u9762\u7ea7\uff09\u3002\n           \u82e5\u9700\u6a21\u5757\u8ddf\u968f\u5bbf\u4e3b\u9875\u9762\u6eda\u52a8\uff08\u65e0\u5185\u90e8\u6eda\u52a8\u6761\uff09\uff0c\n           \u5c06 sectionConfig.fullScreen \u6539\u4e3a false \u5373\u53ef\uff08\u89c1 .sp--inline\uff09\u3002 *\/\n        .sp {\n            font-family: \"Montserrat\", sans-serif;\n            color: #15395E;\n            height: 100vh !important;\n            height: 100svh !important;\n            max-height: 100vh !important;\n            max-height: 100svh !important;\n            position: relative !important;\n            overflow-y: auto !important;\n            overflow-x: hidden !important;\n            scroll-snap-type: y mandatory;\n            \/* \u9690\u85cf\u6eda\u52a8\u6761\uff08\u89c6\u89c9\u66f4\u5e72\u51c0\uff0c\u6eda\u52a8\u529f\u80fd\u4e0d\u53d7\u5f71\u54cd\uff09\u3002\n               \u82e5\u5e0c\u671b\u770b\u5230\u6a21\u5757\u81ea\u5df1\u7684\u6eda\u52a8\u6761\uff0c\u5220\u6389\u4e0b\u9762\u4e24\u884c\u5373\u53ef *\/\n            scrollbar-width: none;\n            -ms-overflow-style: none;\n            \/* \u6eda\u5230\u5bb9\u5668\u672b\u5c3e\uff08\u6700\u540e\u4e00\u5f20\uff09\u540e\uff0c\u5141\u8bb8\u7ee7\u7eed\u6eda\u52a8\u5916\u5c42 WP \u9875\u9762\u67e5\u770b\u4e0b\u65b9\u5185\u5bb9\uff1b\n               \u82e5\u5e0c\u671b\u5230\u8fb9\u754c\u5373\u505c\uff08\u4e0d\u6eda\u5916\u5c42\u9875\u9762\uff09\uff0c\u6539\u4e3a contain \u5373\u53ef *\/\n            overscroll-behavior-y: auto;\n        }\n\n        .sp::-webkit-scrollbar {\n            display: none;\n        }\n\n        \/* ========== \u5355\u9875 ========== *\/\n        .sp__page {\n            position: relative;\n            height: calc(100vh - var(--header-offset, 0px));\n            height: calc(100svh - var(--header-offset, 0px));\n            overflow: hidden;\n            scroll-snap-align: start;\n            scroll-snap-stop: always;\n        }\n\n        \/* ---------- \u5168\u5c4f\u56fe\u7247\uff08\u94fa\u6ee1\u6574\u4e2a\u9875\u9762\uff09 ---------- *\/\n        .sp__main-img {\n            position: absolute;\n            inset: 0;\n            width: 100%;\n            height: 100%;\n            object-fit: cover;\n            opacity: 0;\n            transition: opacity 0.4s ease, transform 0.45s ease;\n        }\n\n        \/* \u56fe\u7247\u52a0\u8f7d\u5b8c\u6210\u540e\u6de1\u5165\u663e\u793a\uff0c\u907f\u514d\u5927\u56fe\u52a0\u8f7d\u65f6\u7684\u7a7a\u767d\u95ea\u70c1 *\/\n        .sp__main-img.is-loaded {\n            opacity: 1;\n        }\n\n        \/* \u9875\u9762\u8fdb\u5165\u89c6\u53e3\u65f6\u56fe\u7247\u7f13\u6162\u7f29\u653e\uff08Ken Burns \u6548\u679c\uff09 *\/\n        .sp__page.is-in .sp__main-img {\n            animation: spZoom 6s cubic-bezier(0.22, 1, 0.36, 1) both;\n        }\n\n        @keyframes spZoom {\n            from {\n                transform: scale(1.06);\n            }\n\n            to {\n                transform: scale(1);\n            }\n        }\n\n        \/* \u5de6\u4fa7\u767d\u8272\u6e10\u53d8\u906e\u7f69\uff0c\u4fdd\u8bc1\u6587\u5b57\u53ef\u8bfb *\/\n        .sp__page::after {\n            content: \"\";\n            position: absolute;\n            inset: 0;\n            pointer-events: none;\n        }\n\n        \/* ---------- \u5de6\u4fa7\u6587\u5b57\u533a\uff08\u53e0\u52a0\u5728\u56fe\u7247\u4e0a\uff09 ---------- *\/\n        .sp__content {\n            position: absolute;\n            \/* \u5185\u5bb9\u9650\u5236\u5728\u5c45\u4e2d 1440px \u6700\u5927\u5bbd\u5ea6\u7248\u5fc3\u5185\uff08\u5bbd\u5c4f\u4e0d\u8d85\u51fa\u7248\u5fc3\uff09\uff0c\u56fe\u7247\u4fdd\u6301\u5168\u5c4f\u94fa\u6ee1\u4e0d\u4fee\u6539 *\/\n            left: max(200px, calc((100% - 1680px) \/ 2 + 200px));\n            top: 76%;\n            transform: translateY(-50%);\n            max-width: 639px;\n            z-index: 1;\n        }\n\n        .sp__title {\n            white-space: nowrap;\n            font-family: \"Montserrat\", sans-serif;\n            font-size: 38px;\n            font-weight: 700;\n            font-style: normal;\n            color: #15395E;\n            margin-bottom: 14px;\n        }\n\n        .sp__desc {\n            font-family: \"Montserrat\", sans-serif;\n            font-size: 20px;\n            font-weight: 500;\n            font-style: normal;\n            line-height: 1.8;\n            color: #15395E;\n        }\n\n        \/* \u8fdb\u5165\u89c6\u53e3\u65f6\u6807\u9898\u3001\u63cf\u8ff0\u9519\u843d\u4e0a\u79fb\u6de1\u5165\uff08\u7531 JS \u7684 IntersectionObserver \u89e6\u53d1\uff09 *\/\n        .sp__anim .sp__title {\n            animation: spFadeUp 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;\n        }\n\n        .sp__anim .sp__desc {\n            animation: spFadeUp 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.15s both;\n        }\n\n        @keyframes spFadeUp {\n            from {\n                opacity: 0;\n                transform: translateY(14px);\n            }\n\n            to {\n                opacity: 1;\n                transform: translateY(0);\n            }\n        }\n\n        \/* ========== \u5d4c\u5165\u6a21\u5f0f\uff08fullScreen: false\uff09==========\n           \u666e\u901a\u6eda\u52a8\u3001\u65e0\u5438\u9644\u3001\u65e0\u5706\u70b9\uff0c\u9875\u9762\u9ad8\u5ea6\u968f\u5185\u5bb9\u81ea\u9002\u5e94 *\/\n        .sp--inline {\n            \/* \u5d4c\u5165\u957f\u5185\u5bb9\u9875\uff1a\u9ad8\u5ea6\u81ea\u9002\u5e94\uff0c\u8ddf\u968f\u5bbf\u4e3b\u6587\u6863\u6d41\u6eda\u52a8\uff08\u65e0\u5185\u90e8\u6eda\u52a8\u6761\uff09 *\/\n            height: auto !important;\n            min-height: 0 !important;\n            max-height: none !important;\n            overflow: visible !important;\n            scroll-snap-type: none;\n        }\n\n        .sp--inline .sp__dots {\n            display: none !important;\n        }\n\n        \/* ========== \u5de6\u4fa7\u5782\u76f4\u5706\u70b9\u5bfc\u822a ========== *\/\n        .sp__dots {\n            position: absolute;\n            top: 50%;\n            \/* \u5706\u70b9\u5bfc\u822a\u9650\u5236\u5728\u5c45\u4e2d 1440px \u7248\u5fc3\u5185\uff1a\u5bbd\u5c4f\u65f6\u8d34\u5728\u7248\u5fc3\u5de6\u7f18\uff0c\n               \u7a84\u5c4f\uff08\u22641440px\uff09\u56de\u9000\u5230 28px\uff0c\u79fb\u52a8\u7aef\u53e6\u6709\u65ad\u70b9\u89c4\u5219 *\/\n            left: max(28px, calc((100% - 1440px) \/ 2 + 28px));\n            transform: translateY(-50%);\n            display: flex;\n            flex-direction: column;\n            gap: 14px;\n            z-index: 10;\n        }\n\n        .sp__dot {\n            width: 10px;\n            height: 10px;\n            padding: 0;\n            border: 0;\n            border-radius: 999px;\n            background: #15395E33;\n            cursor: pointer;\n            transition: background 0.25s ease, width 0.25s ease;\n            \/* \u53bb\u6389\u79fb\u52a8\u7aef\u70b9\u6309\u9ad8\u4eae\u95ea\u70c1 *\/\n            -webkit-tap-highlight-color: transparent;\n        }\n\n        .sp__dot:hover {\n            background: #15395E88;\n        }\n\n        .sp__dot:active {\n            \/* \u663e\u5f0f\u58f0\u660e\u80cc\u666f\uff0c\u9632\u6b62 WordPress \u5168\u5c40 button:active \u6837\u5f0f\u6e17\u900f *\/\n            background: #15395E33;\n            transform: none;\n        }\n\n        .sp__dot.is-active {\n            width: 28px;\n            background: #15395E;\n        }\n\n        .sp__dot:focus-visible {\n            outline: 2px solid #4CC7C4;\n            outline-offset: 2px;\n        }\n\n        \/* ========== \u54cd\u5e94\u5f0f ========== *\/\n        @media (max-width: 768px) {\n            .sp__content {\n                left: 50%;\n                top: 42%;\n                transform: translate(-50%, -50%);\n                max-width: 86%;\n                text-align: center;\n            }\n\n            .sp__title {\n                font-size: 30px;\n                margin-bottom: 14px;\n            }\n\n            .sp__desc {\n                font-size: 15px;\n            }\n\n            .sp__dots {\n                left: calc(14px + env(safe-area-inset-left));\n            }\n\n            \/* \u79fb\u52a8\u7aef\u5706\u70b9\u89e6\u63a7\u70ed\u533a\u52a0\u5927\uff08\u89c6\u89c9\u5c3a\u5bf8\u4e0d\u53d8\uff09 *\/\n            .sp__dot {\n                width: 22px;\n                height: 22px;\n                background-clip: content-box;\n                background-color: transparent;\n                padding: 6px;\n                display: flex;\n                align-items: center;\n                justify-content: center;\n            }\n\n            .sp__dot::before {\n                content: \"\";\n                width: 10px;\n                height: 10px;\n                border-radius: 999px;\n                background: #15395E33;\n                transition: background 0.25s ease, width 0.25s ease;\n            }\n\n            .sp__dot.is-active {\n                width: 28px;\n                background: transparent;\n            }\n\n            .sp__dot:hover {\n                background: transparent;\n            }\n\n            .sp__dot:active {\n                background: transparent;\n            }\n\n            .sp__dot.is-active::before {\n                width: 28px;\n                background: #15395E;\n            }\n\n            .sp__dot:hover::before {\n                background: #15395E88;\n            }\n\n            \/* \u4f4e\u7aef\u673a\u79fb\u52a8\u7aef\u5f31\u5316\u56fe\u7247\u7f29\u653e\u52a8\u753b *\/\n            .sp__page.is-in .sp__main-img {\n                animation-duration: 3.5s;\n            }\n        }\n\n        \/* \u7cfb\u7edf\u5f00\u542f\u201c\u51cf\u5f31\u52a8\u6001\u6548\u679c\u201d\u65f6\u5173\u95ed\u52a8\u753b *\/\n        @media (prefers-reduced-motion: reduce) {\n\n            .sp__anim .sp__title,\n            .sp__anim .sp__desc,\n            .sp__page.is-in .sp__main-img {\n                animation: none;\n            }\n\n            .sp__main-img {\n                transition: none;\n            }\n        }\n    <\/style>\n<\/head>\n\n<body>\n    <main class=\"sp\" id=\"scrollWrap\">\n        <!-- \u9875\u9762 JS \u6e32\u67d3 -->\n    <\/main>\n    <script>\n        \/\/ ===========================================================e=\n        \/\/ App Detail \u6574\u5c4f\u6eda\u52a8\u9875\u9762\u6570\u636e\n        \/\/\n        \/\/ \u26a0 \u540e\u7eed\u4fee\u6539\u56fe\u7247 \/ \u6807\u9898 \/ \u63cf\u8ff0\uff1a\u76f4\u63a5\u7f16\u8f91 scrollSnapPages \u6570\u7ec4\u5373\u53ef\n        \/\/ \uff08\u53ef\u589e\u5220\u9875\u6570\uff09\uff0c\u65e0\u9700\u4fee\u6539 DOM \u4e0e JS \u903b\u8f91\u3002\u6bcf\u9875\u4e00\u5f20\u94fa\u6ee1\u5168\u5c4f\u7684\u56fe\u7247\uff0c\n        \/\/ title \/ desc \u7559\u7a7a\u5219\u4e0d\u663e\u793a\u6587\u5b57\u533a\u3002\n        \/\/ ============================================================\n        var scrollSnapPages = [\n            {\n                image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/08\/Group-35789.png\",\n                title: \"Continuous Location Visibility\",\n                desc: \"Stay informed about your assets and personnel 24\/7. Our intuitive apps and web dashboards offer real-time location visibility with pinpoint accuracy. Administrators can instantly view live device statuses, replay detailed historical movement routes, and export comprehensive audit logs to ensure operational compliance and optimize routing efficiency.\"\n            },\n            {\n                image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/08\/app-19-1.png\",\n                title: \"Dynamic Hardware Optimization\",\n                desc: \"Take absolute control over your hardware's performance. With EV-Mars, you can deeply customize device functions directly from the cloud. Choose from six distinct working modes tailored to specific industry needs and dynamically adjust location reporting intervals. This intelligent flexibility allows you to optimize battery life, conserve power for critical missions, and drastically reduce maintenance downtime. \"\n            },\n            {\n                image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/08\/Group-35790.png\",\n                title: \"Automated Geofence Alerts\",\n                desc: \"Built for massive enterprise deployments, the platform allows you to add and oversee over 10,000 devices effortlessly. Get all the critical information you need with just a click of a button on our app. Instantly draw custom Geo-fence zones around safe areas or restricted sites and receive automated push notifications the moment a device enters or exits the designated perimeter. \"\n            },\n            {\n                image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/08\/app-15-1.png\", title: \"Centralized Emergency Dispatch\",\n                desc: \"Transform your operations center into a rapid-response hub. The platform instantly captures and categorizes critical alerts from the field, including SOS button presses, fall detection triggers, and low-battery warnings. With automated TCP\/SMS notifications and on-screen pop-ups, dispatchers can coordinate immediate assistance based on precise, real-time coordinates.\"\n            },\n            {\n                image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/08\/Group-35791.png\", title: \"Seamless EHR Integration\",\n                desc: \"Connect the Eview system with your existing healthcare infrastructure. Utilizing standardized JSON formats and robust REST APIs, the platform ensures secure, bidirectional data synchronization with Electronic Health Records systems without disrupting established workflows.\"\n            },\n            {\n                image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/08\/app-20-1.png\", title: \"Enterprise Data Security\",\n                desc: \"Patient privacy is embedded into our architecture. The platform strictly adheres to healthcare compliance standards through automated time stamps, read-only EHR access, and continuous data pipeline monitoring to prevent unauthorized alterations.\"\n            },\n            {\n                image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/08\/Group-35796.png\",\n                title: \"Proprietary Telemetry Protocols\",\n                desc: \"Built for reliability, the platform utilizes specific Eview protocols for efficient watch-to-platform communication. It implements a \u2018shift-left\u2019 approach for early data reliability checks, ensuring that vital health metrics remain accurate from the source to the dashboard.\"\n            }\n        ];\n        \/\/ ============================================================\n        \/\/ \u5d4c\u5165\u5b98\u7f51\u914d\u7f6e\uff1a\n        \/\/  - fullScreen: true   \u72ec\u7acb\u6574\u5c4f\u9875\uff08scroll-snap \u5438\u9644 + \u5706\u70b9\u5bfc\u822a\uff09\n        \/\/  - fullScreen: false  \u5d4c\u5165\u957f\u5185\u5bb9\u9875\uff08\u666e\u901a\u6eda\u52a8\uff0c\u81ea\u52a8\u9690\u85cf\u5706\u70b9\u4e0e\u5438\u9644\uff09\n        \/\/  - headerOffset: \u5b98\u7f51\u56fa\u5b9a\u5bfc\u822a\u9ad8\u5ea6\uff08px\uff09\uff0c\u7528\u4e8e\u6574\u5c4f\u9ad8\u5ea6\u8865\u507f\u4e0e\u6eda\u52a8\u5b9a\u4f4d\n        \/\/ ============================================================\n        var sectionConfig = {\n            fullScreen: true,\n            headerOffset: 0\n        };\n        var wrap = document.getElementById(\"scrollWrap\");\n        var reduceMotion = window.matchMedia && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n        \/\/ \u6309\u914d\u7f6e\u5207\u6362\u5d4c\u5165\u6a21\u5f0f\u5e76\u5199\u5165 Header \u9ad8\u5ea6\u8865\u507f\n        wrap.classList.toggle(\"sp--inline\", !sectionConfig.fullScreen);\n        wrap.style.setProperty(\"--header-offset\", sectionConfig.headerOffset + \"px\");\n\n        \/\/ ===== \u5d4c\u5165 WordPress \u81ea\u6108\uff1a\u786e\u4fdd\u6eda\u52a8\u5bb9\u5668\u9ad8\u5ea6 = \u89c6\u53e3 =====\n        function ensureScrollContainer() {\n            if (!wrap || sectionConfig.fullScreen === false) return;\n            var expected = window.innerHeight - (sectionConfig.headerOffset || 0);\n            if (Math.abs(wrap.clientHeight - expected) > 2) {\n                wrap.style.setProperty(\"height\", \"100vh\", \"important\");\n                wrap.style.setProperty(\"height\", \"100svh\", \"important\");\n                wrap.style.setProperty(\"max-height\", \"100vh\", \"important\");\n                wrap.style.setProperty(\"max-height\", \"100svh\", \"important\");\n                wrap.style.setProperty(\"min-height\", \"0\", \"important\");\n                wrap.style.setProperty(\"overflow-y\", \"auto\", \"important\");\n                wrap.style.setProperty(\"overflow-x\", \"hidden\", \"important\");\n                wrap.style.setProperty(\"position\", \"relative\", \"important\");\n            }\n        }\n\n        \/\/ \u8f6e\u8be2\u5b88\u62a4\uff0c\u5bf9\u6297WP\u4e3b\u9898\/\u6784\u5efa\u5668\u540e\u7eed\u6539\u5199\u6837\u5f0f\n        let guardTimer = setInterval(function () {\n            if (sectionConfig.fullScreen !== true) {\n                clearInterval(guardTimer);\n                return;\n            }\n            ensureScrollContainer();\n        }, 300);\n\n        window.addEventListener(\"beforeunload\", function () {\n            clearInterval(guardTimer);\n        });\n\n        \/\/ ===== \u6e32\u67d3\u9875\u9762\uff08\u5168\u5c4f\u56fe\u7247 + \u53ef\u9009\u6587\u5b57\u533a\uff09 =====\n        var pagesHtml = scrollSnapPages.map(function (page, i) {\n            var content = page.title || page.desc\n                ? '<div class=\"sp__content\">' +\n                (page.title ? '<h2 class=\"sp__title\">' + page.title + '<\/h2>' : '') +\n                (page.desc ? '<p class=\"sp__desc\">' + page.desc + '<\/p>' : '') +\n                '<\/div>'\n                : '';\n            var isFirst = i === 0;\n            return (\n                '<section class=\"sp__page\">' +\n                content +\n                '<img class=\"sp__main-img\" src=\"' + page.image + '\" alt=\"Slide ' + (i + 1) + '\"' +\n                ' loading=\"' + (isFirst ? \"eager\" : \"lazy\") + '\"' +\n                ' decoding=\"async\"' +\n                ' fetchpriority=\"' + (isFirst ? \"high\" : \"low\") + '\" \/>' +\n                '<\/section>'\n            );\n        }).join(\"\");\n        wrap.innerHTML = pagesHtml;\n\n        \/\/ \u9875\u9762\u6e32\u67d3\u540e\u7acb\u5373\u81ea\u6108\u4e00\u6b21\n        ensureScrollContainer();\n\n        \/\/ ===== \u56fe\u7247\u52a0\u8f7d\u5b8c\u6210\u540e\u6de1\u5165\u663e\u793a =====\n        wrap.querySelectorAll(\".sp__main-img\").forEach(function (img) {\n            if (img.complete && img.naturalWidth > 0) {\n                img.classList.add(\"is-loaded\");\n            } else {\n                img.addEventListener(\"load\", function () {\n                    img.classList.add(\"is-loaded\");\n                });\n                \/\/ \u52a0\u8f7d\u5931\u8d25\uff1a\u9690\u85cf\u56fe\u7247\uff0c\u663e\u793a\u54c1\u724c\u8272\u80cc\u666f\u515c\u5e95\n                img.addEventListener(\"error\", function () {\n                    img.classList.add(\"is-loaded\");\n                    img.style.display = \"none\";\n                    img.parentElement.style.background = \"#e9ecfa\";\n                });\n            }\n        });\n\n        \/\/ ===== \u6e32\u67d3\u5782\u76f4\u5706\u70b9\u5bfc\u822a\uff1a\u79fb\u5165wrap\u5185\u90e8\uff0c\u4e0d\u518d\u6302\u5728body =====\n        var dotsHtml = scrollSnapPages.map(function (page, i) {\n            return '<button class=\"sp__dot' + (i === 0 ? \" is-active\" : \"\") + '\" data-index=\"' + i + '\" aria-label=\"Go to page ' + (i + 1) + '\"><\/button>';\n        }).join(\"\");\n        var dotsNav = document.createElement(\"nav\");\n        dotsNav.className = \"sp__dots\";\n        dotsNav.setAttribute(\"aria-label\", \"Sections\");\n        dotsNav.innerHTML = dotsHtml;\n        \/\/ \u4fee\u590d\uff1a\u4e0d\u518dappend\u5230body\uff0c\u63d2\u5165\u6a21\u5757\u5185\u90e8\n        wrap.appendChild(dotsNav);\n\n        var pages = wrap.querySelectorAll(\".sp__page\");\n        var dots = dotsNav.querySelectorAll(\".sp__dot\");\n\n        \/\/ ===== \u9875\u9762\u8fdb\u5165\u89c6\u53e3\uff1a\u6587\u5b57\u6de1\u5165 + \u56fe\u7247\u7f29\u653e\uff08Ken Burns\uff09 =====\n        \/\/ \u4fee\u590d\u6296\u52a8\uff1a\u539f\u7528 IntersectionObserver threshold 0.4 \u63a7\u5236 is-in\uff0c\n        \/\/ \u6eda\u52a8\u5207\u6362\u65f6\u8fb9\u754c\u9875\u9891\u7e41 add\/remove\uff0cspZoom \u52a8\u753b\u88ab\u53cd\u590d\u7ec8\u6b62\/\u91cd\u542f\uff0c\n        \/\/ transform \u65e0\u8fc7\u6e21\u8df3\u53d8\u5bfc\u81f4\u56fe\u7247\u6296\u52a8\u3002\u6539\u4e3a\u6eda\u52a8\u65f6\u6309\u4f4d\u7f6e\u7cbe\u786e\u8ba1\u7b97\n        \/\/ \u5f53\u524d\u9875\uff08\u4e0e\u5706\u70b9\u6fc0\u6d3b\u540c\u6e90\uff09\uff0cis-in \u53ea\u5207\u6362\u4e00\u6b21\uff0c\u52a8\u753b\u5e73\u6ed1\u8854\u63a5\u3002\n        var currentIndex = -1;\n        function updatePagesState() {\n            var index = Math.round(wrap.scrollTop \/ wrap.clientHeight);\n            index = Math.max(0, Math.min(scrollSnapPages.length - 1, index));\n            if (index === currentIndex) return;\n            currentIndex = index;\n            pages.forEach(function (p, i) {\n                var active = i === index;\n                p.classList.toggle(\"is-in\", active);\n                var content = p.querySelector(\".sp__content\");\n                if (content) {\n                    content.classList.remove(\"sp__anim\");\n                    void content.offsetWidth; \/\/ \u5f3a\u5236\u91cd\u7ed8\uff0c\u4fdd\u8bc1\u52a8\u753b\u53ef\u91cd\u590d\u89e6\u53d1\n                    content.classList.add(\"sp__anim\");\n                }\n            });\n        }\n        updatePagesState(); \/\/ \u521d\u59cb\u5316\u7b2c\u4e00\u9875\n\n        \/\/ ===== \u66f4\u65b0\u5706\u70b9\u6fc0\u6d3b\u72b6\u6001\uff08\u6309\u6eda\u52a8\u4f4d\u7f6e\u53d6\u6574\u9875\u6570\uff0crAF \u8282\u6d41\uff09 =====\n        var ticking = false;\n        function updateDots() {\n            if (!sectionConfig.fullScreen) return; \/\/ \u5d4c\u5165\u6a21\u5f0f\u65e0\u5706\u70b9\n            if (ticking) return;\n            ticking = true;\n            window.requestAnimationFrame(function () {\n                var index = Math.round(wrap.scrollTop \/ wrap.clientHeight);\n                index = Math.max(0, Math.min(scrollSnapPages.length - 1, index));\n                dots.forEach(function (d, i) {\n                    d.classList.toggle(\"is-active\", i === index);\n                });\n                ticking = false;\n            });\n        }\n        \/\/ ===== \u5706\u70b9\u5bfc\u822a\u56fa\u5b9a\u5728\u6eda\u52a8\u5bb9\u5668\u53ef\u89c6\u533a\u4e2d\u95f4\uff08\u4e0d\u968f\u5185\u5bb9\u6eda\u52a8\uff09 =====\n        \/\/ .sp__dots \u662f\u6eda\u52a8\u5bb9\u5668 .sp \u7684\u7edd\u5bf9\u5b9a\u4f4d\u5b50\u5143\u7d20\uff0c\u6309 CSS \u89c4\u8303\u4f1a\u968f\u5185\u5bb9\n        \/\/ \u4e00\u8d77\u6eda\u52a8\uff0c\u5bfc\u81f4\u53ea\u6709\u7b2c\u4e00\u9875\uff08scrollTop=0\uff09\u80fd\u770b\u5230\u5706\u70b9\u3001\u540e\u9762\u51e0\u9875\n        \/\/ \"\u6eda\u52a8\u6761\u6d88\u5931\"\u3002\u8fd9\u91cc\u5728\u6eda\u52a8\u65f6\u7528 transform \u53cd\u5411\u8865\u507f scrollTop\uff0c\n        \/\/ \u4f7f\u5706\u70b9\u59cb\u7ec8\u56fa\u5b9a\u5728\u6a21\u5757\u53ef\u89c6\u533a\u5de6\u4fa7\u4e2d\u95f4\u3002\n        var dotsEl = wrap.querySelector(\".sp__dots\");\n        function pinDots() {\n            if (!sectionConfig.fullScreen || !dotsEl) return;\n            dotsEl.style.transform = \"translateY(calc(-50% + \" + wrap.scrollTop + \"px))\";\n        }\n        pinDots(); \/\/ \u521d\u59cb\uff08scrollTop=0\uff09\u5373\u7b49\u4ef7\u4e8e CSS \u7684 translateY(-50%)\n        \/\/ \u6eda\u52a8\u4e2d rAF \u8282\u6d41\u66f4\u65b0\uff1b\u6eda\u52a8\u7ed3\u675f\u540e 150ms \u515c\u5e95\u6821\u51c6\u4e00\u6b21\n        var scrollTimer;\n        wrap.addEventListener(\"scroll\", function () {\n            updateDots();\n            pinDots();\n            updatePagesState();\n            clearTimeout(scrollTimer);\n            scrollTimer = window.setTimeout(function () { updateDots(); updatePagesState(); }, 150);\n        }, { passive: true });\n\n        \/\/ ===== \u70b9\u51fb\u5706\u70b9\u8df3\u8f6c\u5bf9\u5e94\u9875 =====\n        dotsNav.addEventListener(\"click\", function (e) {\n            var dot = e.target.closest(\".sp__dot\");\n            if (!dot) return;\n            var i = parseInt(dot.getAttribute(\"data-index\"), 10);\n            wrap.scrollTo({\n                top: pages[i].offsetTop, \/\/ \u57fa\u4e8e\u6bcf\u9875\u5b9e\u9645\u4f4d\u7f6e\uff0c\u4e24\u79cd\u6a21\u5f0f\u5747\u51c6\u786e\n                behavior: reduceMotion ? \"auto\" : \"smooth\"\n            });\n        });\n\n        \/\/ \u8d44\u6e90\u5168\u90e8\u52a0\u8f7d\u5b8c\u6210\u540e\u518d\u6b21\u81ea\u6108\n        window.addEventListener(\"load\", ensureScrollContainer);\n\n        \/\/ \u7a97\u53e3\u5c3a\u5bf8\u53d8\u5316\uff08\u5730\u5740\u680f\u6536\u8d77\u7b49\uff09\u65f6\u6821\u51c6\u4f4d\u7f6e\uff08rAF \u8282\u6d41\uff09\n        var resizeTick = false;\n        window.addEventListener(\"resize\", function () {\n            if (resizeTick) return;\n            resizeTick = true;\n            window.requestAnimationFrame(function () {\n                updateDots();\n                pinDots();\n                updatePagesState();\n                resizeTick = false;\n            });\n        });\n        \/\/ iOS \u6d4f\u89c8\u5668\u5730\u5740\u680f\u4f38\u7f29\uff08visualViewport\uff09\u65f6\u515c\u5e95\u6821\u51c6\n        if (window.visualViewport) {\n            window.visualViewport.addEventListener(\"resize\", function () {\n                updateDots();\n                updatePagesState();\n            });\n        }\n    <\/script>\n<\/body>\n\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d78dd74 e-flex e-con-boxed e-con e-parent\" data-id=\"d78dd74\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8b92b39 elementor-widget elementor-widget-heading\" data-id=\"8b92b39\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">How Industries Leverage Smart Locator<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d083dd2 elementor-widget elementor-widget-html\" data-id=\"d083dd2\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!--\n  Eview Core Capabilities \u2014 \u6838\u5fc3\u80fd\u529b\u5c55\u793a\u6a21\u5757\n  \u63a5\u5165\uff1aElementor \u2192 \u6dfb\u52a0\u300cHTML\u300d\u5c0f\u90e8\u4ef6 \u2192 \u7c98\u8d34\u672c\u6587\u4ef6\u5168\u90e8\u5185\u5bb9\n  \u7ed3\u6784\uff1a\u5de6 4 \u9879 accordion \u624b\u98ce\u7434 + \u53f3\u5927\u56fe\uff08\u56fe\u7247\u968f\u5c55\u5f00\u9879\u5207\u6362\uff09\n\n  \u2605 \u6ce8\u610f\uff1aElementor HTML \u5c0f\u90e8\u4ef6\u53ef\u80fd\u4f1a\u8fc7\u6ee4 <script> \u6807\u7b7e\u3002\n  \u5982\u679c\u662f Elementor \u73af\u5883\u4e14\u65e0\u6cd5\u5207\u6362\uff0c\u8bf7\u5728\u5143\u7d20\u9ad8\u7ea7\u8bbe\u7f6e\u4e2d\n  \u6dfb\u52a0\u81ea\u5b9a\u4e49 JS \u8c03\u7528 window.ccToggle(0~3)\u3002\n-->\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\" \/>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin \/>\n<link\n  href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@400;500;600;700&display=swap\"\n  rel=\"stylesheet\"\n\/>\n<style>\n  @import url(\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@400;500;600;700&display=swap\");\n\n  .cc {\n    --cc-accent: #4cc7c4;\n    --cc-text: #15395e;\n    --cc-muted: #6b7c8f;\n    --cc-bg: #ffffff;\n    --cc-panel-bg: #e7f1f5;\n    --cc-card-bg: #ffffff;\n    --cc-radius: 40px;\n    --cc-radius-sm: 42px;\n    --cc-ease: cubic-bezier(0.22, 1, 0.36, 1);\n    box-sizing: border-box;\n    width: 100%;\n    max-width: 1440px;\n    margin: 0 auto;\n    padding: 0;\n    border-radius: 44px;\n    background: var(--cc-bg);\n    font-family: \"Montserrat\", sans-serif;\n    font-weight: 400;\n    color: var(--cc-text);\n  }\n  .cc *,\n  .cc *::before,\n  .cc *::after {\n    box-sizing: border-box;\n  }\n  .cc h1, .cc h2, .cc h3, .cc h4, .cc p, .cc span, .cc a {\n    font-family: \"Montserrat\", sans-serif;\n    font-style: normal;\n  }\n\n  \/* ========== \u4e3b\u533a\u57df\uff08\u80cc\u666f\u5bb9\u5668\uff09 ========== *\/\n  .cc-stage {\n    position: relative;\n    padding: 48px;\n    min-height: 776px;\n    border-radius: var(--cc-radius) !important;\n    background-color: #e7f1f5 !important;\n    background-size: cover;\n    background-position: center;\n    background-repeat: no-repeat;\n    overflow: hidden;\n  }\n  \/* \u80cc\u666f\u56fe\u8fc7\u6e21\u5bb9\u5668\uff08\u65b0\u56fe\u6de1\u5165\u8986\u76d6\uff09 *\/\n  .cc-stage::before {\n    content: \"\";\n    position: absolute;\n    inset: 0;\n    background-image: var(--cc-next-bg, none);\n    background-size: cover;\n    background-position: center;\n    background-repeat: no-repeat;\n    opacity: 0;\n    z-index: 0;\n    transition: opacity 0.4s var(--cc-ease);\n    pointer-events: none;\n  }\n  .cc-stage.is-crossfade::before {\n    opacity: 1;\n  }\n  \/* \u80cc\u666f\u52a0\u8f7d\u4e2d\u9aa8\u67b6\u5c4f *\/\n  .cc-stage::after {\n    content: \"\";\n    position: absolute;\n    inset: 0;\n    background: linear-gradient(90deg, #d8e6ec 0%, #e8eef2 45%, #d8e6ec 100%);\n    background-size: 200% 100%;\n    opacity: 0;\n    z-index: 0;\n    pointer-events: none;\n    transition: opacity 0.3s ease;\n  }\n  .cc-stage.is-switching::after {\n    opacity: 1;\n    animation: ccSkeleton 1.2s ease-in-out infinite;\n  }\n  @keyframes ccSkeleton {\n    0% { background-position: 100% 0; }\n    100% { background-position: -100% 0; }\n  }\n\n  \/* ========== \u5de6\u4fa7 Accordion ========== *\/\n  .cc-acc {\n    position: relative;\n    display: flex;\n    flex-direction: column;\n    gap: 40px;\n    width: auto;\n    max-width: 600px;\n    z-index: 1;\n  }\n  .cc-acc__item {\n    background: #ffffffc7;\n    border: 0;\n    border-radius: var(--cc-radius-sm);\n    padding: 28px 31px;\n    box-shadow: 0 1px 0 rgba(21, 57, 94, 0.04);\n    cursor: pointer;\n    transition: box-shadow 0.3s var(--cc-ease), background 0.3s var(--cc-ease);\n  }\n  .cc-acc__item:hover {\n    box-shadow: 0 6px 18px rgba(21, 57, 94, 0.06);\n  }\n  .cc-acc__item.is-open {\n    background: #ffffff;\n    box-shadow: 0 4px 16px rgba(21, 57, 94, 0.08);\n  }\n  .cc-acc__head {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 16px;\n    width: 100%;\n    padding: 0;\n    margin: 0;\n    border: 0;\n    background: transparent;\n    cursor: pointer;\n    text-align: left;\n    user-select: none;\n    -webkit-tap-highlight-color: transparent;\n  }\n  .cc-acc__title {\n    flex: 1 1 auto;\n    margin: 0;\n    font-size: 23px;\n    font-weight: 700;\n    line-height: 100%;\n    color: var(--cc-text);\n  }\n  .cc-acc__chev {\n    flex: 0 0 auto;\n    width: 32px;\n    height: 32px;\n    display: grid;\n    place-items: center;\n    border-radius: 50%;\n    background: rgba(21, 57, 94, 0.05);\n    color: var(--cc-muted);\n    transition: transform 0.3s var(--cc-ease), color 0.3s var(--cc-ease), background 0.3s var(--cc-ease);\n  }\n  .cc-acc__chev svg {\n    width: 18px;\n    height: 18px;\n    display: block;\n  }\n  .cc-acc__item.is-open .cc-acc__chev {\n    background: var(--cc-accent);\n    color: #fff;\n    transform: rotate(180deg);\n  }\n  .cc-acc__head:hover .cc-acc__chev {\n    background: rgba(21, 57, 94, 0.1);\n  }\n  .cc-acc__item.is-open .cc-acc__head:hover .cc-acc__chev {\n    background: var(--cc-accent);\n  }\n  .cc-acc__head:focus-visible {\n    outline: 2px solid var(--cc-accent);\n    outline-offset: 4px;\n    border-radius: 6px;\n  }\n  .cc-acc__head:focus:not(:focus-visible) {\n    outline: none;\n  }\n  .cc-acc__body {\n    overflow: hidden;\n    max-height: 0;\n    opacity: 0;\n    transition: max-height 0.4s var(--cc-ease), opacity 0.3s ease, margin-top 0.3s var(--cc-ease);\n  }\n  .cc-acc__item.is-open .cc-acc__body {\n    opacity: 1;\n    margin-top: 14px;\n    padding-right: 64px;\n  }\n  .cc-acc__item.is-open .cc-acc__desc {\n    padding-bottom: 6px;\n  }\n  .cc-acc__desc {\n    margin: 0;\n    font-size: 16px;\n    font-weight: 600;\n    line-height: 24px;\n    color: var(--cc-text);\n  }\n\n  \/* ========== Accordion \u6d6e\u5c42\u5361\u7247 ========== *\/\n\n  \/* ========== \u54cd\u5e94\u5f0f ========== *\/\n  @media (max-width: 1100px) {\n    .cc-stage {\n      padding: 32px;\n    }\n    .cc-acc {\n      width: 100%;\n      max-width: 100%;\n    }\n  }\n  @media (max-width: 720px) {\n    .cc {\n      padding: 12px;\n    }\n    .cc-stage {\n      padding: 16px;\n    }\n    .cc-acc__item {\n      padding: 16px 18px;\n    }\n    .cc-acc__title {\n      font-size: 20px;\n    }\n    .cc-acc__desc {\n      font-size: 15px;\n      line-height: 22px;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    .cc-stage::before,\n    .cc-stage::after,\n    .cc-acc__body,\n    .cc-acc__chev {\n      transition: none;\n      animation: none !important;\n    }\n  }\n<\/style>\n\n<section class=\"cc\" id=\"cc-core-capabilities\" aria-label=\"Core Capabilities\">\n\n\n  <!-- ===== \u4e3b\u533a\u57df\uff08\u80cc\u666f\u56fe\u5bb9\u5668\uff09 ===== -->\n  <div class=\"cc-stage\"\n       style=\"background-image: url(https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/08\/Group-35794.png);\"\n       data-bg-0=\"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/08\/Group-35794.png\"\n       data-bg-1=\"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/07\/Group-35773.png\"\n       data-bg-2=\"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/07\/Group-35785.png\"\n       data-bg-3=\"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/08\/Group-35793.png\">\n\n    <!-- \u5de6\uff1a4 \u9879 Accordion -->\n    <div class=\"cc-acc\" role=\"list\">\n\n      <!-- 1. \u9ed8\u8ba4\u5c55\u5f00 -->\n      <div class=\"cc-acc__item is-open\" data-cc-index=\"0\">\n        <div class=\"cc-acc__head\"\n             role=\"button\" tabindex=\"0\"\n             aria-expanded=\"true\"\n             data-cc-index=\"0\"\n             onclick=\"(function(idx){var r=document.getElementById('cc-core-capabilities');if(!r)return;var g=r.querySelectorAll('.cc-acc__item');var h=r.querySelectorAll('.cc-acc__head');var d=r.querySelector('.cc-stage');if(g[idx].classList.contains('is-open'))return;for(var i=0;i<g.length;i++){var on=i===idx;var b=g[i].querySelector('.cc-acc__body');if(on){g[i].classList.add('is-open');h[i].setAttribute('aria-expanded','true');if(b)b.style.maxHeight=b.scrollHeight+'px';}else{g[i].classList.remove('is-open');h[i].setAttribute('aria-expanded','false');if(b)b.style.maxHeight='0';}}var bg=d.getAttribute('data-bg-'+idx);if(bg){d.style.backgroundImage='url('+bg+')';d.classList.remove('is-switching');}})(0)\">\n          <h3 class=\"cc-acc__title\">Elderly Care Management<\/h3>\n          <span class=\"cc-acc__chev\" aria-hidden=\"true\">\n            <svg viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n              <polyline points=\"5 7.5 10 12.5 15 7.5\"><\/polyline>\n            <\/svg>\n          <\/span>\n        <\/div>\n        <div class=\"cc-acc__body\">\n          <p class=\"cc-acc__desc\">\n            Senior living communities use the web dashboard to monitor residents effortlessly. By setting up custom Geo-fence perimeters around the facility, staff receive instant alerts if a vulnerable senior with memory issues wanders outside safe zones. The platform\u2019s dynamic hardware optimization ensures wearable devices maintain long battery life, reducing the daily burden on caregivers to constantly recharge devices.\n          <\/p>\n        <\/div>\n      <\/div>\n\n      <!-- 2. -->\n      <div class=\"cc-acc__item\" data-cc-index=\"1\">\n        <div class=\"cc-acc__head\"\n             role=\"button\" tabindex=\"0\"\n             aria-expanded=\"false\"\n             data-cc-index=\"1\"\n             onclick=\"(function(idx){var r=document.getElementById('cc-core-capabilities');if(!r)return;var g=r.querySelectorAll('.cc-acc__item');var h=r.querySelectorAll('.cc-acc__head');var d=r.querySelector('.cc-stage');if(g[idx].classList.contains('is-open'))return;for(var i=0;i<g.length;i++){var on=i===idx;var b=g[i].querySelector('.cc-acc__body');if(on){g[i].classList.add('is-open');h[i].setAttribute('aria-expanded','true');if(b)b.style.maxHeight=b.scrollHeight+'px';}else{g[i].classList.remove('is-open');h[i].setAttribute('aria-expanded','false');if(b)b.style.maxHeight='0';}}var bg=d.getAttribute('data-bg-'+idx);if(bg){d.style.backgroundImage='url('+bg+')';d.classList.remove('is-switching');}})(1)\">\n          <h3 class=\"cc-acc__title\">Remote Patient Monitoring<\/h3>\n          <span class=\"cc-acc__chev\" aria-hidden=\"true\">\n            <svg viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n              <polyline points=\"5 7.5 10 12.5 15 7.5\"><\/polyline>\n            <\/svg>\n          <\/span>\n        <\/div>\n        <div class=\"cc-acc__body\">\n          <p class=\"cc-acc__desc\">\n            Healthcare providers utilize the platform to oversee patients recovering at home. Seamlessly integrated with Electronic Health Records, the system captures vital telemetry data continuously. Clinicians can adjust device reporting intervals remotely from the cloud, ensuring accurate health tracking while neural predictive analytics prioritize critical alerts to help prevent hospital readmissions.\n          <\/p>\n        <\/div>\n      <\/div>\n\n      <!-- 3. -->\n      <div class=\"cc-acc__item\" data-cc-index=\"2\">\n        <div class=\"cc-acc__head\"\n             role=\"button\" tabindex=\"0\"\n             aria-expanded=\"false\"\n             data-cc-index=\"2\"\n             onclick=\"(function(idx){var r=document.getElementById('cc-core-capabilities');if(!r)return;var g=r.querySelectorAll('.cc-acc__item');var h=r.querySelectorAll('.cc-acc__head');var d=r.querySelector('.cc-stage');if(g[idx].classList.contains('is-open'))return;for(var i=0;i<g.length;i++){var on=i===idx;var b=g[i].querySelector('.cc-acc__body');if(on){g[i].classList.add('is-open');h[i].setAttribute('aria-expanded','true');if(b)b.style.maxHeight=b.scrollHeight+'px';}else{g[i].classList.remove('is-open');h[i].setAttribute('aria-expanded','false');if(b)b.style.maxHeight='0';}}var bg=d.getAttribute('data-bg-'+idx);if(bg){d.style.backgroundImage='url('+bg+')';d.classList.remove('is-switching');}})(2)\">\n          <h3 class=\"cc-acc__title\">Lone Worker Safety<\/h3>\n          <span class=\"cc-acc__chev\" aria-hidden=\"true\">\n            <svg viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n              <polyline points=\"5 7.5 10 12.5 15 7.5\"><\/polyline>\n            <\/svg>\n          <\/span>\n        <\/div>\n        <div class=\"cc-acc__body\">\n          <p class=\"cc-acc__desc\">\n            Utility companies and security firms deploy the mobile app to protect field personnel operating in isolated environments. If a worker's device triggers an automated fall alert or a manual SOS button press, supervisors receive instant push notifications with exact GPS coordinates. This centralized emergency dispatch enables rapid rescue operations without requiring managers to be tied to a desk.\n          <\/p>\n        <\/div>\n      <\/div>\n\n      <!-- 4. -->\n      <div class=\"cc-acc__item\" data-cc-index=\"3\">\n        <div class=\"cc-acc__head\"\n             role=\"button\" tabindex=\"0\"\n             aria-expanded=\"false\"\n             data-cc-index=\"3\"\n             onclick=\"(function(idx){var r=document.getElementById('cc-core-capabilities');if(!r)return;var g=r.querySelectorAll('.cc-acc__item');var h=r.querySelectorAll('.cc-acc__head');var d=r.querySelector('.cc-stage');if(g[idx].classList.contains('is-open'))return;for(var i=0;i<g.length;i++){var on=i===idx;var b=g[i].querySelector('.cc-acc__body');if(on){g[i].classList.add('is-open');h[i].setAttribute('aria-expanded','true');if(b)b.style.maxHeight=b.scrollHeight+'px';}else{g[i].classList.remove('is-open');h[i].setAttribute('aria-expanded','false');if(b)b.style.maxHeight='0';}}var bg=d.getAttribute('data-bg-'+idx);if(bg){d.style.backgroundImage='url('+bg+')';d.classList.remove('is-switching');}})(3)\">\n          <h3 class=\"cc-acc__title\">Child Safety Tracking<\/h3>\n          <span class=\"cc-acc__chev\" aria-hidden=\"true\">\n            <svg viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n              <polyline points=\"5 7.5 10 12.5 15 7.5\"><\/polyline>\n            <\/svg>\n          <\/span>\n        <\/div>\n        <div class=\"cc-acc__body\">\n          <p class=\"cc-acc__desc\">\n            School districts and parents rely on the platform to ensure student security during daily commutes. Administrators can instantly draw Geo-fence boundaries around school campuses, bus routes, or neighborhoods. If a child deviates from their typical route or leaves a designated safe area, the system triggers automated push notifications, allowing for immediate verification and intervention.\n          <\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n\n  <\/div>\n\n<\/section>\n\n<script>\n\/\/ ===== Accordion \u5207\u6362 + \u80cc\u666f\u56fe\u9884\u8f7d =====\n(function () {\n  var root = document.getElementById('cc-core-capabilities');\n  if (!root) return;\n\n  var items = root.querySelectorAll('.cc-acc__item');\n  var heads = root.querySelectorAll('.cc-acc__head');\n  var stage = root.querySelector('.cc-stage');\n\n  \/\/ \u521d\u59cb\u5316\u52a8\u6001\u9ad8\u5ea6\n  items.forEach(function (it) {\n    var body = it.querySelector('.cc-acc__body');\n    if (body) {\n      if (it.classList.contains('is-open')) {\n        body.style.maxHeight = body.scrollHeight + 'px';\n      }\n    }\n  });\n\n  \/\/ \u80cc\u666f\u56fe URL \u5217\u8868\uff08\u4ece data-bg-* \u8bfb\u53d6\uff09\n  var bgUrls = [];\n  if (stage) {\n    for (var k = 0; k < 4; k++) {\n      var u = stage.getAttribute('data-bg-' + k);\n      if (u) bgUrls.push(u);\n    }\n  }\n\n  \/\/ \u9884\u52a0\u8f7d\u80cc\u666f\u56fe + \u52a0\u8f7d\u72b6\u6001\n  var loadedFlags = {};\n  bgUrls.forEach(function (url, i) {\n    var img = new Image();\n    img.onload = function () {\n      loadedFlags[i] = true;\n      if (i === 0 || (items[i] && items[i].classList.contains('is-open'))) {\n        if (stage) stage.classList.remove('is-switching');\n      }\n    };\n    img.onerror = function () {\n      loadedFlags[i] = true;\n      if (stage) stage.classList.remove('is-switching');\n    };\n    img.src = url;\n    if (img.complete && img.naturalWidth > 0) {\n      loadedFlags[i] = true;\n      if (i === 0 && stage) stage.classList.remove('is-switching');\n    }\n  });\n\n  function goTo(idx) {\n    if (idx < 0 || idx >= items.length) return;\n    if (items[idx].classList.contains('is-open')) return;\n\n    items.forEach(function (it, i) {\n      var on = i === idx;\n      var body = it.querySelector('.cc-acc__body');\n      if (on) {\n        it.classList.add('is-open');\n        heads[i].setAttribute('aria-expanded', 'true');\n        if (body) body.style.maxHeight = body.scrollHeight + 'px';\n      } else {\n        it.classList.remove('is-open');\n        heads[i].setAttribute('aria-expanded', 'false');\n        if (body) body.style.maxHeight = '0';\n      }\n    });\n\n    \/\/ \u5207\u6362\u80cc\u666f\u56fe\uff1acrossfade \u8fc7\u6e21 or \u9aa8\u67b6\u5c4f\n    if (stage && bgUrls[idx]) {\n      var newUrl = 'url(' + bgUrls[idx] + ')';\n      if (stage.style.backgroundImage !== newUrl) {\n        if (loadedFlags[idx]) {\n          \/\/ \u5df2\u52a0\u8f7d \u2192 crossfade\n          stage.style.setProperty('--cc-next-bg', newUrl);\n          stage.classList.add('is-crossfade');\n          var tid = stage.getAttribute('data-cf-timer');\n          if (tid) clearTimeout(parseInt(tid, 10));\n          stage.setAttribute('data-cf-timer', setTimeout(function () {\n            stage.style.backgroundImage = newUrl;\n            stage.classList.remove('is-crossfade');\n            stage.removeAttribute('data-cf-timer');\n          }, 400));\n        } else {\n          \/\/ \u672a\u52a0\u8f7d \u2192 \u9aa8\u67b6\u5c4f\n          stage.style.backgroundImage = newUrl;\n          stage.classList.remove('is-crossfade');\n          stage.classList.add('is-switching');\n        }\n      }\n    }\n  }\n\n  window.ccToggle = goTo;\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5732a7a e-flex e-con-boxed e-con e-parent\" data-id=\"5732a7a\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-80e0a8c elementor-widget elementor-widget-heading\" data-id=\"80e0a8c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Related Products<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-53d466a elementor-arrows-position-outside elementor-widget__width-initial elementor-widget elementor-widget-image-carousel\" data-id=\"53d466a\" data-element_type=\"widget\" data-settings=\"{&quot;slides_to_show&quot;:&quot;5&quot;,&quot;navigation&quot;:&quot;arrows&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;speed&quot;:500,&quot;image_spacing_custom&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:20,&quot;sizes&quot;:[]},&quot;image_spacing_custom_laptop&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;image_spacing_custom_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;image_spacing_custom_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"image-carousel.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-image-carousel-wrapper swiper\" role=\"region\" aria-roledescription=\"carousel\" aria-label=\"Image Carousel\" dir=\"ltr\">\n\t\t\t<div class=\"elementor-image-carousel swiper-wrapper\" aria-live=\"off\">\n\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"1 \/ 5\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image lazyload\" data-src=\"https:\/\/www.eviewconnect.com\/wp-content\/smush-webp\/2026\/06\/Group-35335-1.png.webp\" alt=\"Group 35335 (1)\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 230px; --smush-placeholder-aspect-ratio: 230\/274;\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"2 \/ 5\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image lazyload\" data-src=\"https:\/\/www.eviewconnect.com\/wp-content\/smush-webp\/2026\/06\/Group-35336-1.png.webp\" alt=\"Group 35336 (1)\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 230px; --smush-placeholder-aspect-ratio: 230\/274;\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"3 \/ 5\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image lazyload\" data-src=\"https:\/\/www.eviewconnect.com\/wp-content\/smush-webp\/2026\/06\/Group-35337.png.webp\" alt=\"Group 35337\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 230px; --smush-placeholder-aspect-ratio: 230\/274;\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"4 \/ 5\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image lazyload\" data-src=\"https:\/\/www.eviewconnect.com\/wp-content\/smush-webp\/2026\/06\/Group-35338.png.webp\" alt=\"Group 35338\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 230px; --smush-placeholder-aspect-ratio: 230\/274;\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"5 \/ 5\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image lazyload\" data-src=\"https:\/\/www.eviewconnect.com\/wp-content\/smush-webp\/2026\/06\/Group-35339.png.webp\" alt=\"Group 35339\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 230px; --smush-placeholder-aspect-ratio: 230\/274;\" \/><\/figure><\/div>\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-prev\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-eicon-chevron-left\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M646 125C629 125 613 133 604 142L308 442C296 454 292 471 292 487 292 504 296 521 308 533L604 854C617 867 629 875 646 875 663 875 679 871 692 858 704 846 713 829 713 812 713 796 708 779 692 767L438 487 692 225C700 217 708 204 708 187 708 171 704 154 692 142 675 129 663 125 646 125Z\"><\/path><\/svg>\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-next\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-eicon-chevron-right\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M696 533C708 521 713 504 713 487 713 471 708 454 696 446L400 146C388 133 375 125 354 125 338 125 325 129 313 142 300 154 292 171 292 187 292 204 296 221 308 233L563 492 304 771C292 783 288 800 288 817 288 833 296 850 308 863 321 871 338 875 354 875 371 875 388 867 400 854L696 533Z\"><\/path><\/svg>\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Smart Locator: Enterprise Device Management Platform &amp; APP App Download Buttons Download on the APP Store Android Access the platform directly at smart-locator.com. Available on Web browsers, iOS, and Android. Compatible with all Eview enterprise tracking terminals. Web Portal Highlights Highlights Smart Locator is a comprehensive, scalable tracking and management ecosystem designed for enterprise deployments. Available as both a powerful web platform and an intuitive mobile app, it empowers administrators to centrally monitor, configure, and manage over 10,000 devices with zero friction. App Detail How Industries Leverage Smart Locator<\/p>","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_eb_attr":"","footnotes":""},"class_list":["post-9722","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.eviewconnect.com\/ja\/wp-json\/wp\/v2\/pages\/9722","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.eviewconnect.com\/ja\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.eviewconnect.com\/ja\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.eviewconnect.com\/ja\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.eviewconnect.com\/ja\/wp-json\/wp\/v2\/comments?post=9722"}],"version-history":[{"count":30,"href":"https:\/\/www.eviewconnect.com\/ja\/wp-json\/wp\/v2\/pages\/9722\/revisions"}],"predecessor-version":[{"id":22499,"href":"https:\/\/www.eviewconnect.com\/ja\/wp-json\/wp\/v2\/pages\/9722\/revisions\/22499"}],"wp:attachment":[{"href":"https:\/\/www.eviewconnect.com\/ja\/wp-json\/wp\/v2\/media?parent=9722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}