{"id":9,"date":"2026-06-13T18:09:03","date_gmt":"2026-06-13T10:09:03","guid":{"rendered":"https:\/\/www.circliotech.com\/?page_id=9"},"modified":"2026-07-31T14:38:10","modified_gmt":"2026-07-31T06:38:10","slug":"warranty","status":"publish","type":"page","link":"https:\/\/www.circliotech.com\/fr\/","title":{"rendered":"garantie"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"9\" class=\"elementor elementor-9\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f8a115c e-flex e-con-boxed e-con e-parent\" data-id=\"f8a115c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-657b50c e-con-full e-flex e-con e-child\" data-id=\"657b50c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-b2b7d65 e-con-full e-flex e-con e-child\" data-id=\"b2b7d65\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-b5688c7 e-con-full e-flex e-con e-child\" data-id=\"b5688c7\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;background_motion_fx_motion_fx_mouse&quot;:&quot;yes&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-93884dd elementor-hidden-desktop elementor-hidden-tablet elementor-widget elementor-widget-image\" data-id=\"93884dd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"300\" height=\"78\" src=\"https:\/\/www.circliotech.com\/wp-content\/uploads\/sites\/4\/2026\/07\/logo-w.png\" class=\"attachment-full size-full wp-image-119\" alt=\"\" srcset=\"https:\/\/www.circliotech.com\/wp-content\/uploads\/sites\/4\/2026\/07\/logo-w.png 300w, https:\/\/www.circliotech.com\/wp-content\/uploads\/sites\/4\/2026\/07\/logo-w-18x5.png 18w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3e1b4ab elementor-widget elementor-widget-heading\" data-id=\"3e1b4ab\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Register Your Product<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4ddfce6 elementor-widget__width-initial elementor-widget-mobile__width-initial elementor-widget-tablet__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"4ddfce6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Register your device to get up to 2+1 years of warranty<br \/>Get 3 years of HEPA filter supply (contact us once a year).<\/p>\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-a515794 e-con-full e-flex e-con e-child\" data-id=\"a515794\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-3417631 e-con-full e-flex e-con e-child\" data-id=\"3417631\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-76a57e5 elementor-widget elementor-widget-button\" data-id=\"76a57e5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\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\">Register Warranty<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\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<div class=\"elementor-element elementor-element-89d61f8 elementor-widget elementor-widget-shortcode\" data-id=\"89d61f8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">        <div class=\"bm-warranty-form-wrap bm-wf-auth-off\" id=\"bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c\" data-bm-wf-build=\"1.0.19\" data-bm-wf-auth=\"off\">\n            <form class=\"bm-warranty-form\" novalidate>\n                <div class=\"bm-wf-section\">\n                    <div class=\"bm-wf-title\">Basic Information<\/div>\n                    <div class=\"bm-wf-grid\">\n                        <div class=\"bm-wf-field\">\n                            <label>Customer Name<\/label>\n                            <input type=\"text\" name=\"name\" autocomplete=\"name\" \/>\n                        <\/div>\n                        <div class=\"bm-wf-field\">\n                            <label>Email<\/label>\n                            <input type=\"email\" name=\"email\" autocomplete=\"email\" required \/>\n                            <div class=\"bm-wf-field-error\" hidden><\/div>\n                            <div class=\"bm-wf-help\">Warranty confirmation will be sent by email.<\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"bm-wf-section\">\n                    <div class=\"bm-wf-title\">Purchase Information<\/div>\n                    <div class=\"bm-wf-grid bm-wf-grid-single\">\n                        <div class=\"bm-wf-field\">\n                            <label>Order Number<\/label>\n                            <input type=\"text\" name=\"order_number\" autocomplete=\"off\" required \/>\n                            <div class=\"bm-wf-field-error\" hidden><\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- \u8054\u7cfb\u65b9\u5f0f\u548c\u8bbe\u5907\u4fe1\u606f\u4ece\u7cfb\u7edf\u81ea\u52a8\u8bc6\u522b\uff0c\u4e0d\u518d\u8981\u6c42\u7528\u6237\u586b\u5199 -->\n\n                <div class=\"bm-wf-actions\">\n                                        <div class=\"bm-wf-actions-guest-only\">\n                        <button type=\"submit\" class=\"bm-wf-btn bm-wf-btn-submit\">SUBMIT<\/button>\n                    <\/div>\n                                    <\/div>\n\n                                <div class=\"bm-wf-message\" style=\"display:none;\"><\/div>\n            <\/form>\n\n            <div class=\"bm-wf-modal-layer\" id=\"bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals\" aria-hidden=\"true\" hidden>\n                <div class=\"bm-wf-modal-backdrop\"><\/div>\n\n                <div class=\"bm-wf-modal bm-wf-modal-success\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-success-title\">\n                    <button type=\"button\" class=\"bm-wf-modal-close\" aria-label=\"Close\">&times;<\/button>\n                    <div class=\"bm-wf-modal-icon bm-wf-icon-success\">\n                        <svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.5\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg>\n                    <\/div>\n                    <h2 class=\"bm-wf-modal-title\" id=\"bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-success-title\">Submission Successful<\/h2>\n                    <p class=\"bm-wf-modal-sub bm-wf-success-default-sub\">Warranty card has been activated, confirmation email will sent in 2-3 days in your inbox!<\/p>\n                    <div class=\"bm-wf-duplicate-info\" hidden>\n                        <p class=\"bm-wf-modal-sub bm-wf-duplicate-lead\">You have already registered a warranty with this order number.<\/p>\n                        <p class=\"bm-wf-duplicate-meta\"><strong>Order number:<\/strong> <span class=\"bm-wf-duplicate-order\"><\/span><\/p>\n                        <p class=\"bm-wf-duplicate-meta\"><strong>Warranty valid until:<\/strong> <span class=\"bm-wf-duplicate-expiry\"><\/span><\/p>\n                        <p class=\"bm-wf-duplicate-note bm-wf-modal-sub\"><\/p>\n                    <\/div>\n                    <div class=\"bm-wf-feedback-block\">\n                    <p class=\"bm-wf-feedback-q\">How was your experience?<\/p>\n                    <p class=\"bm-wf-feedback-hint\">Your feedback helps us improve \u2014 it takes just one tap.<\/p>\n                    <div class=\"bm-wf-faces\" role=\"radiogroup\" aria-label=\"Experience rating\">\n                        <button type=\"button\" class=\"bm-wf-face bm-wf-face-negative\" data-rating-key=\"negative\" data-label=\"Not great\" aria-label=\"Not great\"><\/button>\n                        <button type=\"button\" class=\"bm-wf-face bm-wf-face-neutral\" data-rating-key=\"neutral\" data-label=\"Okay\" aria-label=\"Okay\"><\/button>\n                        <button type=\"button\" class=\"bm-wf-face bm-wf-face-positive\" data-rating-key=\"positive\" data-label=\"Love it!\" aria-label=\"Love it!\"><\/button>\n                    <\/div>\n                    <p class=\"bm-wf-face-label\" aria-live=\"polite\"><\/p>\n                    <button type=\"button\" id=\"bm-wf-btn-success-submit\" class=\"bm-wf-modal-primary bm-wf-success-submit\" disabled>Pick a face first<\/button>\n                    <\/div>\n                <\/div>\n\n                <div class=\"bm-wf-modal bm-wf-modal-feedback\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-feedback-title\" hidden>\n                    <button type=\"button\" class=\"bm-wf-modal-close\" aria-label=\"Close\">&times;<\/button>\n                    <h2 class=\"bm-wf-modal-title\" id=\"bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-feedback-title\">We're sorry to hear that<\/h2>\n                    <p class=\"bm-wf-modal-sub\">Tell us what went wrong \u2014 we read every message and will follow up if you'd like.<\/p>\n                    <textarea class=\"bm-wf-feedback-text\" rows=\"5\" placeholder=\"What could we do better?\"><\/textarea>\n                    <div class=\"bm-wf-feedback-actions\">\n                        <button type=\"button\" class=\"bm-wf-btn-secondary bm-wf-feedback-skip\">Skip<\/button>\n                        <button type=\"button\" id=\"bm-wf-btn-feedback-send\" class=\"bm-wf-modal-primary bm-wf-feedback-send\">Send feedback<\/button>\n                    <\/div>\n                <\/div>\n\n                <div class=\"bm-wf-modal bm-wf-modal-final\" role=\"dialog\" aria-modal=\"true\" hidden>\n                    <button type=\"button\" class=\"bm-wf-modal-close\" aria-label=\"Close\">&times;<\/button>\n                    <div class=\"bm-wf-modal-icon bm-wf-icon-success\">\n                        <svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.5\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg>\n                    <\/div>\n                    <p class=\"bm-wf-final-text\"><\/p>\n                    <button type=\"button\" id=\"bm-wf-btn-final-ok\" class=\"bm-wf-modal-primary bm-wf-final-ok\">OK<\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <style>\n            \/* \u6781\u7b80\u6837\u5f0f\uff1a\u5c3d\u91cf\u8d34\u8fd1\u622a\u56fe\u7ed3\u6784\uff0c\u989c\u8272\u4f7f\u7528 CSS \u53d8\u91cf\uff0c\u81ea\u52a8\u8ddf\u968f Elementor \u5168\u5c40\u4e3b\u8272 *\/\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c.bm-warranty-form-wrap{\n                --bm-primary: var(--e-global-color-primary, #19b3a3);\n                --bm-dark: var(--e-global-color-secondary, #1f2937);\n                --bm-border: #e6e8eb;\n                --bm-muted: #6b7280;\n                --bm-success: #0f766e;\n                --bm-danger: #b91c1c;\n            }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-warranty-form { max-width: 100%; margin: 0 auto; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-title { font-size: 22px; font-weight: 700; margin: 18px 0 14px; color: var(--bm-primary); }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-title * { color: var(--bm-primary); }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-grid-single { grid-template-columns: 1fr; }\n            @media (max-width: 768px) { #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-grid { grid-template-columns: 1fr; } }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c label { display:block; font-size: 14px; margin-bottom: 8px; font-weight: 600; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c input, #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c select { width:100%; height:44px; border:1px solid var(--bm-border); border-radius:6px; padding: 0 12px; font-size: 14px; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-field.is-invalid input { border-color: var(--bm-danger); }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-field-error { display:block; color:var(--bm-danger); font-size:12px; margin-top:6px; line-height:1.45; white-space:pre-line; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-field-error[hidden] { display:none !important; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-help { font-size: 12px; color:var(--bm-muted); margin-top: 8px; line-height: 1.6; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-btn.is-loading { opacity: 0.75; pointer-events: none; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-actions { display:flex; gap: 18px; justify-content:center; margin-top: 22px; flex-wrap:wrap; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-actions-guest { display:flex; gap: 18px; justify-content:center; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-actions-logged-in,\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-actions-guest-only { justify-content:center; width:100%; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-actions-logged-in .bm-wf-btn,\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-actions-guest-only .bm-wf-btn { width:100%; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-btn { display:inline-flex; align-items:center; justify-content:center; height:48px; padding: 0 28px; border-radius: 6px; text-decoration:none; font-weight: 700; letter-spacing: .3px; border:0; cursor:pointer; font-size: 15px; }\n            @media (max-width: 768px) {\n                #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-actions-guest { flex-direction:column; width:100%; }\n                #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-actions-guest .bm-wf-btn { width:100%; }\n            }\n            \/* \u4ec5\u7535\u8111\u7aef\u52a0\u5927\u5b57\u53f7\uff1b\u624b\u673a\u7aef\u4fdd\u6301\u4e0a\u65b9\u9ed8\u8ba4\u503c *\/\n            @media (min-width: 769px) {\n                #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-title { font-size: 26px; margin: 20px 0 16px; }\n                #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c label { font-size: 16px; margin-bottom: 10px; }\n                #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c input,\n                #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c select { height: 48px; font-size: 16px; padding: 0 14px; }\n                #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-field-error { font-size: 13px; }\n                #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-help { font-size: 14px; }\n                #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-btn { height: 52px; font-size: 16px; padding: 0 32px; }\n                #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-footnote { font-size: 14px; }\n                #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-message { font-size: 16px; }\n            }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-btn-login { background:var(--bm-primary); color:#fff; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-btn-submit { background:var(--bm-dark); color:#fff; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-footnote { text-align:center; color:var(--bm-muted); font-size: 12px; margin-top: 10px; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c .bm-wf-message { margin-top: 14px; text-align:center; font-size: 14px; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals { --bm-accent:var(--e-global-color-primary,#1dafa1); --bm-danger:#ef4444; --bm-danger-dark:#dc2626; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-modal-backdrop { position:fixed; inset:0; background:rgba(15,23,42,.45); z-index:99998; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-modal { position:fixed; left:50%; top:50%; transform:translate(-50%,-50%); z-index:99999; width:min(420px,calc(100vw - 32px)); background:#fff; border-radius:16px; padding:28px 24px 24px; box-shadow:0 24px 60px rgba(0,0,0,.18); text-align:center; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-modal-close { position:absolute; top:14px; right:16px; border:0; background:transparent; font-size:22px; line-height:1; color:#9ca3af; cursor:pointer; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-modal-icon { width:56px; height:56px; border-radius:50%; margin:0 auto 16px; display:flex; align-items:center; justify-content:center; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-icon-success { background:#00b42a; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-icon-error { background:var(--bm-danger); }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-modal-title { margin:0 0 10px; font-size:22px; font-weight:700; color:#111827; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-modal-sub { margin:0 0 18px; color:#6b7280; font-size:14px; line-height:1.55; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-duplicate-info { margin:0 0 18px; text-align:center; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-duplicate-meta { margin:0 0 8px; color:#374151; font-size:14px; line-height:1.55; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-duplicate-note { margin:12px 0 0; color:#6b7280; font-size:13px; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-feedback-block .bm-wf-feedback-q { margin:0; font-size:16px; font-weight:600; color:#111827; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-feedback-q { margin:0; font-size:16px; font-weight:600; color:#111827; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-feedback-hint { margin:6px 0 16px; font-size:13px; color:#9ca3af; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-faces { display:flex; justify-content:center; gap:32px; margin-bottom:12px; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face { position:relative; width:72px; height:72px; border-radius:16px; border:2px solid transparent; background:transparent; padding:0; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; transition:background .15s ease,transform .15s ease,color .15s ease; color:#9ca3af; font-size:0; line-height:0; overflow:visible; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face::before { content:\"\"; display:block; width:44px; height:44px; flex-shrink:0; background-color:currentColor; transition:transform .15s ease; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center; -webkit-mask-size:contain; mask-size:contain; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face-negative::before { -webkit-mask-image:url(\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cpath%20d%3D%22M16%2016s-1.5-2-4-2-4%202-4%202%22%2F%3E%3Cpath%20d%3D%22M7.5%208%2010%209%22%2F%3E%3Cpath%20d%3D%22m14%209%202.5-1%22%2F%3E%3Cline%20x1%3D%229%22%20x2%3D%229.01%22%20y1%3D%2210%22%20y2%3D%2210%22%2F%3E%3Cline%20x1%3D%2215%22%20x2%3D%2215.01%22%20y1%3D%2210%22%20y2%3D%2210%22%2F%3E%3C%2Fsvg%3E\"); mask-image:url(\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cpath%20d%3D%22M16%2016s-1.5-2-4-2-4%202-4%202%22%2F%3E%3Cpath%20d%3D%22M7.5%208%2010%209%22%2F%3E%3Cpath%20d%3D%22m14%209%202.5-1%22%2F%3E%3Cline%20x1%3D%229%22%20x2%3D%229.01%22%20y1%3D%2210%22%20y2%3D%2210%22%2F%3E%3Cline%20x1%3D%2215%22%20x2%3D%2215.01%22%20y1%3D%2210%22%20y2%3D%2210%22%2F%3E%3C%2Fsvg%3E\"); }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face-neutral::before { -webkit-mask-image:url(\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cline%20x1%3D%228%22%20x2%3D%2216%22%20y1%3D%2215%22%20y2%3D%2215%22%2F%3E%3Cline%20x1%3D%229%22%20x2%3D%229.01%22%20y1%3D%229%22%20y2%3D%229%22%2F%3E%3Cline%20x1%3D%2215%22%20x2%3D%2215.01%22%20y1%3D%229%22%20y2%3D%229%22%2F%3E%3C%2Fsvg%3E\"); mask-image:url(\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cline%20x1%3D%228%22%20x2%3D%2216%22%20y1%3D%2215%22%20y2%3D%2215%22%2F%3E%3Cline%20x1%3D%229%22%20x2%3D%229.01%22%20y1%3D%229%22%20y2%3D%229%22%2F%3E%3Cline%20x1%3D%2215%22%20x2%3D%2215.01%22%20y1%3D%229%22%20y2%3D%229%22%2F%3E%3C%2Fsvg%3E\"); }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face-positive::before { -webkit-mask-image:url(\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cpath%20d%3D%22M18%2013a6%206%200%200%201-6%205%206%206%200%200%201-6-5h12Z%22%2F%3E%3Cline%20x1%3D%229%22%20x2%3D%229.01%22%20y1%3D%229%22%20y2%3D%229%22%2F%3E%3Cline%20x1%3D%2215%22%20x2%3D%2215.01%22%20y1%3D%229%22%20y2%3D%229%22%2F%3E%3C%2Fsvg%3E\"); mask-image:url(\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cpath%20d%3D%22M18%2013a6%206%200%200%201-6%205%206%206%200%200%201-6-5h12Z%22%2F%3E%3Cline%20x1%3D%229%22%20x2%3D%229.01%22%20y1%3D%229%22%20y2%3D%229%22%2F%3E%3Cline%20x1%3D%2215%22%20x2%3D%2215.01%22%20y1%3D%229%22%20y2%3D%229%22%2F%3E%3C%2Fsvg%3E\"); }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face > * { display:none !important; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face-negative:hover,\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face-negative.is-selected { border-color:transparent; background:rgba(239,68,68,.14); color:#ef4444; transform:scale(1.08); }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face-neutral:hover,\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face-neutral.is-selected { border-color:transparent; background:rgba(234,179,8,.16); color:#ca8a04; transform:scale(1.08); }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face-positive:hover,\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face-positive.is-selected { border-color:transparent; background:rgba(22,163,74,.14); color:#16a34a; transform:scale(1.08); }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face-negative:hover:active,\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face-neutral:hover:active,\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face-positive:hover:active,\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face-negative.is-selected:active,\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face-neutral.is-selected:active,\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face-positive.is-selected:active { transform:scale(1.05); }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face:active { transform:scale(1.04); }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face:hover::before,\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face.is-selected::before { transform:scale(1.12); }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face:hover:active::before,\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face.is-selected:active::before { transform:scale(1.08); }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face:active::before { transform:scale(1.06); }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-face-label { min-height:22px; margin:0 0 16px; font-size:15px; font-weight:600; color:#374151; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-modal-primary { width:100%; height:48px; border:0; border-radius:999px; color:#fff; font-size:15px; font-weight:700; cursor:pointer; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals #bm-wf-btn-success-submit,\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals #bm-wf-btn-feedback-send,\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals #bm-wf-btn-final-ok { background:var(--e-global-color-primary,var(--bm-accent)); }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-modal-primary:disabled { background:#d1d5db; color:#fff; cursor:default; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals #bm-wf-btn-success-submit:not(:disabled):hover,\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals #bm-wf-btn-feedback-send:not(:disabled):hover,\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals #bm-wf-btn-final-ok:not(:disabled):hover { filter:brightness(0.92); }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-modal-primary.bm-wf-btn-danger { background:var(--bm-danger); }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-modal-primary.bm-wf-btn-danger:not(:disabled):hover { background:var(--bm-danger-dark); filter:none; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-modal-feedback { text-align:left; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-feedback-text { width:100%; border:1px solid #dbeafe; border-radius:12px; padding:12px 14px; font-size:14px; resize:vertical; min-height:120px; box-sizing:border-box; margin:12px 0 18px; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-feedback-actions { display:flex; justify-content:flex-end; gap:10px; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-btn-secondary { height:42px; min-width:88px; padding:0 18px; border-radius:999px; border:1px solid #d1d5db; background:#fff; color:#374151; font-size:14px; cursor:pointer; font-weight:600; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-btn-secondary:hover { background:#f9fafb; border-color:#9ca3af; color:#111827; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-feedback-actions .bm-wf-modal-primary { width:auto; padding:0 20px; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals .bm-wf-final-text { margin:0 0 20px; font-size:16px; line-height:1.6; color:#374151; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals[aria-hidden=\"false\"] { display:block; }\n            #bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals[aria-hidden=\"true\"] { display:none; }\n        <\/style>\n\n        <script>\n            (function(){\n                const root = document.getElementById(\"bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c\");\n                if (!root) return;\n                const form = root.querySelector('form');\n                const msg  = root.querySelector('.bm-wf-message');\n                const submitButtons = root.querySelectorAll('.bm-wf-btn-submit');\n                const modalLayer = document.getElementById(\"bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-modals\");\n\n                const DRAFT_KEY = 'bm_warranty_form_draft_' + \"bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c\";\n\n                function saveDraft(){\n                    if (!form) return;\n                    try {\n                        const fd = new FormData(form);\n                        sessionStorage.setItem(DRAFT_KEY, JSON.stringify({\n                            name: (fd.get('name') || '').toString(),\n                            email: (fd.get('email') || '').toString(),\n                            order_number: (fd.get('order_number') || '').toString()\n                        }));\n                    } catch (e) {}\n                }\n\n                function restoreDraft(){\n                    if (!form) return;\n                    try {\n                        const raw = sessionStorage.getItem(DRAFT_KEY);\n                        if (!raw) return;\n                        const draft = JSON.parse(raw);\n                        if (draft.name && form.querySelector('[name=\"name\"]')) form.querySelector('[name=\"name\"]').value = draft.name;\n                        if (draft.email && form.querySelector('[name=\"email\"]')) form.querySelector('[name=\"email\"]').value = draft.email;\n                        if (draft.order_number && form.querySelector('[name=\"order_number\"]')) form.querySelector('[name=\"order_number\"]').value = draft.order_number;\n                    } catch (e) {}\n                }\n\n                function clearDraft(){\n                    try { sessionStorage.removeItem(DRAFT_KEY); } catch (e) {}\n                }\n\n                if (form) {\n                    form.addEventListener('input', saveDraft);\n                    form.addEventListener('change', saveDraft);\n                    restoreDraft();\n                }\n\n                root.querySelectorAll('.bm-open-auth-modal').forEach(function(btn){\n                    btn.addEventListener('click', function(){\n                        saveDraft();\n                        const emailVal = (form && form.querySelector('[name=\"email\"]') && form.querySelector('[name=\"email\"]').value || '').trim();\n                        const loginLog = document.getElementById('bm-login-log');\n                        if (emailVal && loginLog && !loginLog.value.trim()) {\n                            loginLog.value = emailVal;\n                        }\n                    });\n                });\n                const modalSuccess = modalLayer ? modalLayer.querySelector('.bm-wf-modal-success') : null;\n                const modalFeedback = modalLayer ? modalLayer.querySelector('.bm-wf-modal-feedback') : null;\n                const modalFinal = modalLayer ? modalLayer.querySelector('.bm-wf-modal-final') : null;\n                const faceButtons = modalLayer ? modalLayer.querySelectorAll('.bm-wf-face') : [];\n                const faceLabel = modalLayer ? modalLayer.querySelector('.bm-wf-face-label') : null;\n                const successSubmit = modalLayer ? modalLayer.querySelector('.bm-wf-success-submit') : null;\n                const feedbackText = modalLayer ? modalLayer.querySelector('.bm-wf-feedback-text') : null;\n                const successTitle = modalSuccess ? modalSuccess.querySelector('#bm-warranty-form-d18dd007-47d8-4443-9fa4-c4f13b53645c-success-title') : null;\n                const successDefaultSub = modalSuccess ? modalSuccess.querySelector('.bm-wf-success-default-sub') : null;\n                const duplicateInfo = modalSuccess ? modalSuccess.querySelector('.bm-wf-duplicate-info') : null;\n                const duplicateOrder = modalSuccess ? modalSuccess.querySelector('.bm-wf-duplicate-order') : null;\n                const duplicateExpiry = modalSuccess ? modalSuccess.querySelector('.bm-wf-duplicate-expiry') : null;\n                const duplicateNote = modalSuccess ? modalSuccess.querySelector('.bm-wf-duplicate-note') : null;\n                const feedbackBlock = modalSuccess ? modalSuccess.querySelector('.bm-wf-feedback-block') : null;\n\n                const RATING_BY_KEY = {\"negative\":\"\\ud83d\\ude1e\",\"neutral\":\"\\ud83d\\ude10\",\"positive\":\"\\ud83d\\ude0a\"};\n                const RATING_POS = RATING_BY_KEY.positive;\n                const MSG_SKIP = 'Submission successful! We have received your warranty information.';\n                const MSG_IMPROVE = \"Thank you! We'll use your feedback to improve.\";\n                const MSG_LOVE = 'Thanks for the love! Your feedback means the world to us.';\n                const DEFAULT_SUCCESS_TITLE = 'Submission Successful';\n                const DEFAULT_SUCCESS_SUB = 'Warranty card has been activated, confirmation email will sent in 2-3 days in your inbox!';\n                const DUPLICATE_TITLE = 'Warranty Already Registered';\n                const DUPLICATE_NOTE_WITHIN_3MIN = 'Your previous submission was received. No duplicate record was created.';\n                const DUPLICATE_NOTE_AFTER_3MIN = 'We have recorded your submission again.';\n\n                let pendingWarrantyId = null;\n                let selectedRating = null;\n                let successOkOnly = false;\n\n                function faceKeyForBtn(btn) {\n                    const key = btn.getAttribute('data-rating-key');\n                    if (key) return key;\n                    if (btn.classList.contains('bm-wf-face-negative')) return 'negative';\n                    if (btn.classList.contains('bm-wf-face-neutral')) return 'neutral';\n                    if (btn.classList.contains('bm-wf-face-positive')) return 'positive';\n                    return null;\n                }\n\n                faceButtons.forEach(function(btn){\n                    btn.textContent = '';\n                    btn.innerHTML = '';\n                });\n\n                function showMessage(text, ok){\n                    msg.style.display = 'block';\n                    msg.textContent = text;\n                    msg.style.color = ok ? getComputedStyle(root).getPropertyValue('--bm-success') || '#0f766e' : getComputedStyle(root).getPropertyValue('--bm-danger') || '#b91c1c';\n                }\n\n                function clearFieldErrors(){\n                    root.querySelectorAll('.bm-wf-field-error').forEach(function(el){\n                        el.textContent = '';\n                        el.hidden = true;\n                    });\n                    root.querySelectorAll('.bm-wf-field.is-invalid').forEach(function(el){\n                        el.classList.remove('is-invalid');\n                    });\n                }\n\n                function showFieldError(fieldName, text){\n                    const input = form.querySelector('[name=\"' + fieldName + '\"]');\n                    const wrap = input ? input.closest('.bm-wf-field') : null;\n                    const err = wrap ? wrap.querySelector('.bm-wf-field-error') : null;\n                    if (wrap) wrap.classList.add('is-invalid');\n                    if (err) {\n                        err.textContent = text;\n                        err.hidden = false;\n                    }\n                    if (input) input.focus();\n                }\n\n                function isValidEmail(value){\n                    return \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(String(value || '').trim());\n                }\n\n                \/**\n                 * TikTok\uff1a18 \u4f4d\u7eaf\u6570\u5b57\uff1bAmazon\uff1a3-7-7 \u6216 17 \u4f4d\u7eaf\u6570\u5b57\uff08\u5165\u5e93\u81ea\u52a8\u52a0\u6a2a\u6760\uff09\n                 *\/\n                function isValidOrderNumber(value){\n                    const v = String(value || '').trim();\n                    if (\/^\\d{18}$\/.test(v)) return true;\n                    if (\/^\\d{3}-\\d{7}-\\d{7}$\/.test(v)) return true;\n                    if (\/^\\d{17}$\/.test(v)) return true;\n                    return false;\n                }\n\n                const ORDER_NUMBER_FORMAT_HINT =\n                    'TikTok Order Number Format: 576123456789123456\\nAmazon Order Number Format: 404-1234567-1234567';\n\n                function normalizeServerMessage(raw){\n                    const text = String(raw || '').trim();\n                    if (!text) return 'Submission failed. Please try again.';\n                    if (text.indexOf('TikTok Order Number Format') !== -1 || text.indexOf('Amazon Order Number Format') !== -1) {\n                        return ORDER_NUMBER_FORMAT_HINT;\n                    }\n                    const map = {\n                        '\u65e0\u6548\u7684\u90ae\u7bb1\u5730\u5740': 'Please enter a valid email address.',\n                        '\u7f3a\u5c11\u5fc5\u586b\u7684\u4fdd\u4fee\u4fe1\u606f\uff1aorder_number': 'Please enter your order number.',\n                        '\u521b\u5efa\u4fdd\u4fee\u8bb0\u5f55\u5931\u8d25': 'Submission failed. Please try again.',\n                        '\u521b\u5efa\u5ba2\u6237\u5931\u8d25': 'Submission failed. Please try again.',\n                        '\u66f4\u65b0\u5ba2\u6237\u5931\u8d25': 'Submission failed. Please try again.'\n                    };\n                    if (map[text]) return map[text];\n                    for (const key in map) {\n                        if (text.indexOf(key) !== -1) return map[key];\n                    }\n                    return text;\n                }\n\n                function setSubmitting(active){\n                    submitButtons.forEach(function(btn){\n                        if (active) {\n                            btn.classList.add('is-loading');\n                            btn.disabled = true;\n                            if (!btn.dataset.bmLabel) btn.dataset.bmLabel = btn.textContent;\n                            btn.textContent = 'Submitting\u2026';\n                        } else {\n                            btn.classList.remove('is-loading');\n                            btn.disabled = false;\n                            if (btn.dataset.bmLabel) btn.textContent = btn.dataset.bmLabel;\n                        }\n                    });\n                }\n\n                let formSubmitLock = false;\n\n                document.addEventListener('bm-auth-login-success', function(){\n                    showMessage('Signed in successfully. You can submit your warranty now.', true);\n                });\n\n                function openModalLayer(){\n                    if (!modalLayer) return;\n                    modalLayer.hidden = false;\n                    modalLayer.setAttribute('aria-hidden', 'false');\n                    document.body.style.overflow = 'hidden';\n                }\n\n                function resetSuccessModalContent(){\n                    successOkOnly = false;\n                    if (successTitle) successTitle.textContent = DEFAULT_SUCCESS_TITLE;\n                    if (successDefaultSub) successDefaultSub.hidden = false;\n                    if (duplicateInfo) duplicateInfo.hidden = true;\n                    if (duplicateOrder) duplicateOrder.textContent = '';\n                    if (duplicateExpiry) duplicateExpiry.textContent = '';\n                    if (duplicateNote) duplicateNote.textContent = '';\n                    if (feedbackBlock) feedbackBlock.hidden = false;\n                    selectedRating = null;\n                    faceButtons.forEach(function(btn){ btn.classList.remove('is-selected'); });\n                    if (faceLabel) faceLabel.textContent = '';\n                    if (successSubmit) {\n                        successSubmit.disabled = true;\n                        successSubmit.textContent = 'Pick a face first';\n                    }\n                    if (feedbackText) feedbackText.value = '';\n                }\n\n                function closeModalLayer(){\n                    if (!modalLayer) return;\n                    modalLayer.hidden = true;\n                    modalLayer.setAttribute('aria-hidden', 'true');\n                    document.body.style.overflow = '';\n                    pendingWarrantyId = null;\n                    if (modalSuccess) modalSuccess.hidden = false;\n                    if (modalFeedback) modalFeedback.hidden = true;\n                    if (modalFinal) modalFinal.hidden = true;\n                    resetSuccessModalContent();\n                }\n\n                function showPanel(panel){\n                    if (modalSuccess) modalSuccess.hidden = panel !== 'success';\n                    if (modalFeedback) modalFeedback.hidden = panel !== 'feedback';\n                    if (modalFinal) modalFinal.hidden = panel !== 'final';\n                }\n\n                function showFinalMessage(text){\n                    const finalText = modalLayer ? modalLayer.querySelector('.bm-wf-final-text') : null;\n                    if (finalText) finalText.textContent = text;\n                    showPanel('final');\n                }\n\n                async function submitFeedback(rating, feedback){\n                    if (!pendingWarrantyId || !rating) return { ok: true };\n                    try {\n                        const res = await fetch(\"https:\\\/\\\/www.circliotech.com\\\/fr\\\/wp-json\\\/bm\\\/v1\\\/warranty\\\/feedback\", {\n                            method: 'POST',\n                            headers: { 'Content-Type': 'application\/json' },\n                            body: JSON.stringify({\n                                warranty_id: pendingWarrantyId,\n                                experience_rating: rating,\n                                experience_feedback: feedback || ''\n                            }),\n                            credentials: 'same-origin'\n                        });\n                        const data = await res.json().catch(function(){ return {}; });\n                        return { ok: res.ok && data && data.success === true };\n                    } catch (e) {\n                        return { ok: false };\n                    }\n                }\n\n                function openSuccessModal(payload){\n                    const data = payload && typeof payload === 'object' ? payload : { warranty_id: payload };\n                    resetSuccessModalContent();\n                    pendingWarrantyId = data.warranty_id || null;\n\n                    if (data.already_registered) {\n                        if (successTitle) successTitle.textContent = DUPLICATE_TITLE;\n                        if (successDefaultSub) successDefaultSub.hidden = true;\n                        if (duplicateInfo) {\n                            duplicateInfo.hidden = false;\n                            if (duplicateOrder) duplicateOrder.textContent = data.order_number || '\u2014';\n                            if (duplicateExpiry) duplicateExpiry.textContent = data.end_date_display || data.end_date || '\u2014';\n                            if (duplicateNote) {\n                                duplicateNote.textContent = data.duplicate_within_3min\n                                    ? DUPLICATE_NOTE_WITHIN_3MIN\n                                    : DUPLICATE_NOTE_AFTER_3MIN;\n                            }\n                        }\n                        if (data.duplicate_within_3min) {\n                            successOkOnly = true;\n                            if (feedbackBlock) feedbackBlock.hidden = true;\n                            if (successSubmit) {\n                                successSubmit.disabled = false;\n                                successSubmit.textContent = 'OK';\n                            }\n                        }\n                    }\n\n                    openModalLayer();\n                    showPanel('success');\n                }\n\n                faceButtons.forEach(function(btn){\n                    btn.addEventListener('click', function(){\n                        const key = faceKeyForBtn(btn);\n                        selectedRating = key ? (RATING_BY_KEY[key] || null) : null;\n                        faceButtons.forEach(function(b){ b.classList.remove('is-selected'); });\n                        btn.classList.add('is-selected');\n                        if (faceLabel) faceLabel.textContent = btn.getAttribute('data-label') || '';\n                        if (successSubmit) {\n                            successSubmit.disabled = false;\n                            successSubmit.textContent = 'Submit';\n                        }\n                    });\n                });\n\n                if (successSubmit) {\n                    successSubmit.addEventListener('click', async function(){\n                        if (successOkOnly) {\n                            closeModalLayer();\n                            return;\n                        }\n                        if (!selectedRating) return;\n                        if (selectedRating === RATING_POS) {\n                            await submitFeedback(selectedRating, '');\n                            showFinalMessage(MSG_LOVE);\n                            return;\n                        }\n                        showPanel('feedback');\n                    });\n                }\n\n                modalLayer && modalLayer.querySelector('.bm-wf-feedback-send') && modalLayer.querySelector('.bm-wf-feedback-send').addEventListener('click', async function(){\n                    const text = feedbackText ? feedbackText.value.trim() : '';\n                    await submitFeedback(selectedRating, text);\n                    showFinalMessage(MSG_IMPROVE);\n                });\n\n                modalLayer && modalLayer.querySelector('.bm-wf-feedback-skip') && modalLayer.querySelector('.bm-wf-feedback-skip').addEventListener('click', async function(){\n                    await submitFeedback(selectedRating, '');\n                    showFinalMessage(MSG_SKIP);\n                });\n\n                modalLayer && modalLayer.querySelector('.bm-wf-final-ok') && modalLayer.querySelector('.bm-wf-final-ok').addEventListener('click', closeModalLayer);\n\n                modalLayer && modalLayer.querySelectorAll('.bm-wf-modal-close').forEach(function(btn){\n                    btn.addEventListener('click', async function(){\n                        if (modalFinal && !modalFinal.hidden) {\n                            closeModalLayer();\n                            return;\n                        }\n                        if (modalFeedback && !modalFeedback.hidden) {\n                            await submitFeedback(selectedRating, '');\n                            showFinalMessage(MSG_SKIP);\n                            return;\n                        }\n                        showFinalMessage(MSG_SKIP);\n                    });\n                });\n\n                form.addEventListener('submit', async function(e){\n                    e.preventDefault();\n                    if (formSubmitLock) {\n                        return;\n                    }\n                    msg.style.display = 'none';\n                    clearFieldErrors();\n\n                    const fd = new FormData(form);\n                    const email = (fd.get('email') || '').toString().trim();\n                    const order = (fd.get('order_number') || '').toString().trim();\n                    const name  = (fd.get('name') || '').toString().trim();\n\n                    if (!email) {\n                        showFieldError('email', 'Please enter your email address.');\n                        return;\n                    }\n                    if (!isValidEmail(email)) {\n                        showFieldError('email', 'Please enter a valid email address.');\n                        return;\n                    }\n                    if (!order) {\n                        showFieldError('order_number', 'Please enter your order number.');\n                        return;\n                    }\n                    if (!isValidOrderNumber(order)) {\n                        showFieldError('order_number', ORDER_NUMBER_FORMAT_HINT);\n                        return;\n                    }\n\n                    const payload = {\n                        email: email,\n                        name: name,\n                        order_number: order,\n                        site_domain: (window.location && window.location.host) ? window.location.host : ''\n                    };\n\n                    formSubmitLock = true;\n                    setSubmitting(true);\n                    try{\n                        const res = await fetch(\"https:\\\/\\\/www.circliotech.com\\\/fr\\\/wp-json\\\/bm\\\/v1\\\/warranty\", {\n                            method: 'POST',\n                            headers: { 'Content-Type': 'application\/json' },\n                            body: JSON.stringify(payload),\n                            credentials: 'same-origin'\n                        });\n\n                        const data = await res.json().catch(function(){ return {}; });\n                        if (!res.ok || !data || data.success !== true) {\n                            const errRaw = (data && data.message) ? data.message : '';\n                            const err = normalizeServerMessage(errRaw);\n                            if (errRaw.indexOf('email') !== -1 || errRaw.indexOf('\u90ae\u7bb1') !== -1) {\n                                showFieldError('email', err);\n                            } else if (errRaw.indexOf('order') !== -1 || errRaw.indexOf('\u8ba2\u5355') !== -1) {\n                                showFieldError('order_number', err);\n                            } else {\n                                showMessage(err, false);\n                            }\n                            return;\n                        }\n\n                        form.reset();\n                        clearDraft();\n                        if (data.warranty_id && modalLayer) {\n                            openSuccessModal(data);\n                        } else {\n                            showMessage(MSG_SKIP, true);\n                        }\n                    }catch(err){\n                        showMessage('Network error. Please try again.', false);\n                    } finally {\n                        formSubmitLock = false;\n                        setSubmitting(false);\n                    }\n                });\n            })();\n        <\/script>\n        <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Register Your Product Register your device to get up to 2+1 years of warrantyGet 3 years of HEPA filter supply [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-9","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.circliotech.com\/fr\/wp-json\/wp\/v2\/pages\/9","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.circliotech.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.circliotech.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.circliotech.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.circliotech.com\/fr\/wp-json\/wp\/v2\/comments?post=9"}],"version-history":[{"count":127,"href":"https:\/\/www.circliotech.com\/fr\/wp-json\/wp\/v2\/pages\/9\/revisions"}],"predecessor-version":[{"id":212,"href":"https:\/\/www.circliotech.com\/fr\/wp-json\/wp\/v2\/pages\/9\/revisions\/212"}],"wp:attachment":[{"href":"https:\/\/www.circliotech.com\/fr\/wp-json\/wp\/v2\/media?parent=9"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}