{"id":7501,"date":"2025-03-26T18:21:54","date_gmt":"2025-03-26T10:21:54","guid":{"rendered":"https:\/\/jimveo.com\/?page_id=7501"},"modified":"2026-05-21T14:50:40","modified_gmt":"2026-05-21T06:50:40","slug":"3year-warranty","status":"publish","type":"page","link":"https:\/\/jimveo.com\/ja\/3year-warranty\/","title":{"rendered":"3year-warranty"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"7501\" class=\"elementor elementor-7501\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-47bf201 e-flex e-con-boxed e-con e-parent\" data-id=\"47bf201\" 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-090dca5 elementor-widget elementor-widget-heading\" data-id=\"090dca5\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.21.0 - 08-05-2024 *\/\n.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}<\/style><h2 class=\"elementor-heading-title elementor-size-default\">3\u5e74\u9593\u306e\u4fdd\u8a3c\u3092\u30a2\u30af\u30c6\u30a3\u30d6\u306b\u3057\u307e\u3059\uff01<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f90fb76 elementor-widget elementor-widget-heading\" data-id=\"f90fb76\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">\u5fc3\u914d\u305b\u305a\u306bJimveo\u30d7\u30ed\u30b8\u30a7\u30af\u30bf\u30fc\u3092\u304a\u697d\u3057\u307f\u304f\u3060\u3055\u3044\uff01<\/h5>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0990b7f e-con-full e-flex e-con e-child\" data-id=\"0990b7f\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-96ad52c e-con-full e-flex e-con e-child\" data-id=\"96ad52c\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-07bcb93 elementor-widget elementor-widget-image\" data-id=\"07bcb93\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.21.0 - 08-05-2024 *\/\n.elementor-widget-image{text-align:center}.elementor-widget-image a{display:inline-block}.elementor-widget-image a img[src$=\".svg\"]{width:48px}.elementor-widget-image img{vertical-align:middle;display:inline-block}<\/style>\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1200\" height=\"1200\" src=\"https:\/\/jimveo.com\/wp-content\/uploads\/2025\/03\/relaxing-13-1200x1200.webp\" class=\"attachment-large size-large wp-image-7503\" alt=\"\" srcset=\"\/\/jimveo.com\/wp-content\/uploads\/2025\/03\/relaxing-13-1200x1200.webp 1200w, \/\/jimveo.com\/wp-content\/uploads\/2025\/03\/relaxing-13-500x500.webp 500w, \/\/jimveo.com\/wp-content\/uploads\/2025\/03\/relaxing-13-300x300.webp 300w, \/\/jimveo.com\/wp-content\/uploads\/2025\/03\/relaxing-13-768x768.webp 768w, \/\/jimveo.com\/wp-content\/uploads\/2025\/03\/relaxing-13-1536x1536.webp 1536w, \/\/jimveo.com\/wp-content\/uploads\/2025\/03\/relaxing-13-12x12.webp 12w, \/\/jimveo.com\/wp-content\/uploads\/2025\/03\/relaxing-13.webp 1563w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\t\t\t\t\t\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-e75e50e e-con-full e-flex e-con e-child\" data-id=\"e75e50e\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-79bbc55 elementor-widget elementor-widget-html\" data-id=\"79bbc55\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Warranty Activation<\/title>\n<style>\n  :root {\n    --wf-border: #d9d9d9;\n    --wf-label: #1f2937;\n    --wf-sub: #6b7280;\n    --wf-muted: #9ca3af;\n    --wf-error: #dc2626;\n    --wf-ok: #16a34a;\n    --wf-btn: #ef4d48;\n    --wf-btn-disabled: #d1d5db;\n    --wf-star: #d4d4d4;\n    --wf-star-active: #fbbf24;\n    --wf-asterisk: #ef4d48;\n    --wf-upload-bg: #f9fafb;\n    --wf-card-sel: #ef4d48;\n    --wf-link: #1677ff;\n    --wf-info-bg: #eff6ff;\n    --wf-info-bd: #bfdbfe;\n    --wf-warn-bg: #fef3c7;\n    --wf-warn-bd: #fde68a;\n    \/* \u5706\u89d2 3 \u7ea7 *\/\n    --wf-r: 8px; --wf-r2: 12px; --wf-r3: 14px;\n    \/* \u9634\u5f71 3 \u7ea7 *\/\n    --wf-sh-sm: 0 1px 2px rgba(15,23,42,.04);\n    --wf-sh-md: 0 1px 2px rgba(15,23,42,.04), 0 8px 24px rgba(15,23,42,.08);\n    --wf-sh-lg: 0 1px 2px rgba(15,23,42,.04), 0 8px 24px rgba(15,23,42,.08), 0 24px 48px rgba(15,23,42,.06);\n    \/* \u5b57\u53f7\u68af\u5ea6 *\/\n    --wf-fs-xs: 12px; --wf-fs-sm: 13px; --wf-fs-base: 14.5px; --wf-fs-md: 15px; --wf-fs-lg: 17px;\n    \/* \u4f4e\u9971\u548c\u5ea6\u76d2\u5b50\u8272 *\/\n    --wf-box-info-bg: #f0f7ff;  --wf-box-info-tx: #1e3a8a;\n    --wf-box-warn-bg: #fff8ed;  --wf-box-warn-tx: #78350f;\n    --wf-box-ok-bg:   #f0fdf4;  --wf-box-ok-tx:   #166534;\n  }\n  @keyframes wf-fadeUp { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }\n  @keyframes wf-fadeIn { from { opacity: 0; } to { opacity: 1; } }\n  @keyframes wf-pop { 0% { transform: scale(.92); opacity: 0; } 60% { transform: scale(1.04); } 100% { transform: scale(1); opacity: 1; } }\n  @keyframes wf-stagger { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }\n  .wf-wrap { max-width: 820px; margin: 0 auto; padding: 24px 16px; font-family: -apple-system, sans-serif, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif; color: #111827; position: relative; }\n  .wf-wrap *, .wf-wrap *::before, .wf-wrap *::after { box-sizing: border-box; }\n  .wf-wrap [hidden] { display: none !important; }\n\n  .wf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; }\n  .wf-col-span-2 { grid-column: span 2; }\n  .wf-field { display: flex; flex-direction: column; }\n  .wf-field label { font-weight: 700; font-size: 15px; color: var(--wf-label); margin-bottom: 8px; }\n  .wf-field .req { color: var(--wf-asterisk); }\n\n  .wf-wrap .wf-field input[type=\"text\"],\n  .wf-wrap .wf-field input[type=\"email\"],\n  .wf-wrap .wf-field input[type=\"tel\"],\n  .wf-wrap .wf-field input[type=\"number\"] {\n    box-sizing: border-box !important;\n    width: 100% !important;\n    height: 46px !important;\n    padding: 0 14px !important;\n    border: 1.5px solid var(--wf-border) !important;\n    border-radius: 10px !important;\n    font-size: 15px !important;\n    font-family: -apple-system, sans-serif, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif !important;\n    color: #111827 !important;\n    background: #fff !important;\n    outline: none !important;\n    box-shadow: none !important;\n    transition: border-color .2s ease, box-shadow .2s ease !important;\n  }\n  .wf-wrap .wf-field input[type=\"text\"]:hover,\n  .wf-wrap .wf-field input[type=\"email\"]:hover,\n  .wf-wrap .wf-field input[type=\"tel\"]:hover,\n  .wf-wrap .wf-field input[type=\"number\"]:hover { border-color: #cbd5e1 !important; }\n  .wf-wrap .wf-field input[type=\"text\"]:focus,\n  .wf-wrap .wf-field input[type=\"email\"]:focus,\n  .wf-wrap .wf-field input[type=\"tel\"]:focus,\n  .wf-wrap .wf-field input[type=\"number\"]:focus {\n    border-color: var(--wf-btn) !important;\n    box-shadow: 0 0 0 4px rgba(239, 77, 72, 0.12) !important;\n  }\n  .wf-wrap .wf-field textarea {\n    box-sizing: border-box !important;\n    width: 100% !important;\n    min-height: 130px !important;\n    padding: 10px 12px !important;\n    border: 1px solid var(--wf-border) !important;\n    border-radius: 8px !important;\n    font: 15px -apple-system, sans-serif, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif !important;\n    color: #111827 !important;\n    background: #fff !important;\n    outline: none !important;\n    box-shadow: none !important;\n    resize: vertical !important;\n  }\n  .wf-wrap .wf-field select {\n    box-sizing: border-box !important;\n    width: 100% !important;\n    height: 44px !important;\n    padding: 0 12px !important;\n    border: 1px solid var(--wf-border) !important;\n    border-radius: 8px !important;\n    font-size: 15px !important;\n    color: #111827 !important;\n    background: #fff !important;\n    outline: none !important;\n    box-shadow: none !important;\n    cursor: pointer !important;\n    appearance: menulist !important;\n  }\n  .wf-wrap .wf-field input::placeholder,\n  .wf-wrap .wf-field textarea::placeholder { color: var(--wf-muted) !important; opacity: 1 !important; }\n  .wf-wrap .wf-field input:focus,\n  .wf-wrap .wf-field textarea:focus,\n  .wf-wrap .wf-field select:focus {\n    border-color: #6b7280 !important;\n    box-shadow: 0 0 0 3px rgba(107,114,128,.12) !important;\n  }\n  .wf-wrap .wf-field input.wf-invalid,\n  .wf-wrap .wf-field textarea.wf-invalid,\n  .wf-wrap .wf-field select.wf-invalid { border-color: var(--wf-error) !important; }\n\n  \/* \u8ba2\u5355\u53f7 mask overlay (\u540c warranty-form) *\/\n  .wf-wrap .wf-field .wf-mask { position: relative !important; }\n  .wf-wrap .wf-field .wf-mask .wf-mask-input {\n    font-family: \"SF Mono\", Menlo, Consolas, monospace !important;\n    letter-spacing: 1px !important;\n    background: transparent !important;\n    position: relative !important;\n    z-index: 1 !important;\n  }\n  .wf-wrap .wf-field .wf-mask .wf-mask-overlay {\n    position: absolute !important;\n    top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;\n    padding: 0 13px !important;\n    display: flex !important;\n    align-items: center !important;\n    font: 15px \"SF Mono\", Menlo, Consolas, monospace !important;\n    letter-spacing: 1px !important;\n    white-space: pre !important;\n    pointer-events: none !important;\n    z-index: 0 !important;\n    border: 1px solid transparent !important;\n    border-radius: 8px !important;\n    margin: 0 !important;\n  }\n  .wf-wrap .wf-field .wf-mask .wf-mask-spacer { color: transparent !important; }\n  .wf-wrap .wf-field .wf-mask .wf-mask-tail { color: var(--wf-muted) !important; }\n\n  .wf-hint { min-height: 18px; font-size: 13px; margin-top: 4px; color: var(--wf-error); }\n  .wf-helper-link { margin-top: 4px; font-size: 13px; line-height: 1.2; }\n  .wf-helper-link a { color: var(--wf-sub); text-decoration: underline; }\n  .wf-helper-link a:hover { color: var(--wf-btn); }\n  .wf-counter { font-size: 12px; color: var(--wf-sub); margin-top: 4px; text-align: right; }\n  .wf-counter.short { color: var(--wf-error); }\n\n  \/* \u661f\u7ea7\u8bc4\u5206 *\/\n  .wf-stars { display: inline-flex; gap: 6px; margin-top: 4px; }\n  .wf-star { cursor: pointer; width: 32px; height: 32px; color: var(--wf-star); transition: color .15s ease, transform .15s ease; display: inline-block; }\n  .wf-star.active { color: var(--wf-star-active); }\n  .wf-star:hover { transform: scale(1.1); }\n\n  \/* Willing review Y\/N \u6309\u94ae\u7ec4 *\/\n  .wp-yn { display: flex; gap: 12px; margin-top: 8px; }\n  .wp-yn-btn {\n    flex: 1; max-width: 200px;\n    height: 44px; padding: 0 16px;\n    border: 1.5px solid var(--wf-border);\n    border-radius: 8px;\n    background: #fff; color: var(--wf-label);\n    font-size: 15px; font-weight: 600; cursor: pointer;\n    transition: border-color .15s ease, background .15s ease;\n  }\n  .wp-yn-btn:hover { border-color: var(--wf-btn); }\n  .wp-yn-btn.sel { border-color: var(--wf-btn); background: #fff1f0; color: var(--wf-btn); }\n\n  \/* \u793c\u7269\u7f51\u683c *\/\n  .wp-gifts { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; margin-top: 10px; }\n  .wp-gift-card {\n    border: 2px solid var(--wf-border);\n    border-radius: 10px;\n    padding: 14px 10px;\n    text-align: center;\n    cursor: pointer;\n    background: #fff;\n    transition: border-color .15s ease, background .15s ease;\n    min-height: 140px;\n    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;\n  }\n  .wp-gift-card:hover { border-color: var(--wf-btn); }\n  .wp-gift-card.sel { border-color: var(--wf-btn); background: #fff8f8; }\n  .wp-gift-card img { width: 72px; height: 72px; object-fit: contain; }\n  .wp-gift-card .wp-gift-name { font-size: 13px; font-weight: 600; color: var(--wf-label); line-height: 1.3; }\n  .wp-gift-card .wp-no-interest-icon { font-size: 44px; color: var(--wf-muted); line-height: 1; }\n\n  \/* \u652f\u4ed8\u65b9\u5f0f\u7f51\u683c *\/\n  .wp-pay-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; margin-top: 8px; }\n  .wp-pay-card {\n    border: 1.5px solid var(--wf-border);\n    border-radius: 10px;\n    padding: 12px 8px;\n    text-align: center;\n    cursor: pointer;\n    background: #fff;\n    transition: all .15s ease;\n    display: flex; flex-direction: column; align-items: center; gap: 6px;\n  }\n  .wp-pay-card:hover { border-color: var(--wf-btn); }\n  .wp-pay-card.sel { border-color: var(--wf-btn); background: #fff8f8; }\n  .wp-pay-card .wp-pay-icon { width: 40px; height: 40px; }\n  .wp-pay-card .wp-pay-label { font-size: 13px; font-weight: 600; }\n\n  \/* \u6536\u6b3e\u65b9\u5f0f\u76f8\u5173\u63d0\u793a\u6846\uff1a\u900f\u660e\u8fb9\u6846 + 3D \u9634\u5f71 + \u6de1\u84dd\u5e95 + \u5c45\u4e2d *\/\n  .wp-box, .wp-pay-privacy {\n    margin-top: 12px;\n    padding: 12px 14px;\n    border-radius: 12px;\n    border: 1px solid transparent;\n    background: #f0f7ff;\n    color: #1e3a8a;\n    font-size: 13px;\n    line-height: 1.65;\n    text-align: center;\n    box-shadow:\n      0 1px 2px rgba(15, 23, 42, 0.04),\n      0 6px 16px rgba(15, 23, 42, 0.06),\n      0 16px 32px rgba(15, 23, 42, 0.05);\n  }\n  .wp-box p, .wp-pay-privacy p { margin: 0; }\n  .wp-box .wp-box-i { display: none; }\n  .wp-box-warn { color: #1e3a8a; background: #f0f7ff; }\n  .wp-box-ok   { color: #1e3a8a; background: #f0f7ff; }\n  .wp-visa-text { font-size: 13px; line-height: 1.65; color: #1e3a8a; margin: 0; }\n  .wp-visa-text a { color: var(--wf-link); font-weight: 600; text-decoration: none; }\n  .wp-visa-text a:hover { text-decoration: underline; }\n  \/* Visa \u89c6\u9891\u533a\u57df\uff1a\u72ec\u7acb\u3001\u65e0\u5e95\u8272\u3001\u65e0\u8fb9\u6846 *\/\n  .wp-visa-video-wrap { margin-top: 14px; background: transparent; padding: 0; }\n  .wp-visa-heading { font-size: 14px; font-weight: 700; color: #0f172a; margin: 0 0 10px; text-align: center; }\n  .wp-visa-video { width: 100%; border-radius: 8px; border: 1px solid #e5e7eb; background: #000; display: block; }\n  .wp-s3-actions { display: flex; gap: 12px; align-items: center; }\n  .wp-s3-actions .wf-submit { flex: 1; }\n  .wp-back-btn {\n    padding: 14px 22px; border-radius: 10px; font-size: 15px; font-weight: 600;\n    background: #f3f4f6; color: #374151; border: 1px solid #d1d5db; cursor: pointer;\n    transition: background 0.15s, border-color 0.15s;\n  }\n  .wp-back-btn:hover { background: #e5e7eb; border-color: #9ca3af; }\n\n  \/* \u591a\u56fe\u4e0a\u4f20 (\u5ba2\u8bc9\u5206\u652f,\u6cbf\u7528 ticket) *\/\n  .wf-upload-area { display: flex; flex-direction: column; gap: 10px; }\n  .wf-attach-tip {\n    font-size: 13px; color: #475569;\n    margin-bottom: 12px;\n    line-height: 1.5;\n    padding: 10px 14px;\n    background: #fff5f5;\n    border-left: 3px solid var(--wf-btn);\n    border-radius: 6px;\n  }\n  .wf-dropzone {\n    border: 2px dashed #cbd5e1 !important;\n    border-radius: 12px !important;\n    padding: 28px 20px !important;\n    background: #f8fafc !important;\n    transition: border-color .2s ease, background .2s ease !important;\n    cursor: pointer !important;\n    text-align: center !important;\n  }\n  .wf-dropzone:hover, .wf-dropzone.drag-over {\n    border-color: var(--wf-btn) !important;\n    background: #fff5f5 !important;\n  }\n  .wf-dropzone.has-files { padding: 16px !important; text-align: left !important; }\n  .wf-dropzone-icon {\n    width: 40px; height: 40px;\n    margin: 0 auto 10px;\n    color: #94a3b8;\n    display: block;\n  }\n  .wf-dropzone:hover .wf-dropzone-icon,\n  .wf-dropzone.drag-over .wf-dropzone-icon { color: var(--wf-btn); }\n  .wf-dropzone-text { font-size: 14px; color: #475569; line-height: 1.5; }\n  .wf-dropzone-text strong { color: #0f172a; font-weight: 600; }\n  .wf-dropzone-with-files { display: flex; flex-direction: column; gap: 10px; }\n  \/* Step 3: \u622a\u56fe\u4e0a\u4f20 + \u793a\u4f8b\u5e76\u5217 *\/\n  .wp-step3-intro {\n    margin: 0 0 24px;\n    padding: 14px 18px;\n    background: #f0f7ff;\n    border: 1px solid transparent;\n    border-radius: 12px;\n    color: #1e3a8a;\n    font-size: 13.5px;\n    line-height: 1.65;\n    text-align: center;\n    box-shadow:\n      0 1px 2px rgba(15, 23, 42, 0.04),\n      0 6px 16px rgba(15, 23, 42, 0.06),\n      0 16px 32px rgba(15, 23, 42, 0.05);\n  }\n  .wp-screenshot-split {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 20px;\n    align-items: stretch;\n  }\n  @media (max-width: 640px) {\n    .wp-screenshot-split { grid-template-columns: 1fr; }\n  }\n  \/* FB \u6a21\u5f0f\uff1a\u4e0a\u4f20\u533a\u5c45\u4e2d\u5355\u5217 *\/\n  .wp-screenshot-split.fb-mode {\n    grid-template-columns: 1fr;\n    max-width: 420px;\n    margin: 0 auto;\n  }\n  \/* FB \u6a21\u5f0f 3 \u6b65\u6307\u5f15\uff08SVG \u5361\u7247\uff09 *\/\n  .wp-fb-steps {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 14px;\n    margin: 16px 0 8px;\n  }\n  .wp-fb-step {\n    background: #fafafa;\n    border: 1px solid var(--wf-border);\n    border-radius: 10px;\n    padding: 12px 10px 14px;\n    display: flex; flex-direction: column; align-items: center;\n    position: relative;\n  }\n  .wp-fb-step-num {\n    position: absolute;\n    top: -10px; left: 50%; transform: translateX(-50%);\n    width: 22px; height: 22px; border-radius: 50%;\n    background: #64748b; color: #fff;\n    display: flex; align-items: center; justify-content: center;\n    font-size: 12px; font-weight: 700;\n  }\n  .wp-fb-step svg {\n    width: 100%; max-width: 180px; height: auto; display: block;\n  }\n  .wp-fb-step-caption {\n    margin-top: 8px;\n    font-size: 12.5px;\n    color: var(--wf-sub);\n    text-align: center;\n    line-height: 1.4;\n  }\n  .wp-fb-reminder {\n    text-align: center;\n    font-size: 13px;\n    color: var(--wf-sub);\n    margin: 6px 0 16px;\n  }\n  @media (max-width: 640px) {\n    .wp-fb-steps { grid-template-columns: 1fr; gap: 22px; }\n  }\n  .wp-screenshot-example {\n    border: 1px solid var(--wf-border);\n    border-radius: 12px;\n    background: #fff;\n    padding: 14px;\n    display: flex; flex-direction: column; gap: 10px;\n    align-items: center; justify-content: center;\n    box-shadow: var(--wf-sh-sm);\n  }\n  .wp-screenshot-example .wp-ex-label { font-size: 12px; color: var(--wf-sub); text-transform: uppercase; letter-spacing: 0.08em; font-weight: 600; }\n  .wp-screenshot-example svg { max-width: 100%; height: auto; }\n  .wp-thumbs { display: flex; flex-wrap: wrap; gap: 10px; }\n  .wf-thumb {\n    position: relative;\n    width: 90px; height: 90px;\n    border: 1px solid var(--wf-border);\n    border-radius: 8px;\n    overflow: hidden;\n    background: var(--wf-upload-bg);\n    display: flex; align-items: center; justify-content: center;\n  }\n  .wf-thumb img { width: 100%; height: 100%; object-fit: cover; }\n  .wf-thumb .wf-thumb-del {\n    position: absolute; top: 4px; right: 4px;\n    width: 22px; height: 22px;\n    border-radius: 50%; border: 0;\n    background: rgba(17,24,39,.7); color: #fff;\n    font-size: 14px; line-height: 1; font-weight: 700;\n    cursor: pointer; display: flex; align-items: center; justify-content: center;\n    padding: 0;\n  }\n  .wf-thumb .wf-thumb-del:hover { background: rgba(17,24,39,.9); }\n  .wf-thumb.uploading::after { content: ''; position: absolute; inset: 0; background: rgba(255,255,255,.6); }\n  .wf-thumb.uploading::before {\n    content: ''; position: absolute;\n    top: 50%; left: 50%; width: 24px; height: 24px;\n    border: 3px solid rgba(239,77,72,.3);\n    border-top-color: var(--wf-btn);\n    border-radius: 50%;\n    transform: translate(-50%,-50%);\n    animation: wf-spin .8s linear infinite;\n    z-index: 2;\n  }\n  .wf-thumb.failed { border-color: var(--wf-error); }\n  .wf-thumb.failed::after {\n    content: '!'; position: absolute; inset: 0;\n    color: var(--wf-error); font-size: 28px; font-weight: 700;\n    display: flex; align-items: center; justify-content: center;\n    background: rgba(254,242,242,.85);\n  }\n  @keyframes wf-spin { to { transform: translate(-50%,-50%) rotate(360deg); } }\n\n  .wf-add-btn {\n    align-self: flex-start;\n    height: 40px; padding: 0 16px;\n    border: 1px dashed var(--wf-border);\n    border-radius: 8px;\n    background: #fff; color: var(--wf-label);\n    font-size: 14px; font-weight: 600; cursor: pointer;\n    transition: border-color .15s ease, background .15s ease;\n  }\n  .wf-add-btn:hover { border-color: var(--wf-btn); color: var(--wf-btn); }\n  .wf-add-btn:disabled { opacity: .5; cursor: not-allowed; }\n  .wf-upload-hint { font-size: 12px; color: var(--wf-sub); }\n  .wf-upload-hint.err { color: var(--wf-error); }\n\n  \/* \u5355\u56fe\u4e0a\u4f20 (Step 3) *\/\n  .wp-upload-single {\n    border: 2px dashed var(--wf-border);\n    border-radius: 10px;\n    padding: 32px 16px;\n    text-align: center;\n    cursor: pointer;\n    background: var(--wf-upload-bg);\n    transition: border-color .15s ease;\n  }\n  .wp-upload-single:hover { border-color: var(--wf-btn); }\n  .wp-upload-single.has { border-style: solid; padding: 16px; }\n  .wp-upload-single .wp-up-icon { font-size: 36px; color: var(--wf-muted); line-height: 1; }\n  .wp-upload-single .wp-up-text { margin-top: 8px; font-size: 14px; color: var(--wf-sub); }\n  .wp-upload-single .wp-up-preview { width: 100%; max-height: 280px; object-fit: contain; border-radius: 6px; }\n  .wp-upload-single.checking, .wp-upload-single.failed { position: relative; }\n  .wp-upload-single .wp-up-status { margin-top: 10px; font-size: 13px; font-weight: 600; }\n  .wp-upload-single.checking .wp-up-status { color: var(--wf-sub); }\n  .wp-upload-single.passed .wp-up-status { color: var(--wf-ok); }\n  .wp-upload-single.failed .wp-up-status { color: var(--wf-error); }\n  .wp-spinner {\n    display: inline-block; width: 14px; height: 14px;\n    border: 2px solid var(--wf-border); border-top-color: var(--wf-btn);\n    border-radius: 50%; animation: wf-spin .8s linear infinite;\n    vertical-align: middle; margin-right: 6px;\n  }\n  .wp-ai-progress-track {\n    width: 100%; height: 6px; background: #e5e7eb;\n    border-radius: 999px; overflow: hidden; margin: 10px 0 8px;\n  }\n  .wp-ai-progress-fill {\n    height: 100%;\n    background: linear-gradient(90deg, #3b82f6, #60a5fa);\n    width: 0%; transition: width 0.9s ease-out;\n  }\n  .wp-ai-progress-text {\n    font-size: 13px; color: #475569; text-align: center; line-height: 1.6;\n  }\n  .wp-ai-progress-text .wp-ai-pct { font-weight: 700; color: #1e3a8a; }\n\n  \/* Write a Review \u6309\u94ae *\/\n  .wp-review-btn {\n    display: inline-block;\n    padding: 12px 28px;\n    background: var(--wf-link);\n    color: #fff !important;\n    border-radius: 8px;\n    font-weight: 700;\n    font-size: 15px;\n    text-decoration: none;\n    transition: background .15s ease;\n  }\n  .wp-review-btn:hover { background: #0e5fd9; }\n\n  \/* Step \u6807\u9898\u548c\u63cf\u8ff0 *\/\n  .wp-step-title { font-size: 16px; font-weight: 700; color: var(--wf-label); margin: 0 0 12px; font-family: inherit; letter-spacing: 0.01em; }\n  .wp-step-sub { font-size: var(--wf-fs-sm); color: var(--wf-sub); margin: 0 0 16px; line-height: 1.6; }\n\n  \/* Step \u5207\u6362\u6de1\u5165\u52a8\u753b *\/\n  [id^=\"wp-step\"][id$=\"-root\"]:not([hidden]),\n  #wp-thanks:not([hidden]) { animation: wf-fadeUp .35s ease-out both; }\n  \/* \u793c\u7269\/\u4ed8\u6b3e\u5361 staggered \u51fa\u73b0 *\/\n  .wp-gift-card, .wp-pay-card { animation: wf-stagger .28s ease-out both; transition: transform .18s ease-out, box-shadow .18s ease-out, border-color .15s; }\n  .wp-gift-card:hover, .wp-pay-card:hover { transform: translateY(-2px); box-shadow: var(--wf-sh-md); }\n  .wp-gift-card.sel, .wp-pay-card.sel { box-shadow: var(--wf-sh-md); }\n  \/* AI passed \u2705 \u5f39\u51fa *\/\n  .wp-upload-single.passed .wp-up-status { animation: wf-pop .4s cubic-bezier(.34,1.56,.64,1) both; }\n\n  .wp-section { margin-top: 20px; padding-top: 16px; border-top: 1px solid #f3f4f6; }\n\n  \/* \u793c\u7269\u786e\u8ba4\u6587\u6848 (\u7528 wp-box \u98ce\u683c) *\/\n  .wp-gift-confirm {\n    animation: wf-fadeUp .35s ease-out both;\n    margin-top: 20px;\n    padding: 16px 24px;\n    border-radius: 14px;\n    border: 1px solid transparent;\n    background: #f0f7ff;\n    color: #1e3a8a;\n    text-align: center;\n    font-size: 14.5px;\n    font-weight: 600;\n    line-height: 1.65;\n    box-shadow:\n      0 1px 2px rgba(15, 23, 42, 0.04),\n      0 8px 24px rgba(15, 23, 42, 0.08),\n      0 24px 48px rgba(15, 23, 42, 0.06);\n  }\n\n  \/* \u63d0\u4ea4\u6309\u94ae *\/\n  .wf-submit-wrap { margin-top: 28px; display: flex; justify-content: center; }\n  .wf-submit {\n    width: 50%;\n    min-width: 200px;\n    height: 56px;\n    border: 0; border-radius: 8px;\n    background: var(--wf-btn-disabled);\n    color: #fff;\n    font-size: 20px;\n    font-weight: 700;\n    letter-spacing: .3px;\n    cursor: not-allowed;\n    transition: background-color .15s ease;\n  }\n  .wf-submit.enabled { background: var(--wf-btn); cursor: pointer; }\n  .wf-submit.enabled:hover { background: #d94340; }\n\n  .wf-global-error { margin-top: 16px; color: var(--wf-error); font-size: 14px; background: #fef2f2; border: 1px solid #fecaca; border-radius: 8px; padding: 10px 14px; }\n  .wf-global-error ul { margin: 4px 0 0 18px; padding: 0; }\n\n  .wf-thanks { text-align: center; padding: 48px 16px; }\n  .wf-thanks svg { width: 64px; height: 64px; color: var(--wf-ok); }\n  .wf-thanks h2 { margin: 16px 0 8px; font-size: 24px; }\n  .wf-thanks p { color: var(--wf-sub); max-width: 560px; margin: 0 auto; line-height: 1.6; }\n\n  @media (max-width: 640px) {\n    .wf-grid { grid-template-columns: 1fr; }\n    .wf-col-span-2 { grid-column: span 1; }\n    .wf-submit { width: 85%; }\n    .wp-gifts { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }\n    .wp-pay-grid { grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); }\n  }\n<\/style>\n<\/head>\n<body>\n<div class=\"wf-wrap\">\n  <!-- Honeypot (\u673a\u5668\u4eba\u9677\u9631) -->\n  <input type=\"text\" name=\"hp_website\" id=\"wp-hp\" tabindex=\"-1\" autocomplete=\"off\" aria-hidden=\"true\"\n    style=\"position:absolute !important;left:-9999px !important;width:1px !important;height:1px !important;opacity:0 !important;pointer-events:none !important\">\n\n  <!-- ===== Step 1: \u8ba2\u5355\u53f7 + \u90ae\u7bb1 + \u59d3\u540d ===== -->\n  <div id=\"wp-step1-root\" class=\"wp-step\">\n    <div class=\"wf-grid\">\n      <div class=\"wf-field wf-col-span-2\">\n        <label>\n          <span data-t=\"orderNumber\">Order Number<\/span> <span class=\"req\">*<\/span>\n        <\/label>\n        <div class=\"wf-mask\">\n          <input type=\"text\" id=\"wp-order\" class=\"wf-mask-input\" inputmode=\"numeric\" maxlength=\"19\" autocomplete=\"off\" spellcheck=\"false\">\n          <div class=\"wf-mask-overlay\" aria-hidden=\"true\"><span class=\"wf-mask-spacer\" id=\"wp-mask-spacer\"><\/span><span class=\"wf-mask-tail\" id=\"wp-mask-tail\">XXX-XXXXXXX-XXXXXXX<\/span><\/div>\n        <\/div>\n        <div class=\"wf-helper-link\">\n          <a id=\"wp-find-order\" href=\"#\" target=\"_blank\" rel=\"noopener\" data-t=\"findOrder\">How to find my order number?<\/a>\n        <\/div>\n        <div class=\"wf-hint\" id=\"wp-order-hint\"><\/div>\n      <\/div>\n      <div class=\"wf-field\">\n        <label>\n          <span data-t=\"email\">\u96fb\u5b50\u30e1\u30a4\u30eb<\/span> <span class=\"req\">*<\/span>\n        <\/label>\n        <input type=\"email\" name=\"email\" id=\"wp-email\" autocomplete=\"email\">\n        <div class=\"wf-hint\" id=\"wp-email-hint\"><\/div>\n      <\/div>\n      <div class=\"wf-field\">\n        <label>\n          <span data-t=\"name\">\u540d<\/span> <span class=\"req\">*<\/span>\n        <\/label>\n        <input type=\"text\" name=\"name\" id=\"wp-name\" maxlength=\"50\" autocomplete=\"name\">\n        <div class=\"wf-hint\" id=\"wp-name-hint\"><\/div>\n      <\/div>\n    <\/div>\n    <div class=\"wf-global-error\" id=\"wp-s1-error\" hidden><\/div>\n    <div class=\"wf-submit-wrap\">\n      <button type=\"button\" class=\"wf-submit\" id=\"wp-s1-btn\" disabled data-t=\"btnNext\">\u6b21\u3078<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- ===== Step 2: expectations + \u5206\u652f ===== -->\n  <div id=\"wp-step2-root\" class=\"wp-step\" hidden>\n    <div class=\"wf-grid\">\n      <div class=\"wf-field wf-col-span-2\">\n        <label>\n          <span data-t=\"expectationsLabel\">Does it meet your expectations?<\/span> <span class=\"req\">*<\/span>\n        <\/label>\n        <select id=\"wp-exp\">\n          <option value=\"\" data-t=\"expPick\">Please select...<\/option>\n          <option value=\"works_well\" data-t=\"expYes\">Yes, it works well<\/option>\n          <option value=\"issue\" data-t=\"expNo\">No, there are some issues<\/option>\n          <option value=\"not_used\" data-t=\"expNotUse\">Not used yet<\/option>\n        <\/select>\n      <\/div>\n    <\/div>\n\n    <!-- Complaint \u5206\u652f: textarea + \u591a\u56fe\u4e0a\u4f20 -->\n    <div id=\"wp-complaint\" class=\"wp-section\" hidden>\n      <div class=\"wf-field wf-col-span-2\">\n        <label>\n          <span data-t=\"complaintLabel\">Describe your issue<\/span> <span class=\"req\">*<\/span>\n        <\/label>\n        <textarea id=\"wp-content\" maxlength=\"5000\" rows=\"5\"><\/textarea>\n        <div class=\"wf-counter\" id=\"wp-content-counter\">0 \/ 20 min<\/div>\n      <\/div>\n      <div class=\"wf-field wf-col-span-2\" style=\"margin-top: 14px\">\n        <label data-t=\"attachLabel\">Attach images (optional, up to 5)<\/label>\n        <div class=\"wf-attach-tip\" data-t=\"attachTip\">If you have relevant photos, adding them helps us diagnose the issue faster.<\/div>\n        <div class=\"wf-dropzone\" id=\"wp-dropzone\">\n          <div class=\"wf-thumbs\" id=\"wp-thumbs\"><\/div>\n          <div class=\"wf-dropzone-empty\" id=\"wp-dropzone-empty\">\n            <svg class=\"wf-dropzone-icon\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewbox=\"0 0 24 24\" stroke-width=\"1.6\" stroke=\"currentColor\">\n              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M2.25 15.75l5.159-5.159a2.25 2.25 0 013.182 0l5.159 5.159m-1.5-1.5l1.409-1.409a2.25 2.25 0 013.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 001.5-1.5V6a1.5 1.5 0 00-1.5-1.5H3.75A1.5 1.5 0 002.25 6v12a1.5 1.5 0 001.5 1.5zm10.5-11.25h.008v.008h-.008V8.25zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z\" \/>\n            <\/svg>\n            <div class=\"wf-dropzone-text\">\n              <strong data-t=\"dropzoneClick\">Click to upload<\/strong> <span data-t=\"dropzoneOrDrag\">or drag and drop<\/span><br>\n              <span data-t=\"attachHintDefault\">Max 5 images, up to 10 MB each.<\/span>\n            <\/div>\n          <\/div>\n          <div class=\"wf-dropzone-with-files\" id=\"wp-dropzone-with-files\" hidden>\n            <button type=\"button\" class=\"wf-add-btn\" id=\"wp-add-img\" data-t=\"addImage\">+ Add image<\/button>\n            <div class=\"wf-upload-hint\" id=\"wp-upload-hint\" data-t=\"attachHintDefault\">Max 5 images, up to 10 MB each.<\/div>\n          <\/div>\n          <input type=\"file\" id=\"wp-file-input\" accept=\"image\/*\" multiple hidden>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- Rating \u5206\u652f -->\n    <div id=\"wp-rating-sec\" class=\"wp-section\" hidden>\n      <div class=\"wf-field\">\n        <label>\n          <span data-t=\"ratingLabel\">How do you feel about our product?<\/span> <span class=\"req\">*<\/span>\n        <\/label>\n        <div class=\"wf-stars\" id=\"wp-stars\" role=\"radiogroup\" aria-label=\"rating\"><\/div>\n      <\/div>\n      <!-- 1~3 \u661f\u5efa\u8bae\u6846 -->\n      <div class=\"wf-field\" id=\"wp-suggestion-sec\" style=\"margin-top:20px;\" hidden>\n        <label>\n          <span data-t=\"suggestionTitle\">Criticism is welcome. Your suggestion will help us do better.<\/span>\n        <\/label>\n        <textarea id=\"wp-suggestion\" maxlength=\"2000\" rows=\"4\" style=\"width:100%;padding:10px 12px;border:1px solid var(--wf-border);border-radius:8px;font:inherit;resize:vertical;\"><\/textarea>\n      <\/div>\n    <\/div>\n\n    <!-- Willing review (4-5\u2b50) -->\n    <div id=\"wp-willing-sec\" class=\"wp-section\" hidden>\n      <p class=\"wp-step-title\" data-t=\"willingTitle\">Would you leave a review on Amazon? We have surprises for you \ud83c\udf81<\/p>\n      <div class=\"wp-yn\">\n        <button type=\"button\" class=\"wp-yn-btn\" data-willing=\"yes\" data-t=\"willingYes\">Yes<\/button>\n        <button type=\"button\" class=\"wp-yn-btn\" data-willing=\"no\" data-t=\"willingNo\">No, thanks<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- \u793c\u7269 grid -->\n    <div id=\"wp-gifts-sec\" class=\"wp-section\" hidden>\n      <p class=\"wp-step-title\" data-t=\"giftsTitle\">Pick a surprise gift<\/p>\n      <div class=\"wp-gifts\" id=\"wp-gifts\"><\/div>\n    <\/div>\n\n    <!-- \u73b0\u91d1\u793c\u7269 \u2192 \u652f\u4ed8\u65b9\u5f0f -->\n    <div id=\"wp-pay-sec\" class=\"wp-section\" hidden>\n      <p class=\"wp-step-title\" data-t=\"paymentLabel\">Choose your refund method<\/p>\n      <div class=\"wp-pay-grid\" id=\"wp-pay-grid\"><\/div>\n\n      <!-- Paypal\/Venmo \u90ae\u7bb1 -->\n      <div id=\"wp-pay-email-field\" class=\"wf-field wf-col-span-2\" style=\"margin-top:14px\" hidden>\n        <label id=\"wp-pay-email-label\">PayPal Email <span class=\"req\">*<\/span><\/label>\n        <input type=\"email\" id=\"wp-pay-email\">\n        <div class=\"wf-hint\" id=\"wp-pay-email-hint\"><\/div>\n      <\/div>\n\n      <!-- \u793c\u54c1\u5361\u901a\u7528\u63d0\u793a (walmart\/rakuten) -->\n      <div id=\"wp-pay-card-msg\" class=\"wp-box wp-box-info\" style=\"margin-top:14px\" hidden>\n        <span class=\"wp-box-i\">\ud83d\udce7<\/span>\n        <p id=\"wp-pay-card-text\">We will send the gift card code and password to your email.<\/p>\n      <\/div>\n\n      <!-- Rakuten \u7a0e\u8b66\u544a -->\n      <div id=\"wp-pay-rakuten\" class=\"wp-box wp-box-warn\" style=\"margin-top:10px\" hidden>\n        <span class=\"wp-box-i\">\u26a0\ufe0f<\/span>\n        <p data-t=\"paymentRakutenWarn\">Note: Rakuten gift cards are subject to a 3% government tax when redeemed. This is not covered by us.<\/p>\n      <\/div>\n\n      <!-- Visa \u8bf4\u660e\uff08\u84dd\u8272\u63d0\u793a\u6846\uff09+ \u72ec\u7acb\u89c6\u9891\u533a\u57df\uff08\u65e0\u5e95\u8272\uff09 -->\n      <div id=\"wp-pay-visa\" hidden>\n        <div class=\"wp-box wp-box-info\">\n          <p class=\"wp-visa-text\" data-t=\"paymentVisaInfo\">You can use the Visa prepaid card across many platforms including amazon. It comes preloaded with balance.<br>We will send you the card number and password by mail.<\/p>\n        <\/div>\n        <div class=\"wp-visa-video-wrap\">\n          <h4 class=\"wp-visa-heading\" data-t=\"paymentVisaHeading\">How to Bind a VISA Prepaid Card to Amazon?<\/h4>\n          <video controls preload=\"metadata\" class=\"wp-visa-video\">\n            <source src=\"https:\/\/akx-images.s3.us-east-2.amazonaws.com\/visa-itv0f2.mp4\" type=\"video\/mp4\">\n          <\/video>\n        <\/div>\n      <\/div>\n\n      <!-- \u9690\u79c1\u4fdd\u62a4\u63d0\u793a\uff08\u9009\u4e86\u4ed8\u6b3e\u65b9\u5f0f\u540e\u663e\u793a\uff09 -->\n      <div id=\"wp-pay-privacy\" class=\"wp-pay-privacy\" hidden>\n        <p data-t=\"paymentPrivacy\">\ud83d\udd12 Privacy Protection: We do not store your payment information permanently. Please ensure all details are correct.<\/p>\n      <\/div>\n    <\/div>\n\n    <div id=\"wp-addr-sec\" class=\"wp-section\" hidden>\n      <p class=\"wp-step-title\" data-t=\"addrLabel\">Shipping Information<\/p>\n      <div class=\"wf-grid\">\n        <div class=\"wf-field wf-col-span-2\">\n          <label><span data-t=\"addrAddress\">Detailed Address<\/span> <span class=\"req\">*<\/span><\/label>\n          <input type=\"text\" id=\"wp-addr-address\" autocomplete=\"street-address\">\n          <div class=\"wf-hint\" id=\"wp-addr-address-hint\"><\/div>\n        <\/div>\n        <div class=\"wf-field\">\n          <label><span data-t=\"addrCity\">\u5e02\u533a\u753a\u6751<\/span> <span class=\"req\">*<\/span><\/label>\n          <input type=\"text\" id=\"wp-addr-city\" autocomplete=\"address-level2\">\n          <div class=\"wf-hint\" id=\"wp-addr-city-hint\"><\/div>\n        <\/div>\n        <div class=\"wf-field\">\n          <label><span data-t=\"addrState\">State \/ Province<\/span> <span class=\"req\">*<\/span><\/label>\n          <input type=\"text\" id=\"wp-addr-state\" autocomplete=\"address-level1\">\n          <div class=\"wf-hint\" id=\"wp-addr-state-hint\"><\/div>\n        <\/div>\n        <div class=\"wf-field\">\n          <label><span data-t=\"addrPostCode\">Postal Code<\/span> <span class=\"req\">*<\/span><\/label>\n          <input type=\"text\" id=\"wp-addr-post\" autocomplete=\"postal-code\">\n          <div class=\"wf-hint\" id=\"wp-addr-post-hint\"><\/div>\n        <\/div>\n        <div class=\"wf-field\">\n          <label><span data-t=\"addrPhone\">\u96fb\u8a71<\/span><\/label>\n          <input type=\"tel\" id=\"wp-addr-phone\" autocomplete=\"tel\" inputmode=\"tel\" placeholder=\"+1 (555) 123-4567\">\n          <div class=\"wf-hint\" id=\"wp-addr-phone-hint\" data-t=\"addrPhoneHint\">Optional \u2014 recommended to reduce delivery issues.<\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"wf-global-error\" id=\"wp-s2-error\" hidden><\/div>\n    <div class=\"wf-submit-wrap\">\n      <button type=\"button\" class=\"wf-submit\" id=\"wp-s2-btn\" disabled data-t=\"btnActivate\">\u4eca\u3059\u3050\u6709\u52b9\u5316<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- ===== Step 3: \u5199\u8bc4\u8bba + \u4e0a\u4f20\u622a\u56fe ===== -->\n  <div id=\"wp-step3-root\" class=\"wp-step\" hidden>\n    <div class=\"wp-step3-intro\" id=\"wp-step3-intro\" data-t=\"step3Intro\">\ud83c\udf89 Almost there! Just 2 quick steps to claim your gift.<br>We will send your gift when finished!<\/div>\n\n    <p class=\"wp-step-title\" id=\"wp-step3-s1-title\" data-t=\"step3S1Title\">\u30b9\u30c6\u30c3\u30d71: \u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u30ec\u30d3\u30e5\u30fc\u3092\u66f8\u304d\u3001\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u3092\u64ae\u308a\u307e\u3059<\/p>\n    <p class=\"wp-step-sub\" id=\"wp-step3-s1-sub\" data-t=\"step3S1Sub\">Please take the screenshot before submitting your review and make sure your rating is visible so we can quickly confirm.<\/p>\n\n    <!-- FB \u6a21\u5f0f 3 \u6b65\u6307\u5f15\uff08\u4ec5 seller feedback \u8ba2\u5355\u663e\u793a\uff09 -->\n    <div id=\"wp-fb-guide\" hidden>\n      <div class=\"wp-fb-steps\">\n        <div class=\"wp-fb-step\">\n          <span class=\"wp-fb-step-num\">1<\/span>\n          <svg viewbox=\"0 0 200 130\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" role=\"img\" aria-label=\"Find order and tap Leave Seller Feedback\">\n            <rect x=\"5\" y=\"10\" width=\"190\" height=\"100\" rx=\"8\" fill=\"#fff\" stroke=\"#d1d5db\"\/>\n            <rect x=\"15\" y=\"30\" width=\"45\" height=\"55\" rx=\"4\" fill=\"#f3f4f6\" stroke=\"#d1d5db\"\/>\n            <path d=\"M25 58 L25 76 Q25 79 28 79 L47 79 Q50 79 50 76 L50 58 Z\" fill=\"#a7f3d0\"\/>\n            <path d=\"M30 58 Q30 48 37.5 48 Q45 48 45 58\" fill=\"none\" stroke=\"#065f46\" stroke-width=\"1.5\"\/>\n            <rect x=\"70\" y=\"30\" width=\"110\" height=\"4\" rx=\"2\" fill=\"#e5e7eb\"\/>\n            <rect x=\"70\" y=\"40\" width=\"90\" height=\"4\" rx=\"2\" fill=\"#e5e7eb\"\/>\n            <rect x=\"70\" y=\"55\" width=\"110\" height=\"22\" rx=\"11\" fill=\"#14b8a6\"\/>\n            <text x=\"125\" y=\"70\" text-anchor=\"middle\" font-family=\"Arial, sans-serif\" font-size=\"9\" font-weight=\"600\" fill=\"#fff\">Leave Seller Feedback<\/text>\n            <path d=\"M155 72 L165 82 L160 84 L162 89 L158 90 L157 85 L152 87 Z\" fill=\"#1f2937\"\/>\n            <rect x=\"70\" y=\"88\" width=\"100\" height=\"4\" rx=\"2\" fill=\"#e5e7eb\"\/>\n          <\/svg>\n          <div class=\"wp-fb-step-caption\" data-t=\"fbGuideStep1\">Find your order, tap <b>Leave Seller Feedback<\/b><\/div>\n        <\/div>\n\n        <div class=\"wp-fb-step\">\n          <span class=\"wp-fb-step-num\">2<\/span>\n          <svg viewbox=\"0 0 200 130\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" role=\"img\" aria-label=\"Fill comment and take screenshot\">\n            <rect x=\"5\" y=\"10\" width=\"190\" height=\"100\" rx=\"8\" fill=\"#fff\" stroke=\"#d1d5db\"\/>\n            <g transform=\"translate(30, 22)\" fill=\"#fbbf24\">\n              <polygon points=\"14,0 17.3,8.3 26,9 19.5,14.7 21.5,23 14,18.5 6.5,23 8.5,14.7 2,9 10.7,8.3\"\/>\n              <polygon points=\"42,0 45.3,8.3 54,9 47.5,14.7 49.5,23 42,18.5 34.5,23 36.5,14.7 30,9 38.7,8.3\"\/>\n              <polygon points=\"70,0 73.3,8.3 82,9 75.5,14.7 77.5,23 70,18.5 62.5,23 64.5,14.7 58,9 66.7,8.3\"\/>\n              <polygon points=\"98,0 101.3,8.3 110,9 103.5,14.7 105.5,23 98,18.5 90.5,23 92.5,14.7 86,9 94.7,8.3\"\/>\n              <polygon points=\"126,0 129.3,8.3 138,9 131.5,14.7 133.5,23 126,18.5 118.5,23 120.5,14.7 114,9 122.7,8.3\"\/>\n            <\/g>\n            <rect x=\"20\" y=\"60\" width=\"160\" height=\"40\" rx=\"5\" fill=\"#f9fafb\" stroke=\"#d1d5db\"\/>\n            <rect x=\"28\" y=\"70\" width=\"100\" height=\"3\" rx=\"1.5\" fill=\"#9ca3af\"\/>\n            <rect x=\"28\" y=\"80\" width=\"70\" height=\"3\" rx=\"1.5\" fill=\"#e5e7eb\"\/>\n            <rect x=\"130\" y=\"66\" width=\"1.5\" height=\"14\" fill=\"#111827\">\n              <animate attributename=\"opacity\" values=\"1;0;1\" dur=\"1s\" repeatcount=\"indefinite\"\/>\n            <\/rect>\n          <\/svg>\n          <div class=\"wp-fb-step-caption\" data-t=\"fbGuideStep2\">Fill in a short comment<\/div>\n        <\/div>\n\n        <div class=\"wp-fb-step\">\n          <span class=\"wp-fb-step-num\">3<\/span>\n          <svg viewbox=\"0 0 200 130\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" role=\"img\" aria-label=\"Submit Feedback\">\n            <rect x=\"5\" y=\"10\" width=\"190\" height=\"100\" rx=\"8\" fill=\"#fff\" stroke=\"#d1d5db\"\/>\n            <g transform=\"translate(30, 18)\" fill=\"#fbbf24\">\n              <polygon points=\"14,0 17.3,8.3 26,9 19.5,14.7 21.5,23 14,18.5 6.5,23 8.5,14.7 2,9 10.7,8.3\"\/>\n              <polygon points=\"42,0 45.3,8.3 54,9 47.5,14.7 49.5,23 42,18.5 34.5,23 36.5,14.7 30,9 38.7,8.3\"\/>\n              <polygon points=\"70,0 73.3,8.3 82,9 75.5,14.7 77.5,23 70,18.5 62.5,23 64.5,14.7 58,9 66.7,8.3\"\/>\n              <polygon points=\"98,0 101.3,8.3 110,9 103.5,14.7 105.5,23 98,18.5 90.5,23 92.5,14.7 86,9 94.7,8.3\"\/>\n              <polygon points=\"126,0 129.3,8.3 138,9 131.5,14.7 133.5,23 126,18.5 118.5,23 120.5,14.7 114,9 122.7,8.3\"\/>\n            <\/g>\n            <rect x=\"20\" y=\"52\" width=\"160\" height=\"22\" rx=\"5\" fill=\"#f9fafb\" stroke=\"#d1d5db\"\/>\n            <rect x=\"28\" y=\"59\" width=\"140\" height=\"3\" rx=\"1.5\" fill=\"#9ca3af\"\/>\n            <rect x=\"28\" y=\"66\" width=\"100\" height=\"3\" rx=\"1.5\" fill=\"#9ca3af\"\/>\n            <rect x=\"55\" y=\"85\" width=\"90\" height=\"22\" rx=\"11\" fill=\"#fbbf24\"\/>\n            <text x=\"100\" y=\"100\" text-anchor=\"middle\" font-family=\"Arial, sans-serif\" font-size=\"10\" font-weight=\"700\" fill=\"#111827\">Submit Feedback<\/text>\n            <path d=\"M125 100 L135 110 L130 112 L132 117 L128 118 L127 113 L122 115 Z\" fill=\"#1f2937\"\/>\n          <\/svg>\n          <div class=\"wp-fb-step-caption\" data-t=\"fbGuideStep3\">Tap <b>Submit Feedback<\/b><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"wp-fb-reminder\" data-t=\"fbGuideReminder\">\ud83d\udca1 A simple comment is enough \u2014 but make sure your rating is visible.<\/div>\n    <\/div>\n\n    <div style=\"text-align:center; margin: 18px 0 32px\">\n      <a href=\"#\" id=\"wp-review-btn\" class=\"wp-review-btn\" target=\"_blank\" rel=\"noopener\" data-t=\"writeReview\">\u30b3\u30e1\u30f3\u30c8\u3092\u66f8\u304f\u2192<\/a>\n    <\/div>\n\n    <p class=\"wp-step-title\" id=\"wp-step3-s2-title\" data-t=\"step3S2Title\">\u30b9\u30c6\u30c3\u30d72\uff1a\u5148\u307b\u3069\u6295\u7a3f\u3057\u305f\u30b3\u30e1\u30f3\u30c8\u306e\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b<\/p>\n    <p class=\"wp-step-sub\" id=\"wp-step3-s2-sub\" data-t=\"step3S2Sub\">If your review contains at least 2 photos, we will give you extra bonus!<\/p>\n\n    <div class=\"wp-screenshot-split\">\n      <div class=\"wp-upload-single\" id=\"wp-screenshot-area\">\n        <div id=\"wp-screenshot-empty\">\n          <svg class=\"wp-up-icon\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" width=\"44\" height=\"44\">\n            <rect x=\"5\" y=\"2.5\" width=\"14\" height=\"19\" rx=\"2.2\"\/>\n            <path d=\"M10 5.5h4\" stroke-linecap=\"round\"\/>\n            <circle cx=\"12\" cy=\"18.5\" r=\"1\" fill=\"currentColor\" stroke=\"none\"\/>\n            <path d=\"M7.5 9.5h9M7.5 12h9M7.5 14.5h6\" stroke-linecap=\"round\" opacity=\".5\"\/>\n          <\/svg>\n          <div class=\"wp-up-text\" data-t=\"uploadScreenshotHint\">Click or drag a screenshot here to upload.<\/div>\n        <\/div>\n        <img id=\"wp-screenshot-preview\" class=\"wp-up-preview\" hidden>\n        <div class=\"wp-up-status\" id=\"wp-screenshot-status\"><\/div>\n      <\/div>\n      <div class=\"wp-screenshot-example\" id=\"wp-example-review\" aria-hidden=\"true\">\n        <span class=\"wp-ex-label\" id=\"wp-example-label-review\" data-t=\"exampleLabel\">Example<\/span>\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 200 340\" width=\"160\" role=\"img\" font-family=\"Arial, Helvetica, sans-serif\">\n          <!-- \u5361\u7247\u80cc\u666f -->\n          <rect x=\"0.5\" y=\"0.5\" width=\"199\" height=\"339\" rx=\"10\" fill=\"#ffffff\" stroke=\"#e5e7eb\"\/>\n          <!-- \u9876\u90e8 Amazon bar -->\n          <rect x=\"0.5\" y=\"0.5\" width=\"199\" height=\"30\" rx=\"10\" fill=\"#232f3e\"\/>\n          <rect x=\"0.5\" y=\"20\" width=\"199\" height=\"11\" fill=\"#232f3e\"\/>\n          <text x=\"12\" y=\"21\" fill=\"#fff\" font-size=\"13\" font-weight=\"700\" letter-spacing=\"-0.5\">amazon<\/text>\n          <path d=\"M12 24 Q28 30 49 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1\" stroke-linecap=\"round\"\/>\n          <!-- \u641c\u7d22\u6846\uff08\u7070\uff09 -->\n          <rect x=\"12\" y=\"42\" width=\"176\" height=\"24\" rx=\"5\" fill=\"#f3f4f6\" stroke=\"#d1d5db\"\/>\n          <rect x=\"158\" y=\"42\" width=\"30\" height=\"24\" rx=\"5\" fill=\"#e5e7eb\" stroke=\"#d1d5db\"\/>\n          <circle cx=\"172\" cy=\"54\" r=\"4.5\" fill=\"none\" stroke=\"#6b7280\" stroke-width=\"1.4\"\/>\n          <line x1=\"175.5\" y1=\"57.5\" x2=\"178.5\" y2=\"60.5\" stroke=\"#6b7280\" stroke-width=\"1.4\" stroke-linecap=\"round\"\/>\n          <!-- 5 \u9897\u9ec4\u661f\uff08\u552f\u4e00\u7684\u9ec4\u8272\u4e4b\u4e00\uff09 -->\n          <g transform=\"translate(32,76)\" fill=\"#FBBF24\">\n            <polygon points=\"12,0 15,8 23,8 16,13 19,21 12,16 5,21 8,13 1,8 9,8\"\/>\n            <polygon points=\"42,0 45,8 53,8 46,13 49,21 42,16 35,21 38,13 31,8 39,8\"\/>\n            <polygon points=\"72,0 75,8 83,8 76,13 79,21 72,16 65,21 68,13 61,8 69,8\"\/>\n            <polygon points=\"102,0 105,8 113,8 106,13 109,21 102,16 95,21 98,13 91,8 99,8\"\/>\n            <polygon points=\"132,0 135,8 143,8 136,13 139,21 132,16 125,21 128,13 121,8 129,8\"\/>\n          <\/g>\n          <!-- Review label -->\n          <text x=\"14\" y=\"116\" font-size=\"9\" font-weight=\"600\" fill=\"#6b7280\">Review<\/text>\n          <!-- Review \u8f93\u5165\u6846 -->\n          <rect x=\"12\" y=\"120\" width=\"176\" height=\"46\" rx=\"5\" fill=\"#fff\" stroke=\"#d1d5db\"\/>\n          <rect x=\"20\" y=\"128\" width=\"150\" height=\"3\" rx=\"1.5\" fill=\"#e5e7eb\"\/>\n          <rect x=\"20\" y=\"136\" width=\"140\" height=\"3\" rx=\"1.5\" fill=\"#e5e7eb\"\/>\n          <rect x=\"20\" y=\"144\" width=\"120\" height=\"3\" rx=\"1.5\" fill=\"#e5e7eb\"\/>\n          <rect x=\"20\" y=\"152\" width=\"90\"  height=\"3\" rx=\"1.5\" fill=\"#e5e7eb\"\/>\n          <!-- 4 \u5f20\u7f29\u7565\u56fe\uff08\u5168\u7070\uff0c\u5e26\u76f8\u673a icon\uff1b\u6700\u540e\u4e00\u4e2a\u52a0\u53f7\uff09 -->\n          <g transform=\"translate(12,178)\">\n            <g>\n              <rect x=\"0\"   y=\"0\" width=\"36\" height=\"36\" rx=\"5\" fill=\"#f3f4f6\" stroke=\"#d1d5db\"\/>\n              <rect x=\"9\"   y=\"14\" width=\"18\" height=\"12\" rx=\"2\" fill=\"none\" stroke=\"#9ca3af\" stroke-width=\"1.1\"\/>\n              <rect x=\"13\"  y=\"11\" width=\"6\"  height=\"4\"  rx=\"1\" fill=\"#9ca3af\"\/>\n              <circle cx=\"18\" cy=\"20\" r=\"3\" fill=\"none\" stroke=\"#9ca3af\" stroke-width=\"1.1\"\/>\n            <\/g>\n            <g transform=\"translate(42,0)\">\n              <rect x=\"0\"   y=\"0\" width=\"36\" height=\"36\" rx=\"5\" fill=\"#f3f4f6\" stroke=\"#d1d5db\"\/>\n              <rect x=\"9\"   y=\"14\" width=\"18\" height=\"12\" rx=\"2\" fill=\"none\" stroke=\"#9ca3af\" stroke-width=\"1.1\"\/>\n              <rect x=\"13\"  y=\"11\" width=\"6\"  height=\"4\"  rx=\"1\" fill=\"#9ca3af\"\/>\n              <circle cx=\"18\" cy=\"20\" r=\"3\" fill=\"none\" stroke=\"#9ca3af\" stroke-width=\"1.1\"\/>\n            <\/g>\n            <g transform=\"translate(84,0)\">\n              <rect x=\"0\"   y=\"0\" width=\"36\" height=\"36\" rx=\"5\" fill=\"#f3f4f6\" stroke=\"#d1d5db\"\/>\n              <rect x=\"9\"   y=\"14\" width=\"18\" height=\"12\" rx=\"2\" fill=\"none\" stroke=\"#9ca3af\" stroke-width=\"1.1\"\/>\n              <rect x=\"13\"  y=\"11\" width=\"6\"  height=\"4\"  rx=\"1\" fill=\"#9ca3af\"\/>\n              <circle cx=\"18\" cy=\"20\" r=\"3\" fill=\"none\" stroke=\"#9ca3af\" stroke-width=\"1.1\"\/>\n            <\/g>\n            <g transform=\"translate(126,0)\">\n              <rect x=\"0\" y=\"0\" width=\"36\" height=\"36\" rx=\"5\" fill=\"#f3f4f6\" stroke=\"#d1d5db\"\/>\n              <line x1=\"18\" y1=\"10\" x2=\"18\" y2=\"26\" stroke=\"#9ca3af\" stroke-width=\"2\" stroke-linecap=\"round\"\/>\n              <line x1=\"10\" y1=\"18\" x2=\"26\" y2=\"18\" stroke=\"#9ca3af\" stroke-width=\"2\" stroke-linecap=\"round\"\/>\n            <\/g>\n          <\/g>\n          <!-- Title label -->\n          <text x=\"14\" y=\"236\" font-size=\"9\" font-weight=\"600\" fill=\"#6b7280\">\u984c\u540d<\/text>\n          <!-- Title \u8f93\u5165\u6846 -->\n          <rect x=\"12\" y=\"240\" width=\"176\" height=\"22\" rx=\"5\" fill=\"#fff\" stroke=\"#d1d5db\"\/>\n          <rect x=\"20\" y=\"249\" width=\"100\" height=\"3\" rx=\"1.5\" fill=\"#e5e7eb\"\/>\n          <!-- Submit \u6309\u94ae\uff08\u552f\u4e00\u7684\u53e6\u4e00\u4e2a\u9ec4\uff09 -->\n          <rect x=\"12\" y=\"278\" width=\"176\" height=\"28\" rx=\"14\" fill=\"#FBBF24\"\/>\n          <text x=\"100\" y=\"297\" text-anchor=\"middle\" font-size=\"12\" font-weight=\"700\" fill=\"#111827\">\u63d0\u51fa<\/text>\n        <\/svg>\n      <\/div>\n    <\/div>\n    <input type=\"file\" id=\"wp-screenshot-input\" accept=\"image\/*\" hidden>\n\n    <div class=\"wp-gift-confirm\" id=\"wp-gift-confirm\"><\/div>\n\n    <div class=\"wf-global-error\" id=\"wp-s3-error\" hidden><\/div>\n    <div class=\"wf-submit-wrap wp-s3-actions\">\n      <button type=\"button\" class=\"wp-back-btn\" id=\"wp-s3-back\" data-t=\"btnBack\">\u2190 Back<\/button>\n      <button type=\"button\" class=\"wf-submit\" id=\"wp-s3-btn\" disabled data-t=\"btnActivate\">\u4eca\u3059\u3050\u6709\u52b9\u5316<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- ===== Thanks ===== -->\n  <div id=\"wp-thanks\" class=\"wf-thanks\" hidden>\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewbox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\/><\/svg>\n    <h2 id=\"wp-thanks-title\" data-t=\"thanksBasicTitle\">Thank you!<\/h2>\n    <p id=\"wp-thanks-body\" data-t=\"thanksBasicBody\">Your warranty has been activated successfully.<\/p>\n    <div id=\"wp-thanks-email-notice\" class=\"wp-box wp-box-info\" style=\"max-width:520px;margin:20px auto 0\" hidden><\/div>\n    <div id=\"wp-thanks-giftcard\" hidden style=\"margin-top:24px;max-width:520px;margin-left:auto;margin-right:auto;text-align:left\">\n      <div style=\"background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:16px\">\n        <div style=\"font-size:13px;color:#6b7280;margin-bottom:8px\" id=\"wp-giftcard-label\">Your gift card code:<\/div>\n        <pre id=\"wp-giftcard-code\" style=\"font-family:'SF Mono',Menlo,Consolas,monospace;font-size:14px;line-height:1.7;margin:0;white-space:pre-line;word-break:break-all;color:#111827\"><\/pre>\n        <button type=\"button\" id=\"wp-giftcard-copy\" data-t=\"giftcardCopy\" style=\"margin-top:10px;height:36px;padding:0 16px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#111827;font-size:13px;font-weight:600;cursor:pointer\">Copy<\/button>\n      <\/div>\n      <p style=\"margin-top:10px;font-size:13px;color:#6b7280;text-align:center\" data-t=\"giftcardEmailSent\">We have also sent the code to your email.<\/p>\n      <!-- VISA \u9884\u4ed8\u5361\u4e13\u5c5e\uff1a1 \u5e74\u6709\u6548\u671f\u63d0\u9192 + Amazon \u7ed1\u5361\u6559\u5b66\u89c6\u9891\uff08\u4ec5\u5f53 is_visa_prepaid=true \u65f6\u663e\u793a\uff09 -->\n      <div id=\"wp-thanks-visa-extra\" hidden style=\"margin-top:16px\">\n        <div class=\"wp-box wp-box-warn\">\n          <span class=\"wp-box-i\">\u23f3<\/span>\n          <p data-t=\"visaCardValidity\">\u26a0\ufe0f Please redeem before the expiration date shown above.<\/p>\n        <\/div>\n        <div class=\"wp-visa-video-wrap\" style=\"margin-top:14px\">\n          <h4 class=\"wp-visa-heading\" data-t=\"visaCardVideoTitle\">How to Bind a VISA Prepaid Card to Amazon?<\/h4>\n          <video controls preload=\"metadata\" class=\"wp-visa-video\">\n            <source src=\"https:\/\/akx-images.s3.us-east-2.amazonaws.com\/visa-itv0f2.mp4\" type=\"video\/mp4\">\n          <\/video>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- ===== Need Help? \u6c42\u52a9\u901a\u9053\uff08\u5ba2\u6237\u586b\u5408\u6cd5\u90ae\u7bb1\u540e\u624d\u663e\u793a\uff09 ===== -->\n  <div id=\"wp-help-link\" class=\"wp-help-link\" hidden style=\"text-align:center;margin:32px auto 8px;font-size:13px;color:#6b7280\">\n    <a href=\"#\" id=\"wp-help-link-a\" style=\"color:#6b7280;text-decoration:underline;cursor:pointer\" data-t=\"needHelpLink\">Occurred errors? Report BUG<\/a>\n  <\/div>\n\n  <!-- ===== Need Help \u5f39\u7a97\uff08\u70b9\u51fb\u94fe\u63a5\u540e\u663e\u793a\uff09 ===== -->\n  <div id=\"wp-help-modal\" hidden style=\"position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:16px\">\n    <div style=\"background:#fff;border-radius:12px;max-width:520px;width:100%;padding:24px;box-shadow:0 20px 50px rgba(0,0,0,.3);max-height:90vh;overflow-y:auto\">\n      <h3 style=\"margin:0 0 8px;font-size:18px;color:#111827\" data-t=\"needHelpTitle\">\ud83e\udd1d Need help with this form?<\/h3>\n      <p style=\"margin:0 0 6px;color:#6b7280;font-size:14px\" data-t=\"needHelpHint\">Tell us what went wrong. Our team will contact you at:<\/p>\n      <p id=\"wp-help-email-display\" style=\"margin:0 0 14px;font-size:14px;color:#111827;font-weight:600;word-break:break-all\"><\/p>\n      <textarea id=\"wp-help-content\" maxlength=\"5000\" rows=\"5\" style=\"width:100%;min-height:120px;padding:10px;border:1px solid #d1d5db;border-radius:8px;font-family:inherit;font-size:14px;resize:vertical;box-sizing:border-box\"><\/textarea>\n      <div id=\"wp-help-err\" style=\"color:#dc2626;font-size:13px;margin-top:6px;min-height:18px\"><\/div>\n      <div id=\"wp-help-actions\" style=\"display:flex;justify-content:flex-end;gap:8px;margin-top:14px\">\n        <button type=\"button\" id=\"wp-help-cancel\" style=\"padding:8px 16px;border:1px solid #d1d5db;background:#fff;border-radius:6px;cursor:pointer;color:#374151;font-size:14px\" data-t=\"needHelpCancel\">Cancel<\/button>\n        <button type=\"button\" id=\"wp-help-send\" style=\"padding:8px 18px;border:0;background:#111827;color:#fff;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600\" data-t=\"needHelpSend\">Send<\/button>\n      <\/div>\n      <div id=\"wp-help-thanks\" hidden style=\"margin-top:14px;padding:12px;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;color:#065f46;font-size:14px;line-height:1.5\"><\/div>\n      <div id=\"wp-help-close-row\" hidden style=\"display:flex;justify-content:flex-end;margin-top:12px\">\n        <button type=\"button\" id=\"wp-help-close\" style=\"padding:8px 18px;border:1px solid #d1d5db;background:#fff;border-radius:6px;cursor:pointer;color:#374151;font-size:14px\" data-t=\"needHelpClose\">\u8fd1\u3044<\/button>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function () {\n  \/\/ \u9ed8\u8ba4\u7a7a = \u540c\u6e90\u76f8\u5bf9\u8def\u5f84\uff0c\u81ea\u52a8\u8ddf\u968f\u5f53\u524d WP \u7ad9\u70b9\u57df\u540d\uff08lisowod.com \/ onoayo.net \u2026\uff09\n  \/\/ \u53ef\u901a\u8fc7 window.WF_API_BASE \u663e\u5f0f\u8986\u76d6\uff08\u6bd4\u5982\u672c\u5730\u9884\u89c8\u8de8\u57df\u5230\u751f\u4ea7\uff09\n  var API_BASE = (typeof window !== 'undefined' && window.WF_API_BASE) || '';\n  var LOADED_AT = Date.now();\n  var LANG = (function () {\n    try {\n      var seg = (location.pathname.split('\/')[1] || '').toLowerCase();\n      if (seg === 'jp') return 'ja';\n      if (['fr','de','es','ja','en'].indexOf(seg) >= 0) return seg;\n    } catch (e) {}\n    return 'en';\n  })();\n  var STORAGE_KEY = 'wpf_state_v1';\n  var TTL_MS = 60 * 60 * 1000;\n  var MIN_CONTENT = 20;\n  var MAX_IMAGES = 5;\n  var MAX_FILE_BYTES = 10 * 1024 * 1024;\n\n  \/\/ ================= 5 \u8bed\u8a00\u5b57\u5178 =================\n  var DICT = {\n    en: {\n      orderNumber: 'Order Number', email: 'Email', name: 'Name',\n      findOrder: 'How to find my order number?',\n      expectationsLabel: 'Does it meet your expectations?',\n      expPick: 'Please select...',\n      expYes: 'Yes, it works well',\n      expNo: 'No, there are some issues',\n      expNotUse: 'Not used yet',\n      complaintLabel: 'Describe your issue',\n      complaintPh: 'Please describe the issue in detail (minimum 20 characters).',\n      attachLabel: 'Attach images (optional, up to 5)',\n      addImage: '+ Add image',\n      attachHintDefault: 'Max 5 images, up to 10 MB each.',\n      ratingLabel: 'How do you feel about our product?',\n      suggestionTitle: 'Criticism is welcome. Your suggestion will help us do better.',\n      willingTitle: 'Would you like to leave a review on Amazon? We have a surprise for you \ud83c\udf81',\n      willingYes: 'Take a look',\n      willingNo: 'No, thanks',\n      giftsTitle: 'Pick a surprise gift',\n      noInterest: 'No, thanks',\n      paymentLabel: 'Choose your refund method',\n      paymentPaypalEmail: 'PayPal Email',\n      paymentVenmoEmail: 'Venmo Email',\n      paymentCardMsg: '\ud83d\udce7 We will send the gift card code and password to your email. Please redeem it promptly.',\n      paymentRakutenWarn: '\u26a0\ufe0f \u697d\u5929\u516c\u5f0f\u306e\u5236\u5ea6\u5909\u66f4\u306b\u3088\u308a\u3001\u53d7\u53d6\u6642\u306b\u984d\u9762\u306e3%\u304c\u5dee\u3057\u5f15\u304b\u308c\u307e\u3059\u3002\uff08\u4f8b\uff1a\u984d\u9762 5,000\u5186 \u2794 \u53d7\u53d6\u984d 4,850\u5186\uff09',\n      paymentVisaInfo: 'You can use the Visa prepaid card across many platforms including amazon. It comes preloaded with balance.<br>We will send you the card number and password by mail.',\n      btnNext: 'Next',\n      btnActivate: 'Activate Now',\n      btnSubmit: 'Submit',\n      btnBack: '\u2190 Back',\n      writeReview: 'Write A Review \u2192',\n      step3S1Title: 'Step 1: Click the button to write a review and take a screenshot',\n      step3S1Sub: 'Please take the screenshot before submitting your review and make sure your rating is visible so we can quickly confirm.',\n      step3S2Title: 'Step 2: Upload the screenshot of the review you just submitted',\n      step3S2Sub: 'Please do not mention this free gift in your review for smooth approval.',\n      uploadScreenshotHint: 'Click or drag a file here to upload.',\n      aiChecking: 'Checking screenshot...',\n      aiCheckingLong: 'Please wait a moment \u2014 our AI is verifying your screenshot.',\n      aiPassed: 'Screenshot verified.',\n      thanksBasicTitle: 'Thank you!',\n      thanksBasicBody: 'Your warranty has been activated successfully.',\n      thanksGiftTitle: 'All set! \ud83c\udf89',\n      thanksGiftBody: 'Your warranty has been activated and your gift will be processed shortly. Please watch your inbox.',\n      thanksGiftManualTitle: 'All set! \ud83c\udf89',\n      thanksGiftManualBody: '\ud83c\udf81 Your warranty is activated. Our team will process your payment within 3 business days and notify you by email once it is sent.',\n      thanksGiftShipTitle: 'All set! \ud83c\udf89',\n      thanksGiftShipBody: '\ud83c\udf81 Your warranty is activated. We will ship your gift within 3 business days and notify you by email once it is on the way.',\n      thanksGiftVirtualTitle: 'All set! \ud83c\udf89',\n      thanksGiftVirtualBody: '\ud83c\udf81 Your warranty is activated and your bonus has been applied to your order automatically. Thank you!',\n      thanksEmailNotice: '\ud83d\udce7 We have also sent a confirmation email to {email}. Please check your Spam \/ Junk folder if you don\\'t see it.',\n      paymentPrivacy: '\ud83d\udd12 Privacy Protection: We do not store your payment information permanently. Please ensure all details are correct.',\n      paymentVisaHeading: 'How to Bind a VISA Prepaid Card to Amazon?',\n      thanksComplaintTitle: 'Ticket submitted!',\n      thanksComplaintBody: 'Your complaint ticket has been submitted successfully. We will reply as soon as possible. Please avoid submitting duplicate tickets.',\n      thanksReviewLimitedTitle: 'Thank you! \ud83d\udc9d',\n      thanksReviewLimitedBody: 'It looks like Amazon has limited your review. No worries \u2014 we will still send your gift as promised.',\n      thanksGiftCardTitle: '\ud83c\udf89 Your gift card is ready!',\n      thanksGiftCardBody: 'Thank you! Your warranty is activated and your gift card code is below. We have also sent it to your email.',\n      thanksGiftCardPendingTitle: 'All set! \ud83c\udf89',\n      thanksGiftCardPendingBody: 'Your warranty is activated. Your gift card is being processed and will arrive in your email shortly.',\n      thanksVisaGiftCardTitle: '\ud83c\udf89 Your VISA prepaid card is ready!',\n      thanksVisaGiftCardBody: 'Your VISA card number and CVV are shown below \u2014 please redeem promptly. We have also sent them to your email.',\n      thanksVisaGiftCardPendingTitle: '\ud83d\udce6 We are restocking',\n      thanksVisaGiftCardPendingBody: 'Our VISA prepaid card stock is temporarily low. We will restock and email your card within 3 days.',\n      giftcardLabel: 'Your gift card code:',\n      giftcardLabelVisa: 'Your Visa prepaid card:',\n      visaCardValidity: '\u26a0\ufe0f Please redeem before the expiration date shown above.',\n      visaCardVideoTitle: 'How to Bind a VISA Prepaid Card to Amazon?',\n      giftcardCopy: 'Copy',\n      giftcardCopied: 'Copied!',\n      giftcardEmailSent: 'We have also sent the code to your email.',\n      errFormat: 'Invalid order number. Expected format: XXX-XXXXXXX-XXXXXXX.',\n      errEmail: 'Please enter a valid email address.',\n      errName: 'Please enter your name.',\n      errRating: 'Please select a star rating.',\n      errContentShort: 'Please describe the issue with at least 20 characters.',\n      errNotShipped: 'Please activate after receiving your product.',\n      errRefunded: 'Your order has been refunded and is not covered by the warranty policy.',\n      errAlreadyActivated: 'Your order has already been activated.',\n      errReviewOrder: 'Test activity orders have automatically activated one-year warranty, no manual activation required',\n      errAlreadyClaimedGift: 'This order has already claimed an activation gift. Duplicate claims are not allowed.',\n      errMissingTitle: 'Please complete the following fields:',\n      errSubmitFailed: 'Submission failed. Please try again later.',\n      errSubmitFailedWithCode: 'Submission failed (code: {code}). Please contact support and include this code.',\n      needHelpLink: 'Occurred errors? Report BUG',\n      needHelpTitle: '\ud83e\udd1d Need help with this form?',\n      needHelpHint: 'Tell us what went wrong. Our team will contact you at:',\n      needHelpPlaceholder: 'Describe what happened, what step you got stuck on, and any error messages you saw...',\n      needHelpSend: 'Send',\n      needHelpCancel: 'Cancel',\n      needHelpClose: 'Close',\n      needHelpThanks: '\u2705 Got it! We have received your message and will reach out to you shortly at {email}.',\n      needHelpErrTooShort: 'Please tell us a bit more (at least 5 characters).',\n      errNetwork: 'Network error. Please check your connection.',\n      errUpload: 'Upload failed. Please try again.',\n      errNotImage: 'Only image files are allowed.',\n      errFileTooBig: 'Each image must be 10 MB or smaller.',\n      errTooManyImages: 'You can upload up to 5 images.',\n      errAI_NOT_SCREENSHOT: 'Please upload a screenshot of your Amazon review \u2014 not a photo taken with a camera.',\n      errAI_ALREADY_SUBMITTED: 'Your review appears already submitted. Please take the screenshot while still on the review edit page (where the title and stars are visible).',\n      errAI_WRONG_PAGE: 'This screenshot is not the Amazon review page. Please go to Amazon and submit your review first.',\n      errAI_FEEDBACK_NOT_REVIEW: 'You submitted seller feedback. Please write a product review instead.',\n      errAI_REVIEW_NOT_FEEDBACK: 'This does not look like a seller feedback page. Please submit your seller feedback on Amazon first, then upload that screenshot.',\n      errAI_LOW_RATING: 'Your rating seems too low to qualify for the gift. Please increase it on Amazon and re-upload the screenshot.',\n      errAI_UNRECOGNIZED: 'We could not recognize this screenshot. Please upload the Amazon review edit page screenshot.',\n      errAI_PARSE: 'The check failed. Please re-upload.',\n      fbStep3Intro: '\ud83c\udf89 Almost there! Just 2 quick steps to claim your gift.<br>We will send your gift when finished!',\n      fbStep3S1Title: 'Step 1: Tap the button to leave seller feedback and take a screenshot',\n      fbWriteReview: 'Leave Seller Feedback \u2192',\n      fbStep3S2Title: 'Step 2: Upload the screenshot of the seller feedback you just submitted',\n      fbGuideStep1: 'Find your order, tap <b>Leave Seller Feedback<\/b>',\n      fbGuideStep2: 'Fill in a short comment',\n      fbGuideStep3: 'Tap <b>Submit Feedback<\/b>',\n      fbGuideReminder: '\ud83d\udca1 A simple comment is enough \u2014 but make sure your rating is visible.',\n      fbUploadHint: 'Click or drag the seller feedback screenshot here to upload.',\n      fbExampleLabel: 'Example (Seller Feedback)',\n      errPaymentEmail: 'Please enter a valid email for your payment method.',\n      errPaymentMethod: 'Please choose a refund method.',\n      addrLabel: 'Shipping Information',\n      addrAddress: 'Detailed Address',\n      addrCity: 'City',\n      addrState: 'State \/ Province',\n      addrPostCode: 'Postal Code',\n      addrPhone: 'Phone',\n      addrPhoneHint: 'Optional \u2014 recommended to reduce delivery issues.',\n      errAddrAddress: 'Please enter the full address.',\n      errAddrCity: 'Please enter the city.',\n      errAddrState: 'Please enter the state or province.',\n      errAddrPostCode: 'Please enter the postal code.',\n      errAddrPhone: 'Please enter your phone number.',\n      errAddrPhoneFormat: 'Phone can only contain digits, spaces, +, -, ( and ).',\n      attachTip: 'If you have relevant photos, adding them helps us diagnose the issue faster.',\n      dropzoneClick: 'Click to upload',\n      dropzoneOrDrag: 'or drag and drop',\n      step3Intro: '\ud83c\udf89 Almost there! Just 2 quick steps to claim your gift.<br>We will send your gift when finished!',\n      exampleLabel: 'Example',\n      errAddrMissing: 'Please fill in all required shipping fields.',\n      giftConfirmGiftcard: '\ud83c\udf81 We will email you the {name} code right after your submission.',\n      giftConfirmVisaPrepaid: '\ud83c\udf81 We will show your VISA prepaid card number and CVV right after submission and email them to you. If our stock is low, we will deliver within 3 days.',\n      giftConfirmManual: '\ud83c\udf81 Our team will send your {name} within 3 business days and notify you by email.',\n      giftConfirmCash: '\ud83c\udf81 We will process your {name} within 3 business days.',\n      giftConfirmShip: '\ud83c\udf81 We will ship your {name}{cityPart} within 3 business days and notify you by email.',\n      giftConfirmVirtual: '\ud83c\udf81 Your {name} will be applied to your order automatically.',\n      giftConfirmCityPart: ' to {city}'\n    },\n    ja: {\n      orderNumber: '\u6ce8\u6587\u756a\u53f7', email: '\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9', name: '\u304a\u540d\u524d',\n      findOrder: '\u6ce8\u6587\u756a\u53f7\u306f\u3069\u3053\u3067\u78ba\u8a8d\u3067\u304d\u307e\u3059\u304b\uff1f',\n      expectationsLabel: '\u3054\u671f\u5f85\u306b\u6cbf\u3044\u307e\u3057\u305f\u304b\uff1f',\n      expPick: '\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044...',\n      expYes: '\u306f\u3044\u3001\u554f\u984c\u306a\u304f\u52d5\u4f5c\u3057\u3066\u3044\u307e\u3059',\n      expNo: '\u3044\u3044\u3048\u3001\u554f\u984c\u304c\u3042\u308a\u307e\u3059',\n      expNotUse: '\u307e\u3060\u4f7f\u7528\u3057\u3066\u3044\u307e\u305b\u3093',\n      complaintLabel: '\u304a\u554f\u3044\u5408\u308f\u305b\u5185\u5bb9',\n      complaintPh: '\u554f\u984c\u306e\u8a73\u7d30\u3092\u3054\u8a18\u5165\u304f\u3060\u3055\u3044\uff0820\u6587\u5b57\u4ee5\u4e0a\uff09\u3002',\n      attachLabel: '\u753b\u50cf\u3092\u6dfb\u4ed8\uff08\u4efb\u610f\u3001\u6700\u59275\u679a\uff09',\n      addImage: '+ \u753b\u50cf\u3092\u8ffd\u52a0',\n      attachHintDefault: '\u6700\u59275\u679a\u3001\u540410MB\u307e\u3067\u3002',\n      ratingLabel: '\u5546\u54c1\u306e\u6e80\u8db3\u5ea6\u3092\u6559\u3048\u3066\u304f\u3060\u3055\u3044',\n      suggestionTitle: '\u3054\u6279\u5224\u3082\u6b53\u8fce\u3057\u307e\u3059\u3002\u6539\u5584\u306e\u305f\u3081\u306b\u3054\u610f\u898b\u3092\u304a\u805e\u304b\u305b\u304f\u3060\u3055\u3044\u3002',\n      willingTitle: 'Amazon\u306b\u30ec\u30d3\u30e5\u30fc\u3092\u6295\u7a3f\u3057\u3066\u3044\u305f\u3060\u3051\u307e\u3059\u304b\uff1f\u3055\u3055\u3084\u304b\u306a\u30d7\u30ec\u30bc\u30f3\u30c8\u3092\u3054\u7528\u610f\u3057\u3066\u304a\u308a\u307e\u3059 \ud83c\udf81',\n      willingYes: '\u898b\u3066\u307f\u308b',\n      willingNo: '\u3044\u3044\u3048\u3001\u7d50\u69cb\u3067\u3059',\n      giftsTitle: '\u304a\u597d\u304d\u306a\u30ae\u30d5\u30c8\u3092\u304a\u9078\u3073\u304f\u3060\u3055\u3044',\n      noInterest: '\u3044\u3044\u3048\u3001\u7d50\u69cb\u3067\u3059',\n      paymentLabel: '\u304a\u652f\u6255\u3044\u65b9\u6cd5\u3092\u304a\u9078\u3073\u304f\u3060\u3055\u3044',\n      paymentPaypalEmail: 'PayPal \u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9',\n      paymentVenmoEmail: 'Venmo \u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9',\n      paymentCardMsg: '\ud83d\udce7 \u30ae\u30d5\u30c8\u30ab\u30fc\u30c9\u756a\u53f7\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u30e1\u30fc\u30eb\u306b\u3066\u304a\u9001\u308a\u3044\u305f\u3057\u307e\u3059\u3002\u304a\u65e9\u3081\u306b\u3054\u5229\u7528\u304f\u3060\u3055\u3044\u3002',\n      paymentRakutenWarn: '\u26a0\ufe0f \u697d\u5929\u516c\u5f0f\u306e\u5236\u5ea6\u5909\u66f4\u306b\u3088\u308a\u3001\u53d7\u53d6\u6642\u306b\u984d\u9762\u306e3%\u304c\u5dee\u3057\u5f15\u304b\u308c\u307e\u3059\u3002\uff08\u4f8b\uff1a\u984d\u9762 5,000\u5186 \u2794 \u53d7\u53d6\u984d 4,850\u5186\uff09',\n      paymentVisaInfo: 'Visa \u30d7\u30ea\u30da\u30a4\u30c9\u30ab\u30fc\u30c9\u306f Amazon \u3092\u542b\u3080\u69d8\u3005\u306a\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u3054\u5229\u7528\u3044\u305f\u3060\u3051\u307e\u3059\u3002\u6b8b\u9ad8\u304c\u30c1\u30e3\u30fc\u30b8\u6e08\u307f\u3067\u3059\u3002<br>\u30ab\u30fc\u30c9\u756a\u53f7\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u30e1\u30fc\u30eb\u3067\u304a\u9001\u308a\u3044\u305f\u3057\u307e\u3059\u3002',\n      btnNext: '\u6b21\u3078',\n      btnActivate: '\u4eca\u3059\u3050\u6709\u52b9\u5316',\n      btnSubmit: '\u9001\u4fe1',\n      btnBack: '\u2190 \u623b\u308b',\n      writeReview: '\u30ec\u30d3\u30e5\u30fc\u3092\u66f8\u304f \u2192',\n      step3S1Title: '\u30b9\u30c6\u30c3\u30d71\uff1a\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u30ec\u30d3\u30e5\u30fc\u3092\u66f8\u304d\u3001\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u3092\u64ae\u308b',\n      step3S1Sub: '\u30ec\u30d3\u30e5\u30fc\u3092\u6295\u7a3f\u3059\u308b\u524d\u306b\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u3092\u304a\u64ae\u308a\u304f\u3060\u3055\u3044\u3002\u661f\u8a55\u4fa1\u304c\u898b\u3048\u308b\u3088\u3046\u306b\u3057\u3066\u3044\u305f\u3060\u304f\u3068\u3001\u8fc5\u901f\u306b\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002',\n      step3S2Title: '\u30b9\u30c6\u30c3\u30d72\uff1a\u6295\u7a3f\u3057\u305f\u30ec\u30d3\u30e5\u30fc\u306e\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9',\n      step3S2Sub: '\u30b9\u30e0\u30fc\u30ba\u306a\u627f\u8a8d\u306e\u305f\u3081\u3001\u30ec\u30d3\u30e5\u30fc\u672c\u6587\u3067\u306f\u672c\u30ae\u30d5\u30c8\u306b\u3064\u3044\u3066\u8a00\u53ca\u3057\u306a\u3044\u3067\u304f\u3060\u3055\u3044\u3002',\n      uploadScreenshotHint: '\u3053\u3053\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u304b\u3001\u30c9\u30e9\u30c3\u30b0\u3057\u3066\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3002',\n      aiChecking: '\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u3092\u78ba\u8a8d\u4e2d...',\n      aiCheckingLong: '\u5c11\u3005\u304a\u5f85\u3061\u304f\u3060\u3055\u3044 \u2014 AI\u304c\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u3092\u78ba\u8a8d\u3057\u3066\u3044\u307e\u3059\u3002',\n      aiPassed: '\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u3092\u78ba\u8a8d\u3057\u307e\u3057\u305f\u3002',\n      thanksBasicTitle: '\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3059\uff01',\n      thanksBasicBody: '\u4fdd\u8a3c\u304c\u6b63\u5e38\u306b\u6709\u52b9\u5316\u3055\u308c\u307e\u3057\u305f\u3002',\n      thanksGiftTitle: '\u5b8c\u4e86\u3057\u307e\u3057\u305f\uff01\ud83c\udf89',\n      thanksGiftBody: '\u4fdd\u8a3c\u306e\u6709\u52b9\u5316\u304c\u5b8c\u4e86\u3057\u307e\u3057\u305f\u3002\u30ae\u30d5\u30c8\u306f\u9593\u3082\u306a\u304f\u51e6\u7406\u3055\u308c\u307e\u3059\u3002\u30e1\u30fc\u30eb\u3092\u3054\u78ba\u8a8d\u304f\u3060\u3055\u3044\u3002',\n      thanksGiftManualTitle: '\u5b8c\u4e86\u3057\u307e\u3057\u305f\uff01\ud83c\udf89',\n      thanksGiftManualBody: '\ud83c\udf81 \u4fdd\u8a3c\u304c\u6709\u52b9\u5316\u3055\u308c\u307e\u3057\u305f\u30023\u55b6\u696d\u65e5\u4ee5\u5185\u306b\u304a\u652f\u6255\u3044\u3092\u51e6\u7406\u3057\u3001\u9001\u91d1\u5b8c\u4e86\u5f8c\u306b\u30e1\u30fc\u30eb\u3067\u304a\u77e5\u3089\u305b\u3044\u305f\u3057\u307e\u3059\u3002',\n      thanksGiftShipTitle: '\u5b8c\u4e86\u3057\u307e\u3057\u305f\uff01\ud83c\udf89',\n      thanksGiftShipBody: '\ud83c\udf81 \u4fdd\u8a3c\u304c\u6709\u52b9\u5316\u3055\u308c\u307e\u3057\u305f\u30023\u55b6\u696d\u65e5\u4ee5\u5185\u306b\u30ae\u30d5\u30c8\u3092\u767a\u9001\u3057\u3001\u767a\u9001\u5f8c\u306b\u30e1\u30fc\u30eb\u3067\u8ffd\u8de1\u756a\u53f7\u3092\u304a\u9001\u308a\u3044\u305f\u3057\u307e\u3059\u3002',\n      thanksGiftVirtualTitle: '\u5b8c\u4e86\u3057\u307e\u3057\u305f\uff01\ud83c\udf89',\n      thanksGiftVirtualBody: '\ud83c\udf81 \u4fdd\u8a3c\u304c\u6709\u52b9\u5316\u3055\u308c\u3001\u7279\u5178\u304c\u3054\u6ce8\u6587\u306b\u81ea\u52d5\u7684\u306b\u9069\u7528\u3055\u308c\u307e\u3057\u305f\u3002\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3059\uff01',\n      thanksEmailNotice: '\ud83d\udce7 {email} \u5b9b\u306b\u78ba\u8a8d\u30e1\u30fc\u30eb\u3092\u304a\u9001\u308a\u3057\u307e\u3057\u305f\u3002\u5c4a\u304b\u306a\u3044\u5834\u5408\u306f\u8ff7\u60d1\u30e1\u30fc\u30eb\u30d5\u30a9\u30eb\u30c0\u3092\u3054\u78ba\u8a8d\u304f\u3060\u3055\u3044\u3002',\n      paymentPrivacy: '\ud83d\udd12 \u30d7\u30e9\u30a4\u30d0\u30b7\u30fc\u4fdd\u8b77\uff1a\u304a\u652f\u6255\u3044\u60c5\u5831\u306f\u6c38\u7d9a\u7684\u306b\u4fdd\u5b58\u3044\u305f\u3057\u307e\u305b\u3093\u3002\u5165\u529b\u5185\u5bb9\u306b\u8aa4\u308a\u304c\u306a\u3044\u304b\u3054\u78ba\u8a8d\u304f\u3060\u3055\u3044\u3002',\n      paymentVisaHeading: 'VISA\u30d7\u30ea\u30da\u30a4\u30c9\u30ab\u30fc\u30c9\u3092Amazon\u306b\u767b\u9332\u3059\u308b\u65b9\u6cd5\u306f\uff1f',\n      thanksComplaintTitle: '\u304a\u554f\u3044\u5408\u308f\u305b\u3092\u53d7\u3051\u4ed8\u3051\u307e\u3057\u305f',\n      thanksComplaintBody: '\u304a\u554f\u3044\u5408\u308f\u305b\u3092\u627f\u308a\u307e\u3057\u305f\u3002\u62c5\u5f53\u8005\u3088\u308a\u6298\u308a\u8fd4\u3057\u3054\u9023\u7d61\u3044\u305f\u3057\u307e\u3059\u3002\u91cd\u8907\u3057\u305f\u9001\u4fe1\u306f\u304a\u63a7\u3048\u304f\u3060\u3055\u3044\u3002',\n      thanksReviewLimitedTitle: '\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3059 \ud83d\udc9d',\n      thanksReviewLimitedBody: 'Amazon\u3067\u30ec\u30d3\u30e5\u30fc\u304c\u5236\u9650\u3055\u308c\u3066\u3044\u308b\u3088\u3046\u3067\u3059\u304c\u3001\u3054\u5b89\u5fc3\u304f\u3060\u3055\u3044\u3002\u4e88\u5b9a\u901a\u308a\u30ae\u30d5\u30c8\u3092\u304a\u9001\u308a\u3044\u305f\u3057\u307e\u3059\u3002',\n      thanksGiftCardTitle: '\ud83c\udf89 \u30ae\u30d5\u30c8\u30ab\u30fc\u30c9\u3092\u304a\u5c4a\u3051\u3057\u307e\u3059\uff01',\n      thanksGiftCardBody: '\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3059\uff01\u4fdd\u8a3c\u304c\u6709\u52b9\u5316\u3055\u308c\u3001\u30ae\u30d5\u30c8\u30ab\u30fc\u30c9\u756a\u53f7\u306f\u4e0b\u8a18\u306e\u901a\u308a\u3067\u3059\u3002\u30e1\u30fc\u30eb\u3067\u3082\u304a\u9001\u308a\u3057\u3066\u304a\u308a\u307e\u3059\u3002',\n      thanksGiftCardPendingTitle: '\u5b8c\u4e86\u3057\u307e\u3057\u305f\uff01\ud83c\udf89',\n      thanksGiftCardPendingBody: '\u4fdd\u8a3c\u304c\u6709\u52b9\u5316\u3055\u308c\u307e\u3057\u305f\u3002\u30ae\u30d5\u30c8\u30ab\u30fc\u30c9\u306f\u51e6\u7406\u4e2d\u3067\u3001\u9593\u3082\u306a\u304f\u30e1\u30fc\u30eb\u306b\u3066\u304a\u5c4a\u3051\u3044\u305f\u3057\u307e\u3059\u3002',\n      thanksVisaGiftCardTitle: '\ud83c\udf89 VISA \u30d7\u30ea\u30da\u30a4\u30c9\u30ab\u30fc\u30c9\u3092\u304a\u5c4a\u3051\u3057\u307e\u3059\uff01',\n      thanksVisaGiftCardBody: '\u30ab\u30fc\u30c9\u756a\u53f7\u3068 CVV \u306f\u4e0b\u8a18\u306e\u901a\u308a\u3067\u3059\u3002\u304a\u65e9\u3081\u306b\u3054\u5229\u7528\u304f\u3060\u3055\u3044\u3002\u30e1\u30fc\u30eb\u3067\u3082\u304a\u9001\u308a\u3057\u3066\u304a\u308a\u307e\u3059\u3002',\n      thanksVisaGiftCardPendingTitle: '\ud83d\udce6 \u305f\u3060\u3044\u307e\u5728\u5eab\u88dc\u5145\u4e2d',\n      thanksVisaGiftCardPendingBody: 'VISA \u30d7\u30ea\u30da\u30a4\u30c9\u30ab\u30fc\u30c9\u306e\u5728\u5eab\u304c\u4e00\u6642\u7684\u306b\u4e0d\u8db3\u3057\u3066\u304a\u308a\u307e\u3059\u30023 \u65e5\u4ee5\u5185\u306b\u88dc\u5145\u3057\u3001\u30e1\u30fc\u30eb\u306b\u3066\u304a\u5c4a\u3051\u3044\u305f\u3057\u307e\u3059\u3002',\n      giftcardLabel: '\u30ae\u30d5\u30c8\u30ab\u30fc\u30c9\u756a\u53f7\uff1a',\n      giftcardLabelVisa: 'Visa \u30d7\u30ea\u30da\u30a4\u30c9\u30ab\u30fc\u30c9\uff1a',\n      visaCardValidity: '\u26a0\ufe0f \u4e0a\u8a18\u306e\u6709\u52b9\u671f\u9650\u5185\u306b\u3054\u5229\u7528\u304f\u3060\u3055\u3044\u3002',\n      visaCardVideoTitle: 'VISA\u30d7\u30ea\u30da\u30a4\u30c9\u30ab\u30fc\u30c9\u3092Amazon\u306b\u767b\u9332\u3059\u308b\u65b9\u6cd5\u306f\uff1f',\n      giftcardCopy: '\u30b3\u30d4\u30fc',\n      giftcardCopied: '\u30b3\u30d4\u30fc\u3057\u307e\u3057\u305f\uff01',\n      giftcardEmailSent: '\u756a\u53f7\u306f\u30e1\u30fc\u30eb\u3067\u3082\u304a\u9001\u308a\u3057\u3066\u304a\u308a\u307e\u3059\u3002',\n      errFormat: '\u6ce8\u6587\u756a\u53f7\u306e\u5f62\u5f0f\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002XXX-XXXXXXX-XXXXXXX \u306e\u5f62\u5f0f\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002',\n      errEmail: '\u6709\u52b9\u306a\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002',\n      errName: '\u304a\u540d\u524d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002',\n      errRating: '\u661f\u8a55\u4fa1\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002',\n      errContentShort: '20\u6587\u5b57\u4ee5\u4e0a\u3067\u554f\u984c\u306e\u8a73\u7d30\u3092\u3054\u8a18\u5165\u304f\u3060\u3055\u3044\u3002',\n      errNotShipped: '\u5546\u54c1\u3092\u53d7\u3051\u53d6\u3063\u3066\u304b\u3089\u6709\u52b9\u5316\u3057\u3066\u304f\u3060\u3055\u3044\u3002',\n      errRefunded: '\u3054\u6ce8\u6587\u306f\u8fd4\u91d1\u6e08\u307f\u306e\u305f\u3081\u3001\u4fdd\u8a3c\u306e\u5bfe\u8c61\u5916\u3067\u3059\u3002',\n      errAlreadyActivated: '\u3053\u306e\u3054\u6ce8\u6587\u306f\u3059\u3067\u306b\u6709\u52b9\u5316\u3055\u308c\u3066\u3044\u307e\u3059\u3002',\n      errReviewOrder: '\u3053\u3061\u3089\u306e\u3054\u6ce8\u6587\u306f\u30ec\u30d3\u30e5\u30fc\u4f01\u753b\u7528\u306e\u305f\u3081\u3001\u4fdd\u8a3c\u306e\u6709\u52b9\u5316\u306f\u3067\u304d\u307e\u305b\u3093\u3002',\n      errAlreadyClaimedGift: '\u3053\u306e\u3054\u6ce8\u6587\u306f\u3059\u3067\u306b\u6709\u52b9\u5316\u7279\u5178\u3092\u53d7\u3051\u53d6\u3063\u3066\u3044\u307e\u3059\u3002\u91cd\u8907\u3057\u305f\u3054\u8acb\u6c42\u306f\u304a\u53d7\u3051\u3067\u304d\u307e\u305b\u3093\u3002',\n      errMissingTitle: '\u4ee5\u4e0b\u306e\u9805\u76ee\u3092\u3054\u8a18\u5165\u304f\u3060\u3055\u3044\uff1a',\n      errSubmitFailed: '\u9001\u4fe1\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u3057\u3070\u3089\u304f\u3057\u3066\u304b\u3089\u518d\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002',\n      errSubmitFailedWithCode: '\u9001\u4fe1\u306b\u5931\u6557\u3057\u307e\u3057\u305f (\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9: {code})\u3002\u3053\u306e\u30b3\u30fc\u30c9\u3092\u6dfb\u3048\u3066\u30ab\u30b9\u30bf\u30de\u30fc\u30b5\u30dd\u30fc\u30c8\u307e\u3067\u3054\u9023\u7d61\u304f\u3060\u3055\u3044\u3002',\n      needHelpLink: '\u30a8\u30e9\u30fc\u767a\u751f\uff1fBUG \u3092\u5831\u544a',\n      needHelpTitle: '\ud83e\udd1d \u3053\u306e\u30d5\u30a9\u30fc\u30e0\u3067\u304a\u56f0\u308a\u3067\u3059\u304b\uff1f',\n      needHelpHint: '\u72b6\u6cc1\u3092\u304a\u66f8\u304d\u304f\u3060\u3055\u3044\u3002\u4e0b\u8a18\u306e\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3078\u3054\u9023\u7d61\u3044\u305f\u3057\u307e\u3059\uff1a',\n      needHelpPlaceholder: '\u4f55\u304c\u8d77\u304d\u305f\u304b\u3001\u3069\u306e\u30b9\u30c6\u30c3\u30d7\u3067\u6b62\u307e\u3063\u305f\u304b\u3001\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u306a\u3069\u3092\u3054\u8a18\u5165\u304f\u3060\u3055\u3044...',\n      needHelpSend: '\u9001\u4fe1',\n      needHelpCancel: '\u30ad\u30e3\u30f3\u30bb\u30eb',\n      needHelpClose: '\u9589\u3058\u308b',\n      needHelpThanks: '\u2705 \u53d7\u3051\u4ed8\u3051\u307e\u3057\u305f\u3002{email} \u5b9b\u306b\u307e\u3082\u306a\u304f\u3054\u9023\u7d61\u3044\u305f\u3057\u307e\u3059\u3002',\n      needHelpErrTooShort: '5 \u6587\u5b57\u4ee5\u4e0a\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u3002',\n      errNetwork: '\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u63a5\u7d9a\u3092\u3054\u78ba\u8a8d\u304f\u3060\u3055\u3044\u3002',\n      errUpload: '\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u518d\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002',\n      errNotImage: '\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u306e\u307f\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u53ef\u80fd\u3067\u3059\u3002',\n      errFileTooBig: '\u5404\u753b\u50cf\u306f10MB\u4ee5\u4e0b\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002',\n      errTooManyImages: '\u753b\u50cf\u306f\u6700\u59275\u679a\u307e\u3067\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3067\u304d\u307e\u3059\u3002',\n      errAI_NOT_SCREENSHOT: 'Amazon\u30ec\u30d3\u30e5\u30fc\u753b\u9762\u306e\u753b\u50cf\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u7121\u95a2\u4fc2\u306a\u5199\u771f\u306e\u3088\u3046\u3067\u3059\u3002',\n      errAI_ALREADY_SUBMITTED: '\u30ec\u30d3\u30e5\u30fc\u306f\u3059\u3067\u306b\u63d0\u51fa\u6e08\u307f\u306e\u3088\u3046\u3067\u3059\u3002\u7de8\u96c6\u753b\u9762\uff08\u30bf\u30a4\u30c8\u30eb\u3068\u661f\u304c\u898b\u3048\u308b\u72b6\u614b\uff09\u306e\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u3092\u64ae\u3063\u3066\u304f\u3060\u3055\u3044\u3002',\n      errAI_WRONG_PAGE: '\u3053\u306e\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u306fAmazon\u30ec\u30d3\u30e5\u30fc\u30da\u30fc\u30b8\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u307e\u305aAmazon\u3067\u30ec\u30d3\u30e5\u30fc\u3092\u63d0\u51fa\u3057\u3066\u304f\u3060\u3055\u3044\u3002',\n      errAI_FEEDBACK_NOT_REVIEW: '\u51fa\u54c1\u8005\u3078\u306e\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u304c\u63d0\u51fa\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u5546\u54c1\u30ec\u30d3\u30e5\u30fc\u3092\u66f8\u3044\u3066\u304f\u3060\u3055\u3044\u3002',\n      errAI_REVIEW_NOT_FEEDBACK: '\u3053\u308c\u306f\u51fa\u54c1\u8005\u8a55\u4fa1\u30da\u30fc\u30b8\u3067\u306f\u306a\u3044\u3088\u3046\u3067\u3059\u3002Amazon\u3067\u51fa\u54c1\u8005\u8a55\u4fa1\u3092\u9001\u4fe1\u3057\u3066\u304b\u3089\u3001\u305d\u306e\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3066\u304f\u3060\u3055\u3044\u3002',\n      errAI_LOW_RATING: '\u8a55\u4fa1\u304c\u30ae\u30d5\u30c8\u306e\u6761\u4ef6\u306b\u9054\u3057\u3066\u3044\u306a\u3044\u3088\u3046\u3067\u3059\u3002Amazon\u3067\u8a55\u4fa1\u3092\u4e0a\u3052\u3066\u518d\u5ea6\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3066\u304f\u3060\u3055\u3044\u3002',\n      errAI_UNRECOGNIZED: '\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u3092\u8a8d\u8b58\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002Amazon\u30ec\u30d3\u30e5\u30fc\u7de8\u96c6\u753b\u9762\u306e\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3066\u304f\u3060\u3055\u3044\u3002',\n      errAI_PARSE: '\u78ba\u8a8d\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u518d\u5ea6\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3066\u304f\u3060\u3055\u3044\u3002',\n      fbStep3Intro: '\ud83c\udf89 \u3082\u3046\u3059\u3050\u5b8c\u4e86\u3067\u3059\uff01\u30ae\u30d5\u30c8\u53d7\u3051\u53d6\u308a\u307e\u3067\u3042\u30682\u30b9\u30c6\u30c3\u30d7\u3002<br>\u5b8c\u4e86\u5f8c\u3059\u3050\u306b\u30ae\u30d5\u30c8\u3092\u304a\u9001\u308a\u3057\u307e\u3059\uff01',\n      fbStep3S1Title: '\u30b9\u30c6\u30c3\u30d71\uff1a\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u51fa\u54c1\u8005\u8a55\u4fa1\u3092\u6b8b\u3057\u3001\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u3092\u64ae\u5f71',\n      fbWriteReview: '\u51fa\u54c1\u8005\u8a55\u4fa1\u3092\u6b8b\u3059 \u2192',\n      fbStep3S2Title: '\u30b9\u30c6\u30c3\u30d72\uff1a\u9001\u4fe1\u3057\u305f\u51fa\u54c1\u8005\u8a55\u4fa1\u306e\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9',\n      fbGuideStep1: '\u6ce8\u6587\u3092\u898b\u3064\u3051\u3066 <b>Leave Seller Feedback<\/b> \u3092\u30bf\u30c3\u30d7',\n      fbGuideStep2: '\u77ed\u3044\u30b3\u30e1\u30f3\u30c8\u3092\u5165\u529b',\n      fbGuideStep3: '<b>Submit Feedback<\/b> \u3092\u30bf\u30c3\u30d7',\n      fbGuideReminder: '\ud83d\udca1 \u4e00\u8a00\u3067\u5341\u5206 \u2014 \u8a55\u4fa1\u304c\u898b\u3048\u308b\u3088\u3046\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002',\n      fbUploadHint: '\u3053\u3053\u306b\u51fa\u54c1\u8005\u8a55\u4fa1\u306e\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u3092\u30af\u30ea\u30c3\u30af\u307e\u305f\u306f\u30c9\u30e9\u30c3\u30b0\u3057\u3066\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3002',\n      fbExampleLabel: '\u4f8b\uff08\u51fa\u54c1\u8005\u8a55\u4fa1\uff09',\n      errPaymentEmail: '\u6709\u52b9\u306a\u304a\u652f\u6255\u3044\u7528\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002',\n      errPaymentMethod: '\u304a\u652f\u6255\u3044\u65b9\u6cd5\u3092\u304a\u9078\u3073\u304f\u3060\u3055\u3044\u3002',\n      addrLabel: '\u914d\u9001\u5148\u60c5\u5831',\n      addrAddress: '\u8a73\u7d30\u306a\u4f4f\u6240',\n      addrCity: '\u5e02\u533a\u753a\u6751',\n      addrState: '\u90fd\u9053\u5e9c\u770c',\n      addrPostCode: '\u90f5\u4fbf\u756a\u53f7',\n      addrPhone: '\u96fb\u8a71\u756a\u53f7',\n      addrPhoneHint: '\u4efb\u610f \u2014 \u914d\u9001\u30c8\u30e9\u30d6\u30eb\u9632\u6b62\u306e\u305f\u3081\u3054\u5165\u529b\u3092\u63a8\u5968\u3057\u307e\u3059\u3002',\n      errAddrAddress: '\u8a73\u7d30\u306a\u4f4f\u6240\u3092\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u3002',\n      errAddrCity: '\u5e02\u533a\u753a\u6751\u3092\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u3002',\n      errAddrState: '\u90fd\u9053\u5e9c\u770c\u3092\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u3002',\n      errAddrPostCode: '\u90f5\u4fbf\u756a\u53f7\u3092\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u3002',\n      errAddrPhone: '\u96fb\u8a71\u756a\u53f7\u3092\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u3002',\n      errAddrPhoneFormat: '\u96fb\u8a71\u756a\u53f7\u306f\u6570\u5b57\u3001\u30b9\u30da\u30fc\u30b9\u3001+\u3001-\u3001()\u306e\u307f\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002',\n      attachTip: '\u95a2\u9023\u3059\u308b\u5199\u771f\u304c\u3042\u308c\u3070\u3001\u554f\u984c\u306e\u8a3a\u65ad\u304c\u3088\u308a\u8fc5\u901f\u306b\u306a\u308a\u307e\u3059\u3002',\n      dropzoneClick: '\u30af\u30ea\u30c3\u30af\u3057\u3066\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9',\n      dropzoneOrDrag: '\u307e\u305f\u306f\u30c9\u30e9\u30c3\u30b0\uff06\u30c9\u30ed\u30c3\u30d7',\n      step3Intro: '\ud83c\udf89 \u3042\u3068\u5c11\u3057\u3067\u3059\uff01\u7279\u5178\u3092\u53d7\u3051\u53d6\u308b\u307e\u3067 2 \u30b9\u30c6\u30c3\u30d7\u3002<br>\u624b\u7d9a\u304d\u5b8c\u4e86\u5f8c\u3001\u30ae\u30d5\u30c8\u3092\u304a\u9001\u308a\u3044\u305f\u3057\u307e\u3059\uff01',\n      exampleLabel: '\u4f8b',\n      errAddrMissing: '\u5fc5\u8981\u306a\u914d\u9001\u5148\u60c5\u5831\u3092\u3059\u3079\u3066\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u3002',\n      giftConfirmGiftcard: '\ud83c\udf81 \u3054\u63d0\u51fa\u5f8c\u3059\u3050\u306b {name} \u306e\u30b3\u30fc\u30c9\u3092\u30e1\u30fc\u30eb\u3067\u304a\u9001\u308a\u3044\u305f\u3057\u307e\u3059\u3002',\n      giftConfirmVisaPrepaid: '\ud83c\udf81 \u3054\u63d0\u51fa\u5f8c\u3059\u3050\u306b VISA \u30d7\u30ea\u30da\u30a4\u30c9\u30ab\u30fc\u30c9\u306e\u756a\u53f7\u3068 CVV \u3092\u753b\u9762\u306b\u8868\u793a\u3057\u3001\u30e1\u30fc\u30eb\u3067\u3082\u304a\u9001\u308a\u3044\u305f\u3057\u307e\u3059\u3002\u5728\u5eab\u304c\u4e0d\u8db3\u3057\u3066\u3044\u308b\u5834\u5408\u306f\u30013 \u65e5\u4ee5\u5185\u306b\u304a\u5c4a\u3051\u3044\u305f\u3057\u307e\u3059\u3002',\n      giftConfirmManual: '\ud83c\udf81 {name} \u3092 3 \u55b6\u696d\u65e5\u4ee5\u5185\u306b\u304a\u9001\u308a\u3057\u3001\u9001\u91d1\u5b8c\u4e86\u5f8c\u306b\u30e1\u30fc\u30eb\u3067\u304a\u77e5\u3089\u305b\u3044\u305f\u3057\u307e\u3059\u3002',\n      giftConfirmCash: '\ud83c\udf81 {name} \u3092 3 \u55b6\u696d\u65e5\u4ee5\u5185\u306b\u51e6\u7406\u3044\u305f\u3057\u307e\u3059\u3002',\n      giftConfirmShip: '\ud83c\udf81 {name} \u3092{cityPart} 3 \u55b6\u696d\u65e5\u4ee5\u5185\u306b\u767a\u9001\u3057\u3001\u767a\u9001\u5f8c\u306b\u30e1\u30fc\u30eb\u3067\u304a\u77e5\u3089\u305b\u3044\u305f\u3057\u307e\u3059\u3002',\n      giftConfirmVirtual: '\ud83c\udf81 {name} \u304c\u3054\u6ce8\u6587\u306b\u81ea\u52d5\u7684\u306b\u9069\u7528\u3055\u308c\u307e\u3057\u305f\u3002',\n      giftConfirmCityPart: ' {city} \u5b9b\u3066\u306b'\n    },\n    es: {\n      orderNumber: 'N\u00famero de pedido', email: 'Correo electr\u00f3nico', name: 'Nombre',\n      findOrder: '\u00bfD\u00f3nde encuentro mi n\u00famero de pedido?',\n      expectationsLabel: '\u00bfCumple con tus expectativas?',\n      expPick: 'Selecciona...',\n      expYes: 'S\u00ed, funciona bien',\n      expNo: 'No, hay algunos problemas',\n      expNotUse: 'A\u00fan no lo he usado',\n      complaintLabel: 'Describe tu problema',\n      complaintPh: 'Describe el problema en detalle (m\u00ednimo 20 caracteres).',\n      attachLabel: 'Adjuntar im\u00e1genes (opcional, hasta 5)',\n      addImage: '+ A\u00f1adir imagen',\n      attachHintDefault: 'M\u00e1ximo 5 im\u00e1genes, hasta 10 MB cada una.',\n      ratingLabel: '\u00bfQu\u00e9 te parece nuestro producto?',\n      suggestionTitle: 'Las cr\u00edticas son bienvenidas. Tu sugerencia nos ayudar\u00e1 a mejorar.',\n      willingTitle: '\u00bfTe gustar\u00eda dejar una rese\u00f1a en Amazon? Tenemos una sorpresa para ti \ud83c\udf81',\n      willingYes: 'Echar un vistazo',\n      willingNo: 'No, gracias',\n      giftsTitle: 'Elige un regalo sorpresa',\n      noInterest: 'No, gracias',\n      paymentLabel: 'Elige tu m\u00e9todo de reembolso',\n      paymentPaypalEmail: 'Correo de PayPal',\n      paymentVenmoEmail: 'Correo de Venmo',\n      paymentCardMsg: '\ud83d\udce7 Te enviaremos el c\u00f3digo y la contrase\u00f1a de la tarjeta regalo por correo. Canj\u00e9ala cuanto antes.',\n      paymentRakutenWarn: '\u26a0\ufe0f \u697d\u5929\u516c\u5f0f\u306e\u5236\u5ea6\u5909\u66f4\u306b\u3088\u308a\u3001\u53d7\u53d6\u6642\u306b\u984d\u9762\u306e3%\u304c\u5dee\u3057\u5f15\u304b\u308c\u307e\u3059\u3002\uff08\u4f8b\uff1a\u984d\u9762 5,000\u5186 \u2794 \u53d7\u53d6\u984d 4,850\u5186\uff09',\n      paymentVisaInfo: 'Puedes usar la tarjeta Visa prepago en muchas plataformas, incluido Amazon. Viene cargada con saldo.<br>Te enviaremos el n\u00famero y la contrase\u00f1a de la tarjeta por correo.',\n      btnNext: 'Siguiente',\n      btnActivate: 'Activar ahora',\n      btnSubmit: 'Enviar',\n      btnBack: '\u2190 Atr\u00e1s',\n      writeReview: 'Escribir una rese\u00f1a \u2192',\n      step3S1Title: 'Paso 1: Haz clic en el bot\u00f3n para escribir una rese\u00f1a y tomar una captura',\n      step3S1Sub: 'Toma la captura antes de enviar tu rese\u00f1a y aseg\u00farate de que tu calificaci\u00f3n sea visible para confirmarla r\u00e1pidamente.',\n      step3S2Title: 'Paso 2: Sube la captura de la rese\u00f1a que acabas de enviar',\n      step3S2Sub: 'Para una aprobaci\u00f3n sin problemas, no menciones este regalo gratuito en tu rese\u00f1a.',\n      uploadScreenshotHint: 'Haz clic o arrastra un archivo aqu\u00ed para subir.',\n      aiChecking: 'Verificando captura...',\n      aiCheckingLong: 'Espera un momento \u2014 nuestra IA est\u00e1 verificando tu captura.',\n      aiPassed: 'Captura verificada.',\n      thanksBasicTitle: '\u00a1Gracias!',\n      thanksBasicBody: 'Tu garant\u00eda se ha activado correctamente.',\n      thanksGiftTitle: '\u00a1Todo listo! \ud83c\udf89',\n      thanksGiftBody: 'Tu garant\u00eda est\u00e1 activada y tu regalo ser\u00e1 procesado pronto. Revisa tu bandeja de entrada.',\n      thanksGiftManualTitle: '\u00a1Todo listo! \ud83c\udf89',\n      thanksGiftManualBody: '\ud83c\udf81 Tu garant\u00eda est\u00e1 activada. Nuestro equipo procesar\u00e1 tu pago en un plazo de 3 d\u00edas laborables y te avisar\u00e1 por correo cuando se env\u00ede.',\n      thanksGiftShipTitle: '\u00a1Todo listo! \ud83c\udf89',\n      thanksGiftShipBody: '\ud83c\udf81 Tu garant\u00eda est\u00e1 activada. Enviaremos tu regalo en un plazo de 3 d\u00edas laborables y te avisaremos por correo cuando est\u00e9 en camino.',\n      thanksGiftVirtualTitle: '\u00a1Todo listo! \ud83c\udf89',\n      thanksGiftVirtualBody: '\ud83c\udf81 Tu garant\u00eda est\u00e1 activada y tu bono se ha aplicado a tu pedido autom\u00e1ticamente. \u00a1Gracias!',\n      thanksEmailNotice: '\ud83d\udce7 Tambi\u00e9n hemos enviado un correo de confirmaci\u00f3n a {email}. Revisa tu carpeta de spam si no lo encuentras.',\n      paymentPrivacy: '\ud83d\udd12 Protecci\u00f3n de privacidad: No almacenamos permanentemente tu informaci\u00f3n de pago. Aseg\u00farate de que todos los datos sean correctos.',\n      paymentVisaHeading: '\u00bfC\u00f3mo vincular una tarjeta Visa prepago a Amazon?',\n      thanksComplaintTitle: '\u00a1Ticket enviado!',\n      thanksComplaintBody: 'Tu ticket se ha enviado correctamente. Responderemos lo antes posible. Por favor, evita enviar tickets duplicados.',\n      thanksReviewLimitedTitle: '\u00a1Gracias! \ud83d\udc9d',\n      thanksReviewLimitedBody: 'Parece que Amazon ha limitado tu rese\u00f1a. No te preocupes \u2014 enviaremos tu regalo tal como prometimos.',\n      thanksGiftCardTitle: '\ud83c\udf89 \u00a1Tu tarjeta regalo est\u00e1 lista!',\n      thanksGiftCardBody: '\u00a1Gracias! Tu garant\u00eda est\u00e1 activada y el c\u00f3digo de tu tarjeta regalo aparece abajo. Tambi\u00e9n lo hemos enviado a tu correo.',\n      thanksGiftCardPendingTitle: '\u00a1Todo listo! \ud83c\udf89',\n      thanksGiftCardPendingBody: 'Tu garant\u00eda est\u00e1 activada. Tu tarjeta regalo se est\u00e1 procesando y llegar\u00e1 a tu correo en breve.',\n      thanksVisaGiftCardTitle: '\ud83c\udf89 \u00a1Tu tarjeta VISA prepago est\u00e1 lista!',\n      thanksVisaGiftCardBody: 'A continuaci\u00f3n encontrar\u00e1s el n\u00famero y el CVV de tu tarjeta VISA \u2014 por favor canj\u00e9alos pronto. Tambi\u00e9n los hemos enviado a tu correo.',\n      thanksVisaGiftCardPendingTitle: '\ud83d\udce6 Reabasteciendo stock',\n      thanksVisaGiftCardPendingBody: 'Nuestro stock de tarjetas VISA prepago est\u00e1 temporalmente bajo. Reabasteceremos y te enviaremos tu tarjeta por correo dentro de 3 d\u00edas.',\n      giftcardLabel: 'C\u00f3digo de tu tarjeta regalo:',\n      giftcardLabelVisa: 'Tu tarjeta Visa prepago:',\n      visaCardValidity: '\u26a0\ufe0f Por favor canj\u00e9ala antes de la fecha de caducidad mostrada arriba.',\n      visaCardVideoTitle: '\u00bfC\u00f3mo vincular una tarjeta Visa prepago a Amazon?',\n      giftcardCopy: 'Copiar',\n      giftcardCopied: '\u00a1Copiado!',\n      giftcardEmailSent: 'Tambi\u00e9n hemos enviado el c\u00f3digo a tu correo.',\n      errFormat: 'N\u00famero de pedido no v\u00e1lido. Formato esperado: XXX-XXXXXXX-XXXXXXX.',\n      errEmail: 'Introduce un correo v\u00e1lido.',\n      errName: 'Introduce tu nombre.',\n      errRating: 'Selecciona una calificaci\u00f3n.',\n      errContentShort: 'Describe el problema con al menos 20 caracteres.',\n      errNotShipped: 'Activa despu\u00e9s de recibir tu producto.',\n      errRefunded: 'Tu pedido ha sido reembolsado y no est\u00e1 cubierto por la pol\u00edtica de garant\u00eda.',\n      errAlreadyActivated: 'Tu pedido ya ha sido activado.',\n      errReviewOrder: 'Los pedidos de campa\u00f1a de prueba tienen la garant\u00eda de un a\u00f1o activada autom\u00e1ticamente, no requieren activaci\u00f3n manual.',\n      errAlreadyClaimedGift: 'Este pedido ya ha reclamado un regalo de activaci\u00f3n. No se permiten reclamaciones duplicadas.',\n      errMissingTitle: 'Completa los siguientes campos:',\n      errSubmitFailed: 'Error al enviar. Int\u00e9ntalo m\u00e1s tarde.',\n      errSubmitFailedWithCode: 'Error al enviar (c\u00f3digo: {code}). Por favor contacta con soporte e incluye este c\u00f3digo.',\n      needHelpLink: '\u00bfErrores ocurridos? Reportar BUG',\n      needHelpTitle: '\ud83e\udd1d \u00bfNecesitas ayuda con este formulario?',\n      needHelpHint: 'Cu\u00e9ntanos qu\u00e9 pas\u00f3. Te contactaremos en:',\n      needHelpPlaceholder: 'Describe qu\u00e9 sucedi\u00f3, en qu\u00e9 paso te quedaste atascado y cualquier mensaje de error que viste...',\n      needHelpSend: 'Enviar',\n      needHelpCancel: 'Cancelar',\n      needHelpClose: 'Cerrar',\n      needHelpThanks: '\u2705 \u00a1Recibido! Hemos recibido tu mensaje y te contactaremos pronto en {email}.',\n      needHelpErrTooShort: 'Por favor, cu\u00e9ntanos un poco m\u00e1s (al menos 5 caracteres).',\n      errNetwork: 'Error de red. Comprueba tu conexi\u00f3n.',\n      errUpload: 'Error al subir. Int\u00e9ntalo de nuevo.',\n      errNotImage: 'Solo se permiten archivos de imagen.',\n      errFileTooBig: 'Cada imagen debe pesar 10 MB o menos.',\n      errTooManyImages: 'Puedes subir hasta 5 im\u00e1genes.',\n      errAI_NOT_SCREENSHOT: 'Sube una imagen de tu rese\u00f1a de Amazon. Parece una foto sin relaci\u00f3n con la rese\u00f1a.',\n      errAI_ALREADY_SUBMITTED: 'Tu rese\u00f1a parece ya enviada. Toma la captura mientras a\u00fan est\u00e1s en la p\u00e1gina de edici\u00f3n (con t\u00edtulo y estrellas visibles).',\n      errAI_WRONG_PAGE: 'Esta captura no es la p\u00e1gina de rese\u00f1a de Amazon. Por favor env\u00eda primero tu rese\u00f1a en Amazon.',\n      errAI_FEEDBACK_NOT_REVIEW: 'Enviaste comentarios al vendedor. Por favor escribe una rese\u00f1a del producto.',\n      errAI_REVIEW_NOT_FEEDBACK: 'Esto no parece una p\u00e1gina de comentarios al vendedor. Env\u00eda primero tus comentarios al vendedor en Amazon y vuelve a subir la captura.',\n      errAI_LOW_RATING: 'Tu calificaci\u00f3n parece demasiado baja para recibir el regalo. S\u00fabela en Amazon y vuelve a subir la captura.',\n      errAI_UNRECOGNIZED: 'No pudimos reconocer esta captura. Sube la captura de la p\u00e1gina de edici\u00f3n de rese\u00f1a de Amazon.',\n      errAI_PARSE: 'La verificaci\u00f3n fall\u00f3. Vuelve a subir.',\n      fbStep3Intro: '\ud83c\udf89 \u00a1Casi listo! Solo 2 pasos r\u00e1pidos para reclamar tu regalo.<br>\u00a1Te enviaremos tu regalo al terminar!',\n      fbStep3S1Title: 'Paso 1: Toca el bot\u00f3n para dejar comentarios al vendedor y toma una captura',\n      fbWriteReview: 'Dejar comentarios al vendedor \u2192',\n      fbStep3S2Title: 'Paso 2: Sube la captura de los comentarios al vendedor que acabas de enviar',\n      fbGuideStep1: 'Encuentra tu pedido y toca <b>Leave Seller Feedback<\/b>',\n      fbGuideStep2: 'Escribe un comentario breve',\n      fbGuideStep3: 'Toca <b>Submit Feedback<\/b>',\n      fbGuideReminder: '\ud83d\udca1 Una frase basta \u2014 aseg\u00farate de que la calificaci\u00f3n se vea.',\n      fbUploadHint: 'Haz clic o arrastra aqu\u00ed la captura de comentarios al vendedor.',\n      fbExampleLabel: 'Ejemplo (Comentarios al vendedor)',\n      errPaymentEmail: 'Introduce un correo v\u00e1lido para tu m\u00e9todo de pago.',\n      errPaymentMethod: 'Elige un m\u00e9todo de reembolso.',\n      addrLabel: 'Informaci\u00f3n de env\u00edo',\n      addrAddress: 'Direcci\u00f3n detallada',\n      addrCity: 'Ciudad',\n      addrState: 'Provincia',\n      addrPostCode: 'C\u00f3digo postal',\n      addrPhone: 'Tel\u00e9fono',\n      addrPhoneHint: 'Opcional \u2014 se recomienda para evitar problemas de entrega.',\n      errAddrAddress: 'Introduce la direcci\u00f3n completa.',\n      errAddrCity: 'Introduce la ciudad.',\n      errAddrState: 'Introduce la provincia.',\n      errAddrPostCode: 'Introduce el c\u00f3digo postal.',\n      errAddrPhone: 'Introduce tu n\u00famero de tel\u00e9fono.',\n      errAddrPhoneFormat: 'El tel\u00e9fono solo puede contener d\u00edgitos, espacios, +, -, ( y ).',\n      attachTip: 'Si tienes fotos relacionadas, a\u00f1adirlas nos ayuda a diagnosticar el problema m\u00e1s r\u00e1pido.',\n      dropzoneClick: 'Haz clic para subir',\n      dropzoneOrDrag: 'o arrastra y suelta',\n      step3Intro: '\ud83c\udf89 \u00a1Ya casi! Solo 2 pasos r\u00e1pidos para reclamar tu regalo.<br>\u00a1Cuando termines, te enviaremos tu regalo!',\n      exampleLabel: 'Ejemplo',\n      errAddrMissing: 'Completa todos los campos de env\u00edo requeridos.',\n      giftConfirmGiftcard: '\ud83c\udf81 Te enviaremos el c\u00f3digo de {name} por correo justo despu\u00e9s de tu env\u00edo.',\n      giftConfirmVisaPrepaid: '\ud83c\udf81 Tras el env\u00edo te mostraremos el n\u00famero y el CVV de la tarjeta VISA prepago, y tambi\u00e9n los enviaremos a tu correo. Si nuestro stock se agota, te lo entregaremos dentro de 3 d\u00edas.',\n      giftConfirmManual: '\ud83c\udf81 Nuestro equipo enviar\u00e1 tu {name} en un plazo de 3 d\u00edas laborables y te avisar\u00e1 por correo.',\n      giftConfirmCash: '\ud83c\udf81 Procesaremos tu {name} en un plazo de 3 d\u00edas laborables.',\n      giftConfirmShip: '\ud83c\udf81 Enviaremos tu {name}{cityPart} en un plazo de 3 d\u00edas laborables y te avisaremos por correo.',\n      giftConfirmVirtual: '\ud83c\udf81 Tu {name} se aplicar\u00e1 a tu pedido autom\u00e1ticamente.',\n      giftConfirmCityPart: ' a {city}'\n    },\n    de: {\n      orderNumber: 'Bestellnummer', email: 'E-Mail', name: 'Name',\n      findOrder: 'Wo finde ich meine Bestellnummer?',\n      expectationsLabel: 'Entspricht es Ihren Erwartungen?',\n      expPick: 'Bitte w\u00e4hlen...',\n      expYes: 'Ja, funktioniert gut',\n      expNo: 'Nein, es gibt Probleme',\n      expNotUse: 'Noch nicht benutzt',\n      complaintLabel: 'Beschreiben Sie Ihr Problem',\n      complaintPh: 'Bitte beschreiben Sie das Problem detailliert (mindestens 20 Zeichen).',\n      attachLabel: 'Bilder anh\u00e4ngen (optional, bis zu 5)',\n      addImage: '+ Bild hinzuf\u00fcgen',\n      attachHintDefault: 'Max. 5 Bilder, jeweils bis zu 10 MB.',\n      ratingLabel: 'Wie gef\u00e4llt Ihnen unser Produkt?',\n      suggestionTitle: 'Kritik ist willkommen. Ihr Vorschlag hilft uns, besser zu werden.',\n      willingTitle: 'M\u00f6chten Sie eine Bewertung auf Amazon hinterlassen? Wir haben eine \u00dcberraschung f\u00fcr Sie \ud83c\udf81',\n      willingYes: 'Ansehen',\n      willingNo: 'Nein, danke',\n      giftsTitle: 'W\u00e4hlen Sie ein \u00dcberraschungsgeschenk',\n      noInterest: 'Nein, danke',\n      paymentLabel: 'W\u00e4hlen Sie Ihre Erstattungsmethode',\n      paymentPaypalEmail: 'PayPal-E-Mail',\n      paymentVenmoEmail: 'Venmo-E-Mail',\n      paymentCardMsg: '\ud83d\udce7 Wir senden Ihnen den Geschenkkartencode und das Passwort per E-Mail. Bitte l\u00f6sen Sie ihn zeitnah ein.',\n      paymentRakutenWarn: '\u26a0\ufe0f \u697d\u5929\u516c\u5f0f\u306e\u5236\u5ea6\u5909\u66f4\u306b\u3088\u308a\u3001\u53d7\u53d6\u6642\u306b\u984d\u9762\u306e3%\u304c\u5dee\u3057\u5f15\u304b\u308c\u307e\u3059\u3002\uff08\u4f8b\uff1a\u984d\u9762 5,000\u5186 \u2794 \u53d7\u53d6\u984d 4,850\u5186\uff09',\n      paymentVisaInfo: 'Die Visa-Prepaid-Karte k\u00f6nnen Sie auf vielen Plattformen, einschlie\u00dflich Amazon, verwenden. Sie ist mit einem Guthaben vorgeladen.<br>Kartennummer und Passwort senden wir Ihnen per E-Mail zu.',\n      btnNext: 'Weiter',\n      btnActivate: 'Jetzt aktivieren',\n      btnSubmit: 'Absenden',\n      btnBack: '\u2190 Zur\u00fcck',\n      writeReview: 'Eine Bewertung schreiben \u2192',\n      step3S1Title: 'Schritt 1: Klicken Sie auf die Schaltfl\u00e4che, um eine Bewertung zu schreiben, und erstellen Sie einen Screenshot',\n      step3S1Sub: 'Bitte erstellen Sie den Screenshot, bevor Sie Ihre Bewertung absenden, und achten Sie darauf, dass die Sterne sichtbar sind.',\n      step3S2Title: 'Schritt 2: Laden Sie den Screenshot Ihrer Bewertung hoch',\n      step3S2Sub: 'F\u00fcr eine reibungslose Freigabe bitte dieses Geschenk nicht in Ihrer Bewertung erw\u00e4hnen.',\n      uploadScreenshotHint: 'Klicken oder Datei hierher ziehen zum Hochladen.',\n      aiChecking: 'Screenshot wird gepr\u00fcft...',\n      aiCheckingLong: 'Bitte warten Sie einen Moment \u2014 unsere KI pr\u00fcft Ihren Screenshot.',\n      aiPassed: 'Screenshot verifiziert.',\n      thanksBasicTitle: 'Vielen Dank!',\n      thanksBasicBody: 'Ihre Garantie wurde erfolgreich aktiviert.',\n      thanksGiftTitle: 'Fertig! \ud83c\udf89',\n      thanksGiftBody: 'Ihre Garantie wurde aktiviert und Ihr Geschenk wird in K\u00fcrze bearbeitet. Bitte pr\u00fcfen Sie Ihren Posteingang.',\n      thanksGiftManualTitle: 'Fertig! \ud83c\udf89',\n      thanksGiftManualBody: '\ud83c\udf81 Ihre Garantie ist aktiviert. Unser Team bearbeitet Ihre Zahlung innerhalb von 3 Werktagen und benachrichtigt Sie per E-Mail nach Versand.',\n      thanksGiftShipTitle: 'Fertig! \ud83c\udf89',\n      thanksGiftShipBody: '\ud83c\udf81 Ihre Garantie ist aktiviert. Wir versenden Ihr Geschenk innerhalb von 3 Werktagen und informieren Sie per E-Mail, sobald es unterwegs ist.',\n      thanksGiftVirtualTitle: 'Fertig! \ud83c\udf89',\n      thanksGiftVirtualBody: '\ud83c\udf81 Ihre Garantie ist aktiviert und Ihr Bonus wurde automatisch auf Ihre Bestellung angewendet. Vielen Dank!',\n      thanksEmailNotice: '\ud83d\udce7 Wir haben auch eine Best\u00e4tigungs-E-Mail an {email} gesendet. Bitte pr\u00fcfen Sie Ihren Spam-Ordner, falls Sie sie nicht sehen.',\n      paymentPrivacy: '\ud83d\udd12 Datenschutz: Wir speichern Ihre Zahlungsinformationen nicht dauerhaft. Bitte pr\u00fcfen Sie, dass alle Angaben korrekt sind.',\n      paymentVisaHeading: 'Wie binde ich eine VISA-Prepaid-Karte an Amazon?',\n      thanksComplaintTitle: 'Anfrage eingegangen!',\n      thanksComplaintBody: 'Ihre Support-Anfrage wurde erfolgreich \u00fcbermittelt. Wir melden uns baldm\u00f6glichst. Bitte vermeiden Sie Mehrfacheinsendungen.',\n      thanksReviewLimitedTitle: 'Vielen Dank! \ud83d\udc9d',\n      thanksReviewLimitedBody: 'Es scheint, dass Amazon Ihre Bewertung eingeschr\u00e4nkt hat. Keine Sorge \u2014 wir senden Ihr Geschenk wie versprochen.',\n      thanksGiftCardTitle: '\ud83c\udf89 Ihre Geschenkkarte ist bereit!',\n      thanksGiftCardBody: 'Vielen Dank! Ihre Garantie ist aktiviert und der Geschenkkartencode steht unten. Wir haben ihn auch an Ihre E-Mail gesendet.',\n      thanksGiftCardPendingTitle: 'Fertig! \ud83c\udf89',\n      thanksGiftCardPendingBody: 'Ihre Garantie ist aktiviert. Ihre Geschenkkarte wird bearbeitet und in K\u00fcrze per E-Mail zugestellt.',\n      thanksVisaGiftCardTitle: '\ud83c\udf89 Ihre VISA-Prepaid-Karte ist bereit!',\n      thanksVisaGiftCardBody: 'Ihre VISA-Kartennummer und CVV finden Sie unten \u2014 bitte l\u00f6sen Sie sie zeitnah ein. Wir haben sie auch per E-Mail an Sie gesendet.',\n      thanksVisaGiftCardPendingTitle: '\ud83d\udce6 Wir f\u00fcllen den Bestand auf',\n      thanksVisaGiftCardPendingBody: 'Unser Bestand an VISA-Prepaid-Karten ist vor\u00fcbergehend knapp. Wir f\u00fcllen auf und senden Ihre Karte innerhalb von 3 Tagen per E-Mail.',\n      giftcardLabel: 'Ihr Geschenkkartencode:',\n      giftcardLabelVisa: 'Ihre Visa-Prepaid-Karte:',\n      visaCardValidity: '\u26a0\ufe0f Bitte vor dem oben angezeigten Ablaufdatum einl\u00f6sen.',\n      visaCardVideoTitle: 'Wie binde ich eine VISA-Prepaid-Karte an Amazon?',\n      giftcardCopy: 'Kopieren',\n      giftcardCopied: 'Kopiert!',\n      giftcardEmailSent: 'Wir haben den Code auch an Ihre E-Mail gesendet.',\n      errFormat: 'Ung\u00fcltige Bestellnummer. Format: XXX-XXXXXXX-XXXXXXX.',\n      errEmail: 'Bitte g\u00fcltige E-Mail-Adresse eingeben.',\n      errName: 'Bitte Namen eingeben.',\n      errRating: 'Bitte Sternebewertung w\u00e4hlen.',\n      errContentShort: 'Bitte beschreiben Sie das Problem mit mindestens 20 Zeichen.',\n      errNotShipped: 'Bitte aktivieren Sie erst nach Erhalt des Produkts.',\n      errRefunded: 'Ihre Bestellung wurde erstattet und f\u00e4llt nicht unter die Garantie.',\n      errAlreadyActivated: 'Ihre Bestellung wurde bereits aktiviert.',\n      errReviewOrder: 'Testaktions-Bestellungen haben die einj\u00e4hrige Garantie automatisch aktiviert, keine manuelle Aktivierung erforderlich.',\n      errAlreadyClaimedGift: 'F\u00fcr diese Bestellung wurde bereits ein Aktivierungsgeschenk beansprucht. Doppelte Anspr\u00fcche sind nicht zul\u00e4ssig.',\n      errMissingTitle: 'Bitte f\u00fcllen Sie die folgenden Felder aus:',\n      errSubmitFailed: '\u00dcbermittlung fehlgeschlagen. Bitte sp\u00e4ter erneut versuchen.',\n      errSubmitFailedWithCode: '\u00dcbermittlung fehlgeschlagen (Fehlercode: {code}). Bitte kontaktieren Sie den Support unter Angabe dieses Codes.',\n      needHelpLink: 'Fehler aufgetreten? BUG melden',\n      needHelpTitle: '\ud83e\udd1d Brauchen Sie Hilfe mit diesem Formular?',\n      needHelpHint: 'Beschreiben Sie Ihr Problem. Wir kontaktieren Sie unter:',\n      needHelpPlaceholder: 'Beschreiben Sie, was passiert ist, bei welchem Schritt Sie nicht weiterkamen und welche Fehlermeldungen Sie gesehen haben...',\n      needHelpSend: 'Senden',\n      needHelpCancel: 'Abbrechen',\n      needHelpClose: 'Schlie\u00dfen',\n      needHelpThanks: '\u2705 Erhalten! Wir haben Ihre Nachricht empfangen und melden uns bald unter {email}.',\n      needHelpErrTooShort: 'Bitte beschreiben Sie es etwas ausf\u00fchrlicher (mindestens 5 Zeichen).',\n      errNetwork: 'Netzwerkfehler. Bitte pr\u00fcfen Sie Ihre Verbindung.',\n      errUpload: 'Upload fehlgeschlagen. Bitte erneut versuchen.',\n      errNotImage: 'Nur Bilddateien sind erlaubt.',\n      errFileTooBig: 'Jedes Bild darf maximal 10 MB gro\u00df sein.',\n      errTooManyImages: 'Sie k\u00f6nnen bis zu 5 Bilder hochladen.',\n      errAI_NOT_SCREENSHOT: 'Bitte laden Sie ein Bild Ihrer Amazon-Bewertung hoch. Das Bild scheint nichts mit der Bewertung zu tun zu haben.',\n      errAI_ALREADY_SUBMITTED: 'Ihre Bewertung scheint bereits abgesendet zu sein. Bitte Screenshot vom Bearbeitungsbildschirm machen (mit Titel und Sternen).',\n      errAI_WRONG_PAGE: 'Dieser Screenshot ist nicht die Amazon-Bewertungsseite. Bitte senden Sie Ihre Bewertung zuerst auf Amazon ab.',\n      errAI_FEEDBACK_NOT_REVIEW: 'Sie haben Verk\u00e4ufer-Feedback gesendet. Bitte schreiben Sie eine Produktbewertung.',\n      errAI_LOW_RATING: 'Ihre Bewertung scheint zu niedrig f\u00fcr das Geschenk zu sein. Bitte erh\u00f6hen Sie sie auf Amazon und laden Sie den Screenshot erneut hoch.',\n      errAI_UNRECOGNIZED: 'Wir konnten diesen Screenshot nicht erkennen. Bitte laden Sie den Screenshot der Amazon-Bewertungsseite hoch.',\n      errAI_PARSE: 'Pr\u00fcfung fehlgeschlagen. Bitte erneut hochladen.',\n      errAI_REVIEW_NOT_FEEDBACK: 'Dies scheint keine Verk\u00e4uferbewertungsseite zu sein. Bitte senden Sie zuerst auf Amazon eine Verk\u00e4uferbewertung ab und laden Sie diesen Screenshot hoch.',\n      fbStep3Intro: '\ud83c\udf89 Fast geschafft! Nur 2 kurze Schritte, um Ihr Geschenk zu erhalten.<br>Ihr Geschenk wird nach Abschluss gesendet!',\n      fbStep3S1Title: 'Schritt 1: Klicken Sie auf die Schaltfl\u00e4che, um eine Verk\u00e4uferbewertung abzugeben, und machen Sie einen Screenshot',\n      fbWriteReview: 'Verk\u00e4uferbewertung abgeben \u2192',\n      fbStep3S2Title: 'Schritt 2: Laden Sie den Screenshot der gerade abgesendeten Verk\u00e4uferbewertung hoch',\n      fbGuideStep1: 'Bestellung finden, <b>Leave Seller Feedback<\/b> antippen',\n      fbGuideStep2: 'Kurzen Kommentar eingeben',\n      fbGuideStep3: '<b>Submit Feedback<\/b> antippen',\n      fbGuideReminder: '\ud83d\udca1 Ein Satz gen\u00fcgt \u2014 achten Sie darauf, dass die Bewertung sichtbar ist.',\n      fbUploadHint: 'Klicken oder ziehen Sie hier den Screenshot der Verk\u00e4uferbewertung zum Hochladen.',\n      fbExampleLabel: 'Beispiel (Verk\u00e4uferbewertung)',\n      errPaymentEmail: 'Bitte g\u00fcltige E-Mail-Adresse f\u00fcr Ihre Zahlungsmethode eingeben.',\n      errPaymentMethod: 'Bitte Erstattungsmethode w\u00e4hlen.',\n      addrLabel: 'Lieferinformationen',\n      addrAddress: 'Genaue Adresse',\n      addrCity: 'Stadt',\n      addrState: 'Bundesland',\n      addrPostCode: 'Postleitzahl',\n      addrPhone: 'Telefon',\n      addrPhoneHint: 'Optional \u2014 empfohlen, um Lieferprobleme zu vermeiden.',\n      errAddrAddress: 'Bitte vollst\u00e4ndige Adresse eingeben.',\n      errAddrCity: 'Bitte Stadt eingeben.',\n      errAddrState: 'Bitte Bundesland eingeben.',\n      errAddrPostCode: 'Bitte Postleitzahl eingeben.',\n      errAddrPhone: 'Bitte Telefonnummer eingeben.',\n      errAddrPhoneFormat: 'Telefon darf nur Ziffern, Leerzeichen, +, -, ( und ) enthalten.',\n      attachTip: 'Wenn Sie relevante Fotos haben, hilft uns das, das Problem schneller zu diagnostizieren.',\n      dropzoneClick: 'Zum Hochladen klicken',\n      dropzoneOrDrag: 'oder per Drag & Drop',\n      step3Intro: '\ud83c\udf89 Fast geschafft! Nur noch 2 Schritte, um Ihr Geschenk zu erhalten.<br>Sobald alles erledigt ist, senden wir Ihr Geschenk!',\n      exampleLabel: 'Beispiel',\n      errAddrMissing: 'Bitte alle erforderlichen Lieferfelder ausf\u00fcllen.',\n      giftConfirmGiftcard: '\ud83c\udf81 Wir senden Ihnen den Code f\u00fcr {name} direkt nach Ihrer \u00dcbermittlung per E-Mail zu.',\n      giftConfirmVisaPrepaid: '\ud83c\udf81 Nach dem Absenden zeigen wir Ihnen die VISA-Prepaid-Karten-Nummer und CVV an und senden sie auch per E-Mail. Bei knappem Bestand liefern wir innerhalb von 3 Tagen.',\n      giftConfirmManual: '\ud83c\udf81 Unser Team versendet Ihr {name} innerhalb von 3 Werktagen und benachrichtigt Sie per E-Mail.',\n      giftConfirmCash: '\ud83c\udf81 Wir bearbeiten Ihr {name} innerhalb von 3 Werktagen.',\n      giftConfirmShip: '\ud83c\udf81 Wir versenden Ihr {name}{cityPart} innerhalb von 3 Werktagen und benachrichtigen Sie per E-Mail.',\n      giftConfirmVirtual: '\ud83c\udf81 Ihr {name} wird automatisch auf Ihre Bestellung angewendet.',\n      giftConfirmCityPart: ' nach {city}'\n    },\n    fr: {\n      orderNumber: 'Num\u00e9ro de commande', email: 'E-mail', name: 'Nom',\n      findOrder: 'O\u00f9 trouver mon num\u00e9ro de commande ?',\n      expectationsLabel: 'R\u00e9pond-il \u00e0 vos attentes ?',\n      expPick: 'Veuillez s\u00e9lectionner...',\n      expYes: 'Oui, il fonctionne bien',\n      expNo: 'Non, il y a des probl\u00e8mes',\n      expNotUse: 'Pas encore utilis\u00e9',\n      complaintLabel: 'D\u00e9crivez votre probl\u00e8me',\n      complaintPh: 'Veuillez d\u00e9crire le probl\u00e8me en d\u00e9tail (minimum 20 caract\u00e8res).',\n      attachLabel: 'Joindre des images (optionnel, jusqu\\'\u00e0 5)',\n      addImage: '+ Ajouter une image',\n      attachHintDefault: 'Max 5 images, jusqu\\'\u00e0 10 Mo chacune.',\n      ratingLabel: 'Que pensez-vous de notre produit ?',\n      suggestionTitle: 'Les critiques sont les bienvenues. Votre suggestion nous aidera \u00e0 progresser.',\n      willingTitle: 'Souhaitez-vous laisser un avis sur Amazon ? Nous avons une surprise pour vous \ud83c\udf81',\n      willingYes: 'Voir',\n      willingNo: 'Non merci',\n      giftsTitle: 'Choisissez un cadeau surprise',\n      noInterest: 'Non merci',\n      paymentLabel: 'Choisissez votre mode de remboursement',\n      paymentPaypalEmail: 'E-mail PayPal',\n      paymentVenmoEmail: 'E-mail Venmo',\n      paymentCardMsg: '\ud83d\udce7 Nous vous enverrons le code de la carte cadeau et le mot de passe par e-mail. Utilisez-le rapidement.',\n      paymentRakutenWarn: '\u26a0\ufe0f \u697d\u5929\u516c\u5f0f\u306e\u5236\u5ea6\u5909\u66f4\u306b\u3088\u308a\u3001\u53d7\u53d6\u6642\u306b\u984d\u9762\u306e3%\u304c\u5dee\u3057\u5f15\u304b\u308c\u307e\u3059\u3002\uff08\u4f8b\uff1a\u984d\u9762 5,000\u5186 \u2794 \u53d7\u53d6\u984d 4,850\u5186\uff09',\n      paymentVisaInfo: 'Vous pouvez utiliser la carte Visa pr\u00e9pay\u00e9e sur de nombreuses plateformes, y compris Amazon. Elle est pr\u00e9charg\u00e9e avec un solde.<br>Nous vous enverrons le num\u00e9ro de carte et le mot de passe par e-mail.',\n      btnNext: 'Suivant',\n      btnActivate: 'Activer maintenant',\n      btnSubmit: 'Envoyer',\n      btnBack: '\u2190 Retour',\n      writeReview: 'Laisser un avis \u2192',\n      step3S1Title: '\u00c9tape 1 : Cliquez sur le bouton pour \u00e9crire un avis et prendre une capture',\n      step3S1Sub: 'Veuillez prendre la capture avant de soumettre votre avis et assurez-vous que la note est visible pour une v\u00e9rification rapide.',\n      step3S2Title: '\u00c9tape 2 : T\u00e9l\u00e9chargez la capture de l\\'avis que vous venez de soumettre',\n      step3S2Sub: 'Pour une approbation sans encombre, ne mentionnez pas ce cadeau gratuit dans votre avis.',\n      uploadScreenshotHint: 'Cliquez ou glissez un fichier ici pour le t\u00e9l\u00e9charger.',\n      aiChecking: 'V\u00e9rification de la capture...',\n      aiCheckingLong: 'Un instant \u2014 notre IA v\u00e9rifie votre capture.',\n      aiPassed: 'Capture v\u00e9rifi\u00e9e.',\n      thanksBasicTitle: 'Merci !',\n      thanksBasicBody: 'Votre garantie a \u00e9t\u00e9 activ\u00e9e avec succ\u00e8s.',\n      thanksGiftTitle: 'Termin\u00e9 ! \ud83c\udf89',\n      thanksGiftBody: 'Votre garantie est activ\u00e9e et votre cadeau sera trait\u00e9 prochainement. Consultez votre bo\u00eete de r\u00e9ception.',\n      thanksGiftManualTitle: 'Termin\u00e9 ! \ud83c\udf89',\n      thanksGiftManualBody: '\ud83c\udf81 Votre garantie est activ\u00e9e. Notre \u00e9quipe traitera votre paiement sous 3 jours ouvrables et vous pr\u00e9viendra par e-mail d\u00e8s l\\'envoi.',\n      thanksGiftShipTitle: 'Termin\u00e9 ! \ud83c\udf89',\n      thanksGiftShipBody: '\ud83c\udf81 Votre garantie est activ\u00e9e. Nous exp\u00e9dierons votre cadeau sous 3 jours ouvrables et vous informerons par e-mail d\u00e8s qu\\'il sera en route.',\n      thanksGiftVirtualTitle: 'Termin\u00e9 ! \ud83c\udf89',\n      thanksGiftVirtualBody: '\ud83c\udf81 Votre garantie est activ\u00e9e et votre bonus a \u00e9t\u00e9 appliqu\u00e9 automatiquement \u00e0 votre commande. Merci !',\n      thanksEmailNotice: '\ud83d\udce7 Nous avons \u00e9galement envoy\u00e9 un e-mail de confirmation \u00e0 {email}. V\u00e9rifiez votre dossier spam si vous ne le voyez pas.',\n      paymentPrivacy: '\ud83d\udd12 Protection de la vie priv\u00e9e : Nous ne conservons pas vos informations de paiement. V\u00e9rifiez que tous les d\u00e9tails sont corrects.',\n      paymentVisaHeading: 'Comment associer une carte Visa pr\u00e9pay\u00e9e \u00e0 Amazon ?',\n      thanksComplaintTitle: 'Ticket envoy\u00e9 !',\n      thanksComplaintBody: 'Votre ticket a \u00e9t\u00e9 soumis avec succ\u00e8s. Nous r\u00e9pondrons d\u00e8s que possible. \u00c9vitez les envois en double.',\n      thanksReviewLimitedTitle: 'Merci ! \ud83d\udc9d',\n      thanksReviewLimitedBody: 'Il semble qu\\'Amazon ait limit\u00e9 votre avis. Pas d\\'inqui\u00e9tude \u2014 nous enverrons votre cadeau comme promis.',\n      thanksGiftCardTitle: '\ud83c\udf89 Votre carte cadeau est pr\u00eate !',\n      thanksGiftCardBody: 'Merci ! Votre garantie est activ\u00e9e et le code de votre carte cadeau figure ci-dessous. Nous l\\'avons \u00e9galement envoy\u00e9 par e-mail.',\n      thanksGiftCardPendingTitle: 'Termin\u00e9 ! \ud83c\udf89',\n      thanksGiftCardPendingBody: 'Votre garantie est activ\u00e9e. Votre carte cadeau est en cours de traitement et arrivera par e-mail sous peu.',\n      thanksVisaGiftCardTitle: '\ud83c\udf89 Votre carte VISA pr\u00e9pay\u00e9e est pr\u00eate !',\n      thanksVisaGiftCardBody: 'Le num\u00e9ro de votre carte VISA et le CVV apparaissent ci-dessous \u2014 veuillez l\\'utiliser sans tarder. Nous les avons \u00e9galement envoy\u00e9s par e-mail.',\n      thanksVisaGiftCardPendingTitle: '\ud83d\udce6 R\u00e9approvisionnement en cours',\n      thanksVisaGiftCardPendingBody: 'Notre stock de cartes VISA pr\u00e9pay\u00e9es est temporairement bas. Nous r\u00e9approvisionnerons et vous enverrons votre carte par e-mail sous 3 jours.',\n      giftcardLabel: 'Code de votre carte cadeau :',\n      giftcardLabelVisa: 'Votre carte Visa pr\u00e9pay\u00e9e :',\n      visaCardValidity: '\u26a0\ufe0f Veuillez l\\'utiliser avant la date d\\'expiration indiqu\u00e9e ci-dessus.',\n      visaCardVideoTitle: 'Comment associer une carte Visa pr\u00e9pay\u00e9e \u00e0 Amazon ?',\n      giftcardCopy: 'Copier',\n      giftcardCopied: 'Copi\u00e9 !',\n      giftcardEmailSent: 'Nous avons \u00e9galement envoy\u00e9 le code par e-mail.',\n      errFormat: 'Num\u00e9ro de commande invalide. Format attendu : XXX-XXXXXXX-XXXXXXX.',\n      errEmail: 'Veuillez saisir une adresse e-mail valide.',\n      errName: 'Veuillez saisir votre nom.',\n      errRating: 'Veuillez s\u00e9lectionner une note.',\n      errContentShort: 'Veuillez d\u00e9crire le probl\u00e8me avec au moins 20 caract\u00e8res.',\n      errNotShipped: 'Veuillez activer apr\u00e8s r\u00e9ception du produit.',\n      errRefunded: 'Votre commande a \u00e9t\u00e9 rembours\u00e9e et n\\'est pas couverte par la garantie.',\n      errAlreadyActivated: 'Votre commande a d\u00e9j\u00e0 \u00e9t\u00e9 activ\u00e9e.',\n      errReviewOrder: 'Les commandes de campagne de test ont la garantie d\\'un an automatiquement activ\u00e9e, aucune activation manuelle n\\'est n\u00e9cessaire.',\n      errAlreadyClaimedGift: 'Cette commande a d\u00e9j\u00e0 r\u00e9clam\u00e9 un cadeau d\\'activation. Les demandes en double ne sont pas autoris\u00e9es.',\n      errMissingTitle: 'Veuillez compl\u00e9ter les champs suivants :',\n      errSubmitFailed: '\u00c9chec de l\\'envoi. Veuillez r\u00e9essayer plus tard.',\n      errSubmitFailedWithCode: '\u00c9chec de l\\'envoi (code : {code}). Veuillez contacter le support en mentionnant ce code.',\n      needHelpLink: 'Erreurs survenues ? Signaler un BUG',\n      needHelpTitle: '\ud83e\udd1d Besoin d\\'aide avec ce formulaire ?',\n      needHelpHint: 'D\u00e9crivez votre probl\u00e8me. Nous vous contacterons \u00e0 :',\n      needHelpPlaceholder: 'D\u00e9crivez ce qui s\\'est pass\u00e9, l\\'\u00e9tape o\u00f9 vous \u00eates bloqu\u00e9 et les messages d\\'erreur que vous avez vus...',\n      needHelpSend: 'Envoyer',\n      needHelpCancel: 'Annuler',\n      needHelpClose: 'Fermer',\n      needHelpThanks: '\u2705 Bien re\u00e7u ! Nous avons re\u00e7u votre message et vous contacterons bient\u00f4t \u00e0 {email}.',\n      needHelpErrTooShort: 'Veuillez nous en dire un peu plus (au moins 5 caract\u00e8res).',\n      errNetwork: 'Erreur r\u00e9seau. Veuillez v\u00e9rifier votre connexion.',\n      errUpload: '\u00c9chec du t\u00e9l\u00e9chargement. Veuillez r\u00e9essayer.',\n      errNotImage: 'Seuls les fichiers image sont autoris\u00e9s.',\n      errFileTooBig: 'Chaque image doit faire 10 Mo ou moins.',\n      errTooManyImages: 'Vous pouvez t\u00e9l\u00e9charger jusqu\\'\u00e0 5 images.',\n      errAI_NOT_SCREENSHOT: 'Veuillez t\u00e9l\u00e9charger une image de votre avis Amazon. L\\'image semble sans rapport avec l\\'avis.',\n      errAI_ALREADY_SUBMITTED: 'Votre avis semble d\u00e9j\u00e0 soumis. Prenez la capture sur la page d\\'\u00e9dition (avec titre et \u00e9toiles visibles).',\n      errAI_WRONG_PAGE: 'Cette capture n\\'est pas la page d\\'avis Amazon. Veuillez d\\'abord soumettre votre avis sur Amazon.',\n      errAI_FEEDBACK_NOT_REVIEW: 'Vous avez soumis un commentaire au vendeur. Veuillez \u00e9crire un avis sur le produit.',\n      errAI_LOW_RATING: 'Votre note semble trop basse pour recevoir le cadeau. Augmentez-la sur Amazon puis ret\u00e9l\u00e9chargez la capture.',\n      errAI_UNRECOGNIZED: 'Nous n\\'avons pas pu reconna\u00eetre cette capture. T\u00e9l\u00e9chargez la capture de la page d\\'\u00e9dition de l\\'avis Amazon.',\n      errAI_PARSE: 'La v\u00e9rification a \u00e9chou\u00e9. Veuillez r\u00e9essayer.',\n      errAI_REVIEW_NOT_FEEDBACK: 'Ceci ne ressemble pas \u00e0 une page de commentaires sur le vendeur. Envoyez d\\'abord vos commentaires sur Amazon puis ret\u00e9l\u00e9chargez cette capture.',\n      fbStep3Intro: '\ud83c\udf89 Presque termin\u00e9 ! Encore 2 \u00e9tapes rapides pour recevoir votre cadeau.<br>Nous enverrons votre cadeau d\u00e8s la fin !',\n      fbStep3S1Title: '\u00c9tape 1 : Appuyez sur le bouton pour laisser un commentaire vendeur et faites une capture',\n      fbWriteReview: 'Laisser un commentaire vendeur \u2192',\n      fbStep3S2Title: '\u00c9tape 2 : T\u00e9l\u00e9chargez la capture du commentaire vendeur que vous venez d\\'envoyer',\n      fbGuideStep1: 'Trouvez votre commande, appuyez sur <b>Leave Seller Feedback<\/b>',\n      fbGuideStep2: '\u00c9crivez un court commentaire',\n      fbGuideStep3: 'Appuyez sur <b>Submit Feedback<\/b>',\n      fbGuideReminder: '\ud83d\udca1 Une phrase suffit \u2014 assurez-vous que la note est visible.',\n      fbUploadHint: 'Cliquez ou glissez ici la capture du commentaire vendeur.',\n      fbExampleLabel: 'Exemple (Commentaire vendeur)',\n      errPaymentEmail: 'Veuillez saisir un e-mail valide pour votre m\u00e9thode de paiement.',\n      errPaymentMethod: 'Veuillez choisir une m\u00e9thode de remboursement.',\n      addrLabel: 'Informations de livraison',\n      addrAddress: 'Adresse d\u00e9taill\u00e9e',\n      addrCity: 'Ville',\n      addrState: 'R\u00e9gion \/ D\u00e9partement',\n      addrPostCode: 'Code postal',\n      addrPhone: 'T\u00e9l\u00e9phone',\n      addrPhoneHint: 'Facultatif \u2014 recommand\u00e9 pour \u00e9viter des probl\u00e8mes de livraison.',\n      errAddrAddress: 'Veuillez saisir l\\'adresse compl\u00e8te.',\n      errAddrCity: 'Veuillez saisir la ville.',\n      errAddrState: 'Veuillez saisir la r\u00e9gion.',\n      errAddrPostCode: 'Veuillez saisir le code postal.',\n      errAddrPhone: 'Veuillez saisir votre num\u00e9ro de t\u00e9l\u00e9phone.',\n      errAddrPhoneFormat: 'Le t\u00e9l\u00e9phone ne peut contenir que des chiffres, espaces, +, -, ( et ).',\n      attachTip: 'Si vous avez des photos pertinentes, les ajouter nous aide \u00e0 diagnostiquer le probl\u00e8me plus rapidement.',\n      dropzoneClick: 'Cliquer pour t\u00e9l\u00e9charger',\n      dropzoneOrDrag: 'ou glisser-d\u00e9poser',\n      step3Intro: '\ud83c\udf89 Presque fini ! Plus que 2 \u00e9tapes pour obtenir votre cadeau.<br>Une fois termin\u00e9, nous vous enverrons votre cadeau !',\n      exampleLabel: 'Exemple',\n      errAddrMissing: 'Veuillez remplir tous les champs de livraison requis.',\n      giftConfirmGiftcard: '\ud83c\udf81 Nous vous enverrons le code {name} par e-mail d\u00e8s votre envoi.',\n      giftConfirmVisaPrepaid: '\ud83c\udf81 D\u00e8s votre envoi, nous afficherons le num\u00e9ro et le CVV de la carte VISA pr\u00e9pay\u00e9e et vous les enverrons aussi par e-mail. En cas de stock faible, livraison sous 3 jours.',\n      giftConfirmManual: '\ud83c\udf81 Notre \u00e9quipe enverra votre {name} sous 3 jours ouvrables et vous avertira par e-mail.',\n      giftConfirmCash: '\ud83c\udf81 Nous traiterons votre {name} sous 3 jours ouvrables.',\n      giftConfirmShip: '\ud83c\udf81 Nous exp\u00e9dierons votre {name}{cityPart} sous 3 jours ouvrables et vous avertirons par e-mail.',\n      giftConfirmVirtual: '\ud83c\udf81 Votre {name} sera appliqu\u00e9 automatiquement \u00e0 votre commande.',\n      giftConfirmCityPart: ' \u00e0 {city}'\n    }\n  };\n\n  \/\/ ============ \u8bed\u8a00\u68c0\u6d4b ============\n  var LANG_MAP = { ja: 'ja', es: 'es', de: 'de', fr: 'fr' };\n  var seg = (location.pathname.split('\/').filter(Boolean)[0] || '').toLowerCase();\n  var urlLang = new URLSearchParams(location.search).get('lang');\n  var lang = (urlLang && DICT[urlLang]) ? urlLang : (LANG_MAP[seg] || 'en');\n  function tr(key) {\n    return (DICT[lang] && DICT[lang][key]) || DICT.en[key] || key;\n  }\n\n  \/\/ \u6ce8\u5165 data-t \u6587\u672c\uff08\u6587\u6848\u542b < \u65f6\u8d70 innerHTML \u652f\u6301 <br> \u7b49\uff09\n  document.querySelectorAll('[data-t]').forEach(function (el) {\n    var v = tr(el.getAttribute('data-t'));\n    if (typeof v === 'string' && v.indexOf('<') >= 0) el.innerHTML = v;\n    else el.textContent = v;\n  });\n\n  \/\/ \u652f\u4ed8\u65b9\u5f0f\u5b9a\u4e49 (\u6309\u56fd\u5bb6\u8fc7\u6ee4\uff0c\u53bb\u6389 Bank Transfer)\n  var PAY_METHODS = {\n    US: ['paypal', 'venmo', 'walmart', 'visa_prepaid'],\n    CA: ['paypal', 'walmart', 'visa_prepaid'],\n    DE: ['paypal', 'visa_prepaid'],\n    FR: ['paypal', 'visa_prepaid'],\n    ES: ['paypal', 'visa_prepaid'],\n    UK: ['paypal', 'visa_prepaid'],\n    IT: ['paypal', 'visa_prepaid'],\n    JP: ['paypal', 'rakuten', 'visa_prepaid']\n  };\n  var PAY_LABELS = {\n    paypal: 'PayPal',\n    venmo: 'Venmo',\n    walmart: 'Walmart Gift Card',\n    rakuten: 'Rakuten Gift Card',\n    visa_prepaid: 'Visa Prepaid Card'\n  };\n  var PAY_ICONS = {\n    paypal: '<svg viewBox=\"0 0 40 40\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"40\" height=\"40\"><rect width=\"40\" height=\"40\" rx=\"6\" fill=\"#F7F9FA\"\/><path d=\"M15.5 10h4.2c2.8 0 4.2 1.4 4 3.8-.3 3.2-2.4 5-5.4 5H16.8c-.4 0-.7.3-.8.7L15.2 24c0 .2-.2.4-.5.4H12.2c-.3 0-.5-.3-.4-.6l2.2-13.2c.1-.4.4-.6.8-.6h.7z\" fill=\"#003087\"\/><path d=\"M24.8 10.2h4.2c1.6 0 3.2.5 3 2.8-.3 3.4-2.2 5.2-5.2 5.2H25.4c-.4 0-.6.3-.7.7l-.7 3.8c0 .3-.3.5-.6.5H21.2c-.3 0-.5-.3-.4-.6l2-12c.1-.3.3-.5.6-.5h1.4z\" fill=\"#0070E0\"\/><\/svg>',\n    venmo: '<svg viewBox=\"0 0 40 40\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"40\" height=\"40\"><rect width=\"40\" height=\"40\" rx=\"6\" fill=\"#3D95CE\"\/><path d=\"M27.4 9c.7 1.1 1 2.3 1 3.8 0 4.7-4 10.8-7.3 15.1H14.4L11.8 10.2l5.8-.6 1.4 11.2c1.6-2.6 3.6-6.7 3.6-9.5 0-1.4-.2-2.3-.6-3.1L27.4 9z\" fill=\"#fff\"\/><\/svg>',\n    walmart: '<svg viewBox=\"0 0 40 40\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"40\" height=\"40\"><rect width=\"40\" height=\"40\" rx=\"6\" fill=\"#0071DC\"\/><g transform=\"translate(20 20)\"><g fill=\"#FFC220\"><circle cx=\"0\" cy=\"-9\" r=\"2\"\/><circle cx=\"0\" cy=\"9\" r=\"2\"\/><circle cx=\"-9\" cy=\"0\" r=\"2\"\/><circle cx=\"9\" cy=\"0\" r=\"2\"\/><circle cx=\"-6.4\" cy=\"-6.4\" r=\"2\"\/><circle cx=\"6.4\" cy=\"6.4\" r=\"2\"\/><circle cx=\"-6.4\" cy=\"6.4\" r=\"2\"\/><circle cx=\"6.4\" cy=\"-6.4\" r=\"2\"\/><\/g><\/g><\/svg>',\n    rakuten: '<svg viewBox=\"0 0 40 40\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"40\" height=\"40\"><rect width=\"40\" height=\"40\" rx=\"6\" fill=\"#FFF5F5\"\/><path d=\"M14 10h5.5c3.2 0 5 1.8 5 4.3 0 1.8-1 3.3-2.6 4l3.2 5.7h-3.8L18.5 19H17.5v5H14V10zm3.5 6.5h1.8c1.2 0 1.8-.7 1.8-1.8s-.6-1.8-1.8-1.8H17.5v3.6z\" fill=\"#BF0000\"\/><\/svg>',\n    visa_prepaid: '<svg viewBox=\"0 0 40 40\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"40\" height=\"40\"><rect width=\"40\" height=\"40\" rx=\"6\" fill=\"#F7F9FA\"\/><path d=\"M16.3 14.2l-3.2 7.6h-2.1l-1.6-6.1c-.1-.4-.2-.5-.5-.6-.5-.3-1.4-.5-2.2-.7l.1-.2h3.4c.4 0 .8.3.9.8l.8 4.5 2.1-5.3h2.3zm8.5 5.1c0-2-2.8-2.1-2.8-3 0-.3.3-.5.8-.6.7-.1 1.7 0 2.4.3l.4-2c-.5-.2-1.3-.4-2.2-.4-2.3 0-3.9 1.2-3.9 3 0 1.3 1.2 2 2 2.4.9.4 1.2.7 1.2 1.1 0 .6-.7.9-1.4.9-.8 0-1.7-.2-2.4-.6l-.4 2c.6.2 1.6.4 2.6.4 2.4 0 4-1.2 4-3.1l-.3-.4zm5.9 2.5h2l-1.7-7.6h-1.8c-.4 0-.7.2-.9.6l-3.1 7h2.2l.4-1.2h2.6l.3 1.2zm-2.3-2.8l1.1-3 .6 3h-1.7zm-8.7-4.8l-1.7 7.6h-2.1l1.7-7.6h2.1z\" fill=\"#1A1F71\"\/><\/svg>'\n  };\n\n  \/\/ ============ \u72b6\u6001\u7ba1\u7406 ============\n  function initState() {\n    return {\n      step: 'step1',\n      record_id: null,\n      order_number: '',\n      email: '',\n      name: '',\n      order_check_code: '',\n      \/\/ Step 2\n      expectations: '',\n      rating: 0,\n      want_review: '',\n      gift_id: null,\n      gift: null,\n      payment_method: '',\n      payment_email: '',\n      address: '',\n      city: '',\n      state: '',\n      post_code: '',\n      phone: '',\n      \/\/ Step 2 complaint\n      complaint_content: '',\n      complaint_attachment_ids: [],\n      complaint_attachment_urls: [],\n      \/\/ 1~3 \u661f\u5efa\u8bae\n      suggestion: '',\n      \/\/ Step 3\n      review_title: '',\n      review_content: '',\n      review_screenshot_url: '',\n      review_screenshot_status: '', \/\/ '' | 'checking' | 'passed' | 'failed' | 'limited'\n      review_link: ''\n    };\n  }\n  function loadState() {\n    try {\n      var raw = localStorage.getItem(STORAGE_KEY);\n      if (!raw) return null;\n      var obj = JSON.parse(raw);\n      if (!obj || !obj.ts) return null;\n      if (Date.now() - obj.ts > TTL_MS) { localStorage.removeItem(STORAGE_KEY); return null; }\n      return obj.state;\n    } catch (e) { return null; }\n  }\n  function saveState() {\n    try {\n      localStorage.setItem(STORAGE_KEY, JSON.stringify({ ts: Date.now(), state: STATE }));\n    } catch (e) {}\n  }\n  function clearState() {\n    try { localStorage.removeItem(STORAGE_KEY); } catch (e) {}\n  }\n  var STATE = loadState() || initState();\n\n  \/\/ ============ \u901a\u7528\u5de5\u5177 ============\n  function $(id) { return document.getElementById(id); }\n  function hp() { return $('wp-hp').value || ''; }\n  \/\/ \u53ea\u5728\u6587\u5b57\u771f\u53d8\u65f6\u5199 DOM\uff0c\u907f\u514d\u7ffb\u8bd1\u63d2\u4ef6\u7684 MutationObserver \u53cd\u590d\u89e6\u53d1\n  function setHint(el, text) {\n    if (!el) return;\n    var t = text || '';\n    if (el.textContent !== t) el.textContent = t;\n  }\n  function showError(el, html) {\n    if (!el) return;\n    if (el.innerHTML !== html) el.innerHTML = html;\n    var h = !html;\n    if (el.hidden !== h) el.hidden = h;\n  }\n\n  var ORDER_RE = \/^\\d{3}-\\d{7}-\\d{7}$\/;\n  var EMAIL_RE = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$\/;\n\n  function fetchJson(path, body) {\n    return fetch(API_BASE + path, {\n      method: 'POST',\n      headers: { 'Content-Type': 'application\/json' },\n      body: JSON.stringify(Object.assign({ hp_website: hp(), loaded_at: LOADED_AT, lang: LANG }, body || {}))\n    }).then(function (r) { return r.json().catch(function () { return null; }); });\n  }\n  function fileToDataUrl(file) {\n    return new Promise(function (resolve, reject) {\n      var fr = new FileReader();\n      fr.onload = function () { resolve(fr.result); };\n      fr.onerror = reject;\n      fr.readAsDataURL(file);\n    });\n  }\n\n  \/\/ ============ Step \u5207\u6362 ============\n  function show(step) {\n    $('wp-step1-root').hidden = step !== 'step1';\n    $('wp-step2-root').hidden = step !== 'step2';\n    $('wp-step3-root').hidden = step !== 'step3';\n    $('wp-thanks').hidden = step !== 'thanks';\n    STATE.step = step;\n    saveState();\n    try { window.scrollTo({ top: 0, behavior: 'smooth' }); } catch (e) {}\n  }\n\n  \/\/ ========== \u8ba2\u5355\u53f7 mask ==========\n  var $order = $('wp-order');\n  var $maskSpacer = $('wp-mask-spacer');\n  var $maskTail = $('wp-mask-tail');\n  var DASH_AT = { 3: true, 11: true };\n  function formatOrderValue(raw) {\n    var digits = String(raw || '').replace(\/\\D\/g, '').slice(0, 17);\n    var out = '';\n    for (var i = 0; i < digits.length; i++) {\n      if (i === 3 || i === 10) out += '-';\n      out += digits[i];\n    }\n    return out;\n  }\n  function renderMask() {\n    var typed = $order.value;\n    if (typed.length === 0) {\n      $maskSpacer.textContent = '';\n      $maskTail.textContent = 'XXX-XXXXXXX-XXXXXXX';\n      return;\n    }\n    var tail = '';\n    for (var i = typed.length; i < 19; i++) tail += DASH_AT[i] ? '-' : '_';\n    $maskSpacer.textContent = typed;\n    $maskTail.textContent = tail;\n  }\n  $order.addEventListener('input', function () {\n    var f = formatOrderValue($order.value);\n    if ($order.value !== f) {\n      $order.value = f;\n      try { $order.setSelectionRange(f.length, f.length); } catch (_) {}\n    }\n    renderMask();\n    STATE.order_number = f;\n    STATE.order_check_code = ''; \/\/ \u8ba2\u5355\u53f7\u53d8\u52a8\u540e\u91cd\u7f6e\u6821\u9a8c\u72b6\u6001\n    updateS1Btn();\n  });\n\n  \/\/ findorder link\n  var LOCALE_PREFIXES = ['ja', 'es', 'de', 'fr', 'uk'];\n  var $findLink = $('wp-find-order');\n  if ($findLink) {\n    var fs = (location.pathname.split('\/').filter(Boolean)[0] || '').toLowerCase();\n    var lp = LOCALE_PREFIXES.indexOf(fs) >= 0 ? '\/' + fs : '';\n    $findLink.href = location.origin + lp + '\/findid';\n  }\n\n  \/\/ ========== Step 1 ==========\n  var $email = $('wp-email');\n  var $name = $('wp-name');\n  var $s1Btn = $('wp-s1-btn');\n  var $s1Err = $('wp-s1-error');\n  var checkToken = 0;\n  var orderVerdict = { code: '' };\n\n  function validS1Fields() {\n    var on = ($order.value || '').trim();\n    var em = ($email.value || '').trim();\n    var nm = ($name.value || '').trim();\n    return ORDER_RE.test(on) && EMAIL_RE.test(em) && nm.length > 0 && nm.length <= 50;\n  }\n  var _lastS1BtnText = '';\n  function updateS1Btn() {\n    var code = orderVerdict.code;\n    var ok = validS1Fields() && (code === 'PASS' || code === 'PASS_NOT_FOUND' || code === 'PASS_AUTO_ACTIVATE');\n    $s1Btn.disabled = !ok;\n    $s1Btn.classList.toggle('enabled', ok);\n    \/\/ \u9ed8\u8ba4 Next\uff1b\u4ec5 PASS_NOT_FOUND\uff08\u8ba2\u5355\u4e0d\u5b58\u5728\uff09\/ PASS_AUTO_ACTIVATE\uff08\u7981\u9080\/\u65e0\u9700\u7ef4\u62a4\uff09\u624d\u663e\u793a Activate\n    var isActivate = code === 'PASS_NOT_FOUND' || code === 'PASS_AUTO_ACTIVATE';\n    var text = isActivate ? tr('btnActivate') : tr('btnNext');\n    if (text !== _lastS1BtnText) {\n      $s1Btn.textContent = text;\n      _lastS1BtnText = text;\n    }\n  }\n\n  $order.addEventListener('blur', function () {\n    var v = ($order.value || '').trim();\n    if (!v) {\n      orderVerdict = { code: '' };\n      setHint($('wp-order-hint'), '');\n      $order.classList.remove('wf-invalid');\n      updateS1Btn();\n      return;\n    }\n    if (!ORDER_RE.test(v)) {\n      orderVerdict = { code: 'INVALID_FORMAT' };\n      $order.classList.add('wf-invalid');\n      setHint($('wp-order-hint'), tr('errFormat'));\n      updateS1Btn();\n      return;\n    }\n    $order.classList.remove('wf-invalid');\n    setHint($('wp-order-hint'), '');\n    var my = ++checkToken;\n    fetchJson('\/api\/forms\/warranty-pro\/check-order', { order_number: v }).then(function (data) {\n      if (my !== checkToken) return;\n      var code = data && data.code;\n      orderVerdict = { code: code || '', order: data && data.order };\n      if (code === 'PASS' || code === 'PASS_NOT_FOUND' || code === 'PASS_AUTO_ACTIVATE') {\n        setHint($('wp-order-hint'), '');\n        $order.classList.remove('wf-invalid');\n        if (data.order) {\n          STATE.country_code = data.order.country_code || '';\n          STATE.brand = data.order.brand || '';\n          STATE.maintenance_level = data.order.maintenance_level || '';\n          STATE.shop = data.order.shop || '';\n        }\n        \/\/ \u53ea\u6709\u6807\u51c6 PASS \u624d\u9884\u52a0\u8f7d\u793c\u7269\uff08AUTO_ACTIVATE \/ NOT_FOUND \u4e0d\u8fdb Step 2\uff09\n        if (code === 'PASS') {\n          STATE.order_number = v;\n          preloadGifts();\n        }\n      } else {\n        var msg = tr('errSubmitFailed');\n        if (code === 'NOT_SHIPPED') msg = tr('errNotShipped');\n        else if (code === 'REFUNDED') msg = tr('errRefunded');\n        else if (code === 'ALREADY_ACTIVATED') msg = tr('errAlreadyActivated');\n        else if (code === 'ALREADY_CLAIMED_GIFT') msg = tr('errAlreadyClaimedGift');\n        else if (code === 'IS_REVIEW_ORDER') msg = tr('errReviewOrder');\n        else if (code === 'INVALID_FORMAT') msg = tr('errFormat');\n        $order.classList.add('wf-invalid');\n        setHint($('wp-order-hint'), msg);\n      }\n      updateS1Btn();\n    }).catch(function () {\n      if (my !== checkToken) return;\n      orderVerdict = { code: '' };\n      setHint($('wp-order-hint'), tr('errNetwork'));\n      updateS1Btn();\n    });\n  });\n  $email.addEventListener('blur', function () {\n    var v = ($email.value || '').trim();\n    if (!v) { setHint($('wp-email-hint'), ''); $email.classList.remove('wf-invalid'); updateS1Btn(); return; }\n    if (!EMAIL_RE.test(v)) { $email.classList.add('wf-invalid'); setHint($('wp-email-hint'), tr('errEmail')); }\n    else { $email.classList.remove('wf-invalid'); setHint($('wp-email-hint'), ''); }\n    updateS1Btn();\n  });\n  $email.addEventListener('input', function () { STATE.email = $email.value; updateS1Btn(); });\n  $name.addEventListener('input', function () { STATE.name = $name.value; updateS1Btn(); });\n  $name.addEventListener('blur', function () {\n    var v = ($name.value || '').trim();\n    if (!v || v.length > 50) { $name.classList.add('wf-invalid'); setHint($('wp-name-hint'), tr('errName')); }\n    else { $name.classList.remove('wf-invalid'); setHint($('wp-name-hint'), ''); }\n  });\n\n  $s1Btn.addEventListener('click', function () {\n    if ($s1Btn.disabled) return;\n    showError($s1Err, '');\n    var on = STATE.order_number = ($order.value || '').trim();\n    var em = STATE.email = ($email.value || '').trim();\n    var nm = STATE.name = ($name.value || '').trim();\n\n    if (orderVerdict.code === 'PASS_NOT_FOUND') {\n      \/\/ \u76f4\u63a5\u63d0\u4ea4 phase='direct'\uff08\u8ba2\u5355\u4e0d\u5b58\u5728\uff09\n      $s1Btn.disabled = true; $s1Btn.textContent = '...';\n      fetchJson('\/api\/forms\/warranty-pro\/submit', {\n        phase: 'direct', order_number: on, email: em, name: nm\n      }).then(function (data) {\n        if (data && data.success) { clearState(); showThanks('basic'); }\n        else { showError($s1Err, errMsgByCode(data && data.code)); updateS1Btn(); }\n      }).catch(function () {\n        showError($s1Err, tr('errNetwork')); updateS1Btn();\n      });\n    } else if (orderVerdict.code === 'PASS_AUTO_ACTIVATE') {\n      \/\/ \u7981\u9080\u5e97\u94fa \/ \u65e0\u9700\u7ef4\u62a4 \u2192 \u76f4\u63a5\u6fc0\u6d3b\uff0c\u8df3\u8fc7 Step 2\uff08phase='auto'\uff09\n      $s1Btn.disabled = true; $s1Btn.textContent = '...';\n      fetchJson('\/api\/forms\/warranty-pro\/submit', {\n        phase: 'auto', order_number: on, email: em, name: nm\n      }).then(function (data) {\n        if (data && data.success) { clearState(); showThanks('basic'); }\n        else { showError($s1Err, errMsgByCode(data && data.code)); updateS1Btn(); }\n      }).catch(function () {\n        showError($s1Err, tr('errNetwork')); updateS1Btn();\n      });\n    } else if (orderVerdict.code === 'PASS') {\n      \/\/ \u521b\u5efa '\u793c\u54c1-\u653e\u5f03' \u9884\u8bb0\u5f55\uff0c\u7136\u540e\u8fdb Step 2\n      $s1Btn.disabled = true; $s1Btn.textContent = '...';\n      fetchJson('\/api\/forms\/warranty-pro\/pre-record', {\n        order_number: on, email: em, name: nm\n      }).then(function (data) {\n        if (data && data.ok) {\n          STATE.record_id = data.record_id;\n          saveState();\n          show('step2');\n        } else {\n          showError($s1Err, errMsgByCode(data && data.code));\n        }\n        updateS1Btn();\n      }).catch(function () {\n        showError($s1Err, tr('errNetwork'));\n        updateS1Btn();\n      });\n    }\n  });\n\n  \/\/ ========== Step 2 ==========\n  var $exp = $('wp-exp');\n  var $complaintSec = $('wp-complaint');\n  var $ratingSec = $('wp-rating-sec');\n  var $willingSec = $('wp-willing-sec');\n  var $giftsSec = $('wp-gifts-sec');\n  var $paySec = $('wp-pay-sec');\n  var $addrSec = $('wp-addr-sec');\n  var $s2Btn = $('wp-s2-btn');\n  var $s2Err = $('wp-s2-error');\n\n  $exp.addEventListener('change', function () {\n    STATE.expectations = $exp.value;\n    STATE.rating = 0;\n    STATE.want_review = '';\n    STATE.gift_id = null;\n    STATE.gift = null;\n    STATE.payment_method = '';\n    STATE.payment_email = '';\n    STATE.address = ''; STATE.city = ''; STATE.state = ''; STATE.post_code = ''; STATE.phone = '';\n    $complaintSec.hidden = STATE.expectations !== 'issue';\n    $ratingSec.hidden = (STATE.expectations !== 'works_well' && STATE.expectations !== 'not_used');\n    $willingSec.hidden = true;\n    $giftsSec.hidden = true;\n    $paySec.hidden = true;\n    if (STATE.expectations === 'works_well' || STATE.expectations === 'not_used') {\n      renderStars();\n    }\n    updateS2Btn();\n    saveState();\n  });\n\n  \/\/ 1~3 \u661f\u5efa\u8bae\u6587\u672c\u6846\n  (function bindSuggestion() {\n    var $sug = $('wp-suggestion');\n    if (!$sug) return;\n    $sug.addEventListener('input', function () {\n      STATE.suggestion = $sug.value;\n      saveState();\n    });\n  })();\n\n  \/\/ Rating stars\n  function renderStars() {\n    var $stars = $('wp-stars');\n    if (!$stars) return;\n    var starSvg = '<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" style=\"width:100%;height:100%\"><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"\/><\/svg>';\n    var html = '';\n    for (var i = 1; i <= 5; i++) {\n      html += '<span class=\"wf-star' + (STATE.rating >= i ? ' active' : '') + '\" role=\"radio\" tabindex=\"0\" data-value=\"' + i + '\">' + starSvg + '<\/span>';\n    }\n    $stars.innerHTML = html;\n    $stars.querySelectorAll('.wf-star').forEach(function (el) {\n      el.addEventListener('click', function () { setRating(Number(el.getAttribute('data-value'))); });\n    });\n  }\n  function setRating(n) {\n    STATE.rating = n;\n    $('wp-stars').querySelectorAll('.wf-star').forEach(function (el) {\n      el.classList.toggle('active', Number(el.getAttribute('data-value')) <= n);\n    });\n    \/\/ 1-3\u2b50: simple + \u663e\u793a\u5efa\u8bae\u6846\uff1b4-5\u2b50: \u5f39 willing + \u9690\u85cf\u5efa\u8bae\u6846\n    var $sugSec = $('wp-suggestion-sec');\n    if (n >= 1 && n <= 3) {\n      $willingSec.hidden = true;\n      $giftsSec.hidden = true;\n      $paySec.hidden = true;\n      STATE.want_review = '';\n      STATE.gift_id = null;\n      STATE.gift = null;\n      if ($sugSec) $sugSec.hidden = false;\n    } else if (n >= 4) {\n      $willingSec.hidden = false;\n      renderWilling();\n      if ($sugSec) $sugSec.hidden = true;\n    }\n    updateS2Btn();\n    saveState();\n  }\n  function renderWilling() {\n    document.querySelectorAll('.wp-yn-btn').forEach(function (b) {\n      b.classList.toggle('sel', STATE.want_review === b.getAttribute('data-willing'));\n      b.onclick = function () {\n        STATE.want_review = b.getAttribute('data-willing');\n        document.querySelectorAll('.wp-yn-btn').forEach(function (bb) {\n          bb.classList.toggle('sel', STATE.want_review === bb.getAttribute('data-willing'));\n        });\n        if (STATE.want_review === 'yes') {\n          $giftsSec.hidden = false;\n          loadAndRenderGifts();\n        } else {\n          $giftsSec.hidden = true;\n          $paySec.hidden = true;\n          STATE.gift_id = null; STATE.gift = null;\n        }\n        updateS2Btn();\n        saveState();\n      };\n    });\n  }\n\n  \/\/ \u793c\u7269\u52a0\u8f7d\n  var cachedGifts = [];\n  var giftsPromise = null;\n  var giftsLoaded = false;\n  function preloadGifts() {\n    if (giftsLoaded || giftsPromise) return giftsPromise;\n    giftsPromise = fetchJson('\/api\/forms\/warranty-pro\/load-gifts', { order_number: STATE.order_number }).then(function (data) {\n      if (data && data.ok && Array.isArray(data.gifts)) {\n        cachedGifts = data.gifts;\n        STATE.review_link = data.review_link || '';\n      } else {\n        cachedGifts = [];\n      }\n      giftsLoaded = true;\n    }).catch(function () { cachedGifts = []; giftsLoaded = true; })\n      .then(function () { giftsPromise = null; });\n    return giftsPromise;\n  }\n  function loadAndRenderGifts(done) {\n    var cb = function () {\n      renderGifts();\n      if (typeof done === 'function') done();\n    };\n    if (giftsLoaded) { cb(); return; }\n    (giftsPromise || preloadGifts()).then(cb);\n  }\n  function updateGiftSelection() {\n    var $g = $('wp-gifts');\n    if (!$g) return;\n    $g.querySelectorAll('.wp-gift-card').forEach(function (c) {\n      c.classList.toggle('sel', String(c.getAttribute('data-gid')) === String(STATE.gift_id));\n    });\n  }\n  function renderGifts() {\n    var $g = $('wp-gifts');\n    var html = '';\n    cachedGifts.forEach(function (g) {\n      var sel = STATE.gift_id === g.id ? ' sel' : '';\n      html += '<div class=\"wp-gift-card' + sel + '\" data-gid=\"' + g.id + '\">'\n        + (g.image ? '<img decoding=\"async\" src=\"' + g.image + '\" alt=\"\">' : '<div class=\"wp-no-interest-icon\">\ud83c\udf81<\/div>')\n        + '<div class=\"wp-gift-name\">' + (g.name || '') + '<\/div><\/div>';\n    });\n    \/\/ \u672b\u4f4d\u56fa\u5b9a not_interested\n    html += '<div class=\"wp-gift-card' + (STATE.gift_id === 'not_interested' ? ' sel' : '') + '\" data-gid=\"not_interested\">'\n      + '<div class=\"wp-no-interest-icon\">\u2298<\/div>'\n      + '<div class=\"wp-gift-name\">' + tr('noInterest') + '<\/div><\/div>';\n    $g.innerHTML = html;\n    $g.querySelectorAll('.wp-gift-card').forEach(function (c) {\n      c.onclick = function () { selectGift(c.getAttribute('data-gid')); };\n    });\n  }\n  function selectGift(gid) {\n    if (gid === 'not_interested') {\n      STATE.gift_id = 'not_interested';\n      STATE.gift = null;\n      $paySec.hidden = true;\n      $addrSec.hidden = true;\n    } else {\n      var found = cachedGifts.find(function (x) { return String(x.id) === String(gid); });\n      if (!found) return;\n      STATE.gift_id = found.id;\n      STATE.gift = found;\n      if (found.type === '\u73b0\u91d1') {\n        $paySec.hidden = false;\n        $addrSec.hidden = true;\n        renderPayMethods();\n      } else if (found.send_type === '\u90ae\u5bc4') {\n        $paySec.hidden = true;\n        $addrSec.hidden = false;\n        STATE.payment_method = '';\n        STATE.payment_email = '';\n      } else {\n        $paySec.hidden = true;\n        $addrSec.hidden = true;\n        STATE.payment_method = '';\n        STATE.payment_email = '';\n      }\n    }\n    updateGiftSelection();\n    updateS2Btn();\n    saveState();\n  }\n\n  function renderPayMethods() {\n    var $grid = $('wp-pay-grid');\n    var cc = STATE.country_code || 'US';\n    var methods = PAY_METHODS[cc] || PAY_METHODS.US;\n    var html = '';\n    methods.forEach(function (m) {\n      var sel = STATE.payment_method === m ? ' sel' : '';\n      html += '<div class=\"wp-pay-card' + sel + '\" data-pm=\"' + m + '\">'\n        + '<div class=\"wp-pay-icon\">' + (PAY_ICONS[m] || '\ud83d\udcb3') + '<\/div>'\n        + '<div class=\"wp-pay-label\">' + (PAY_LABELS[m] || m) + '<\/div><\/div>';\n    });\n    $grid.innerHTML = html;\n    $grid.querySelectorAll('.wp-pay-card').forEach(function (c) {\n      c.onclick = function () { selectPayMethod(c.getAttribute('data-pm')); };\n    });\n    applyPayUi();\n  }\n  function selectPayMethod(pm) {\n    STATE.payment_method = pm;\n    STATE.payment_email = '';\n    document.querySelectorAll('.wp-pay-card').forEach(function (c) {\n      c.classList.toggle('sel', c.getAttribute('data-pm') === pm);\n    });\n    applyPayUi();\n    updateS2Btn();\n    saveState();\n  }\n  function applyPayUi() {\n    var pm = STATE.payment_method;\n    var $emailF = $('wp-pay-email-field');\n    var $cardMsg = $('wp-pay-card-msg');\n    var $cardText = $('wp-pay-card-text');\n    var $rakuten = $('wp-pay-rakuten');\n    var $visa = $('wp-pay-visa');\n    var $privacy = $('wp-pay-privacy');\n    $emailF.hidden = true; $cardMsg.hidden = true; $rakuten.hidden = true; $visa.hidden = true;\n    if (pm === 'paypal' || pm === 'venmo') {\n      $emailF.hidden = false;\n      $('wp-pay-email-label').innerHTML = (pm === 'paypal' ? tr('paymentPaypalEmail') : tr('paymentVenmoEmail')) + ' <span class=\"req\">*<\/span>';\n      $('wp-pay-email').value = STATE.payment_email || '';\n    } else if (pm === 'walmart') {\n      $cardMsg.hidden = false;\n      $cardText.innerHTML = tr('paymentCardMsg');\n    } else if (pm === 'rakuten') {\n      \/\/ Rakuten \u5408\u5e76 card-msg + tax warn \u5230\u540c\u4e00\u4e2a\u63d0\u793a\u6846\uff0c\u4e24\u53e5\u4e4b\u95f4\u6362\u884c\n      $cardMsg.hidden = false;\n      $cardText.innerHTML = tr('paymentCardMsg') + '<br><br>' + tr('paymentRakutenWarn');\n    } else if (pm === 'visa_prepaid') {\n      $visa.hidden = false;\n    }\n    \/\/ \u53ea\u5728\u9700\u8981\u7528\u6237\u586b\u6536\u6b3e\u8d26\u53f7\uff08\u90ae\u7bb1\uff09\u7684\u65b9\u5f0f\u4e0b\u663e\u793a\u9690\u79c1\u63d0\u793a\n    if ($privacy) $privacy.hidden = !(pm === 'paypal' || pm === 'venmo');\n  }\n  $('wp-pay-email').addEventListener('input', function () {\n    STATE.payment_email = this.value.trim();\n    this.classList.remove('wf-invalid');\n    setHint($('wp-pay-email-hint'), '');\n    updateS2Btn();\n    saveState();\n  });\n  $('wp-pay-email').addEventListener('blur', function () {\n    var v = (this.value || '').trim();\n    if (v && !EMAIL_RE.test(v)) {\n      this.classList.add('wf-invalid');\n      setHint($('wp-pay-email-hint'), tr('errPaymentEmail'));\n    } else {\n      this.classList.remove('wf-invalid');\n      setHint($('wp-pay-email-hint'), '');\n    }\n  });\n\n  \/\/ \u90ae\u5bc4\u5730\u5740\u5b57\u6bb5\u7ed1\u5b9a\uff08\u53ef\u9009 validator(value) \u2192 errKey or null\uff09\n  var PHONE_RE = \/^[+()\\-\\s\\d]{6,}$\/;\n  function bindAddrField(id, stateKey, errKey, validator) {\n    var el = $(id);\n    var hint = $(id + '-hint');\n    el.addEventListener('input', function () {\n      STATE[stateKey] = this.value.trim();\n      this.classList.remove('wf-invalid');\n      setHint(hint, '');\n      updateS2Btn();\n      saveState();\n    });\n    el.addEventListener('blur', function () {\n      var v = (this.value || '').trim();\n      if (!v) {\n        this.classList.add('wf-invalid');\n        setHint(hint, tr(errKey));\n      } else if (validator) {\n        var extraErr = validator(v);\n        if (extraErr) {\n          this.classList.add('wf-invalid');\n          setHint(hint, tr(extraErr));\n        } else {\n          this.classList.remove('wf-invalid');\n          setHint(hint, '');\n        }\n      } else {\n        this.classList.remove('wf-invalid');\n        setHint(hint, '');\n      }\n    });\n  }\n  bindAddrField('wp-addr-address', 'address', 'errAddrAddress');\n  bindAddrField('wp-addr-city', 'city', 'errAddrCity');\n  bindAddrField('wp-addr-state', 'state', 'errAddrState');\n  bindAddrField('wp-addr-post', 'post_code', 'errAddrPostCode');\n  bindAddrField('wp-addr-phone', 'phone', 'errAddrPhone', function (v) {\n    return PHONE_RE.test(v) ? null : 'errAddrPhoneFormat';\n  });\n\n  \/\/ Complaint textarea + \u591a\u56fe\u4e0a\u4f20\n  var $content = $('wp-content');\n  var $contentCounter = $('wp-content-counter');\n  var $addImg = $('wp-add-img');\n  var $fileInput = $('wp-file-input');\n  var $thumbs = $('wp-thumbs');\n  var $uploadHint = $('wp-upload-hint');\n  var $dropzone = $('wp-dropzone');\n  var $dropzoneEmpty = $('wp-dropzone-empty');\n  var $dropzoneWithFiles = $('wp-dropzone-with-files');\n  var uploaded = []; \/\/ { id, url, name, localPreview, uploading, failed, $el }\n\n  function refreshDropzoneState() {\n    var has = uploaded.length > 0;\n    if ($dropzone) $dropzone.classList.toggle('has-files', has);\n    if ($dropzoneEmpty) $dropzoneEmpty.hidden = has;\n    if ($dropzoneWithFiles) $dropzoneWithFiles.hidden = !has;\n  }\n\n  function updateContentCounter() {\n    var len = ($content.value || '').length;\n    $contentCounter.textContent = len + ' \/ ' + MIN_CONTENT + ' min';\n    $contentCounter.classList.toggle('short', len < MIN_CONTENT);\n  }\n  $content.addEventListener('input', function () {\n    STATE.complaint_content = $content.value;\n    updateContentCounter();\n    updateS2Btn();\n    saveState();\n  });\n  updateContentCounter();\n\n  function refreshAddBtn() {\n    $addImg.disabled = uploaded.length >= MAX_IMAGES;\n    refreshDropzoneState();\n  }\n  function setUploadHint(msg, isErr) {\n    if (!msg) { $uploadHint.textContent = tr('attachHintDefault'); $uploadHint.classList.remove('err'); return; }\n    $uploadHint.textContent = msg; $uploadHint.classList.toggle('err', !!isErr);\n  }\n  function renderThumb(slot) {\n    var $wrap = document.createElement('div');\n    $wrap.className = 'wf-thumb' + (slot.uploading ? ' uploading' : '') + (slot.failed ? ' failed' : '');\n    var $img = document.createElement('img');\n    $img.src = slot.localPreview; $wrap.appendChild($img);\n    var $del = document.createElement('button');\n    $del.type = 'button'; $del.className = 'wf-thumb-del'; $del.textContent = '\u00d7';\n    $del.addEventListener('click', function () {\n      var idx = uploaded.indexOf(slot);\n      if (idx >= 0) uploaded.splice(idx, 1);\n      try { URL.revokeObjectURL(slot.localPreview); } catch (_) {}\n      slot.$el && slot.$el.remove();\n      refreshAddBtn(); setUploadHint('', false); syncComplaintAttachments(); updateS2Btn();\n    });\n    $wrap.appendChild($del);\n    slot.$el = $wrap;\n    $thumbs.appendChild($wrap);\n  }\n  function updateThumbState(slot) {\n    if (!slot.$el) return;\n    slot.$el.classList.toggle('uploading', !!slot.uploading);\n    slot.$el.classList.toggle('failed', !!slot.failed);\n  }\n  function syncComplaintAttachments() {\n    STATE.complaint_attachment_ids = uploaded.filter(function (s) { return s.id && !s.failed; }).map(function (s) { return s.id; });\n    STATE.complaint_attachment_urls = uploaded.filter(function (s) { return s.id && !s.failed; }).map(function (s) { return s.url || ''; });\n    saveState();\n  }\n  function uploadFile(file) {\n    if (!file.type || file.type.indexOf('image\/') !== 0) { setUploadHint(tr('errNotImage'), true); return; }\n    if (file.size > MAX_FILE_BYTES) { setUploadHint(tr('errFileTooBig'), true); return; }\n    if (uploaded.length >= MAX_IMAGES) { setUploadHint(tr('errTooManyImages'), true); return; }\n    var slot = { id: null, url: null, name: file.name, localPreview: URL.createObjectURL(file), uploading: true, failed: false, $el: null };\n    uploaded.push(slot);\n    renderThumb(slot); refreshAddBtn(); updateS2Btn();\n\n    var fd = new FormData();\n    fd.append('file', file, file.name || 'image');\n    fetch(API_BASE + '\/api\/forms\/upload', { method: 'POST', body: fd })\n      .then(function (r) { return r.json().then(function (j) { return { ok: r.ok, body: j }; }); })\n      .then(function (res) {\n        var att = res.body && (res.body.attachment || res.body.data || res.body);\n        if (!res.ok || !att || !att.id) throw new Error('upload fail');\n        slot.id = att.id; slot.url = att.url || ''; slot.uploading = false; slot.failed = false;\n      })\n      .catch(function () {\n        slot.uploading = false; slot.failed = true;\n        setUploadHint(tr('errUpload'), true);\n      })\n      .finally(function () { updateThumbState(slot); syncComplaintAttachments(); updateS2Btn(); });\n  }\n  $addImg.addEventListener('click', function (ev) {\n    ev.stopPropagation();\n    if (!$addImg.disabled) $fileInput.click();\n  });\n  if ($dropzone) {\n    $dropzone.addEventListener('click', function (ev) {\n      if (ev.target.closest('.wf-thumb')) return;\n      if (ev.target.closest('.wf-add-btn')) return;\n      if (uploaded.length >= MAX_IMAGES) { setUploadHint(tr('errTooManyImages'), true); return; }\n      $fileInput.click();\n    });\n    ['dragenter', 'dragover'].forEach(function (evName) {\n      $dropzone.addEventListener(evName, function (e) {\n        e.preventDefault(); e.stopPropagation();\n        $dropzone.classList.add('drag-over');\n      });\n    });\n    ['dragleave', 'dragend', 'drop'].forEach(function (evName) {\n      $dropzone.addEventListener(evName, function (e) {\n        e.preventDefault(); e.stopPropagation();\n        $dropzone.classList.remove('drag-over');\n      });\n    });\n    $dropzone.addEventListener('drop', function (e) {\n      var dt = e.dataTransfer;\n      var files = dt && dt.files ? Array.from(dt.files) : [];\n      handleComplaintFiles(files);\n    });\n  }\n  function handleComplaintFiles(files) {\n    var remaining = MAX_IMAGES - uploaded.length;\n    if (files.length > remaining) { setUploadHint(tr('errTooManyImages'), true); files = files.slice(0, remaining); }\n    else setUploadHint('', false);\n    files.forEach(uploadFile);\n  }\n  $fileInput.addEventListener('change', function (e) {\n    handleComplaintFiles(Array.from(e.target.files || []));\n    e.target.value = '';\n  });\n  refreshDropzoneState();\n\n  \/\/ Step 2 \u6309\u94ae\u72b6\u6001\n  function updateS2Btn() {\n    var ok = false;\n    var phase = getStep2Phase();\n    if (phase === 'complaint') {\n      var lenOk = ($content.value || '').length >= MIN_CONTENT;\n      var noUploading = !uploaded.some(function (s) { return s.uploading; });\n      ok = lenOk && noUploading;\n    } else if (phase === 'simple') {\n      ok = STATE.rating >= 1 && STATE.rating <= 5;\n      if (STATE.rating >= 4) {\n        if (STATE.want_review === 'yes') {\n          if (STATE.gift_id === 'not_interested') ok = true;\n          else if (STATE.gift && STATE.gift.type !== '\u73b0\u91d1') ok = false; \/\/ \u5b9e\u7269\u9700 Next\n          else if (STATE.gift && STATE.gift.type === '\u73b0\u91d1') ok = false; \/\/ \u73b0\u91d1\u9700 Next\n          else ok = false; \/\/ \u672a\u9009\u793c\u7269\n        } else if (STATE.want_review === 'no') ok = true;\n        else ok = false;\n      } else ok = STATE.rating >= 1 && STATE.rating <= 3;\n    } else if (phase === 'gift_next') {\n      \/\/ \u5b9e\u7269\u793c\u7269\uff08\u65e0\u9700\u53d1\u9001\uff09\u2192 Next\n      ok = true;\n    } else if (phase === 'gift_cash_next') {\n      \/\/ \u73b0\u91d1\u793c\u7269 \u2192 \u9700\u652f\u4ed8\u65b9\u5f0f + \u5b57\u6bb5\n      if (!STATE.payment_method) ok = false;\n      else if (STATE.payment_method === 'paypal' || STATE.payment_method === 'venmo') {\n        ok = EMAIL_RE.test(STATE.payment_email || '');\n      } else ok = true;\n    } else if (phase === 'gift_addr_next') {\n      \/\/ \u90ae\u5bc4\u793c\u7269 \u2192 4 \u4e2a\u5730\u5740\u5b57\u6bb5\u5fc5\u586b\uff1bphone \u53ef\u9009\uff0c\u82e5\u586b\u5219\u8981\u7b26\u5408\u683c\u5f0f\n      ok = !!(STATE.address && STATE.city && STATE.state && STATE.post_code)\n        && (!STATE.phone || PHONE_RE.test(STATE.phone));\n    }\n\n    \/\/ \u6309\u94ae\u6587\u6848\uff1agift_next \/ gift_cash_next \/ gift_addr_next \u2192 Next\uff1b\u5426\u5219 Activate Now\n    var isNext = (phase === 'gift_next' || phase === 'gift_cash_next' || phase === 'gift_addr_next');\n    var s2Text = isNext ? tr('btnNext') : tr('btnActivate');\n    if (s2Text !== _lastS2BtnText) {\n      $s2Btn.textContent = s2Text;\n      _lastS2BtnText = s2Text;\n    }\n    $s2Btn.disabled = !ok;\n    $s2Btn.classList.toggle('enabled', ok);\n  }\n  var _lastS2BtnText = '';\n  function getStep2Phase() {\n    if (STATE.expectations === 'issue') return 'complaint';\n    if (STATE.rating >= 4 && STATE.want_review === 'yes' && STATE.gift_id && STATE.gift_id !== 'not_interested') {\n      if (STATE.gift && STATE.gift.type === '\u73b0\u91d1') return 'gift_cash_next';\n      if (STATE.gift && STATE.gift.send_type === '\u90ae\u5bc4') return 'gift_addr_next';\n      return 'gift_next';\n    }\n    return 'simple';\n  }\n\n  $s2Btn.addEventListener('click', function () {\n    if ($s2Btn.disabled) return;\n    showError($s2Err, '');\n    var phase = getStep2Phase();\n    if (phase === 'gift_next' || phase === 'gift_cash_next' || phase === 'gift_addr_next') {\n      show('step3');\n      setupStep3();\n      return;\n    }\n    \/\/ complaint | simple \u76f4\u63a5\u63d0\u4ea4\n    var body = {\n      order_number: STATE.order_number,\n      email: STATE.email,\n      name: STATE.name,\n      record_id: STATE.record_id\n    };\n    if (phase === 'complaint') {\n      body.phase = 'complaint';\n      body.content = STATE.complaint_content;\n      body.attachment_ids = STATE.complaint_attachment_ids;\n      body.attachment_urls = STATE.complaint_attachment_urls;\n    } else {\n      body.phase = 'simple';\n      body.rating = STATE.rating || 5;\n      \/\/ 1~3 \u661f\u65f6\u53ef\u80fd\u6709\u5efa\u8bae\uff1b4~5 \u661f\u4e0d\u5e26\n      if (STATE.rating >= 1 && STATE.rating <= 3 && STATE.suggestion) {\n        body.suggestion = STATE.suggestion;\n      }\n    }\n    $s2Btn.disabled = true; $s2Btn.textContent = '...';\n    fetchJson('\/api\/forms\/warranty-pro\/submit', body).then(function (data) {\n      if (data && data.success) {\n        clearState();\n        if (phase === 'complaint') showThanks('complaint');\n        else showThanks('basic');\n      } else {\n        showError($s2Err, errMsgByCode(data && data.code));\n        updateS2Btn();\n      }\n    }).catch(function () {\n      showError($s2Err, tr('errNetwork'));\n      updateS2Btn();\n    });\n  });\n\n  \/\/ ========== Step 3 ==========\n  var $screenshotArea = $('wp-screenshot-area');\n  var $screenshotInput = $('wp-screenshot-input');\n  var $screenshotPreview = $('wp-screenshot-preview');\n  var $screenshotStatus = $('wp-screenshot-status');\n  var $screenshotEmpty = $('wp-screenshot-empty');\n  var $s3Btn = $('wp-s3-btn');\n  var $s3Err = $('wp-s3-error');\n  var $giftConfirm = $('wp-gift-confirm');\n\n  function isFbMode() {\n    return String(STATE.maintenance_level || '').toUpperCase().indexOf('FB') >= 0;\n  }\n  \/\/ Amazon \u8ba2\u5355\u5217\u8868\u9875\uff08FB \u6a21\u5f0f\u4e0b \"Leave Seller Feedback\" \u6309\u94ae\u7684\u8df3\u8f6c\u5730\u5740\uff09\n  var AMAZON_ORDER_URLS = {\n    US: 'https:\/\/www.amazon.com\/gp\/css\/order-history',\n    CA: 'https:\/\/www.amazon.ca\/gp\/css\/order-history',\n    UK: 'https:\/\/www.amazon.co.uk\/gp\/css\/order-history',\n    GB: 'https:\/\/www.amazon.co.uk\/gp\/css\/order-history',\n    DE: 'https:\/\/www.amazon.de\/gp\/css\/order-history',\n    FR: 'https:\/\/www.amazon.fr\/gp\/css\/order-history',\n    ES: 'https:\/\/www.amazon.es\/gp\/css\/order-history',\n    IT: 'https:\/\/www.amazon.it\/gp\/css\/order-history',\n    JP: 'https:\/\/www.amazon.co.jp\/gp\/css\/order-history',\n    AU: 'https:\/\/www.amazon.com.au\/gp\/css\/order-history',\n  };\n  function sellerFeedbackUrl() {\n    var cc = String(STATE.country_code || '').toUpperCase();\n    return AMAZON_ORDER_URLS[cc] || 'https:\/\/www.amazon.com\/gp\/css\/order-history';\n  }\n  function applyStep3ModeUI() {\n    var fb = isFbMode();\n    \/\/ \u8bc4\u8bba\u6a21\u5f0f\u663e\u793a\u53f3\u4fa7\u793a\u4f8b SVG\uff1bFB \u6a21\u5f0f\u9690\u85cf\u53f3\u4fa7\u793a\u4f8b\uff0c\u4e0a\u4f20\u533a\u5355\u5217\u5c45\u4e2d\uff0c\u4e0a\u65b9\u653e 3 \u6b65\u6307\u5f15\n    var $exReview = $('wp-example-review');\n    var $fbGuide = $('wp-fb-guide');\n    var $split = document.querySelector('.wp-screenshot-split');\n    if ($exReview) $exReview.hidden = fb;\n    if ($fbGuide) $fbGuide.hidden = !fb;\n    if ($split) $split.classList.toggle('fb-mode', fb);\n    \/\/ \u6807\u9898\/\u6309\u94ae\/\u4e0a\u4f20\u63d0\u793a\u6587\u6848\u6309 mode \u5207\u6362\n    var byId = function(id, reviewKey, fbKey) {\n      var el = $(id);\n      if (!el) return;\n      var key = fb ? fbKey : reviewKey;\n      el.setAttribute('data-t', key);\n      var v = tr(key);\n      if (typeof v === 'string' && v.indexOf('<') >= 0) el.innerHTML = v;\n      else el.textContent = v;\n    };\n    byId('wp-step3-intro',    'step3Intro',    'fbStep3Intro');\n    byId('wp-step3-s1-title', 'step3S1Title',  'fbStep3S1Title');\n    byId('wp-review-btn',     'writeReview',   'fbWriteReview');\n    byId('wp-step3-s2-title', 'step3S2Title',  'fbStep3S2Title');\n    \/\/ FB \u6a21\u5f0f\u9690\u85cf s1-sub\uff08\u5185\u5bb9\u5408\u5e76\u5230\u6307\u5f15 SVG \u5185\uff09\n    var $s1Sub = $('wp-step3-s1-sub');\n    if ($s1Sub) $s1Sub.hidden = fb;\n    \/\/ FB \u6a21\u5f0f\u9690\u85cf s2-sub\uff08\"\u81f3\u5c11 2 \u5f20\u56fe\" \u53ea\u5bf9\u4ea7\u54c1\u8bc4\u8bba\u6709\u6548\uff09\n    var $s2Sub = $('wp-step3-s2-sub');\n    if ($s2Sub) $s2Sub.hidden = fb;\n    \/\/ \u4e0a\u4f20\u533a\u63d0\u793a\u6587\u6848\u5207\u6362\n    var $up = document.querySelector('[data-t=\"uploadScreenshotHint\"], [data-t=\"fbUploadHint\"]');\n    if ($up) {\n      var upKey = fb ? 'fbUploadHint' : 'uploadScreenshotHint';\n      $up.setAttribute('data-t', upKey);\n      $up.textContent = tr(upKey);\n    }\n  }\n  function setupStep3() {\n    applyStep3ModeUI();\n    var $rb = $('wp-review-btn');\n    \/\/ FB \u6a21\u5f0f\uff1a\u8df3\u8f6c\u5ba2\u6237\u7684 Amazon \u8ba2\u5355\u5217\u8868\uff08\u53ef\u5728\u8ba2\u5355\u65c1\u70b9 \"Leave Seller Feedback\"\uff09\n    \/\/ Review \u6a21\u5f0f\uff1a\u8df3\u8f6c asin \u7684\u4ea7\u54c1\u8bc4\u8bba\u94fe\u63a5\n    if (isFbMode()) {\n      $rb.href = sellerFeedbackUrl();\n    } else if (STATE.review_link) {\n      $rb.href = STATE.review_link;\n    } else {\n      $rb.href = '#';\n    }\n    \/\/ \u793c\u7269\u786e\u8ba4 \u2014 AI \u901a\u8fc7\u540e\u624d\u663e\u793a\n    $giftConfirm.textContent = '';\n    $giftConfirm.hidden = true;\n    STATE.review_screenshot_url = '';\n    STATE.review_screenshot_status = '';\n    STATE.review_title = '';\n    STATE.review_content = '';\n    $screenshotArea.className = 'wp-upload-single';\n    $screenshotPreview.hidden = true;\n    $screenshotEmpty.hidden = false;\n    $screenshotStatus.textContent = '';\n    updateS3Btn();\n  }\n  function renderGiftConfirm() {\n    if (!STATE.gift) {\n      $giftConfirm.textContent = '';\n      $giftConfirm.hidden = true;\n      return;\n    }\n    var name = STATE.gift.name || '';\n    var pm = STATE.payment_method || '';\n    var city = STATE.city || '';\n    var key;\n    if (STATE.gift.type === '\u73b0\u91d1') {\n      if (pm === 'walmart' || pm === 'rakuten') key = 'giftConfirmGiftcard';\n      else if (pm === 'visa_prepaid') key = 'giftConfirmVisaPrepaid';\n      else if (pm === 'paypal' || pm === 'venmo') key = 'giftConfirmManual';\n      else key = 'giftConfirmCash';\n    } else if (STATE.gift.send_type === '\u90ae\u5bc4') {\n      key = 'giftConfirmShip';\n    } else {\n      key = 'giftConfirmVirtual';\n    }\n    var cityPart = city ? tr('giftConfirmCityPart').replace('{city}', city) : '';\n    var tpl = tr(key);\n    $giftConfirm.textContent = tpl.replace('{name}', name).replace('{cityPart}', cityPart);\n    $giftConfirm.hidden = false;\n  }\n  $screenshotArea.addEventListener('click', function () { $screenshotInput.click(); });\n  $screenshotArea.addEventListener('dragover', function (e) { e.preventDefault(); });\n  $screenshotArea.addEventListener('drop', function (e) {\n    e.preventDefault();\n    var f = e.dataTransfer.files && e.dataTransfer.files[0];\n    if (f) handleScreenshot(f);\n  });\n  $screenshotInput.addEventListener('change', function (e) {\n    var f = e.target.files && e.target.files[0];\n    if (f) handleScreenshot(f);\n    e.target.value = '';\n  });\n\n  \/\/ \u524d\u7aef\u538b\u7f29\u56fe\u7247\uff08\u51cf\u5c0f payload\uff0c\u52a0\u5feb AI \u4e0a\u4f20\u901f\u5ea6\uff09\n  function compressImage(file, maxWidth, quality) {\n    if (!file || !file.type || file.type.indexOf('image\/') !== 0) return Promise.resolve(file);\n    return new Promise(function (resolve) {\n      var img = new Image();\n      var url = URL.createObjectURL(file);\n      img.onload = function () {\n        URL.revokeObjectURL(url);\n        var scale = Math.min(1, maxWidth \/ img.width);\n        var w = Math.round(img.width * scale);\n        var h = Math.round(img.height * scale);\n        var canvas = document.createElement('canvas');\n        canvas.width = w; canvas.height = h;\n        canvas.getContext('2d').drawImage(img, 0, 0, w, h);\n        canvas.toBlob(function (blob) {\n          if (!blob) return resolve(file);\n          resolve(blob);\n        }, 'image\/jpeg', quality);\n      };\n      img.onerror = function () { URL.revokeObjectURL(url); resolve(file); };\n      img.src = url;\n    });\n  }\n\n  \/\/ AI \u68c0\u67e5\u8fdb\u5ea6\u6761\uff1a\u4e09\u6bb5\u66f2\u7ebf\uff0c\u9884\u8ba1 15s \u603b\u8017\u65f6\uff0c\u5c01\u9876 99% \u7b49 AI\n  \/\/ 0-10s: 0\u219280%\uff08\u6bcf\u79d2 +8%\uff0c\u5feb\u901f\u63a8\u8fdb\uff09\n  \/\/ 10-15s: 80\u219299%\uff08\u6bcf\u79d2 ~4%\uff0c\u63a5\u8fd1\u5b8c\u6210\uff09\n  \/\/ 15s+: \u5c01\u9876 99%\uff0c\u7b49 AI \u8fd4\u56de\u76f4\u63a5\u8df3 100%\n  var aiTimer = null;\n  var aiStartTs = 0;\n  function startAiProgress() {\n    if (aiTimer) { clearInterval(aiTimer); aiTimer = null; }\n    aiStartTs = Date.now();\n    var fill0 = document.getElementById('wp-ai-progress-fill');\n    var label0 = document.getElementById('wp-ai-progress-pct');\n    if (fill0) fill0.style.width = '0%';\n    if (label0) label0.textContent = '0%';\n    aiTimer = setInterval(function () {\n      var t = (Date.now() - aiStartTs) \/ 1000;\n      var pct;\n      if (t <= 10) pct = (t \/ 10) * 80;              \/\/ 0-10s \u2192 0-80%\n      else if (t <= 15) pct = 80 + ((t - 10) \/ 5) * 19;  \/\/ 10-15s \u2192 80-99%\n      else pct = 99;\n      pct = Math.min(99, pct);\n      var fill = document.getElementById('wp-ai-progress-fill');\n      var label = document.getElementById('wp-ai-progress-pct');\n      if (fill) fill.style.width = pct.toFixed(0) + '%';\n      if (label) label.textContent = pct.toFixed(0) + '%';\n    }, 300);\n  }\n  function stopAiProgress() {\n    if (aiTimer) { clearInterval(aiTimer); aiTimer = null; }\n    var fill = document.getElementById('wp-ai-progress-fill');\n    var label = document.getElementById('wp-ai-progress-pct');\n    if (fill) fill.style.width = '100%';\n    if (label) label.textContent = '100%';\n  }\n\n  function handleScreenshot(file) {\n    if (!file.type || file.type.indexOf('image\/') !== 0) {\n      showError($s3Err, tr('errNotImage')); return;\n    }\n    if (file.size > MAX_FILE_BYTES) {\n      showError($s3Err, tr('errFileTooBig')); return;\n    }\n    showError($s3Err, '');\n    $screenshotEmpty.hidden = true;\n    $screenshotPreview.hidden = false;\n    $screenshotPreview.src = URL.createObjectURL(file);\n    $screenshotArea.className = 'wp-upload-single has checking';\n    $screenshotStatus.innerHTML =\n      '<div class=\"wp-ai-progress-track\"><div class=\"wp-ai-progress-fill\" id=\"wp-ai-progress-fill\"><\/div><\/div>' +\n      '<div class=\"wp-ai-progress-text\">\u23f3 ' + tr('aiCheckingLong') + ' <span class=\"wp-ai-pct\" id=\"wp-ai-progress-pct\">0%<\/span><\/div>';\n    STATE.review_screenshot_status = 'checking';\n    startAiProgress();\n\n    var compressedFile = null;\n    compressImage(file, 1200, 0.85).then(function (cmp) {\n      compressedFile = cmp;\n      return fileToDataUrl(cmp);\n    }).then(function (dataUrl) {\n      return fetchJson('\/api\/forms\/warranty-pro\/ai-check', {\n        image_data_url: dataUrl,\n        mode: isFbMode() ? 'fb' : 'review',\n      });\n    }).then(function (res) {\n      if (!res) { failScreenshot(tr('errNetwork')); return; }\n      if (res.ok) {\n        \/\/ \u901a\u8fc7\uff08PASS \u6216 REVIEW_LIMITED\uff09\uff0c\u518d upload \u5230 NocoBase \u62ff url\n        STATE.review_title = res.title || '';\n        STATE.review_content = res.content || '';\n        STATE.review_screenshot_status = (res.code === 'REVIEW_LIMITED') ? 'limited' : 'passed';\n        var fd = new FormData();\n        var uploadBlob = compressedFile || file;\n        var filename = (file.name || 'screenshot.jpg').replace(\/\\.[^.]+$\/, '') + '.jpg';\n        fd.append('file', uploadBlob, filename);\n        fetch(API_BASE + '\/api\/forms\/upload', { method: 'POST', body: fd })\n          .then(function (r) { return r.json(); })\n          .then(function (d) {\n            var att = d && (d.attachment || d.data || d);\n            if (d && d.success && att && att.url) {\n              STATE.review_screenshot_url = att.url;\n              stopAiProgress();\n              $screenshotArea.className = 'wp-upload-single has passed';\n              $screenshotStatus.textContent = '\u2705 ' + tr('aiPassed');\n              renderGiftConfirm();\n              updateS3Btn();\n              saveState();\n            } else {\n              failScreenshot(tr('errUpload'));\n            }\n          })\n          .catch(function () { failScreenshot(tr('errUpload')); });\n      } else {\n        var msg = aiErrMsg(res.code);\n        failScreenshot(msg);\n      }\n    }).catch(function () { failScreenshot(tr('errNetwork')); });\n  }\n  function failScreenshot(msg) {\n    stopAiProgress();\n    STATE.review_screenshot_status = '';\n    STATE.review_screenshot_url = '';\n    STATE.review_title = '';\n    STATE.review_content = '';\n    $screenshotPreview.hidden = true;\n    $screenshotPreview.removeAttribute('src');\n    $screenshotEmpty.hidden = false;\n    $screenshotArea.className = 'wp-upload-single';\n    $screenshotStatus.textContent = '';\n    $giftConfirm.textContent = '';\n    $giftConfirm.hidden = true;\n    showError($s3Err, msg);\n    updateS3Btn();\n    saveState();\n  }\n  function aiErrMsg(code) {\n    if (code === 'NOT_SCREENSHOT') return tr('errAI_NOT_SCREENSHOT');\n    if (code === 'ALREADY_SUBMITTED') return tr('errAI_ALREADY_SUBMITTED');\n    if (code === 'WRONG_PAGE') return tr('errAI_WRONG_PAGE');\n    if (code === 'FEEDBACK_NOT_REVIEW') return tr('errAI_FEEDBACK_NOT_REVIEW');\n    if (code === 'REVIEW_INSTEAD_OF_FEEDBACK') return tr('errAI_REVIEW_NOT_FEEDBACK');\n    if (code === 'LOW_RATING') return tr('errAI_LOW_RATING');\n    if (code === 'UNRECOGNIZED') return tr('errAI_UNRECOGNIZED');\n    if (code === 'AI_PARSE_ERROR') return tr('errAI_PARSE');\n    return tr('errSubmitFailed');\n  }\n  function updateS3Btn() {\n    var ok = STATE.review_screenshot_url && (STATE.review_screenshot_status === 'passed' || STATE.review_screenshot_status === 'limited');\n    $s3Btn.disabled = !ok;\n    $s3Btn.classList.toggle('enabled', ok);\n  }\n  $('wp-s3-back').addEventListener('click', function () {\n    stopAiProgress();\n    STATE.step = 'step2';\n    saveState();\n    show('step2');\n  });\n  $s3Btn.addEventListener('click', function () {\n    if ($s3Btn.disabled) return;\n    showError($s3Err, '');\n    $s3Btn.disabled = true; $s3Btn.textContent = '...';\n    fetchJson('\/api\/forms\/warranty-pro\/submit', {\n      phase: 'gift',\n      order_number: STATE.order_number,\n      email: STATE.email,\n      name: STATE.name,\n      record_id: STATE.record_id,\n      gift: STATE.gift,\n      payment_method: STATE.payment_method,\n      payment_email: STATE.payment_email,\n      address: STATE.address,\n      city: STATE.city,\n      state: STATE.state,\n      post_code: STATE.post_code,\n      phone: STATE.phone,\n      review_title: STATE.review_title,\n      review_content: STATE.review_content,\n      review_screenshot_url: STATE.review_screenshot_url\n    }).then(function (data) {\n      if (data && data.success) {\n        clearState();\n        var variant = data.thanks_variant || (STATE.review_screenshot_status === 'limited' ? 'review_limited' : 'gift');\n        showThanks(variant);\n        renderGiftCard(data.gift_card_text || '', !!data.is_visa_prepaid);\n      } else {\n        showError($s3Err, errMsgByCode(data && data.code));\n        updateS3Btn();\n      }\n    }).catch(function () {\n      showError($s3Err, tr('errNetwork'));\n      updateS3Btn();\n    });\n  });\n\n  \/\/ ============ Thanks ============\n  function showThanks(kind) {\n    var $t = $('wp-thanks-title');\n    var $b = $('wp-thanks-body');\n    if (kind === 'basic') { $t.textContent = tr('thanksBasicTitle'); $b.textContent = tr('thanksBasicBody'); }\n    else if (kind === 'gift') { $t.textContent = tr('thanksGiftTitle'); $b.textContent = tr('thanksGiftBody'); }\n    else if (kind === 'gift_manual') { $t.textContent = tr('thanksGiftManualTitle'); $b.textContent = tr('thanksGiftManualBody'); }\n    else if (kind === 'gift_ship') { $t.textContent = tr('thanksGiftShipTitle'); $b.textContent = tr('thanksGiftShipBody'); }\n    else if (kind === 'gift_virtual') { $t.textContent = tr('thanksGiftVirtualTitle'); $b.textContent = tr('thanksGiftVirtualBody'); }\n    else if (kind === 'complaint') { $t.textContent = tr('thanksComplaintTitle'); $b.textContent = tr('thanksComplaintBody'); }\n    else if (kind === 'review_limited') { $t.textContent = tr('thanksReviewLimitedTitle'); $b.textContent = tr('thanksReviewLimitedBody'); }\n    else if (kind === 'giftcard') { $t.textContent = tr('thanksGiftCardTitle'); $b.textContent = tr('thanksGiftCardBody'); }\n    else if (kind === 'giftcard_pending') { $t.textContent = tr('thanksGiftCardPendingTitle'); $b.textContent = tr('thanksGiftCardPendingBody'); }\n    else if (kind === 'visa_giftcard') { $t.textContent = tr('thanksVisaGiftCardTitle'); $b.textContent = tr('thanksVisaGiftCardBody'); }\n    else if (kind === 'visa_giftcard_pending') { $t.textContent = tr('thanksVisaGiftCardPendingTitle'); $b.textContent = tr('thanksVisaGiftCardPendingBody'); }\n    \/\/ \u6240\u6709 gift \u7c7b variant \u663e\u793a\"\u90ae\u4ef6\u5df2\u53d1\u9001\uff0c\u68c0\u67e5\u5783\u573e\u7bb1\"\u63d0\u793a\n    var withEmail = ['gift','gift_manual','gift_ship','gift_virtual','giftcard','giftcard_pending','visa_giftcard','visa_giftcard_pending','review_limited'];\n    var $note = $('wp-thanks-email-notice');\n    if ($note) {\n      if (withEmail.indexOf(kind) >= 0) {\n        var tpl = tr('thanksEmailNotice');\n        $note.innerHTML = '<p>' + tpl.replace('{email}', '<strong>' + (STATE.email || '') + '<\/strong>') + '<\/p>';\n        $note.hidden = false;\n      } else {\n        $note.hidden = true;\n      }\n    }\n    show('thanks');\n  }\n\n  function renderGiftCard(text, isVisa) {\n    var $gc = $('wp-thanks-giftcard');\n    if (!$gc) return;\n    if (!text) { $gc.hidden = true; return; }\n    var $code = $('wp-giftcard-code');\n    var $label = $('wp-giftcard-label');\n    if ($code) $code.textContent = text;\n    if ($label) $label.textContent = isVisa ? tr('giftcardLabelVisa') : tr('giftcardLabel');\n    var $extra = $('wp-thanks-visa-extra');\n    if ($extra) $extra.hidden = !isVisa;\n    $gc.hidden = false;\n  }\n\n  function errMsgByCode(code) {\n    if (!code) return tr('errSubmitFailed');\n    if (code === 'NOT_SHIPPED') return tr('errNotShipped');\n    if (code === 'REFUNDED') return tr('errRefunded');\n    if (code === 'ALREADY_ACTIVATED') return tr('errAlreadyActivated');\n    if (code === 'IS_REVIEW_ORDER') return tr('errReviewOrder');\n    if (code === 'INVALID_EMAIL') return tr('errEmail');\n    if (code === 'MISSING_NAME') return tr('errName');\n    if (code === 'INVALID_RATING') return tr('errRating');\n    if (code === 'CONTENT_TOO_SHORT') return tr('errContentShort');\n    if (code === 'INVALID_PAYMENT_EMAIL') return tr('errPaymentEmail');\n    if (code === 'MISSING_PAYMENT_METHOD') return tr('errPaymentMethod');\n    if (code === 'MISSING_SHIPPING_INFO') return tr('errAddrMissing');\n    if (code === 'ALREADY_CLAIMED_GIFT') return tr('errAlreadyClaimedGift');\n    if (code === 'GEO_BLOCKED' || code === 'HONEYPOT' || code === 'TOO_FAST') return tr('errSubmitFailed');\n    \/\/ \u515c\u5e95\uff1a\u672a\u8bc6\u522b\u7684 code\uff08INVALID_GIFT\/REFUND_*\/ORDER_NOT_FOUND_FOR_GIFT\/UNKNOWN_PHASE \u7b49\uff09\n    \/\/ \u663e\u793a\u9519\u8bef\u7801\uff0c\u8ba9\u5ba2\u6237\u80fd\u622a\u56fe\u53cd\u9988\uff0c\u4fbf\u4e8e\u5ba2\u670d\u5feb\u901f\u5b9a\u4f4d\n    return tr('errSubmitFailedWithCode').replace('{code}', code);\n  }\n\n  \/\/ ============ \u6062\u590d localStorage ============\n  function restore() {\n    if (!STATE || !STATE.step || STATE.step === 'step1') return;\n    \/\/ \u56de\u586b Step 1 \u5b57\u6bb5\n    $order.value = STATE.order_number || ''; renderMask();\n    $email.value = STATE.email || '';\n    $name.value = STATE.name || '';\n    \/\/ \u5047\u5b9a\u5df2 PASS \u624d\u80fd\u6062\u590d\u5230 step2+\n    orderVerdict = { code: 'PASS' };\n    updateS1Btn();\n\n    if (STATE.step === 'step2') {\n      show('step2');\n      $exp.value = STATE.expectations || '';\n      if (STATE.expectations === 'issue') {\n        $complaintSec.hidden = false;\n        $content.value = STATE.complaint_content || '';\n        updateContentCounter();\n      } else if (STATE.expectations === 'works_well' || STATE.expectations === 'not_used') {\n        $ratingSec.hidden = false;\n        renderStars();\n        if (STATE.rating >= 4) {\n          $willingSec.hidden = false;\n          renderWilling();\n          if (STATE.want_review === 'yes') {\n            $giftsSec.hidden = false;\n            loadAndRenderGifts(function () {\n              if (!STATE.gift_id || STATE.gift_id === 'not_interested') { updateS2Btn(); return; }\n              var found = cachedGifts.find(function (x) { return String(x.id) === String(STATE.gift_id); });\n              if (!found) {\n                \/\/ \u793c\u7269\u4e0d\u518d\u53ef\u7528\uff08\u52a0\u8f7d\u5931\u8d25 or \u6570\u636e\u53d8\u5316\uff09\uff0c\u6e05\u9664\u9009\u4e2d\u907f\u514d\u5361\u6b7b\n                STATE.gift_id = null; STATE.gift = null;\n                STATE.payment_method = ''; STATE.payment_email = '';\n                STATE.address = ''; STATE.city = ''; STATE.state = ''; STATE.post_code = ''; STATE.phone = '';\n                saveState();\n                renderGifts();\n                updateS2Btn();\n                return;\n              }\n              STATE.gift = found;\n              renderGifts();\n              if (found.type === '\u73b0\u91d1') {\n                $paySec.hidden = false;\n                renderPayMethods();\n                applyPayUi();\n                if (STATE.payment_email) $('wp-pay-email').value = STATE.payment_email;\n              } else if (found.send_type === '\u90ae\u5bc4') {\n                $addrSec.hidden = false;\n                $('wp-addr-address').value = STATE.address || '';\n                $('wp-addr-city').value = STATE.city || '';\n                $('wp-addr-state').value = STATE.state || '';\n                $('wp-addr-post').value = STATE.post_code || '';\n                $('wp-addr-phone').value = STATE.phone || '';\n              }\n              updateS2Btn();\n            });\n          }\n        }\n      }\n      updateS2Btn();\n    } else if (STATE.step === 'step3') {\n      show('step3');\n      setupStep3();\n    }\n  }\n\n  \/\/ \u793c\u54c1\u5361\u590d\u5236\u6309\u94ae\n  var $gcCopy = $('wp-giftcard-copy');\n  if ($gcCopy) {\n    $gcCopy.addEventListener('click', function () {\n      var codeEl = $('wp-giftcard-code');\n      var text = (codeEl && codeEl.textContent) || '';\n      if (!text) return;\n      if (navigator.clipboard && navigator.clipboard.writeText) {\n        navigator.clipboard.writeText(text).then(function () {\n          var old = $gcCopy.textContent;\n          $gcCopy.textContent = tr('giftcardCopied');\n          setTimeout(function () { $gcCopy.textContent = old; }, 1500);\n        }).catch(function () {});\n      }\n    });\n  }\n\n  \/\/ ============ Need Help \u6c42\u52a9\u901a\u9053 ============\n  \/\/ \u5ba2\u6237\u5728 #wp-email \u586b\u4e86\u5408\u6cd5\u90ae\u7bb1\u540e\uff0c\u8868\u5355\u5e95\u90e8\u663e\u793a \"Occurred errors? Report BUG\" \u94fe\u63a5\n  \/\/ \u70b9\u51fb \u2192 \u5f39\u7a97\u8f93\u5165\u95ee\u9898 \u2192 fetch \/api\/forms\/feedback\/submit \u2192 \u9489\u9489 + suggestion \u5165\u5e93\n  \/\/ \u63d0\u4ea4\u540e\u4e0d\u81ea\u52a8\u5173\u95ed\u5f39\u7a97\uff0c\u5ba2\u6237\u624b\u52a8\u70b9 Close\n  function refreshHelpLinkVisibility() {\n    var v = ($('wp-email') && $('wp-email').value || '').trim();\n    var ok = !!(v && EMAIL_RE.test(v));\n    var $link = $('wp-help-link');\n    if ($link) $link.hidden = !ok;\n    var $a = $('wp-help-link-a');\n    if ($a) $a.textContent = tr('needHelpLink');\n  }\n  if ($('wp-email')) {\n    $('wp-email').addEventListener('blur', refreshHelpLinkVisibility);\n    $('wp-email').addEventListener('input', refreshHelpLinkVisibility);\n  }\n\n  function openHelpModal() {\n    var em = ($('wp-email') && $('wp-email').value || '').trim();\n    if (!em || !EMAIL_RE.test(em)) return;  \/\/ \u515c\u5e95\uff08\u7406\u8bba\u4e0a\u94fe\u63a5\u4e0d\u4f1a\u663e\u793a\uff09\n    \/\/ reset\n    $('wp-help-content').value = '';\n    $('wp-help-content').placeholder = tr('needHelpPlaceholder');\n    $('wp-help-err').textContent = '';\n    $('wp-help-thanks').hidden = true;\n    $('wp-help-thanks').textContent = '';\n    $('wp-help-actions').hidden = false;\n    $('wp-help-close-row').hidden = true;\n    $('wp-help-send').disabled = false;\n    $('wp-help-send').textContent = tr('needHelpSend');\n    $('wp-help-cancel').textContent = tr('needHelpCancel');\n    $('wp-help-close').textContent = tr('needHelpClose');\n    $('wp-help-link-a').textContent = tr('needHelpLink');\n    \/\/ \u9876\u90e8\u591a\u8bed\u79cd + \u90ae\u7bb1\u56de\u663e\n    var titleEl = document.querySelector('#wp-help-modal h3');\n    if (titleEl) titleEl.textContent = tr('needHelpTitle');\n    var hintEl = document.querySelector('#wp-help-modal p[data-t=\"needHelpHint\"]');\n    if (hintEl) hintEl.textContent = tr('needHelpHint');\n    $('wp-help-email-display').textContent = em;\n    $('wp-help-modal').hidden = false;\n    setTimeout(function () { $('wp-help-content').focus(); }, 50);\n  }\n  if ($('wp-help-link-a')) {\n    $('wp-help-link-a').addEventListener('click', function (e) { e.preventDefault(); openHelpModal(); });\n  }\n  if ($('wp-help-cancel')) {\n    $('wp-help-cancel').addEventListener('click', function () { $('wp-help-modal').hidden = true; });\n  }\n  if ($('wp-help-close')) {\n    $('wp-help-close').addEventListener('click', function () { $('wp-help-modal').hidden = true; });\n  }\n  if ($('wp-help-send')) {\n    $('wp-help-send').addEventListener('click', function () {\n      var em = ($('wp-email') && $('wp-email').value || '').trim();\n      var content = $('wp-help-content').value.trim();\n      var $err = $('wp-help-err');\n      $err.textContent = '';\n      if (!em || !EMAIL_RE.test(em)) { $err.textContent = tr('errEmail'); return; }\n      if (content.length < 5) { $err.textContent = tr('needHelpErrTooShort'); return; }\n      var $btn = $('wp-help-send');\n      $btn.disabled = true;\n      $btn.textContent = '...';\n      fetchJson('\/api\/forms\/feedback\/submit', {\n        email: em,\n        content: content,\n        order_number: STATE.order_number || '',\n        page_step: STATE.step || '',\n        source: 'warranty-pro',\n        lang: LANG,\n      }).then(function (data) {\n        if (data && data.success) {\n          $('wp-help-thanks').textContent = tr('needHelpThanks').replace('{email}', em);\n          $('wp-help-thanks').hidden = false;\n          $('wp-help-actions').hidden = true;\n          $('wp-help-close-row').hidden = false;\n          $('wp-help-content').setAttribute('disabled', 'disabled');\n        } else {\n          $btn.disabled = false;\n          $btn.textContent = tr('needHelpSend');\n          $err.textContent = errMsgByCode(data && data.code);\n        }\n      }).catch(function () {\n        $btn.disabled = false;\n        $btn.textContent = tr('needHelpSend');\n        $err.textContent = tr('errNetwork');\n      });\n    });\n  }\n\n  \/\/ \u521d\u59cb\u5316\n  if (STATE.step && STATE.step !== 'step1') {\n    restore();\n    refreshHelpLinkVisibility();\n  } else {\n    renderMask();\n  }\n})();\n<\/script>\n<\/body>\n<\/html>\n\t\t<\/div>\n\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\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Activate Your 3-Year Warranty! Enjoy Jimveo Projector Without Worries! Warranty Activation Order Number * XXX-XXXXXXX-XXXXXXX How to find my order number? Email * Name * Next Does it meet your expectations? * Please select&#8230;Yes, it works wellNo, there are some issuesNot used yet Describe your issue * 0 \/ 20 min Attach images (optional, up to 5) If you have relevant photos, adding them helps us diagnose the issue faster. Click to upload or drag and drop Max 5 images, up to 10 MB each. + Add image Max 5 images, up to 10 MB each. How do you feel about our product? * Criticism is welcome. Your suggestion will [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","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":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","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-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":"","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-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":"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":""},"mobile":{"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":""}},"footnotes":""},"class_list":["post-7501","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/jimveo.com\/ja\/wp-json\/wp\/v2\/pages\/7501","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jimveo.com\/ja\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/jimveo.com\/ja\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/jimveo.com\/ja\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jimveo.com\/ja\/wp-json\/wp\/v2\/comments?post=7501"}],"version-history":[{"count":0,"href":"https:\/\/jimveo.com\/ja\/wp-json\/wp\/v2\/pages\/7501\/revisions"}],"wp:attachment":[{"href":"https:\/\/jimveo.com\/ja\/wp-json\/wp\/v2\/media?parent=7501"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}