{"id":43209,"date":"2026-11-02T13:25:15","date_gmt":"2026-11-02T11:25:15","guid":{"rendered":"https:\/\/www.mrvin.com\/?page_id=43209"},"modified":"2026-11-02T13:40:01","modified_gmt":"2026-11-02T11:40:01","slug":"numero-vin-carte-grise","status":"publish","type":"page","link":"https:\/\/www.mrvin.com\/fr\/blog\/numero-vin-carte-grise\/","title":{"rendered":"O\u00f9 trouver le num\u00e9ro VIN sur votre voiture et votre carte grise, et comment le lire"},"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=\"Table des mati\u00e8res\">\n\t\t\t\t<p class=\"toc-h\">Dans cet article<\/p>\n\t\t\t\t<ol>\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#papers\">Le num\u00e9ro VIN sur votre carte grise<\/a><\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#car\">Le num\u00e9ro VIN sur la voiture<\/a><\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#match\">Les num\u00e9ros VIN concordent-ils tous\u202f?<\/a><\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#read\">Comment lire les 17 caract\u00e8res du num\u00e9ro VIN<\/a><\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#catch\">Deux pi\u00e8ges du num\u00e9ro VIN<\/a><\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#tells\">Ce que le num\u00e9ro VIN peut vous dire, et ce qu&#039;il ne peut pas<\/a><\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#seller\">Quand le vendeur ne donne pas le num\u00e9ro VIN<\/a><\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#faq\">Questions fr\u00e9quentes<\/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\">Vous l&#039;avez trouv\u00e9\u202f? Voyez ce qui est enregistr\u00e9<\/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>V\u00e9rifier une voiture maintenant<span class=\"sc-geo\">R\u00e9sultat en moins d&#039;une minute<\/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\">Guide<\/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 novembre 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 de lecture<\/span>\n\t\t\t<\/div>\n\n\t\t\t<h1>O\u00f9 trouver le num\u00e9ro VIN sur votre voiture et votre carte grise, et comment le lire<\/h1>\n\n\t\t\t<p class=\"dek\">Sur une carte grise r\u00e9cente, le num\u00e9ro VIN figure dans la case E. Sur la voiture, il appara\u00eet \u00e0 plusieurs endroits, et le plus utile est de v\u00e9rifier qu&#039;ils concordent tous.<\/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\">Recherche sur l&#039;historique des v\u00e9hicules<\/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=\"Partager sur 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=\"Partager sur 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=\"Partager sur 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=\"Copier le lien\"><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=\"L&#039;ours MrVIN lisant un num\u00e9ro VIN \u00e0 travers une loupe, \u00e0 la base du pare-brise d&#039;une voiture\">\n\t\t<\/picture>\n\t\t\t\t\t<p class=\"cover-cap\">Le num\u00e9ro VIN est sur la voiture et sur sa carte grise. Lisez les deux.<\/p>\n\n\t\t\t<p class=\"lead\">La plupart des gens cherchent un num\u00e9ro VIN parce qu&#039;un assureur ou un magasin de pi\u00e8ces le leur a demand\u00e9.<\/p>\n\t\t\t<p>Le trouver prend une minute. Mais si vous \u00eates sur le point d&#039;acheter la voiture, l&#039;endroit o\u00f9 vous l&#039;avez trouv\u00e9 compte autant que ce qu&#039;il indique.<\/p>\n\n\t\t\t<div class=\"tldr\">\n\t\t\t\t<p class=\"eyebrow\">L&#039;essentiel<\/p>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>Sur une carte grise r\u00e9cente, le num\u00e9ro VIN figure dans la case E. Les r\u00e8gles de l&#039;UE utilisent ce code dans tous les \u00c9tats membres.<\/li>\n\t\t\t\t\t<li>Sur la voiture, commencez par la plaquette \u00e0 la base du pare-brise, puis le montant de porte, puis le num\u00e9ro frapp\u00e9 dans la carrosserie.<\/li>\n\t\t\t\t\t<li>Un num\u00e9ro VIN compte 17 caract\u00e8res et ne contient jamais les lettres I, O ou Q.<\/li>\n\t\t\t\t\t<li>Toutes les copies du num\u00e9ro VIN doivent \u00eatre identiques. Si l&#039;une diff\u00e8re, faites-la v\u00e9rifier par le service d&#039;immatriculation avant de payer.<\/li>\n\t\t\t\t\t<li>Le num\u00e9ro VIN vous dit ce qu&#039;est la voiture. Un rapport d&#039;historique vous dit ce qui lui est arriv\u00e9.<\/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\">caract\u00e8res dans un VIN standard<\/span><\/div>\n\t\t\t\t\t<div><span class=\"snum\">E<\/span><span class=\"slbl\">la case qui le contient sur les cartes grises de l&#039;UE<\/span><\/div>\n\t\t\t\t\t<div><span class=\"snum\">3<\/span><span class=\"slbl\">copies \u00e0 comparer avant d&#039;acheter\u202f: carte grise, pare-brise et carrosserie<\/span><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<p class=\"jumpline\">Passer directement \u00e0\u202f: <a href=\"#papers\">sur la carte grise<\/a>, <a href=\"#car\">sur la voiture<\/a>, <a href=\"#match\">concordent-ils<\/a> et <a href=\"#vincheck\">v\u00e9rifier un VIN<\/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=\"L&#039;ours MrVIN consultant un rapport d&#039;historique de v\u00e9hicule\" loading=\"lazy\">\n\t\t\t\t<div class=\"pv-body\">\n\t\t\t\t\t<p class=\"pv-h\">Vous l&#039;avez trouv\u00e9\u202f? Voyez ce qui est enregistr\u00e9<\/p>\n\t\t\t\t\t<p>Saisissez les 17 caract\u00e8res, ou photographiez le num\u00e9ro VIN avec votre t\u00e9l\u00e9phone et nous le lirons pour vous.<\/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\":\"Autriche\",\"ph\":\"W-1234 AB\"},{\"iso\":\"BE\",\"plate\":\"B\",\"name\":\"Belgique\",\"ph\":\"1-ABC-123\"},{\"iso\":\"BG\",\"plate\":\"BG\",\"name\":\"Bulgarie\",\"ph\":\"A 1234 BC\"},{\"iso\":\"CY\",\"plate\":\"CY\",\"name\":\"Chypre\",\"ph\":\"ABC 123\"},{\"iso\":\"CZ\",\"plate\":\"CZ\",\"name\":\"Tch\\u00e9coslovaquie\",\"ph\":\"1A2 3456\"},{\"iso\":\"DE\",\"plate\":\"D\",\"name\":\"Allemagne\",\"ph\":\"B-AB 1234\"},{\"iso\":\"DK\",\"plate\":\"DK\",\"name\":\"Danemark\",\"ph\":\"AB 12 345\"},{\"iso\":\"EE\",\"plate\":\"EST\",\"name\":\"Estonie\",\"ph\":\"123 ABC\"},{\"iso\":\"ES\",\"plate\":\"E\",\"name\":\"Espagne\",\"ph\":\"1234 ABC\"},{\"iso\":\"FI\",\"plate\":\"FIN\",\"name\":\"Finlande\",\"ph\":\"ABC-123\"},{\"iso\":\"FR\",\"plate\":\"F\",\"name\":\"France\",\"ph\":\"AB-123-CD\"},{\"iso\":\"GB\",\"plate\":\"GB\",\"name\":\"Royaume-Uni\",\"ph\":\"AB12 CDE\"},{\"iso\":\"GR\",\"plate\":\"GR\",\"name\":\"Gr\\u00e8ce\",\"ph\":\"ABC 1234\"},{\"iso\":\"HU\",\"plate\":\"H\",\"name\":\"Hongrie\",\"ph\":\"ABC-123\"},{\"iso\":\"IE\",\"plate\":\"IRL\",\"name\":\"Irlande\",\"ph\":\"12 D 1234\"},{\"iso\":\"IT\",\"plate\":\"I\",\"name\":\"Italie\",\"ph\":\"AB 123 CD\"},{\"iso\":\"LT\",\"plate\":\"LT\",\"name\":\"Lituanie\",\"ph\":\"ABC 123\"},{\"iso\":\"LU\",\"plate\":\"L\",\"name\":\"Luxembourg\",\"ph\":\"AB 1234\"},{\"iso\":\"LV\",\"plate\":\"LV\",\"name\":\"Lettonie\",\"ph\":\"AB-1234\"},{\"iso\":\"MT\",\"plate\":\"M\",\"name\":\"Malte\",\"ph\":\"ABC 123\"},{\"iso\":\"NL\",\"plate\":\"NL\",\"name\":\"Pays-Bas\",\"ph\":\"12-AB-34\"},{\"iso\":\"PL\",\"plate\":\"PL\",\"name\":\"Pologne\",\"ph\":\"WA 12345\"},{\"iso\":\"PT\",\"plate\":\"P\",\"name\":\"Portugal\",\"ph\":\"12-AB-34\"},{\"iso\":\"RO\",\"plate\":\"RO\",\"name\":\"Roumanie\",\"ph\":\"B 12 ABC\"},{\"iso\":\"SE\",\"plate\":\"S\",\"name\":\"Su\\u00e8de\",\"ph\":\"ABC 123\"},{\"iso\":\"SI\",\"plate\":\"SLO\",\"name\":\"Slov\\u00e9nie\",\"ph\":\"LJ AB-123\"},{\"iso\":\"SK\",\"plate\":\"SK\",\"name\":\"Slovaquie\",\"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\":\"S\\u00e9lectionnez un pays\",\"pick\":\"Veuillez d'abord s\\u00e9lectionner un pays\",\"genericPh\":\"Veuillez saisir le num\\u00e9ro d'immatriculation\",\"plateUnsupported\":\"La recherche par plaque d'immatriculation n'est pas encore disponible \\u00e0 %country%. Veuillez utiliser le num\\u00e9ro d'identification du v\\u00e9hicule (VIN) pour obtenir un rapport plus pr\\u00e9cis. \",\"plateUnsupportedOk\":\"OK\",\"vinErrEmpty\":\"Veuillez saisir un num\\u00e9ro d'identification du v\\u00e9hicule (VIN).\",\"vinErrLength\":\"Un num\\u00e9ro d'identification du v\\u00e9hicule (VIN) doit comporter exactement 17 caract\\u00e8res.\",\"vinErrChars\":\"Un num\\u00e9ro d'identification du v\\u00e9hicule (VIN) ne peut pas contenir les lettres I, O ou Q.\",\"vinErrInvalid\":\"Ce num\\u00e9ro d'identification du v\\u00e9hicule (VIN) ne semble pas correct. Veuillez le v\\u00e9rifier \\u00e0 nouveau. \",\"vinErrBypass\":\"\\u00cates-vous s\\u00fbr que c'est correct ? Lancez quand m\\u00eame la recherche. \",\"vinOk\":\"Le num\\u00e9ro d'identification du v\\u00e9hicule (VIN) semble correct\",\"plateErrEmpty\":\"Veuillez saisir un num\\u00e9ro d'immatriculation.\",\"plateErrLength\":\"Cette plaque d'immatriculation semble trop courte ou trop longue.\",\"plateErrGb\":\"Cela ne ressemble pas \\u00e0 une plaque d'immatriculation britannique \\u2014 celles-ci se pr\\u00e9sentent g\\u00e9n\\u00e9ralement sous la forme 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\":\"Vous \\u00eates s\\u00fbr que c'est correct ? Lancez quand m\\u00eame la recherche. \",\"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\t<div class=\"mrvin-search-tabs\">\n\t\t\t\t\t<button class=\"mrvin-search-tab\" type=\"button\" data-mode=\"vin\">VIN<\/button>\n\t\t\t\t\t<button class=\"mrvin-search-tab active\" type=\"button\" data-mode=\"plate\">Number plate<\/button>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<form class=\"mrvin-search-row\" action=\"https:\/\/www.mrvin.com\/fr\/product\/\" method=\"GET\">\n\t\t\t\t<div class=\"mrvin-country\" data-default-iso=\"FR\">\n  <button type=\"button\" class=\"mrvin-country-tile is-empty\" aria-haspopup=\"listbox\" aria-expanded=\"false\" aria-label=\"S\u00e9lectionnez un pays\">\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=\"Rechercher un pays\" aria-label=\"Rechercher un pays\" 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=\"autriche 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\">Autriche<\/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=\"belgique 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\">Belgique<\/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=\"bulgarie 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\">Bulgarie<\/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=\"chypre 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\">Chypre<\/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=\"tch\u00e9coslovaquie 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\">Tch\u00e9coslovaquie<\/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=\"allemagne 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\">Allemagne<\/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=\"danemark 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\">Danemark<\/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=\"estonie 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\">Estonie<\/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=\"espagne 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\">Espagne<\/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=\"finlande 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\">Finlande<\/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=\"france 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\">France<\/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=\"royaume-uni 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\">Royaume-Uni<\/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=\"gr\u00e8ce 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\">Gr\u00e8ce<\/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=\"hongrie 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\">Hongrie<\/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=\"irlande 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\">Irlande<\/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=\"italie 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\">Italie<\/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=\"lituanie 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\">Lituanie<\/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=\"luxembourg 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\">Luxembourg<\/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=\"lettonie 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\">Lettonie<\/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=\"malte 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\">Malte<\/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=\"pays-bas 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\">Pays-Bas<\/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=\"pologne 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\">Pologne<\/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=\"roumanie 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\">Roumanie<\/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=\"su\u00e8de 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\">Su\u00e8de<\/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=\"slov\u00e9nie 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\">Slov\u00e9nie<\/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=\"slovaquie 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\">Slovaquie<\/span>\n          <span class=\"mrvin-country-option-code\">SK<\/span>\n        <\/button>\n            <p class=\"mrvin-country-empty\" role=\"status\">Aucun pays ne correspond<\/p>\n    <\/div>\n  <\/div>\n  <p class=\"mrvin-country-error\" role=\"alert\" aria-live=\"polite\">Veuillez d&#039;abord s\u00e9lectionner un pays<\/p>\n<\/div>\n        \t\t\t\t<input type=\"text\" class=\"mrvin-search-input\" name=\"plate\"\n\t\t\t\t\tplaceholder=\"Saisissez la plaque d&#039;immatriculation\"\n\t\t\t\t\taria-label=\"VIN ou plaque d&#039;immatriculation\"\n\t\t\t\t\tmaxlength=\"15\" autocomplete=\"off\"\n\t\t\t\t\tdata-ph-vin=\"Saisissez le VIN \u00e0 17 caract\u00e8res\"\n\t\t\t\t\tdata-ph-plate=\"Saisissez la plaque d&#039;immatriculation\"\n\t\t\t\t\tdata-btn-vin=\"V\u00e9rifier le VIN\"\n\t\t\t\t\tdata-btn-plate=\"V\u00e9rifier la plaque\">\n\t\t\t\t<button type=\"submit\" class=\"mrvin-search-btn\"><span>V\u00e9rifier la plaque<\/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\" style=\"display:none\">Exemple : <code>WBA3A5G59DNP26082<\/code><span class=\"sep\"><\/span>Aper\u00e7u gratuit inclus<\/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>Plus de 30 pays<\/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>R\u00e9sultat en moins d&#039;une minute<\/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>Rapport PDF complet<\/span><\/li>\n\t\t\t<\/ul>\n\t\t<\/div>\n\t\t\n\t\t\t<h2 id=\"papers\">Le num\u00e9ro VIN sur votre carte grise<\/h2>\n\n\t\t\t<p>Cherchez la lettre E.<\/p>\n\t\t\t<p>Les r\u00e8gles de l&#039;UE attribuent \u00e0 chaque champ d&#039;un certificat d&#039;immatriculation un code fixe, et le code E est le num\u00e9ro d&#039;identification du v\u00e9hicule. Le nom et la pr\u00e9sentation du document changent d&#039;un pays \u00e0 l&#039;autre, mais le code reste le m\u00eame.<\/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=\"Une carte grise avec la case E mise en \u00e9vidence et un num\u00e9ro VIN qui s&#039;inscrit\" loading=\"lazy\">\n\t\t<\/picture>\n\t\t\t\t\t\t<figcaption>La case E contient le num\u00e9ro VIN, quel que soit le pays de l&#039;UE qui a d\u00e9livr\u00e9 le document.<\/figcaption>\n\t\t\t<\/figure>\n\n\t\t\t<p>Le num\u00e9ro VIN porte des noms diff\u00e9rents, ce qui explique pourquoi sa recherche peut faire tourner en rond. Voici comment il s&#039;appelle sur les documents que vous risquez le plus de rencontrer.<\/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>Pays<\/th>\n\t\t\t\t\t\t<th>Document<\/th>\n\t\t\t\t\t\t<th>Nom du num\u00e9ro VIN<\/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>Pologne<\/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>Allemagne<\/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>France<\/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>Italie<\/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>Espagne<\/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>Pays-Bas<\/td><td>Kentekencard<\/td><td>Chassisnummer<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>Roumanie<\/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>Tch\u00e9quie<\/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>Hongrie<\/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>Lettonie<\/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>Royaume-Uni<\/td><td>certificat d&#039;immatriculation V5C<\/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>Aux Pays-Bas, le num\u00e9ro VIN figure au dos de la carte d&#039;immatriculation.<\/p>\n\t\t\t<p>En Roumanie, ne le confondez pas avec la s\u00e9rie CIV. La carte d&#039;identit\u00e9 du v\u00e9hicule (CIV) est un document distinct, avec son propre num\u00e9ro.<\/p>\n\t\t\t<p>Les anciens documents peuvent avoir une autre pr\u00e9sentation, et certains n&#039;ont pas de case E du tout, alors lisez l&#039;intitul\u00e9 en plus de la lettre.<\/p>\n\n\t\t\t<h2 id=\"car\">Le num\u00e9ro VIN sur la voiture<\/h2>\n\n\t\t\t<p>Les r\u00e8gles de l&#039;UE pr\u00e9voient que le num\u00e9ro VIN soit frapp\u00e9 dans le ch\u00e2ssis ou la carrosserie, du c\u00f4t\u00e9 droit du v\u00e9hicule en regardant vers l&#039;avant, \u00e0 un endroit visible et accessible. Les constructeurs le r\u00e9p\u00e8tent ailleurs, vous avez donc plusieurs endroits \u00e0 v\u00e9rifier.<\/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=\"L&#039;ours MrVIN montrant du doigt une voiture avec quatre rep\u00e8res num\u00e9rot\u00e9s indiquant o\u00f9 se trouve le num\u00e9ro VIN\" loading=\"lazy\">\n\t\t<\/picture>\n\t\t\t\t\t\t<figcaption>Les quatre endroits o\u00f9 regarder, num\u00e9rot\u00e9s comme dans la liste ci-dessous.<\/figcaption>\n\t\t\t<\/figure>\n\n\t\t\t<ol>\n\t\t\t\t<li><b>La base du pare-brise.<\/b> Une petite plaquette derri\u00e8re la vitre, dans un coin inf\u00e9rieur et souvent du c\u00f4t\u00e9 du conducteur. On peut la lire depuis l'ext\u00e9rieur, c'est donc la v\u00e9rification la plus rapide. Beaucoup de voitures en ont une, mais c'est une habitude de constructeur et aucune r\u00e8gle de l'UE ne l'exige.<\/li>\n\t\t\t\t<li><b>Le montant de porte.<\/b> Ouvrez la porte du conducteur et cherchez sur le montant ou sur l'encadrement de la porte une plaquette ou un autocollant. Certains constructeurs placent plut\u00f4t cette plaquette dans le compartiment moteur.<\/li>\n\t\t\t\t<li><b>Frapp\u00e9 dans la carrosserie.<\/b> C'est le num\u00e9ro que les r\u00e8gles exigent, et le plus difficile \u00e0 modifier. Il se trouve en g\u00e9n\u00e9ral dans le compartiment moteur, ou sous une trappe dans le plancher pr\u00e8s d'un si\u00e8ge avant. Le manuel du propri\u00e9taire vous indique l'emplacement.<\/li>\n\t\t\t\t<li><b>Le carnet d'entretien.<\/b> Les carnets d'entretien et les papiers d'assurance reprennent g\u00e9n\u00e9ralement le num\u00e9ro VIN. Ce n'est que du papier, consid\u00e9rez-les donc comme un simple recoupement.<\/li>\n\t\t\t<\/ol>\n\n\t\t\t<h2 id=\"match\">Les num\u00e9ros VIN concordent-ils tous\u202f?<\/h2>\n\n\t\t\t<p>La plupart des guides s&#039;arr\u00eatent \u00e0 l&#039;endroit o\u00f9 regarder. Si vous achetez, l&#039;\u00e9tape suivante compte davantage\u202f: comparez le num\u00e9ro VIN de la carte grise, de la plaquette du pare-brise et de la carrosserie, caract\u00e8re par caract\u00e8re, avant tout paiement.<\/p>\n\t\t\t<p>La raison est simple. Une v\u00e9rification de VIN d\u00e9crit le num\u00e9ro que vous avez saisi. Elle ne peut pas dire si ce num\u00e9ro appartient \u00e0 la voiture que vous avez devant vous. Une voiture vol\u00e9e peut recevoir l&#039;identit\u00e9 d&#039;une voiture saine, et un rapport sans probl\u00e8me sur ce num\u00e9ro VIN ne prouve alors rien.<\/p>\n\t\t\t<p class=\"pullquote\">Un rapport d&#039;historique d\u00e9crit le num\u00e9ro que vous avez saisi. Vous seul pouvez v\u00e9rifier que ce num\u00e9ro appartient bien \u00e0 la voiture.<\/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=\"Le m\u00eame num\u00e9ro VIN compar\u00e9 \u00e0 trois endroits, d&#039;abord identique, puis avec un caract\u00e8re diff\u00e9rent\" loading=\"lazy\">\n\t\t<\/picture>\n\t\t\t\t\t\t<figcaption>Premier passage\u202f: les trois concordent. Second passage\u202f: un caract\u00e8re est diff\u00e9rent, et cela suffit pour s&#039;arr\u00eater.<\/figcaption>\n\t\t\t<\/figure>\n\n\t\t\t<p>Certaines diff\u00e9rences ont une explication anodine, comme une erreur de saisie sur un document. D&#039;autres non, et la parole du vendeur ne permet pas de savoir lesquelles.<\/p>\n\t\t\t<p>Une voiture dont le num\u00e9ro ne correspond pas \u00e0 ses papiers peut se voir refuser l&#039;immatriculation, et une fois que vous avez pay\u00e9, c&#039;est votre probl\u00e8me.<\/p>\n\t\t\t<p>Ne payez donc pas avant que le service d&#039;immatriculation ait fait la v\u00e9rification. Si vous pensez que la voiture peut \u00eatre vol\u00e9e, signalez-le \u00e0 la police.<\/p>\n\t\t\t<p>Regardez aussi les plaquettes et le num\u00e9ro frapp\u00e9. Une plaquette desserr\u00e9e, ray\u00e9e ou recoll\u00e9e m\u00e9rite une question, tout comme des caract\u00e8res qui semblent irr\u00e9guliers ou qui se trouvent dans de la peinture fra\u00eeche.<\/p>\n\t\t\t<p>Un autocollant de porte manquant ne prouve rien \u00e0 lui seul. Cela peut signifier que la porte ou le montant a \u00e9t\u00e9 r\u00e9par\u00e9 ou remplac\u00e9, ce qui vaut la peine d&#039;\u00eatre demand\u00e9 et d&#039;\u00eatre compar\u00e9 aux relev\u00e9s de dommages de la voiture.<\/p>\n\n\t\t\t<h2 id=\"read\">Comment lire les 17 caract\u00e8res du num\u00e9ro VIN<\/h2>\n\n\t\t\t<p>Chaque num\u00e9ro VIN se divise de la m\u00eame fa\u00e7on en trois groupes.<\/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=\"Un num\u00e9ro VIN de 17 caract\u00e8res divis\u00e9 en groupes de 3, 6 et 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>Les 3 premiers\u202f: le constructeur.<\/b> Ils identifient qui a construit la voiture.<\/li>\n\t\t\t\t<li><b>Les 6 suivants\u202f: la description.<\/b> Le constructeur s'en sert pour d\u00e9crire le v\u00e9hicule. Les emplacements dont il n'a pas besoin peuvent contenir un caract\u00e8re de remplissage, c'est pourquoi les VIN europ\u00e9ens de Volkswagen commencent par WVWZZZ.<\/li>\n\t\t\t\t<li><b>Les 8 derniers\u202f: cette voiture.<\/b> Ils identifient le v\u00e9hicule individuel, et les 4 derniers sont des chiffres.<\/li>\n\t\t\t<\/ul>\n\n\t\t\t<p>Les lettres I, O et Q ne sont jamais utilis\u00e9es, car on les confond trop facilement avec 1 et 0. Si vous croyez lire un O, c&#039;est un 0.<\/p>\n\t\t\t<p>Essayez avec votre propre num\u00e9ro VIN. Ce que vous saisissez ici reste sur cette page.<\/p>\n\n\t\t\t\t\t\t<div class=\"vt\" id=\"mrvin-blog-vt\" data-bad=\"Un VIN ne contient jamais I, O ni Q. Regardez \u00e0 nouveau cette lettre.\">\n\t\t\t\t<input type=\"text\" placeholder=\"Saisissez un VIN pour le diviser en groupes\" aria-label=\"Saisissez un VIN pour le diviser en groupes\" 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\">Le constructeur<\/span><\/div>\n\t\t\t\t\t<div class=\"vt-group vt-g2\"><span class=\"chars\"><\/span><span class=\"name\">La description<\/span><\/div>\n\t\t\t\t\t<div class=\"vt-group vt-g3\"><span class=\"chars\"><\/span><span class=\"name\">Cette voiture<\/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\">Deux pi\u00e8ges du num\u00e9ro VIN<\/h2>\n\n\t\t\t<p><b>Le 10e caract\u00e8re n'est pas toujours l'ann\u00e9e.<\/b> On lit souvent que si. Cela vient des r\u00e8gles nord-am\u00e9ricaines, et les r\u00e8gles de l'UE ne le d\u00e9finissent pas. Volkswagen l'utilise bien pour l'ann\u00e9e mod\u00e8le, alors que de nombreuses BMW europ\u00e9ennes ont simplement un 0 \u00e0 cet endroit. Pour conna\u00eetre l'\u00e2ge d'une voiture, fiez-vous \u00e0 la date de premi\u00e8re immatriculation sur sa carte grise, et rappelez-vous qu'une voiture peut \u00eatre construite des mois avant d'\u00eatre immatricul\u00e9e.<\/p>\n\t\t\t<p><b>Le 9e caract\u00e8re n'est pas toujours un chiffre de contr\u00f4le.<\/b> En Am\u00e9rique du Nord, il est calcul\u00e9 \u00e0 partir des autres caract\u00e8res, ce qui permet \u00e0 un outil de rep\u00e9rer une erreur de saisie. Dans l'UE, il n'est exig\u00e9 que depuis juillet 2022, en commen\u00e7ant par les nouveaux types de v\u00e9hicules. Quand nous avons appliqu\u00e9 la formule nord-am\u00e9ricaine \u00e0 une semaine de VIN europ\u00e9ens tir\u00e9s de nos propres donn\u00e9es, pr\u00e8s de la moiti\u00e9 ont \u00e9chou\u00e9 au test, et c'\u00e9taient de vraies voitures avec de vrais historiques. Un v\u00e9rificateur qui d\u00e9clare un VIN invalide pour cette raison se trompe.<\/p>\n\n\t\t\t<h2 id=\"tells\">Ce que le num\u00e9ro VIN peut vous dire, et ce qu&#039;il ne peut pas<\/h2>\n\n\t\t\t<p>D\u00e9cod\u00e9, un num\u00e9ro VIN vous dit ce qu'est la voiture\u202f: le constructeur, le mod\u00e8le et souvent le moteur. Vous pouvez l'essayer gratuitement avec notre <a href=\"https:\/\/www.mrvin.com\/fr\/vin-decoder\/\">d\u00e9codeur de VIN<\/a>.<\/p>\n\t\t\t<p>Il ne dit pas ce qui s&#039;est pass\u00e9 depuis. Les relev\u00e9s de kilom\u00e9trage, les dommages et les p\u00e9riodes pass\u00e9es dans d&#039;autres pays figurent dans des dossiers distincts, et un rapport d&#039;historique les r\u00e9unit.<\/p>\n\n\t\t\t<h2 id=\"seller\">Quand le vendeur ne donne pas le num\u00e9ro VIN<\/h2>\n\n\t\t\t<p>Un num\u00e9ro VIN n&#039;est pas un secret. Sur beaucoup de voitures, on peut le lire \u00e0 travers le pare-brise.<\/p>\n\t\t\t<p>Demandez au vendeur une photo de la case E de la carte grise. Il peut masquer son nom et son adresse, car vous n&#039;avez besoin que de cette ligne.<\/p>\n\t\t\t<p>Un vendeur qui refuse encore de le communiquer m\u00e9rite une question avant que vous vous d\u00e9placiez pour voir la voiture.<\/p>\n\t\t\t<p>Si l&#039;annonce n&#039;indique qu&#039;une plaque d&#039;immatriculation, vous pouvez peut-\u00eatre partir de l\u00e0. Dans certains pays, notre barre de recherche accepte une plaque aussi bien qu&#039;un VIN.<\/p>\n\t\t\t<p>Vous comparez encore des voitures\u202f? Vous pouvez <a href=\"https:\/\/www.mrvin.com\/fr\/no-vin\/\">acheter des rapports maintenant<\/a> et les utiliser une fois les VIN en main.<\/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\">Avant de rencontrer le vendeur<\/p>\n\t\t\t\t\t\t<p class=\"promo-h\">Consultez l&#039;historique de la voiture en moins d&#039;une minute<\/p>\n\t\t\t\t\t\t<p class=\"promo-sub\">Dommages, kilom\u00e9trage, ench\u00e8res et importation dans plus de 30 pays, en un seul 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>Plus de 30 pays<\/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>Moins d&#039;une minute<\/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>Rapport PDF complet<\/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>V\u00e9rifier un 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\/fr\/sample-report\/\"><span>Pas encore d\u00e9cid\u00e9 ? Voyez d&#039;abord \u00e0 quoi ressemble un rapport complet<\/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>Questions fr\u00e9quentes<\/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\">Le num\u00e9ro de ch\u00e2ssis est-il le m\u00eame que le num\u00e9ro VIN\u202f?<\/p>\n\t\t\t\t\t\t<p class=\"faq-a\">Sur presque toutes les voitures vendues en Europe, oui. Num\u00e9ro de ch\u00e2ssis, num\u00e9ro de cadre et FIN d\u00e9signent les m\u00eames 17 caract\u00e8res. Les tr\u00e8s anciennes voitures et certaines importations du Japon peuvent avoir un num\u00e9ro plus court, et les v\u00e9rifications d&#039;historique ne peuvent g\u00e9n\u00e9ralement pas les couvrir.<\/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\">Combien de caract\u00e8res compte un num\u00e9ro VIN\u202f?<\/p>\n\t\t\t\t\t\t<p class=\"faq-a\">17, compos\u00e9s de lettres et de chiffres. Les lettres I, O et Q ne sont jamais utilis\u00e9es.<\/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\">Est-il s\u00fbr de communiquer mon num\u00e9ro VIN\u202f?<\/p>\n\t\t\t\t\t\t<p class=\"faq-a\">En g\u00e9n\u00e9ral, oui. Les acheteurs, les assureurs et les garages le demandent tous, et sur beaucoup de voitures, on peut le lire \u00e0 travers le pare-brise. La plus haute juridiction de l&#039;UE a jug\u00e9 qu&#039;un num\u00e9ro VIN n&#039;est pas une donn\u00e9e personnelle en soi, m\u00eame s&#039;il peut le devenir pour quelqu&#039;un capable de le relier \u00e0 une personne. Le vrai risque est le clonage, lorsqu&#039;un vrai num\u00e9ro VIN est copi\u00e9 sur une autre voiture\u202f: \u00e9vitez donc de publier en ligne une photo nette de vos documents.<\/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\">Peut-on retrouver le propri\u00e9taire \u00e0 partir d&#039;un num\u00e9ro VIN\u202f?<\/p>\n\t\t\t\t\t\t<p class=\"faq-a\">Pas par MrVIN. Nos rapports peuvent indiquer quand une voiture a chang\u00e9 de mains et si le propri\u00e9taire \u00e9tait un particulier ou une entreprise, lorsque c&#039;est enregistr\u00e9. Ils ne nomment personne.<\/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\">Pourquoi mon num\u00e9ro VIN contient-il autant de Z\u202f?<\/p>\n\t\t\t\t\t\t<p class=\"faq-a\">Z est un caract\u00e8re de remplissage courant pour les emplacements dont le constructeur n&#039;a pas besoin. Les VIN europ\u00e9ens de Volkswagen, par exemple, ont ZZZ aux positions 4 \u00e0 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\">Que faire si une v\u00e9rification de VIN ne trouve rien\u202f?<\/p>\n\t\t\t\t\t\t<p class=\"faq-a\">V\u00e9rifiez d&#039;abord les caract\u00e8res. Lire un 0 comme la lettre O ou un 1 comme la lettre I est l&#039;erreur la plus fr\u00e9quente. S&#039;ils sont corrects, la voiture a peut-\u00eatre simplement peu de relev\u00e9s, ce qui est aussi bon \u00e0 savoir.<\/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>Sources<\/h2>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>Directive 1999\/37\/CE du Conseil relative aux documents d&#039;immatriculation des v\u00e9hicules, annexe I<\/li>\n\t\t\t\t\t<li>R\u00e8glement d&#039;ex\u00e9cution (UE) 2021\/535 de la Commission, annexe II, num\u00e9ro d&#039;identification du v\u00e9hicule<\/li>\n\t\t\t\t\t<li>Cour de justice de l&#039;UE, affaire C-319\/22, Gesamtverband Autoteile-Handel, 9 novembre 2023<\/li>\n\t\t\t\t\t<li>RDW, donn\u00e9es de la carte d&#039;immatriculation n\u00e9erlandaise<\/li>\n\t\t\t\t\t<li>ADAC, le document d&#039;immatriculation allemand expliqu\u00e9<\/li>\n\t\t\t\t\t<li>GOV.UK, vehicle identification number<\/li>\n\t\t\t\t\t<li>RAC, ce qu&#039;est le clonage de voiture et comment les acheteurs peuvent le rep\u00e9rer<\/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\">Lire la suite<\/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\/fr\/blog\/importer-voiture-des-etats-unis\/\">\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\">Importer une voiture des \u00c9tats-Unis : ce qu&#039;il faut savoir en France<\/span>\n\t\t\t\t\t\t\t<span class=\"rn-dek\">Douane, TVA, malus, r\u00e9ception \u00e0 titre isol\u00e9 et carte grise. Et pourquoi l&#039;homologation co\u00fbte souvent plus cher que pr\u00e9vu.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"rn-more\">Consultez le guide &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\/fr\/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\">Votre voiture a un rapport d&#039;historique. Le logement que vous allez acheter aussi.<\/span>\n\t\t\t\t\t\t\t<span class=\"rn-dek\">Une v\u00e9rification par num\u00e9ro de ch\u00e2ssis vous apprend ce que le vendeur d&#039;une voiture n&#039;a pas mentionn\u00e9. Un logement laisse lui aussi une trace \u00e9crite, et en Lettonie, en Pologne et en Slov\u00e9nie, l&#039;essentiel se trouve dans des registres publics. Voici ce qu&#039;il faut consulter avant de signer, et quand un rapport d\u00e9taill\u00e9 vous \u00e9vite les d\u00e9marches.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"rn-more\">Consultez le guide &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\">Vous l&#039;avez trouv\u00e9\u202f? Voyez ce qui est enregistr\u00e9<\/span>\n\t\t\t\t<button type=\"button\" aria-label=\"Fermer\">&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>V\u00e9rifier une voiture maintenant<\/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\":\"temps de lecture\",\"copied\":\"Copi\u00e9\",\"chart1\":{\"inCountry\":\"Vendue dans le pays\",\"crossBorder\":\"Vendue entre pays de l'UE\",\"ofCars\":\"% de voitures\"},\"chart2\":{\"before\":\"Avant la base de donn\u00e9es\",\"after\":\"2024 (avec Car-Pass)\",\"cases\":\"cas\"},\"rank\":{\"unit\":\"v\u00e9rifications\"},\"calc\":{\"perYear\":\"km \/ an\",\"typicalFor\":\"Normal pour son \u00e2ge\",\"thisCar\":\"Cette voiture\",\"difference\":\"Diff\u00e9rence\",\"about\":\"dans la normale\",\"pctBelow\":\"% en dessous de la normale\",\"pctAbove\":\"% au-dessus de la normale\",\"rangeLegend\":\"Plage normale pour son \u00e2ge\",\"noteValue\":\"Si le kilom\u00e9trage r\u00e9el est plus proche de {expected} km, les {hidden} km manquants pourraient gonfler le prix demand\u00e9 de {price} d'environ {est} (environ 4\u202f% de la valeur par 10\u00a0000 km).\",\"noteHidden\":\"Cela repr\u00e9sente environ {hidden} km en dessous de la normale. Ajoutez un prix demand\u00e9 ci-dessus pour estimer la valeur en jeu.\",\"tiers\":{\"veryLow\":{\"label\":\"Kilom\u00e9trage tr\u00e8s faible\",\"color\":\"#A32D2D\",\"msg\":\"C'est bien en dessous de ce que parcourt normalement une voiture de cet \u00e2ge. Des voitures \u00e0 faible kilom\u00e9trage authentique existent, mais c'est exactement le profil que cr\u00e9e la fraude au compteur. Exigez un historique de kilom\u00e9trage enregistr\u00e9 avant de faire confiance au compteur.\"},\"below\":{\"label\":\"En dessous de la normale\",\"color\":\"#854F0B\",\"msg\":\"L\u00e9g\u00e8rement en dessous de la moyenne. Souvent l\u00e9gitime, mais \u00e0 confirmer avec le carnet d'entretien tamponn\u00e9 et les relev\u00e9s enregistr\u00e9s.\"},\"normal\":{\"label\":\"Semble normal\",\"color\":\"#0F6E56\",\"msg\":\"Dans la fourchette normale pour son \u00e2ge et son usage. Rien d'inhabituel sur le seul kilom\u00e9trage, mais une v\u00e9rification compl\u00e8te de l'historique reste recommand\u00e9e.\"},\"above\":{\"label\":\"Au-dessus de la normale\",\"color\":\"#854F0B\",\"msg\":\"Au-dessus de la moyenne pour son \u00e2ge. Ce n'est pas en soi un signe de fraude, mais attendez-vous \u00e0 une usure plus importante et utilisez cela pour n\u00e9gocier le prix \u00e0 la baisse.\"},\"veryHigh\":{\"label\":\"Kilom\u00e9trage tr\u00e8s \u00e9lev\u00e9\",\"color\":\"#A32D2D\",\"msg\":\"Tr\u00e8s \u00e9lev\u00e9 pour son \u00e2ge. Il s'agit probablement d'un ancien v\u00e9hicule de flotte, de taxi ou de longs trajets domicile-travail. Pr\u00e9voyez une usure plus importante et v\u00e9rifiez attentivement le carnet d'entretien.\"}}}}, HOME=\"https:\\\/\\\/www.mrvin.com\\\/fr\\\/\", 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":1054,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-43209","page","type-page","status-publish","hentry"],"blocksy_meta":[],"yoast_head":"<title>Num\u00e9ro VIN\u202f: sur la voiture et sur la carte grise | MrVIN<\/title>\n<meta name=\"description\" content=\"Sur la carte grise, le num\u00e9ro VIN se trouve dans la case E. O\u00f9 il est sur la voiture, comment lire les 17 caract\u00e8res et pourquoi chaque copie doit concorder.\" \/>\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\/fr\/blog\/numero-vin-carte-grise\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Num\u00e9ro VIN\u202f: sur la voiture et sur la carte grise | MrVIN\" \/>\n<meta property=\"og:description\" content=\"Sur la carte grise, le num\u00e9ro VIN se trouve dans la case E. O\u00f9 il est sur la voiture, comment lire les 17 caract\u00e8res et pourquoi chaque copie doit concorder.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mrvin.com\/fr\/blog\/numero-vin-carte-grise\/\" \/>\n<meta property=\"og:site_name\" content=\"MrVIN\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-02T11:40:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mrvin.com\/wp-content\/uploads\/logo\/social\/mrvin-social-preview-fr.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-fr.png\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mrvin.com\\\/fr\\\/blog\\\/numero-vin-carte-grise\\\/\",\"url\":\"https:\\\/\\\/www.mrvin.com\\\/fr\\\/blog\\\/numero-vin-carte-grise\\\/\",\"name\":\"Num\u00e9ro VIN\u202f: sur la voiture et sur la carte grise | MrVIN\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mrvin.com\\\/#website\"},\"datePublished\":\"2026-11-02T11:25:15+00:00\",\"dateModified\":\"2026-11-02T11:40:01+00:00\",\"description\":\"Sur la carte grise, le num\u00e9ro VIN se trouve dans la case E. O\u00f9 il est sur la voiture, comment lire les 17 caract\u00e8res et pourquoi chaque copie doit concorder.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mrvin.com\\\/fr\\\/blog\\\/numero-vin-carte-grise\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mrvin.com\\\/fr\\\/blog\\\/numero-vin-carte-grise\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mrvin.com\\\/fr\\\/blog\\\/numero-vin-carte-grise\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.mrvin.com\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.mrvin.com\\\/fr\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"O\u00f9 trouver le num\u00e9ro VIN sur votre voiture et votre carte grise, et comment le lire\"}]},{\"@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\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@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":"Num\u00e9ro VIN\u202f: sur la voiture et sur la carte grise | MrVIN","description":"Sur la carte grise, le num\u00e9ro VIN se trouve dans la case E. O\u00f9 il est sur la voiture, comment lire les 17 caract\u00e8res et pourquoi chaque copie doit concorder.","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\/fr\/blog\/numero-vin-carte-grise\/","og_locale":"fr_FR","og_type":"article","og_title":"Num\u00e9ro VIN\u202f: sur la voiture et sur la carte grise | MrVIN","og_description":"Sur la carte grise, le num\u00e9ro VIN se trouve dans la case E. O\u00f9 il est sur la voiture, comment lire les 17 caract\u00e8res et pourquoi chaque copie doit concorder.","og_url":"https:\/\/www.mrvin.com\/fr\/blog\/numero-vin-carte-grise\/","og_site_name":"MrVIN","article_modified_time":"2026-11-02T11:40:01+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.mrvin.com\/wp-content\/uploads\/logo\/social\/mrvin-social-preview-fr.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_image":"https:\/\/www.mrvin.com\/wp-content\/uploads\/logo\/social\/mrvin-social-preview-fr.png","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mrvin.com\/fr\/blog\/numero-vin-carte-grise\/","url":"https:\/\/www.mrvin.com\/fr\/blog\/numero-vin-carte-grise\/","name":"Num\u00e9ro VIN\u202f: sur la voiture et sur la carte grise | MrVIN","isPartOf":{"@id":"https:\/\/www.mrvin.com\/#website"},"datePublished":"2026-11-02T11:25:15+00:00","dateModified":"2026-11-02T11:40:01+00:00","description":"Sur la carte grise, le num\u00e9ro VIN se trouve dans la case E. O\u00f9 il est sur la voiture, comment lire les 17 caract\u00e8res et pourquoi chaque copie doit concorder.","breadcrumb":{"@id":"https:\/\/www.mrvin.com\/fr\/blog\/numero-vin-carte-grise\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mrvin.com\/fr\/blog\/numero-vin-carte-grise\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.mrvin.com\/fr\/blog\/numero-vin-carte-grise\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.mrvin.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/www.mrvin.com\/fr\/blog\/"},{"@type":"ListItem","position":3,"name":"O\u00f9 trouver le num\u00e9ro VIN sur votre voiture et votre carte grise, et comment le lire"}]},{"@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\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@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\/fr\/wp-json\/wp\/v2\/pages\/43209","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mrvin.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.mrvin.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mrvin.com\/fr\/wp-json\/wp\/v2\/comments?post=43209"}],"version-history":[{"count":1,"href":"https:\/\/www.mrvin.com\/fr\/wp-json\/wp\/v2\/pages\/43209\/revisions"}],"predecessor-version":[{"id":43210,"href":"https:\/\/www.mrvin.com\/fr\/wp-json\/wp\/v2\/pages\/43209\/revisions\/43210"}],"up":[{"embeddable":true,"href":"https:\/\/www.mrvin.com\/fr\/wp-json\/wp\/v2\/pages\/1054"}],"wp:attachment":[{"href":"https:\/\/www.mrvin.com\/fr\/wp-json\/wp\/v2\/media?parent=43209"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}