{"id":43219,"date":"2026-11-02T13:25:15","date_gmt":"2026-11-02T11:25:15","guid":{"rendered":"https:\/\/www.mrvin.com\/?page_id=43219"},"modified":"2026-11-02T13:40:02","modified_gmt":"2026-11-02T11:40:02","slug":"chassisnummer-auto","status":"publish","type":"page","link":"https:\/\/www.mrvin.com\/nl\/blog\/chassisnummer-auto\/","title":{"rendered":"Waar staat het chassisnummer op uw auto en op uw kentekencard, en hoe leest u het"},"content":{"rendered":"<style>\n\/* Google Fonts removed 2026-08-21: mrvin-fonts.php self-hosts these exact faces in wp_head, so this was a second request to Google whose only real effect was handing over the visitor IP (GDPR, LG Muenchen I, material in DE\/AT). *\/\nhtml{scroll-behavior:smooth}\n.mrvin-blog-post{--ink:#0B1120;--body:#3A4F66;--muted:#64748B;--faint:#94A3B8;--blue:#003399;--blue2:#2563EB;--tint:#DBEAFE;--bg:#FAFBFC;--surface:#FFFFFF;--surface2:#F8FAFC;--border:#E2E8F0;--green:#1D9E75;--red:#E24B4A;--yellow:#FFD21F;--sans:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;color:var(--body);font-family:var(--sans);font-size:18px;line-height:1.78;-webkit-font-smoothing:antialiased}\n.mrvin-blog-post *,.mrvin-blog-post *::before,.mrvin-blog-post *::after{box-sizing:border-box}\n.mrvin-blog-post [id]{scroll-margin-top:92px}\n.mrvin-blog-post a{color:var(--blue2);text-decoration:none}\n.mrvin-blog-post a:hover{text-decoration:underline}\n.mrvin-blog-post p{margin:0 0 1.5rem}\n\/* layout: sticky ToC left + article *\/\n.mrvin-blog-post .layout{max-width:1040px;margin:0 auto;display:flex;gap:48px;align-items:flex-start;padding:96px 24px 0}\n.mrvin-blog-post .wrap{flex:1 1 auto;max-width:720px;min-width:0}\n.mrvin-blog-post .toc-side{flex:0 0 240px;position:sticky;top:92px;align-self:flex-start}\n.mrvin-blog-post .toc{border-left:3px solid var(--tint);padding:2px 0 2px 22px;margin:0}\n.mrvin-blog-post .toc-h{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin:0 0 10px}\n.mrvin-blog-post .toc ol{margin:0;padding:0 0 0 18px;color:var(--muted);font-size:14.5px;line-height:1.7}\n.mrvin-blog-post .toc li{margin:0 0 9px;padding-left:4px}\n.mrvin-blog-post .toc a{color:var(--body);transition:color .15s,border-color .15s}\n.mrvin-blog-post .toc a:hover{color:var(--blue2)}\n.mrvin-blog-post .toc a.active{color:var(--blue);font-weight:500}\n\/* header *\/\n.mrvin-blog-post .badges{display:flex;gap:8px;align-items:center;margin:8px 0 18px;flex-wrap:wrap}\n.mrvin-blog-post .badge{background:var(--tint);color:var(--blue);font-size:12.5px;font-weight:500;padding:5px 13px;border-radius:20px;letter-spacing:.01em}\n.mrvin-blog-post .date{color:var(--faint);font-size:13.5px}\n.mrvin-blog-post .meta-extra{color:var(--faint);font-size:13.5px}\n.mrvin-blog-post .dot{color:var(--border);margin:0 5px}\n.mrvin-blog-post h1{font-family:var(--sans);color:var(--ink);font-weight:700;font-size:46px;line-height:1.12;letter-spacing:-.01em;margin:0 0 22px}\n.mrvin-blog-post .dek{font-size:21px;line-height:1.55;color:var(--muted);margin:0 0 26px}\n.mrvin-blog-post .byline{display:flex;align-items:center;gap:12px;margin-bottom:34px}\n.mrvin-blog-post .avatar{width:42px;height:42px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:500;font-size:15px;flex:0 0 auto}\n.mrvin-blog-post img.avatar{display:block;background:none;object-fit:cover}\n.mrvin-blog-post .byline .name{color:var(--ink);font-weight:500;font-size:15px;line-height:1.3}\n.mrvin-blog-post .byline .role{color:var(--faint);font-size:13px}\n.mrvin-blog-post .share{display:flex;gap:9px;align-items:center;margin-left:auto}\n.mrvin-blog-post .share a,.mrvin-blog-post .share button{width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:.15s}\n.mrvin-blog-post .share a:hover,.mrvin-blog-post .share button:hover{border-color:var(--blue2);color:var(--blue2)}\n.mrvin-blog-post .cover{width:100%;height:auto;border-radius:18px;border:1px solid var(--border);display:block;margin:0 0 14px;background:var(--tint)}\n.mrvin-blog-post .cover-cap{color:var(--faint);font-size:13px;text-align:center;margin:0 0 44px}\n\/* prose *\/\n.mrvin-blog-post .lead{font-size:21px;line-height:1.7;color:var(--ink);margin:0 0 30px}\n.mrvin-blog-post h2{font-family:inherit;font-weight:700;font-size:31px;line-height:1.22;color:var(--ink);margin:52px auto 26px;letter-spacing:-.022em;text-align:center;max-width:700px;text-wrap:balance}\n.mrvin-blog-post .pullquote{font-family:var(--sans);font-weight:500;font-size:27px;line-height:1.32;color:var(--blue);border-left:4px solid var(--blue);padding:6px 0 6px 26px;margin:38px 0;font-style:italic}\n\/* figure \/ charts *\/\n.mrvin-blog-post figure{margin:38px 0}\n.mrvin-blog-post .card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:26px 26px 22px}\n.mrvin-blog-post .card h3{font-family:var(--sans);font-weight:700;color:var(--ink);font-size:21px;margin:0 0 4px}\n.mrvin-blog-post .card .sub{color:var(--muted);font-size:14px;margin:0 0 20px}\n.mrvin-blog-post figcaption{color:var(--faint);font-size:13px;margin-top:14px}\n.mrvin-blog-post .chart-box{position:relative;width:100%}\n\/* stat strip *\/\n.mrvin-blog-post .stats{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:38px 0}\n.mrvin-blog-post .stat{background:var(--surface2);border-radius:14px;padding:22px 20px}\n.mrvin-blog-post .stat .num{font-family:var(--sans);font-weight:700;font-size:38px;line-height:1;color:var(--blue)}\n.mrvin-blog-post .stat .lbl{font-size:14.5px;color:var(--muted);margin-top:10px;line-height:1.45}\n\/* legend *\/\n.mrvin-blog-post .legend{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:14px;font-size:13px;color:var(--muted)}\n.mrvin-blog-post .legend span{display:flex;align-items:center;gap:7px}\n.mrvin-blog-post .swatch{width:12px;height:12px;border-radius:3px;display:inline-block}\n\/* comparison table (Blocksy borders every cell globally -> hard reset, then re-add) *\/\n.mrvin-blog-post table{width:100%;border-collapse:collapse;font-size:15.5px;background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden}\n.mrvin-blog-post table th,.mrvin-blog-post table td{border:0!important}\n\/* Translated headers are longer than the English ones, and `overflow:hidden`\n   above (which rounds the corners) was silently CLIPPING the last column on a\n   phone in de\/pl\/ro\/lv -- the \"with a history check\" column, which is the whole\n   point of the table. Let it scroll instead. Desktop is untouched. *\/\n@media (max-width:640px){\n\t.mrvin-blog-post .tbl-scroll{overflow-x:auto}\n\t.mrvin-blog-post .tbl-scroll>table{width:max-content;min-width:100%}\n}\n.mrvin-blog-post thead th{background:var(--blue);color:#fff;font-weight:500;text-align:left;padding:15px 18px;font-size:15px}\n.mrvin-blog-post thead th:last-child{background:var(--blue2);text-align:center}\n.mrvin-blog-post thead th:nth-child(2){text-align:center}\n.mrvin-blog-post tbody td{padding:14px 18px;border-top:1px solid var(--border)!important}\n.mrvin-blog-post tbody td:nth-child(2){text-align:center;color:#9A3636}\n.mrvin-blog-post tbody td:last-child{text-align:center;color:#0F6E56;background:var(--surface2);font-weight:500}\n.mrvin-blog-post .ic{font-weight:600;margin-right:5px}\n\/* progress bar + back to top *\/\n.mrvin-blog-post .progress{position:fixed;bottom:0;left:0;height:6px;width:0;background:var(--blue2);z-index:50;transition:width .08s linear;box-shadow:0 -1px 5px rgba(37,99,235,.4)}\n.mrvin-blog-post .totop{position:fixed;right:22px;bottom:22px;width:46px;height:46px;border-radius:50%;background:var(--blue);color:#fff;border:0;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:40;box-shadow:0 4px 14px rgba(0,51,153,.3)}\n.mrvin-blog-post .totop.show{opacity:1;pointer-events:auto}\n.mrvin-blog-post .totop:hover{background:#00256e;transform:translateY(-2px)}\n\/* TL;DR \/ takeaway *\/\n.mrvin-blog-post .takeaway{border-left:4px solid var(--green);background:var(--surface2);border-radius:0 10px 10px 0;padding:16px 20px;margin:34px 0;font-size:16.5px;line-height:1.6;color:var(--ink)}\n.mrvin-blog-post .takeaway b{display:block;color:#0F6E56;font-weight:600;font-size:12px;letter-spacing:.07em;text-transform:uppercase;margin-bottom:5px}\n.mrvin-blog-post .tldr{background:var(--surface2);border:1px solid var(--border);border-radius:16px;padding:24px 26px;margin:34px 0}\n.mrvin-blog-post .eyebrow{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--blue2);margin:0 0 14px}\n.mrvin-blog-post .tldr ul{margin:0;padding:0;list-style:none}\n.mrvin-blog-post .tldr li{position:relative;padding:0 0 0 28px;margin:0 0 11px;font-size:16px;line-height:1.55;color:var(--ink)}\n.mrvin-blog-post .tldr li:last-child{margin-bottom:0}\n.mrvin-blog-post .tldr li:before{content:\"\\2713\";position:absolute;left:0;top:0;color:var(--green);font-weight:600}\n.mrvin-blog-post .summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px 18px;margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}\n.mrvin-blog-post .summary-stats .snum{display:block;font-family:var(--sans);font-weight:700;font-size:25px;line-height:1;color:var(--blue)}\n.mrvin-blog-post .summary-stats .slbl{display:block;font-size:12.5px;color:var(--muted);margin-top:6px;line-height:1.4}\n\/* reveal on scroll *\/\n.mrvin-blog-post .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}\n.mrvin-blog-post .reveal.in{opacity:1;transform:none}\n\/* business article (how-businesses-use-vin-checks): segment links, the photo of\n   Gustavs, the VAT line under the price tiles, and the \/business\/ enquiry form\n   (business_pages.php mrvin_biz_form, styled by its own .mvb sheet) fitted into\n   the article column *\/\n.mrvin-blog-post .seg-link{margin:-6px 0 0;font-size:16px}\n.mrvin-blog-post .seg-link a{color:var(--blue2);font-weight:600}\n.mrvin-blog-post figure.photo{margin:26px 0 30px}\n.mrvin-blog-post figure.photo img{width:100%;height:auto;border-radius:18px;border:1px solid var(--border);display:block;margin:0 0 12px;background:var(--tint)}\n.mrvin-blog-post figure.photo figcaption{text-align:center;margin:0}\n.mrvin-blog-how-businesses-use-vin-checks img.cover{margin-bottom:36px}\n.mrvin-blog-post figure.anim{margin:30px 0}\n.mrvin-blog-post figure.anim img{width:100%;height:auto;display:block;border-radius:16px;border:1px solid var(--border)}\n.mrvin-blog-post figure.anim figcaption{text-align:center;margin-top:10px}\n.mrvin-blog-post .vin-docs{margin:20px 0 24px}\n.mrvin-blog-post .vin-docs thead th,.mrvin-blog-post .vin-docs thead th:nth-child(2),.mrvin-blog-post .vin-docs thead th:last-child{background:var(--surface2);color:var(--ink);font-weight:600;text-align:left}\n.mrvin-blog-post .vin-docs tbody td,.mrvin-blog-post .vin-docs tbody td:nth-child(2),.mrvin-blog-post .vin-docs tbody td:last-child{text-align:left;color:var(--body);background:none;font-weight:400;vertical-align:top}\n.mrvin-blog-post .vin-docs tbody td:first-child{font-weight:600;color:var(--ink)}\n.mrvin-blog-post .vin-docs tbody td:last-child{font-weight:600;color:var(--blue)}\n.mrvin-blog-post .vt{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:22px 24px;margin:26px 0 34px}\n.mrvin-blog-post .vt input{width:100%;font-family:'DM Mono',monospace;font-weight:500;font-size:19px;letter-spacing:.04em;color:var(--ink);background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:12px 14px;outline:none}\n.mrvin-blog-post .vt input:focus{border-color:var(--blue2);box-shadow:0 0 0 3px rgba(37,99,235,.15)}\n.mrvin-blog-post .vt-groups{display:grid;grid-template-columns:3fr 6fr 8fr;gap:8px;margin-top:14px}\n.mrvin-blog-post .vt-group{border-radius:10px;padding:10px 10px 8px;min-width:0}\n.mrvin-blog-post .vt-group .chars{display:block;font-family:'DM Mono',monospace;font-weight:500;font-size:17px;color:var(--ink);min-height:26px;word-break:break-all}\n.mrvin-blog-post .vt-group .name{display:block;font-size:12.5px;line-height:1.3;color:var(--muted);margin-top:4px}\n.mrvin-blog-post .vt-g1{background:#DCE7FF}\n.mrvin-blog-post .vt-g2{background:#DDF3E6}\n.mrvin-blog-post .vt-g3{background:#FFF3D1}\n.mrvin-blog-post .vt-msg{font-size:14px;color:var(--muted);margin:12px 0 0;min-height:21px}\n.mrvin-blog-post .vt-msg.bad{color:#C0362C;font-weight:600}\n@media(max-width:640px){\n\t.mrvin-blog-post .vt-groups{grid-template-columns:1fr}\n\t\/* each row stacks, so the column readers came for is never scrolled out of view *\/\n\t.mrvin-blog-post .vin-docs table,.mrvin-blog-post .vin-docs tbody,.mrvin-blog-post .vin-docs tr,.mrvin-blog-post .vin-docs td{display:block;width:100%}\n\t.mrvin-blog-post .vin-docs thead{display:none}\n\t.mrvin-blog-post .vin-docs tr{padding:10px 14px;border-bottom:1px solid var(--border)}\n\t.mrvin-blog-post .vin-docs tr:last-child{border-bottom:0}\n\t.mrvin-blog-post .vin-docs tbody td{padding:0;border-top:0!important}\n}\n.mrvin-blog-post .tldr .vat-note{margin:14px 0 0;font-size:12.5px;color:var(--muted)}\n.mrvin-blog-post .tldr + .seg-link{margin:-14px 0 0}\n.mrvin-blog-post .mvb-embed{border-radius:22px;margin:52px 0 0;overflow:hidden}\n.mrvin-blog-post .mvb-embed .mvb-section{padding:40px 0}\n.mrvin-blog-post .mvb-embed .mvb-wrap{padding:0 20px}\n.mrvin-blog-post .mvb-embed .mvb-head{margin-bottom:28px}\n.mrvin-blog-post .mvb-embed .mvb-h2{margin:14px auto 0;font-size:30px;text-align:center}\n.mrvin-blog-post .mvb-embed + .promo-alt{margin:16px 0 42px}\n.mrvin-blog-post .mvb-embed + .promo-alt a{display:inline-flex;align-items:center;gap:7px}\n.mrvin-blog-post .mvb-embed + .promo-alt svg{width:15px;height:15px;flex:0 0 15px}\n@media(max-width:600px){.mrvin-blog-post .mvb-embed .mvb-wrap{padding:0 12px}.mrvin-blog-post .mvb-embed .mvb-h2{font-size:26px}}\n\/* read next (internal crawl mesh, foot of every article) *\/\n.mrvin-blog-post .readnext{margin:56px 0 0;padding-top:34px;border-top:1px solid var(--border)}\n.mrvin-blog-post .readnext .eyebrow{margin:0 0 16px}\n.mrvin-blog-post .readnext-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}\n.mrvin-blog-post a.readnext-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s,border-color .25s}\n.mrvin-blog-post a.readnext-card:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(4,36,63,.12);border-color:var(--blue2);text-decoration:none}\n.mrvin-blog-post .rn-img{display:block;width:100%;aspect-ratio:16\/9;background:var(--tint) center\/cover no-repeat;border-bottom:1px solid var(--border)}\n.mrvin-blog-post .rn-body{display:flex;flex-direction:column;gap:7px;padding:16px 18px 18px}\n.mrvin-blog-post .rn-title{font-family:var(--sans);font-weight:700;font-size:19px;line-height:1.28;color:var(--ink)}\n.mrvin-blog-post .rn-dek{font-size:14px;line-height:1.5;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}\n.mrvin-blog-post .rn-more{font-size:13.5px;font-weight:600;color:var(--blue2);margin-top:2px}\n@media(max-width:600px){.mrvin-blog-post .readnext-grid{grid-template-columns:1fr}}\n\/* ranked model cards (listicle articles) *\/\n.mrvin-blog-post .car{border-top:1px solid var(--border);padding-top:34px;margin:46px 0 0}\n.mrvin-blog-post .car-photos{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 20px}\n.mrvin-blog-post .car-photos img{width:100%;height:auto;aspect-ratio:16\/9;object-fit:cover;border-radius:12px;border:1px solid var(--border);display:block;background:var(--tint)}\n.mrvin-blog-post .car-head{display:flex;align-items:baseline;gap:14px;margin:0 0 6px}\n.mrvin-blog-post .car-rank{font-family:var(--sans);font-weight:700;font-size:34px;line-height:1;color:#A9CBF0;flex:0 0 auto}\n\/* compact promo variant: keeps the bear beside the copy instead of wrapping above it *\/\n.mrvin-blog-post .promo-vin.pv-compact .pv-head img{min-width:0;max-width:300px;margin:0 auto}\n.mrvin-blog-post .car h2{margin:0;font-size:29px;text-align:left;max-width:none}\n.mrvin-blog-post .car-spec{display:flex;flex-wrap:wrap;align-items:center;gap:0;color:var(--faint);font-size:13.5px;margin:0 0 16px}\n.mrvin-blog-post .car-spec b{color:var(--blue);font-weight:600}\n.mrvin-blog-post .car-spec .sep{display:inline-block;width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.55;vertical-align:middle;margin:0 10px}\n.mrvin-blog-post .car-faults{background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:20px 22px;margin:0 0 20px}\n.mrvin-blog-post .car-faults .eyebrow{color:#9A3636;margin:0 0 12px}\n.mrvin-blog-post .car-faults ul{margin:0;padding:0;list-style:none}\n.mrvin-blog-post .car-faults li{position:relative;padding:0 0 0 22px;margin:0 0 11px;font-size:15.5px;line-height:1.6;color:var(--body)}\n.mrvin-blog-post .car-faults li:last-child{margin-bottom:0}\n.mrvin-blog-post .car-faults li:before{content:\"\";position:absolute;left:2px;top:9px;width:7px;height:7px;border-radius:50%;background:#E24B4A}\n.mrvin-blog-post .car-faults li b{color:var(--ink);font-weight:600}\n.mrvin-blog-post .car-look{font-size:16px;line-height:1.65;margin:0 0 16px}\n.mrvin-blog-post .car-look b{color:var(--ink);font-weight:600}\n.mrvin-blog-post .car-take{border-left:4px solid var(--green);background:var(--surface2);border-radius:0 10px 10px 0;padding:13px 18px;margin:0 0 12px;font-size:16px;line-height:1.55;color:var(--ink)}\n.mrvin-blog-post .car-take b{color:#0F6E56;font-weight:600}\n.mrvin-blog-post .car-src{color:var(--faint);font-size:12.5px;margin:0}\n@media(max-width:600px){.mrvin-blog-post .car-photos{grid-template-columns:1fr}.mrvin-blog-post .car h2{font-size:25px}.mrvin-blog-post .car-rank{font-size:28px}}\n\/* damage case cards and the four photo cover (worst-car-damage-cases); facts reuse .car-spec *\/\n.mrvin-blog-post .cover-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px;border-radius:18px;overflow:hidden;margin:0 0 14px}\n.mrvin-blog-post .cover-grid img{width:100%;height:auto;aspect-ratio:4\/3;object-fit:cover;display:block;background:var(--tint)}\n.mrvin-blog-post .dcase{background:var(--surface);border:1px solid var(--border);border-radius:18px;overflow:hidden;margin:28px 0}\n.mrvin-blog-post .dcase-photos{display:grid;grid-template-columns:1fr;gap:3px;background:var(--surface2)}\n.mrvin-blog-post .dcase-photos.two{grid-template-columns:1fr 1fr}\n.mrvin-blog-post .dcase-photos img{width:100%;height:auto;aspect-ratio:16\/10;object-fit:cover;display:block;background:var(--tint)}\n.mrvin-blog-post .dcase-photos.two img{aspect-ratio:4\/3}\n.mrvin-blog-post .dcase-body{padding:22px 26px}\n.mrvin-blog-post .dcase h3{font-family:var(--sans);font-weight:700;color:var(--ink);font-size:23px;line-height:1.25;margin:0 0 6px}\n.mrvin-blog-post .dcase .car-spec{margin:0 0 12px}\n.mrvin-blog-post .dcase-why{margin:0}\n@media(max-width:600px){.mrvin-blog-post .dcase-body{padding:18px}.mrvin-blog-post .dcase h3{font-size:21px}}\n\/* mileage calculator *\/\n.mrvin-blog-post .calc{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px 26px;margin:36px 0}\n.mrvin-blog-post .calc h3{font-family:var(--sans);font-weight:700;color:var(--ink);font-size:21px;margin:0 0 4px}\n.mrvin-blog-post .calc .sub{color:var(--muted);font-size:14.5px;margin:0 0 18px;line-height:1.5}\n.mrvin-blog-post .calc-row{display:flex;gap:14px;flex-wrap:wrap}\n.mrvin-blog-post .calc-field{flex:1 1 150px}\n.mrvin-blog-post .calc-field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}\n.mrvin-blog-post .calc-field input,.mrvin-blog-post .calc-field select{width:100%;border:1px solid var(--border);border-radius:10px;padding:11px 13px;font-size:16px;font-family:var(--sans);color:var(--ink);background:var(--surface2)}\n.mrvin-blog-post .calc-field input:focus,.mrvin-blog-post .calc-field select:focus{outline:none;border-color:var(--blue2);background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.15)}\n.mrvin-blog-post .calc-out{margin-top:20px;padding:20px 22px;border-radius:12px;background:var(--surface2);border:1px solid var(--border);display:none}\n.mrvin-blog-post .calc-out.show{display:block}\n.mrvin-blog-post .calc-verdict{font-weight:600;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;margin:0 0 4px}\n.mrvin-blog-post .calc-num{font-family:var(--sans);font-weight:700;font-size:30px;line-height:1;display:block;margin-bottom:14px}\n.mrvin-blog-post .calc-bar{position:relative;height:16px;background:#fff;border:1px solid var(--border);border-radius:8px;margin:6px 0;overflow:hidden}\n.mrvin-blog-post .calc-bar-band{position:absolute;top:0;bottom:0;background:#9FE1CB}\n.mrvin-blog-post .calc-bar-mark{position:absolute;top:-3px;bottom:-3px;width:3px;border-radius:2px}\n.mrvin-blog-post .calc-bar-legend{display:flex;gap:16px;font-size:12px;color:var(--muted);margin:8px 0 16px}\n.mrvin-blog-post .calc-bar-legend .sw{display:inline-block;width:11px;height:11px;border-radius:2px;margin-right:5px;vertical-align:-1px}\n.mrvin-blog-post .calc-metrics{display:flex;gap:22px;flex-wrap:wrap;margin:0 0 14px;padding-top:14px;border-top:1px solid var(--border)}\n.mrvin-blog-post .calc-metrics > div{font-size:13px;color:var(--muted)}\n.mrvin-blog-post .calc-metrics b{display:block;font-size:17px;color:var(--ink);font-weight:500;margin-top:3px}\n.mrvin-blog-post .calc-msg{margin:0;font-size:15px;line-height:1.6;color:var(--body)}\n.mrvin-blog-post .calc-src{font-size:12.5px;color:var(--faint);line-height:1.55;margin:14px 0 0}\n.mrvin-blog-post .calc-src a{color:var(--muted);text-decoration:underline}\n\/* inline VIN-check promo *\/\n.mrvin-blog-post .promo{display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap;background:var(--blue);border-radius:16px;padding:24px 28px;margin:42px 0;position:relative;overflow:hidden}\n.mrvin-blog-post .promo:before{content:\"\";position:absolute;right:-40px;top:-40px;width:170px;height:170px;border:28px solid rgba(255,255,255,.06);border-radius:50%}\n.mrvin-blog-post .promo-text{position:relative;flex:1 1 280px}\n.mrvin-blog-post .promo-h{font-family:var(--sans);font-weight:700;color:#fff;font-size:22px;margin:0 0 5px}\n.mrvin-blog-post .promo-sub{color:#B5D4F4;font-size:15px;margin:0;line-height:1.5}\n.mrvin-blog-post .promo-btn{position:relative;flex:0 0 auto;background:#fff;color:var(--blue);font-weight:500;font-size:15px;padding:13px 24px;border-radius:11px;white-space:nowrap;transition:.15s}\n.mrvin-blog-post .promo-btn:hover{background:var(--yellow);color:#0B1120;text-decoration:none}\n.mrvin-blog-post .promo-alt{text-align:center;font-size:14.5px;margin:-28px 0 42px}\n.mrvin-blog-post .promo-alt a{color:var(--blue);font-weight:500;text-decoration:none}\n.mrvin-blog-post .promo-alt a:hover{text-decoration:underline}\n\/* VIN-check card with bear illustration *\/\n.mrvin-blog-post .promo-vin{display:flex;flex-direction:column;gap:20px;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:24px 26px;margin:42px 0}\n.mrvin-blog-post .pv-head{display:flex;align-items:center;gap:24px;flex-wrap:wrap}\n.mrvin-blog-post .pv-head img{flex:1 1 300px;width:auto;max-width:100%;height:auto}\n.mrvin-blog-post .promo-vin .pv-body{flex:1 1 300px;min-width:0}\n\/* The card heading is a <p class=\"pv-h\">, like .promo-h: an h3 straight after the article h1 skipped a level\n   (heading-order-skip, 2026-10-21). The h3 selector stays for any card still built the old way. *\/\n.mrvin-blog-post .promo-vin h3,.mrvin-blog-post .promo-vin .pv-h{font-family:var(--sans);font-weight:700;color:var(--ink);font-size:23px;margin:0 0 6px;line-height:1.3}\n.mrvin-blog-post .promo-vin p{color:var(--muted);font-size:15px;margin:0 0 16px;line-height:1.5}\n\/* VIN search box \u2014 mirrors the homepage hero input (.mrvin-search-*) *\/\n.mrvin-blog-post .mrvin-search-box{background:#FFF;border-radius:16px;box-shadow:0 10px 30px rgba(0,0,0,.08),0 4px 8px rgba(0,0,0,.04),0 0 0 1px var(--border);padding:8px;transition:box-shadow .3s;max-width:480px}\n.mrvin-blog-post .promo-vin .mrvin-search-box{max-width:none}\n.mrvin-blog-post .mrvin-search-box:focus-within{box-shadow:0 10px 30px rgba(0,0,0,.08),0 4px 8px rgba(0,0,0,.04),0 0 0 2px var(--blue2)}\n.mrvin-blog-post .mrvin-search-row{display:flex;gap:6px;align-items:center;margin:0}\n.mrvin-blog-post .mrvin-search-input,.mrvin-blog-post .mrvin-search-input:focus{flex:1;min-width:0;width:100%;border:0;outline:none;background:transparent;font-size:16px;font-family:var(--sans);padding:14px 18px;color:var(--ink);border-radius:12px;text-align:left}\n.mrvin-blog-post .mrvin-search-input::placeholder{color:var(--faint)}\n.mrvin-blog-post .mrvin-search-btn{flex:0 0 auto;background:var(--blue2);color:#fff;border:0;border-radius:12px;padding:14px 28px;font-size:15px;font-weight:600;cursor:pointer;font-family:var(--sans);white-space:nowrap;transition:.2s;line-height:1.2}\n.mrvin-blog-post .mrvin-search-btn:hover{background:#1D4ED8;transform:translateY(-1px)}\n.mrvin-blog-post .mrvin-search-hint{font-size:12.5px;color:var(--faint);margin:0}\n.mrvin-blog-post .mrvin-search-hint code{background:#F1F5F9;padding:2px 8px;border-radius:4px;font-size:11.5px;font-family:inherit;font-weight:600;letter-spacing:.02em;color:var(--muted)}\n.mrvin-blog-post .mrvin-search-hint .sep{display:inline-block;width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.5;vertical-align:middle;margin:0 9px}\n@media(max-width:640px){.mrvin-blog-post h2{font-size:25px}.mrvin-blog-post .mrvin-search-row{flex-direction:column;gap:6px;align-items:stretch}.mrvin-blog-post .mrvin-search-btn{width:100%;padding:14px}}\n\/* endnote *\/\n.mrvin-blog-post .endnote{border-top:1px solid var(--border);margin-top:46px;padding-top:26px;font-size:17.5px;line-height:1.7;color:var(--body)}\n.mrvin-blog-post .endnote a{font-weight:500}\n\/* FAQ *\/\n.mrvin-blog-post .faq{margin:54px 0 0}\n.mrvin-blog-post .faq h2{margin-bottom:6px}\n.mrvin-blog-post .faq-item{border-top:1px solid var(--border);padding:20px 0}\n.mrvin-blog-post .faq-item:last-child{border-bottom:1px solid var(--border)}\n.mrvin-blog-post .faq-q{font-family:var(--sans);font-weight:700;font-size:20px;color:var(--ink);margin:0 0 8px}\n.mrvin-blog-post .faq-a{margin:0;font-size:16.5px;color:var(--body);line-height:1.7}\n\/* author bio *\/\n.mrvin-blog-post .author{display:flex;gap:16px;align-items:flex-start;background:var(--surface2);border-radius:16px;padding:22px 24px;margin:50px 0 0}\n.mrvin-blog-post .author .av{width:52px;height:52px;border-radius:50%;background:var(--blue);color:#fff;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-weight:500;font-size:17px}\n.mrvin-blog-post .author .nm{color:var(--ink);font-weight:500;font-size:16px;margin:0 0 5px}\n.mrvin-blog-post .author p{margin:0;font-size:14.5px;color:var(--muted);line-height:1.6}\n\/* sources *\/\n.mrvin-blog-post .sources{border-top:1px solid var(--border);margin-top:54px;padding-top:26px}\n.mrvin-blog-post .sources h2{font-size:22px;margin:0 auto 16px}\n.mrvin-blog-post .sources ul{list-style:none;padding:0;margin:0}\n.mrvin-blog-post .sources li{font-size:14.5px;color:var(--muted);padding:9px 0;border-bottom:1px solid var(--border);line-height:1.5}\n.mrvin-blog-post .sources li b{color:var(--ink);font-weight:500}\n\/* responsive *\/\n@media(max-width:940px){\n  .mrvin-blog-post .layout{display:block;padding:84px 20px 0}\n  .mrvin-blog-post .wrap{max-width:720px;margin:0 auto}\n  .mrvin-blog-post .toc-side{display:none}\n}\n@media(max-width:640px){\n  .mrvin-blog-post h1{font-size:34px}.mrvin-blog-post .lead{font-size:19px}.mrvin-blog-post .dek{font-size:18px}.mrvin-blog-post{font-size:17px}\n  .mrvin-blog-post .stats{grid-template-columns:1fr}.mrvin-blog-post .byline{flex-wrap:wrap}.mrvin-blog-post .share{margin-left:0}\n}\n\/* ==== used-car-cost-2026: partner cards, entry points, highlighted CTA ====\n   Everything below is emitted by that article alone, except the two rules\n   scoped under .mrvin-blog-used-car-cost-2026, which upgrade the summary\n   ticks and the Takeaway label for that article only. *\/\n.mrvin-blog-post .side-cta{margin-top:26px;border-left:3px solid var(--tint);padding:2px 0 2px 22px}\n.mrvin-blog-post .side-cta .sc-h{font-family:var(--sans);font-weight:700;font-size:16px;line-height:1.25;color:var(--ink);text-align:center;margin:0 0 12px}\n.mrvin-blog-post .side-cta .sc-h b{color:var(--blue);font-weight:400}\n.mrvin-blog-post .side-cta a{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:600;color:var(--ink);background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:8px;text-decoration:none;transition:border-color .2s ease,background .2s ease}\n.mrvin-blog-post .side-cta a:hover{background:#fff;border-color:var(--blue2);text-decoration:none}\n.mrvin-blog-post .side-cta .sc-ic{flex:0 0 24px;height:24px;border-radius:7px;background:linear-gradient(140deg,#EDF4FE,#DBEAFE);border:1px solid #CBDDF8;color:var(--blue);display:flex;align-items:center;justify-content:center}\n.mrvin-blog-post .side-cta .sc-ic svg{width:14px;height:14px}\n.mrvin-blog-post .jumpline{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--border);font-size:14.5px;color:var(--muted)}\n.mrvin-blog-post .jumpline a{font-weight:600}\n.mrvin-blog-post .jumpline .sep{color:var(--faint);margin:0 8px}\n.mrvin-blog-post .mbar{position:fixed;left:0;right:0;bottom:0;z-index:9998;display:none;flex-direction:column;gap:8px;background:rgba(255,255,255,.97);border-top:1px solid var(--border);box-shadow:0 -6px 20px rgba(11,17,32,.08);padding:10px 12px;transform:translateY(110%);transition:transform .28s ease}\n.mrvin-blog-post .mbar.on{transform:translateY(0)}\n.mrvin-blog-post .mbar a{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-align:center;font-size:14px;font-weight:600;color:#fff;background:var(--blue);border-radius:10px;padding:11px 8px;text-decoration:none}\n.mrvin-blog-post .mbar a.alt{background:var(--surface2);color:var(--ink);border:1px solid var(--border)}\n.mrvin-blog-post .mbar a svg{width:16px;height:16px}\n.mrvin-blog-post .mbar-top{position:relative;display:flex;align-items:center;justify-content:center;gap:8px}\n.mrvin-blog-post .mbar-h{font-family:var(--sans);font-weight:700;font-size:17px;line-height:1.2;color:var(--ink);text-align:center}\n.mrvin-blog-post .mbar-h b{color:var(--blue);font-weight:400}\n.mrvin-blog-post .mbar-row{display:flex;gap:8px}\n.mrvin-blog-post .mbar button{position:absolute;right:0;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--faint);font-size:20px;line-height:1;cursor:pointer;padding:0 2px}\n@media (max-width:1000px){.mrvin-blog-post .mbar{display:flex}}\n.mrvin-blog-post .pcard{border:1px solid var(--border);border-radius:16px;background:var(--surface);padding:20px 22px;margin:38px 0;box-shadow:0 2px 10px rgba(11,17,32,.04);transition:box-shadow .2s ease,border-color .2s ease}\n.mrvin-blog-post .pcard:hover{box-shadow:0 10px 26px rgba(11,17,32,.09);border-color:#CBD8EA}\n.mrvin-blog-post .pcard-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}\n.mrvin-blog-post .pcard-ic{flex:0 0 44px;height:44px;border-radius:12px;background:linear-gradient(140deg,#EDF4FE,#DBEAFE);border:1px solid #CBDDF8;color:var(--blue);display:flex;align-items:center;justify-content:center}\n.mrvin-blog-post .pcard-ic svg{width:23px;height:23px}\n.mrvin-blog-post .pcard-body{flex:1 1 240px;min-width:0}\n.mrvin-blog-post .pcard-h{font-family:var(--sans);font-weight:700;font-size:20px;color:var(--ink);margin:0 0 3px;line-height:1.25}\n.mrvin-blog-post .pcard-sub{font-size:15px;color:var(--muted);margin:0;line-height:1.5}\n.mrvin-blog-post .pcard-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:9px;background:var(--blue);color:#fff;border:0;border-radius:10px;font-family:var(--sans);font-size:15.5px;font-weight:600;padding:12px 20px;cursor:pointer;box-shadow:0 4px 12px rgba(0,51,153,.2);transition:background .2s ease,transform .18s ease,box-shadow .18s ease}\n.mrvin-blog-post .pcard-btn:hover{background:var(--blue2);transform:translateY(-1px);box-shadow:0 7px 18px rgba(37,99,235,.28)}\n.mrvin-blog-post .pcard-btn svg{width:16px;height:16px;transition:transform .18s ease}\n.mrvin-blog-post .pcard-btn:hover svg{transform:translateX(3px)}\n.mrvin-blog-post .pcard-slot{display:none;margin-top:18px;border-top:1px solid var(--border);padding-top:18px}\n.mrvin-blog-post .pcard.open .pcard-slot{display:block}\n.mrvin-blog-post .pcard.open .pcard-btn{display:none}\n\/* clickout slot: the Czech partners are links, not embedded widgets, so the\n   revealed slot holds a button-shaped anchor instead of an iframe *\/\n.mrvin-blog-post .pcard-slot a.pgo{display:flex;align-items:center;justify-content:center;gap:9px;font-size:15px;font-weight:600;color:#fff;background:var(--blue);border-radius:12px;padding:14px 18px;text-decoration:none;transition:background .2s ease}\n.mrvin-blog-post .pcard-slot a.pgo:hover{background:var(--blue2);text-decoration:none}\n.mrvin-blog-post .pcard-slot a.pgo svg{width:17px;height:17px;flex:0 0 17px}\n.mrvin-blog-post .pcard-ad{display:inline-block;vertical-align:2px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);border:1px solid var(--border);border-radius:4px;padding:1px 6px;margin-left:8px;white-space:nowrap}\n.mrvin-blog-post .pcard-disc{font-size:12.5px;line-height:1.6;color:var(--faint);margin:14px 0 0}\n.mrvin-blog-post .pcard-frame{width:100%;height:900px;border:0;border-radius:8px;display:block;background:#fff}\n.mrvin-blog-post .partner-disc{border-top:1px solid var(--border);margin-top:30px;padding-top:18px;font-size:12.5px;line-height:1.65;color:var(--faint)}\n.mrvin-blog-post .partner-disc b{display:block;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}\n.mrvin-blog-post .pv-body .pv-eyebrow{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue2);margin:0 0 9px}\n.mrvin-blog-post .pv-body .pv-eyebrow svg{width:16px;height:16px;flex:0 0 16px}\n.mrvin-blog-post .promo-vin .mrvin-search-hint{margin:0}\n.mrvin-blog-post .promo-vin .pv-trust{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}\n.mrvin-blog-post .promo-vin .pv-trust li{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);background:var(--surface2);border:1px solid var(--border);border-radius:999px;padding:5px 12px}\n.mrvin-blog-post .promo-vin .pv-trust svg{width:14px;height:14px;flex:0 0 14px;color:var(--green)}\n.mrvin-blog-post .mrvin-search-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px}\n.mrvin-blog-post .mrvin-search-btn svg{width:17px;height:17px;flex:0 0 17px;transition:transform .18s ease}\n.mrvin-blog-post .mrvin-search-btn:hover svg{transform:translateX(3px)}\n.mrvin-blog-post .promo.promo-xl{display:block;padding:0;border-radius:20px;margin:46px 0 0;background:linear-gradient(135deg,#002B80 0%,#003399 46%,#1D4ED8 100%);box-shadow:0 18px 44px rgba(0,51,153,.28)}\n.mrvin-blog-post .promo.promo-xl:before{right:-56px;top:-56px;width:210px;height:210px;border-width:34px}\n.mrvin-blog-post .promo.promo-xl:after{content:\"\";position:absolute;left:-70px;bottom:-96px;width:240px;height:240px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(255,210,31,.22) 0%,rgba(255,210,31,0) 68%)}\n.mrvin-blog-post .promo-xl .promo-inner{position:relative;z-index:1;padding:30px 32px 28px}\n.mrvin-blog-post .promo-xl .promo-main{display:flex;align-items:flex-start;gap:18px}\n.mrvin-blog-post .promo-ic{flex:0 0 52px;height:52px;border-radius:15px;color:#fff;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.24);display:flex;align-items:center;justify-content:center}\n.mrvin-blog-post .promo-ic svg{width:27px;height:27px}\n.mrvin-blog-post .promo-xl .promo-text{flex:1 1 auto;min-width:0}\n.mrvin-blog-post .promo-xl .promo-eyebrow{font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--yellow);margin:0 0 7px}\n.mrvin-blog-post .promo-xl .promo-h{font-size:27px;line-height:1.2;margin:0 0 8px}\n.mrvin-blog-post .promo-xl .promo-sub{font-size:15.5px;max-width:54ch}\n.mrvin-blog-post .promo-xl .promo-trust{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:20px 0 0;padding:0}\n.mrvin-blog-post .promo-xl .promo-trust li{display:flex;align-items:center;gap:7px;font-size:13.5px;color:#DCEAFB;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.17);border-radius:999px;padding:6px 13px}\n.mrvin-blog-post .promo-xl .promo-trust svg{width:15px;height:15px;flex:0 0 15px;color:var(--yellow)}\n.mrvin-blog-post .promo-xl .promo-btn{display:inline-flex;align-items:center;gap:10px;margin:22px 0 0;background:var(--yellow);color:#0B1120;font-weight:700;font-size:16.5px;padding:15px 26px;border-radius:13px;box-shadow:0 8px 20px rgba(0,0,0,.22);transition:transform .18s ease,box-shadow .18s ease,background .18s ease}\n.mrvin-blog-post .promo-xl .promo-btn:hover{background:#FFDD4D;color:#0B1120;transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.3);text-decoration:none}\n.mrvin-blog-post .promo-xl .promo-btn svg{width:19px;height:19px;flex:0 0 19px}\n.mrvin-blog-post .promo-xl .promo-btn .pb-arrow{width:17px;height:17px;flex:0 0 17px;transition:transform .18s ease}\n.mrvin-blog-post .promo-xl .promo-btn:hover .pb-arrow{transform:translateX(3px)}\n.mrvin-blog-post .promo-xl + .promo-alt{margin:16px 0 42px}\n.mrvin-blog-post .promo-xl + .promo-alt a{display:inline-flex;align-items:center;gap:7px}\n.mrvin-blog-post .promo-xl + .promo-alt svg{width:15px;height:15px;flex:0 0 15px}\n.mrvin-blog-post .src-links{display:block;margin-top:6px}\n.mrvin-blog-used-car-cost-2026 .tldr li{padding-left:33px}\n.mrvin-blog-used-car-cost-2026 .tldr li:before{content:\"\";position:absolute;left:0;top:2px;width:22px;height:22px;border-radius:7px;background:rgba(29,158,117,.11) url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%231D9E75' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.6 4.6L19 7'\/%3E%3C\/svg%3E\") center\/13px 13px no-repeat}\n.mrvin-blog-used-car-cost-2026 .takeaway b{padding-left:21px;line-height:1.5;background:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%230F6E56' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.3 18h5.4'\/%3E%3Cpath d='M10.2 21h3.6'\/%3E%3Cpath d='M12 3a6 6 0 0 0-3.5 10.9c.6.5 1 1.2 1 2h5c0-.8.4-1.5 1-2A6 6 0 0 0 12 3Z'\/%3E%3C\/svg%3E\") left center\/14px 14px no-repeat}\n@media(max-width:600px){\n  .mrvin-blog-post .promo-xl .promo-inner{padding:26px 22px 24px}\n  .mrvin-blog-post .promo-xl .promo-main{gap:14px}\n  .mrvin-blog-post .promo-xl .promo-h{font-size:23px}\n  .mrvin-blog-post .promo-ic{flex:0 0 44px;height:44px;border-radius:13px}\n  .mrvin-blog-post .promo-ic svg{width:23px;height:23px}\n  .mrvin-blog-post .promo-xl .promo-btn{width:100%;justify-content:center}\n}\n@media(prefers-reduced-motion:reduce){\n  .mrvin-blog-post .promo-xl .promo-btn,.mrvin-blog-post .pcard-btn,.mrvin-blog-post .pcard-btn svg,.mrvin-blog-post .mrvin-search-btn svg{transition:none}\n  .mrvin-blog-post .promo-xl .promo-btn:hover,.mrvin-blog-post .pcard-btn:hover{transform:none}\n}\n\n\/* ---------- VIN \/ plate search box, as on the homepage hero ----------\n   The tabs, the country tile and the validation notes are the shared\n   component from snippet 6; these rules only re-scope its sizing to the\n   narrower article column. *\/\n\/* Rail CTA sub label. The rail in the country editions is a single line link,\n   so .sc-geo had no rule and the second line ran into the first. *\/\n.mrvin-blog-post .side-cta .sc-geo{display:block;font-size:11.5px;font-weight:400;color:var(--faint);line-height:1.35;margin-top:3px}\n\n.mrvin-blog-post .mrvin-search-tabs{display:flex;gap:4px;padding:2px 4px 8px}\n.mrvin-blog-post .mrvin-search-tab{padding:7px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:0;outline:none;background:transparent;color:var(--faint);font-family:var(--sans);transition:background .2s,color .2s;line-height:1}\n.mrvin-blog-post .mrvin-search-tab.active{background:var(--tint);color:var(--blue2)}\n.mrvin-blog-post .mrvin-search-tab:hover:not(.active){color:var(--body)}\n.mrvin-blog-post .mrvin-search-row .mrvin-country{align-self:stretch;display:none}\n.mrvin-blog-post .mrvin-search-row .mrvin-country.is-active{display:block}\n.mrvin-blog-post .mrvin-country-tile{height:100%;min-height:52px}\n\n\/* ---------- damage study: data tables ----------\n   .dtable is the plain two or three column figures table. It reuses the\n   base table styling and adds a bar that draws the share inline, so the\n   shape of a distribution is readable without a chart. *\/\n.mrvin-blog-post .dtable{margin:26px 0 0;font-size:15px}\n.mrvin-blog-post .dtable thead th{background:var(--surface2);color:var(--muted);font-weight:600;font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;padding:12px 16px;text-align:right}\n.mrvin-blog-post .dtable thead th:first-child{text-align:left}\n.mrvin-blog-post .dtable tbody td{padding:11px 16px;text-align:right;color:var(--body);white-space:nowrap}\n.mrvin-blog-post .dtable tbody td:first-child{text-align:left;color:var(--ink);white-space:normal}\n.mrvin-blog-post .dtable tbody tr.hi td{background:#FFF8E6}\n.mrvin-blog-post .dtable tbody tr.hi td:first-child{font-weight:600}\n.mrvin-blog-post .dtable td .bar{display:block;height:5px;border-radius:3px;background:var(--border);margin-top:6px;min-width:64px}\n.mrvin-blog-post .dtable td .bar i{display:block;height:100%;border-radius:3px;background:#A9CBF0}\n.mrvin-blog-post .dtable tbody tr.hi td .bar i{background:var(--blue2)}\n.mrvin-blog-post .tnote{font-size:13px;color:var(--faint);margin:10px 2px 26px;line-height:1.5}\n.mrvin-blog-post .caveat{border-left:4px solid var(--faint);background:var(--surface2);border-radius:0 10px 10px 0;padding:14px 18px;margin:26px 0;font-size:15px;line-height:1.6;color:var(--muted)}\n.mrvin-blog-post .caveat b{color:var(--body)}\n\n\/* ---------- damage study: the two hand drawn figures ----------\n   Both are inline SVG rather than a chart library: the values never change\n   after publication, and inline SVG needs no Chart.js on a page that would\n   otherwise load none. *\/\n.mrvin-blog-post .zonefig svg{width:100%;height:auto;display:block}\n.mrvin-blog-post .chartfig{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:20px 18px 12px}\n.mrvin-blog-post .chartfig figcaption{padding:0 6px}\n.mrvin-blog-post .sev-legend{display:flex;flex-wrap:wrap;gap:8px 20px;list-style:none;margin:14px 0 0;padding:0;font-size:13px;color:var(--muted)}\n.mrvin-blog-post .sev-legend li{display:flex;align-items:center;gap:8px}\n.mrvin-blog-post .sev-legend i{width:12px;height:12px;border-radius:3px;flex:0 0 12px}\n.mrvin-blog-post .sev-legend .l1{background:var(--green)}\n.mrvin-blog-post .sev-legend .l2{background:var(--yellow)}\n.mrvin-blog-post .sev-legend .l3{background:var(--red)}\n.mrvin-blog-post .dtable tbody tr.s3 td:first-child{box-shadow:inset 3px 0 0 var(--red)}\n.mrvin-blog-post .dtable tbody tr.s2 td:first-child{box-shadow:inset 3px 0 0 var(--yellow)}\n.mrvin-blog-post .dtable tbody tr.s1 td:first-child{box-shadow:inset 3px 0 0 var(--green)}\n\/* ---------- mileage rollback study: report style mileage charts ----------\n   Drawn the way a MrVIN report draws a mileage history, so the reader\n   recognises the picture when they run their own check. *\/\n.mrvin-blog-post .rc{background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:18px;margin:14px 0 30px}\n.mrvin-blog-post .rc-meta{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;flex-wrap:wrap}\n.mrvin-blog-post .rc-title{font-size:15px;font-weight:700;color:var(--ink);margin:0}\n.mrvin-blog-post .rc-count{font-size:12px;font-weight:600;color:var(--faint);text-transform:uppercase;letter-spacing:.04em}\n.mrvin-blog-post .rc svg{width:100%;height:auto;display:block;overflow:visible}\n.mrvin-blog-post .rc-legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:14px;list-style:none;padding:0}\n.mrvin-blog-post .rc-legend li{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--muted);line-height:1.3}\n.mrvin-blog-post .rc-sw{flex-shrink:0;display:inline-block}\n.mrvin-blog-post .rc-sw.line{width:20px;height:3px;border-radius:2px;background:var(--blue2)}\n.mrvin-blog-post .rc-sw.origin{width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid var(--faint)}\n.mrvin-blog-post .rc-sw.drop{width:10px;height:10px;border-radius:50%;background:var(--red)}\n.mrvin-blog-post .rc-sw.blue{width:12px;height:12px;border-radius:3px;background:var(--blue2)}\n.mrvin-blog-post .rc-sw.grey{width:12px;height:12px;border-radius:3px;background:var(--faint)}\n.mrvin-blog-post .rc-note{font-size:12.5px;line-height:1.45;color:var(--muted);margin:8px 0 0}\n.mrvin-blog-post .rc-flag{display:flex;align-items:flex-start;gap:10px;padding:11px 14px;border-radius:12px;font-size:15px;line-height:1.5;color:var(--body);border:1px solid rgba(226,75,74,.3);background:rgba(226,75,74,.06);margin:14px 0 0}\n.mrvin-blog-post .rc-flag+.rc-flag{margin-top:8px}\n.mrvin-blog-post .rc-flag svg{width:17px;height:17px;flex-shrink:0;margin-top:3px;fill:none;stroke:var(--red)}\n.mrvin-blog-post .rc-flag strong{color:#7F1D1D;font-weight:700}\n@media(max-width:600px){\n  .mrvin-blog-post .dtable{font-size:14px}\n  .mrvin-blog-post .dtable tbody td,.mrvin-blog-post .dtable thead th{padding:10px 12px}\n}\n\/* US import series: step timeline, cost table, country navigation (2026-10) *\/\n.mrvin-blog-post ol.journey12{list-style:none;counter-reset:j;padding:0;margin:22px 0}\n.mrvin-blog-post ol.journey12>li{counter-increment:j;position:relative;padding:0 0 22px 40px;border-left:2px solid var(--border);margin:0 0 0 19px}\n.mrvin-blog-post ol.journey12>li:last-child{border-left-color:transparent;padding-bottom:4px}\n.mrvin-blog-post ol.journey12>li::before{content:counter(j);position:absolute;left:-20px;top:-2px;width:38px;height:38px;border-radius:50%;background:var(--blue);color:#fff;font-weight:700;font-size:16px;line-height:38px;text-align:center}\n.mrvin-blog-post ol.journey12>li.key::before{background:var(--green)}\n.mrvin-blog-post ol.journey12 h3{margin:4px 0 6px;font-size:19px;color:var(--ink)}\n.mrvin-blog-post ol.journey12 .when{display:inline-block;font-size:12.5px;font-weight:600;color:var(--blue2);background:var(--tint);border-radius:20px;padding:2px 10px;margin-bottom:6px}\n.mrvin-blog-post ol.journey12 p{margin:0 0 8px;font-size:16.5px;line-height:1.65}\n.mrvin-blog-post ol.journey12 ul{margin:0 0 6px;padding-left:20px;font-size:16px}\n.mrvin-blog-post ol.journey12 ul li{margin:2px 0}\n.mrvin-blog-post table.cost{font-size:16px;margin:18px 0 8px}\n.mrvin-blog-post table.cost td{padding:11px 16px;border-bottom:1px solid var(--border)!important}\n.mrvin-blog-post table.cost tr:last-child td{border-bottom:0!important}\n.mrvin-blog-post table.cost td:last-child{text-align:right;white-space:nowrap;font-weight:600;color:var(--ink)}\n.mrvin-blog-post table.cost tr.sum td{border-top:2px solid var(--ink)!important;font-weight:700;color:var(--ink)}\n.mrvin-blog-post table.cost tr.alt td{color:var(--blue2)}\n.mrvin-blog-post .tablenote{font-size:14px;color:var(--muted);margin:0 0 22px}\n.mrvin-blog-post table.uscmp{font-size:14.5px;margin:22px 0 8px}\n.mrvin-blog-post table.uscmp thead th{background:var(--surface2);color:var(--muted);font-weight:600;font-size:12px;letter-spacing:.05em;text-transform:uppercase;padding:12px 14px;text-align:left;vertical-align:bottom}\n.mrvin-blog-post table.uscmp tbody td{padding:12px 14px;text-align:left;color:var(--body);background:none;font-weight:400;vertical-align:top;line-height:1.45}\n.mrvin-blog-post table.uscmp tbody td:first-child{font-weight:600;color:var(--ink);white-space:nowrap}\n.mrvin-blog-post table.uscmp tbody td:nth-child(2){white-space:nowrap}\n.mrvin-blog-post table.usnum thead th:not(:first-child),.mrvin-blog-post table.usnum tbody td:not(:first-child){text-align:right;white-space:nowrap}\n.mrvin-blog-post table.usnum tbody td:first-child{white-space:normal}\n.mrvin-blog-post table.usnum tbody td:last-child{color:var(--blue2);font-weight:500}\n.mrvin-blog-post .tbl-scroll>table.uscmp{width:100%}\n@media (max-width:640px){.mrvin-blog-post .tbl-scroll>table.uscmp{min-width:600px}.mrvin-blog-post .tbl-scroll>table.usnum{min-width:0}}\n.mrvin-blog-post .usnav{background:var(--surface2);border:1px solid var(--border);border-radius:18px;padding:26px 26px 20px;margin:52px 0 0}\n.mrvin-blog-post .usnav h2{margin:0 0 8px;font-size:25px;text-align:left;max-width:none}\n.mrvin-blog-post .usnav-sub{color:var(--muted);font-size:15.5px;line-height:1.55;margin:0 0 18px}\n.mrvin-blog-post .usnav-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}\n.mrvin-blog-post .usnav-grid li{margin:0;padding:0}\n.mrvin-blog-post .usnav-grid a,.mrvin-blog-post .usnav-grid .cur{display:flex;flex-direction:column;gap:3px;height:100%;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:11px 14px;text-decoration:none;transition:border-color .15s,transform .15s}\n.mrvin-blog-post .usnav-grid a:hover{border-color:var(--blue2);transform:translateY(-1px);text-decoration:none}\n.mrvin-blog-post .usnav-grid .cur{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}\n.mrvin-blog-post .usnav-c{color:var(--ink);font-weight:600;font-size:15.5px}\n.mrvin-blog-post .usnav-t{color:var(--muted);font-size:13px;line-height:1.4}\n.mrvin-blog-post .usnav-hub{margin:16px 0 0;font-size:15px;font-weight:500}\n.mrvin-blog-post .sources .src-note{font-size:13.5px;color:var(--faint);margin:14px 0 0}\n@media(prefers-reduced-motion:reduce){.mrvin-blog-post .reveal{opacity:1!important;transform:none!important}html{scroll-behavior:auto}}\n<\/style>\n<noscript><style>.mrvin-blog-post .reveal{opacity:1!important;transform:none!important}<\/style><\/noscript>\t<div class=\"mrvin-blog-post mrvin-blog-where-to-find-vin-number\">\n\t\t<div class=\"progress\" id=\"mrvin-blog-progress\"><\/div>\n\t\t<button class=\"totop\" id=\"mrvin-blog-totop\" type=\"button\" aria-label=\"Back to top\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 19V5\"\/><path d=\"M6 11l6-6 6 6\"\/><\/svg><\/button>\n\t\t<div class=\"layout\">\n\t\t\t\t\t<aside class=\"toc-side\">\n\t\t\t<nav class=\"toc\" aria-label=\"Inhoudsopgave\">\n\t\t\t\t<p class=\"toc-h\">In dit artikel<\/p>\n\t\t\t\t<ol>\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#papers\">Het chassisnummer op uw kentekencard<\/a><\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#car\">Het chassisnummer op de auto<\/a><\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#match\">Komen alle VIN&#039;s overeen?<\/a><\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#read\">Zo leest u de 17 tekens van het chassisnummer<\/a><\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#catch\">Twee dingen waar mensen over struikelen<\/a><\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#tells\">Wat een VIN u wel en niet vertelt<\/a><\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#seller\">Als de verkoper het VIN niet geeft<\/a><\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#faq\">Veelgestelde vragen<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<\/ol>\n\t\t\t<\/nav>\n\t\t\t<div class=\"side-cta\">\n\t\t\t\t<p class=\"sc-h\">Gevonden? Bekijk wat er bekend is<\/p>\n\t\t\t\t<a href=\"#vincheck\" data-go=\"vincheck\"><span class=\"sc-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"10.5\" cy=\"10.5\" r=\"7\"\/><path d=\"m7.6 10.6 2.1 2.1 3.9-4.3\"\/><path d=\"m15.6 15.6 4.4 4.4\"\/><\/svg><\/span><span>Check nu een auto<span class=\"sc-geo\">Resultaat binnen een minuut<\/span><\/span><\/a>\n\t\t\t<\/div>\n\t\t<\/aside>\n\n\t\t<article class=\"wrap content\">\n\n\t\t\t<div class=\"badges\">\n\t\t\t\t\t\t\t\t\t<span class=\"badge\">Gids<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"badge\">VIN<\/span>\n\t\t\t\t\t\t\t\t<span class=\"date\">2 november 2026<\/span>\n\t\t\t\t<span class=\"dot\">&middot;<\/span>\n\t\t\t\t<span class=\"meta-extra\" id=\"mrvin-blog-readtime\">8 min leestijd<\/span>\n\t\t\t<\/div>\n\n\t\t\t<h1>Waar staat het chassisnummer op uw auto en op uw kentekencard, en hoe leest u het<\/h1>\n\n\t\t\t<p class=\"dek\">Op een moderne kentekencard staat het VIN in veld E. Op de auto staat het op meerdere plekken, en het nuttige is te controleren of ze allemaal overeenkomen.<\/p>\n\n\t\t\t\t\t<div class=\"byline\">\n\t\t\t<img decoding=\"async\" class=\"avatar\" src=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/blog\/anna-avatar.webp\" width=\"42\" height=\"42\" alt=\"\">\t\t\t<div>\n\t\t\t\t<div class=\"name\">Anna<\/div>\n\t\t\t\t<div class=\"role\">Onderzoek naar voertuiggeschiedenis<\/div>\n\t\t\t<\/div>\n\t\t\t<div class=\"share\">\n\t\t\t\t<a id=\"mrvin-blog-sh-x\" href=\"#\" target=\"_blank\" rel=\"noopener\" aria-label=\"Delen op X\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"\/><\/svg><\/a>\n\t\t\t\t<a id=\"mrvin-blog-sh-li\" href=\"#\" target=\"_blank\" rel=\"noopener\" aria-label=\"Delen op LinkedIn\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M4.98 3.5C4.98 4.88 3.87 6 2.5 6S0 4.88 0 3.5 1.12 1 2.5 1 4.98 2.12 4.98 3.5zM0 8h5v16H0zM7.5 8h4.78v2.2h.07c.67-1.2 2.3-2.46 4.73-2.46 5.06 0 6 3.33 6 7.66V24h-5v-6.78c0-1.62-.03-3.7-2.25-3.7-2.26 0-2.6 1.76-2.6 3.58V24h-5z\"\/><\/svg><\/a>\n\t\t\t\t<a id=\"mrvin-blog-sh-fb\" href=\"#\" target=\"_blank\" rel=\"noopener\" aria-label=\"Delen op Facebook\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M24 12.07C24 5.4 18.63 0 12 0S0 5.4 0 12.07c0 6.02 4.39 11.01 10.13 11.93v-8.44H7.08v-3.49h3.05V9.41c0-3.02 1.79-4.69 4.53-4.69 1.31 0 2.68.24 2.68.24v2.97h-1.51c-1.49 0-1.95.93-1.95 1.88v2.26h3.32l-.53 3.49h-2.79v8.44C19.61 23.08 24 18.09 24 12.07z\"\/><\/svg><\/a>\n\t\t\t\t<button id=\"mrvin-blog-sh-copy\" type=\"button\" aria-label=\"Link kopi\u00ebren\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9.5 14.5l5-5\"\/><path d=\"M11 6.5l.7-.7a3.5 3.5 0 015 5l-2.2 2.2\"\/><path d=\"M13 17.5l-.7.7a3.5 3.5 0 01-5-5l2.2-2.2\"\/><\/svg><\/button>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\n\t\t\t\t\t<picture>\n\t\t\t<source media=\"(prefers-reduced-motion: reduce)\" srcset=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/blog\/where-to-find-vin\/vin-hero-poster.webp\">\n\t\t\t<img fetchpriority=\"high\" decoding=\"async\" class=\"cover\" src=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/blog\/where-to-find-vin\/vin-hero.webp\" width=\"1200\" height=\"600\" alt=\"De MrVIN-beer leest een VIN door een vergrootglas onderaan de voorruit van een auto\">\n\t\t<\/picture>\n\t\t\t\t\t<p class=\"cover-cap\">Het VIN staat op de auto en op de papieren. Lees beide.<\/p>\n\n\t\t\t<p class=\"lead\">De meeste mensen zoeken het VIN op omdat een verzekeraar of een onderdelenwinkel erom vraagt.<\/p>\n\t\t\t<p>Het vinden kost een minuut. Gaat u de auto kopen, dan telt waar u het hebt gevonden net zo zwaar als wat er staat.<\/p>\n\n\t\t\t<div class=\"tldr\">\n\t\t\t\t<p class=\"eyebrow\">In het kort<\/p>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>Op een moderne kentekencard staat het VIN in veld E. Die code gebruiken de EU-regels in elke lidstaat.<\/li>\n\t\t\t\t\t<li>Begin op de auto bij het plaatje onderaan de voorruit, kijk dan bij de deurstijl en daarna naar het nummer dat in de carrosserie is geslagen.<\/li>\n\t\t\t\t\t<li>Een VIN heeft 17 tekens en bevat nooit de letters I, O of Q.<\/li>\n\t\t\t\t\t<li>Elke kopie van het VIN moet identiek zijn. Wijkt er een af, laat het dan door de RDW controleren voordat u betaalt.<\/li>\n\t\t\t\t\t<li>Het VIN zegt wat de auto is. Een geschiedenisrapport zegt wat ermee is gebeurd.<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t<div class=\"summary-stats\">\n\t\t\t\t\t<div><span class=\"snum\">17<\/span><span class=\"slbl\">tekens in een standaard VIN<\/span><\/div>\n\t\t\t\t\t<div><span class=\"snum\">E<\/span><span class=\"slbl\">het veld waarin het staat op EU-kentekenbewijzen<\/span><\/div>\n\t\t\t\t\t<div><span class=\"snum\">3<\/span><span class=\"slbl\">kopie\u00ebn om te vergelijken voor u koopt: papieren, voorruit en carrosserie<\/span><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<p class=\"jumpline\">Direct naar: <a href=\"#papers\">uw papieren<\/a>, <a href=\"#car\">de auto<\/a>, <a href=\"#match\">komen ze overeen<\/a> en <a href=\"#vincheck\">een VIN controleren<\/a><\/p>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"mbar-trigger\" aria-hidden=\"true\"><\/div>\n\n\t\t\t\t\t<div class=\"promo-vin pv-compact\" id=\"vincheck\">\n\t\t\t<div class=\"pv-head\">\n\t\t\t\t<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/blog\/vin-check-bear.webp\" width=\"1584\" height=\"672\" alt=\"De MrVIN-beer bekijkt een voertuiggeschiedenisrapport\" loading=\"lazy\">\n\t\t\t\t<div class=\"pv-body\">\n\t\t\t\t\t<p class=\"pv-h\">Gevonden? Bekijk wat er bekend is<\/p>\n\t\t\t\t\t<p>Voer de 17 tekens in, of fotografeer het VIN met uw telefoon, dan lezen wij het voor u.<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t<style>\n\/* Country tile \u2014 anchored on the left of the input on every viewport *\/\n.mrvin-country{position:relative;flex:0 0 auto;display:none}\n.mrvin-country.is-active{display:block}\n.mrvin-country-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;width:54px;height:54px;border:none;border-radius:10px;background:#003399;color:#FFF;cursor:pointer;padding:6px 4px;gap:2px;font-family:inherit;line-height:1;transition:transform .15s ease,box-shadow .15s ease}\n.mrvin-country-tile:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(0,51,153,.25)}\n.mrvin-country-tile-stars{display:block;width:22px;height:22px}\n.mrvin-country-tile-code{font-size:13px;font-weight:700;letter-spacing:.3px;color:#FFF;font-family:'DM Sans',-apple-system,sans-serif}\n.mrvin-country-tile.is-empty .mrvin-country-tile-code{font-size:18px;color:#FFEB30}\n\n\/* Dropdown is portaled to <body> on open and positioned with position:fixed,\n   so no ancestor's overflow:hidden \/ transform creates a containing block\n   that clips it. JS sets top\/left from the tile's bounding rect. *\/\n.mrvin-country-dropdown{position:fixed;top:0;left:0;background:#FFF;border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.16);padding:6px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .18s ease,visibility .18s ease,transform .18s ease;z-index:99999;min-width:260px;max-height:340px;display:flex;flex-direction:column;font-family:'DM Sans',-apple-system,BlinkMacSystemFont,sans-serif}\n.mrvin-country-dropdown.is-open{opacity:1;visibility:visible;transform:translateY(0)}\n.mrvin-country-search-wrap{display:flex;align-items:center;gap:6px;margin:4px 4px 6px;padding:0 10px;border:1px solid #E2E8F0;border-radius:6px;background:#F8FAFC;flex:none;transition:border-color .15s ease,background .15s ease}\n.mrvin-country-search-wrap:focus-within{border-color:#2563EB;background:#FFF}\n.mrvin-country-search-icon{flex:none;width:12px;height:12px;background:url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'\/><line x1='20' y1='20' x2='16.65' y2='16.65'\/><\/svg>\") center\/contain no-repeat;pointer-events:none}\n.mrvin-country-dropdown input.mrvin-country-search,.mrvin-country-dropdown input.mrvin-country-search:focus,.mrvin-country-dropdown input.mrvin-country-search:hover{flex:1 1 auto;min-width:0;width:100%;border:none!important;outline:none!important;background:transparent!important;background-color:transparent!important;box-shadow:none!important;-webkit-box-shadow:none!important;-webkit-appearance:none!important;appearance:none!important;padding:6px 0!important;margin:0!important;height:auto!important;font-size:12px;font-family:inherit;color:#0B1120;line-height:normal}\n.mrvin-country-dropdown input.mrvin-country-search::placeholder{color:#94A3B8}\n.mrvin-country-options{flex:1;overflow-y:auto;padding:4px 2px}\n.mrvin-country-option{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:8px;border:none;background:transparent;font-family:inherit;font-size:13px;color:#475569;cursor:pointer;text-align:left}\n.mrvin-country-option:hover{background:#F1F5F9}\n.mrvin-country-option.is-selected{background:#EFF6FF;color:#2563EB;font-weight:600}\n.mrvin-country-option.is-hidden{display:none}\n.mrvin-country-option-flag{flex:none;display:flex;align-items:center;justify-content:center;width:28px;height:20px;border-radius:3px;background:#003399}\n.mrvin-country-option-flag svg{width:14px;height:14px}\n.mrvin-country-option-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.mrvin-country-option-code{font-size:11px;font-weight:700;color:#94A3B8;letter-spacing:.3px}\n.mrvin-country-option.is-selected .mrvin-country-option-code{color:#2563EB}\n.mrvin-country-empty{padding:14px 12px;font-size:12px;color:#94A3B8;text-align:center;display:none}\n.mrvin-country-empty.is-visible{display:block}\n.mrvin-country-error{display:none;text-align:left;font-size:12px;color:#DC2626;margin:8px 4px 0}\n.mrvin-country-error.is-visible{display:block}\n.mrvin-vin-note{display:none;text-align:left;font-size:12px;color:#DC2626;margin:8px 4px 0}\n.mrvin-vin-note.is-visible{display:block}\n.mrvin-vin-note.is-ok{display:block;color:#0BA800}\n.mrvin-vin-bypass{display:none;margin:6px 4px 0;padding:0;background:none;border:none;color:#003399;font-size:12px;font-weight:600;text-decoration:underline;cursor:pointer;font-family:inherit}\n.mrvin-vin-bypass.is-visible{display:inline-block}\n.mrvin-search-input.mrvin-error,.mrvin-cta-input.mrvin-error{outline:2px solid #DC2626;outline-offset:1px}\n\n\/* Mobile: keep tile + input side-by-side, button breaks to its own row.\n   Overrides the row\u2192column flex switch in the existing form CSS. *\/\n@media(max-width:767px){\n  .mrvin-country-tile{width:48px;height:48px}\n  .mrvin-country-dropdown{min-width:0;width:calc(100vw - 24px);max-width:340px;max-height:60vh}\n  \/* 16px on any focusable text field: iOS Safari auto-zooms the page when a\n     focused input's font-size is below 16px *\/\n  .mrvin-country-dropdown input.mrvin-country-search{font-size:16px}\n  .mrvin-search-row,.mrvin-cta-row{flex-direction:row!important;flex-wrap:wrap;align-items:center}\n  .mrvin-search-row .mrvin-country,.mrvin-cta-row .mrvin-country{order:0}\n  .mrvin-search-box input.mrvin-search-input,.mrvin-cta .mrvin-cta-search-box input.mrvin-cta-input{flex:1 1 0;min-width:0;order:1;text-align:left}\n  .mrvin-search-btn,.mrvin-cta .mrvin-cta-btn{flex:0 0 100%;width:100%;order:2}\n}\n<\/style>\n<svg width=\"0\" height=\"0\" style=\"position:absolute\" aria-hidden=\"true\">\n  <symbol id=\"mrvin-eu-stars\" viewBox=\"0 0 24 24\">\n    <g fill=\"#FFEB30\">\n      <circle cx=\"12\" cy=\"5\" r=\"1.1\"\/>\n      <circle cx=\"15.5\" cy=\"5.94\" r=\"1.1\"\/>\n      <circle cx=\"18.06\" cy=\"8.5\" r=\"1.1\"\/>\n      <circle cx=\"19\" cy=\"12\" r=\"1.1\"\/>\n      <circle cx=\"18.06\" cy=\"15.5\" r=\"1.1\"\/>\n      <circle cx=\"15.5\" cy=\"18.06\" r=\"1.1\"\/>\n      <circle cx=\"12\" cy=\"19\" r=\"1.1\"\/>\n      <circle cx=\"8.5\" cy=\"18.06\" r=\"1.1\"\/>\n      <circle cx=\"5.94\" cy=\"15.5\" r=\"1.1\"\/>\n      <circle cx=\"5\" cy=\"12\" r=\"1.1\"\/>\n      <circle cx=\"5.94\" cy=\"8.5\" r=\"1.1\"\/>\n      <circle cx=\"8.5\" cy=\"5.94\" r=\"1.1\"\/>\n    <\/g>\n  <\/symbol>\n  <!-- Union Jack for GB plates. Post-Brexit UK plates keep the blue band but carry the national\n       flag and \"GB\" instead of the EU circle of stars. 3:2 viewBox so it letterboxes neatly inside\n       the same square slot the stars use (preserveAspectRatio defaults to meet). Diagonals are\n       drawn full-bleed and clipped by the viewport, white beneath red, then the St George cross\n       on top \u2014 the standard layer order. -->\n  <symbol id=\"mrvin-gb-flag\" viewBox=\"0 0 24 16\">\n    <rect width=\"24\" height=\"16\" fill=\"#012169\"\/>\n    <path d=\"M0 0 L24 16 M24 0 L0 16\" stroke=\"#FFF\" stroke-width=\"3.2\"\/>\n    <path d=\"M0 0 L24 16 M24 0 L0 16\" stroke=\"#C8102E\" stroke-width=\"1.8\"\/>\n    <path d=\"M12 0 V16 M0 8 H24\" stroke=\"#FFF\" stroke-width=\"5.2\"\/>\n    <path d=\"M12 0 V16 M0 8 H24\" stroke=\"#C8102E\" stroke-width=\"3.1\"\/>\n  <\/symbol>\n<\/svg>\n<script>\nwindow.mrvinCountries = [{\"iso\":\"AT\",\"plate\":\"A\",\"name\":\"Oostenrijk\",\"ph\":\"W-1234 AB\"},{\"iso\":\"BE\",\"plate\":\"B\",\"name\":\"Belgi\\u00eb\",\"ph\":\"1-ABC-123\"},{\"iso\":\"BG\",\"plate\":\"BG\",\"name\":\"Bulgarije\",\"ph\":\"A 1234 BC\"},{\"iso\":\"CY\",\"plate\":\"CY\",\"name\":\"Cyprus\",\"ph\":\"ABC 123\"},{\"iso\":\"CZ\",\"plate\":\"CZ\",\"name\":\"Tsjechi\\u00eb\",\"ph\":\"1A2 3456\"},{\"iso\":\"DE\",\"plate\":\"D\",\"name\":\"Duitsland\",\"ph\":\"B-AB 1234\"},{\"iso\":\"DK\",\"plate\":\"DK\",\"name\":\"Denemarken\",\"ph\":\"AB 12 345\"},{\"iso\":\"EE\",\"plate\":\"EST\",\"name\":\"Estland\",\"ph\":\"123 ABC\"},{\"iso\":\"ES\",\"plate\":\"E\",\"name\":\"Spanje\",\"ph\":\"1234 ABC\"},{\"iso\":\"FI\",\"plate\":\"FIN\",\"name\":\"Finland\",\"ph\":\"ABC-123\"},{\"iso\":\"FR\",\"plate\":\"F\",\"name\":\"Frankrijk\",\"ph\":\"AB-123-CD\"},{\"iso\":\"GB\",\"plate\":\"GB\",\"name\":\"Verenigd Koninkrijk\",\"ph\":\"AB12 CDE\"},{\"iso\":\"GR\",\"plate\":\"GR\",\"name\":\"Griekenland\",\"ph\":\"ABC 1234\"},{\"iso\":\"HU\",\"plate\":\"H\",\"name\":\"Hongarije\",\"ph\":\"ABC-123\"},{\"iso\":\"IE\",\"plate\":\"IRL\",\"name\":\"Ierland\",\"ph\":\"12 D 1234\"},{\"iso\":\"IT\",\"plate\":\"I\",\"name\":\"Itali\\u00eb\",\"ph\":\"AB 123 CD\"},{\"iso\":\"LT\",\"plate\":\"LT\",\"name\":\"Litouwen\",\"ph\":\"ABC 123\"},{\"iso\":\"LU\",\"plate\":\"L\",\"name\":\"Luxemburg\",\"ph\":\"AB 1234\"},{\"iso\":\"LV\",\"plate\":\"LV\",\"name\":\"Letland\",\"ph\":\"AB-1234\"},{\"iso\":\"MT\",\"plate\":\"M\",\"name\":\"Malta\",\"ph\":\"ABC 123\"},{\"iso\":\"NL\",\"plate\":\"NL\",\"name\":\"Nederland\",\"ph\":\"12-AB-34\"},{\"iso\":\"PL\",\"plate\":\"PL\",\"name\":\"Polen\",\"ph\":\"WA 12345\"},{\"iso\":\"PT\",\"plate\":\"P\",\"name\":\"Portugal\",\"ph\":\"12-AB-34\"},{\"iso\":\"RO\",\"plate\":\"RO\",\"name\":\"Roemeni\\u00eb\",\"ph\":\"B 12 ABC\"},{\"iso\":\"SE\",\"plate\":\"S\",\"name\":\"Zweden\",\"ph\":\"ABC 123\"},{\"iso\":\"SI\",\"plate\":\"SLO\",\"name\":\"Sloveni\\u00eb\",\"ph\":\"LJ AB-123\"},{\"iso\":\"SK\",\"plate\":\"SK\",\"name\":\"Slowakije\",\"ph\":\"BA 123 AB\"}];\nwindow.mrvinPlateCountries = [\"ES\",\"FR\",\"GB\",\"IT\",\"LV\",\"PL\"];\nwindow.mrvinPlateIntentUrl = \"https:\\\/\\\/www.mrvin.com\\\/wp-admin\\\/admin-ajax.php\";\nwindow.mrvinCountryStrings = {\"select\":\"Selecteer land\",\"pick\":\"Selecteer eerst een land\",\"genericPh\":\"Voer het kenteken in\",\"plateUnsupported\":\"Het opzoeken van kentekens wordt in %country% nog niet ondersteund. Gebruik het VIN-nummer voor een nauwkeuriger rapport. \",\"plateUnsupportedOk\":\"OK\",\"vinErrEmpty\":\"Voer een VIN-nummer in.\",\"vinErrLength\":\"Een VIN moet precies 17 tekens lang zijn.\",\"vinErrChars\":\"Een VIN mag de letters I, O of Q niet bevatten.\",\"vinErrInvalid\":\"Dit chassisnummer lijkt niet te kloppen. Controleer het nog eens. \",\"vinErrBypass\":\"Weet je zeker dat het klopt? Zoek toch maar even. \",\"vinOk\":\"Het VIN-nummer ziet er goed uit\",\"plateErrEmpty\":\"Voer een kenteken in.\",\"plateErrLength\":\"Dat kenteken lijkt te kort of te lang.\",\"plateErrGb\":\"Dat lijkt niet op een Brits kenteken \\u2014 die zien er normaal gesproken uit als AB12 CDE.\",\"plateErrBe\":\"This looks like a Belgian number plate. Belgian plates cannot be checked here. Please use the VIN for a more accurate report.\",\"plateErrBypass\":\"Weet je zeker dat het klopt? Zoek maar gewoon. \",\"plateSeriesPT\":\"Number-plate lookups in Portugal currently work only for plates in the 12-AB-34 format, issued between 2005 and 2020. For any other Portuguese plate, please use the VIN for an accurate report.\"};\n(function(){\n  var SS_KEY = 'mrvinPlateCountryIso';\n  var BY_ISO = {};\n  (window.mrvinCountries||[]).forEach(function(c){BY_ISO[c.iso]=c});\n\n  \/\/ Per-brand active plate countries (ISO-2) from the API. Picking a country NOT in this set\n  \/\/ shows a popup steering the user to the VIN instead of a doomed plate lookup.\n  var ACTIVE_PLATE = {};\n  (window.mrvinPlateCountries||[]).forEach(function(iso){ ACTIVE_PLATE[String(iso).toUpperCase()] = true; });\n  function isPlateCountryActive(iso){ return !!ACTIVE_PLATE[String(iso||'').toUpperCase()]; }\n\n  \/\/ Countries that are ACTIVE but resolve only some of their registration series. Portugal is the\n  \/\/ only one: its 2005-2020 series (12-AB-34) resolves, while the pre-1992, 1992-2005 and current\n  \/\/ post-March-2020 series are all refused on format upstream, unbilled and unanswerable.\n  \/\/\n  \/\/ This mirrors PlateNormalizer.CIVILIAN_FORMATS' PT entry on purpose. The SERVER is the authority\n  \/\/ \u2014 WebVehicleServiceImpl.getPlatePreview refuses the same shapes at the one door every plate\n  \/\/ lookup passes through, so editing or disabling this JS changes nothing about what gets called.\n  \/\/ Keeping a copy here is only so the visitor is told immediately, in their own language, instead\n  \/\/ of watching a search fail.\n  var SERIES_LIMITED = { PT: \/^[0-9]{2}[A-Z]{2}[0-9]{2}$\/ };\n  function seriesSupported(iso, raw){\n    var re = SERIES_LIMITED[String(iso||'').toUpperCase()];\n    if (!re) return true;\n    return re.test(String(raw||'').toUpperCase().replace(\/[^A-Z0-9]\/g, ''));\n  }\n  function seriesMessage(iso){\n    var s = window.mrvinCountryStrings || {};\n    return String(iso||'').toUpperCase() === 'PT' ? s.plateSeriesPT : null;\n  }\n\n  \/\/ Fire-and-forget demand tracking: which plate countries visitors try, and plate-mode entry.\n  \/\/ The server (vp_plate_intent) computes the enabled flag + upserts a counter. Never blocks UI.\n  function trackPlateIntent(key){\n    try {\n      var url = window.mrvinPlateIntentUrl;\n      if (!url || !key) return;\n      var fd = new FormData();\n      fd.append('action', 'vp_plate_intent');\n      fd.append('intent', key);\n      if (navigator.sendBeacon) navigator.sendBeacon(url, fd);\n      else fetch(url, { method: 'POST', body: fd, keepalive: true, credentials: 'same-origin' });\n    } catch (e) {}\n  }\n\n  \/\/ Funnel-top counter: fire once per real (validated) lookup submit, just before\n  \/\/ the GET navigation to \/checkout\/. Server (vp_search_event) bumps a daily counter\n  \/\/ by mode + AB variant. sendBeacon survives the navigation; never blocks it.\n  function trackSearchSubmit(mode){\n    try {\n      var url = window.mrvinPlateIntentUrl; \/\/ shared admin-ajax endpoint\n      if (!url) return;\n      var fd = new FormData();\n      fd.append('action', 'vp_search_event');\n      fd.append('mode', mode === 'plate' ? 'plate' : 'vin');\n      if (navigator.sendBeacon) navigator.sendBeacon(url, fd);\n      else fetch(url, { method: 'POST', body: fd, keepalive: true, credentials: 'same-origin' });\n    } catch (e) {}\n  }\n  \/\/ One delegated listener in the bubble phase, so it runs AFTER each box's own\n  \/\/ validation handler: e.defaultPrevented is true when validation blocked the\n  \/\/ submit, so we only count searches that actually navigate. Covers the hero,\n  \/\/ bottom-CTA and sticky forms (all carry .mrvin-search-row \/ .mrvin-cta-row).\n  document.addEventListener('submit', function(e){\n    var f = e.target;\n    if (!f || !f.classList || e.defaultPrevented) return;\n    if (!f.classList.contains('mrvin-search-row') && !f.classList.contains('mrvin-cta-row')) return;\n    var plate = f.querySelector('input[name=\"plate\"]');\n    trackSearchSubmit(plate ? 'plate' : 'vin');\n  }, false);\n\n  \/\/ Switch a search box to VIN mode by clicking its VIN tab \u2014 this fires the box's own mode\n  \/\/ handler (updates input name\/placeholder\/maxlength\/button + hides the country tile).\n  function selectVinMode(box){\n    var v = box && box.querySelector('[data-mode=\"vin\"]');\n    if (v) v.click();\n  }\n\n  \/\/ A pasted VIN must never be submitted as a plate.\n  \/\/\n  \/\/ The plate field caps its length, so pasting a 17-character VIN used to leave a TRUNCATED\n  \/\/ fragment sitting in the box, which looks like a plate, submits like a plate, and costs a\n  \/\/ metered registry call that cannot possibly match. Every plate lookup of 14-15 characters ever\n  \/\/ recorded was this, and not one resolved. Reacting on `paste` is what makes it fixable: the\n  \/\/ clipboard text is readable here in full, BEFORE maxlength truncates it, so the VIN can be kept\n  \/\/ whole instead of being repaired after the damage.\n  \/\/\n  \/\/ Delegated at the document rather than bound per box: there are three search boxes (hero CTA,\n  \/\/ section, sticky) each initialised in its own script block, and a future fourth would silently\n  \/\/ miss a per-box binding. The flag is because this snippet is not the only one that renders a\n  \/\/ plate box \u2014 the v2 landing page and the blog rail ship their own copy \u2014 so whichever loads\n  \/\/ first wins and the rest no-op. 17 alphanumerics is the VIN's own definition, so this cannot\n  \/\/ misfire on a real registration \u2014 the longest that has ever resolved is 8 characters.\n  if (!window.__mrvinPlatePasteGuard) {\n   window.__mrvinPlatePasteGuard = 1;\n   document.addEventListener('paste', function(e){\n    var input = e.target;\n    if (!input || input.tagName !== 'INPUT') return;\n      if (input.name !== 'plate' && input.name !== 'userPlate') return;  \/\/ funnel names it userPlate\n    var box = input.closest('.mrvin-search-box, .mrvin-cta, .mrvin-sticky-wrap, form');\n    if (!box) return;\n    var cb = e.clipboardData || window.clipboardData;\n    if (!cb) return;\n    var raw = String(cb.getData('text') || '').toUpperCase().replace(\/[^A-Z0-9]\/g, '');\n    if (raw.length !== 17) return;                      \/\/ not a VIN \u2014 let the paste through\n    e.preventDefault();\n    selectVinMode(box);                                 \/\/ flips name\/placeholder\/maxlength\/button\n    input.value = raw;\n    input.dispatchEvent(new Event('input', { bubbles: true }));\n   }, false);\n  }\n\n  \/\/ msgOverride lets a served country reuse this dialog to say something more specific \u2014 today\n  \/\/ only Portugal, whose plates resolve for one registration series and not the rest. The OK button\n  \/\/ switches the box to VIN mode either way, which is the whole point of showing it.\n  function showPlateUnsupported(iso, box, msgOverride){\n    if (document.getElementById('mrvin-plate-unsupported')) return; \/\/ already open\n    var c = BY_ISO[iso] || null;\n    var name = c ? c.name : iso;\n    var strings = window.mrvinCountryStrings || {};\n    var tmpl = msgOverride || strings.plateUnsupported\n      || 'Number-plate lookups aren\\'t supported in %country% yet. Please use the VIN for a more accurate report.';\n    var overlay = document.createElement('div');\n    overlay.id = 'mrvin-plate-unsupported';\n    overlay.setAttribute('role', 'dialog');\n    overlay.setAttribute('aria-modal', 'true');\n    overlay.style.cssText = 'position:fixed;inset:0;z-index:99999;background:rgba(0,12,40,.55);display:flex;align-items:center;justify-content:center;padding:20px';\n    var card = document.createElement('div');\n    card.style.cssText = 'max-width:420px;width:100%;background:#fff;border-radius:14px;padding:24px;box-shadow:0 18px 50px rgba(0,12,40,.35);font-family:inherit;text-align:center';\n    var p = document.createElement('p');\n    p.style.cssText = 'margin:0 0 18px;color:#0b1f3a;font-size:15px;line-height:1.5';\n    p.textContent = tmpl.replace('%country%', name);\n    var btn = document.createElement('button');\n    btn.type = 'button';\n    btn.textContent = strings.plateUnsupportedOk || 'OK';\n    btn.style.cssText = 'border:none;border-radius:10px;background:#003399;color:#fff;font-weight:700;font-size:14px;padding:10px 28px;cursor:pointer;font-family:inherit';\n    function close(){ if (overlay.parentNode) overlay.parentNode.removeChild(overlay); }\n    \/\/ OK confirms the suggestion: switch to VIN mode, then close.\n    btn.addEventListener('click', function(){ selectVinMode(box); close(); });\n    overlay.addEventListener('click', function(e){ if (e.target === overlay) close(); });\n    document.addEventListener('keydown', function onEsc(e){ if (e.key === 'Escape'){ close(); document.removeEventListener('keydown', onEsc); } });\n    card.appendChild(p); card.appendChild(btn); overlay.appendChild(card);\n    document.body.appendChild(overlay);\n    btn.focus();\n  }\n\n  function readStored(){\n    try { return sessionStorage.getItem(SS_KEY) || ''; }\n    catch(e){ return ''; }\n  }\n  function writeStored(iso){\n    try { iso ? sessionStorage.setItem(SS_KEY, iso) : sessionStorage.removeItem(SS_KEY); }\n    catch(e){ \/* private mode etc *\/ }\n  }\n  function isPlateMode(box){\n    var t = box && box.querySelector('[data-mode=\"plate\"]');\n    return !!(t && t.classList.contains('active'));\n  }\n  function findInput(scope){\n    return scope.querySelector('.mrvin-search-input,.mrvin-cta-input');\n  }\n  function findForm(scope){\n    return scope.querySelector('.mrvin-search-row,.mrvin-cta-row');\n  }\n  function findHiddenIso(form){\n    return form && form.querySelector('input[name=\"country_iso\"]');\n  }\n\n  \/\/ ---- VIN validation (mirrors vinscreener) ------------------------------------------------\n  \/\/ Exactly 17 chars after stripping separators. North-American VINs (first char 1-5) get full\n  \/\/ ISO check-digit validation; European \/ other VINs only need a valid 17-char charset (they\n  \/\/ don't carry a check digit). Returns {valid:true} or {valid:false, reason, error}.\n  var VIN_TRANSLIT = {A:1,B:2,C:3,D:4,E:5,F:6,G:7,H:8,J:1,K:2,L:3,M:4,N:5,P:7,R:9,S:2,T:3,U:4,V:5,W:6,X:7,Y:8,Z:9,'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9};\n  var VIN_WEIGHTS = [8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2];\n  function vinStr(k, fallback){ var s = window.mrvinCountryStrings || {}; return s[k] || fallback; }\n  function validateVin(raw){\n    var vin = String(raw || '').toUpperCase().replace(\/[^A-Z0-9]\/g, '');\n    if (vin.length !== 17) return { valid:false, reason:'length', error: vinStr('vinErrLength', 'A VIN must be exactly 17 characters.') };\n    if (\/[IOQ]\/.test(vin))  return { valid:false, reason:'chars',  error: vinStr('vinErrChars',  'A VIN cannot contain the letters I, O or Q.') };\n    if (!\/^[A-HJ-NPR-Z0-9]{17}$\/.test(vin)) return { valid:false, reason:'chars', error: vinStr('vinErrInvalid', 'This VIN doesn\\'t look right. Please double-check it.') };\n    \/\/ North-American check digit (position 9). EU \/ other VINs skip it.\n    if (\/^[1-5]\/.test(vin)) {\n      var sum = 0;\n      for (var i = 0; i < 17; i++) {\n        var val = VIN_TRANSLIT[vin.charAt(i)];\n        if (val === undefined) return { valid:false, reason:'chars', error: vinStr('vinErrInvalid', 'This VIN doesn\\'t look right. Please double-check it.') };\n        sum += val * VIN_WEIGHTS[i];\n      }\n      var rem = sum % 11, expected = rem === 10 ? 'X' : String(rem);\n      if (vin.charAt(8) !== expected) return { valid:false, reason:'check_digit', error: vinStr('vinErrInvalid', 'This VIN doesn\\'t look right. Please double-check it.') };\n    }\n    return { valid:true };\n  }\n\n  \/\/ Sanity-check a number plate. Deliberately LENIENT, and nothing here is authoritative \u2014 the\n  \/\/ caller offers a \"search anyway\" bypass exactly as the VIN path does.\n  \/\/\n  \/\/ We do NOT match the standard UK shapes (AA00AAA \/ A000AAA \/ AAA000A \/ dateless \/ NI). Cherished\n  \/\/ and personalised registrations legitimately take forms those patterns don't describe, and\n  \/\/ wrongly turning away a real customer's plate is far worse than passing a doomed lookup to the\n  \/\/ API \u2014 which costs nothing anyway, since the registry rejects a malformed term unbilled.\n  \/\/ So this only catches input that cannot be a registration at all: wrong length, or \u2014 for GB \u2014\n  \/\/ no digit anywhere. Every UK registration format issued to date contains at least one digit,\n  \/\/ which is what separates a typo like \"IIYUN\" from a genuine cherished plate.\n  function validatePlate(raw, iso){\n    var p = String(raw || '').toUpperCase().replace(\/[^A-Z0-9]\/g, '');\n    if (!p)                      return { valid:false, error: vinStr('plateErrEmpty',  'Please enter a number plate.') };\n    if (p.length < 2 || p.length > 8) return { valid:false, error: vinStr('plateErrLength', 'That number plate looks too short or too long.') };\n    if (String(iso || '').toUpperCase() === 'GB' && !\/[0-9]\/.test(p)) {\n      return { valid:false, error: vinStr('plateErrGb', 'That doesn\\'t look like a UK number plate \u2014 they normally look like AB12 CDE.') };\n    }\n    \/\/ Belgium's current series is 1-ABC-123, which compacts to the same 1+3+3 spelling a\n    \/\/ long-tail French FNI plate can take. Scoped to FR because that is the only market whose\n    \/\/ spelling collides; on IT and ES the shape means nothing, so a plain miss is already honest.\n    \/\/\n    \/\/ Belgium is not a plate market and is not one call away from becoming one: Belgian plates\n    \/\/ follow the OWNER, not the car, so the plate on a car for sale leaves with the seller and\n    \/\/ the registry is closed to us anyway. Measured 2026-08-24 over 30 days: 39 Belgian visitors\n    \/\/ typed exactly this shape into the French box and NOT ONE resolved; 0 for 31 across all\n    \/\/ traffic. Sending it costs a metered call and an ~8s wait to reach \"not found\".\n    \/\/\n    \/\/ Lenient like everything else here: the \"search anyway\" bypass still lets a genuine FNI\n    \/\/ holder through, which is why this is advice rather than a format verdict.\n    if (String(iso || '').toUpperCase() === 'FR' && \/^[0-9][A-Z]{3}[0-9]{3}$\/.test(p)) {\n      return { valid:false, error: vinStr('plateErrBe', 'This looks like a Belgian number plate. Belgian plates cannot be checked here. Please use the VIN for a more accurate report.') };\n    }\n    return { valid:true };\n  }\n\n  \/\/ Lazily build the per-box error note + \"search anyway\" bypass link (appended below the form).\n  function ensureVinUi(box){\n    if (box.__mrvinVinUi) return box.__mrvinVinUi;\n    var note = document.createElement('p');\n    note.className = 'mrvin-vin-note';\n    note.setAttribute('role', 'alert');\n    note.setAttribute('aria-live', 'polite');\n    var bypass = document.createElement('button');\n    bypass.type = 'button';\n    bypass.className = 'mrvin-vin-bypass';\n    bypass.textContent = vinStr('vinErrBypass', 'Are you sure it\\'s correct? Search anyway.');\n    bypass.addEventListener('click', function(){\n      var form = findForm(box);\n      \/\/ One button serves both modes; the submit handler only reads the flag for the mode it is\n      \/\/ in, so setting both is harmless and saves duplicating the whole note\/bypass UI.\n      box.__mrvinVinBypass = true;   \/\/ let the next submit through unvalidated\n      box.__mrvinPlateBypass = true;\n      clearVinError(box);\n      if (form) { if (typeof form.requestSubmit === 'function') form.requestSubmit(); else form.submit(); }\n    });\n    \/\/ Place the note + bypass directly below the search pill (before the example hint), so the\n    \/\/ box's own rounded\/padded layout is untouched.\n    var parent = box.parentNode;\n    if (parent) { parent.insertBefore(note, box.nextSibling); parent.insertBefore(bypass, note.nextSibling); }\n    else { box.appendChild(note); box.appendChild(bypass); }\n    box.__mrvinVinUi = { note: note, bypass: bypass };\n    return box.__mrvinVinUi;\n  }\n  function showVinError(box, msg){\n    var ui = ensureVinUi(box);\n    ui.note.textContent = msg;\n    ui.note.classList.remove('is-ok');\n    ui.note.classList.add('is-visible');\n    var inp = findInput(box); if (inp) inp.classList.add('mrvin-error');\n  }\n  \/\/ Live positive state: a complete valid VIN flips the note green while typing,\n  \/\/ so the visitor knows the search will go through before pressing the button.\n  function showVinOk(box){\n    var ui = ensureVinUi(box);\n    ui.note.textContent = vinStr('vinOk', 'VIN looks good');\n    ui.note.classList.remove('is-visible');\n    ui.note.classList.add('is-ok');\n  }\n  function showVinBypass(box){\n    var ui = ensureVinUi(box);\n    ui.bypass.textContent = vinStr('vinErrBypass', 'Are you sure it\\'s correct? Search anyway.');\n    ui.bypass.classList.add('is-visible');\n  }\n  \/\/ Same control, plate wording \u2014 the escape hatch for a cherished plate our heuristic rejects.\n  function showPlateBypass(box){\n    var ui = ensureVinUi(box);\n    ui.bypass.textContent = vinStr('plateErrBypass', 'Sure it\\'s correct? Search anyway.');\n    ui.bypass.classList.add('is-visible');\n  }\n  function clearVinError(box){\n    var ui = box.__mrvinVinUi; if (!ui) return;\n    ui.note.classList.remove('is-visible');\n    ui.note.classList.remove('is-ok');\n    ui.bypass.classList.remove('is-visible');\n    var inp = findInput(box); if (inp) inp.classList.remove('mrvin-error');\n  }\n\n  \/\/ Track the currently open instance so window-level scroll\/resize can re-anchor it.\n  var openInstance = null;\n\n  function setSelection(country, iso){\n    var c = BY_ISO[iso] || null;\n    var tile = country.querySelector('.mrvin-country-tile');\n    var code = tile.querySelector('.mrvin-country-tile-code');\n    var dd   = country.__mrvinDropdown || country.querySelector('.mrvin-country-dropdown');\n    if (dd) {\n      dd.querySelectorAll('.mrvin-country-option').forEach(function(o){\n        o.classList.toggle('is-selected', o.getAttribute('data-iso') === iso);\n      });\n    }\n    \/\/ Swap the badge flag: GB carries the Union Jack, everyone else the EU stars. The tile is\n    \/\/ rendered once server-side, so without this a visitor switching country keeps the previous\n    \/\/ country's flag. Falls back to the stars for the empty state.\n    var flagUse = tile.querySelector('.mrvin-country-tile-stars use');\n    if (flagUse) {\n      flagUse.setAttribute('href', iso === 'GB' ? '#mrvin-gb-flag' : '#mrvin-eu-stars');\n    }\n    if (c) {\n      tile.classList.remove('is-empty');\n      code.textContent = c.plate;\n      tile.setAttribute('aria-label', (window.mrvinCountryStrings.select || 'Select country') + ': ' + c.name);\n      country.dataset.iso = iso;\n    } else {\n      tile.classList.add('is-empty');\n      code.textContent = '\u2014';\n      tile.setAttribute('aria-label', window.mrvinCountryStrings.select || 'Select country');\n      country.dataset.iso = '';\n    }\n    \/\/ Sync placeholder + hidden form input + sessionStorage\n    var box = country.closest('.mrvin-search-box,.mrvin-cta-search-box');\n    if (box) {\n      var input = findInput(box);\n      var form  = findForm(box);\n      if (input && isPlateMode(box)) {\n        input.placeholder = c ? c.ph : (window.mrvinCountryStrings.genericPh || input.getAttribute('data-ph-plate') || '');\n      }\n      if (form) {\n        var hidden = findHiddenIso(form);\n        if (!hidden) {\n          hidden = document.createElement('input');\n          hidden.type = 'hidden';\n          hidden.name = 'country_iso';\n          form.appendChild(hidden);\n        }\n        hidden.value = iso || '';\n        hidden.disabled = !c || !isPlateMode(box);\n      }\n    }\n    writeStored(iso || '');\n    var err = country.querySelector('.mrvin-country-error');\n    if (err && c) err.classList.remove('is-visible');\n  }\n\n  function applyFilter(country, term){\n    var dd = country.__mrvinDropdown;\n    if (!dd) return;\n    var q = (term || '').trim().toLowerCase();\n    var visible = 0;\n    dd.querySelectorAll('.mrvin-country-option').forEach(function(opt){\n      var hay = opt.getAttribute('data-search') || '';\n      var match = !q || hay.indexOf(q) !== -1;\n      opt.classList.toggle('is-hidden', !match);\n      if (match) visible++;\n    });\n    var empty = dd.querySelector('.mrvin-country-empty');\n    if (empty) empty.classList.toggle('is-visible', visible === 0);\n  }\n\n  function positionDropdown(country){\n    var dd = country.__mrvinDropdown;\n    var tile = country.querySelector('.mrvin-country-tile');\n    if (!dd || !tile) return;\n    var r  = tile.getBoundingClientRect();\n    var vw = document.documentElement.clientWidth;\n    var vh = document.documentElement.clientHeight;\n    \/\/ Render off-screen once to measure width when first positioning.\n    var ddw = dd.offsetWidth || 260;\n    var ddh = dd.offsetHeight || 320;\n    var gap = 8;\n    var left = r.left;\n    if (left + ddw > vw - 8) left = Math.max(8, vw - ddw - 8);\n    var top = r.bottom + gap;\n    if (top + ddh > vh - 8) {\n      \/\/ Flip above the tile if there's no room below.\n      var above = r.top - gap - ddh;\n      if (above >= 8) top = above;\n      else top = Math.max(8, vh - ddh - 8);\n    }\n    dd.style.left = Math.round(left) + 'px';\n    dd.style.top  = Math.round(top)  + 'px';\n  }\n\n  function closeOpen(){\n    if (!openInstance) return;\n    var country = openInstance;\n    var dd = country.__mrvinDropdown;\n    var tile = country.querySelector('.mrvin-country-tile');\n    if (dd) {\n      dd.classList.remove('is-open');\n      dd.setAttribute('aria-hidden', 'true');\n    }\n    if (tile) tile.setAttribute('aria-expanded', 'false');\n    country.classList.remove('open');\n    openInstance = null;\n  }\n\n  function openCountry(country){\n    if (openInstance && openInstance !== country) closeOpen();\n    var dd = country.__mrvinDropdown;\n    var tile = country.querySelector('.mrvin-country-tile');\n    if (!dd || !tile) return;\n    \/\/ Reset filter every open\n    var search = dd.querySelector('.mrvin-country-search');\n    if (search) search.value = '';\n    applyFilter(country, '');\n    country.classList.add('open');\n    dd.classList.add('is-open');\n    dd.setAttribute('aria-hidden', 'false');\n    tile.setAttribute('aria-expanded', 'true');\n    positionDropdown(country);\n    openInstance = country;\n    \/\/ Defer focus until after the open transition starts (avoids iOS keyboard popping unexpectedly on tap).\n    if (search && window.matchMedia && !window.matchMedia('(max-width:767px)').matches) {\n      setTimeout(function(){ try { search.focus({preventScroll:true}); } catch(e){ search.focus(); } }, 60);\n    }\n  }\n\n  function initCountry(country){\n    if (country.__mrvinCountryInit) return;\n    country.__mrvinCountryInit = true;\n\n    var dd = country.querySelector('.mrvin-country-dropdown');\n    if (dd) {\n      \/\/ Portal the dropdown to <body> so no clipped\/transformed ancestor can hide it.\n      document.body.appendChild(dd);\n      country.__mrvinDropdown = dd;\n    }\n\n    var serverIso = country.dataset.defaultIso || '';\n    var stored    = readStored();\n    \/\/ A remembered choice wins only when it is actually usable in THIS market. Otherwise a visitor\n    \/\/ who once picked LV would land on \/en-gb\/ pre-set to a country with no GB data and get an\n    \/\/ \"unsupported\" popup on a page where GB works fine. The server default is language-derived,\n    \/\/ so it is already the right country for the market being viewed.\n    var initial   = (BY_ISO[stored] && isPlateCountryActive(stored)) ? stored\n                  : ((BY_ISO[serverIso] && serverIso) || (BY_ISO[stored] && stored) || '');\n    setSelection(country, initial);\n\n    var tile = country.querySelector('.mrvin-country-tile');\n\n    tile.addEventListener('click', function(e){\n      e.stopPropagation();\n      if (openInstance === country) closeOpen();\n      else openCountry(country);\n    });\n\n    if (dd) {\n      dd.addEventListener('click', function(e){ e.stopPropagation(); });\n\n      var search = dd.querySelector('.mrvin-country-search');\n      if (search) {\n        search.addEventListener('input', function(){ applyFilter(country, search.value); });\n        search.addEventListener('keydown', function(e){\n          if (e.key === 'Enter') {\n            e.preventDefault();\n            var first = dd.querySelector('.mrvin-country-option:not(.is-hidden)');\n            if (first) first.click();\n          } else if (e.key === 'Escape') {\n            e.preventDefault();\n            closeOpen();\n          }\n        });\n      }\n\n      dd.querySelectorAll('.mrvin-country-option').forEach(function(opt){\n        opt.addEventListener('click', function(){\n          var iso = opt.getAttribute('data-iso');\n          setSelection(country, iso);\n          closeOpen();\n          \/\/ Track which country the visitor tried (demand signal \u2014 incl. not-yet-enabled ones).\n          if (iso) trackPlateIntent(iso);\n          \/\/ Picking a country with no active plate data source \u2192 tell the user to use the VIN.\n          if (iso && !isPlateCountryActive(iso)) showPlateUnsupported(iso, country.closest('.mrvin-search-box,.mrvin-cta-search-box'));\n        });\n      });\n    }\n  }\n\n  function initBox(box){\n    var country = box.querySelector('.mrvin-country');\n    if (!country) return;\n    initCountry(country);\n    \/\/ Visibility tracks plate mode\n    var sync = function(){\n      var on = isPlateMode(box);\n      country.classList.toggle('is-active', on);\n      if (on && country.dataset.iso) {\n        var c = BY_ISO[country.dataset.iso];\n        var inp = findInput(box);\n        if (c && inp) inp.placeholder = c.ph;\n      }\n      var form = findForm(box);\n      var hidden = findHiddenIso(form);\n      if (hidden) hidden.disabled = !on || !country.dataset.iso;\n    };\n    sync();\n    box.querySelectorAll('[data-mode]').forEach(function(t){\n      t.addEventListener('click', function(){\n        setTimeout(sync, 0);\n        clearVinError(box);   \/\/ a VIN note (red or green) makes no sense in plate mode\n        \/\/ Track when a visitor switches to the licence-plate option.\n        if (t.getAttribute('data-mode') === 'plate') trackPlateIntent('__PLATE_MODE__');\n      });\n    });\n    \/\/ Form-submit guard: VIN mode validates the VIN; plate mode requires a supported country.\n    var form = findForm(box);\n    if (form) {\n      form.addEventListener('submit', function(e){\n        if (!isPlateMode(box)) {\n          \/\/ VIN mode \u2014 block the GET navigation unless the VIN is valid (or the user bypassed).\n          if (box.__mrvinVinBypass) { box.__mrvinVinBypass = false; return; }\n          var inp = findInput(box);\n          var raw = inp ? (inp.value || '').trim() : '';\n          if (!raw) { e.preventDefault(); showVinError(box, vinStr('vinErrEmpty', 'Please enter a VIN.')); return; }\n          var res = validateVin(raw);\n          if (!res.valid) {\n            e.preventDefault();\n            showVinError(box, res.error);\n            \/\/ Repeated identical failures \u2192 offer a manual bypass (mirrors vinscreener), so a\n            \/\/ genuinely-valid VIN that trips the check digit isn't permanently blocked.\n            var up = raw.toUpperCase();\n            if (up === box.__mrvinLastBad) { box.__mrvinBadStreak = (box.__mrvinBadStreak || 1) + 1; }\n            else { box.__mrvinBadStreak = 1; box.__mrvinLastBad = up; }\n            if (box.__mrvinBadStreak >= 2) showVinBypass(box);\n          }\n          return;\n        }\n        if (!country.dataset.iso) {\n          e.preventDefault();\n          var err = country.querySelector('.mrvin-country-error');\n          if (err) err.classList.add('is-visible');\n          openCountry(country);\n          return;\n        }\n        \/\/ Block submit for a country without an active plate data source; steer to the VIN.\n        if (!isPlateCountryActive(country.dataset.iso)) {\n          e.preventDefault();\n          showPlateUnsupported(country.dataset.iso, box);\n          return;\n        }\n        \/\/ A country we serve, but not for the series that was typed. Blocked like an inactive\n        \/\/ country rather than like a failed sanity check, and that difference is the point: this\n        \/\/ sits ABOVE the bypass below, so the \"search anyway\" link can never push a refused series\n        \/\/ through. The server would refuse it anyway, so a bypass here would spend a metered call\n        \/\/ to show the visitor a failure.\n        var sInp = findInput(box);\n        var sRaw = sInp ? (sInp.value || '').trim() : '';\n        if (sRaw && !seriesSupported(country.dataset.iso, sRaw)) {\n          e.preventDefault();\n          \/\/ Distinct from the plain country key, so the hub can show how much demand the\n          \/\/ restriction actually turns away rather than folding it into \"PT was requested\".\n          trackPlateIntent(String(country.dataset.iso || '').toUpperCase() + '_SERIES_UNSUPPORTED');\n          showPlateUnsupported(country.dataset.iso, box, seriesMessage(country.dataset.iso));\n          return;\n        }\n        \/\/ Plate sanity check. Mirrors the VIN path deliberately, bypass included: a cherished\n        \/\/ registration that our heuristic doesn't recognise must never be permanently blocked,\n        \/\/ so two identical rejections surface a \"search anyway\" link.\n        if (box.__mrvinPlateBypass) { box.__mrvinPlateBypass = false; return; }\n        var pInp = findInput(box);\n        var pRaw = pInp ? (pInp.value || '').trim() : '';\n        var pRes = validatePlate(pRaw, country.dataset.iso);\n        if (!pRes.valid) {\n          e.preventDefault();\n          showVinError(box, pRes.error);\n          var pUp = pRaw.toUpperCase();\n          if (pUp === box.__mrvinLastBadPlate) { box.__mrvinPlateStreak = (box.__mrvinPlateStreak || 1) + 1; }\n          else { box.__mrvinPlateStreak = 1; box.__mrvinLastBadPlate = pUp; }\n          if (box.__mrvinPlateStreak >= 2) showPlateBypass(box);\n        }\n      });\n    }\n    \/\/ On-the-fly input filter: plate mode keeps A-Z 0-9 space hyphen; VIN mode strips to\n    \/\/ A-Z 0-9 so spaces can never eat maxlength slots and silently truncate the VIN \u2014 the bug\n    \/\/ behind the missing order #749 (\"WDD 205066 1F 221\" was a 17-char VIN cut to 14).\n    var input = findInput(box);\n    if (input) {\n      input.addEventListener('input', function(){\n        if (isPlateMode(box)) {\n          var p = input.value.toUpperCase().replace(\/[^A-Z0-9 \\-]\/g, '');\n          if (p !== input.value) input.value = p;\n          \/\/ Editing after a rejection clears the note and restarts the streak, so the bypass link\n          \/\/ only appears when the visitor re-submits the SAME plate \u2014 i.e. they meant it.\n          clearVinError(box);\n          box.__mrvinPlateStreak = 0; box.__mrvinLastBadPlate = '';\n        } else {\n          var v = input.value.toUpperCase().replace(\/[^A-Z0-9]\/g, '');\n          if (v !== input.value) input.value = v;\n          clearVinError(box);\n          box.__mrvinBadStreak = 0; box.__mrvinLastBad = '';\n          \/\/ Live feedback rewards completion but never nags mid-typing: the\n          \/\/ note only turns green once the full 17 characters check out.\n          if (v.length === 17 && validateVin(v).valid) showVinOk(box);\n        }\n      });\n      \/\/ Early feedback: surface the specific problem when the visitor leaves a\n      \/\/ non-empty invalid VIN, instead of waiting for the search button.\n      input.addEventListener('blur', function(){\n        if (isPlateMode(box)) return;\n        var raw = (input.value || '').trim();\n        if (!raw) return;\n        var res = validateVin(raw);\n        if (!res.valid) showVinError(box, res.error);\n      });\n    }\n  }\n\n  function init(){\n    document.querySelectorAll('.mrvin-search-box,.mrvin-cta-search-box').forEach(initBox);\n    document.addEventListener('click', function(){ closeOpen(); });\n    document.addEventListener('keydown', function(e){\n      if (e.key === 'Escape') closeOpen();\n    });\n    \/\/ Re-anchor the portaled dropdown when the page scrolls or the viewport resizes.\n    var rafId = null;\n    function reanchor(){\n      if (!openInstance) return;\n      if (rafId) cancelAnimationFrame(rafId);\n      rafId = requestAnimationFrame(function(){\n        rafId = null;\n        if (openInstance) positionDropdown(openInstance);\n      });\n    }\n    window.addEventListener('scroll', reanchor, true);\n    window.addEventListener('resize', reanchor);\n  }\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n})();\n<\/script>\n        \t\t<div class=\"mrvin-search-box\">\n\t\t\t\t\t\t<form class=\"mrvin-search-row\" action=\"https:\/\/www.mrvin.com\/nl\/product\/\" method=\"GET\">\n\t\t\t\t<div class=\"mrvin-country\" data-default-iso=\"\">\n  <button type=\"button\" class=\"mrvin-country-tile is-empty\" aria-haspopup=\"listbox\" aria-expanded=\"false\" aria-label=\"Selecteer land\">\n    <svg class=\"mrvin-country-tile-stars\" aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg>\n    <span class=\"mrvin-country-tile-code\">\u2014<\/span>\n  <\/button>\n  <div class=\"mrvin-country-dropdown\" role=\"listbox\" aria-hidden=\"true\">\n    <div class=\"mrvin-country-search-wrap\">\n      <span class=\"mrvin-country-search-icon\" aria-hidden=\"true\"><\/span>\n      <input type=\"text\" class=\"mrvin-country-search\" placeholder=\"Land zoeken\" aria-label=\"Land zoeken\" autocomplete=\"off\" spellcheck=\"false\">\n    <\/div>\n    <div class=\"mrvin-country-options\">\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"AT\"\n            data-search=\"oostenrijk at a\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Oostenrijk<\/span>\n          <span class=\"mrvin-country-option-code\">A<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"BE\"\n            data-search=\"belgi\u00eb be b\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Belgi\u00eb<\/span>\n          <span class=\"mrvin-country-option-code\">B<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"BG\"\n            data-search=\"bulgarije bg bg\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Bulgarije<\/span>\n          <span class=\"mrvin-country-option-code\">BG<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"CY\"\n            data-search=\"cyprus cy cy\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Cyprus<\/span>\n          <span class=\"mrvin-country-option-code\">CY<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"CZ\"\n            data-search=\"tsjechi\u00eb cz cz\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Tsjechi\u00eb<\/span>\n          <span class=\"mrvin-country-option-code\">CZ<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"DE\"\n            data-search=\"duitsland de d\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Duitsland<\/span>\n          <span class=\"mrvin-country-option-code\">D<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"DK\"\n            data-search=\"denemarken dk dk\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Denemarken<\/span>\n          <span class=\"mrvin-country-option-code\">DK<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"EE\"\n            data-search=\"estland ee est\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Estland<\/span>\n          <span class=\"mrvin-country-option-code\">EST<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"ES\"\n            data-search=\"spanje es e\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Spanje<\/span>\n          <span class=\"mrvin-country-option-code\">E<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"FI\"\n            data-search=\"finland fi fin\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Finland<\/span>\n          <span class=\"mrvin-country-option-code\">FIN<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"FR\"\n            data-search=\"frankrijk fr f\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Frankrijk<\/span>\n          <span class=\"mrvin-country-option-code\">F<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"GB\"\n            data-search=\"verenigd koninkrijk gb gb\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-gb-flag\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Verenigd Koninkrijk<\/span>\n          <span class=\"mrvin-country-option-code\">GB<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"GR\"\n            data-search=\"griekenland gr gr\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Griekenland<\/span>\n          <span class=\"mrvin-country-option-code\">GR<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"HU\"\n            data-search=\"hongarije hu h\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Hongarije<\/span>\n          <span class=\"mrvin-country-option-code\">H<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"IE\"\n            data-search=\"ierland ie irl\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Ierland<\/span>\n          <span class=\"mrvin-country-option-code\">IRL<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"IT\"\n            data-search=\"itali\u00eb it i\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Itali\u00eb<\/span>\n          <span class=\"mrvin-country-option-code\">I<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"LT\"\n            data-search=\"litouwen lt lt\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Litouwen<\/span>\n          <span class=\"mrvin-country-option-code\">LT<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"LU\"\n            data-search=\"luxemburg lu l\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Luxemburg<\/span>\n          <span class=\"mrvin-country-option-code\">L<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"LV\"\n            data-search=\"letland lv lv\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Letland<\/span>\n          <span class=\"mrvin-country-option-code\">LV<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"MT\"\n            data-search=\"malta mt m\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Malta<\/span>\n          <span class=\"mrvin-country-option-code\">M<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"NL\"\n            data-search=\"nederland nl nl\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Nederland<\/span>\n          <span class=\"mrvin-country-option-code\">NL<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"PL\"\n            data-search=\"polen pl pl\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Polen<\/span>\n          <span class=\"mrvin-country-option-code\">PL<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"PT\"\n            data-search=\"portugal pt p\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Portugal<\/span>\n          <span class=\"mrvin-country-option-code\">P<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"RO\"\n            data-search=\"roemeni\u00eb ro ro\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Roemeni\u00eb<\/span>\n          <span class=\"mrvin-country-option-code\">RO<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"SE\"\n            data-search=\"zweden se s\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Zweden<\/span>\n          <span class=\"mrvin-country-option-code\">S<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"SI\"\n            data-search=\"sloveni\u00eb si slo\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Sloveni\u00eb<\/span>\n          <span class=\"mrvin-country-option-code\">SLO<\/span>\n        <\/button>\n              <button type=\"button\" class=\"mrvin-country-option\" role=\"option\"\n            data-iso=\"SK\"\n            data-search=\"slowakije sk sk\">\n          <span class=\"mrvin-country-option-flag\"><svg aria-hidden=\"true\"><use href=\"#mrvin-eu-stars\"><\/use><\/svg><\/span>\n          <span class=\"mrvin-country-option-name\">Slowakije<\/span>\n          <span class=\"mrvin-country-option-code\">SK<\/span>\n        <\/button>\n            <p class=\"mrvin-country-empty\" role=\"status\">Geen enkel land komt overeen<\/p>\n    <\/div>\n  <\/div>\n  <p class=\"mrvin-country-error\" role=\"alert\" aria-live=\"polite\">Selecteer eerst een land<\/p>\n<\/div>\n        \t\t\t\t<input type=\"text\" class=\"mrvin-search-input\" name=\"vin\"\n\t\t\t\t\tplaceholder=\"Voer het VIN van 17 tekens in\"\n\t\t\t\t\taria-label=\"VIN of kenteken\"\n\t\t\t\t\tmaxlength=\"32\" autocomplete=\"off\"\n\t\t\t\t\tdata-ph-vin=\"Voer het VIN van 17 tekens in\"\n\t\t\t\t\tdata-ph-plate=\"Voer het kenteken in\"\n\t\t\t\t\tdata-btn-vin=\"VIN controleren\"\n\t\t\t\t\tdata-btn-plate=\"Kenteken controleren\">\n\t\t\t\t<button type=\"submit\" class=\"mrvin-search-btn\"><span>VIN controleren<\/span><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12h13\"\/><path d=\"m12.5 6.4 6 5.6-6 5.6\"\/><\/svg><\/button>\n\t\t\t<\/form>\n\t\t<\/div>\n\t\t\t\t\t<p class=\"mrvin-search-hint\">Voorbeeld: <code>WBA3A5G59DNP26082<\/code><span class=\"sep\"><\/span>Inclusief gratis voorbeeld<\/p>\n\t\t\t\t\t<ul class=\"pv-trust\">\n\t\t\t\t<li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"8.5\"\/><path d=\"M3.5 12h17\"\/><path d=\"M12 3.5c2.3 2.4 3.4 5.3 3.4 8.5s-1.1 6.1-3.4 8.5c-2.3-2.4-3.4-5.3-3.4-8.5S9.7 5.9 12 3.5Z\"\/><\/svg><span>30+ landen<\/span><\/li>\n\t\t\t\t<li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"8.5\"\/><path d=\"M12 7v5.3l3.4 2\"\/><\/svg><span>Resultaat binnen een minuut<\/span><\/li>\n\t\t\t\t<li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M13.5 3.5h-6a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2V8.5Z\"\/><path d=\"M13.5 3.5V8.5h5\"\/><path d=\"M9 13.4h6M9 16.4h4\"\/><\/svg><span>Volledig PDF-rapport<\/span><\/li>\n\t\t\t<\/ul>\n\t\t<\/div>\n\t\t\n\t\t\t<h2 id=\"papers\">Het chassisnummer op uw kentekencard<\/h2>\n\n\t\t\t<p>Zoek de letter E.<\/p>\n\t\t\t<p>De EU-regels geven elk veld op een kentekenbewijs een vaste code, en code E is het voertuigidentificatienummer. De naam en het ontwerp van het document verschillen per land, maar de code blijft hetzelfde.<\/p>\n\n\t\t\t<figure class=\"anim\">\n\t\t\t\t\t\t<picture>\n\t\t\t<source media=\"(prefers-reduced-motion: reduce)\" srcset=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/blog\/where-to-find-vin\/vin-box-e-poster.webp\">\n\t\t\t<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/blog\/where-to-find-vin\/vin-box-e.webp\" width=\"1000\" height=\"600\" alt=\"Een kentekenbewijs met veld E gemarkeerd en een VIN dat zich invult\" loading=\"lazy\">\n\t\t<\/picture>\n\t\t\t\t\t\t<figcaption>Veld E is het VIN, welk EU-land het document ook heeft afgegeven.<\/figcaption>\n\t\t\t<\/figure>\n\n\t\t\t<p>Het VIN heeft verschillende namen, en daarom kan zoeken ernaar u in cirkels laten lopen. Zo heet het op de documenten die u het vaakst tegenkomt.<\/p>\n\n\t\t\t<div class=\"vin-docs\">\n\t\t\t\t<table>\n\t\t\t\t\t<thead><tr>\n\t\t\t\t\t\t<th>Land<\/th>\n\t\t\t\t\t\t<th>Document<\/th>\n\t\t\t\t\t\t<th>Hoe het VIN heet<\/th>\n\t\t\t\t\t<\/tr><\/thead>\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>Polen<\/td><td>Dow\u00f3d rejestracyjny<\/td><td>Numer VIN, numer nadwozia<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>Duitsland<\/td><td>Zulassungsbescheinigung Teil I (Fahrzeugschein)<\/td><td>FIN, Fahrgestellnummer<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>Frankrijk<\/td><td>Certificat d&#039;immatriculation (carte grise)<\/td><td>Num\u00e9ro VIN, num\u00e9ro de s\u00e9rie<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>Itali\u00eb<\/td><td>Documento unico (libretto)<\/td><td>Numero di telaio<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>Spanje<\/td><td>Permiso de circulaci\u00f3n, ficha t\u00e9cnica<\/td><td>N\u00famero de bastidor<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>Nederland<\/td><td>Kentekencard<\/td><td>Chassisnummer<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>Roemeni\u00eb<\/td><td>Certificat de \u00eenmatriculare (talon)<\/td><td>Serie de \u0219asiu<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>Tsjechi\u00eb<\/td><td>Osv\u011bd\u010den\u00ed o registraci vozidla (mal\u00fd technick\u00fd pr\u016fkaz)<\/td><td>VIN k\u00f3d<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>Hongarije<\/td><td>Forgalmi enged\u00e9ly<\/td><td>Alv\u00e1zsz\u00e1m<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>Letland<\/td><td>Re\u0123istr\u0101cijas apliec\u012bba<\/td><td>VIN kods<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>Verenigd Koninkrijk<\/td><td>V5C kentekenbewijs<\/td><td>VIN\/Chassis\/Frame No<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t<\/tbody>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\n\t\t\t<p>In Nederland staat het chassisnummer op de achterkant van de kentekencard.<\/p>\n\t\t\t<p>Verwar het in Roemeni\u00eb niet met de CIV-serie. De identiteitskaart van het voertuig (CIV) is een apart document met een eigen nummer.<\/p>\n\t\t\t<p>Oudere documenten kunnen een andere indeling hebben, en sommige hebben helemaal geen veld E, dus lees ook het label en niet alleen de letter.<\/p>\n\n\t\t\t<h2 id=\"car\">Het chassisnummer op de auto<\/h2>\n\n\t\t\t<p>De EU-regels schrijven voor dat het VIN in het chassis of de carrosserie wordt geslagen, aan de rechterkant van de auto gezien in rijrichting, op een plek waar het zichtbaar en bereikbaar is. Autofabrikanten herhalen het elders, dus u hebt meerdere plekken om te controleren.<\/p>\n\n\t\t\t<figure class=\"anim\">\n\t\t\t\t\t\t<picture>\n\t\t\t<source media=\"(prefers-reduced-motion: reduce)\" srcset=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/blog\/where-to-find-vin\/car-places-poster.webp\">\n\t\t\t<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/blog\/where-to-find-vin\/car-places.webp\" width=\"1000\" height=\"667\" alt=\"De MrVIN-beer wijst naar een auto met vier genummerde markeringen die laten zien waar het VIN zit\" loading=\"lazy\">\n\t\t<\/picture>\n\t\t\t\t\t\t<figcaption>De vier plekken om te kijken, genummerd zoals in de lijst hieronder.<\/figcaption>\n\t\t\t<\/figure>\n\n\t\t\t<ol>\n\t\t\t\t<li><b>Onderaan de voorruit.<\/b> Een klein plaatje achter het glas, in een onderhoek en vaak aan de bestuurderskant. U kunt het van buiten lezen, dus het is de snelste controle. Veel auto's hebben er een, al is het een gewoonte van de fabrikant en schrijft geen enkele EU-regel het voor.<\/li>\n\t\t\t\t<li><b>De deurstijl.<\/b> Open het portier van de bestuurder en zoek op de stijl of het deurkozijn naar een plaatje of sticker. Sommige fabrikanten plaatsen dit plaatje in plaats daarvan in de motorruimte.<\/li>\n\t\t\t\t<li><b>In de carrosserie geslagen.<\/b> Dit is het nummer waar de regels om vragen, en het moeilijkst te veranderen. Het zit meestal in de motorruimte, of onder een klep in de vloer bij een voorstoel. De gebruikershandleiding laat zien waar.<\/li>\n\t\t\t\t<li><b>Het onderhoudsboekje.<\/b> Onderhoudsboekjes en verzekeringspapieren herhalen het VIN meestal. Het is alleen papier, dus gebruik het als extra controle.<\/li>\n\t\t\t<\/ol>\n\n\t\t\t<h2 id=\"match\">Komen alle VIN&#039;s overeen?<\/h2>\n\n\t\t\t<p>De meeste gidsen stoppen bij waar u moet kijken. Koopt u een auto, dan is de volgende stap belangrijker: vergelijk het VIN op de papieren, op het plaatje bij de voorruit en in de carrosserie, teken voor teken, voordat er geld van hand wisselt.<\/p>\n\t\t\t<p>De reden is eenvoudig. Een VIN-controle beschrijft het nummer dat u hebt ingevoerd. Ze kan niet zeggen of dat nummer bij de auto voor u hoort. Een gestolen auto kan de identiteit van een auto zonder problemen krijgen, en dan bewijst een rapport zonder meldingen op dat VIN niets.<\/p>\n\t\t\t<p class=\"pullquote\">Een geschiedenisrapport beschrijft het nummer dat u hebt ingevoerd. Alleen u kunt controleren of dat nummer bij de auto hoort.<\/p>\n\n\t\t\t<figure class=\"anim\">\n\t\t\t\t\t\t<picture>\n\t\t\t<source media=\"(prefers-reduced-motion: reduce)\" srcset=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/blog\/where-to-find-vin\/vin-match-poster.webp\">\n\t\t\t<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/blog\/where-to-find-vin\/vin-match.webp\" width=\"1000\" height=\"600\" alt=\"Hetzelfde VIN vergeleken op drie plekken, eerst gelijk, daarna met \u00e9\u00e9n afwijkend teken\" loading=\"lazy\">\n\t\t<\/picture>\n\t\t\t\t\t\t<figcaption>Eerste ronde: alle drie komen overeen. Tweede ronde: \u00e9\u00e9n teken wijkt af, en dat is genoeg om te stoppen.<\/figcaption>\n\t\t\t<\/figure>\n\n\t\t\t<p>Sommige verschillen hebben een onschuldige verklaring, zoals een typefout op een document. Andere niet, en aan het woord van de verkoper alleen kunt u niet zien welke het is.<\/p>\n\t\t\t<p>Een auto waarvan het nummer niet overeenkomt met de papieren, kan worden geweigerd bij de registratie, en zodra u hebt betaald, is dat uw probleem.<\/p>\n\t\t\t<p>Betaal dus niet voordat de RDW het heeft gecontroleerd. Denkt u dat de auto gestolen kan zijn, meld het dan bij de politie.<\/p>\n\t\t\t<p>Kijk ook naar de plaatjes en het geslagen nummer. Een plaatje dat los zit, krassen heeft of is teruggelijmd, verdient een vraag, en dat geldt ook voor tekens die ongelijk lijken of in verse lak zitten.<\/p>\n\t\t\t<p>Een ontbrekende deursticker bewijst op zichzelf niets. Het kan betekenen dat het portier of de stijl is gerepareerd of vervangen, wat een vraag waard is en de moeite om te vergelijken met de schadegegevens van de auto.<\/p>\n\n\t\t\t<h2 id=\"read\">Zo leest u de 17 tekens van het chassisnummer<\/h2>\n\n\t\t\t<p>Elk VIN valt in dezelfde drie groepen uiteen.<\/p>\n\n\t\t\t<figure class=\"anim\">\n\t\t\t\t\t\t<picture>\n\t\t\t<source media=\"(prefers-reduced-motion: reduce)\" srcset=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/blog\/where-to-find-vin\/vin-17-chars-poster.webp\">\n\t\t\t<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/blog\/where-to-find-vin\/vin-17-chars.webp\" width=\"1000\" height=\"467\" alt=\"Een VIN van 17 tekens verdeeld in groepen van 3, 6 en 8\" loading=\"lazy\">\n\t\t<\/picture>\n\t\t\t\t\t<\/figure>\n\n\t\t\t<ul>\n\t\t\t\t<li><b>De eerste 3: de fabrikant.<\/b> Deze geven aan wie de auto heeft gebouwd.<\/li>\n\t\t\t\t<li><b>De volgende 6: de beschrijving.<\/b> De fabrikant beschrijft hiermee het voertuig. Plekken die hij niet nodig heeft, kunnen een opvulteken bevatten, en daarom beginnen Europese Volkswagen-VIN's met WVWZZZ.<\/li>\n\t\t\t\t<li><b>De laatste 8: deze auto.<\/b> Deze geven het individuele voertuig aan, en de laatste 4 zijn cijfers.<\/li>\n\t\t\t<\/ul>\n\n\t\t\t<p>De letters I, O en Q worden nooit gebruikt, omdat ze te gemakkelijk voor 1 en 0 worden aangezien. Denkt u een O te lezen, dan is het een 0.<\/p>\n\t\t\t<p>Probeer het met uw eigen VIN. Wat u hier invoert, blijft op deze pagina.<\/p>\n\n\t\t\t\t\t\t<div class=\"vt\" id=\"mrvin-blog-vt\" data-bad=\"Een VIN bevat nooit I, O of Q. Kijk nog eens naar die letter.\">\n\t\t\t\t<input type=\"text\" placeholder=\"Voer een VIN in om het in groepen te splitsen\" aria-label=\"Voer een VIN in om het in groepen te splitsen\" maxlength=\"20\" autocomplete=\"off\" spellcheck=\"false\" autocapitalize=\"characters\">\n\t\t\t\t<div class=\"vt-groups\">\n\t\t\t\t\t<div class=\"vt-group vt-g1\"><span class=\"chars\"><\/span><span class=\"name\">De fabrikant<\/span><\/div>\n\t\t\t\t\t<div class=\"vt-group vt-g2\"><span class=\"chars\"><\/span><span class=\"name\">De beschrijving<\/span><\/div>\n\t\t\t\t\t<div class=\"vt-group vt-g3\"><span class=\"chars\"><\/span><span class=\"name\">Deze auto<\/span><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<p class=\"vt-msg\" aria-live=\"polite\"><\/p>\n\t\t\t<\/div>\n\n\t\t\t<h2 id=\"catch\">Twee dingen waar mensen over struikelen<\/h2>\n\n\t\t\t<p><b>Het 10e teken is niet altijd het jaar.<\/b> Vaak leest u dat het dat wel is. Dat komt uit de Noord-Amerikaanse regels, en de EU-regels bepalen het niet. Volkswagen gebruikt het wel voor het modeljaar, terwijl veel Europese BMW's er gewoon een 0 hebben. Ga voor de leeftijd van een auto uit van de datum van eerste registratie op de papieren, en bedenk dat een auto maanden voor de registratie kan zijn gebouwd.<\/p>\n\t\t\t<p><b>Het 9e teken is niet altijd een controlecijfer.<\/b> In Noord-Amerika wordt het berekend uit de andere tekens, zodat een hulpmiddel een typefout kan opsporen. In de EU is dat pas sinds juli 2022 verplicht, te beginnen bij nieuwe voertuigtypen. Toen we de Noord-Amerikaanse formule loslieten op een week aan Europese VIN's uit onze eigen gegevens, viel bijna de helft erdoor, en het waren echte auto's met echte gegevens. Een controle die een VIN daarom ongeldig noemt, heeft ongelijk.<\/p>\n\n\t\t\t<h2 id=\"tells\">Wat een VIN u wel en niet vertelt<\/h2>\n\n\t\t\t<p>Gedecodeerd vertelt een VIN wat de auto is: de fabrikant, het model en vaak de motor. U kunt dat gratis proberen met onze <a href=\"https:\/\/www.mrvin.com\/vin-decoder\/\">VIN-decoder<\/a>.<\/p>\n\t\t\t<p>Het vertelt niet wat er sindsdien is gebeurd. Kilometerstanden, schadegegevens en tijd in andere landen staan in aparte registers, en een geschiedenisrapport brengt ze samen.<\/p>\n\n\t\t\t<h2 id=\"seller\">Als de verkoper het VIN niet geeft<\/h2>\n\n\t\t\t<p>Een VIN is geen geheim. Bij veel auto&#039;s kunt u het door de voorruit lezen.<\/p>\n\t\t\t<p>Vraag de verkoper om een foto van veld E op de kentekencard. Naam en adres mogen afgedekt zijn, want u hebt alleen die ene regel nodig.<\/p>\n\t\t\t<p>Een verkoper die het nog steeds niet wil delen, verdient een vraag voordat u erheen reist om de auto te bekijken.<\/p>\n\t\t\t<p>Als de advertentie alleen een kenteken toont, kunt u daar misschien mee beginnen. In sommige landen accepteert ons zoekvak naast een VIN ook een kenteken.<\/p>\n\t\t\t<p>Vergelijkt u nog auto's? U kunt nu <a href=\"https:\/\/www.mrvin.com\/nl\/no-vin\/\">rapporten kopen<\/a> en ze gebruiken zodra u de VIN's hebt.<\/p>\n\n\t\t\t\t\t<div class=\"promo promo-xl\">\n\t\t\t<div class=\"promo-inner\">\n\t\t\t\t<div class=\"promo-main\">\n\t\t\t\t\t<span class=\"promo-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"10.5\" cy=\"10.5\" r=\"7\"\/><path d=\"m7.6 10.6 2.1 2.1 3.9-4.3\"\/><path d=\"m15.6 15.6 4.4 4.4\"\/><\/svg><\/span>\n\t\t\t\t\t<div class=\"promo-text\">\n\t\t\t\t\t\t<p class=\"promo-eyebrow\">Voordat u de verkoper ontmoet<\/p>\n\t\t\t\t\t\t<p class=\"promo-h\">Controleer de geschiedenis van de auto binnen een minuut<\/p>\n\t\t\t\t\t\t<p class=\"promo-sub\">Schade-, kilometer-, veiling- en importgegevens uit 30+ landen, in \u00e9\u00e9n rapport.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<ul class=\"promo-trust\">\n\t\t\t\t\t<li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"8.5\"\/><path d=\"M3.5 12h17\"\/><path d=\"M12 3.5c2.3 2.4 3.4 5.3 3.4 8.5s-1.1 6.1-3.4 8.5c-2.3-2.4-3.4-5.3-3.4-8.5S9.7 5.9 12 3.5Z\"\/><\/svg><span>30+ landen<\/span><\/li>\n\t\t\t\t\t<li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"8.5\"\/><path d=\"M12 7v5.3l3.4 2\"\/><\/svg><span>Binnen een minuut<\/span><\/li>\n\t\t\t\t\t<li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M13.5 3.5h-6a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2V8.5Z\"\/><path d=\"M13.5 3.5V8.5h5\"\/><path d=\"M9 13.4h6M9 16.4h4\"\/><\/svg><span>Volledig PDF-rapport<\/span><\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t<a class=\"promo-btn\" href=\"#vincheck\" data-go=\"vincheck\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3.5 17v-4.1l1.7-4.2a2 2 0 0 1 1.9-1.2h9.8a2 2 0 0 1 1.9 1.2l1.7 4.2V17\"\/><path d=\"M4 12.9h16\"\/><circle cx=\"7.6\" cy=\"17\" r=\"1.7\"\/><circle cx=\"16.4\" cy=\"17\" r=\"1.7\"\/><\/svg><span>Controleer een VIN<\/span><svg class=\"pb-arrow\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12h13\"\/><path d=\"m12.5 6.4 6 5.6-6 5.6\"\/><\/svg><\/a>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<p class=\"promo-alt\"><a href=\"https:\/\/www.mrvin.com\/nl\/sample-report\/\"><span>Twijfelt u nog? Bekijk eerst hoe een volledig rapport eruitziet<\/span><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12h13\"\/><path d=\"m12.5 6.4 6 5.6-6 5.6\"\/><\/svg><\/a><\/p>\n\t\t\n\t\t\t<section class=\"faq\" id=\"faq\">\n\t\t\t\t<h2>Veelgestelde vragen<\/h2>\n\t\t\t\t\t\t\t\t\t<div class=\"faq-item\">\n\t\t\t\t\t\t<p class=\"faq-q\">Is het chassisnummer hetzelfde als het VIN?<\/p>\n\t\t\t\t\t\t<p class=\"faq-a\">Bij bijna elke in Europa verkochte auto wel. Chassisnummer, framenummer en FIN betekenen allemaal dezelfde 17 tekens. Zeer oude auto&#039;s en sommige uit Japan ge\u00efmporteerde auto&#039;s kunnen een korter nummer hebben, en geschiedeniscontroles kunnen die meestal niet dekken.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"faq-item\">\n\t\t\t\t\t\t<p class=\"faq-q\">Hoeveel tekens heeft een VIN?<\/p>\n\t\t\t\t\t\t<p class=\"faq-a\">17, opgebouwd uit letters en cijfers. De letters I, O en Q worden nooit gebruikt.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"faq-item\">\n\t\t\t\t\t\t<p class=\"faq-q\">Is het veilig om mijn VIN te delen?<\/p>\n\t\t\t\t\t\t<p class=\"faq-a\">Over het algemeen wel. Kopers, verzekeraars en garages vragen er allemaal naar, en bij veel auto&#039;s is het door de voorruit te lezen. Het hoogste EU-gerecht heeft geoordeeld dat een VIN op zichzelf geen persoonsgegeven is, al kan het er een worden voor iemand die het aan een persoon kan koppelen. Het echte risico is klonen, waarbij een echt VIN op een andere auto wordt gekopieerd, dus plaats geen duidelijke foto van uw documenten online.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"faq-item\">\n\t\t\t\t\t\t<p class=\"faq-q\">Kan iemand de eigenaar vinden via een VIN?<\/p>\n\t\t\t\t\t\t<p class=\"faq-a\">Niet via MrVIN. Onze rapporten kunnen laten zien wanneer een auto van eigenaar wisselde en of de eigenaar een particulier of een bedrijf was, voor zover dat bekend is. Ze noemen niemand bij naam.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"faq-item\">\n\t\t\t\t\t\t<p class=\"faq-q\">Waarom staan er zoveel Z&#039;s in mijn VIN?<\/p>\n\t\t\t\t\t\t<p class=\"faq-a\">Z is een veelgebruikt opvulteken voor plekken die de fabrikant niet nodig heeft. Europese Volkswagen-VIN&#039;s hebben bijvoorbeeld ZZZ op positie 4 tot 6.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"faq-item\">\n\t\t\t\t\t\t<p class=\"faq-q\">Wat als een VIN-controle niets vindt?<\/p>\n\t\t\t\t\t\t<p class=\"faq-a\">Controleer eerst de tekens. Een 0 lezen als de letter O of een 1 als de letter I is de meest voorkomende vergissing. Kloppen ze, dan heeft de auto misschien gewoon weinig gegevens, en ook dat is goed om te weten.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/section>\n\n\t\t\t<section class=\"sources\">\n\t\t\t\t<h2>Bronnen<\/h2>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>Richtlijn 1999\/37\/EG van de Raad betreffende de kentekenbewijzen voor voertuigen, bijlage I<\/li>\n\t\t\t\t\t<li>Uitvoeringsverordening (EU) 2021\/535 van de Commissie, bijlage II, voertuigidentificatienummer<\/li>\n\t\t\t\t\t<li>Hof van Justitie van de EU, zaak C-319\/22, Gesamtverband Autoteile-Handel, 9 november 2023<\/li>\n\t\t\t\t\t<li>RDW, gegevens op de Nederlandse kentekencard<\/li>\n\t\t\t\t\t<li>ADAC, uitleg over het Duitse kentekenbewijs<\/li>\n\t\t\t\t\t<li>GOV.UK, voertuigidentificatienummer<\/li>\n\t\t\t\t\t<li>RAC, wat het klonen van auto&#039;s is en hoe kopers het kunnen herkennen<\/li>\n\t\t\t\t<\/ul>\n\t\t\t<\/section>\n\n\t\t\t\t<section class=\"readnext\">\n\t\t\t<p class=\"eyebrow\">Lees verder<\/p>\n\t\t\t<div class=\"readnext-grid\">\n\t\t\t\t\t\t\t\t\t<a class=\"readnext-card\" href=\"https:\/\/www.mrvin.com\/nl\/blog\/auto-importeren-uit-amerika\/\">\n\t\t\t\t\t\t<span class=\"rn-img\" style=\"background-image:url('https:\/\/www.mrvin.com\/wp-content\/uploads\/blog\/usimport\/us-import-cover.webp')\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t\t<span class=\"rn-body\">\n\t\t\t\t\t\t\t<span class=\"rn-title\">Auto importeren uit Amerika: wat u in Nederland moet weten<\/span>\n\t\t\t\t\t\t\t<span class=\"rn-dek\">Invoerrechten, btw, BPM en de RDW-keuring. En waarom een ontbrekend CO2-getal meer kan kosten dan de auto zelf.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"rn-more\">Lees de handleiding &rarr;<\/span>\n\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<a class=\"readnext-card\" href=\"https:\/\/www.mrvin.com\/nl\/blog\/property-history-report\/\">\n\t\t\t\t\t\t<span class=\"rn-img\" style=\"background-image:url('https:\/\/www.mrvin.com\/wp-content\/uploads\/blog\/property-history\/property-cover.webp')\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t\t<span class=\"rn-body\">\n\t\t\t\t\t\t\t<span class=\"rn-title\">Uw auto heeft een geschiedenisrapport. De woning die u staat te kopen ook.<\/span>\n\t\t\t\t\t\t\t<span class=\"rn-dek\">Een VIN-controle vertelt u wat de verkoper van een auto niet heeft genoemd. Ook een woning laat een papieren spoor na, en in Letland, Polen en Sloveni\u00eb staat het meeste daarvan in openbare registers. Hier leest u wat u opzoekt voordat u tekent, en wanneer een uitgebreid rapport u het zoekwerk bespaart.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"rn-more\">Lees de handleiding &rarr;<\/span>\n\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<\/article>\n\n\t\t<div class=\"mbar\">\n\t\t\t<div class=\"mbar-top\">\n\t\t\t\t<span class=\"mbar-h\">Gevonden? Bekijk wat er bekend is<\/span>\n\t\t\t\t<button type=\"button\" aria-label=\"Sluiten\">&times;<\/button>\n\t\t\t<\/div>\n\t\t\t<div class=\"mbar-row\">\n\t\t\t\t<a href=\"#vincheck\" data-go=\"vincheck\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"10.5\" cy=\"10.5\" r=\"7\"\/><path d=\"m7.6 10.6 2.1 2.1 3.9-4.3\"\/><path d=\"m15.6 15.6 4.4 4.4\"\/><\/svg><span>Check nu een auto<\/span><\/a>\n\t\t\t<\/div>\n\t\t<\/div>\n\n\t\t<script>\n\t\t(function () {\n\t\t  var tool = document.getElementById('mrvin-blog-vt');\n\t\t  if (!tool) return;\n\t\t  var input = tool.querySelector('input');\n\t\t  var groups = tool.querySelectorAll('.chars');\n\t\t  var message = tool.querySelector('.vt-msg');\n\t\t  input.addEventListener('input', function () {\n\t\t    var vin = input.value.toUpperCase().replace(\/[^A-Z0-9]\/g, '').slice(0, 17);\n\t\t    input.value = vin;\n\t\t    groups[0].textContent = vin.slice(0, 3);\n\t\t    groups[1].textContent = vin.slice(3, 9);\n\t\t    groups[2].textContent = vin.slice(9);\n\t\t    var hasBannedLetter = \/[IOQ]\/.test(vin);\n\t\t    message.className = hasBannedLetter ? 'vt-msg bad' : 'vt-msg';\n\t\t    \/\/ The count is digits only, so it needs no translated sentence\n\t\t    message.textContent = hasBannedLetter ? tool.getAttribute('data-bad') : (vin.length ? vin.length + ' \/ 17' : '');\n\t\t  });\n\t\t})();\n\t\t<\/script>\n\n\t\t<script>\n(function(){\n  var ROOT = document.querySelector('.mrvin-blog-post'); if(!ROOT) return;\n  ROOT.querySelectorAll('.mrvin-search-tabs').forEach(function(tabs){\n    tabs.querySelectorAll('.mrvin-search-tab').forEach(function(tab){\n      tab.addEventListener('click', function(){\n        tabs.querySelectorAll('.mrvin-search-tab').forEach(function(t){ t.classList.remove('active'); });\n        tab.classList.add('active');\n        var box   = tab.closest('.mrvin-search-box'),\n            input = box.querySelector('.mrvin-search-input'),\n            btn   = box.querySelector('.mrvin-search-btn span') || box.querySelector('.mrvin-search-btn'),\n            hint  = box.parentNode.querySelector('.mrvin-search-hint'),\n            plate = tab.getAttribute('data-mode') === 'plate';\n        input.placeholder = input.getAttribute(plate ? 'data-ph-plate' : 'data-ph-vin');\n        input.name        = plate ? 'plate' : 'vin';\n        input.maxLength   = plate ? 10 : 32;\n        btn.textContent   = input.getAttribute(plate ? 'data-btn-plate' : 'data-btn-vin');\n        if (hint) hint.style.display = plate ? 'none' : '';\n      });\n    });\n  });\n\n  \/* Auto-submit once a full, valid VIN is typed, so nobody has to find Enter.\n     VIN mode only: a plate is never long enough to be unambiguous. *\/\n  var VIN_RE = \/^[A-HJ-NPR-Z0-9]{17}$\/i;\n  ROOT.querySelectorAll('.mrvin-search-box').forEach(function(box){\n    var input = box.querySelector('.mrvin-search-input'),\n        form  = box.querySelector('.mrvin-search-row');\n    if (!input || !form) return;\n    var timer = null, submitted = false;\n    function cancel(){ if (timer) { clearTimeout(timer); timer = null; } }\n    function isVinMode(){\n  \/\/ A pasted VIN must never be submitted as a plate. Installed once per page: several snippets\n  \/\/ render a plate box (home page sections, the v2 landing page, the blog rail) and any of them\n  \/\/ may be the one on screen, so each ships this and the flag keeps the duplicates harmless.\n  \/\/\n  \/\/ The plate field caps its length, so pasting a 17-character VIN used to leave a TRUNCATED\n  \/\/ fragment behind: it looks like a plate, submits like a plate, and buys a metered registry call\n  \/\/ that cannot match. Every plate lookup of 14-15 characters on record was this, and not one\n  \/\/ resolved. `paste` is where it is catchable, because the clipboard text is readable in full\n  \/\/ BEFORE maxlength truncates it, so the VIN is kept whole and the customer lands in the mode\n  \/\/ they actually wanted. 17 alphanumerics is the VIN's own definition and the longest plate ever\n  \/\/ to resolve is 8, so this cannot misfire on a real registration.\n  if (!window.__mrvinPlatePasteGuard) {\n    window.__mrvinPlatePasteGuard = 1;\n    document.addEventListener('paste', function(e){\n      var input = e.target;\n      if (!input || input.tagName !== 'INPUT') return;\n      if (input.name !== 'plate' && input.name !== 'userPlate') return;  \/\/ funnel names it userPlate\n      var cb = e.clipboardData || window.clipboardData;\n      if (!cb) return;\n      var raw = String(cb.getData('text') || '').toUpperCase().replace(\/[^A-Z0-9]\/g, '');\n      if (raw.length !== 17) return;                       \/\/ not a VIN \u2014 let the paste through\n      e.preventDefault();\n      var box = input.closest('.mrvin-search-box, .mrvin-cta, .mrvin-sticky-wrap, form') || document;\n      var vinTab = box.querySelector('[data-mode=\"vin\"]');\n      if (vinTab) vinTab.click();                          \/\/ flips name\/placeholder\/maxlength\/button\n      input.value = raw;\n      input.dispatchEvent(new Event('input', { bubbles: true }));\n    }, false);\n  }\n\n      var t = box.querySelector('.mrvin-search-tab[data-mode=\"vin\"]');\n      return !t || t.classList.contains('active');\n    }\n    input.addEventListener('input', function(){\n      cancel();\n      if (submitted || !isVinMode() || !VIN_RE.test((input.value||'').trim())) return;\n      timer = setTimeout(function(){\n        timer = null;\n        if (submitted || !isVinMode() || !VIN_RE.test((input.value||'').trim())) return;\n        submitted = true;\n        if (typeof form.requestSubmit === 'function') form.requestSubmit(); else form.submit();\n      }, 1000);\n    });\n    box.querySelectorAll('.mrvin-search-tab').forEach(function(t){ t.addEventListener('click', cancel); });\n    form.addEventListener('submit', function(){ submitted = true; cancel(); });\n  });\n})();\n<\/script>\n\t\t<script>\n(function(){\n  var ROOT = document.querySelector('.mrvin-blog-post'); if(!ROOT) return;\n  var ARTICLE = \"where-to-find-vin-number\";\n\n  function push(event, extra){\n    try {\n      window.dataLayer = window.dataLayer || [];\n      var p = { event: event, vin_article: ARTICLE };\n      for (var k in extra) if (Object.prototype.hasOwnProperty.call(extra, k)) p[k] = extra[k];\n      window.dataLayer.push(p);\n    } catch(e){}\n  }\n\n  ROOT.addEventListener('click', function(e){\n    var t = e.target.closest && e.target.closest('[data-go]'); if(!t) return;\n    var card = document.getElementById(t.getAttribute('data-go')); if(!card) return;\n    e.preventDefault();\n    push('vin_entry_click', { vin_entry: t.closest('.side-cta') ? 'rail'\n                                       : t.closest('.mbar')     ? 'mobile_bar'\n                                       : t.closest('.jumpline') ? 'summary'\n                                       : t.closest('.promo')    ? 'end_cta' : 'link' });\n    card.scrollIntoView({behavior:'smooth', block:'center'});\n    var input = card.querySelector('.mrvin-search-input');\n    if(input) setTimeout(function(){ input.focus({preventScroll:true}); }, 520);\n  });\n\n  var form = ROOT.querySelector('#vincheck .mrvin-search-row');\n  if (form) form.addEventListener('submit', function(){\n    var v = form.querySelector('.mrvin-search-input');\n    push('vin_submit', { vin_mode: v && v.name === 'plate' ? 'plate' : 'vin',\n                         vin_length: v && v.value ? v.value.trim().length : 0 });\n  });\n\n  var card = document.getElementById('vincheck');\n  if (card && 'IntersectionObserver' in window) {\n    var timer = null;\n    var io = new IntersectionObserver(function(es){\n      if (es[0].isIntersecting) { timer = setTimeout(function(){ io.disconnect(); push('vin_card_view'); }, 1000); }\n      else if (timer) { clearTimeout(timer); timer = null; }\n    }, { threshold: 0.5 });\n    io.observe(card);\n  }\n\n  \/* Mobile bar: appears once the summary is behind you, retreats at the closing\n     CTA so it never covers it. IntersectionObserver rather than scroll maths,\n     so it works whichever element actually scrolls. *\/\n  var bar = ROOT.querySelector('.mbar');\n  if (bar && 'IntersectionObserver' in window) {\n    var dismissed = false, past = false, atEnd = false;\n    function sync(){ bar.classList.toggle('on', past && !atEnd && !dismissed); }\n    var x = bar.querySelector('button');\n    if (x) x.addEventListener('click', function(){ dismissed = true; sync(); });\n    var trig = ROOT.querySelector('.mbar-trigger');\n    if (trig) new IntersectionObserver(function(es){\n      past = es[0].isIntersecting || es[0].boundingClientRect.top < 0; sync();\n    }, {threshold:0}).observe(trig);\n    \/* .mbar-end marks a closing CTA that is not a .promo-xl (the business article\n       ends on the enquiry form). *\/\n    var endPromo = ROOT.querySelector('.promo-xl, .mbar-end');\n    if (endPromo) new IntersectionObserver(function(es){\n      atEnd = es[0].isIntersecting || es[0].boundingClientRect.top < 0; sync();\n    }, {rootMargin:'0px 0px -10% 0px'}).observe(endPromo);\n  }\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t<\/div>\n\t<script>\n(function(){\n  var ROOT=document.querySelector('.mrvin-blog-post'); if(!ROOT) return;\n  var I18N={\"readMin\":\"leestijd: min\",\"copied\":\"Gekopieerd\",\"chart1\":{\"inCountry\":\"Verkocht binnen een land\",\"crossBorder\":\"Verkocht over EU-grenzen\",\"ofCars\":\"% van de auto's\"},\"chart2\":{\"before\":\"V\u00f3\u00f3r de database\",\"after\":\"2024 (met Car-Pass)\",\"cases\":\"gevallen\"},\"rank\":{\"unit\":\"controles\"},\"calc\":{\"perYear\":\"km \/ jaar\",\"typicalFor\":\"Gebruikelijk voor de leeftijd\",\"thisCar\":\"Deze auto\",\"difference\":\"Verschil\",\"about\":\"ongeveer gebruikelijk\",\"pctBelow\":\"% onder het gebruikelijke niveau\",\"pctAbove\":\"% boven het gebruikelijke niveau\",\"rangeLegend\":\"Gebruikelijk bereik voor de leeftijd\",\"noteValue\":\"Als de werkelijke kilometerstand dichter bij {expected} km ligt, kunnen de ontbrekende {hidden} km de vraagprijs van {price} met heel ruwweg {est} verhogen (ongeveer 4% van de waarde per 10.000 km).\",\"noteHidden\":\"Dat is ongeveer {hidden} km onder het gebruikelijke niveau. Voeg hierboven een vraagprijs toe om te schatten hoeveel waarde er op het spel staat.\",\"tiers\":{\"veryLow\":{\"label\":\"Zeer lage kilometerstand\",\"color\":\"#A32D2D\",\"msg\":\"Dit ligt ver onder wat een auto van deze leeftijd normaal aflegt. Auto's met een echte lage kilometerstand bestaan, maar dit is precies het patroon dat kilometerfraude cre\u00ebert. Sta erop dat er een vastgelegde kilometerstandgeschiedenis is voordat u de teller vertrouwt.\"},\"below\":{\"label\":\"Onder het gebruikelijke niveau\",\"color\":\"#854F0B\",\"msg\":\"Een beetje onder het gemiddelde. Vaak legitiem, maar de moeite waard om te bevestigen aan de hand van afgestempelde onderhoudsboekjes en geregistreerde standen.\"},\"normal\":{\"label\":\"Ziet er normaal uit\",\"color\":\"#0F6E56\",\"msg\":\"Binnen het normale bereik voor de leeftijd en het gebruik. Niets ongewoons aan de kilometerstand alleen, al is een volledige voertuighistoriecontrole nog steeds verstandig.\"},\"above\":{\"label\":\"Boven het gebruikelijke niveau\",\"color\":\"#854F0B\",\"msg\":\"Boven gemiddeld voor de leeftijd. Op zichzelf geen signaal van fraude, maar verwacht meer slijtage en gebruik dit als onderhandelingsargument om de prijs te verlagen.\"},\"veryHigh\":{\"label\":\"Zeer hoge kilometerstand\",\"color\":\"#A32D2D\",\"msg\":\"Zeer hoog voor de leeftijd. Waarschijnlijk een voormalige wagenparkauto, taxi of auto met een lang woon-werktraject. Houd rekening met zwaardere slijtage en controleer het onderhoudsdossier grondig.\"}}}}, HOME=\"https:\\\/\\\/www.mrvin.com\\\/nl\\\/\", CDN=\"\/wp-content\/uploads\/vendor\/chart-4.4.1.umd.js\";\n  var SANS=\"-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif\";\n  var $=function(id){return document.getElementById(id);};\n\n  \/* reading progress bar *\/\n  var bar=$('mrvin-blog-progress');\n  function prog(){var h=document.documentElement,max=h.scrollHeight-h.clientHeight;if(bar)bar.style.width=(max>0?(h.scrollTop\/max)*100:0)+'%';}\n  document.addEventListener('scroll',prog,{passive:true});window.addEventListener('resize',prog);prog();\n\n  \/* estimated read time *\/\n  var art=ROOT.querySelector('article');\n  if(art){var rt=$('mrvin-blog-readtime');var w=(art.innerText.match(\/\\S+\/g)||[]).length;if(rt)rt.textContent=Math.max(1,Math.round(w\/225))+' '+I18N.readMin;}\n\n  \/* share buttons *\/\n  var url=encodeURIComponent(location.href),txt=encodeURIComponent(document.title.split('|')[0].trim());\n  if($('mrvin-blog-sh-x'))$('mrvin-blog-sh-x').href='https:\/\/twitter.com\/intent\/tweet?url='+url+'&text='+txt;\n  if($('mrvin-blog-sh-li'))$('mrvin-blog-sh-li').href='https:\/\/www.linkedin.com\/sharing\/share-offsite\/?url='+url;\n  if($('mrvin-blog-sh-fb'))$('mrvin-blog-sh-fb').href='https:\/\/www.facebook.com\/sharer\/sharer.php?u='+url;\n  if($('mrvin-blog-sh-copy'))$('mrvin-blog-sh-copy').addEventListener('click',function(e){var b=e.currentTarget,o=b.innerHTML;try{navigator.clipboard.writeText(location.href);}catch(err){}b.textContent='\u2713';setTimeout(function(){b.innerHTML=o;},1200);});\n\n  \/* ToC scrollspy *\/\n  var links={};ROOT.querySelectorAll('.toc a').forEach(function(a){links[a.getAttribute('href').slice(1)]=a;});\n  if('IntersectionObserver' in window){\n    var spy=new IntersectionObserver(function(es){es.forEach(function(e){if(e.isIntersecting){Object.keys(links).forEach(function(k){links[k].classList.remove('active');});if(links[e.target.id])links[e.target.id].classList.add('active');}});},{rootMargin:'-92px 0px -68% 0px',threshold:0});\n    Object.keys(links).forEach(function(id){var el=$(id);if(el)spy.observe(el);});\n  }\n\n  \/* back to top *\/\n  var top=$('mrvin-blog-totop');\n  if(top){window.addEventListener('scroll',function(){top.classList.toggle('show',window.scrollY>600);},{passive:true});top.addEventListener('click',function(){window.scrollTo({top:0,behavior:'smooth'});});}\n\n  \/* VIN-check card submit *\/\n  \/* VIN search box: auto-submit once a full 17-char VIN is typed (matches the homepage hero) *\/\n  (function(){\n    var box=ROOT.querySelector('.mrvin-search-box'); if(!box) return;\n    var input=box.querySelector('.mrvin-search-input'), form=box.querySelector('form'); if(!input||!form) return;\n    var VIN_RE=\/^[A-HJ-NPR-Z0-9]{17}$\/i, timer=null, submitted=false;\n    function cancel(){ if(timer){clearTimeout(timer);timer=null;} }\n    input.addEventListener('input',function(){\n      cancel(); if(submitted) return;\n      if(!VIN_RE.test((input.value||'').trim())) return;\n      timer=setTimeout(function(){ timer=null; if(submitted) return;\n        if(!VIN_RE.test((input.value||'').trim())) return;\n        submitted=true; if(typeof form.requestSubmit==='function') form.requestSubmit(); else form.submit();\n      },1000);\n    });\n    form.addEventListener('submit',function(){ submitted=true; cancel(); });\n  })();\n\n  \/* reveal on scroll *\/\n  var rev=ROOT.querySelectorAll('figure,.tldr,.calc,.takeaway,.promo,.promo-vin');\n  rev.forEach(function(el){el.classList.add('reveal');});\n  if('IntersectionObserver' in window){\n    var ro=new IntersectionObserver(function(es,o){es.forEach(function(e){if(e.isIntersecting){e.target.classList.add('in');o.unobserve(e.target);}});},{threshold:0.12});\n    rev.forEach(function(el){ro.observe(el);});\n  } else { rev.forEach(function(el){el.classList.add('in');}); }\n\n  \/* mileage calculator *\/\n  var cY=$('mrvin-blog-calc-year'),cK=$('mrvin-blog-calc-km'),cU=$('mrvin-blog-calc-use'),cP=$('mrvin-blog-calc-price'),cO=$('mrvin-blog-calc-out');\n  function tier(r){var T=I18N.calc.tiers;if(r<0.5)return T.veryLow;if(r<0.8)return T.below;if(r<=1.4)return T.normal;if(r<=2.0)return T.above;return T.veryHigh;}\n  function fmt(n){return n.toLocaleString();}\n  function run(){\n    if(!cY||!cK||!cU||!cO)return;\n    var now=new Date().getFullYear(),y=parseInt(cY.value,10),km=parseInt(cK.value,10),bm=parseInt(cU.value,10);\n    if(!y||isNaN(km)||y<1950||y>now||km<0){cO.classList.remove('show');cO.innerHTML='';return;}\n    var age=Math.max(1,now-y),per=Math.round(km\/age),exp=bm*age,ratio=per\/bm,t=tier(ratio);\n    var gap=Math.round((km-exp)\/exp*100),gapTxt=Math.abs(gap)<5?I18N.calc.about:(Math.abs(gap)+(gap<0?I18N.calc.pctBelow:I18N.calc.pctAbove));\n    var bandLow=exp*0.8,bandHigh=exp*1.4,scaleMax=Math.max(km,bandHigh,exp)*1.15;\n    var bL=bandLow\/scaleMax*100,bW=(bandHigh-bandLow)\/scaleMax*100,mk=Math.min(100,km\/scaleMax*100);\n    var note='';\n    if(ratio<0.8){\n      var hidden=exp-km,price=parseInt(cP&&cP.value,10);\n      if(price&&price>0&&hidden>0){\n        var est=Math.round(price*0.04*(hidden\/10000)\/100)*100;if(est>price)est=price;\n        if(est>0)note=' '+I18N.calc.noteValue.replace('{expected}',fmt(exp)).replace('{hidden}',fmt(hidden)).replace('{price}','\u20ac'+fmt(price)).replace('{est}','\u20ac'+fmt(est));\n      } else if(hidden>0){\n        note=' '+I18N.calc.noteHidden.replace('{hidden}',fmt(hidden));\n      }\n    }\n    cO.innerHTML=\n      '<div class=\"calc-verdict\" style=\"color:'+t.color+'\">'+t.label+'<\/div>'+\n      '<span class=\"calc-num\" style=\"color:'+t.color+'\">'+fmt(per)+' '+I18N.calc.perYear+'<\/span>'+\n      '<div class=\"calc-bar\"><div class=\"calc-bar-band\" style=\"left:'+bL+'%;width:'+bW+'%\"><\/div><div class=\"calc-bar-mark\" style=\"left:'+mk+'%;background:'+t.color+'\"><\/div><\/div>'+\n      '<div class=\"calc-bar-legend\"><span><span class=\"sw\" style=\"background:#9FE1CB\"><\/span>'+I18N.calc.rangeLegend+'<\/span><span><span class=\"sw\" style=\"background:'+t.color+';width:3px;height:13px\"><\/span>'+I18N.calc.thisCar+'<\/span><\/div>'+\n      '<div class=\"calc-metrics\"><div>'+I18N.calc.typicalFor+'<b>'+fmt(exp)+' km<\/b><\/div><div>'+I18N.calc.thisCar+'<b>'+fmt(km)+' km<\/b><\/div><div>'+I18N.calc.difference+'<b>'+gapTxt+'<\/b><\/div><\/div>'+\n      '<p class=\"calc-msg\">'+t.msg+note+'<\/p>';\n    cO.classList.add('show');\n  }\n  [cY,cK,cU,cP].forEach(function(el){if(el)el.addEventListener('input',run);});\n\n  \/* charts (load Chart.js on demand, build when scrolled into view) *\/\n  var chartsBuilt=false;\n  function loadChart(cb){if(window.Chart){cb();return;}var s=document.createElement('script');s.src=CDN;s.onload=cb;s.onerror=function(){};document.head.appendChild(s);}\n  var rangeLabels={id:'rangeLabels',afterDatasetsDraw:function(c){var x=c.ctx,m=c.getDatasetMeta(0);m.data.forEach(function(b,i){var v=c.data.datasets[0].data[i];x.save();x.font=\"500 14px \"+SANS;x.fillStyle=\"#0B1120\";x.textBaseline=\"middle\";x.fillText(v[0]+' to '+v[1]+'%',b.x+10,b.y);x.restore();});}};\n  function chart1(){var el=$('mrvin-blog-chart1');if(!el)return;new Chart(el,{type:'bar',data:{labels:[I18N.chart1.inCountry,I18N.chart1.crossBorder],datasets:[{data:[[5,12],[30,50]],backgroundColor:['#85B7EB','#003399'],borderRadius:7,barThickness:48}]},options:{indexAxis:'y',responsive:true,maintainAspectRatio:false,animation:{duration:1100,easing:'easeOutQuart'},layout:{padding:{right:54}},plugins:{legend:{display:false},tooltip:{callbacks:{label:function(c){return c.raw[0]+' to '+c.raw[1]+I18N.chart1.ofCars;}}}},scales:{x:{min:0,max:55,ticks:{callback:function(v){return v+'%';},color:'#94A3B8',font:{family:SANS}},grid:{color:'#EEF2F6'},border:{display:false}},y:{ticks:{color:'#3A4F66',font:{size:14,family:SANS}},grid:{display:false},border:{display:false}}}},plugins:[rangeLabels]});}\n  var valueLabels={id:'valueLabels',afterDatasetsDraw:function(c){var x=c.ctx,m=c.getDatasetMeta(0),txt=['~80,000','1,411'];m.data.forEach(function(b,i){x.save();x.font=\"500 15px \"+SANS;x.fillStyle=i===0?'#9A3636':'#0F6E56';x.textAlign='center';x.fillText(txt[i],b.x,b.y-10);x.restore();});}};\n  function chart2(){var el=$('mrvin-blog-chart2');if(!el)return;new Chart(el,{type:'bar',data:{labels:[I18N.chart2.before,I18N.chart2.after],datasets:[{data:[80000,1411],backgroundColor:['#E24B4A','#1D9E75'],borderRadius:8,barThickness:96}]},options:{responsive:true,maintainAspectRatio:false,animation:{duration:1200,easing:'easeOutQuart'},layout:{padding:{top:24}},plugins:{legend:{display:false},tooltip:{callbacks:{label:function(c){return c.parsed.y.toLocaleString()+' '+I18N.chart2.cases;}}}},scales:{x:{ticks:{color:'#3A4F66',font:{size:14,family:SANS}},grid:{display:false},border:{display:false}},y:{beginAtZero:true,ticks:{callback:function(v){return v.toLocaleString();},color:'#94A3B8',font:{family:SANS}},grid:{color:'#EEF2F6'},border:{display:false}}}},plugins:[valueLabels]});}\n  \/* generic ranked horizontal bar charts: any <canvas class=\"mrvin-blog-rank\" data-chart='{\"labels\":[],\"data\":[],\"colors\":[]}'>\n     Labels are proper nouns (model names) so they stay untranslated; only the unit suffix comes from I18N. *\/\n  function rankCharts(){\n    ROOT.querySelectorAll('canvas.mrvin-blog-rank').forEach(function(el){\n      var cfg; try{ cfg=JSON.parse(el.getAttribute('data-chart')||'null'); }catch(e){ return; }\n      if(!cfg||!cfg.labels||!cfg.data) return;\n      var unit=(I18N.rank&&I18N.rank.unit)||'';\n      new Chart(el,{type:'bar',\n        data:{labels:cfg.labels,datasets:[{data:cfg.data,backgroundColor:cfg.colors||'#003399',borderRadius:6,barThickness:20}]},\n        options:{indexAxis:'y',responsive:true,maintainAspectRatio:false,\n          animation:{duration:1100,easing:'easeOutQuart'},\n          plugins:{legend:{display:false},tooltip:{callbacks:{label:function(c){return c.parsed.x.toLocaleString()+' '+unit;}}}},\n          scales:{x:{grid:{color:'#EEF2F6'},ticks:{color:'#94A3B8',font:{family:SANS}},border:{display:false}},\n            y:{grid:{display:false},ticks:{color:'#3A4F66',font:{size:12.5,family:SANS}},border:{display:false}}}}});\n    });\n  }\n  \/* generic line charts: any <canvas class=\"mrvin-blog-line\" data-chart='{\"labels\":[],\"series\":[{\"label\":\"\",\"color\":\"\",\"data\":[]}]}'>\n     Every label arrives already translated from PHP, so unlike chart1\/chart2 this\n     needs no I18N plumbing and no per-article keys in the shared context.\n     Per-series flags: fill, dash (dashed reference line), point (show markers),\n     tip:false (keep it out of the tooltip, e.g. a warranty floor). *\/\n  function lineCharts(){\n    ROOT.querySelectorAll('canvas.mrvin-blog-line').forEach(function(el){\n      var cfg; try{ cfg=JSON.parse(el.getAttribute('data-chart')||'null'); }catch(e){ return; }\n      if(!cfg||!cfg.labels||!cfg.series) return;\n      var sfx=cfg.suffix||'';\n      var ds=cfg.series.map(function(s){\n        return {label:s.label||'',data:s.data,_tip:s.tip!==false,\n          borderColor:s.color||'#003399',\n          backgroundColor:s.fill?(s.fillColor||'rgba(0,51,153,.09)'):'transparent',fill:!!s.fill,\n          borderDash:s.dash?[6,5]:undefined,tension:s.dash?0:.3,borderWidth:s.dash?1.5:3,\n          pointRadius:s.point?4:0,pointHoverRadius:s.dash?0:(s.point?6:5),\n          pointBackgroundColor:s.color||'#003399',pointBorderColor:'#fff',pointBorderWidth:2};\n      });\n      new Chart(el,{type:'line',data:{labels:cfg.labels,datasets:ds},\n        options:{responsive:true,maintainAspectRatio:false,\n          animation:{duration:1250,easing:'easeOutQuart'},\n          plugins:{legend:{display:false},tooltip:{\n            filter:function(c){return c.dataset._tip!==false;},\n            callbacks:{\n              title:function(items){var i=items[0].dataIndex,l=items[0].label;\n                if(0===i&&cfg.titleFirst)return cfg.titleFirst;\n                return cfg.titlePrefix?(cfg.titlePrefix+' '+l):l;},\n              label:function(c){return (c.dataset.label?c.dataset.label+': ':'')+c.parsed.y.toLocaleString()+sfx;}}}},\n          scales:{\n            x:{title:cfg.xTitle?{display:true,text:cfg.xTitle,color:'#94A3B8',font:{size:12,family:SANS}}:{display:false},\n              ticks:{color:'#3A4F66',font:{size:12.5,family:SANS}},grid:{display:false},border:{display:false}},\n            y:{min:cfg.yMin,max:cfg.yMax,beginAtZero:0===cfg.yMin,\n              ticks:{stepSize:cfg.yStep,callback:function(v){return v+sfx;},color:'#94A3B8',font:{family:SANS}},\n              grid:{color:'#EEF2F6'},border:{display:false}}}}});\n    });\n  }\n  function buildCharts(){if(chartsBuilt)return;chartsBuilt=true;chart1();chart2();rankCharts();lineCharts();}\n  var c1=$('mrvin-blog-chart1')||ROOT.querySelector('canvas.mrvin-blog-rank,canvas.mrvin-blog-line');\n  if(c1&&'IntersectionObserver' in window){\n    var co=new IntersectionObserver(function(es,o){es.forEach(function(e){if(e.isIntersecting){loadChart(buildCharts);o.disconnect();}});},{threshold:0.2});\n    co.observe(c1);\n  } else if(c1){ loadChart(buildCharts); }\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":0,"featured_media":0,"parent":1002,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-43219","page","type-page","status-publish","hentry"],"blocksy_meta":[],"yoast_head":"<title>Chassisnummer vinden op auto en kentekencard | MrVIN<\/title>\n<meta name=\"description\" content=\"Op uw kentekencard staat het chassisnummer (VIN) in veld E. Zo vindt u het op de auto, leest u de 17 tekens en ziet u waarom elke kopie moet kloppen.\" \/>\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\/nl\/blog\/chassisnummer-auto\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Chassisnummer vinden op auto en kentekencard | MrVIN\" \/>\n<meta property=\"og:description\" content=\"Op uw kentekencard staat het chassisnummer (VIN) in veld E. Zo vindt u het op de auto, leest u de 17 tekens en ziet u waarom elke kopie moet kloppen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mrvin.com\/nl\/blog\/chassisnummer-auto\/\" \/>\n<meta property=\"og:site_name\" content=\"MrVIN\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-02T11:40:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/logo\/social\/mrvin-social-preview-nl.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\/social\/mrvin-social-preview-nl.png\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mrvin.com\\\/nl\\\/blog\\\/chassisnummer-auto\\\/\",\"url\":\"https:\\\/\\\/www.mrvin.com\\\/nl\\\/blog\\\/chassisnummer-auto\\\/\",\"name\":\"Chassisnummer vinden op auto en kentekencard | MrVIN\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mrvin.com\\\/#website\"},\"datePublished\":\"2026-11-02T11:25:15+00:00\",\"dateModified\":\"2026-11-02T11:40:02+00:00\",\"description\":\"Op uw kentekencard staat het chassisnummer (VIN) in veld E. Zo vindt u het op de auto, leest u de 17 tekens en ziet u waarom elke kopie moet kloppen.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mrvin.com\\\/nl\\\/blog\\\/chassisnummer-auto\\\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mrvin.com\\\/nl\\\/blog\\\/chassisnummer-auto\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mrvin.com\\\/nl\\\/blog\\\/chassisnummer-auto\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.mrvin.com\\\/nl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.mrvin.com\\\/nl\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Waar staat het chassisnummer op uw auto en op uw kentekencard, en hoe leest u het\"}]},{\"@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\\\/nl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@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.tiktok.com\\\/@mrvin_com\",\"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 Hirsa 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":"Chassisnummer vinden op auto en kentekencard | MrVIN","description":"Op uw kentekencard staat het chassisnummer (VIN) in veld E. Zo vindt u het op de auto, leest u de 17 tekens en ziet u waarom elke kopie moet kloppen.","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\/nl\/blog\/chassisnummer-auto\/","og_locale":"nl_NL","og_type":"article","og_title":"Chassisnummer vinden op auto en kentekencard | MrVIN","og_description":"Op uw kentekencard staat het chassisnummer (VIN) in veld E. Zo vindt u het op de auto, leest u de 17 tekens en ziet u waarom elke kopie moet kloppen.","og_url":"https:\/\/www.mrvin.com\/nl\/blog\/chassisnummer-auto\/","og_site_name":"MrVIN","article_modified_time":"2026-11-02T11:40:02+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.mrvin.com\/wp-content\/uploads\/logo\/social\/mrvin-social-preview-nl.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_image":"https:\/\/www.mrvin.com\/wp-content\/uploads\/logo\/social\/mrvin-social-preview-nl.png","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mrvin.com\/nl\/blog\/chassisnummer-auto\/","url":"https:\/\/www.mrvin.com\/nl\/blog\/chassisnummer-auto\/","name":"Chassisnummer vinden op auto en kentekencard | MrVIN","isPartOf":{"@id":"https:\/\/www.mrvin.com\/#website"},"datePublished":"2026-11-02T11:25:15+00:00","dateModified":"2026-11-02T11:40:02+00:00","description":"Op uw kentekencard staat het chassisnummer (VIN) in veld E. Zo vindt u het op de auto, leest u de 17 tekens en ziet u waarom elke kopie moet kloppen.","breadcrumb":{"@id":"https:\/\/www.mrvin.com\/nl\/blog\/chassisnummer-auto\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mrvin.com\/nl\/blog\/chassisnummer-auto\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.mrvin.com\/nl\/blog\/chassisnummer-auto\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.mrvin.com\/nl\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/www.mrvin.com\/nl\/blog\/"},{"@type":"ListItem","position":3,"name":"Waar staat het chassisnummer op uw auto en op uw kentekencard, en hoe leest u het"}]},{"@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\/nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@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.tiktok.com\/@mrvin_com","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 Hirsa 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\/nl\/wp-json\/wp\/v2\/pages\/43219","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mrvin.com\/nl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.mrvin.com\/nl\/wp-json\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mrvin.com\/nl\/wp-json\/wp\/v2\/comments?post=43219"}],"version-history":[{"count":1,"href":"https:\/\/www.mrvin.com\/nl\/wp-json\/wp\/v2\/pages\/43219\/revisions"}],"predecessor-version":[{"id":43220,"href":"https:\/\/www.mrvin.com\/nl\/wp-json\/wp\/v2\/pages\/43219\/revisions\/43220"}],"up":[{"embeddable":true,"href":"https:\/\/www.mrvin.com\/nl\/wp-json\/wp\/v2\/pages\/1002"}],"wp:attachment":[{"href":"https:\/\/www.mrvin.com\/nl\/wp-json\/wp\/v2\/media?parent=43219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}