{"product_id":"tapis-anti-choc","title":"Tapis de jeux - Anti-choc - Double Face 190*140* 1,5cm","description":"\u003cstyle\u003e\n  .svp-outer {\n    width: 100%;\n    padding: clamp(8px, 3vw, 20px) clamp(6px, 2vw, 16px);\n    box-sizing: border-box;\n  }\n  .svp-wrap {\n    position: relative;\n    width: 100%;\n    aspect-ratio: 16 \/ 9;\n    background: #0d0d0d;\n    border-radius: clamp(8px, 1.5vw, 16px);\n    overflow: hidden;\n    box-shadow: 0 2px 8px rgba(0,0,0,.2), 0 14px 40px rgba(0,0,0,.38);\n    font-family: -apple-system, BlinkMacSystemFont, sans-serif;\n    cursor: pointer;\n    box-sizing: border-box;\n  }\n  .svp-video {\n    width: 100%; height: 100%;\n    object-fit: contain; display: block;\n    opacity: 0; transition: opacity .45s ease;\n  }\n  .svp-poster {\n    position: absolute; inset: 0;\n    display: flex; align-items: center; justify-content: center;\n    overflow: hidden; transition: opacity .45s ease;\n  }\n  .svp-poster-bg {\n    position: absolute; inset: 0;\n    background: linear-gradient(135deg, #0f0c29 0%, #302b63 50%, #24243e 100%);\n  }\n  #svp-canvas {\n    position: absolute; inset: 0;\n    width: 100%; height: 100%;\n    object-fit: cover; display: none;\n  }\n  .svp-poster-dim { position: absolute; inset: 0; background: rgba(0,0,0,.28); }\n  .svp-play-big {\n    position: relative; z-index: 3;\n    width: clamp(56px,7vw,88px); height: clamp(56px,7vw,88px);\n    border-radius: 50%;\n    background: rgba(255,255,255,.13);\n    backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);\n    border: 2px solid rgba(255,255,255,.38);\n    display: flex; align-items: center; justify-content: center;\n    transition: transform .22s cubic-bezier(.16,1,.3,1), background .22s ease;\n    box-shadow: 0 4px 24px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.15);\n  }\n  .svp-wrap:hover .svp-play-big { transform: scale(1.1); background: rgba(255,255,255,.22); }\n  .svp-play-big svg { margin-left: clamp(3px,.4vw,5px); width: clamp(22px,3vw,32px); height: clamp(22px,3vw,32px); }\n  .svp-loading {\n    position: absolute; inset: 0; display: none;\n    align-items: center; justify-content: center;\n    pointer-events: none; z-index: 10;\n  }\n  .svp-spinner {\n    width: clamp(32px,4vw,48px); height: clamp(32px,4vw,48px);\n    border: 3px solid rgba(255,255,255,.15);\n    border-top-color: rgba(255,255,255,.85);\n    border-radius: 50%; animation: svp-spin .75s linear infinite;\n  }\n  @keyframes svp-spin { to { transform: rotate(360deg); } }\n  .svp-controls {\n    position: absolute; bottom: 0; left: 0; right: 0;\n    padding: clamp(20px,4vw,36px) clamp(10px,2vw,16px) clamp(10px,1.5vw,14px);\n    background: linear-gradient(to top, rgba(0,0,0,.78) 0%, transparent 100%);\n    display: none; flex-direction: column; gap: clamp(6px,1vw,10px);\n    opacity: 0; transition: opacity .28s ease; z-index: 5;\n  }\n  .svp-wrap:hover .svp-controls,\n  .svp-wrap:focus-within .svp-controls { opacity: 1; }\n  .svp-prog-track {\n    width: 100%; height: 4px; background: rgba(255,255,255,.25);\n    border-radius: 99px; cursor: pointer; position: relative;\n    transition: height .15s ease;\n  }\n  .svp-wrap:hover .svp-prog-track { height: 5px; }\n  .svp-prog-fill {\n    height: 100%; width: 0%; background: #fff;\n    border-radius: 99px; position: relative;\n    pointer-events: none; transition: width .1s linear;\n  }\n  .svp-prog-thumb {\n    position: absolute; right: -6px; top: 50%; transform: translateY(-50%);\n    width: 13px; height: 13px; background: #fff; border-radius: 50%;\n    opacity: 0; transition: opacity .18s ease;\n    box-shadow: 0 1px 4px rgba(0,0,0,.4); pointer-events: none;\n  }\n  .svp-wrap:hover .svp-prog-thumb { opacity: 1; }\n  .svp-row { display: flex; align-items: center; gap: clamp(4px,.8vw,8px); }\n  .svp-btn {\n    background: none; border: none; padding: clamp(3px,.5vw,6px);\n    cursor: pointer; color: #fff;\n    display: flex; align-items: center; justify-content: center;\n    opacity: .82; transition: opacity .15s ease, transform .12s ease;\n    border-radius: 6px; line-height: 1; min-width: 28px; min-height: 28px;\n  }\n  .svp-btn:hover { opacity: 1; transform: scale(1.1); }\n  .svp-time {\n    font-size: clamp(10px,1.2vw,12px); color: rgba(255,255,255,.82);\n    letter-spacing: .02em; white-space: nowrap;\n    padding-left: 4px; font-variant-numeric: tabular-nums;\n  }\n  .svp-gap { flex: 1; }\n  .svp-vol-group { display: flex; align-items: center; gap: 6px; }\n  .svp-vol {\n    -webkit-appearance: none; appearance: none;\n    width: clamp(48px,6vw,72px); height: 4px;\n    background: rgba(255,255,255,.3); border-radius: 99px;\n    cursor: pointer; outline: none;\n  }\n  .svp-vol::-webkit-slider-thumb {\n    -webkit-appearance: none; width: 13px; height: 13px;\n    background: #fff; border-radius: 50%; cursor: pointer;\n    box-shadow: 0 1px 4px rgba(0,0,0,.3);\n  }\n  .svp-vol::-moz-range-thumb {\n    width: 13px; height: 13px; background: #fff;\n    border-radius: 50%; border: none; cursor: pointer;\n  }\n  @media (max-width: 480px) {\n    .svp-outer { padding: 8px 6px; }\n    .svp-vol-group { display: none; }\n    .svp-wrap { border-radius: 10px; }\n  }\n\u003c\/style\u003e\n\u003cdiv class=\"svp-outer\"\u003e\n\u003cdiv class=\"svp-wrap\" id=\"svp-wrap\"\u003e\n\u003cdiv class=\"svp-poster\" id=\"svp-poster\"\u003e\n\u003cdiv class=\"svp-poster-bg\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003ccanvas id=\"svp-canvas\"\u003e\u003c\/canvas\u003e\n\u003cdiv class=\"svp-poster-dim\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"svp-play-big\" role=\"button\" aria-label=\"Lancer la vidéo\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\"\u003e\n          \u003cpath d=\"M6 4.5L20 12L6 19.5V4.5Z\" fill=\"white\" stroke=\"white\" stroke-width=\"1.4\" stroke-linejoin=\"round\"\u003e\u003c\/path\u003e\n        \u003c\/svg\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cvideo class=\"svp-video\" id=\"svp-video\" playsinline=\"\" preload=\"none\"\u003e\u003c\/video\u003e\n\u003cdiv class=\"svp-loading\" id=\"svp-loading\"\u003e\n\u003cdiv class=\"svp-spinner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"svp-controls\" id=\"svp-controls\"\u003e\n\u003cdiv class=\"svp-prog-track\" id=\"svp-prog\"\u003e\n\u003cdiv class=\"svp-prog-fill\" id=\"svp-fill\"\u003e\n\u003cdiv class=\"svp-prog-thumb\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"svp-row\"\u003e\n\u003cbutton class=\"svp-btn\" id=\"svp-pp\" aria-label=\"Lecture\/Pause\"\u003e \u003csvg id=\"svp-iplay\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"white\"\u003e\u003cpath d=\"M5 4L19 12L5 20V4Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e \u003csvg id=\"svp-ipause\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"white\" style=\"display: none;\"\u003e\u003crect x=\"6\" y=\"4\" width=\"4\" height=\"16\" rx=\"1\"\u003e\u003c\/rect\u003e\u003crect x=\"14\" y=\"4\" width=\"4\" height=\"16\" rx=\"1\"\u003e\u003c\/rect\u003e\u003c\/svg\u003e \u003c\/button\u003e \u003cspan class=\"svp-time\" id=\"svp-time\"\u003e0:00 \/ 0:00\u003c\/span\u003e\n\u003cdiv class=\"svp-gap\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"svp-vol-group\"\u003e\n\u003cbutton class=\"svp-btn\" id=\"svp-mute\" aria-label=\"Muet\"\u003e \u003csvg id=\"svp-von\" width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\u003e\n              \u003cpolygon points=\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"\u003e\u003c\/polygon\u003e\n              \u003cpath d=\"M19.07 4.93a10 10 0 0 1 0 14.14\"\u003e\u003c\/path\u003e\u003cpath d=\"M15.54 8.46a5 5 0 0 1 0 7.07\"\u003e\u003c\/path\u003e\n            \u003c\/svg\u003e \u003csvg id=\"svp-voff\" width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" style=\"display: none;\"\u003e\n              \u003cpolygon points=\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"\u003e\u003c\/polygon\u003e\n              \u003cline x1=\"23\" y1=\"9\" x2=\"17\" y2=\"15\"\u003e\u003c\/line\u003e\u003cline x1=\"17\" y1=\"9\" x2=\"23\" y2=\"15\"\u003e\u003c\/line\u003e\n            \u003c\/svg\u003e \u003c\/button\u003e \u003cinput class=\"svp-vol\" type=\"range\" id=\"svp-vol\" min=\"0\" max=\"1\" step=\"0.05\" value=\"1\" aria-label=\"Volume\"\u003e\n\u003c\/div\u003e\n\u003cbutton class=\"svp-btn\" id=\"svp-fs\" aria-label=\"Plein écran\"\u003e \u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n            \u003cpolyline points=\"15 3 21 3 21 9\"\u003e\u003c\/polyline\u003e\u003cpolyline points=\"9 21 3 21 3 15\"\u003e\u003c\/polyline\u003e\n            \u003cline x1=\"21\" y1=\"3\" x2=\"14\" y2=\"10\"\u003e\u003c\/line\u003e\u003cline x1=\"3\" y1=\"21\" x2=\"10\" y2=\"14\"\u003e\u003c\/line\u003e\n          \u003c\/svg\u003e \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp\u003e\u003cscript\u003e\n(function(){\n  var SRC='https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/3d21f06974f54de09e89260dee8700d9.mp4';\n  var wrap=document.getElementById('svp-wrap'),\n      video=document.getElementById('svp-video'),\n      poster=document.getElementById('svp-poster'),\n      controls=document.getElementById('svp-controls'),\n      fill=document.getElementById('svp-fill'),\n      timeEl=document.getElementById('svp-time'),\n      loading=document.getElementById('svp-loading'),\n      prog=document.getElementById('svp-prog'),\n      canvas=document.getElementById('svp-canvas');\n  var ready=false, dragging=false;\n\n  \/* Capture miniature + détecte les dimensions réelles *\/\n  (function(){\n    var t=document.createElement('video');\n    t.crossOrigin='anonymous'; t.muted=true; t.playsInline=true; t.preload='metadata'; t.src=SRC;\n    t.addEventListener('loadedmetadata',function(){\n      if(t.videoWidth\u0026\u0026t.videoHeight) wrap.style.aspectRatio=t.videoWidth+'\/'+t.videoHeight;\n      t.currentTime=0.05;\n    });\n    t.addEventListener('seeked',function(){\n      try{\n        canvas.width=t.videoWidth||1280; canvas.height=t.videoHeight||720;\n        canvas.getContext('2d').drawImage(t,0,0,canvas.width,canvas.height);\n        canvas.style.display='block';\n      }catch(e){}\n      t.src='';\n    });\n  })();\n\n  \/* Clic sur le poster → charge et joue *\/\n  poster.addEventListener('click',function(){\n    if(ready)return; ready=true;\n    loading.style.display='flex';\n    video.src=SRC; video.load();\n    video.addEventListener('loadedmetadata',function(){\n      if(video.videoWidth\u0026\u0026video.videoHeight) wrap.style.aspectRatio=video.videoWidth+'\/'+video.videoHeight;\n    });\n    video.addEventListener('canplay',function onC(){\n      video.removeEventListener('canplay',onC);\n      loading.style.display='none';\n      poster.style.opacity='0'; video.style.opacity='1';\n      controls.style.display='flex';\n      setTimeout(function(){poster.style.display='none';},460);\n      video.play(); syncPP();\n    });\n    video.addEventListener('timeupdate',onTime);\n    video.addEventListener('ended',syncPP);\n    video.addEventListener('waiting',function(){loading.style.display='flex';});\n    video.addEventListener('playing',function(){loading.style.display='none';});\n    wrap.addEventListener('click',function(e){if(!e.target.closest('.svp-controls'))toggle();});\n  });\n\n  document.getElementById('svp-pp').addEventListener('click',toggle);\n  function toggle(){if(!ready)return; video.paused?video.play():video.pause(); syncPP();}\n  function syncPP(){\n    var p=video.paused||video.ended;\n    document.getElementById('svp-iplay').style.display=p?'':'none';\n    document.getElementById('svp-ipause').style.display=p?'none':'';\n  }\n  function onTime(){\n    if(dragging||!video.duration)return;\n    fill.style.width=(video.currentTime\/video.duration*100)+'%';\n    timeEl.textContent=fmt(video.currentTime)+' \/ '+fmt(video.duration);\n  }\n  prog.addEventListener('mousedown',function(e){dragging=true;seek(e);});\n  prog.addEventListener('touchstart',function(e){dragging=true;seek(e.touches[0]);},{passive:true});\n  document.addEventListener('mousemove',function(e){if(dragging)seek(e);});\n  document.addEventListener('touchmove',function(e){if(dragging)seek(e.touches[0]);},{passive:true});\n  document.addEventListener('mouseup',function(){dragging=false;});\n  document.addEventListener('touchend',function(){dragging=false;});\n  function seek(e){\n    var r=prog.getBoundingClientRect(),ratio=Math.min(1,Math.max(0,(e.clientX-r.left)\/r.width));\n    fill.style.width=(ratio*100)+'%'; video.currentTime=ratio*(video.duration||0);\n  }\n  document.getElementById('svp-vol').addEventListener('input',function(){\n    video.volume=+this.value; video.muted=+this.value===0; syncMute();\n  });\n  document.getElementById('svp-mute').addEventListener('click',function(){\n    video.muted=!video.muted;\n    if(!video.muted\u0026\u0026video.volume===0){video.volume=0.5;document.getElementById('svp-vol').value=0.5;}\n    syncMute();\n  });\n  function syncMute(){\n    var m=video.muted||video.volume===0;\n    document.getElementById('svp-von').style.display=m?'none':'';\n    document.getElementById('svp-voff').style.display=m?'':'none';\n  }\n  document.getElementById('svp-fs').addEventListener('click',function(){\n    if(document.fullscreenElement||document.webkitFullscreenElement){\n      (document.exitFullscreen||document.webkitExitFullscreen).call(document);\n    }else if(wrap.requestFullscreen)wrap.requestFullscreen();\n    else if(wrap.webkitRequestFullscreen)wrap.webkitRequestFullscreen();\n  });\n  function fmt(s){s=Math.floor(s||0);var m=Math.floor(s\/60),sec=s%60;return m+':'+(sec\u003c10?'0':'')+sec;}\n})();\n\u003c\/script\u003e‎ \u003c!--  --\u003e\u003c\/p\u003e","brand":"Sweet Home Déco \u0026 Famille","offers":[{"title":"Blanc","offer_id":45365718810668,"sku":null,"price":119.0,"currency_code":"TND","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0710\/5970\/1804\/files\/b_remplace_le_tapis_de_a181a8d4-2dac-49c2-b413-e7b141fce7e4.webp?v=1772942994","url":"https:\/\/sweethome-store.tn\/products\/tapis-anti-choc","provider":"Sweet Home Déco \u0026 Famille","version":"1.0","type":"link"}