{"id":329,"date":"2026-03-19T11:08:07","date_gmt":"2026-03-19T09:08:07","guid":{"rendered":"https:\/\/www.mrvin.com\/produkt\/"},"modified":"2026-06-16T08:16:51","modified_gmt":"2026-06-16T06:16:51","slug":"product","status":"publish","type":"page","link":"https:\/\/www.mrvin.com\/cs\/product\/","title":{"rendered":"Produkt"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"329\" class=\"elementor elementor-329 elementor-189\" data-elementor-post-type=\"page\">\n\t\t\t\t<section class=\"elementor-element elementor-element-5aa03e3e e-con-full e-flex e-con e-parent\" data-id=\"5aa03e3e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-62f1d3e7 elementor-widget elementor-widget-shortcode\" data-id=\"62f1d3e7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n<style>\n#vp_WzlTlq *, #vp_WzlTlq *::before, #vp_WzlTlq *::after { box-sizing:border-box; margin:0; padding:0; }\n\n#vp_WzlTlq {\n  --navy:      #04243F;\n  --navy-80:   rgba(4,36,63,0.80);\n  --navy-60:   rgba(4,36,63,0.60);\n  --navy-40:   rgba(4,36,63,0.40);\n  --navy-12:   rgba(4,36,63,0.12);\n  --navy-06:   rgba(4,36,63,0.06);\n  --blue:      #2563EB;\n  --blue-dark: #1D4ED8;\n  --blue-10:   rgba(37,99,235,0.10);\n  --blue-06:   rgba(37,99,235,0.06);\n  --green:     #10B981;\n  --green-bg:  #ECFDF5;\n  --green-tx:  #065F46;\n  --orange:    #F59E0B;\n  --white:     #FFFFFF;\n  --surface:   #F8FAFC;\n  --border:    rgba(4,36,63,0.08);\n  --font:      'DM Sans', system-ui, sans-serif;\n  --serif:     'DM Serif Display', Georgia, serif;\n  --mono:      'DM Mono', monospace;\n  --radius:    16px;\n  --radius-sm: 10px;\n  --shadow-sm: 0 1px 3px rgba(4,36,63,0.06);\n  --shadow-md: 0 4px 20px rgba(4,36,63,0.08);\n  --shadow-lg: 0 12px 48px rgba(4,36,63,0.12);\n\n  font-family: var(--font); color: var(--navy); position: relative;\n  max-width: 1120px; margin: 0 auto; padding: 48px 24px 80px;\n  -webkit-font-smoothing: antialiased; line-height: 1.5;\n}\n#vp_WzlTlq::before {\n  content:''; position:absolute; top:-200px; left:50%; transform:translateX(-50%);\n  width:900px; height:900px; background:radial-gradient(circle,rgba(37,99,235,0.07) 0%,transparent 70%);\n  pointer-events:none; z-index:0;\n}\n#vp_WzlTlq .vp-loading {\n  display:flex; flex-direction:column; align-items:center; padding-top:40px;\n  position:relative; z-index:1; animation:vp_WzlTlq_fadeIn 0.5s ease;\n}\n@keyframes vp_WzlTlq_fadeIn { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:translateY(0)} }\n#vp_WzlTlq .vp-vin-pill {\n  display:inline-flex; align-items:center; gap:8px; background:var(--navy-06);\n  border:1px solid var(--border); border-radius:100px; padding:6px 16px 6px 12px;\n  font-family:var(--mono); font-size:13px; font-weight:500; color:var(--navy-60);\n  letter-spacing:0.04em; margin-bottom:32px;\n}\n#vp_WzlTlq .vp-vin-pill svg { flex-shrink:0; opacity:0.4; }\n#vp_WzlTlq .vp-vin-pill span { color:var(--navy); }\n#vp_WzlTlq .vp-ring-wrap { position:relative; width:160px; height:160px; margin-bottom:28px; }\n#vp_WzlTlq .vp-ring-svg { width:100%; height:100%; transform:rotate(-90deg); }\n#vp_WzlTlq .vp-ring-bg { fill:none; stroke:var(--navy-06); stroke-width:6; }\n#vp_WzlTlq .vp-ring-fill {\n  fill:none; stroke:var(--blue); stroke-width:6; stroke-linecap:round;\n  stroke-dasharray:408.4; stroke-dashoffset:408.4;\n  \/* stroke + filter are in the list so the blue->green at 100% cross-fades\n     instead of snapping (which reads as a rendering glitch). *\/\n  transition:stroke-dashoffset 0.6s cubic-bezier(0.4,0,0.2,1), stroke 0.45s ease, filter 0.45s ease;\n  filter:drop-shadow(0 0 8px rgba(37,99,235,0.3));\n}\n#vp_WzlTlq .vp-ring-pct { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; transition:opacity 0.16s ease, transform 0.3s cubic-bezier(0.4,0,0.2,1); }\n#vp_WzlTlq .vp-ring-pct-num { font-family:var(--serif); font-size:42px; color:var(--navy); line-height:1; }\n#vp_WzlTlq .vp-ring-pct-label { font-size:12px; color:var(--navy-40); font-weight:500; margin-top:2px; text-transform:uppercase; letter-spacing:0.08em; }\n\n\/* ---- completion: the ring resolves into a checkmark instead of vanishing ----\n * The check lives in its OWN svg: .vp-ring-svg carries transform:rotate(-90deg)\n * (that is what puts the ring's start at 12 o'clock), so a path added there\n * would render on its side. pathLength=100 normalises the draw to 100 -> 0. *\/\n#vp_WzlTlq .vp-ring-check { position:absolute; inset:0; width:100%; height:100%; opacity:0; }\n#vp_WzlTlq .vp-ring-check path {\n  fill:none; stroke:var(--green); stroke-width:7; stroke-linecap:round; stroke-linejoin:round;\n  stroke-dasharray:100; stroke-dashoffset:100;\n}\n#vp_WzlTlq .vp-ring-halo {\n  position:absolute; inset:0; border-radius:50%;\n  border:2px solid var(--green); opacity:0; pointer-events:none;\n}\n#vp_WzlTlq .vp-ring-wrap.is-done .vp-ring-fill { stroke:var(--green); filter:drop-shadow(0 0 11px rgba(16,185,129,0.34)); }\n#vp_WzlTlq .vp-ring-wrap.is-done .vp-ring-pct { opacity:0; transform:scale(0.8); transition-delay:0.06s; }\n#vp_WzlTlq .vp-ring-wrap.is-done .vp-ring-check { opacity:1; }\n#vp_WzlTlq .vp-ring-wrap.is-done .vp-ring-check path { animation:vp_WzlTlq_draw 0.44s cubic-bezier(0.25,0.9,0.3,1) 0.2s forwards; }\n#vp_WzlTlq .vp-ring-wrap.is-done { animation:vp_WzlTlq_punch 0.52s cubic-bezier(0.34,1.5,0.64,1) 0.18s; }\n#vp_WzlTlq .vp-ring-wrap.is-done .vp-ring-halo { animation:vp_WzlTlq_halo 0.78s cubic-bezier(0.2,0.7,0.3,1) 0.22s; }\n@keyframes vp_WzlTlq_draw  { to { stroke-dashoffset:0 } }\n@keyframes vp_WzlTlq_punch { 0%{transform:scale(1)} 42%{transform:scale(1.055)} 100%{transform:scale(1)} }\n@keyframes vp_WzlTlq_halo  { 0%{opacity:0.5;transform:scale(1)} 100%{opacity:0;transform:scale(1.34)} }\n@media (prefers-reduced-motion:reduce) {\n  #vp_WzlTlq .vp-ring-wrap.is-done,\n  #vp_WzlTlq .vp-ring-wrap.is-done .vp-ring-halo { animation:none; }\n  #vp_WzlTlq .vp-ring-wrap.is-done .vp-ring-check path { animation:none; stroke-dashoffset:0; }\n}\n\n#vp_WzlTlq .vp-load-headline { font-family:var(--serif); font-size:clamp(24px,4vw,36px); color:var(--navy); text-align:center; margin-bottom:8px; line-height:1.15; transition:opacity 0.22s ease; }\n#vp_WzlTlq .vp-load-step { font-size:14px; color:var(--navy-40); text-align:center; margin-bottom:48px; transition:opacity 0.2s ease; min-height:20px; }\n#vp_WzlTlq .vp-content { display:grid; grid-template-columns:1fr 420px; gap:40px; align-items:stretch; margin-top:8px; position:relative; z-index:1; }\n#vp_WzlTlq .vp-left { display:flex; flex-direction:column; }\n#vp_WzlTlq .vp-includes {\n  background:var(--white); border:1px solid var(--border); border-radius:var(--radius);\n  padding:32px; box-shadow:var(--shadow-sm); flex:1; display:flex; flex-direction:column;\n}\n#vp_WzlTlq .vp-includes .vp-features { flex:1; }\n#vp_WzlTlq .vp-includes-head { display:flex; align-items:center; gap:12px; margin-bottom:24px; }\n#vp_WzlTlq .vp-includes-icon {\n  width:40px; height:40px; border-radius:10px;\n  background:linear-gradient(135deg,var(--blue),var(--blue-dark));\n  display:flex; align-items:center; justify-content:center;\n  box-shadow:0 2px 8px rgba(37,99,235,0.25); flex-shrink:0;\n}\n#vp_WzlTlq .vp-includes-title { font-family:var(--serif); font-size:22px; color:var(--navy); }\n#vp_WzlTlq .vp-includes-sub { font-size:13px; color:var(--navy-40); font-weight:400; }\n#vp_WzlTlq .vp-features { list-style:none; }\n#vp_WzlTlq .vp-feature { display:flex; align-items:flex-start; gap:14px; padding:14px 0; border-bottom:1px solid var(--border); }\n#vp_WzlTlq .vp-feature:last-child { border-bottom:none; }\n#vp_WzlTlq .vp-feature-check {\n  width:28px; height:28px; border-radius:50%; background:var(--blue-06);\n  display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:1px;\n  transition:background 0.3s ease, transform 0.3s ease;\n}\n#vp_WzlTlq .vp-feature.is-checked .vp-feature-check { background:var(--green-bg); transform:scale(1.05); }\n#vp_WzlTlq .vp-feature-check svg { width:14px; height:14px; }\n#vp_WzlTlq .vp-feature-check .chk-p { color:var(--navy-12); }\n#vp_WzlTlq .vp-feature.is-checked .chk-p { display:none; }\n#vp_WzlTlq .vp-feature-check .chk-d { display:none; color:var(--green); }\n#vp_WzlTlq .vp-feature.is-checked .chk-d { display:block; }\n#vp_WzlTlq .vp-feature-name { font-size:15px; font-weight:600; color:var(--navy); line-height:1.3; }\n#vp_WzlTlq .vp-feature-desc { font-size:13px; color:var(--navy-40); margin-top:2px; line-height:1.4; }\n#vp_WzlTlq .vp-testimonials { margin-top:32px; position:relative; z-index:1; }\n#vp_WzlTlq .vp-testimonials-label { font-size:12px; font-weight:600; color:var(--navy-40); text-transform:uppercase; letter-spacing:0.08em; margin-bottom:14px; }\n#vp_WzlTlq .vp-testi-scroll { position:relative; overflow:hidden; }\n#vp_WzlTlq .vp-testi-track { display:flex; gap:16px; width:max-content; animation:vp_WzlTlq_scroll 28s linear infinite; }\n#vp_WzlTlq .vp-testi-track:hover { animation-play-state:paused; }\n@keyframes vp_WzlTlq_scroll { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }\n#vp_WzlTlq .vp-testi-card {\n  background:var(--white); border:1px solid var(--border); border-radius:var(--radius-sm);\n  padding:20px 22px; min-width:280px; max-width:300px; flex-shrink:0; box-shadow:var(--shadow-sm);\n  transition:transform 0.2s ease, box-shadow 0.2s ease;\n}\n#vp_WzlTlq .vp-testi-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-md); }\n#vp_WzlTlq .vp-testi-top { display:flex; align-items:center; gap:10px; margin-bottom:10px; }\n#vp_WzlTlq .vp-testi-avatar { width:32px; height:32px; border-radius:50%; background:var(--blue-10); display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; color:var(--blue); flex-shrink:0; overflow:hidden; }\n#vp_WzlTlq .vp-testi-avatar img { width:100%; height:100%; object-fit:cover; display:block; }\n#vp_WzlTlq .vp-testi-name { font-size:14px; font-weight:600; color:var(--navy); }\n#vp_WzlTlq .vp-testi-verified { width:14px; height:14px; color:var(--blue); flex-shrink:0; }\n#vp_WzlTlq .vp-testi-text { font-size:13px; color:var(--navy-60); line-height:1.55; }\n#vp_WzlTlq .vp-testi-stars { margin-top:10px; font-size:13px; color:var(--orange); letter-spacing:1px; }\n#vp_WzlTlq .vp-testi-scroll::before, #vp_WzlTlq .vp-testi-scroll::after { content:''; position:absolute; top:0; bottom:0; width:48px; z-index:2; pointer-events:none; }\n#vp_WzlTlq .vp-testi-scroll::before { left:0; background:linear-gradient(90deg,var(--white) 0%,transparent 100%); }\n#vp_WzlTlq .vp-testi-scroll::after  { right:0; background:linear-gradient(270deg,var(--white) 0%,transparent 100%); }\n#vp_WzlTlq .vp-right { position:sticky; top:24px; display:flex; flex-direction:column; }\n#vp_WzlTlq .vp-report-card { background:var(--navy); border-radius:20px; padding:32px 28px 28px; color:var(--white); box-shadow:var(--shadow-lg), 0 0 0 1px rgba(255,255,255,0.04) inset; flex:1; display:flex; flex-direction:column; }\n#vp_WzlTlq .vp-rc-features { list-style:none; margin-bottom:28px; flex:1; }\n#vp_WzlTlq .vp-rc-badge { display:inline-flex; align-items:center; gap:6px; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.10); border-radius:100px; padding:5px 14px; font-size:12px; font-weight:600; color:rgba(255,255,255,0.70); margin-bottom:20px; text-transform:uppercase; letter-spacing:0.06em; }\n#vp_WzlTlq .vp-rc-badge-dot { width:6px; height:6px; border-radius:50%; background:var(--green); animation:vp_WzlTlq_pulse 2s ease-in-out infinite; }\n@keyframes vp_WzlTlq_pulse { 0%,100%{opacity:1} 50%{opacity:0.3} }\n#vp_WzlTlq .vp-rc-title { font-family:var(--serif); font-size:26px; color:var(--white); margin-bottom:4px; }\n#vp_WzlTlq .vp-rc-sub { font-size:13px; color:rgba(255,255,255,0.45); margin-bottom:24px; }\n#vp_WzlTlq .vp-rc-feat { display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid rgba(255,255,255,0.06); font-size:14px; color:rgba(255,255,255,0.75); font-weight:500; }\n#vp_WzlTlq .vp-rc-feat:last-child { border-bottom:none; }\n#vp_WzlTlq .vp-rc-feat svg { width:16px; height:16px; color:var(--green); flex-shrink:0; }\n#vp_WzlTlq .vp-rc-price-block { background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.08); border-radius:14px; padding:20px; text-align:center; margin-bottom:20px; }\n#vp_WzlTlq .vp-rc-price-row { display:flex; align-items:baseline; justify-content:center; gap:10px; margin-bottom:4px; }\n#vp_WzlTlq .vp-rc-price-old { font-size:16px; color:rgba(255,255,255,0.35); text-decoration:line-through; }\n#vp_WzlTlq .vp-rc-price-current { font-family:var(--serif); font-size:38px; color:var(--white); line-height:1; }\n#vp_WzlTlq .vp-rc-price-currency { font-size:18px; color:rgba(255,255,255,0.60); font-weight:500; }\n#vp_WzlTlq .vp-rc-discount { display:inline-flex; align-items:center; background:rgba(16,185,129,0.15); color:#6EE7B7; font-size:12px; font-weight:700; padding:3px 10px; border-radius:100px; margin-left:4px; }\n#vp_WzlTlq .vp-rc-price-note { font-size:12px; color:rgba(255,255,255,0.35); margin-top:4px; }\n#vp_WzlTlq .vp-rc-cta {\n  display:flex; align-items:center; justify-content:center; gap:8px; width:100%; padding:16px;\n  border:none; border-radius:12px; background:var(--blue); color:var(--white); font-family:var(--font);\n  font-size:16px; font-weight:700; cursor:pointer; text-decoration:none;\n  transition:background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;\n  box-shadow:0 4px 16px rgba(37,99,235,0.35); margin-bottom:16px;\n}\n#vp_WzlTlq .vp-rc-cta:hover { background:var(--blue-dark); transform:translateY(-1px); box-shadow:0 6px 24px rgba(37,99,235,0.45); color:var(--white); text-decoration:none; }\n#vp_WzlTlq .vp-rc-cta:active { transform:translateY(0); }\n#vp_WzlTlq .vp-rc-cta svg { flex-shrink:0; }\n#vp_WzlTlq .vp-rc-timing { display:flex; align-items:center; justify-content:center; gap:6px; font-size:12px; color:rgba(255,255,255,0.35); }\n#vp_WzlTlq .vp-rc-timing svg { flex-shrink:0; opacity:0.5; }\n#vp_WzlTlq .vp-bundle-wrap { margin-top:24px; }\n#vp_WzlTlq .vp-trust { margin-top:48px; padding-top:32px; border-top:1px solid var(--border); display:flex; align-items:center; justify-content:center; gap:40px; flex-wrap:wrap; position:relative; z-index:1; }\n#vp_WzlTlq .vp-trust-item { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--navy-60); font-weight:500; }\n#vp_WzlTlq .vp-trust-item svg { color:var(--green); flex-shrink:0; }\n#vp_WzlTlq .vp-success { display:none; flex-direction:column; align-items:center; padding-top:40px; position:relative; z-index:1; }\n#vp_WzlTlq .vp-success-icon { width:72px; height:72px; border-radius:50%; background:var(--green-bg); display:flex; align-items:center; justify-content:center; margin-bottom:20px; }\n#vp_WzlTlq .vp-success-icon svg { width:32px; height:32px; color:var(--green); }\n#vp_WzlTlq .vp-success-headline { font-family:var(--serif); font-size:clamp(24px,4vw,32px); color:var(--navy); text-align:center; margin-bottom:6px; }\n#vp_WzlTlq .vp-success-sub { font-size:15px; color:var(--navy-40); text-align:center; margin-bottom:12px; }\n\/* \u2500\u2500 Free recall teaser (revealed by renderRecalls only when campaigns exist) \u2500\u2500 *\/\n#vp_WzlTlq .vp-recalls { width:100%; max-width:640px; margin:18px auto 0; background:#FFF7ED; border:1px solid #FDBA74; border-radius:14px; padding:16px 18px; text-align:left; }\n#vp_WzlTlq .vp-recalls[hidden] { display:none; }\n#vp_WzlTlq .vp-recalls-head { display:flex; align-items:center; gap:10px; margin-bottom:8px; }\n#vp_WzlTlq .vp-recalls-flag { flex:0 0 auto; width:22px; height:22px; border-radius:50%; background:#EA580C; color:#fff; font-size:14px; font-weight:700; line-height:22px; text-align:center; }\n#vp_WzlTlq .vp-recalls-title { font-size:15px; font-weight:700; color:#7C2D12; line-height:1.3; }\n#vp_WzlTlq .vp-recalls-count { margin-left:auto; flex:0 0 auto; background:#FFEDD5; color:#9A3412; border:1px solid #FDBA74; border-radius:999px; font-size:13px; font-weight:700; padding:2px 10px; }\n#vp_WzlTlq .vp-recalls-list { list-style:none; margin:0; padding:0; }\n#vp_WzlTlq .vp-recalls-item { padding:8px 0; border-top:1px solid #FED7AA; }\n#vp_WzlTlq .vp-recalls-item:first-child { border-top:none; }\n#vp_WzlTlq .vp-recalls-meta { display:flex; flex-wrap:wrap; gap:12px; font-size:12px; color:#9A3412; font-weight:600; letter-spacing:0.02em; margin-bottom:2px; }\n#vp_WzlTlq .vp-recalls-teaser { font-size:13.5px; color:#7C2D12; line-height:1.45; }\n#vp_WzlTlq .vp-recalls-unlock { display:flex; align-items:center; gap:7px; margin-top:10px; font-size:12.5px; color:#9A3412; }\n#vp_WzlTlq .vp-recalls-unlock svg { flex:0 0 auto; }\n\/* \"!\" + count chip on the Safety recalls feature row *\/\n#vp_WzlTlq .vp-feature-flag { display:inline-block; margin-left:8px; min-width:20px; padding:0 7px; border-radius:999px; background:#EA580C; color:#fff; font-size:12px; font-weight:700; line-height:20px; text-align:center; vertical-align:middle; }\n#vp_WzlTlq .vp-feature-flag[hidden] { display:none; }\n\/* \u2500\u2500 Persistent EU-numberplate banner (plate flow only) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n#vp_WzlTlq .vp-plate-banner { display:flex; justify-content:center; margin:0 auto 32px; }\n#vp_WzlTlq .vp-plate-card { display:inline-flex; align-items:stretch; height:54px; min-width:200px; background:var(--white); border:1.5px solid #1A1A1A; border-radius:8px; box-shadow:0 2px 8px rgba(4,36,63,0.10), inset 0 -2px 0 rgba(0,0,0,0.04); overflow:hidden; font-family:'Helvetica Neue','Arial Narrow',Arial,sans-serif; }\n#vp_WzlTlq .vp-plate-eu { display:flex; flex-direction:column; align-items:center; justify-content:center; width:42px; background:#003399; color:#FFF; padding:6px 4px; gap:2px; flex:none; }\n#vp_WzlTlq .vp-plate-eu-stars { display:block; width:22px; height:22px; }\n#vp_WzlTlq .vp-plate-eu-code { font-size:13px; font-weight:700; letter-spacing:0.4px; line-height:1; color:#FFF; }\n#vp_WzlTlq .vp-plate-text { display:flex; align-items:center; padding:0 20px; font-size:30px; font-weight:800; letter-spacing:3px; color:#1A1A1A; line-height:1; white-space:nowrap; }\n@media (max-width:480px) {\n  #vp_WzlTlq .vp-plate-card { height:48px; min-width:180px; }\n  #vp_WzlTlq .vp-plate-eu { width:36px; }\n  #vp_WzlTlq .vp-plate-eu-stars { width:18px; height:18px; }\n  #vp_WzlTlq .vp-plate-eu-code { font-size:11px; }\n  #vp_WzlTlq .vp-plate-text { padding:0 14px; font-size:24px; letter-spacing:2px; }\n}\n\n\/* \u2500\u2500 Larger vehicle reveal on success (replaces .vp-vehicle-chip) \u2500\u2500\u2500\u2500\u2500 *\/\n#vp_WzlTlq .vp-vehicle-chip { display:none; align-items:center; gap:10px; background:var(--surface); border:1px solid var(--border); border-radius:100px; padding:8px 20px 8px 8px; margin-bottom:40px; }\n#vp_WzlTlq .vp-vehicle-card { display:none; flex-direction:column; align-items:center; gap:8px; margin:8px 0 24px; max-width:560px; text-align:center; }\n#vp_WzlTlq .vp-vehicle-logo { width:64px; height:64px; border-radius:50%; background:var(--white); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; overflow:hidden; box-shadow:var(--shadow-sm); }\n#vp_WzlTlq .vp-vehicle-logo img { width:46px; height:46px; object-fit:contain; }\n#vp_WzlTlq .vp-vehicle-logo svg { width:28px; height:28px; color:var(--navy-40); }\n#vp_WzlTlq .vp-vehicle-name-large { font-family:var(--serif); font-size:clamp(24px,3.5vw,32px); color:var(--navy); line-height:1.15; margin:6px 0 0; }\n#vp_WzlTlq .vp-vehicle-year-large { font-size:16px; color:var(--navy-60); margin:0; }\n#vp_WzlTlq .vp-vin-verify { display:flex; flex-direction:column; align-items:center; gap:6px; padding:14px 18px; margin-top:10px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-sm); max-width:480px; }\n#vp_WzlTlq .vp-vin-verify-row { display:flex; align-items:baseline; gap:8px; font-family:var(--mono); }\n#vp_WzlTlq .vp-vin-verify-label { font-size:11px; font-weight:700; color:var(--navy-40); letter-spacing:0.08em; text-transform:uppercase; font-family:var(--font); }\n#vp_WzlTlq .vp-vin-verify-mask { display:inline-block; font-size:15px; color:var(--navy-40); letter-spacing:1px; filter:blur(1.5px); user-select:none; }\n#vp_WzlTlq .vp-vin-verify-tail { font-size:18px; font-weight:700; color:var(--navy); letter-spacing:1px; }\n#vp_WzlTlq .vp-vin-verify-msg { font-size:12px; color:var(--navy-60); line-height:1.45; max-width:380px; }\n\n\/* Old chip helper styles kept only because legacy markup elsewhere may reference them. *\/\n#vp_WzlTlq .vp-vehicle-logo + .vp-vehicle-name { font-size:14px; font-weight:600; color:var(--navy); }\n#vp_WzlTlq .vp-vehicle-vin-tag { font-family:var(--mono); font-size:11px; color:var(--navy-40); background:var(--navy-06); padding:3px 8px; border-radius:4px; }\n@media (max-width:860px) {\n  #vp_WzlTlq .vp-content { grid-template-columns:1fr; gap:24px; }\n  #vp_WzlTlq .vp-right { position:static; order:-1; }\n  #vp_WzlTlq { padding:32px 16px 60px; }\n  #vp_WzlTlq .vp-trust { gap:20px; }\n  #vp_WzlTlq .vp-testi-card { min-width:250px; }\n}\n@media (max-width:480px) {\n  #vp_WzlTlq .vp-report-card { padding:24px 20px 20px; border-radius:16px; }\n  #vp_WzlTlq .vp-includes { padding:24px 20px; }\n  #vp_WzlTlq .vp-rc-price-current { font-size:32px; }\n}\n\n<\/style>\n\n<div id=\"vp_WzlTlq\">\n\n  \n  \n  <div class=\"vp-loading\" id=\"vp_WzlTlq_loading\">\n        <div class=\"vp-vin-pill\">\n      <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg>\n      <span id=\"vp_WzlTlq_vin\">\u2014<\/span>\n    <\/div>\n        <div class=\"vp-ring-wrap\" id=\"vp_WzlTlq_ringwrap\">\n      <svg class=\"vp-ring-svg\" viewBox=\"0 0 140 140\">\n        <circle class=\"vp-ring-bg\" cx=\"70\" cy=\"70\" r=\"65\"\/>\n        <circle class=\"vp-ring-fill\" id=\"vp_WzlTlq_ring\" cx=\"70\" cy=\"70\" r=\"65\"\/>\n      <\/svg>\n      <span class=\"vp-ring-halo\" aria-hidden=\"true\"><\/span>\n      <svg class=\"vp-ring-check\" viewBox=\"0 0 140 140\" aria-hidden=\"true\">\n        <path d=\"M45 72 L62 88 L96 52\" pathLength=\"100\"\/>\n      <\/svg>\n      <div class=\"vp-ring-pct\">\n        <div class=\"vp-ring-pct-num\" id=\"vp_WzlTlq_pct\">0%<\/div>\n        <div class=\"vp-ring-pct-label\">Hotovo<\/div>\n      <\/div>\n    <\/div>\n    <h1 class=\"vp-load-headline\" id=\"vp_WzlTlq_load_h\" aria-live=\"polite\">Anal\u00fdza historie vozidla<\/h1>\n    <p class=\"vp-load-step\" id=\"vp_WzlTlq_step\"><\/p>\n  <\/div>\n\n  <div class=\"vp-success\" id=\"vp_WzlTlq_success\">\n    <div class=\"vp-success-icon\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n    <\/div>\n    <h1 class=\"vp-success-headline\" id=\"vp_WzlTlq_succ_h\">Kontrola VIN dokon\u010dena<\/h1>\n    <p class=\"vp-success-sub\" id=\"vp_WzlTlq_succ_sub\">Zpr\u00e1va o va\u0161em vozidle je p\u0159ipravena k okam\u017eit\u00e9mu p\u0159\u00edstupu.<\/p>\n    <div class=\"vp-vehicle-card\" id=\"vp_WzlTlq_chip\">\n      <div class=\"vp-vehicle-logo\" id=\"vp_WzlTlq_logo\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><rect x=\"1\" y=\"3\" width=\"15\" height=\"13\" rx=\"2\"\/><polygon points=\"23 7 16 12 16 2 23 7\"\/><\/svg>\n      <\/div>\n      <h2 class=\"vp-vehicle-name-large\" id=\"vp_WzlTlq_vname\"><\/h2>\n      <p class=\"vp-vehicle-year-large\" id=\"vp_WzlTlq_vyear\"><\/p>\n      <div class=\"vp-vin-verify\" id=\"vp_WzlTlq_vverify\" style=\"display:none;\">\n        <div class=\"vp-vin-verify-row\">\n          <span class=\"vp-vin-verify-label\">VIN<\/span>\n          <span class=\"vp-vin-verify-mask\" aria-hidden=\"true\">\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022<\/span>          <span class=\"vp-vin-verify-tail\" id=\"vp_WzlTlq_vvin\"><\/span>\n        <\/div>\n        <p class=\"vp-vin-verify-msg\">Zkontrolujte, zda posledn\u00edch 5 znak\u016f odpov\u00edd\u00e1 va\u0161emu VIN. \u00dapln\u00e9 \u010d\u00edslo VIN je uvedeno na n\u00e1sleduj\u00edc\u00ed stran\u011b.<\/p>\n      <\/div>\n    <\/div>\n        <div class=\"vp-recalls\" id=\"vp_WzlTlq_recalls\" hidden>\n      <div class=\"vp-recalls-head\">\n        <span class=\"vp-recalls-flag\" aria-hidden=\"true\">!<\/span>\n        <span class=\"vp-recalls-title\">U tohoto vozidla byly zji\u0161t\u011bny bezpe\u010dnostn\u00ed svol\u00e1vac\u00ed akce<\/span>\n        <span class=\"vp-recalls-count\" id=\"vp_WzlTlq_recalls_count\"><\/span>\n      <\/div>\n      <ul class=\"vp-recalls-list\" id=\"vp_WzlTlq_recalls_list\"><\/ul>\n      <div class=\"vp-recalls-unlock\">\n        <svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg>\n        \u00dapln\u00e9 popisy, d\u016fsledky a pokyny k oprav\u011b jsou uvedeny v \u00fapln\u00e9 zpr\u00e1v\u011b.      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"vp-content\">\n    <div class=\"vp-left\">\n      <div class=\"vp-includes\">\n        <div class=\"vp-includes-head\">\n          <div class=\"vp-includes-icon\">\n            <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"\/><line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"\/><polyline points=\"10 9 9 9 8 9\"\/><\/svg>\n          <\/div>\n          <div>\n            <div class=\"vp-includes-title\">Zpr\u00e1va o vozidle<\/div>\n            <div class=\"vp-includes-sub\">Zpr\u00e1va obsahuje:<\/div>\n          <\/div>\n        <\/div>\n                <ul class=\"vp-features\" id=\"vp_WzlTlq_feats\">\n                    <li class=\"vp-feature\">\n                        <div class=\"vp-feature-check\">\n              <svg class=\"chk-p\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"4\" opacity=\"0.3\"\/><\/svg>\n              <svg class=\"chk-d\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n            <\/div>\n                        <div class=\"vp-feature-text\">\n              <div class=\"vp-feature-name\">Technick\u00e9 detaily<\/div>\n              <div class=\"vp-feature-desc\">Zpr\u00e1va obsahuje technick\u00e9 \u00fadaje o vozidle.<\/div>\n            <\/div>\n          <\/li>\n                    <li class=\"vp-feature\">\n                        <div class=\"vp-feature-check\">\n              <svg class=\"chk-p\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"4\" opacity=\"0.3\"\/><\/svg>\n              <svg class=\"chk-d\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n            <\/div>\n                        <div class=\"vp-feature-text\">\n              <div class=\"vp-feature-name\">Historie najet\u00fdch kilometr\u016f<\/div>\n              <div class=\"vp-feature-desc\">Zkontrolujeme stav tachometru \/ historii ujet\u00fdch kilometr\u016f.<\/div>\n            <\/div>\n          <\/li>\n                    <li class=\"vp-feature\">\n                        <div class=\"vp-feature-check\">\n              <svg class=\"chk-p\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"4\" opacity=\"0.3\"\/><\/svg>\n              <svg class=\"chk-d\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n            <\/div>\n                        <div class=\"vp-feature-text\">\n              <div class=\"vp-feature-name\">Historie nehod<\/div>\n              <div class=\"vp-feature-desc\">Prov\u011b\u0159ujeme p\u0159\u00edpadn\u00e9 nehody a pojistn\u00e9 ud\u00e1losti.<\/div>\n            <\/div>\n          <\/li>\n                    <li class=\"vp-feature\">\n                        <div class=\"vp-feature-check\">\n              <svg class=\"chk-p\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"4\" opacity=\"0.3\"\/><\/svg>\n              <svg class=\"chk-d\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n            <\/div>\n                        <div class=\"vp-feature-text\">\n              <div class=\"vp-feature-name\">Odcizen\u00e1 vozidla<\/div>\n              <div class=\"vp-feature-desc\">Prov\u011b\u0159ujeme datab\u00e1ze odcizen\u00fdch vozidel.<\/div>\n            <\/div>\n          <\/li>\n                    <li class=\"vp-feature\">\n                        <div class=\"vp-feature-check\">\n              <svg class=\"chk-p\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"4\" opacity=\"0.3\"\/><\/svg>\n              <svg class=\"chk-d\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n            <\/div>\n                        <div class=\"vp-feature-text\">\n              <div class=\"vp-feature-name\">N\u00e1klady na \u00fadr\u017ebu<\/div>\n              <div class=\"vp-feature-desc\">Zjist\u011bte, jak n\u00e1kladn\u00e1 je \u00fadr\u017eba vozidla.<\/div>\n            <\/div>\n          <\/li>\n                    <li class=\"vp-feature\">\n                        <div class=\"vp-feature-check\">\n              <svg class=\"chk-p\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"4\" opacity=\"0.3\"\/><\/svg>\n              <svg class=\"chk-d\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n            <\/div>\n                        <div class=\"vp-feature-text\">\n              <div class=\"vp-feature-name\">Informace o slu\u017eb\u011b<\/div>\n              <div class=\"vp-feature-desc\">Servisn\u00ed intervaly a informace o \u00fadr\u017eb\u011b.<\/div>\n            <\/div>\n          <\/li>\n                    <li class=\"vp-feature\">\n                        <div class=\"vp-feature-check\">\n              <svg class=\"chk-p\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"4\" opacity=\"0.3\"\/><\/svg>\n              <svg class=\"chk-d\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n            <\/div>\n                        <div class=\"vp-feature-text\">\n              <div class=\"vp-feature-name\">Tr\u017en\u00ed hodnota<\/div>\n              <div class=\"vp-feature-desc\">Tr\u017en\u00ed hodnota, pr\u016fm\u011brn\u00fd po\u010det ujet\u00fdch kilometr\u016f a nab\u00eddky.<\/div>\n            <\/div>\n          <\/li>\n                    <li class=\"vp-feature\">\n                        <div class=\"vp-feature-check\">\n              <svg class=\"chk-p\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"4\" opacity=\"0.3\"\/><\/svg>\n              <svg class=\"chk-d\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n            <\/div>\n                        <div class=\"vp-feature-text\">\n              <div class=\"vp-feature-name\">B\u011b\u017en\u00e9 probl\u00e9my<\/div>\n              <div class=\"vp-feature-desc\">B\u011b\u017en\u00e9 z\u00e1vady a probl\u00e9my tohoto vozidla.<\/div>\n            <\/div>\n          <\/li>\n                    <li class=\"vp-feature\" data-recalls=\"1\">\n                        <div class=\"vp-feature-check\">\n              <svg class=\"chk-p\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"4\" opacity=\"0.3\"\/><\/svg>\n              <svg class=\"chk-d\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n            <\/div>\n                        <div class=\"vp-feature-text\">\n              <div class=\"vp-feature-name\">Bezpe\u010dnostn\u00ed svol\u00e1vac\u00ed akce<span class=\"vp-feature-flag\" id=\"vp_WzlTlq_recalls_flag\" hidden>!<\/span><\/div>\n              <div class=\"vp-feature-desc\">Sledujeme prob\u00edhaj\u00edc\u00ed bezpe\u010dnostn\u00ed svol\u00e1vac\u00ed akce v\u00fdrobc\u016f.<\/div>\n            <\/div>\n          <\/li>\n                  <\/ul>\n              <\/div>\n    <\/div>\n\n        <div class=\"vp-right\">\n      <div class=\"vp-report-card\">\n        <div class=\"vp-rc-badge\" id=\"vp_WzlTlq_badge\">\n          <span class=\"vp-rc-badge-dot\"><\/span>\n          Prob\u00edhaj\u00edc\u00ed kontrola        <\/div>\n        <div class=\"vp-rc-title\">\u00dapln\u00e1 zpr\u00e1va o vozidle<\/div>\n        <div class=\"vp-rc-sub\">Okam\u017eit\u00fd online p\u0159\u00edstup po zakoupen\u00ed<\/div>\n\n        <ul class=\"vp-rc-features\">\n                    <li class=\"vp-rc-feat\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n            Technick\u00e9 \u00fadaje a specifikace          <\/li>\n                    <li class=\"vp-rc-feat\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n            \u00dapln\u00e1 historie najet\u00fdch kilometr\u016f          <\/li>\n                    <li class=\"vp-rc-feat\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n            Z\u00e1znamy o nehod\u00e1ch a poji\u0161t\u011bn\u00ed          <\/li>\n                    <li class=\"vp-rc-feat\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n            Kontrola odcizen\u00fdch vozidel          <\/li>\n                    <li class=\"vp-rc-feat\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n            Tr\u017en\u00ed hodnota a nab\u00eddky          <\/li>\n                  <\/ul>\n\n                  <div class=\"vp-rc-price-block\">\n            <div class=\"vp-rc-price-row\">\n              <span class=\"vp-rc-price-old\">629,00 K\u010d<\/span>              <span class=\"vp-rc-price-current\">499,00<\/span>\n              <span class=\"vp-rc-price-currency\">K\u010d<\/span>\n              <span class=\"vp-rc-discount\">&minus;21%<\/span>            <\/div>\n            <div class=\"vp-rc-price-note\">Jednor\u00e1zov\u00e1 platba - bez p\u0159edplatn\u00e9ho<\/div>\n          <\/div>\n          <a class=\"vp-rc-cta\" id=\"vp_WzlTlq_cta\" href=\"#\">\n            Z\u00edskat \u00faplnou zpr\u00e1vu            <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg>\n          <\/a>\n        \n        <div class=\"vp-rc-timing\">\n          <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/><\/svg>\n          Zpr\u00e1va p\u0159ipravena za 5 minut        <\/div>\n      <\/div>\n    <\/div>\n      <\/div>\n\n  <div class=\"vp-testimonials\">\n    <div class=\"vp-testimonials-label\">Co \u0159\u00edkaj\u00ed na\u0161i z\u00e1kazn\u00edci<\/div>\n    <div class=\"vp-testi-scroll\">\n      <div class=\"vp-testi-track\">\n                                    <div class=\"vp-testi-card\">\n            <div class=\"vp-testi-top\">\n              <div class=\"vp-testi-avatar\"><img decoding=\"async\" src=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/2026\/05\/women\/71.jpg\" alt=\"Eva P.\" loading=\"lazy\"><\/div>\n              <span class=\"vp-testi-name\">Eva P.<\/span>\n              <svg class=\"vp-testi-verified\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg>\n            <\/div>\n            <div class=\"vp-testi-text\">U\u0161et\u0159il mi tis\u00edce t\u00edm, \u017ee zobrazil skryt\u00e9 vr\u00e1cen\u00ed kilometr\u016f. Naprosto se to vyplatilo. <\/div>\n            <div class=\"vp-testi-stars\">\u2605\u2605\u2605\u2605\u2605<\/div>\n          <\/div>\n                    <div class=\"vp-testi-card\">\n            <div class=\"vp-testi-top\">\n              <div class=\"vp-testi-avatar\"><img decoding=\"async\" src=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/2026\/05\/women\/54.jpg\" alt=\"Lucie N.\" loading=\"lazy\"><\/div>\n              <span class=\"vp-testi-name\">Lucie N.<\/span>\n              <svg class=\"vp-testi-verified\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg>\n            <\/div>\n            <div class=\"vp-testi-text\">Pou\u017eil jsem ji ji\u017e dvakr\u00e1t, nikdy jsem nekupoval auto bez p\u0159edchoz\u00ed kontroly.<\/div>\n            <div class=\"vp-testi-stars\">\u2605\u2605\u2605\u2605\u2605<\/div>\n          <\/div>\n                    <div class=\"vp-testi-card\">\n            <div class=\"vp-testi-top\">\n              <div class=\"vp-testi-avatar\"><img decoding=\"async\" src=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/2026\/05\/men\/52.jpg\" alt=\"Martin K.\" loading=\"lazy\"><\/div>\n              <span class=\"vp-testi-name\">Martin K.<\/span>\n              <svg class=\"vp-testi-verified\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg>\n            <\/div>\n            <div class=\"vp-testi-text\">Prodejce tvrdil, \u017ee nem\u011bl \u017e\u00e1dnou nehodu... ve zpr\u00e1v\u011b byly uvedeny dv\u011b. Vyhnul se kulce. <\/div>\n            <div class=\"vp-testi-stars\">\u2605\u2605\u2605\u2605\u2605<\/div>\n          <\/div>\n                    <div class=\"vp-testi-card\">\n            <div class=\"vp-testi-top\">\n              <div class=\"vp-testi-avatar\"><img decoding=\"async\" src=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/2026\/05\/men\/36.jpg\" alt=\"Tom\u00e1\u0161 H.\" loading=\"lazy\"><\/div>\n              <span class=\"vp-testi-name\">Tom\u00e1\u0161 H.<\/span>\n              <svg class=\"vp-testi-verified\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg>\n            <\/div>\n            <div class=\"vp-testi-text\">Zkontroloval VIN a zjistil dv\u011b p\u0159edchoz\u00ed nehody. D\u011bkujeme!<\/div>\n            <div class=\"vp-testi-stars\">\u2605\u2605\u2605\u2605\u2606<\/div>\n          <\/div>\n                                      <div class=\"vp-testi-card\">\n            <div class=\"vp-testi-top\">\n              <div class=\"vp-testi-avatar\"><img decoding=\"async\" src=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/2026\/05\/women\/71.jpg\" alt=\"Eva P.\" loading=\"lazy\"><\/div>\n              <span class=\"vp-testi-name\">Eva P.<\/span>\n              <svg class=\"vp-testi-verified\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg>\n            <\/div>\n            <div class=\"vp-testi-text\">U\u0161et\u0159il mi tis\u00edce t\u00edm, \u017ee zobrazil skryt\u00e9 vr\u00e1cen\u00ed kilometr\u016f. Naprosto se to vyplatilo. <\/div>\n            <div class=\"vp-testi-stars\">\u2605\u2605\u2605\u2605\u2605<\/div>\n          <\/div>\n                    <div class=\"vp-testi-card\">\n            <div class=\"vp-testi-top\">\n              <div class=\"vp-testi-avatar\"><img decoding=\"async\" src=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/2026\/05\/women\/54.jpg\" alt=\"Lucie N.\" loading=\"lazy\"><\/div>\n              <span class=\"vp-testi-name\">Lucie N.<\/span>\n              <svg class=\"vp-testi-verified\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg>\n            <\/div>\n            <div class=\"vp-testi-text\">Pou\u017eil jsem ji ji\u017e dvakr\u00e1t, nikdy jsem nekupoval auto bez p\u0159edchoz\u00ed kontroly.<\/div>\n            <div class=\"vp-testi-stars\">\u2605\u2605\u2605\u2605\u2605<\/div>\n          <\/div>\n                    <div class=\"vp-testi-card\">\n            <div class=\"vp-testi-top\">\n              <div class=\"vp-testi-avatar\"><img decoding=\"async\" src=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/2026\/05\/men\/52.jpg\" alt=\"Martin K.\" loading=\"lazy\"><\/div>\n              <span class=\"vp-testi-name\">Martin K.<\/span>\n              <svg class=\"vp-testi-verified\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg>\n            <\/div>\n            <div class=\"vp-testi-text\">Prodejce tvrdil, \u017ee nem\u011bl \u017e\u00e1dnou nehodu... ve zpr\u00e1v\u011b byly uvedeny dv\u011b. Vyhnul se kulce. <\/div>\n            <div class=\"vp-testi-stars\">\u2605\u2605\u2605\u2605\u2605<\/div>\n          <\/div>\n                    <div class=\"vp-testi-card\">\n            <div class=\"vp-testi-top\">\n              <div class=\"vp-testi-avatar\"><img decoding=\"async\" src=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/2026\/05\/men\/36.jpg\" alt=\"Tom\u00e1\u0161 H.\" loading=\"lazy\"><\/div>\n              <span class=\"vp-testi-name\">Tom\u00e1\u0161 H.<\/span>\n              <svg class=\"vp-testi-verified\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg>\n            <\/div>\n            <div class=\"vp-testi-text\">Zkontroloval VIN a zjistil dv\u011b p\u0159edchoz\u00ed nehody. D\u011bkujeme!<\/div>\n            <div class=\"vp-testi-stars\">\u2605\u2605\u2605\u2605\u2606<\/div>\n          <\/div>\n                        <\/div>\n    <\/div>\n  <\/div>\n\n    <div class=\"vp-trust\">\n        <div class=\"vp-trust-item\">\n      <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n      Ofici\u00e1ln\u00ed \u00fadaje ze soukrom\u00fdch zdroj\u016f    <\/div>\n        <div class=\"vp-trust-item\">\n      <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n      Zkontrolov\u00e1no v\u00edce ne\u017e 100 000 automobil\u016f    <\/div>\n        <div class=\"vp-trust-item\">\n      <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n      Nejnov\u011bj\u0161\u00ed informace    <\/div>\n        <div class=\"vp-trust-item\">\n      <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n      V\u00edce ne\u017e 1 000 partner\u016f v oblasti dat    <\/div>\n      <\/div>\n  \n  \n<\/div>\n\n<script>\n(function(){\n  var U    = 'vp_WzlTlq';\n  var i18n = {\"steps\":[\"P\\u0159ipojen\\u00ed k datab\\u00e1z\\u00edm...\",\"Kontrola z\\u00e1znam\\u016f o ujet\\u00fdch kilometrech...\",\"Prov\\u011b\\u0159ov\\u00e1n\\u00ed historie nehod...\",\"Ov\\u011b\\u0159ov\\u00e1n\\u00ed ukraden\\u00fdch datab\\u00e1z\\u00ed...\",\"Anal\\u00fdza \\u00fadaj\\u016f o \\u00fadr\\u017eb\\u011b...\",\"Sestaven\\u00ed tr\\u017en\\u00ed hodnoty...\",\"Kontrola bezpe\\u010dnostn\\u00edch svol\\u00e1vac\\u00edch akc\\u00ed...\",\"Dokon\\u010den\\u00ed zpr\\u00e1vy...\"],\"readyHeadline\":\"Zpr\\u00e1va je hotov\\u00e1\",\"badgeDone\":\"Zkontrolovat kompletn\\u00ed\",\"timing\":\"Zpr\\u00e1va p\\u0159ipravena za 5 minut\",\"vinAjax\":\"https:\\\/\\\/www.mrvin.com\\\/wp-admin\\\/admin-ajax.php?action=vp_vin_basic&lang=cs\",\"plateAjax\":\"https:\\\/\\\/www.mrvin.com\\\/wp-admin\\\/admin-ajax.php?action=vp_plate_basic&lang=cs\",\"suggestAjax\":\"https:\\\/\\\/www.mrvin.com\\\/wp-admin\\\/admin-ajax.php?action=vp_vin_suggest&lang=cs\",\"eventAjax\":\"https:\\\/\\\/www.mrvin.com\\\/wp-admin\\\/admin-ajax.php?action=vp_vin_event&lang=cs\",\"checkoutUrl\":\"https:\\\/\\\/www.mrvin.com\\\/cs\\\/checkout\\\/\",\"vehicleFoundHeadline\":\"Na\\u0161li jsme va\\u0161e vozidlo\",\"vehicleFoundSub\":\"Ne\\u017e budete pokra\\u010dovat, ov\\u011b\\u0159te, zda je to ten spr\\u00e1vn\\u00fd.\",\"instant\":0,\"sgPrompt\":\"Jste si jist\\u00ed, \\u017ee je VIN spr\\u00e1vn\\u00e9? Nemysleli jste snad {vin} ({brand})?\",\"sgMulti\":\"Jste si jist\\u00ed, \\u017ee je VIN spr\\u00e1vn\\u00e9? Nemysleli jste snad jedno z t\\u011bchto? \",\"sgOne\":\"Jste si jist\\u00ed, \\u017ee je VIN spr\\u00e1vn\\u00e9? Nemysleli jste sp\\u00ed\\u0161e: \",\"sgConfirm\":\"Pros\\u00edm, ov\\u011b\\u0159te, zda je \\u010d\\u00edslo VIN spr\\u00e1vn\\u00e9.\",\"sgRecheck\":\"Pros\\u00edm, pe\\u010dliv\\u011b zkontrolujte ka\\u017ed\\u00fd znak podle dokladu o vozidle.\",\"sgCorrected\":\"Opravili jsme va\\u0161e VIN na {vin}.\",\"sgSearch\":\"Vyhledej to\",\"sgKeep\":\"Moje VIN je spr\\u00e1vn\\u00e9\",\"pfNotFound\":\"Tuto pozn\\u00e1vac\\u00ed zna\\u010dku se n\\u00e1m nepoda\\u0159ilo naj\\u00edt.\",\"pfUnsupported\":\"Vyhled\\u00e1v\\u00e1n\\u00ed podle pozn\\u00e1vac\\u00ed zna\\u010dky zat\\u00edm nen\\u00ed pro tuto zemi k dispozici.\",\"pfError\":\"Tuto pozn\\u00e1vac\\u00ed zna\\u010dku jsme moment\\u00e1ln\\u011b nemohli ov\\u011b\\u0159it.\",\"pfDaily\":\"Dos\\u00e1hli jste denn\\u00edho limitu pro vyhled\\u00e1v\\u00e1n\\u00ed registra\\u010dn\\u00edch zna\\u010dek.\",\"pfSub\":\"Zadejte identifika\\u010dn\\u00ed \\u010d\\u00edslo vozidla (VIN) k ov\\u011b\\u0159en\\u00ed vozidla.\",\"pfCta\":\"Zkontrolovat VIN\",\"pfPlaceholder\":\"VIN (17 znak\\u016f)\",\"pfBad\":\"To nevypad\\u00e1 jako platn\\u00e9 17m\\u00edstn\\u00e9 VIN.\",\"pfMiss\":\"Pro dan\\u00e9 VIN se n\\u00e1m nepoda\\u0159ilo naj\\u00edt \\u017e\\u00e1dn\\u00e9 vozidlo. Zkontrolujte pros\\u00edm, zda se shoduje s \\u00fadaji v dokladech k vozidlu. \",\"pfWorking\":\"Kontrola\\u2026\"};\n\n  var CIRC     = 2 * Math.PI * 65;\n  var ringFill = document.getElementById(U + '_ring');\n  var ringWrapEl = document.getElementById(U + '_ringwrap');\n  var loadHEl  = document.getElementById(U + '_load_h');\n  var pctEl    = document.getElementById(U + '_pct');\n  var stepEl   = document.getElementById(U + '_step');\n  var loadEl   = document.getElementById(U + '_loading');\n  var succEl   = document.getElementById(U + '_success');\n  var feats    = document.querySelectorAll('#' + U + '_feats .vp-feature');\n  var badgeEl  = document.getElementById(U + '_badge');\n  var chipEl   = document.getElementById(U + '_chip');     \/\/ .vp-vehicle-card wrapper\n  var logoEl   = document.getElementById(U + '_logo');\n  var vnameEl  = document.getElementById(U + '_vname');     \/\/ make + model (large)\n  var vyearEl  = document.getElementById(U + '_vyear');     \/\/ year (separate line)\n  var vvinEl   = document.getElementById(U + '_vvin');      \/\/ tail (last 5 chars only)\n  var vverifyEl = document.getElementById(U + '_vverify');  \/\/ entire verify block (.vp-vin-verify)\n  var succHEl  = document.getElementById(U + '_succ_h');\n  var succSubEl = document.getElementById(U + '_succ_sub');\n  var ctaEl    = document.getElementById(U + '_cta');\n  var steps    = i18n.steps || [];\n  var INSTANT  = !!i18n.instant;   \/\/ embedded-in-checkout variant\n  \/\/ Instant mode runs a much tighter ticker (see the interval below), so keep\n  \/\/ only the four highest-signal steps; the standalone page shows all seven.\n  if (INSTANT && steps.length > 4) steps = steps.slice(0, 4);\n\n  \/* \u2500\u2500 Floating sticky buy-bar (INSTANT only) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  var fabEl     = document.getElementById(U + '_fab');\n  var fabBarEl  = document.getElementById(U + '_fab_bar');\n  var fabNameEl = document.getElementById(U + '_fab_name');\n  var fabLogoEl = document.getElementById(U + '_fab_logo');\n  var fabStatEl = fabEl ? fabEl.querySelector('.vp-fab-status-txt') : null;\n  var fabCtaEl  = document.getElementById(U + '_fab_cta');\n\n  \/\/ Generic car glyph used as the buy-bar logo fallback (lookup miss \/ logo 404 \/\n  \/\/ no data) \u2014 so the loading ring never spins forever.\n  var FAB_CAR_SVG = '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><rect x=\"1\" y=\"3\" width=\"15\" height=\"13\" rx=\"2\"\/><polygon points=\"23 7 16 12 16 2 23 7\"\/><\/svg>';\n  var fabLogoSettled = false;\n  function fabLogoFallback() {\n    if (fabLogoEl && !fabLogoSettled) { fabLogoEl.innerHTML = FAB_CAR_SVG; fabLogoSettled = true; }\n  }\n\n  \/\/ Smooth-scroll to the real WooCommerce checkout form sitting below the preview.\n  function scrollToCheckout() {\n    var form = document.querySelector('form.checkout.woocommerce-checkout');\n    if (form && typeof form.scrollIntoView === 'function') {\n      try { form.scrollIntoView({ behavior: 'smooth', block: 'start' }); }\n      catch (e) { form.scrollIntoView(); }\n    }\n  }\n\n  \/**\n   * Return only the last 5 characters of a VIN. The leading dots in the DOM are\n   * static markup (`\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022`) \u2014 the full VIN is never written into the DOM,\n   * so view-source \/ DOM inspection only reveals the last 5 characters.\n   *\/\n  function vinTail(v) { return (typeof v === 'string' && v.length >= 5) ? v.slice(-5) : (v || ''); }\n\n  var progress = 0, lastStep = -1, checked = 0;\n\n  if (ringFill) {\n    ringFill.style.strokeDasharray  = CIRC;\n    ringFill.style.strokeDashoffset = CIRC;\n  }\n\n  \/* \u2500\u2500 Read VIN \/ plate \/ country from URL (with sessionStorage fallback) \u2500\u2500\u2500\u2500\u2500 *\/\n  var qp = new URLSearchParams(window.location.search);\n  var vin = qp.get('vin') || '';\n  if (vin) {\n    vin = vin.toUpperCase();\n    \/\/ Only the last 5 chars are written to the DOM; the full VIN stays in this closure.\n    var vinEl = document.getElementById(U + '_vin');\n    if (vinEl) vinEl.textContent = '\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022' + vinTail(vin);\n  }\n  \/\/ Plate stays in its raw form (with separators like AK-6000) for the lookup;\n  \/\/ the backend normalizes it. The plate is rendered server-side in the persistent\n  \/\/ `.vp-plate-banner`, so we don't need to write it into the loading-pill anymore.\n  var plate = (qp.get('plate') || '').toUpperCase().replace(\/[^A-Z0-9 \\-]\/g, '').slice(0, 15);\n  var countryIso = (qp.get('country_iso') || '').toUpperCase();\n  if (!countryIso) {\n    try { countryIso = (sessionStorage.getItem('mrvinPlateCountryIso') || '').toUpperCase(); }\n    catch (e) { countryIso = ''; }\n  }\n  if (countryIso && !\/^[A-Z]{2}$\/.test(countryIso)) countryIso = '';\n\n  \/* \u2500\u2500 Build checkout URL with VIN + country \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\n   *  i18n.checkoutUrl is the WPML-translated checkout page URL\n   *  generated server-side (e.g. \/de\/kasse\/, \/fr\/caisse\/, \/checkout\/).\n   *  The checkout flow auto-adds the correct language-specific\n   *  product to the cart, so we append ?vin=\u2026 and ?country_iso=\u2026\n   *  so \/checkout\/ can route the backend lookup to the right\n   *  regional sub-API.\n   * \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function buildCheckoutUrl() {\n    var base = i18n.checkoutUrl || '';\n    if (!base) return '';\n    if (!vin && !plate && !countryIso) return base;\n    var url;\n    try { url = new URL(base, window.location.origin); }\n    catch (e) {\n      var sep = base.indexOf('?') !== -1 ? '&' : '?';\n      var tail = [];\n      if (vin)        tail.push('vin='         + encodeURIComponent(vin));\n      if (!vin && plate) tail.push('plate='    + encodeURIComponent(plate));\n      if (countryIso) tail.push('country_iso=' + encodeURIComponent(countryIso));\n      return base + (tail.length ? sep + tail.join('&') : '');\n    }\n    if (vin)        url.searchParams.set('vin', vin);\n    if (!vin && plate) url.searchParams.set('plate', plate);\n    if (countryIso) url.searchParams.set('country_iso', countryIso);\n    return url.toString();\n  }\n\n  \/* Wire up CTA button.\n     INSTANT mode: the real WooCommerce checkout form is already on this page,\n     directly below \u2014 so \"Get Full Report\" just smooth-scrolls down to it.\n     STANDARD mode (\/product\/): navigate to checkout. The full VIN must NOT\n     appear in any DOM attribute, so we DO NOT set ctaEl.href at startup;\n     navigation happens programmatically on click, so the VIN only enters the\n     URL bar at the moment of redirect. *\/\n  if (ctaEl) {\n    ctaEl.setAttribute('href', '#');\n    ctaEl.setAttribute('role', 'button');\n    ctaEl.addEventListener('click', function(e) {\n      e.preventDefault();\n\n      if (INSTANT) {\n        var form = document.querySelector('form.checkout.woocommerce-checkout');\n        if (form && typeof form.scrollIntoView === 'function') {\n          try { form.scrollIntoView({ behavior: 'smooth', block: 'start' }); }\n          catch (e2) { form.scrollIntoView(); }\n        }\n        return;\n      }\n\n      \/\/ Already have a VIN (either entered directly or resolved earlier) \u2192 go now.\n      if (vin) {\n        window.location.href = buildCheckoutUrl();\n        return;\n      }\n      \/\/ Plate-only path: block until the plate lookup resolves.\n      if (plate && vinDataPromise && typeof vinDataPromise.then === 'function') {\n        ctaEl.setAttribute('aria-busy', 'true');\n        vinDataPromise.then(function(){\n          ctaEl.removeAttribute('aria-busy');\n          window.location.href = buildCheckoutUrl();\n        });\n        return;\n      }\n      \/\/ Fallback (no inputs at all) \u2014 go to plain checkout base.\n      window.location.href = buildCheckoutUrl();\n    });\n  }\n\n  \/* \u2500\u2500 Car brand logo lookup \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  var LOGO_CDN = 'https:\/\/cdn.jsdelivr.net\/gh\/filippofilip95\/car-logos-dataset@master\/logos\/thumb\/';\n  var LOGO_MAP = {\n    'alfa romeo':'alfa-romeo','aston martin':'aston-martin','audi':'audi',\n    'bentley':'bentley','bmw':'bmw','bugatti':'bugatti','buick':'buick',\n    'cadillac':'cadillac','chevrolet':'chevrolet','chrysler':'chrysler',\n    'citroen':'citroen','cupra':'cupra','dacia':'dacia','daewoo':'daewoo',\n    'daihatsu':'daihatsu','dodge':'dodge','ds':'ds','ferrari':'ferrari',\n    'fiat':'fiat','ford':'ford','genesis':'genesis','gmc':'gmc',\n    'honda':'honda','hummer':'hummer','hyundai':'hyundai','infiniti':'infiniti',\n    'isuzu':'isuzu','jaguar':'jaguar','jeep':'jeep','kia':'kia',\n    'lamborghini':'lamborghini','lancia':'lancia','land rover':'land-rover',\n    'landrover':'land-rover','lexus':'lexus','lincoln':'lincoln','lotus':'lotus',\n    'maserati':'maserati','mazda':'mazda','mclaren':'mclaren',\n    'mercedes':'mercedes-benz','mercedes-benz':'mercedes-benz',\n    'mini':'mini','mitsubishi':'mitsubishi','nissan':'nissan','opel':'opel',\n    'peugeot':'peugeot','pontiac':'pontiac','porsche':'porsche','ram':'ram',\n    'renault':'renault','rolls-royce':'rolls-royce','rolls royce':'rolls-royce',\n    'rover':'rover','saab':'saab','seat':'seat','skoda':'skoda','smart':'smart',\n    'ssangyong':'ssangyong','subaru':'subaru','suzuki':'suzuki','tesla':'tesla',\n    'toyota':'toyota','vauxhall':'vauxhall','volkswagen':'volkswagen',\n    'vw':'volkswagen','vw ag':'volkswagen','volvo':'volvo'\n  };\n\n  function tryShowLogo(make) {\n    if (!logoEl || !make) return;\n    var key = make.toLowerCase().trim();\n    var slug = LOGO_MAP[key] || null;\n    if (!slug) {\n      for (var k in LOGO_MAP) {\n        if (key.indexOf(k) !== -1 || k.indexOf(key) !== -1) { slug = LOGO_MAP[k]; break; }\n      }\n    }\n    if (!slug) { fabLogoFallback(); return; }   \/\/ unknown make \u2192 stop the ring\n    var img = new Image();\n    img.onload = function() {\n      logoEl.innerHTML = '';\n      var imgTag = document.createElement('img');\n      imgTag.src = img.src;\n      imgTag.alt = make;\n      \/\/ Inline `object-fit` only \u2014 let the CSS rule for `.vp-vehicle-logo img`\n      \/\/ handle width\/height so the larger 64\u00d764 reveal sizing isn't fought.\n      imgTag.style.objectFit = 'contain';\n      logoEl.appendChild(imgTag);\n\n      \/\/ Mirror the same logo into the floating buy-bar (replaces the loading ring).\n      if (fabLogoEl) {\n        var fabImg = document.createElement('img');\n        fabImg.src = img.src; fabImg.alt = make;\n        fabLogoEl.innerHTML = '';\n        fabLogoEl.appendChild(fabImg);\n        fabLogoSettled = true;\n      }\n\n      \/\/ \u2026and into the checkout \"You're checking\u2026\" box logo (variant B).\n      if (INSTANT) {\n        var cczLogo = document.getElementById('ccz-vehicle-logo');\n        if (cczLogo) { cczLogo.src = img.src; cczLogo.style.display = ''; }\n      }\n    };\n    \/\/ CDN miss \u2192 stop the ring and show the generic car glyph instead.\n    img.onerror = function() { fabLogoFallback(); };\n    img.src = LOGO_CDN + slug + '.png';\n  }\n\n  \/**\n   * @param failedPlate when this VIN was typed to rescue a plate search that found nothing, the\n   *        plate that failed. Recorded against the lookup so the plate funnel can count rescues;\n   *        it changes nothing about the lookup itself.\n   *\/\n  function fetchVinData(vinCode, failedPlate) {\n    var base = i18n.vinAjax || '';\n    if (!base) return Promise.resolve(null);\n    try {\n      var url = new URL(base, window.location.origin);\n      url.searchParams.set('vin', vinCode);\n      if (countryIso) url.searchParams.set('country_iso', countryIso);\n      if (failedPlate) url.searchParams.set('failed_plate', failedPlate);\n      return fetch(url.toString(), {credentials:'same-origin'})\n        .then(function(r){ return r.json(); })\n        .then(function(json){\n          if (!json || !json.success || !json.data) return null;\n          return {\n            vin:          (json.data.vin          || vinCode).trim(),\n            manufacturer: (json.data.manufacturer || '').trim(),\n            model:        (json.data.model        || '').trim(),\n            year:         String(json.data.year   || '').trim(),\n            recalls:      json.data.recalls || null\n          };\n        })\n        .catch(function(){ return null; });\n    } catch(e) { return Promise.resolve(null); }\n  }\n\n  \/* \"Did you mean\" \/ brand fallback. Runs only when the preview returned no\n     vehicle: proxies the backend validate endpoint and shows an advisory\n     banner. Soft-warn \u2014 the checkout flow is never blocked. *\/\n  var sgShown = false;\n  function escHtml(s){ return String(s).replace(\/[&<>\"']\/g, function(c){ return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c]; }); }\n  function suggestUrlFor(targetVin){\n    var u = new URL(window.location.href);\n    u.searchParams.set('vin', targetVin);\n    u.searchParams.delete('plate');\n    return u.toString();\n  }\n  function ensureSuggestBox(){\n    var box = document.getElementById(U + '_suggest');\n    if (box) return box;\n    box = document.createElement('div');\n    box.id = U + '_suggest';\n    box.style.cssText = \"margin:0 auto 16px;max-width:560px;background:#EEF2FF;border:1px solid #C7D2FE;color:#1E3A8A;border-radius:12px;padding:14px 16px;font:500 14px\/1.5 'DM Sans',system-ui,sans-serif;text-align:center;\";\n    var anchor = succEl || loadEl;\n    if (anchor && anchor.parentNode) anchor.parentNode.insertBefore(box, anchor);\n    else { var root = document.getElementById(U); if (root) root.insertBefore(box, root.firstChild); }\n    return box;\n  }\n  \/* \u2500\u2500 Plate-lookup fallback \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   * Shown when a number-plate search ends with no vehicle. Before this, that outcome was silent:\n   * the scan completed, no car appeared, and checkout's VIN guard blocked the pay button with \u2014\n   * in snippet 9's own words \u2014 \"nothing near the pay buttons\" to explain it. The buyer's only\n   * remaining signal was that clicking Pay did nothing.\n   *\n   * Deliberately built for every plate country, not just the new one. LV and GB have always failed\n   * this way; France merely made it worth fixing.\n   *\n   * A VIN typed here re-enters the ORDINARY VIN path (vp_vin_basic), so the server writes the same\n   * session keys a VIN search always writes and checkout unblocks through the existing\n   * mrvin_vehicle event \u2014 no second gate, no special case downstream. *\/\n  var pfShown = false;\n  function showPlateFallback(kind){\n    if (pfShown) return;\n    pfShown = true;\n    var head = kind === 'unsupported' ? i18n.pfUnsupported\n             : kind === 'notFound'    ? i18n.pfNotFound\n             : kind === 'dailyLimit'  ? i18n.pfDaily\n             : i18n.pfError;   \/\/ 'rateLimited' and 'error' both mean \"try the VIN instead\"\n\n    var box = document.createElement('div');\n    box.id = U + '_platefail';\n    box.style.cssText = \"margin:0 auto 16px;max-width:560px;background:#FFF7ED;border:1px solid #FED7AA;color:#7C2D12;border-radius:12px;padding:16px;font:500 14px\/1.5 'DM Sans',system-ui,sans-serif;text-align:center;\";\n    box.innerHTML =\n        '<div style=\"font-weight:700;margin-bottom:4px\">' + escHtml(head) + '<\/div>'\n      + '<div style=\"margin-bottom:12px\">' + escHtml(i18n.pfSub) + '<\/div>'\n      \/\/ wrap+gap rather than a fixed row: the CTA label triples in length in some languages, and a\n      \/\/ nowrap row would push the button off the card.\n      + '<div style=\"display:flex;flex-wrap:wrap;gap:8px;justify-content:center\">'\n      +   '<input id=\"' + U + '_pfvin\" type=\"text\" inputmode=\"latin\" autocapitalize=\"characters\" spellcheck=\"false\" maxlength=\"17\" '\n      +     'placeholder=\"' + escHtml(i18n.pfPlaceholder) + '\" '\n      +     'style=\"flex:1 1 240px;min-width:0;padding:10px 12px;border:1px solid #FDBA74;border-radius:8px;font:600 15px\/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase\">'\n      +   '<button id=\"' + U + '_pfgo\" type=\"button\" style=\"flex:0 0 auto;padding:10px 18px;border:0;border-radius:8px;background:#EA580C;color:#fff;font:700 14px\/1.2 \\'DM Sans\\',system-ui,sans-serif;cursor:pointer\">'\n      +     escHtml(i18n.pfCta) + '<\/button>'\n      + '<\/div>'\n      + '<div id=\"' + U + '_pferr\" style=\"margin-top:8px;color:#B91C1C;display:none\"><\/div>';\n\n    var anchor = succEl || loadEl;\n    if (anchor && anchor.parentNode) anchor.parentNode.insertBefore(box, anchor);\n    else { var root = document.getElementById(U); if (root) root.insertBefore(box, root.firstChild); }\n\n    var input = document.getElementById(U + '_pfvin');\n    var go    = document.getElementById(U + '_pfgo');\n    \/\/ Strip as they type: I, O and Q are not legal VIN characters, and a pasted VIN routinely\n    \/\/ carries spaces or dashes from a PDF.\n    input.addEventListener('input', function(){\n      var cleaned = input.value.toUpperCase().replace(\/[^A-HJ-NPR-Z0-9]\/g, '');\n      if (cleaned !== input.value) input.value = cleaned;\n    });\n    input.addEventListener('keydown', function(e){ if (e.key === 'Enter') { e.preventDefault(); go.click(); } });\n    go.addEventListener('click', function(){ fallbackVinLookup(input.value.trim(), box, go); });\n    try { input.focus({preventScroll:true}); } catch(e) { }\n  }\n\n  function pfError(box, msg){\n    var el = box.querySelector('[id$=\"_pferr\"]');\n    if (!el) return;\n    el.textContent = msg;\n    el.style.display = msg ? 'block' : 'none';\n  }\n\n  function fallbackVinLookup(vinTyped, box, go){\n    if (vinTyped.length !== 17) { pfError(box, i18n.pfBad); return; }\n    pfError(box, '');\n    var label = go.textContent;\n    go.disabled = true;\n    go.textContent = i18n.pfWorking;\n\n    \/\/ The plate that failed rides along so the funnel can count this rescue \u2014 see\n    \/\/ WebVehicleApi.getVehiclePreview. It is context for the log row only; the lookup is a plain\n    \/\/ VIN search.\n    fetchVinData(vinTyped, plate).then(function(d){\n      go.disabled = false;\n      go.textContent = label;\n      if (!d || (!d.manufacturer && !d.model)) { pfError(box, i18n.pfMiss); maybeSuggest(vinTyped); return; }\n      \/\/ Promote the typed VIN into page state: unlike a plate-resolved VIN, the buyer supplied this\n      \/\/ one, so buildCheckoutUrl() may carry it and there is nothing to withhold.\n      vin = vinTyped;\n      box.parentNode && box.parentNode.removeChild(box);\n      applyVinData(d);   \/\/ also fires mrvin_vehicle, which releases checkout's VIN guard\n    }).catch(function(){\n      go.disabled = false;\n      go.textContent = label;\n      pfError(box, i18n.pfMiss);\n    });\n  }\n\n  function maybeSuggest(vinCode){\n    if (sgShown || !vinCode) return;\n    var base = i18n.suggestAjax || '';\n    if (!base) return;\n    sgShown = true;\n    try {\n      var url = new URL(base, window.location.origin);\n      url.searchParams.set('vin', vinCode);\n      fetch(url.toString(), {credentials:'same-origin'})\n        .then(function(r){ return r.json(); })\n        .then(function(j){ if (j && j.success && j.data) renderSuggest(j.data); })\n        .catch(function(){});\n    } catch(e){}\n  }\n  \/\/ Fire-and-forget tracking beacon (training signal) via the WP proxy.\n  function sgEvent(outcome, extra){\n    try {\n      var base = i18n.eventAjax || ''; if (!base) return;\n      var fd = new FormData();\n      fd.append('typed', vin || '');\n      fd.append('outcome', outcome);\n      if (extra){ for (var k in extra){ if (extra[k] != null) fd.append(k, extra[k]); } }\n      if (navigator.sendBeacon) navigator.sendBeacon(base, fd);\n      else fetch(base, {method:'POST', body:fd, keepalive:true, credentials:'same-origin'});\n    } catch(e){}\n  }\n  \/\/ Render a VIN with the changed character positions bolded (1-based positions).\n  function boldVin(vinStr, positions){\n    positions = positions || [];\n    var s = '';\n    for (var i = 0; i < vinStr.length; i++){\n      var ch = escHtml(vinStr.charAt(i));\n      s += (positions.indexOf(i + 1) >= 0) ? '<b style=\"color:#1D4ED8\">' + ch + '<\/b>' : ch;\n    }\n    return s;\n  }\n  function renderSuggest(d){\n    var sugg = d.suggestions || [];\n\n    \/\/ Deterministic I\/O\/Q fix: tell them what changed and take them to the fixed VIN.\n    if (d.autoCorrect && d.suggestion){\n      var box1 = ensureSuggestBox();\n      box1.innerHTML = '<div>' + escHtml((i18n.sgCorrected || 'We corrected your VIN to {vin}.').replace('{vin}', d.suggestion)) + '<\/div>';\n      box1.style.display = 'block';\n      sgEvent('chosen', {verdict:'corrected', chosen:d.suggestion, suggested:d.suggestion});\n      setTimeout(function(){ window.location.href = suggestUrlFor(d.suggestion); }, 1600);\n      return;\n    }\n\n    \/\/ Typo with one or more known-WMI options: let the visitor pick the right one.\n    if (d.verdict === 'likely_typo' && sugg.length){\n      var joined = sugg.map(function(s){ return s.vin; }).join(',');\n      var head = sugg.length > 1\n        ? (i18n.sgMulti || 'Are you sure the VIN is correct? Did you mean one of these?')\n        : (i18n.sgOne   || 'Are you sure the VIN is correct? Did you mean:');\n      var html = '<div style=\"margin-bottom:12px\">' + escHtml(head) + '<\/div>';\n      html += '<div style=\"display:flex;flex-direction:column;gap:8px;align-items:stretch;\">';\n      sugg.forEach(function(s){\n        html += '<a href=\"' + escHtml(suggestUrlFor(s.vin)) + '\" data-vin=\"' + escHtml(s.vin) + '\" class=\"' + U + '_sg_opt\" '\n             +  'style=\"display:flex;justify-content:space-between;gap:12px;align-items:center;text-decoration:none;'\n             +  'background:#fff;border:1px solid #C7D2FE;border-radius:10px;padding:10px 14px;color:#1E3A8A;\">'\n             +  '<span style=\"font-family:\\'DM Mono\\',ui-monospace,monospace;font-size:15px;letter-spacing:1px;\">' + boldVin(s.vin, s.diffPositions) + '<\/span>'\n             +  (s.brand ? '<span style=\"font-weight:600;opacity:.75;\">' + escHtml(s.brand) + '<\/span>' : '')\n             +  '<\/a>';\n      });\n      html += '<\/div>';\n      html += '<button type=\"button\" id=\"' + U + '_sg_keep\" style=\"background:transparent;border:0;color:#1E3A8A;font-weight:600;cursor:pointer;margin-top:12px;padding:6px;\">' + escHtml(i18n.sgKeep || 'My VIN is correct') + '<\/button>';\n      var box = ensureSuggestBox();\n      box.innerHTML = html;\n      box.style.display = 'block';\n      sgEvent('shown', {verdict:'likely_typo', suggested:joined});\n      Array.prototype.forEach.call(document.getElementsByClassName(U + '_sg_opt'), function(a){\n        a.addEventListener('click', function(){ sgEvent('chosen', {verdict:'likely_typo', chosen:a.getAttribute('data-vin'), suggested:joined}); });\n      });\n      var keep = document.getElementById(U + '_sg_keep');\n      if (keep) keep.addEventListener('click', function(){ sgEvent('dismissed', {verdict:'likely_typo', suggested:joined}); box.style.display = 'none'; });\n      return;\n    }\n\n    \/\/ Everything else (a legit VIN we just have no data for, or an unrecognised\n    \/\/ one we cannot improve): show nothing, exactly as before the suggester.\n  }\n\n  function fetchPlateData(plateCode, iso) {\n    var base = i18n.plateAjax || '';\n    if (!base || !plateCode || !iso) return Promise.resolve(null);\n    try {\n      var url = new URL(base, window.location.origin);\n      url.searchParams.set('plate',       plateCode);\n      url.searchParams.set('country_iso', iso);\n      return fetch(url.toString(), {credentials:'same-origin'})\n        .then(function(r){ return r.json(); })\n        .then(function(json){\n          \/\/ Every failure used to collapse to null here, and null is indistinguishable from\n          \/\/ \"nothing was searched\" \u2014 so the scan animation ran its course, showed no vehicle, said\n          \/\/ nothing, and checkout silently refused to accept a payment with no explanation anywhere\n          \/\/ near the pay button. The server has always sent a reason; only this line threw it away.\n          if (!json || !json.success || !json.data) return plateFailure(json);\n          if (!json.data.vinResolved) return {plateFailed:true, kind:'notFound'};\n          \/\/ Deliberately do NOT promote the VIN into page state. The buyer\n          \/\/ searched by plate and never supplied a VIN, so it stays server-side\n          \/\/ in the `vp_vin` session key. Leaving `vin` empty also keeps\n          \/\/ buildCheckoutUrl() on the ?plate= form, so the resolved VIN never\n          \/\/ reaches the URL bar either. Checkout is unblocked by the\n          \/\/ `vinResolved` flag below, not by the VIN itself.\n          return {\n            vinMasked:    (json.data.vinMasked || '').trim(),\n            vinResolved:  true,\n            manufacturer: (json.data.manufacturer || '').trim(),\n            model:        (json.data.model        || '').trim(),\n            year:         String(json.data.year   || '').trim(),\n            recalls:      json.data.recalls || null\n          };\n        })\n        .catch(function(){ return {plateFailed:true, kind:'error'}; });\n    } catch(e) { return Promise.resolve({plateFailed:true, kind:'error'}); }\n  }\n\n  \/**\n   * Which failure the server described. The distinction is worth keeping: an unsupported country is\n   * permanent and the buyer should go straight to the VIN, a rate-limit or network error is\n   * temporary, and a genuine miss means the registry simply has no such plate. All three end at the\n   * same VIN prompt, but they should not claim the same cause.\n   *\/\n  function plateFailure(json) {\n    var d = (json && json.data) || {};\n    var kind = d.unsupported ? 'unsupported'\n             \/\/ Checked before rateLimited: the day gate sets BOTH flags so an older cached copy\n             \/\/ of this script still degrades to the generic \"try the VIN\" message.\n             : d.dailyLimit  ? 'dailyLimit'\n             : d.rateLimited ? 'rateLimited'\n             : d.notFound    ? 'notFound'\n             : 'error';\n    return {plateFailed:true, kind:kind};\n  }\n\n  \/\/ Branch on what we got from the URL: if a plate was submitted, resolve\n  \/\/ it via the plate endpoint (which returns the VIN + basic vehicle data);\n  \/\/ otherwise fall through to the existing VIN preview.\n  var vinDataPromise = plate && !vin\n    ? fetchPlateData(plate, countryIso)\n    : (vin ? fetchVinData(vin) : Promise.resolve(null));\n\n  \/\/ INSTANT reveal waits for the real decode (the tight ticker outpaces the\n  \/\/ lookup, and completing without a vehicle reads as broken). The interval\n  \/\/ below holds at 96% until this flips; the timer caps a hung request.\n  var vinDataSettled = false;\n  vinDataPromise.then(function(){ vinDataSettled = true; }, function(){ vinDataSettled = true; });\n  \/\/ Plate journeys get 35s to match the WP-side plate-preview cap \u2014 the 96% hold must\n  \/\/ outlast the slowest honest registry answer or a slow plate lookup completes into a\n  \/\/ page with no vehicle on it. VIN journeys keep the original 12s: their decode is\n  \/\/ fast and a longer hold would only stretch the normal animation.\n  setTimeout(function(){ vinDataSettled = true; }, (plate && !vin) ? 35000 : 12000);\n\n  function setProgress(pct) {\n    var offset = CIRC - (pct \/ 100) * CIRC;\n    if (ringFill) ringFill.style.strokeDashoffset = offset;\n    if (pctEl)    pctEl.textContent = pct + '%';\n\n    if (stepEl && steps.length) {\n      var idx = Math.min(Math.floor((pct \/ 100) * steps.length), steps.length - 1);\n      if (idx !== lastStep) {\n        stepEl.style.opacity = '0';\n        setTimeout(function(){ stepEl.textContent = steps[idx]; stepEl.style.opacity = '1'; }, 150);\n        lastStep = idx;\n      }\n    }\n\n    var shouldCheck = Math.floor((pct \/ 100) * feats.length);\n    while (checked < shouldCheck && checked < feats.length) {\n      feats[checked].classList.add('is-checked');\n      checked++;\n    }\n\n    \/\/ Mirror the checking progress in the floating buy-bar.\n    if (fabBarEl) fabBarEl.style.width = pct + '%';\n  }\n\n  \/\/ The ring resolves in place at 100%: stroke goes green, \"100%\" steps aside,\n  \/\/ and a checkmark draws inside the circle the shopper has been watching. Runs\n  \/\/ BEFORE showSuccess() swaps in the vehicle panel, so the completion is seen.\n  function completeRing() {\n    \/\/ Flip on the next frame: setProgress(100) has just written a new\n    \/\/ stroke-dashoffset, and same-frame class + property changes get coalesced\n    \/\/ into one style recalc, which skips the closing transition.\n    if (ringWrapEl) requestAnimationFrame(function(){ ringWrapEl.classList.add('is-done'); });\n\n    \/\/ The badge belongs to the completion, not to the panel swap \u2014 leaving it on\n    \/\/ \"checking in progress\" for the ~1s hold contradicts the finished ring.\n    if (badgeEl) {\n      badgeEl.innerHTML = '<span class=\"vp-rc-badge-dot\" style=\"background:#10B981\"><\/span> ' +\n        (i18n.badgeDone || 'Check complete');\n    }\n\n    \/\/ Start the swap almost immediately, NOT after the check finishes drawing:\n    \/\/ a 340ms wait left \"Analyzing Vehicle History\" sitting under a completed\n    \/\/ green checkmark, and by the time the crossfade dip cleared there was under\n    \/\/ a second of \"Report is ready\" left before the panel took the screen. The\n    \/\/ headline now changes WHILE the check draws, which is also the beat that\n    \/\/ makes the two read as one event. The step line goes with it.\n    setTimeout(function(){\n      if (stepEl) stepEl.style.opacity = '0';\n      if (loadHEl && i18n.readyHeadline) {\n        loadHEl.style.opacity = '0';\n        setTimeout(function(){\n          loadHEl.textContent = i18n.readyHeadline;\n          loadHEl.style.opacity = '1';\n        }, 180);\n      }\n    }, 120);\n  }\n\n  function showSuccess() {\n    for (var i = checked; i < feats.length; i++) feats[i].classList.add('is-checked');\n\n    if (loadEl) {\n      loadEl.style.transition = 'opacity 0.3s ease';\n      loadEl.style.opacity = '0';\n      setTimeout(function(){\n        loadEl.style.display = 'none';\n        if (succEl) { succEl.style.display = 'flex'; succEl.style.animation = U + '_fadeIn 0.5s ease'; }\n      }, 300);\n    }\n\n    \/\/ Show the masked VIN tail in the verify block. Full VIN never written here.\n    if (vin && vvinEl) vvinEl.textContent = INSTANT ? vin : vinTail(vin);\n    if (vin && vverifyEl) vverifyEl.style.display = '';\n\n    \/\/ INSTANT mode: complete the floating buy-bar \u2014 fill the bar, flip the status\n    \/\/ to \"check complete\", and enable the \"Get Full Report\" button.\n    if (INSTANT) {\n      if (fabBarEl) fabBarEl.style.width = '100%';\n      if (fabEl)    fabEl.classList.add('is-done');\n      \/\/ The green is-done state already says the check finished; the status\n      \/\/ line carries the delivery promise instead of repeating it.\n      if (fabStatEl) fabStatEl.textContent = (i18n.timing || i18n.badgeDone || 'Check complete');\n      if (fabCtaEl) { fabCtaEl.disabled = false; fabCtaEl.setAttribute('aria-disabled', 'false'); }\n      \/\/ Safety net: if no brand logo has resolved shortly after completion\n      \/\/ (slow\/failed lookup), stop the ring and show the generic glyph.\n      setTimeout(fabLogoFallback, 4000);\n\n      \/\/ Notify any host listener (kept for forward-compat; no redirect here).\n      try {\n        document.dispatchEvent(new CustomEvent('mrvin_proc_complete', { detail: { uid: U } }));\n      } catch (e) {\n        window.mrvinProcComplete = true;\n        try { document.dispatchEvent(new Event('mrvin_proc_complete')); } catch (e2) {}\n      }\n    }\n  }\n\n  \/* Free recall teaser. Only ever ADDS to the page: no data, count 0, or a missing element all\n     leave the layout exactly as server-rendered. Teaser text\/dates go in via textContent, so\n     nothing from the API is ever parsed as HTML. *\/\n  function renderRecalls(rc) {\n    if (!rc || !rc.count || !rc.items || !rc.items.length) return;\n    var flag = document.getElementById(U + '_recalls_flag');\n    if (flag) { flag.textContent = '! ' + rc.count; flag.hidden = false; }\n    var panel = document.getElementById(U + '_recalls');\n    var list  = document.getElementById(U + '_recalls_list');\n    if (!panel || !list) return;\n    var countEl = document.getElementById(U + '_recalls_count');\n    if (countEl) countEl.textContent = rc.count;\n    list.textContent = '';\n    \/\/ Four rows keep the card scannable; the count chip already says how many exist in total.\n    rc.items.slice(0, 4).forEach(function(item){\n      var li = document.createElement('li');\n      li.className = 'vp-recalls-item';\n      var meta = document.createElement('div');\n      meta.className = 'vp-recalls-meta';\n      if (item.date) {\n        var dateEl = document.createElement('span');\n        dateEl.textContent = item.date;\n        meta.appendChild(dateEl);\n      }\n      if (item.component) {\n        var catEl = document.createElement('span');\n        \/\/ \"FUEL SYSTEM, GASOLINE\" \u2192 \"Fuel System, Gasoline\" (registry categories arrive shouty)\n        catEl.textContent = String(item.component).toLowerCase().replace(\/(^|[\\s,\\\/(])\\S\/g, function(m){ return m.toUpperCase(); });\n        meta.appendChild(catEl);\n      }\n      var teaserEl = document.createElement('div');\n      teaserEl.className = 'vp-recalls-teaser';\n      teaserEl.textContent = item.teaser || '';\n      if (meta.childNodes.length) li.appendChild(meta);\n      li.appendChild(teaserEl);\n      list.appendChild(li);\n    });\n    panel.hidden = false;\n  }\n\n  function applyVinData(data) {\n    \/\/ A failure object carries no vehicle \u2014 it flows through the same promise so the completion\n    \/\/ handler can see WHY nothing arrived, but there is nothing here to render.\n    if (!data || data.plateFailed) return;\n\n    renderRecalls(data.recalls);\n\n    var hasMake  = !!data.manufacturer;\n    var hasModel = !!data.model;\n    var hasYear  = !!data.year;\n\n    if ((hasMake || hasModel) && vnameEl) {\n      var parts = [data.manufacturer, data.model].filter(Boolean);\n      vnameEl.textContent = parts.join(' ');\n      if (chipEl) chipEl.style.display = 'flex';\n      \/\/ Mirror the resolved make + model into the floating buy-bar.\n      if (fabNameEl) fabNameEl.textContent = parts.join(' ');\n    }\n    if (hasYear && vyearEl) vyearEl.textContent = data.year;\n\n    \/\/ VIN flow: the buyer typed the VIN themselves, so INSTANT may echo it in\n    \/\/ full. Plate flow never receives the real VIN \u2014 only `vinMasked`.\n    var vinShown = data.vin ? (INSTANT ? data.vin : vinTail(data.vin))\n                            : (data.vinMasked || '');\n    if (vinShown && vvinEl) vvinEl.textContent = vinShown;\n    if (vinShown && vverifyEl) vverifyEl.style.display = '';\n\n    \/\/ Once we actually have vehicle data, swap the success headline\/sub from the\n    \/\/ generic \"VIN Check Complete\" to the more direct \"We found your vehicle \u2014\n    \/\/ verify this is the right one\" message.\n    if ((hasMake || hasModel) && succHEl && i18n.vehicleFoundHeadline) {\n      succHEl.textContent = i18n.vehicleFoundHeadline;\n    }\n    if ((hasMake || hasModel) && succSubEl && i18n.vehicleFoundSub) {\n      succSubEl.textContent = i18n.vehicleFoundSub;\n    }\n\n    if (hasMake) tryShowLogo(data.manufacturer);\n    else fabLogoFallback();   \/\/ no make resolved \u2192 stop the loading ring\n\n    \/\/ Mirror the fresh vehicle into the checkout \"You're checking\u2026\" box\n    \/\/ (.ccz-topbox in the checkout-design snippet). It renders server-side with\n    \/\/ EMPTY vehicle fields when the session data is stale, so this is what fills\n    \/\/ it \u2014 instantly, once the lookup resolves and the animation has ended.\n    if (INSTANT && (hasMake || hasModel)) {\n      var cczName = document.getElementById('ccz-vehicle-name');\n      if (cczName) {\n        var cczLbl = [data.manufacturer, data.model].filter(Boolean).join(' ');\n        if (hasYear) cczLbl += ' (' + data.year + ')';\n        cczName.textContent = cczLbl;\n      }\n      var cczVin = document.getElementById('ccz-vehicle-vin');\n      if (cczVin && vinShown && !cczVin.textContent.replace(\/\\s\/g, '')) {\n        cczVin.textContent = vinShown;\n      }\n      \/\/ Tell the checkout evidence carousel (snippet 9, module 10c) which\n      \/\/ vehicle resolved so it can swap its \"Recent order\" story to a\n      \/\/ matching make\/model. Detail carries make\/model only, never the VIN.\n      \/\/ `vinResolved` is a plain boolean (again, never the VIN) telling snippet\n      \/\/ 9's VIN guard that the server now holds a usable VIN in the session \u2014\n      \/\/ without it, a ?plate= checkout stays blocked because SESSION_VIN_OK was\n      \/\/ baked false at PHP render time, before this lookup landed.\n      try {\n        document.dispatchEvent(new CustomEvent('mrvin_vehicle', {\n          detail: {\n            manufacturer: data.manufacturer || '',\n            model:        data.model || '',\n            vinResolved:  !!(data.vin || data.vinResolved)\n          }\n        }));\n      } catch (e) {}\n    }\n  }\n\n  \/* \u2500\u2500 Floating buy-bar behaviour (INSTANT only) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\n   *  - Slides up once the user scrolls past the top of the preview.\n   *  - Its \"Get Full Report\" button jumps to the real checkout form (it only\n   *    becomes enabled once the checking animation completes \u2014 see showSuccess). *\/\n  \/\/ Collapsed includes panel: the toggle expands\/hides the full feature list.\n  if (INSTANT) {\n    var incT = document.getElementById(U + '_inc_toggle');\n    if (incT) incT.addEventListener('click', function(){\n      var panel = incT.closest('.vp-includes');\n      if (!panel) return;\n      var open = panel.classList.toggle('is-open');\n      incT.setAttribute('aria-expanded', open ? 'true' : 'false');\n      var s = incT.querySelector('[data-show]'), h = incT.querySelector('[data-hide]');\n      if (s) s.hidden = open;\n      if (h) h.hidden = !open;\n    });\n  }\n\n  if (INSTANT && fabEl) {\n    \/\/ Seed the buy-bar with the user's own VIN tail \/ plate immediately so it\n    \/\/ never shows a stale or placeholder vehicle while checking; applyVinData\n    \/\/ upgrades it to the resolved make + model once the lookup resolves.\n    if (fabNameEl) {\n      if (plate)    fabNameEl.textContent = plate;\n      else if (vin) fabNameEl.textContent = '\u2022\u2022\u2022 ' + vinTail(vin);\n    }\n    if (fabCtaEl) {\n      fabCtaEl.addEventListener('click', function(e){\n        e.preventDefault();\n        if (fabCtaEl.disabled) return;\n        scrollToCheckout();\n      });\n    }\n    var sentinel = document.getElementById(U + '_fab_sentinel');\n    if (sentinel && 'IntersectionObserver' in window) {\n      new IntersectionObserver(function(entries){\n        entries.forEach(function(en){\n          \/\/ Show the bar when the sentinel (top of the preview) is scrolled away.\n          if (en.isIntersecting) fabEl.classList.remove('is-visible');\n          else                   fabEl.classList.add('is-visible');\n        });\n      }, { threshold: 0 }).observe(sentinel);\n    } else {\n      \/\/ No IntersectionObserver: reveal on a simple scroll threshold.\n      window.addEventListener('scroll', function(){\n        if (window.pageYOffset > 220) fabEl.classList.add('is-visible');\n        else fabEl.classList.remove('is-visible');\n      }, { passive: true });\n    }\n  }\n\n  \/\/ Animation runs ~7s on average (was ~4.6s) \u2014 gives the backend headroom to deliver\n  \/\/ make\/model\/year before the success reveal. INSTANT mode (embedded above the\n  \/\/ checkout) runs a tighter ~2.5s ticker instead: the shopper should reach the\n  \/\/ form fast, and applyVinData updates the rendered chip in place if the lookup\n  \/\/ resolves after the reveal (vinDataPromise.then keeps listening for late data).\n  \/\/ Instant: many small steps on a short cadence so the ring GLIDES (big jumps\n  \/\/ kept restarting the 0.6s ring transition mid-flight and read as stutter on\n  \/\/ phones); ~4.2s total. Standalone keeps its original pacing.\n  var TICK_MS   = INSTANT ? 250 : 1000;\n  var TICK_STEP = INSTANT ? 5   : 11;\n  var TICK_RAND = INSTANT ? 3   : 9;\n  var iv = setInterval(function(){\n    progress = Math.min(100, progress + Math.floor(Math.random() * TICK_RAND) + TICK_STEP);\n    \/\/ Hold just short of done until the decode settles (instant mode only).\n    if (INSTANT && progress >= 100 && !vinDataSettled) progress = 96;\n    setProgress(progress);\n\n    if (progress >= 100) {\n      clearInterval(iv);\n      completeRing();\n      \/\/ Hold for the ~780ms of completion beats PLUS a readable beat on\n      \/\/ \"Report is ready\" \u2014 at 1500 the headline landed with ~900ms to live and\n      \/\/ was already fading; you could watch the whole page and miss it.\n      setTimeout(function(){\n        showSuccess();\n        vinDataPromise.then(function(d){\n          applyVinData(d);\n          \/\/ A plate that resolved to nothing: ask for the VIN rather than ending on a page that\n          \/\/ shows no car and a pay button that quietly will not work.\n          if (d && d.plateFailed) { showPlateFallback(d.kind); return; }\n          \/\/ No make\/model resolved -> offer \"did you mean\" \/ brand fallback.\n          if (!d || (!d.manufacturer && !d.model)) maybeSuggest(vin);\n        }).catch(function(){ maybeSuggest(vin); });\n      }, INSTANT ? 1500 : 2600);\n    }\n  }, TICK_MS);\n})();\n<\/script>\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-329","page","type-page","status-publish","hentry"],"blocksy_meta":[],"yoast_head":"<title>Produkt - MrVIN<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mrvin.com\/cs\/product\/\" \/>\n<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Produkt - MrVIN\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mrvin.com\/cs\/product\/\" \/>\n<meta property=\"og:site_name\" content=\"MrVIN\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-16T06:16:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/logo\/mrvin-social-preview.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/logo\/mrvin-social-preview.png\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mrvin.com\\\/cs\\\/product\\\/\",\"url\":\"https:\\\/\\\/www.mrvin.com\\\/cs\\\/product\\\/\",\"name\":\"Produkt - MrVIN\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mrvin.com\\\/#website\"},\"datePublished\":\"2026-03-19T09:08:07+00:00\",\"dateModified\":\"2026-06-16T06:16:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mrvin.com\\\/cs\\\/product\\\/#breadcrumb\"},\"inLanguage\":\"cs\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mrvin.com\\\/cs\\\/product\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mrvin.com\\\/cs\\\/product\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.mrvin.com\\\/cs\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Produkt\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mrvin.com\\\/#website\",\"url\":\"https:\\\/\\\/www.mrvin.com\\\/\",\"name\":\"MrVIN\",\"description\":\"Get instant vehicle history reports\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mrvin.com\\\/#organization\"},\"alternateName\":[\"Mr VIN\",\"Mr. VIN\",\"MRVIN\",\"Mr.VIN\",\"MrVIN.com\"],\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mrvin.com\\\/cs\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"cs\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.mrvin.com\\\/#organization\",\"name\":\"MrVIN\",\"url\":\"https:\\\/\\\/www.mrvin.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.mrvin.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.mrvin.com\\\/wp-content\\\/uploads\\\/email\\\/mrvin-logo-horizontal.png\",\"contentUrl\":\"https:\\\/\\\/www.mrvin.com\\\/wp-content\\\/uploads\\\/email\\\/mrvin-logo-horizontal.png\",\"width\":450,\"height\":123,\"caption\":\"MrVIN\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mrvin.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/company\\\/mrvin\\\/\",\"https:\\\/\\\/www.instagram.com\\\/mrvin_com\\\/\",\"https:\\\/\\\/www.facebook.com\\\/people\\\/Mr-VIN\\\/61590451420892\\\/\",\"https:\\\/\\\/www.wikidata.org\\\/wiki\\\/Q141044861\",\"https:\\\/\\\/www.trustpilot.com\\\/review\\\/mrvin.com\",\"https:\\\/\\\/www.youtube.com\\\/@mrvin_com\",\"https:\\\/\\\/x.com\\\/mrvin_com\",\"https:\\\/\\\/www.crunchbase.com\\\/organization\\\/mrvin\"],\"alternateName\":[\"Mr VIN\",\"Mr. VIN\",\"MRVIN\",\"Mr.VIN\",\"MrVIN.com\"],\"identifier\":{\"@type\":\"PropertyValue\",\"propertyID\":\"Wikidata\",\"value\":\"Q141044861\"},\"legalName\":\"VERIFY SIA\",\"foundingDate\":\"2026-01-20\",\"vatID\":\"LV40203713379\",\"taxID\":\"40203713379\",\"email\":\"info@mrvin.com\",\"address\":{\"@type\":\"PostalAddress\",\"streetAddress\":\"Roberta Hir\u0161a 1\",\"addressLocality\":\"R\u012bga\",\"postalCode\":\"LV-1045\",\"addressCountry\":\"LV\"},\"areaServed\":\"Europe\",\"knowsAbout\":[\"Vehicle history reports\",\"Vehicle identification number\",\"Odometer fraud detection\",\"Used car inspection\"]}]}<\/script>","yoast_head_json":{"title":"Produkt - MrVIN","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mrvin.com\/cs\/product\/","og_locale":"cs_CZ","og_type":"article","og_title":"Produkt - MrVIN","og_url":"https:\/\/www.mrvin.com\/cs\/product\/","og_site_name":"MrVIN","article_modified_time":"2026-06-16T06:16:51+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.mrvin.com\/wp-content\/uploads\/logo\/mrvin-social-preview.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_image":"https:\/\/www.mrvin.com\/wp-content\/uploads\/logo\/mrvin-social-preview.png","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mrvin.com\/cs\/product\/","url":"https:\/\/www.mrvin.com\/cs\/product\/","name":"Produkt - MrVIN","isPartOf":{"@id":"https:\/\/www.mrvin.com\/#website"},"datePublished":"2026-03-19T09:08:07+00:00","dateModified":"2026-06-16T06:16:51+00:00","breadcrumb":{"@id":"https:\/\/www.mrvin.com\/cs\/product\/#breadcrumb"},"inLanguage":"cs","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mrvin.com\/cs\/product\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.mrvin.com\/cs\/product\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.mrvin.com\/cs\/"},{"@type":"ListItem","position":2,"name":"Produkt"}]},{"@type":"WebSite","@id":"https:\/\/www.mrvin.com\/#website","url":"https:\/\/www.mrvin.com\/","name":"MrVIN","description":"Get instant vehicle history reports","publisher":{"@id":"https:\/\/www.mrvin.com\/#organization"},"alternateName":["Mr VIN","Mr. VIN","MRVIN","Mr.VIN","MrVIN.com"],"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mrvin.com\/cs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"cs"},{"@type":"Organization","@id":"https:\/\/www.mrvin.com\/#organization","name":"MrVIN","url":"https:\/\/www.mrvin.com\/","logo":{"@type":"ImageObject","@id":"https:\/\/www.mrvin.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.mrvin.com\/wp-content\/uploads\/email\/mrvin-logo-horizontal.png","contentUrl":"https:\/\/www.mrvin.com\/wp-content\/uploads\/email\/mrvin-logo-horizontal.png","width":450,"height":123,"caption":"MrVIN"},"image":{"@id":"https:\/\/www.mrvin.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/mrvin\/","https:\/\/www.instagram.com\/mrvin_com\/","https:\/\/www.facebook.com\/people\/Mr-VIN\/61590451420892\/","https:\/\/www.wikidata.org\/wiki\/Q141044861","https:\/\/www.trustpilot.com\/review\/mrvin.com","https:\/\/www.youtube.com\/@mrvin_com","https:\/\/x.com\/mrvin_com","https:\/\/www.crunchbase.com\/organization\/mrvin"],"alternateName":["Mr VIN","Mr. VIN","MRVIN","Mr.VIN","MrVIN.com"],"identifier":{"@type":"PropertyValue","propertyID":"Wikidata","value":"Q141044861"},"legalName":"VERIFY SIA","foundingDate":"2026-01-20","vatID":"LV40203713379","taxID":"40203713379","email":"info@mrvin.com","address":{"@type":"PostalAddress","streetAddress":"Roberta Hir\u0161a 1","addressLocality":"R\u012bga","postalCode":"LV-1045","addressCountry":"LV"},"areaServed":"Europe","knowsAbout":["Vehicle history reports","Vehicle identification number","Odometer fraud detection","Used car inspection"]}]}},"_links":{"self":[{"href":"https:\/\/www.mrvin.com\/cs\/wp-json\/wp\/v2\/pages\/329","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mrvin.com\/cs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.mrvin.com\/cs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.mrvin.com\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mrvin.com\/cs\/wp-json\/wp\/v2\/comments?post=329"}],"version-history":[{"count":3,"href":"https:\/\/www.mrvin.com\/cs\/wp-json\/wp\/v2\/pages\/329\/revisions"}],"predecessor-version":[{"id":332,"href":"https:\/\/www.mrvin.com\/cs\/wp-json\/wp\/v2\/pages\/329\/revisions\/332"}],"wp:attachment":[{"href":"https:\/\/www.mrvin.com\/cs\/wp-json\/wp\/v2\/media?parent=329"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}