{"title":"男款服飾","description":"","products":[{"product_id":"ttbici-a-line-lightweight-jacket-black","title":"เสื้อแจ็คเก็ตบางเบา รุ่น A LINE สีดำ","description":"ttbici a Line Lightweight Jacket\r\n\u003cbr\u003e\u003cbr\u003e\r\n\r\nเสื้อแจ็คเก็ตรุ่น A Line Lightweight Jacket ผสานวัสดุน้ำหนักเบาพิเศษเข้ากับคุณสมบัติกันลมอย่างยอดเยี่ยม เคลือบสาร DWR\r\nCoating เพื่อช่วยป้องกันละอองน้ำและความชื้น มอบการปกป้องที่เชื่อถือได้ในสภาพอากาศที่ไม่แน่นอน\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":48067794731232,"sku":"B6TC-A06-BK0XSN","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48067794764000,"sku":"B6TC-A06-BK00SN","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48067794796768,"sku":"B6TC-A06-BK00MN","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48067794829536,"sku":"B6TC-A06-BK00LN","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48067794862304,"sku":"B6TC-A06-BK0XLN","price":3880.0,"currency_code":"TWD","in_stock":false},{"title":"2XL","offer_id":48067794895072,"sku":"B6TC-A06-BK2XLN","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05803_1.jpg?v=1761635446"},{"product_id":"ttbici-a-line-lightweight-jacket-grey","title":"เสื้อแจ็คเก็ตบางเบา รุ่น A LINE สีเทา","description":"ttbici a Line Lightweight Jacket\r\n\u003cbr\u003e\u003cbr\u003e\r\n\r\nเสื้อแจ็คเก็ตรุ่น A Line Lightweight Jacket ผสานวัสดุน้ำหนักเบาพิเศษเข้ากับคุณสมบัติกันลมอย่างยอดเยี่ยม เคลือบสาร DWR\r\nCoating เพื่อช่วยป้องกันละอองน้ำและความชื้น มอบการปกป้องที่เชื่อถือได้ในสภาพอากาศที่ไม่แน่นอน\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":48067794993376,"sku":"B6TC-A06-GY0XSN","price":3880.0,"currency_code":"TWD","in_stock":false},{"title":"S","offer_id":48067795026144,"sku":"B6TC-A06-GY00SN","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48067795058912,"sku":"B6TC-A06-GY00MN","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48067795091680,"sku":"B6TC-A06-GY00LN","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48067795124448,"sku":"B6TC-A06-GY0XLN","price":3880.0,"currency_code":"TWD","in_stock":false},{"title":"2XL","offer_id":48067795157216,"sku":"B6TC-A06-GY2XLN","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05804_1.jpg?v=1761635455"},{"product_id":"ttbici-u-line-tech-t-shirt-black","title":"TTBICI U LINE TECH T-SHIRT เสื้อยืดเทค \/ สีดำ","description":"Ttbici U Line เสื้อยืดฟังก์ชัน ออกแบบมาเพื่อการปั่นจักรยานในเมืองโดยเฉพาะ ผ้าด่วนแห้งและดูดซับเหงื่อ มอบทั้งฟังก์ชันการใช้งานและความสบายสำหรับใส่ในชีวิตประจำวัน พร้อมตะเข็บสะท้อนแสงพิเศษ ช่วยเพิ่มความปลอดภัยขณะปั่นกลางคืน\r\n\u003cbr\u003e\u003cbr\u003e\r\nเนื้อผ้าเสริมเทคโนโลยี Polygiene® ช่วยยับยั้งการเจริญเติบโตของแบคทีเรีย ควบคุมกลิ่นไม่พึงประสงค์ตั้งแต่ต้นทาง ลดความยุ่งยากจากการต้องเปลี่ยนเสื้อบ่อยๆ\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":48073386295520,"sku":"B6TC-U01-BK0XSN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48073386328288,"sku":"B6TC-U01-BK00SN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48073386361056,"sku":"B6TC-U01-BK00MN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48073386393824,"sku":"B6TC-U01-BK00LN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48073386426592,"sku":"B6TC-U01-BK0XLN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48073386459360,"sku":"B6TC-U01-BK2XLN","price":1980.0,"currency_code":"TWD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05559_1.jpg?v=1761813182"},{"product_id":"ttbici-u-line-tech-t-shirt-bleached-sand","title":"TTBICI U LINE TECH T-SHIRT เสื้อยืดเทค \/ สีขาวทราย","description":"Ttbici U Line เสื้อยืดฟังก์ชัน ออกแบบมาเพื่อการปั่นจักรยานในเมืองโดยเฉพาะ ผ้าด่วนแห้งและดูดซับเหงื่อ มอบทั้งฟังก์ชันการใช้งานและความสบายสำหรับใส่ในชีวิตประจำวัน พร้อมตะเข็บสะท้อนแสงพิเศษ ช่วยเพิ่มความปลอดภัยขณะปั่นกลางคืน\r\n\u003cbr\u003e\u003cbr\u003e\r\nเนื้อผ้าเสริมเทคโนโลยี Polygiene® ช่วยยับยั้งการเจริญเติบโตของแบคทีเรีย ควบคุมกลิ่นไม่พึงประสงค์ตั้งแต่ต้นทาง ลดความยุ่งยากจากการต้องเปลี่ยนเสื้อบ่อยๆ\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":48073386590432,"sku":"B6TC-U01-SD0XSN","price":1980.0,"currency_code":"TWD","in_stock":false},{"title":"S","offer_id":48073386623200,"sku":"B6TC-U01-SD00SN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48073386655968,"sku":"B6TC-U01-SD00MN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48073386688736,"sku":"B6TC-U01-SD00LN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48073386721504,"sku":"B6TC-U01-SD0XLN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48073386754272,"sku":"B6TC-U01-SD2XLN","price":1980.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05552_1.jpg?v=1761813190"},{"product_id":"ttbici-u-line-tech-t-shirt-rum-brown","title":"TTBICI U LINE TECH T-SHIRT เสื้อยืดเทค \/ สีน้ำตาลรัม","description":"Ttbici U Line เสื้อยืดฟังก์ชัน ออกแบบมาเพื่อการปั่นจักรยานในเมืองโดยเฉพาะ ผ้าด่วนแห้งและดูดซับเหงื่อ มอบทั้งฟังก์ชันการใช้งานและความสบายสำหรับใส่ในชีวิตประจำวัน พร้อมตะเข็บสะท้อนแสงพิเศษ ช่วยเพิ่มความปลอดภัยขณะปั่นกลางคืน\r\n\u003cbr\u003e\u003cbr\u003e\r\nเนื้อผ้าเสริมเทคโนโลยี Polygiene® ช่วยยับยั้งการเจริญเติบโตของแบคทีเรีย ควบคุมกลิ่นไม่พึงประสงค์ตั้งแต่ต้นทาง ลดความยุ่งยากจากการต้องเปลี่ยนเสื้อบ่อยๆ\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":48073386918112,"sku":"B6TC-U01-BR0XSM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48073386950880,"sku":"B6TC-U01-BR00SM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48073386983648,"sku":"B6TC-U01-BR00MM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48073387016416,"sku":"B6TC-U01-BR00LM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48073387049184,"sku":"B6TC-U01-BR0XLM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48073387081952,"sku":"B6TC-U01-BR2XLM","price":1980.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05554-dark_red_1.jpg?v=1761813199"},{"product_id":"ttbici-u-line-tech-t-shirt-forest-green","title":"TTBICI U LINE TECH T-SHIRT เสื้อยืดเทค \/ สีเขียวป่า","description":"Ttbici U Line เสื้อยืดฟังก์ชัน ออกแบบมาเพื่อการปั่นจักรยานในเมืองโดยเฉพาะ ผ้าด่วนแห้งและดูดซับเหงื่อ มอบทั้งฟังก์ชันการใช้งานและความสบายสำหรับใส่ในชีวิตประจำวัน พร้อมตะเข็บสะท้อนแสงพิเศษ ช่วยเพิ่มความปลอดภัยขณะปั่นกลางคืน\r\n\u003cbr\u003e\u003cbr\u003e\r\nเนื้อผ้าเสริมเทคโนโลยี Polygiene® ช่วยยับยั้งการเจริญเติบโตของแบคทีเรีย ควบคุมกลิ่นไม่พึงประสงค์ตั้งแต่ต้นทาง ลดความยุ่งยากจากการต้องเปลี่ยนเสื้อบ่อยๆ\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":48073387180256,"sku":"B6TC-U01-GR0XSM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48073387213024,"sku":"B6TC-U01-GR00SM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48073387245792,"sku":"B6TC-U01-GR00MM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48073387278560,"sku":"B6TC-U01-GR00LM","price":1980.0,"currency_code":"TWD","in_stock":false},{"title":"XL","offer_id":48073387311328,"sku":"B6TC-U01-GR0XLM","price":1980.0,"currency_code":"TWD","in_stock":false},{"title":"2XL","offer_id":48073387344096,"sku":"B6TC-U01-GR2XLM","price":1980.0,"currency_code":"TWD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05554-dark_green_1.jpg?v=1761813207"},{"product_id":"ttbici-u-line-tech-t-shirt-granite-grey","title":"TTBICI U LINE TECH T-SHIRT เสื้อยืดเทค \/ สีเทาแกรนิต","description":"Ttbici U Line เสื้อยืดฟังก์ชัน ออกแบบมาเพื่อการปั่นจักรยานในเมืองโดยเฉพาะ ผ้าด่วนแห้งและดูดซับเหงื่อ มอบทั้งฟังก์ชันการใช้งานและความสบายสำหรับใส่ในชีวิตประจำวัน พร้อมตะเข็บสะท้อนแสงพิเศษ ช่วยเพิ่มความปลอดภัยขณะปั่นกลางคืน\r\n\u003cbr\u003e\u003cbr\u003e\r\nเนื้อผ้าเสริมเทคโนโลยี Polygiene® ช่วยยับยั้งการเจริญเติบโตของแบคทีเรีย ควบคุมกลิ่นไม่พึงประสงค์ตั้งแต่ต้นทาง ลดความยุ่งยากจากการต้องเปลี่ยนเสื้อบ่อยๆ\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":48073398026464,"sku":"B6TC-U01-GY0XSN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48073398059232,"sku":"B6TC-U01-GY00SN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48073398092000,"sku":"B6TC-U01-GY00MN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48073398124768,"sku":"B6TC-U01-GY00LN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48073398157536,"sku":"B6TC-U01-GY0XLN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48073398190304,"sku":"B6TC-U01-GY2XLN","price":1980.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05548_5.jpg?v=1761813775"},{"product_id":"ttbici-a-line-lightweight-gilet-black","title":"เสื้อกั๊กบางเบา รุ่น A LINE สีดำ","description":"ttbici a Line Lightweight Gilet\r\n\u003cbr\u003e\u003cbr\u003e\r\nเสื้อกั๊กบางเบารุ่น A Line Lightweight Gilet ใช้วัสดุน้ำหนักเบาแต่ป้องกันลมได้ดีเยี่ยม เคลือบ DWR Coating เพื่อป้องกันน้ำและความชื้นอย่างมีประสิทธิภาพ\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":48073429221600,"sku":"B6TC-A07-BK0XSN","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48073429254368,"sku":"B6TC-A07-BK00SN","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48073429287136,"sku":"B6TC-A07-BK00MN","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48073429319904,"sku":"B6TC-A07-BK00LN","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48073429352672,"sku":"B6TC-A07-BK0XLN","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48073429385440,"sku":"B6TC-A07-BK2XLN","price":3280.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05799_1.jpg?v=1761814829"},{"product_id":"ttbici-a-line-lightweight-gilet-grey","title":"เสื้อกั๊กบางเบา รุ่น A LINE สีเทา","description":"ttbici a Line Lightweight Gilet\r\n\u003cbr\u003e\u003cbr\u003e\r\nเสื้อกั๊กบางเบารุ่น A Line Lightweight Gilet ใช้วัสดุน้ำหนักเบาแต่ป้องกันลมได้ดีเยี่ยม เคลือบ DWR Coating เพื่อป้องกันน้ำและความชื้นอย่างมีประสิทธิภาพ\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":48073429483744,"sku":"B6TC-A07-GY0XSN","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48073429516512,"sku":"B6TC-A07-GY00SN","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48073429549280,"sku":"B6TC-A07-GY00MN","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48073429582048,"sku":"B6TC-A07-GY00LN","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48073429614816,"sku":"B6TC-A07-GY0XLN","price":3280.0,"currency_code":"TWD","in_stock":false},{"title":"2XL","offer_id":48073429647584,"sku":"B6TC-A07-GY2XLN","price":3280.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05798_1.jpg?v=1761814838"},{"product_id":"ttbici-a-line-men-s-team-base-layer-white","title":"เสื้อเบสเลเยอร์ผู้ชาย รุ่น A LINE TEAM สีขาว","description":"ttbici a Line Base Layer\r\n\u003cbr\u003e\u003cbr\u003e\r\n\r\nเสื้ออินเนอร์รุ่น A Line Base Layer ผลิตจากผ้าเนื้อนุ่ม แห้งเร็ว และระบายอากาศดีเยี่ยม\r\nโครงสร้างผ้าที่ช่วยดูดซับเหงื่อและควบคุมอุณหภูมิของร่างกายได้อย่างมีประสิทธิภาพ\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":48076944703712,"sku":"B6TC-A05-WH0XSM","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48076944736480,"sku":"B6TC-A05-WH00SM","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48076944769248,"sku":"B6TC-A05-WH00MM","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48076944802016,"sku":"B6TC-A05-WH00LM","price":1580.0,"currency_code":"TWD","in_stock":false},{"title":"XL","offer_id":48076944834784,"sku":"B6TC-A05-WH0XLM","price":1580.0,"currency_code":"TWD","in_stock":false},{"title":"2XL","offer_id":48076944867552,"sku":"B6TC-A05-WH2XLM","price":1580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05760-_-__6.jpg?v=1761901580"},{"product_id":"ttbici-a-line-men-s-team-base-layer-lime","title":"เสื้อเบสเลเยอร์ผู้ชาย รุ่น A LINE TEAM สีเขียวมะนาว","description":"ttbici a Line Base Layer\r\n\u003cbr\u003e\u003cbr\u003e\r\n\r\nเสื้ออินเนอร์รุ่น A Line Base Layer ผลิตจากผ้าเนื้อนุ่ม แห้งเร็ว และระบายอากาศดีเยี่ยม\r\nโครงสร้างผ้าที่ช่วยดูดซับเหงื่อและควบคุมอุณหภูมิของร่างกายได้อย่างมีประสิทธิภาพ\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":48076944965856,"sku":"B6TC-A05-LG0XSM","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48076944998624,"sku":"B6TC-A05-LG00SM","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48076945031392,"sku":"B6TC-A05-LG00MM","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48076945064160,"sku":"B6TC-A05-LG00LM","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48076945096928,"sku":"B6TC-A05-LG0XLM","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48076945129696,"sku":"B6TC-A05-LG2XLM","price":1580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05766_4.jpg?v=1761901589"},{"product_id":"ttbici-a-line-men-s-team-base-layer-grey","title":"เสื้อเบสเลเยอร์ผู้ชาย รุ่น A LINE TEAM สีเทา","description":"ttbici a Line Base Layer\r\n\u003cbr\u003e\u003cbr\u003e\r\n\r\nเสื้ออินเนอร์รุ่น A Line Base Layer ผลิตจากผ้าเนื้อนุ่ม แห้งเร็ว และระบายอากาศดีเยี่ยม\r\nโครงสร้างผ้าที่ช่วยดูดซับเหงื่อและควบคุมอุณหภูมิของร่างกายได้อย่างมีประสิทธิภาพ\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":48076945228000,"sku":"B6TC-A05-GY0XSM","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48076945260768,"sku":"B6TC-A05-GY00SM","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48076945293536,"sku":"B6TC-A05-GY00MM","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48076945326304,"sku":"B6TC-A05-GY00LM","price":1580.0,"currency_code":"TWD","in_stock":false},{"title":"XL","offer_id":48076945359072,"sku":"B6TC-A05-GY0XLM","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48076945391840,"sku":"B6TC-A05-GY2XLM","price":1580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05760_5.jpg?v=1761901597"},{"product_id":"ttbici-e-line-men-s-classic-bib-shorts-black","title":"กางเกงบิบขาสั้นปั่นจักรยานผู้ชาย TTBICI รุ่น E LINE แบบคลาสสิก \/ สีดำ","description":"“TTBICI E Line Classic Bib Shorts”\r\n\u003cbr\u003e\u003cbr\u003e\r\nกางเกงบิบปั่นจักรยาน TTBICI E Line Classic Bib Shorts ผสมผสานองค์ประกอบแบบดั้งเดิมเข้ากับนวัตกรรมร่วมสมัย ถ่ายทอดความหรูหราแบบเรียบง่ายด้วยงานปักละเอียดประณีต\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":48082528895200,"sku":"B6TC-E02-BK0XSM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082528927968,"sku":"B6TC-E02-BK00SM","price":3280.0,"currency_code":"TWD","in_stock":false},{"title":"M","offer_id":48082528960736,"sku":"B6TC-E02-BK00MM","price":3280.0,"currency_code":"TWD","in_stock":false},{"title":"L","offer_id":48082528993504,"sku":"B6TC-E02-BK00LM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48082529026272,"sku":"B6TC-E02-BK0XLM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48082529059040,"sku":"B6TC-E02-BK2XLM","price":3280.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09485_1.jpg?v=1762159706"},{"product_id":"ttbici-e-line-men-s-classic-bib-shorts-dark-brown","title":"กางเกงบิบขาสั้นปั่นจักรยานผู้ชาย TTBICI รุ่น E LINE แบบคลาสสิก \/ สีน้ำตาลเข้ม","description":"“TTBICI E Line Classic Bib Shorts”\r\n\u003cbr\u003e\u003cbr\u003e\r\nกางเกงบิบปั่นจักรยาน TTBICI E Line Classic Bib Shorts ผสมผสานองค์ประกอบแบบดั้งเดิมเข้ากับนวัตกรรมร่วมสมัย ถ่ายทอดความหรูหราแบบเรียบง่ายด้วยงานปักละเอียดประณีต\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":48082529124576,"sku":"B6TC-E02-BR0XSM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082529157344,"sku":"B6TC-E02-BR00SM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082529190112,"sku":"B6TC-E02-BR00MM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48082529222880,"sku":"B6TC-E02-BR00LM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48082529255648,"sku":"B6TC-E02-BR0XLM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48082529288416,"sku":"B6TC-E02-BR2XLM","price":3280.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09534-light_brown_1.jpg?v=1762159715"},{"product_id":"ttbici-e-line-men-s-classic-bib-shorts-dark-grey","title":"กางเกงบิบขาสั้นปั่นจักรยานผู้ชาย TTBICI รุ่น E LINE แบบคลาสสิก \/ สีเทา","description":"“TTBICI E Line Classic Bib Shorts”\r\n\u003cbr\u003e\u003cbr\u003e\r\nกางเกงบิบปั่นจักรยาน TTBICI E Line Classic Bib Shorts ผสมผสานองค์ประกอบแบบดั้งเดิมเข้ากับนวัตกรรมร่วมสมัย ถ่ายทอดความหรูหราแบบเรียบง่ายด้วยงานปักละเอียดประณีต\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":48082529321184,"sku":"B6TC-E02-GY0XSM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082529353952,"sku":"B6TC-E02-GY00SM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082529386720,"sku":"B6TC-E02-GY00MM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48082529419488,"sku":"B6TC-E02-GY00LM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48082529452256,"sku":"B6TC-E02-GY0XLM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48082529485024,"sku":"B6TC-E02-GY2XLM","price":3280.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09534_6.jpg?v=1762159725"},{"product_id":"ttbici-a-line-men-s-lightweight-bib-shorts-black","title":"กางเกงบิบขาสั้นผู้ชาย รุ่น A LINE เนื้อผ้าบางเบา สีดำ","description":"ttbici a Line Lightweight Bib Shorts\r\n\u003cbr\u003e\u003cbr\u003e\r\nกางเกงบิบขาสั้นรุ่น A Line Lightweight Bib Shorts ออกแบบเพื่อการปั่นระยะไกลและความเข้มข้นสูง ใช้ผ้ายืดคุณภาพสูง\r\nน้ำหนักเบา ระบายอากาศดี พร้อมแผ่นรองนั่ง Italian Elastic Interface Pads (E.I.T) ระดับพรีเมียม\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":48082529583328,"sku":"B6TC-A03-BK0XSM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082529616096,"sku":"B6TC-A03-BK00SM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082529648864,"sku":"B6TC-A03-BK00MM","price":4580.0,"currency_code":"TWD","in_stock":false},{"title":"L","offer_id":48082529681632,"sku":"B6TC-A03-BK00LM","price":4580.0,"currency_code":"TWD","in_stock":false},{"title":"XL","offer_id":48082529714400,"sku":"B6TC-A03-BK0XLM","price":4580.0,"currency_code":"TWD","in_stock":false},{"title":"2XL","offer_id":48082529747168,"sku":"B6TC-A03-BK2XLM","price":4580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05787_1.jpg?v=1762159742"},{"product_id":"ttbici-a-line-men-s-lightweight-bib-shorts-bronze-green","title":"กางเกงบิบขาสั้นผู้ชาย รุ่น A LINE เนื้อผ้าบางเบา สีเขียว Bronze","description":"ttbici a Line Lightweight Bib Shorts\r\n\u003cbr\u003e\u003cbr\u003e\r\nกางเกงบิบขาสั้นรุ่น A Line Lightweight Bib Shorts ออกแบบเพื่อการปั่นระยะไกลและความเข้มข้นสูง ใช้ผ้ายืดคุณภาพสูง\r\nน้ำหนักเบา ระบายอากาศดี พร้อมแผ่นรองนั่ง Italian Elastic Interface Pads (E.I.T) ระดับพรีเมียม\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":48082530107616,"sku":"B6TC-A03-GR0XSM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082530140384,"sku":"B6TC-A03-GR00SM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082530173152,"sku":"B6TC-A03-GR00MM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48082530205920,"sku":"B6TC-A03-GR00LM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48082530238688,"sku":"B6TC-A03-GR0XLM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48082530271456,"sku":"B6TC-A03-GR2XLM","price":4580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05782_1.jpg?v=1762159757"},{"product_id":"ttbici-a-line-men-s-cargo-bib-shorts-charcoal","title":"กางเกงบิบคาร์โก้ผู้ชาย รุ่น A LINE สีเทาเข้ม Charcoal","description":"ttbici a Line Lightweight Cargo Bib Shorts\r\n\u003cbr\u003e\u003cbr\u003e\r\nกางเกงบิบคาร์โก้รุ่น A Line Lightweight Cargo Bib Shorts มาพร้อมช่องเก็บของด้านข้างและช่องตรงกลางด้านหลัง จัดเก็บของจำเป็นได้สะดวกและหยิบง่าย เหมาะอย่างยิ่งสำหรับการปั่นระยะไกล\r\n\u003cbr\u003e\u003cbr\u003e\r\nผลิตจากผ้ายืดประสิทธิภาพสูง น้ำหนักเบา ระบายอากาศได้ดี พร้อมแผ่นรองนั่ง Italian Elastic Interface Pads (E.I.T) ที่ให้การรองรับและความสบายสูงสุด มอบความมั่นคงและสมรรถนะระดับพรีเมียมโดยไม่ลดทอนความคล่องตัว\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":48082530304224,"sku":"B6TC-A04-CH0XSM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082530336992,"sku":"B6TC-A04-CH00SM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082530369760,"sku":"B6TC-A04-CH00MM","price":5180.0,"currency_code":"TWD","in_stock":false},{"title":"L","offer_id":48082530402528,"sku":"B6TC-A04-CH00LM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48082530435296,"sku":"B6TC-A04-CH0XLM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48082530468064,"sku":"B6TC-A04-CH2XLM","price":5180.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05791-gray_1.jpg?v=1762159765"},{"product_id":"ttbici-a-line-men-s-lightweight-bib-shorts-eclipse-purple","title":"กางเกงบิบขาสั้นผู้ชาย รุ่น A LINE เนื้อผ้าบางเบา สีม่วง Eclipse","description":"ttbici a Line Lightweight Bib Shorts\r\n\u003cbr\u003e\u003cbr\u003e\r\nกางเกงบิบขาสั้นรุ่น A Line Lightweight Bib Shorts ออกแบบเพื่อการปั่นระยะไกลและความเข้มข้นสูง ใช้ผ้ายืดคุณภาพสูง\r\nน้ำหนักเบา ระบายอากาศดี พร้อมแผ่นรองนั่ง Italian Elastic Interface Pads (E.I.T) ระดับพรีเมียม\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":48082530599136,"sku":"B6TC-A03-PG0XSM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082530631904,"sku":"B6TC-A03-PG00SM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082530664672,"sku":"B6TC-A03-PG00MM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48082530697440,"sku":"B6TC-A03-PG00LM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48082530730208,"sku":"B6TC-A03-PG0XLM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48082530762976,"sku":"B6TC-A03-PG2XLM","price":4580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05782-purple_1.jpg?v=1762159774"},{"product_id":"ttbici-a-line-men-s-cargo-bib-shorts-chocolate","title":"กางเกงบิบคาร์โก้ผู้ชาย รุ่น A LINE สีน้ำตาล Chocolate","description":"ttbici a Line Lightweight Cargo Bib Shorts\r\n\u003cbr\u003e\u003cbr\u003e\r\nกางเกงบิบคาร์โก้รุ่น A Line Lightweight Cargo Bib Shorts มาพร้อมช่องเก็บของด้านข้างและช่องตรงกลางด้านหลัง จัดเก็บของจำเป็นได้สะดวกและหยิบง่าย เหมาะอย่างยิ่งสำหรับการปั่นระยะไกล\r\n\u003cbr\u003e\u003cbr\u003e\r\nผลิตจากผ้ายืดประสิทธิภาพสูง น้ำหนักเบา ระบายอากาศได้ดี พร้อมแผ่นรองนั่ง Italian Elastic Interface Pads (E.I.T) ที่ให้การรองรับและความสบายสูงสุด มอบความมั่นคงและสมรรถนะระดับพรีเมียมโดยไม่ลดทอนความคล่องตัว\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":48082530795744,"sku":"B6TC-A04-BR0XSM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082530828512,"sku":"B6TC-A04-BR00SM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082530861280,"sku":"B6TC-A04-BR00MM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48082530894048,"sku":"B6TC-A04-BR00LM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48082530926816,"sku":"B6TC-A04-BR0XLM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48082530959584,"sku":"B6TC-A04-BR2XLM","price":5180.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05791_1.jpg?v=1762159783"},{"product_id":"ttbici-a-line-men-s-lightweight-jersey-eclipse-purple","title":"เสื้อปั่นจักรยานผู้ชาย รุ่น A LINE เนื้อผ้าบางเบา สีม่วง Eclipse","description":"ttbici a Line Lightweight Jersey\r\n\u003cbr\u003e\u003cbr\u003e\r\n\r\nเสื้อปั่นจักรยานรุ่น a Line Lightweight Jersey ผสานการออกแบบและสมรรถนะได้อย่างลงตัว ออกแบบมาเพื่อการปั่นความเข้มข้นสูง\r\nด้วยทรงแอโรไดนามิกที่ช่วยเพิ่มความเร็วและประสิทธิภาพ ผ้าบางเบา แห้งเร็ว และระบายอากาศได้ดี\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":48087652335840,"sku":"B6TC-A01-PG0XSM","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087652368608,"sku":"B6TC-A01-PG00SM","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087652401376,"sku":"B6TC-A01-PG00MM","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087652434144,"sku":"B6TC-A01-PG00LM","price":3580.0,"currency_code":"TWD","in_stock":false},{"title":"XL","offer_id":48087652466912,"sku":"B6TC-A01-PG0XLM","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48087652499680,"sku":"B6TC-A01-PG2XLM","price":3580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05607_1.jpg?v=1762228361"},{"product_id":"ttbici-a-line-men-s-lightweight-jersey-brilliant-blue","title":"เสื้อปั่นจักรยานผู้ชาย รุ่น A LINE เนื้อผ้าบางเบา สีฟ้า Brilliant","description":"ttbici a Line Lightweight Jersey\r\n\u003cbr\u003e\u003cbr\u003e\r\n\r\nเสื้อปั่นจักรยานรุ่น a Line Lightweight Jersey ผสานการออกแบบและสมรรถนะได้อย่างลงตัว ออกแบบมาเพื่อการปั่นความเข้มข้นสูง\r\nด้วยทรงแอโรไดนามิกที่ช่วยเพิ่มความเร็วและประสิทธิภาพ ผ้าบางเบา แห้งเร็ว และระบายอากาศได้ดี\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":48087654301920,"sku":"B6TC-A01-BL0XSM","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087654334688,"sku":"B6TC-A01-BL00SM","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087654367456,"sku":"B6TC-A01-BL00MM","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087654400224,"sku":"B6TC-A01-BL00LM","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48087654432992,"sku":"B6TC-A01-BL0XLM","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48087654465760,"sku":"B6TC-A01-BL2XLM","price":3580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05602.jpg?v=1762228371"},{"product_id":"ttbici-a-line-men-s-lightweight-jersey-cheddar-orange","title":"เสื้อปั่นจักรยานผู้ชาย รุ่น A LINE เนื้อผ้าบางเบา สีส้ม Cheddar","description":"ttbici a Line Lightweight Jersey\r\n\u003cbr\u003e\u003cbr\u003e\r\n\r\nเสื้อปั่นจักรยานรุ่น a Line Lightweight Jersey ผสานการออกแบบและสมรรถนะได้อย่างลงตัว ออกแบบมาเพื่อการปั่นความเข้มข้นสูง\r\nด้วยทรงแอโรไดนามิกที่ช่วยเพิ่มความเร็วและประสิทธิภาพ ผ้าบางเบา แห้งเร็ว และระบายอากาศได้ดี\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":48087655678176,"sku":"B6TC-A01-OR0XSM","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087655710944,"sku":"B6TC-A01-OR00SM","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087655743712,"sku":"B6TC-A01-OR00MM","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087655776480,"sku":"B6TC-A01-OR00LM","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48087655809248,"sku":"B6TC-A01-OR0XLM","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48087655842016,"sku":"B6TC-A01-OR2XLM","price":3580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05590.jpg?v=1762228379"},{"product_id":"ttbici-a-line-men-s-lightweight-team-jersey-white","title":"เสื้อปั่นจักรยานผู้ชาย รุ่น A LINE TEAM เนื้อผ้าบางเบา สีขาว","description":"ttbici a Line Lightweight Team Jersey\r\n\u003cbr\u003e\u003cbr\u003e\r\n\r\nเสื้อปั่นจักรยานรุ่น a Line Lightweight Team Jersey ได้รับแรงบันดาลใจจาก “π (พาย)” ที่สื่อถึงพลังแห่งความเป็นไปได้ที่ไม่มีที่สิ้นสุด ลวดลายกราฟิกเฉพาะตัวบนหน้าอกและลายเส้นต่อเนื่องจากเสื้ออินเนอร์ช่วยสร้างมิติของดีไซน์อันหรูหรา และสะท้อนเอกลักษณ์ของนักปั่นอย่างมีสไตล์\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":48087656595680,"sku":"B6TC-A01-WH0XSM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087656628448,"sku":"B6TC-A01-WH00SM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087656661216,"sku":"B6TC-A01-WH00MM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087656693984,"sku":"B6TC-A01-WH00LM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48087656726752,"sku":"B6TC-A01-WH0XLM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48087656759520,"sku":"B6TC-A01-WH2XLM","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05743.jpg?v=1762228389"},{"product_id":"ttbici-a-line-men-s-lightweight-team-jersey-lime","title":"เสื้อปั่นจักรยานผู้ชาย รุ่น A LINE TEAM เนื้อผ้าบางเบา สีเขียวมะนาว","description":"ttbici a Line Lightweight Team Jersey\r\n\u003cbr\u003e\u003cbr\u003e\r\n\r\nเสื้อปั่นจักรยานรุ่น a Line Lightweight Team Jersey ได้รับแรงบันดาลใจจาก “π (พาย)” ที่สื่อถึงพลังแห่งความเป็นไปได้ที่ไม่มีที่สิ้นสุด ลวดลายกราฟิกเฉพาะตัวบนหน้าอกและลายเส้นต่อเนื่องจากเสื้ออินเนอร์ช่วยสร้างมิติของดีไซน์อันหรูหรา และสะท้อนเอกลักษณ์ของนักปั่นอย่างมีสไตล์\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":48087657054432,"sku":"B6TC-A01-LG0XSM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087657087200,"sku":"B6TC-A01-LG00SM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087657119968,"sku":"B6TC-A01-LG00MM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087657152736,"sku":"B6TC-A01-LG00LM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48087657185504,"sku":"B6TC-A01-LG0XLM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48087657218272,"sku":"B6TC-A01-LG2XLM","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05747.jpg?v=1762228398"},{"product_id":"ttbici-a-line-men-s-lightweight-ls-jersey-black","title":"เสื้อปั่นจักรยานแขนยาวผู้ชาย รุ่น A LINE เนื้อผ้าบางเบา สีดำ","description":"ttbici a Line Lightweight Long-Sleeve Jersey\r\n\u003cbr\u003e\u003cbr\u003e\r\nเสื้อปั่นจักรยานแขนยาวรุ่น A Line Lightweight LS Jersey ถูกออกแบบให้สวมใส่ได้หลากหลายชั้น พร้อมการป้องกันรังสียูวีที่เหนือกว่า เหมาะอย่างยิ่งสำหรับการปั่นในวันที่มีแดดจัด\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":48087657513184,"sku":"B6TC-A02-BK0XSM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087657545952,"sku":"B6TC-A02-BK00SM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087657578720,"sku":"B6TC-A02-BK00MM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087657611488,"sku":"B6TC-A02-BK00LM","price":3880.0,"currency_code":"TWD","in_stock":false},{"title":"XL","offer_id":48087657644256,"sku":"B6TC-A02-BK0XLM","price":3880.0,"currency_code":"TWD","in_stock":false},{"title":"2XL","offer_id":48087657677024,"sku":"B6TC-A02-BK2XLM","price":3880.0,"currency_code":"TWD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05625.jpg?v=1762228408"},{"product_id":"ttbici-a-line-men-s-lightweight-ls-jersey-brilliant-blue","title":"เสื้อปั่นจักรยานแขนยาวผู้ชาย รุ่น A LINE เนื้อผ้าบางเบา สีฟ้า Brilliant","description":"ttbici a Line Lightweight Long-Sleeve Jersey\r\n\u003cbr\u003e\u003cbr\u003e\r\nเสื้อปั่นจักรยานแขนยาวรุ่น A Line Lightweight LS Jersey ถูกออกแบบให้สวมใส่ได้หลากหลายชั้น พร้อมการป้องกันรังสียูวีที่เหนือกว่า เหมาะอย่างยิ่งสำหรับการปั่นในวันที่มีแดดจัด\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":48087659446496,"sku":"B6TC-A02-BL0XSM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087659479264,"sku":"B6TC-A02-BL00SM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087659512032,"sku":"B6TC-A02-BL00MM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087659544800,"sku":"B6TC-A02-BL00LM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48087659577568,"sku":"B6TC-A02-BL0XLM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48087659610336,"sku":"B6TC-A02-BL2XLM","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05625_319e5a69-18b9-454d-a861-44cb747d5e32.jpg?v=1762228416"},{"product_id":"ttbici-a-line-men-s-lightweight-ls-jersey-cheddar-orange","title":"เสื้อปั่นจักรยานแขนยาวผู้ชาย รุ่น A LINE เนื้อผ้าบางเบา สีส้ม Cheddar","description":"ttbici a Line Lightweight Long-Sleeve Jersey\r\n\u003cbr\u003e\u003cbr\u003e\r\nเสื้อปั่นจักรยานแขนยาวรุ่น A Line Lightweight LS Jersey ถูกออกแบบให้สวมใส่ได้หลากหลายชั้น พร้อมการป้องกันรังสียูวีที่เหนือกว่า เหมาะอย่างยิ่งสำหรับการปั่นในวันที่มีแดดจัด\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":48087661838560,"sku":"B6TC-A02-OR0XSM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087661871328,"sku":"B6TC-A02-OR00SM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087661904096,"sku":"B6TC-A02-OR00MM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087661936864,"sku":"B6TC-A02-OR00LM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48087661969632,"sku":"B6TC-A02-OR0XLM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48087662002400,"sku":"B6TC-A02-OR2XLM","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05622.jpg?v=1762228425"},{"product_id":"ttbici-a-line-men-s-lightweight-ls-team-jersey-grey","title":"เสื้อปั่นจักรยานแขนยาวผู้ชาย รุ่น A LINE TEAM เนื้อผ้าบางเบา สีเทา","description":"ttbici a Line Lightweight Long-Sleeve Jersey + Team Graphic\r\n\u003cbr\u003e\u003cbr\u003e\r\nเสื้อปั่นจักรยานแขนยาวรุ่น A Line Lightweight LS Jersey\r\nมาพร้อมการออกแบบสำหรับสวมทับหลายชั้นและการป้องกันรังสียูวีขั้นสูง เหมาะสำหรับการปั่นในวันที่มีแดดแรง\r\n\u003cbr\u003e\u003cbr\u003e\r\nผลิตจากผ้าทอยืดหยุ่น น้ำหนักเบา และระบายอากาศดี ทรงแอโรไดนามิกช่วยลดความเทอะทะ ให้การปั่นที่คล่องตัวและสบาย\r\n\u003cbr\u003e\u003cbr\u003e\r\nพร้อมดีไซน์พิเศษของรุ่น Team Jersey ที่ได้รับแรงบันดาลใจจาก “π (พาย)” สื่อถึงการแสวงหาศักยภาพไร้ขีดจำกัด\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":48087663018208,"sku":"B6TC-A02-GY0XSM","price":4180.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087663050976,"sku":"B6TC-A02-GY00SM","price":4180.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087663083744,"sku":"B6TC-A02-GY00MM","price":4180.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087663116512,"sku":"B6TC-A02-GY00LM","price":4180.0,"currency_code":"TWD","in_stock":false},{"title":"XL","offer_id":48087663149280,"sku":"B6TC-A02-GY0XLM","price":4180.0,"currency_code":"TWD","in_stock":false},{"title":"2XL","offer_id":48087663182048,"sku":"B6TC-A02-GY2XLM","price":4180.0,"currency_code":"TWD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05748.jpg?v=1762228434"},{"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-e-line-men-s-classic-jersey-black","title":"เสื้อปั่นจักรยานผู้ชาย TTBICI รุ่น E LINE แบบคลาสสิก \/ สีดำ","description":"“TTBICI E Line Classic Jersey”\r\n\u003cbr\u003e\u003cbr\u003e\r\nเสื้อปั่นจักรยาน TTBICI E Line Classic Jersey ผสมผสานอย่างลงตัวระหว่างงานฝีมือแบบดั้งเดิมและดีไซน์สมัยใหม่ ถ่ายทอดความหรูหราอย่างเรียบง่ายผ่านลวดลายปักที่ประณีตงดงาม\r\n\u003cbr\u003e\u003cbr\u003e\r\nออกแบบมาเพื่อความสบายและความหลากหลายในการสวมใส่ ด้วยทรงที่พอดีและยืดหยุ่นเข้ากับรูปร่างได้หลากหลาย มอบประสบการณ์การปั่นที่ดูดีและไม่ยุ่งยาก ผลิตจากผ้าคุณภาพสูงที่มีน้ำหนักเบา ระบายอากาศได้ดี ให้สัมผัสนุ่มสบาย เหมาะอย่างยิ่งสำหรับการปั่นในสภาพอากาศร้อน\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":48088710643936,"sku":"B6TC-E01-BK0XSM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48088710676704,"sku":"B6TC-E01-BK00SM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48088710709472,"sku":"B6TC-E01-BK00MM","price":2880.0,"currency_code":"TWD","in_stock":false},{"title":"L","offer_id":48088710742240,"sku":"B6TC-E01-BK00LM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48088710775008,"sku":"B6TC-E01-BK0XLM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48088710807776,"sku":"B6TC-E01-BK2XLM","price":2880.0,"currency_code":"TWD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09572.jpg?v=1762236332"},{"product_id":"ttbici-e-line-men-s-classic-jersey-navy","title":"เสื้อปั่นจักรยานผู้ชาย TTBICI รุ่น E LINE แบบคลาสสิก \/ สีน้ำเงินเนวี","description":"“TTBICI E Line Classic Jersey”\r\n\u003cbr\u003e\u003cbr\u003e\r\nเสื้อปั่นจักรยาน TTBICI E Line Classic Jersey ผสมผสานอย่างลงตัวระหว่างงานฝีมือแบบดั้งเดิมและดีไซน์สมัยใหม่ ถ่ายทอดความหรูหราอย่างเรียบง่ายผ่านลวดลายปักที่ประณีตงดงาม\r\n\u003cbr\u003e\u003cbr\u003e\r\nออกแบบมาเพื่อความสบายและความหลากหลายในการสวมใส่ ด้วยทรงที่พอดีและยืดหยุ่นเข้ากับรูปร่างได้หลากหลาย มอบประสบการณ์การปั่นที่ดูดีและไม่ยุ่งยาก ผลิตจากผ้าคุณภาพสูงที่มีน้ำหนักเบา ระบายอากาศได้ดี ให้สัมผัสนุ่มสบาย เหมาะอย่างยิ่งสำหรับการปั่นในสภาพอากาศร้อน\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":48088712610016,"sku":"B6TC-E01-NY0XSM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48088712642784,"sku":"B6TC-E01-NY00SM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48088712675552,"sku":"B6TC-E01-NY00MM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48088712708320,"sku":"B6TC-E01-NY00LM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48088712741088,"sku":"B6TC-E01-NY0XLM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48088712773856,"sku":"B6TC-E01-NY2XLM","price":2880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09581-3_color-deep_blue.jpg?v=1762236341"},{"product_id":"ttbici-e-line-men-s-classic-jersey-beige","title":"เสื้อปั่นจักรยานผู้ชาย TTBICI รุ่น E LINE แบบคลาสสิก \/ สีเบจ","description":"“TTBICI E Line Classic Jersey”\r\n\u003cbr\u003e\u003cbr\u003e\r\nเสื้อปั่นจักรยาน TTBICI E Line Classic Jersey ผสมผสานอย่างลงตัวระหว่างงานฝีมือแบบดั้งเดิมและดีไซน์สมัยใหม่ ถ่ายทอดความหรูหราอย่างเรียบง่ายผ่านลวดลายปักที่ประณีตงดงาม\r\n\u003cbr\u003e\u003cbr\u003e\r\nออกแบบมาเพื่อความสบายและความหลากหลายในการสวมใส่ ด้วยทรงที่พอดีและยืดหยุ่นเข้ากับรูปร่างได้หลากหลาย มอบประสบการณ์การปั่นที่ดูดีและไม่ยุ่งยาก ผลิตจากผ้าคุณภาพสูงที่มีน้ำหนักเบา ระบายอากาศได้ดี ให้สัมผัสนุ่มสบาย เหมาะอย่างยิ่งสำหรับการปั่นในสภาพอากาศร้อน\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":48088713593056,"sku":"B6TC-E01-BE0XSM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48088713625824,"sku":"B6TC-E01-BE00SM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48088713658592,"sku":"B6TC-E01-BE00MM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48088713691360,"sku":"B6TC-E01-BE00LM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48088713724128,"sku":"B6TC-E01-BE0XLM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48088713756896,"sku":"B6TC-E01-BE2XLM","price":2880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09586_a.jpg?v=1762236351"},{"product_id":"ttbici-e-line-men-s-classic-jersey-brown","title":"เสื้อปั่นจักรยานผู้ชาย TTBICI รุ่น E LINE แบบคลาสสิก \/ สีน้ำตาล","description":"“TTBICI E Line Classic Jersey”\r\n\u003cbr\u003e\u003cbr\u003e\r\nเสื้อปั่นจักรยาน TTBICI E Line Classic Jersey ผสมผสานอย่างลงตัวระหว่างงานฝีมือแบบดั้งเดิมและดีไซน์สมัยใหม่ ถ่ายทอดความหรูหราอย่างเรียบง่ายผ่านลวดลายปักที่ประณีตงดงาม\r\n\u003cbr\u003e\u003cbr\u003e\r\nออกแบบมาเพื่อความสบายและความหลากหลายในการสวมใส่ ด้วยทรงที่พอดีและยืดหยุ่นเข้ากับรูปร่างได้หลากหลาย มอบประสบการณ์การปั่นที่ดูดีและไม่ยุ่งยาก ผลิตจากผ้าคุณภาพสูงที่มีน้ำหนักเบา ระบายอากาศได้ดี ให้สัมผัสนุ่มสบาย เหมาะอย่างยิ่งสำหรับการปั่นในสภาพอากาศร้อน\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":48088714445024,"sku":"B6TC-E01-BR0XSM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48088714477792,"sku":"B6TC-E01-BR00SM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48088714510560,"sku":"B6TC-E01-BR00MM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48088714543328,"sku":"B6TC-E01-BR00LM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48088714576096,"sku":"B6TC-E01-BR0XLM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48088714608864,"sku":"B6TC-E01-BR2XLM","price":2880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09581-3_color-light_brown.jpg?v=1762236361"},{"product_id":"ttbici-e-line-men-s-classic-jersey-pine-green","title":"เสื้อปั่นจักรยานผู้ชาย TTBICI รุ่น E LINE แบบคลาสสิก \/ สีเขียวไพน์ (Pine Green)","description":"“TTBICI E Line Classic Jersey”\r\n\u003cbr\u003e\u003cbr\u003e\r\nเสื้อปั่นจักรยาน TTBICI E Line Classic Jersey ผสมผสานอย่างลงตัวระหว่างงานฝีมือแบบดั้งเดิมและดีไซน์สมัยใหม่ ถ่ายทอดความหรูหราอย่างเรียบง่ายผ่านลวดลายปักที่ประณีตงดงาม\r\n\u003cbr\u003e\u003cbr\u003e\r\nออกแบบมาเพื่อความสบายและความหลากหลายในการสวมใส่ ด้วยทรงที่พอดีและยืดหยุ่นเข้ากับรูปร่างได้หลากหลาย มอบประสบการณ์การปั่นที่ดูดีและไม่ยุ่งยาก ผลิตจากผ้าคุณภาพสูงที่มีน้ำหนักเบา ระบายอากาศได้ดี ให้สัมผัสนุ่มสบาย เหมาะอย่างยิ่งสำหรับการปั่นในสภาพอากาศร้อน\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":48088715264224,"sku":"B6TC-E01-GR0XSM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48088715296992,"sku":"B6TC-E01-GR00SM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48088715329760,"sku":"B6TC-E01-GR00MM","price":2880.0,"currency_code":"TWD","in_stock":false},{"title":"L","offer_id":48088715362528,"sku":"B6TC-E01-GR00LM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48088715395296,"sku":"B6TC-E01-GR0XLM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48088715428064,"sku":"B6TC-E01-GR2XLM","price":2880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09581-3_color-deep_green_a.jpg?v=1762236370"},{"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":"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"},{"product_id":"a-line-mens-tech-merino-base-layer-black","title":"เสื้อซับในปั่นจักรยานผู้ชาย รุ่น Tech Merino \/ สีดำ","description":"\u003cbody\u003ettbici a Line Tech Merino Base Layer Vest\u003cbr\u003e\nออกแบบมาเพื่อรองรับร่างกายของคุณในทุกจังหวะความเข้มข้นและการเปลี่ยนแปลงของอุณหภูมิ มอบความอบอุ่นอย่างสมดุล พร้อมการจัดการความร้อนอย่างมีประสิทธิภาพ\n\u003cbr\u003e\u003cbr\u003e\nผลิตจากผ้าเมอริโนวูลเกรดพรีเมียม ให้ความอบอุ่นตามธรรมชาติ พร้อมคุณสมบัติในการควบคุมอุณหภูมิที่ยอดเยี่ยม ปรับตัวตามสภาพอากาศที่เปลี่ยนแปลงระหว่างการปั่นได้อย่างลงตัว เส้นใยที่ระบายอากาศได้ดีช่วยจัดการความร้อนอย่างมีประสิทธิภาพ ทำให้บริเวณแกนลำตัวรู้สึกสบาย แม้ในสภาพอากาศเย็น\u003cbr\u003e\u003cbr\u003e\n\n \u003cmeta charset=\"UTF-8\"\u003e\n \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n \u003cstyle\u003e\n  body.product-modal-open {\n   overflow: hidden;\n  }\n\n  .product-modal-overlay {\n   display: none;\n   position: fixed;\n   top: 0;\n   left: 0;\n   width: 100vw;\n   height: 100vh;\n   background-color: rgba(0, 0, 0, 0.5);\n   backdrop-filter: blur(2px);\n   z-index: 1000;\n   justify-content: center;\n   align-items: center;\n  }\n\n  .product-modal {\n   background: white;\n   padding: 20px;\n   \/* border-radius: 10px; *\/\n   max-width: 600px;\n   width: 90%;\n   max-height: 90vh;\n   overflow-y: auto;\n   position: relative;\n  }\n\n  .product-modal .modal-close {\n   position: absolute;\n   top: 10px;\n   right: 12px;\n   font-size: 20px;\n   cursor: pointer;\n  }\n\n  \/* ✅ 統一按鈕樣式 *\/\n  .button-group {\n   display: flex;\n   gap: 12px;\n   padding-top: 20px;\n  }\n\n  .button-group button {\n   padding: 0px;\n   border: none;\n   background-color: transparent;\n   color: #333;\n   cursor: pointer;\n   \/* border-radius: 5px; *\/\n   font-size: 15px;\n   font-family: 'Microsoft JhengHei';\n   text-decoration: underline;\n  }\n\n  .button-group button.active {\n   \/* background-color: #444; *\/\n  }\n\n  button:active {\n   box-shadow: none !important;\n   color: #333 !important;\n  }\n\n  .product-modal table {\n   width: 100%;\n   border-collapse: collapse;\n   margin-top: 10px;\n  }\n\n  .product-modal th,\n  .product-modal td {\n   border-bottom: 1px solid #ddd;\n   text-align: center;\n   padding: 8px;\n  }\n\n  \/* ✅ 新增的欄寬限制 *\/\n  .product-modal table th:first-child,\n  .product-modal table td:first-child {\n   width: 15%;\n   max-width: 15%;\n  }\n\n  .product-modal .toggle-wrapper {\n   display: flex;\n   align-items: center;\n   gap: 10px;\n   margin: 10px 0 20px;\n  }\n\n  .product-modal .toggle {\n   position: relative;\n   display: inline-block;\n   width: 50px;\n   height: 24px;\n  }\n\n  .product-modal .toggle input {\n   opacity: 0;\n   width: 0;\n   height: 0;\n  }\n\n  .product-modal .slider {\n   position: absolute;\n   cursor: pointer;\n   background-color: #ccc;\n   border-radius: 24px;\n   top: 0;\n   left: 0;\n   right: 0;\n   bottom: 0;\n   transition: 0.4s;\n  }\n\n  .product-modal .slider:before {\n   content: \"\";\n   position: absolute;\n   height: 18px;\n   width: 18px;\n   left: 3px;\n   bottom: 3px;\n   background-color: white;\n   transition: 0.4s;\n   border-radius: 50%;\n  }\n\n  .product-modal input:checked+.slider {\n   background-color: #333;\n  }\n\n  .product-modal input:checked+.slider:before {\n   transform: translateX(26px);\n  }\n\n  .product-modal .modalInnerContent h3 {\n   padding: 20px 0;\n\n  }\n \u003c\/style\u003e\n\n\n\n\n \u003c!-- 外部觸發按鈕 --\u003e\n \u003cdiv class=\"button-group\"\u003e\n  \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\n \u003c\/div\u003e\n\n \u003c!-- Modal --\u003e\n \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\n  \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\n   \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\n\n   \u003c!-- 內部選單 --\u003e\n   \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\n    \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\n   \u003c\/div\u003e\n\n   \u003c!-- 內容區 --\u003e\n   \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\n  \u003cscript\u003e\n    const modalOverlay = document.getElementById(\"modalOverlay\");\n    const modalInner = document.getElementById(\"modalInnerContent\");\n\n    const sizeData = {\n      cm: [\n        { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\n        { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\n        { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\n        { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\n        { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\n        { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\n      ],\n      inches: [\n        { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\n        { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\n        { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\n        { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\n        { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\n        { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\n      ]\n    };\n\n    function openModal(defaultTab) {\n      document.body.classList.add(\"product-modal-open\");\n      modalOverlay.style.display = \"flex\";\n      switchTab(defaultTab);\n    }\n\n    function closeModal() {\n      modalOverlay.style.display = \"none\";\n      modalInner.innerHTML = \"\";\n      document.body.classList.remove(\"product-modal-open\");\n    }\n\n    function switchTab(tab) {\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\n        const btn = document.getElementById(`tab-${id}`);\n        if (btn) btn.classList.remove(\"active\");\n      });\n\n      const activeBtn = document.getElementById(`tab-${tab}`);\n      if (activeBtn) activeBtn.classList.add(\"active\");\n\n      if (tab === 'shipping') {\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\n      } else if (tab === 'care') {\n        modalInner.innerHTML = `\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\n\t\t\u003col\u003e\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\n\t\t\u003c\/ol\u003e\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\n\t`;\n\n      } else if (tab === 'size') {\n        modalInner.innerHTML = `\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\n          \u003cdiv class=\"toggle-wrapper\"\u003e\n            \u003cspan\u003eCM\u003c\/span\u003e\n            \u003clabel class=\"toggle\"\u003e\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\n            \u003c\/label\u003e\n            \u003cspan\u003eINCHES\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003ctable\u003e\n            \u003cthead\u003e\n              \u003ctr\u003e\n                \u003cth\u003eขนาด\u003c\/th\u003e\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\n              \u003c\/tr\u003e\n            \u003c\/thead\u003e\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        `;\n        renderSizeTable('cm');\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\n        });\n      }\n    }\n\n    function renderSizeTable(unit) {\n      const body = document.getElementById(\"tableBody\");\n      body.innerHTML = \"\";\n      sizeData[unit].forEach(row =\u003e {\n        body.innerHTML += `\n      \u003ctr\u003e\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\n      \u003c\/tr\u003e`;\n      });\n    }\n  \u003c\/script\u003e\n\n\n\u003c\/body\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48531751370976,"sku":"B6TC-A13-BK0XSM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48531751403744,"sku":"B6TC-A13-BK00SM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48531751436512,"sku":"B6TC-A13-BK00MM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48531751469280,"sku":"B6TC-A13-BK00LM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48531751502048,"sku":"B6TC-A13-BK0XLM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48531751534816,"sku":"B6TC-A13-BK2XLM","price":1980.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men_tech_merino_base_layer_black_01_1_1_1_1_1_1.jpg?v=1768181433"},{"product_id":"a-line-mens-tech-merino-base-layer-charcoal","title":"เสื้อซับในปั่นจักรยานผู้ชาย รุ่น Tech Merino \/ สีชาร์โคล","description":"ttbici a Line Tech Merino Base Layer Vest\u003cbr\u003e\nออกแบบมาเพื่อรองรับร่างกายของคุณในทุกจังหวะความเข้มข้นและการเปลี่ยนแปลงของอุณหภูมิ มอบความอบอุ่นอย่างสมดุล พร้อมการจัดการความร้อนอย่างมีประสิทธิภาพ\n\u003cbr\u003e\u003cbr\u003e\nผลิตจากผ้าเมอริโนวูลเกรดพรีเมียม ให้ความอบอุ่นตามธรรมชาติ พร้อมคุณสมบัติในการควบคุมอุณหภูมิที่ยอดเยี่ยม ปรับตัวตามสภาพอากาศที่เปลี่ยนแปลงระหว่างการปั่นได้อย่างลงตัว เส้นใยที่ระบายอากาศได้ดีช่วยจัดการความร้อนอย่างมีประสิทธิภาพ ทำให้บริเวณแกนลำตัวรู้สึกสบาย แม้ในสภาพอากาศเย็น\n\n\u003c!DOCTYPE html\u003e\n\u003chtml lang=\"zh-Hant\"\u003e\n\n\u003chead\u003e\n  \u003cmeta charset=\"UTF-8\" \/\u003e\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\n  \u003cstyle\u003e\n    body.product-modal-open {\n      overflow: hidden;\n    }\n\n    .product-modal-overlay {\n      display: none;\n      position: fixed;\n      top: 0;\n      left: 0;\n      width: 100vw;\n      height: 100vh;\n      background-color: rgba(0, 0, 0, 0.5);\n      backdrop-filter: blur(2px);\n      z-index: 1000;\n      justify-content: center;\n      align-items: center;\n    }\n\n    .product-modal {\n      background: white;\n      padding: 20px;\n      \/* border-radius: 10px; *\/\n      max-width: 600px;\n      width: 90%;\n      max-height: 90vh;\n      overflow-y: auto;\n      position: relative;\n    }\n\n    .product-modal .modal-close {\n      position: absolute;\n      top: 10px;\n      right: 12px;\n      font-size: 20px;\n      cursor: pointer;\n    }\n\n    \/* ✅ 統一按鈕樣式 *\/\n    .button-group {\n      display: flex;\n      gap: 12px;\n      padding-top: 20px;\n    }\n\n    .button-group button {\n      padding: 0px;\n      border: none;\n      background-color: transparent;\n      color: #333;\n      cursor: pointer;\n      \/* border-radius: 5px; *\/\n      font-size: 15px;\n      font-family: 'Microsoft JhengHei';\n      text-decoration: underline;\n    }\n\n    .button-group button.active {\n      \/* background-color: #444; *\/\n    }\n\n    button:active {\n      box-shadow: none !important;\n      color: #333 !important;\n    }\n\n    .product-modal table {\n      width: 100%;\n      border-collapse: collapse;\n      margin-top: 10px;\n    }\n\n    .product-modal th,\n    .product-modal td {\n      border-bottom: 1px solid #ddd;\n      text-align: center;\n      padding: 8px;\n    }\n\n    \/* ✅ 新增的欄寬限制 *\/\n    .product-modal table th:first-child,\n    .product-modal table td:first-child {\n      width: 15%;\n      max-width: 15%;\n    }\n\n    .product-modal .toggle-wrapper {\n      display: flex;\n      align-items: center;\n      gap: 10px;\n      margin: 10px 0 20px;\n    }\n\n    .product-modal .toggle {\n      position: relative;\n      display: inline-block;\n      width: 50px;\n      height: 24px;\n    }\n\n    .product-modal .toggle input {\n      opacity: 0;\n      width: 0;\n      height: 0;\n    }\n\n    .product-modal .slider {\n      position: absolute;\n      cursor: pointer;\n      background-color: #ccc;\n      border-radius: 24px;\n      top: 0;\n      left: 0;\n      right: 0;\n      bottom: 0;\n      transition: 0.4s;\n    }\n\n    .product-modal .slider:before {\n      content: \"\";\n      position: absolute;\n      height: 18px;\n      width: 18px;\n      left: 3px;\n      bottom: 3px;\n      background-color: white;\n      transition: 0.4s;\n      border-radius: 50%;\n    }\n\n    .product-modal input:checked+.slider {\n      background-color: #333;\n    }\n\n    .product-modal input:checked+.slider:before {\n      transform: translateX(26px);\n    }\n\n    .product-modal .modalInnerContent h3 {\n      padding: 20px 0;\n\n    }\n  \u003c\/style\u003e\n\u003c\/head\u003e\n\n\u003cbody\u003e\n\n  \u003c!-- 外部觸發按鈕 --\u003e\n  \u003cdiv class=\"button-group\"\u003e\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- Modal --\u003e\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\n\n      \u003c!-- 內部選單 --\u003e\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\n      \u003c\/div\u003e\n\n      \u003c!-- 內容區 --\u003e\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cscript\u003e\n    const modalOverlay = document.getElementById(\"modalOverlay\");\n    const modalInner = document.getElementById(\"modalInnerContent\");\n\n    const sizeData = {\n      cm: [\n        { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\n        { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\n        { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\n        { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\n        { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\n        { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\n      ],\n      inches: [\n        { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\n        { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\n        { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\n        { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\n        { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\n        { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\n      ]\n    };\n\n    function openModal(defaultTab) {\n      document.body.classList.add(\"product-modal-open\");\n      modalOverlay.style.display = \"flex\";\n      switchTab(defaultTab);\n    }\n\n    function closeModal() {\n      modalOverlay.style.display = \"none\";\n      modalInner.innerHTML = \"\";\n      document.body.classList.remove(\"product-modal-open\");\n    }\n\n    function switchTab(tab) {\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\n        const btn = document.getElementById(`tab-${id}`);\n        if (btn) btn.classList.remove(\"active\");\n      });\n\n      const activeBtn = document.getElementById(`tab-${tab}`);\n      if (activeBtn) activeBtn.classList.add(\"active\");\n\n      if (tab === 'shipping') {\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\n      } else if (tab === 'care') {\n        modalInner.innerHTML = `\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\n\t\t\u003col\u003e\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\n\t\t\u003c\/ol\u003e\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\n\t`;\n\n      } else if (tab === 'size') {\n        modalInner.innerHTML = `\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\n          \u003cdiv class=\"toggle-wrapper\"\u003e\n            \u003cspan\u003eCM\u003c\/span\u003e\n            \u003clabel class=\"toggle\"\u003e\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\n            \u003c\/label\u003e\n            \u003cspan\u003eINCHES\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003ctable\u003e\n            \u003cthead\u003e\n              \u003ctr\u003e\n                \u003cth\u003eขนาด\u003c\/th\u003e\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\n              \u003c\/tr\u003e\n            \u003c\/thead\u003e\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        `;\n        renderSizeTable('cm');\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\n        });\n      }\n    }\n\n    function renderSizeTable(unit) {\n      const body = document.getElementById(\"tableBody\");\n      body.innerHTML = \"\";\n      sizeData[unit].forEach(row =\u003e {\n        body.innerHTML += `\n      \u003ctr\u003e\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\n      \u003c\/tr\u003e`;\n      });\n    }\n  \u003c\/script\u003e\n\u003c\/body\u003e\n\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48531751633120,"sku":"B6TC-A13-CH0XSM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48531751665888,"sku":"B6TC-A13-CH00SM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48531751698656,"sku":"B6TC-A13-CH00MM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48531751731424,"sku":"B6TC-A13-CH00LM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48531751764192,"sku":"B6TC-A13-CH0XLM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48531751796960,"sku":"B6TC-A13-CH2XLM","price":1980.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men_tech_merino_base_layer_charcoal_01_1_1_1_1_1_1.jpg?v=1768181443"},{"product_id":"e-line-men-s-classic-thermal-ls-jersey-black","title":"E LINE ผู้ชาย เสื้อแขนยาวกันหนาว LS สีดำ","description":"ชุดปั่นจักรยาน e Line รุ่นคลาสสิกแขนยาวถูกออกแบบมาเพื่อการปั่นในอากาศหนาวและช่วงฤดูหนาว ผลิตจากผ้าด้านในที่ปัดขนนุ่มเพื่อให้ความอบอุ่นและความยืดหยุ่น ด้านนอกเคลือบกันน้ำ (DWR) เพื่อป้องกันลมและฝน โดดเด่นด้วยการออกแบบที่เรียบง่ายและรายละเอียดการปัก เพิ่มความหรูหราและสไตล์ที่มั่นคง\r\n\u003cbr\u003e\u003cbr\u003e\r\nเหมาะสำหรับการปั่นเมื่ออุณหภูมิต่ำกว่า 15°C\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":48531779879136,"sku":"B6TC-E03-BK0XSM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48531779911904,"sku":"B6TC-E03-BK00SM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48531779944672,"sku":"B6TC-E03-BK00MM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48531779977440,"sku":"B6TC-E03-BK00LM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48531780010208,"sku":"B6TC-E03-BK0XLM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48531780042976,"sku":"B6TC-E03-BK2XLM","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men_classic_thermal_ls_jersey_black_01.jpg?v=1768183321"},{"product_id":"e-line-men-s-classic-thermal-ls-jersey-maroon","title":"E LINE ผู้ชาย เสื้อแขนยาวกันหนาว LS สีแดงมารูน","description":"ชุดปั่นจักรยาน e Line รุ่นคลาสสิกแขนยาวถูกออกแบบมาเพื่อการปั่นในอากาศหนาวและช่วงฤดูหนาว ผลิตจากผ้าด้านในที่ปัดขนนุ่มเพื่อให้ความอบอุ่นและความยืดหยุ่น ด้านนอกเคลือบกันน้ำ (DWR) เพื่อป้องกันลมและฝน โดดเด่นด้วยการออกแบบที่เรียบง่ายและรายละเอียดการปัก เพิ่มความหรูหราและสไตล์ที่มั่นคง\r\n\u003cbr\u003e\u003cbr\u003e\r\nเหมาะสำหรับการปั่นเมื่ออุณหภูมิต่ำกว่า 15°C\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":48531780075744,"sku":"B6TC-E03-MT0XSM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48531780108512,"sku":"B6TC-E03-MT00SM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48531780141280,"sku":"B6TC-E03-MT00MM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48531780174048,"sku":"B6TC-E03-MT00LM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48531780206816,"sku":"B6TC-E03-MT0XLM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48531780239584,"sku":"B6TC-E03-MT2XLM","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men_classic_thermal_ls_jersey_maroon_01.jpg?v=1768183333"},{"product_id":"e-line-men-s-classic-thermal-ls-jersey-cream","title":"E LINE ผู้ชาย เสื้อแขนยาวกันหนาว LS สีครีม","description":"ชุดปั่นจักรยาน e Line รุ่นคลาสสิกแขนยาวถูกออกแบบมาเพื่อการปั่นในอากาศหนาวและช่วงฤดูหนาว ผลิตจากผ้าด้านในที่ปัดขนนุ่มเพื่อให้ความอบอุ่นและความยืดหยุ่น ด้านนอกเคลือบกันน้ำ (DWR) เพื่อป้องกันลมและฝน โดดเด่นด้วยการออกแบบที่เรียบง่ายและรายละเอียดการปัก เพิ่มความหรูหราและสไตล์ที่มั่นคง\r\n\u003cbr\u003e\u003cbr\u003e\r\nเหมาะสำหรับการปั่นเมื่ออุณหภูมิต่ำกว่า 15°C\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":48531781288160,"sku":"B6TC-E03-CR0XSM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48531781320928,"sku":"B6TC-E03-CR00SM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48531781353696,"sku":"B6TC-E03-CR00MM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48531781386464,"sku":"B6TC-E03-CR00LM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48531781419232,"sku":"B6TC-E03-CR0XLM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48531781452000,"sku":"B6TC-E03-CR2XLM","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men_classic_thermal_ls_jersey_cream_01.jpg?v=1768183343"},{"product_id":"e-line-men-s-classic-thermal-ls-jersey-milky-blue","title":"E LINE ผู้ชาย เสื้อแขนยาวกันหนาว LS สีฟ้าน้ำนม","description":"ชุดปั่นจักรยาน e Line รุ่นคลาสสิกแขนยาวถูกออกแบบมาเพื่อการปั่นในอากาศหนาวและช่วงฤดูหนาว ผลิตจากผ้าด้านในที่ปัดขนนุ่มเพื่อให้ความอบอุ่นและความยืดหยุ่น ด้านนอกเคลือบกันน้ำ (DWR) เพื่อป้องกันลมและฝน โดดเด่นด้วยการออกแบบที่เรียบง่ายและรายละเอียดการปัก เพิ่มความหรูหราและสไตล์ที่มั่นคง\r\n\u003cbr\u003e\u003cbr\u003e\r\nเหมาะสำหรับการปั่นเมื่ออุณหภูมิต่ำกว่า 15°C\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":48531781517536,"sku":"B6TC-E03-BL0XSM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48531781550304,"sku":"B6TC-E03-BL00SM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48531781583072,"sku":"B6TC-E03-BL00MM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48531781615840,"sku":"B6TC-E03-BL00LM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48531781648608,"sku":"B6TC-E03-BL0XLM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48531781681376,"sku":"B6TC-E03-BL2XLM","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men_classic_thermal_ls_jersey_milky_blue_01.jpg?v=1768183352"},{"product_id":"e-line-men-s-classic-thermal-tights-black","title":"E LINE ผู้ชาย กางเกงกระชับ LS สีดำ","description":"กางเกงขี่จักรยานขายาว e Line รุ่นคลาสสิก เหมาะสำหรับสภาพอากาศหนาวเย็นและการขี่ในฤดูหนาว\r\nผลิตจากผ้ายืดด้านในที่ปัดขนเพื่อให้ความอบอุ่นและรองรับกล้ามเนื้อได้อย่างดีเยี่ยม\r\nช่วยให้ขาของคุณรักษาอุณหภูมิในความเย็นได้ดี ด้านนอกเคลือบสารกันน้ำ (DWR) เพื่อป้องกันลมและฝน\r\nยังคงการออกแบบที่เรียบง่ายและรายละเอียดการปักที่หรูหรา\r\n\u003cbr\u003e \u003cbr\u003e\r\nเหมาะสำหรับการขี่จักรยานเมื่ออุณหภูมิต่ำกว่า 15°C\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":48531800621280,"sku":"B6TC-E04-BK0XSM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48531800654048,"sku":"B6TC-E04-BK00SM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48531800686816,"sku":"B6TC-E04-BK00MM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48531800719584,"sku":"B6TC-E04-BK00LM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48531800752352,"sku":"B6TC-E04-BK0XLM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48531800785120,"sku":"B6TC-E04-BK2XLM","price":4980.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men_classic_thermal_tights_black_01.jpg?v=1768184548"},{"product_id":"e-line-men-s-classic-thermal-tights-limestone","title":"E LINE ผู้ชาย กางเกงกระชับ LS สีปูน","description":"กางเกงขี่จักรยานขายาว e Line รุ่นคลาสสิก เหมาะสำหรับสภาพอากาศหนาวเย็นและการขี่ในฤดูหนาว\r\nผลิตจากผ้ายืดด้านในที่ปัดขนเพื่อให้ความอบอุ่นและรองรับกล้ามเนื้อได้อย่างดีเยี่ยม\r\nช่วยให้ขาของคุณรักษาอุณหภูมิในความเย็นได้ดี ด้านนอกเคลือบสารกันน้ำ (DWR) เพื่อป้องกันลมและฝน\r\nยังคงการออกแบบที่เรียบง่ายและรายละเอียดการปักที่หรูหรา\r\n\u003cbr\u003e \u003cbr\u003e\r\nเหมาะสำหรับการขี่จักรยานเมื่ออุณหภูมิต่ำกว่า 15°C\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":48531800817888,"sku":"B6TC-E04-GY0XSM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48531800850656,"sku":"B6TC-E04-GY00SM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48531800883424,"sku":"B6TC-E04-GY00MM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48531800916192,"sku":"B6TC-E04-GY00LM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48531800948960,"sku":"B6TC-E04-GY0XLM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48531800981728,"sku":"B6TC-E04-GY2XLM","price":4980.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men_classic_thermal_tights_limestone_01.jpg?v=1768184557"},{"product_id":"a-line-men-s-stay-gold-aero-jersey-white","title":"เสื้อจักรยานแอโร่ผู้ชาย รุ่น Stay Gold \/ สีดำ","description":"ภายใต้แนวคิดของ ความบริสุทธิ์ สมรรถนะ และความสง่างามเหนือกาลเวลา\r\nttbici A Line เปิดตัวคอลเลกชันใหม่ Stay Gold Collection ที่โดดเด่นด้วยโทนสีขาวบริสุทธิ์และสีดำลุ่มลึก\r\n\u003cbr\u003e\u003cbr\u003e\r\nด้วยการผสานอย่างลงตัวระหว่างดีไซน์และประสิทธิภาพ\r\nเสื้อ ttbici A Line Stay Gold Aero Jersey มาพร้อมทรงแอโรไดนามิกที่โฉบเฉี่ยว ออกแบบมาเพื่อการปั่นความเข้มข้นสูง ผลิตจากเนื้อผ้าน้ำหนักเบา แห้งไว และระบายอากาศได้ดี มอบทั้งความกระชับ มั่นคง และความสบายสูงสุด เพื่อให้คุณทำผลงานได้เต็มศักยภาพ พร้อมภาพลักษณ์ที่ดูพรีเมียมและสง่างาม\r\n\u003cbr\u003e\u003cbr\u003e\r\nแนะนำสำหรับอุณหภูมิ 25°C ขึ้นไป\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":48876245385440,"sku":"B6TC-A08-WH0XSM","price":4180.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48876245418208,"sku":"B6TC-A08-WH00SM","price":4180.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48876245450976,"sku":"B6TC-A08-WH00MM","price":4180.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48876245483744,"sku":"B6TC-A08-WH00LM","price":4180.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48876245516512,"sku":"B6TC-A08-WH0XLM","price":4180.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48876245549280,"sku":"B6TC-A08-WH2XLM","price":4180.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men_stay_gold_aero_jersey_01.jpg?v=1772530301"},{"product_id":"a-line-men-s-stay-gold-aero-jersey-black","title":"เสื้อจักรยานแอโร่ผู้ชาย รุ่น Stay Gold \/ สีขาวทอง","description":"ภายใต้แนวคิดของ ความบริสุทธิ์ สมรรถนะ และความสง่างามเหนือกาลเวลา\r\nttbici A Line เปิดตัวคอลเลกชันใหม่ Stay Gold Collection ที่โดดเด่นด้วยโทนสีขาวบริสุทธิ์และสีดำลุ่มลึก\r\n\u003cbr\u003e\u003cbr\u003e\r\nด้วยการผสานอย่างลงตัวระหว่างดีไซน์และประสิทธิภาพ\r\nเสื้อ ttbici A Line Stay Gold Aero Jersey มาพร้อมทรงแอโรไดนามิกที่โฉบเฉี่ยว ออกแบบมาเพื่อการปั่นความเข้มข้นสูง ผลิตจากเนื้อผ้าน้ำหนักเบา แห้งไว และระบายอากาศได้ดี มอบทั้งความกระชับ มั่นคง และความสบายสูงสุด เพื่อให้คุณทำผลงานได้เต็มศักยภาพ พร้อมภาพลักษณ์ที่ดูพรีเมียมและสง่างาม\r\n\u003cbr\u003e\u003cbr\u003e\r\nแนะนำสำหรับอุณหภูมิ 25°C ขึ้นไป\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":48876246335712,"sku":"B6TC-A08-BK0XSM","price":4180.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48876246368480,"sku":"B6TC-A08-BK00SM","price":4180.0,"currency_code":"TWD","in_stock":false},{"title":"M","offer_id":48876246401248,"sku":"B6TC-A08-BK00MM","price":4180.0,"currency_code":"TWD","in_stock":false},{"title":"L","offer_id":48876246434016,"sku":"B6TC-A08-BK00LM","price":4180.0,"currency_code":"TWD","in_stock":false},{"title":"XL","offer_id":48876246466784,"sku":"B6TC-A08-BK0XLM","price":4180.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48876246499552,"sku":"B6TC-A08-BK2XLM","price":4180.0,"currency_code":"TWD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men_stay_gold_aero_jersey_black_01_jpg.jpg?v=1772530314"},{"product_id":"a-line-men-s-stay-gold-bib-shorts-white","title":"เสื้อจักรยานแอโร่ผู้หญิง รุ่น Stay Gold \/ สีดำ","description":"ภายใต้แนวคิดของ ความบริสุทธิ์ สมรรถนะ และความสง่างามเหนือกาลเวลา\r\nttbici a Line เปิดตัวคอลเลกชันใหม่ Stay Gold Collection ที่โดดเด่นด้วยโทนสีขาวบริสุทธิ์และสีดำลุ่มลึก\r\n\u003cbr\u003e\u003cbr\u003e\r\nด้วยการผสานอย่างลงตัวระหว่างดีไซน์และประสิทธิภาพ\r\nเสื้อ ttbici a Line Stay Gold Aero Jersey มาพร้อมทรงแอโรไดนามิกที่โฉบเฉี่ยว ออกแบบมาเพื่อการปั่นความเข้มข้นสูง ผลิตจากเนื้อผ้าน้ำหนักเบา แห้งไว และระบายอากาศได้ดี มอบทั้งความกระชับ มั่นคง และความสบายสูงสุด เพื่อให้คุณทำผลงานได้เต็มศักยภาพ พร้อมภาพลักษณ์ที่ดูพรีเมียมและสง่างาม\r\n\u003cbr\u003e\u003cbr\u003e\r\nแนะนำสำหรับอุณหภูมิ 25°C ขึ้นไป\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":48876246958304,"sku":"B6TC-A09-WH0XSM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48876246991072,"sku":"B6TC-A09-WH00SM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48876247023840,"sku":"B6TC-A09-WH00MM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48876247056608,"sku":"B6TC-A09-WH00LM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48876247089376,"sku":"B6TC-A09-WH0XLM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48876247122144,"sku":"B6TC-A09-WH2XLM","price":5180.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men_stay_gold_aero_bib_white_01.jpg?v=1772530325"}],"url":"https:\/\/www.ttbici.com\/th-th\/collections\/mens-category-clothing.oembed","provider":"TTBICI","version":"1.0","type":"link"}