{"id":3581,"date":"2026-10-14T01:27:57","date_gmt":"2026-10-14T01:27:57","guid":{"rendered":"https:\/\/autosdiscounts.com\/?page_id=3581"},"modified":"2026-10-14T21:24:06","modified_gmt":"2026-10-14T21:24:06","slug":"tires-conversion","status":"publish","type":"page","link":"https:\/\/autosdiscounts.com\/fr\/tires-conversion\/","title":{"rendered":"Conversion de pneus"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3581\" class=\"elementor elementor-3581\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8b7cd8b e-con-full e-flex e-con e-parent\" data-id=\"8b7cd8b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-78c4168 elementor-widget elementor-widget-shortcode\" data-id=\"78c4168\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><!-- Conversion de pneus \/ Tire Size Converter, Autos Discount. A coller dans un bloc \"HTML personnalise\" de WordPress. -->\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@400;500;600;700;800&display=swap\">\n<style>\n\/* Layout: app bar, size bar (origin \u21c4 replacement), a 2-column instrument row (deviation gauge | tires to scale), stat tiles, equivalents. Colours and type follow autosdiscounts.com: white, near-black, red #cc0000, Montserrat. Single light look on purpose, like the site. *\/\n.adconv {\n  --bg: #f4f4f4 !important;\n  --surface: #ffffff !important;\n  --surface-2: #f5f5f5 !important;\n  --line: #e3e3e3 !important;\n  --ink: #161616 !important;\n  --muted: #6b6b6b !important;\n  --accent: #cc0000 !important;\n  --accent-ink: #ffffff !important;\n  --ok: #0a7d32 !important;\n  --warn: #c77700 !important;\n  --bad: #cc0000 !important;\n  --tire: #161616 !important;\n  --tire-old: #b5b5b5 !important;\n  --shadow: 0 1px 2px rgba(0,0,0,.05), 0 6px 20px rgba(0,0,0,.05) !important;\n  --display: \"Montserrat\", \"Segoe UI\", Arial, sans-serif !important;\n  --body: \"Montserrat\", \"Segoe UI\", Arial, sans-serif !important;\n  --mono: \"Montserrat\", \"Segoe UI\", Arial, sans-serif !important;\n  color-scheme: light !important;\n}\n\n.adconv, .adconv * { box-sizing: border-box !important; }\n.adconv input, .adconv button { margin: 0 !important; min-width: 0 !important; min-height: 0 !important; height: auto !important; max-width: 100% !important; box-shadow: none !important; text-transform: none !important; text-shadow: none !important; line-height: 1.2 !important; letter-spacing: normal !important; text-decoration: none !important; }\n.adconv input { text-align: left !important; border-radius: 0 !important; outline: none !important; }\n.adconv button { padding: 0 !important; font-family: inherit !important; background-image: none !important; }\n.adconv { background: var(--bg) !important; color: var(--ink) !important; font-family: var(--body) !important; font-size: 15px !important; line-height: 1.5 !important; }\n.adconv .app { max-width: 1080px !important; margin: 0 auto !important; padding-inline: 16px !important; padding-block: 16px 48px !important; display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 16px !important; }\n\n.adconv .bar { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; flex-wrap: wrap !important; }\n.adconv .brand { display: flex !important; align-items: center !important; gap: 12px !important; }\n.adconv .mark { width: 40px !important; height: 40px !important; border-radius: 10px !important; background: var(--accent) !important; color: var(--accent-ink) !important; display: grid !important; place-items: center !important; font-family: var(--display) !important; font-weight: 700 !important; font-size: 17px !important; letter-spacing: .02em !important; }\n.adconv .brand h1 { margin: 0 !important; font-family: var(--display) !important; font-weight: 800 !important; font-size: clamp(20px, 4vw, 26px) !important; line-height: 1.1 !important; letter-spacing: .01em !important; text-wrap: balance !important; }\n.adconv .brand small { display: block !important; color: var(--muted) !important; font-size: 12px !important; letter-spacing: .08em !important; text-transform: uppercase !important; font-weight: 600 !important; }\n.adconv .lang { display: inline-flex !important; border: 1px solid var(--line) !important; border-radius: 999px !important; padding: 3px !important; background: var(--surface) !important; }\n.adconv .lang button { border: 0 !important; background: transparent !important; color: var(--muted) !important; font: inherit !important; font-weight: 700 !important; font-size: 12px !important; letter-spacing: .06em !important; padding: 5px 10px !important; border-radius: 999px !important; cursor: pointer !important; }\n.adconv .lang button[aria-pressed=\"true\"] { background: var(--ink) !important; color: var(--surface) !important; }\n.adconv .lang button:focus-visible { outline: 2px solid var(--accent) !important; outline-offset: 2px !important; }\n.adconv .bar-right { display: flex !important; align-items: center !important; gap: 10px !important; }\n.adconv .size label .short { display: none !important; }\n.adconv .phone { font-family: var(--mono) !important; font-size: 14px !important; color: var(--muted) !important; border: 1px solid var(--line) !important; border-radius: 999px !important; padding: 6px 12px !important; user-select: all !important; }\n\n.adconv .panel { background: var(--surface) !important; border: 1px solid var(--line) !important; border-radius: 14px !important; box-shadow: var(--shadow) !important; }\n.adconv .sizes { display: grid !important; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important; align-items: stretch !important; }\n.adconv .size { padding: 14px 18px 12px !important; display: grid !important; gap: 4px !important; min-width: 0 !important; }\n.adconv .size + .swapcol + .size { border-left: 1px solid var(--line) !important; }\n.adconv .size label { font-size: 11px !important; font-weight: 700 !important; letter-spacing: .12em !important; text-transform: uppercase !important; color: var(--muted) !important; display: flex !important; align-items: center !important; gap: 8px !important; }\n.adconv .size label i { width: 14px !important; height: 0 !important; border-top: 3px dashed var(--tire-old) !important; }\n.adconv .size.new label i { border-top: 3px solid var(--accent) !important; }\n.adconv .size input { width: 100% !important; background: transparent !important; border: 0 !important; padding: 2px 0 !important; color: var(--ink) !important; font-family: var(--mono) !important; font-weight: 700 !important; font-variant-numeric: tabular-nums !important; font-size: clamp(24px, 5.5vw, 36px) !important; letter-spacing: .01em !important; border-bottom: 2px solid transparent !important; border-radius: 0 !important; }\n.adconv .size input:focus { outline: none !important; border-bottom-color: var(--accent) !important; }\n.adconv .size .hint { font-size: 12px !important; color: var(--muted) !important; min-height: 18px !important; }\n.adconv .size .hint.err { color: var(--bad) !important; }\n.adconv .swapcol { display: grid !important; place-items: center !important; padding: 0 4px !important; border-left: 1px solid var(--line) !important; }\n.adconv .swap { width: 44px !important; height: 44px !important; border-radius: 50% !important; border: 1px solid var(--line) !important; background: var(--surface-2) !important; color: var(--ink) !important; font-size: 18px !important; cursor: pointer !important; display: grid !important; place-items: center !important; transition: transform .25s, border-color .2s !important; }\n.adconv .swap:hover, .adconv .swap:focus-visible { border-color: var(--accent) !important; outline: none !important; }\n.adconv .swap:active { transform: rotate(180deg) !important; }\n\n.adconv .instruments { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; gap: 16px !important; }\n.adconv .card { padding: 16px 18px !important; display: grid !important; gap: 10px !important; align-content: start !important; min-width: 0 !important; }\n.adconv .card-head { display: flex !important; justify-content: space-between !important; align-items: baseline !important; gap: 8px !important; flex-wrap: wrap !important; }\n.adconv .eyebrow { font-size: 11px !important; font-weight: 700 !important; letter-spacing: .12em !important; text-transform: uppercase !important; color: var(--muted) !important; }\n.adconv .gauge { display: grid !important; justify-items: center !important; gap: 6px !important; }\n.adconv .gauge svg { width: 100% !important; max-width: 380px !important; height: auto !important; overflow: visible !important; }\n.adconv .gauge text { font-family: var(--mono) !important; font-size: 11px !important; fill: var(--muted) !important; }\n.adconv .readout { font-family: var(--display) !important; font-weight: 800 !important; font-size: clamp(40px, 9vw, 56px) !important; line-height: 1 !important; font-variant-numeric: tabular-nums !important; margin-top: -8px !important; }\n.adconv .pill { display: inline-flex !important; align-items: center !important; gap: 8px !important; font-weight: 700 !important; font-size: 13px !important; letter-spacing: .06em !important; text-transform: uppercase !important; padding: 6px 12px !important; border-radius: 999px !important; border: 1px solid currentColor !important; }\n.adconv .pill::before { content: \"\" !important; width: 8px !important; height: 8px !important; border-radius: 50% !important; background: currentColor !important; }\n.adconv .pill.ok { color: var(--ok) !important; } .adconv .pill.warn { color: var(--warn) !important; } .adconv .pill.bad { color: var(--bad) !important; } .adconv .pill.idle { color: var(--muted) !important; }\n.adconv .why { color: var(--muted) !important; font-size: 14px !important; text-align: center !important; max-width: 42ch !important; margin: 0 !important; }\n\n.adconv .profile svg { width: 100% !important; height: auto !important; display: block !important; }\n.adconv .profile text { font-family: var(--mono) !important; font-size: 12px !important; fill: var(--muted) !important; }\n.adconv .profile .lbl { font-family: var(--body) !important; font-weight: 700 !important; font-size: 11px !important; letter-spacing: .1em !important; }\n.adconv .profile .lbl-new { fill: var(--accent) !important; }\n.adconv .profile .lbl-old { fill: var(--muted) !important; }\n\n.adconv .tiles { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 12px !important; }\n.adconv .tile { padding: 14px 16px !important; display: grid !important; gap: 6px !important; min-width: 0 !important; }\n.adconv .tile .v { font-family: var(--mono) !important; font-weight: 600 !important; font-size: 20px !important; font-variant-numeric: tabular-nums !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }\n.adconv .tile .from { font-size: 12px !important; color: var(--muted) !important; font-variant-numeric: tabular-nums !important; }\n.adconv .delta { justify-self: start !important; font-family: var(--mono) !important; font-size: 12px !important; padding: 2px 8px !important; border-radius: 6px !important; background: var(--surface-2) !important; color: var(--muted) !important; }\n.adconv .delta.up { color: var(--ok) !important; } .adconv .delta.down { color: var(--bad) !important; }\n.adconv .tile.hl { border-color: color-mix(in srgb, var(--accent) 55%, var(--line)) !important; }\n\n.adconv .eq-card { padding: 16px 18px !important; display: grid !important; gap: 12px !important; }\n.adconv .seg { display: inline-flex !important; border: 1px solid var(--line) !important; border-radius: 999px !important; padding: 3px !important; background: var(--surface-2) !important; }\n.adconv .seg button { border: 0 !important; background: transparent !important; color: var(--muted) !important; font: inherit !important; font-size: 13px !important; font-weight: 600 !important; padding: 5px 12px !important; border-radius: 999px !important; cursor: pointer !important; }\n.adconv .seg button[aria-pressed=\"true\"] { background: var(--accent) !important; color: var(--accent-ink) !important; }\n.adconv .seg button:focus-visible { outline: 2px solid var(--accent) !important; outline-offset: 2px !important; }\n.adconv .eq { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important; gap: 8px !important; }\n.adconv .eq button { display: grid !important; grid-template-columns: auto 1fr auto !important; align-items: center !important; gap: 10px !important; background: var(--surface-2) !important; border: 1px solid var(--line) !important; border-radius: 10px !important; padding: 10px 12px !important; color: var(--ink) !important; cursor: pointer !important; font: inherit !important; text-align: left !important; transition: border-color .15s, transform .15s !important; }\n.adconv .eq button:hover, .adconv .eq button:focus-visible { border-color: var(--accent) !important; outline: none !important; transform: translateY(-1px) !important; }\n.adconv .eq button.on { border-color: var(--accent) !important; box-shadow: 0 0 0 1px var(--accent) inset !important; }\n.adconv .eq .sz { font-family: var(--mono) !important; font-weight: 600 !important; font-size: 15px !important; }\n.adconv .eq .meter { position: relative !important; height: 6px !important; border-radius: 3px !important; background: var(--line) !important; }\n.adconv .eq .meter::after { content: \"\" !important; position: absolute !important; left: 50% !important; top: -3px !important; bottom: -3px !important; width: 1px !important; background: var(--muted) !important; }\n.adconv .eq .meter b { position: absolute !important; top: 0 !important; bottom: 0 !important; border-radius: 3px !important; }\n.adconv .eq .p { font-family: var(--mono) !important; font-size: 12px !important; color: var(--muted) !important; font-variant-numeric: tabular-nums !important; min-width: 52px !important; text-align: right !important; }\n.adconv .empty { color: var(--muted) !important; font-size: 14px !important; }\n\n.adconv .actions { display: flex !important; flex-wrap: wrap !important; gap: 10px !important; }\n.adconv .btn { display: inline-flex !important; align-items: center !important; gap: 8px !important; text-decoration: none !important; font-weight: 700 !important; font-size: 14px !important; padding: 11px 16px !important; border-radius: 10px !important; background: var(--accent) !important; color: var(--accent-ink) !important; }\n.adconv .btn.ghost { background: transparent !important; color: var(--ink) !important; border: 1px solid var(--line) !important; }\n.adconv .btn:focus-visible { outline: 2px solid var(--ink) !important; outline-offset: 2px !important; }\n.adconv .note { color: var(--muted) !important; font-size: 13px !important; display: grid !important; gap: 4px !important; }\n.adconv .offer { padding: 18px !important; display: grid !important; gap: 12px !important; }\n.adconv .offer form { display: grid !important; gap: 12px !important; margin: 0 !important; }\n.adconv .fgrid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 10px !important; }\n.adconv .fgrid label { display: grid !important; gap: 4px !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: .12em !important; text-transform: uppercase !important; color: var(--muted) !important; }\n.adconv .fgrid input { width: 100% !important; box-sizing: border-box !important; font: inherit !important; font-size: 16px !important; letter-spacing: 0 !important; text-transform: none !important; font-weight: 500 !important; color: var(--ink) !important; background: var(--surface-2) !important; border: 1px solid var(--line) !important; border-radius: 10px !important; padding: 10px 12px !important; margin: 0 !important; height: auto !important; box-shadow: none !important; }\n.adconv .fgrid input:focus { outline: 2px solid var(--accent) !important; outline-offset: 1px !important; }\n.adconv .consent { display: flex !important; gap: 8px !important; align-items: flex-start !important; font-size: 13px !important; color: var(--muted) !important; line-height: 1.4 !important; }\n.adconv .consent input { margin: 2px 0 0 !important; width: 16px !important; height: 16px !important; flex: none !important; accent-color: var(--accent) !important; }\n.adconv .osend { display: flex !important; flex-wrap: wrap !important; align-items: center !important; gap: 12px !important; }\n.adconv .offer button.btn { border: 0 !important; cursor: pointer !important; font-family: inherit !important; line-height: 1.2 !important; }\n.adconv .offer button.btn:disabled { opacity: .6 !important; cursor: default !important; }\n.adconv .ostatus { font-size: 14px !important; font-weight: 600 !important; }\n.adconv .ostatus.ok { color: var(--ok) !important; } .adconv .ostatus.err { color: var(--bad) !important; }\n.adconv .hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }\n\n@container adconv (max-width: 900px) { .adconv .tiles { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }\n.adconv .top { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 16px !important; }\n.adconv .strip { display: none !important; align-items: center !important; gap: 8px !important; flex-wrap: nowrap !important; background: var(--surface) !important; border: 1px solid var(--line) !important; border-radius: 12px !important; padding: 8px 12px !important; box-shadow: var(--shadow) !important; }\n.adconv .strip .sp { font-family: var(--display) !important; font-weight: 800 !important; font-size: 20px !important; white-space: nowrap !important; font-variant-numeric: tabular-nums !important; }\n.adconv .strip .pill { padding: 4px 10px !important; font-size: 11px !important; white-space: nowrap !important; }\n.adconv .strip .sv { margin-left: auto !important; font-size: 11px !important; white-space: nowrap !important; text-align: right !important; line-height: 1.2 !important; color: var(--muted) !important; font-variant-numeric: tabular-nums !important; }\n.adconv .more { display: none !important; justify-self: center !important; border: 1px solid var(--line) !important; background: var(--surface-2) !important; color: var(--ink) !important; font: inherit !important; font-weight: 700 !important; font-size: 14px !important; padding: 10px 18px !important; border-radius: 999px !important; cursor: pointer !important; }\n.adconv .more:focus-visible { outline: 2px solid var(--accent) !important; outline-offset: 2px !important; }\n\n\/* Phone: sizes stay side by side and stick to the top with a one-line result, so the answer stays visible while scrolling. *\/\n@container adconv (max-width: 720px) {\n  .adconv .app { gap: 12px !important; padding-block: 8px 32px !important; }\n  .adconv .phone { display: none !important; }\n  .adconv .mark { width: 34px !important; height: 34px !important; font-size: 15px !important; border-radius: 9px !important; }\n  .adconv .brand h1 { font-size: 20px !important; }\n  .adconv .top { position: sticky !important; top: env(safe-area-inset-top, 0px) !important; z-index: 5 !important; background: var(--bg) !important; padding-block: 6px !important; gap: 8px !important; margin-inline: -16px !important; padding-inline: 16px !important; }\n  .adconv .sizes { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important; }\n  .adconv .size { padding: 10px 12px 8px !important; }\n  .adconv .size label { font-size: 10px !important; letter-spacing: .08em !important; gap: 6px !important; }\n  .adconv .size label .long { display: none !important; }\n  .adconv .size label .short { display: inline !important; }\n  .adconv .size input { font-size: clamp(16px, 4.6vw, 21px) !important; letter-spacing: 0 !important; }\n  .adconv .size .hint { display: none !important; }\n  .adconv .size .hint.err { display: block !important; font-size: 11px !important; }\n  .adconv .swapcol { padding: 0 2px !important; }\n  .adconv .swap { width: 36px !important; height: 36px !important; font-size: 15px !important; }\n  .adconv .strip { display: flex !important; }\n  .adconv .instruments { grid-template-columns: 1fr !important; gap: 12px !important; }\n  .adconv .gauge svg { max-width: 260px !important; }\n  .adconv .readout { font-size: 40px !important; }\n  .adconv .profile svg { max-width: 320px !important; justify-self: center !important; }\n  .adconv .tiles { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }\n  .adconv .tiles .tile:last-child { grid-column: 1 \/ -1 !important; }\n  .adconv .tile { padding: 12px !important; }\n  .adconv .tile .v { font-size: 17px !important; }\n  .adconv .eq-card { padding: 14px !important; }\n  .adconv .eq { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }\n  .adconv .eq button { grid-template-columns: minmax(0, 1fr) auto !important; padding: 10px !important; gap: 6px !important; }\n  .adconv .eq .meter { display: none !important; }\n  .adconv .eq .sz { font-size: 14px !important; }\n  .adconv .eq:not(.all) button:nth-child(n+13) { display: none !important; }\n  .adconv .more { display: block !important; }\n  .adconv .actions .btn { flex: 1 1 100% !important; justify-content: center !important; }\n  .adconv .fgrid { grid-template-columns: minmax(0, 1fr) !important; }\n  .adconv .offer button.btn { flex: 1 1 100% !important; justify-content: center !important; }\n}\n@media (prefers-reduced-motion: reduce) { .adconv, .adconv * { transition: none !important } }\n\n.adconv [hidden], .adconv .more[hidden] { display: none !important; }\n.adconv { display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; overflow-x: clip !important; container-type: inline-size; container-name: adconv; }\n<\/style>\n<div class=\"adconv\">\n<div class=\"app\">\n  <div class=\"bar\">\n    <div class=\"brand\">\n      <div class=\"mark\" aria-hidden=\"true\">AD<\/div>\n      <div><small>Autos Discount<\/small><h1 data-t=\"title\">Conversion de pneus<\/h1><\/div>\n    <\/div>\n    <div class=\"bar-right\"><div class=\"lang\" role=\"group\" aria-label=\"Langue \/ Language\"><button type=\"button\" data-l=\"fr\" aria-pressed=\"true\">FR<\/button><button type=\"button\" data-l=\"en\" aria-pressed=\"false\">EN<\/button><\/div><div class=\"phone\">514-225-0555<\/div><\/div>\n  <\/div>\n\n  <div class=\"top\">\n  <section class=\"panel sizes\" aria-label=\"Grandeurs \u00e0 comparer\">\n    <div class=\"size\">\n      <label for=\"adc-orig\"><i><\/i><span class=\"long\" data-t=\"origLong\">Grandeur d'origine<\/span><span class=\"short\" data-t=\"origShort\">Origine<\/span><\/label>\n      <input id=\"adc-orig\" size=\"8\" inputmode=\"decimal\" enterkeyhint=\"done\" autocomplete=\"off\" spellcheck=\"false\" value=\"275\/70R16\">\n      <div class=\"hint\" id=\"adc-orig-hint\"><\/div>\n    <\/div>\n    <div class=\"swapcol\"><button class=\"swap\" id=\"adc-swap\" type=\"button\" aria-label=\"Inverser les deux grandeurs\" title=\"Inverser\">\u21c4<\/button><\/div>\n    <div class=\"size new\">\n      <label for=\"adc-repl\"><i><\/i><span class=\"long\" data-t=\"replLong\">Grandeur de remplacement<\/span><span class=\"short\" data-t=\"replShort\">Remplacement<\/span><\/label>\n      <input id=\"adc-repl\" size=\"8\" inputmode=\"decimal\" enterkeyhint=\"done\" autocomplete=\"off\" spellcheck=\"false\" value=\"255\/70R16\">\n      <div class=\"hint\" id=\"adc-repl-hint\"><\/div>\n    <\/div>\n  <\/section>\n  <div class=\"strip\" id=\"adc-strip\" aria-live=\"polite\"><\/div>\n  <\/div>\n\n  <section class=\"instruments\">\n    <div class=\"panel card gauge\">\n      <div class=\"card-head\" style=\"width:100%\"><span class=\"eyebrow\" data-t=\"gapTitle\">\u00c9cart de diam\u00e8tre<\/span><span class=\"eyebrow\" data-t=\"limit\">limite \u00b1 3 %<\/span><\/div>\n      <svg id=\"adc-gauge\" viewBox=\"0 0 320 180\" role=\"img\" aria-label=\"Jauge de l'\u00e9cart de diam\u00e8tre\"><\/svg>\n      <div class=\"readout\" id=\"adc-readout\">\u2014<\/div>\n      <span class=\"pill idle\" id=\"adc-pill\">En attente<\/span>\n      <p class=\"why\" id=\"adc-why\">Entrez deux grandeurs pour les comparer.<\/p>\n    <\/div>\n    <div class=\"panel card profile\">\n      <div class=\"card-head\"><span class=\"eyebrow\" data-t=\"profileTitle\">Profil \u00e0 l'\u00e9chelle<\/span><span class=\"eyebrow\" id=\"adc-hdiff\"><\/span><\/div>\n      <svg id=\"adc-profile\" viewBox=\"0 0 360 230\" role=\"img\" aria-label=\"Les deux pneus dessin\u00e9s \u00e0 l'\u00e9chelle\"><\/svg>\n    <\/div>\n  <\/section>\n\n  <section class=\"actions\" id=\"adc-actions\"><\/section>\n\n  <section class=\"panel offer\" aria-labelledby=\"adc-offer-title\">\n    <div><div class=\"eyebrow\" id=\"adc-offer-title\" data-t=\"offerTitle\">Recevoir une offre<\/div><div class=\"note\" data-t=\"offerNote\">Laissez vos coordonn\u00e9es : nous vous rappelons avec le prix des pneus pour ces grandeurs.<\/div><\/div>\n    <form id=\"adc-offer-form\" novalidate>\n      <div class=\"fgrid\">\n        <label><span data-t=\"fName\">Nom<\/span><input id=\"adc-o-name\" autocomplete=\"name\" maxlength=\"80\" required><\/label>\n        <label><span data-t=\"fPhone\">T\u00e9l\u00e9phone<\/span><input id=\"adc-o-phone\" type=\"tel\" inputmode=\"tel\" autocomplete=\"tel\" maxlength=\"20\" required><\/label>\n        <label><span data-t=\"fEmail\">Courriel (facultatif)<\/span><input id=\"adc-o-email\" type=\"email\" autocomplete=\"email\" maxlength=\"120\"><\/label>\n      <\/div>\n      <div class=\"hp\" aria-hidden=\"true\"><input id=\"adc-o-web\" tabindex=\"-1\" autocomplete=\"off\"><\/div>\n      <label class=\"consent\"><input type=\"checkbox\" id=\"adc-o-consent\"><span data-t=\"fConsent\">J'accepte de recevoir les offres d'Autos Discount par courriel. Je peux me d\u00e9sabonner en tout temps.<\/span><\/label>\n      <div class=\"osend\"><button class=\"btn\" type=\"submit\" id=\"adc-o-send\" data-t=\"fSend\">Envoyer ma demande<\/button><span class=\"ostatus\" id=\"adc-o-status\" role=\"status\"><\/span><\/div>\n    <\/form>\n  <\/section>\n\n\n  <section class=\"tiles\" id=\"adc-tiles\" aria-label=\"Mesures\"><\/section>\n\n  <section class=\"panel eq-card\">\n    <div class=\"card-head\">\n      <div><div class=\"eyebrow\" data-t=\"eqTitle\">Grandeurs \u00e9quivalentes<\/div><div class=\"note\" data-t=\"eqNote\">\u00c0 moins de 3 % du diam\u00e8tre d'origine. Touchez-en une pour la comparer.<\/div><\/div>\n      <div class=\"seg\" role=\"group\" aria-label=\"Filtre des jantes\">\n        <button type=\"button\" id=\"adc-f-all\" aria-pressed=\"true\" data-t=\"allRims\">Toutes les jantes<\/button>\n        <button type=\"button\" id=\"adc-f-same\" aria-pressed=\"false\" data-t=\"sameRim\">M\u00eame jante<\/button>\n      <\/div>\n    <\/div>\n    <div class=\"eq\" id=\"adc-eq\"><\/div>\n    <button class=\"more\" id=\"adc-more\" type=\"button\">Voir plus<\/button>\n  <\/section>\n\n\n  <section class=\"note\">\n    <div data-t=\"note1\">La grandeur d'origine est toujours pr\u00e9f\u00e9rable. V\u00e9rifiez l'indice de charge, l'indice de vitesse et l'espace dans l'aile avant de changer de grandeur.<\/div>\n    <div data-t=\"note2\">Diam\u00e8tre = jante + 2 \u00d7 largeur \u00d7 s\u00e9rie. Tours au mille = 20 800 \u00f7 diam\u00e8tre en pouces, comme la feuille Excel du garage.<\/div>\n  <\/section>\n<\/div>\n\n<\/div>\n<script>\n(function () {\n  const MM = 25.4, LIMIT = 3, NEAR = 2, RANGE = 6;\n  const $ = (id) => document.getElementById(id);\n  let sameRimOnly = false, showAll = false;\n  const T = {\n    fr: {\n      title: \"Conversion de pneus\", origLong: \"Grandeur d'origine\", origShort: \"Origine\", replLong: \"Grandeur de remplacement\", replShort: \"Remplacement\",\n      gapTitle: \"\u00c9cart de diam\u00e8tre\", limit: \"limite \u00b1 3 %\", profileTitle: \"Profil \u00e0 l'\u00e9chelle\", eqTitle: \"Grandeurs \u00e9quivalentes\",\n      eqNote: \"\u00c0 moins de 3 % du diam\u00e8tre d'origine. Touchez-en une pour la comparer.\", allRims: \"Toutes les jantes\", sameRim: \"M\u00eame jante\",\n      note1: \"La grandeur d'origine est toujours pr\u00e9f\u00e9rable. V\u00e9rifiez l'indice de charge, l'indice de vitesse et l'espace dans l'aile avant de changer de grandeur.\",\n      note2: \"Diam\u00e8tre = jante + 2 \u00d7 largeur \u00d7 s\u00e9rie. Tours au mille = 20 800 \u00f7 diam\u00e8tre en pouces, comme la feuille Excel du garage.\",\n      origHint: \"275\/70R16 \u00b7 2757016 \u00b7 31x10.50R15\", replHint: \"Tapez ou touchez une grandeur \u00e9quivalente\", flot: \"Grandeur flottaison (pouces)\", bad: \"Grandeur non reconnue. Exemple : 275\/70R16\",\n      waiting: \"En attente\", enterTwo: \"Entrez deux grandeurs pour les comparer.\", ok: \"Acceptable\", warn: \"Acceptable, limite\", badV: \"Inacceptable\",\n      whyOk: (a) => `Le diam\u00e8tre change de ${a} %, sous la limite de 3 %.`, whyBad: (a) => `Le diam\u00e8tre change de ${a} %, au-del\u00e0 de 3 %. Le compteur, l'ABS et la transmission seraient fauss\u00e9s.`,\n      orig: \"ORIGINE\", repl: \"REMPLACEMENT\", inch: \"po\", gap: \"\u00c9cart\", diameter: \"Diam\u00e8tre\", width: \"Largeur\", sidewall: \"Flanc\", origin: \"origine\",\n      speedo: \"Compteur \u00e0 100 km\/h\", realSpeed: \"vitesse r\u00e9elle\", revKm: \"Tours au km\", perMile: \"au mille\", stripSpeed: (v) => `Compteur 100<br>r\u00e9el ${v} km\/h`,\n      eqNoOrig: \"Entrez la grandeur d'origine pour voir les \u00e9quivalents.\", eqNone: \"Aucune grandeur courante \u00e0 moins de 3 % avec ce filtre.\",\n      more: \"Voir plus\", less: \"Voir moins\", search: (x) => `Chercher ${x} sur le site \u2197`, search2: (x) => `Chercher ${x} \u2197`,\n      offerTitle: \"Recevoir une offre\", offerNote: \"Laissez vos coordonn\u00e9es : nous vous rappelons avec le prix des pneus pour ces grandeurs.\",\n      fName: \"Nom\", fPhone: \"T\u00e9l\u00e9phone\", fEmail: \"Courriel (facultatif)\", fConsent: \"J'accepte de recevoir les offres d'Autos Discount par courriel. Je peux me d\u00e9sabonner en tout temps.\",\n      fSend: \"Envoyer ma demande\", fSending: \"Envoi\u2026\", fNeedSize: \"Entrez d'abord la grandeur d'origine.\", fNeedName: \"Entrez votre nom.\",\n      fNeedPhone: \"Entrez un num\u00e9ro de t\u00e9l\u00e9phone \u00e0 10 chiffres.\", fBadEmail: \"Ce courriel ne semble pas valide.\",\n      fDone: \"Merci ! Nous vous rappelons bient\u00f4t.\", fFail: \"Envoi impossible. Appelez-nous au 514-225-0555.\", fMany: \"Demande d\u00e9j\u00e0 re\u00e7ue. Appelez-nous au 514-225-0555.\",\n    },\n    en: {\n      title: \"Tire Size Converter\", origLong: \"Original size\", origShort: \"Original\", replLong: \"Replacement size\", replShort: \"Replacement\",\n      gapTitle: \"Diameter difference\", limit: \"limit \u00b1 3%\", profileTitle: \"To scale\", eqTitle: \"Equivalent sizes\",\n      eqNote: \"Within 3% of the original diameter. Tap one to compare it.\", allRims: \"All rims\", sameRim: \"Same rim\",\n      note1: \"The original size is always best. Check the load index, the speed rating and the room in the wheel well before changing size.\",\n      note2: \"Diameter = rim + 2 \u00d7 width \u00d7 aspect ratio. Revs per mile = 20,800 \u00f7 diameter in inches, as in the shop's Excel sheet.\",\n      origHint: \"275\/70R16 \u00b7 2757016 \u00b7 31x10.50R15\", replHint: \"Type or tap an equivalent size\", flot: \"Flotation size (inches)\", bad: \"Size not recognized. Example: 275\/70R16\",\n      waiting: \"Waiting\", enterTwo: \"Enter two sizes to compare them.\", ok: \"Acceptable\", warn: \"Acceptable, borderline\", badV: \"Not acceptable\",\n      whyOk: (a) => `The diameter changes by ${a}%, within the 3% limit.`, whyBad: (a) => `The diameter changes by ${a}%, over the 3% limit. The speedometer, ABS and transmission would be thrown off.`,\n      orig: \"ORIGINAL\", repl: \"REPLACEMENT\", inch: \"in\", gap: \"Difference\", diameter: \"Diameter\", width: \"Width\", sidewall: \"Sidewall\", origin: \"original\",\n      speedo: \"Speedometer at 100 km\/h\", realSpeed: \"actual speed\", revKm: \"Revs per km\", perMile: \"per mile\", stripSpeed: (v) => `Speedo 100<br>actual ${v} km\/h`,\n      eqNoOrig: \"Enter the original size to see equivalents.\", eqNone: \"No common size within 3% with this filter.\",\n      more: \"Show more\", less: \"Show less\", search: (x) => `Find ${x} on our site \u2197`, search2: (x) => `Find ${x} \u2197`,\n      offerTitle: \"Get a quote\", offerNote: \"Leave your details and we will call you back with the tire price for these sizes.\",\n      fName: \"Name\", fPhone: \"Phone\", fEmail: \"Email (optional)\", fConsent: \"I agree to receive Autos Discount offers by email. I can unsubscribe at any time.\",\n      fSend: \"Send my request\", fSending: \"Sending\u2026\", fNeedSize: \"Enter the original size first.\", fNeedName: \"Enter your name.\",\n      fNeedPhone: \"Enter a 10-digit phone number.\", fBadEmail: \"This email does not look valid.\",\n      fDone: \"Thank you! We will call you back soon.\", fFail: \"Could not send. Please call us at 514-225-0555.\", fMany: \"Request already received. Please call us at 514-225-0555.\",\n    },\n  };\n  let L = \"fr\";\n  try { const saved = localStorage.getItem(\"adconv-lang\"); L = saved === \"en\" || saved === \"fr\" ? saved : (\/^en\/i.test(navigator.language || \"\") ? \"en\" : \"fr\"); } catch (e) { L = \/^en\/i.test(navigator.language || \"\") ? \"en\" : \"fr\"; }\n  const t = (k) => T[L][k];\n  const P = (n, dec = 1) => sign(n, dec) + (L === \"en\" ? \"%\" : \" %\");\n\n  \/\/ Accepts 275\/70R16, P275\/70R16, LT275\/70R16, 275 70 16, 2757016, 275\/70\/16, 31x10.50R15 (flotation).\n  function parse(raw) {\n    const s = String(raw || \"\").toUpperCase().replace(\/,\/g, \".\").trim();\n    if (!s) return null;\n    let m = s.match(\/^(\\d{2}(?:\\.\\d+)?)\\s*[X\u00d7]\\s*(\\d{1,2}(?:\\.\\d+)?)\\s*(?:[A-Z]*R|-|\\s)?\\s*(\\d{2}(?:\\.\\d)?)$\/);\n    if (m) {\n      const d = +m[1], w = +m[2], rim = +m[3];\n      if (d > rim && d < 60) return { kind: \"flot\", d, widthMm: w * MM, ratio: Math.round(((d - rim) \/ 2) \/ w * 100), rim, label: `${m[1]}x${m[2]}R${m[3]}` };\n    }\n    m = s.replace(\/^(P|LT|ST|T)\/, \"\").match(\/^(\\d{3})\\s*[\\\/ -]?\\s*(\\d{2})\\s*(?:Z?R|[\\\/ -]|B|D)?\\s*(\\d{2}(?:\\.\\d)?)\\s*C?$\/);\n    if (!m) { const digits = s.replace(\/\\D\/g, \"\"); if (\/^\\d{7}$\/.test(digits)) m = [0, digits.slice(0, 3), digits.slice(3, 5), digits.slice(5)]; }\n    if (!m) return null;\n    const w = +m[1], r = +m[2], rim = +m[3];\n    if (w < 100 || w > 400 || r < 20 || r > 95 || rim < 10 || rim > 26) return null;\n    const d = rim + 2 * w * r \/ 100 \/ MM;\n    return { kind: \"metric\", d, widthMm: w, ratio: r, rim, label: `${w}\/${r}R${rim}` };\n  }\n  const side = (t) => (t.d - t.rim) \/ 2 * MM;\n  const revMile = (d) => 20800 \/ d;\n  const fmt = (n, dec = 1) => n.toLocaleString(L === \"en\" ? \"en-CA\" : \"fr-CA\", { minimumFractionDigits: dec, maximumFractionDigits: dec });\n  const sign = (n, dec = 1) => (n > 0.00001 ? \"+\" : n < -0.00001 ? \"\u2212\" : \"\") + fmt(Math.abs(n), dec);\n  const level = (a) => a <= NEAR ? \"ok\" : a <= LIMIT ? \"warn\" : \"bad\";\n\n  function equivalents(o) {\n    const out = [];\n    for (let rim = Math.max(13, o.rim - 1); rim <= Math.min(24, o.rim + 3); rim++)\n      for (let w = 155; w <= 355; w += 10)\n        for (let r = 25; r <= 85; r += 5) {\n          if (Math.abs(w - o.widthMm) > 30) continue;\n          const d = rim + 2 * w * r \/ 100 \/ MM;\n          const pct = (d - o.d) \/ o.d * 100;\n          if (Math.abs(pct) <= LIMIT) out.push({ label: `${w}\/${r}R${rim}`, pct, same: rim === o.rim });\n        }\n    return out.filter(e => e.label !== o.label).sort((a, b) => Math.abs(a.pct) - Math.abs(b.pct));\n  }\n\n  \/\/ Semicircle gauge from \u22126 % to +6 %, zones \u00b12 (ok), \u00b13 (limit), beyond (bad).\n  function gauge(pct) {\n    const cx = 160, cy = 160, R = 130, W = 16;\n    const ang = (p) => Math.PI - (Math.max(-RANGE, Math.min(RANGE, p)) + RANGE) \/ (2 * RANGE) * Math.PI;\n    const pt = (p, r) => [cx + r * Math.cos(ang(p)), cy - r * Math.sin(ang(p))];\n    const arc = (a, b, color) => { const [x1, y1] = pt(a, R), [x2, y2] = pt(b, R); return `<path d=\"M${x1.toFixed(1)} ${y1.toFixed(1)} A${R} ${R} 0 0 1 ${x2.toFixed(1)} ${y2.toFixed(1)}\" stroke=\"${color}\" stroke-width=\"${W}\" fill=\"none\"\/>`; };\n    let s = arc(-6, -3, \"var(--bad)\") + arc(-3, -2, \"var(--warn)\") + arc(-2, 2, \"var(--ok)\") + arc(2, 3, \"var(--warn)\") + arc(3, 6, \"var(--bad)\");\n    for (const t of [-6, -3, 0, 3, 6]) {\n      const [a1, b1] = pt(t, R - W \/ 2 - 4), [a2, b2] = pt(t, R - W \/ 2 - 12), [lx, ly] = pt(t, R - W \/ 2 - 26);\n      s += `<line x1=\"${a1.toFixed(1)}\" y1=\"${b1.toFixed(1)}\" x2=\"${a2.toFixed(1)}\" y2=\"${b2.toFixed(1)}\" stroke=\"var(--muted)\" stroke-width=\"2\"\/>`;\n      s += `<text x=\"${lx.toFixed(1)}\" y=\"${(ly + 4).toFixed(1)}\" text-anchor=\"middle\">${t > 0 ? \"+\" + t : t === 0 ? \"0\" : \"\u2212\" + (-t)}<\/text>`;\n    }\n    if (pct !== null) {\n      const [nx, ny] = pt(pct, R - 6), col = `var(--${level(Math.abs(pct))})`;\n      s += `<line x1=\"${cx}\" y1=\"${cy}\" x2=\"${nx.toFixed(1)}\" y2=\"${ny.toFixed(1)}\" stroke=\"var(--ink)\" stroke-width=\"4\" stroke-linecap=\"round\"\/>`;\n      s += `<circle cx=\"${nx.toFixed(1)}\" cy=\"${ny.toFixed(1)}\" r=\"7\" fill=\"${col}\" stroke=\"var(--surface)\" stroke-width=\"3\"\/>`;\n    }\n    s += `<circle cx=\"${cx}\" cy=\"${cy}\" r=\"9\" fill=\"var(--accent)\"\/>`;\n    $(\"adc-gauge\").innerHTML = s;\n  }\n\n  \/\/ Two tires standing on the same ground line, scaled to the larger diameter; dashed line marks the original top.\n  function profile(o, n) {\n    const ground = 200, maxD = Math.max(o.d, n.d), k = 150 \/ maxD, cxs = [92, 268];\n    const tire = (t, cx, isNew) => {\n      const R = t.d \/ 2 * k, rr = t.rim \/ 2 * k, cy = ground - R;\n      const col = isNew ? \"var(--tire)\" : \"var(--tire-old)\";\n      return `<circle cx=\"${cx}\" cy=\"${cy.toFixed(1)}\" r=\"${((R + rr) \/ 2).toFixed(1)}\" fill=\"none\" stroke=\"${col}\" stroke-width=\"${(R - rr).toFixed(1)}\"\/>\n        <circle cx=\"${cx}\" cy=\"${cy.toFixed(1)}\" r=\"${rr.toFixed(1)}\" fill=\"var(--surface-2)\" stroke=\"${isNew ? \"var(--accent)\" : \"var(--line)\"}\" stroke-width=\"3\"\/>\n        <circle cx=\"${cx}\" cy=\"${cy.toFixed(1)}\" r=\"${(rr * 0.28).toFixed(1)}\" fill=\"${isNew ? \"var(--accent)\" : \"var(--line)\"}\"\/>\n        <text x=\"${cx}\" y=\"${ground + 20}\" text-anchor=\"middle\" class=\"lbl ${isNew ? \"lbl-new\" : \"lbl-old\"}\">${isNew ? T[L].repl : T[L].orig}<\/text>\n        <text x=\"${cx}\" y=\"${(cy - R - 8).toFixed(1)}\" text-anchor=\"middle\">${fmt(t.d, 2)} ${T[L].inch}<\/text>`;\n    };\n    const topO = ground - o.d * k;\n    $(\"adc-profile\").innerHTML =\n      `<line x1=\"10\" y1=\"${ground}\" x2=\"350\" y2=\"${ground}\" stroke=\"var(--line)\" stroke-width=\"2\"\/>` +\n      `<line x1=\"10\" y1=\"${topO.toFixed(1)}\" x2=\"350\" y2=\"${topO.toFixed(1)}\" stroke=\"var(--tire-old)\" stroke-width=\"1\" stroke-dasharray=\"4 5\"\/>` +\n      tire(o, cxs[0], false) + tire(n, cxs[1], true);\n    $(\"adc-hdiff\").textContent = `${t(\"gap\")} ${sign((n.d - o.d) * 25.4, 0)} mm`;\n  }\n\n  function tiles(o, n) {\n    const rowsT = [\n      { k: t(\"diameter\"), v: `${fmt(n.d * 2.54, 1)} cm`, f: `${fmt(o.d * 2.54, 1)} cm \u00b7 ${fmt(n.d, 2)} ${t(\"inch\")}`, d: (n.d - o.d) * 2.54, u: \"cm\", dec: 1 },\n      { k: t(\"width\"), v: `${fmt(n.widthMm, 0)} mm`, f: `${t(\"origin\")} ${fmt(o.widthMm, 0)} mm`, d: n.widthMm - o.widthMm, u: \"mm\", dec: 0 },\n      { k: t(\"sidewall\"), v: `${fmt(side(n), 0)} mm`, f: `${t(\"origin\")} ${fmt(side(o), 0)} mm`, d: side(n) - side(o), u: \"mm\", dec: 0 },\n      { k: t(\"speedo\"), v: `${fmt(100 * n.d \/ o.d, 1)} km\/h`, f: t(\"realSpeed\"), d: 100 * n.d \/ o.d - 100, u: \"km\/h\", dec: 1, hl: true },\n      { k: t(\"revKm\"), v: fmt(revMile(n.d) \/ 1.609344, 0), f: `${fmt(revMile(n.d), 0)} ${t(\"perMile\")}`, d: (revMile(n.d) - revMile(o.d)) \/ 1.609344, u: \"\", dec: 0 },\n    ];\n    $(\"adc-tiles\").innerHTML = rowsT.map(x => {\n      const cls = Math.abs(x.d) < 0.05 ? \"\" : x.d > 0 ? \"up\" : \"down\";\n      return `<div class=\"panel tile${x.hl ? \" hl\" : \"\"}\"><span class=\"eyebrow\">${x.k}<\/span><span class=\"v\">${x.v}<\/span><span class=\"from\">${x.f}<\/span><span class=\"delta ${cls}\">${sign(x.d, x.dec)}${x.u ? \" \" + x.u : \"\"}<\/span><\/div>`;\n    }).join(\"\");\n  }\n\n  function renderEq(o, n) {\n    const eq = $(\"adc-eq\");\n    if (!o) { eq.innerHTML = `<div class=\"empty\">${t(\"eqNoOrig\")}<\/div>`; return; }\n    const list = equivalents(o).filter(e => !sameRimOnly || e.same).slice(0, 24);\n    if (!list.length) { eq.innerHTML = `<div class=\"empty\">${t(\"eqNone\")}<\/div>`; return; }\n    eq.innerHTML = list.map(e => {\n      const half = Math.min(Math.abs(e.pct) \/ LIMIT, 1) * 50;\n      const left = e.pct >= 0 ? 50 : 50 - half;\n      return `<button type=\"button\" data-size=\"${e.label}\" class=\"${n && n.label === e.label ? \"on\" : \"\"}\"><span class=\"sz\">${e.label}<\/span><span class=\"meter\" aria-hidden=\"true\"><b style=\"left:${left}%;width:${Math.max(half, 1.5)}%;background:var(--${level(Math.abs(e.pct))})\"><\/b><\/span><span class=\"p\">${P(e.pct)}<\/span><\/button>`;\n    }).join(\"\");\n  }\n\n  function render() {\n    const o = parse($(\"adc-orig\").value), n = parse($(\"adc-repl\").value);\n    const hint = (id, sz, ok, ex) => { const el = $(id); el.textContent = ok ? (sz && sz.kind === \"flot\" ? t(\"flot\") : ex) : t(\"bad\"); el.classList.toggle(\"err\", !ok); };\n    hint(\"adc-orig-hint\", o, !!o || !$(\"adc-orig\").value.trim(), t(\"origHint\"));\n    hint(\"adc-repl-hint\", n, !!n || !$(\"adc-repl\").value.trim(), t(\"replHint\"));\n    renderEq(o, n);\n    $(\"adc-more\").hidden = $(\"adc-eq\").children.length <= 12;\n\n    if (!o || !n) {\n      gauge(null); $(\"adc-readout\").textContent = \"\u2014\"; $(\"adc-pill\").className = \"pill idle\"; $(\"adc-pill\").textContent = t(\"waiting\");\n      $(\"adc-why\").textContent = t(\"enterTwo\"); $(\"adc-strip\").innerHTML = `<span class=\"pill idle\">${t(\"waiting\")}<\/span>`; $(\"adc-profile\").innerHTML = \"\"; $(\"adc-hdiff\").textContent = \"\"; $(\"adc-tiles\").innerHTML = \"\"; $(\"adc-actions\").innerHTML = \"\";\n      return;\n    }\n    const pct = (n.d - o.d) \/ o.d * 100, a = Math.abs(pct), lv = level(a);\n    gauge(pct);\n    $(\"adc-readout\").textContent = P(pct);\n    $(\"adc-readout\").style.color = `var(--${lv})`;\n    $(\"adc-pill\").className = \"pill \" + lv;\n    $(\"adc-pill\").textContent = lv === \"ok\" ? t(\"ok\") : lv === \"warn\" ? t(\"warn\") : t(\"badV\");\n    $(\"adc-why\").textContent = a <= LIMIT\n      ? t(\"whyOk\")(fmt(a))\n      : t(\"whyBad\")(fmt(a));\n    profile(o, n); tiles(o, n);\n    $(\"adc-strip\").innerHTML = `<span class=\"sp\" style=\"color:var(--${lv})\">${P(pct)}<\/span><span class=\"pill ${lv}\">${$(\"adc-pill\").textContent}<\/span><span class=\"sv\">${t(\"stripSpeed\")(fmt(100 * n.d \/ o.d))}<\/span>`;\n\n    const q = (t) => t.kind === \"metric\" ? `${t.widthMm}${t.ratio}${t.rim}` : t.label;\n    $(\"adc-actions\").innerHTML =\n      `<a class=\"btn\" href=\"https:\/\/autosdiscounts.com\/?s=${encodeURIComponent(q(n))}&post_type=product\" target=\"_blank\" rel=\"noopener\">${t(\"search\")(n.label)}<\/a>` +\n      `<a class=\"btn ghost\" href=\"https:\/\/autosdiscounts.com\/?s=${encodeURIComponent(q(o))}&post_type=product\" target=\"_blank\" rel=\"noopener\">${t(\"search2\")(o.label)}<\/a>`;\n  }\n\n  const setFilter = (same) => { sameRimOnly = same; $(\"adc-f-all\").setAttribute(\"aria-pressed\", String(!same)); $(\"adc-f-same\").setAttribute(\"aria-pressed\", String(same)); render(); };\n  $(\"adc-f-all\").addEventListener(\"click\", () => setFilter(false));\n  $(\"adc-more\").addEventListener(\"click\", () => { showAll = $(\"adc-eq\").classList.toggle(\"all\"); $(\"adc-more\").textContent = showAll ? t(\"less\") : t(\"more\"); });\n  function setLang(l) {\n    L = l; try { localStorage.setItem(\"adconv-lang\", l); } catch (e) {}\n    document.querySelectorAll(\".adconv [data-t]\").forEach((el) => { el.textContent = t(el.dataset.t); });\n    document.querySelectorAll(\".adconv .lang button\").forEach((b) => b.setAttribute(\"aria-pressed\", String(b.dataset.l === l)));\n    $(\"adc-more\").textContent = showAll ? t(\"less\") : t(\"more\");\n    render();\n  }\n  document.querySelectorAll(\".adconv .lang button\").forEach((b) => b.addEventListener(\"click\", () => setLang(b.dataset.l)));\n  $(\"adc-f-same\").addEventListener(\"click\", () => setFilter(true));\n  $(\"adc-orig\").addEventListener(\"input\", render);\n  $(\"adc-repl\").addEventListener(\"input\", render);\n  $(\"adc-swap\").addEventListener(\"click\", () => { const a = $(\"adc-orig\").value; $(\"adc-orig\").value = $(\"adc-repl\").value; $(\"adc-repl\").value = a; render(); });\n  $(\"adc-eq\").addEventListener(\"click\", (e) => { const b = e.target.closest(\"button[data-size]\"); if (b) { $(\"adc-repl\").value = b.dataset.size; render(); $(\"adc-gauge\").scrollIntoView({ block: \"nearest\", behavior: \"smooth\" }); } });\n  const OFFER_URL = \/(^|\\.)autosdiscounts\\.com$\/i.test(location.hostname) ? \"\/wp-json\/csautos\/v1\/convertisseur\" : \"https:\/\/autosdiscounts.com\/wp-json\/csautos\/v1\/convertisseur\";\n  $(\"adc-offer-form\").addEventListener(\"submit\", async (e) => {\n    e.preventDefault();\n    const st = $(\"adc-o-status\"), btn = $(\"adc-o-send\");\n    const say = (k, ok) => { st.textContent = t(k); st.className = \"ostatus \" + (ok ? \"ok\" : \"err\"); };\n    const o = parse($(\"adc-orig\").value), n = parse($(\"adc-repl\").value);\n    const name = $(\"adc-o-name\").value.trim(), digits = $(\"adc-o-phone\").value.replace(\/\\D\/g, \"\").slice(-10), email = $(\"adc-o-email\").value.trim();\n    if (!o) return say(\"fNeedSize\");\n    if (!name) return say(\"fNeedName\");\n    if (digits.length !== 10) return say(\"fNeedPhone\");\n    if (email && !\/^[^@\\s]+@[^@\\s]+\\.[a-z]{2,}$\/i.test(email)) return say(\"fBadEmail\");\n    btn.disabled = true; st.className = \"ostatus\"; st.textContent = t(\"fSending\");\n    try {\n      const r = await fetch(OFFER_URL, { method: \"POST\", headers: { \"Content-Type\": \"application\/json\" }, body: JSON.stringify({\n        name, phone: digits, email, size_orig: o.label, size_repl: n ? n.label : \"\", diff_pct: n ? Math.round((n.d - o.d) \/ o.d * 10000) \/ 100 : null,\n        lang: L, consent: $(\"adc-o-consent\").checked, website: $(\"adc-o-web\").value }) });\n      if (r.ok) { say(\"fDone\", true); $(\"adc-offer-form\").reset(); } else { say(r.status === 429 ? \"fMany\" : \"fFail\"); btn.disabled = false; }\n    } catch (err) { say(\"fFail\"); btn.disabled = false; }\n  });\n  setLang(L);\n})();\n<\/script>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-fbd8343 e-grid e-con-boxed e-con e-parent\" data-id=\"fbd8343\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_themeisle_gutenberg_block_has_review":false,"two_page_speed":[],"footnotes":""},"class_list":["post-3581","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Tires Conversion - Autos Discount<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/autosdiscounts.com\/fr\/tires-conversion\/\" \/>\n<meta property=\"og:locale\" content=\"fr_CA\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tires Conversion - Autos Discount\" \/>\n<meta property=\"og:url\" content=\"https:\/\/autosdiscounts.com\/fr\/tires-conversion\/\" \/>\n<meta property=\"og:site_name\" content=\"Autos Discount\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-14T21:24:06+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/autosdiscounts.com\\\/tires-conversion\\\/\",\"url\":\"https:\\\/\\\/autosdiscounts.com\\\/tires-conversion\\\/\",\"name\":\"Tires Conversion - Autos Discount\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/autosdiscounts.com\\\/#website\"},\"datePublished\":\"2026-10-14T01:27:57+00:00\",\"dateModified\":\"2026-10-14T21:24:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/autosdiscounts.com\\\/tires-conversion\\\/#breadcrumb\"},\"inLanguage\":\"fr-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/autosdiscounts.com\\\/tires-conversion\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/autosdiscounts.com\\\/tires-conversion\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/autosdiscounts.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tires Conversion\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/autosdiscounts.com\\\/#website\",\"url\":\"https:\\\/\\\/autosdiscounts.com\\\/\",\"name\":\"Autos Discounts\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/autosdiscounts.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/autosdiscounts.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-CA\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/autosdiscounts.com\\\/#organization\",\"name\":\"Autos Discount\",\"url\":\"https:\\\/\\\/autosdiscounts.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-CA\",\"@id\":\"https:\\\/\\\/autosdiscounts.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/autosdiscounts.com\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/DALL\u00b7E-2024-08-26-10.15.05-A-modern-and-dynamic-logo-for-a-company-named-Autos-Discount.-The-logo-should-represent-the-automotive-industry-incorporating-elements-like-a-car-s.webp\",\"contentUrl\":\"https:\\\/\\\/autosdiscounts.com\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/DALL\u00b7E-2024-08-26-10.15.05-A-modern-and-dynamic-logo-for-a-company-named-Autos-Discount.-The-logo-should-represent-the-automotive-industry-incorporating-elements-like-a-car-s.webp\",\"width\":1024,\"height\":1024,\"caption\":\"Autos Discount\"},\"image\":{\"@id\":\"https:\\\/\\\/autosdiscounts.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tires Conversion - Autos Discount","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:\/\/autosdiscounts.com\/fr\/tires-conversion\/","og_locale":"fr_CA","og_type":"article","og_title":"Tires Conversion - Autos Discount","og_url":"https:\/\/autosdiscounts.com\/fr\/tires-conversion\/","og_site_name":"Autos Discount","article_modified_time":"2026-10-14T21:24:06+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/autosdiscounts.com\/tires-conversion\/","url":"https:\/\/autosdiscounts.com\/tires-conversion\/","name":"Tires Conversion - Autos Discount","isPartOf":{"@id":"https:\/\/autosdiscounts.com\/#website"},"datePublished":"2026-10-14T01:27:57+00:00","dateModified":"2026-10-14T21:24:06+00:00","breadcrumb":{"@id":"https:\/\/autosdiscounts.com\/tires-conversion\/#breadcrumb"},"inLanguage":"fr-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/autosdiscounts.com\/tires-conversion\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/autosdiscounts.com\/tires-conversion\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/autosdiscounts.com\/"},{"@type":"ListItem","position":2,"name":"Tires Conversion"}]},{"@type":"WebSite","@id":"https:\/\/autosdiscounts.com\/#website","url":"https:\/\/autosdiscounts.com\/","name":"Autos Discounts","description":"","publisher":{"@id":"https:\/\/autosdiscounts.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/autosdiscounts.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-CA"},{"@type":"Organization","@id":"https:\/\/autosdiscounts.com\/#organization","name":"Autos Discount","url":"https:\/\/autosdiscounts.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-CA","@id":"https:\/\/autosdiscounts.com\/#\/schema\/logo\/image\/","url":"https:\/\/autosdiscounts.com\/wp-content\/uploads\/2024\/08\/DALL\u00b7E-2024-08-26-10.15.05-A-modern-and-dynamic-logo-for-a-company-named-Autos-Discount.-The-logo-should-represent-the-automotive-industry-incorporating-elements-like-a-car-s.webp","contentUrl":"https:\/\/autosdiscounts.com\/wp-content\/uploads\/2024\/08\/DALL\u00b7E-2024-08-26-10.15.05-A-modern-and-dynamic-logo-for-a-company-named-Autos-Discount.-The-logo-should-represent-the-automotive-industry-incorporating-elements-like-a-car-s.webp","width":1024,"height":1024,"caption":"Autos Discount"},"image":{"@id":"https:\/\/autosdiscounts.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/autosdiscounts.com\/fr\/wp-json\/wp\/v2\/pages\/3581","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/autosdiscounts.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/autosdiscounts.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/autosdiscounts.com\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/autosdiscounts.com\/fr\/wp-json\/wp\/v2\/comments?post=3581"}],"version-history":[{"count":25,"href":"https:\/\/autosdiscounts.com\/fr\/wp-json\/wp\/v2\/pages\/3581\/revisions"}],"predecessor-version":[{"id":3623,"href":"https:\/\/autosdiscounts.com\/fr\/wp-json\/wp\/v2\/pages\/3581\/revisions\/3623"}],"wp:attachment":[{"href":"https:\/\/autosdiscounts.com\/fr\/wp-json\/wp\/v2\/media?parent=3581"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}