{"product_id":"vision-control-pdl00092-5046","title":"Vision Control","description":"\u003cstyle\u003e\n  \/* Base page *\/\n  .tp-page { font-family: Montserrat, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; max-width: 1100px; margin: 0 auto; padding: 0 20px; line-height: 1.6; color: #222; }\n  .tp-h2 { font-size: 22px; font-weight: 700; margin: 28px 0 14px; color: #0b1b21; border-bottom: 2px solid #0b6b7a; padding: 10px 14px; border-radius: 4px; background: #f8fafc; }\n  .tp-list { margin: 0; padding-left: 20px; }\n  .tp-badges { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0; }\n  .tp-badge { background: #0b6b7a; color: #fff; font-size: 12px; padding: 6px 10px; border-radius: 999px; }\n\n  \/* Sommaire *\/\n  .tp-toc { background: #F3F5F7; border-top: 3px solid #0b6b7a; padding: 12px 14px; margin: 16px 0; }\n  .tp-toc ul { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 12px; }\n  .tp-toc a { color: #000; text-decoration: none; font-size: 13px; white-space: nowrap; }\n\n  \/* Grids *\/\n  .tp-specs { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }\n  .tp-card { background: #F3F5F7; border-radius: 10px; padding: 12px; }\n\n  \/* NOTES SUR 10 *\/\n  .tp-notes-wrap { margin: 18px 0 8px; }\n  .tp-notes-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }\n  .tp-note { background: #F3F5F7; border-radius: 10px; padding: 10px 12px; }\n  .tp-note-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; font-weight: 600; }\n  .tp-bar { height: 8px; background: #E5E9EF; border-radius: 999px; overflow: hidden; }\n  .tp-bar-fill { height: 100%; width: 0%; transition: width 0.6s ease, background 0.3s ease; }\n\n  @media (max-width: 640px) {\n    .tp-notes-grid { grid-template-columns: 1fr; }\n  }\n\u003c\/style\u003e\n\n\u003cdiv class=\"tp-page\" id=\"tp-osaka-vision-control-electric-fuchsia\"\u003e\n  \u003c!-- Sommaire --\u003e\n  \u003cdiv class=\"tp-toc\"\u003e\n    \u003cstrong\u003eNavigation rapide\u003c\/strong\u003e\n    \u003cul\u003e\n      \u003cli\u003e\u003ca href=\"#essentiel\"\u003eÀ retenir\u003c\/a\u003e\u003c\/li\u003e\n      \u003cli\u003e\u003ca href=\"#caracts\"\u003eCaractéristiques\u003c\/a\u003e\u003c\/li\u003e\n      \u003cli\u003e\u003ca href=\"#tech\"\u003eTechnologies\u003c\/a\u003e\u003c\/li\u003e\n      \u003cli\u003e\u003ca href=\"#joueurs\"\u003ePour qui\u003c\/a\u003e\u003c\/li\u003e\n      \u003cli\u003e\u003ca href=\"#dimensions\"\u003ePoids et équilibre\u003c\/a\u003e\u003c\/li\u003e\n      \u003cli\u003e\u003ca href=\"#composition\"\u003eComposition\u003c\/a\u003e\u003c\/li\u003e\n      \u003cli\u003e\u003ca href=\"#notes\"\u003eNotes sur 10\u003c\/a\u003e\u003c\/li\u003e\n      \u003cli\u003e\u003ca href=\"#entretien\"\u003eEntretien\u003c\/a\u003e\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- À RETENIR --\u003e\n  \u003cdiv id=\"essentiel\" class=\"tp-h2\"\u003eÀ retenir\u003c\/div\u003e\n  \u003cdiv class=\"tp-badges\"\u003e\n    \u003cspan class=\"tp-badge\"\u003ePrécision\u003c\/span\u003e\n    \u003cspan class=\"tp-badge\"\u003eConfort\u003c\/span\u003e\n    \u003cspan class=\"tp-badge\"\u003eFinition sable\u003c\/span\u003e\n  \u003c\/div\u003e\n  \u003cul class=\"tp-list\"\u003e\n    \u003cli\u003eForme ronde orientée contrôle - tolérante et stable sur les frappes décentrées.\u003c\/li\u003e\n    \u003cli\u003eToucher confortable grâce au noyau EVA Black Touch 13-15.\u003c\/li\u003e\n    \u003cli\u003eIdéal débutants à intermédiaires cherchant la régularité.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003c!-- CARACTÉRISTIQUES --\u003e\n  \u003cdiv id=\"caracts\" class=\"tp-h2\"\u003eCaractéristiques\u003c\/div\u003e\n  \u003cdiv class=\"tp-specs\"\u003e\n    \u003cdiv class=\"tp-card\"\u003e\n      \u003cstrong\u003eFinition\u003c\/strong\u003e\n      \u003cul class=\"tp-list\"\u003e\n        \u003cli\u003eTexture sable pour l’accroche des effets.\u003c\/li\u003e\n        \u003cli\u003ePerçage 68 trous optimisé.\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"tp-card\"\u003e\n      \u003cstrong\u003eCadre et faces\u003c\/strong\u003e\n      \u003cul class=\"tp-list\"\u003e\n        \u003cli\u003eCadre twin‑tube, renfort carbone 30%.\u003c\/li\u003e\n        \u003cli\u003eFaces en fibre de verre.\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"tp-card\"\u003e\n      \u003cstrong\u003eNoyau\u003c\/strong\u003e\n      \u003cul class=\"tp-list\"\u003e\n        \u003cli\u003eEVA Black Touch 13‑15 (équilibre confort\/contrôle).\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- TECHNOLOGIES --\u003e\n  \u003cdiv id=\"tech\" class=\"tp-h2\"\u003eTechnologies\u003c\/div\u003e\n  \u003cul class=\"tp-list\"\u003e\n    \u003cli\u003eStabilisation du cadre pour limiter les torsions à l’impact.\u003c\/li\u003e\n    \u003cli\u003eSweet spot centré et large pour plus de tolérance.\u003c\/li\u003e\n    \u003cli\u003ePeinture micro‑sable pour une accroche progressive.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003c!-- POUR QUI --\u003e\n  \u003cdiv id=\"joueurs\" class=\"tp-h2\"\u003ePour qui\u003c\/div\u003e\n  \u003cul class=\"tp-list\"\u003e\n    \u003cli\u003eNiveau : débutant à intermédiaire visant la précision et la régularité.\u003c\/li\u003e\n    \u003cli\u003eStyle : jeu posé, défenses propres, contre‑attaques maîtrisées.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003c!-- DIMENSIONS --\u003e\n  \u003cdiv id=\"dimensions\" class=\"tp-h2\"\u003ePoids et équilibre\u003c\/div\u003e\n  \u003cul class=\"tp-list\"\u003e\n    \u003cli\u003ePoids moyen : 355‑370 g.\u003c\/li\u003e\n    \u003cli\u003eÉquilibre : 250 ± 10 mm.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003c!-- COMPOSITION --\u003e\n  \u003cdiv id=\"composition\" class=\"tp-h2\"\u003eComposition\u003c\/div\u003e\n  \u003cul class=\"tp-list\"\u003e\n    \u003cli\u003eCadre : fibre de verre avec renfort carbone 30%.\u003c\/li\u003e\n    \u003cli\u003eFaces : fibre de verre.\u003c\/li\u003e\n    \u003cli\u003eNoyau : mousse EVA Black Touch 13‑15.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003c!-- NOTES SUR 10 --\u003e\n  \u003cdiv id=\"notes\" class=\"tp-h2\"\u003eNotes sur 10\u003c\/div\u003e\n  \u003cdiv class=\"tp-notes-wrap\" aria-label=\"Notes de performance sur 10\"\u003e\n    \u003cdiv class=\"tp-notes-grid\" id=\"tp-notes\"\u003e\n      \u003c!-- Modifie data-score (0 à 10, décimales OK) --\u003e\n      \u003cdiv class=\"tp-note\" data-score=\"8.5\"\u003e\n        \u003cdiv class=\"tp-note-head\"\u003e\n\u003cspan\u003eContrôle :\u003c\/span\u003e \u003cspan class=\"tp-score\"\u003e8.5 \/ 10\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"tp-bar\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"10\" aria-valuenow=\"8.5\"\u003e\u003cdiv class=\"tp-bar-fill\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"tp-note\" data-score=\"6\"\u003e\n        \u003cdiv class=\"tp-note-head\"\u003e\n\u003cspan\u003ePuissance :\u003c\/span\u003e \u003cspan class=\"tp-score\"\u003e6 \/ 10\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"tp-bar\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"10\" aria-valuenow=\"6\"\u003e\u003cdiv class=\"tp-bar-fill\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"tp-note\" data-score=\"8\"\u003e\n        \u003cdiv class=\"tp-note-head\"\u003e\n\u003cspan\u003eManiabilité :\u003c\/span\u003e \u003cspan class=\"tp-score\"\u003e8 \/ 10\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"tp-bar\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"10\" aria-valuenow=\"8\"\u003e\u003cdiv class=\"tp-bar-fill\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"tp-note\" data-score=\"7\"\u003e\n        \u003cdiv class=\"tp-note-head\"\u003e\n\u003cspan\u003eEffets :\u003c\/span\u003e \u003cspan class=\"tp-score\"\u003e7 \/ 10\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"tp-bar\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"10\" aria-valuenow=\"7\"\u003e\u003cdiv class=\"tp-bar-fill\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- ENTRETIEN --\u003e\n  \u003cdiv id=\"entretien\" class=\"tp-h2\"\u003eEntretien\u003c\/div\u003e\n  \u003cul class=\"tp-list\"\u003e\n    \u003cli\u003eÉviter les chocs sur cadres et sols abrasifs - ranger à l’abri de la chaleur.\u003c\/li\u003e\n    \u003cli\u003eSurgrip : contrôler l’usure, remplacer pour garder l’adhérence.\u003c\/li\u003e\n    \u003cli\u003eNettoyage : chiffon doux légèrement humide, sans solvants.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n  \/\/ Dégradé selon la note (vert -\u003e jaune -\u003e orange -\u003e rouge)\n  function gradientFor(score) {\n    if (score \u003e= 9.5) {\n      return 'linear-gradient(90deg, #eab308 0%, #f97316 70%, #ef4444 100%)';\n    } else if (score \u003e= 9) {\n      return 'linear-gradient(90deg, #84cc16 0%, #eab308 50%, #f97316 100%)';\n    } else if (score \u003e= 8.5) {\n      return 'linear-gradient(90deg, #22c55e 0%, #84cc16 50%, #eab308 100%)';\n    } else if (score \u003e= 8) {\n      return 'linear-gradient(90deg, #22c55e 0%, #84cc16 70%, #eab308 100%)';\n    } else if (score \u003e= 7) {\n      return 'linear-gradient(90deg, #22c55e 0%, #84cc16 100%)';\n    } else if (score \u003e= 6) {\n      return 'linear-gradient(90deg, #22c55e 0%, #84cc16 100%)';\n    } else if (score \u003e= 4) {\n      return 'linear-gradient(90deg, #22c55e 0%, #84cc16 80%)';\n    } else {\n      return 'linear-gradient(90deg, #84cc16 0%, #eab308 60%, #f97316 100%)';\n    }\n  }\n\n  \/\/ Remplit les barres depuis data-score (0 à 10, décimales OK) + accessibilité\n  document.querySelectorAll('#tp-notes .tp-note').forEach(function (el) {\n    var raw = el.getAttribute('data-score') || '0';\n    var s = Math.max(0, Math.min(10, Number(raw)));\n    var bar = el.querySelector('.tp-bar');\n    var fill = el.querySelector('.tp-bar-fill');\n    var scoreSpan = el.querySelector('.tp-score');\n    if (!bar || !fill) return;\n\n    fill.style.width = (s * 10) + '%';\n    fill.style.background = gradientFor(s);\n    bar.setAttribute('aria-valuenow', String(s));\n    if (scoreSpan) scoreSpan.textContent = (Number.isInteger(s) ? s : s.toString()) + ' \/ 10';\n  });\n\u003c\/script\u003e\n","brand":"OSAKA","offers":[{"title":"Default Title","offer_id":55236921655630,"sku":"PDL00092-5046","price":125.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0871\/0540\/5262\/files\/VisionControl.jpg?v=1767612473","url":"https:\/\/tennispadel.fr\/products\/vision-control-pdl00092-5046","provider":"tennispadel.fr","version":"1.0","type":"link"}