{"id":17188,"date":"2025-11-27T05:46:36","date_gmt":"2025-11-27T05:46:36","guid":{"rendered":"https:\/\/www.eviewconnect.com\/?page_id=17188"},"modified":"2026-10-19T08:01:05","modified_gmt":"2026-10-19T08:01:05","slug":"beacon-accessories","status":"publish","type":"page","link":"https:\/\/www.eviewconnect.com\/ja\/beacon-accessories\/","title":{"rendered":"\u30d3\u30fc\u30b3\u30f3 \uff06 \u30a2\u30af\u30bb\u30b5\u30ea\u30fc - \u65b0\u54c1"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"17188\" class=\"elementor elementor-17188\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-87087d7 e-con-full e-flex e-con e-parent\" data-id=\"87087d7\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8f5df35 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"8f5df35\" 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\">EW-03\u00a0(Telecare Beacon)<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4768d97 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"4768d97\" 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>By synchronizing with mobile monitoring terminals, the EW-03 Telecare Beacon ensures continuous zonal presence detection and robust data integrity across complex facility topologies.<\/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-0be7013 elementor-align-left elementor-widget elementor-widget-button\" data-id=\"0be7013\" 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=\"#elementor-action%3Aaction%3Dpopup%3Aopen%26settings%3DeyJpZCI6IjE4MzU4IiwidG9nZ2xlIjpmYWxzZX0%3D\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Contact Us<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6d108bc e-flex e-con-boxed e-con e-parent\" data-id=\"6d108bc\" 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-bee6dda e-con-full e-flex e-con e-child\" data-id=\"bee6dda\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d533a0f elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"d533a0f\" 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;\">\n<span style=\"display: inline-block; font-family: Montserrat, sans-serif; font-size: 36px; font-weight: 600; line-height: 28px; vertical-align: baseline;\">All<\/span> Eview enterprise partners can remotely manage large-scale deployments, execute OTA updates, and monitor device status in real-time through our web device configurator.<\/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-3eb3b64 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"3eb3b64\" 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.eviewconnect.com\/the-elderly\/\">\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\">Request your platform access\u00a0<\/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-1117f12 e-flex e-con-boxed e-con e-parent\" data-id=\"1117f12\" 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-4203b35 elementor-widget elementor-widget-heading\" data-id=\"4203b35\" 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\">Features<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7a18294 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"7a18294\" 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>Device Features<\/title>\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        body {\n            margin: 0;\n        }\n\n        \/* ===== \u9875\u9762\u5bb9\u5668\uff1a\u4e0e mpers\/product \u4fdd\u6301\u4e00\u81f4\u7684\u5206\u533a ===== *\/\n        .feature,\n        .feature *,\n        .feature *::before,\n        .feature *::after {\n            box-sizing: border-box;\n        }\n\n        .feature {\n            width: 100%;\n            margin: 0;\n            padding: 24px 32px;\n            font-family: \"Montserrat\", Arial, sans-serif;\n            color: #15395E;\n        }\n\n        \/* ===== 2\u00d72 \u9519\u843d\u7f51\u683c\uff1a\u56db\u5757\u7b49\u9ad8\u3001\u5bbd\u5ea6\u9519\u843d\uff0820 \u5217\u6805\u683c\uff0c\u6bcf\u5361\u6307\u5b9a\u5217\u8303\u56f4\uff09 ===== *\/\n        .feature__grid {\n            display: grid;\n            grid-template-columns: repeat(20, 1fr);\n            grid-template-rows: repeat(2, 350px);\n            \/* \u4e0a\u4e0b\u4e24\u6392\u7b49\u9ad8\uff0c\u52a0\u9ad8\u8ba9\u56fe\u7247\u533a\u66f4\u591a *\/\n            gap: 20px;\n            max-width: 1440px;\n            margin: 0 auto;\n        }\n\n        \/* ===== \u5355\u5361\uff1a\u6d45\u8272\u6e10\u53d8\u5e95 + \u5706\u89d2 ===== *\/\n        .feature__card {\n            position: relative;\n            display: flex;\n            flex-direction: column;\n            min-height: 0;\n            min-width: 0;\n            \/* \u5141\u8bb8\u88ab\u6805\u683c\/\u5185\u5bb9\u6536\u7a84\uff0c\u907f\u514d\u957f\u6807\u9898\u6491\u7834\u5361\u7247\u6ea2\u51fa *\/\n            border-radius: 24px;\n            overflow: hidden;\n            padding: 0;\n            \/* \u56fe\u7247\u5168\u51fa\u8840\uff1a\u4e0d\u56de\u6d41 padding\uff0c\u4ec5\u6807\u9898\u533a\u7559\u767d *\/\n            cursor: pointer;\n            text-decoration: none;\n            color: inherit;\n            \/* \u6eda\u5165\u89c6\u53e3\u524d\u9690\u85cf\uff0c\u7531 .is-inview \u89e6\u53d1\u5165\u573a\u52a8\u753b *\/\n            opacity: 0;\n            transition: box-shadow 0.35s ease, transform 0.35s ease;\n        }\n\n        \/* \u4ec5\u53ef\u70b9\u51fb\u5361\u7247\u60ac\u505c\u4e0a\u6d6e + \u9634\u5f71\uff08\u7eaf\u5c55\u793a\u5361\u7247\u53ea\u505a\u56fe\u7247\u5fae\u52a8\uff09 *\/\n        .feature__card--link:hover {\n            box-shadow: 0 18px 42px rgba(27, 59, 100, 0.18);\n            transform: translateY(-3px);\n        }\n\n        \/* \u65e0\u8df3\u8f6c\u94fe\u63a5\u7684\u5361\u7247\u7528\u9ed8\u8ba4\u7bad\u5934 *\/\n        .feature__card--static {\n            cursor: default;\n        }\n\n        \/* ===== \u5165\u573a\u52a8\u753b\uff1a\u6eda\u5165\u89c6\u53e3\u540e\u7531 .is-inview \u89e6\u53d1\uff0c\u56db\u5361\u9519\u5cf0\u4ece\u4e0b\u5f80\u4e0a\u6de1\u5165\u4e0a\u6d6e ===== *\/\n        .feature.is-inview .feature__card {\n            opacity: 1;\n            animation: featureCardIn 0.7s cubic-bezier(0.22, 1, 0.36, 1) backwards;\n        }\n\n        .feature.is-inview .feature__card:nth-child(1) {\n            animation-delay: 0.05s;\n        }\n\n        .feature.is-inview .feature__card:nth-child(2) {\n            animation-delay: 0.2s;\n        }\n\n        .feature.is-inview .feature__card:nth-child(3) {\n            animation-delay: 0.35s;\n        }\n\n        .feature.is-inview .feature__card:nth-child(4) {\n            animation-delay: 0.5s;\n        }\n\n        @keyframes featureCardIn {\n            from {\n                opacity: 0;\n                transform: translateY(30px);\n            }\n\n            to {\n                opacity: 1;\n                transform: translateY(0);\n            }\n        }\n\n        \/* \u6807\u9898\u5728\u9876\/\u5e95\uff0c\u5a92\u4f53\u7528 flex:1 \u94fa\u6ee1\u5269\u4f59\u533a\u57df\uff08\u56fe\u7247\u5168\u51fa\u8840\u3001\u65e0\u5185\u8fb9\u8ddd\uff09 *\/\n        .feature__card--titleTop .feature__media {\n            order: 2;\n        }\n\n        .feature__card--titleTop .feature__title {\n            order: 1;\n            padding: 0 32px 0;\n            \/* \u7559\u767d\u53ea\u5728\u6807\u9898\u533a\uff0c\u4e0d\u4f20\u7ed9\u5a92\u4f53 *\/\n        }\n\n        .feature__card--titleBottom .feature__media {\n            order: 1;\n        }\n\n        .feature__card--titleBottom .feature__title {\n            order: 2;\n            padding: 24px 32px 0;\n        }\n\n        \/* ===== \u7279\u6b8a\u7248\u5f0f\uff08split\uff09\uff1a\u6807\u9898\u6362\u884c\u9760\u5de6\u3001\u56fe\u7247\u5360\u53f3\u4fa7\u5e76\u94fa\u6ee1\u6574\u5361\u9ad8\u5ea6 =====\n        \u00b7 \u6807\u9898\u5728\u5de6\u4fa7 38% \u5bbd\u91cc\u81ea\u52a8\u6362\u884c\u3001\u5782\u76f4\u5c45\u4e2d\uff1b\n           \u00b7 \u56fe\u7247\u533a\u5360\u6ee1\u53f3\u4fa7\u5269\u4f59\u5bbd\u5ea6\uff0c\u94fa\u6ee1\u6574\u5361\u9ad8\u5ea6\uff08\u6bd4\u6807\u9898\u5728\u9876\u65f6\u66f4\u9ad8\uff09 *\/\n        .feature__card--split {\n            flex-direction: row;\n            align-items: stretch;\n        }\n\n        .feature__card--split .feature__title {\n            order: 1;\n            \/* flex: 0 1 38%; *\/\n            align-self: flex-start;\n            \/* \u6807\u9898\u5728\u5de6\u4e0a\u89d2\uff1a\u4e00\u884c\u653e\u4e0d\u4e0b\u81ea\u52a8\u6362\u884c *\/\n            \/* padding: 28px 24px 0 32px; *\/\n            overflow-wrap: break-word;\n        }\n\n        .feature__card--split .feature__media {\n            order: 2;\n            flex: 1 1 auto;\n            min-width: 0;\n        }\n\n        .feature__title {\n            font-size: 30px;\n            font-weight: 700;\n            line-height: 1.2;\n            color: #15395E;\n            transition: transform 0.3s ease;\n        }\n\n        .feature__card--link:hover .feature__title {\n            transform: translateY(-3px);\n        }\n\n        .feature__media {\n            position: relative;\n            flex: 1 1 auto;\n            min-height: 0;\n            width: 100%;\n            line-height: 0;\n            overflow: hidden;\n        }\n\n        .feature__media img {\n            display: block;\n            width: 100%;\n            height: 100%;\n            object-fit: contain;\n            \/* \u5b8c\u6574\u5c55\u793a\u6574\u53f0\u8bbe\u5907\uff0c\u4e0d\u88c1\u5207 *\/\n            object-position: center;\n            border: 0;\n            opacity: 0;\n            \/* \u52a0\u8f7d\u4e2d\u9690\u85cf\uff0c\u52a0\u8f7d\u5b8c\u6210 fadeIn\uff0c\u907f\u514d\u95ea\u5165 *\/\n            transition: transform 0.42s ease, opacity 0.5s ease;\n        }\n\n        .feature__card:hover .feature__media img {\n            transform: scale(1.03);\n        }\n\n        \/* \u56fe\u7247\u52a0\u8f7d\u5931\u8d25\u5360\u4f4d\uff08\u54c1\u724c\u540d\uff09\uff0c\u56fe\u6b63\u5e38\u540e\u9690\u85cf *\/\n        .feature__fallback {\n            position: absolute;\n            inset: 0;\n            display: none;\n            align-items: center;\n            justify-content: center;\n            background: #fff;\n            color: rgba(21, 57, 94, 0.4);\n            font-weight: 600;\n            font-size: 20px;\n            letter-spacing: 0.04em;\n        }\n\n        \/* ===== \u51cf\u5c11\u52a8\u6548\uff1a\u5173\u95ed\u4f4d\u79fb\u4e0e\u7f29\u653e ===== *\/\n        @media (prefers-reduced-motion: reduce) {\n\n            .feature__card,\n            .feature__title,\n            .feature__media img {\n                transition: none;\n            }\n\n            \/* \u964d\u7ea7\uff1a\u5361\u7247\u76f4\u63a5\u53ef\u89c1\u3001\u7981\u7528\u5165\u573a\u52a8\u753b *\/\n            .feature__card {\n                opacity: 1;\n                animation: none;\n            }\n\n            .feature__card--link:hover,\n            .feature__card--link:hover .feature__title,\n            .feature__card:hover .feature__media img {\n                transform: none;\n            }\n        }\n\n        \/* ===== \u54cd\u5e94\u5f0f\uff1a\u7a84\u5c4f\u5207\u5355\u5217 ===== *\/\n        @media (max-width: 900px) {\n            .feature {\n                padding: 20px 16px 24px;\n            }\n\n            .feature__grid {\n                grid-template-columns: 1fr;\n                grid-template-rows: auto;\n            }\n\n            \/* \u5355\u5217\u65f6\u5ffd\u7565\u6bcf\u5361\u6307\u5b9a\u7684\u5217\u8303\u56f4\uff0c\u6539\u4e3a\u6574\u884c *\/\n            .feature__card {\n                grid-column: 1 \/ -1 !important;\n                min-height: 240px;\n            }\n\n            .feature__title {\n                font-size: 26px;\n            }\n\n            \/* \u7a84\u5c4f\uff1a\u7279\u6b8a\u7248\u5f0f\uff08split\uff09\u6539\u4e3a\u4e0a\u4e0b\u5806\u53e0\uff0c\u6807\u9898\u5728\u4e0a\u3001\u56fe\u7247\u5728\u4e0b *\/\n            .feature__card--split {\n                flex-direction: column;\n            }\n\n            .feature__card--split .feature__title {\n                align-self: auto;\n                flex: none;\n                width: 100%;\n                \/* padding: 24px 32px 0; *\/\n            }\n\n            .feature__card--split .feature__media {\n                width: 100%;\n            }\n        }\n\n        @media (max-width: 480px) {\n            .feature__card {\n                padding: 22px 20px;\n                min-height: 210px;\n            }\n\n            .feature__title {\n                font-size: 22px;\n            }\n        }\n    <\/style>\n    <style>\n        html,\n        body {\n            margin: 0;\n            padding: 0\n        }\n    <\/style>\n<\/head>\n\n<body>\n    <section class=\"feature\">\n        <!-- WP HTML \u5c0f\u5de5\u5177\uff1a\u5168\u9009\u7c98\u8d34\u3002\u7c7b\u540d\u5168\u90e8 feature- \u524d\u7f00\uff0c\u907f\u514d\u4e0e\u4e3b\u9898\u6837\u5f0f\u51b2\u7a81\u3002\n       \uff1d\uff1d \u914d\u7f6e\u5165\u53e3\uff08SEO \u7ef4\u62a4\u533a\uff09 \uff1d\uff1d\n       \u540e\u671f\u53ea\u9700\u4fee\u6539\u4e0b\u65b9 FEATURE_CARDS\uff0c\u5373\u53ef\u5b8c\u6210\uff1a\n         \u6362\u6807\u9898 \/ \u6362\u56fe\u7247 \/ \u6362\u6e10\u53d8\u5e95\u8272 \/ \u6362\u8df3\u8f6c\u94fe\u63a5 \/ \u589e\u5220\u5361\u7247\uff0c\u65e0\u9700\u52a8 HTML\u3002\n       \u6bcf\u5f20\u5361\u7247\u5b57\u6bb5\u8bf4\u660e\uff1a\n         title    \u6807\u9898\uff08\u4e5f\u662f\u56fe\u7247 alt \/ SEO \u5173\u952e\u8bcd\u6765\u6e90\uff09\n         image    \u5361\u7247\u4ea7\u54c1\u56fe\u5730\u5740\uff08\u5f53\u524d\u4e3a\u5360\u4f4d\u56fe\uff0c\u66ff\u6362\u4e3a\u6b63\u5f0f\u56fe\u5373\u53ef\uff09\n         alt      \uff08\u53ef\u9009\uff09\u56fe\u7247 alt \u6587\u672c\uff0c\u7f3a\u7701\u7528 title\n         imgPos   \uff08\u53ef\u9009\uff09\u56fe\u7247\u5728\u5361\u7247\u5185\u7684\u5bf9\u9f50\u65b9\u5f0f\uff0c\u503c\u5373 CSS object-position\uff1a\n                  \u5982 \"left\" \/ \"center\" \/ \"right\" \/ \"right center\" \/ \"50% 20%\" \u7b49\uff1b\n                  \u7f3a\u7701 center\u3002\u9002\u5408\u540c\u4e00\u6a21\u5757\u590d\u7528\u4e8e\u591a\u4e2a\u9875\u9762\u65f6\u5355\u72ec\u5fae\u8c03\u6bcf\u5f20\u56fe\u7684\u4f4d\u7f6e\n         titleAlign\uff08\u53ef\u9009\uff09\u6807\u9898\u6587\u672c\u5bf9\u9f50\u65b9\u5f0f\uff0c\u503c\u5373 CSS text-align\uff1a\n                  \u5982 \"left\" \/ \"center\" \/ \"right\"\uff1b\u7f3a\u7701 left\u3002\u5bbd\u5361\u5e38\u7528\u5c45\u4e2d\u66f4\u5e73\u8861\n         bg       \u5361\u7247\u5e95\u8272\uff08CSS background \u7b80\u5199\uff1a\u7eaf\u8272\u5982 #d9e8fb\uff0c\u6216\u6e10\u53d8\u5982 linear-gradient(...)\uff1b\u7f3a\u7701\u7eaf\u8272\uff09\n         row      \"top\"\uff08\u4e0a\u6392\uff0c\u6807\u9898\u5728\u4e0a\uff09\/ \"bottom\"\uff08\u4e0b\u6392\uff0c\u6807\u9898\u5728\u4e0b\uff09\n         split    \uff08\u53ef\u9009\uff09true = \u7279\u6b8a\u7248\u5f0f\uff1a\u6807\u9898\u6362\u884c\u9760\u5de6\uff0c\u56fe\u7247\u5360\u53f3\u4fa7\u3001\u94fa\u6ee1\u6574\u5361\u66f4\u9ad8\uff08\u7ad6\u957f\u56fe\u9002\u7528\uff09\n         cols     \u5217\u8303\u56f4 [\u8d77\u70b9, \u7ec8\u70b9]\uff0c\u57fa\u4e8e 20 \u5217\u6805\u683c\uff0c\u63a7\u5236\u5361\u7247\u5bbd\u5ea6\uff08\u9519\u843d\u5e03\u5c40\u7528\uff09\uff1b\u4e0d\u914d\u7f6e\u5219\u4f9d\u6b21\u94fa\u6392\n         url      \uff08\u53ef\u9009\uff09\u8df3\u8f6c\u94fe\u63a5\uff0c\u914d\u4e86\u5219\u6574\u5361\u53ef\u70b9\uff1b\u7559\u7a7a\u8868\u793a\u4ec5\u5c55\u793a\u4e0d\u53ef\u70b9\n         blank    \uff08\u53ef\u9009\uff09\u662f\u5426\u65b0\u7a97\u53e3\u6253\u5f00\uff1atrue = \u65b0\u7a97\u53e3\uff08\u9ed8\u8ba4\uff09\/ false = \u5f53\u524d\u9875\u8df3\u8f6c\n    -->\n\n        <div class=\"feature__grid\" id=\"featureGrid\"><\/div>\n\n        <script>\n            var FEATURE_CARDS = [\n                \/\/ row: \"top\" \u2014\u2014 \u4e0a\u6392 2 \u5f20\uff0c\u6807\u9898\u5728\u4e0a\u3001\u56fe\u5728\u4e0b\n                {\n                    title: \"Power On\/Off\",\n                    image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/09\/beacon-3-1-1.png\", \/\/ Large SOS button \u914d\u56fe\n                    imgPos: \"right\", \/\/ \u56fe\u7247\u5bf9\u9f50\u5230\u5361\u7247\u53f3\u4fa7\n                    bg: \"#D9E8FB\", \/\/ \u5361\u7247\u5e95\u8272\uff08\u53ef\u6362\u6210\u4efb\u610f\u989c\u8272\u6216\u6e10\u53d8\uff09\n                    row: \"top\",\n                    cols: [1, 11] \/\/ \u7ea6\u5360 50%\n                },\n                {\n                    title: \"Scan QR code for BLE MAC address\",\n                    image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/09\/EW-03-1-1.png\", \/\/ Power On\/Off \u914d\u56fe\n                    imgPos: \"right\", \/\/ \u56fe\u7247\u5bf9\u9f50\u5230\u5361\u7247\u53f3\u4fa7\n                    bg: \"#DEEEF5\",\n                    row: \"bottom\",\n                    cols: [11, 21], \/\/ \u7ea6\u5360 50%\n                    split: true \/\/ \u7279\u6b8a\u7248\u5f0f\uff1a\u6807\u9898\u6362\u884c\u9760\u5de6\uff0c\u56fe\u7247\u5360\u53f3\u4fa7\u4e14\u66f4\u9ad8\n                },\n                \/\/ row: \"bottom\" \u2014\u2014 \u4e0b\u6392 2 \u5f20\uff0c\u56fe\u5728\u4e0a\u3001\u6807\u9898\u5728\u4e0b\n                {\n                    title: \"Area to stick double sided tape\",\n                    image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/09\/BEACON-\u80cc\u9762-1-1.png\", \/\/ SIM Slot \u914d\u56fe\n                    titleAlign: \"right\", \/\/ \u56fe\u7247\u5bf9\u9f50\u5230\u5361\u7247\u53f3\u4fa7\n                    bg: \"#D9E8FB\",\n                    row: \"top\",\n                    cols: [1, 21] \/\/ \u5bbd\u5361\uff0c\u7ea6\u5360 65%\n                }\n            ];\n\n            function initModule() {\n                var grid = document.getElementById(\"featureGrid\");\n                if (!grid) return;\n\n                function esc(s) {\n                    return String(s == null ? \"\" : s).replace(\/[\"&<>]\/g, function (ch) {\n                        return { '\"': \"&quot;\", \"&\": \"&amp;\", \"<\": \"&lt;\", \">\": \"&gt;\" }[ch];\n                    });\n                }\n\n                function cardHtml(c) {\n                    var posClass = c.row === \"bottom\" ? \"feature__card--titleBottom\" : \"feature__card--titleTop\";\n                    var splitClass = c.split ? \" feature__card--split\" : \"\";\n                    var bg = c.bg || \"linear-gradient(135deg, #F0F4FF 0%, #E3EBFF 100%)\";\n                    var alt = c.alt || c.title;\n                    var blankAttr = c.blank !== false ? ' target=\"_blank\" rel=\"noopener\"' : \"\";\n                    var gridCol = c.cols ? \"grid-column:\" + (c.cols[0] || 1) + \" \/ \" + (c.cols[1] || 21) + \";\" : \"\";\n                    \/\/ \u56fe\u7247\u5728\u5361\u7247\u5185\u7684\u5bf9\u9f50\u65b9\u5f0f\uff1a\u4ec5\u5f53\u914d\u7f6e\u4e86 imgPos\uff08CSS object-position \u503c\uff09\u624d\u5185\u8054\u8986\u76d6\uff0c\u7f3a\u7701\u7528 CSS \u9ed8\u8ba4 center\n                    var imgPos = c.imgPos ? ' style=\"object-position:' + esc(c.imgPos) + ';\"' : \"\";\n                    \/\/ \u6807\u9898\u6587\u672c\u5bf9\u9f50\uff1a\u4ec5\u5f53\u914d\u7f6e\u4e86 titleAlign\uff08text-align \u503c\uff09\u624d\u5185\u8054\u8986\u76d6\uff0c\u7f3a\u7701\u5de6\u5bf9\u9f50\n                    var titleAlign = c.titleAlign ? ' style=\"text-align:' + esc(c.titleAlign) + ';\"' : \"\";\n\n                    var inner = ''\n                        + '<h2 class=\"feature__title\"' + titleAlign + '>' + esc(c.title) + '<\/h2>'\n                        + '<div class=\"feature__media\">'\n                        + '<img src=\"' + esc(c.image) + '\" alt=\"' + esc(alt) + '\"' + imgPos + ' loading=\"lazy\" decoding=\"async\" \/>'\n                        + '<span class=\"feature__fallback\" aria-hidden=\"true\">' + esc(c.title) + '<\/span>'\n                        + '<\/div>';\n\n                    var styleAttr = ' style=\"background:' + bg + ';' + gridCol + '\"';\n                    if (c.url) {\n                        return '<a class=\"feature__card ' + posClass + splitClass + ' feature__card--link\" href=\"' + esc(c.url) + '\"'\n                            + styleAttr + blankAttr + '>' + inner + '<\/a>';\n                    }\n                    return '<div class=\"feature__card ' + posClass + splitClass + ' feature__card--static\"' + styleAttr + '>' + inner + '<\/div>';\n                }\n\n                grid.innerHTML = FEATURE_CARDS.map(function (c) { return cardHtml(c); }).join(\"\\n\");\n\n                \/\/ \u56fe\u7247\u52a0\u8f7d\u5931\u8d25 \u2192 \u54c1\u724c\u5360\u4f4d\uff1b\u6210\u529f \u2192 \u9690\u85cf\u5360\u4f4d\u5e76\u6de1\u5165\u3002\n                \/\/ \u7528 forEach \u8ba9\u6bcf\u5f20\u5361\u7684 img\/fb \u662f\u72ec\u7acb\u4f5c\u7528\u57df\u53d8\u91cf\uff0c\u907f\u514d var \u51fd\u6570\u7ea7\u5171\u4eab\u5bfc\u81f4\n                \/\/ showImg\/showFb \u603b\u662f\u64cd\u4f5c\u6700\u540e\u4e00\u5f20\u5361\uff08\u6de1\u5165\u53ea\u5bf9\u6700\u540e\u4e00\u5f20\u751f\u6548\uff09\n                grid.querySelectorAll(\".feature__card\").forEach(function (card) {\n                    var media = card.querySelector(\".feature__media\");\n                    if (!media) return;\n                    var img = media.querySelector(\"img\");\n                    var fb = media.querySelector(\".feature__fallback\");\n                    if (!img || !fb) return;\n                    function showImg() { img.style.opacity = \"1\"; img.style.display = \"block\"; fb.style.display = \"none\"; }\n                    function showFb() { img.style.display = \"none\"; fb.style.display = \"flex\"; }\n                    img.addEventListener(\"load\", showImg);\n                    img.addEventListener(\"error\", showFb);\n                    if (img.complete) {\n                        if (img.naturalWidth) showImg(); else showFb();\n                    }\n                });\n\n                \/\/ ===== \u6eda\u5165\u89c6\u53e3\u65f6\u56db\u5361\u9519\u5cf0\u5165\u573a\uff08\u964d\u7ea7\u76f4\u63a5\u663e\u793a\uff09 =====\n                (function () {\n                    var section = document.querySelector(\".feature\");\n                    if (!section) return;\n                    if (window.matchMedia && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches) {\n                        section.classList.add(\"is-inview\");\n                        return;\n                    }\n                    if (!(\"IntersectionObserver\" in window)) {\n                        section.classList.add(\"is-inview\");\n                        return;\n                    }\n                    var io = new IntersectionObserver(function (entries) {\n                        entries.forEach(function (en) {\n                            if (!en.isIntersecting) return;\n                            section.classList.add(\"is-inview\");\n                            io.unobserve(section);\n                        });\n                    }, { threshold: 0.2 });\n                    io.observe(section);\n                })();\n            }\n\n            if (document.readyState === \"loading\") {\n                document.addEventListener(\"DOMContentLoaded\", initModule);\n            } else {\n                initModule();\n            }\n        <\/script>\n    <\/section>\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-6565bd1 e-flex e-con-boxed e-con e-parent\" data-id=\"6565bd1\" 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-f2ed7f6 elementor-widget elementor-widget-heading\" data-id=\"f2ed7f6\" 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\">Core Capabilities<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f98ab00 elementor-widget elementor-widget-text-editor\" data-id=\"f98ab00\" 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=\"text-align: center;\">Reliable Emergency Protection When It Matters Most.<\/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-3d3337f elementor-widget elementor-widget-html\" data-id=\"3d3337f\" 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\/07\/Group-35406-1.png);\"\n       data-bg-0=\"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/07\/Group-35406-1.png\"\n       data-bg-1=\"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/07\/Group-35472.png\"\n       data-bg-2=\"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/07\/Group-35474.png\"\n       data-bg-3=\"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/07\/Group-35473.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\">Continuous Spatial 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            The EW-03 acts as a critical anchor within the facility's monitoring ecosystem. By establishing a continuous BLE baseline, it automatically triggers data handshakes when compatible mobile monitoring terminals enter its effective coverage zone. This enables seamless indoor tracking and precise location mapping without requiring manual intervention from staff or patients.\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\">Edge-Level Power Synergy<\/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            System efficiency is optimized through intelligent edge-level collaboration. When a mobile monitoring terminal detects the beacon's localized broadcast, it automatically transitions its internal high-power tracking modules (such as GPS) into standby mode. This strategic delegation of location broadcasting significantly extends the battery lifecycle of the primary monitoring devices.\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\">Ambient Temperature 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            Beyond spatial tracking, the Telecare Beacon contributes to facility safety protocols by integrating a high-sensitivity temperature sensor. It continuously samples ambient thermal baselines, allowing the central monitoring system to aggregate environmental data across different zones, ensuring compliance with clinical or enterprise environmental standards.\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\">Non-Intrusive Deployment<\/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            Designed for complex environments, the compact, lightweight (25g) architecture allows for rapid, non-intrusive deployment. The IP67-rated enclosure withstands rigorous cleaning protocols and liquid exposure. Furthermore, a streamlined physical interface enables instant on-site system diagnostics, including visual LED verification of broadcast status and low-battery thresholds.\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 =====\nfunction initModule() {\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\nif (document.readyState === \"loading\") {\n  document.addEventListener(\"DOMContentLoaded\", initModule);\n} else {\n  initModule();\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-8ad8288 e-con-full e-flex e-con e-parent\" data-id=\"8ad8288\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-54e9a66 elementor-widget elementor-widget-html\" data-id=\"54e9a66\" 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>\u5b98\u7f51\u9996\u9875<\/title>\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;800&display=swap\"\n        rel=\"stylesheet\" \/>\n    <style>\n        :root {\n            --navy: #15395E;\n            --teal: #4CC7C4;\n            --teal-deep: #19A6A3;\n            --muted: #6b7c8f;\n        }\n\n        * {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n        }\n\n        body {\n            font-family: \"Montserrat\", sans-serif;\n            color: var(--navy);\n            margin: 0;\n        }\n\n        \/* ===== \u9875\u9762\u80cc\u666f\uff08WP \u5f3a\u9501\uff09 =====\n           \u4ece\u4e0a\u5230\u4e0b #FFFFFF \u2192 #D7E0F4\u3002\n           WP \u4e3b\u9898\u51e0\u4e4e\u90fd\u4f1a\u7ed9 body \u8bbe\u7f6e\u80cc\u666f\uff08\u751a\u81f3\u5e26 !important\uff09\uff0c\u666e\u901a\n           body{background:...} \u4f1a\u88ab\u76f4\u63a5\u538b\u6389 \u2014\u2014 \u8fd9\u91cc\u7528 html body.eview-page\n           \u63d0\u9ad8\u7279\u5f02\u6027 + !important \u53cd\u538b\uff1bJS \u4f1a\u7ed9 body \u6302\u4e0a eview-page \u7c7b\u3002\n           background-attachment: fixed \u662f\u523b\u610f\u7684\uff1a\u6e10\u53d8\u94fa\u6ee1\u89c6\u53e3\u3001\u968f\u6eda\u52a8\u6052\u5b9a\uff0c\n           WP \u957f\u9875\u91cc\u6a21\u5757\u4e0a\u4e0b\u7684\u80cc\u666f\u624d\u8fde\u6210\u4e00\u7247\uff0c\u4e0d\u4f1a\u51fa\u73b0\"\u6a21\u5757\u5185\u662f\u6e10\u53d8\u3001\u51fa\u4e86\n           \u6a21\u5757\u53d8\u56de\u4e3b\u9898\u767d\u5e95\"\u7684\u786c\u8fb9\u3002 *\/\n        html body.eview-page,\n        html body {\n            background: linear-gradient(180deg, #FFFFFF 0%, #D7E0F4 100%) !important;\n            background-attachment: fixed !important;\n            min-height: 100vh;\n        }\n\n        \/* \u79fb\u52a8\u7aef\uff1aiOS \u5bf9 fixed \u80cc\u666f\u652f\u6301\u4e0d\u7a33\uff08\u6eda\u52a8\u6296\u52a8\u3001\u6027\u80fd\u5f00\u9500\uff09\uff0c\u964d\u7ea7\u4e3a\u968f\u9875\u9762\u6d41\u52a8 *\/\n        @media (max-width: 800px) {\n            html body.eview-page,\n            html body {\n                background-attachment: scroll !important;\n            }\n        }\n\n        \/* \u9690\u85cf\u6eda\u52a8\u6761\uff08\u4fdd\u7559\u6eda\u52a8\u529f\u80fd\uff09 *\/\n        html {\n            scrollbar-width: none;\n            \/* Firefox *\/\n            -ms-overflow-style: none;\n            \/* \u65e7 Edge \/ IE *\/\n        }\n\n        html::-webkit-scrollbar {\n            display: none;\n            \/* Chrome \/ Safari *\/\n        }\n\n        \/* \u9876\u90e8\u6eda\u52a8\u8fdb\u5ea6\u6761 *\/\n        .scroll-progress {\n            position: fixed;\n            top: 0;\n            left: 0;\n            right: 0;\n            height: 3px;\n            z-index: 1000;\n            pointer-events: none;\n        }\n\n        .scroll-progress__bar {\n            display: block;\n            height: 100%;\n            width: 0%;\n            background: linear-gradient(90deg, #4CC7C4, #19A6A3);\n            transition: width 0.1s linear;\n        }\n\n        .home {\n            width: 100%;\n            max-width: 1440px;\n            margin: 0 auto;\n            padding: 44px 0 0;\n            \/* \u9876 44 + \u6807\u9898 margin-top 10 \u2248 54px\uff0c\u4e0e guide.html \u4e00\u81f4 *\/\n            \/* \u4e0d\u8bbe\u80cc\u666f\uff1a\u6574\u9875\u6e10\u53d8\u7531 body \u72ec\u5bb6\u627f\u62c5\uff0c\u6a21\u5757\u4e0d\u518d\u662f\"\u767d\u5e95\u8d34\u7247\" *\/\n            background: transparent;\n        }\n\n        \/* ===== \u533a\u5757\u5927\u6807\u9898\uff08\u6837\u5f0f\u5bf9\u9f50 guide.html .gd__title\uff09 ===== *\/\n        .home__title {\n            margin: 32px 0 128px;\n            font-size: 44px;\n            font-weight: 700;\n            line-height: 1.1;\n            color: #15395E;\n            text-align: center;\n            font-family: \"Montserrat\", Arial, sans-serif;\n            font-synthesis: none;\n            -webkit-font-smoothing: antialiased;\n            opacity: 0;\n            transform: translateY(16px);\n            transition:\n                opacity 0.85s cubic-bezier(0.22, 1, 0.36, 1),\n                transform 0.85s cubic-bezier(0.22, 1, 0.36, 1),\n                font-weight 0.2s ease;\n        }\n\n        \/* \u5b57\u4f53\u52a0\u8f7d\u5b8c\u6210\u540e\u518d\u5347\u5230 800\uff0c\u907f\u514d\u5f31\u7f51 swap \u65f6\u5b57\u91cd\u8df3\u53d8 *\/\n        .home.fonts-ready .home__title {\n            font-weight: 800;\n        }\n\n        .home.is-inview .home__title {\n            opacity: 1;\n            transform: translateY(0);\n        }\n\n        \/* ===== \u4ea7\u54c1\u7f51\u683c\uff1a\u4e0a\u65b9 2 \u5217 \/ \u4e0b\u65b9 3 \u5217 ===== *\/\n        .product-grid {\n            display: grid;\n            gap: 15px;\n            width: 100%;\n        }\n\n        .product-grid--all {\n            grid-template-columns: repeat(var(--cols, 4), 1fr);\n            \/* \u4e00\u884c\u94fa\u6ee1\uff1a\u5217\u6570\u968f\u5361\u7247\u6570\u91cf\u81ea\u52a8\u53d8\u5316\uff08\u9ed8\u8ba4 4\uff0cJS \u6309\u5361\u7247\u6570\u8d4b\u503c\uff09 *\/\n            align-items: end;\n            \/* \u5e95\u90e8\u5bf9\u9f50\uff0c\u9ad8\u5ea6\u5141\u8bb8\u4e0d\u540c *\/\n        }\n\n        .pcard {\n            position: relative;\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            justify-content: flex-start;\n            \/* \u6e10\u53d8\u80cc\u666f\uff08\u5de6\u4e0a \u2192 \u53f3\u4e0b\uff09+ \u9876\u90e8\u4e24\u89d2\u5706\u89d2 *\/\n            background: linear-gradient(135deg, #FFFFFF99, #DFEFFF);\n            border: none;\n            backdrop-filter: blur(10px);\n            text-align: center;\n            padding: 0;\n            border-radius: 20px 20px 0 0;\n            min-height: 520px;\n            \/* \u5361\u7247\u586b\u6ee1\u7f51\u683c\u5355\u5143\u683c\uff0c4 \u5f20\u5e73\u5206 1440px *\/\n            width: 100%;\n            justify-self: center; \/* \u5355\u5361\u9650\u5bbd\u540e\u5c45\u4e2d\u4e8e\u6240\u5728\u5217 *\/\n            max-width: 420px;     \/* \u5361\u7247\u53d8\u5c11\uff08\u5982 3 \u5f20\uff09\u65f6\u538b\u7a84\uff0c\u56db\u5468\u89c6\u89c9\u95f4\u8ddd\u81ea\u7136\u62c9\u5927 *\/\n            cursor: pointer;\n            \/* \u6574\u5361\u53ef\u70b9 *\/\n            opacity: 0;\n            \/* Apple \u5f0f\u5165\u573a\uff1a\u4f4d\u79fb\u66f4\u5927\u3001\u65f6\u957f\u66f4\u957f\uff0c\u914d\u5f3a\u7f13\u51fa\u66f2\u7ebf\uff0c\u6d6e\u8d77\u65f6\u4e0d\u6025\u4e0d\u8e81 *\/\n            transform: translate3d(0, 48px, 0);\n            will-change: transform, opacity;\n            transition:\n                opacity 1.5s cubic-bezier(0.28, 0.11, 0.32, 1),\n                transform 1.5s cubic-bezier(0.28, 0.11, 0.32, 1),\n                box-shadow 0.55s cubic-bezier(0.22, 1, 0.36, 1);\n        }\n\n        \/* \u7b2c 2\u30014 \u5f20\uff08\u7d22\u5f15 1\u30013\uff09\uff1a\u66f4\u9ad8\uff0c\u5f62\u6210\u9519\u843d\u5c71\u5cf0\u5f0f\u5e03\u5c40 *\/\n        .pcard--tall {\n            min-height: 580px;\n        }\n\n        .pcard:focus-visible {\n            outline: 3px solid var(--teal);\n            outline-offset: 2px;\n        }\n\n        \/* hover \u4e0a\u6d6e\uff1a\u4ec5\u5165\u573a\u52a8\u753b\u7ed3\u675f\u540e\u751f\u6548\uff0c\u907f\u514d\u4e0e keyframes \u62a2 transform *\/\n        .pcard.is-ready:hover {\n            z-index: 5;\n            transform: translateY(-6px);\n            box-shadow: 0 20px 40px rgba(21, 57, 94, 0.18);\n        }\n\n        .home.is-inview .pcard {\n            opacity: 1;\n            transform: translate3d(0, 0, 0);\n            \/* \u6bcf\u5f20\u5361\u7684\u51fa\u573a\u5ef6\u8fdf\u7531 JS \u6ce8\u5165\uff08--pop-d\uff09\uff0c\u4fdd\u8bc1\u4e0e CARD_TRANS_MS \u540c\u6e90 *\/\n            transition-delay: var(--pop-d, 0.2s);\n        }\n\n        .pcard.is-ready {\n            will-change: auto;\n            opacity: 1;\n            transform: none;\n        }\n\n\n        .pcard--wide {\n            min-height: 360px;\n        }\n\n        .pcard__title,\n        .pcard__sub {\n            position: relative;\n            z-index: 2;\n            \/* \u6587\u5b57\u5728\u56fe\u7247\u4e4b\u4e0a *\/\n        }\n\n        .pcard__body {\n            position: relative;\n            width: 100%;\n            height: auto;\n            flex: 1;\n            display: flex;\n            flex-direction: column;\n            align-items: stretch;\n            justify-content: flex-start;\n            gap: 24px;\n            padding: 84px 28px 26px;\n            margin-top: 0;\n            z-index: 2;\n        }\n\n        .pcard__title {\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            text-align: center;\n            font-size: 28px;\n            font-weight: 700;\n            color: var(--title-c, var(--navy)) !important;\n            transition: color 0.3s ease;\n        }\n\n        .pcard:hover .pcard__title {\n            color: var(--teal);\n            \/* hover \u70b9\u4eae\uff0c\u4e3b\u9898\u8272 *\/\n        }\n\n        .pcard__sub {\n            margin: 0;\n            padding: 0;\n            max-width: 100%;\n            overflow-wrap: break-word;\n            word-break: break-word;\n            font-size: 16px;\n            font-weight: 600;\n            color: #15395E;\n            line-height: 1.5;\n            text-align: left;\n            width: 100%;\n        }\n\n        \/* \u89c4\u683c\u5217\u8868 subtitle\uff08\u8bbe\u8ba1\u56fe\uff1a\u52a0\u7c97\u6807\u7b7e + \u5706\u70b9 + \u53ef\u5d4c\u5957\uff09 *\/\n        .pcard__spec {\n            width: 100%;\n            margin: 0;\n            padding: 0;\n            list-style: none;\n            text-align: left;\n        }\n\n        .pcard__spec > li {\n            position: relative;\n            padding-left: 14px;\n            margin-bottom: 8px;\n            font-size: 16px;\n            font-weight: 600;\n            line-height: 1.5;\n            color: #15395E;\n        }\n\n        .pcard__spec > li:last-child {\n            margin-bottom: 0;\n        }\n\n        .pcard__spec > li::before {\n            content: \"\";\n            position: absolute;\n            left: 0;\n            top: 0.62em;\n            width: 5px;\n            height: 5px;\n            border-radius: 50%;\n            background: var(--spec-dot, #15395E);\n            transform: translateY(-50%);\n        }\n\n        .pcard__spec-label {\n            font-weight: 700;\n        }\n\n        .pcard__spec-nested {\n            margin: 6px 0 0;\n            padding: 0 0 0 4px;\n            list-style: none;\n        }\n\n        .pcard__spec-nested > li {\n            position: relative;\n            padding-left: 12px;\n            margin-bottom: 4px;\n            font-weight: 600;\n        }\n\n        .pcard__spec-nested > li:last-child {\n            margin-bottom: 0;\n        }\n\n        .pcard__spec-nested > li::before {\n            content: \"\";\n            position: absolute;\n            left: 0;\n            top: 0.62em;\n            width: 4px;\n            height: 4px;\n            border-radius: 50%;\n            background: var(--spec-dot, #15395E);\n            transform: translateY(-50%);\n        }\n\n        .pcard--c1 .pcard__spec { --spec-dot: #6C64D8; }\n        .pcard--c2 .pcard__spec { --spec-dot: #057CFF; }\n        .pcard--c3 .pcard__spec { --spec-dot: #4CC7C4; }\n        .pcard--c4 .pcard__spec { --spec-dot: #6C64D8; }\n\n        \/* \u534a\u5bbd\u5361\u7a7a\u95f4\u7a84\uff0c\u6807\u9898\u964d\u6863\uff0c\u4e3b\u6b21\u5206\u660e *\/\n        .pcard--half .pcard__title {\n            font-size: 28px;\n        }\n\n        \/* \u4e00\u884c 3 \u4e2a\uff08\u66f4\u7a84\uff09\u65f6\u6807\u9898\u52a8\u6001\u8c03\u5c0f *\/\n        .pcard--row4 .pcard__title {\n            font-size: 28px;\n        }\n\n        .pcard__media {\n            \/* \u672a\u6765\u56fe\u7247\u53ea\u63d0\u4f9b\u4e0a\u65b9\u5706\u5f62\u56fe\u6807\uff1a\u9a91\u5728\u5361\u7247\u9876\u90e8\u8fb9\u6846\u4e2d\u95f4\uff0c\n               \u4e00\u534a\u5728\u5361\u7247\u5916\u3001\u4e00\u534a\u5728\u5361\u7247\u5185\uff0c\u5c42\u7ea7\u6700\u9ad8 *\/\n            position: absolute;\n            top: -59px;\n            \/* 118px \u56fe\u7247\u7684\u4e00\u534a\uff0c\u6b63\u597d\u9a91\u5728\u9876\u8fb9\u6846\u7ebf\u4e0a *\/\n            left: 50%;\n            transform: translateX(-50%);\n            width: 118px;\n            height: 118px;\n            z-index: 20;\n            \/* \u9632\u6b62\u906e\u6321\u6587\u5b57\u70b9\u51fb *\/\n            pointer-events: none;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n        }\n\n        .pcard__media img {\n            position: relative;\n            display: block;\n            width: 100%;\n            height: 100%;\n            border-radius: 50%;\n            object-fit: contain;\n            object-position: center;\n            transform: scale(1);\n            transform-origin: center center;\n            z-index: 1;\n            \/* \u4e1d\u6ed1\u5207\u5165\u5207\u51fa\uff1a\u7f13\u51fa\uff08\u5feb\u8fdb\u6162\u51fa\uff09\uff0c\u65f6\u957f\u9002\u4e2d *\/\n            transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);\n        }\n\n        \/* \u56fe\u6807\u5e95\u90e8\u5149\u6655\uff1ahover \u65f6\u67d4\u548c\u6269\u6563\uff0c\u589e\u5f3a\u52a8\u611f *\/\n        .pcard__media::before {\n            content: \"\";\n            position: absolute;\n            inset: -10px;\n            border-radius: 50%;\n            background: radial-gradient(circle, rgba(76, 199, 196, 0.38) 0%, rgba(76, 199, 196, 0) 68%);\n            opacity: 0;\n            transform: scale(0.7);\n            pointer-events: none;\n            transition: opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1),\n                transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);\n        }\n\n        .pcard:hover .pcard__media img {\n            transform: scale(1.2);\n        }\n\n        .pcard:hover .pcard__media::before {\n            opacity: 1;\n            transform: scale(1.15);\n        }\n\n        \/* ===== \u9996\u5c4f\u6807\u9898\u5165\u573a\uff08\u54c1\u724c\u7b2c\u4e00\u5370\u8c61\uff09 ===== *\/\n        @keyframes heroRise {\n            0% {\n                opacity: 0;\n                transform: translateY(26px);\n            }\n\n            100% {\n                opacity: 1;\n                transform: translateY(0);\n            }\n        }\n\n        .pcard--wide .pcard__title,\n        .pcard--wide .pcard__sub {\n            opacity: 0;\n            animation: heroRise 0.7s cubic-bezier(0.22, 1.2, 0.36, 1) forwards;\n        }\n\n        .pcard--wide .pcard__title {\n            animation-delay: 0.15s;\n        }\n\n        .pcard--wide .pcard__sub {\n            animation-delay: 0.30s;\n        }\n\n        \/* ===== Job \u4e8c\u7ea7\u5165\u53e3\uff08\u8df3\u8f6c job.html\uff09 ===== *\/\n        .job-entry {\n            display: flex;\n            align-items: center;\n            justify-content: space-between;\n            gap: 24px;\n            padding: 28px 40px;\n            border-radius: 16px;\n            background: linear-gradient(90deg, #36c2b8 0%, #1b3b64 100%);\n            text-decoration: none !important;\n            transition: box-shadow 0.3s ease, transform 0.3s ease;\n        }\n\n        .job-entry:hover {\n            box-shadow: 0 14px 34px rgba(27, 59, 100, 0.25);\n            transform: translateY(-2px);\n        }\n\n        .job-entry__text {\n            text-align: left;\n        }\n\n        .job-entry__title {\n            font-size: 28px;\n            font-weight: 700;\n            color: #ffffff !important;\n            line-height: 1.3;\n        }\n\n        .job-entry__sub {\n            font-size: 16px;\n            font-weight: 500;\n            color: rgba(255, 255, 255, 0.85) !important;\n            margin-top: 6px;\n        }\n\n        .job-entry__btn {\n            flex-shrink: 0;\n            display: inline-flex;\n            align-items: center;\n            gap: 8px;\n            font-size: 17px;\n            font-weight: 700;\n            color: #1b3b64 !important;\n            background: #ffffff;\n            padding: 12px 26px;\n            border-radius: 999px;\n            transition: transform 0.3s ease, box-shadow 0.3s ease;\n        }\n\n        .job-entry:hover .job-entry__btn {\n            transform: translateX(4px);\n            box-shadow: 0 6px 16px rgba(27, 59, 100, 0.2);\n        }\n\n        \/* WP \u9632\u5fa1 + \u79fb\u52a8\u7aef *\/\n        .job-entries {\n            display: grid;\n            grid-template-columns: 1fr 1fr;\n            gap: 20px;\n            margin-top: 32px;\n        }\n\n        .job-entry,\n        .job-entry:link,\n        .job-entry:visited,\n        .job-entry:hover,\n        .job-entry:active {\n            text-decoration: none !important;\n            border: 0 !important;\n            box-shadow: none !important;\n        }\n\n        @media (max-width: 800px) {\n            .job-entry {\n                flex-direction: column;\n                align-items: flex-start;\n                padding: 22px 24px;\n            }\n\n            .job-entry__title {\n                font-size: 22px;\n            }\n\n            .job-entries {\n                grid-template-columns: 1fr;\n            }\n        }\n\n        \/* ===== \u79fb\u52a8\u7aef\u9002\u914d ===== *\/\n        \/* \u5e73\u677f\u53ca\u4ee5\u4e0b\uff1a\u5355\u5217 + \u7f29\u5c0f\u5b57\u53f7\u4e0e\u5185\u8fb9\u8ddd *\/\n        @media (max-width: 800px) {\n            .pcard__title {\n                font-size: 20px !important;\n            }\n\n            .pcard--half .pcard__title {\n                font-size: 20px !important;\n            }\n\n            .pcard__sub {\n                font-size: 13.5px !important;\n            }\n\n            .product-grid,\n            .product-grid--all {\n                grid-template-columns: 1fr !important;\n                gap: 15px;\n            }\n\n            \/* \u79fb\u52a8\u7aef\u5355\u5217\uff1a\u5361\u7247\u653e\u5bbd\u5360\u6ee1\uff0c\u907f\u514d\u8fc7\u7a84 *\/\n            .pcard {\n                max-width: none;\n            }\n\n            .pcard--wide {\n                min-height: 420px;\n            }\n\n            .pcard__title {\n                font-size: 20px;\n            }\n\n            .pcard--half .pcard__title {\n                font-size: 20px;\n            }\n\n            .pcard__sub {\n                font-size: 13.5px;\n                margin: 0;\n            }\n        }\n\n        \/* \u624b\u673a\uff1a\u8fdb\u4e00\u6b65\u538b\u7f29\uff0c\u907f\u514d\u5927\u56fe\u5361\u6324\u538b\u6587\u5b57 *\/\n        @media (max-width: 480px) {\n            .pcard__title {\n                font-size: 18px !important;\n            }\n\n            .pcard--half .pcard__title {\n                font-size: 18px !important;\n            }\n\n            .pcard__sub {\n                font-size: 13px;\n                margin: 0;\n            }\n\n            .pcard__media img {\n                transform: scale(1);\n            }\n\n            .pcard:hover .pcard__media::before {\n                opacity: 0;\n                transform: scale(0.7);\n            }\n\n            \/* \u5c0f\u5c4f\u5173\u95ed\u5361\u7247\u9634\u5f71\uff0c\u907f\u514d\u8fb9\u7f18\u88c1\u5207\u89c2\u611f *\/\n            .pcard:hover {\n                transform: none;\n                box-shadow: none;\n            }\n        }\n\n        @media (prefers-reduced-motion: reduce) {\n            .home__title,\n            .home.is-inview .home__title {\n                opacity: 1;\n                transform: none;\n                transition: none;\n            }\n\n            .pcard,\n            .home.is-inview .pcard {\n                opacity: 1;\n                transform: none;\n                transition: none;\n                will-change: auto;\n            }\n\n            .pcard.is-ready:hover {\n                transform: none;\n                box-shadow: none;\n            }\n\n            .pcard__media img {\n                transition: none;\n            }\n\n            .pcard__media::before {\n                transition: none;\n                opacity: 0;\n            }\n\n            .pcard--wide .pcard__title,\n            .pcard--wide .pcard__sub {\n                opacity: 1;\n                animation: none;\n            }\n        }\n\n        \/* ===== WordPress \u4e3b\u9898\u6837\u5f0f\u9632\u5fa1 =====\n           WP \u4e3b\u9898\u5e38\u5bf9 h1\/h2\/p\/a \u8bbe\u7f6e\u5168\u5c40\u5b57\u53f7\u3001\u5b57\u91cd\u3001\u884c\u9ad8\u3001\u8fb9\u8ddd\uff08\u751a\u81f3\n           !important\uff09\uff0c\u4f1a\u8986\u76d6\u6a21\u5757\u6837\u5f0f\u5bfc\u81f4\u6807\u9898\u53d8\u5c0f\/\u5e03\u5c40\u53d8\u5316\u3002\u6b64\u5904\u7edf\u4e00\n           \u9501\u5b9a\u6a21\u5757\u7684\u5173\u952e\u6392\u7248\u5c5e\u6027\uff0c\u4fdd\u8bc1\u5d4c\u5165 WP \u540e\u4e0e\u72ec\u7acb\u9884\u89c8\u4e00\u81f4\u3002 *\/\n        .pcard,\n        .pcard * {\n            font-family: \"Montserrat\", sans-serif;\n        }\n\n        .pcard__title,\n        .pcard--half .pcard__title {\n            font-size: 28px !important;\n            font-weight: 700 !important;\n            line-height: 1.2 !important;\n            color: var(--title-c, var(--navy)) !important; \/* \u9ed8\u8ba4 navy\uff1bc-class \u6216\u81ea\u5b9a\u4e49 titleColor \u8986\u76d6 *\/\n            margin: 0 !important;\n            border: 0 !important;\n            border-bottom: 0 !important;\n            background: transparent !important;\n            box-shadow: none !important;\n        }\n\n        \/* \u5361\u7247\u5185\u6240\u6709\u5b50\u5143\u7d20\u53bb\u7ebf\u6761\/\u63cf\u8fb9\uff0c\u9632\u4e3b\u9898\u7ed9 h2\/p\/a \u7b49\u52a0\u4e0b\u5212\u7ebf\u6216\u5206\u9694\u7ebf *\/\n        .pcard * {\n            border: 0 !important;\n            box-shadow: none !important;\n        }\n\n        .product-grid--all {\n            grid-template-columns: repeat(var(--cols, 4), 1fr) !important;\n        }\n\n        \/* \u6bcf\u5f20\u5361\u7247\u6807\u9898\u4e13\u5c5e\u9ed8\u8ba4\u8272\uff1a\n           \u5fc5\u987b\u653e\u5728 .pcard--half .pcard__title \u7684 navy \u89c4\u5219\u4e4b\u540e\u3001\n           \u4e14\u4f4d\u4e8e hover \u89c4\u5219\u4e4b\u524d\uff0c\u4e09\u8005\u540c (0,2,0) \u4f18\u5148\u7ea7\uff0c\u540e\u5b9a\u4e49\u8005\u751f\u6548\uff0c\n           \u987a\u5e8f\u5373\uff1a\u9ed8\u8ba4 navy \u2192 \u4e13\u5c5e\u8272 \u2192 hover \u4e3b\u9898\u8272 *\/\n        .pcard--c1 .pcard__title {\n            --title-c: #6C64D8 !important; \/* \u9ed8\u8ba4 1\uff1a\u7d2b *\/\n        }\n        .pcard--c2 .pcard__title {\n            --title-c: #057CFF !important; \/* \u9ed8\u8ba4 2\uff1a\u84dd *\/\n        }\n        .pcard--c3 .pcard__title {\n            --title-c: #4CC7C4 !important; \/* \u9ed8\u8ba4 3\uff1a\u9752 *\/\n        }\n        .pcard--c4 .pcard__title {\n            --title-c: #6C64D8 !important; \/* \u9ed8\u8ba4 4\uff1a\u7d2b *\/\n        }\n\n        .pcard:hover .pcard__title {\n            color: var(--teal) !important;\n            \/* hover \u70b9\u4eae\uff0c\u4e3b\u9898\u8272\uff08\u9632 WP \u4e3b\u9898\u8986\u76d6\uff09 *\/\n        }\n\n        .pcard--half .pcard__title {\n            font-size: 28px !important;\n        }\n\n        .pcard--row4 .pcard__title {\n            font-size: 28px !important;\n        }\n\n        \/* \u526f\u6807\u9898 \/ \u89c4\u683c\u5217\u8868\uff1a\u9632 WP \u4e3b\u9898\u8986\u76d6 *\/\n        .pcard__sub {\n            font-size: 16px !important;\n            font-weight: 600 !important;\n            line-height: 1.5 !important;\n            color: #15395E !important;\n            margin: 0 !important;\n            padding: 0 !important;\n            text-align: left !important;\n            background: transparent !important;\n            border: 0 !important;\n            display: block !important;\n            width: 100% !important;\n        }\n\n        .pcard__spec,\n        .pcard__spec-nested {\n            list-style: none !important;\n            margin: 0 !important;\n            padding: 0 !important;\n            text-align: left !important;\n            width: 100% !important;\n        }\n\n        .pcard__spec > li,\n        .pcard__spec-nested > li {\n            font-size: 16px !important;\n            font-weight: 600 !important;\n            line-height: 1.5 !important;\n            color: #15395E !important;\n            background: transparent !important;\n            border: 0 !important;\n        }\n\n        .pcard__spec-label {\n            font-weight: 700 !important;\n        }\n\n        \/* ===== \u533a\u5757\u5927\u6807\u9898\uff08\u9632 WP \u4e3b\u9898 heading \u8986\u76d6\uff09 ===== *\/\n        main.home {\n            \/* \u900f\u660e\uff1a\u80cc\u666f\u7531 body \u72ec\u5bb6\u63d0\u4f9b\uff0c\u907f\u514d\u6a21\u5757\u81ea\u5e26\u7684\u767d\u8272\u6e10\u53d8\u5728 WP \u91cc\n               \u4e0e\u4e0a\u65b9\u5185\u5bb9\u5f62\u6210\u8272\u5e26\u65ad\u5c42\uff08WP \u4e3b\u9898\u82e5\u7ed9 main \u4e0a\u5e95\u8272\uff0c\u8fd9\u91cc\u538b\u6389\uff09 *\/\n            background: transparent !important;\n        }\n\n        .home__title {\n            margin: 32px 0 128px !important;\n            font-size: 44px !important;\n            font-weight: 700 !important;\n            line-height: 1.1 !important;\n            color: #15395E !important;\n            text-align: center !important;\n            font-family: \"Montserrat\", Arial, sans-serif !important;\n            font-synthesis: none !important;\n            -webkit-font-smoothing: antialiased;\n            background: transparent !important;\n            border: 0 !important;\n            padding: 0 !important;\n        }\n\n        .home.fonts-ready .home__title {\n            font-weight: 800 !important;\n        }\n\n        \/* \u5361\u7247\u672c\u8eab\uff1a\u6e10\u53d8\u80cc\u666f + \u9876\u90e8\u5706\u89d2\uff08\u9632\u4e3b\u9898\u8986\u76d6\uff09 *\/\n        .pcard {\n            background: linear-gradient(135deg, #FFFFFF99, #DFEFFF) !important;\n            border: none !important;\n            border-radius: 20px 20px 0 0 !important;\n            backdrop-filter: blur(10px) !important;\n            box-shadow: none !important;\n            overflow: visible !important;\n        }\n\n        .pcard__media,\n        .pcard__body {\n            background: transparent !important;\n            border: 0 !important;\n            overflow: visible !important;\n        }\n\n        \/* \u56fe\u6807\u5a92\u4f53\u5c42\uff1a\u9a91\u5728\u5361\u7247\u9876\u90e8\u8fb9\u6846\u4e2d\u95f4\uff0c\u4fdd\u8bc1\u5c42\u7ea7\u6700\u9ad8 *\/\n        .pcard__media {\n            position: absolute !important;\n            top: -59px !important;\n            left: 50% !important;\n            transform: translateX(-50%) !important;\n            width: 118px !important;\n            height: 118px !important;\n            display: flex !important;\n            align-items: center !important;\n            justify-content: center !important;\n            z-index: 20 !important;\n            pointer-events: none !important;\n            background: transparent !important;\n            border: 0 !important;\n            box-shadow: none !important;\n        }\n\n        .pcard__media img {\n            width: 100% !important;\n            height: 100% !important;\n            object-fit: contain !important;\n            object-position: center !important;\n            overflow: visible !important;\n            border: 0 !important;\n            background: transparent !important;\n            box-shadow: none !important;\n            border-radius: 50% !important;\n            max-width: none !important;\n            max-height: none !important;\n        }\n\n        \/* hover \u653e\u5927\u4ecd\u751f\u6548\uff08\u52ff\u88ab\u4e0a\u9762\u9632\u5fa1\u8986\u76d6\uff0c\u6545\u4e0d\u7528 !important \u9501 transform\uff09 *\/\n        .pcard:hover .pcard__media img {\n            transform: scale(1.2);\n        }\n\n        \/* ===== \u9ad8\u7279\u5f02\u6027\u8fb9\u7f18\/\u8fb9\u6846\u9632\u5fa1 =====\n           \u4f4e\u7279\u5f02\u6027\uff08\u5982 .pcard\uff09\u5728 WP \u4e3b\u9898\u4e2d\u5bb9\u6613\u88ab\u66f4\u9ad8\u7279\u5f02\u6027\u7684\u89c4\u5219\u8986\u76d6\uff0c\n           \u5bfc\u81f4\u5706\u89d2\/\u767d\u8fb9\u6846\/\u80cc\u666f\u5728 WP \u4e0e\u672c\u5730\u4e0d\u4e00\u81f4\u3002\n           \u7528\u5bb9\u5668\u8def\u5f84\u63d0\u9ad8\u7279\u5f02\u6027\uff0c\u538b\u8fc7\u4e3b\u9898\u540c\u4f18\u5148\u7ea7\u89c4\u5219 *\/\n        main.home .product-grid--all .pcard,\n        #gridAll .pcard,\n        .home .pcard {\n            box-sizing: border-box !important;\n            margin: 0 !important;\n            background: linear-gradient(135deg, #FFFFFF99, #DFEFFF) !important;\n            border: none !important;\n            border-radius: 20px 20px 0 0 !important;\n            backdrop-filter: blur(10px) !important;\n            overflow: visible !important;\n        }\n\n        main.home .product-grid--all .pcard__media img,\n        #gridAll .pcard__media img {\n            max-width: none !important;\n            max-height: none !important;\n            border-radius: 50% !important;\n            border: 0 !important;\n            box-shadow: none !important;\n        }\n\n        \/* \u5168\u5c40\u76d2\u6a21\u578b\u9501\u5b9a\uff1a\n           WP \u4e3b\u9898\u82e5\u628a box-sizing \u6539\u4e3a content-box\uff0c5px \u8fb9\u6846\u4f1a\u5411\u5916\u6269\u5f20\uff0c\n           \u5bfc\u81f4\u5361\u7247\u548c\u8fb9\u6846\u5728 WP \u4e0b\u770b\u8d77\u6765\u6bd4\u672c\u5730\u5927\u3002\n           \u9501\u5b9a .home \u5185\u5168\u90e8\u5143\u7d20\u7684 border-box\uff0c\u4fdd\u8bc1\u4e24\u8fb9\u6e32\u67d3\u4e00\u81f4 *\/\n        main.home,\n        main.home *,\n        main.home *::before,\n        main.home *::after {\n            box-sizing: border-box !important;\n        }\n\n        \/* \u79fb\u52a8\u7aef\u6062\u590d\u5c0f\u5b57\u53f7\uff08\u5fc5\u987b\u653e\u5728\u9632\u5fa1\u533a\u4e4b\u540e\uff0c\u5426\u5219\u88ab\u4e0a\u9762\u7684 26\/15px \u8986\u76d6\uff09 *\/\n        @media (max-width: 800px) {\n            .pcard__title,\n            .pcard--half .pcard__title,\n            .pcard--row4 .pcard__title {\n                font-size: 22px !important;\n            }\n            .pcard__sub {\n                font-size: 13.5px !important;\n            }\n        }\n\n        @media (max-width: 480px) {\n            .pcard__title,\n            .pcard--half .pcard__title,\n            .pcard--row4 .pcard__title {\n                font-size: 20px !important;\n            }\n            .pcard__sub {\n                font-size: 13px !important;\n            }\n        }\n    <\/style>\n<style>html,body{margin:0;padding:0}<\/style><\/head>\n\n<body>\n    <div class=\"scroll-progress\" aria-hidden=\"true\"><span class=\"scroll-progress__bar\" id=\"scrollProgressBar\"><\/span>\n    <\/div>\n\n    <main class=\"home\" id=\"techRoot\">\n\n        <h2 class=\"home__title\" id=\"sectionTitle\">Technical Specifications<\/h2>\n\n        <section class=\"product-grid product-grid--all\" id=\"gridAll\">\n            <!-- 4 \u4e2a\u4ea7\u54c1\u5361\u7247\uff08HOME_CARDS \u914d\u7f6e\uff09\u4e00\u884c\u5c55\u793a -->\n        <\/section>\n    <\/main>\n    <script>\n        \/\/ ================================================================\n        \/\/ \u5b98\u7f51\u9996\u9875 \u00b7 \u7edf\u4e00\u914d\u7f6e\u5165\u53e3\uff08SEO \u7ef4\u62a4\u533a\uff09\n        \/\/\n        \/\/ \u540e\u671f\u53ea\u9700\u4fee\u6539\u4e0b\u65b9 HOME_CARDS\uff0c\u5373\u53ef\u5b8c\u6210\uff1a\n        \/\/   \u6362\u6807\u9898 \/ \u6362\u526f\u6807\u9898 \/ \u6362\u8df3\u8f6c\u94fe\u63a5 \/ \u6362\u56fe\u7247 \/ \u589e\u5220\u5361\u7247\uff0c\u65e0\u9700\u52a8 HTML\u3002\n        \/\/\n        \/\/ \u6bcf\u5f20\u5361\u7247\u5b57\u6bb5\u8bf4\u660e\uff1a\n        \/\/   title       \u5361\u7247\u6807\u9898\uff08\u5373 h2\uff0c\u4e5f\u662f\u56fe\u7247 alt \/ SEO \u5173\u952e\u8bcd\u6765\u6e90\uff09\n        \/\/   subtitle    \uff08\u53ef\u9009\uff09\u7eaf\u6587\u672c\u526f\u6807\u9898\uff1b\u4e0e specs \u4e8c\u9009\u4e00\n        \/\/   specs       \uff08\u53ef\u9009\uff09\u89c4\u683c\u5217\u8868\uff0c\u8bbe\u8ba1\u56fe\u683c\u5f0f\uff1a\n        \/\/                 [{ label:\"Model\", value:\"EV07B\" }, { label:\"Compliance\", items:[\"FCC\",\"CE\"] }]\n        \/\/   url         \u8df3\u8f6c\u94fe\u63a5\uff08\u4ea7\u54c1\u9875 \/ \u843d\u5730\u9875\uff0c\u53ef\u4e3a\u7a7a\u4e32\u8868\u793a\u4e0d\u53ef\u70b9\uff09\n        \/\/   blank       \u662f\u5426\u65b0\u7a97\u53e3\u6253\u5f00\uff1atrue = \u65b0\u7a97\u53e3\uff08\u9ed8\u8ba4\uff09\/ false = \u5f53\u524d\u9875\u8df3\u8f6c\n        \/\/   image       \u5361\u7247\u56fe\u7247\u8def\u5f84\uff08\u76f8\u5bf9\u8def\u5f84\u6216 WP \u7edd\u5bf9 URL\uff0c\u5efa\u8bae WebP\uff09\n        \/\/   alt         \uff08\u53ef\u9009\uff09\u56fe\u7247 alt \u6587\u672c\uff0c\u7f3a\u7701\u7528 title\n        \/\/   titleColor  \uff08\u53ef\u9009\uff09\u6807\u9898\u81ea\u5b9a\u4e49\u8272\uff0c\u5982 \"#FF6B6B\"\uff1b\u4e0d\u586b\u5219\u6309\u4e0b\u6807\u5faa\u73af\u9ed8\u8ba4\u8272 c1\u7d2b\/c2\u84dd\/c3\u9752\/c4\u7d2b\n        \/\/   row         \u5361\u7247\u6240\u5c5e\u5206\u533a\uff0c\u5f53\u524d\u7edf\u4e00\u586b \"top\"\uff08\u4e00\u884c\u94fa\u6ee1\uff0c\u5217\u6570\u968f\u5361\u7247\u6570\u81ea\u9002\u5e94\uff09\n        \/\/   wide        true = \u901a\u680f\u5927\u5361\uff08\u7b2c\u4e00\u5f20\uff09\/ false = \u534a\u5bbd\u5361\n        \/\/ ================================================================\n        \/\/ \u7ed9 <body> \u6302\u7c7b\u540d\uff1a\u4e0a\u9762\u7684\u80cc\u666f\u89c4\u5219\u9760\u5b83\u63d0\u9ad8\u7279\u5f02\u6027\uff0c\u538b\u8fc7 WP \u4e3b\u9898\u7684 body \u80cc\u666f\u3002\n        \/\/ \u653e\u5728\u6700\u524d\uff0c\u5c3d\u91cf\u65e9\u4e8e\u9996\u6b21\u7ed8\u5236\u3002\n        if (document.body && !document.body.classList.contains(\"eview-page\")) {\n            document.body.classList.add(\"eview-page\");\n        }\n\n        var SECTION_TITLE = \"Technical Specifications\";\n\n        var HOME_CARDS = [\n            {\n                title: \"General Specifications\",\n                specs: [\n                    { label: \"Model\", value: \"EW-03 (Telecare Beacon)\" },\n                    { label: \"Dimension\", value: \"48.5 \u00d7 15 mm\" },\n                    { label: \"Weight\", value: \" 25 g (including battery)\" },\n                    { label: \"Power Supply\", value: \"3.7V, CR2477 Industrial-grade coin cell battery\" },\n                    { label: \"Lifecycle\", value: \"Up to 24 months of continuous operation\" },\n                    { label: \"Enclosure Rating\", value: \"IPX8 (Liquid and environmental resistance)\" },\n                    { label: \"Operating Temp\", value: \"-10\u00b0C to 50\u00b0C\" },\n                    { label: \"Storage Temp\", value: \"-20\u00b0C to 60\u00b0C\" },\n                ],\n                url: \"https:\/\/www.eviewconnect.com\/mpers\/\",\n                image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/09\/Group-35320.png\",\n                row: \"top\",\n                blank: true,\n                titleColor:\"#057CFF\"\n            },\n            {\n                title: \"Hardware & Connectivity\",\n                specs: [\n                    { label: \"Core Processing Unit (MCU)\", value: \"High-efficiency NRF52810 microcontroller\" },\n                    { label: \"Wireless Protocol\", value: \"Bluetooth Low Energy (BLE) 5.0 architecture\" },\n                    { label: \"Broadcast Frequency\", value: \"Configurable high-frequency broadcast intervals\" },\n                    { label: \"Integrated Sensors\", value: \"Ambient temperature monitoring module\" },\n                    { label: \"User Interface\", value: \"Physical control key for initialization and system diagnostics; LED status indicator\" },\n                    { label: \"4G LTE Bands\", value: \"AU: B1\/B3\/B5\/B7\/B28\uff0cEU: B1\/B3\/B7\/B8\/B20\uff0cNorth America: B2\/B4\/B12\uff0cJP: B1\/B18\/B19\/B26\" },\n                ],\n                url: \"https:\/\/www.eviewconnect.com\/smart-wearables\/\",\n                image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/09\/Group-35321.png\",\n                row: \"top\",\n                blank: true,\n                titleColor:\"#4CC7C4\"\n            },\n            {\n                title: \"Certifications\",\n                specs: [\n                     { label: \"Compliance\", value: \"FCC,CE,RoHS, REACH\" },\n                     { label: \"Telecom\", value: \"BQB\" },\n                    { label: \"Logistics\", value: \"UN38.3,MSDS, Air Transport Certificate\" },\n                ],\n                url: \"https:\/\/www.eviewconnect.com\/home-systems\/\",\n                image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/09\/Group-35322.png\",\n                row: \"top\",\n                blank: true,\n                titleColor:\"#057CFF\"\n            },\n        ];\n\n        \/\/ ===== \u5361\u7247\u6e32\u67d3\uff08\u6309 row \u5206\u7ec4\uff1atop 2 \u4e2a \/ bottom 3 \u4e2a\uff09 =====\n        function renderCards() {\n            var sectionTitle = document.getElementById(\"sectionTitle\");\n            if (sectionTitle && SECTION_TITLE) {\n                sectionTitle.textContent = SECTION_TITLE;\n            }\n\n            var grid = document.getElementById(\"gridAll\");\n            if (!grid) return;\n\n            \/\/ \u5217\u6570\u8ddf\u968f\u5361\u7247\u6570\u91cf\uff1a3 \u5f20\u4e00\u884c 3 \u5217\u94fa\u6ee1\u30014 \u5f20\u4e00\u884c 4 \u5217\u94fa\u6ee1\uff0c\u6c38\u4e0d\u6362\u884c\n            grid.style.setProperty(\"--cols\", String(HOME_CARDS.length));\n\n            function escText(s) {\n                return String(s).replace(\/&\/g, \"&amp;\").replace(\/<\/g, \"&lt;\").replace(\/>\/g, \"&gt;\").replace(\/\"\/g, \"&quot;\");\n            }\n\n            function renderSpecs(card) {\n                var list = card.specs;\n                if (!list || !list.length) {\n                    return card.subtitle\n                        ? '<p class=\"pcard__sub\">' + escText(card.subtitle) + '<\/p>'\n                        : \"\";\n                }\n                var html = '<ul class=\"pcard__spec\">';\n                for (var i = 0; i < list.length; i++) {\n                    var item = list[i];\n                    html += '<li>';\n                    if (item.label) {\n                        html += '<span class=\"pcard__spec-label\">' + escText(item.label) + ':<\/span> ';\n                    }\n                    if (item.items && item.items.length) {\n                        html += '<ul class=\"pcard__spec-nested\">';\n                        for (var j = 0; j < item.items.length; j++) {\n                            html += '<li>' + escText(item.items[j]) + '<\/li>';\n                        }\n                        html += '<\/ul>';\n                    } else {\n                        html += escText(item.value || \"\");\n                    }\n                    html += '<\/li>';\n                }\n                html += '<\/ul>';\n                return html;\n            }\n\n            function cardHtml(card, i, rowClass) {\n                var alt = (card.alt || card.title).replace(\/[\"&<>]\/g, function (ch) {\n                    return { '\"': \"&quot;\", \"&\": \"&amp;\", \"<\": \"&lt;\", \">\": \"&gt;\" }[ch];\n                });\n                var load = i === 0 ? 'fetchpriority=\"high\"' : 'loading=\"lazy\"';\n                \/\/ \u7b2c 2\u30014 \u5f20\uff08\u7d22\u5f15 1\u30013\uff09\u66f4\u9ad8\uff0c\u5f62\u6210\u9519\u843d\u8282\u594f\n                var sizeClass = (i === 1 || i === 3) ? \" pcard--tall\" : \"\";\n                \/\/ \u6bcf\u5f20\u5361\u7247\u6807\u9898\u4e13\u5c5e\u8272\uff08c1-c4 \u5faa\u73af\uff1a\u7d2b \/ \u84dd \/ \u9752 \/ \u7d2b\uff09\uff1b\u914d\u7f6e\u4e86 titleColor \u5219\u7528\u81ea\u5b9a\u4e49\u8272\u8986\u76d6\n                var colorClass = \" pcard--c\" + ((i % 4) + 1);\n                var tColor = card.titleColor\n                    ? String(card.titleColor).replace(\/[\"&<>]\/g, function (ch) {\n                        return { '\"': \"&quot;\", \"&\": \"&amp;\", \"<\": \"&lt;\", \">\": \"&gt;\" }[ch];\n                      })\n                    : \"\";\n                var titleStyle = tColor ? ' style=\"--title-c:' + tColor + ' !important\"' : \"\";\n                return '<article class=\"pcard pcard--half' + sizeClass + colorClass + ' ' + rowClass + '\">'\n                    + '<div class=\"pcard__body\">'\n                    + '<h2 class=\"pcard__title\"' + titleStyle + '>' + card.title + '<\/h2>'\n                    + renderSpecs(card)\n                    + '<\/div>'\n                    + '<div class=\"pcard__media\"><img src=\"' + card.image + '\" alt=\"' + alt + '\" ' + load + ' decoding=\"async\" \/><\/div>'\n                    + '<\/article>';\n            }\n\n            grid.innerHTML = HOME_CARDS.map(function (x, i) {\n                return cardHtml(x, i, \"pcard--row4\");\n            }).join(\"\\n\");\n\n            \/\/ \u6eda\u5165\u89c6\u53e3 + \u5b57\u4f53\u5c31\u7eea\uff08\u5f31\u7f51\u6700\u591a\u7b49 2.2s\uff09\u540e\u518d\u5165\u573a\n            var root = document.getElementById(\"techRoot\");\n            var popCards = grid.querySelectorAll(\".pcard\");\n            var FONT_WAIT_MS = 2200;   \/\/ \u5f31\u7f51\u4e0b\u7b49\u5f85\u5b57\u4f53\u7684\u4e0a\u9650\uff0c\u8d85\u65f6\u4e5f\u7167\u5e38\u64ad\u653e\n            var CARD_TRANS_MS = 1500;  \/\/ \u5355\u5361\u8fc7\u6e21\u65f6\u957f\uff0c\u987b\u4e0e CSS .pcard transition \u4e00\u81f4\n            var CARD_DELAY0_S = 0.20;  \/\/ \u7b2c\u4e00\u5f20\u5361\u7684\u8d77\u59cb\u5ef6\u8fdf\n            var CARD_STAGGER_S = 0.30; \/\/ \u76f8\u90bb\u5361\u7247\u7684\u51fa\u573a\u95f4\u9694\uff08\u62c9\u5f00\"\u4e00\u4e00\u5c55\u793a\"\u7684\u8282\u594f\uff09\n            var fontsOk = false;\n            var inView = false;\n\n            for (var p = 0; p < popCards.length; p++) {\n                popCards[p].style.setProperty(\"--pop-d\", (CARD_DELAY0_S + p * CARD_STAGGER_S).toFixed(2) + \"s\");\n            }\n\n            function markCardsReady() {\n                popCards.forEach(function (el) {\n                    el.classList.add(\"is-ready\");\n                });\n            }\n\n            function tryEnter() {\n                if (!root || !fontsOk || !inView) return;\n                root.classList.add(\"is-inview\");\n                var lastDelay = CARD_DELAY0_S + Math.max(0, popCards.length - 1) * CARD_STAGGER_S;\n                window.setTimeout(markCardsReady, (lastDelay * 1000) + CARD_TRANS_MS + 40);\n            }\n\n            function markFontsReady() {\n                if (fontsOk) return;\n                fontsOk = true;\n                tryEnter();\n            }\n\n            function enterModuleInstant() {\n                if (!root) return;\n                fontsOk = true;\n                inView = true;\n                root.classList.add(\"fonts-ready\", \"is-inview\");\n                markCardsReady();\n            }\n\n            if (root) {\n                var reduce = window.matchMedia && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n                if (reduce || \/[?&]inview=1\/.test(location.search) || !(\"IntersectionObserver\" in window)) {\n                    enterModuleInstant();\n                } else {\n                    if (document.fonts && document.fonts.ready) {\n                        document.fonts.ready.then(function () {\n                            root.classList.add(\"fonts-ready\");\n                            markFontsReady();\n                        }).catch(markFontsReady);\n                    } else {\n                        root.classList.add(\"fonts-ready\");\n                        markFontsReady();\n                    }\n                    window.setTimeout(markFontsReady, FONT_WAIT_MS);\n\n                    \/* rootMargin -18%\uff1a\u6a21\u5757\u9876\u90e8\u62ac\u5230\u89c6\u53e3\u4e0b\u6cbf 18% \u4ee5\u4e0a\uff08\u6807\u9898\u5df2\u5b8c\u6574\u5165\u753b\uff09\n                       \u624d\u8d77\u64ad\uff0c\u907f\u514d WP \u957f\u9875\u91cc\u6807\u9898\u521a\u9732\u4e00\u89d2\u3001\u5361\u7247\u5c31\u4e00\u95ea\u800c\u8fc7 *\/\n                    var io = new IntersectionObserver(function (entries) {\n                        entries.forEach(function (en) {\n                            if (!en.isIntersecting) return;\n                            inView = true;\n                            tryEnter();\n                            io.unobserve(root);\n                        });\n                    }, { threshold: 0.08, rootMargin: \"0px 0px -18% 0px\" });\n                    io.observe(root);\n                }\n            }\n        }\n\n        \/\/ ===== WP \u9632\u5fa1\uff1a\u907f\u514d\u7236\u5bb9\u5668 max-width\/padding \u5bfc\u81f4\u7b2c 4 \u5f20\u88ab\u622a\u65ad =====\n        function applyWpDefense() {\n            var root = document.getElementById(\"gridAll\") || document.querySelector(\".home\");\n            if (!root) return;\n            var el = root.parentElement;\n            while (el && el !== document.body && el !== document.documentElement) {\n                el.style.setProperty(\"border\", \"none\", \"important\");\n                el.style.setProperty(\"border-radius\", \"0\", \"important\");\n                el.style.setProperty(\"box-shadow\", \"none\", \"important\");\n                el.style.setProperty(\"outline\", \"none\", \"important\");\n                el.style.setProperty(\"overflow\", \"visible\", \"important\");\n                el.style.setProperty(\"background\", \"transparent\", \"important\");\n                \/* \u4e3b\u5bb9\u5668 .home \u9650\u5bbd 1440px \u5c45\u4e2d\u5c55\u793a\uff0c\u5176\u4f59\u7236\u5bb9\u5668\u653e\u884c *\/\n                el.style.setProperty(\"max-width\", el.classList && el.classList.contains(\"home\") ? \"1440px\" : \"none\", \"important\");\n                el.style.setProperty(\"padding-left\", \"0\", \"important\");\n                el.style.setProperty(\"padding-right\", \"0\", \"important\");\n                el = el.parentElement;\n            }\n        }\n\n        \/\/ ===== \u9876\u90e8\u6eda\u52a8\u8fdb\u5ea6\u6761 =====\n        function initScrollProgress() {\n            var bar = document.getElementById(\"scrollProgressBar\");\n            if (!bar) return;\n            function update() {\n                var doc = document.scrollingElement || document.documentElement;\n                var max = doc.scrollHeight - doc.clientHeight;\n                var pct = max > 0 ? (doc.scrollTop \/ max) * 100 : 0;\n                bar.style.width = pct + \"%\";\n            }\n            window.addEventListener(\"scroll\", update, { passive: true });\n            window.addEventListener(\"resize\", update);\n            update();\n        }\n\n        function initModule() {\n            renderCards();\n            applyWpDefense();\n            initScrollProgress();\n        }\n\n        if (document.readyState === \"loading\") {\n            document.addEventListener(\"DOMContentLoaded\", initModule);\n        } else {\n            initModule();\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-38382b2 e-flex e-con-boxed e-con e-parent\" data-id=\"38382b2\" 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-c44c1f1 elementor-widget elementor-widget-heading\" data-id=\"c44c1f1\" 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\">What\u2019s in the Box<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-89c2f9f elementor-widget elementor-widget-video\" data-id=\"89c2f9f\" data-element_type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/www.youtube.com\\\/watch?v=30j6kbQDYeA&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;mute&quot;:&quot;yes&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\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<div class=\"elementor-element elementor-element-d57f146 e-flex e-con-boxed e-con e-parent\" data-id=\"d57f146\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-30956f1 elementor-widget elementor-widget-heading\" data-id=\"30956f1\" 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-a7802c2 elementor-widget elementor-widget-html\" data-id=\"a7802c2\" 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, viewport-fit=cover\" \/>\n  <title>mPERS Products<\/title>\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\" rel=\"stylesheet\" \/>\n  <style>\n    body {\n      margin: 0;\n    }\n\n    .mpers-page {\n      background: transparent\n    }\n  <\/style>\n  <style>\n    .mpers-product,\n    .mpers-product *,\n    .mpers-product *::before,\n    .mpers-product *::after {\n      box-sizing: border-box;\n    }\n\n    .mpers-product {\n      width: 100%;\n      margin: 0;\n      padding: 0;\n      font-family: \"Montserrat\", Arial, sans-serif;\n      color: #15395E;\n    }\n\n    .mpers-product .mpers-car {\n      position: relative;\n      width: 100%;\n      max-width: 1440px;\n      margin: 0 auto;\n      \/* \u5de6\u53f3\u7559\u767d\u5bb9\u7eb3\u7bad\u5934\uff08\u7531 JS \u6309\u5bb9\u5668\u5bbd\u5ea6\u8bbe --arrow-pad\uff0c\u4fdd\u8bc1\u7bad\u5934\u5916\u7f6e\/overlay \u4e0e perView \u4e00\u81f4\uff09 *\/\n      padding: 0 var(--arrow-pad, 0);\n    }\n\n    .mpers-product .mpers-car__viewport {\n      overflow: hidden;\n      margin: 0;\n      \/* \u7ad6\u76f4\u6eda\u52a8\u4ea4\u7ed9\u9875\u9762\uff0c\u6a2a\u5411\u7531 JS \u62d6\u62fd\u5904\u7406\uff0c\u907f\u514d\u62a2\u9875\u9762\u6eda\u52a8 *\/\n      touch-action: pan-y;\n    }\n\n    .mpers-product .mpers-car__track {\n      display: flex;\n      will-change: transform;\n    }\n\n    \/* \u5355\u7247\u5c3a\u5bf8\uff1a--per-view \u63a7\u5236\u6bcf\u5c4f\u5f20\u6570\uff1b--peek \u4e3a\u76f8\u90bb\u5361\u9732\u51fa\u91cf\uff080=\u6b63\u597d perView \u5f20\u5b8c\u6574\uff09 *\/\n    .mpers-product .mpers-car__slide {\n      flex: 0 0 calc(100% \/ (var(--per-view, 3) + var(--peek, 0)));\n      min-width: 0;\n      box-sizing: border-box;\n      padding: 0 22px;\n    }\n\n    .mpers-product .mpers-card {\n      position: relative;\n      display: flex;\n      flex-direction: column;\n      align-items: center;\n      width: 100%;\n      min-height: 0;\n      border-radius: 20px;\n      overflow: hidden;\n      background: linear-gradient(180deg, #FFFFFF99 0%, #DFEFFF 100%);\n      opacity: 1;\n      cursor: pointer;\n      transition: box-shadow 0.35s ease, transform 0.35s ease;\n    }\n\n    \/* \u5361\u7247\u5916\u5708\uff1a3px \u767d\u8272\u6e10\u53d8\u63cf\u8fb9\uff08\u8d34\u5408 20px \u5706\u89d2\uff09\uff0c\u53c2\u8003\u8bbe\u8ba1\u7a3f Borders \u2192 \u7ebf\u6846\u6e10\u53d8 #FFFFFF *\/\n    .mpers-product .mpers-card::after {\n      content: \"\";\n      position: absolute;\n      inset: 0;\n      z-index: 4;\n      border-radius: inherit;              \/* \u4e0e\u5361\u4e00\u81f4 20px *\/\n      padding: 3px;                        \/* \u63cf\u8fb9\u5bbd\u5ea6 = 3px *\/\n      background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, #FFFFFF 100%);\n      -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\n      -webkit-mask-composite: xor;\n              mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\n              mask-composite: exclude;\n      pointer-events: none;                \/* \u53ea\u63cf\u8fb9\u4e0d\u6321\u4ea4\u4e92 *\/\n    }\n\n    .mpers-product .mpers-card:hover {\n      box-shadow: 0 18px 42px rgba(27, 59, 100, 0.18);\n      transform: translateY(-3px);\n    }\n\n    .mpers-product .mpers-card__media {\n      position: relative;\n      display: block;\n      width: 100%;\n      height: 320px;\n      line-height: 0;\n      margin: 8px auto 0;\n    }\n\n    \/* \u6bcf\u5c4f\u663e\u793a\u5f20\u6570\u5bf9\u5e94\u5361\u5c3a\u5bf8\uff1a\u5f20\u6570\u8d8a\u5c11\u5361\u8d8a\u5bbd\u3001\u56fe\/\u5b57\u8d8a\u5927 *\/\n    .mpers-product .mpers-car[data-per-view=\"3\"] .mpers-card__media {\n      height: 400px;\n      margin-bottom: 24px;\n    }\n\n    .mpers-product .mpers-car[data-per-view=\"3\"] .mpers-card__title {\n      font-size: 40px;\n    }\n\n    .mpers-product .mpers-car[data-per-view=\"3\"] .mpers-card__body {\n      padding: 24px 16px 4px;\n    }\n\n    .mpers-product .mpers-car[data-per-view=\"4\"] .mpers-card__media {\n      height: 340px;\n      margin-bottom: 22px;\n    }\n\n    .mpers-product .mpers-car[data-per-view=\"4\"] .mpers-card__title {\n      font-size: 34px;\n    }\n\n    .mpers-product .mpers-car[data-per-view=\"4\"] .mpers-card__body {\n      padding: 22px 14px 4px;\n    }\n\n    .mpers-product .mpers-car[data-per-view=\"5\"] .mpers-card__media {\n      height: 172px;\n      margin-bottom: 12px;\n    }\n\n    .mpers-product .mpers-car[data-per-view=\"5\"] .mpers-card__title {\n      font-size: 24px;\n    }\n\n    .mpers-product .mpers-car[data-per-view=\"5\"] .mpers-card__body {\n      gap: 9px;\n      padding: 14px 12px 2px;\n    }\n\n    .mpers-product .mpers-car[data-per-view=\"5\"] .mpers-more {\n      font-size: 16px;\n    }\n\n    .mpers-product .mpers-car[data-per-view=\"5\"] .mpers-colors {\n      right: 18px;\n      bottom: 12px;\n    }\n\n    .mpers-product .mpers-car[data-per-view=\"2\"] .mpers-card__media {\n      height: 300px;\n      margin-bottom: 18px;\n    }\n\n    .mpers-product .mpers-car[data-per-view=\"2\"] .mpers-card__title {\n      font-size: 30px;\n    }\n\n    .mpers-product .mpers-car[data-per-view=\"2\"] .mpers-card__body {\n      padding: 20px 12px 2px;\n    }\n\n    .mpers-product .mpers-car[data-per-view=\"2\"] .mpers-more {\n      font-size: 16px;\n    }\n\n    .mpers-product .mpers-car[data-per-view=\"1\"] .mpers-card__media {\n      height: 380px;\n      margin-bottom: 20px;\n    }\n\n    .mpers-product .mpers-car[data-per-view=\"1\"] .mpers-card__title {\n      font-size: 34px;\n    }\n\n    .mpers-product .mpers-car[data-per-view=\"1\"] .mpers-card__body {\n      padding: 22px 14px 4px;\n    }\n\n    .mpers-product .mpers-car[data-per-view=\"1\"] .mpers-more {\n      font-size: 17px;\n    }\n\n    .mpers-product .mpers-car[data-per-view=\"1\"] .mpers-colors {\n      right: 24px;\n      bottom: 20px;\n    }\n\n    \/* \u5de6\u53f3\u7bad\u5934\uff1a\u60ac\u6d6e\u5728\u8f6e\u64ad\u4e24\u4fa7 *\/\n    .mpers-product .mpers-car__arrow {\n      position: absolute;\n      top: var(--arrow-top, 45%);\n      transform: translateY(-50%);\n      z-index: 3;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: 52px;\n      height: 52px;\n      border: 1px solid rgba(21, 57, 94, 0.08);\n      border-radius: 50%;\n      background: rgba(255, 255, 255, 0.35);\n      color: rgba(21, 57, 94, 0.55);\n      box-shadow: 0 3px 10px rgba(27, 59, 100, 0.08);\n      cursor: pointer;\n      transition: background 0.25s ease, color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;\n    }\n\n    .mpers-product .mpers-car__arrow:hover {\n      background: rgba(255, 255, 255, 0.95);\n      color: #15395E;\n      box-shadow: 0 8px 22px rgba(27, 59, 100, 0.20);\n    }\n\n    .mpers-product .mpers-car__arrow--prev { left: 12px; }\n    .mpers-product .mpers-car__arrow--next { right: 12px; }\n\n    .mpers-product .mpers-car__arrow svg {\n      width: 22px;\n      height: 22px;\n    }\n\n    \/* \u5e95\u90e8\u6307\u793a\u70b9\uff1a\u5df2\u9690\u85cf\uff08\u5207\u6362\u6539\u7528\u5de6\u53f3\u7bad\u5934\/\u62d6\u62fd\/\u952e\u76d8\uff09 *\/\n    .mpers-product .mpers-car__dots {\n      display: none;\n    }\n\n    .mpers-product .mpers-dot {\n      width: 10px;\n      height: 10px;\n      padding: 0;\n      border: 0;\n      border-radius: 50%;\n      background: #C7D6E8;\n      cursor: pointer;\n      transition: background 0.25s ease, transform 0.25s ease;\n    }\n\n    .mpers-product .mpers-dot--active {\n      width: 26px;\n      border-radius: 6px;\n      background: #4CC7C4;\n    }\n\n    \/* \u6682\u505c\/\u64ad\u653e\u6309\u94ae\uff08\u5e95\u90e8\u6307\u793a\u70b9\u65c1\uff09 *\/\n    .mpers-product .mpers-pause {\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      width: 26px;\n      height: 26px;\n      margin-left: 10px;\n      padding: 0;\n      border: 0;\n      border-radius: 50%;\n      background: #EEF5FB;\n      color: #15395E;\n      cursor: pointer;\n      transition: background 0.25s ease, transform 0.2s ease;\n    }\n\n    .mpers-product .mpers-pause:hover {\n      background: #DFEFFF;\n    }\n\n    .mpers-product .mpers-pause:focus-visible {\n      outline: 2px solid rgba(21, 57, 94, 0.55);\n      outline-offset: 2px;\n    }\n\n    .mpers-product .mpers-pause svg {\n      display: block;\n    }\n\n    .mpers-card__media img {\n      position: absolute;\n      inset: 0;\n      width: 100%;\n      height: 100%;\n      object-fit: contain;\n      \/* \u5b8c\u6574\u5c55\u793a\u4ea7\u54c1\u56fe\uff0c\u4e0d\u88c1\u5207 *\/\n      object-position: center;\n      border: 0;\n      border-radius: 24px;\n      transition: transform 0.42s ease, opacity 0.42s cubic-bezier(0.4, 0, 0.2, 1);\n    }\n\n    \/* \u4ea7\u54c1\u56fe\uff1a\u52a0\u8f7d\u5b8c\u6210\u524d\u900f\u660e\uff08\u900f\u51fa\u5361\u7247\u80cc\u666f\uff09\uff0c\u5b8c\u6210\u540e\u6de1\u5165 *\/\n    .mpers-product .mpers-img--base {\n      opacity: 0;\n    }\n\n    .mpers-product .mpers-img--base.is-loaded {\n      opacity: 1;\n    }\n\n    \/* \u989c\u8272\u5207\u6362\u53e0\u52a0\u5c42\uff1a\u5e38\u9a7b\u5e95\u5c42\u4e4b\u4e0a\uff0c\u4ec5\u5207\u6362\u77ac\u95f4\u7528\uff0c\u5e73\u65f6\u9690\u85cf *\/\n    .mpers-product .mpers-img--swap {\n      z-index: 1;\n      opacity: 0;\n      pointer-events: none;\n    }\n\n    \/* ===== \u989c\u8272\u5207\u6362\u8272\u70b9\uff08\u56fe\u7247\u533a\u53f3\u4e0b\uff0c\u5185\u8fb9\u8ddd\u7559\u767d\u4e0d\u8d34\u8fb9\uff09 ===== *\/\n    .mpers-product .mpers-colors {\n      position: absolute;\n      right: 36px;\n      bottom: 26px;\n      z-index: 3;\n      display: flex;\n      gap: 8px;\n      line-height: 0;\n    }\n\n    .mpers-product .mpers-color {\n      width: 18px;\n      height: 18px;\n      padding: 0;\n      border: 2px solid rgba(255, 255, 255, 0.9);\n      border-radius: 50%;\n      cursor: pointer;\n      box-shadow: 0 1px 4px rgba(27, 59, 100, 0.2);\n      transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;\n    }\n\n    .mpers-product .mpers-color:hover {\n      transform: scale(1.12);\n    }\n\n    .mpers-product .mpers-color--active {\n      border-color: rgba(21, 57, 94, 0.42);\n      box-shadow: 0 0 0 2px rgba(21, 57, 94, 0.14);\n    }\n\n    \/* ===== \u952e\u76d8\u7126\u70b9\uff1a\u8272\u70b9\u53ef\u89c1 focus \u73af ===== *\/\n    .mpers-product .mpers-color:focus-visible {\n      outline: 2px solid rgba(21, 57, 94, 0.55);\n      outline-offset: 2px;\n    }\n\n    \/* ===== \u56fe\u7247\u52a0\u8f7d\u5931\u8d25\u5360\u4f4d\uff08\u54c1\u724c\u6a21\u578b\u540d\uff0c\u56fe\u6b63\u5e38\u540e\u9690\u85cf\uff09 ===== *\/\n    .mpers-product .mpers-img-fallback {\n      position: absolute;\n      inset: 0;\n      z-index: 2;\n      display: none;\n      align-items: center;\n      justify-content: center;\n      background: #fff;\n      border-radius: 24px;\n      color: rgba(21, 57, 94, 0.4);\n      font-weight: 600;\n      font-size: 20px;\n      letter-spacing: 0.04em;\n    }\n\n    \/* ===== \u51cf\u5c11\u52a8\u6548\uff1a\u5173\u95ed\u6de1\u5165\u6de1\u51fa\u4e0e\u5168\u90e8 hover \u4f4d\u79fb ===== *\/\n    @media (prefers-reduced-motion: reduce) {\n\n      .mpers-product .mpers-card__media img,\n      .mpers-product .mpers-card,\n      .mpers-product .mpers-card__title,\n      .mpers-product .mpers-card__sub,\n      .mpers-product .mpers-more svg,\n      .mpers-product .mpers-color {\n        transition: none;\n      }\n\n      .mpers-product .mpers-img--base {\n        opacity: 1;\n      }\n\n      .mpers-product .mpers-card:hover,\n      .mpers-product .mpers-card:hover .mpers-card__media img,\n      .mpers-product .mpers-card:hover .mpers-card__title,\n      .mpers-product .mpers-card:hover .mpers-card__sub,\n      .mpers-product .mpers-more:hover svg,\n      .mpers-product .mpers-color:hover {\n        transform: none;\n      }\n    }\n\n    .mpers-product .mpers-card:hover .mpers-card__media img {\n      transform: scale(1.03);\n    }\n\n    .mpers-product .mpers-card__body {\n      position: relative;\n      z-index: 2;\n      display: flex;\n      flex-direction: column;\n      align-items: center;\n      text-align: center;\n      gap: 10px;\n      padding: 28px 24px 4px;\n      width: 100%;\n    }\n\n    .mpers-product .mpers-card__title {\n      margin: 0;\n      font-size: 42px;\n      font-weight: 700;\n      line-height: 1.2;\n      color: #15395E;\n      opacity: 1;\n      transition: transform 0.3s ease;\n    }\n\n    .mpers-product .mpers-card:hover .mpers-card__title {\n      transform: translateY(-3px);\n    }\n\n    .mpers-product .mpers-card__sub {\n      margin: 0;\n      padding: 0;\n      font-size: 18px;\n      font-weight: 600;\n      line-height: 1.4;\n      color: #15395E;\n      opacity: 1;\n      transition: transform 0.3s ease;\n    }\n\n    .mpers-product .mpers-card:hover .mpers-card__sub {\n      transform: translateY(-2px);\n    }\n\n    .mpers-product .mpers-more {\n      display: inline-flex;\n      align-items: center;\n      gap: 6px;\n      margin-top: 4px;\n      font-size: 18px;\n      font-weight: 600;\n      line-height: 1.2;\n      color: #4CC7C4;\n      text-decoration: none;\n      opacity: 1;\n      transition: color 0.25s ease;\n    }\n\n    .mpers-product .mpers-more:hover {\n      color: #19A6A3;\n    }\n\n    .mpers-product .mpers-more svg {\n      display: block;\n      width: 16px;\n      height: 16px;\n      transition: transform 0.3s ease;\n    }\n\n    .mpers-product .mpers-more:hover svg {\n      transform: translateX(6px);\n    }\n\n    .mpers-product .mpers-more svg path {\n      transition: stroke 0.25s ease;\n    }\n\n    .mpers-product .mpers-more:hover svg path {\n      stroke: #19A6A3;\n    }\n\n    @media (max-width: 800px) {\n      .mpers-product {\n        padding: 0 16px calc(20px + env(safe-area-inset-bottom, 0));\n      }\n\n      .mpers-product .mpers-card__sub {\n        font-size: 15px;\n      }\n\n      .mpers-product .mpers-more {\n        font-size: 16px;\n      }\n\n      \/* \u753b\u9762\u53d8\u7a84\u968f\u4e4b\u964d\u4f4e\u5361\u7247\u9ad8\u5ea6\uff0c\u907f\u514d\u7a84\u9ad8\u5361 *\/\n      .mpers-product .mpers-car[data-per-view=\"1\"] .mpers-card__media { height: 320px; }\n      .mpers-product .mpers-car[data-per-view=\"2\"] .mpers-card__media { height: 260px; }\n      .mpers-product .mpers-car[data-per-view=\"3\"] .mpers-card__media { height: 300px; }\n    }\n\n    @media (max-width: 600px) {\n      .mpers-product .mpers-car[data-per-view=\"1\"] .mpers-card__media { height: 300px; }\n      .mpers-product .mpers-car[data-per-view=\"2\"] .mpers-card__media { height: 240px; }\n    }\n\n    @media (max-width: 480px) {\n\n      .mpers-product .mpers-card__sub {\n        font-size: 14px;\n      }\n\n      .mpers-product .mpers-more {\n        font-size: 15px;\n      }\n\n      .mpers-product .mpers-card:hover {\n        transform: none;\n        box-shadow: none;\n      }\n\n      .mpers-product .mpers-card:hover .mpers-card__media img {\n        transform: scale(1);\n      }\n\n      .mpers-product .mpers-car[data-per-view=\"1\"] .mpers-card__media { height: 280px; }\n    }\n\n    \/* \u7a84\u5c4f\uff1a\u7bad\u5934\u7f29\u5c0f\u5e76\u8d34\u8fd1\u5361\u7247\u4e24\u4fa7\uff08overlay\uff09\uff0c\u907f\u514d\u906e\u6321\u5355\u5361\u5927\u56fe *\/\n    @media (max-width: 1080px) {\n      .mpers-product .mpers-car__arrow {\n        width: 42px;\n        height: 42px;\n      }\n\n      .mpers-product .mpers-car__arrow--prev { left: 8px; }\n      .mpers-product .mpers-car__arrow--next { right: 8px; }\n\n      .mpers-product .mpers-car__arrow svg {\n        width: 18px;\n        height: 18px;\n      }\n\n      \/* \u4e2d\u5c4f\uff1a\u5361\u968f\u5bb9\u5668\u53d8\u7a84\uff0c\u6574\u4f53\u538b\u4f4e *\/\n      .mpers-product .mpers-car[data-per-view=\"3\"] .mpers-card__media { height: 340px; }\n      .mpers-product .mpers-car[data-per-view=\"4\"] .mpers-card__media { height: 300px; }\n      .mpers-product .mpers-car[data-per-view=\"5\"] .mpers-card__media { height: 220px; }\n    }\n  <\/style>\n  <style>\n    html,\n    body {\n      margin: 0;\n      padding: 0\n    }\n  <\/style>\n<\/head>\n\n<body>\n  <section class=\"mpers-page\">\n    <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n           \u25bc  SEO \u7ef4\u62a4\u533a\uff08\u6539\u8fd9\u91cc\u5c31\u884c\uff0c\u4e0d\u8981\u52a8\u4e0a\u9762\u7684\u4ee3\u7801\uff09\u25bc\n\n           \u00b7 \u4e0b\u65b9 MPERS_CARDS \u7684\u6bcf\u4e00\u9879\u5c31\u662f\u4e00\u5f20\u4ea7\u54c1\u5361\n           \u00b7 \u6bcf\u5f20\u5361\u53ef\u6539\uff1atitle \/ subtitle \/ image \/ url\n                title     \u4ea7\u54c1\u540d\uff08\u5927\u6807\u9898\uff09\n                subtitle  \u4ea7\u54c1\u8bf4\u660e\u5c0f\u5b57\n                image     \u4ea7\u54c1\u56fe\u5730\u5740\n                url       \u70b9\u51fb\u300cMore\u300d\u8df3\u8f6c\u7684\u843d\u5730\u9875\u94fe\u63a5\n           \u00b7 \u8f6e\u64ad\uff1a\u4e0b\u65b9 MPERS_CAROUSEL \u63a7\u5236\u663e\u793a\u65b9\u5f0f\n                perView  \u6bcf\u5c4f\u663e\u793a\u51e0\u5f20\u5361\uff08\u5c0f\u4e8e\u4ea7\u54c1\u603b\u6570\u624d\u6ed1\u52a8\uff09\n                autoplay \u81ea\u52a8\u8f6e\u64ad\u95f4\u9694\uff08\u6beb\u79d2\uff09\n                \u624b\u52a8\uff1a\u5de6\u53f3\u7bad\u5934 + \u5e95\u90e8\u6307\u793a\u70b9 + \u6309\u4f4f\u62d6\u62fd\n           \u00b7 \u5176\u5b83\u90fd\u4e0d\u7528\u7ba1\uff08\u53ef\u9009\uff1ablank=false \u4e3a\u5f53\u524d\u9875\u6253\u5f00\uff1bvariants \u505a\u989c\u8272\u5207\u6362\uff09\n\n           \u672c\u6a21\u5757\u662f WP \u5c0f\u90e8\u4ef6\uff0c\u5168\u9009\u590d\u5236\u5230\u9875\u9762\u5373\u53ef\u3002\n           \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n      -->\n\n    <div class=\"mpers-product\"><\/div>\n\n    <script>\n      \/\/ ===== \u8f6e\u64ad\u53c2\u6570 =====\n      \/\/   perView  \u6bcf\u5c4f\u663e\u793a\u51e0\u5f20\u5361\uff08\u9700\u5c0f\u4e8e\u4ea7\u54c1\u603b\u6570\uff0c\u8f6e\u64ad\u624d\u4f1a\u6ed1\u52a8\uff1b= \u603b\u6570\u5219\u6574\u6392\u94fa\u6ee1\u4e0d\u6ed1\u52a8\uff09\n      \/\/   autoplay \u81ea\u52a8\u8f6e\u64ad\u95f4\u9694\uff08\u6beb\u79d2\uff09\n      var MPERS_CAROUSEL = {\n        perView: 5,\n        autoplay: 4200\n      };\n\n      var MPERS_CARDS = [\n        {\n          title: \"EV-12\",\n          url: \"https:\/\/www.eviewconnect.com\/product\/ev-12\/\",\n          image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/09\/Group-35955.png\",\n          fit: [80, 80, 86, 153, 160, 160],\n        },\n        {\n          title: \"EV-04\",\n          url: \"https:\/\/www.eviewconnect.com\/product\/ev-04\/\",\n          image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/09\/Group-35956.png\",\n          fit: [80, 80, 116, 150, 280, 342],\n        },\n        {\n          title: \"EV-07B\",\n          url: \"https:\/\/www.eviewconnect.com\/product\/ev-07b\/\",\n          image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/09\/Group-35957.png\",\n          fit: [78, 79, 110, 151, 298, 388],\n        },\n        {\n          title: \"EV-P103\",\n          url: \"https:\/\/www.eviewconnect.com\/product\/ev-p103\/\",\n          image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/09\/Group-35958.png\",\n          fit: [80, 80, 90, 152, 160, 160],\n        },\n        {\n          title: \"EV-03\",\n          url: \"https:\/\/www.eviewconnect.com\/product\/ev-03\/\",\n          image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/09\/Group-35959.png\",\n          fit: [80, 79, 175, 120, 409, 307],\n        },\n        {\n          title: \"EV-06\",\n          url: \"https:\/\/www.eviewconnect.com\/product\/ev-06\/\",\n          image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/09\/Group-35964.png\",\n          fit: [80, 79, 87, 151, 283, 408],\n        },\n        {\n          title: \"EV-W101\",\n          url: \"https:\/\/www.eviewconnect.com\/product\/ev-w101\/\",\n          image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/09\/Group-35963.png\",\n          fit: [80, 79, 94, 155, 160, 160],\n        },\n        {\n          title: \"EV-05\",\n          url: \"https:\/\/www.eviewconnect.com\/product\/ev-05\/\",\n          image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/09\/Group-35962.png\",\n          fit: [81, 80, 99, 155, 160, 160],\n        },\n        {\n          title: \"H606\",\n          url: \"https:\/\/www.eviewconnect.com\/product\/h606\/\",\n          image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/09\/Group-35961.png\",\n          fit: [78, 78, 140, 143, 371, 378],\n        },\n        {\n          title: \"EW-03\",\n          url: \"https:\/\/www.eviewconnect.com\/product\/ew-03\/\",\n          image: \"https:\/\/www.eviewconnect.com\/wp-content\/uploads\/2026\/09\/Group-35960.png\",\n          fit: [79, 81, 143, 143, 160, 160],\n        }\n      ];\n\n      \/\/ ===== \u5361\u7247\u6e32\u67d3\uff08\u6309 MPERS_LAYOUT.rows \u81ea\u52a8\u5206\u6392\uff09 =====\n      function initModule() {\n        var product = document.querySelector(\".mpers-product\");\n        if (!product) return;\n        var REDUCE = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\n        function esc(s) {\n          return String(s).replace(\/[\"&<>]\/g, function (ch) {\n            return { '\"': \"&quot;\", \"&\": \"&amp;\", \"<\": \"&lt;\", \">\": \"&gt;\" }[ch];\n          });\n        }\n\n        function moreSvg() {\n          return '<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\"\/><\/svg>';\n        }\n\n        \/\/ \u9ed8\u8ba4\u9009\u4e2d\u53d8\u4f53\u7684\u7d22\u5f15\uff1a\u53d6\u7b2c\u4e00\u5f20\u975e\u7a7a\u53d8\u4f53\u56fe\uff1b\u5168\u7a7a\u6216\u65e0\u53d8\u4f53\u8fd4\u56de -1\n        function defaultIndex(c) {\n          if (c.variants && c.variants.length) {\n            for (var i = 0; i < c.variants.length; i++) {\n              if (c.variants[i].image) return i;\n            }\n          }\n          return -1;\n        }\n\n        \/\/ \u9ed8\u8ba4\u663e\u793a\u7684\u4ea7\u54c1\u56fe\uff1a\u4f18\u5148\u7b2c\u4e00\u5f20\u975e\u7a7a\u53d8\u4f53\u56fe\uff0c\u5426\u5219\u7528 image \u5b57\u6bb5\n        function defaultImage(c) {\n          var di = defaultIndex(c);\n          if (di >= 0) return c.variants[di].image;\n          return c.image || \"\";\n        }\n\n        \/\/ \u989c\u8272\u5207\u6362\u8272\u70b9\uff1a\u4ec5\u5f53\u8be5\u5361\u914d\u7f6e\u4e86 variants \u4e14\u67d0\u4e2a\u53d8\u4f53\u914d\u4e86 image \u624d\u6e32\u67d3\n        \/\/ \uff08\u6ca1\u6709\u53d8\u4f53\u56fe\u65f6\u8272\u70b9\u70b9\u4e86\u4e5f\u4e0d\u4f1a\u5207\u6362\uff0c\u76f4\u63a5\u9690\u85cf\uff0c\u907f\u514d SEO \u56f0\u60d1\uff09\n        function colorsHtml(c) {\n          if (!c.variants || !c.variants.length) return \"\";\n          var di = defaultIndex(c);\n          if (di < 0) return \"\";\n          var activeIdx = di;\n          var out = '<div class=\"mpers-colors\" role=\"group\" aria-label=\"' + esc(c.title) + ' color\">';\n          for (var i = 0; i < c.variants.length; i++) {\n            var v = c.variants[i];\n            out += '<button type=\"button\" class=\"mpers-color' + (i === activeIdx ? \" mpers-color--active\" : \"\") + '\"'\n              + ' style=\"background:' + (v.color || \"#cfd8e3\") + '\"'\n              + ' title=\"' + esc(v.name || \"\") + '\" aria-label=\"' + esc(v.name || \"\") + '\"'\n              + ' data-src=\"' + esc(v.image || \"\") + '\"><\/button>';\n          }\n          return out + '<\/div>';\n        }\n\n        function cardHtml(c, isHero) {\n          var blankAttr = c.blank !== false ? ' target=\"_blank\" rel=\"noopener\"' : \"\";\n          var alt = c.alt || c.title;\n          \/\/ \u81ea\u52a8\u805a\u7126\u4ea7\u54c1\u8bbe\u5907\uff1a\u628a\u8bbe\u5907\u5305\u56f4\u76d2\u5b58\u8fdb data-fit\uff0c\u6e32\u67d3\u540e\u6309\u5b9e\u9645\u5a92\u4f53\u76d2\u7b97 translate+scale \u5c45\u4e2d\u653e\u5927\n          var fitAttr = c.fit ? ' data-fit=\"' + c.fit.join(\",\") + '\"' : \"\";\n          var fitStyle = c.fit ? ' style=\"position:absolute;left:0;top:0;right:auto;bottom:auto;width:auto;height:auto;max-width:none;object-fit:initial;transform-origin:0 0\"' : \"\";\n          return '<div class=\"mpers-card\">'\n            + '<div class=\"mpers-card__body\">'\n            + '<h2 class=\"mpers-card__title\">' + esc(c.title) + '<\/h2>'\n            + '<a class=\"mpers-more\" href=\"' + c.url + '\"' + blankAttr + '>More ' + moreSvg() + '<\/a>'\n            + '<\/div>'\n            + '<div class=\"mpers-card__media\">'\n            + '<img class=\"mpers-img mpers-img--base\" src=\"' + esc(defaultImage(c)) + '\" alt=\"' + esc(alt) + '\" loading=\"lazy\" decoding=\"async\"' + fitAttr + fitStyle + ' \/>'\n            + '<img class=\"mpers-img mpers-img--swap\" alt=\"\" aria-hidden=\"true\" decoding=\"async\" \/>'\n            + '<span class=\"mpers-img-fallback\" aria-hidden=\"true\">' + esc(c.title) + '<\/span>'\n            + colorsHtml(c) + '<\/div>'\n            + '<\/div>';\n        }\n\n        \/\/ ===== \u8f6e\u64ad\u642d\u5efa\uff08\u7ee7\u627f list.html \u65e0\u7f1d\u5faa\u73af\uff1a\u5de6\u53f3\u514b\u9686 + \u8f68\u9053\u4f4d\u79fb + \u6307\u793a\u70b9 + \u62d6\u62fd\uff09=====\n        var cards = MPERS_CARDS || [];\n        var realLen = cards.length;\n        var cfg = MPERS_CAROUSEL || {};\n        var cfgView = Math.max(1, Math.min(cfg.perView || 3, realLen || 1));\n        var AUTOPLAY = cfg.autoplay || 4200;\n        var THRESHOLD = 42;\n        \/\/ \u76f8\u90bb\u5361\u9732\u51fa\u91cf\uff1a0 = \u6bcf\u5c4f\u6b63\u597d perView \u5f20\u5b8c\u6574\u5361\uff08\u65e0\u534a\u622a\uff09\uff0c\u5982\u9700\u5de6\u53f3\u9732\u5934\u53ef\u8bbe >0\n        var PEEK = 0;\n        \/\/ \u4ea7\u54c1\u56fe\u7f29\u653e\u7cfb\u6570\uff1a<1 \u65f6\u8bbe\u5907\u6574\u4f53\u7f29\u5c0f\u7559\u8fb9\uff08\u76f8\u5bf9\u94fa\u6ee1\u76d2\u5b50\uff09\uff0c1=\u94fa\u6ee1\n        \/\/ \u8c03\u4f4e=\u8bbe\u5907\u663e\u793a\u66f4\u5c0f\u3001\u653e\u5927\u500d\u7387\u66f4\u4f4e\uff0c\u4f4e\u6e05\u7d20\u6750\u66f4\u4e0d\u660e\u663e\uff08\u53d7\u7d20\u6750\u5206\u8fa8\u7387\u9650\u5236\uff0c\u6362\u9ad8\u6e05\u56fe\u624d\u662f\u6839\u6cbb\uff09\n        var IMG_SCALE = 0.78;\n\n        \/\/ \u54cd\u5e94\u5f0f\u6bcf\u5c4f\u5f20\u6570\uff1a\u6309\u5bb9\u5668\u5bbd\u5ea6\u964d\u7ea7\uff08\u684c\u9762\u7528\u914d\u7f6e\u503c\uff0c\u7a84\u5c4f\u81ea\u52a8\u7f29\u5c0f\uff09\uff0c\u907f\u514d\u624b\u673a\u4e0a\u6324\u6210\u4e00\u56e2\n        function resolvePerView() {\n          var w = product.clientWidth || window.innerWidth;\n          var v;\n          if (w >= 1280) v = cfgView;\n          else if (w >= 1024) v = Math.min(4, cfgView);\n          else if (w >= 840) v = Math.min(3, cfgView);\n          else if (w >= 600) v = Math.min(2, cfgView);\n          else v = 1;\n          return Math.max(1, Math.min(v, realLen));\n        }\n        \/\/ \u8bbe\u7f6e\u6bcf\u5c4f\u5f20\u6570\u5e76\u540c\u6b65\u5230 CSS \u53d8\u91cf \/ data \u5c5e\u6027\uff08\u9a71\u52a8\u5361\u5c3a\u5bf8\u4e0e\u8f68\u9053\u5bbd\u5ea6\uff09\n        function setPerView(v) {\n          perView = Math.max(1, Math.min(v, realLen));\n          car.style.setProperty(\"--per-view\", perView);\n          car.style.setProperty(\"--peek\", PEEK);\n          car.setAttribute(\"data-per-view\", perView);\n        }\n        var perView = Math.max(1, Math.min(resolvePerView(), realLen || 1));\n\n        var car = document.createElement(\"div\");\n        car.className = \"mpers-car\";\n        car.setAttribute(\"role\", \"region\");\n        car.setAttribute(\"aria-roledescription\", \"carousel\");\n        car.setAttribute(\"aria-label\", \"Products\");\n        var viewport = document.createElement(\"div\");\n        viewport.className = \"mpers-car__viewport\";\n        var track = document.createElement(\"div\");\n        track.className = \"mpers-car__track\";\n        viewport.appendChild(track);\n        var dots = document.createElement(\"div\");\n        dots.className = \"mpers-car__dots\";\n        dots.setAttribute(\"aria-label\", \"Choose a product\");\n        car.appendChild(viewport);\n        car.appendChild(dots);\n        product.appendChild(car);\n\n        function arrowSvg(dir) {\n          var d = dir === \"prev\" ? \"M14 4L6 12L14 20\" : \"M6 4L14 12L6 20\";\n          return '<svg viewBox=\"0 0 22 22\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"' + d + '\"\/><\/svg>';\n        }\n        var prevBtn = document.createElement(\"button\");\n        prevBtn.className = \"mpers-car__arrow mpers-car__arrow--prev\";\n        prevBtn.setAttribute(\"aria-label\", \"Previous products\");\n        prevBtn.innerHTML = arrowSvg(\"prev\");\n        var nextBtn = document.createElement(\"button\");\n        nextBtn.className = \"mpers-car__arrow mpers-car__arrow--next\";\n        nextBtn.setAttribute(\"aria-label\", \"Next products\");\n        nextBtn.innerHTML = arrowSvg(\"next\");\n        car.insertBefore(prevBtn, viewport);\n        car.appendChild(nextBtn);\n\n        var index = 0, clones = 0, slideW = 0, timer = null;\n        var hoverPaused = false, dragging = false, moved = false;\n        var startX = 0, startY = 0, deltaX = 0, axis = null, pointerId = null;\n        var autoOn = realLen > perView;   \/\/ \u81ea\u52a8\u64ad\u653e\u610f\u56fe\u5f00\u5173\uff08\u7528\u6237\u53ef\u6682\u505c\uff09\n\n        function activeIndex() {\n          return ((index - clones) % realLen + realLen) % realLen;\n        }\n        function trackTransform() {\n          return \"translateX(\" + (-(index * slideW) + (dragging ? deltaX : 0)) + \"px)\";\n        }\n        function render(animate) {\n          track.style.transition = (animate && !REDUCE) ? \"transform 0.55s cubic-bezier(0.4, 0, 0.2, 1)\" : \"none\";\n          track.style.transform = trackTransform();\n        }\n        function updateDots() {\n          var b = dots.querySelectorAll(\".mpers-dot\");\n          var ai = activeIndex();\n          for (var i = 0; i < b.length; i++) {\n            var on = i === ai;\n            b[i].classList.toggle(\"mpers-dot--active\", on);\n            if (on) b[i].setAttribute(\"aria-current\", \"true\");\n            else b[i].removeAttribute(\"aria-current\");\n          }\n        }\n        function snapClones() {\n          if (index < clones) index += realLen;\n          else if (index >= clones + realLen) index -= realLen;\n        }\n        function onTransitionEnd() {\n          var before = index;\n          snapClones();\n          if (before !== index) render(false);\n          updateDots();\n        }\n        function go(dir) {\n          index += dir;\n          render(true);\n          startAuto();\n        }\n        function goTo(i) {\n          index = clones + i;\n          render(true);\n          startAuto();\n        }\n        \/\/ \u7bad\u5934\u7559\u767d\u8ddf\u968f\u5bb9\u5668\u5bbd\u5ea6\uff08\u4e0e perView \u540c\u6e90\uff0c\u907f\u514d\u89c6\u53e3\u2260\u5bb9\u5668\u65f6\u9519\u914d\uff09\uff1a>=1080px \u5916\u7f6e\uff0c\u5426\u5219 overlay\n        function syncArrowPad() {\n          var w = product.clientWidth || window.innerWidth;\n          car.style.setProperty(\"--arrow-pad\", (w >= 1080 ? 76 : 0) + \"px\");\n        }\n        function measure() {\n          if (!realLen) return;\n          syncArrowPad();   \/\/ \u5148\u786e\u5b9a\u5de6\u53f3\u7559\u767d\uff0c\u518d\u91cf\u5361\u7247\u5bbd\u5ea6\n          var first = track.children[0];\n          slideW = (first && first.getBoundingClientRect().width) || viewport.clientWidth \/ perView;\n          render(false);\n          updateDots();\n          positionArrows();\n          applyFits();     \/\/ \u5a92\u4f53\u76d2\u5c3a\u5bf8\u53d8\u5316\u540e\u91cd\u7b97\u8bbe\u5907\u5c45\u4e2d\u7f29\u653e\uff08\u5426\u5219\u523b\u5ea6\/stale \u4f1a\u6574\u4f53\u504f\u53f3\uff09\n        }\n        \/\/ \u7bad\u5934\u5782\u76f4\u5bf9\u9f50\u56fe\u7247\u533a\u4e2d\u7ebf\uff08\u800c\u975e\u6574\u5361\u4e2d\u7ebf\uff09\uff1abody \u9ad8 + \u56fe\u7247\u533a\u4e00\u534a\n        function positionArrows() {\n          var card = product.querySelector(\".mpers-card\");\n          if (!card) return;\n          var body = card.querySelector(\".mpers-card__body\");\n          var media = card.querySelector(\".mpers-card__media\");\n          if (!body || !media) return;\n          var top = card.offsetTop + body.offsetTop + body.offsetHeight + media.offsetHeight \/ 2;\n          car.style.setProperty(\"--arrow-top\", top.toFixed(1) + \"px\");\n        }\n        function applyFits() {\n          var media = product.querySelector(\".mpers-card__media\");\n          if (!media) return;\n          var boxW = media.clientWidth || 0;\n          var boxH = media.clientHeight || 0;\n          if (!boxW || !boxH) return;\n          var imgs = track.querySelectorAll(\".mpers-img--base[data-fit]\");\n          for (var i = 0; i < imgs.length; i++) {\n            var f = imgs[i].getAttribute(\"data-fit\").split(\",\");\n            \/\/ fit = cx, cy, bw, bh, refW, refH  \u2014\u2014 \u8bbe\u5907\u5305\u56f4\u76d2\u4ee5 refW\u00d7refH \u8fd9\u5f20\u539f\u56fe\u4e3a\u53c2\u8003\u7cfb\n            var cx = +f[0], cy = +f[1], bw = +f[2], bh = +f[3];\n            if (!bw || !bh) continue;\n            var K = Math.min(boxW \/ bw, boxH \/ bh) * IMG_SCALE; \/\/ \u94fa\u6ee1\u76d2\u5b50\u540e\u6309\u7cfb\u6570\u6574\u4f53\u7f29\u5c0f\uff0c\u7559\u51fa\u8fb9\u8ddd\n            \/\/ \u628a\u300c\u53c2\u8003\u7cfb\u539f\u56fe\u300d\u7f29\u653e\u5230 media \u76d2\uff1a\u6574\u56fe\u94fa\u76d2 + \u8bbe\u5907\u4e2d\u5fc3\u5bf9\u5230\u76d2\u4e2d\u5fc3\n            var tx = boxW \/ 2 - cx * K;                        \/\/ \u8bbe\u5907\u4e2d\u5fc3 X \u5bf9\u5230\u76d2\u4e2d\u5fc3 X\n            var ty = boxH \/ 2 - cy * K;                        \/\/ \u8bbe\u5907\u4e2d\u5fc3 Y \u5bf9\u5230\u76d2\u4e2d\u5fc3 Y\n            imgs[i].style.transform = \"translate(\" + tx.toFixed(1) + \"px,\" + ty.toFixed(1) + \"px) scale(\" + K.toFixed(2) + \")\";\n          }\n        }\n\n        function build() {\n          setPerView(perView);\n          clones = realLen > perView ? Math.max(1, Math.min(perView, realLen - 1)) : 0;\n          var prepend = [], append = [];\n          if (realLen > perView) {\n            prepend = cards.slice(realLen - clones);\n            append = cards.slice(0, clones);\n          }\n          track.innerHTML = prepend.concat(cards).concat(append).map(function (c) {\n            return '<div class=\"mpers-car__slide\">' + cardHtml(c) + '<\/div>';\n          }).join(\"\");\n          applyFits();\n          dots.innerHTML = cards.map(function (c, i) {\n            return '<button type=\"button\" class=\"mpers-dot\" data-i=\"' + i + '\" aria-label=\"Go to slide ' + (i + 1) + '\"><\/button>';\n          }).join(\"\");\n          index = clones;\n          wireAll();   \/\/ \u56fe\u7247\u7ed1\u5b9a\uff08\u6de1\u5165\/\u5360\u4f4d\uff09\u4e0e\u53d8\u4f53\u56fe\u9884\u8f7d\u9700\u968f\u91cd\u5efa\u91cd\u65b0\u6267\u884c\n          boostVisible();   \/\/ \u9996\u5c4f\u53ef\u89c1\u7a97\u53e3\u7684\u56fe\u7528 eager\uff0c\u5176\u4f59\u4fdd\u6301 lazy\uff08\u61d2\u52a0\u8f7d\uff09\n          measure();\n        }\n\n        \/\/ \u521d\u59cb\u53ef\u89c1\u533a\u95f4\uff08index=clones \u8d77\u7684 perView \u5f20\uff09\u6539\u4e3a eager\uff0c\u5176\u4f59\u4ea4\u7531\u6d4f\u89c8\u5668\u61d2\u52a0\u8f7d\n        function boostVisible() {\n          var slides = track.querySelectorAll(\".mpers-car__slide\");\n          var end = Math.min(clones + perView, slides.length);\n          for (var i = clones; i < end; i++) {\n            var img = slides[i] && slides[i].querySelector(\".mpers-img--base\");\n            if (img) { img.loading = \"eager\"; img.fetchPriority = \"high\"; }\n          }\n        }\n        function startAuto() {\n          stopAuto();\n          if (REDUCE || realLen <= perView || !autoOn) return;\n          timer = setInterval(function () {\n            if (!dragging && !hoverPaused) go(1);\n          }, AUTOPLAY);\n        }\n        function stopAuto() {\n          if (timer) { clearInterval(timer); timer = null; }\n        }\n\n        prevBtn.addEventListener(\"click\", function () { go(-1); });\n        nextBtn.addEventListener(\"click\", function () { go(1); });\n        dots.addEventListener(\"click\", function (e) {\n          var b = e.target.closest(\".mpers-dot\");\n          if (b) goTo(parseInt(b.getAttribute(\"data-i\"), 10));\n        });\n        track.addEventListener(\"transitionend\", onTransitionEnd);\n\n        car.addEventListener(\"mouseenter\", function () { hoverPaused = true; });\n        car.addEventListener(\"mouseleave\", function () { hoverPaused = false; });\n        car.addEventListener(\"focusin\", function () { hoverPaused = true; });\n        car.addEventListener(\"focusout\", function () { hoverPaused = false; });\n\n        \/\/ \u952e\u76d8\u65e0\u969c\u788d\uff1a\u805a\u7126\u5230\u8f6e\u64ad\u533a\u57df\u540e\u53ef\u7528 \u2190\/\u2192 \u7ffb\u9875\n        car.setAttribute(\"tabindex\", \"0\");\n        car.addEventListener(\"keydown\", function (e) {\n          if (e.key === \"ArrowLeft\") { e.preventDefault(); go(-1); }\n          else if (e.key === \"ArrowRight\") { e.preventDefault(); go(1); }\n        });\n\n        \/\/ \u6682\u505c\/\u64ad\u653e\u63a7\u5236\uff08WCAG 2.2.2\uff1a\u81ea\u52a8\u64ad\u653e\u987b\u53ef\u6682\u505c\uff09\n        function pauseIcon() {\n          return '<svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\"><rect x=\"3\" y=\"2\" width=\"2.7\" height=\"10\" rx=\"1\" fill=\"#15395E\"\/><rect x=\"8.3\" y=\"2\" width=\"2.7\" height=\"10\" rx=\"1\" fill=\"#15395E\"\/><\/svg>';\n        }\n        function playIcon() {\n          return '<svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\"><path d=\"M4 2.6v8.8l7.4-4.4z\" fill=\"#15395E\"\/><\/svg>';\n        }\n        var pauseBtn = document.createElement(\"button\");\n        pauseBtn.className = \"mpers-pause\";\n        pauseBtn.type = \"button\";\n        pauseBtn.innerHTML = pauseIcon();\n        pauseBtn.setAttribute(\"aria-label\", \"Pause carousel\");\n        dots.appendChild(pauseBtn);\n        function syncPauseBtn() {\n          var show = realLen > perView && !REDUCE;\n          pauseBtn.style.display = show ? \"\" : \"none\";\n          pauseBtn.setAttribute(\"aria-pressed\", String(!autoOn));\n          pauseBtn.innerHTML = autoOn ? pauseIcon() : playIcon();\n          pauseBtn.setAttribute(\"aria-label\", autoOn ? \"Pause carousel\" : \"Play carousel\");\n        }\n        function toggleAuto() {\n          autoOn = !autoOn;\n          if (autoOn) startAuto(); else stopAuto();\n          syncPauseBtn();\n        }\n        pauseBtn.addEventListener(\"click\", toggleAuto);\n\n        \/\/ \u624b\u52a8\u62d6\u62fd\/\u6a2a\u6ed1\uff1a\u5148\u5224\u65b9\u5411\uff0c\u7ad6\u6ed1\u7acb\u5373\u8ba9\u7ed9\u9875\u9762\u6eda\u52a8\u3002\n        \/\/ \u6ce8\u610f\uff1apointerdown \u65f6\u3010\u4e0d\u80fd\u3011setPointerCapture \u2014\u2014 \u4e00\u65e6\u6355\u83b7\uff0c\u540e\u7eed click \u7684\n        \/\/ target \u4f1a\u88ab\u91cd\u5b9a\u5411\u5230 viewport\uff0c\u5361\u7247\u5185 <a>\uff08More \/ \u8272\u70b9\uff09\u7684\u9ed8\u8ba4\u8df3\u8f6c\u5168\u90e8\u5931\u6548\u3002\n        \/\/ \u6539\u4e3a\u786e\u8ba4\u662f\u6a2a\u5411\u62d6\u62fd\u540e\u518d\u6355\u83b7\uff0c\u7eaf\u70b9\u51fb\u8def\u5f84\u5b8c\u5168\u4e0d\u78b0 capture\u3002\n        viewport.addEventListener(\"pointerdown\", function (e) {\n          if (realLen <= perView) return;\n          dragging = true;\n          moved = false;\n          startX = e.clientX;\n          startY = e.clientY;\n          deltaX = 0;\n          axis = null;\n          pointerId = e.pointerId;\n          track.style.transition = \"none\";\n        });\n        viewport.addEventListener(\"pointermove\", function (e) {\n          if (!dragging) return;\n          var dx = e.clientX - startX;\n          var dy = e.clientY - startY;\n          if (axis === null) {\n            if (Math.abs(dx) < 6 && Math.abs(dy) < 6) return;   \/\/ \u6b7b\u533a\u5185\u6682\u4e0d\u5b9a\u5411\n            axis = Math.abs(dx) >= Math.abs(dy) ? \"x\" : \"y\";\n            \/\/ \u786e\u8ba4\u4e3a\u6a2a\u5411\u62d6\u62fd\u624d\u6355\u83b7\uff1a\u6307\u9488\u79fb\u51fa\u8f6e\u64ad\u4ecd\u80fd\u8ddf\u624b\uff0c\u540c\u65f6\u4e0d\u6c61\u67d3\u70b9\u51fb\n            if (axis === \"x\") { try { viewport.setPointerCapture(pointerId); } catch (err) {} }\n          }\n          if (axis === \"y\") { dragging = false; return; }        \/\/ \u7ad6\u6ed1\uff1a\u653e\u5f03\u62d6\u52a8\u4ea4\u7ed9\u9875\u9762\n          deltaX = dx;\n          if (Math.abs(deltaX) > THRESHOLD) moved = true;\n          track.style.transform = trackTransform();\n        });\n        function endDrag(e) {\n          if (!dragging) return;\n          dragging = false;\n          if (axis !== \"y\" && moved) index += deltaX < 0 ? 1 : -1;\n          render(true);\n          deltaX = 0;\n          try { viewport.releasePointerCapture(e.pointerId); } catch (err) {}\n          startAuto();\n        }\n        viewport.addEventListener(\"pointerup\", endDrag);\n        viewport.addEventListener(\"pointercancel\", endDrag);\n        \/\/ \u515c\u5e95\uff1a\u672a\u6355\u83b7\u65f6\u6307\u9488\u79fb\u51fa\u8f6e\u64ad\u518d\u62ac\u8d77\uff0cviewport \u6536\u4e0d\u5230 pointerup\uff0c\u8fd9\u91cc\u590d\u4f4d\u907f\u514d dragging \u5361\u4f4f\n        window.addEventListener(\"pointerup\", endDrag);\n        window.addEventListener(\"pointercancel\", endDrag);\n        \/\/ \u62d6\u62fd\u7ed3\u675f\u540e\u62e6\u622a\u8bef\u89e6\u70b9\u51fb\uff08\u4f4d\u79fb\u8d85\u9608\u503c\u5219\u5ffd\u7565\u76ee\u6807\u7684 click\uff09\n        viewport.addEventListener(\"click\", function (e) {\n          if (moved) {\n            e.preventDefault();\n            e.stopPropagation();\n            moved = false;\n          }\n        }, true);\n\n        \/\/ \u54cd\u5e94\u5f0f\uff1aresize \u65f6\u82e5\u6bcf\u5c4f\u5f20\u6570\u53d8\u5316\u5219\u91cd\u5efa\u8f6e\u64ad\uff08\u4fdd\u6301\u5f53\u524d\u4ea7\u54c1\u4f4d\u7f6e\uff09\uff0c\u5426\u5219\u4ec5\u91cd\u7b97\u5bbd\u5ea6\n        window.addEventListener(\"resize\", function () {\n          var pv = resolvePerView();\n          if (pv !== perView) {\n            var cur = activeIndex();\n            perView = pv;\n            build();                 \/\/ \u5185\u90e8 setPerView + \u91cd\u7f6e index=clones\n            index = clones + cur;    \/\/ \u56de\u5230\u91cd\u5efa\u524d\u770b\u5230\u7684\u4ea7\u54c1\n            render(false);\n            updateDots();\n            syncPauseBtn();\n            startAuto();\n          } else {\n            measure();\n          }\n        });\n\n        build();\n        startAuto();\n        syncPauseBtn();\n\n        \/\/ \u56fe\u7247\u52a0\u8f7d\u5931\u8d25 \u2192 \u54c1\u724c\u5360\u4f4d\uff1b\u52a0\u8f7d\u6210\u529f \u2192 \u6062\u590d\u56fe\u7247\n        function wireImage(card) {\n          var media = card.querySelector(\".mpers-card__media\");\n          var img = media.querySelector(\".mpers-img--base\");\n          var fb = media.querySelector(\".mpers-img-fallback\");\n          if (!img || !fb) return;\n          \/\/ \u6210\u529f\uff1a\u663e\u793a\u56fe\u7247 + \u7184\u706d\u9aa8\u67b6\u5c4f + \u6de1\u5165\uff1b\u5df2\u7f13\u5b58\u5219\u77ac\u65f6\u663e\u793a\uff08\u4e0d\u6de1\u5165\uff0c\u907f\u514d\u9996\u5c4f\u5361\u987f\uff09\n          function showImg(alreadyCached) {\n            img.style.display = \"block\";\n            fb.style.display = \"none\";\n            img.classList.add(\"is-loaded\");\n            media.classList.add(\"is-loaded\");\n            if (alreadyCached) {\n              img.style.transition = \"none\";\n              img.style.opacity = \"1\";\n              void img.offsetWidth;\n              img.style.transition = \"\";\n            }\n          }\n          \/\/ \u5931\u8d25\uff1a\u663e\u793a\u54c1\u724c\u5360\u4f4d + \u7184\u706d\u9aa8\u67b6\u5c4f\n          function showFb() {\n            img.style.display = \"none\";\n            fb.style.display = \"flex\";\n            media.classList.add(\"is-loaded\");\n          }\n          img.addEventListener(\"load\", function () { showImg(false); applyFits(); });\n          img.addEventListener(\"error\", showFb);\n          if (img.complete) {\n            if (img.naturalWidth) showImg(true); else showFb();\n          }\n        }\n\n        \/\/ \u91cd\u5efa\u540e\u53ef\u590d\u7528\uff1a\u7ed1\u5b9a\u5168\u90e8\u5361\u7247\u56fe\u7247\uff08\u6de1\u5165\/\u5360\u4f4d\uff09+ \u9884\u8f7d\u5168\u90e8\u53d8\u4f53\u56fe\n        function wireAll() {\n          var allCards = product.querySelectorAll(\".mpers-card\");\n          for (var wi = 0; wi < allCards.length; wi++) wireImage(allCards[wi]);\n          var colorBtns = product.querySelectorAll(\".mpers-color[data-src]\");\n          for (var pi = 0; pi < colorBtns.length; pi++) {\n            var psrc = colorBtns[pi].getAttribute(\"data-src\");\n            if (psrc) { var pre = new Image(); pre.src = psrc; }\n          }\n        }\n\n        \/\/ \u9ad8\u4eae\u5f53\u524d\u8272\u70b9\n        function highlight(btn, card) {\n          var colors = card.querySelector(\".mpers-colors\");\n          if (!colors) return;\n          var btns = colors.querySelectorAll(\".mpers-color\");\n          for (var i = 0; i < btns.length; i++) btns[i].classList.remove(\"mpers-color--active\");\n          btn.classList.add(\"mpers-color--active\");\n        }\n\n        \/\/ \u989c\u8272\u5207\u6362\uff1a\u9884\u52a0\u8f7d\u65b0\u56fe \u2192 \u4e0a\/\u4e0b\u4e24\u5c42\u4ea4\u53c9\u6e10\u53d8\uff08crossfade\uff09\n        \/\/ \u52a8\u753b\u8fdb\u884c\u4e2d\u7684\u70b9\u51fb\u4e0d\u518d\u4e22\u5f03\uff1a\u6392\u8fdb card._pending\uff0c\u672c\u6b21\u7ed3\u675f\u7acb\u523b\u5207\u5230\u300c\u6700\u65b0\u70b9\u51fb\u300d\u7684\u989c\u8272\n        product.addEventListener(\"click\", function (e) {\n          var btn = e.target.closest(\".mpers-color\");\n          if (!btn) return;\n          var card = btn.closest(\".mpers-card\");\n          if (!card) return;\n          var media = card.querySelector(\".mpers-card__media\");\n          if (!media) return;\n          var base = media.querySelector(\".mpers-img--base\");\n          var swap = media.querySelector(\".mpers-img--swap\");\n          var src = btn.getAttribute(\"data-src\");\n          if (!src || !base || !swap) return;\n\n          highlight(btn, card);\n          \/\/ \u5df2\u5728\u5207\u6362\u4e2d\uff1a\u8bb0\u4e0b\u6700\u65b0\u76ee\u6807\uff0c\u672c\u6b21\u7ed3\u675f\u540e\u7acb\u5373\u5207\uff08\u4e0d\u4e22\u5f03\u70b9\u51fb\uff09\n          if (card.dataset.switching === \"1\") { card._pending = src; return; }\n          doSwitch(card, base, swap, src);\n        });\n\n        \/\/ \u6267\u884c\u4e00\u6b21\u989c\u8272\u5207\u6362\uff08\u82e5\u671f\u95f4\u53c8\u70b9\u4e86\u65b0\u7684\u8272\uff0c\u7ed3\u675f\u4f1a\u63a5\u7740\u4e32\u5230\u4e0b\u4e00\u6b21\uff09\n        function doSwitch(card, base, swap, src) {\n          if (base.getAttribute(\"src\") === src) return;   \/\/ \u5df2\u662f\u8be5\u989c\u8272\n          if (REDUCE) { base.src = src; return; }\n\n          card.dataset.switching = \"1\";\n\n          \/\/ \u65e0\u52a8\u753b\u628a\u65b0\u56fe\u77ac\u65f6\u63d0\u4e3a\u5e95\u5c42\u5e38\u9a7b\uff08\u4e0d\u505a\u4e8c\u6b21\u6de1\u5165\uff09\u2192 \u907f\u514d\u89e3\u7801\u767d\u95ea\/\u505c\u5728\u4e2d\u9014\n          function promote() {\n            base.style.transition = \"none\";\n            swap.style.transition = \"none\";\n            base.src = src;\n            base.style.opacity = \"1\";\n            swap.style.opacity = \"0\";\n            swap.removeAttribute(\"src\");   \/\/ \u6e05\u7a7a\u5f85\u547d\u5c42\n            void base.offsetWidth;         \/\/ \u5f3a\u5236 reflow\uff0c\u518d\u6062\u590d\u8fc7\u6e21\n            base.style.transition = \"\";\n            swap.style.transition = \"\";\n            card.dataset.switching = \"0\";\n            next();                        \/\/ \u82e5\u671f\u95f4\u53c8\u70b9\u4e86\u989c\u8272\uff0c\u5207\u5230\u6700\u65b0\u90a3\u6b21\n          }\n\n          \/\/ \u52a8\u753b\u671f\u95f4\u82e5\u6709\u65b0\u70b9\u51fb\uff0c\u8df3\u5230\u6700\u65b0\u989c\u8272\uff08\u6700\u540e\u4e00\u6b21\u4f18\u5148\uff0c\u7edd\u4e0d\u4e22\uff09\n          function next() {\n            var p = card._pending;\n            card._pending = null;\n            if (p && p !== base.getAttribute(\"src\")) { doSwitch(card, base, swap, p); }\n          }\n\n          \/\/ \u65b0\u56fe\u52a0\u8f7d\u5b8c\u6210\u624d\u5f00\u59cb\u4ea4\u53c9\u6e10\u53d8\uff08\u52a0\u8f7d\u4e2d\u4fdd\u6301\u65e7\u56fe\uff0c\u4e0d\u9732\u767d\uff09\n          swap.onload = function () {\n            swap.onload = null;\n            swap.style.opacity = \"1\";      \/\/ \u65b0\u5c42\u6de1\u5165\n            base.style.opacity = \"0\";      \/\/ \u65e7\u5c42\u6de1\u51fa\uff0c\u4e24\u5c42\u540c\u65f6 \u2192 crossfade\n            var fired = false;\n            function onEnd(ev) {\n              if (fired || ev.propertyName !== \"opacity\") return;\n              fired = true;\n              base.removeEventListener(\"transitionend\", onEnd);\n              promote();\n            }\n            base.addEventListener(\"transitionend\", onEnd);\n            setTimeout(function () {       \/\/ \u515c\u5e95\uff1atransitionend \u88ab\u4e2d\u65ad\u4e5f\u80fd\u6536\u5c3e\n              if (!fired) { base.removeEventListener(\"transitionend\", onEnd); promote(); }\n            }, 520);\n          };\n          swap.onerror = function () {\n            swap.onerror = null;\n            base.style.opacity = \"1\";\n            card.dataset.switching = \"0\";\n            next();                        \/\/ \u52a0\u8f7d\u5931\u8d25\u4e5f\u4e00\u8def\u4e32\u4e0b\u53bb\uff0c\u4e0d\u4e2d\u65ad\n          };\n\n          swap.src = src;                  \/\/ \u89e6\u53d1\u9884\u52a0\u8f7d\u5230\u4e34\u65f6\u5c42\n        }\n      }\n\n      if (document.readyState === \"loading\") {\n        document.addEventListener(\"DOMContentLoaded\", initModule);\n      } else {\n        initModule();\n      }\n    <\/script>\n  <\/section>\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\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>EW-03\u00a0(Telecare Beacon) By synchronizing with mobile monitoring terminals, the EW-03 Telecare Beacon ensures continuous zonal presence detection and robust data integrity across complex facility topologies. Contact Us All Eview enterprise partners can remotely manage large-scale deployments, execute OTA updates, and monitor device status in real-time through our web device configurator. Request your platform access\u00a0 Features Device Features Core Capabilities Reliable Emergency Protection When It Matters Most. What\u2019s in the Box Related Products mPERS Products<\/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-17188","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.eviewconnect.com\/ja\/wp-json\/wp\/v2\/pages\/17188","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=17188"}],"version-history":[{"count":30,"href":"https:\/\/www.eviewconnect.com\/ja\/wp-json\/wp\/v2\/pages\/17188\/revisions"}],"predecessor-version":[{"id":24474,"href":"https:\/\/www.eviewconnect.com\/ja\/wp-json\/wp\/v2\/pages\/17188\/revisions\/24474"}],"wp:attachment":[{"href":"https:\/\/www.eviewconnect.com\/ja\/wp-json\/wp\/v2\/media?parent=17188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}