{"title":"Manga en chinois","description":"\u003cp\u003eÉditions officielles de mangas en chinois, y compris les éditions en chinois traditionnel publiées par des éditeurs taïwanais agréés.\u003c\/p\u003e","products":[{"product_id":"berserk-vol-1-43-six-book-set-manga-chinese-edition","title":"Berserk tomes 1-43 - Coffret de six livres - Manga en édition chinoise","description":"\u003cdiv class=\"otk-specs\" data-otk-specs\u003e\n \u003cdiv class=\"otk-specs__row\"\u003e\n \u003cbutton class=\"otk-specs__nav otk-specs__nav--prev\" type=\"button\" aria-label=\"Previous details\" hidden\u003e\n \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M15 5l-7 7 7 7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003c\/button\u003e\n \u003cdiv class=\"otk-specs__track\" data-otk-track\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eSérie\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M5 4h4v16H5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M11 4h4v16h-4z\"\u003e\u003c\/path\u003e\u003cpath d=\"M17.5 4.4l2.6 15.2\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eBerserk\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003eVol. 1 à 43\u003c\/span\u003e\n\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eAuteur\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 20l3.5-1 9.1-9.1a2 2 0 0 0 0-2.8l-.7-.7a2 2 0 0 0-2.8 0L4 15.5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M13.5 5.5l3 3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eKentaro Miura\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eLangue\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"9\"\u003e\u003c\/circle\u003e\u003cpath d=\"M3 12h18\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 3a15 15 0 0 1 0 18a15 15 0 0 1 0-18z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eChinois\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eFormat\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 5.5A1.5 1.5 0 0 1 5.5 4H18a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5.5A1.5 1.5 0 0 1 4 18.5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M8 4v16\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eSix livres\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eÉtat\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 2.5l7.5 3v6c0 4.6-3.1 8.4-7.5 10-4.4-1.6-7.5-5.4-7.5-10v-6z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value otk-spec__value--good\"\u003eNeuf\u003c\/div\u003e\n \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cbutton class=\"otk-specs__nav otk-specs__nav--next\" type=\"button\" aria-label=\"More details\" hidden\u003e\n \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M9 5l7 7-7 7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003c\/button\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-specs__dots\" data-otk-dots hidden\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n.otk-specs{\n  position:relative;\n  margin:0 0 28px;\n  padding:14px 0 10px;\n  border-top:1px solid #e5e7eb;\n  border-bottom:1px solid #e5e7eb;\n}\n.otk-specs__row{\n  display:flex;\n  align-items:center;\n}\n.otk-specs__dots{\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  gap:7px;\n  margin-top:12px;\n}\n.otk-specs__dots[hidden]{display:none}\n.otk-specs__dot{\n  width:7px;\n  height:7px;\n  padding:0;\n  border:0;\n  border-radius:50%;\n  background:#d1d5db;\n  cursor:pointer;\n  transition:background .2s ease,width .2s ease;\n}\n.otk-specs__dot:hover{background:#9ca3af}\n.otk-specs__dot[aria-current=\"true\"]{\n  width:20px;\n  border-radius:4px;\n  background:#111827;\n}\n.otk-specs__track{\n  display:flex;\n  gap:4px;\n  flex:1 1 auto;\n  overflow-x:auto;\n  scroll-behavior:smooth;\n  scroll-snap-type:x mandatory;\n  -webkit-overflow-scrolling:touch;\n  scrollbar-width:none;\n  -ms-overflow-style:none;\n}\n.otk-specs__track::-webkit-scrollbar{display:none}\n.otk-spec{\n  flex:0 0 auto;\n  width:142px;\n  scroll-snap-align:start;\n  display:flex;\n  flex-direction:column;\n  align-items:center;\n  gap:8px;\n  padding:4px 6px;\n  text-align:center;\n}\n.otk-spec__label{font-size:13px;line-height:1.2;color:#6b7280}\n.otk-spec__icon{width:30px;height:30px;color:#111827}\n.otk-spec__value{font-size:14px;font-weight:700;line-height:1.35;color:#111827}\n.otk-spec__value--good{color:#15803d}\n.otk-spec__sub{font-weight:400;font-size:12px;color:#6b7280}\n\n.otk-specs__nav{\n  flex:0 0 auto;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  width:34px;\n  height:34px;\n  margin:0 2px;\n  padding:0;\n  background:#fff;\n  border:1px solid #d1d5db;\n  border-radius:50%;\n  color:#374151;\n  cursor:pointer;\n  transition:background .15s ease,border-color .15s ease;\n}\n.otk-specs__nav:hover{background:#f9fafb;border-color:#9ca3af}\n.otk-specs__nav svg{width:18px;height:18px}\n.otk-specs__nav[hidden]{display:none}\n\n@media(max-width:600px){\n  .otk-specs{padding:12px 0 8px}\n  .otk-spec{width:112px}\n  .otk-spec__label{font-size:11px}\n  .otk-spec__icon{width:26px;height:26px}\n  .otk-spec__value{font-size:12px}\n  .otk-spec__sub{font-size:10px}\n  .otk-specs__nav{display:none}\n}\n\u003c\/style\u003e\n\u003cscript\u003e\n(function(){\n  function init(root){\n    if(root.dataset.otkReady) return;\n    root.dataset.otkReady = '1';\n\n    var track = root.querySelector('[data-otk-track]');\n    var prev  = root.querySelector('.otk-specs__nav--prev');\n    var next  = root.querySelector('.otk-specs__nav--next');\n    var dots  = root.querySelector('[data-otk-dots]');\n    if(!track || !prev || !next) return;\n\n    var built = false;\n\n    function maxScroll(){\n      return track.scrollWidth - track.clientWidth - 1;\n    }\n\n    function buildDots(){\n      if(!dots) return;\n      var scrollable = maxScroll() \u003e 0;\n      dots.hidden = !scrollable;\n      if(!scrollable){ dots.innerHTML = ''; built = false; return; }\n      if(built) return;\n      built = true;\n      dots.innerHTML = '';\n      for(var i=0;i\u003c2;i++){\n        (function(i){\n          var b = document.createElement('button');\n          b.type = 'button';\n          b.className = 'otk-specs__dot';\n          b.setAttribute('aria-label', i === 0 ? 'First details' : 'More details');\n          b.addEventListener('click', function(){\n            track.scrollLeft = i === 0 ? 0 : maxScroll() + 1;\n          });\n          dots.appendChild(b);\n        })(i);\n      }\n    }\n\n    function syncDots(){\n      if(!dots || dots.hidden || dots.children.length \u003c 2) return;\n      var i = track.scrollLeft \u003e maxScroll() \/ 2 ? 1 : 0;\n      dots.children[0].setAttribute('aria-current', i === 0 ? 'true' : 'false');\n      dots.children[1].setAttribute('aria-current', i === 1 ? 'true' : 'false');\n    }\n\n    function step(){\n      var cell = track.querySelector('.otk-spec');\n      var w = cell ? cell.getBoundingClientRect().width + 4 : 146;\n      return Math.max(w, Math.floor(track.clientWidth \/ w) * w);\n    }\n\n\n    function update(){\n      var max = track.scrollWidth - track.clientWidth - 1;\n      var scrollable = max \u003e 0;\n      prev.hidden = !scrollable || track.scrollLeft \u003c= 0;\n      next.hidden = !scrollable || track.scrollLeft \u003e= max;\n      syncDots();\n    }\n\n    prev.addEventListener('click', function(){ track.scrollLeft -= step(); });\n    next.addEventListener('click', function(){ track.scrollLeft += step(); });\n    track.addEventListener('scroll', update, {passive:true});\n    window.addEventListener('resize', function(){ buildDots(); update(); });\n    buildDots();\n    update();\n    setTimeout(function(){ buildDots(); update(); }, 400);\n  }\n\n  function boot(){\n    var all = document.querySelectorAll('[data-otk-specs]');\n    for(var i=0;i\u003call.length;i++) init(all[i]);\n  }\n\n  if(document.readyState === 'loading'){\n    document.addEventListener('DOMContentLoaded', boot);\n  } else {\n    boot();\n  }\n})();\n\u003c\/script\u003e\n\u003cp\u003e\u003cem\u003eBerserk\u003c\/em\u003e de Kentaro Miura, volumes 1 à 43, réunis en six livres. L’histoire va de la première apparition de Guts en tant que Guerrier noir jusqu’à l’Âge d’or, l’Éclipse et le long voyage qui suit - le récit tel que Miura l’a lui-même dessiné avant sa mort en 2021.\u003c\/p\u003e\n\u003ch3\u003eBon à savoir\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eLangue : chinois.\u003c\/strong\u003e Il ne s’agit pas d’une édition anglaise ou japonaise.\u003c\/li\u003e\n\u003cli\u003eSix livres contenant le contenu des volumes 1 à 43.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"OTAKUWA","offers":[{"title":"Titre","offer_id":57232971399508,"sku":"737594616613","price":59.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1075\/4510\/0628\/files\/O1CN01qJBjBA1SEWHtnh5KH__3250432215.webp?v=1790013294"},{"product_id":"jujutsu-kaisen-vol-30-final-volume-manga-traditional-chinese-edition","title":"Jujutsu Kaisen tome 30 - Dernier tome - Manga en édition chinoise traditionnelle","description":"\u003cdiv class=\"otk-specs\" data-otk-specs\u003e\n \u003cdiv class=\"otk-specs__row\"\u003e\n \u003cbutton class=\"otk-specs__nav otk-specs__nav--prev\" type=\"button\" aria-label=\"Previous details\" hidden\u003e\n \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M15 5l-7 7 7 7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003c\/button\u003e\n \u003cdiv class=\"otk-specs__track\" data-otk-track\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eSérie\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M5 4h4v16H5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M11 4h4v16h-4z\"\u003e\u003c\/path\u003e\u003cpath d=\"M17.5 4.4l2.6 15.2\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eJujutsu Kaisen\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003eVol. 30 · final\u003c\/span\u003e\n\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eAuteur\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 20l3.5-1 9.1-9.1a2 2 0 0 0 0-2.8l-.7-.7a2 2 0 0 0-2.8 0L4 15.5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M13.5 5.5l3 3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eGege Akutami\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eLangue\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"9\"\u003e\u003c\/circle\u003e\u003cpath d=\"M3 12h18\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 3a15 15 0 0 1 0 18a15 15 0 0 1 0-18z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eChinois traditionnel\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eÉditeur\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 21V5a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v16\"\u003e\u003c\/path\u003e\u003cpath d=\"M14 10h5a1 1 0 0 1 1 1v10\"\u003e\u003c\/path\u003e\u003cpath d=\"M2 21h20\"\u003e\u003c\/path\u003e\u003cpath d=\"M7 8h3M7 12h3M7 16h3M17 14h1M17 17h1\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eTong Li\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003eTaïwan\u003c\/span\u003e\n\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eFormat\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 5.5A1.5 1.5 0 0 1 5.5 4H18a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5.5A1.5 1.5 0 0 1 4 18.5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M8 4v16\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eLivre broché\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eÉgalement ici\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M7 3h10a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9.5 7.5h5M9.5 11h5M9.5 14.5h3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eFanbook, light\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003eromans, record de la saison 1\u003c\/span\u003e\n\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eÉtat\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 2.5l7.5 3v6c0 4.6-3.1 8.4-7.5 10-4.4-1.6-7.5-5.4-7.5-10v-6z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value otk-spec__value--good\"\u003eNouveau\u003c\/div\u003e\n \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cbutton class=\"otk-specs__nav otk-specs__nav--next\" type=\"button\" aria-label=\"More details\" hidden\u003e\n \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M9 5l7 7-7 7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003c\/button\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-specs__dots\" data-otk-dots hidden\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n.otk-specs{\n  position:relative;\n  margin:0 0 28px;\n  padding:14px 0 10px;\n  border-top:1px solid #e5e7eb;\n  border-bottom:1px solid #e5e7eb;\n}\n.otk-specs__row{\n  display:flex;\n  align-items:center;\n}\n.otk-specs__dots{\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  gap:7px;\n  margin-top:12px;\n}\n.otk-specs__dots[hidden]{display:none}\n.otk-specs__dot{\n  width:7px;\n  height:7px;\n  padding:0;\n  border:0;\n  border-radius:50%;\n  background:#d1d5db;\n  cursor:pointer;\n  transition:background .2s ease,width .2s ease;\n}\n.otk-specs__dot:hover{background:#9ca3af}\n.otk-specs__dot[aria-current=\"true\"]{\n  width:20px;\n  border-radius:4px;\n  background:#111827;\n}\n.otk-specs__track{\n  display:flex;\n  gap:4px;\n  flex:1 1 auto;\n  overflow-x:auto;\n  scroll-behavior:smooth;\n  scroll-snap-type:x mandatory;\n  -webkit-overflow-scrolling:touch;\n  scrollbar-width:none;\n  -ms-overflow-style:none;\n}\n.otk-specs__track::-webkit-scrollbar{display:none}\n.otk-spec{\n  flex:0 0 auto;\n  width:142px;\n  scroll-snap-align:start;\n  display:flex;\n  flex-direction:column;\n  align-items:center;\n  gap:8px;\n  padding:4px 6px;\n  text-align:center;\n}\n.otk-spec__label{font-size:13px;line-height:1.2;color:#6b7280}\n.otk-spec__icon{width:30px;height:30px;color:#111827}\n.otk-spec__value{font-size:14px;font-weight:700;line-height:1.35;color:#111827}\n.otk-spec__value--good{color:#15803d}\n.otk-spec__sub{font-weight:400;font-size:12px;color:#6b7280}\n\n.otk-specs__nav{\n  flex:0 0 auto;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  width:34px;\n  height:34px;\n  margin:0 2px;\n  padding:0;\n  background:#fff;\n  border:1px solid #d1d5db;\n  border-radius:50%;\n  color:#374151;\n  cursor:pointer;\n  transition:background .15s ease,border-color .15s ease;\n}\n.otk-specs__nav:hover{background:#f9fafb;border-color:#9ca3af}\n.otk-specs__nav svg{width:18px;height:18px}\n.otk-specs__nav[hidden]{display:none}\n\n@media(max-width:600px){\n  .otk-specs{padding:12px 0 8px}\n  .otk-spec{width:112px}\n  .otk-spec__label{font-size:11px}\n  .otk-spec__icon{width:26px;height:26px}\n  .otk-spec__value{font-size:12px}\n  .otk-spec__sub{font-size:10px}\n  .otk-specs__nav{display:none}\n}\n\u003c\/style\u003e\n\u003cscript\u003e\n(function(){\n  function init(root){\n    if(root.dataset.otkReady) return;\n    root.dataset.otkReady = '1';\n\n    var track = root.querySelector('[data-otk-track]');\n    var prev  = root.querySelector('.otk-specs__nav--prev');\n    var next  = root.querySelector('.otk-specs__nav--next');\n    var dots  = root.querySelector('[data-otk-dots]');\n    if(!track || !prev || !next) return;\n\n    var built = false;\n\n    function maxScroll(){\n      return track.scrollWidth - track.clientWidth - 1;\n    }\n\n    function buildDots(){\n      if(!dots) return;\n      var scrollable = maxScroll() \u003e 0;\n      dots.hidden = !scrollable;\n      if(!scrollable){ dots.innerHTML = ''; built = false; return; }\n      if(built) return;\n      built = true;\n      dots.innerHTML = '';\n      for(var i=0;i\u003c2;i++){\n        (function(i){\n          var b = document.createElement('button');\n          b.type = 'button';\n          b.className = 'otk-specs__dot';\n          b.setAttribute('aria-label', i === 0 ? 'First details' : 'More details');\n          b.addEventListener('click', function(){\n            track.scrollLeft = i === 0 ? 0 : maxScroll() + 1;\n          });\n          dots.appendChild(b);\n        })(i);\n      }\n    }\n\n    function syncDots(){\n      if(!dots || dots.hidden || dots.children.length \u003c 2) return;\n      var i = track.scrollLeft \u003e maxScroll() \/ 2 ? 1 : 0;\n      dots.children[0].setAttribute('aria-current', i === 0 ? 'true' : 'false');\n      dots.children[1].setAttribute('aria-current', i === 1 ? 'true' : 'false');\n    }\n\n    function step(){\n      var cell = track.querySelector('.otk-spec');\n      var w = cell ? cell.getBoundingClientRect().width + 4 : 146;\n      return Math.max(w, Math.floor(track.clientWidth \/ w) * w);\n    }\n\n\n    function update(){\n      var max = track.scrollWidth - track.clientWidth - 1;\n      var scrollable = max \u003e 0;\n      prev.hidden = !scrollable || track.scrollLeft \u003c= 0;\n      next.hidden = !scrollable || track.scrollLeft \u003e= max;\n      syncDots();\n    }\n\n    prev.addEventListener('click', function(){ track.scrollLeft -= step(); });\n    next.addEventListener('click', function(){ track.scrollLeft += step(); });\n    track.addEventListener('scroll', update, {passive:true});\n    window.addEventListener('resize', function(){ buildDots(); update(); });\n    buildDots();\n    update();\n    setTimeout(function(){ buildDots(); update(); }, 400);\n  }\n\n  function boot(){\n    var all = document.querySelectorAll('[data-otk-specs]');\n    for(var i=0;i\u003call.length;i++) init(all[i]);\n  }\n\n  if(document.readyState === 'loading'){\n    document.addEventListener('DOMContentLoaded', boot);\n  } else {\n    boot();\n  }\n})();\n\u003c\/script\u003e\n\u003cp\u003e\u003cstrong\u003eLe dernier volume.\u003c\/strong\u003e Le volume 30 clôt le \u003cem\u003eJujutsu Kaisen\u003c\/em\u003e de Gege Akutami - la fin de l'affrontement de Shinjuku et l'épilogue de la série - dans l'édition taïwanaise officielle publiée par Tong Li Publishing.\u003c\/p\u003e\n\u003cp\u003eChoisissez l'exemplaire en stock pour une expédition plus rapide, ou précommandez si le stock est épuisé. Les livres complémentaires de la franchise sont disponibles dans la même annonce : le fanbook officiel, les deux light novels avec leurs cartes bonus du premier tirage, ainsi que le TV Anime Season 1 Complete Record.\u003c\/p\u003e\n\u003ch3\u003eBon à savoir\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eLangue : chinois traditionnel\u003c\/strong\u003e pour chaque article. Il ne s'agit d'éditions anglaises ou japonaises pour aucun d'entre eux.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePrécommande\u003c\/strong\u003e expédiée dès que notre fournisseur sera réapprovisionné ; nous confirmerons la date par e-mail.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Tong Li Publishing","offers":[{"title":"Manga Vol. 30 (en stock)","offer_id":57234128142676,"sku":"5809711125117","price":16.99,"currency_code":"EUR","in_stock":true},{"title":"Manga Vol. 30 (précommande)","offer_id":57234128175444,"sku":"6235649922089","price":16.99,"currency_code":"EUR","in_stock":true},{"title":"Livre officiel pour les fans","offer_id":57234128208212,"sku":"6012270320127","price":12.99,"currency_code":"EUR","in_stock":true},{"title":"Light novel: Summer of Ashes, Autumn of Dust (carte bonus)","offer_id":57234128240980,"sku":"6012270320129","price":14.99,"currency_code":"EUR","in_stock":true},{"title":"Light novel : Thorny Road of Dawn (carte bonus)","offer_id":57234128273748,"sku":"6012270320130","price":14.99,"currency_code":"EUR","in_stock":true},{"title":"Dossier complet de la saison 1 de l’anime TV","offer_id":57234128306516,"sku":"6012270320128","price":29.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1075\/4510\/0628\/files\/O1CN01kVJEKe1TGBUfilfWJ__807832354.jpg?v=1790020368"},{"product_id":"jujutsu-kaisen-vol-25-manga-traditional-chinese-edition","title":"Jujutsu Kaisen tome 25 - Manga en édition chinoise traditionnelle","description":"\u003cdiv class=\"otk-specs\" data-otk-specs\u003e\n \u003cdiv class=\"otk-specs__row\"\u003e\n \u003cbutton class=\"otk-specs__nav otk-specs__nav--prev\" type=\"button\" aria-label=\"Previous details\" hidden\u003e\n \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M15 5l-7 7 7 7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003c\/button\u003e\n \u003cdiv class=\"otk-specs__track\" data-otk-track\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eSérie\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M5 4h4v16H5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M11 4h4v16h-4z\"\u003e\u003c\/path\u003e\u003cpath d=\"M17.5 4.4l2.6 15.2\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eJujutsu Kaisen\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003eVol. 25\u003c\/span\u003e\n\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eAuteur\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 20l3.5-1 9.1-9.1a2 2 0 0 0 0-2.8l-.7-.7a2 2 0 0 0-2.8 0L4 15.5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M13.5 5.5l3 3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eGege Akutami\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eLangue\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"9\"\u003e\u003c\/circle\u003e\u003cpath d=\"M3 12h18\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 3a15 15 0 0 1 0 18a15 15 0 0 1 0-18z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eChinois traditionnel\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eÉditeur\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 21V5a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v16\"\u003e\u003c\/path\u003e\u003cpath d=\"M14 10h5a1 1 0 0 1 1 1v10\"\u003e\u003c\/path\u003e\u003cpath d=\"M2 21h20\"\u003e\u003c\/path\u003e\u003cpath d=\"M7 8h3M7 12h3M7 16h3M17 14h1M17 17h1\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eTong Li\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003eTaïwan\u003c\/span\u003e\n\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eFormat\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 5.5A1.5 1.5 0 0 1 5.5 4H18a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5.5A1.5 1.5 0 0 1 4 18.5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M8 4v16\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eBroché\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eÉgalement ici\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M7 3h10a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9.5 7.5h5M9.5 11h5M9.5 14.5h3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eFanbook, roman léger\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003eromans, registre S1\u003c\/span\u003e\n\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eÉtat\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 2.5l7.5 3v6c0 4.6-3.1 8.4-7.5 10-4.4-1.6-7.5-5.4-7.5-10v-6z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value otk-spec__value--good\"\u003eNeuf\u003c\/div\u003e\n \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cbutton class=\"otk-specs__nav otk-specs__nav--next\" type=\"button\" aria-label=\"More details\" hidden\u003e\n \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M9 5l7 7-7 7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003c\/button\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-specs__dots\" data-otk-dots hidden\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n.otk-specs{\n  position:relative;\n  margin:0 0 28px;\n  padding:14px 0 10px;\n  border-top:1px solid #e5e7eb;\n  border-bottom:1px solid #e5e7eb;\n}\n.otk-specs__row{\n  display:flex;\n  align-items:center;\n}\n.otk-specs__dots{\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  gap:7px;\n  margin-top:12px;\n}\n.otk-specs__dots[hidden]{display:none}\n.otk-specs__dot{\n  width:7px;\n  height:7px;\n  padding:0;\n  border:0;\n  border-radius:50%;\n  background:#d1d5db;\n  cursor:pointer;\n  transition:background .2s ease,width .2s ease;\n}\n.otk-specs__dot:hover{background:#9ca3af}\n.otk-specs__dot[aria-current=\"true\"]{\n  width:20px;\n  border-radius:4px;\n  background:#111827;\n}\n.otk-specs__track{\n  display:flex;\n  gap:4px;\n  flex:1 1 auto;\n  overflow-x:auto;\n  scroll-behavior:smooth;\n  scroll-snap-type:x mandatory;\n  -webkit-overflow-scrolling:touch;\n  scrollbar-width:none;\n  -ms-overflow-style:none;\n}\n.otk-specs__track::-webkit-scrollbar{display:none}\n.otk-spec{\n  flex:0 0 auto;\n  width:142px;\n  scroll-snap-align:start;\n  display:flex;\n  flex-direction:column;\n  align-items:center;\n  gap:8px;\n  padding:4px 6px;\n  text-align:center;\n}\n.otk-spec__label{font-size:13px;line-height:1.2;color:#6b7280}\n.otk-spec__icon{width:30px;height:30px;color:#111827}\n.otk-spec__value{font-size:14px;font-weight:700;line-height:1.35;color:#111827}\n.otk-spec__value--good{color:#15803d}\n.otk-spec__sub{font-weight:400;font-size:12px;color:#6b7280}\n\n.otk-specs__nav{\n  flex:0 0 auto;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  width:34px;\n  height:34px;\n  margin:0 2px;\n  padding:0;\n  background:#fff;\n  border:1px solid #d1d5db;\n  border-radius:50%;\n  color:#374151;\n  cursor:pointer;\n  transition:background .15s ease,border-color .15s ease;\n}\n.otk-specs__nav:hover{background:#f9fafb;border-color:#9ca3af}\n.otk-specs__nav svg{width:18px;height:18px}\n.otk-specs__nav[hidden]{display:none}\n\n@media(max-width:600px){\n  .otk-specs{padding:12px 0 8px}\n  .otk-spec{width:112px}\n  .otk-spec__label{font-size:11px}\n  .otk-spec__icon{width:26px;height:26px}\n  .otk-spec__value{font-size:12px}\n  .otk-spec__sub{font-size:10px}\n  .otk-specs__nav{display:none}\n}\n\u003c\/style\u003e\n\u003cscript\u003e\n(function(){\n  function init(root){\n    if(root.dataset.otkReady) return;\n    root.dataset.otkReady = '1';\n\n    var track = root.querySelector('[data-otk-track]');\n    var prev  = root.querySelector('.otk-specs__nav--prev');\n    var next  = root.querySelector('.otk-specs__nav--next');\n    var dots  = root.querySelector('[data-otk-dots]');\n    if(!track || !prev || !next) return;\n\n    var built = false;\n\n    function maxScroll(){\n      return track.scrollWidth - track.clientWidth - 1;\n    }\n\n    function buildDots(){\n      if(!dots) return;\n      var scrollable = maxScroll() \u003e 0;\n      dots.hidden = !scrollable;\n      if(!scrollable){ dots.innerHTML = ''; built = false; return; }\n      if(built) return;\n      built = true;\n      dots.innerHTML = '';\n      for(var i=0;i\u003c2;i++){\n        (function(i){\n          var b = document.createElement('button');\n          b.type = 'button';\n          b.className = 'otk-specs__dot';\n          b.setAttribute('aria-label', i === 0 ? 'First details' : 'More details');\n          b.addEventListener('click', function(){\n            track.scrollLeft = i === 0 ? 0 : maxScroll() + 1;\n          });\n          dots.appendChild(b);\n        })(i);\n      }\n    }\n\n    function syncDots(){\n      if(!dots || dots.hidden || dots.children.length \u003c 2) return;\n      var i = track.scrollLeft \u003e maxScroll() \/ 2 ? 1 : 0;\n      dots.children[0].setAttribute('aria-current', i === 0 ? 'true' : 'false');\n      dots.children[1].setAttribute('aria-current', i === 1 ? 'true' : 'false');\n    }\n\n    function step(){\n      var cell = track.querySelector('.otk-spec');\n      var w = cell ? cell.getBoundingClientRect().width + 4 : 146;\n      return Math.max(w, Math.floor(track.clientWidth \/ w) * w);\n    }\n\n\n    function update(){\n      var max = track.scrollWidth - track.clientWidth - 1;\n      var scrollable = max \u003e 0;\n      prev.hidden = !scrollable || track.scrollLeft \u003c= 0;\n      next.hidden = !scrollable || track.scrollLeft \u003e= max;\n      syncDots();\n    }\n\n    prev.addEventListener('click', function(){ track.scrollLeft -= step(); });\n    next.addEventListener('click', function(){ track.scrollLeft += step(); });\n    track.addEventListener('scroll', update, {passive:true});\n    window.addEventListener('resize', function(){ buildDots(); update(); });\n    buildDots();\n    update();\n    setTimeout(function(){ buildDots(); update(); }, 400);\n  }\n\n  function boot(){\n    var all = document.querySelectorAll('[data-otk-specs]');\n    for(var i=0;i\u003call.length;i++) init(all[i]);\n  }\n\n  if(document.readyState === 'loading'){\n    document.addEventListener('DOMContentLoaded', boot);\n  } else {\n    boot();\n  }\n})();\n\u003c\/script\u003e\n\u003cp\u003eLe volume 25 de \u003cem\u003eJujutsu Kaisen\u003c\/em\u003e dans l'édition taïwanaise officielle de Tong Li Publishing — l'affrontement de Shinjuku, Gojo contre Sukuna.\u003c\/p\u003e\n\u003cp\u003eCette même annonce propose également les éditions en chinois traditionnel des livres complémentaires de la franchise, afin que vous puissiez les commander ensemble :\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eFanbook officiel\u003c\/strong\u003e — profils des personnages et commentaires du créateur\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRoman léger : Été des cendres, automne de poussière\u003c\/strong\u003e — avec carte bonus du premier tirage\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRoman léger : La Route épineuse de l'aube\u003c\/strong\u003e — avec carte bonus du premier tirage\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRegistre complet de la saison 1 de l'anime télévisé\u003c\/strong\u003e — le registre officiel de l'anime\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eBon à savoir\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eLangue : chinois traditionnel\u003c\/strong\u003e pour chaque article de cette annonce. Aucun exemplaire n'est en anglais ou en japonais.\u003c\/li\u003e\n\u003cli\u003eLes cartes bonus sont incluses jusqu'à épuisement des exemplaires du premier tirage.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Tong Li Publishing","offers":[{"title":"Manga Vol. 25","offer_id":57234131026260,"sku":"6012248596200","price":14.99,"currency_code":"EUR","in_stock":true},{"title":"Manga Vol. 25 + affiche du fanbook","offer_id":57234131059028,"sku":"6012248596201","price":19.99,"currency_code":"EUR","in_stock":true},{"title":"Livre officiel pour les fans","offer_id":57234131091796,"sku":"6012270300813","price":12.99,"currency_code":"EUR","in_stock":true},{"title":"Light novel: Summer of Ashes, Autumn of Dust (carte bonus)","offer_id":57234131124564,"sku":"6012270300816","price":14.99,"currency_code":"EUR","in_stock":true},{"title":"Light novel : Thorny Road of Dawn (carte bonus)","offer_id":57234131157332,"sku":"6012270300817","price":14.99,"currency_code":"EUR","in_stock":true},{"title":"Dossier complet de la saison 1 de l’anime TV","offer_id":57234131190100,"sku":"6012270300815","price":29.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1075\/4510\/0628\/files\/O1CN010lmwfe1TGBKUCV4IB__807832354.jpg?v=1790020433"},{"product_id":"jujutsu-kaisen-vol-29-first-print-limited-edition-manga-traditional-chinese","title":"Jujutsu Kaisen tome 29 - Édition limitée du premier tirage - Manga en chinois traditionnel","description":"\u003cdiv class=\"otk-specs\" data-otk-specs\u003e\n \u003cdiv class=\"otk-specs__row\"\u003e\n \u003cbutton class=\"otk-specs__nav otk-specs__nav--prev\" type=\"button\" aria-label=\"Previous details\" hidden\u003e\n \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M15 5l-7 7 7 7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003c\/button\u003e\n \u003cdiv class=\"otk-specs__track\" data-otk-track\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eSérie\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M5 4h4v16H5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M11 4h4v16h-4z\"\u003e\u003c\/path\u003e\u003cpath d=\"M17.5 4.4l2.6 15.2\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eJujutsu Kaisen\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003eTome 29\u003c\/span\u003e\n\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eÉdition\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 2.5l7.5 3v6c0 4.6-3.1 8.4-7.5 10-4.4-1.6-7.5-5.4-7.5-10v-6z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003ePremier tirage\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003eédition limitée\u003c\/span\u003e\n\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eAuteur\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 20l3.5-1 9.1-9.1a2 2 0 0 0 0-2.8l-.7-.7a2 2 0 0 0-2.8 0L4 15.5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M13.5 5.5l3 3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eGege Akutami\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eLangue\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"9\"\u003e\u003c\/circle\u003e\u003cpath d=\"M3 12h18\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 3a15 15 0 0 1 0 18a15 15 0 0 1 0-18z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eChinois traditionnel\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eÉditeur\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 21V5a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v16\"\u003e\u003c\/path\u003e\u003cpath d=\"M14 10h5a1 1 0 0 1 1 1v10\"\u003e\u003c\/path\u003e\u003cpath d=\"M2 21h20\"\u003e\u003c\/path\u003e\u003cpath d=\"M7 8h3M7 12h3M7 16h3M17 14h1M17 17h1\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eTong Li\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003eTaïwan\u003c\/span\u003e\n\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eFormat\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 5.5A1.5 1.5 0 0 1 5.5 4H18a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5.5A1.5 1.5 0 0 1 4 18.5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M8 4v16\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value\"\u003eBroché\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-spec\"\u003e\n \u003cdiv class=\"otk-spec__label\"\u003eÉtat\u003c\/div\u003e\n \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 2.5l7.5 3v6c0 4.6-3.1 8.4-7.5 10-4.4-1.6-7.5-5.4-7.5-10v-6z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003cdiv class=\"otk-spec__value otk-spec__value--good\"\u003eNouveau\u003c\/div\u003e\n \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cbutton class=\"otk-specs__nav otk-specs__nav--next\" type=\"button\" aria-label=\"More details\" hidden\u003e\n \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M9 5l7 7-7 7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003c\/button\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"otk-specs__dots\" data-otk-dots hidden\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n.otk-specs{\n  position:relative;\n  margin:0 0 28px;\n  padding:14px 0 10px;\n  border-top:1px solid #e5e7eb;\n  border-bottom:1px solid #e5e7eb;\n}\n.otk-specs__row{\n  display:flex;\n  align-items:center;\n}\n.otk-specs__dots{\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  gap:7px;\n  margin-top:12px;\n}\n.otk-specs__dots[hidden]{display:none}\n.otk-specs__dot{\n  width:7px;\n  height:7px;\n  padding:0;\n  border:0;\n  border-radius:50%;\n  background:#d1d5db;\n  cursor:pointer;\n  transition:background .2s ease,width .2s ease;\n}\n.otk-specs__dot:hover{background:#9ca3af}\n.otk-specs__dot[aria-current=\"true\"]{\n  width:20px;\n  border-radius:4px;\n  background:#111827;\n}\n.otk-specs__track{\n  display:flex;\n  gap:4px;\n  flex:1 1 auto;\n  overflow-x:auto;\n  scroll-behavior:smooth;\n  scroll-snap-type:x mandatory;\n  -webkit-overflow-scrolling:touch;\n  scrollbar-width:none;\n  -ms-overflow-style:none;\n}\n.otk-specs__track::-webkit-scrollbar{display:none}\n.otk-spec{\n  flex:0 0 auto;\n  width:142px;\n  scroll-snap-align:start;\n  display:flex;\n  flex-direction:column;\n  align-items:center;\n  gap:8px;\n  padding:4px 6px;\n  text-align:center;\n}\n.otk-spec__label{font-size:13px;line-height:1.2;color:#6b7280}\n.otk-spec__icon{width:30px;height:30px;color:#111827}\n.otk-spec__value{font-size:14px;font-weight:700;line-height:1.35;color:#111827}\n.otk-spec__value--good{color:#15803d}\n.otk-spec__sub{font-weight:400;font-size:12px;color:#6b7280}\n\n.otk-specs__nav{\n  flex:0 0 auto;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  width:34px;\n  height:34px;\n  margin:0 2px;\n  padding:0;\n  background:#fff;\n  border:1px solid #d1d5db;\n  border-radius:50%;\n  color:#374151;\n  cursor:pointer;\n  transition:background .15s ease,border-color .15s ease;\n}\n.otk-specs__nav:hover{background:#f9fafb;border-color:#9ca3af}\n.otk-specs__nav svg{width:18px;height:18px}\n.otk-specs__nav[hidden]{display:none}\n\n@media(max-width:600px){\n  .otk-specs{padding:12px 0 8px}\n  .otk-spec{width:112px}\n  .otk-spec__label{font-size:11px}\n  .otk-spec__icon{width:26px;height:26px}\n  .otk-spec__value{font-size:12px}\n  .otk-spec__sub{font-size:10px}\n  .otk-specs__nav{display:none}\n}\n\u003c\/style\u003e\n\u003cscript\u003e\n(function(){\n  function init(root){\n    if(root.dataset.otkReady) return;\n    root.dataset.otkReady = '1';\n\n    var track = root.querySelector('[data-otk-track]');\n    var prev  = root.querySelector('.otk-specs__nav--prev');\n    var next  = root.querySelector('.otk-specs__nav--next');\n    var dots  = root.querySelector('[data-otk-dots]');\n    if(!track || !prev || !next) return;\n\n    var built = false;\n\n    function maxScroll(){\n      return track.scrollWidth - track.clientWidth - 1;\n    }\n\n    function buildDots(){\n      if(!dots) return;\n      var scrollable = maxScroll() \u003e 0;\n      dots.hidden = !scrollable;\n      if(!scrollable){ dots.innerHTML = ''; built = false; return; }\n      if(built) return;\n      built = true;\n      dots.innerHTML = '';\n      for(var i=0;i\u003c2;i++){\n        (function(i){\n          var b = document.createElement('button');\n          b.type = 'button';\n          b.className = 'otk-specs__dot';\n          b.setAttribute('aria-label', i === 0 ? 'First details' : 'More details');\n          b.addEventListener('click', function(){\n            track.scrollLeft = i === 0 ? 0 : maxScroll() + 1;\n          });\n          dots.appendChild(b);\n        })(i);\n      }\n    }\n\n    function syncDots(){\n      if(!dots || dots.hidden || dots.children.length \u003c 2) return;\n      var i = track.scrollLeft \u003e maxScroll() \/ 2 ? 1 : 0;\n      dots.children[0].setAttribute('aria-current', i === 0 ? 'true' : 'false');\n      dots.children[1].setAttribute('aria-current', i === 1 ? 'true' : 'false');\n    }\n\n    function step(){\n      var cell = track.querySelector('.otk-spec');\n      var w = cell ? cell.getBoundingClientRect().width + 4 : 146;\n      return Math.max(w, Math.floor(track.clientWidth \/ w) * w);\n    }\n\n\n    function update(){\n      var max = track.scrollWidth - track.clientWidth - 1;\n      var scrollable = max \u003e 0;\n      prev.hidden = !scrollable || track.scrollLeft \u003c= 0;\n      next.hidden = !scrollable || track.scrollLeft \u003e= max;\n      syncDots();\n    }\n\n    prev.addEventListener('click', function(){ track.scrollLeft -= step(); });\n    next.addEventListener('click', function(){ track.scrollLeft += step(); });\n    track.addEventListener('scroll', update, {passive:true});\n    window.addEventListener('resize', function(){ buildDots(); update(); });\n    buildDots();\n    update();\n    setTimeout(function(){ buildDots(); update(); }, 400);\n  }\n\n  function boot(){\n    var all = document.querySelectorAll('[data-otk-specs]');\n    for(var i=0;i\u003call.length;i++) init(all[i]);\n  }\n\n  if(document.readyState === 'loading'){\n    document.addEventListener('DOMContentLoaded', boot);\n  } else {\n    boot();\n  }\n})();\n\u003c\/script\u003e\n\u003cp\u003eLe tome 29 de \u003cem\u003eJujutsu Kaisen\u003c\/em\u003e de Gege Akutami, dans l'édition taïwanaise officielle publiée par Tong Li Publishing, l'éditeur détenteur de la licence de la série à Taïwan. Il s'agit de l'\u003cstrong\u003eédition limitée du premier tirage\u003c\/strong\u003e, le tirage initial sorti avec le volume.\u003c\/p\u003e\n\u003cp\u003eLe tome 29 se situe dans la dernière ligne droite de l'affrontement de Shinjuku, un tome avant la fin de la série.\u003c\/p\u003e\n\u003ch3\u003eBon à savoir\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eLangue : chinois traditionnel.\u003c\/strong\u003e Il ne s'agit pas d'une édition anglaise ou japonaise.\u003c\/li\u003e\n\u003cli\u003eLisez de droite à gauche, comme dans l'édition japonaise originale.\u003c\/li\u003e\n\u003cli\u003eVous cherchez la fin ? Le \u003ca href=\"\/fr\/collections\/jujutsu-kaisen\"\u003etome 30, dernier tome\u003c\/a\u003e, est également disponible.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Tong Li Publishing","offers":[{"title":"Titre","offer_id":57234135548244,"sku":"887877644210","price":16.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1075\/4510\/0628\/files\/O1CN01xdp6tD1TGBUERU8ZO__4611686018427382562-0-item_pic.webp?v=1790020562"}],"url":"https:\/\/www.otakuwa.com\/fr\/collections\/manga-in-chinese.oembed","provider":"OTAKUWA","version":"1.0","type":"link"}