{"id":26846,"date":"2026-02-24T18:17:08","date_gmt":"2026-02-24T18:17:08","guid":{"rendered":"https:\/\/sosgenougeneve.ch\/?page_id=26846"},"modified":"2026-04-02T13:11:02","modified_gmt":"2026-04-02T13:11:02","slug":"diagnostic-douleur-symptomes-genou","status":"publish","type":"page","link":"https:\/\/sosgenougeneve.ch\/en\/diagnostic-douleur-symptomes-genou\/","title":{"rendered":"DIAGNOSIS"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"26846\" class=\"elementor elementor-26846\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ae0e9df e-grid e-con-full e-con e-parent\" data-id=\"ae0e9df\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4cdfafa elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"4cdfafa\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-01d651e\" data-id=\"01d651e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9d643e4 elementor-widget elementor-widget-heading\" data-id=\"9d643e4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Douleurs au genou <br> 15 questions pour orienter votre diagnostic<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e532922 elementor-widget elementor-widget-heading\" data-id=\"e532922\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">R\u00e9pondez aux questions suivantes afin d\u2019identifier votre profil symptomatique.\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-97e8969 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"97e8969\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-4f7e919 e-con-full e-flex e-con e-parent\" data-id=\"4f7e919\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ba8b9f0 elementor-widget elementor-widget-heading\" data-id=\"ba8b9f0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">LES L\u00c9SIONS DU GENOU<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0b2b070 elementor-widget elementor-widget-heading\" data-id=\"0b2b070\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Quelle pathologie se cache\nderri\u00e8re votre douleur ?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c1cf3b3 elementor-widget-mobile__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"c1cf3b3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Notre diagnostic couvre 15 pathologies. Quelques exemples :<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-06be024 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"06be024\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cbd76b5 elementor-widget elementor-widget-html\" data-id=\"cbd76b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <link rel=\"stylesheet\" href=\"https:\/\/use.typekit.net\/arboria.css\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\/>\n  <title>L\u00e9sions du genou \u2014 Pathologies<\/title>\n  <style>\n    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\n    :root {\n      --accent:      #8B1C16;\n      --bg-card:     #4F00000D;\n      --bg-tag:      #4F00000D;\n      --txt:         #1a1a18;\n      --txt-muted:   #1a1a18;\n      --txt-hint:    #8B1C16;\n      --border:      #b0a898;\n      --font:        'arboria', sans-serif;\n      --card-height: 220px;\n    }\n\n    *, button, input, select, textarea { font-family: var(--font); }\n\n    body {\n      font-family: var(--font);\n      background: transparent;\n      color: var(--txt);\n      padding: 3rem 4rem;\n      min-height: 100vh;\n    }\n\n    .section { width: 100%; }\n\n    .topbar { display: flex; justify-content: flex-end; margin-bottom: 1.25rem; }\n    .counter { font-size: 14px; color: var(--txt-hint); }\n\n    .tags-wrap {\n      position: relative;\n      margin-bottom: 2rem;\n    }\n    .tags-wrap::before, .tags-wrap::after {\n      content: '';\n      position: absolute;\n      top: 0; bottom: 10px;\n      width: 48px;\n      pointer-events: none;\n      z-index: 2;\n    }\n    .tags-wrap::before {\n      left: 0;\n      background: linear-gradient(to right, transparent, transparent);\n    }\n    .tags-wrap::after {\n      right: 0;\n      background: linear-gradient(to left, transparent, transparent);\n    }\n    .tags { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 0; }\n    .tag {\n      padding: 8px 20px;\n      border-radius: 8px;\n      font-size: 14px;\n      cursor: pointer;\n      border: 1px solid var(--border);\n      color: var(--txt-muted);\n      background: var(--bg-tag);\n      transition: all 0.15s;\n    }\n    .tag:hover  { background: #8B1C16; border-color: #8B1C16; color: #fff; }\n    .tag.active { background: var(--accent); color: #fff; border-color: var(--accent); }\n\n    .grid-wrapper {\n      overflow: hidden;\n      margin-bottom: 2rem;\n      position: relative;\n    }\n\n    .grid-track {\n      display: flex;\n      will-change: transform;\n    }\n\n    .grid-page {\n      display: flex;\n      flex-shrink: 0;\n    }\n\n    .card {\n      border: 1px solid var(--border);\n      border-top: 3px solid var(--accent);\n      border-radius: 7px;\n      background: var(--bg-card);\n      padding: 1.5rem 1.6rem 1.3rem;\n      display: flex;\n      flex-direction: column;\n      gap: 10px;\n      height: var(--card-height);\n      flex-shrink: 0;\n      overflow: hidden;\n      transition: border-color 0.15s;\n    }\n    .card:hover { border-color: var(--accent); }\n\n    .card-zone {\n      font-size: 11px;\n      color: var(--txt-hint);\n      text-transform: uppercase;\n      letter-spacing: 0.08em;\n      flex-shrink: 0;\n    }\n    .card-name {\n      font-size: 18px;\n      font-weight: 700;\n      color: var(--txt);\n      line-height: 1.3;\n      flex-shrink: 0;\n    }\n    .card-desc {\n      font-size: 14px;\n      color: var(--txt-muted);\n      line-height: 1.6;\n      flex: 1;\n      overflow: hidden;\n      display: -webkit-box;\n      -webkit-line-clamp: 3;\n      -webkit-box-orient: vertical;\n    }\n    .bar-wrap { height: 3px; background: #b0a898; border-radius: 2px; margin-top: 6px; flex-shrink: 0; }\n    .bar-fill  { height: 100%; border-radius: 2px; background: var(--accent); }\n    .urgency   { font-size: 13px; color: var(--txt-hint); flex-shrink: 0; }\n    .urgency.high { color: var(--accent); font-weight: 700; }\n\n    .bottom { display: flex; align-items: center; gap: 16px; }\n    .dots   { display: flex; gap: 6px; align-items: center; margin-right: 4px; }\n    .dot {\n      width: 7px; height: 7px;\n      border-radius: 50%;\n      background: #b0a898;\n      cursor: pointer;\n      transition: all 0.15s;\n    }\n    .dot.active { background: var(--accent); width: 20px; border-radius: 4px; }\n\n    .btn {\n      width: 35px; height: 35px;\n      min-width: 35px;\n      border-radius: 50%;\n      border: 1.5px solid #c8bfb4;\n      background: transparent;\n      cursor: pointer;\n      display: flex; align-items: center; justify-content: center;\n      flex-shrink: 0;\n    }\n    .btn.btn-next { border-color: #8B1C16; }\n    .btn svg { display: block !important; visibility: visible !important; opacity: 1 !important; overflow: visible !important; }\n    .btn:hover, .btn:focus, .btn:active { background: transparent !important; outline: none !important; box-shadow: none !important; }\n    .btn:disabled { opacity: 0.3; cursor: default; }\n\n    \/* \u2500\u2500 MOBILE \u2500\u2500 *\/\n    @media (max-width: 600px) {\n      :root { --card-height: auto; }\n      body { padding: 1.25rem 1rem 2rem; }\n      .tags { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 6px; }\n      .tags::-webkit-scrollbar { display: none; }\n      .tag { flex-shrink: 0; }\n      .tags-wrap::before { background: none; }\n      .tags-wrap::after  { background: linear-gradient(to left,  var(--bg, transparent) 0%, transparent 100%); }\n      .grid-wrapper { margin-bottom: 1.25rem; }\n      .grid-page { width: 100% !important; }\n      .card { width: 100% !important; max-width: 100%; height: auto; min-height: unset; box-sizing: border-box; }\n      .card-desc { -webkit-line-clamp: unset; }\n      .bottom { justify-content: center; }\n      .dots { flex: 1; overflow: hidden; }\n    }\n  <\/style>\n<\/head>\n<body>\n<section class=\"section\">\n\n  <div class=\"topbar\">\n    <span class=\"counter\" id=\"counter\"><\/span>\n  <\/div>\n\n  <div class=\"tags-wrap\">\n    <div class=\"tags\" id=\"tags\"><\/div>\n  <\/div>\n\n  <div class=\"grid-wrapper\" id=\"grid-wrapper\">\n    <div class=\"grid-track\" id=\"grid-track\"><\/div>\n  <\/div>\n\n  <div class=\"bottom\">\n    <button class=\"btn\" id=\"prev\">\n      <svg width=\"23\" height=\"23\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#b0a898\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"15 18 9 12 15 6\"\/><\/svg>\n    <\/button>\n    <div class=\"dots\" id=\"dots\"><\/div>\n    <button class=\"btn btn-next\" id=\"next\">\n      <svg width=\"23\" height=\"23\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#8B1C16\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg>\n    <\/button>\n  <\/div>\n\n<\/section>\n\n<script>\n  const PATHOLOGIES = [\n    { zone: \"Cartilage\",     name: \"Gonarthrose\",                      desc: \"D\u00e9g\u00e9n\u00e9rescence progressive du cartilage articulaire.\",                                  urgency: \"Consultation programm\u00e9e\",      sev: 55,  high: false },\n    { zone: \"Rotule\",        name: \"Syndrome f\u00e9moro-patellaire\",        desc: \"D\u00e9saxation ou hyperpression rotulienne, douleur ant\u00e9rieure.\",                           urgency: \"Consultation dans la semaine\", sev: 40,  high: false },\n    { zone: \"M\u00e9nisque\",      name: \"Rupture m\u00e9niscale\",                 desc: \"L\u00e9sion du m\u00e9nisque m\u00e9dial ou lat\u00e9ral. IRM indispensable.\",                              urgency: \"Consultation sous 48h\",        sev: 60,  high: false },\n    { zone: \"Ligament\",      name: \"Entorse LCM\",                       desc: \"L\u00e9sion du ligament collat\u00e9ral m\u00e9dial par valgus forc\u00e9.\",                                urgency: \"Consultation sous 48h\",        sev: 50,  high: false },\n    { zone: \"Tendon\",        name: \"Syndrome bandelette ilio-tibiale\",  desc: \"Friction de la bandelette sur le condyle lat\u00e9ral. Pathologie du coureur.\",              urgency: \"Consultation dans la semaine\", sev: 35,  high: false },\n    { zone: \"Tendon\",        name: \"Tendinopathie rotulienne\",          desc: \"Genou du sauteur. D\u00e9g\u00e9n\u00e9rescence du tendon patellaire.\",                                urgency: \"Consultation dans la semaine\", sev: 40,  high: false },\n    { zone: \"Ligament\",      name: \"Rupture LCA\",                       desc: \"Rupture du ligament crois\u00e9 ant\u00e9rieur, souvent sport pivot-contact.\",                   urgency: \"Consultation sous 48h\",        sev: 80,  high: false },\n    { zone: \"Kyste\",         name: \"Kyste de Baker\",                    desc: \"Distension du r\u00e9cessus post\u00e9rieur, secondaire \u00e0 une pathologie intra-articulaire.\",     urgency: \"Consultation dans la semaine\", sev: 30,  high: false },\n    { zone: \"Bursite\",       name: \"Bursite pr\u00e9rotulienne\",             desc: \"Inflammation de la bourse s\u00e9reuse pr\u00e9rotulienne.\",                                      urgency: \"Consultation dans la semaine\", sev: 35,  high: false },\n    { zone: \"Rotule\",        name: \"Luxation de rotule\",                desc: \"D\u00e9bo\u00eetement f\u00e9moropatellaire, souvent chez l'adolescente hyperlaxe.\",                  urgency: \"Urgences recommand\u00e9es\",        sev: 85,  high: true  },\n    { zone: \"Croissance\",    name: \"Osgood-Schlatter\",                  desc: \"Apophysite de la tub\u00e9rosit\u00e9 tibiale ant\u00e9rieure chez l'adolescent sportif.\",            urgency: \"Consultation dans la semaine\", sev: 30,  high: false },\n    { zone: \"Fracture\",      name: \"Fracture plateau tibial\",           desc: \"Fracture articulaire par compression axiale. Scanner indispensable.\",                  urgency: \"Urgences recommand\u00e9es\",        sev: 95,  high: true  },\n    { zone: \"Inflammatoire\", name: \"Arthrite inflammatoire\",            desc: \"PR, spondylarthrite, arthrite r\u00e9actionnelle. Bilan rhumatologique n\u00e9cessaire.\",        urgency: \"Consultation sous 48h\",        sev: 65,  high: false },\n    { zone: \"Infectieux\",    name: \"Arthrite septique\",                 desc: \"Urgence absolue. Ponction articulaire diagnostique et th\u00e9rapeutique imm\u00e9diate.\",        urgency: \"URGENCE \u2014 imm\u00e9diat\",           sev: 100, high: true  },\n    { zone: \"Os\",            name: \"SONK \/ Ost\u00e9on\u00e9crose\",               desc: \"Infarctus osseux du condyle f\u00e9moral m\u00e9dial. IRM pr\u00e9coce.\",                             urgency: \"Consultation sous 48h\",        sev: 70,  high: false },\n  ];\n\n  const VISIBLE  = 4.4;\n  const GAP      = 24;\n  const PER_PAGE = 4;\n\n  let activeZone = \"Tous\", page = 0, isAnimating = false;\n\n  const ZONES = [\"Tous\", ...new Set(PATHOLOGIES.map(p => p.zone))];\n\n  function isMobile() { return window.innerWidth <= 600; }\n\n  function getContainerWidth() {\n    const w = document.getElementById(\"grid-wrapper\");\n    return w ? w.clientWidth : 960;\n  }\n\n  function cardWidth() {\n    if (isMobile()) return getContainerWidth();\n    const w = getContainerWidth();\n    return Math.floor((w - GAP * (VISIBLE - 1)) \/ VISIBLE);\n  }\n\n  function pageWidth() {\n    if (isMobile()) return getContainerWidth();\n    const cw = cardWidth();\n    return cw * PER_PAGE + GAP * PER_PAGE;\n  }\n\n  function perPage() { return isMobile() ? 1 : PER_PAGE; }\n\n  function filtered() {\n    return activeZone === \"Tous\" ? PATHOLOGIES : PATHOLOGIES.filter(p => p.zone === activeZone);\n  }\n\n  function totalPages() { return Math.ceil(filtered().length \/ perPage()); }\n\n  function renderTags() {\n    document.getElementById(\"tags\").innerHTML = ZONES.map(z =>\n      `<button class=\"tag${z === activeZone ? \" active\" : \"\"}\" onclick=\"setZone('${z}')\">${z}<\/button>`\n    ).join(\"\");\n  }\n\n  function makeCard(p, isPeek) {\n    const cw = isMobile() ? '100%' : cardWidth() + 'px';\n    return `\n      <div class=\"card\" style=\"width:${cw}; ${isPeek ? 'opacity:0.45; pointer-events:none;' : ''}\">\n        <div class=\"card-zone\">${p.zone}<\/div>\n        <div class=\"card-name\">${p.name}<\/div>\n        <div class=\"card-desc\">${p.desc}<\/div>\n        <div class=\"bar-wrap\"><div class=\"bar-fill\" style=\"width:${p.sev}%\"><\/div><\/div>\n        <div class=\"urgency${p.high ? \" high\" : \"\"}\">${p.urgency}<\/div>\n      <\/div>\n    `;\n  }\n\n  function makePage(list, pageIndex) {\n    const pp      = perPage();\n    const slice   = list.slice(pageIndex * pp, pageIndex * pp + pp);\n    const tp      = Math.ceil(list.length \/ pp);\n    const hasNext = pageIndex < tp - 1;\n    const peek    = (!isMobile() && hasNext) ? list[pageIndex * pp + pp] : null;\n    const pw      = isMobile() ? '100%' : pageWidth() + 'px';\n\n    const cards = slice.map(p => makeCard(p, false)).join(\"\");\n    const peekHtml = peek ? makeCard(peek, true) : \"\";\n\n    return `<div class=\"grid-page\" style=\"width:${pw}; gap:${isMobile() ? 0 : GAP}px;\">${cards}${peekHtml}<\/div>`;\n  }\n\n  function buildTrack() {\n    const list = filtered();\n    const tp   = totalPages();\n    const track = document.getElementById(\"grid-track\");\n    track.style.transition = \"none\";\n    track.style.transform  = `translateX(0px)`;\n    track.innerHTML = Array.from({ length: tp }, (_, i) => makePage(list, i)).join(\"\");\n    track.getBoundingClientRect();\n    track.style.transform = `translateX(-${page * pageWidth()}px)`;\n  }\n\n  function slideTo(targetPage) {\n    if (isAnimating) return;\n    isAnimating = true;\n\n    const track = document.getElementById(\"grid-track\");\n    const pw    = pageWidth();\n\n    track.style.transition = \"transform 0.45s cubic-bezier(0.4, 0, 0.2, 1)\";\n    track.style.transform  = `translateX(-${targetPage * pw}px)`;\n\n    page = targetPage;\n    updateControls();\n\n    track.addEventListener(\"transitionend\", () => {\n      isAnimating = false;\n    }, { once: true });\n  }\n\n  function updateControls() {\n    const tp = totalPages();\n    document.getElementById(\"counter\").textContent = `${page + 1} \/ ${tp}`;\n    document.getElementById(\"prev\").disabled = page === 0;\n    document.getElementById(\"next\").disabled = page >= tp - 1;\n    const MAX_DOTS = 7;\n    let start = Math.max(0, Math.min(page - Math.floor(MAX_DOTS \/ 2), tp - MAX_DOTS));\n    let html = \"\";\n    for (let d = start; d < Math.min(start + MAX_DOTS, tp); d++) {\n      html += `<div class=\"dot${d === page ? \" active\" : \"\"}\" onclick=\"goTo(${d})\"><\/div>`;\n    }\n    document.getElementById(\"dots\").innerHTML = html;\n  }\n\n  function setZone(z) {\n    activeZone = z;\n    page = 0;\n    renderTags();\n    buildTrack();\n    updateControls();\n  }\n\n  function goTo(targetPage) {\n    if (targetPage === page) return;\n    slideTo(targetPage);\n  }\n\n  document.getElementById(\"prev\").onclick = () => {\n    if (page > 0) slideTo(page - 1);\n  };\n  document.getElementById(\"next\").onclick = () => {\n    if (page < totalPages() - 1) slideTo(page + 1);\n  };\n\n  \/\/ Swipe tactile \u2014 ajout mobile\n  let tx0 = 0, ty0 = 0;\n  const wrapper = document.getElementById(\"grid-wrapper\");\n  wrapper.addEventListener(\"touchstart\", e => {\n    tx0 = e.touches[0].clientX;\n    ty0 = e.touches[0].clientY;\n  }, { passive: true });\n  wrapper.addEventListener(\"touchend\", e => {\n    const dx = e.changedTouches[0].clientX - tx0;\n    const dy = e.changedTouches[0].clientY - ty0;\n    if (Math.abs(dx) > Math.abs(dy) && Math.abs(dx) > 40) {\n      dx < 0 ? slideTo(Math.min(page + 1, totalPages() - 1)) : slideTo(Math.max(page - 1, 0));\n    }\n  }, { passive: true });\n\n  renderTags();\n  buildTrack();\n  updateControls();\n\n  \/\/ D\u00e9grad\u00e9 tags \u2014 d\u00e9tecte la couleur de fond du parent\n  (function() {\n    const wrap = document.querySelector('.tags-wrap');\n    if (!wrap) return;\n    let el = wrap.parentElement;\n    let bg = '';\n    while (el && el !== document.body) {\n      const c = getComputedStyle(el).backgroundColor;\n      if (c && c !== 'rgba(0, 0, 0, 0)' && c !== 'transparent') { bg = c; break; }\n      el = el.parentElement;\n    }\n    if (!bg) bg = getComputedStyle(document.body).backgroundColor;\n    if (!bg || bg === 'rgba(0, 0, 0, 0)') bg = '#f5f3ef';\n    wrap.style.setProperty('--bg', bg);\n  })();\n\n  window.addEventListener(\"resize\", () => {\n    page = 0;\n    buildTrack();\n    updateControls();\n  });\n<\/script>\n<\/body>\n<\/html>\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-7fa8897 e-flex e-con-boxed e-con e-parent\" data-id=\"7fa8897\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2a79a1b elementor-align-center elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"2a79a1b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"icon icon-arrow-down\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">VOTRE DIAGNOSTIC DU GENOU<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-29b137d1 e-flex e-con-boxed e-con e-parent\" data-id=\"29b137d1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7cd791d elementor-widget elementor-widget-html\" data-id=\"7cd791d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ============================================================\n     PARTIE 1 \u2014 STYLES CSS\n     ============================================================ -->\n<style>\n#dg-app *, #dg-app *::before, #dg-app *::after { box-sizing: border-box; margin: 0; padding: 0; }\n#dg-app { background:transparent; padding:48px 40px; font-family:'Arboria',Arial,sans-serif; max-width:780px; margin:0 auto; }\n#dg-app .dg-prog-meta { display:flex; justify-content:space-between; font-size:0.65rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:#b0a898; margin-bottom:10px; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-prog-wrap { height:5px; background:#e0d8cc; border-radius:3px; margin-bottom:44px; }\n#dg-app .dg-prog-fill { height:100%; background:#8b1c16; border-radius:3px; transition:width 0.4s ease; }\n#dg-app .dg-qtext { font-size:1.3rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:#8b1c16; margin-bottom:28px; line-height:1.5; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-qhint { font-size:0.75rem; color:#b0a898; font-style:italic; margin-top:-18px; margin-bottom:20px; text-transform:none; letter-spacing:0; font-weight:400; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-options { display:flex; flex-direction:column; gap:10px; }\n#dg-app .dg-opt { display:flex; align-items:center; gap:16px; padding:17px 22px; border:1px solid #d8d0c4; border-radius:10px; background:transparent; cursor:pointer; position:relative; overflow:hidden; transition:border-color 0.2s, box-shadow 0.2s, transform 0.2s ease; }\n#dg-app .dg-opt::after { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg, #8b1c16, #b03020); border-radius:10px 10px 0 0; opacity:0; transform:scaleX(0.4); transition:opacity 0.25s, transform 0.3s ease; }\n#dg-app .dg-opt:hover { border-color:#8b1c16; box-shadow:0 4px 16px rgba(139,28,22,0.1); transform:translateY(-2px); }\n#dg-app .dg-opt:hover::after { opacity:1; transform:scaleX(1); }\n#dg-app .dg-opt.selected { border-color:#8b1c16; box-shadow:0 2px 12px rgba(139,28,22,0.1); }\n#dg-app .dg-opt.selected::after { opacity:1; transform:scaleX(1); }\n#dg-app .dg-radio { width:18px; height:18px; border-radius:50%; border:1.5px solid #ccc; flex-shrink:0; display:flex; align-items:center; justify-content:center; }\n#dg-app .dg-opt.selected .dg-radio { border-color:#8b1c16; }\n#dg-app .dg-radio-dot { width:9px; height:9px; border-radius:50%; background:#8b1c16; display:none; }\n#dg-app .dg-opt.selected .dg-radio-dot { display:block; }\n#dg-app .dg-opt-t { font-size:0.88rem; color:#2a2a2a; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-opt.selected .dg-opt-t { font-weight:700; }\n#dg-app .dg-nav-sep { border:none; border-top:1px solid #e0d8cc; margin:44px 0 0; }\n#dg-app .dg-nav { display:flex; justify-content:space-between; align-items:center; padding:16px 0; }\n\n\/* ---- BOUTON MOBILE (cach\u00e9 sur desktop) ---- *\/\n#dg-app .dg-nav-last { display:none; }\n\n\/* ---- TRANSITIONS ENTRE QUESTIONS ---- *\/\n#dg-app #dg-render { position:relative; overflow:hidden; }\n\n@keyframes dgSlideInRight  { from{opacity:0;transform:translateX(90px) scale(0.97)}  to{opacity:1;transform:translateX(0) scale(1)} }\n@keyframes dgSlideInLeft   { from{opacity:0;transform:translateX(-90px) scale(0.97)} to{opacity:1;transform:translateX(0) scale(1)} }\n@keyframes dgSlideOutLeft  { from{opacity:1;transform:translateX(0) scale(1)}  to{opacity:0;transform:translateX(-90px) scale(0.97)} }\n@keyframes dgSlideOutRight { from{opacity:1;transform:translateX(0) scale(1)}  to{opacity:0;transform:translateX(90px) scale(0.97)} }\n\n#dg-app .dg-q-wrap { animation-duration:0.42s; animation-timing-function:cubic-bezier(0.16,1,0.3,1); animation-fill-mode:both; }\n#dg-app .dg-q-wrap.enter-next  { animation-name:dgSlideInRight; }\n#dg-app .dg-q-wrap.enter-prev  { animation-name:dgSlideInLeft; }\n#dg-app .dg-q-wrap.exit-next   { animation-name:dgSlideOutLeft;  position:absolute;top:0;left:0;right:0; pointer-events:none; }\n#dg-app .dg-q-wrap.exit-prev   { animation-name:dgSlideOutRight; position:absolute;top:0;left:0;right:0; pointer-events:none; }\n\n#dg-app .dg-res { animation:dgUp 0.35s ease both; }\n@keyframes dgUp { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }\n#dg-app .dg-res-title { font-size:1.3rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:#8b1c16; margin-bottom:28px; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-diag { display:flex; align-items:center; gap:24px; padding:20px 0; border-bottom:1px solid #e0d8cc; }\n#dg-app .dg-diag:first-of-type { border-top:1px solid #e0d8cc; }\n#dg-app .dg-d-num { font-size:1.8rem; font-weight:700; min-width:32px; color:#e0d8cc; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-diag.r1 .dg-d-num { color:#8b1c16; }\n#dg-app .dg-d-body { flex:1; min-width:0; }\n#dg-app .dg-d-name { font-size:0.95rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:#1a1a1a; margin-bottom:5px; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-d-desc { font-size:0.75rem; color:#aaa; line-height:1.55; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-d-right { width:70px; flex-shrink:0; text-align:right; }\n#dg-app .dg-d-pct { font-size:0.65rem; color:#aaa; margin-bottom:5px; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-d-bar-bg { background:#e0d8cc; height:3px; border-radius:2px; }\n#dg-app .dg-d-bar { height:100%; border-radius:2px; transition:width 1s ease 0.3s; }\n#dg-app .dg-diag.r1 .dg-d-bar { background:#8b1c16; }\n#dg-app .dg-diag.r2 .dg-d-bar { background:#555; }\n#dg-app .dg-diag.r3 .dg-d-bar { background:#ccc; }\n#dg-app .dg-gestes-block { margin-top:32px; padding:28px 32px; border:1px solid #d8d0c4; border-radius:10px; border-top:2px solid #8b1c16; }\n#dg-app .dg-gestes-label { font-size:0.85rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:#8b1c16; margin-bottom:20px; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-gestes-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px 32px; }\n#dg-app .dg-geste { display:flex; align-items:flex-start; gap:10px; }\n#dg-app .dg-geste-dot { width:5px; height:5px; border-radius:50%; background:#8b1c16; flex-shrink:0; margin-top:6px; }\n#dg-app .dg-geste-t { font-size:0.75rem; color:#777; line-height:1.55; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-disc { margin-top:24px; font-size:0.68rem; color:#c8bfb4; line-height:1.65; font-family:'Arboria',Arial,sans-serif; }\n\n@media(max-width:768px){\n  #dg-app { padding:32px 20px; }\n  #dg-app .dg-qtext { font-size:1rem !important; }\n  #dg-app .dg-opt { padding:14px 16px; }\n  #dg-app .dg-opt-t { font-size:0.85rem; }\n  #dg-app .dg-gestes-grid { grid-template-columns:1fr; }\n  #dg-app .dg-gestes-block { padding:20px 18px; }\n  #dg-app .dg-d-right { width:50px; }\n  \/* Cacher bouton desktop, afficher bouton mobile *\/\n  #dg-app .dg-nav-desktop-last { display:none !important; }\n  #dg-app .dg-nav-last {\n    display:flex; flex-direction:column; padding:16px 0; gap:0;\n  }\n  #dg-app .dg-dl-btn {\n    display:flex; align-items:center; justify-content:center; gap:12px;\n    width:100%; padding:18px 24px; margin-bottom:16px;\n    background:#8b1c16; border-radius:12px; cursor:pointer;\n    font-family:'Arboria',Arial,sans-serif; font-size:14px; font-weight:700;\n    letter-spacing:0.1em; text-transform:uppercase; color:#fff;\n    transition:opacity 0.2s;\n  }\n  #dg-app .dg-dl-btn.disabled { opacity:0.35; pointer-events:none; }\n  #dg-app .dg-dl-btn:active { opacity:0.8; }\n  #dg-app .dg-nav-row { display:flex; justify-content:flex-start; align-items:center; }\n}\n@media(max-width:480px){\n  #dg-app { padding:24px 16px; }\n  #dg-app .dg-qtext { font-size:0.85rem !important; letter-spacing:0.06em !important; }\n  #dg-app .dg-opt { padding:12px 14px; }\n  #dg-app .dg-opt-t { font-size:0.8rem; }\n  #dg-app .dg-prog-meta { font-size:0.6rem; }\n  #dg-app .dg-diag { flex-wrap:wrap; gap:12px; }\n  #dg-app .dg-d-right { width:100%; text-align:left; }\n  #dg-app .dg-gestes-block { padding:16px 14px; }\n  #dg-app .dg-dl-btn { font-size:12px; padding:16px 18px; }\n}\n<\/style>\n\n<!-- ============================================================\n     PARTIE 2 \u2014 LIBRAIRIES EXTERNES\n     ============================================================ -->\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script>\n\n<!-- ============================================================\n     PARTIE 3 \u2014 HTML\n     ============================================================ -->\n<div id=\"dg-app\"><div id=\"dg-render\"><\/div><\/div>\n\n<!-- ============================================================\n     PARTIE 4 \u2014 JAVASCRIPT\n     ============================================================ -->\n<script>\n(function(){\n\n\/* ---- D\u00c9TECTION LANGUE ---- *\/\nconst LANG=(document.documentElement.lang||'').startsWith('en')||window.location.pathname.indexOf('\/en')===0?'en':'fr';\n\nconst T={\n  fr:{\n    btnPrev:'Pr\u00e9c\u00e9dent', btnNext:'Suivant',\n    btnDownload:'T\u00e9l\u00e9charger mon diagnostic',\n    btnRdv:'Prendre rendez-vous', btnRestart:'\u21ba Recommencer',\n    resTitle:'R\u00e9sultats du diagnostic',\n    gestesLabel:'Premiers gestes \u00e0 adopter',\n    disc:'\u2695 Aide-m\u00e9moire clinique uniquement, tout diagnostic doit \u00eatre confirm\u00e9 par un m\u00e9decin ou un professionnel de sant\u00e9.',\n    pdfTitle:'DIAGNOSTIC DOULEUR AU GENOU',\n    pdfConfidential:'Document confidentiel',\n    pdfFooter:'Document indicatif, diagnostic a confirmer par un medecin ou professionnel de sante.',\n    pdfS1:'REPONSES DU PATIENT', pdfS2:'RESULTATS DIAGNOSTIQUES', pdfS3:'PREMIERS GESTES A ADOPTER',\n    pdfRank:['1er diagnostic','2eme diagnostic','3eme diagnostic'],\n    pdfPage:(p,t)=>`Page ${p} \/ ${t}`,\n    noAnswer:'Non renseigne',\n  },\n  en:{\n    btnPrev:'Previous', btnNext:'Next',\n    btnDownload:'Download my diagnosis',\n    btnRdv:'Book an appointment', btnRestart:'\u21ba Start over',\n    resTitle:'Diagnostic results',\n    gestesLabel:'First steps to take',\n    disc:'\u2695 Clinical reference only, all diagnoses must be confirmed by a doctor or healthcare professional.',\n    pdfTitle:'KNEE PAIN DIAGNOSIS',\n    pdfConfidential:'Confidential document',\n    pdfFooter:'Indicative document - diagnosis to be confirmed by a doctor or healthcare professional.',\n    pdfS1:'PATIENT RESPONSES', pdfS2:'DIAGNOSTIC RESULTS', pdfS3:'FIRST STEPS TO TAKE',\n    pdfRank:['1st diagnosis','2nd diagnosis','3rd diagnosis'],\n    pdfPage:(p,t)=>`Page ${p} \/ ${t}`,\n    noAnswer:'Not answered',\n  }\n};\nconst L=T[LANG];\n\n\/* ---- QUESTIONS FR ---- *\/\nconst Q_FR=[\n  {t:\"Y a-t-il eu un traumatisme r\u00e9cent (< 6 semaines) ?\",h:null,o:[\"Oui, traumatisme aigu direct (chute, choc)\",\"Oui, traumatisme indirect (torsion, r\u00e9ception saut)\",\"Micro-traumatismes r\u00e9p\u00e9t\u00e9s (sport, travail)\",\"Non, douleur spontan\u00e9e sans traumatisme\"]},\n  {t:\"Quel est l'\u00e2ge et le profil du patient ?\",h:null,o:[\"Adolescent 10\u201317 ans\",\"Adulte jeune 18\u201340 ans, sportif\",\"Adulte 40\u201360 ans\",\"Sujet \u00e2g\u00e9 > 60 ans\"]},\n  {t:\"O\u00f9 se situe la douleur principalement ?\",h:null,o:[\"Face ant\u00e9rieure (devant la rotule \/ tendon rotulien)\",\"Face m\u00e9diale (int\u00e9rieur du genou)\",\"Face lat\u00e9rale (ext\u00e9rieur du genou)\",\"Face post\u00e9rieure (creux poplit\u00e9)\",\"Diffuse \/ tout le genou\"]},\n  {t:\"Comment la douleur s'est-elle install\u00e9e ?\",h:null,o:[\"Brutalement en quelques secondes (accident)\",\"Progressivement sur plusieurs jours\/semaines\",\"Insidieusement depuis plusieurs mois\/ann\u00e9es\",\"Par \u00e9pisodes r\u00e9cidivants\"]},\n  {t:\"Existe-t-il un gonflement du genou ?\",h:\"\u00c9panchement articulaire \/ h\u00e9marthrose\",o:[\"Oui, gonflement imm\u00e9diat < 2h apr\u00e8s traumatisme\",\"Oui, gonflement diff\u00e9r\u00e9 12\u201324h apr\u00e8s effort\",\"Gonflement chronique intermittent\",\"Non, pas de gonflement\"]},\n  {t:\"Ressentez-vous une instabilit\u00e9 \/ d\u00e9robement ?\",h:\"Sensation que le genou 'l\u00e2che'\",o:[\"Oui, genou qui part en avant\",\"Oui, instabilit\u00e9 lat\u00e9rale (c\u00f4t\u00e9)\",\"Oui, rotule qui 'saute' \/ se d\u00e9boite\",\"Non, aucune instabilit\u00e9\"]},\n  {t:\"Y a-t-il un blocage ou limitation d'extension ?\",h:null,o:[\"Oui, blocage complet impossible \u00e0 corriger\",\"Oui, extension incompl\u00e8te mais r\u00e9ductible\",\"Limitation par douleur uniquement\",\"Non, mobilit\u00e9 compl\u00e8te\"]},\n  {t:\"Des bruits articulaires sont-ils pr\u00e9sents ?\",h:null,o:[\"Craquement douloureux (clic m\u00e9niscal)\",\"Cr\u00e9pitement \u00e0 la mobilisation (grincement)\",\"Claquement au moment du traumatisme\",\"Aucun bruit particulier\"]},\n  {t:\"Dans quelle activit\u00e9 la douleur est-elle maximale ?\",h:null,o:[\"Descente des escaliers \/ accroupissement\",\"Course \u00e0 pied, surtout apr\u00e8s 20\u201330 min\",\"Sauts \/ impulsions r\u00e9p\u00e9t\u00e9es\",\"Marche simple \/ station debout prolong\u00e9e\",\"Au repos ou la nuit\"]},\n  {t:\"Quelle est la nature de la douleur ?\",h:null,o:[\"Douleur m\u00e9canique (s'am\u00e9liore au repos)\",\"Douleur inflammatoire (pire au repos \/ d\u00e9rouillage matinal)\",\"Douleur aigu\u00eb intense et constante\",\"Br\u00fblure \/ douleur profonde osseuse\"]},\n  {t:\"Y a-t-il des signes inflammatoires locaux ?\",h:\"Rougeur, chaleur, tum\u00e9faction\",o:[\"Oui, rougeur + chaleur + fi\u00e8vre (>38\u00b0C)\",\"Oui, chaleur locale sans fi\u00e8vre\",\"Tum\u00e9faction ant\u00e9rieure isol\u00e9e (devant la rotule)\",\"Non, aucun signe local\"]},\n  {t:\"Quel est le contexte sportif \/ professionnel ?\",h:null,o:[\"Sport pivot-contact (ski, foot, tennis, rugby)\",\"Course \u00e0 pied \/ v\u00e9lo \/ sports \u00e0 endurance (> 30 km\/sem)\",\"Travail \u00e0 genoux (carreleur, ma\u00e7on, jardinier)\",\"S\u00e9dentaire \/ pas de sport particulier\"]},\n  {t:\"La douleur est-elle bilat\u00e9rale ou asym\u00e9trique ?\",h:null,o:[\"Un seul genou, post-traumatique\",\"Un seul genou, spontan\u00e9\",\"Les deux genoux (bilat\u00e9ral)\",\"Plusieurs articulations atteintes\"]},\n  {t:\"Ant\u00e9c\u00e9dents m\u00e9dicaux pertinents ?\",h:null,o:[\"Corticoth\u00e9rapie prolong\u00e9e \/ immunod\u00e9pression\",\"Pathologie rhumatismale connue (PR, spondylarthrite)\",\"Chirurgie ou injection r\u00e9cente du genou\",\"Aucun ant\u00e9c\u00e9dent notable\"]},\n  {t:\"Tub\u00e9rosit\u00e9 tibiale ant\u00e9rieure \u00e0 la palpation ?\",h:\"Point osseux sous la rotule\",o:[\"Douloureuse chez un adolescent en croissance\",\"Douleur du tendon rotulien (corps du tendon)\",\"Douleur de la pointe de la rotule\",\"Pas de douleur \u00e0 la palpation de cette zone\"]}\n];\n\n\/* ---- QUESTIONS EN ---- *\/\nconst Q_EN=[\n  {t:\"Was there a recent trauma (< 6 weeks)?\",h:null,o:[\"Yes, direct acute trauma (fall, impact)\",\"Yes, indirect trauma (twisting, landing)\",\"Repeated micro-traumas (sport, work)\",\"No, spontaneous pain without trauma\"]},\n  {t:\"What is the patient's age and profile?\",h:null,o:[\"Adolescent 10\u201317 years\",\"Young adult 18\u201340 years, athletic\",\"Adult 40\u201360 years\",\"Elderly > 60 years\"]},\n  {t:\"Where is the pain mainly located?\",h:null,o:[\"Anterior (front of kneecap \/ patellar tendon)\",\"Medial (inside of the knee)\",\"Lateral (outside of the knee)\",\"Posterior (back of the knee)\",\"Diffuse \/ whole knee\"]},\n  {t:\"How did the pain develop?\",h:null,o:[\"Suddenly within seconds (accident)\",\"Gradually over several days\/weeks\",\"Insidiously over several months\/years\",\"In recurring episodes\"]},\n  {t:\"Is there knee swelling?\",h:\"Joint effusion \/ haemarthrosis\",o:[\"Yes, immediate swelling < 2h after trauma\",\"Yes, delayed swelling 12\u201324h after exercise\",\"Chronic intermittent swelling\",\"No swelling\"]},\n  {t:\"Do you feel instability \/ giving way?\",h:\"Feeling that the knee 'gives out'\",o:[\"Yes, knee gives way forward\",\"Yes, lateral instability (side)\",\"Yes, kneecap slipping \/ dislocating\",\"No instability\"]},\n  {t:\"Is there locking or limited extension?\",h:null,o:[\"Yes, complete locking impossible to correct\",\"Yes, incomplete extension but reducible\",\"Limited by pain only\",\"No, full mobility\"]},\n  {t:\"Are joint sounds present?\",h:null,o:[\"Painful clicking (meniscal click)\",\"Crepitus during movement (grinding)\",\"Snap at time of trauma\",\"No particular sounds\"]},\n  {t:\"During which activity is pain worst?\",h:null,o:[\"Going downstairs \/ squatting\",\"Running, especially after 20\u201330 min\",\"Jumping \/ repeated impacts\",\"Simple walking \/ prolonged standing\",\"At rest or at night\"]},\n  {t:\"What is the nature of the pain?\",h:null,o:[\"Mechanical pain (improves with rest)\",\"Inflammatory pain (worse at rest \/ morning stiffness)\",\"Intense constant acute pain\",\"Burning \/ deep bone pain\"]},\n  {t:\"Are there local inflammatory signs?\",h:\"Redness, warmth, swelling\",o:[\"Yes, redness + warmth + fever (>38\u00b0C)\",\"Yes, local warmth without fever\",\"Isolated anterior swelling (front of kneecap)\",\"No local signs\"]},\n  {t:\"What is the sporting \/ professional context?\",h:null,o:[\"Pivot-contact sport (skiing, football, tennis, rugby)\",\"Running \/ cycling \/ endurance sports (> 30 km\/week)\",\"Kneeling work (tiler, mason, gardener)\",\"Sedentary \/ no particular sport\"]},\n  {t:\"Is the pain bilateral or asymmetrical?\",h:null,o:[\"One knee only, post-traumatic\",\"One knee only, spontaneous\",\"Both knees (bilateral)\",\"Multiple joints affected\"]},\n  {t:\"Relevant medical history?\",h:null,o:[\"Prolonged corticosteroid therapy \/ immunosuppression\",\"Known rheumatic condition (RA, spondylarthritis)\",\"Recent knee surgery or injection\",\"No notable medical history\"]},\n  {t:\"Anterior tibial tuberosity on palpation?\",h:\"Bony prominence below kneecap\",o:[\"Painful in a growing adolescent\",\"Patellar tendon pain (tendon body)\",\"Pain at the tip of the kneecap\",\"No pain on palpation of this area\"]}\n];\n\nconst Q=LANG==='en'?Q_EN:Q_FR;\n\n\/* ---- DIAGNOSTICS FR ---- *\/\nconst D_FR={\n  \"Gonarthrose\":\"D\u00e9g\u00e9n\u00e9rescence progressive du cartilage articulaire. Traitement conservateur en 1\u00e8re ligne (kin\u00e9, antalgiques, infiltrations), chirurgie (PTG) si stade avanc\u00e9.\",\n  \"Syndrome f\u00e9moro-patellaire\":\"D\u00e9saxation ou hyperpression rotulienne entra\u00eenant une douleur ant\u00e9rieure. Renforcement du vaste m\u00e9dial, travail proprioceptif.\",\n  \"Rupture m\u00e9niscale\":\"L\u00e9sion du m\u00e9nisque m\u00e9dial ou lat\u00e9ral. IRM indispensable. Traitement conservateur ou arthroscopique selon le type.\",\n  \"Entorse LCM\":\"L\u00e9sion du ligament collat\u00e9ral m\u00e9dial par valgus forc\u00e9. Traitement fonctionnel, orth\u00e8se, r\u00e9cup\u00e9ration 4\u20138 semaines.\",\n  \"Syndrome bandelette ilio-tibiale\":\"Friction de la bandelette sur le condyle lat\u00e9ral. Pathologie du coureur. Repos, \u00e9tirements, correction biom\u00e9canique.\",\n  \"Tendinopathie rotulienne\":\"Genou du sauteur. D\u00e9g\u00e9n\u00e9rescence du tendon patellaire. Traitement : excentrique, ondes de choc, PRP.\",\n  \"Rupture LCA\":\"Rupture du ligament crois\u00e9 ant\u00e9rieur, souvent sport pivot-contact. IRM confirmatoire. Chirurgie si patient actif.\",\n  \"Kyste de Baker\":\"Distension du r\u00e9cessus post\u00e9rieur, secondaire \u00e0 une pathologie intra-articulaire. Traiter la cause avant le kyste.\",\n  \"Bursite pr\u00e9rotulienne\":\"Inflammation de la bourse s\u00e9reuse pr\u00e9rotulienne. Contexte de travail \u00e0 genoux. Repos, AINS, aspiration si n\u00e9cessaire.\",\n  \"Luxation de rotule\":\"D\u00e9bo\u00eetement f\u00e9moropatellaire, souvent chez l'adolescente hyperlaxe. Radio post-r\u00e9duction indispensable.\",\n  \"Osgood-Schlatter\":\"Apophysite de la tub\u00e9rosit\u00e9 tibiale ant\u00e9rieure chez l'adolescent sportif. Repos relatif, auto-r\u00e9solution \u00e0 la fin de la croissance.\",\n  \"Fracture plateau tibial\":\"Fracture articulaire par compression axiale. Scanner indispensable. Chirurgie si d\u00e9placement > 2 mm.\",\n  \"Arthrite inflammatoire\":\"PR, spondylarthrite, arthrite r\u00e9actionnelle. Bilan biologique et rhumatologique n\u00e9cessaire. Traitement de fond sp\u00e9cifique.\",\n  \"Arthrite septique\":\"URGENCE. Ponction articulaire diagnostique et th\u00e9rapeutique imm\u00e9diate. Antibioth\u00e9rapie IV.\",\n  \"SONK \/ Ost\u00e9on\u00e9crose\":\"Infarctus osseux du condyle f\u00e9moral m\u00e9dial. IRM pr\u00e9coce. Terrain : sujet \u00e2g\u00e9, corticoth\u00e9rapie.\"\n};\n\n\/* ---- DIAGNOSTICS EN ---- *\/\nconst D_EN={\n  \"Gonarthrose\":\"Progressive degeneration of joint cartilage. Conservative first-line treatment (physio, analgesics, injections), surgery (TKR) if advanced.\",\n  \"Syndrome f\u00e9moro-patellaire\":\"Patellar misalignment causing anterior pain. Strengthen vastus medialis, proprioceptive training.\",\n  \"Rupture m\u00e9niscale\":\"Medial or lateral meniscus tear. MRI essential. Conservative or arthroscopic treatment depending on type.\",\n  \"Entorse LCM\":\"Medial collateral ligament injury from forced valgus. Functional treatment, brace, recovery 4\u20138 weeks.\",\n  \"Syndrome bandelette ilio-tibiale\":\"IT band friction on lateral condyle. Runner's knee. Rest, stretching, biomechanical correction.\",\n  \"Tendinopathie rotulienne\":\"Jumper's knee. Patellar tendon degeneration. Treatment: eccentric exercises, shockwave, PRP.\",\n  \"Rupture LCA\":\"Anterior cruciate ligament rupture, often pivot-contact sport. Confirmatory MRI. Surgery for active patients.\",\n  \"Kyste de Baker\":\"Posterior recess distension, secondary to intra-articular pathology. Treat the cause before the cyst.\",\n  \"Bursite pr\u00e9rotulienne\":\"Pre-patellar bursa inflammation. Kneeling work context. Rest, NSAIDs, aspiration if needed.\",\n  \"Luxation de rotule\":\"Patellar dislocation, often in hyperlax adolescent girls. Post-reduction X-ray essential.\",\n  \"Osgood-Schlatter\":\"Anterior tibial tuberosity apophysitis in athletic adolescents. Relative rest, self-resolves at end of growth.\",\n  \"Fracture plateau tibial\":\"Articular fracture by axial compression. CT scan essential. Surgery if displacement > 2 mm.\",\n  \"Arthrite inflammatoire\":\"RA, spondylarthritis, reactive arthritis. Blood tests and rheumatology referral needed. Specific treatment.\",\n  \"Arthrite septique\":\"EMERGENCY. Immediate diagnostic and therapeutic joint aspiration. IV antibiotics.\",\n  \"SONK \/ Ost\u00e9on\u00e9crose\":\"Femoral condyle bone infarct. Early MRI. Profile: elderly, corticosteroids. Treatment: offloading, surgery.\"\n};\n\nconst D=LANG==='en'?D_EN:D_FR;\n\n\/* ---- NOMS TRADUITS ---- *\/\nconst NAMES_FR={\n  \"Gonarthrose\":\"Gonarthrose\",\"Syndrome f\u00e9moro-patellaire\":\"Syndrome f\u00e9moro-patellaire\",\n  \"Rupture m\u00e9niscale\":\"Rupture m\u00e9niscale\",\"Entorse LCM\":\"Entorse LCM\",\n  \"Syndrome bandelette ilio-tibiale\":\"Syndrome bandelette ilio-tibiale\",\n  \"Tendinopathie rotulienne\":\"Tendinopathie rotulienne\",\"Rupture LCA\":\"Rupture LCA\",\n  \"Kyste de Baker\":\"Kyste de Baker\",\"Bursite pr\u00e9rotulienne\":\"Bursite pr\u00e9rotulienne\",\n  \"Luxation de rotule\":\"Luxation de rotule\",\"Osgood-Schlatter\":\"Osgood-Schlatter\",\n  \"Fracture plateau tibial\":\"Fracture plateau tibial\",\"Arthrite inflammatoire\":\"Arthrite inflammatoire\",\n  \"Arthrite septique\":\"Arthrite septique\",\"SONK \/ Ost\u00e9on\u00e9crose\":\"SONK \/ Ost\u00e9on\u00e9crose\"\n};\nconst NAMES_EN={\n  \"Gonarthrose\":\"Gonarthrosis\",\"Syndrome f\u00e9moro-patellaire\":\"Patellofemoral Syndrome\",\n  \"Rupture m\u00e9niscale\":\"Meniscal Tear\",\"Entorse LCM\":\"MCL Sprain\",\n  \"Syndrome bandelette ilio-tibiale\":\"IT Band Syndrome\",\n  \"Tendinopathie rotulienne\":\"Patellar Tendinopathy\",\"Rupture LCA\":\"ACL Rupture\",\n  \"Kyste de Baker\":\"Baker's Cyst\",\"Bursite pr\u00e9rotulienne\":\"Pre-patellar Bursitis\",\n  \"Luxation de rotule\":\"Patellar Dislocation\",\"Osgood-Schlatter\":\"Osgood-Schlatter Disease\",\n  \"Fracture plateau tibial\":\"Tibial Plateau Fracture\",\"Arthrite inflammatoire\":\"Inflammatory Arthritis\",\n  \"Arthrite septique\":\"Septic Arthritis\",\"SONK \/ Ost\u00e9on\u00e9crose\":\"SONK \/ Osteonecrosis\"\n};\nconst NAMES=LANG==='en'?NAMES_EN:NAMES_FR;\n\n\/* ---- MATRICE DE SCORING ---- *\/\nconst S={\n  0:{0:{\"Fracture plateau tibial\":3,\"Rupture LCA\":2,\"Entorse LCM\":2,\"Luxation de rotule\":1},1:{\"Rupture LCA\":4,\"Rupture m\u00e9niscale\":3,\"Entorse LCM\":3,\"Luxation de rotule\":2},2:{\"Tendinopathie rotulienne\":3,\"Syndrome bandelette ilio-tibiale\":3,\"Syndrome f\u00e9moro-patellaire\":2,\"Bursite pr\u00e9rotulienne\":2},3:{\"Gonarthrose\":3,\"Syndrome f\u00e9moro-patellaire\":2,\"Kyste de Baker\":2,\"Arthrite inflammatoire\":2,\"Arthrite septique\":1,\"SONK \/ Ost\u00e9on\u00e9crose\":1}},\n  1:{0:{\"Osgood-Schlatter\":5,\"Luxation de rotule\":3,\"Syndrome f\u00e9moro-patellaire\":2,\"Rupture LCA\":1},1:{\"Rupture LCA\":3,\"Rupture m\u00e9niscale\":2,\"Tendinopathie rotulienne\":3,\"Syndrome bandelette ilio-tibiale\":3,\"Syndrome f\u00e9moro-patellaire\":2},2:{\"Gonarthrose\":2,\"Rupture m\u00e9niscale\":2,\"Entorse LCM\":2,\"Arthrite inflammatoire\":2},3:{\"Gonarthrose\":5,\"SONK \/ Ost\u00e9on\u00e9crose\":4,\"Fracture plateau tibial\":2,\"Kyste de Baker\":2}},\n  2:{0:{\"Syndrome f\u00e9moro-patellaire\":4,\"Tendinopathie rotulienne\":4,\"Osgood-Schlatter\":3,\"Bursite pr\u00e9rotulienne\":3,\"Luxation de rotule\":2},1:{\"Entorse LCM\":4,\"Rupture m\u00e9niscale\":3,\"Gonarthrose\":2},2:{\"Syndrome bandelette ilio-tibiale\":5,\"Entorse LCM\":1,\"Rupture LCA\":1},3:{\"Kyste de Baker\":5},4:{\"Gonarthrose\":3,\"Arthrite septique\":3,\"Arthrite inflammatoire\":3,\"Fracture plateau tibial\":2}},\n  3:{0:{\"Rupture LCA\":4,\"Fracture plateau tibial\":4,\"Entorse LCM\":3,\"Luxation de rotule\":3},1:{\"Rupture m\u00e9niscale\":3,\"Tendinopathie rotulienne\":3,\"Syndrome bandelette ilio-tibiale\":3,\"Arthrite septique\":2},2:{\"Gonarthrose\":5,\"SONK \/ Ost\u00e9on\u00e9crose\":3,\"Syndrome f\u00e9moro-patellaire\":2},3:{\"Rupture m\u00e9niscale\":3,\"Kyste de Baker\":2,\"Arthrite inflammatoire\":2}},\n  4:{0:{\"Rupture LCA\":5,\"Fracture plateau tibial\":4,\"Arthrite septique\":2},1:{\"Rupture m\u00e9niscale\":4,\"Gonarthrose\":2,\"Arthrite inflammatoire\":2},2:{\"Gonarthrose\":3,\"Arthrite inflammatoire\":3,\"Kyste de Baker\":3},3:{\"Syndrome f\u00e9moro-patellaire\":2,\"Tendinopathie rotulienne\":2,\"Syndrome bandelette ilio-tibiale\":2,\"Osgood-Schlatter\":2}},\n  5:{0:{\"Rupture LCA\":5},1:{\"Entorse LCM\":4,\"Fracture plateau tibial\":2},2:{\"Luxation de rotule\":6,\"Syndrome f\u00e9moro-patellaire\":2},3:{\"Gonarthrose\":2,\"Tendinopathie rotulienne\":2,\"Syndrome bandelette ilio-tibiale\":2,\"Osgood-Schlatter\":2}},\n  6:{0:{\"Rupture m\u00e9niscale\":5},1:{\"Rupture m\u00e9niscale\":3,\"Gonarthrose\":2},2:{\"Gonarthrose\":2,\"Syndrome f\u00e9moro-patellaire\":2,\"Arthrite septique\":2},3:{\"Tendinopathie rotulienne\":2,\"Syndrome bandelette ilio-tibiale\":2,\"Entorse LCM\":2}},\n  7:{0:{\"Rupture m\u00e9niscale\":5},1:{\"Gonarthrose\":4,\"Syndrome f\u00e9moro-patellaire\":3},2:{\"Rupture LCA\":4,\"Luxation de rotule\":3,\"Fracture plateau tibial\":2},3:{\"Entorse LCM\":2,\"Tendinopathie rotulienne\":2,\"Bursite pr\u00e9rotulienne\":2}},\n  8:{0:{\"Syndrome f\u00e9moro-patellaire\":5,\"Gonarthrose\":3,\"Bursite pr\u00e9rotulienne\":2},1:{\"Syndrome bandelette ilio-tibiale\":6,\"Tendinopathie rotulienne\":2},2:{\"Tendinopathie rotulienne\":5,\"Osgood-Schlatter\":3},3:{\"Gonarthrose\":4,\"Arthrite inflammatoire\":2},4:{\"SONK \/ Ost\u00e9on\u00e9crose\":4,\"Arthrite septique\":4,\"Arthrite inflammatoire\":3}},\n  9:{0:{\"Gonarthrose\":4,\"Rupture m\u00e9niscale\":3,\"Syndrome bandelette ilio-tibiale\":3},1:{\"Arthrite inflammatoire\":5,\"Arthrite septique\":3},2:{\"Fracture plateau tibial\":4,\"Arthrite septique\":4,\"Rupture LCA\":3},3:{\"SONK \/ Ost\u00e9on\u00e9crose\":5,\"Fracture plateau tibial\":3}},\n  10:{0:{\"Arthrite septique\":7,\"Arthrite inflammatoire\":3},1:{\"Arthrite inflammatoire\":4,\"Gonarthrose\":2,\"Kyste de Baker\":2},2:{\"Bursite pr\u00e9rotulienne\":6,\"Osgood-Schlatter\":2},3:{\"Rupture m\u00e9niscale\":2,\"Syndrome f\u00e9moro-patellaire\":2,\"Entorse LCM\":2,\"Syndrome bandelette ilio-tibiale\":2}},\n  11:{0:{\"Rupture LCA\":5,\"Rupture m\u00e9niscale\":3,\"Entorse LCM\":3},1:{\"Syndrome bandelette ilio-tibiale\":6,\"Tendinopathie rotulienne\":3},2:{\"Bursite pr\u00e9rotulienne\":6},3:{\"Gonarthrose\":3,\"SONK \/ Ost\u00e9on\u00e9crose\":2}},\n  12:{0:{\"Rupture LCA\":3,\"Entorse LCM\":3,\"Fracture plateau tibial\":3},1:{\"Gonarthrose\":3,\"Kyste de Baker\":2,\"SONK \/ Ost\u00e9on\u00e9crose\":2},2:{\"Gonarthrose\":3,\"Syndrome f\u00e9moro-patellaire\":2},3:{\"Arthrite inflammatoire\":5}},\n  13:{0:{\"SONK \/ Ost\u00e9on\u00e9crose\":5,\"Arthrite septique\":3,\"Fracture plateau tibial\":2},1:{\"Arthrite inflammatoire\":6},2:{\"Arthrite septique\":5,\"Kyste de Baker\":2},3:{\"Gonarthrose\":2,\"Rupture LCA\":2,\"Syndrome f\u00e9moro-patellaire\":2}},\n  14:{0:{\"Osgood-Schlatter\":8},1:{\"Tendinopathie rotulienne\":6},2:{\"Syndrome f\u00e9moro-patellaire\":4,\"Luxation de rotule\":2},3:{\"Gonarthrose\":2,\"Rupture LCA\":2,\"Entorse LCM\":2}}\n};\n\n\/* ---- GESTES ---- *\/\nconst GESTES_FR=[\"Mettre le genou au repos et r\u00e9duire les activit\u00e9s douloureuses\",\"Appliquer de la glace 15 min, 2 \u00e0 3 fois par jour sur la zone douloureuse\",\"\u00c9viter les mouvements en torsion, les sauts et les flexions profondes\",\"Sur\u00e9lever le membre inf\u00e9rieur si un gonflement est pr\u00e9sent\",\"Prendre un antalgique de palier 1 (parac\u00e9tamol) si la douleur est g\u00eanante\",\"Consulter rapidement un m\u00e9decin du sport ou un kin\u00e9sith\u00e9rapeute\"];\nconst GESTES_EN=[\"Rest the knee and reduce painful activities\",\"Apply ice for 15 min, 2 to 3 times a day on the painful area\",\"Avoid twisting movements, jumping and deep bending\",\"Elevate the lower limb if swelling is present\",\"Take a first-line painkiller (paracetamol) if pain is bothersome\",\"Consult a sports doctor or physiotherapist promptly\"];\nconst GESTES=LANG==='en'?GESTES_EN:GESTES_FR;\n\n\/* ---- STYLES NAVIGATION ---- *\/\nconst R='#8b1c16';\nconst NB=(d)=>`display:flex;align-items:center;gap:14px;cursor:${d?'default':'pointer'};font-family:'Arboria',Arial,sans-serif;font-size:11px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:#b0a898;${d?'opacity:0.3;pointer-events:none':''}`;\nconst NN=(d)=>`display:flex;align-items:center;gap:14px;cursor:${d?'default':'pointer'};font-family:'Arboria',Arial,sans-serif;font-size:14px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:${R};${d?'opacity:0.3;pointer-events:none':''}`;\nconst CB=`width:35px;height:35px;min-width:35px;border-radius:50%;border:1.5px solid #c8bfb4;display:flex;align-items:center;justify-content:center;flex-shrink:0;`;\nconst CN=`width:35px;height:35px;min-width:35px;border-radius:50%;border:1.5px solid ${R};display:flex;align-items:center;justify-content:center;flex-shrink:0;`;\nconst SB=`<svg width=\"23\" height=\"23\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#b0a898\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"15 18 9 12 15 6\"\/><\/svg>`;\nconst SN=`<svg width=\"23\" height=\"23\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"${R}\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg>`;\nconst SDLICO=`<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\/><polyline points=\"7 10 12 15 17 10\"\/><line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\/><\/svg>`;\n\n\/* ---- \u00c9TAT ---- *\/\nlet cur=0, ans={};\nlet _transitioning=false;\nconst el=()=>document.getElementById('dg-render');\nconst esc=s=>s.replace(\/&\/g,'&amp;').replace(\/<\/g,'&lt;').replace(\/>\/g,'&gt;');\n\n\/* ---- PR\u00c9CHARGEMENT LOGO ---- *\/\nwindow._dgLogo=null; window._dgLogoRatio=3;\n(function(){\n  const img=new Image();\n  img.crossOrigin='anonymous';\n  img.onload=function(){\n    try{\n      const c=document.createElement('canvas');\n      c.width=img.naturalWidth; c.height=img.naturalHeight;\n      c.getContext('2d').drawImage(img,0,0);\n      window._dgLogo=c.toDataURL('image\/png');\n      window._dgLogoRatio=img.naturalWidth\/img.naturalHeight;\n    }catch(e){}\n  };\n  img.src='https:\/\/sosgenougeneve.ch\/wp-content\/uploads\/2026\/01\/logososblanc@4x-e1770046884760.png';\n})();\n\n\/* ---- RENDU ---- *\/\nfunction render(dir){ cur<Q.length?renderQ(dir):renderR(); }\n\nfunction buildQHTML(qi){\n  const q=Q[qi],pct=Math.round((qi\/Q.length)*100),sel=ans[qi],last=qi===Q.length-1;\n  const nb=qi===0;\n  const navHTML=last\n    ?'<hr class=\"dg-nav-sep\"><div class=\"dg-nav dg-nav-desktop-last\">'\n      +'<div onclick=\"dgB()\" style=\"'+NB(nb)+'\"><div style=\"'+CB+'\">'+SB+'<\/div>'+L.btnPrev+'<\/div>'\n      +'<div onclick=\"dgPDFandNext()\" style=\"'+NN(sel===undefined)+'\">'+L.btnDownload+'<div style=\"'+CN+'\">'+SN+'<\/div><\/div>'\n      +'<\/div>'\n      +'<div class=\"dg-nav-last\">'\n      +'<div class=\"dg-dl-btn'+(sel===undefined?' disabled':'')+'\" onclick=\"dgPDFandNext()\">'+SDLICO+L.btnDownload+'<\/div>'\n      +'<div class=\"dg-nav-row\"><div onclick=\"dgB()\" style=\"'+NB(nb)+'\"><div style=\"'+CB+'\">'+SB+'<\/div>'+L.btnPrev+'<\/div><\/div>'\n      +'<\/div>'\n    :'<hr class=\"dg-nav-sep\"><div class=\"dg-nav\">'\n      +'<div onclick=\"dgB()\" style=\"'+NB(nb)+'\"><div style=\"'+CB+'\">'+SB+'<\/div>'+L.btnPrev+'<\/div>'\n      +'<div onclick=\"dgN()\" style=\"'+NN(sel===undefined)+'\">'+L.btnNext+'<div style=\"'+CN+'\">'+SN+'<\/div><\/div>'\n      +'<\/div>';\n  let html='<div class=\"dg-prog-meta\"><span>Question '+(qi+1)+' \/ '+Q.length+'<\/span><span>'+pct+'%<\/span><\/div>'\n    +'<div class=\"dg-prog-wrap\"><div class=\"dg-prog-fill\" style=\"width:'+pct+'%\"><\/div><\/div>'\n    +'<div class=\"dg-qtext\">'+esc(q.t)+'<\/div>'\n    +(q.h?'<div class=\"dg-qhint\">'+esc(q.h)+'<\/div>':'')\n    +'<div class=\"dg-options\">'\n    +q.o.map(function(o,i){\n      return '<div class=\"dg-opt'+(sel===i?' selected':'')+'\" onclick=\"dgS('+i+')\">'\n        +'<div class=\"dg-radio\"><div class=\"dg-radio-dot\"><\/div><\/div>'\n        +'<span class=\"dg-opt-t\">'+esc(o)+'<\/span><\/div>';\n    }).join('')\n    +'<\/div>'+navHTML;\n  return html;\n}\n\nfunction renderQ(dir){\n  const container=el();\n  if(!dir){\n    container.innerHTML='<div class=\"dg-q-wrap\">'+buildQHTML(cur)+'<\/div>';\n    return;\n  }\n  if(_transitioning) return;\n  _transitioning=true;\n  const old=container.querySelector('.dg-q-wrap');\n  if(old) old.classList.add(dir==='next'?'exit-next':'exit-prev');\n  const next=document.createElement('div');\n  next.className='dg-q-wrap '+(dir==='next'?'enter-next':'enter-prev');\n  next.innerHTML=buildQHTML(cur);\n  container.appendChild(next);\n  setTimeout(function(){ if(old) old.remove(); _transitioning=false; }, 420);\n}\n\nfunction renderR(){\n  const scores={};\n  Object.keys(D).forEach(d=>scores[d]=0);\n  for(let i=0;i<Q.length;i++){\n    const a=ans[i]; if(a===undefined) continue;\n    const s=S[i]; if(!s||!s[a]) continue;\n    for(const [d,p] of Object.entries(s[a])) if(scores[d]!==undefined) scores[d]+=p;\n  }\n  const top=Object.entries(scores).sort((a,b)=>b[1]-a[1]).slice(0,3);\n  const max=top[0][1]||1;\n  const rc=['r1','r2','r3'];\n  el().innerHTML=`\n    <div class=\"dg-res\">\n      <div class=\"dg-res-title\">${L.resTitle}<\/div>\n      ${top.map(([n,s],i)=>{\n        const p=Math.round((s\/max)*100);\n        return `<div class=\"dg-diag ${rc[i]}\">\n          <div class=\"dg-d-num\">${i+1}<\/div>\n          <div class=\"dg-d-body\">\n            <div class=\"dg-d-name\">${esc(NAMES[n]||n)}<\/div>\n            <div class=\"dg-d-desc\">${esc(D[n])}<\/div>\n          <\/div>\n          <div class=\"dg-d-right\">\n            <div class=\"dg-d-pct\">${p}%<\/div>\n            <div class=\"dg-d-bar-bg\"><div class=\"dg-d-bar\" style=\"width:${p}%\"><\/div><\/div>\n          <\/div>\n        <\/div>`;\n      }).join('')}\n      <div class=\"dg-gestes-block\">\n        <div class=\"dg-gestes-label\">${L.gestesLabel}<\/div>\n        <div class=\"dg-gestes-grid\">${GESTES.map(g=>`<div class=\"dg-geste\"><div class=\"dg-geste-dot\"><\/div><span class=\"dg-geste-t\">${esc(g)}<\/span><\/div>`).join('')}<\/div>\n      <\/div>\n      <div class=\"dg-disc\">${L.disc}<\/div>\n      <div style=\"display:flex;justify-content:center;align-items:center;gap:18px;margin-top:26px;flex-wrap:wrap;\">\n        <a href=\"https:\/\/sosgenougeneve.ch\/prendre-rendez-vous\/\"\n           onclick=\"if(typeof gtag==='function'){gtag('event','rdv_button_clicked',{event_category:'Diagnostic Genou',event_label:'Prendre RDV'});}\"\n           style=\"display:inline-flex;align-items:center;gap:10px;padding:10px 26px;background:#8b1c16;color:#fff;font-family:'Arboria',Arial,sans-serif;font-size:14px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;text-decoration:none;border-radius:7px;\">${L.btnRdv}<\/a>\n        <div onclick=\"dgR()\" style=\"display:inline-flex;align-items:center;cursor:pointer;padding:4px 0;background:transparent;color:#b0a898;font-family:'Arboria',Arial,sans-serif;font-size:14px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;border:none;text-decoration:underline;text-underline-offset:4px;\">${L.btnRestart}<\/div>\n      <\/div>\n    <\/div>`;\n}\n\n\/* ---- BOUTON DERNI\u00c8RE QUESTION ---- *\/\nwindow.dgPDFandNext=function(){\n  if(ans[cur]===undefined) return;\n  generatePDF();\n  cur++;\n  render('next');\n};\n\n\/* ---- CALCUL SCORES ---- *\/\nfunction calcScores(){\n  const scores={};\n  Object.keys(D).forEach(d=>scores[d]=0);\n  for(let i=0;i<Q.length;i++){\n    const a=ans[i]; if(a===undefined) continue;\n    const s=S[i]; if(!s||!s[a]) continue;\n    for(const [d,p] of Object.entries(s[a])) if(scores[d]!==undefined) scores[d]+=p;\n  }\n  return scores;\n}\n\n\/* ---- G\u00c9N\u00c9RATION PDF ---- *\/\nfunction generatePDF(){\n  if(!window.jspdf){ alert(LANG==='en'?\"PDF library not loaded. Please reload the page.\":\"La librairie PDF ne s'est pas chargee. Rechargez la page.\"); return; }\n  const {jsPDF}=window.jspdf;\n  const scores=calcScores();\n  const top=Object.entries(scores).sort((a,b)=>b[1]-a[1]).slice(0,3);\n  const max=top[0][1]||1;\n  const doc=new jsPDF({orientation:'portrait',unit:'mm',format:'a4'});\n  const W=210,M=20,RED=[139,28,22],BEIGE=[245,240,232],LIGHT=[224,216,204];\n  let y=0;\n\n  function clean(s){\n    return (s||'')\n      .replace(\/\\u2013|\\u2014\/g,'-').replace(\/\\u2019|\\u2018\/g,\"'\")\n      .replace(\/\\u00e9|\\u00e8|\\u00ea|\\u00eb\/g,'e').replace(\/\\u00e0|\\u00e2|\\u00e4\/g,'a')\n      .replace(\/\\u00f4|\\u00f6\/g,'o').replace(\/\\u00fb|\\u00f9|\\u00fc\/g,'u')\n      .replace(\/\\u00ee|\\u00ef\/g,'i').replace(\/\\u00e7\/g,'c')\n      .replace(\/\\u00c9|\\u00c8|\\u00ca\/g,'E').replace(\/\\u00c0|\\u00c2\/g,'A')\n      .replace(\/\\u00d4\/g,'O').replace(\/\\u00ce\/g,'I').replace(\/\\u00c7\/g,'C')\n      .replace(\/[^\\x00-\\x7E]\/g,'');\n  }\n\n  function addHeader(){\n    doc.setFillColor(...RED); doc.rect(0,0,W,24,'F');\n    if(window._dgLogo){ const lH=16,lW=lH*window._dgLogoRatio; doc.addImage(window._dgLogo,'PNG',M,4,lW,lH); }\n    doc.setTextColor(255,255,255);\n    doc.setFontSize(10); doc.setFont('helvetica','bold');\n    doc.text(L.pdfTitle,W\/2,11,{align:'center'});\n    doc.setFontSize(7); doc.setFont('helvetica','normal');\n    doc.text(L.pdfSite||'sosgenougeneve.ch',W\/2,17,{align:'center'});\n    doc.setFontSize(7.5);\n    doc.text(new Date().toLocaleDateString(LANG==='en'?'en-GB':'fr-FR'),W-M,11,{align:'right'});\n    doc.text(L.pdfConfidential,W-M,17,{align:'right'});\n  }\n\n  function addFooter(p,total){\n    doc.setFillColor(...BEIGE); doc.rect(0,284,W,13,'F');\n    doc.setDrawColor(...RED); doc.setLineWidth(0.3); doc.line(0,284,W,284);\n    doc.setTextColor(160,152,144);\n    doc.setFontSize(6.5); doc.setFont('helvetica','italic');\n    doc.text(L.pdfFooter,W\/2,291,{align:'center'});\n    doc.setFont('helvetica','normal');\n    doc.text(L.pdfPage(p,total),W-M,291,{align:'right'});\n  }\n\n  function sectionHeader(num,title,yPos){\n    doc.setFillColor(...BEIGE); doc.rect(0,yPos-4,W,13,'F');\n    doc.setFillColor(...RED); doc.circle(M+5,yPos+2,5,'F');\n    doc.setTextColor(255,255,255); doc.setFontSize(8); doc.setFont('helvetica','bold');\n    doc.text(String(num),M+5,yPos+4.5,{align:'center'});\n    doc.setTextColor(...RED); doc.setFontSize(9); doc.setFont('helvetica','bold');\n    doc.text(title,M+15,yPos+4.5);\n    const lx=M+15+doc.getTextWidth(title)+5;\n    doc.setDrawColor(...RED); doc.setLineWidth(0.3);\n    doc.line(lx,yPos+2,W-M,yPos+2);\n    return yPos+14;\n  }\n\n  \/* ========================================================\n     PAGE 1 \u2014 SECTION 1 : R\u00c9SULTATS DIAGNOSTIQUES\n     ======================================================== *\/\n  addHeader(); y=32;\n  y=sectionHeader(1,L.pdfS2,y); y+=5;\n\n  top.forEach(([name,score],i)=>{\n    const pct=Math.round((score\/max)*100);\n    const displayName=NAMES[name]||name;\n    const descLines=doc.splitTextToSize(clean(D[name]||''),W-M*2-26);\n    const blockH=descLines.length*4+26;\n    if(i===0){ doc.setFillColor(252,237,234); doc.rect(M-2,y-2,W-M*2+4,blockH+4,'F'); }\n    doc.setTextColor(...[RED,[45,45,45],[160,160,160]][i]);\n    doc.setFontSize(26); doc.setFont('helvetica','bold');\n    doc.text(String(i+1),M+4,y+16);\n    doc.setFontSize(6.5); doc.setFont('helvetica','bold');\n    doc.text(L.pdfRank[i].toUpperCase(),M+16,y+4);\n    doc.setFontSize(11); doc.setTextColor(20,20,20);\n    doc.text(clean(displayName),M+16,y+11);\n    doc.setFontSize(7.5); doc.setFont('helvetica','normal'); doc.setTextColor(140,140,140);\n    doc.text(descLines,M+16,y+17);\n    doc.setFontSize(22); doc.setFont('helvetica','bold');\n    doc.setTextColor(i===0?245:220,i===0?220:214,i===0?216:208);\n    doc.text(pct+'%',W-M,y+12,{align:'right'});\n    const bx=M+16,by=y+blockH-3,bw=W-M*2-20,bh=2;\n    doc.setFillColor(...LIGHT); doc.rect(bx,by,bw,bh,'F');\n    doc.setFillColor(...[RED,[45,45,45],[160,160,160]][i]); doc.rect(bx,by,bw*pct\/100,bh,'F');\n    y+=blockH+4;\n    doc.setDrawColor(...LIGHT); doc.setLineWidth(0.2); doc.line(M,y,W-M,y); y+=5;\n  });\n\n  \/* ========================================================\n     SUITE PAGE 1 \u2014 SECTION 2 : PREMIERS GESTES\n     ======================================================== *\/\n  y+=8;\n  y=sectionHeader(2,L.pdfS3,y); y+=4;\n\n  const cw=(W-M*2-10)\/2, ROW_H=11;\n  const gDotX1=M+5, gTxtX1=M+11;\n  const gDotX2=M+5+cw+6, gTxtX2=M+11+cw+6;\n  const gTxtW=cw-10;\n  const boxH=Math.ceil(GESTES.length\/2)*ROW_H+12;\n\n  if(y+boxH+10>277){ doc.addPage(); addHeader(); y=32; y=sectionHeader(2,L.pdfS3,y); y+=4; }\n\n  doc.setDrawColor(...LIGHT); doc.setLineWidth(0.3); doc.rect(M,y,W-M*2,boxH,'S');\n  doc.setFillColor(...RED); doc.rect(M,y,W-M*2,2,'F'); y+=9;\n\n  GESTES.forEach((g,i)=>{\n    const col=i<3?0:1, row=i%3;\n    const dotX=col===0?gDotX1:gDotX2;\n    const txtX=col===0?gTxtX1:gTxtX2;\n    const cy=y+row*ROW_H;\n    doc.setFillColor(...RED); doc.circle(dotX,cy+1.5,1.8,'F');\n    doc.setTextColor(70,70,70); doc.setFontSize(7.5); doc.setFont('helvetica','normal');\n    doc.text(doc.splitTextToSize(clean(g),gTxtW),txtX,cy+2.5);\n  });\n\n  \/* ========================================================\n     PAGE 2 \u2014 SECTION 3 : R\u00c9PONSES DU PATIENT\n     ======================================================== *\/\n  doc.addPage(); addHeader(); y=32;\n  y=sectionHeader(3,L.pdfS1,y); y+=4;\n\n  const DOT_X=M+4, TXT_X=M+11, TXT_W=W-M-TXT_X-6;\n\n  Q.forEach((q,i)=>{\n    const rep=ans[i]!==undefined?clean(q.o[ans[i]]):L.noAnswer;\n    const qLines=doc.splitTextToSize(clean('Q'+(i+1)+'. '+q.t),W-M*2);\n    const rLines=doc.splitTextToSize(rep,TXT_W);\n    const qH=qLines.length*4.2+3, rH=rLines.length*4.8+2;\n    if(y+qH+rH+6>277){ doc.addPage(); addHeader(); y=32; }\n    doc.setFillColor(250,246,242); doc.rect(M,y,W-M*2,qH,'F');\n    doc.setTextColor(...RED); doc.setFontSize(7.5); doc.setFont('helvetica','bold');\n    doc.text(qLines,M+3,y+4); y+=qH+2;\n    doc.setFillColor(...RED); doc.circle(DOT_X,y+3,1.8,'F');\n    doc.setTextColor(50,50,50); doc.setFontSize(8); doc.setFont('helvetica','normal');\n    doc.text(rLines,TXT_X,y+4); y+=rH+2;\n    doc.setDrawColor(...LIGHT); doc.setLineWidth(0.2);\n    doc.line(M,y,W-M,y); y+=5;\n  });\n\n  \/* ---- FOOTERS SUR TOUTES LES PAGES ---- *\/\n  const total=doc.getNumberOfPages();\n  for(let p=1;p<=total;p++){ doc.setPage(p); addFooter(p,total); }\n\n  \/* ---- GA4 : \u00c9V\u00c9NEMENT PDF T\u00c9L\u00c9CHARG\u00c9 ---- *\/\n  if(typeof gtag==='function'){\n    gtag('event','diagnostic_pdf_downloaded',{\n      event_category:'Diagnostic Genou',\n      event_label:'PDF T\u00e9l\u00e9charg\u00e9'\n    });\n  }\n\n  \/* ---- T\u00c9L\u00c9CHARGEMENT ---- *\/\n  const blob=doc.output('blob');\n  const blobUrl=URL.createObjectURL(blob);\n  const isIOS=\/iPad|iPhone|iPod\/.test(navigator.userAgent);\n\n  if(isIOS){\n    window.open(blobUrl,'_blank');\n  } else {\n    doc.save('diagnostic-genou-sosgenougeneve.pdf');\n  }\n}\n\n\/* ---- FONCTIONS GLOBALES ---- *\/\nwindow.dgS=function(i){ans[cur]=i;renderQ(null);};\nwindow.dgN=function(){if(ans[cur]!==undefined){cur++;render('next');}};\nwindow.dgB=function(){if(cur>0){cur--;render('prev');}};\nwindow.dgR=function(){cur=0;ans={};el().innerHTML='';render(null);};\nrender();\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-29384ea e-grid e-con-boxed e-con e-parent\" data-id=\"29384ea\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-621a3c2 e-con-full e-flex e-con e-child\" data-id=\"621a3c2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4ec21b5 elementor-widget elementor-widget-heading\" data-id=\"4ec21b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">15 questions pour<br>\norienter votre diagnostic<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6d5b647 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"6d5b647\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9def201 elementor-widget elementor-widget-text-editor\" data-id=\"9def201\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Toutes les douleurs au genou ne sont pas identiques. Ce test clinique informatif vous aide \u00e0 identifier \u00e0 quelles pathologies correspondent vos sympt\u00f4mes.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b49a40b e-con-full e-grid e-con e-child\" data-id=\"b49a40b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-77eaa8b e-con-full e-flex e-con e-child\" data-id=\"77eaa8b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1fb160b elementor-widget elementor-widget-heading\" data-id=\"1fb160b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">3<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e083451 elementor-widget elementor-widget-text-editor\" data-id=\"e083451\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>pathologies probables identifi\u00e9es<\/p>\t\t\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-faec48d e-con-full e-flex e-con e-child\" data-id=\"faec48d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-caa17fa elementor-widget elementor-widget-heading\" data-id=\"caa17fa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">15<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-911b8e0 elementor-widget elementor-widget-text-editor\" data-id=\"911b8e0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>questions cibl\u00e9es<\/p>\t\t\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-6174e95 e-con-full e-flex e-con e-child\" data-id=\"6174e95\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f985c14 elementor-widget elementor-widget-heading\" data-id=\"f985c14\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">2'<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2951398 elementor-widget elementor-widget-text-editor\" data-id=\"2951398\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>pour obtenir votre profil<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\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-db7a9f3 e-con-full e-flex e-con e-child\" data-id=\"db7a9f3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4d60eb2 elementor-widget elementor-widget-image\" data-id=\"4d60eb2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"533\" src=\"https:\/\/sosgenougeneve.ch\/wp-content\/uploads\/2026\/02\/pexels-shvetsa-5067889-1200x800.jpg\" class=\"attachment-large size-large wp-image-25173\" alt=\"\" srcset=\"https:\/\/sosgenougeneve.ch\/wp-content\/uploads\/2026\/02\/pexels-shvetsa-5067889-1200x800.jpg 1200w, https:\/\/sosgenougeneve.ch\/wp-content\/uploads\/2026\/02\/pexels-shvetsa-5067889-400x267.jpg 400w, https:\/\/sosgenougeneve.ch\/wp-content\/uploads\/2026\/02\/pexels-shvetsa-5067889-768x512.jpg 768w, https:\/\/sosgenougeneve.ch\/wp-content\/uploads\/2026\/02\/pexels-shvetsa-5067889-1536x1024.jpg 1536w, https:\/\/sosgenougeneve.ch\/wp-content\/uploads\/2026\/02\/pexels-shvetsa-5067889-2048x1365.jpg 2048w, https:\/\/sosgenougeneve.ch\/wp-content\/uploads\/2026\/02\/pexels-shvetsa-5067889-18x12.jpg 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9d6cc6a e-con-full elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-parent\" data-id=\"9d6cc6a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-44efad9 elementor-widget elementor-widget-heading\" data-id=\"44efad9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">AGIR MAINTENANT<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f4298e2 elementor-widget elementor-widget-heading\" data-id=\"f4298e2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">VOTRE GENOU NE PEUT PAS ATTENDRE<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-be97764 elementor-widget__width-inherit elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"be97764\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b907bf6 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"b907bf6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"hero-body\">Vous avez identifi\u00e9 vos sympt\u00f4mes. Pour confirmer le diagnostic et d\u00e9finir le traitement adapt\u00e9 \u00e0 votre situation, une consultation sp\u00e9cialis\u00e9e reste indispensable. Le Dr Coulin vous re\u00e7oit dans l&rsquo;un de ses cabinets \u00e0 Gen\u00e8ve avec un plan de traitement d\u00e8s la premi\u00e8re visite.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b172e8c elementor-widget elementor-widget-button\" data-id=\"b172e8c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/sosgenougeneve.ch\/prendre-rendez-vous\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">PRENDRE RENDEZ-VOUS<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f9478dc elementor-widget elementor-widget-text-editor\" data-id=\"f9478dc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>+41 22 348 80 00<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Douleurs au genou 15 questions pour orienter votre diagnostic R\u00e9pondez aux questions suivantes afin d\u2019identifier votre profil symptomatique. LES L\u00c9SIONS DU GENOU Quelle pathologie se cache derri\u00e8re votre douleur ? Notre diagnostic couvre 15 pathologies. Quelques exemples : L\u00e9sions du genou \u2014 Pathologies VOTRE DIAGNOSTIC DU GENOU 15 questions pour orienter votre diagnostic Toutes les [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-26846","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/sosgenougeneve.ch\/en\/wp-json\/wp\/v2\/pages\/26846","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sosgenougeneve.ch\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sosgenougeneve.ch\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sosgenougeneve.ch\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sosgenougeneve.ch\/en\/wp-json\/wp\/v2\/comments?post=26846"}],"version-history":[{"count":78,"href":"https:\/\/sosgenougeneve.ch\/en\/wp-json\/wp\/v2\/pages\/26846\/revisions"}],"predecessor-version":[{"id":28221,"href":"https:\/\/sosgenougeneve.ch\/en\/wp-json\/wp\/v2\/pages\/26846\/revisions\/28221"}],"wp:attachment":[{"href":"https:\/\/sosgenougeneve.ch\/en\/wp-json\/wp\/v2\/media?parent=26846"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}