{"title":"TDFSG","description":"","products":[{"product_id":"ttbici-x-tdfsg-womens-jersey-black","title":"เสื้อปั่นจักรยานผู้หญิง TTBICI X TDFSG \/ สีดำ","description":"เสื้อปั่นจักรยาน ttbici X TDFSG Jersey\r\n\u003cbr\u003e\u003cbr\u003e\r\nเสื้อปั่นจักรยานรุ่นพิเศษ ttbici X TDFSG พัฒนามาจากเสื้อซีรีส์ ttbici e Line โดยได้รับแรงบันดาลใจจากคอนเซปต์ “À l’attaque” ของ Tour de France Singapore 2025 ดีไซน์ผสานองค์ประกอบจาก 4 เสื้อผู้นำระดับตำนานของทัวร์ ได้แก่ เสื้อเหลือง เสื้อจุดโพลกาดอท เสื้อเขียว และเสื้อขาว ถ่ายทอดจิตวิญญาณแห่งการแข่งขันและความทรงเกียรติได้อย่างสมบูรณ์แบบ\r\n\u003cbr\u003e\u003cbr\u003e\r\nออกแบบมาเพื่อความสบายและความอเนกประสงค์ ทรงหลวมสบายสามารถเข้ากับสรีระที่หลากหลาย มอบประสบการณ์ขี่ที่เนี๊ยบแต่ไม่ยุ่งยาก เนื้อผ้าเบา ระบายอากาศดี ให้สัมผัสนุ่มพรีเมียม เหมาะกับการขี่ในสภาพอากาศร้อน คือความลงตัวระหว่างประสิทธิภาพและความสง่างามสำหรับนักปั่นทุกคน\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48087492690144,"sku":"B6TC-TD1-BK0XSW","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087492722912,"sku":"B6TC-TD1-BK00SW","price":2880.0,"currency_code":"TWD","in_stock":false},{"title":"M","offer_id":48087492755680,"sku":"B6TC-TD1-BK00MW","price":2880.0,"currency_code":"TWD","in_stock":false},{"title":"L","offer_id":48087492788448,"sku":"B6TC-TD1-BK00LW","price":2880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc_6985.jpg?v=1762227061"},{"product_id":"ttbici-x-tdfsg-mens-jersey-black","title":"ttbici x TDFSG Men's Jersey 男款TDFSG聯名車衣 \/ 黑色","description":"เสื้อปั่นจักรยาน ttbici X TDFSG Jersey\r\n\u003cbr\u003e\u003cbr\u003e\r\nเสื้อปั่นจักรยานรุ่นพิเศษ ttbici X TDFSG พัฒนามาจากเสื้อซีรีส์ ttbici e Line โดยได้รับแรงบันดาลใจจากคอนเซปต์ “À l’attaque” ของ Tour de France Singapore 2025 ดีไซน์ผสานองค์ประกอบจาก 4 เสื้อผู้นำระดับตำนานของทัวร์ ได้แก่ เสื้อเหลือง เสื้อจุดโพลกาดอท เสื้อเขียว และเสื้อขาว ถ่ายทอดจิตวิญญาณแห่งการแข่งขันและความทรงเกียรติได้อย่างสมบูรณ์แบบ\r\n\u003cbr\u003e\u003cbr\u003e\r\nออกแบบมาเพื่อความสบายและความอเนกประสงค์ ทรงหลวมสบายสามารถเข้ากับสรีระที่หลากหลาย มอบประสบการณ์ขี่ที่เนี๊ยบแต่ไม่ยุ่งยาก เนื้อผ้าเบา ระบายอากาศดี ให้สัมผัสนุ่มพรีเมียม เหมาะกับการขี่ในสภาพอากาศร้อน คือความลงตัวระหว่างประสิทธิภาพและความสง่างามสำหรับนักปั่นทุกคน\r\n\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\r\n        { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\r\n        { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\r\n        { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\r\n        { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\r\n        { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\r\n        { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\r\n        { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\r\n        { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\r\n        { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\r\n        { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48087663608032,"sku":"B6TC-TD1-BK0XSM","price":2880.0,"currency_code":"TWD","in_stock":false},{"title":"S","offer_id":48087663640800,"sku":"B6TC-TD1-BK00SM","price":2880.0,"currency_code":"TWD","in_stock":false},{"title":"M","offer_id":48087663673568,"sku":"B6TC-TD1-BK00MM","price":2880.0,"currency_code":"TWD","in_stock":false},{"title":"L","offer_id":48087663706336,"sku":"B6TC-TD1-BK00LM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48087663739104,"sku":"B6TC-TD1-BK0XLM","price":2880.0,"currency_code":"TWD","in_stock":false},{"title":"2XL","offer_id":48087663771872,"sku":"B6TC-TD1-BK2XLM","price":2880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men_jersey_black_1.jpg?v=1762228443"},{"product_id":"ttbici-x-tdfsg-yellow-t-shirt-yellow","title":"เสื้อยืดสีเหลือง TTBICI X TDFSG \/ สีเหลือง","description":"Where's my Pogi at? – เสื้อยืด ttbici X TDFSG Yellow T-Shirt\r\n\u003cbr\u003e\u003cbr\u003e\r\nเสื้อยืดสีเหลืองได้รับแรงบันดาลใจจากผู้ครองเสื้อเหลือง Tour de France 2025 โดยใช้ดีไซน์จากเสื้อผู้นำ GC1 แบบคลาสสิก สื่อถึงนักปั่นที่แข็งแกร่งที่สุดในเกม\r\n\u003cbr\u003e\u003cbr\u003e\r\nผสานฟังก์ชันและความสบายในชีวิตประจำวัน มาพร้อมเทคโนโลยี Polygiene® ช่วยยับยั้งการเจริญเติบโตของแบคทีเรีย ลดการเกิดกลิ่นไม่พึงประสงค์ตั้งแต่ต้นทาง มอบความสดชื่นยาวนาน\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n\t\tconst sizeData = {\r\n\t\t\tcm: [\r\n\t\t\t\t{ size: 'XS', width: '46', length: '63', sleeve: '37' },\r\n\t\t\t\t{ size: 'S', width: '49', length: '66', sleeve: '38' },\r\n\t\t\t\t{ size: 'M', width: '52', length: '69', sleeve: '39' },\r\n\t\t\t\t{ size: 'L', width: '55', length: '71', sleeve: '40' },\r\n\t\t\t\t{ size: 'XL', width: '58', length: '74', sleeve: '41' },\r\n\t\t\t\t{ size: '2XL', width: '60', length: '77', sleeve: '42' }\r\n\t\t\t],\r\n\t\t\tinches: [\r\n\t\t\t\t{ size: 'XS', width: '18', length: '25', sleeve: '14.5' },\r\n\t\t\t\t{ size: 'S', width: '19', length: '26', sleeve: '14.5' },\r\n\t\t\t\t{ size: 'M', width: '21', length: '27', sleeve: '15' },\r\n\t\t\t\t{ size: 'L', width: '22', length: '28', sleeve: '15.5' },\r\n\t\t\t\t{ size: 'XL', width: '23', length: '29', sleeve: '16' },\r\n\t\t\t\t{ size: '2XL', width: '24', length: '30', sleeve: '16.5' }\r\n\t\t\t]\r\n\t\t};\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48089797689568,"sku":"B6TC-TD2-YW0XSN","price":1480.0,"currency_code":"TWD","in_stock":false},{"title":"S","offer_id":48089797722336,"sku":"B6TC-TD2-YW00SN","price":1480.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48089797755104,"sku":"B6TC-TD2-YW00MN","price":1480.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48089797787872,"sku":"B6TC-TD2-YW00LN","price":1480.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48089797820640,"sku":"B6TC-TD2-YW0XLN","price":1480.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48089797853408,"sku":"B6TC-TD2-YW2XLN","price":1480.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc_8247.jpg?v=1762245233"},{"product_id":"ttbici-x-tdfsg-polka-dot-t-shirt-white","title":"เสื้อยืดลายจุด TTBICI X TDFSG \/ สีขาว","description":"We Almost Have Jonas!!! – เสื้อยืด ttbici X TDFSG Polka Dot T-Shirt\r\n\u003cbr\u003e\u003cbr\u003e\r\nเสื้อยืดลายจุดได้รับแรงบันดาลใจจากศึกชิงเสื้อจุดแดงของ Tour de France 2025 ออกแบบจากเสื้อ KOM แบบคลาสสิก แทนตัวตนของนักไต่เขาที่ดีที่สุดในเกม\r\n\u003cbr\u003e\u003cbr\u003e\r\nรวมความสบายในชีวิตประจำวันเข้ากับเทคโนโลยี Polygiene® ที่ช่วยยับยั้งแบคทีเรีย ลดกลิ่นเหม็นอับ เพื่อความสดชื่นยาวนานตลอดวัน\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n\t\tconst sizeData = {\r\n\t\t\tcm: [\r\n\t\t\t\t{ size: 'XS', width: '46', length: '63', sleeve: '37' },\r\n\t\t\t\t{ size: 'S', width: '49', length: '66', sleeve: '38' },\r\n\t\t\t\t{ size: 'M', width: '52', length: '69', sleeve: '39' },\r\n\t\t\t\t{ size: 'L', width: '55', length: '71', sleeve: '40' },\r\n\t\t\t\t{ size: 'XL', width: '58', length: '74', sleeve: '41' },\r\n\t\t\t\t{ size: '2XL', width: '60', length: '77', sleeve: '42' }\r\n\t\t\t],\r\n\t\t\tinches: [\r\n\t\t\t\t{ size: 'XS', width: '18', length: '25', sleeve: '14.5' },\r\n\t\t\t\t{ size: 'S', width: '19', length: '26', sleeve: '14.5' },\r\n\t\t\t\t{ size: 'M', width: '21', length: '27', sleeve: '15' },\r\n\t\t\t\t{ size: 'L', width: '22', length: '28', sleeve: '15.5' },\r\n\t\t\t\t{ size: 'XL', width: '23', length: '29', sleeve: '16' },\r\n\t\t\t\t{ size: '2XL', width: '24', length: '30', sleeve: '16.5' }\r\n\t\t\t]\r\n\t\t};\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48089798934752,"sku":"B6TC-TD3-WH0XSN","price":1480.0,"currency_code":"TWD","in_stock":false},{"title":"S","offer_id":48089798967520,"sku":"B6TC-TD3-WH00SN","price":1480.0,"currency_code":"TWD","in_stock":false},{"title":"M","offer_id":48089799000288,"sku":"B6TC-TD3-WH00MN","price":1480.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48089799033056,"sku":"B6TC-TD3-WH00LN","price":1480.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48089799065824,"sku":"B6TC-TD3-WH0XLN","price":1480.0,"currency_code":"TWD","in_stock":false},{"title":"2XL","offer_id":48089799098592,"sku":"B6TC-TD3-WH2XLN","price":1480.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc_7012.jpg?v=1762245243"},{"product_id":"ttbici-x-tdfsg-green-t-shirt-green","title":"เสื้อยืดสีเขียว TTBICI X TDFSG \/ สีเขียว","description":"Milan vs Philipsen – เสื้อยืด ttbici X TDFSG Green T-Shirt\r\n\u003cbr\u003e\u003cbr\u003e\r\nเสื้อยืดสีเขียวได้รับแรงบันดาลใจจากเหล่านักปั่นสปรินเตอร์ระดับโลก ออกแบบตามเสื้อเขียวของสปรินเตอร์แบบคลาสสิก เชียร์นักปั่นที่คุณรักไปด้วยกัน\r\n\u003cbr\u003e\u003cbr\u003e\r\nผสานความสบายในชีวิตประจำวันกับเทคโนโลยี Polygiene® ช่วยยับยั้งแบคทีเรียและลดกลิ่นไม่พึงประสงค์ เพื่อความสดชื่นยาวนาน\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n\t\tconst sizeData = {\r\n\t\t\tcm: [\r\n\t\t\t\t{ size: 'XS', width: '46', length: '63', sleeve: '37' },\r\n\t\t\t\t{ size: 'S', width: '49', length: '66', sleeve: '38' },\r\n\t\t\t\t{ size: 'M', width: '52', length: '69', sleeve: '39' },\r\n\t\t\t\t{ size: 'L', width: '55', length: '71', sleeve: '40' },\r\n\t\t\t\t{ size: 'XL', width: '58', length: '74', sleeve: '41' },\r\n\t\t\t\t{ size: '2XL', width: '60', length: '77', sleeve: '42' }\r\n\t\t\t],\r\n\t\t\tinches: [\r\n\t\t\t\t{ size: 'XS', width: '18', length: '25', sleeve: '14.5' },\r\n\t\t\t\t{ size: 'S', width: '19', length: '26', sleeve: '14.5' },\r\n\t\t\t\t{ size: 'M', width: '21', length: '27', sleeve: '15' },\r\n\t\t\t\t{ size: 'L', width: '22', length: '28', sleeve: '15.5' },\r\n\t\t\t\t{ size: 'XL', width: '23', length: '29', sleeve: '16' },\r\n\t\t\t\t{ size: '2XL', width: '24', length: '30', sleeve: '16.5' }\r\n\t\t\t]\r\n\t\t};\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48089799524576,"sku":"B6TC-TD4-GR0XSN","price":1480.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48089799557344,"sku":"B6TC-TD4-GR00SN","price":1480.0,"currency_code":"TWD","in_stock":false},{"title":"M","offer_id":48089799590112,"sku":"B6TC-TD4-GR00MN","price":1480.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48089799622880,"sku":"B6TC-TD4-GR00LN","price":1480.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48089799655648,"sku":"B6TC-TD4-GR0XLN","price":1480.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48089799688416,"sku":"B6TC-TD4-GR2XLN","price":1480.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/green_t_shirt_green_1_1.jpg?v=1762245251"},{"product_id":"cycling-cap-棉質車帽-黑色-副本","title":"หมวกปั่นจักรยาน TTBICI X TDFSG \/ สีดำ","description":"ttbici X TDFSG Cycling Cap – หมวกปั่นจักรยาน\r\n\u003cbr\u003e\u003cbr\u003e\r\nหมวกปั่นจักรยานรุ่นนี้ได้รับแรงบันดาลใจจากคอนเซปต์ “À l’attaque” ของ Tour de France Singapore 2025 ผสานองค์ประกอบจากเสื้อผู้นำทั้ง 4 สี—เหลือง จุดแดง เขียว และขาว ถ่ายทอดจิตวิญญาณการแข่งขันและความทรงเกียรติ\r\n\u003cbr\u003e\u003cbr\u003e\r\nออกแบบเพื่อให้สวมได้หลากหลายรูปทรงศีรษะ ใส่สบายและเข้ากับหมวกกันน็อกได้ดี ให้คุณดูดีและรู้สึกสบายทั้งก่อน ขณะ และหลังการปั่น","brand":"ttbici","offers":[{"title":"Default Title","offer_id":48134130991328,"sku":"B1TC-TD6-BK000N","price":580.0,"currency_code":"TWD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/cycling_cap_black_1_1.jpg?v=1763363736"},{"product_id":"ttbici-x-tdfsg-water-bottle-600ml-tdfsg聯名水壺-煙燻黑","title":"ขวดน้ำ TTBICI X TDFSG 600ML \/ สีควัน","description":"ttbici X TDFSG Cycling Water Bottle – ขวดน้ำปั่นจักรยาน\r\n\u003cbr\u003e\u003cbr\u003e\r\nขวดน้ำรุ่นนี้ได้รับแรงบันดาลใจจากคอนเซปต์ “À l’attaque” ของ Tour de France Singapore 2025 พร้อมดีไซน์ที่สื่อถึงเสื้อผู้นำทั้ง 4 สี—เหลือง จุดแดง เขียว และขาว ถ่ายทอดจิตวิญญาณแห่งการแข่งขัน\r\n\u003cbr\u003e\u003cbr\u003e\r\nใช้เทคโนโลยี POLYGIENE® ที่ผสานสารซิลเวอร์ซอลต์จากธรรมชาติ ช่วยยับยั้งการเติบโตของแบคทีเรียและป้องกันกลิ่น แม้ผ่านการล้างหลายครั้งก็ยังคงประสิทธิภาพ ยืดอายุการใช้งาน และมอบประสบการณ์ดื่มน้ำที่ปลอดภัยและถูกสุขลักษณะทุกครั้ง","brand":"ttbici","offers":[{"title":"Default Title","offer_id":48134193447136,"sku":"B1TC-TD7-CL600N","price":480.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/watter_bottle_600ml_smoke_1.jpg?v=1763364554"},{"product_id":"ttbici-x-tdfsg-white-kids-t-shirt-tdfsg聯名白衫兒童t恤-白色","title":"เสื้อยืดสำหรับเด็ก TTBICI X TDFSG \/ สีขาว","description":"See you on the road in TEN years =) – เสื้อยืดเด็ก ttbici X TDFSG White Kid's T-Shirt\r\n\u003cbr\u003e\u003cbr\u003e\r\nเสื้อยืดเด็กสีขาวได้รับแรงบันดาลใจจากเสื้อผู้ขี่รุ่นเยาว์ (Best Young Rider) ของ Tour de France ดีไซน์นี้เฉลิมฉลองพลังของดาวรุ่ง และจิตวิญญาณผู้กล้าของนักปั่นรุ่นใหม่ อนาคตอยู่ในมือคุณ—พร้อมหรือยัง?\r\n\u003cbr\u003e\u003cbr\u003e\r\nผสานความสบายในชีวิตประจำวันกับเทคโนโลยี Polygiene® เพื่อยับยั้งแบคทีเรียและกลิ่นไม่พึงประสงค์ ให้ความสดชื่นยาวนาน\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'S', width: '36', length: '45', sleeve: '30' },\r\n        { size: 'M', width: '40', length: '51', sleeve: '34' },\r\n        { size: 'L', width: '45', length: '59', sleeve: '38' }\r\n      ],\r\n      inches: [\r\n        { size: 'S', width: '14', length: '17.5', sleeve: '12' },\r\n        { size: 'M', width: '15.5', length: '20.5', sleeve: '13' },\r\n        { size: 'L', width: '17.5', length: '23.5', sleeve: '14.5' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"S","offer_id":48134243352800,"sku":"B6TC-TD5-WH00SN","price":1080.0,"currency_code":"TWD","in_stock":false},{"title":"M","offer_id":48134243385568,"sku":"B6TC-TD5-WH00MN","price":1080.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48134243418336,"sku":"B6TC-TD5-WH00LN","price":1080.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc_6991.jpg?v=1763365933"}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/collections\/banner-image09.jpg?v=1763454926","url":"https:\/\/www.ttbici.com\/th-th\/collections\/tdfsg.oembed","provider":"TTBICI","version":"1.0","type":"link"}